<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>ImportExportStandardObjects</Name>
    <Version>11.0.2</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-29 14:38:07" Version="11.0.2">Wording fixes; added translations.</ChangeLog>
    <ChangeLog Date="2026-03-12 15:08:09" Version="11.0.1">Initial release.</ChangeLog>
    <Description Lang="en">This package provides import and export of some standard objects via admin interface and import via console command.</Description>
    <Framework>11.0.x</Framework>
    <BuildCommitID>95e0af2b63a6cbe0eaf1d2ee0723cf6a63e3cce0</BuildCommitID>
    <BuildDate>2026-10-29 14:38:11</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="Custom/Kernel/Modules/AdminGenericAgent.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5HZW5lcmljQWdlbnQucG0KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluR2VuZXJpY0FnZW50OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwp1c2UgS2VybmVsOjpMYW5ndWFnZSAgICAgICAgICAgICAgcXcoVHJhbnNsYXRhYmxlKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgIyBzZXQgcHJlZiBmb3IgY29sdW1ucyBrZXkKICAgICRTZWxmLT57UHJlZktleUluY2x1ZGVJbnZhbGlkfSA9ICdJbmNsdWRlSW52YWxpZCcgLiAnLScgLiAkU2VsZi0+e0FjdGlvbn07CgogICAgbXkgJVByZWZlcmVuY2VzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+R2V0UHJlZmVyZW5jZXMoCiAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICk7CgogICAgJFNlbGYtPntJbmNsdWRlSW52YWxpZH0gPSAkUHJlZmVyZW5jZXN7ICRTZWxmLT57UHJlZktleUluY2x1ZGVJbnZhbGlkfSB9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGlja2V0IG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSA9PiBbJ1RpY2tldCddLAogICAgKTsKCiAgICAjIFRPRE8gQWRqdXN0IEdlbmVyaWNBZ2VudCBtb2R1bGUgdG8gaGFuZGxlIG11bHRpdmFsdWUgYW5kIHNldCBmaWVsZHMgY29ycmVjdGx5CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0tPkAqID0gZ3JlcCB7ICEkXy0+e0NvbmZpZ317TXVsdGlWYWx1ZX0gJiYgJF8tPntGaWVsZFR5cGV9IG5lICdTZXQnIH0gJER5bmFtaWNGaWVsZC0+QCo7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIHNlY3VyZSBtb2RlIG1lc3NhZ2UgKGRvbid0IGFsbG93IHRoaXMgYWN0aW9uIHRpbGwgc2VjdXJlIG1vZGUgaXMgZW5hYmxlZCkKICAgIGlmICggISRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU2VjdXJlTW9kZScpICkgewogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5TZWN1cmVNb2RlKCk7CiAgICB9CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBnZXQgY29uZmlnIGRhdGEKICAgICRTZWxmLT57UHJvZmlsZX0gICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUHJvZmlsZScgKSAgICB8fCAnJzsKICAgICRTZWxmLT57T2xkUHJvZmlsZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnT2xkUHJvZmlsZScgKSB8fCAnJzsKICAgICRTZWxmLT57U3ViYWN0aW9ufSAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3ViYWN0aW9uJyApICB8fCAnJzsKCiAgICAkUGFyYW17SW5jbHVkZUludmFsaWR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0luY2x1ZGVJbnZhbGlkJyApOwoKICAgIGlmICggZGVmaW5lZCAkUGFyYW17SW5jbHVkZUludmFsaWR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9LAogICAgICAgICAgICBWYWx1ZSAgPT4gJFBhcmFte0luY2x1ZGVJbnZhbGlkfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA9ICRQYXJhbXtJbmNsdWRlSW52YWxpZH07CiAgICB9CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRDaGVja0l0ZW1PYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtJyk7CiAgICBteSAkR2VuZXJpY0FnZW50T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNBZ2VudCcpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIHJ1biBhIGdlbmVyaWMgYWdlbnQgam9iIC0+ICJydW4gbm93IgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdSdW5Ob3cnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkUnVuID0gJEdlbmVyaWNBZ2VudE9iamVjdC0+Sm9iUnVuKAogICAgICAgICAgICBKb2IgICAgPT4gJFNlbGYtPntQcm9maWxlfSwKICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyByZWRpcmVjdAogICAgICAgIGlmICgkUnVuKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgcmVkaXJlY3QKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgIH0KCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUnVuJyApIHsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFza1J1bigpOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc2F2ZSBnZW5lcmljIGFnZW50IGpvYiBhbmQgc2hvdyBhIHZpZXcgb2YgYWxsIGFmZmVjdGVkIHRpY2tldHMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc2hvdyByZXN1bHQgc2l0ZQogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ1VwZGF0ZUFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgZ2V0IHNpbmdsZSBwYXJhbXMKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAoCiAgICAgICAgICAgIHF3KFRpY2tldE51bWJlciBUaXRsZSBNSU1FQmFzZV9Gcm9tIE1JTUVCYXNlX1RvIE1JTUVCYXNlX0NjIE1JTUVCYXNlX1N1YmplY3QgTUlNRUJhc2VfQm9keSBDdXN0b21lcklECiAgICAgICAgICAgIEN1c3RvbWVyVXNlckxvZ2luIEFnZW50IFNlYXJjaEluQXJjaGl2ZQogICAgICAgICAgICBOZXdUaXRsZQogICAgICAgICAgICBOZXdDdXN0b21lcklEIE5ld1BlbmRpbmdUaW1lIE5ld1BlbmRpbmdUaW1lVHlwZSBOZXdDdXN0b21lclVzZXJMb2dpbgogICAgICAgICAgICBOZXdTdGF0ZUlEIE5ld1F1ZXVlSUQgTmV3UHJpb3JpdHlJRCBOZXdPd25lcklEIE5ld1Jlc3BvbnNpYmxlSUQKICAgICAgICAgICAgTmV3VHlwZUlEIE5ld1NlcnZpY2VJRCBOZXdTTEFJRAogICAgICAgICAgICBOZXdOb3RlRnJvbSBOZXdOb3RlU3ViamVjdCBOZXdOb3RlQm9keSBOZXdOb3RlSXNWaXNpYmxlRm9yQ3VzdG9tZXIgTmV3Tm90ZVRpbWVVbml0cyBOZXdNb2R1bGUKICAgICAgICAgICAgTmV3UGFyYW1LZXkxIE5ld1BhcmFtS2V5MiBOZXdQYXJhbUtleTMgTmV3UGFyYW1LZXk0CiAgICAgICAgICAgIE5ld1BhcmFtVmFsdWUxIE5ld1BhcmFtVmFsdWUyIE5ld1BhcmFtVmFsdWUzIE5ld1BhcmFtVmFsdWU0CiAgICAgICAgICAgIE5ld1BhcmFtS2V5NSBOZXdQYXJhbUtleTYgTmV3UGFyYW1LZXk3IE5ld1BhcmFtS2V5OAogICAgICAgICAgICBOZXdQYXJhbVZhbHVlNSBOZXdQYXJhbVZhbHVlNiBOZXdQYXJhbVZhbHVlNyBOZXdQYXJhbVZhbHVlOAogICAgICAgICAgICBOZXdMb2NrSUQgTmV3RGVsZXRlIE5ld0NNRCBOZXdTZW5kTm9Ob3RpZmljYXRpb24gTmV3QXJjaGl2ZUZsYWcKICAgICAgICAgICAgU2NoZWR1bGVMYXN0UnVuIFZhbGlkCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwoKICAgICAgICAgICAgIyByZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcgYmxhbmsgc3BhY2VzCiAgICAgICAgICAgIGlmICggJEdldFBhcmFteyRQYXJhbWV0ZXJ9ICkgewogICAgICAgICAgICAgICAgJENoZWNrSXRlbU9iamVjdC0+U3RyaW5nQ2xlYW4oCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nUmVmID0+IFwkR2V0UGFyYW17JFBhcmFtZXRlcn0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJFR5cGUgKAogICAgICAgICAgICBxdyhUaW1lIENoYW5nZVRpbWUgQ2xvc2VUaW1lIExhc3RDaGFuZ2VUaW1lIExhc3RDbG9zZVRpbWUgVGltZVBlbmRpbmcgRXNjYWxhdGlvblRpbWUgRXNjYWxhdGlvblJlc3BvbnNlVGltZSBFc2NhbGF0aW9uVXBkYXRlVGltZSBFc2NhbGF0aW9uU29sdXRpb25UaW1lKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkS2V5ID0gJFR5cGUgLiAnU2VhcmNoVHlwZSc7CiAgICAgICAgICAgICRHZXRQYXJhbXskS2V5fSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRLZXkgKTsKICAgICAgICB9CiAgICAgICAgZm9yIG15ICRUeXBlICgKICAgICAgICAgICAgcXcoCiAgICAgICAgICAgICAgICBUaWNrZXRDcmVhdGUgICAgICAgICAgIFRpY2tldENoYW5nZQogICAgICAgICAgICAgICAgVGlja2V0Q2xvc2UgICAgICAgICAgICBUaWNrZXRMYXN0Q2hhbmdlCiAgICAgICAgICAgICAgICBUaWNrZXRMYXN0Q2xvc2UKICAgICAgICAgICAgICAgIFRpY2tldFBlbmRpbmcKICAgICAgICAgICAgICAgIFRpY2tldEVzY2FsYXRpb24gICAgICAgVGlja2V0RXNjYWxhdGlvblJlc3BvbnNlCiAgICAgICAgICAgICAgICBUaWNrZXRFc2NhbGF0aW9uVXBkYXRlIFRpY2tldEVzY2FsYXRpb25Tb2x1dGlvbgogICAgICAgICAgICApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIGZvciBteSAkQXR0cmlidXRlICgKICAgICAgICAgICAgICAgIHF3KAogICAgICAgICAgICAgICAgICAgIFRpbWVQb2ludCBUaW1lUG9pbnRGb3JtYXQgVGltZVBvaW50U3RhcnQKICAgICAgICAgICAgICAgICAgICBUaW1lU3RhcnQgVGltZVN0YXJ0RGF5IFRpbWVTdGFydE1vbnRoIFRpbWVTdG9wTW9udGgKICAgICAgICAgICAgICAgICAgICBUaW1lU3RvcCBUaW1lU3RvcERheSBUaW1lU3RvcFllYXIgVGltZVN0YXJ0WWVhcgogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAkS2V5ID0gJFR5cGUgLiAkQXR0cmlidXRlOwogICAgICAgICAgICAgICAgJEdldFBhcmFteyRLZXl9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJEtleSApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHZhbGlkYXRlIGRhdGEKICAgICAgICAgICAgZm9yIG15ICRBdHRyaWJ1dGUgKAogICAgICAgICAgICAgICAgcXcoVGltZVN0YXJ0RGF5IFRpbWVTdGFydE1vbnRoIFRpbWVTdG9wTW9udGggVGltZVN0b3BEYXkpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG15ICRLZXkgPSAkVHlwZSAuICRBdHRyaWJ1dGU7CgogICAgICAgICAgICAgICAgaWYgKCAkR2V0UGFyYW17JEtleX0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEdldFBhcmFteyRLZXl9ID0gc3ByaW50ZiggJyUwMmQnLCAkR2V0UGFyYW17JEtleX0gKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgZHluYW1pYyBmaWVsZHMgdG8gc2V0IGZyb20gd2ViIHJlcXVlc3QKICAgICAgICAjIHRvIHN0b3JlIGR5bmFtaWMgZmllbGRzIHByb2ZpbGUgZGF0YQogICAgICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgYmFja2VuZCBvYmplY3QKICAgICAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZyb20gdGhlIHdlYiByZXF1ZXN0CiAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICBMYXlvdXRPYmplY3QgICAgICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgUmV0dXJuVGVtcGxhdGVTdHJ1Y3R1cmUgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2V0IHRoZSBjb21wbGV0ZSB2YWx1ZSBzdHJ1Y3R1cmUgaW4gR2V0UGFyYW0gdG8gc3RvcmUgaXQgbGF0ZXIgaW4gdGhlIEdlbmVyaWMgQWdlbnQgSm9iCiAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZFZhbHVlKSApIHsKICAgICAgICAgICAgICAgICVEeW5hbWljRmllbGRWYWx1ZXMgPSAoICVEeW5hbWljRmllbGRWYWx1ZXMsICV7JER5bmFtaWNGaWVsZFZhbHVlfSApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCBhcnJheSBwYXJhbXMKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAoCiAgICAgICAgICAgIHF3KExvY2tJRHMgU3RhdGVJRHMgU3RhdGVUeXBlSURzIFF1ZXVlSURzIFByaW9yaXR5SURzIE93bmVySURzIFJlc3BvbnNpYmxlSURzCiAgICAgICAgICAgIFR5cGVJRHMgU2VydmljZUlEcyBTTEFJRHMKICAgICAgICAgICAgU2NoZWR1bGVEYXlzIFNjaGVkdWxlTWludXRlcyBTY2hlZHVsZUhvdXJzCiAgICAgICAgICAgIEV2ZW50VmFsdWVzCiAgICAgICAgICAgICkKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgZ2V0IHNlYXJjaCBhcnJheSBwYXJhbXMgKGdldCBzdWJtaXR0ZWQgcGFyYW1zKQogICAgICAgICAgICBpZiAoICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSApIHsKICAgICAgICAgICAgICAgIEB7ICRHZXRQYXJhbXskUGFyYW1ldGVyfSB9ID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJFBhcmFtZXRlciApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGdldCBEeW5hbWljIGZpZWxkcyBmb3Igc2VhcmNoIGZyb20gd2ViIHJlcXVlc3QKICAgICAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICAjIGdldCBzZWFyY2ggZmllbGQgcHJlZmVyZW5jZXMKICAgICAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgICAgICBQUkVGRVJFTkNFOgogICAgICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgICAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZnJvbSB0aGUgd2ViIHJlcXVlc3QKICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRWYWx1ZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgICAgICAgICBSZXR1cm5Qcm9maWxlU3RydWN0dXJlID0+IDEsCiAgICAgICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgPT4gJFByZWZlcmVuY2UtPntUeXBlfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBzZXQgdGhlIGNvbXBsZXRlIHZhbHVlIHN0cnVjdHVyZSBpbiAlRHluYW1pY0ZpZWxkVmFsdWVzIHRvIHN0b3JlIGl0IGxhdGVyIGluIHRoZQogICAgICAgICAgICAgICAgIyBHZW5lcmljIEFnZW50IEpvYgogICAgICAgICAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkVmFsdWUpICkgewogICAgICAgICAgICAgICAgICAgICVEeW5hbWljRmllbGRWYWx1ZXMgPSAoICVEeW5hbWljRmllbGRWYWx1ZXMsICV7JER5bmFtaWNGaWVsZFZhbHVlfSApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJFNlbGYtPntQcm9maWxlfSApIHsKICAgICAgICAgICAgJEVycm9yc3tQcm9maWxlSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBsZW5ndGggb2YgZmllbGRzIGZyb20gQWRkIE5vdGUgc2VjdGlvbi4KICAgICAgICBpZiAoIGxlbmd0aCAkR2V0UGFyYW17TmV3Tm90ZUZyb219ID4gMjAwICkgewogICAgICAgICAgICAkRXJyb3Jze05ld05vdGVGcm9tU2VydmVyRXJyb3J9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CiAgICAgICAgaWYgKCBsZW5ndGggJEdldFBhcmFte05ld05vdGVTdWJqZWN0fSA+IDIwMCApIHsKICAgICAgICAgICAgJEVycm9yc3tOZXdOb3RlU3ViamVjdFNlcnZlckVycm9yfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQogICAgICAgIGlmICggbGVuZ3RoICRHZXRQYXJhbXtOZXdOb3RlQm9keX0gPiAyMDAgKSB7CiAgICAgICAgICAgICRFcnJvcnN7TmV3Tm90ZUJvZHlTZXJ2ZXJFcnJvcn0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBpZiB0aWNrZXQgc2VsZWN0aW9uIGNvbnRhaW5zIHN0b3Agd29yZHMKICAgICAgICBteSAlU3RvcFdvcmRzU2VydmVyRXJyb3JzID0gJFNlbGYtPl9TdG9wV29yZHNTZXJ2ZXJFcnJvcnNHZXQoCiAgICAgICAgICAgIE1JTUVCYXNlX0Zyb20gICAgPT4gJEdldFBhcmFte01JTUVCYXNlX0Zyb219LAogICAgICAgICAgICBNSU1FQmFzZV9UbyAgICAgID0+ICRHZXRQYXJhbXtNSU1FQmFzZV9Ub30sCiAgICAgICAgICAgIE1JTUVCYXNlX0NjICAgICAgPT4gJEdldFBhcmFte01JTUVCYXNlX0NjfSwKICAgICAgICAgICAgTUlNRUJhc2VfU3ViamVjdCA9PiAkR2V0UGFyYW17TUlNRUJhc2VfU3ViamVjdH0sCiAgICAgICAgICAgIE1JTUVCYXNlX0JvZHkgICAgPT4gJEdldFBhcmFte01JTUVCYXNlX0JvZHl9LAogICAgICAgICk7CiAgICAgICAgJUVycm9ycyA9ICggJUVycm9ycywgJVN0b3BXb3Jkc1NlcnZlckVycm9ycyApOwoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICBpZiAoICRTZWxmLT57T2xkUHJvZmlsZX0gKSB7CgogICAgICAgICAgICAgICAgIyByZW1vdmUvY2xlYW4gdXAgb2xkIHByb2ZpbGUgc3R1ZmYKICAgICAgICAgICAgICAgICRHZW5lcmljQWdlbnRPYmplY3QtPkpvYkRlbGV0ZSgKICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJFNlbGYtPntPbGRQcm9maWxlfSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBpbnNlcnQgbmV3IHByb2ZpbGUgcGFyYW1zCiAgICAgICAgICAgIG15ICRKb2JBZGRSZXN1bHQgPSAkR2VuZXJpY0FnZW50T2JqZWN0LT5Kb2JBZGQoCiAgICAgICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57UHJvZmlsZX0sCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgJUR5bmFtaWNGaWVsZFZhbHVlcywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRKb2JBZGRSZXN1bHQpIHsKCiAgICAgICAgICAgICAgICAjIGlmIHRoZSB1c2VyIHdvdWxkIGxpa2UgdG8gY29udGludWUgZWRpdGluZyB0aGUgZ2VuZXJpYyBhZ2VudCBqb2IsIGp1c3QgcmVkaXJlY3QgdG8gdGhlIGVkaXQgc2NyZWVuCiAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgZGVmaW5lZCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ29udGludWVBZnRlclNhdmUnICkKICAgICAgICAgICAgICAgICAgICAmJiAoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKSBlcSAnMScgKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBteSAkUHJvZmlsZSA9ICRTZWxmLT57UHJvZmlsZX0gfHwgJyc7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249VXBkYXRlO1Byb2ZpbGU9JFByb2ZpbGUiICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBvdGhlcndpc2UgcmV0dXJuIHRvIG92ZXJ2aWV3CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2ZpbGVJbnZhbGlkfSAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1Byb2ZpbGVJbnZhbGlkTXNnfSA9ICdBZGRFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc29tZXRoaW5nIHdlbnQgd3JvbmcKICAgICAgICBteSAkSm9iRGF0YVJlZmVyZW5jZTsKICAgICAgICAkSm9iRGF0YVJlZmVyZW5jZSA9ICRTZWxmLT5fTWFza1VwZGF0ZSgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICVEeW5hbWljRmllbGRWYWx1ZXMsCiAgICAgICAgICAgICVFcnJvcnMsCiAgICAgICAgICAgIFN0b3BXb3Jkc0FscmVhZHlDaGVja2VkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZW5lcmF0ZSBzZWFyY2ggbWFzawogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoCiAgICAgICAgICAgIFRpdGxlID0+IFRyYW5zbGF0YWJsZSgnRWRpdCcpLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5HZW5lcmljQWdlbnQnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJEpvYkRhdGFSZWZlcmVuY2UsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGVkaXQgZ2VuZXJpYyBhZ2VudCBqb2IKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnVXBkYXRlJyApIHsKICAgICAgICBteSAkSm9iRGF0YVJlZmVyZW5jZTsKICAgICAgICAkSm9iRGF0YVJlZmVyZW5jZSA9ICRTZWxmLT5fTWFza1VwZGF0ZSglUGFyYW0pOwoKICAgICAgICAjIGdlbmVyYXRlIHNlYXJjaCBtYXNrCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICAgICAgVGl0bGUgPT4gVHJhbnNsYXRhYmxlKCdFZGl0JyksCiAgICAgICAgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5HZW5lcmljQWdlbnQnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJEpvYkRhdGFSZWZlcmVuY2UsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIFVwZGF0ZSBkeW5hbWljIGZpZWxkcyBmb3IgZ2VuZXJpYyBhZ2VudCBqb2IgYnkgQUpBWAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGREeW5hbWljRmllbGQnICkgewogICAgICAgIG15ICREeW5hbWljRmllbGRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdEeW5hbWljRmllbGRJRCcgKTsKICAgICAgICBteSAkVHlwZSAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnVHlwZScgKSB8fCAnJzsKICAgICAgICBteSAkU2VsZWN0ZWRWYWx1ZSAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU2VsZWN0ZWRWYWx1ZScgKTsKICAgICAgICBteSAkV2lkZ2V0ICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnV2lkZ2V0JyApOwoKICAgICAgICBteSAkRHluYW1pY0ZpZWxkQ29uZmlnID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcpLT5EeW5hbWljRmllbGRHZXQoCiAgICAgICAgICAgIElEID0+ICREeW5hbWljRmllbGRJRCwKICAgICAgICApOwoKICAgICAgICBteSAlSm9iRGF0YTsKICAgICAgICBpZiAoICRTZWxmLT57UHJvZmlsZX0gKSB7CiAgICAgICAgICAgICVKb2JEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNBZ2VudCcpLT5Kb2JHZXQoCiAgICAgICAgICAgICAgICBOYW1lID0+ICRTZWxmLT57UHJvZmlsZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgICRKb2JEYXRhe1Byb2ZpbGV9ICAgPSAkU2VsZi0+e1Byb2ZpbGV9OwogICAgICAgICRKb2JEYXRhe1N1YmFjdGlvbn0gPSAkU2VsZi0+e1N1YmFjdGlvbn07CgogICAgICAgIG15ICREeW5hbWljRmllbGRIVE1MOwogICAgICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKICAgICAgICAjIEdldCBmaWVsZCBIVE1MLgogICAgICAgIGlmICggJFdpZGdldCBlcSAnU2VsZWN0JyApIHsKICAgICAgICAgICAgJER5bmFtaWNGaWVsZEhUTUwgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRSZW5kZXIoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBQcm9maWxlICAgICAgICAgICAgICAgID0+IFwlSm9iRGF0YSwKICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgIENvbmZpcm1hdGlvbkNoZWNrYm94ZXMgPT4gMSwKICAgICAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgPT4gJFR5cGUsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJFdpZGdldCBlcSAnVXBkYXRlJyApIHsKICAgICAgICAgICAgbXkgJFBvc3NpYmxlVmFsdWVzRmlsdGVyOwoKICAgICAgICAgICAgbXkgJElzQUNMUmVkdWNpYmxlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzQUNMUmVkdWNpYmxlJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkSXNBQ0xSZWR1Y2libGUpIHsKCiAgICAgICAgICAgICAgICAjIEdldCBQb3NzaWJsZVZhbHVlcy4KICAgICAgICAgICAgICAgIG15ICRQb3NzaWJsZVZhbHVlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5Qb3NzaWJsZVZhbHVlc0dldCgKICAgICAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBDaGVjayBpZiBmaWVsZCBoYXMgUG9zc2libGVWYWx1ZXMgcHJvcGVydHkgaW4gaXRzIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRQb3NzaWJsZVZhbHVlcykgKSB7CgogICAgICAgICAgICAgICAgICAgICMgQ29udmVydCBwb3NzaWJsZSB2YWx1ZXMga2V5ID0+IHZhbHVlIHRvIGtleSA9PiBrZXkgZm9yIEFDTHMgdXNpbmcgYSBIYXNoIHNsaWNlLgogICAgICAgICAgICAgICAgICAgIG15ICVBY2xEYXRhID0gJXskUG9zc2libGVWYWx1ZXN9OwogICAgICAgICAgICAgICAgICAgIEBBY2xEYXRheyBrZXlzICVBY2xEYXRhIH0gPSBrZXlzICVBY2xEYXRhOwoKICAgICAgICAgICAgICAgICAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICAgICAgICAgICAgICAgICAjIFNldCBwb3NzaWJsZSB2YWx1ZXMgZmlsdGVyIGZyb20gQUNMcy4KICAgICAgICAgICAgICAgICAgICBteSAkQUNMID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsKAogICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSAgICAgICAgICA9PiAnRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVyblR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFJldHVyblN1YlR5cGUgPT4gJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgID0+IFwlQWNsRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJEFDTCkgewogICAgICAgICAgICAgICAgICAgICAgICBteSAlRmlsdGVyID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNsRGF0YSgpOwoKICAgICAgICAgICAgICAgICAgICAgICAgIyBDb252ZXJ0IEZpbGVyIGtleSA9PiBrZXkgYmFjayB0byBrZXkgPT4gdmFsdWUgdXNpbmcgbWFwLgogICAgICAgICAgICAgICAgICAgICAgICAleyRQb3NzaWJsZVZhbHVlc0ZpbHRlcn0gPSBtYXAgeyAkXyA9PiAkUG9zc2libGVWYWx1ZXMtPnskX30gfQogICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5cyAlRmlsdGVyOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTCA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5FZGl0RmllbGRSZW5kZXIoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgUG9zc2libGVWYWx1ZXNGaWx0ZXIgPT4gJFBvc3NpYmxlVmFsdWVzRmlsdGVyLAogICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgICAgPT4gJExheW91dE9iamVjdCwKICAgICAgICAgICAgICAgIFBhcmFtT2JqZWN0ICAgICAgICAgID0+ICRQYXJhbU9iamVjdCwKICAgICAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICAgICAgQ29uZmlybWF0aW9uTmVlZGVkICAgPT4gMSwKICAgICAgICAgICAgICAgIE5vSWdub3JlRmllbGQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBUZW1wbGF0ZSAgICAgICAgICAgICA9PiBcJUpvYkRhdGEsCiAgICAgICAgICAgICAgICBNYXhMZW5ndGggICAgICAgICAgICA9PiAyMDAsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkRHluYW1pY0ZpZWxkSFRNTC0+e0lEfSA9ICRTZWxlY3RlZFZhbHVlOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICAgICAgRGF0YSA9PiAkRHluYW1pY0ZpZWxkSFRNTCwKICAgICAgICApOwoKICAgICAgICAjIFNlbmQgSlNPTiByZXNwb25zZSwgJExheW91dE9iamVjdC0+e0NoYXJzZXR9IGlzIGFjdHVhbGx5ICd1dGYtOCcKICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb24nLAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkT3V0cHV0LAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGRlbGV0ZSBhbiBnZW5lcmljIGFnZW50IGpvYgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGUnICYmICRTZWxmLT57UHJvZmlsZX0gKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIGlmICggJFNlbGYtPntQcm9maWxlfSApIHsKICAgICAgICAgICAgJEdlbmVyaWNBZ2VudE9iamVjdC0+Sm9iRGVsZXRlKAogICAgICAgICAgICAgICAgTmFtZSAgID0+ICRTZWxmLT57UHJvZmlsZX0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBvdmVydmlldyBvZiBhbGwgZ2VuZXJpYyBhZ2VudCBqb2JzCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uTGlzdCcsCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQWN0aW9uQWRkJywKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdJbmNsdWRlSW52YWxpZCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEluY2x1ZGVJbnZhbGlkICAgICAgICA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSwKICAgICAgICAgICAgSW5jbHVkZUludmFsaWRDaGVja2VkID0+ICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID8gJ2NoZWNrZWQnIDogJycsCiAgICAgICAgfSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdGaWx0ZXInLAogICAgKTsKIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnSW1wb3J0RXhwb3J0V2lkZ2V0JyApOwojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgKTsKCiAgICBteSAlSm9icyA9ICRHZW5lcmljQWdlbnRPYmplY3QtPkpvYkxpc3QoKTsKCiAgICAjIGlmIHRoZXJlIGFyZSBhbnkgZGF0YSwgaXQgaXMgc2hvd24KICAgIGlmICglSm9icykgewogICAgICAgIG15ICRDb3VudGVyID0gMTsKICAgICAgICBKT0I6CiAgICAgICAgZm9yIG15ICRKb2JLZXkgKCBzb3J0IGtleXMgJUpvYnMgKSB7CiAgICAgICAgICAgIG15ICVKb2JEYXRhID0gJEdlbmVyaWNBZ2VudE9iamVjdC0+Sm9iR2V0KCBOYW1lID0+ICRKb2JLZXkgKTsKCiAgICAgICAgICAgIG5leHQgSk9CIHVubGVzcyAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSB8fCAkSm9iRGF0YXtWYWxpZH07CgogICAgICAgICAgICAjIGNzcyBzZXR0aW5nIGFuZCB0ZXh0IGZvciB2YWxpZCBvciBpbnZhbGlkIGpvYnMKICAgICAgICAgICAgJEpvYkRhdGF7U2hvd25WYWxpZH0gPSAkSm9iRGF0YXtWYWxpZH0gPyAndmFsaWQnIDogJ2ludmFsaWQnOwoKICAgICAgICAgICAgIyBzZXBhcmF0ZSBlYWNoIHNlYXJjaCByZXN1bHQgbGluZSBieSB1c2luZyBzZXZlcmFsIGNzcwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1JvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlSm9iRGF0YSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlIGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlIGlzIGRpc3BsYXllZAogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kTXNnJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2VuZXJhdGUgc2VhcmNoIG1hc2sKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbkdlbmVyaWNBZ2VudCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICApOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX01hc2tVcGRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlSm9iRGF0YTsKCiAgICBpZiAoICRTZWxmLT57UHJvZmlsZX0gKSB7CgogICAgICAgICMgZ2V0IGRiIGpvYiBkYXRhCiAgICAgICAgJUpvYkRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0FnZW50JyktPkpvYkdldCgKICAgICAgICAgICAgTmFtZSA9PiAkU2VsZi0+e1Byb2ZpbGV9LAogICAgICAgICk7CiAgICB9CiAgICAkSm9iRGF0YXtQcm9maWxlfSAgID0gJFNlbGYtPntQcm9maWxlfTsKICAgICRKb2JEYXRhe1N1YmFjdGlvbn0gPSAkU2VsZi0+e1N1YmFjdGlvbn07CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgbGlzdCB0eXBlCiAgICBteSAkVHJlZVZpZXcgPSAwOwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Okxpc3RUeXBlJykgZXEgJ3RyZWUnICkgewogICAgICAgICRUcmVlVmlldyA9IDE7CiAgICB9CgogICAgbXkgJVNob3duVXNlcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICk7CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkSm9iRGF0YXtPd25lclN0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVTaG93blVzZXJzLAogICAgICAgIE5hbWUgICAgICAgID0+ICdPd25lcklEcycsCiAgICAgICAgTXVsdGlwbGUgICAgPT4gMSwKICAgICAgICBTaXplICAgICAgICA9PiA1LAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJEpvYkRhdGF7T3duZXJJRHN9LAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKICAgICRKb2JEYXRhe05ld093bmVyU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiBcJVNob3duVXNlcnMsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ05ld093bmVySUQnLAogICAgICAgIFNpemUgICAgICAgID0+IDUsCiAgICAgICAgTXVsdGlwbGUgICAgPT4gMCwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRKb2JEYXRhe05ld093bmVySUR9LAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKICAgIG15ICVIb3VyczsKICAgIGZvciBteSAkTnVtYmVyICggMCAuLiAyMyApIHsKICAgICAgICAkSG91cnN7JE51bWJlcn0gPSBzcHJpbnRmKCAiJTAyZCIsICROdW1iZXIgKTsKICAgIH0KICAgICRKb2JEYXRhe1NjaGVkdWxlSG91cnNMaXN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFwlSG91cnMsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1NjaGVkdWxlSG91cnMnLAogICAgICAgIFNpemUgICAgICAgID0+IDYsCiAgICAgICAgTXVsdGlwbGUgICAgPT4gMSwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRKb2JEYXRhe1NjaGVkdWxlSG91cnN9LAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKICAgIG15ICVNaW51dGVzOwogICAgZm9yIG15ICROdW1iZXIgKCAwIC4uIDU5ICkgewogICAgICAgICRNaW51dGVzeyROdW1iZXJ9ID0gc3ByaW50ZiggIiUwMmQiLCAkTnVtYmVyICk7CiAgICB9CiAgICAkSm9iRGF0YXtTY2hlZHVsZU1pbnV0ZXNMaXN0fSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgID0+IFwlTWludXRlcywKICAgICAgICBOYW1lICAgICAgICA9PiAnU2NoZWR1bGVNaW51dGVzJywKICAgICAgICBTaXplICAgICAgICA9PiA2LAogICAgICAgIE11bHRpcGxlICAgID0+IDEsCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICBTZWxlY3RlZElEICA9PiAkSm9iRGF0YXtTY2hlZHVsZU1pbnV0ZXN9LAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKICAgICRKb2JEYXRhe1NjaGVkdWxlRGF5c0xpc3R9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIDEgPT4gVHJhbnNsYXRhYmxlKCdNb24nKSwKICAgICAgICAgICAgMiA9PiBUcmFuc2xhdGFibGUoJ1R1ZScpLAogICAgICAgICAgICAzID0+IFRyYW5zbGF0YWJsZSgnV2VkJyksCiAgICAgICAgICAgIDQgPT4gVHJhbnNsYXRhYmxlKCdUaHUnKSwKICAgICAgICAgICAgNSA9PiBUcmFuc2xhdGFibGUoJ0ZyaScpLAogICAgICAgICAgICA2ID0+IFRyYW5zbGF0YWJsZSgnU2F0JyksCiAgICAgICAgICAgIDAgPT4gVHJhbnNsYXRhYmxlKCdTdW4nKSwKICAgICAgICB9LAogICAgICAgIFNvcnQgICAgICAgPT4gJ051bWVyaWNLZXknLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1NjaGVkdWxlRGF5cycsCiAgICAgICAgU2l6ZSAgICAgICA9PiA3LAogICAgICAgIE11bHRpcGxlICAgPT4gMSwKICAgICAgICBTZWxlY3RlZElEID0+ICRKb2JEYXRhe1NjaGVkdWxlRGF5c30sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBnZXQgc3RhdGUgb2JqZWN0CiAgICBteSAkU3RhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhdGUnKTsKCiAgICAkSm9iRGF0YXtTdGF0ZXNTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAkU3RhdGVPYmplY3QtPlN0YXRlTGlzdCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1N0YXRlSURzJywKICAgICAgICBNdWx0aXBsZSAgID0+IDEsCiAgICAgICAgU2l6ZSAgICAgICA9PiA1LAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEpvYkRhdGF7U3RhdGVJRHN9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwogICAgJEpvYkRhdGF7TmV3U3RhdGVzU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJFN0YXRlT2JqZWN0LT5TdGF0ZUxpc3QoCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gMSwKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAkU2VsZi0+e0FjdGlvbn0sCiAgICAgICAgICAgICksCiAgICAgICAgfSwKICAgICAgICBOYW1lICAgICAgID0+ICdOZXdTdGF0ZUlEJywKICAgICAgICBTaXplICAgICAgID0+IDUsCiAgICAgICAgTXVsdGlwbGUgICA9PiAwLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEpvYkRhdGF7TmV3U3RhdGVJRH0sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CiAgICAkSm9iRGF0YXtOZXdQZW5kaW5nVGltZVR5cGVTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiA2MCwKICAgICAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgnbWludXRlKHMpJyksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIEtleSAgID0+IDM2MDAsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ2hvdXIocyknKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gODY0MDAsCiAgICAgICAgICAgICAgICBWYWx1ZSA9PiBUcmFuc2xhdGFibGUoJ2RheShzKScpLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAyNTkyMDAwLAogICAgICAgICAgICAgICAgVmFsdWUgPT4gVHJhbnNsYXRhYmxlKCdtb250aChzKScpLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBLZXkgICA9PiAzMTUzNjAwMCwKICAgICAgICAgICAgICAgIFZhbHVlID0+IFRyYW5zbGF0YWJsZSgneWVhcihzKScpLAogICAgICAgICAgICB9LAoKICAgICAgICBdLAogICAgICAgIE5hbWUgICAgICAgID0+ICdOZXdQZW5kaW5nVGltZVR5cGUnLAogICAgICAgIFNpemUgICAgICAgID0+IDEsCiAgICAgICAgTXVsdGlwbGUgICAgPT4gMCwKICAgICAgICBTZWxlY3RlZElEICA9PiAkSm9iRGF0YXtOZXdQZW5kaW5nVGltZVR5cGV9LAogICAgICAgIFRyYW5zbGF0aW9uID0+IDEsCiAgICAgICAgVGl0bGUgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdUaW1lIHVuaXQnKSwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBnZXQgcXVldWUgb2JqZWN0CiAgICBteSAkUXVldWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKCiAgICAkSm9iRGF0YXtRdWV1ZXNTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkFnZW50UXVldWVMaXN0T3B0aW9uKAogICAgICAgIERhdGEgICAgICAgICAgICAgICA9PiB7ICRRdWV1ZU9iamVjdC0+R2V0QWxsUXVldWVzKCksIH0sCiAgICAgICAgU2l6ZSAgICAgICAgICAgICAgID0+IDUsCiAgICAgICAgTXVsdGlwbGUgICAgICAgICAgID0+IDEsCiAgICAgICAgTmFtZSAgICAgICAgICAgICAgID0+ICdRdWV1ZUlEcycsCiAgICAgICAgU2VsZWN0ZWRJRFJlZkFycmF5ID0+ICRKb2JEYXRhe1F1ZXVlSURzfSwKICAgICAgICBUcmVlVmlldyAgICAgICAgICAgPT4gJFRyZWVWaWV3LAogICAgICAgIE9uQ2hhbmdlU3VibWl0ICAgICA9PiAwLAogICAgICAgIENsYXNzICAgICAgICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CiAgICAkSm9iRGF0YXtOZXdRdWV1ZXNTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkFnZW50UXVldWVMaXN0T3B0aW9uKAogICAgICAgIERhdGEgICAgICAgICAgID0+IHsgJFF1ZXVlT2JqZWN0LT5HZXRBbGxRdWV1ZXMoKSwgfSwKICAgICAgICBTaXplICAgICAgICAgICA9PiA1LAogICAgICAgIE11bHRpcGxlICAgICAgID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ05ld1F1ZXVlSUQnLAogICAgICAgIFNlbGVjdGVkSUQgICAgID0+ICRKb2JEYXRhe05ld1F1ZXVlSUR9LAogICAgICAgIFRyZWVWaWV3ICAgICAgID0+ICRUcmVlVmlldywKICAgICAgICBPbkNoYW5nZVN1Ym1pdCA9PiAwLAogICAgICAgIENsYXNzICAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIGdldCBwcmlvcml0eSBvYmplY3QKICAgIG15ICRQcmlvcml0eU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQcmlvcml0eScpOwoKICAgICRKb2JEYXRhe1ByaW9yaXRpZXNTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAkUHJpb3JpdHlPYmplY3QtPlByaW9yaXR5TGlzdCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1ByaW9yaXR5SURzJywKICAgICAgICBTaXplICAgICAgID0+IDUsCiAgICAgICAgTXVsdGlwbGUgICA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEpvYkRhdGF7UHJpb3JpdHlJRHN9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwogICAgJEpvYkRhdGF7TmV3UHJpb3JpdGllc1N0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICRQcmlvcml0eU9iamVjdC0+UHJpb3JpdHlMaXN0KAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICAgICBBY3Rpb24gPT4gJFNlbGYtPntBY3Rpb259LAogICAgICAgICAgICApLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnTmV3UHJpb3JpdHlJRCcsCiAgICAgICAgU2l6ZSAgICAgICA9PiA1LAogICAgICAgIE11bHRpcGxlICAgPT4gMCwKICAgICAgICBTZWxlY3RlZElEID0+ICRKb2JEYXRhe05ld1ByaW9yaXR5SUR9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICMgZ2V0IHRpbWUgb3B0aW9uCiAgICBteSAlTWFwID0gKAogICAgICAgIFRpY2tldENyZWF0ZSAgICAgICAgICAgICA9PiAnVGltZScsCiAgICAgICAgVGlja2V0Q2hhbmdlICAgICAgICAgICAgID0+ICdDaGFuZ2VUaW1lJywKICAgICAgICBUaWNrZXRDbG9zZSAgICAgICAgICAgICAgPT4gJ0Nsb3NlVGltZScsCiAgICAgICAgVGlja2V0TGFzdENoYW5nZSAgICAgICAgID0+ICdMYXN0Q2hhbmdlVGltZScsCiAgICAgICAgVGlja2V0TGFzdENsb3NlICAgICAgICAgID0+ICdMYXN0Q2xvc2VUaW1lJywKICAgICAgICBUaWNrZXRQZW5kaW5nICAgICAgICAgICAgPT4gJ1RpbWVQZW5kaW5nJywKICAgICAgICBUaWNrZXRFc2NhbGF0aW9uICAgICAgICAgPT4gJ0VzY2FsYXRpb25UaW1lJywKICAgICAgICBUaWNrZXRFc2NhbGF0aW9uUmVzcG9uc2UgPT4gJ0VzY2FsYXRpb25SZXNwb25zZVRpbWUnLAogICAgICAgIFRpY2tldEVzY2FsYXRpb25VcGRhdGUgICA9PiAnRXNjYWxhdGlvblVwZGF0ZVRpbWUnLAogICAgICAgIFRpY2tldEVzY2FsYXRpb25Tb2x1dGlvbiA9PiAnRXNjYWxhdGlvblNvbHV0aW9uVGltZScsCiAgICApOwogICAgZm9yIG15ICRUeXBlICgKICAgICAgICBxdygKICAgICAgICAgICAgVGlja2V0Q3JlYXRlICAgICAgICAgICBUaWNrZXRDbG9zZQogICAgICAgICAgICBUaWNrZXRDaGFuZ2UgICAgICAgICAgIFRpY2tldExhc3RDaGFuZ2UKICAgICAgICAgICAgVGlja2V0TGFzdENsb3NlCiAgICAgICAgICAgIFRpY2tldFBlbmRpbmcKICAgICAgICAgICAgVGlja2V0RXNjYWxhdGlvbiAgICAgICBUaWNrZXRFc2NhbGF0aW9uUmVzcG9uc2UKICAgICAgICAgICAgVGlja2V0RXNjYWxhdGlvblVwZGF0ZSBUaWNrZXRFc2NhbGF0aW9uU29sdXRpb24KICAgICAgICApCiAgICAgICAgKQogICAgewogICAgICAgIG15ICRTZWFyY2hUeXBlID0gJE1hcHskVHlwZX0gLiAnU2VhcmNoVHlwZSc7CiAgICAgICAgaWYgKCAhJEpvYkRhdGF7JFNlYXJjaFR5cGV9ICkgewogICAgICAgICAgICAkSm9iRGF0YXsgJFNlYXJjaFR5cGUgLiAnOjpOb25lJyB9ID0gJ2NoZWNrZWQgJzsKICAgICAgICB9CiAgICAgICAgZWxzaWYgKCAkSm9iRGF0YXskU2VhcmNoVHlwZX0gZXEgJ1RpbWVQb2ludCcgKSB7CiAgICAgICAgICAgICRKb2JEYXRheyAkU2VhcmNoVHlwZSAuICc6OlRpbWVQb2ludCcgfSA9ICdjaGVja2VkICc7CiAgICAgICAgfQogICAgICAgIGVsc2lmICggJEpvYkRhdGF7JFNlYXJjaFR5cGV9IGVxICdUaW1lU2xvdCcgKSB7CiAgICAgICAgICAgICRKb2JEYXRheyAkU2VhcmNoVHlwZSAuICc6OlRpbWVTbG90JyB9ID0gJ2NoZWNrZWQgJzsKICAgICAgICB9CgogICAgICAgIG15ICVDb3VudGVyOwogICAgICAgIGZvciBteSAkTnVtYmVyICggMSAuLiA2MCApIHsKICAgICAgICAgICAgJENvdW50ZXJ7JE51bWJlcn0gPSBzcHJpbnRmKCAiJTAyZCIsICROdW1iZXIgKTsKICAgICAgICB9CgogICAgICAgICMgdGltZQogICAgICAgICRKb2JEYXRheyAkVHlwZSAuICdUaW1lUG9pbnQnIH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gXCVDb3VudGVyLAogICAgICAgICAgICBOYW1lICAgICAgICA9PiAkVHlwZSAuICdUaW1lUG9pbnQnLAogICAgICAgICAgICBTZWxlY3RlZElEICA9PiAkSm9iRGF0YXsgJFR5cGUgLiAnVGltZVBvaW50JyB9LAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICk7CiAgICAgICAgJEpvYkRhdGF7ICRUeXBlIC4gJ1RpbWVQb2ludFN0YXJ0JyB9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgTGFzdCAgID0+IFRyYW5zbGF0YWJsZSgnd2l0aGluIHRoZSBsYXN0IC4uLicpLAogICAgICAgICAgICAgICAgTmV4dCAgID0+IFRyYW5zbGF0YWJsZSgnd2l0aGluIHRoZSBuZXh0IC4uLicpLAogICAgICAgICAgICAgICAgQmVmb3JlID0+IFRyYW5zbGF0YWJsZSgnbW9yZSB0aGFuIC4uLiBhZ28nKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkVHlwZSAuICdUaW1lUG9pbnRTdGFydCcsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgPT4gJEpvYkRhdGF7ICRUeXBlIC4gJ1RpbWVQb2ludFN0YXJ0JyB9IHx8ICdMYXN0JywKICAgICAgICApOwogICAgICAgICRKb2JEYXRheyAkVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBtaW51dGUgPT4gVHJhbnNsYXRhYmxlKCdtaW51dGUocyknKSwKICAgICAgICAgICAgICAgIGhvdXIgICA9PiBUcmFuc2xhdGFibGUoJ2hvdXIocyknKSwKICAgICAgICAgICAgICAgIGRheSAgICA9PiBUcmFuc2xhdGFibGUoJ2RheShzKScpLAogICAgICAgICAgICAgICAgd2VlayAgID0+IFRyYW5zbGF0YWJsZSgnd2VlayhzKScpLAogICAgICAgICAgICAgICAgbW9udGggID0+IFRyYW5zbGF0YWJsZSgnbW9udGgocyknKSwKICAgICAgICAgICAgICAgIHllYXIgICA9PiBUcmFuc2xhdGFibGUoJ3llYXIocyknKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAkVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnLAogICAgICAgICAgICBTZWxlY3RlZElEID0+ICRKb2JEYXRheyAkVHlwZSAuICdUaW1lUG9pbnRGb3JtYXQnIH0sCiAgICAgICAgKTsKICAgICAgICAkSm9iRGF0YXsgJFR5cGUgLiAnVGltZVN0YXJ0JyB9ID0gJExheW91dE9iamVjdC0+QnVpbGREYXRlU2VsZWN0aW9uKAogICAgICAgICAgICAlSm9iRGF0YSwKICAgICAgICAgICAgUHJlZml4ICAgPT4gJFR5cGUgLiAnVGltZVN0YXJ0JywKICAgICAgICAgICAgRm9ybWF0ICAgPT4gJ0RhdGVJbnB1dEZvcm1hdCcsCiAgICAgICAgICAgIERpZmZUaW1lID0+IC0oIDYwICogNjAgKiAyNCApICogMzAsCiAgICAgICAgICAgIFZhbGlkYXRlID0+IDEsCiAgICAgICAgKTsKICAgICAgICAkSm9iRGF0YXsgJFR5cGUgLiAnVGltZVN0b3AnIH0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZERhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgICVKb2JEYXRhLAogICAgICAgICAgICBQcmVmaXggICA9PiAkVHlwZSAuICdUaW1lU3RvcCcsCiAgICAgICAgICAgIEZvcm1hdCAgID0+ICdEYXRlSW5wdXRGb3JtYXQnLAogICAgICAgICAgICBWYWxpZGF0ZSA9PiAxLAogICAgICAgICk7CiAgICB9CgogICAgJEpvYkRhdGF7RGVsZXRlT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJENvbmZpZ09iamVjdC0+R2V0KCdZZXNOb09wdGlvbnMnKSwKICAgICAgICBOYW1lICAgICAgID0+ICdOZXdEZWxldGUnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJEpvYkRhdGF7TmV3RGVsZXRlfSB8fCAwLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwogICAgJEpvYkRhdGF7VmFsaWRPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1llc05vT3B0aW9ucycpLAogICAgICAgIE5hbWUgICAgICAgPT4gJ1ZhbGlkJywKICAgICAgICBTZWxlY3RlZElEID0+IGRlZmluZWQoICRKb2JEYXRhe1ZhbGlkfSApID8gJEpvYkRhdGF7VmFsaWR9IDogMSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAjIGdldCBsb2NrIG9iamVjdAogICAgbXkgJExvY2tPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9jaycpOwoKICAgICRKb2JEYXRhe0xvY2tPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICRMb2NrT2JqZWN0LT5Mb2NrTGlzdCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ0xvY2tJRHMnLAogICAgICAgIE11bHRpcGxlICAgPT4gMSwKICAgICAgICBTaXplICAgICAgID0+IDMsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkSm9iRGF0YXtMb2NrSURzfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKICAgICRKb2JEYXRhe05ld0xvY2tPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICRMb2NrT2JqZWN0LT5Mb2NrTGlzdCgKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAxLAogICAgICAgICAgICAgICAgQWN0aW9uID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ05ld0xvY2tJRCcsCiAgICAgICAgU2l6ZSAgICAgICA9PiAzLAogICAgICAgIE11bHRpcGxlICAgPT4gMCwKICAgICAgICBTZWxlY3RlZElEID0+ICRKb2JEYXRhe05ld0xvY2tJRH0sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgIyBTaG93IHNlcnZlciBlcnJvcnMgaWYgdGlja2V0IHNlbGVjdGlvbiBjb250YWlucyBzdG9wIHdvcmRzCiAgICBteSAlU3RvcFdvcmRzU2VydmVyRXJyb3JzOwogICAgaWYgKCAhJFBhcmFte1N0b3BXb3Jkc0FscmVhZHlDaGVja2VkfSApIHsKICAgICAgICAlU3RvcFdvcmRzU2VydmVyRXJyb3JzID0gJFNlbGYtPl9TdG9wV29yZHNTZXJ2ZXJFcnJvcnNHZXQoCiAgICAgICAgICAgIE1JTUVCYXNlX0Zyb20gICAgPT4gJEpvYkRhdGF7TUlNRUJhc2VfRnJvbX0sCiAgICAgICAgICAgIE1JTUVCYXNlX1RvICAgICAgPT4gJEpvYkRhdGF7TUlNRUJhc2VfVG99LAogICAgICAgICAgICBNSU1FQmFzZV9DYyAgICAgID0+ICRKb2JEYXRhe01JTUVCYXNlX0NjfSwKICAgICAgICAgICAgTUlNRUJhc2VfU3ViamVjdCA9PiAkSm9iRGF0YXtNSU1FQmFzZV9TdWJqZWN0fSwKICAgICAgICAgICAgTUlNRUJhc2VfQm9keSAgICA9PiAkSm9iRGF0YXtNSU1FQmFzZV9Cb2R5fSwKICAgICAgICApOwogICAgfQoKICAgICMgUkVNQVJLOiB3ZSBjaGFuZ2VkIHRoZSB3b3JkaW5nICJTZW5kIG5vIG5vdGlmaWNhdGlvbnMiIHRvCiAgICAjICJTZW5kIGFnZW50L2N1c3RvbWVyIG5vdGlmaWNhdGlvbnMgb24gY2hhbmdlcyIgaW4gZnJvbnRlbmQuCiAgICAjIEJ1dCB0aGUgYmFja2VuZCBjb2RlIGlzIHN0aWxsIHRoZSBzYW1lIChjb21wYXRpYmlsaXR5KS4KICAgICMgQmVjYXVzZSBvZiB0aGlzIGNhc2Ugd2UgY2hhbmdlZCAxPT4nWWVzJyB0byAxPT4nTm8nCiAgICAkSm9iRGF0YXtTZW5kTm9Ob3RpZmljYXRpb25PcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICcxJyA9PiBUcmFuc2xhdGFibGUoJ05vJyksCiAgICAgICAgICAgICcwJyA9PiBUcmFuc2xhdGFibGUoJ1llcycpLAogICAgICAgIH0sCiAgICAgICAgTmFtZSAgICAgICA9PiAnTmV3U2VuZE5vTm90aWZpY2F0aW9uJywKICAgICAgICBTZWxlY3RlZElEID0+ICRKb2JEYXRhe05ld1NlbmROb05vdGlmaWNhdGlvbn0gfHwgMCwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICAkSm9iRGF0YXtBbGxvd0N1c3RvbVNjcmlwdEV4ZWN1dGlvbn0gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6R2VuZXJpY0FnZW50QWxsb3dDdXN0b21TY3JpcHRFeGVjdXRpb24nKSB8fCAwOwogICAgJEpvYkRhdGF7QWxsb3dDdXN0b21Nb2R1bGVFeGVjdXRpb259ID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkdlbmVyaWNBZ2VudEFsbG93Q3VzdG9tTW9kdWxlRXhlY3V0aW9uJykgfHwgMDsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25MaXN0JywKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBY3Rpb25PdmVydmlldycsCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnRWRpdCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVKb2JEYXRhLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVTdG9wV29yZHNTZXJ2ZXJFcnJvcnMsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBjaGVjayBmb3IgcHJvZmlsZSBlcnJvcnMKICAgIGlmICggZGVmaW5lZCAkUGFyYW17UHJvZmlsZUludmFsaWR9ICkgewogICAgICAgICRQYXJhbXtQcm9maWxlSW52YWxpZE1zZ30gLy89ICcnOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdQcm9maWxlSW52YWxpZE1zZycgLiAkUGFyYW17UHJvZmlsZUludmFsaWRNc2d9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBpZiB0aGUgc2NoZWR1bGUgb3B0aW9ucyBhcmUgc2VsZWN0ZWQKICAgIGlmICgKICAgICAgICAhZGVmaW5lZCAkSm9iRGF0YXtTY2hlZHVsZURheXN9LT5bMF0KICAgICAgICB8fCAhZGVmaW5lZCAkSm9iRGF0YXtTY2hlZHVsZUhvdXJzfS0+WzBdCiAgICAgICAgfHwgIWRlZmluZWQgJEpvYkRhdGF7U2NoZWR1bGVNaW51dGVzfS0+WzBdCiAgICAgICAgKQogICAgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdKb2JTY2hlZHVsZVdhcm5pbmcnLAogICAgICAgICk7CiAgICB9CgogICAgIyBidWlsZCB0eXBlIHN0cmluZwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6VHlwZScpICkgewogICAgICAgIG15ICVUeXBlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlR5cGUnKS0+VHlwZUxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkSm9iRGF0YXtUeXBlc1N0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgID0+IFwlVHlwZSwKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gJ1R5cGVJRHMnLAogICAgICAgICAgICBTZWxlY3RlZElEICA9PiAkSm9iRGF0YXtUeXBlSURzfSwKICAgICAgICAgICAgU29ydCAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgU2l6ZSAgICAgICAgPT4gMywKICAgICAgICAgICAgTXVsdGlwbGUgICAgPT4gMSwKICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVGlja2V0VHlwZScsCiAgICAgICAgICAgIERhdGEgPT4gXCVKb2JEYXRhLAogICAgICAgICk7CiAgICAgICAgJEpvYkRhdGF7TmV3VHlwZXNTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgICA9PiBcJVR5cGUsCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICdOZXdUeXBlSUQnLAogICAgICAgICAgICBTZWxlY3RlZElEICA9PiAkSm9iRGF0YXtOZXdUeXBlSUR9LAogICAgICAgICAgICBTb3J0ICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBTaXplICAgICAgICA9PiAzLAogICAgICAgICAgICBNdWx0aXBsZSAgICA9PiAwLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOZXdUaWNrZXRUeXBlJywKICAgICAgICAgICAgRGF0YSA9PiBcJUpvYkRhdGEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGJ1aWxkIHNlcnZpY2Ugc3RyaW5nCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgKSB7CgogICAgICAgICMgZ2V0IGxpc3QgdHlwZQogICAgICAgIG15ICVTZXJ2aWNlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UnKS0+U2VydmljZUxpc3QoCiAgICAgICAgICAgIFZhbGlkICAgICAgICA9PiAxLAogICAgICAgICAgICBLZWVwQ2hpbGRyZW4gPT4gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlNlcnZpY2U6OktlZXBDaGlsZHJlbicpIC8vIDAsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBteSAlTmV3U2VydmljZSA9ICVTZXJ2aWNlOwogICAgICAgICRKb2JEYXRhe1NlcnZpY2VzU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gXCVTZXJ2aWNlLAogICAgICAgICAgICBOYW1lICAgICAgICA9PiAnU2VydmljZUlEcycsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRKb2JEYXRhe1NlcnZpY2VJRHN9LAogICAgICAgICAgICBTaXplICAgICAgICA9PiA1LAogICAgICAgICAgICBNdWx0aXBsZSAgICA9PiAxLAogICAgICAgICAgICBUcmVlVmlldyAgICA9PiAkVHJlZVZpZXcsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgICAgIE1heCAgICAgICAgID0+IDIwMCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKICAgICAgICAkSm9iRGF0YXtOZXdTZXJ2aWNlc1N0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgID0+IFwlTmV3U2VydmljZSwKICAgICAgICAgICAgTmFtZSAgICAgICAgPT4gJ05ld1NlcnZpY2VJRCcsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgID0+ICRKb2JEYXRhe05ld1NlcnZpY2VJRH0sCiAgICAgICAgICAgIFNpemUgICAgICAgID0+IDUsCiAgICAgICAgICAgIE11bHRpcGxlICAgID0+IDAsCiAgICAgICAgICAgIFRyZWVWaWV3ICAgID0+ICRUcmVlVmlldywKICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICAgICAgTWF4ICAgICAgICAgPT4gMjAwLAogICAgICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwogICAgICAgIG15ICVTTEEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U0xBJyktPlNMQUxpc3QoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkSm9iRGF0YXtTTEFzU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gXCVTTEEsCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICdTTEFJRHMnLAogICAgICAgICAgICBTZWxlY3RlZElEICA9PiAkSm9iRGF0YXtTTEFJRHN9LAogICAgICAgICAgICBTb3J0ICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBTaXplICAgICAgICA9PiA1LAogICAgICAgICAgICBNdWx0aXBsZSAgICA9PiAxLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBNYXggICAgICAgICA9PiAyMDAsCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CiAgICAgICAgJEpvYkRhdGF7TmV3U0xBc1N0cmd9ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgID0+IFwlU0xBLAogICAgICAgICAgICBOYW1lICAgICAgICA9PiAnTmV3U0xBSUQnLAogICAgICAgICAgICBTZWxlY3RlZElEICA9PiAkSm9iRGF0YXtOZXdTTEFJRH0sCiAgICAgICAgICAgIFNvcnQgICAgICAgID0+ICdBbHBoYW51bWVyaWNWYWx1ZScsCiAgICAgICAgICAgIFNpemUgICAgICAgID0+IDUsCiAgICAgICAgICAgIE11bHRpcGxlICAgID0+IDAsCiAgICAgICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgICAgIE1heCAgICAgICAgID0+IDIwMCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnVGlja2V0U2VydmljZScsCiAgICAgICAgICAgIERhdGEgPT4geyVKb2JEYXRhfSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOZXdUaWNrZXRTZXJ2aWNlJywKICAgICAgICAgICAgRGF0YSA9PiB7JUpvYkRhdGF9LAogICAgICAgICk7CiAgICB9CgogICAgIyB0aWNrZXQgcmVzcG9uc2libGUgc3RyaW5nCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICkgewogICAgICAgICRKb2JEYXRhe1Jlc3BvbnNpYmxlU3RyZ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgPT4gXCVTaG93blVzZXJzLAogICAgICAgICAgICBOYW1lICAgICAgICA9PiAnUmVzcG9uc2libGVJRHMnLAogICAgICAgICAgICBTaXplICAgICAgICA9PiA1LAogICAgICAgICAgICBNdWx0aXBsZSAgICA9PiAxLAogICAgICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgICAgICBTZWxlY3RlZElEICA9PiAkSm9iRGF0YXtSZXNwb25zaWJsZUlEc30sCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CiAgICAgICAgJEpvYkRhdGF7TmV3UmVzcG9uc2libGVTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgICA9PiBcJVNob3duVXNlcnMsCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICdOZXdSZXNwb25zaWJsZUlEJywKICAgICAgICAgICAgU2l6ZSAgICAgICAgPT4gNSwKICAgICAgICAgICAgTXVsdGlwbGUgICAgPT4gMCwKICAgICAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJEpvYkRhdGF7TmV3UmVzcG9uc2libGVJRH0sCiAgICAgICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ1RpY2tldFJlc3BvbnNpYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7JUpvYkRhdGF9LAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05ld1RpY2tldFJlc3BvbnNpYmxlJywKICAgICAgICAgICAgRGF0YSA9PiB7JUpvYkRhdGF9LAogICAgICAgICk7CiAgICB9CgogICAgIyBwcmVwYXJlIGFyY2hpdmUKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkFyY2hpdmVTeXN0ZW0nKSApIHsKCiAgICAgICAgJEpvYkRhdGF7J1NlYXJjaEluQXJjaGl2ZVN0cmcnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEFyY2hpdmVkVGlja2V0cyAgICA9PiBUcmFuc2xhdGFibGUoJ0FyY2hpdmVkIHRpY2tldHMnKSwKICAgICAgICAgICAgICAgIE5vdEFyY2hpdmVkVGlja2V0cyA9PiBUcmFuc2xhdGFibGUoJ1VuYXJjaGl2ZWQgdGlja2V0cycpLAogICAgICAgICAgICAgICAgQWxsVGlja2V0cyAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnQWxsIHRpY2tldHMnKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTmFtZSAgICAgICA9PiAnU2VhcmNoSW5BcmNoaXZlJywKICAgICAgICAgICAgU2VsZWN0ZWRJRCA9PiAkSm9iRGF0YXtTZWFyY2hJbkFyY2hpdmV9IHx8ICdBbGxUaWNrZXRzJywKICAgICAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnU2VhcmNoSW5BcmNoaXZlJywKICAgICAgICAgICAgRGF0YSA9PiB7JUpvYkRhdGF9LAogICAgICAgICk7CgogICAgICAgICRKb2JEYXRheydOZXdBcmNoaXZlRmxhZ1N0cmcnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICd5JyA9PiBUcmFuc2xhdGFibGUoJ2FyY2hpdmUgdGlja2V0cycpLAogICAgICAgICAgICAgICAgJ24nID0+IFRyYW5zbGF0YWJsZSgncmVzdG9yZSB0aWNrZXRzIGZyb20gYXJjaGl2ZScpLAogICAgICAgICAgICB9LAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJ05ld0FyY2hpdmVGbGFnJywKICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgIFNlbGVjdGVkSUQgICA9PiAkSm9iRGF0YXtOZXdBcmNoaXZlRmxhZ30gfHwgJycsCiAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICAgICApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTmV3QXJjaGl2ZUZsYWcnLAogICAgICAgICAgICBEYXRhID0+IHslSm9iRGF0YX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNyZWF0ZSBkeW5hbWljIGZpZWxkIEhUTUwgZm9yIHNldCB3aXRoIGhpc3RvcmljYWwgZGF0YSBvcHRpb25zCiAgICBteSAkUHJpbnREeW5hbWljRmllbGRzU2VhcmNoSGVhZGVyID0gMTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICBteSBAQWRkRHluYW1pY0ZpZWxkczsKICAgIG15ICVEeW5hbWljRmllbGRzSlM7CgogICAgIyBjeWNsZSB0aHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBnZXQgc2VhcmNoIGZpZWxkIHByZWZlcmVuY2VzCiAgICAgICAgbXkgJFNlYXJjaEZpZWxkUHJlZmVyZW5jZXMgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQcmVmZXJlbmNlcygKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgKTsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzQXJyYXlSZWZXaXRoRGF0YSgkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyk7CgogICAgICAgICMgVHJhbnNsYXRlIGR5bmFtaWMgZmllbGQgbGFiZWwuCiAgICAgICAgbXkgJFRyYW5zbGF0ZWREeW5hbWljRmllbGRMYWJlbCA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSwKICAgICAgICApOwoKICAgICAgICBQUkVGRVJFTkNFOgogICAgICAgIGZvciBteSAkUHJlZmVyZW5jZSAoIEB7JFNlYXJjaEZpZWxkUHJlZmVyZW5jZXN9ICkgewoKICAgICAgICAgICAgIyBUcmFuc2xhdGUgdGhlIHN1ZmZpeC4KICAgICAgICAgICAgbXkgJFRyYW5zbGF0ZWRTdWZmaXggPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICAgICAkUHJlZmVyZW5jZS0+e0xhYmVsU3VmZml4fSwKICAgICAgICAgICAgKSB8fCAnJzsKCiAgICAgICAgICAgIGlmICgkVHJhbnNsYXRlZFN1ZmZpeCkgewogICAgICAgICAgICAgICAgJFRyYW5zbGF0ZWRTdWZmaXggPSAnICgnIC4gJFRyYW5zbGF0ZWRTdWZmaXggLiAnKSc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRLZXkgID0gJ1NlYXJjaF9EeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSAuICRQcmVmZXJlbmNlLT57VHlwZX07CiAgICAgICAgICAgIG15ICRUZXh0ID0gJFRyYW5zbGF0ZWREeW5hbWljRmllbGRMYWJlbCAuICRUcmFuc2xhdGVkU3VmZml4OwoKICAgICAgICAgICAgIyBTYXZlIGFsbCBkeW5hbWljIGZpZWxkcyBmb3IgSlMuCiAgICAgICAgICAgICREeW5hbWljRmllbGRzSlN7JEtleX0gPSB7CiAgICAgICAgICAgICAgICBJRCAgID0+ICREeW5hbWljRmllbGRDb25maWctPntJRH0sCiAgICAgICAgICAgICAgICBUeXBlID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICBUZXh0ID0+ICRUZXh0LAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgIyBEZWNpZGUgaWYgZHluYW1pYyBmaWVsZCBnbyB0byBhZGQgZmllbGRzIGRyb3Bkb3duIG9yIHNlbGVjdGVkIGZpZWxkcyBhcmVhLgogICAgICAgICAgICBpZiAoIGRlZmluZWQgJEpvYkRhdGF7JEtleX0gKSB7CgogICAgICAgICAgICAgICAgIyBHZXQgZmllbGQgSFRNTC4KICAgICAgICAgICAgICAgIG15ICREeW5hbWljRmllbGRIVE1MID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlNlYXJjaEZpZWxkUmVuZGVyKAogICAgICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgICAgIFByb2ZpbGUgICAgICAgICAgICA9PiBcJUpvYkRhdGEsCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICRTZWxmLT57Q29uZmlnfS0+e0RlZmF1bHRzfS0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICAgICAgTGF5b3V0T2JqZWN0ICAgICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgICAgIENvbmZpcm1hdGlvbkNoZWNrYm94ZXMgPT4gMSwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgUFJFRkVSRU5DRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZEhUTUwpOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1NlbGVjdGVkRHluYW1pY0ZpZWxkcycsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIExhYmVsID0+ICREeW5hbWljRmllbGRIVE1MLT57TGFiZWx9LAogICAgICAgICAgICAgICAgICAgICAgICBGaWVsZCA9PiAkRHluYW1pY0ZpZWxkSFRNTC0+e0ZpZWxkfSwKICAgICAgICAgICAgICAgICAgICAgICAgSUQgICAgPT4gJEtleSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHB1c2ggQEFkZER5bmFtaWNGaWVsZHMsIHsKICAgICAgICAgICAgICAgICAgICBLZXkgICA9PiAkS2V5LAogICAgICAgICAgICAgICAgICAgIFZhbHVlID0+ICRUZXh0LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBteSAkRHluYW1pY0ZpZWxkc1N0cmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICBEYXRhICAgICAgICAgPT4gXEBBZGREeW5hbWljRmllbGRzLAogICAgICAgIE5hbWUgICAgICAgICA9PiAnQWRkRHluYW1pY0ZpZWxkcycsCiAgICAgICAgTXVsdGlwbGUgICAgID0+IDAsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FkZER5bmFtaWNGaWVsZHMnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRzU3RyZyA9PiAkRHluYW1pY0ZpZWxkc1N0cmcsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBjcmVhdGUgZHluYW1pYyBmaWVsZCBIVE1MIGZvciBzZXQgd2l0aCBoaXN0b3JpY2FsIGRhdGEgb3B0aW9ucwogICAgbXkgJFByaW50RHluYW1pY0ZpZWxkc0VkaXRIZWFkZXIgPSAxOwoKICAgICMgZ2V0IHBhcmFtIG9iamVjdAogICAgbXkgJFBhcmFtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwoKICAgIG15IEBBZGROZXdEeW5hbWljRmllbGRzOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBDaGVjayBpZiBmaWVsZCBpcyBBdHRhY2htZW50IHR5cGUgKCBmcm9tIE9UT0JPRHluYW1pY0ZpZWxkQXR0YWNobWVudCApCiAgICAgICAgIyAgIHRoaXMgZmllbGQgaXMgbm90IHVwZGF0YWJsZSBieSBHZW5lcmljIEFnZW50CiAgICAgICAgbXkgJElzQXR0YWNobWVudCA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNBdHRhY2htZW50JywKICAgICAgICApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICRJc0F0dGFjaG1lbnQ7CgogICAgICAgIG15ICRQb3NzaWJsZVZhbHVlc0ZpbHRlcjsKCiAgICAgICAgbXkgJElzQUNMUmVkdWNpYmxlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0FDTFJlZHVjaWJsZScsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCRJc0FDTFJlZHVjaWJsZSkgewoKICAgICAgICAgICAgIyBnZXQgUG9zc2libGVWYWx1ZXMKICAgICAgICAgICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlBvc3NpYmxlVmFsdWVzR2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIGlmIGZpZWxkIGhhcyBQb3NzaWJsZVZhbHVlcyBwcm9wZXJ0eSBpbiBpdHMgY29uZmlndXJhdGlvbgogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRQb3NzaWJsZVZhbHVlcykgKSB7CgogICAgICAgICAgICAgICAgIyBjb252ZXJ0IHBvc3NpYmxlIHZhbHVlcyBrZXkgPT4gdmFsdWUgdG8ga2V5ID0+IGtleSBmb3IgQUNMcyB1c2luZyBhIEhhc2ggc2xpY2UKICAgICAgICAgICAgICAgIG15ICVBY2xEYXRhID0gJXskUG9zc2libGVWYWx1ZXN9OwogICAgICAgICAgICAgICAgQEFjbERhdGF7IGtleXMgJUFjbERhdGEgfSA9IGtleXMgJUFjbERhdGE7CgogICAgICAgICAgICAgICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgICAgICAgICAgICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICAgICAgICAgICAgICAjIHNldCBwb3NzaWJsZSB2YWx1ZXMgZmlsdGVyIGZyb20gQUNMcwogICAgICAgICAgICAgICAgbXkgJEFDTCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbCgKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgID0+ICRTZWxmLT57QWN0aW9ufSwKICAgICAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgID0+ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgICAgICAgICBSZXR1cm5UeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgICAgICAgICAgICAgIFJldHVyblN1YlR5cGUgPT4gJ0R5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICAgPT4gXCVBY2xEYXRhLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGlmICgkQUNMKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJUZpbHRlciA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEFjbERhdGEoKTsKCiAgICAgICAgICAgICAgICAgICAgIyBjb252ZXJ0IEZpbGVyIGtleSA9PiBrZXkgYmFjayB0byBrZXkgPT4gdmFsdWUgdXNpbmcgbWFwCiAgICAgICAgICAgICAgICAgICAgJXskUG9zc2libGVWYWx1ZXNGaWx0ZXJ9ID0gbWFwIHsgJF8gPT4gJFBvc3NpYmxlVmFsdWVzLT57JF99IH0KICAgICAgICAgICAgICAgICAgICAgICAga2V5cyAlRmlsdGVyOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkS2V5ICA9ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfTsKICAgICAgICBteSAkVXNlZCA9IDA7CiAgICAgICAgaWYgKCBkZWZpbmVkICRKb2JEYXRheyAkS2V5IC4gJ1VzZWQnIH0gKSB7CiAgICAgICAgICAgICRLZXkgLj0gJ1VzZWQnOwogICAgICAgICAgICAkVXNlZCA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIFNhdmUgYWxsIG5ldyBkeW5hbWljIGZpZWxkcyBmb3IgSlMuCiAgICAgICAgJER5bmFtaWNGaWVsZHNKU3skS2V5fSA9IHsKICAgICAgICAgICAgSUQgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57SUR9LAogICAgICAgICAgICBUZXh0ID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICB9OwoKICAgICAgICAjIERlY2lkZSBpZiBkeW5hbWljIGZpZWxkIGdvIHRvIGFkZCBmaWVsZHMgZHJvcGRvd24gb3Igc2VsZWN0ZWQgZmllbGRzIGFyZWEuCiAgICAgICAgIwogICAgICAgICMgRmlyc3Qgc3RhdGVtZW50IHBhcnQgLSBpZiB3ZSBoYXZlIGEgZGVmaW5lZCB2YWx1ZS4KICAgICAgICAjCiAgICAgICAgIyBTZWNvbmQgc3RhdGVtZW50IHBhcnQgLSBpZiB3ZSBoYXZlIGVtcHR5IHZhbHVlIHdoaWNoIGNhbiBiZSB2YWxpZCBpZgogICAgICAgICMgY3VycmVudCBkeW5hbWljIGZpZWxkIGhhcyBlbXB0eSB2YWx1ZSBpbiBpdHMgY29uZmlndXJhdGlvbiAoUG9zc2libGVOb25lKS4KICAgICAgICAjCiAgICAgICAgIyBUaGlyZCBzdGF0ZW1lbnQgcGFydCAtIGl0IGlzIGZvciBEYXRlLCBEYXRlVGltZSBhbmQgc2ltaWxhciBmaWVsZHMgd2hpY2ggaGFzCiAgICAgICAgIyBhIGNoZWNrYm94ICJmbGFnIiBmb3IgaW5jbHVkaW5nIGl0cyB2YWx1ZSB0byBHQSBjb25maWcuIEl0IG11c3QgcmV0dXJuCiAgICAgICAgIyBmYWxzZSBpZiBjaGVja2JveCBpcyB1bmNoZWNrZWQgKGluIERCIHZhbHVlIGlzIDAsIG5vdCBlbXB0eSBzdHJpbmcgb3IgdW5kZWYpLAogICAgICAgICMgb3RoZXJ3aXNlIG11c3QgYmUgdHJ1ZSAoZm9yIG90aGVyIGR5bmFtaWMgZmllbGRzIG9yIGNoZWNrZWQgY2hlY2tib3gpLgogICAgICAgIGlmICgKICAgICAgICAgICAgZGVmaW5lZCAkSm9iRGF0YXskS2V5fQogICAgICAgICAgICAmJiAoCiAgICAgICAgICAgICAgICAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfS0+e1Bvc3NpYmxlTm9uZX0KICAgICAgICAgICAgICAgIHx8ICRKb2JEYXRheyRLZXl9IG5lICcnCiAgICAgICAgICAgICkKICAgICAgICAgICAgJiYgKCAhJFVzZWQgfHwgJEpvYkRhdGF7JEtleX0gKQogICAgICAgICAgICApCiAgICAgICAgewoKICAgICAgICAgICAgIyBHZXQgZmllbGQgSFRNTC4KICAgICAgICAgICAgbXkgJER5bmFtaWNGaWVsZEhUTUwgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+RWRpdEZpZWxkUmVuZGVyKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzRmlsdGVyID0+ICRQb3NzaWJsZVZhbHVlc0ZpbHRlciwKICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICAgID0+ICRMYXlvdXRPYmplY3QsCiAgICAgICAgICAgICAgICBQYXJhbU9iamVjdCAgICAgICAgICA9PiAkUGFyYW1PYmplY3QsCiAgICAgICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgICAgIENvbmZpcm1hdGlvbk5lZWRlZCAgID0+IDEsCiAgICAgICAgICAgICAgICBOb0lnbm9yZUZpZWxkICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVGVtcGxhdGUgICAgICAgICAgICAgPT4gXCVKb2JEYXRhLAogICAgICAgICAgICAgICAgTWF4TGVuZ3RoICAgICAgICAgICAgPT4gMjAwLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRIVE1MKTsKCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnU2VsZWN0ZWROZXdEeW5hbWljRmllbGRzJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIExhYmVsID0+ICREeW5hbWljRmllbGRIVE1MLT57TGFiZWx9LAogICAgICAgICAgICAgICAgICAgIEZpZWxkID0+ICREeW5hbWljRmllbGRIVE1MLT57RmllbGR9LAogICAgICAgICAgICAgICAgICAgIElEICAgID0+ICRLZXksCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcHVzaCBAQWRkTmV3RHluYW1pY0ZpZWxkcywgewogICAgICAgICAgICAgICAgS2V5ICAgPT4gJEtleSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE5ld0R5bmFtaWNGaWVsZHNTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFxAQWRkTmV3RHluYW1pY0ZpZWxkcywKICAgICAgICBOYW1lICAgICAgICAgPT4gJ0FkZE5ld0R5bmFtaWNGaWVsZHMnLAogICAgICAgIE11bHRpcGxlICAgICA9PiAwLAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdBZGROZXdEeW5hbWljRmllbGRzJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgTmV3RHluYW1pY0ZpZWxkc1N0cmcgPT4gJE5ld0R5bmFtaWNGaWVsZHNTdHJnLAogICAgICAgIH0sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QWRkSlNEYXRhKAogICAgICAgIEtleSAgID0+ICdEeW5hbWljRmllbGRzSlMnLAogICAgICAgIFZhbHVlID0+IFwlRHluYW1pY0ZpZWxkc0pTLAogICAgKTsKCiAgICAjIGdldCBldmVudCBvYmplY3QKICAgIG15ICRFdmVudE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpFdmVudCcpOwoKICAgICMgZ2V0IHJlZ2lzdGVyZWQgZXZlbnQgdHJpZ2dlcnMgZnJvbSB0aGUgY29uZmlnCiAgICBteSAlUmVnaXN0ZXJlZEV2ZW50cyA9ICRFdmVudE9iamVjdC0+RXZlbnRMaXN0KAogICAgICAgIE9iamVjdFR5cGVzID0+IFsgJ1RpY2tldCcsICdBcnRpY2xlJyBdLAogICAgKTsKCiAgICAjIGNyZWF0ZSB0aGUgZXZlbnQgdHJpZ2dlcnMgdGFibGUKICAgIGZvciBteSAkRXZlbnQgKCBAeyAkSm9iRGF0YXtFdmVudFZhbHVlc30gfHwgW10gfSApIHsKCiAgICAgICAgIyBzZXQgdGhlIGV2ZW50IHR5cGUgKCBldmVudCBvYmplY3QgbGlrZSBBcnRpY2xlIG9yIFRpY2tldCkKICAgICAgICBteSAkRXZlbnRUeXBlOwogICAgICAgIEVWRU5UVFlQRToKICAgICAgICBmb3IgbXkgJFR5cGUgKCBzb3J0IGtleXMgJVJlZ2lzdGVyZWRFdmVudHMgKSB7CiAgICAgICAgICAgIGlmICggZ3JlcCB7ICRfIGVxICRFdmVudCB9IEB7ICRSZWdpc3RlcmVkRXZlbnRzeyRUeXBlfSB9ICkgewogICAgICAgICAgICAgICAgJEV2ZW50VHlwZSA9ICRUeXBlOwogICAgICAgICAgICAgICAgbGFzdCBFVkVOVFRZUEU7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgcGFpbnQgZWFjaCBldmVudCByb3cgaW4gZXZlbnQgdHJpZ2dlcnMgdGFibGUKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRXZlbnRSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIEV2ZW50ICAgICA9PiAkRXZlbnQsCiAgICAgICAgICAgICAgICBFdmVudFR5cGUgPT4gJEV2ZW50VHlwZSB8fCAnLScsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSBARXZlbnRUeXBlTGlzdDsKICAgIG15ICRTZWxlY3RlZEV2ZW50VHlwZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdFdmVudFR5cGUnICkgfHwgJ1RpY2tldCc7CgogICAgIyBjcmVhdGUgZXZlbnQgdHJpZ2dlciBzZWxlY3RvcnMgKG9uZSBmb3IgZWFjaCB0eXBlKQogICAgVFlQRToKICAgIGZvciBteSAkVHlwZSAoIHNvcnQga2V5cyAlUmVnaXN0ZXJlZEV2ZW50cyApIHsKCiAgICAgICAgIyByZWZyZXNoIGV2ZW50IGxpc3QgZm9yIGVhY2ggZXZlbnQgdHlwZQoKICAgICAgICAjIHBhaW50IGVhY2ggc2VsZWN0b3IKICAgICAgICBteSAkRXZlbnRTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAwLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gJFJlZ2lzdGVyZWRFdmVudHN7JFR5cGV9IHx8IFtdLAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJFR5cGUgLiAnRXZlbnQnLAogICAgICAgICAgICBTb3J0ICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplIEV2ZW50TGlzdCBHZW5lcmljSW50ZXJmYWNlU3BhY2luZycsCiAgICAgICAgICAgIFRpdGxlICAgICAgICA9PiAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0V2ZW50JyksCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0V2ZW50QWRkJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBFdmVudFN0cmcgPT4gJEV2ZW50U3RyZywKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBwdXNoIEBFdmVudFR5cGVMaXN0LCAkVHlwZTsKICAgIH0KCiAgICAjIGNyZWF0ZSBldmVudCB0eXBlIHNlbGVjdG9yCiAgICBteSAkRXZlbnRUeXBlU3RyZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICAgPT4gXEBFdmVudFR5cGVMaXN0LAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0V2ZW50VHlwZScsCiAgICAgICAgU29ydCAgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFNlbGVjdGVkRXZlbnRUeXBlLAogICAgICAgIFBvc3NpYmxlTm9uZSAgPT4gMCwKICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgIFRpdGxlICAgICAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdUeXBlJyksCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnRXZlbnRUeXBlU3RyZycsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEV2ZW50VHlwZVN0cmcgPT4gJEV2ZW50VHlwZVN0cmcsCiAgICAgICAgfSwKICAgICk7CgogICAgcmV0dXJuIFwlSm9iRGF0YTsKfQoKc3ViIF9NYXNrUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgbGF5b3V0IG9iamVjdAogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAlSm9iRGF0YTsKCiAgICBpZiAoICRTZWxmLT57UHJvZmlsZX0gKSB7CiAgICAgICAgJUpvYkRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0FnZW50JyktPkpvYkdldCggTmFtZSA9PiAkU2VsZi0+e1Byb2ZpbGV9ICk7CiAgICAgICAgaWYgKCBleGlzdHMgJEpvYkRhdGF7U2VhcmNoSW5BcmNoaXZlfSAmJiAkSm9iRGF0YXtTZWFyY2hJbkFyY2hpdmV9IGVxICdBcmNoaXZlZFRpY2tldHMnICkgewogICAgICAgICAgICAkSm9iRGF0YXtBcmNoaXZlRmxhZ3N9ID0gWyd5J107CiAgICAgICAgfQogICAgICAgIGlmICggZXhpc3RzICRKb2JEYXRhe1NlYXJjaEluQXJjaGl2ZX0gJiYgJEpvYkRhdGF7U2VhcmNoSW5BcmNoaXZlfSBlcSAnQWxsVGlja2V0cycgKSB7CiAgICAgICAgICAgICRKb2JEYXRhe0FyY2hpdmVGbGFnc30gPSBbICd5JywgJ24nIF07CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigKICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ05lZWQgUHJvZmlsZSEnKSwKICAgICAgICApOwogICAgfQogICAgJEpvYkRhdGF7UHJvZmlsZX0gPSAkU2VsZi0+e1Byb2ZpbGV9OwogICAgJFBhcmFte1N1YmFjdGlvbn0gPSAkU2VsZi0+e1N1YmFjdGlvbn07CiAgICAkUGFyYW17UHJvZmlsZX0gICA9ICRTZWxmLT57UHJvZmlsZX07CgogICAgIyBkeW5hbWljIGZpZWxkcyBzZWFyY2ggcGFyYW1ldGVycyBmb3IgdGlja2V0IHNlYXJjaAogICAgbXkgJUR5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnM7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIGdldCBzZWFyY2ggZmllbGQgcHJlZmVyZW5jZXMKICAgICAgICBteSAkU2VhcmNoRmllbGRQcmVmZXJlbmNlcyA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5TZWFyY2hGaWVsZFByZWZlcmVuY2VzKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICApOwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNBcnJheVJlZldpdGhEYXRhKCRTZWFyY2hGaWVsZFByZWZlcmVuY2VzKTsKCiAgICAgICAgUFJFRkVSRU5DRToKICAgICAgICBmb3IgbXkgJFByZWZlcmVuY2UgKCBAeyRTZWFyY2hGaWVsZFByZWZlcmVuY2VzfSApIHsKCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICEkSm9iRGF0YXsKICAgICAgICAgICAgICAgICAgICAnU2VhcmNoX0R5bmFtaWNGaWVsZF8nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9CiAgICAgICAgICAgICAgICAgICAgICAgIC4gJFByZWZlcmVuY2UtPntUeXBlfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IFBSRUZFUkVOQ0U7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgZXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmcm9tIHRoZSBwcm9maWxlCiAgICAgICAgICAgIG15ICRTZWFyY2hQYXJhbWV0ZXIgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+U2VhcmNoRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgUHJvZmlsZSAgICAgICAgICAgID0+IFwlSm9iRGF0YSwKICAgICAgICAgICAgICAgIExheW91dE9iamVjdCAgICAgICA9PiAkTGF5b3V0T2JqZWN0LAogICAgICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgID0+ICRQcmVmZXJlbmNlLT57VHlwZX0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCBzZWFyY2ggcGFyYW1ldGVyCiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkU2VhcmNoUGFyYW1ldGVyICkgewogICAgICAgICAgICAgICAgJER5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnN7ICdEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJFNlYXJjaFBhcmFtZXRlci0+e1BhcmFtZXRlcn07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyByZW1vdmUgcmVzaWR1YWwgZHluYW1pYyBmaWVsZCBkYXRhIGZyb20gam9iIGRlZmluaXRpb24KICAgICMgdGhleSBhcmUgcGFzc2VkIHRocm91Z2ggZGVkaWNhdGVkIHZhcmlhYmxlIGFueXdheQogICAgUEFSQU1fTkFNRToKICAgIGZvciBteSAkUGFyYW1OYW1lICggc29ydCBrZXlzICVKb2JEYXRhICkgewogICAgICAgIG5leHQgUEFSQU1fTkFNRSBpZiAhKCAkUGFyYW1OYW1lID1+IC9eRHluYW1pY0ZpZWxkXy8gKTsKICAgICAgICBkZWxldGUgJEpvYkRhdGF7JFBhcmFtTmFtZX07CiAgICB9CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRUaWNrZXRPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwogICAgbXkgJEFydGljbGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBwZXJmb3JtIHRpY2tldCBzZWFyY2gKICAgIG15ICRHZW5lcmljQWdlbnRUaWNrZXRTZWFyY2ggPSAkQ29uZmlnT2JqZWN0LT5HZXQoIlRpY2tldDo6R2VuZXJpY0FnZW50VGlja2V0U2VhcmNoIikgfHwge307CiAgICBteSAkQ291bnRlciAgICAgICAgICAgICAgICAgID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgIFJlc3VsdCAgICAgICAgICA9PiAnQ09VTlQnLAogICAgICAgIFNvcnRCeSAgICAgICAgICA9PiAnQWdlJywKICAgICAgICBPcmRlckJ5ICAgICAgICAgPT4gJ0Rvd24nLAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgIExpbWl0ICAgICAgICAgICA9PiA2MF8wMDAsCiAgICAgICAgQ29uZGl0aW9uSW5saW5lID0+ICRHZW5lcmljQWdlbnRUaWNrZXRTZWFyY2gtPntFeHRlbmRlZFNlYXJjaENvbmRpdGlvbn0sCiAgICAgICAgJUpvYkRhdGEsCiAgICAgICAgJUR5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnMsCiAgICApIHx8IDA7CgogICAgbXkgQFRpY2tldElEcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICBSZXN1bHQgICAgICAgICAgPT4gJ0FSUkFZJywKICAgICAgICBTb3J0QnkgICAgICAgICAgPT4gJ0FnZScsCiAgICAgICAgT3JkZXJCeSAgICAgICAgID0+ICdEb3duJywKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICAgICBMaW1pdCAgICAgICAgICAgPT4gMzAsCiAgICAgICAgQ29uZGl0aW9uSW5saW5lID0+ICRHZW5lcmljQWdlbnRUaWNrZXRTZWFyY2gtPntFeHRlbmRlZFNlYXJjaENvbmRpdGlvbn0sCiAgICAgICAgJUpvYkRhdGEsCiAgICAgICAgJUR5bmFtaWNGaWVsZFNlYXJjaFBhcmFtZXRlcnMsCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbkxpc3QnLAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JywKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdSZXN1bHQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICRTZWxmLT57UHJvZmlsZX0sCiAgICAgICAgICAgIEFmZmVjdGVkSURzID0+ICRDb3VudGVyLAogICAgICAgIH0sCiAgICApOwoKICAgIG15ICRSdW5MaW1pdCA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpHZW5lcmljQWdlbnRSdW5MaW1pdCcpOwogICAgaWYgKCAkQ291bnRlciA+ICRSdW5MaW1pdCApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUnVuTGltaXQnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgIENvdW50ZXIgID0+ICRDb3VudGVyLAogICAgICAgICAgICAgICAgUnVuTGltaXQgPT4gJFJ1bkxpbWl0LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgaWYgKEBUaWNrZXRJRHMpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUmVzdWx0QmxvY2snLAogICAgICAgICk7CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFRpY2tldElEcykgewoKICAgICAgICAgICAgIyBHZXQgdGlja2V0IGRhdGEuCiAgICAgICAgICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZHMgPT4gMCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgR2V0IGFydGljbGUgZGF0YS4KICAgICAgICAgICAgbXkgQEFydGljbGVzID0gJEFydGljbGVPYmplY3QtPkFydGljbGVMaXN0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIE9ubHlGaXJzdCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAlQXJ0aWNsZTsKICAgICAgICAgICAgZm9yIG15ICRBcnRpY2xlIChAQXJ0aWNsZXMpIHsKICAgICAgICAgICAgICAgICVBcnRpY2xlID0gJEFydGljbGVPYmplY3QtPkJhY2tlbmRGb3JBcnRpY2xlKCAleyRBcnRpY2xlfSApLT5BcnRpY2xlR2V0KCAleyRBcnRpY2xlfSApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAlRGF0YSA9ICggJVRpY2tldCwgJUFydGljbGUgKTsKCiAgICAgICAgICAgICMgU2V0IG1pc3NpbmcgaW5mb3JtYXRpb24gZm9yIHRpY2tldHMgd2l0aG91dCBhcnRpY2xlcy4KICAgICAgICAgICAgaWYgKCAhJUFydGljbGUgKSB7CiAgICAgICAgICAgICAgICAkRGF0YXtTdWJqZWN0fSA9ICREYXRhe1RpdGxlfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJERhdGF7QWdlfSA9ICRMYXlvdXRPYmplY3QtPkN1c3RvbWVyQWdlKAogICAgICAgICAgICAgICAgQWdlICAgPT4gJERhdGF7QWdlfSwKICAgICAgICAgICAgICAgIFNwYWNlID0+ICcgJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJERhdGF7Y3NzfSA9ICJQcmlvcml0eUlELSREYXRhe1ByaW9yaXR5SUR9IjsKCiAgICAgICAgICAgICMgdXNlciBpbmZvCiAgICAgICAgICAgIG15ICVVc2VySW5mbyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICAgICAgVXNlciA9PiAkRGF0YXtPd25lcn0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICREYXRhe1VzZXJMYXN0bmFtZX0gID0gJFVzZXJJbmZve1VzZXJMYXN0bmFtZX07CiAgICAgICAgICAgICREYXRhe1VzZXJGaXJzdG5hbWV9ID0gJFVzZXJJbmZve1VzZXJGaXJzdG5hbWV9OwogICAgICAgICAgICAkRGF0YXtVc2VyRnVsbG5hbWV9ICA9ICRVc2VySW5mb3tVc2VyRnVsbG5hbWV9OwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1RpY2tldCcsCiAgICAgICAgICAgICAgICBEYXRhID0+IFwlRGF0YSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggJEpvYkRhdGF7TmV3RGVsZXRlfSApIHsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdEZWxldGVXYXJuaW5nJywKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBIVE1MIHNlYXJjaCBtYXNrIG91dHB1dAogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigKICAgICAgICBUaXRsZSA9PiBUcmFuc2xhdGFibGUoJ0FmZmVjdGVkIFRpY2tldHMnKSwKICAgICk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5HZW5lcmljQWdlbnQnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAjIGJ1aWxkIGZvb3RlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX1N0b3BXb3Jkc1NlcnZlckVycm9yc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISVQYXJhbSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPkZhdGFsRXJyb3IoCiAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdHb3Qgbm8gdmFsdWVzIHRvIGNoZWNrLicpLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJEFydGljbGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0OjpBcnRpY2xlJyk7CgogICAgbXkgJVN0b3BXb3Jkc1NlcnZlckVycm9yczsKICAgIGlmICggISRBcnRpY2xlT2JqZWN0LT5TZWFyY2hTdHJpbmdTdG9wV29yZHNVc2FnZVdhcm5pbmdBY3RpdmUoKSApIHsKICAgICAgICByZXR1cm4gJVN0b3BXb3Jkc1NlcnZlckVycm9yczsKICAgIH0KCiAgICBteSAlU2VhcmNoU3RyaW5nczsKCiAgICBGSUVMRDoKICAgIGZvciBteSAkRmllbGQgKCBzb3J0IGtleXMgJVBhcmFtICkgewogICAgICAgIG5leHQgRklFTEQgaWYgIWRlZmluZWQgJFBhcmFteyRGaWVsZH07CiAgICAgICAgbmV4dCBGSUVMRCBpZiAhbGVuZ3RoICRQYXJhbXskRmllbGR9OwoKICAgICAgICAkU2VhcmNoU3RyaW5nc3skRmllbGR9ID0gJFBhcmFteyRGaWVsZH07CiAgICB9CgogICAgaWYgKCVTZWFyY2hTdHJpbmdzKSB7CgogICAgICAgIG15ICRTdG9wV29yZHMgPSAkQXJ0aWNsZU9iamVjdC0+U2VhcmNoU3RyaW5nU3RvcFdvcmRzRmluZCgKICAgICAgICAgICAgU2VhcmNoU3RyaW5ncyA9PiBcJVNlYXJjaFN0cmluZ3MsCiAgICAgICAgKTsKCiAgICAgICAgRklFTEQ6CiAgICAgICAgZm9yIG15ICRGaWVsZCAoIHNvcnQga2V5cyAleyRTdG9wV29yZHN9ICkgewogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICFkZWZpbmVkICRTdG9wV29yZHMtPnskRmllbGR9OwogICAgICAgICAgICBuZXh0IEZJRUxEIGlmIHJlZiAkU3RvcFdvcmRzLT57JEZpZWxkfSBuZSAnQVJSQVknOwogICAgICAgICAgICBuZXh0IEZJRUxEIGlmICFAeyAkU3RvcFdvcmRzLT57JEZpZWxkfSB9OwoKICAgICAgICAgICAgJFN0b3BXb3Jkc1NlcnZlckVycm9yc3sgJEZpZWxkIC4gJ0ludmFsaWQnIH0gICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgJFN0b3BXb3Jkc1NlcnZlckVycm9yc3sgJEZpZWxkIC4gJ0ludmFsaWRUb29sdGlwJyB9ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT57TGFuZ3VhZ2VPYmplY3R9CiAgICAgICAgICAgICAgICAtPlRyYW5zbGF0ZSgnUGxlYXNlIHJlbW92ZSB0aGUgZm9sbG93aW5nIHdvcmRzIGJlY2F1c2UgdGhleSBjYW5ub3QgYmUgdXNlZCBmb3IgdGhlIHRpY2tldCBzZWxlY3Rpb246JykKICAgICAgICAgICAgICAgIC4gJyAnCiAgICAgICAgICAgICAgICAuIGpvaW4oICcsJywgc29ydCBAeyAkU3RvcFdvcmRzLT57JEZpZWxkfSB9ICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAlU3RvcFdvcmRzU2VydmVyRXJyb3JzOwp9CgoxOwo=</File>
        <File Location="Custom/Kernel/Modules/AdminGenericInterfaceWebservice.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5HZW5lcmljSW50ZXJmYWNlV2Vic2VydmljZS5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+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+e0NvbmZpZ30tPntGcmFtZXdvcmtWZXJzaW9ufSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVmVyc2lvbicpOwoKICAgICAgICAjIENoZWNrIGZvciB2YWxpZCB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRXZWJzZXJ2aWNlRGF0YSkgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICdDb3VsZCBub3QgZ2V0IGRhdGEgZm9yIFdlYnNlcnZpY2VJRCAlcycsICRXZWJzZXJ2aWNlSUQgKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgRHVtcCBjb25maWd1cmF0aW9uIGludG8gYSBZQU1MIHN0cnVjdHVyZS4KIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCiMgICAgICAgICBteSAkWUFNTENvbnRlbnQgPSAkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiAkV2Vic2VydmljZURhdGEtPntDb25maWd9ICk7CiAgICAgICAgIyBleHBvcnQgd2Vic2VydmljZSBuYW1lIHRvIGJlIGZsZXhpYmxlIHJlZ2FyZGluZyBmaWxlbmFtZQogICAgICAgIG15ICRZQU1MQ29udGVudCA9ICRZQU1MT2JqZWN0LT5EdW1wKCBEYXRhID0+IHsKICAgICAgICAgICAgICAgICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPiUqLAogICAgICAgICAgICAgICAgTmFtZSA9PiAkV2Vic2VydmljZURhdGEtPntOYW1lfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwoKICAgICAgICAjIFJldHVybiBZQU1MIHRvIGRvd25sb2FkLgogICAgICAgIG15ICRZQU1MRmlsZSA9ICRXZWJzZXJ2aWNlRGF0YS0+e05hbWV9OwogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAkWUFNTEZpbGUgLiAnLnltbCcsCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICJ0ZXh0L3BsYWluOyBjaGFyc2V0PSIgLiAkTGF5b3V0T2JqZWN0LT57VXNlckNoYXJzZXR9LAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkWUFNTENvbnRlbnQsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3ViLWFjdGlvbiBEZWxldGU6IGRlbGV0ZSB3ZWIgc2VydmljZSBhbmQgcmV0dXJuIHZhbHVlIHRvIGRpYWxvZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRGVsZXRlJyApIHsKCiAgICAgICAgIyBDaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbi4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgZ2V0IHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24KICAgICAgICBteSAkV2Vic2VydmljZURhdGEgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUdldCgKICAgICAgICAgICAgSUQgPT4gJFdlYnNlcnZpY2VJRCwKICAgICAgICApOwoKICAgICAgICBteSAkU3VjY2VzcyA9ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlRGVsZXRlKAogICAgICAgICAgICBJRCAgICAgPT4gJFdlYnNlcnZpY2VJRCwKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIEJ1aWxkIEpTT04gb3V0cHV0LgogICAgICAgIG15ICRKU09OID0gJExheW91dE9iamVjdC0+SlNPTkVuY29kZSgKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgICAgICA9PiAkU3VjY2VzcywKICAgICAgICAgICAgICAgIERlbGV0ZWRXZWJzZXJ2aWNlID0+ICRXZWJzZXJ2aWNlRGF0YS0+e05hbWV9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgU2VuZCBKU09OIHJlc3BvbnNlLgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAnYXBwbGljYXRpb24vanNvbicsCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRKU09OLAogICAgICAgICAgICBUeXBlICAgICAgICA9PiAnaW5saW5lJywKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzdWItYWN0aW9uIENsb25lOiBjbG9uZSB3ZWIgc2VydmljZSBhbmQgcmV0dXJuIHZhbHVlIHRvIGRpYWxvZwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2xvbmUnICkgewoKICAgICAgICAjIENoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uLgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgIyBDaGVjayBmb3IgV2Vic2VydmljZUlELgogICAgICAgIGlmICggISRXZWJzZXJ2aWNlSUQgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIFdlYnNlcnZpY2VJRCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgR2V0IHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uCiAgICAgICAgbXkgJFdlYnNlcnZpY2VEYXRhID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VHZXQoCiAgICAgICAgICAgIElEID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBDaGVjayBmb3IgdmFsaWQgd2ViIHNlcnZpY2UgY29uZmlndXJhdGlvbi4KICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkV2Vic2VydmljZURhdGEpICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBnZXQgZGF0YSBmb3IgV2Vic2VydmljZUlEICVzJywgJFdlYnNlcnZpY2VJRCApLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJENsb25lTmFtZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDbG9uZU5hbWUnICkgfHwgJyc7CgogICAgICAgIGlmICggISRDbG9uZU5hbWUgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdOZWVkIE5hbWUhJyksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIFNldCBuZXcgY29uZmlndXJhdGlvbi4KICAgICAgICAkV2Vic2VydmljZURhdGEtPntOYW1lfSA9ICRDbG9uZU5hbWU7CgogICAgICAgICMgQ2hlY2sgaWYgbmFtZSBpcyBkdXBsaWNhdGVkLgogICAgICAgIG15ICVXZWJzZXJ2aWNlTGlzdCA9ICV7ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlTGlzdCgpIH07CgogICAgICAgICVXZWJzZXJ2aWNlTGlzdCA9IHJldmVyc2UgJVdlYnNlcnZpY2VMaXN0OwoKICAgICAgICBpZiAoICRXZWJzZXJ2aWNlTGlzdHskQ2xvbmVOYW1lfSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PiBUcmFuc2xhdGFibGUoJ1RoZXJlIGlzIGFub3RoZXIgd2ViIHNlcnZpY2Ugd2l0aCB0aGUgc2FtZSBuYW1lLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBPdGhlcndpc2Ugc2F2ZSBjb25maWd1cmF0aW9uIGFuZCByZXR1cm4gdG8gb3ZlcnZpZXcgc2NyZWVuLgogICAgICAgIG15ICRTdWNjZXNzID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VBZGQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0sCiAgICAgICAgICAgIENvbmZpZyAgPT4gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfSwKICAgICAgICAgICAgVmFsaWRJRCA9PiAkV2Vic2VydmljZURhdGEtPntWYWxpZElEfSwKICAgICAgICAgICAgVXNlcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdUaGVyZSB3YXMgYW4gZXJyb3IgY3JlYXRpbmcgdGhlIHdlYiBzZXJ2aWNlLicpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBEZWZpbmUgbm90aWZpY2F0aW9uLgogICAgICAgIG15ICROb3RpZnkgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICdXZWIgc2VydmljZSAiJXMiIGNyZWF0ZWQhJywKICAgICAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0sCiAgICAgICAgKTsKCiAgICAgICAgIyBSZXR1cm4gdG8gb3ZlcnZpZXcuCiAgICAgICAgcmV0dXJuICRTZWxmLT5fU2hvd092ZXJ2aWV3KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIE5vdGlmeSA9PiAkTm90aWZ5LAogICAgICAgICAgICBBY3Rpb24gPT4gJ092ZXJ2aWV3JywKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgc3ViLWFjdGlvbiBJbXBvcnQ6IHBhcnNlIHRoZSBmaWxlIGFuZCByZXR1cm4gdG8gb3ZlcnZpZXcKICAgICMgICAgICAgICAgICAgICAgICAgIGlmIG5hbWUgZXJyb3JzIHJldHVybiB0byBhZGQgc2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnSW1wb3J0JyApIHsKCiAgICAgICAgIyBDaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbi4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICRJbXBvcnRlZENvbmZpZzsKCiAgICAgICAgbXkgJEhvbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKTsKCiAgICAgICAgbXkgJE1haW5PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpOwoKICAgICAgICAjIEdldCB3ZWIgc2VydmljZSBuYW1lLgogICAgICAgIG15ICRXZWJzZXJ2aWNlTmFtZTsKICAgICAgICBteSAkRXhhbXBsZVdlYlNlcnZpY2VGaWxlbmFtZSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdFeGFtcGxlV2ViU2VydmljZScgKSB8fCAnJzsKICAgICAgICBteSAkRmlsZVdpdGhvdXRFeHRlbnNpb247CgogICAgICAgIGlmICgkRXhhbXBsZVdlYlNlcnZpY2VGaWxlbmFtZSkgewogICAgICAgICAgICAkRXhhbXBsZVdlYlNlcnZpY2VGaWxlbmFtZSA9fiBzey8rfFwuezIsfX17fXNteDsgICAgIyByZW1vdmUgc2xhc2hlcyBhbmQgLi4KCiAgICAgICAgICAgIGlmICggISRFeGFtcGxlV2ViU2VydmljZUZpbGVuYW1lICkgewogICAgICAgICAgICAgICAgcmV0dXJuICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKS0+RmF0YWxFcnJvcigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBFeGFtcGxlV2ViU2VydmljZSEnKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgRXh0cmFjdCBmaWxlIG5hbWUuCiAgICAgICAgICAgICgkRmlsZVdpdGhvdXRFeHRlbnNpb24pID0gJEV4YW1wbGVXZWJTZXJ2aWNlRmlsZW5hbWUgPX4gbXsoLio/KVwueW1sJH1zbXg7CgogICAgICAgICAgICAjIFJ1biBfcHJlLnBtIGlmIGF2YWlsYWJsZS4KICAgICAgICAgICAgaWYgKCAtZSAiJEhvbWUvdmFyL3dlYnNlcnZpY2VzL2V4YW1wbGVzLyIgLiAkRmlsZVdpdGhvdXRFeHRlbnNpb24gLiAiX3ByZS5wbSIgKSB7CgogICAgICAgICAgICAgICAgbXkgJEJhY2tlbmROYW1lID0gJ3Zhcjo6d2Vic2VydmljZXM6OmV4YW1wbGVzOjonIC4gJEZpbGVXaXRob3V0RXh0ZW5zaW9uIC4gJ19wcmUnOwoKICAgICAgICAgICAgICAgIG15ICRMb2FkZWQgPSAkTWFpbk9iamVjdC0+UmVxdWlyZSgKICAgICAgICAgICAgICAgICAgICAkQmFja2VuZE5hbWUsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIGlmICggISRMb2FkZWQgKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJ0NvdWxkIG5vdCBsb2FkICVzLicsICRCYWNrZW5kTmFtZSApLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIG15ICRCYWNrZW5kUHJlID0gJEtlcm5lbDo6T00tPkdldCgKICAgICAgICAgICAgICAgICAgICAkQmFja2VuZE5hbWUsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG15ICVTdGF0dXMgPSAkQmFja2VuZFByZS0+UnVuKCk7CiAgICAgICAgICAgICAgICBpZiAoICEkU3RhdHVze1N1Y2Nlc3N9ICkgewoKICAgICAgICAgICAgICAgICAgICAjIFNob3cgdGhlIGVycm9yIHNjcmVlbi4KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gJFN0YXR1c3tFcnJvcn0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJENvbnRlbnQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5GaWxlUmVhZCgKICAgICAgICAgICAgICAgIExvY2F0aW9uID0+ICIkSG9tZS92YXIvd2Vic2VydmljZXMvZXhhbXBsZXMvJEV4YW1wbGVXZWJTZXJ2aWNlRmlsZW5hbWUiLAogICAgICAgICAgICAgICAgTW9kZSAgICAgPT4gJ3V0ZjgnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJENvbnRlbnQgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpLT5GYXRhbEVycm9yKAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAnQ291bGQgbm90IHJlYWQgJXMhJywgJEV4YW1wbGVXZWJTZXJ2aWNlRmlsZW5hbWUgKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRDb250ZW50ID0gJHsgJENvbnRlbnQgfHwgXCcnIH07CgogICAgICAgICAgICAjIFJlYWQgY29uZmlndXJhdGlvbiBmcm9tIGEgWUFNTCBzdHJ1Y3R1cmUuCiAgICAgICAgICAgICRJbXBvcnRlZENvbmZpZyA9ICRZQU1MT2JqZWN0LT5Mb2FkKCBEYXRhID0+ICRDb250ZW50ICk7CiAgICAgICAgICAgICRXZWJzZXJ2aWNlTmFtZSA9ICRFeGFtcGxlV2ViU2VydmljZUZpbGVuYW1lOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgR2V0IHRoZSB3ZWIgc2VydmljZSBjb25maWcgZmlsZSBmcm9tIHRoZSBodHRwIHJlcXVlc3QuCiAgICAgICAgICAgIG15ICVDb25maWdGaWxlID0gJFBhcmFtT2JqZWN0LT5HZXRVcGxvYWRBbGwoCiAgICAgICAgICAgICAgICBQYXJhbSA9PiAnQ29uZmlnRmlsZScsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIENoZWNrIGZvciBmaWxlLgogICAgICAgICAgICBpZiAoICElQ29uZmlnRmlsZSApIHsKICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBhIGZpbGUgdG8gaW1wb3J0IScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBSZWFkIGNvbmZpZ3VyYXRpb24gZnJvbSBhIFlBTUwgc3RydWN0dXJlLgogICAgICAgICAgICAkSW1wb3J0ZWRDb25maWcgPSAkWUFNTE9iamVjdC0+TG9hZCggRGF0YSA9PiAkQ29uZmlnRmlsZXtDb250ZW50fSApOwoKICAgICAgICAgICAgIyBHZXQgd2ViIHNlcnZpY2UgbmFtZSAob3B0aW9uYWwpLCBvdGhlcndpc2UgdXNlIGZpbGVuYW1lIG9mIGNvbmZpZyBmaWxlLgogICAgICAgICAgICAkV2Vic2VydmljZU5hbWUgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnV2Vic2VydmljZU5hbWUnICkgfHwgJyc7CiAgICAgICAgICAgIGlmICggIUlzU3RyaW5nV2l0aERhdGEoJFdlYnNlcnZpY2VOYW1lKSApIHsKCiAgICAgICAgICAgICAgICAkV2Vic2VydmljZU5hbWUgPSAkQ29uZmlnRmlsZXtGaWxlbmFtZX07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgRGlzcGxheSBhbnkgWUFNTCBlcnJvciBtZXNzYWdlIGFzIGEgbm9ybWFsIG90b2JvIGVycm9yIG1lc3NhZ2UuCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEltcG9ydGVkQ29uZmlnKSApIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkVycm9yU2NyZWVuKAogICAgICAgICAgICAgICAgTWVzc2FnZSA9PgogICAgICAgICAgICAgICAgICAgIFRyYW5zbGF0YWJsZSgnVGhlIGltcG9ydGVkIGZpbGUgaGFzIG5vdCB2YWxpZCBZQU1MIGNvbnRlbnQhIFBsZWFzZSBjaGVjayBPVE9CTyBsb2cgZm9yIGRldGFpbHMnKSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgaWYgaW1wb3J0ZWQgY29uZmlndXJhdGlvbiBoYXMgY3VycmVudCBmcmFtZXdvcmsgdmVyc2lvbiBvdGhlcndpc2UgdXBkYXRlIGl0LgogICAgICAgIGlmICgKICAgICAgICAgICAgISRJbXBvcnRlZENvbmZpZy0+e0ZyYW1ld29ya1ZlcnNpb259CiAgICAgICAgICAgIHx8ICRJbXBvcnRlZENvbmZpZy0+e0ZyYW1ld29ya1ZlcnNpb259IG5lICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVmVyc2lvbicpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRJbXBvcnRlZENvbmZpZyA9ICRTZWxmLT5fVXBkYXRlQ29uZmlndXJhdGlvbiggQ29uZmlndXJhdGlvbiA9PiAkSW1wb3J0ZWRDb25maWcgKTsKICAgICAgICB9CgogICAgICAgICMgUmVtb3ZlIGZyYW1ld29yayBpbmZvcm1hdGlvbiBzaW5jZSBpcyBub3QgbmVlZGVkIGFueW1vcmUuCiAgICAgICAgZGVsZXRlICRJbXBvcnRlZENvbmZpZy0+e0ZyYW1ld29ya1ZlcnNpb259OwoKICAgICAgICAjIFJlbW92ZSBmaWxlIGV4dGVuc2lvbi4KICAgICAgICAkV2Vic2VydmljZU5hbWUgPX4gc3tcLlteLl0rJH17fWc7CgogICAgICAgICMgQ2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycy4KICAgICAgICBteSAlRXJyb3I7CiAgICAgICAgaWYgKCAhJFdlYnNlcnZpY2VOYW1lICkgewoKICAgICAgICAgICAgIyBBZGQgc2VydmVyIGVycm9yIGVycm9yIGNsYXNzLgogICAgICAgICAgICAkRXJyb3J7TmFtZVNlcnZlckVycm9yfSAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAkRXJyb3J7TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSBUcmFuc2xhdGFibGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnKTsKICAgICAgICB9CgogICAgICAgIG15ICRXZWJzZXJ2aWNlRGF0YTsKCiAgICAgICAgIyBTZXQgV2Vic2VydmljZURhdGEuCiAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0gICAgPSAkV2Vic2VydmljZU5hbWU7CiAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfSAgPSAkSW1wb3J0ZWRDb25maWc7CiAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57VmFsaWRJRH0gPSAxOwoKICAgICAgICAjIENoZWNrIGlmIG5hbWUgaXMgZHVwbGljYXRlZC4KICAgICAgICBteSAlV2Vic2VydmljZUxpc3QgPSAleyAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUxpc3QoKSB9OwoKICAgICAgICAlV2Vic2VydmljZUxpc3QgPSByZXZlcnNlICVXZWJzZXJ2aWNlTGlzdDsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkV2Vic2VydmljZUxpc3R7JFdlYnNlcnZpY2VOYW1lfSAmJgogICAgICAgICAgICAkV2Vic2VydmljZUxpc3R7JFdlYnNlcnZpY2VOYW1lfSBuZSAkV2Vic2VydmljZUlECiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAjIEFkZCBzZXJ2ZXIgZXJyb3IgZXJyb3IgY2xhc3MuCiAgICAgICAgICAgICRFcnJvcntOYW1lU2VydmVyRXJyb3J9ICAgICAgICA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgICRFcnJvcntOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSA9IFRyYW5zbGF0YWJsZSgnVGhlcmUgaXMgYW5vdGhlciB3ZWIgc2VydmljZSB3aXRoIHRoZSBzYW1lIG5hbWUuJyk7CiAgICAgICAgfQoKICAgICAgICAjIElmIHRoZXJlIGlzIGFuIGVycm9yIHJldHVybiB0byBlZGl0IHNjcmVlbi4KICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUVycm9yICkgKSB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Nob3dFZGl0KAogICAgICAgICAgICAgICAgJUVycm9yLAogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgV2Vic2VydmljZUlEICAgPT4gJFdlYnNlcnZpY2VJRCwKICAgICAgICAgICAgICAgIFdlYnNlcnZpY2VEYXRhID0+ICRXZWJzZXJ2aWNlRGF0YSwKICAgICAgICAgICAgICAgIEFjdGlvbiAgICAgICAgID0+ICdBZGQnLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBPdGhlcndpc2Ugc2F2ZSBjb25maWd1cmF0aW9uIGFuZCByZXR1cm4gdG8gb3ZlcnZpZXcgc2NyZWVuLgogICAgICAgIG15ICRTdWNjZXNzID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VBZGQoCiAgICAgICAgICAgIE5hbWUgICAgPT4gJFdlYnNlcnZpY2VEYXRhLT57TmFtZX0sCiAgICAgICAgICAgIENvbmZpZyAgPT4gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfSwKICAgICAgICAgICAgVmFsaWRJRCA9PiAkV2Vic2VydmljZURhdGEtPntWYWxpZElEfSwKICAgICAgICAgICAgVXNlcklEICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAkRmlsZVdpdGhvdXRFeHRlbnNpb24KICAgICAgICAgICAgJiYgLWUgIiRIb21lL3Zhci93ZWJzZXJ2aWNlcy9leGFtcGxlcy8iIC4gJEZpbGVXaXRob3V0RXh0ZW5zaW9uIC4gIl9wb3N0LnBtIgogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBteSAkQmFja2VuZE5hbWUgPSAndmFyOjp3ZWJzZXJ2aWNlczo6ZXhhbXBsZXM6OicgLiAkRmlsZVdpdGhvdXRFeHRlbnNpb24gLiAnX3Bvc3QnOwoKICAgICAgICAgICAgbXkgJExvYWRlZCA9ICRNYWluT2JqZWN0LT5SZXF1aXJlKAogICAgICAgICAgICAgICAgJEJhY2tlbmROYW1lLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRMb2FkZWQpIHsKICAgICAgICAgICAgICAgIG15ICRCYWNrZW5kUG9zdCA9ICRLZXJuZWw6Ok9NLT5HZXQoCiAgICAgICAgICAgICAgICAgICAgJEJhY2tlbmROYW1lLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAlU3RhdHVzID0gJEJhY2tlbmRQb3N0LT5SdW4oKTsKICAgICAgICAgICAgICAgIGlmICggISRTdGF0dXN7U3VjY2Vzc30gKSB7CgogICAgICAgICAgICAgICAgICAgICMgU2hvdyB0aGUgZXJyb3Igc2NyZWVuLgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSA9PiAkU3RhdHVze0Vycm9yfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIERlZmluZSBub3RpZmljYXRpb24uCiAgICAgICAgbXkgJE5vdGlmeSA9ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICAgICAgICAgJ1dlYiBzZXJ2aWNlICIlcyIgY3JlYXRlZCEnLAogICAgICAgICAgICAkV2Vic2VydmljZURhdGEtPntOYW1lfSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9TaG93T3ZlcnZpZXcoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgTm90aWZ5ID0+ICROb3RpZnksCiAgICAgICAgICAgIEFjdGlvbiA9PiAnT3ZlcnZpZXcnLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBzdWItYWN0aW9uIERlbGV0ZUFjdGlvbjogZGVsZXRlIGFuIG9wZXJhdGlvbiBvciBpbnZva2VyCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRGVsZXRlQWN0aW9uJyApIHsKCiAgICAgICAgIyBDaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbi4KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIHJldHVybiAkU2VsZi0+X0RlbGV0ZUFjdGlvbigKICAgICAgICAgICAgV2Vic2VydmljZUlEID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGRlZmF1bHQ6IHNob3cgc3RhcnQgc2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgIyBHZXQgRGVsZXRlZCB3ZWIgc2VydmljZSBpZiBhbnkuCiAgICBteSAkRGVsZXRlZFdlYnNlcnZpY2UgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRGVsZXRlZFdlYnNlcnZpY2UnICkgfHwgJyc7CgogICAgbXkgJE5vdGlmeTsKCiAgICBpZiAoJERlbGV0ZWRXZWJzZXJ2aWNlKSB7CgogICAgICAgICMgZGVmaW5lIG5vdGlmaWNhdGlvbgogICAgICAgICROb3RpZnkgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICdXZWIgc2VydmljZSAiJXMiIGRlbGV0ZWQhJywKICAgICAgICAgICAgJERlbGV0ZWRXZWJzZXJ2aWNlLAogICAgICAgICk7CgogICAgfQoKICAgIHJldHVybiAkU2VsZi0+X1Nob3dPdmVydmlldygKICAgICAgICAlUGFyYW0sCiAgICAgICAgTm90aWZ5ID0+ICROb3RpZnksCiAgICAgICAgQWN0aW9uID0+ICdPdmVydmlldycsCiAgICApOwp9CgpzdWIgX1Nob3dPdmVydmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBzaG93IG5vdGlmaWNhdGlvbnMgaWYgYW55CiAgICBpZiAoICRQYXJhbXtOb3RpZnl9ICkgewogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICBJbmZvID0+ICRQYXJhbXtOb3RpZnl9LAogICAgICAgICk7CiAgICB9CgogICAgIyBDYWxsIGFsbCBuZWVkZWQgdHQgYmxvY2tzLgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnTWFpbicsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdJbmNsdWRlSW52YWxpZCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEluY2x1ZGVJbnZhbGlkICAgICAgICA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSwKICAgICAgICAgICAgSW5jbHVkZUludmFsaWRDaGVja2VkID0+ICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID8gJ2NoZWNrZWQnIDogJycsCiAgICAgICAgfSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uTGlzdCcgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25BZGQnICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnT3ZlcnZpZXdIZWFkZXInICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHQnICk7CgogICAgbXkgJFdlYnNlcnZpY2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0ludGVyZmFjZTo6V2Vic2VydmljZScpOwoKICAgICMgR2V0IHdlYiBzZXJ2aWNlcyBsaXN0LgogICAgbXkgJFdlYnNlcnZpY2VMaXN0ID0gJFdlYnNlcnZpY2VPYmplY3QtPldlYnNlcnZpY2VMaXN0KAogICAgICAgIFZhbGlkID0+ICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID8gMCA6IDEsCiAgICApOwoKICAgICMgQ2hlY2sgaWYgbm8gd2ViIHNlcnZpY2VzIGFyZSByZWdpc3RlcmVkLgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFdlYnNlcnZpY2VMaXN0KSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnTm9EYXRhRm91bmRNc2cnICk7CiAgICB9CgogICAgIyBPdGhlcndpc2Ugc2hvdyBhbGwgd2ViIHNlcnZpY2VzLgogICAgZWxzZSB7CiAgICAgICAgV0VCU0VSVklDRUlEOgogICAgICAgIGZvciBteSAkV2Vic2VydmljZUlEICgKICAgICAgICAgICAgc29ydCB7ICRXZWJzZXJ2aWNlTGlzdC0+eyRhfSBjbXAgJFdlYnNlcnZpY2VMaXN0LT57JGJ9IH0KICAgICAgICAgICAga2V5cyAleyRXZWJzZXJ2aWNlTGlzdH0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbmV4dCBXRUJTRVJWSUNFSUQgaWYgISRXZWJzZXJ2aWNlSUQ7CgogICAgICAgICAgICAjIEdldCB3ZWIgc2VydmljZSBkYXRhLgogICAgICAgICAgICBteSAkV2Vic2VydmljZSA9ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlR2V0KCBJRCA9PiAkV2Vic2VydmljZUlEICk7CiAgICAgICAgICAgIG5leHQgV0VCU0VSVklDRUlEIGlmICEkV2Vic2VydmljZTsKCiAgICAgICAgICAgICMgQ29udmVydCBWYWxpZElEIHRvIHRleHQuCiAgICAgICAgICAgIG15ICRWYWxpZFN0cmcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKS0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgICAgICBWYWxpZElEID0+ICRXZWJzZXJ2aWNlLT57VmFsaWRJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkV2Vic2VydmljZS0+e0NvbmZpZ30gfHwgIUlzSGFzaFJlZldpdGhEYXRhKCAkV2Vic2VydmljZS0+e0NvbmZpZ30gKSApIHsKCiAgICAgICAgICAgICAgICAjIFdyaXRlIGFuIGVycm9yIG1lc3NhZ2UgdG8gdGhlIE9UT0JPIGxvZy4KICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvbmZpZ3VyYXRpb24gb2YgV2Vic2VydmljZUlEICRXZWJzZXJ2aWNlSUQgaXMgaW52YWxpZCEiLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIE5vdGlmeSB0aGUgdXNlciBvZiBwcm9ibGVtcyBsb2FkaW5nIHRoaXMgd2ViIHNlcnZpY2UuCiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIENvbnRpbnVlIGxvYWRpbmcgdGhlIGxpc3Qgb2Ygd2ViIHNlcnZpY2VzLgogICAgICAgICAgICAgICAgbmV4dCBXRUJTRVJWSUNFSUQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgUHJlcGFyZSBkYXRhIHRvIG91dHB1dC4KICAgICAgICAgICAgbXkgJERhdGEgPSB7CiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgICAgICAgPT4gJFdlYnNlcnZpY2VJRCwKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgICAgICA9PiAkV2Vic2VydmljZS0+e05hbWV9LAogICAgICAgICAgICAgICAgRGVzY3JpcHRpb24gICAgICAgID0+ICRXZWJzZXJ2aWNlLT57Q29uZmlnfS0+e0Rlc2NyaXB0aW9ufSAgICAgICAgICAgICAgICAgICAgfHwgJy0nLAogICAgICAgICAgICAgICAgUmVtb3RlU3lzdGVtICAgICAgID0+ICRXZWJzZXJ2aWNlLT57Q29uZmlnfS0+e1JlbW90ZVN5c3RlbX0gICAgICAgICAgICAgICAgICAgfHwgJy0nLAogICAgICAgICAgICAgICAgUHJvdmlkZXJUcmFuc3BvcnQgID0+ICRXZWJzZXJ2aWNlLT57Q29uZmlnfS0+e1Byb3ZpZGVyfS0+e1RyYW5zcG9ydH0tPntUeXBlfSAgfHwgJy0nLAogICAgICAgICAgICAgICAgUmVxdWVzdGVyVHJhbnNwb3J0ID0+ICRXZWJzZXJ2aWNlLT57Q29uZmlnfS0+e1JlcXVlc3Rlcn0tPntUcmFuc3BvcnR9LT57VHlwZX0gfHwgJy0nLAogICAgICAgICAgICAgICAgVmFsaWQgICAgICAgICAgICAgID0+ICRWYWxpZFN0cmcsCiAgICAgICAgICAgIH07CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0Um93JywKICAgICAgICAgICAgICAgIERhdGEgPT4gJERhdGEsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5HZW5lcmljSW50ZXJmYWNlV2Vic2VydmljZScsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9TaG93RWRpdCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRXZWJzZXJ2aWNlRGF0YSA9ICRQYXJhbXtXZWJzZXJ2aWNlRGF0YX07CgogICAgbXkgJERlYnVnZ2VyRGF0YSA9ICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPntEZWJ1Z2dlcn0gfHwge307CgogICAgbXkgJFByb3ZpZGVyRGF0YSA9ICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPntQcm92aWRlcn0gfHwge307CgogICAgbXkgJFJlcXVlc3RlckRhdGEgPSAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57UmVxdWVzdGVyfSB8fCB7fTsKCiAgICBteSAkRXJyb3JIYW5kbGluZ1Byb3ZpZGVyICAgICAgICAgPSAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57UHJvdmlkZXJ9LT57RXJyb3JIYW5kbGluZ30gICAgICAgICB8fCB7fTsKICAgIG15ICRFcnJvckhhbmRsaW5nUHJpb3JpdHlQcm92aWRlciA9ICRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPntQcm92aWRlcn0tPntFcnJvckhhbmRsaW5nUHJpb3JpdHl9IHx8IFtdOwoKICAgIG15ICRFcnJvckhhbmRsaW5nUmVxdWVzdGVyICAgICAgICAgPSAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57UmVxdWVzdGVyfS0+e0Vycm9ySGFuZGxpbmd9ICAgICAgICAgfHwge307CiAgICBteSAkRXJyb3JIYW5kbGluZ1ByaW9yaXR5UmVxdWVzdGVyID0gJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+e1JlcXVlc3Rlcn0tPntFcnJvckhhbmRsaW5nUHJpb3JpdHl9IHx8IFtdOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgaWYgKCAkUGFyYW17RGVwZW5kZW5jeUVycm9yTWVzc2FnZX0gKSB7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdOb3RpY2UnLAogICAgICAgICAgICBEYXRhICAgICA9PiAkUGFyYW17RGVwZW5kZW5jeUVycm9yTWVzc2FnZX0sCgogICAgICAgICk7CiAgICB9CgogICAgIyBTaG93IG5vdGlmaWNhdGlvbnMgaWYgYW55LgogICAgaWYgKCAkUGFyYW17Tm90aWZ5fSApIHsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgSW5mbyA9PiAkUGFyYW17Tm90aWZ5fSwKICAgICAgICApOwogICAgfQoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ01haW4nLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnQWRkJyApIHsKCiAgICAgICAgbXkgQEV4YW1wbGVXZWJTZXJ2aWNlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkRpcmVjdG9yeVJlYWQoCiAgICAgICAgICAgIERpcmVjdG9yeSA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKSAuICcvdmFyL3dlYnNlcnZpY2VzL2V4YW1wbGVzJywKICAgICAgICAgICAgRmlsdGVyICAgID0+ICcqLnltbCcsCiAgICAgICAgICAgIFNpbGVudCAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIG15ICVFeGFtcGxlV2ViU2VydmljZXNEYXRhOwoKICAgICAgICBmb3IgbXkgJEV4YW1wbGVXZWJTZXJ2aWNlRmlsZW5hbWUgKEBFeGFtcGxlV2ViU2VydmljZXMpIHsKICAgICAgICAgICAgbXkgJEtleSA9ICRFeGFtcGxlV2ViU2VydmljZUZpbGVuYW1lOwogICAgICAgICAgICAkS2V5ID1+IHN7Xi4qLyhbXi9dKykkfXskMX1zbXg7CiAgICAgICAgICAgIG15ICRWYWx1ZSA9ICRLZXk7CiAgICAgICAgICAgICRWYWx1ZSA9fiBze14oLispLnltbH17JDF9c214OwogICAgICAgICAgICAkVmFsdWUgPX4gc3tffXsgfXNteGc7CiAgICAgICAgICAgICRFeGFtcGxlV2ViU2VydmljZXNEYXRheyRLZXl9ID0gJFZhbHVlOwogICAgICAgIH0KCiAgICAgICAgbXkgJUZyb250ZW5kOwoKICAgICAgICBpZiAoJUV4YW1wbGVXZWJTZXJ2aWNlc0RhdGEpIHsKICAgICAgICAgICAgJEZyb250ZW5ke0V4YW1wbGVXZWJTZXJ2aWNlTGlzdH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JyktPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgID0+ICdFeGFtcGxlV2ViU2VydmljZScsCiAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVFeGFtcGxlV2ViU2VydmljZXNEYXRhLAogICAgICAgICAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICAgICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplIFZhbGlkYXRlX1JlcXVpcmVkJywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgRW5hYmxlIEV4YW1wbGUgd2ViIHNlcnZpY2VzLgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdFeGFtcGxlV2ViU2VydmljZXMnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVGcm9udGVuZCwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25MaXN0JyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JyApOwoKICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ0NoYW5nZScgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkNsb25lJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkV4cG9ydCcsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25IaXN0b3J5JywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0FjdGlvbkRlbGV0ZScsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdBY3Rpb25EZWJ1Z2dlcicsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnQWRkJyApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQWN0aW9uSW1wb3J0JywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnSGludCcgKTsKCiAgICBteSAlR2VuZXJhbERhdGEgPSAoCiAgICAgICAgTmFtZSAgICAgICAgID0+ICRXZWJzZXJ2aWNlRGF0YS0+e05hbWV9LAogICAgICAgIERlc2NyaXB0aW9uICA9PiAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57RGVzY3JpcHRpb259LAogICAgICAgIFJlbW90ZVN5c3RlbSA9PiAkV2Vic2VydmljZURhdGEtPntDb25maWd9LT57UmVtb3RlU3lzdGVtfSwKICAgICk7CgogICAgIyBEZWZpbmUgdGhlIGRlYnVnIFRocmVzaG9sZHMgKHRoaXMgbmVlZHMgdG8gYmUgaGFyZC1jb2RlZCkuCiAgICBteSAlRGVidWdUaHJlc2hvbGQgPSAoCiAgICAgICAgZGVidWcgID0+IFRyYW5zbGF0YWJsZSgnRGVidWcnKSwKICAgICAgICBpbmZvICAgPT4gVHJhbnNsYXRhYmxlKCdJbmZvJyksCiAgICAgICAgbm90aWNlID0+IFRyYW5zbGF0YWJsZSgnTm90aWNlJyksCiAgICAgICAgZXJyb3IgID0+IFRyYW5zbGF0YWJsZSgnRXJyb3InKSwKICAgICk7CgogICAgIyBDcmVhdGUgdGhlIERlYnVnVGhyZXNob2xkIHNlbGVjdC4KICAgIG15ICREZWJ1Z1RocmVzaG9sZFN0cmcgPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICAgICA9PiBcJURlYnVnVGhyZXNob2xkLAogICAgICAgIE5hbWUgICAgICAgICAgID0+ICdEZWJ1Z1RocmVzaG9sZCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgICAgPT4gJERlYnVnZ2VyRGF0YS0+e0RlYnVnVGhyZXNob2xkfSB8fCAnJywKICAgICAgICBQb3NzaWJsZU5vbmUgICA9PiAwLAogICAgICAgIFRyYW5zbGF0ZSAgICAgID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgICAgPT4gJ01vZGVybml6ZSBIaWRlVHJpZ2dlcicsCiAgICAgICAgU29ydCAgICAgICAgICAgPT4gJ0luZGl2aWR1YWxLZXknLAogICAgICAgIFNvcnRJbmRpdmlkdWFsID0+IFsgJ2RlYnVnJywgJ2luZm8nLCAnbm90aWNlJywgJ2Vycm9yJyBdLAoKICAgICk7CgogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKCiAgICAjIENyZWF0ZSB0aGUgdmFsaWRpdHkgc2VsZWN0LgogICAgbXkgJFZhbGlkdHlTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlVmFsaWRMaXN0LAogICAgICAgIE5hbWUgICAgICAgICA9PiAnVmFsaWRJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRXZWJzZXJ2aWNlRGF0YS0+e1ZhbGlkSUR9IHx8IDEsCiAgICAgICAgUG9zc2libGVOb25lID0+IDAsCiAgICAgICAgVHJhbnNsYXRlICAgID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUgSGlkZVRyaWdnZXInLAogICAgKTsKCiAgICAjIFByZXZlbnQgSFRNTCB2YWxpZGF0aW9uIHdhcmluZy4KICAgIGlmICggISRQYXJhbXtOYW1lU2VydmVyRXJyb3JNZXNzYWdlfSApIHsKICAgICAgICAkUGFyYW17TmFtZVNlcnZlckVycm9yTWVzc2FnZX0gPSAnLSc7CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnRGV0YWlscycsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJUdlbmVyYWxEYXRhLAogICAgICAgICAgICBEZWJ1Z1RocmVzaG9sZFN0cmcgPT4gJERlYnVnVGhyZXNob2xkU3RyZywKICAgICAgICAgICAgVmFsaWR0eVN0cmcgICAgICAgID0+ICRWYWxpZHR5U3RyZywKICAgICAgICB9LAogICAgKTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIFNldCB0cmFuc3BvcnRzIGRhdGEuCiAgICBteSAlR0lUcmFuc3BvcnRzOwogICAgbXkgJEdJVHJhbnNwb3J0Q29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdHZW5lcmljSW50ZXJmYWNlOjpUcmFuc3BvcnQ6Ok1vZHVsZScpOwogICAgVFJBTlNQT1JUOgogICAgZm9yIG15ICRUcmFuc3BvcnQgKCBzb3J0IGtleXMgJXskR0lUcmFuc3BvcnRDb25maWd9ICkgewogICAgICAgIG5leHQgVFJBTlNQT1JUIGlmICEkVHJhbnNwb3J0OwogICAgICAgICRHSVRyYW5zcG9ydHN7JFRyYW5zcG9ydH0gPSAkR0lUcmFuc3BvcnRDb25maWctPnskVHJhbnNwb3J0fS0+e0NvbmZpZ0RpYWxvZ307CiAgICB9CgogICAgIyBHZXQgb3BlcmF0aW9uIGRhdGEuCiAgICBteSAlR0lPcGVyYXRpb25zOwogICAgbXkgJEdJT3BlcmF0aW9uQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246Ok1vZHVsZScpOwogICAgT1BFUkFUSU9OOgogICAgZm9yIG15ICRPcGVyYXRpb24gKCBzb3J0IGtleXMgJXskR0lPcGVyYXRpb25Db25maWd9ICkgewogICAgICAgIG5leHQgT1BFUkFUSU9OIGlmICEkT3BlcmF0aW9uOwogICAgICAgICRHSU9wZXJhdGlvbnN7JE9wZXJhdGlvbn0gPSAkR0lPcGVyYXRpb25Db25maWctPnskT3BlcmF0aW9ufS0+e0NvbmZpZ0RpYWxvZ307CiAgICB9CgogICAgIyBHZXQgaW52b2tlciBkYXRhLgogICAgbXkgJUdJSW52b2tlcnM7CiAgICBteSAkR0lJbnZva2VyQ29uZmlnID0gJENvbmZpZ09iamVjdC0+R2V0KCdHZW5lcmljSW50ZXJmYWNlOjpJbnZva2VyOjpNb2R1bGUnKTsKICAgIElOVk9LRVI6CiAgICBmb3IgbXkgJEludm9rZXIgKCBzb3J0IGtleXMgJXskR0lJbnZva2VyQ29uZmlnfSApIHsKICAgICAgICBuZXh0IElOVk9LRVIgaWYgISRJbnZva2VyOwogICAgICAgICRHSUludm9rZXJzeyRJbnZva2VyfSA9ICRHSUludm9rZXJDb25maWctPnskSW52b2tlcn0tPntDb25maWdEaWFsb2d9OwogICAgfQoKICAgICMgR2V0IGVycm9yIGhhbmRsaW5nIG1vZHVsZXMgZGF0YSBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gZGlhbG9nLgogICAgewogICAgICAgIG15ICVHSUVycm9ySGFuZGxpbmdNb2R1bGVzOwogICAgICAgIG15ICRHSUVycm9ySGFuZGxpbmdNb2R1bGVDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0dlbmVyaWNJbnRlcmZhY2U6OkVycm9ySGFuZGxpbmc6Ok1vZHVsZScpOwogICAgICAgIEVSUk9SSEFORExJTkdNT0RVTEU6CiAgICAgICAgZm9yIG15ICRFcnJvckhhbmRsaW5nTW9kdWxlICggc29ydCBrZXlzICRHSUVycm9ySGFuZGxpbmdNb2R1bGVDb25maWctPiUqICkgewogICAgICAgICAgICBuZXh0IEVSUk9SSEFORExJTkdNT0RVTEUgdW5sZXNzICRFcnJvckhhbmRsaW5nTW9kdWxlOwoKICAgICAgICAgICAgJEdJRXJyb3JIYW5kbGluZ01vZHVsZXN7JEVycm9ySGFuZGxpbmdNb2R1bGV9ID0gJEdJRXJyb3JIYW5kbGluZ01vZHVsZUNvbmZpZy0+eyRFcnJvckhhbmRsaW5nTW9kdWxlfS0+e0NvbmZpZ0RpYWxvZ307CiAgICAgICAgfQoKICAgICAgICAjIHJlZ2lzdGVyIHRoZSByZWxldmFudCBkYXRhIGFzIEpTIGRhdGEKICAgICAgICAkU2VsZi0+X091dHB1dEdJQ29uZmlnKAogICAgICAgICAgICBHSVRyYW5zcG9ydHMgICAgICAgICAgID0+IFwlR0lUcmFuc3BvcnRzLAogICAgICAgICAgICBHSU9wZXJhdGlvbnMgICAgICAgICAgID0+IFwlR0lPcGVyYXRpb25zLAogICAgICAgICAgICBHSUludm9rZXJzICAgICAgICAgICAgID0+IFwlR0lJbnZva2VycywKICAgICAgICAgICAgR0lFcnJvckhhbmRsaW5nTW9kdWxlcyA9PiBcJUdJRXJyb3JIYW5kbGluZ01vZHVsZXMsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIE1ldGEgY29uZmlndXJhdGlvbiBmb3Igb3V0cHV0IGJsb2Nrcy4KICAgIG15ICVDb21tVHlwZUNvbmZpZyA9ICgKICAgICAgICBQcm92aWRlciA9PiB7CiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ09UT0JPIGFzIHByb3ZpZGVyJyksCiAgICAgICAgICAgIFNlbGVjdGVkVHJhbnNwb3J0ICAgICA9PiAkUHJvdmlkZXJEYXRhLT57VHJhbnNwb3J0fS0+e1R5cGV9LAogICAgICAgICAgICBBY3Rpb25UeXBlICAgICAgICAgICAgPT4gJ09wZXJhdGlvbicsCiAgICAgICAgICAgIEFjdGlvbnNUaXRsZSAgICAgICAgICA9PiBUcmFuc2xhdGFibGUoJ09wZXJhdGlvbnMnKSwKICAgICAgICAgICAgQWN0aW9uc0NvbmZpZyAgICAgICAgID0+ICRQcm92aWRlckRhdGEtPntPcGVyYXRpb259LAogICAgICAgICAgICBDb250cm9sbGVyRGF0YSAgICAgICAgPT4gXCVHSU9wZXJhdGlvbnMsCiAgICAgICAgICAgIEVycm9ySGFuZGxpbmcgICAgICAgICA9PiAkRXJyb3JIYW5kbGluZ1Byb3ZpZGVyLAogICAgICAgICAgICBFcnJvckhhbmRsaW5nUHJpb3JpdHkgPT4gJEVycm9ySGFuZGxpbmdQcmlvcml0eVByb3ZpZGVyLAogICAgICAgIH0sCiAgICAgICAgUmVxdWVzdGVyID0+IHsKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnT1RPQk8gYXMgcmVxdWVzdGVyJyksCiAgICAgICAgICAgIFNlbGVjdGVkVHJhbnNwb3J0ICAgICA9PiAkUmVxdWVzdGVyRGF0YS0+e1RyYW5zcG9ydH0tPntUeXBlfSwKICAgICAgICAgICAgQWN0aW9uVHlwZSAgICAgICAgICAgID0+ICdJbnZva2VyJywKICAgICAgICAgICAgQWN0aW9uc1RpdGxlICAgICAgICAgID0+IFRyYW5zbGF0YWJsZSgnSW52b2tlcnMnKSwKICAgICAgICAgICAgQWN0aW9uc0NvbmZpZyAgICAgICAgID0+ICRSZXF1ZXN0ZXJEYXRhLT57SW52b2tlcn0sCiAgICAgICAgICAgIENvbnRyb2xsZXJEYXRhICAgICAgICA9PiBcJUdJSW52b2tlcnMsCiAgICAgICAgICAgIEVycm9ySGFuZGxpbmcgICAgICAgICA9PiAkRXJyb3JIYW5kbGluZ1JlcXVlc3RlciwKICAgICAgICAgICAgRXJyb3JIYW5kbGluZ1ByaW9yaXR5ID0+ICRFcnJvckhhbmRsaW5nUHJpb3JpdHlSZXF1ZXN0ZXIsCiAgICAgICAgfSwKCiAgICApOwoKICAgIGZvciBteSAkQ29tbXVuaWNhdGlvblR5cGUgKHF3KFByb3ZpZGVyIFJlcXVlc3RlcikpIHsKCiAgICAgICAgbXkgQFRyYW5zcG9ydExpc3Q7CgogICAgICAgIGZvciBteSAkVHJhbnNwb3J0ICggc29ydCBrZXlzICVHSVRyYW5zcG9ydHMgKSB7CiAgICAgICAgICAgIHB1c2ggQFRyYW5zcG9ydExpc3QsICRUcmFuc3BvcnQ7CiAgICAgICAgfQoKICAgICAgICAjIENyZWF0ZSB0aGUgbGlzdCBvZiB0cmFuc3BvcnRzLgogICAgICAgIG15ICRUcmFuc3BvcnRzU3RyZyA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgICAgID0+IFxAVHJhbnNwb3J0TGlzdCwKICAgICAgICAgICAgTmFtZSAgICAgICAgICA9PiAkQ29tbXVuaWNhdGlvblR5cGUgLiAnVHJhbnNwb3J0TGlzdCcsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntTZWxlY3RlZFRyYW5zcG9ydH0sCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgPT4gMSwKICAgICAgICAgICAgU29ydCAgICAgICAgICA9PiAnQWxwaGFudW1lcmljVmFsdWUnLAogICAgICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUgSGlkZVRyaWdnZXInLAogICAgICAgICk7CgogICAgICAgIG15ICRFcnJvck1vZHVsZUNvbmZpZyA9ICRDb25maWdPYmplY3QtPkdldCgnR2VuZXJpY0ludGVyZmFjZTo6RXJyb3JIYW5kbGluZzo6TW9kdWxlJyk7CgogICAgICAgIG15IEBFcnJvck1vZHVsZXM7CgogICAgICAgIEVSUk9STU9EVUxFS0VZOgogICAgICAgIGZvciBteSAkRXJyb3JNb2R1bGVLZXkgKCBzb3J0IGtleXMgJEVycm9yTW9kdWxlQ29uZmlnLT4lKiApIHsKCiAgICAgICAgICAgIG5leHQgRVJST1JNT0RVTEVLRVkgdW5sZXNzICRFcnJvck1vZHVsZUtleTsKICAgICAgICAgICAgbmV4dCBFUlJPUk1PRFVMRUtFWSB1bmxlc3MgSXNIYXNoUmVmV2l0aERhdGEoICRFcnJvck1vZHVsZUNvbmZpZy0+eyRFcnJvck1vZHVsZUtleX0gKTsKICAgICAgICAgICAgbmV4dCBFUlJPUk1PRFVMRUtFWSB1bmxlc3MgSXNTdHJpbmdXaXRoRGF0YSggJEVycm9yTW9kdWxlQ29uZmlnLT57JEVycm9yTW9kdWxlS2V5fS0+e05hbWV9ICk7CiAgICAgICAgICAgIG5leHQgRVJST1JNT0RVTEVLRVkgdW5sZXNzIElzU3RyaW5nV2l0aERhdGEoICRFcnJvck1vZHVsZUNvbmZpZy0+eyRFcnJvck1vZHVsZUtleX0tPntDb25maWdEaWFsb2d9ICk7CgogICAgICAgICAgICAjIENoZWNrIGZvciBhY3RpdmUgY29tbXVuaWNhdGlvbiB0eXBlIGZpbHRlci4KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgSXNTdHJpbmdXaXRoRGF0YSggJEVycm9yTW9kdWxlQ29uZmlnLT57JEVycm9yTW9kdWxlS2V5fS0+e0NvbW11bmljYXRpb25UeXBlRmlsdGVyfSApCiAgICAgICAgICAgICAgICAmJiAkRXJyb3JNb2R1bGVDb25maWctPnskRXJyb3JNb2R1bGVLZXl9LT57Q29tbXVuaWNhdGlvblR5cGVGaWx0ZXJ9IG5lICRDb21tdW5pY2F0aW9uVHlwZQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBuZXh0IEVSUk9STU9EVUxFS0VZOwogICAgICAgICAgICB9CgogICAgICAgICAgICBwdXNoIEBFcnJvck1vZHVsZXMsIHsKICAgICAgICAgICAgICAgIEtleSAgID0+ICRFcnJvck1vZHVsZUtleSwKICAgICAgICAgICAgICAgIFZhbHVlID0+ICRFcnJvck1vZHVsZUNvbmZpZy0+eyRFcnJvck1vZHVsZUtleX0tPntOYW1lfSwKICAgICAgICAgICAgfTsKICAgICAgICB9CgogICAgICAgICMgQ3JlYXRlIHRoZSBsaXN0IG9mIGVycm9yIGhhbmRsaW5nIG1vZHVsZXMuCiAgICAgICAgJFBhcmFte0Vycm9ySGFuZGxpbmdTdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXEBFcnJvck1vZHVsZXMsCiAgICAgICAgICAgIE5hbWUgICAgICAgICA9PiAkQ29tbXVuaWNhdGlvblR5cGUgLiAnRXJyb3JIYW5kbGluZycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICBTb3J0ICAgICAgICAgPT4gJ0FscGhhbnVtZXJpY1ZhbHVlJywKICAgICAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUgQ29uZmlndXJlRXJyb3JIYW5kbGluZycsCiAgICAgICAgKTsKCiAgICAgICAgIyBHZXQgdGhlIGNvbnRyb2xsZXJzIGNvbmZpZyBmb3IgUmVxdWVzdGVycyBvciBQcm92aWRlcnMuCgogICAgICAgIG15ICVHSUNvbnRyb2xsZXJzID0gJXsgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntDb250cm9sbGVyRGF0YX0gfTsKCiAgICAgICAgbXkgQENvbnRyb2xsZXJMaXN0OwoKICAgICAgICBmb3IgbXkgJEFjdGlvbiAoIHNvcnQga2V5cyAlR0lDb250cm9sbGVycyApIHsKICAgICAgICAgICAgcHVzaCBAQ29udHJvbGxlckxpc3QsICRBY3Rpb247CiAgICAgICAgfQoKICAgICAgICAjIENyZWF0ZSB0aGUgbGlzdCBvZiBjb250cm9sbGVycy4KICAgICAgICBteSAkQ29udHJvbGxlcnNTdHJnID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcQENvbnRyb2xsZXJMaXN0LAogICAgICAgICAgICBOYW1lICAgICAgICAgPT4gJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntBY3Rpb25UeXBlfSAuICdMaXN0JywKICAgICAgICAgICAgU29ydCAgICAgICAgID0+ICdBbHBoYW51bWVyaWNWYWx1ZScsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ0RldGFpbHNDb21tdW5pY2F0aW9uVHlwZScsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgQ29tbXVuaWNhdGlvblR5cGUgPT4gJENvbW11bmljYXRpb25UeXBlLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgPT4gJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntUaXRsZX0sCiAgICAgICAgICAgICAgICBUcmFuc3BvcnRzU3RyZyAgICA9PiAkVHJhbnNwb3J0c1N0cmcsCiAgICAgICAgICAgICAgICBBY3Rpb25UeXBlICAgICAgICA9PiAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0FjdGlvblR5cGV9LAogICAgICAgICAgICAgICAgQ29udHJvbGxlcnNTdHJnICAgPT4gJENvbnRyb2xsZXJzU3RyZywKICAgICAgICAgICAgICAgIEFjdGlvbnNUaXRsZSAgICAgID0+ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57QWN0aW9uc1RpdGxlfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRGV0YWlsc0NvbW11bmljYXRpb25UeXBlRXhwbGFuYXRpb24nIC4gJENvbW11bmljYXRpb25UeXBlLAogICAgICAgICk7CgogICAgICAgICMgQ2hlY2sgaWYgc2VsZWN0ZWQgdHJhbnNwb3J0IGNhbiBiZSBjb25maWd1cmVkIGFuZCBzaG93IHRoZSAiY29uZmlndXJlIGJ1dHRvbiIuCiAgICAgICAgaWYgKAogICAgICAgICAgICAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e1NlbGVjdGVkVHJhbnNwb3J0fSAmJgogICAgICAgICAgICAkR0lUcmFuc3BvcnRzeyAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e1NlbGVjdGVkVHJhbnNwb3J0fSB9CiAgICAgICAgICAgICkKICAgICAgICB7CgogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0RldGFpbHNUcmFuc3BvcnRQcm9wZXJ0aWVzQnV0dG9uJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIENvbW11bmljYXRpb25UeXBlID0+ICRDb21tdW5pY2F0aW9uVHlwZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnRGV0YWlsc0NvbW11bmljYXRpb25UeXBlQWN0aW9uc0V4cGxhbmF0aW9uJyAuICRDb21tdW5pY2F0aW9uVHlwZSwKICAgICAgICApOwoKICAgICAgICAjIEZsYWcgdG8gZGlzcGxheSBhIG1lc3NhZ2UgaWYgYXQgbGVhc3Qgb25lIGNvbnRyb2xsZXIgd2FzIG5vdCBmb3VuZC4KICAgICAgICBteSAkTm9Db250cm9sbGVyRm91bmQ7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0FjdGlvbnNDb25maWd9ICkgKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRGV0YWlsc0FjdGlvbnNOb0RhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgT3V0cHV0IG9wZXJhdGlvbiBhbmQgaW52b2tlciB0YWJsZXMuCiAgICAgICAgICAgIGZvciBteSAkQWN0aW9uTmFtZSAoCiAgICAgICAgICAgICAgICBzb3J0IGtleXMgJXsgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntBY3Rpb25zQ29uZmlnfSB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAjIEdldCBjb250cm9sIGluZm9ybWF0aW9uLgogICAgICAgICAgICAgICAgbXkgJEFjdGlvbkRldGFpbHMgPSAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0FjdGlvbnNDb25maWd9LT57JEFjdGlvbk5hbWV9OwoKICAgICAgICAgICAgICAgICMgQ3JlYXRlIG91dHB1dCBkYXRhLgogICAgICAgICAgICAgICAgbXkgJUFjdGlvbkRhdGEgPSAoCiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgID0+ICRBY3Rpb25OYW1lLAogICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uICAgICA9PiAkQWN0aW9uRGV0YWlscy0+e0Rlc2NyaXB0aW9ufSB8fCAnLScsCiAgICAgICAgICAgICAgICAgICAgQ29udHJvbGxlciAgICAgID0+ICRBY3Rpb25EZXRhaWxzLT57VHlwZX0sCiAgICAgICAgICAgICAgICAgICAgTWFwcGluZ0luYm91bmQgID0+ICRBY3Rpb25EZXRhaWxzLT57TWFwcGluZ0luYm91bmR9LT57VHlwZX0gIHx8ICctJywKICAgICAgICAgICAgICAgICAgICBNYXBwaW5nT3V0Ym91bmQgPT4gJEFjdGlvbkRldGFpbHMtPntNYXBwaW5nT3V0Ym91bmR9LT57VHlwZX0gfHwgJy0nLAogICAgICAgICAgICAgICAgICAgIE1vZHVsZSAgICAgICAgICA9PiAkR0lDb250cm9sbGVyc3sgJEFjdGlvbkRldGFpbHMtPntUeXBlfSB9LAogICAgICAgICAgICAgICAgICAgIEFjdGlvblR5cGUgICAgICA9PiAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0FjdGlvblR5cGV9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkQ29udHJvbGxlckNsYXNzID0gJyc7CiAgICAgICAgICAgICAgICBpZiAoICEkR0lDb250cm9sbGVyc3sgJEFjdGlvbkRhdGF7Q29udHJvbGxlcn0gfSApIHsKICAgICAgICAgICAgICAgICAgICAkTm9Db250cm9sbGVyRm91bmQgPSAxOwogICAgICAgICAgICAgICAgICAgICRDb250cm9sbGVyQ2xhc3MgICA9ICdFcnJvcic7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnRGV0YWlsc0FjdGlvbnNSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICVBY3Rpb25EYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBDb250cm9sbGVyQ2xhc3MgPT4gJENvbnRyb2xsZXJDbGFzcywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoICEkR0lDb250cm9sbGVyc3sgJEFjdGlvbkRhdGF7Q29udHJvbGxlcn0gfSApIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnRGV0YWlsc0FjdGlvbnNSb3dEZWxldGUnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVBY3Rpb25EYXRhLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnRGV0YWlsc0FjdGlvbnNSb3dMaW5rJywKICAgICAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAlQWN0aW9uRGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJE5vQ29udHJvbGxlckZvdW5kKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnRGV0YWlsc0FjdGlvbnNOb0NvbnRyb2xsZXJGb3VuZE1zZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgQWN0aW9uVHlwZSA9PiBsYyAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0FjdGlvblR5cGV9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgZXJyb3IgaGFuZGxpbmcgbW9kdWxlcyBhbmQgcHJpb3JpdHkgZm9yIGNvbnNpc3RlbmN5LAogICAgICAgICMgICBjb3JyZWN0IHBvc3NpYmxlIGluY29uc2lzdGVuY2llcyBhbmQgc2F2ZSB0aGUgd2ViIHNlcnZpY2UuCiAgICAgICAgbXkgJEVycm9yQ29uZmlnVXBkYXRlZCA9IDA7CgogICAgICAgIG15ICRFcnJvckhhbmRsaW5nTW9kdWxlc0NoZWNrID0gam9pbiAnJywKICAgICAgICAgICAgc29ydCBAeyAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0Vycm9ySGFuZGxpbmdQcmlvcml0eX0gfHwgW10gfTsKCiAgICAgICAgbXkgJEVycm9ySGFuZGxpbmdQcmlvcml0eUNoZWNrID0gam9pbiAnJywKICAgICAgICAgICAgc29ydCBrZXlzICV7ICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ30gfHwge30gfTsKCiAgICAgICAgaWYgKCAkRXJyb3JIYW5kbGluZ01vZHVsZXNDaGVjayBuZSAkRXJyb3JIYW5kbGluZ1ByaW9yaXR5Q2hlY2sgKSB7CgogICAgICAgICAgICBteSBAQ29ycmVjdGVkRXJyb3JIYW5kbGluZ01vZHVsZXMgPSBzb3J0IGtleXMgJXsgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfSB8fCBbXSB9OwoKICAgICAgICAgICAgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nUHJpb3JpdHl9ID0gXEBDb3JyZWN0ZWRFcnJvckhhbmRsaW5nTW9kdWxlczsKCiAgICAgICAgICAgICRFcnJvckNvbmZpZ1VwZGF0ZWQgPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBDaGVjayBmb3IgdHlwZSBhbmQgc2V0IFJlcXVlc3RSZXRyeSBhcyBkZWZhdWx0LgogICAgICAgIGZvciBteSAkQ3VycmVudEVycm9ySGFuZGxpbmdNb2R1bGUgKCBzb3J0IGtleXMgJXsgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfSB8fCB7fSB9ICkKICAgICAgICB7CgogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAhZGVmaW5lZCAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0Vycm9ySGFuZGxpbmd9LT57JEN1cnJlbnRFcnJvckhhbmRsaW5nTW9kdWxlfS0+e1R5cGV9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ30tPnskQ3VycmVudEVycm9ySGFuZGxpbmdNb2R1bGV9LT57VHlwZX0gPSAnUmVxdWVzdFJldHJ5JzsKCiAgICAgICAgICAgICAgICAkRXJyb3JDb25maWdVcGRhdGVkID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBVcGRhdGUgY29uZmlnIGlmIG5lZWRlZC4KICAgICAgICBpZiAoJEVycm9yQ29uZmlnVXBkYXRlZCkgewoKICAgICAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+eyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfSAgICAgICAgID0gJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfTsKICAgICAgICAgICAgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+eyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nUHJpb3JpdHl9ID0gJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nUHJpb3JpdHl9OwoKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNJbnRlcmZhY2U6OldlYnNlcnZpY2UnKS0+V2Vic2VydmljZVVwZGF0ZSgKICAgICAgICAgICAgICAgICV7JFdlYnNlcnZpY2VEYXRhfSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIE5vIGVycm9yIGhhbmRsaW5nIG1vZHVsZXMgZGVmaW5lZC4KICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfSApICkgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0Vycm9ySGFuZGxpbmdSb3dOb0RhdGFGb3VuZE1zZycsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIExpc3QgYXZhaWxhYmxlIGVycm9yIGhhbmRsaW5nIG1vZHVsZXMuCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgICBFUlJPUkhBTkRMSU5HTU9EVUxFOgogICAgICAgICAgICBmb3IgbXkgJEVycm9ySGFuZGxpbmdNb2R1bGUgKCBAeyAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0Vycm9ySGFuZGxpbmdQcmlvcml0eX0gfHwgW10gfSApIHsKCiAgICAgICAgICAgICAgICBuZXh0IEVSUk9SSEFORExJTkdNT0RVTEUgaWYgISRFcnJvckhhbmRsaW5nTW9kdWxlOwogICAgICAgICAgICAgICAgbmV4dCBFUlJPUkhBTkRMSU5HTU9EVUxFCiAgICAgICAgICAgICAgICAgICAgaWYgIUlzSGFzaFJlZldpdGhEYXRhKAogICAgICAgICAgICAgICAgICAgICAgICAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0Vycm9ySGFuZGxpbmd9LT57JEVycm9ySGFuZGxpbmdNb2R1bGV9CiAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBuZXh0IEVSUk9SSEFORExJTkdNT0RVTEUKICAgICAgICAgICAgICAgICAgICBpZiAhJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfS0+eyRFcnJvckhhbmRsaW5nTW9kdWxlfS0+e1R5cGV9OwoKICAgICAgICAgICAgICAgIG15ICRFcnJvck1vZHVsZUFjdGlvbiA9ICRFcnJvck1vZHVsZUNvbmZpZy0+ewogICAgICAgICAgICAgICAgICAgICRDb21tVHlwZUNvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57RXJyb3JIYW5kbGluZ30KICAgICAgICAgICAgICAgICAgICAgICAgLT57JEVycm9ySGFuZGxpbmdNb2R1bGV9LT57VHlwZX0KICAgICAgICAgICAgICAgIH0tPntDb25maWdEaWFsb2d9OwoKICAgICAgICAgICAgICAgIG5leHQgRVJST1JIQU5ETElOR01PRFVMRSBpZiAhJEVycm9yTW9kdWxlQWN0aW9uOwoKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0Vycm9ySGFuZGxpbmdSb3cnLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBFcnJvckhhbmRsaW5nID0+ICRFcnJvckhhbmRsaW5nTW9kdWxlLAogICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbiAgID0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkQ29tbVR5cGVDb25maWd7JENvbW11bmljYXRpb25UeXBlfS0+e0Vycm9ySGFuZGxpbmd9LT57JEVycm9ySGFuZGxpbmdNb2R1bGV9LT57RGVzY3JpcHRpb259LAogICAgICAgICAgICAgICAgICAgICAgICBFcnJvckhhbmRsaW5nVHlwZSA9PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgJENvbW1UeXBlQ29uZmlneyRDb21tdW5pY2F0aW9uVHlwZX0tPntFcnJvckhhbmRsaW5nfS0+eyRFcnJvckhhbmRsaW5nTW9kdWxlfS0+e1R5cGV9LAogICAgICAgICAgICAgICAgICAgICAgICBEaWFsb2cgICAgICAgICAgICA9PiAkRXJyb3JNb2R1bGVBY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbW11bmljYXRpb25UeXBlID0+ICRDb21tdW5pY2F0aW9uVHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgV2Vic2VydmljZUlEICAgICAgPT4gJFBhcmFte1dlYnNlcnZpY2VJRH0sCgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbkdlbmVyaWNJbnRlcmZhY2VXZWJzZXJ2aWNlJywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9PdXRwdXRHSUNvbmZpZyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBTZW5kIGRhdGEgdG8gSlMuCiAgICAkTGF5b3V0T2JqZWN0LT5BZGRKU0RhdGEoCiAgICAgICAgS2V5ICAgPT4gJ1dlYnNlcnZpY2UnLAogICAgICAgIFZhbHVlID0+IHsKICAgICAgICAgICAgVHJhbnNwb3J0ICAgICA9PiAkUGFyYW17R0lUcmFuc3BvcnRzfSwKICAgICAgICAgICAgT3BlcmF0aW9uICAgICA9PiAkUGFyYW17R0lPcGVyYXRpb25zfSwKICAgICAgICAgICAgSW52b2tlciAgICAgICA9PiAkUGFyYW17R0lJbnZva2Vyc30sCiAgICAgICAgICAgIEVycm9ySGFuZGxpbmcgPT4gJFBhcmFte0dJRXJyb3JIYW5kbGluZ01vZHVsZXN9LAogICAgICAgIH0sCiAgICApOwoKICAgIHJldHVybiAxOwp9CgpzdWIgX0dldFBhcmFtcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRHZXRQYXJhbTsKICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKCiAgICAjIEdldCBwYXJhbWV0ZXJzIGZyb20gd2ViIGJyb3dzZXIuCiAgICBmb3IgbXkgJFBhcmFtTmFtZSAoCiAgICAgICAgcXcoIE5hbWUgRGVzY3JpcHRpb24gUmVtb3RlU3lzdGVtIERlYnVnVGhyZXNob2xkIFZhbGlkSUQgKQogICAgICAgICkKICAgIHsKICAgICAgICAkR2V0UGFyYW0tPnskUGFyYW1OYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbU5hbWUgKSB8fCAnJzsKICAgIH0KCiAgICAkR2V0UGFyYW0tPntQcm92aWRlclRyYW5zcG9ydH0gPQogICAgICAgICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdQcm92aWRlclRyYW5zcG9ydExpc3QnICkgfHwgJyc7CgogICAgJEdldFBhcmFtLT57UmVxdWVzdGVyVHJhbnNwb3J0fSA9CiAgICAgICAgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1JlcXVlc3RlclRyYW5zcG9ydExpc3QnICkgfHwgJyc7CgogICAgcmV0dXJuICRHZXRQYXJhbTsKfQoKc3ViIF9VcGRhdGVDb25maWd1cmF0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJENvbmZpZ3VyYXRpb24gPSAkUGFyYW17Q29uZmlndXJhdGlvbn07CgogICAgIyBUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGV4dGVuZGVkIGZvciBmdXJ0aGVyIG90b2JvIHZlcnNpb25zCiAgICAjICAgaXQgY291bGQgYmUgdGhhdCBuZXdlciBvdG9ibyB2ZXJzaW9ucyBoYXMgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogICAgIyAgIG1pZ3JhdGlvbiBmcm9tIHByZXZpb3VzIHZlcnNpb24gc2hvdWxkIGJlIGF1dG9tYXRpYyBhbmQgbmVlZHMgdG8gYmUgZG9uZSBoZXJlCiAgICByZXR1cm4gJENvbmZpZ3VyYXRpb247Cn0KCnN1YiBfRGVsZXRlQWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFdlYnNlcnZpY2VPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0ludGVyZmFjZTo6V2Vic2VydmljZScpOwoKICAgICMgR2V0IHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24uCiAgICBteSAkV2Vic2VydmljZURhdGEgPSAkV2Vic2VydmljZU9iamVjdC0+V2Vic2VydmljZUdldCgKICAgICAgICBJRCA9PiAkUGFyYW17V2Vic2VydmljZUlEfSwKICAgICk7CgogICAgIyBHZXQgbmVlZGVkIHBhcmFtcy4KICAgIG15ICRQYXJhbU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRBY3Rpb25UeXBlICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdBY3Rpb25UeXBlJyApOwogICAgbXkgJEFjdGlvbk5hbWUgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0FjdGlvbk5hbWUnICk7CgogICAgIyBTZXQgdGhlIGNvbW11bmljYXRpb24gdHlwZSB0byBQcm92aWRlciBvciBSZXF1ZXN0ZXIuCiAgICBteSAkQ29tbXVuaWNhdGlvblR5cGUgPSAkQWN0aW9uVHlwZSBlcSAnT3BlcmF0aW9uJyA/ICdQcm92aWRlcicgOiAnUmVxdWVzdGVyJzsKCiAgICByZXR1cm4gaWYgISRXZWJzZXJ2aWNlRGF0YS0+e0NvbmZpZ30tPnskQ29tbXVuaWNhdGlvblR5cGV9LT57JEFjdGlvblR5cGV9OwoKICAgICMgR2V0IHRoZSBjb25maWd1cmF0aW9uIGNvbmZpZyBmb3IgdGhlIGNvbW11bmljYXRpb24gdHlwZSAoYWxsIG9wZXJhdGlvbnMgb3IgYWxsIGludm9rZXJzKS4KICAgIG15ICVBY3Rpb25UeXBlQ29uZmlnID0gJXsgJFdlYnNlcnZpY2VEYXRhLT57Q29uZmlnfS0+eyRDb21tdW5pY2F0aW9uVHlwZX0tPnskQWN0aW9uVHlwZX0gfTsKCiAgICBteSAkU3VjY2VzczsKCiAgICAjIERlbGV0ZSBjb21tdW5pY2F0aW9uIHR5cGUuCiAgICBpZiAoICRBY3Rpb25UeXBlQ29uZmlneyRBY3Rpb25OYW1lfSApIHsKICAgICAgICBkZWxldGUgJEFjdGlvblR5cGVDb25maWd7JEFjdGlvbk5hbWV9OwoKICAgICAgICAjIFVwZGF0ZSB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uLgogICAgICAgIG15ICVDb25maWcgPSAleyAkV2Vic2VydmljZURhdGEtPntDb25maWd9IH07CiAgICAgICAgJENvbmZpZ3skQ29tbXVuaWNhdGlvblR5cGV9LT57JEFjdGlvblR5cGV9ID0gXCVBY3Rpb25UeXBlQ29uZmlnOwoKICAgICAgICAjIFVwZGF0ZSB3ZWIgc2VydmljZS4KICAgICAgICAkU3VjY2VzcyA9ICRXZWJzZXJ2aWNlT2JqZWN0LT5XZWJzZXJ2aWNlVXBkYXRlKAogICAgICAgICAgICAleyRXZWJzZXJ2aWNlRGF0YX0sCiAgICAgICAgICAgIENvbmZpZyA9PiBcJUNvbmZpZywKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAjIEJ1aWxkIEpTT04gb3V0cHV0LgogICAgbXkgJEpTT04gPSAkTGF5b3V0T2JqZWN0LT5KU09ORW5jb2RlKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBTdWNjZXNzID0+ICRTdWNjZXNzLAogICAgICAgIH0sCiAgICApOwoKICAgICMgU2VuZCBKU09OIHJlc3BvbnNlLgogICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgQ29udGVudFR5cGUgPT4gJ2FwcGxpY2F0aW9uL2pzb24nLAogICAgICAgIENvbnRlbnQgICAgID0+ICRKU09OLAogICAgICAgIFR5cGUgICAgICAgID0+ICdpbmxpbmUnLAogICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICApOwp9CgoxOwo=</File>
        <File Location="Custom/Kernel/Modules/AdminGroup.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5Hcm91cC5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5Hcm91cDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgc2V0IHByZWYgZm9yIGNvbHVtbnMga2V5CiAgICAkU2VsZi0+e1ByZWZLZXlJbmNsdWRlSW52YWxpZH0gPSAnSW5jbHVkZUludmFsaWQnIC4gJy0nIC4gJFNlbGYtPntBY3Rpb259OwoKICAgIG15ICVQcmVmZXJlbmNlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICApOwoKICAgICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID0gJFByZWZlcmVuY2VzeyAkU2VsZi0+e1ByZWZLZXlJbmNsdWRlSW52YWxpZH0gfTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRHcm91cE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKICAgIG15ICRMb2dPYmplY3QgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyk7CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICROb3RpZmljYXRpb24gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTm90aWZpY2F0aW9uJyApIHx8ICcnOwoKICAgICRQYXJhbXtJbmNsdWRlSW52YWxpZH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSW5jbHVkZUludmFsaWQnICk7CgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtJbmNsdWRlSW52YWxpZH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+U2V0UHJlZmVyZW5jZXMoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIEtleSAgICA9PiAkU2VsZi0+e1ByZWZLZXlJbmNsdWRlSW52YWxpZH0sCiAgICAgICAgICAgIFZhbHVlICA9PiAkUGFyYW17SW5jbHVkZUludmFsaWR9LAogICAgICAgICk7CgogICAgICAgICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID0gJFBhcmFte0luY2x1ZGVJbnZhbGlkfTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGNoYW5nZQogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZScgKSB7CiAgICAgICAgbXkgJElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApCiAgICAgICAgICAgIHx8ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdHcm91cElEJyApCiAgICAgICAgICAgIHx8ICcnOwogICAgICAgIG15ICVEYXRhICAgPSAkR3JvdXBPYmplY3QtPkdyb3VwR2V0KCBJRCA9PiAkSUQgKTsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdHcm91cCB1cGRhdGVkIScpICkKICAgICAgICAgICAgaWYgKCAkTm90aWZpY2F0aW9uICYmICROb3RpZmljYXRpb24gZXEgJ1VwZGF0ZScgKTsKCiAgICAgICAgJFNlbGYtPl9FZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0NoYW5nZScsCiAgICAgICAgICAgICVEYXRhLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5Hcm91cCcsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGNoYW5nZSBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2VBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KElEIE5hbWUgQ29tbWVudCBWYWxpZElEKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtOYW1lfSApIHsKICAgICAgICAgICAgJEVycm9yc3tHcm91cE5hbWVJbnZhbGlkfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIHVwZGF0ZSBncm91cAogICAgICAgICAgICBteSAkR3JvdXBVcGRhdGUgPSAkR3JvdXBPYmplY3QtPkdyb3VwVXBkYXRlKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRHcm91cFVwZGF0ZSkgewoKICAgICAgICAgICAgICAgICMgaWYgdGhlIHVzZXIgd291bGQgbGlrZSB0byBjb250aW51ZSBlZGl0aW5nIHRoZSBncm91cCwganVzdCByZWRpcmVjdCB0byB0aGUgZWRpdCBzY3JlZW4KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICAgICAgICAgICAgICYmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApIGVxICcxJyApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKSB8fCAnJzsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1DaGFuZ2U7SUQ9JEdldFBhcmFte0lEfTtOb3RpZmljYXRpb249VXBkYXRlIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgIyBvdGhlcndpc2UgcmV0dXJuIHRvIG92ZXJ2aWV3CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtOb3RpZmljYXRpb249VXBkYXRlIiApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJE5vdGUsCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAnJzsKICAgICAgICAkU2VsZi0+X0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQ2hhbmdlJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5Hcm91cCcsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKCiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGQnICkgewogICAgICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICAgICAkR2V0UGFyYW17TmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmFtZScgKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGQnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbkdyb3VwJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICROb3RlID0gJyc7CiAgICAgICAgbXkgJEdyb3VwSUQ7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoSUQgTmFtZSBDb21tZW50IFZhbGlkSUQpKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgZm9yIG5lZWRlZCBkYXRhCiAgICAgICAgaWYgKCAhJEdldFBhcmFte05hbWV9ICkgewogICAgICAgICAgICAkRXJyb3Jze0dyb3VwTmFtZUludmFsaWR9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgYWRkIGdyb3VwCiAgICAgICAgICAgICRHcm91cElEID0gJEdyb3VwT2JqZWN0LT5Hcm91cEFkZCgKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkR3JvdXBJRCkgewoKICAgICAgICAgICAgICAgICMgcmVkaXJlY3QKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAhJENvbmZpZ09iamVjdC0+R2V0KCdGcm9udGVuZDo6TW9kdWxlJyktPntBZG1pblVzZXJHcm91cH0KICAgICAgICAgICAgICAgICAgICAmJiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+e0FkbWluUm9sZUdyb3VwfQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5Sb2xlR3JvdXA7U3ViYWN0aW9uPUdyb3VwO0lEPSRHcm91cElEIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ0Zyb250ZW5kOjpNb2R1bGUnKS0+e0FkbWluVXNlckdyb3VwfSApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5Vc2VyR3JvdXA7U3ViYWN0aW9uPUdyb3VwO0lEPSRHcm91cElEIiwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgIE9QID0+ICdBY3Rpb249QWRtaW5Hcm91cCcsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJE5vdGUsCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAnJzsKICAgICAgICAkU2VsZi0+X0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQWRkJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5Hcm91cCcsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKCiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICMgb3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+X092ZXJ2aWV3KCk7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KCBJbmZvID0+IFRyYW5zbGF0YWJsZSgnR3JvdXAgdXBkYXRlZCEnKSApCiAgICAgICAgICAgIGlmICggJE5vdGlmaWNhdGlvbiAmJiAkTm90aWZpY2F0aW9uIGVxICdVcGRhdGUnICk7CgogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluR3JvdXAnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9Cgp9CgpzdWIgX0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFZhbGlkT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25MaXN0JyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JyApOwoKICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgIG15ICVWYWxpZExpc3QgICAgICAgID0gJFZhbGlkT2JqZWN0LT5WYWxpZExpc3QoKTsKICAgIG15ICVWYWxpZExpc3RSZXZlcnNlID0gcmV2ZXJzZSAlVmFsaWRMaXN0OwoKICAgICRQYXJhbXtWYWxpZE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlVmFsaWRMaXN0LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17VmFsaWRJRH0gfHwgJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZScsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9PdmVydmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkR3JvdXBPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CiAgICBteSAkVmFsaWRPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgJFBhcmFte0luY2x1ZGVJbnZhbGlkQ2hlY2tlZH0gPSAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA/ICdjaGVja2VkJyA6ICcnOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbkxpc3QnICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uQWRkJyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnSW5jbHVkZUludmFsaWQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBJbmNsdWRlSW52YWxpZCAgICAgICAgPT4gJFNlbGYtPntJbmNsdWRlSW52YWxpZH0sCiAgICAgICAgICAgIEluY2x1ZGVJbnZhbGlkQ2hlY2tlZCA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA/ICdjaGVja2VkJyA6ICcnLAogICAgICAgIH0sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0ZpbHRlcicgKTsKIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnSW1wb3J0RXhwb3J0V2lkZ2V0JyApOwojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwoKICAgIG15ICVMaXN0ID0gJEdyb3VwT2JqZWN0LT5Hcm91cExpc3QoCiAgICAgICAgVmFsaWQgPT4gJFNlbGYtPntJbmNsdWRlSW52YWxpZH0gPyAwIDogMSwKICAgICk7CiAgICBteSAkTGlzdFNpemUgPSBrZXlzICVMaXN0OwogICAgJFBhcmFte0FsbEl0ZW1zQ291bnR9ID0gJExpc3RTaXplOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgIG15ICVWYWxpZExpc3QgPSAkVmFsaWRPYmplY3QtPlZhbGlkTGlzdCgpOwogICAgZm9yIG15ICRMaXN0S2V5ICggc29ydCB7ICRMaXN0eyRhfSBjbXAgJExpc3R7JGJ9IH0ga2V5cyAlTGlzdCApIHsKCiAgICAgICAgbXkgJURhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwR2V0KAogICAgICAgICAgICBJRCA9PiAkTGlzdEtleSwKICAgICAgICApOwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFJvdycsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgVmFsaWQgPT4gJFZhbGlkTGlzdHsgJERhdGF7VmFsaWRJRH0gfSwKICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Custom/Kernel/Modules/AdminQueue.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5RdWV1ZS5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5RdWV1ZTsKIyMgbm9maWx0ZXIoVGlkeUFsbDo6UGx1Z2luOjpPVE9CTzo6UGVybDo6REJPYmplY3QpCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCBwcmVmIGZvciBjb2x1bW5zIGtleQogICAgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9ID0gJ0luY2x1ZGVJbnZhbGlkJyAuICctJyAuICRTZWxmLT57QWN0aW9ufTsKCiAgICBteSAlUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA9ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9IH07CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBTdG9yZSBsYXN0IGVudGl0eSBzY3JlZW4uCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuRW50aXR5JywKICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgKTsKCiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkUXVldWVJRCAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUXVldWVJRCcgKSB8fCAnJzsKCiAgICAkUGFyYW17SW5jbHVkZUludmFsaWR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0luY2x1ZGVJbnZhbGlkJyApOwoKICAgIGlmICggZGVmaW5lZCAkUGFyYW17SW5jbHVkZUludmFsaWR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9LAogICAgICAgICAgICBWYWx1ZSAgPT4gJFBhcmFte0luY2x1ZGVJbnZhbGlkfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA9ICRQYXJhbXtJbmNsdWRlSW52YWxpZH07CiAgICB9CgogICAgbXkgQFBhcmFtcyA9ICgKICAgICAgICBxdygKICAgICAgICAgICAgUXVldWVJRCAgICAgICAgICAgUGFyZW50UXVldWVJRCAgICAgICBOYW1lICAgICAgICAgICAgR3JvdXBJRAogICAgICAgICAgICBVbmxvY2tUaW1lb3V0ICAgICBGb2xsb3dVcExvY2sgICAgICAgIFN5c3RlbUFkZHJlc3NJRCBDYWxlbmRhcgogICAgICAgICAgICBEZWZhdWx0U2lnbktleSAgICBTYWx1dGF0aW9uSUQgICAgICAgIFNpZ25hdHVyZUlEICAgICBGb2xsb3dVcElECiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lIEZpcnN0UmVzcG9uc2VOb3RpZnkgVXBkYXRlVGltZSAgICAgIFVwZGF0ZU5vdGlmeQogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICBTb2x1dGlvbk5vdGlmeQogICAgICAgICAgICBDb21tZW50ICAgICAgICAgICBWYWxpZElECiAgICAgICAgKQogICAgKTsKCiAgICAjIGdldCBwb3NzaWJsZSBzaWduIGtleXMKICAgIG15ICVLZXlMaXN0OwogICAgbXkgJVF1ZXVlRGF0YTsKCiAgICBteSAkUXVldWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKCiAgICBpZiAoJFF1ZXVlSUQpIHsKCiAgICAgICAgJVF1ZXVlRGF0YSA9ICRRdWV1ZU9iamVjdC0+UXVldWVHZXQoIElEID0+ICRRdWV1ZUlEICk7CgogICAgICAgIG15ICRDcnlwdE9iamVjdFBHUCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDcnlwdDo6UEdQJyk7CgogICAgICAgIGlmICgkQ3J5cHRPYmplY3RQR1ApIHsKCiAgICAgICAgICAgIG15IEBQcml2YXRlS2V5cyA9ICRDcnlwdE9iamVjdFBHUC0+UHJpdmF0ZUtleVNlYXJjaCggU2VhcmNoID0+ICRRdWV1ZURhdGF7RW1haWx9ICk7CgogICAgICAgICAgICBmb3IgbXkgJERhdGFSZWYgKEBQcml2YXRlS2V5cykgewoKICAgICAgICAgICAgICAgIG15ICRTdGF0dXMgPSAnWycgLiAkRGF0YVJlZi0+e1N0YXR1c30gLiAnXSc7CiAgICAgICAgICAgICAgICBpZiAoICREYXRhUmVmLT57U3RhdHVzfSBlcSAnZXhwaXJlZCcgKSB7CiAgICAgICAgICAgICAgICAgICAgJFN0YXR1cyA9ICdbV0FSTklORzogRVhQSVJFRCBLRVldJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2lmICggJERhdGFSZWYtPntTdGF0dXN9IGVxICdyZXZva2VkJyApIHsKICAgICAgICAgICAgICAgICAgICAkU3RhdHVzID0gJ1tXQVJOSU5HOiBSRVZPS0VEIEtFWV0nOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRLZXlMaXN0eyJQR1A6OklubGluZTo6JERhdGFSZWYtPntLZXl9In0gICA9ICJQR1AtSW5saW5lOiRTdGF0dXMgJERhdGFSZWYtPntLZXl9ICREYXRhUmVmLT57SWRlbnRpZmllcn0iOwogICAgICAgICAgICAgICAgJEtleUxpc3R7IlBHUDo6RGV0YWNoZWQ6OiREYXRhUmVmLT57S2V5fSJ9ID0gIlBHUC1EZXRhY2hlZDokU3RhdHVzICREYXRhUmVmLT57S2V5fSAkRGF0YVJlZi0+e0lkZW50aWZpZXJ9IjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJENyeXB0T2JqZWN0U01JTUUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3J5cHQ6OlNNSU1FJyk7CgogICAgICAgIGlmICgkQ3J5cHRPYmplY3RTTUlNRSkgewoKICAgICAgICAgICAgbXkgQFByaXZhdGVLZXlzID0gJENyeXB0T2JqZWN0U01JTUUtPlByaXZhdGVTZWFyY2goIFNlYXJjaCA9PiAkUXVldWVEYXRhe0VtYWlsfSApOwoKICAgICAgICAgICAgbXkgJEV4cGlyZWQ7CiAgICAgICAgICAgIGZvciBteSAkRGF0YVJlZiAoQFByaXZhdGVLZXlzKSB7CiAgICAgICAgICAgICAgICAkRXhwaXJlZCA9ICcnOwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIGRlZmluZWQgJERhdGFSZWYtPntFbmREYXRlfQogICAgICAgICAgICAgICAgICAgICYmICRDcnlwdE9iamVjdFNNSU1FLT5LZXlFeHBpcmVkQ2hlY2soIEVuZERhdGUgPT4gJERhdGFSZWYtPntFbmREYXRlfSApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRFeHBpcmVkID0gJyBbV0FSTklORzogRVhQSVJFRCBLRVldJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRLZXlMaXN0eyJTTUlNRTo6RGV0YWNoZWQ6OiREYXRhUmVmLT57RmlsZW5hbWV9In0gPSAiU01JTUUtRGV0YWNoZWQ6JEV4cGlyZWQgJERhdGFSZWYtPntGaWxlbmFtZX0gWyREYXRhUmVmLT57RW5kRGF0ZX1dICREYXRhUmVmLT57RW1haWx9IjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CiAgICBteSAkTWFpbk9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Ok1haW4nKTsKICAgIG15ICROb3RpZmljYXRpb24gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTm90aWZpY2F0aW9uJyApIHx8ICcnOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgY2hhbmdlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlJyApIHsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KCBJbmZvID0+IFRyYW5zbGF0YWJsZSgnUXVldWUgdXBkYXRlZCEnKSApCiAgICAgICAgICAgIGlmICggJE5vdGlmaWNhdGlvbiAmJiAkTm90aWZpY2F0aW9uIGVxICdVcGRhdGUnICk7CgogICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdDaGFuZ2UnLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVRdWV1ZURhdGEsCiAgICAgICAgICAgIERlZmF1bHRTaWduS2V5TGlzdCA9PiBcJUtleUxpc3QsCiAgICAgICAgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5RdWV1ZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBjaGFuZ2UgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChAUGFyYW1zKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgcXVldWUgbmFtZQogICAgICAgIGlmICggJEdldFBhcmFte05hbWV9ID1+IC86Oi8gKSB7CiAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+V2FybmluZygKICAgICAgICAgICAgICAgIE1lc3NhZ2UgPT4gVHJhbnNsYXRhYmxlKCdEb25cJ3QgdXNlIDo6IGluIHF1ZXVlIG5hbWUhJyksCiAgICAgICAgICAgICAgICBDb21tZW50ID0+IFRyYW5zbGF0YWJsZSgnQ2xpY2sgYmFjayBhbmQgY2hhbmdlIGl0IScpLAogICAgICAgICAgICApOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGxvbmcgcXVldWUgbmFtZQogICAgICAgIGlmICggJEdldFBhcmFte1BhcmVudFF1ZXVlSUR9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17TmFtZX0gPSAkUXVldWVPYmplY3QtPlF1ZXVlTG9va3VwKAogICAgICAgICAgICAgICAgUXVldWVJRCA9PiAkR2V0UGFyYW17UGFyZW50UXVldWVJRH0sCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuICc6OicKICAgICAgICAgICAgICAgIC4gJEdldFBhcmFte05hbWV9OwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBuZWVkZWQgZGF0YQogICAgICAgIGZvciBteSAkTmVlZGVkICgKICAgICAgICAgICAgcXcoTmFtZSBHcm91cElEIFN5c3RlbUFkZHJlc3NJRCBTYWx1dGF0aW9uSUQgU2lnbmF0dXJlSUQgVmFsaWRJRCBGb2xsb3dVcElEKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkTmVlZGVkIC4gJ0ludmFsaWQnIH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIGEgcXVldWUgZXhpc3Qgd2l0aCB0aGlzIG5hbWUKICAgICAgICBteSAkTmFtZUV4aXN0cyA9ICRRdWV1ZU9iamVjdC0+TmFtZUV4aXN0c0NoZWNrKAogICAgICAgICAgICBOYW1lID0+ICRHZXRQYXJhbXtOYW1lfSwKICAgICAgICAgICAgSUQgICA9PiAkR2V0UGFyYW17UXVldWVJRH0KICAgICAgICApOwogICAgICAgIGlmICgkTmFtZUV4aXN0cykgewogICAgICAgICAgICAkRXJyb3Jze05hbWVFeGlzdHN9ICAgID0gMTsKICAgICAgICAgICAgJEVycm9yc3snTmFtZUludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIENoZWNrIGlmIHF1ZXVlIGlzIHByZXNlbnQgaW4gU3lzQ29uZmlnIHNldHRpbmcKICAgICAgICBteSAkVXBkYXRlRW50aXR5ICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1VwZGF0ZUVudGl0eScgKSB8fCAnJzsKICAgICAgICBteSAkU3lzQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpOwogICAgICAgIG15ICVRdWV1ZU9sZERhdGEgICAgPSAlUXVldWVEYXRhOwogICAgICAgIG15IEBJc1F1ZXVlSW5TeXNDb25maWc7CiAgICAgICAgQElzUXVldWVJblN5c0NvbmZpZyA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25FbnRpdHlDaGVjaygKICAgICAgICAgICAgRW50aXR5VHlwZSA9PiAnUXVldWUnLAogICAgICAgICAgICBFbnRpdHlOYW1lID0+ICRRdWV1ZURhdGF7TmFtZX0sCiAgICAgICAgKTsKICAgICAgICBpZiAoQElzUXVldWVJblN5c0NvbmZpZykgewoKICAgICAgICAgICAgIyBBbiBlbnRpdHkgcHJlc2VudCBpbiBTeXNDb25maWcgY291bGRuJ3QgYmUgaW52YWxpZGF0ZWQuCiAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExvb2t1cCggVmFsaWRJRCA9PiAkR2V0UGFyYW17VmFsaWRJRH0gKQogICAgICAgICAgICAgICAgbmUgJ3ZhbGlkJwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze1ZhbGlkSURJbnZhbGlkfSAgICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7VmFsaWRPcHRpb25TZXJ2ZXJFcnJvcn0gPSAnSW5TZXR0aW5nJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBJbiBjYXNlIGNoYW5naW5nIG5hbWUgYW4gYXV0aG9yaXphdGlvbiAoVXBkYXRlRW50aXR5KSBzaG91bGQgYmUgc2VuZAogICAgICAgICAgICBlbHNpZiAoICRRdWV1ZURhdGF7TmFtZX0gbmUgJEdldFBhcmFte05hbWV9ICYmICEkVXBkYXRlRW50aXR5ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tOYW1lSW52YWxpZH0gICAgICAgICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7SW5TZXR0aW5nTmFtZVNlcnZlckVycm9yfSA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgdXBkYXRlIHF1ZXVlCiAgICAgICAgICAgIG15ICRRdWV1ZVVwZGF0ZSA9ICRRdWV1ZU9iamVjdC0+UXVldWVVcGRhdGUoCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJFF1ZXVlVXBkYXRlKSB7CgogICAgICAgICAgICAgICAgIyB1cGRhdGUgcHJlZmVyZW5jZXMKICAgICAgICAgICAgICAgIG15ICVRdWV1ZURhdGEgPSAkUXVldWVPYmplY3QtPlF1ZXVlR2V0KCBJRCA9PiAkR2V0UGFyYW17UXVldWVJRH0gKTsKCiAgICAgICAgICAgICAgICBteSAlUHJlZmVyZW5jZXM7CiAgICAgICAgICAgICAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnUXVldWVQcmVmZXJlbmNlcycpICkgewogICAgICAgICAgICAgICAgICAgICVQcmVmZXJlbmNlcyA9ICV7ICRDb25maWdPYmplY3QtPkdldCgnUXVldWVQcmVmZXJlbmNlcycpIH07CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgZm9yIG15ICRJdGVtICggc29ydCBrZXlzICVQcmVmZXJlbmNlcyApIHsKCiAgICAgICAgICAgICAgICAgICAgbXkgJE1vZHVsZSA9ICRQcmVmZXJlbmNlc3skSXRlbX0tPntNb2R1bGV9CiAgICAgICAgICAgICAgICAgICAgICAgIHx8ICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6UXVldWVQcmVmZXJlbmNlczo6R2VuZXJpYyc7CgogICAgICAgICAgICAgICAgICAgICMgbG9hZCBtb2R1bGUKICAgICAgICAgICAgICAgICAgICBpZiAoICEkTWFpbk9iamVjdC0+UmVxdWlyZSgkTW9kdWxlKSApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPkZhdGFsRXJyb3IoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbXkgJE9iamVjdCA9ICRNb2R1bGUtPm5ldygKICAgICAgICAgICAgICAgICAgICAgICAgJXskU2VsZn0sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ0l0ZW0gPT4gJFByZWZlcmVuY2VzeyRJdGVtfSwKICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgICAgICA9PiAkU2VsZi0+e0RlYnVnfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBteSBAUGFyYW1zID0gJE9iamVjdC0+UGFyYW0oIFF1ZXVlRGF0YSA9PiBcJVF1ZXVlRGF0YSApOwoKICAgICAgICAgICAgICAgICAgICBpZiAoQFBhcmFtcykgewoKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJUdldFBhcmFtOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFBhcmFtSXRlbSAoQFBhcmFtcykgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15IEBBcnJheSA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gJFBhcmFtSXRlbS0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRHZXRQYXJhbXsgJFBhcmFtSXRlbS0+e05hbWV9IH0gPSBcQEFycmF5OwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhJE9iamVjdC0+UnVuKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldFBhcmFtICA9PiBcJUdldFBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlRGF0YSA9PiBcJVF1ZXVlRGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkTm90ZSAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoIEluZm8gPT4gJE9iamVjdC0+RXJyb3IoKSApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICBASXNRdWV1ZUluU3lzQ29uZmlnCiAgICAgICAgICAgICAgICAgICAgJiYgJFF1ZXVlT2xkRGF0YXtOYW1lfSBuZSAkR2V0UGFyYW17TmFtZX0KICAgICAgICAgICAgICAgICAgICAmJiAkVXBkYXRlRW50aXR5CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNFVFRJTkc6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRTZXR0aW5nTmFtZSAoQElzUXVldWVJblN5c0NvbmZpZykgewoKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJVNldHRpbmcgPSAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nR2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkU2V0dGluZ05hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgICAgICBuZXh0IFNFVFRJTkcgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCBcJVNldHRpbmcgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICRTZXR0aW5ne0VmZmVjdGl2ZVZhbHVlfSA9fiBzLyRRdWV1ZU9sZERhdGF7TmFtZX0vJEdldFBhcmFte05hbWV9L2c7CgogICAgICAgICAgICAgICAgICAgICAgICBteSAkRXhjbHVzaXZlTG9ja0dVSUQgPSAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nTG9jaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICA9PiAkU2V0dGluZ3tOYW1lfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvcmNlICA9PiAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAkU2V0dGluZ3tFeGNsdXNpdmVMb2NrR1VJRH0gPSAkRXhjbHVzaXZlTG9ja0dVSUQ7CgogICAgICAgICAgICAgICAgICAgICAgICAkU3lzQ29uZmlnT2JqZWN0LT5TZXR0aW5nVXBkYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJVNldHRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlndXJhdGlvbkRlcGxveSgKICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWVudHMgICAgICA9PiAiUXVldWUgbmFtZSBjaGFuZ2UiLAogICAgICAgICAgICAgICAgICAgICAgICBEaXJ0eVNldHRpbmdzID0+IFxASXNRdWV1ZUluU3lzQ29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgRm9yY2UgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgIyBpZiAkTm90ZSBoYXMgc29tZSBub3RpZnksIGNyZWF0ZSBvdXRwdXQgd2l0aCAkTm90ZQogICAgICAgICAgICAgICAgIyBvdGhlcndpc2UgcmVkaXJlY3QgZGVwZW5kaW5nIG9uIHdoYXQgYnV0dG9uICgnU2F2ZScgb3IgJ1NhdmUgYW5kIEZpbmlzaCcpIGlzIGNsaWNrZWQKICAgICAgICAgICAgICAgIGlmICggJE5vdGUgbmUgJycgKSB7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPl9PdmVydmlldygpOwogICAgICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICROb3RlOwogICAgICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluUXVldWUnLAogICAgICAgICAgICAgICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgaWYgdGhlIHVzZXIgd291bGQgbGlrZSB0byBjb250aW51ZSBlZGl0aW5nIHRoZSBxdWV1ZSwganVzdCByZWRpcmVjdCB0byB0aGUgZWRpdCBzY3JlZW4KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICAgICAgICAgICAgICYmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApIGVxICcxJyApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn07U3ViYWN0aW9uPUNoYW5nZTtRdWV1ZUlEPSRRdWV1ZUlEO05vdGlmaWNhdGlvbj1VcGRhdGUiCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAjIG90aGVyd2lzZSByZXR1cm4gdG8gb3ZlcnZpZXcKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O05vdGlmaWNhdGlvbj1VcGRhdGUiICk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyBoYXMgZ29uZSB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSggUHJpb3JpdHkgPT4gJ0Vycm9yJyApOwoKICAgICAgICAkU2VsZi0+X0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQ2hhbmdlJywKICAgICAgICAgICAgRXJyb3JzID0+IFwlRXJyb3JzLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5RdWV1ZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CgogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkJyApIHsKCiAgICAgICAgbXkgJUdldFBhcmFtOwogICAgICAgICRHZXRQYXJhbXtOYW1lfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOYW1lJyApOwoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGQnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5RdWV1ZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChAUGFyYW1zKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXskUGFyYW1ldGVyfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICRQYXJhbWV0ZXIgKSB8fCAnJzsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgcXVldWUgbmFtZQogICAgICAgIGlmICggJEdldFBhcmFte05hbWV9ID1+IC86Oi8gKSB7CgogICAgICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPldhcm5pbmcoCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnRG9uXCd0IHVzZSA6OiBpbiBxdWV1ZSBuYW1lIScpLAogICAgICAgICAgICAgICAgQ29tbWVudCA9PiBUcmFuc2xhdGFibGUoJ0NsaWNrIGJhY2sgYW5kIGNoYW5nZSBpdCEnKSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKCiAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgbG9uZyBxdWV1ZSBuYW1lCiAgICAgICAgaWYgKCAkR2V0UGFyYW17UGFyZW50UXVldWVJRH0gKSB7CiAgICAgICAgICAgICRHZXRQYXJhbXtOYW1lfSA9ICRRdWV1ZU9iamVjdC0+UXVldWVMb29rdXAoCiAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICRHZXRQYXJhbXtQYXJlbnRRdWV1ZUlEfSwKICAgICAgICAgICAgKSAuICc6OicgLiAkR2V0UGFyYW17TmFtZX07CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIG5lZWRlZCBkYXRhCiAgICAgICAgZm9yIG15ICROZWVkZWQgKAogICAgICAgICAgICBxdyhOYW1lIEdyb3VwSUQgU3lzdGVtQWRkcmVzc0lEIFNhbHV0YXRpb25JRCBTaWduYXR1cmVJRCBWYWxpZElEIEZvbGxvd1VwSUQpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnSW52YWxpZCcgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgc29tZSBmaWVsZHMgbXVzdCBiZSBzZXQgd2l0aCBkZWZhdWx0IHZhbHVlcwogICAgICAgIGZvciBteSAkT3B0aW9uYWwgKAogICAgICAgICAgICBxdyhVbmxvY2tUaW1lb3V0IEZpcnN0UmVzcG9uc2VUaW1lIEZpcnN0UmVzcG9uc2VOb3RpZnkgVXBkYXRlVGltZSBVcGRhdGVOb3RpZnkgU29sdXRpb25UaW1lIFNvbHV0aW9uTm90aWZ5IEZvbGxvd1VwTG9jayBDYWxlbmRhcikKICAgICAgICAgICAgKQogICAgICAgIHsKCiAgICAgICAgICAgICMgYWRkIGRlZmF1bHQgdmFsdWVzCiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskT3B0aW9uYWx9ICkgewogICAgICAgICAgICAgICAgJEdldFBhcmFteyRPcHRpb25hbH0gPSAwOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIGEgcXVldWUgZXhpc3Qgd2l0aCB0aGlzIG5hbWUKICAgICAgICBteSAkTmFtZUV4aXN0cyA9ICRRdWV1ZU9iamVjdC0+TmFtZUV4aXN0c0NoZWNrKCBOYW1lID0+ICRHZXRQYXJhbXtOYW1lfSApOwogICAgICAgIGlmICgkTmFtZUV4aXN0cykgewogICAgICAgICAgICAkRXJyb3Jze05hbWVFeGlzdHN9ICAgID0gMTsKICAgICAgICAgICAgJEVycm9yc3snTmFtZUludmFsaWQnfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIGNyZWF0ZSBuZXcgcXVldWUKICAgICAgICAgICAgbXkgJElEID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUFkZCgKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBOb0RlZmF1bHRWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkSUQpIHsKCiAgICAgICAgICAgICAgICAjIHVwZGF0ZSBwcmVmZXJlbmNlcwogICAgICAgICAgICAgICAgbXkgJVF1ZXVlRGF0YSA9ICRRdWV1ZU9iamVjdC0+UXVldWVHZXQoIElEID0+ICRJRCApOwoKICAgICAgICAgICAgICAgIG15ICVQcmVmZXJlbmNlczsKICAgICAgICAgICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdRdWV1ZVByZWZlcmVuY2VzJykgKSB7CiAgICAgICAgICAgICAgICAgICAgJVByZWZlcmVuY2VzID0gJXsgJENvbmZpZ09iamVjdC0+R2V0KCdRdWV1ZVByZWZlcmVuY2VzJykgfTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBmb3IgbXkgJEl0ZW0gKCBzb3J0IGtleXMgJVByZWZlcmVuY2VzICkgewoKICAgICAgICAgICAgICAgICAgICBteSAkTW9kdWxlID0gJFByZWZlcmVuY2VzeyRJdGVtfS0+e01vZHVsZX0KICAgICAgICAgICAgICAgICAgICAgICAgfHwgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpRdWV1ZVByZWZlcmVuY2VzOjpHZW5lcmljJzsKCiAgICAgICAgICAgICAgICAgICAgIyBsb2FkIG1vZHVsZQogICAgICAgICAgICAgICAgICAgIGlmICggISRNYWluT2JqZWN0LT5SZXF1aXJlKCRNb2R1bGUpICkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbXkgJE9iamVjdCA9ICRNb2R1bGUtPm5ldygKICAgICAgICAgICAgICAgICAgICAgICAgJXskU2VsZn0sCiAgICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ0l0ZW0gPT4gJFByZWZlcmVuY2VzeyRJdGVtfSwKICAgICAgICAgICAgICAgICAgICAgICAgRGVidWcgICAgICA9PiAkU2VsZi0+e0RlYnVnfSwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBteSBAUGFyYW1zID0gJE9iamVjdC0+UGFyYW0oIFF1ZXVlRGF0YSA9PiBcJVF1ZXVlRGF0YSApOwoKICAgICAgICAgICAgICAgICAgICBpZiAoQFBhcmFtcykgewoKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJUdldFBhcmFtOwogICAgICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFBhcmFtSXRlbSAoQFBhcmFtcykgewoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15IEBBcnJheSA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW0gPT4gJFBhcmFtSXRlbS0+e05hbWV9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkR2V0UGFyYW17ICRQYXJhbUl0ZW0tPntOYW1lfSB9ID0gXEBBcnJheTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgISRPYmplY3QtPlJ1bigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRQYXJhbSAgPT4gXCVHZXRQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZURhdGEgPT4gXCVRdWV1ZURhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5vdGUgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KCBJbmZvID0+ICRPYmplY3QtPkVycm9yKCkgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pblF1ZXVlVGVtcGxhdGVzJlN1YmFjdGlvbj1RdWV1ZSZJRD0kSUQiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgaGFzIGdvbmUgd3JvbmcKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoIFByaW9yaXR5ID0+ICdFcnJvcicgKTsKCiAgICAgICAgJFNlbGYtPl9FZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZCcsCiAgICAgICAgICAgIEVycm9ycyA9PiBcJUVycm9ycywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CgogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluUXVldWUnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CgogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgb3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2UgewoKICAgICAgICAkU2VsZi0+X092ZXJ2aWV3KCk7CgogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSggSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1F1ZXVlIHVwZGF0ZWQhJykgKQogICAgICAgICAgICBpZiAoICROb3RpZmljYXRpb24gJiYgJE5vdGlmaWNhdGlvbiBlcSAnVXBkYXRlJyApOwoKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblF1ZXVlJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwoKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KfQoKc3ViIF9FZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25MaXN0JyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JyApOwoKICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgIG15ICVWYWxpZExpc3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgpOwogICAgbXkgJVZhbGlkTGlzdFJldmVyc2UgPSByZXZlcnNlICVWYWxpZExpc3Q7CgogICAgJFBhcmFte1ZhbGlkT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVWYWxpZExpc3QsCiAgICAgICAgTmFtZSAgICAgICA9PiAnVmFsaWRJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17VmFsaWRJRH0gfHwgJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCAnIC4gKCAkUGFyYW17RXJyb3JzfS0+eydWYWxpZElESW52YWxpZCd9IHx8ICcnICksCiAgICApOwoKICAgICRQYXJhbXtHcm91cE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTGlzdCgKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICkKICAgICAgICB9LAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ0dyb3VwSUQnLAogICAgICAgIFNlbGVjdGVkSUQgID0+ICRQYXJhbXtHcm91cElEfSwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplIFZhbGlkYXRlX1JlcXVpcmVkICcgLiAoICRQYXJhbXtFcnJvcnN9LT57J0dyb3VwSURJbnZhbGlkJ30gfHwgJycgKSwKICAgICk7CgogICAgbXkgJFBhcmVudFF1ZXVlID0gJyc7CiAgICBpZiAoICRQYXJhbXtOYW1lfSApIHsKICAgICAgICBteSBAUXVldWUgPSBzcGxpdCggLzo6LywgJFBhcmFte05hbWV9ICk7CiAgICAgICAgZm9yICggbXkgJGkgPSAwOyAkaSA8ICQjUXVldWU7ICRpKysgKSB7CiAgICAgICAgICAgIGlmICgkUGFyZW50UXVldWUpIHsKICAgICAgICAgICAgICAgICRQYXJlbnRRdWV1ZSAuPSAnOjonOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRQYXJlbnRRdWV1ZSAuPSAkUXVldWVbJGldOwogICAgICAgIH0KICAgICAgICAkUGFyYW17TmFtZX0gPSAkUXVldWVbLTFdOwogICAgfQoKICAgIG15ICRRdWV1ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwogICAgbXkgJURhdGEgICAgICAgID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUxpc3QoIFZhbGlkID0+IDAgKTsKCiAgICBteSAkUXVldWVOYW1lID0gJyc7CiAgICBpZiAoICRQYXJhbXtRdWV1ZUlEfSApIHsKICAgICAgICAkUXVldWVOYW1lID0gJERhdGF7ICRQYXJhbXtRdWV1ZUlEfSB9IC8vICcnOwogICAgfQoKICAgIG15ICVDbGVhbkhhc2ggPSAlRGF0YTsKICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVEYXRhICkgewogICAgICAgIGlmICggJENsZWFuSGFzaHskS2V5fSBlcSAkUXVldWVOYW1lIHx8ICRDbGVhbkhhc2h7JEtleX0gPX4gL15cUSRRdWV1ZU5hbWVcRVw6XDovICkgewogICAgICAgICAgICBkZWxldGUgJENsZWFuSGFzaHskS2V5fTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgbGlzdCB0eXBlCiAgICBteSAkTGlzdFR5cGUgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Okxpc3RUeXBlJyk7CgogICAgIyBnZXQgbWF4IHF1ZXVlIGxldmVsCiAgICBteSAkTWF4UGFyZW50TGV2ZWwgPSAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TWF4UXVldWVMZXZlbCcpIHx8IDUgKSAtIDE7CgogICAgIyB2ZXJpZnkgaWYgcXVldWUgbGlzdCBzaG91bGQgYmUgYSBsaXN0IG9yIGEgdHJlZQogICAgaWYgKCAkTGlzdFR5cGUgZXEgJ3RyZWUnICkgewogICAgICAgICRQYXJhbXtRdWV1ZU9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5BZ2VudFF1ZXVlTGlzdE9wdGlvbigKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAnJyA9PiAnIC0nLAogICAgICAgICAgICAgICAgJUNsZWFuSGFzaCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1BhcmVudFF1ZXVlSUQnLAogICAgICAgICAgICBTZWxlY3RlZCAgICAgICA9PiAkUGFyZW50UXVldWUsCiAgICAgICAgICAgIE1heExldmVsICAgICAgID0+ICRNYXhQYXJlbnRMZXZlbCwKICAgICAgICAgICAgT25DaGFuZ2VTdWJtaXQgPT4gMCwKICAgICAgICAgICAgQ2xhc3MgICAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGxlYXZlIG9ubHkgcXVldWVzIHdpdGggJE1heFF1ZXVlTGV2ZWwgbGV2ZWxzLCBiZWNhdXNlIG1heCBhbGxvd2VkIGxldmVsIGlzICRNYXhRdWV1ZUxldmVsICsgMToKICAgICAgICAjIG5ldyBxdWV1ZSArICRNYXhRdWV1ZUxldmVsIGxldmVscyBvZiBwYXJlbnQgcXVldWUgPSAkTWF4UXVldWVMZXZlbCArIDEgbGV2ZWxzCiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJUNsZWFuSGFzaCApIHsKICAgICAgICAgICAgbXkgJFF1ZXVlTmFtZSAgICAgID0gJENsZWFuSGFzaHskS2V5fTsKICAgICAgICAgICAgbXkgQFF1ZXVlTmFtZUxldmVsID0gc3BsaXQoIDo6LCAkUXVldWVOYW1lICk7CiAgICAgICAgICAgIG15ICRRdWV1ZUxldmVsICAgICA9ICQjUXVldWVOYW1lTGV2ZWwgKyAxOwogICAgICAgICAgICBpZiAoICRRdWV1ZUxldmVsID4gJE1heFBhcmVudExldmVsICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRDbGVhbkhhc2h7JEtleX07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRQYXJhbXtRdWV1ZU9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgRGF0YSAgICAgICAgICA9PiBcJUNsZWFuSGFzaCwKICAgICAgICAgICAgTmFtZSAgICAgICAgICA9PiAnUGFyZW50UXVldWVJRCcsCiAgICAgICAgICAgIFNlbGVjdGVkVmFsdWUgPT4gJFBhcmVudFF1ZXVlLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgID0+IDEsCiAgICAgICAgICAgIEhUTUxRdW90ZSAgICAgPT4gMCwKICAgICAgICAgICAgVHJhbnNsYXRpb24gICA9PiAwLAogICAgICAgICAgICBDbGFzcyAgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgICAgICk7CiAgICB9CgogICAgJFBhcmFte1F1ZXVlTG9uZ09wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5BZ2VudFF1ZXVlTGlzdE9wdGlvbigKICAgICAgICBEYXRhICAgICAgICAgICA9PiB7ICRRdWV1ZU9iamVjdC0+UXVldWVMaXN0KCBWYWxpZCA9PiAwICksIH0sCiAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1F1ZXVlSUQnLAogICAgICAgIFNpemUgICAgICAgICAgID0+IDE1LAogICAgICAgIFNlbGVjdGVkSUQgICAgID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICBPbkNoYW5nZVN1Ym1pdCA9PiAwLAogICAgKTsKICAgIG15ICVOb3RpZnlMZXZlbExpc3QgPSAoCiAgICAgICAgMTAgPT4gJzEwJScsCiAgICAgICAgMjAgPT4gJzIwJScsCiAgICAgICAgMzAgPT4gJzMwJScsCiAgICAgICAgNDAgPT4gJzQwJScsCiAgICAgICAgNTAgPT4gJzUwJScsCiAgICAgICAgNjAgPT4gJzYwJScsCiAgICAgICAgNzAgPT4gJzcwJScsCiAgICAgICAgODAgPT4gJzgwJScsCiAgICAgICAgOTAgPT4gJzkwJScsCiAgICApOwogICAgJFBhcmFte0ZpcnN0UmVzcG9uc2VOb3RpZnlPcHRpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiBcJU5vdGlmeUxldmVsTGlzdCwKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgPT4gJ0ZpcnN0UmVzcG9uc2VOb3RpZnknLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17Rmlyc3RSZXNwb25zZU5vdGlmeX0sCiAgICAgICAgUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKICAgICRQYXJhbXtVcGRhdGVOb3RpZnlPcHRpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiBcJU5vdGlmeUxldmVsTGlzdCwKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgPT4gJ1VwZGF0ZU5vdGlmeScsCiAgICAgICAgU2VsZWN0ZWRJRCAgID0+ICRQYXJhbXtVcGRhdGVOb3RpZnl9LAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgIENsYXNzICAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CiAgICAkUGFyYW17U29sdXRpb25Ob3RpZnlPcHRpb25TdHJnfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgICA9PiBcJU5vdGlmeUxldmVsTGlzdCwKICAgICAgICBUcmFuc2xhdGlvbiAgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgPT4gJ1NvbHV0aW9uTm90aWZ5JywKICAgICAgICBTZWxlY3RlZElEICAgPT4gJFBhcmFte1NvbHV0aW9uTm90aWZ5fSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICBDbGFzcyAgICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwogICAgJFBhcmFte1NpZ25hdHVyZU9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiB7ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTaWduYXR1cmUnKS0+U2lnbmF0dXJlTGlzdCggVmFsaWQgPT4gMSApLCB9LAogICAgICAgIFRyYW5zbGF0aW9uID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ1NpZ25hdHVyZUlEJywKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17U2lnbmF0dXJlSUR9LAogICAgICAgIENsYXNzICAgICAgID0+ICdNb2Rlcm5pemUgVmFsaWRhdGVfUmVxdWlyZWQgJyAuICggJFBhcmFte0Vycm9yc30tPnsnU2lnbmF0dXJlSURJbnZhbGlkJ30gfHwgJycgKSwKICAgICk7CiAgICAkUGFyYW17Rm9sbG93VXBMb2NrWWVzTm9PcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1llc05vT3B0aW9ucycpLAogICAgICAgIE5hbWUgICAgICAgPT4gJ0ZvbGxvd1VwTG9jaycsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17Rm9sbG93VXBMb2NrfSAvLyAwLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICApOwoKICAgICRQYXJhbXtTeXN0ZW1BZGRyZXNzT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzdGVtQWRkcmVzcycpLT5TeXN0ZW1BZGRyZXNzTGlzdCggVmFsaWQgPT4gMSApLAogICAgICAgIH0sCiAgICAgICAgVHJhbnNsYXRpb24gID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdTeXN0ZW1BZGRyZXNzSUQnLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17U3lzdGVtQWRkcmVzc0lEfSwKICAgICAgICBQb3NzaWJsZU5vbmUgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgIyB0byBhdm9pZCBhdXRvbWF0aWMgYXNzaWdubWVudHMgaWYgdGhlIGN1cnJlbnQgU0EgaXMgaW52YWxpZAogICAgICAgIE1heCAgICAgICAgICA9PiAyMDAsCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUgVmFsaWRhdGVfUmVxdWlyZWQgJyAuICggJFBhcmFte0Vycm9yc30tPnsnU3lzdGVtQWRkcmVzc0lESW52YWxpZCd9IHx8ICcnICksCiAgICApOwoKICAgIG15ICVEZWZhdWx0U2lnbktleUxpc3QgPSAoKTsKICAgIGlmICggJFBhcmFte0RlZmF1bHRTaWduS2V5TGlzdH0gKSB7CiAgICAgICAgJURlZmF1bHRTaWduS2V5TGlzdCA9ICV7ICRQYXJhbXtEZWZhdWx0U2lnbktleUxpc3R9IH07CiAgICB9CiAgICAkUGFyYW17RGVmYXVsdFNpZ25LZXlPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICcnID0+IFRyYW5zbGF0YWJsZSgnLW5vbmUtJyksCiAgICAgICAgICAgICVEZWZhdWx0U2lnbktleUxpc3QKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ0RlZmF1bHRTaWduS2V5JywKICAgICAgICBNYXggICAgICAgID0+IDE1MCwKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtEZWZhdWx0U2lnbktleX0sCiAgICAgICAgQ2xhc3MgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CiAgICAkUGFyYW17U2FsdXRhdGlvbk9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgICA9PiB7ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTYWx1dGF0aW9uJyktPlNhbHV0YXRpb25MaXN0KCBWYWxpZCA9PiAxICksIH0sCiAgICAgICAgVHJhbnNsYXRpb24gPT4gMCwKICAgICAgICBOYW1lICAgICAgICA9PiAnU2FsdXRhdGlvbklEJywKICAgICAgICBTZWxlY3RlZElEICA9PiAkUGFyYW17U2FsdXRhdGlvbklEfSwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplIFZhbGlkYXRlX1JlcXVpcmVkICcgLiAoICRQYXJhbXtFcnJvcnN9LT57J1NhbHV0YXRpb25JREludmFsaWQnfSB8fCAnJyApLAogICAgKTsKCiAgICAkUGFyYW17Rm9sbG93VXBPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICRRdWV1ZU9iamVjdC0+R2V0Rm9sbG93VXBPcHRpb25MaXN0KAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMCwKICAgICAgICAgICAgKSwKICAgICAgICB9LAogICAgICAgIE5hbWUgICAgICAgPT4gJ0ZvbGxvd1VwSUQnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte0ZvbGxvd1VwSUR9CiAgICAgICAgICAgIHx8ICRDb25maWdPYmplY3QtPkdldCgnQWRtaW5EZWZhdWx0Rm9sbG93VXBJRCcpCiAgICAgICAgICAgIHx8IDEsCiAgICAgICAgQ2xhc3MgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCAnIC4gKCAkUGFyYW17RXJyb3JzfS0+eydGb2xsb3dVcElESW52YWxpZCd9IHx8ICcnICksCiAgICApOwogICAgbXkgJUNhbGVuZGFyID0gKCAnJyA9PiAnLScgKTsKCiAgICBteSAkTWF4aW11bSA9ICRDb25maWdPYmplY3QtPkdldCgiTWF4aW11bUNhbGVuZGFyTnVtYmVyIikgfHwgNTA7CgogICAgZm9yIG15ICRDYWxlbmRhck51bWJlciAoICcnLCAxIC4uICRNYXhpbXVtICkgewogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCJUaW1lVmFjYXRpb25EYXlzOjpDYWxlbmRhciRDYWxlbmRhck51bWJlciIpICkgewogICAgICAgICAgICAkQ2FsZW5kYXJ7JENhbGVuZGFyTnVtYmVyfSA9ICJDYWxlbmRhciAkQ2FsZW5kYXJOdW1iZXIgLSAiCiAgICAgICAgICAgICAgICAuICRDb25maWdPYmplY3QtPkdldCggIlRpbWVab25lOjpDYWxlbmRhciIgLiAkQ2FsZW5kYXJOdW1iZXIgLiAiTmFtZSIgKTsKICAgICAgICB9CiAgICB9CiAgICAkUGFyYW17Q2FsZW5kYXJPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgPT4gXCVDYWxlbmRhciwKICAgICAgICBUcmFuc2xhdGlvbiA9PiAwLAogICAgICAgIE5hbWUgICAgICAgID0+ICdDYWxlbmRhcicsCiAgICAgICAgU2VsZWN0ZWRJRCAgPT4gJFBhcmFte0NhbGVuZGFyfSwKICAgICAgICBDbGFzcyAgICAgICA9PiAnTW9kZXJuaXplJywKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdVcGRhdGUnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICV7ICRQYXJhbXtFcnJvcnN9IH0sCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAkUGFyYW17RGVmYXVsdFNpZ25LZXlPcHRpb259ICkgewogICAgICAgICRQYXJhbXtEZWZhdWx0U2lnbktleUxpc3RBdmFpbGFibGV9ID0gSXNIYXNoUmVmV2l0aERhdGEoIFwlRGVmYXVsdFNpZ25LZXlMaXN0ICk7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ09wdGlvbmFsRmllbGQnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3cgYXBwcm9wcmlhdGUgbWVzc2FnZXMgZm9yIFNlcnZlckVycm9yCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte0Vycm9yc30tPntOYW1lRXhpc3RzfSAmJiAkUGFyYW17RXJyb3JzfS0+e05hbWVFeGlzdHN9ID09IDEgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0V4aXN0TmFtZVNlcnZlckVycm9yJyApOwogICAgfQogICAgZWxzaWYgKCBkZWZpbmVkICRQYXJhbXtFcnJvcnN9LT57SW5TZXR0aW5nTmFtZVNlcnZlckVycm9yfSAmJiAkUGFyYW17RXJyb3JzfS0+e0luU2V0dGluZ05hbWVTZXJ2ZXJFcnJvcn0gPT0gMSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnSW5TZXR0aW5nTmFtZVNlcnZlckVycm9yJyApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ05hbWVTZXJ2ZXJFcnJvcicgKTsKICAgIH0KCiAgICAjIHNob3cgZWFjaCBwcmVmZXJlbmNlcyBzZXR0aW5nCiAgICBteSAlUHJlZmVyZW5jZXM7CiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnUXVldWVQcmVmZXJlbmNlcycpICkgewogICAgICAgICVQcmVmZXJlbmNlcyA9ICV7ICRDb25maWdPYmplY3QtPkdldCgnUXVldWVQcmVmZXJlbmNlcycpIH07CiAgICB9CgogICAgZm9yIG15ICRJdGVtICggc29ydCBrZXlzICVQcmVmZXJlbmNlcyApIHsKCiAgICAgICAgbXkgJE1vZHVsZSA9ICRQcmVmZXJlbmNlc3skSXRlbX0tPntNb2R1bGV9CiAgICAgICAgICAgIHx8ICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6UXVldWVQcmVmZXJlbmNlczo6R2VuZXJpYyc7CgogICAgICAgICMgbG9hZCBtb2R1bGUKICAgICAgICBpZiAoICEkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5SZXF1aXJlKCRNb2R1bGUpICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RmF0YWxFcnJvcigpOwogICAgICAgIH0KICAgICAgICBteSAkT2JqZWN0ID0gJE1vZHVsZS0+bmV3KAogICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgQ29uZmlnSXRlbSA9PiAkUHJlZmVyZW5jZXN7JEl0ZW19LAogICAgICAgICAgICBEZWJ1ZyAgICAgID0+ICRTZWxmLT57RGVidWd9LAogICAgICAgICk7CgogICAgICAgIG15IEBQYXJhbXMgPSAkT2JqZWN0LT5QYXJhbSggUXVldWVEYXRhID0+IFwlUGFyYW0gKTsKCiAgICAgICAgaWYgKEBQYXJhbXMpIHsKCiAgICAgICAgICAgIGZvciBteSAkUGFyYW1JdGVtIChAUGFyYW1zKSB7CgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnSXRlbScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7ICVQYXJhbSwgfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIHJlZiAkUGFyYW1JdGVtLT57RGF0YX0gZXEgJ0hBU0gnCiAgICAgICAgICAgICAgICAgICAgfHwgcmVmICRQcmVmZXJlbmNlc3skSXRlbX0tPntEYXRhfSBlcSAnSEFTSCcKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbXkgJUJ1aWxkU2VsZWN0aW9uUGFyYW1zID0gKAogICAgICAgICAgICAgICAgICAgICAgICAleyAkUHJlZmVyZW5jZXN7JEl0ZW19IH0sCiAgICAgICAgICAgICAgICAgICAgICAgICV7JFBhcmFtSXRlbX0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAkQnVpbGRTZWxlY3Rpb25QYXJhbXN7Q2xhc3N9ID0gam9pbiggJyAnLCAkQnVpbGRTZWxlY3Rpb25QYXJhbXN7Q2xhc3N9IC8vICcnLCAnTW9kZXJuaXplJyApOwogICAgICAgICAgICAgICAgICAgICRQYXJhbUl0ZW0tPnsnT3B0aW9uJ30gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICAgICAgICAgICAgICAgICAgJUJ1aWxkU2VsZWN0aW9uUGFyYW1zCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRQYXJhbUl0ZW0tPntCbG9ja30gfHwgJFByZWZlcmVuY2VzeyRJdGVtfS0+e0Jsb2NrfSB8fCAnT3B0aW9uJywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJXsgJFByZWZlcmVuY2VzeyRJdGVtfSB9LAogICAgICAgICAgICAgICAgICAgICAgICAleyRQYXJhbUl0ZW19LAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgcmVmb3JtYXQgZnJvbSBodG1sIHRvIHBsYWluCiAgICBpZiAoICRQYXJhbXtDb250ZW50VHlwZX0gJiYgJFBhcmFte0NvbnRlbnRUeXBlfSA9fiAvdGV4dFwvaHRtbC9pICkgewogICAgICAgICRQYXJhbXtSZXNwb25zZX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SFRNTFV0aWxzJyktPlRvQXNjaWkoCiAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17UmVzcG9uc2V9LAogICAgICAgICk7CiAgICB9CgogICAgIyBTZXZlcmFsIGVycm9yIG1lc3NhZ2VzIGNhbiBiZSB1c2VkIGZvciBWYWxpZCBvcHRpb24uCiAgICAkUGFyYW17RXJyb3JzfS0+e1ZhbGlkT3B0aW9uU2VydmVyRXJyb3J9IC8vPSAnUmVxdWlyZWQnOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAkUGFyYW17RXJyb3JzfS0+e1ZhbGlkT3B0aW9uU2VydmVyRXJyb3J9IC4gJ1ZhbGlkT3B0aW9uU2VydmVyRXJyb3InLAogICAgKTsKCiAgICAjIEFkZCB3YXJuaW5nIGluIGNhc2UgdGhlIFF1ZXVlIGJlbG9uZ3MgYSBTeXNDb25maWcgc2V0dGluZy4KICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgIyBJbiBjYXNlIGRpcnR5IHNldHRpbmcgZGlzYWJsZSBmb3JtCiAgICBteSAkSXNEaXJ0eUNvbmZpZyA9IDA7CiAgICBteSBASXNEaXJ0eVJlc3VsdCA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25EaXJ0eVNldHRpbmdzTGlzdCgpOwogICAgbXkgJUlzRGlydHlMaXN0ICAgPSBtYXAgeyAkXyA9PiAxIH0gQElzRGlydHlSZXN1bHQ7CgogICAgbXkgQElzUXVldWVJblN5c0NvbmZpZyA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25FbnRpdHlDaGVjaygKICAgICAgICBFbnRpdHlUeXBlID0+ICdRdWV1ZScsCiAgICAgICAgRW50aXR5TmFtZSA9PiAkUXVldWVOYW1lIC8vICcnLAogICAgKTsKCiAgICBpZiAoQElzUXVldWVJblN5c0NvbmZpZykgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdRdWV1ZUluU3lzQ29uZmlnJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBPbGROYW1lID0+ICRRdWV1ZU5hbWUsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICBmb3IgbXkgJFNldHRpbmdOYW1lIChASXNRdWV1ZUluU3lzQ29uZmlnKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnUXVldWVJblN5c0NvbmZpZ1JvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBTZXR0aW5nTmFtZSA9PiAkU2V0dGluZ05hbWUsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBWZXJpZnkgaWYgZGlydHkgc2V0dGluZwogICAgICAgICAgICBpZiAoICRJc0RpcnR5TGlzdHskU2V0dGluZ05hbWV9ICkgewogICAgICAgICAgICAgICAgJElzRGlydHlDb25maWcgPSAxOwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgIH0KCiAgICBpZiAoJElzRGlydHlDb25maWcpIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnUXVldWVJblN5c0NvbmZpZ0RpcnR5JywKCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9PdmVydmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbkxpc3QnICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uQWRkJyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnSW5jbHVkZUludmFsaWQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBJbmNsdWRlSW52YWxpZCAgICAgICAgPT4gJFNlbGYtPntJbmNsdWRlSW52YWxpZH0sCiAgICAgICAgICAgIEluY2x1ZGVJbnZhbGlkQ2hlY2tlZCA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA/ICdjaGVja2VkJyA6ICcnLAogICAgICAgIH0sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0ZpbHRlcicgKTsKIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnSW1wb3J0RXhwb3J0V2lkZ2V0JyApOwojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgIG15ICRRdWV1ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwoKICAgICMgZ2V0IHF1ZXVlIGxpc3QKICAgIG15ICVMaXN0ID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUxpc3QoCiAgICAgICAgVmFsaWQgPT4gJFNlbGYtPntJbmNsdWRlSW52YWxpZH0gPyAwIDogMSwKICAgICk7CgogICAgIyBlcnJvciBoYW5kbGluZwogICAgaWYgKCAhJUxpc3QgKSB7CgogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb0RhdGFGb3VuZE1zZycsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgIyBnZXQgdmFsaWQgbGlzdAogICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKCiAgICBmb3IgbXkgJFF1ZXVlSUQgKCBzb3J0IHsgJExpc3R7JGF9IGNtcCAkTGlzdHskYn0gfSBrZXlzICVMaXN0ICkgewoKICAgICAgICAjIGdldCBxdWV1ZSBkYXRhCiAgICAgICAgbXkgJURhdGEgPSAkUXVldWVPYmplY3QtPlF1ZXVlR2V0KAogICAgICAgICAgICBJRCA9PiAkUXVldWVJRCwKICAgICAgICApOwoKICAgICAgICAjIGdyb3VwIGxvb2t1cAogICAgICAgICREYXRhe0dyb3VwTmFtZX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKS0+R3JvdXBMb29rdXAoCiAgICAgICAgICAgIEdyb3VwSUQgPT4gJERhdGF7R3JvdXBJRH0sCiAgICAgICAgKTsKCiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0Um93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBWYWxpZCA9PiAkVmFsaWRMaXN0eyAkRGF0YXtWYWxpZElEfSB9LAogICAgICAgICAgICAgICAgJURhdGEsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Custom/Kernel/Modules/AdminQueueTemplates.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5RdWV1ZVRlbXBsYXRlcy5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5RdWV1ZVRlbXBsYXRlczsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgaWYgKCAhJFBhcmFte0FjY2Vzc1J3fSAmJiAkUGFyYW17QWNjZXNzUm99ICkgewogICAgICAgICRTZWxmLT57TGlnaHRBZG1pbn0gPSAxOwogICAgfQoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJExheW91dE9iamVjdCAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkUXVldWVPYmplY3QgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwogICAgbXkgJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhbmRhcmRUZW1wbGF0ZScpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdGVtcGxhdGUgPC0+IHF1ZXVlcyAxOm4KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdUZW1wbGF0ZScgKSB7CgogICAgICAgICMgZ2V0IHRlbXBsYXRlIGRhdGEKICAgICAgICBteSAkSUQgICAgICAgICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICk7CiAgICAgICAgbXkgJVN0YW5kYXJkVGVtcGxhdGVEYXRhID0gJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QtPlN0YW5kYXJkVGVtcGxhdGVHZXQoIElEID0+ICRJRCApOwoKICAgICAgICAjIGdldCBxdWV1ZXMKICAgICAgICBteSAlUXVldWVEYXRhID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUxpc3QoIFZhbGlkID0+IDEgKTsKCiAgICAgICAgIyBnZXQgYXNzaWduZWQgcXVldWVzCiAgICAgICAgbXkgJU1lbWJlciA9ICRRdWV1ZU9iamVjdC0+UXVldWVTdGFuZGFyZFRlbXBsYXRlTWVtYmVyTGlzdCgKICAgICAgICAgICAgU3RhbmRhcmRUZW1wbGF0ZUlEID0+ICRJRCwKICAgICAgICApOwoKICAgICAgICBteSAkU3RhbmRhcmRUZW1wbGF0ZVR5cGUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoCiAgICAgICAgICAgICRTdGFuZGFyZFRlbXBsYXRlRGF0YXtUZW1wbGF0ZVR5cGV9LAogICAgICAgICk7CgogICAgICAgIGlmICggJFNlbGYtPntMaWdodEFkbWlufSApIHsKCiAgICAgICAgICAgICMgRmlsdGVyIG91dCBxdWV1ZXMgd2l0aG91dCBwZXJtaXNzaW9uLgogICAgICAgICAgICBteSAlUndRdWV1ZXMgPSAkUXVldWVPYmplY3QtPkdldEFsbFF1ZXVlcygKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciBteSAkUXVldWVJRCAoIGtleXMgJVF1ZXVlRGF0YSApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkUXVldWVEYXRheyRRdWV1ZUlEfSBpZiAhJFJ3UXVldWVzeyRRdWV1ZUlEfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBDaGVjayB0aGUgcGVybWlzc2lvbi4KICAgICAgICAgICAgbXkgJVF1ZXVlcyAgICAgPSAkUXVldWVPYmplY3QtPlF1ZXVlU3RhbmRhcmRUZW1wbGF0ZU1lbWJlckxpc3QoIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkSUQgKTsKICAgICAgICAgICAgbXkgJFBlcm1pc3Npb24gPSAkUXVldWVPYmplY3QtPlF1ZXVlTGlzdFBlcm1pc3Npb24oCiAgICAgICAgICAgICAgICBRdWV1ZUlEcyA9PiBbIGtleXMgJVF1ZXVlcyBdLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgPT4gJ3J3JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICggJFBlcm1pc3Npb24gbmUgJ3J3JyApIHsKICAgICAgICAgICAgICAgIHVuZGVmICVTdGFuZGFyZFRlbXBsYXRlRGF0YTsKICAgICAgICAgICAgICAgIHVuZGVmICVNZW1iZXI7CiAgICAgICAgICAgICAgICAkU3RhbmRhcmRUZW1wbGF0ZVR5cGUgPSAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9DaGFuZ2UoCiAgICAgICAgICAgIFNlbGVjdGVkID0+IFwlTWVtYmVyLAogICAgICAgICAgICBEYXRhICAgICA9PiBcJVF1ZXVlRGF0YSwKICAgICAgICAgICAgSUQgICAgICAgPT4gJFN0YW5kYXJkVGVtcGxhdGVEYXRhe0lEfSwKICAgICAgICAgICAgTmFtZSAgICAgPT4gJFN0YW5kYXJkVGVtcGxhdGVUeXBlIC4gJyAtICcgLiAkU3RhbmRhcmRUZW1wbGF0ZURhdGF7TmFtZX0sCiAgICAgICAgICAgIFR5cGUgICAgID0+ICdUZW1wbGF0ZScsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdGVtcGxhdGVzIDwtPiBRdWV1ZSBuOjEKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdRdWV1ZScgKSB7CgogICAgICAgICMgZ2V0IHF1ZXVlIGRhdGEKICAgICAgICBteSAkSUQgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApOwogICAgICAgIG15ICVRdWV1ZURhdGEgPSAkUXVldWVPYmplY3QtPlF1ZXVlR2V0KCBJRCA9PiAkSUQgKTsKCiAgICAgICAgIyBnZXQgdGVtcGxhdGVzCiAgICAgICAgbXkgJVN0YW5kYXJkVGVtcGxhdGVEYXRhID0gJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QtPlN0YW5kYXJkVGVtcGxhdGVMaXN0KAogICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICk7CgogICAgICAgIGlmICglU3RhbmRhcmRUZW1wbGF0ZURhdGEpIHsKICAgICAgICAgICAgZm9yIG15ICRTdGFuZGFyZFRlbXBsYXRlSUQgKCBzb3J0IGtleXMgJVN0YW5kYXJkVGVtcGxhdGVEYXRhICkgewogICAgICAgICAgICAgICAgbXkgJURhdGEgPSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdC0+U3RhbmRhcmRUZW1wbGF0ZUdldCgKICAgICAgICAgICAgICAgICAgICBJRCA9PiAkU3RhbmRhcmRUZW1wbGF0ZUlECiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJFN0YW5kYXJkVGVtcGxhdGVEYXRheyRTdGFuZGFyZFRlbXBsYXRlSUR9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkRGF0YXtUZW1wbGF0ZVR5cGV9ICkKICAgICAgICAgICAgICAgICAgICAuICcgLSAnCiAgICAgICAgICAgICAgICAgICAgLiAkRGF0YXtOYW1lfTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYXNzaWduZWQgdGVtcGxhdGVzCiAgICAgICAgbXkgJU1lbWJlciA9ICRRdWV1ZU9iamVjdC0+UXVldWVTdGFuZGFyZFRlbXBsYXRlTWVtYmVyTGlzdCgKICAgICAgICAgICAgUXVldWVJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAkU2VsZi0+e0xpZ2h0QWRtaW59ICkgewoKICAgICAgICAgICAgIyBGaWx0ZXIgb3V0IHRlbXBsYXRlcyB3aXRob3V0IHBlcm1pc3Npb24uCiAgICAgICAgICAgIGZvciBteSAkU3RhbmRhcmRUZW1wbGF0ZUlEICgga2V5cyAlU3RhbmRhcmRUZW1wbGF0ZURhdGEgKSB7CiAgICAgICAgICAgICAgICBteSAlUXVldWVzICAgICA9ICRRdWV1ZU9iamVjdC0+UXVldWVTdGFuZGFyZFRlbXBsYXRlTWVtYmVyTGlzdCggU3RhbmRhcmRUZW1wbGF0ZUlEID0+ICRTdGFuZGFyZFRlbXBsYXRlSUQgKTsKICAgICAgICAgICAgICAgIG15ICRQZXJtaXNzaW9uID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUxpc3RQZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgICAgIFF1ZXVlSURzID0+IFsga2V5cyAlUXVldWVzIF0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIERlZmF1bHQgID0+ICdydycsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCAkUGVybWlzc2lvbiBuZSAncncnICkgewogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkU3RhbmRhcmRUZW1wbGF0ZURhdGF7JFN0YW5kYXJkVGVtcGxhdGVJRH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgQ2hlY2sgdGhlIHBlcm1pc3Npb24uCiAgICAgICAgICAgIG15ICVSd1F1ZXVlcyA9ICRRdWV1ZU9iamVjdC0+R2V0QWxsUXVldWVzKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIFR5cGUgICA9PiAncncnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCAhJFJ3UXVldWVzeyRJRH0gKSB7CiAgICAgICAgICAgICAgICB1bmRlZiAlUXVldWVEYXRhOwogICAgICAgICAgICAgICAgdW5kZWYgJU1lbWJlcjsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9DaGFuZ2UoCiAgICAgICAgICAgIFNlbGVjdGVkID0+IFwlTWVtYmVyLAogICAgICAgICAgICBEYXRhICAgICA9PiBcJVN0YW5kYXJkVGVtcGxhdGVEYXRhLAogICAgICAgICAgICBJRCAgICAgICA9PiAkUXVldWVEYXRhe1F1ZXVlSUR9LAogICAgICAgICAgICBOYW1lICAgICA9PiAkUXVldWVEYXRhe05hbWV9LAogICAgICAgICAgICBUeXBlICAgICA9PiAnUXVldWUnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB0ZW1wbGF0ZXMgdG8gcXVldWUKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2VRdWV1ZScgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgZ2V0IG5ldyB0ZW1wbGF0ZXMKICAgICAgICBteSBAVGVtcGxhdGVzU2VsZWN0ZWQgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnSXRlbXNTZWxlY3RlZCcgKTsKICAgICAgICBteSBAVGVtcGxhdGVzQWxsICAgICAgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnSXRlbXNBbGwnICk7CgogICAgICAgIG15ICRRdWV1ZUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApOwoKICAgICAgICAjIGNyZWF0ZSBoYXNoIHdpdGggc2VsZWN0ZWQgdGVtcGxhdGVzCiAgICAgICAgbXkgJVRlbXBsYXRlc1NlbGVjdGVkID0gbWFwIHsgJF8gPT4gMSB9IEBUZW1wbGF0ZXNTZWxlY3RlZDsKCiAgICAgICAgaWYgKCAkU2VsZi0+e0xpZ2h0QWRtaW59ICkgewogICAgICAgICAgICBJRDoKICAgICAgICAgICAgZm9yIG15ICRTdGFuZGFyZFRlbXBsYXRlSUQgKCBrZXlzICVUZW1wbGF0ZXNTZWxlY3RlZCApIHsKICAgICAgICAgICAgICAgIG5leHQgSUQgaWYgISRTdGFuZGFyZFRlbXBsYXRlSUQ7ICAgICMgQ2FuIGNvbnRhaW4gZW1wdHkgc3RyaW5nLgoKICAgICAgICAgICAgICAgIG15ICVRdWV1ZXMgICAgID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZVN0YW5kYXJkVGVtcGxhdGVNZW1iZXJMaXN0KCBTdGFuZGFyZFRlbXBsYXRlSUQgPT4gJFN0YW5kYXJkVGVtcGxhdGVJRCApOwogICAgICAgICAgICAgICAgbXkgJFBlcm1pc3Npb24gPSAkUXVldWVPYmplY3QtPlF1ZXVlTGlzdFBlcm1pc3Npb24oCiAgICAgICAgICAgICAgICAgICAgUXVldWVJRHMgPT4gWyBrZXlzICVRdWV1ZXMgXSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgPT4gJ3J3JywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAoICRQZXJtaXNzaW9uIG5lICdydycgKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGFsbCB1c2VkIHRlbXBsYXRlcwogICAgICAgIGZvciBteSAkVGVtcGxhdGVJRCAoQFRlbXBsYXRlc0FsbCkgewogICAgICAgICAgICBteSAkQWN0aXZlID0gJFRlbXBsYXRlc1NlbGVjdGVkeyRUZW1wbGF0ZUlEfSA/IDEgOiAwOwoKICAgICAgICAgICAgIyBzZXQgY3VzdG9tZXIgdXNlciBzZXJ2aWNlIG1lbWJlcgogICAgICAgICAgICAkUXVldWVPYmplY3QtPlF1ZXVlU3RhbmRhcmRUZW1wbGF0ZU1lbWJlckFkZCgKICAgICAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgICAgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgICAgIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgICAgIEFjdGl2ZSAgICAgICAgICAgICA9PiAkQWN0aXZlLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgaWYgdGhlIHVzZXIgd291bGQgbGlrZSB0byBjb250aW51ZSBlZGl0aW5nIHRoZSB0ZW1wbGF0ZXMgLSBxdWV1ZSByZWxhdGlvbiBqdXN0IHJlZGlyZWN0IHRvIHRoZSBlZGl0IHNjcmVlbgogICAgICAgICMgb3RoZXJ3aXNlIHJldHVybiB0byByZWxhdGlvbnMgb3ZlcnZpZXcKICAgICAgICBpZiAoCiAgICAgICAgICAgIGRlZmluZWQgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApCiAgICAgICAgICAgICYmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApIGVxICcxJyApCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1RdWV1ZTtJRD0kUXVldWVJRCIKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259IgogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCBxdWV1ZXMgdG8gdGVtcGxhdGUKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2VUZW1wbGF0ZScgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgICMgZ2V0IG5ldyBxdWV1ZXMKICAgICAgICBteSBAUXVldWVzU2VsZWN0ZWQgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnSXRlbXNTZWxlY3RlZCcgKTsKICAgICAgICBteSBAUXVldWVzQWxsICAgICAgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnSXRlbXNBbGwnICk7CgogICAgICAgIG15ICRUZW1wbGF0ZUlEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApOwoKICAgICAgICAjIGNyZWF0ZSBoYXNoIHdpdGggc2VsZWN0ZWQgcXVldWVzCiAgICAgICAgbXkgJVF1ZXVlc1NlbGVjdGVkID0gbWFwIHsgJF8gPT4gMSB9IEBRdWV1ZXNTZWxlY3RlZDsKCiAgICAgICAgIyBiYWNrZW5kIGNoZWNrIHRvIHByZXZlbnQgc2F2aW5nIHdpdGhvdXQgcGVybWlzc2lvbi4KICAgICAgICBpZiAoICRTZWxmLT57TGlnaHRBZG1pbn0gKSB7CiAgICAgICAgICAgIG15ICVSd1F1ZXVlcyA9ICRRdWV1ZU9iamVjdC0+R2V0QWxsUXVldWVzKAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgIFR5cGUgICA9PiAncncnLAogICAgICAgICAgICApOwogICAgICAgICAgICBJRDoKICAgICAgICAgICAgZm9yIG15ICRRdWV1ZUlEICgga2V5cyAlUXVldWVzU2VsZWN0ZWQgKSB7CiAgICAgICAgICAgICAgICBuZXh0IElEIGlmICEkUXVldWVJRDsgICAgIyBDYW4gY29udGFpbiBlbXB0eSBzdHJpbmcuCiAgICAgICAgICAgICAgICBpZiAoICEkUndRdWV1ZXN7JFF1ZXVlSUR9ICkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBhbGwgdXNlZCBxdWV1ZXMKICAgICAgICBmb3IgbXkgJFF1ZXVlSUQgKEBRdWV1ZXNBbGwpIHsKICAgICAgICAgICAgbXkgJEFjdGl2ZSA9ICRRdWV1ZXNTZWxlY3RlZHskUXVldWVJRH0gPyAxIDogMDsKCiAgICAgICAgICAgICMgc2V0IGN1c3RvbWVyIHVzZXIgc2VydmljZSBtZW1iZXIKICAgICAgICAgICAgJFF1ZXVlT2JqZWN0LT5RdWV1ZVN0YW5kYXJkVGVtcGxhdGVNZW1iZXJBZGQoCiAgICAgICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgPT4gJFF1ZXVlSUQsCiAgICAgICAgICAgICAgICBTdGFuZGFyZFRlbXBsYXRlSUQgPT4gJFRlbXBsYXRlSUQsCiAgICAgICAgICAgICAgICBBY3RpdmUgICAgICAgICAgICAgPT4gJEFjdGl2ZSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGlmIHRoZSB1c2VyIHdvdWxkIGxpa2UgdG8gY29udGludWUgZWRpdGluZyB0aGUgcXVldWUgLSB0ZW1wbGF0ZXMgcmVsYXRpb24ganVzdCByZWRpcmVjdCB0byB0aGUgZWRpdCBzY3JlZW4KICAgICAgICAjIG90aGVyd2lzZSByZXR1cm4gdG8gcmVsYXRpb25zIG92ZXJ2aWV3CiAgICAgICAgaWYgKAogICAgICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICAgICAmJiAoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKSBlcSAnMScgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249VGVtcGxhdGU7SUQ9JFRlbXBsYXRlSUQiCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAkT3V0cHV0IC49ICRTZWxmLT5fT3ZlcnZpZXcoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9DaGFuZ2UgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRGF0YSAgID0gJXsgJFBhcmFte0RhdGF9IH07CiAgICBteSAkVHlwZSAgID0gJFBhcmFte1R5cGV9IHx8ICdUZW1wbGF0ZSc7CiAgICBteSAkTmVUeXBlID0gJFR5cGUgZXEgJ1F1ZXVlJyA/ICdUZW1wbGF0ZScgOiAnUXVldWUnOwoKICAgIG15ICVWaXNpYmxlVHlwZSA9ICgKICAgICAgICBUZW1wbGF0ZSA9PiAnVGVtcGxhdGUnLAogICAgICAgIFF1ZXVlICAgID0+ICdRdWV1ZScsCiAgICApOwoKICAgIG15ICRNeVR5cGUgICAgICAgPSAkVmlzaWJsZVR5cGV7JFR5cGV9OwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBteSAkQnJlYWRjcnVtYlRpdGxlID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdDaGFuZ2UgUXVldWUgUmVsYXRpb25zIGZvciBUZW1wbGF0ZScpOwoKICAgIGlmICggJFZpc2libGVUeXBleyRUeXBlfSBlcSAnUXVldWUnICkgewogICAgICAgICRCcmVhZGNydW1iVGl0bGUgPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoJ0NoYW5nZSBUZW1wbGF0ZSBSZWxhdGlvbnMgZm9yIFF1ZXVlJyk7CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBOYW1lICAgICAgICAgICAgPT4gJFBhcmFte05hbWV9LAogICAgICAgICAgICBCcmVhZGNydW1iVGl0bGUgPT4gJEJyZWFkY3J1bWJUaXRsZSwKICAgICAgICB9LAogICAgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25MaXN0JyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0ZpbHRlcicgKTsKCiAgICAjZml4ZWQgbGluawogICAgbXkgJFF1ZXVlVGFnOwoKICAgICRRdWV1ZVRhZyA9ICRUeXBlIGVxICdRdWV1ZScgPyAnUXVldWUnIDogJyc7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQ2hhbmdlJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBBY3Rpb25Ib21lICAgICAgPT4gJ0FkbWluJyAuICRUeXBlLAogICAgICAgICAgICBOZVR5cGUgICAgICAgICAgPT4gJE5lVHlwZSwKICAgICAgICAgICAgVmlzaWJsZVR5cGUgICAgID0+ICRWaXNpYmxlVHlwZXskVHlwZX0sCiAgICAgICAgICAgIFZpc2libGVOZVR5cGUgICA9PiAkVmlzaWJsZVR5cGV7JE5lVHlwZX0sCiAgICAgICAgICAgIFF1ZXVlICAgICAgICAgICA9PiAkUXVldWVUYWcsCiAgICAgICAgICAgIEJyZWFkY3J1bWJUaXRsZSA9PiAkQnJlYWRjcnVtYlRpdGxlLAogICAgICAgIH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgdGhlcmUgYXJlIHF1ZXVlL3RlbXBsYXRlCiAgICBpZiAoICElRGF0YSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmRNc2dMaXN0JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICBDb2xTcGFuID0+IDIsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdDaGFuZ2VIZWFkZXInLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgPT4gJFR5cGUsCiAgICAgICAgICAgIE5lVHlwZSAgICAgICAgPT4gJE5lVHlwZSwKICAgICAgICAgICAgVmlzaWJsZVR5cGUgICA9PiAkVmlzaWJsZVR5cGV7JFR5cGV9LAogICAgICAgICAgICBWaXNpYmxlTmVUeXBlID0+ICRWaXNpYmxlVHlwZXskTmVUeXBlfSwKICAgICAgICB9LAogICAgKTsKCiAgICBmb3IgbXkgJElEICggc29ydCB7IHVjKCAkRGF0YXskYX0gKSBjbXAgdWMoICREYXRheyRifSApIH0ga2V5cyAlRGF0YSApIHsKCiAgICAgICAgIyBzZXQgb3V0cHV0IGNsYXNzCiAgICAgICAgbXkgJFNlbGVjdGVkID0gJFBhcmFte1NlbGVjdGVkfS0+eyRJRH0gPyAnIGNoZWNrZWQgJyA6ICcnOwoKICAgICAgICAkUXVldWVUYWcgPSAkVHlwZSBuZSAnUXVldWUnID8gJ1F1ZXVlJyA6ICcnOwoKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlUm93JywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgID0+ICRQYXJhbXtEYXRhfS0+eyRJRH0sCiAgICAgICAgICAgICAgICBOZVR5cGUgICAgICAgID0+ICROZVR5cGUsCiAgICAgICAgICAgICAgICBUeXBlICAgICAgICAgID0+ICRUeXBlLAogICAgICAgICAgICAgICAgSUQgICAgICAgICAgICA9PiAkSUQsCiAgICAgICAgICAgICAgICBTZWxlY3RlZCAgICAgID0+ICRTZWxlY3RlZCwKICAgICAgICAgICAgICAgIFZpc2libGVUeXBlICAgPT4gJFZpc2libGVUeXBleyRUeXBlfSwKICAgICAgICAgICAgICAgIFZpc2libGVOZVR5cGUgPT4gJFZpc2libGVUeXBleyROZVR5cGV9LAogICAgICAgICAgICAgICAgUXVldWUgICAgICAgICA9PiAkUXVldWVUYWcsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5RdWV1ZVRlbXBsYXRlcycsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgVmlzaWJsZVR5cGUgID0+ICRNeVR5cGUsCiAgICApOwp9CgpzdWIgX092ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRRdWV1ZU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiB7fSwKICAgICk7CgogICAgIyBubyBhY3Rpb25zIGluIGFjdGlvbiBsaXN0CiAgICAjICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKE5hbWU9PidBY3Rpb25MaXN0Jyk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnRmlsdGVyVGVtcGxhdGUnICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnRmlsdGVyUXVldWUnICk7CiMgUm90aGVyIE9TUyAvIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0ltcG9ydEV4cG9ydFdpZGdldCcgKTsKIyBFTyBJbXBvcnRFeHBvcnRTdGFuZGFyZE9iamVjdHMKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdPdmVydmlld1Jlc3VsdCcgKTsKCiAgICBteSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGFuZGFyZFRlbXBsYXRlJyk7CgogICAgIyBnZXQgc3RkIHRlbXBsYXRlIGxpc3QKICAgIG15ICVTdGFuZGFyZFRlbXBsYXRlRGF0YSA9ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5TdGFuZGFyZFRlbXBsYXRlTGlzdCgKICAgICAgICBWYWxpZCA9PiAxLAogICAgKTsKCiAgICAjIGlmIHRoZXJlIGFyZSByZXN1bHRzIHRvIHNob3cKICAgIGlmICglU3RhbmRhcmRUZW1wbGF0ZURhdGEpIHsKICAgICAgICBmb3IgbXkgJFN0YW5kYXJkVGVtcGxhdGVJRCAoIHNvcnQga2V5cyAlU3RhbmRhcmRUZW1wbGF0ZURhdGEgKSB7CiAgICAgICAgICAgIG15ICVEYXRhID0gJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QtPlN0YW5kYXJkVGVtcGxhdGVHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkU3RhbmRhcmRUZW1wbGF0ZUlELAogICAgICAgICAgICApOwogICAgICAgICAgICAkU3RhbmRhcmRUZW1wbGF0ZURhdGF7JFN0YW5kYXJkVGVtcGxhdGVJRH0gPSAkTGF5b3V0T2JqZWN0LT57TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICREYXRhe1RlbXBsYXRlVHlwZX0gKQogICAgICAgICAgICAgICAgLiAnIC0gJwogICAgICAgICAgICAgICAgLiAkRGF0YXtOYW1lfTsKICAgICAgICB9CiAgICAgICAgSUQ6CiAgICAgICAgZm9yIG15ICRTdGFuZGFyZFRlbXBsYXRlSUQgKAogICAgICAgICAgICBzb3J0IHsgdWMoICRTdGFuZGFyZFRlbXBsYXRlRGF0YXskYX0gKSBjbXAgdWMoICRTdGFuZGFyZFRlbXBsYXRlRGF0YXskYn0gKSB9CiAgICAgICAgICAgIGtleXMgJVN0YW5kYXJkVGVtcGxhdGVEYXRhCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntMaWdodEFkbWlufSApIHsKICAgICAgICAgICAgICAgIG15ICVRdWV1ZXMgICAgID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZVN0YW5kYXJkVGVtcGxhdGVNZW1iZXJMaXN0KCBTdGFuZGFyZFRlbXBsYXRlSUQgPT4gJFN0YW5kYXJkVGVtcGxhdGVJRCApOwogICAgICAgICAgICAgICAgbXkgJFBlcm1pc3Npb24gPSAkUXVldWVPYmplY3QtPlF1ZXVlTGlzdFBlcm1pc3Npb24oCiAgICAgICAgICAgICAgICAgICAgUXVldWVJRHMgPT4gWyBrZXlzICVRdWV1ZXMgXSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgPT4gJ3J3JywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAoICRQZXJtaXNzaW9uIG5lICdydycgKSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzZXQgb3V0cHV0IGNsYXNzCiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnTGlzdDFuJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAkU3RhbmRhcmRUZW1wbGF0ZURhdGF7JFN0YW5kYXJkVGVtcGxhdGVJRH0sCiAgICAgICAgICAgICAgICAgICAgU3ViYWN0aW9uID0+ICdUZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgSUQgICAgICAgID0+ICRTdGFuZGFyZFRlbXBsYXRlSUQsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIG90aGVyd2lzZSBpdCBkaXNwbGF5cyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vVGVtcGxhdGVzRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgcXVldWUgZGF0YQogICAgbXkgJVF1ZXVlRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpLT5RdWV1ZUxpc3QoIFZhbGlkID0+IDEgKTsKCiAgICBpZiAoICRTZWxmLT57TGlnaHRBZG1pbn0gKSB7CgogICAgICAgICMgRmlsdGVyIG91dCBxdWV1ZXMgd2l0aG91dCBwZXJtaXNzaW9uLgogICAgICAgIG15ICVSd1F1ZXVlcyA9ICRRdWV1ZU9iamVjdC0+R2V0QWxsUXVldWVzKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ3J3JywKICAgICAgICApOwoKICAgICAgICBmb3IgbXkgJFF1ZXVlSUQgKCBrZXlzICVRdWV1ZURhdGEgKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkUXVldWVEYXRheyRRdWV1ZUlEfSBpZiAhJFJ3UXVldWVzeyRRdWV1ZUlEfTsKICAgICAgICB9CiAgICB9CgogICAgIyBpZiB0aGVyZSBhcmUgcmVzdWx0cyB0byBzaG93CiAgICBpZiAoJVF1ZXVlRGF0YSkgewogICAgICAgIGZvciBteSAkUXVldWVJRCAoIHNvcnQgeyB1YyggJFF1ZXVlRGF0YXskYX0gKSBjbXAgdWMoICRRdWV1ZURhdGF7JGJ9ICkgfSBrZXlzICVRdWV1ZURhdGEgKSB7CgogICAgICAgICAgICAjIHNldCBvdXRwdXQgY2xhc3MKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdMaXN0bjEnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICRRdWV1ZURhdGF7JFF1ZXVlSUR9LAogICAgICAgICAgICAgICAgICAgIFN1YmFjdGlvbiA9PiAnUXVldWUnLAogICAgICAgICAgICAgICAgICAgIElEICAgICAgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlIGl0IGRpc3BsYXlzIGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9RdWV1ZXNGb3VuZE1zZycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHJldHVybiBvdXRwdXQKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblF1ZXVlVGVtcGxhdGVzJywKICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICk7Cn0KCjE7Cg==</File>
        <File Location="Custom/Kernel/Modules/AdminRole.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5Sb2xlLnBtCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZG1pblJvbGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpMYW5ndWFnZSBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCBwcmVmIGZvciBjb2x1bW5zIGtleQogICAgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9ID0gJ0luY2x1ZGVJbnZhbGlkJyAuICctJyAuICRTZWxmLT57QWN0aW9ufTsKCiAgICBteSAlUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA9ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9IH07CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRQYXJhbU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkTG9nT2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwogICAgbXkgJEdyb3VwT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwogICAgbXkgJE5vdGlmaWNhdGlvbiA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOb3RpZmljYXRpb24nICkgfHwgJyc7CiAgICAkUGFyYW17SW5jbHVkZUludmFsaWR9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0luY2x1ZGVJbnZhbGlkJyApOwoKICAgIGlmICggZGVmaW5lZCAkUGFyYW17SW5jbHVkZUludmFsaWR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlNldFByZWZlcmVuY2VzKAogICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBLZXkgICAgPT4gJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9LAogICAgICAgICAgICBWYWx1ZSAgPT4gJFBhcmFte0luY2x1ZGVJbnZhbGlkfSwKICAgICAgICApOwoKICAgICAgICAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA9ICRQYXJhbXtJbmNsdWRlSW52YWxpZH07CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBjaGFuZ2UKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2UnICkgewogICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKQogICAgICAgICAgICB8fCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUm9sZUlEJyApCiAgICAgICAgICAgIHx8ICcnOwogICAgICAgIG15ICVEYXRhID0gJEdyb3VwT2JqZWN0LT5Sb2xlR2V0KAogICAgICAgICAgICBJRCA9PiAkSUQsCiAgICAgICAgKTsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdSb2xlIHVwZGF0ZWQhJykgKQogICAgICAgICAgICBpZiAoICROb3RpZmljYXRpb24gJiYgJE5vdGlmaWNhdGlvbiBlcSAnVXBkYXRlJyApOwogICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdDaGFuZ2UnLAogICAgICAgICAgICAlRGF0YSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluUm9sZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGNoYW5nZSBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2VBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KElEIE5hbWUgQ29tbWVudCBWYWxpZElEKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtOYW1lfSApIHsKICAgICAgICAgICAgJEVycm9yc3tOYW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyB1cGRhdGUgZ3JvdXAKICAgICAgICAgICAgbXkgJFJvbGVVcGRhdGUgPSAkR3JvdXBPYmplY3QtPlJvbGVVcGRhdGUoCiAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJFJvbGVVcGRhdGUpIHsKCiAgICAgICAgICAgICAgICAjIGlmIHRoZSB1c2VyIHdvdWxkIGxpa2UgdG8gY29udGludWUgZWRpdGluZyB0aGUgcm9sZSwganVzdCByZWRpcmVjdCB0byB0aGUgZWRpdCBzY3JlZW4KICAgICAgICAgICAgICAgICMgb3RoZXJ3aXNlIHJldHVybiB0byBvdmVydmlldwogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIGRlZmluZWQgJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApCiAgICAgICAgICAgICAgICAgICAgJiYgKCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ29udGludWVBZnRlclNhdmUnICkgZXEgJzEnICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249Q2hhbmdlO0lEPSRHZXRQYXJhbXtJRH07Tm90aWZpY2F0aW9uPVVwZGF0ZSIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtOb3RpZmljYXRpb249VXBkYXRlIiApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyB3ZW50IHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJE5vdGUKICAgICAgICAgICAgPyAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnRXJyb3InLAogICAgICAgICAgICAgICAgSW5mbyAgICAgPT4gJE5vdGUsCiAgICAgICAgICAgICkKICAgICAgICAgICAgOiAnJzsKICAgICAgICAkU2VsZi0+X0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQ2hhbmdlJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAlRXJyb3JzLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5Sb2xlJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkJyApIHsKICAgICAgICBteSAlR2V0UGFyYW0gPSAoKTsKICAgICAgICAkR2V0UGFyYW17TmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmFtZScgKTsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9FZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZCcsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluUm9sZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGRBY3Rpb24nICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkTm90ZSA9ICcnOwogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KElEIE5hbWUgQ29tbWVudCBWYWxpZElEKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGZvciBuZWVkZWQgZGF0YQogICAgICAgIGlmICggISRHZXRQYXJhbXtOYW1lfSApIHsKICAgICAgICAgICAgJEVycm9yc3tOYW1lSW52YWxpZH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBhZGQgcm9sZQogICAgICAgICAgICBteSAkUm9sZUlEID0gJEdyb3VwT2JqZWN0LT5Sb2xlQWRkKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRSb2xlSUQpIHsKICAgICAgICAgICAgICAgICRTZWxmLT5fT3ZlcnZpZXcoKTsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdSb2xlIGFkZGVkIScpICk7CiAgICAgICAgICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluUm9sZScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJE5vdGUgPSAkTG9nT2JqZWN0LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICdFcnJvcicsCiAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICROb3RlCiAgICAgICAgICAgID8gJExheW91dE9iamVjdC0+Tm90aWZ5KAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgICAgIEluZm8gICAgID0+ICROb3RlLAogICAgICAgICAgICApCiAgICAgICAgICAgIDogJyc7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJFNlbGYtPl9FZGl0KAogICAgICAgICAgICBBY3Rpb24gPT4gJ0FkZCcsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgJUVycm9ycywKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluUm9sZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5fT3ZlcnZpZXcoKTsKCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KCBJbmZvID0+IFRyYW5zbGF0YWJsZSgnUm9sZSB1cGRhdGVkIScpICkKICAgICAgICAgICAgaWYgKCAkTm90aWZpY2F0aW9uICYmICROb3RpZmljYXRpb24gZXEgJ1VwZGF0ZScgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5Sb2xlJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKfQoKc3ViIF9FZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uTGlzdCcgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25PdmVydmlldycgKTsKCiAgICAjIGdldCB2YWxpZCBsaXN0CiAgICBteSAlVmFsaWRMaXN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKICAgIG15ICVWYWxpZExpc3RSZXZlcnNlID0gcmV2ZXJzZSAlVmFsaWRMaXN0OwoKICAgICRQYXJhbXtWYWxpZE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlVmFsaWRMaXN0LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZScsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17VmFsaWRJRH0gfHwgJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZScsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICByZXR1cm4gMTsKfQoKc3ViIF9PdmVydmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkR3JvdXBPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbkxpc3QnICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uQWRkJyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnSW5jbHVkZUludmFsaWQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBJbmNsdWRlSW52YWxpZCAgICAgICAgPT4gJFNlbGYtPntJbmNsdWRlSW52YWxpZH0sCiAgICAgICAgICAgIEluY2x1ZGVJbnZhbGlkQ2hlY2tlZCA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA/ICdjaGVja2VkJyA6ICcnLAogICAgICAgIH0sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0ZpbHRlcicgKTsKIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnSW1wb3J0RXhwb3J0V2lkZ2V0JyApOwojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwoKICAgIG15ICVMaXN0ID0gJEdyb3VwT2JqZWN0LT5Sb2xlTGlzdCgKICAgICAgICBWYWxpZCA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA/IDAgOiAxLAogICAgKTsKICAgIG15ICRMaXN0U2l6ZSA9IGtleXMgJUxpc3Q7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdIZWFkZXInLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBBbGxJdGVtc0NvdW50ID0+ICRMaXN0U2l6ZSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGlmIHRoZXJlIGlzIGRhdGEgYXZhaWxhYmxlLCBpdCBpcyBzaG93bgogICAgaWYgKCVMaXN0KSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0JywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgICAgICBteSAlVmFsaWRMaXN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgpOwogICAgICAgIGZvciBteSAkS2V5TGlzdCAoIHNvcnQgeyAkTGlzdHskYX0gY21wICRMaXN0eyRifSB9IGtleXMgJUxpc3QgKSB7CgogICAgICAgICAgICBteSAlRGF0YSA9ICRHcm91cE9iamVjdC0+Um9sZUdldCggSUQgPT4gJEtleUxpc3QgKTsKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFJvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBWYWxpZCA9PiAkVmFsaWRMaXN0eyAkRGF0YXtWYWxpZElEfSB9LAogICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2UsIGEgbWVzc2FnZSBpcyBkaXNwbGF5ZWQKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb1JvbGVzRGVmaW5lZCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Custom/Kernel/Modules/AdminRoleGroup.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5Sb2xlR3JvdXAucG0KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluUm9sZUdyb3VwOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRHcm91cE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgdXNlciA8LT4gZ3JvdXAgMTpuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnUm9sZScgKSB7CgogICAgICAgICMgZ2V0IHVzZXIgZGF0YQogICAgICAgIG15ICRJRCAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKTsKICAgICAgICBteSAlUm9sZURhdGEgPSAkR3JvdXBPYmplY3QtPlJvbGVHZXQoIElEID0+ICRJRCApOwoKICAgICAgICAjIGdldCBncm91cCBkYXRhCiAgICAgICAgbXkgJUdyb3VwRGF0YSA9ICRHcm91cE9iamVjdC0+R3JvdXBMaXN0KCBWYWxpZCA9PiAxICk7CiAgICAgICAgbXkgJVR5cGVzOwogICAgICAgIGZvciBteSAkVHlwZSAoIEB7ICRDb25maWdPYmplY3QtPkdldCgnU3lzdGVtOjpQZXJtaXNzaW9uJykgfSApIHsKICAgICAgICAgICAgbXkgJURhdGEgPSAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Sb2xlR3JvdXBHZXQoCiAgICAgICAgICAgICAgICBSb2xlSUQgPT4gJElELAogICAgICAgICAgICAgICAgVHlwZSAgID0+ICRUeXBlLAogICAgICAgICAgICApOwogICAgICAgICAgICAkVHlwZXN7JFR5cGV9ID0gXCVEYXRhOwogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJFNlbGYtPl9DaGFuZ2UoCiAgICAgICAgICAgICVUeXBlcywKICAgICAgICAgICAgRGF0YSA9PiBcJUdyb3VwRGF0YSwKICAgICAgICAgICAgSUQgICA9PiAkUm9sZURhdGF7SUR9LAogICAgICAgICAgICBOYW1lID0+ICRSb2xlRGF0YXtOYW1lfSwKICAgICAgICAgICAgVHlwZSA9PiAnUm9sZScsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgZ3JvdXAgPC0+IHVzZXIgbjoxCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnR3JvdXAnICkgewoKICAgICAgICAjIGdldCBncm91cCBkYXRhCiAgICAgICAgbXkgJElEICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKTsKICAgICAgICBteSAlR3JvdXBEYXRhID0gJEdyb3VwT2JqZWN0LT5Hcm91cEdldCggSUQgPT4gJElEICk7CgogICAgICAgICMgZ2V0IHVzZXIgbGlzdAogICAgICAgIG15ICVSb2xlRGF0YSA9ICRHcm91cE9iamVjdC0+Um9sZUxpc3QoIFZhbGlkID0+IDEgKTsKCiAgICAgICAgIyBnZXQgcGVybWlzc2lvbiBsaXN0IHVzZXJzCiAgICAgICAgbXkgJVR5cGVzOwogICAgICAgIGZvciBteSAkVHlwZSAoIEB7ICRDb25maWdPYmplY3QtPkdldCgnU3lzdGVtOjpQZXJtaXNzaW9uJykgfSApIHsKICAgICAgICAgICAgbXkgJURhdGEgPSAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Hcm91cFJvbGVHZXQoCiAgICAgICAgICAgICAgICBHcm91cElEID0+ICRJRCwKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJFR5cGUsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRUeXBlc3skVHlwZX0gPSBcJURhdGE7CiAgICAgICAgfQoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkU2VsZi0+X0NoYW5nZSgKICAgICAgICAgICAgJVR5cGVzLAogICAgICAgICAgICBEYXRhID0+IFwlUm9sZURhdGEsCiAgICAgICAgICAgIElEICAgPT4gJEdyb3VwRGF0YXtJRH0sCiAgICAgICAgICAgIE5hbWUgPT4gJEdyb3VwRGF0YXtOYW1lfSwKICAgICAgICAgICAgVHlwZSA9PiAnR3JvdXAnLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGFkZCB1c2VyIHRvIGdyb3VwcwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZUdyb3VwJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJElEID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApIHx8ICcnOwoKICAgICAgICAjIGdldCBuZXcgZ3JvdXBzCiAgICAgICAgbXkgJVBlcm1pc3Npb25zOwogICAgICAgIGZvciBteSAkVHlwZSAoIEB7ICRDb25maWdPYmplY3QtPkdldCgnU3lzdGVtOjpQZXJtaXNzaW9uJykgfSApIHsKICAgICAgICAgICAgbXkgQElEcyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICRUeXBlICk7CiAgICAgICAgICAgICRQZXJtaXNzaW9uc3skVHlwZX0gPSBcQElEczsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGdyb3VwIGRhdGEKICAgICAgICBteSAlUm9sZURhdGEgPSAkR3JvdXBPYmplY3QtPlJvbGVMaXN0KCBWYWxpZCA9PiAxICk7CiAgICAgICAgbXkgJU5ld1Blcm1pc3Npb247CiAgICAgICAgZm9yIG15ICRSb2xlSUQgKCBzb3J0IGtleXMgJVJvbGVEYXRhICkgewogICAgICAgICAgICBmb3IgbXkgJFBlcm1pc3Npb24gKCBzb3J0IGtleXMgJVBlcm1pc3Npb25zICkgewogICAgICAgICAgICAgICAgJE5ld1Blcm1pc3Npb257JFBlcm1pc3Npb259ID0gMDsKICAgICAgICAgICAgICAgIG15IEBBcnJheSA9IEB7ICRQZXJtaXNzaW9uc3skUGVybWlzc2lvbn0gfTsKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoQEFycmF5KSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwogICAgICAgICAgICAgICAgICAgIGlmICggJFJvbGVJRCA9PSAkSUQgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICROZXdQZXJtaXNzaW9ueyRQZXJtaXNzaW9ufSA9IDE7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRHcm91cE9iamVjdC0+UGVybWlzc2lvbkdyb3VwUm9sZUFkZCgKICAgICAgICAgICAgICAgIFJJRCAgICAgICAgPT4gJFJvbGVJRCwKICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJElELAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiBcJU5ld1Blcm1pc3Npb24sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgaWYgdGhlIHVzZXIgd291bGQgbGlrZSB0byBjb250aW51ZSBlZGl0aW5nIHRoZSByb2xlLWdyb3VwIHJlbGF0aW9uIGp1c3QgcmVkaXJlY3QgdG8gdGhlIGVkaXQgc2NyZWVuCiAgICAgICAgIyBvdGhlcndpc2UgcmV0dXJuIHRvIHJlbGF0aW9ucyBvdmVydmlldwogICAgICAgIGlmICgKICAgICAgICAgICAgZGVmaW5lZCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ29udGludWVBZnRlclNhdmUnICkKICAgICAgICAgICAgJiYgKCAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnQ29udGludWVBZnRlclNhdmUnICkgZXEgJzEnICkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufTtTdWJhY3Rpb249R3JvdXA7SUQ9JElEIiApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KCBPUCA9PiAiQWN0aW9uPSRTZWxmLT57QWN0aW9ufSIgKTsKICAgICAgICB9CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBncm91cHMgdG8gdXNlcgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0NoYW5nZVJvbGUnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICk7CgogICAgICAgICMgZ2V0IG5ldyBncm91cHMKICAgICAgICBteSAlUGVybWlzc2lvbnM7CiAgICAgICAgZm9yIG15ICRUeXBlICggQHsgJENvbmZpZ09iamVjdC0+R2V0KCdTeXN0ZW06OlBlcm1pc3Npb24nKSB9ICkgewogICAgICAgICAgICBteSBASURzID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJFR5cGUgKTsKICAgICAgICAgICAgJFBlcm1pc3Npb25zeyRUeXBlfSA9IFxASURzOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgZ3JvdXAgZGF0YQogICAgICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwTGlzdCggVmFsaWQgPT4gMSApOwogICAgICAgIG15ICVOZXdQZXJtaXNzaW9uOwogICAgICAgIGZvciBteSAkR3JvdXBJRCAoIHNvcnQga2V5cyAlR3JvdXBEYXRhICkgewogICAgICAgICAgICBmb3IgbXkgJFBlcm1pc3Npb24gKCBzb3J0IGtleXMgJVBlcm1pc3Npb25zICkgewogICAgICAgICAgICAgICAgJE5ld1Blcm1pc3Npb257JFBlcm1pc3Npb259ID0gMDsKICAgICAgICAgICAgICAgIG15IEBBcnJheSA9IEB7ICRQZXJtaXNzaW9uc3skUGVybWlzc2lvbn0gfTsKICAgICAgICAgICAgICAgIElEOgogICAgICAgICAgICAgICAgZm9yIG15ICRJRCAoQEFycmF5KSB7CiAgICAgICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJElEOwogICAgICAgICAgICAgICAgICAgIGlmICggJEdyb3VwSUQgPT0gJElEICkgewogICAgICAgICAgICAgICAgICAgICAgICAkTmV3UGVybWlzc2lvbnskUGVybWlzc2lvbn0gPSAxOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Hcm91cFJvbGVBZGQoCiAgICAgICAgICAgICAgICBSSUQgICAgICAgID0+ICRJRCwKICAgICAgICAgICAgICAgIEdJRCAgICAgICAgPT4gJEdyb3VwSUQsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+IFwlTmV3UGVybWlzc2lvbiwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBpZiB0aGUgdXNlciB3b3VsZCBsaWtlIHRvIGNvbnRpbnVlIGVkaXRpbmcgdGhlIGdyb3VwLXJvbGUgcmVsYXRpb24ganVzdCByZWRpcmVjdCB0byB0aGUgZWRpdCBzY3JlZW4KICAgICAgICAjIG90aGVyd2lzZSByZXR1cm4gdG8gcmVsYXRpb25zIG92ZXJ2aWV3CiAgICAgICAgaWYgKAogICAgICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICAgICAmJiAoICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKSBlcSAnMScgKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1Sb2xlO0lEPSRJRCIgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgb3ZlcnZpZXcKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgJE91dHB1dCAuPSAkU2VsZi0+X092ZXJ2aWV3KCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfQ2hhbmdlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgIG15ICVEYXRhICAgPSAleyAkUGFyYW17RGF0YX0gfTsKICAgIG15ICRUeXBlICAgPSAkUGFyYW17VHlwZX0gfHwgJ1JvbGUnOwogICAgbXkgJE5lVHlwZSA9ICRUeXBlIGVxICdHcm91cCcgPyAnUm9sZScgOiAnR3JvdXAnOwoKICAgICRQYXJhbXtCcmVhZGNydW1iVGl0bGV9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJDaGFuZ2UgR3JvdXAgUmVsYXRpb25zIGZvciBSb2xlIik7CgogICAgaWYgKCAkVHlwZSBlcSAnR3JvdXAnICkgewogICAgICAgICRQYXJhbXtCcmVhZGNydW1iVGl0bGV9ID0gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCJDaGFuZ2UgUm9sZSBSZWxhdGlvbnMgZm9yIEdyb3VwIik7CiAgICB9CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnQ2hhbmdlJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBBY3Rpb25Ib21lID0+ICdBZG1pbicgLiAkVHlwZSwKICAgICAgICAgICAgTmVUeXBlICAgICA9PiAkTmVUeXBlLAogICAgICAgIH0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25MaXN0JyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JyApOwoKICAgICMgY2hlY2sgaWYgdGhlcmUgYXJlIGdyb3Vwcy9yb2xlcwogICAgaWYgKCAhJURhdGEgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kTXNnTGlzdCcsCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgQ29sU3BhbiA9PiA4LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgQFBlcm1pc3Npb25zOwoKICAgIFRZUEU6CiAgICBmb3IgbXkgJFR5cGUgKCBAeyAkQ29uZmlnT2JqZWN0LT5HZXQoJ1N5c3RlbTo6UGVybWlzc2lvbicpIH0gKSB7CiAgICAgICAgbmV4dCBUWVBFIHVubGVzcyAkVHlwZTsKCiAgICAgICAgbXkgJE1hcmsgPSAkVHlwZSBlcSAncncnID8gJ0hpZ2hsaWdodCcgOiAnJzsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnQ2hhbmdlSGVhZGVyJywKICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICBNYXJrID0+ICRNYXJrLAogICAgICAgICAgICAgICAgVHlwZSA9PiAkVHlwZSwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBwdXNoIEBQZXJtaXNzaW9ucywgJFR5cGU7CiAgICB9CgogICAgIyBzZXQgcGVybWlzc2lvbnMKICAgICRMYXlvdXRPYmplY3QtPkFkZEpTRGF0YSgKICAgICAgICBLZXkgICA9PiAnUmVsYXRpb25JdGVtcycsCiAgICAgICAgVmFsdWUgPT4gXEBQZXJtaXNzaW9ucywKICAgICk7CgogICAgZm9yIG15ICRJRCAoIHNvcnQgeyB1YyggJERhdGF7JGF9ICkgY21wIHVjKCAkRGF0YXskYn0gKSB9IGtleXMgJURhdGEgKSB7CgogICAgICAgICMgc2V0IG91dHB1dCBjbGFzcwogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdDaGFuZ2VSb3cnLAogICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAkUGFyYW17RGF0YX0tPnskSUR9LAogICAgICAgICAgICAgICAgSUQgICAgID0+ICRJRCwKICAgICAgICAgICAgICAgIE5lVHlwZSA9PiAkTmVUeXBlLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgVFlQRToKICAgICAgICBmb3IgbXkgJFR5cGUgKCBAeyAkQ29uZmlnT2JqZWN0LT5HZXQoJ1N5c3RlbTo6UGVybWlzc2lvbicpIH0gKSB7CiAgICAgICAgICAgIG5leHQgVFlQRSBpZiAhJFR5cGU7CiAgICAgICAgICAgIG15ICRNYXJrICAgICA9ICRUeXBlIGVxICdydycgICAgICAgID8gJ0hpZ2hsaWdodCcgOiAnJzsKICAgICAgICAgICAgbXkgJFNlbGVjdGVkID0gJFBhcmFteyRUeXBlfS0+eyRJRH0gPyAnIGNoZWNrZWQgJyA6ICcnOwoKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdDaGFuZ2VSb3dJdGVtJywKICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICA9PiAkUGFyYW17RGF0YX0tPnskSUR9LAogICAgICAgICAgICAgICAgICAgIE1hcmsgICAgID0+ICRNYXJrLAogICAgICAgICAgICAgICAgICAgIFR5cGUgICAgID0+ICRUeXBlLAogICAgICAgICAgICAgICAgICAgIElEICAgICAgID0+ICRJRCwKICAgICAgICAgICAgICAgICAgICBTZWxlY3RlZCA9PiAkU2VsZWN0ZWQsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5Sb2xlR3JvdXAnLAogICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgKTsKfQoKc3ViIF9PdmVydmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkR3JvdXBPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4ge30sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3QWN0aW9uJywKICAgICAgICBEYXRhID0+IHt9LAogICAgKTsKIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnSW1wb3J0RXhwb3J0V2lkZ2V0JyApOwojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwoKICAgICMgZ2V0IHVzZXIgbGlzdAogICAgbXkgJVJvbGVEYXRhID0gJEdyb3VwT2JqZWN0LT5Sb2xlTGlzdCggVmFsaWQgPT4gMSApOwoKICAgIGlmICglUm9sZURhdGEpIHsKICAgICAgICBmb3IgbXkgJFJvbGVJRCAoIHNvcnQgeyB1YyggJFJvbGVEYXRheyRhfSApIGNtcCB1YyggJFJvbGVEYXRheyRifSApIH0ga2V5cyAlUm9sZURhdGEgKSB7CgogICAgICAgICAgICAjIHNldCBvdXRwdXQgY2xhc3MKICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdMaXN0MW4nLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICRSb2xlRGF0YXskUm9sZUlEfSwKICAgICAgICAgICAgICAgICAgICBTdWJhY3Rpb24gPT4gJ1JvbGUnLAogICAgICAgICAgICAgICAgICAgIElEICAgICAgICA9PiAkUm9sZUlELAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmRNc2dSb2xlJywKICAgICAgICAgICAgRGF0YSA9PiB7fSwKICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGdyb3VwIGRhdGEKICAgIG15ICVHcm91cERhdGEgPSAkR3JvdXBPYmplY3QtPkdyb3VwTGlzdCggVmFsaWQgPT4gMSApOwoKICAgIGlmICglR3JvdXBEYXRhKSB7CiAgICAgICAgZm9yIG15ICRHcm91cElEICggc29ydCB7IHVjKCAkR3JvdXBEYXRheyRhfSApIGNtcCB1YyggJEdyb3VwRGF0YXskYn0gKSB9IGtleXMgJUdyb3VwRGF0YSApIHsKCiAgICAgICAgICAgICMgc2V0IG91dHB1dCBjbGFzcwogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ0xpc3RuMScsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gJEdyb3VwRGF0YXskR3JvdXBJRH0sCiAgICAgICAgICAgICAgICAgICAgU3ViYWN0aW9uID0+ICdHcm91cCcsCiAgICAgICAgICAgICAgICAgICAgSUQgICAgICAgID0+ICRHcm91cElELAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmRNc2dHcm91cCcsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHJldHVybiBvdXRwdXQKICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblJvbGVHcm91cCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICApOwp9CgoxOwo=</File>
        <File Location="Custom/Kernel/Modules/AdminTemplate.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5UZW1wbGF0ZS5wbQojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TW9kdWxlczo6QWRtaW5UZW1wbGF0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6Okxhbmd1YWdlIHF3KFRyYW5zbGF0YWJsZSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIGlmICggISRQYXJhbXtBY2Nlc3NSd30gJiYgJFBhcmFte0FjY2Vzc1JvfSApIHsKICAgICAgICAkU2VsZi0+e0xpZ2h0QWRtaW59ID0gMTsKICAgIH0KCiAgICAjIHNldCBwcmVmIGZvciBjb2x1bW5zIGtleQogICAgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9ID0gJ0luY2x1ZGVJbnZhbGlkJyAuICctJyAuICRTZWxmLT57QWN0aW9ufTsKCiAgICBteSAlUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA9ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9IH07CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YW5kYXJkVGVtcGxhdGUnKTsKICAgIG15ICRTdGRBdHRhY2htZW50T2JqZWN0ICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0ZEF0dGFjaG1lbnQnKTsKICAgIG15ICRRdWV1ZU9iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyk7CgogICAgbXkgJE5vdGlmaWNhdGlvbiA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdOb3RpZmljYXRpb24nICkgfHwgJyc7CgogICAgJFBhcmFte0luY2x1ZGVJbnZhbGlkfSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJbmNsdWRlSW52YWxpZCcgKTsKCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte0luY2x1ZGVJbnZhbGlkfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5TZXRQcmVmZXJlbmNlcygKICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgS2V5ICAgID0+ICRTZWxmLT57UHJlZktleUluY2x1ZGVJbnZhbGlkfSwKICAgICAgICAgICAgVmFsdWUgID0+ICRQYXJhbXtJbmNsdWRlSW52YWxpZH0sCiAgICAgICAgKTsKCiAgICAgICAgJFNlbGYtPntJbmNsdWRlSW52YWxpZH0gPSAkUGFyYW17SW5jbHVkZUludmFsaWR9OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgY2hhbmdlCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlJyApIHsKICAgICAgICBteSAkSUQgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKSB8fCAnJzsKICAgICAgICBteSAlRGF0YSA9ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5TdGFuZGFyZFRlbXBsYXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgQFNlbGVjdGVkQXR0YWNobWVudDsKICAgICAgICBteSAlU2VsZWN0ZWRBdHRhY2htZW50RGF0YSA9ICRTdGRBdHRhY2htZW50T2JqZWN0LT5TdGRBdHRhY2htZW50U3RhbmRhcmRUZW1wbGF0ZU1lbWJlckxpc3QoCiAgICAgICAgICAgIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkSUQsCiAgICAgICAgKTsKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlU2VsZWN0ZWRBdHRhY2htZW50RGF0YSApIHsKICAgICAgICAgICAgcHVzaCBAU2VsZWN0ZWRBdHRhY2htZW50LCAkS2V5OwogICAgICAgIH0KCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICAgICBpZiAoICRTZWxmLT57TGlnaHRBZG1pbn0gKSB7CiAgICAgICAgICAgIG15ICVRdWV1ZXMgPSAkUXVldWVPYmplY3QtPlF1ZXVlU3RhbmRhcmRUZW1wbGF0ZU1lbWJlckxpc3QoIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkSUQgKTsKICAgICAgICAgICAgJERhdGF7UGVybWlzc2lvbn0gPSAkUXVldWVPYmplY3QtPlF1ZXVlTGlzdFBlcm1pc3Npb24oCiAgICAgICAgICAgICAgICBRdWV1ZUlEcyA9PiBbIGtleXMgJVF1ZXVlcyBdLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgPT4gJ3J3JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgTm8gcGVybWlzc2lvbiBmb3IgdGhlIHRlbXBsYXRlLgogICAgICAgICAgICBpZiAoICEkRGF0YXtQZXJtaXNzaW9ufSApIHsKICAgICAgICAgICAgICAgICVEYXRhID0gKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkRGF0YXtQZXJtaXNzaW9ufSBlcSAncm8nICkgewogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ05vdGljZScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdObyBwZXJtaXNzaW9uIHRvIGVkaXQgdGhpcyB0ZW1wbGF0ZS4nKSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KCBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVGVtcGxhdGUgdXBkYXRlZCEnKSApCiAgICAgICAgICAgIGlmICggJE5vdGlmaWNhdGlvbiAmJiAkTm90aWZpY2F0aW9uIGVxICdVcGRhdGUnICk7CgogICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdDaGFuZ2UnLAogICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgU2VsZWN0ZWRBdHRhY2htZW50cyA9PiBcQFNlbGVjdGVkQXR0YWNobWVudCwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluVGVtcGxhdGUnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBjaGFuZ2UgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgQE5ld0lEcyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdJRHMnICk7CiAgICAgICAgaWYgKCAkU2VsZi0+e0xpZ2h0QWRtaW59ICkgewogICAgICAgICAgICBteSBAQ2hlY2tlZElEczsKICAgICAgICAgICAgZm9yIG15ICRJRCAoQE5ld0lEcykgewogICAgICAgICAgICAgICAgbXkgJFBlcm1pc3Npb24gPSAkU3RkQXR0YWNobWVudE9iamVjdC0+U3RkQXR0YWNobWVudFN0YW5kYXJkVGVtcGxhdGVQZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgICAgIElEICAgICA9PiAkSUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAoICRQZXJtaXNzaW9uIGVxICdydycgKSB7CiAgICAgICAgICAgICAgICAgICAgcHVzaCBAQ2hlY2tlZElEcywgJElEOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEBOZXdJRHMgPSBAQ2hlY2tlZElEczsKICAgICAgICB9CgogICAgICAgIG15ICggJUdldFBhcmFtLCAlRXJyb3JzICk7CiAgICAgICAgZm9yIG15ICRQYXJhbWV0ZXIgKHF3KElEIE5hbWUgQ29tbWVudCBWYWxpZElEIFRlbXBsYXRlVHlwZSkpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgJEdldFBhcmFteydUZW1wbGF0ZSd9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSgKICAgICAgICAgICAgUGFyYW0gPT4gJ1RlbXBsYXRlJywKICAgICAgICAgICAgUmF3ICAgPT4gMQogICAgICAgICkgfHwgJyc7CgogICAgICAgICMgZ2V0IGNvbXBvc2VkIGNvbnRlbnQgdHlwZQogICAgICAgICRHZXRQYXJhbXtDb250ZW50VHlwZX0gPSAndGV4dC9wbGFpbic7CiAgICAgICAgaWYgKCAkTGF5b3V0T2JqZWN0LT57QnJvd3NlclJpY2hUZXh0fSApIHsKICAgICAgICAgICAgJEdldFBhcmFte0NvbnRlbnRUeXBlfSA9ICd0ZXh0L2h0bWwnOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBuZWVkZWQgZGF0YQogICAgICAgIGZvciBteSAkTmVlZGVkIChxdyhOYW1lIFZhbGlkSUQgVGVtcGxhdGVUeXBlKSkgewogICAgICAgICAgICBpZiAoICEkR2V0UGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICAgICAkRXJyb3JzeyAkTmVlZGVkIC4gJ0ludmFsaWQnIH0gPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGlmIGEgc3RhbmRhcmQgdGVtcGxhdGUgZXhpc3Qgd2l0aCB0aGlzIG5hbWUKICAgICAgICBteSAkTmFtZUV4aXN0cyA9ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5OYW1lRXhpc3RzQ2hlY2soCiAgICAgICAgICAgIE5hbWUgPT4gJEdldFBhcmFte05hbWV9LAogICAgICAgICAgICBJRCAgID0+ICRHZXRQYXJhbXtJRH0KICAgICAgICApOwoKICAgICAgICBpZiAoJE5hbWVFeGlzdHMpIHsKICAgICAgICAgICAgJEVycm9yc3tOYW1lRXhpc3RzfSAgICA9IDE7CiAgICAgICAgICAgICRFcnJvcnN7J05hbWVJbnZhbGlkJ30gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkU2VsZi0+e0xpZ2h0QWRtaW59ICkgewogICAgICAgICAgICBteSAlUXVldWVzICAgICA9ICRRdWV1ZU9iamVjdC0+UXVldWVTdGFuZGFyZFRlbXBsYXRlTWVtYmVyTGlzdCggU3RhbmRhcmRUZW1wbGF0ZUlEID0+ICRHZXRQYXJhbXtJRH0gKTsKICAgICAgICAgICAgbXkgJFBlcm1pc3Npb24gPSAkUXVldWVPYmplY3QtPlF1ZXVlTGlzdFBlcm1pc3Npb24oCiAgICAgICAgICAgICAgICBRdWV1ZUlEcyA9PiBbIGtleXMgJVF1ZXVlcyBdLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgPT4gJ3J3JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgTm8gcGVybWlzc2lvbiB0byBjaGFuZ2UgdGhlIHRlbXBsYXRlLgogICAgICAgICAgICBpZiAoICRQZXJtaXNzaW9uIG5lICdydycgKSB7CiAgICAgICAgICAgICAgICAkRXJyb3Jze05vUGVybWlzc2lvbn0gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIHVwZGF0ZSBncm91cAogICAgICAgICAgICBpZiAoCiAgICAgICAgICAgICAgICAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdC0+U3RhbmRhcmRUZW1wbGF0ZVVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbXkgJUF0dGFjaG1lbnRzQWxsID0gJFN0ZEF0dGFjaG1lbnRPYmplY3QtPlN0ZEF0dGFjaG1lbnRMaXN0KCk7CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgaGFzaCB3aXRoIHNlbGVjdGVkIHF1ZXVlcwogICAgICAgICAgICAgICAgbXkgJUF0dGFjaG1lbnRzU2VsZWN0ZWQgPSBtYXAgeyAkXyA9PiAxIH0gQE5ld0lEczsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGFsbCB1c2VkIGF0dGFjaG1lbnRzCiAgICAgICAgICAgICAgICBmb3IgbXkgJEF0dGFjaG1lbnRJRCAoIHNvcnQga2V5cyAlQXR0YWNobWVudHNBbGwgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJEFjdGl2ZSA9ICRBdHRhY2htZW50c1NlbGVjdGVkeyRBdHRhY2htZW50SUR9ID8gMSA6IDA7CgogICAgICAgICAgICAgICAgICAgICMgc2V0IGF0dGFjaG1lbnQgdG8gc3RhbmRhcmQgdGVtcGxhdGUgcmVsYXRpb24KICAgICAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTdGRBdHRhY2htZW50T2JqZWN0LT5TdGRBdHRhY2htZW50U3RhbmRhcmRUZW1wbGF0ZU1lbWJlckFkZCgKICAgICAgICAgICAgICAgICAgICAgICAgQXR0YWNobWVudElEICAgICAgID0+ICRBdHRhY2htZW50SUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkR2V0UGFyYW17SUR9LAogICAgICAgICAgICAgICAgICAgICAgICBBY3RpdmUgICAgICAgICAgICAgPT4gJEFjdGl2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICMgaWYgdGhlIHVzZXIgd291bGQgbGlrZSB0byBjb250aW51ZSBlZGl0aW5nIHRoZSB0ZW1wbGF0ZSwganVzdCByZWRpcmVjdCB0byB0aGUgZWRpdCBzY3JlZW4KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICAgICAgICAgICAgICYmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApIGVxICcxJyApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKSB8fCAnJzsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1DaGFuZ2U7SUQ9JElEO05vdGlmaWNhdGlvbj1VcGRhdGUiCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewoKICAgICAgICAgICAgICAgICAgICAjIG90aGVyd2lzZSByZXR1cm4gdG8gb3ZlcnZpZXcKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O05vdGlmaWNhdGlvbj1VcGRhdGUiICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc29tZXRoaW5nIGhhcyBnb25lIHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KCBQcmlvcml0eSA9PiAnRXJyb3InICk7CiAgICAgICAgJFNlbGYtPl9FZGl0KAogICAgICAgICAgICBBY3Rpb24gICAgICAgICAgICAgID0+ICdDaGFuZ2UnLAogICAgICAgICAgICBFcnJvcnMgICAgICAgICAgICAgID0+IFwlRXJyb3JzLAogICAgICAgICAgICBTZWxlY3RlZEF0dGFjaG1lbnRzID0+IFxATmV3SURzLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblRlbXBsYXRlJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQWRkJyApIHsKICAgICAgICBteSAlR2V0UGFyYW07CiAgICAgICAgJEdldFBhcmFte05hbWV9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ05hbWUnICk7CiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGQnLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblRlbXBsYXRlJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15IEBOZXdJRHMgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnSURzJyApOwogICAgICAgIGlmICggJFNlbGYtPntMaWdodEFkbWlufSApIHsKICAgICAgICAgICAgbXkgQENoZWNrZWRJRHM7CiAgICAgICAgICAgIGZvciBteSAkSUQgKEBOZXdJRHMpIHsKICAgICAgICAgICAgICAgIG15ICRQZXJtaXNzaW9uID0gJFN0ZEF0dGFjaG1lbnRPYmplY3QtPlN0ZEF0dGFjaG1lbnRTdGFuZGFyZFRlbXBsYXRlUGVybWlzc2lvbigKICAgICAgICAgICAgICAgICAgICBJRCAgICAgPT4gJElELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgaWYgKCAkUGVybWlzc2lvbiBlcSAncncnICkgewogICAgICAgICAgICAgICAgICAgIHB1c2ggQENoZWNrZWRJRHMsICRJRDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBATmV3SURzID0gQENoZWNrZWRJRHM7CiAgICAgICAgfQoKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwoKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoSUQgTmFtZSBDb21tZW50IFZhbGlkSUQgVGVtcGxhdGVUeXBlKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAkR2V0UGFyYW17J1RlbXBsYXRlJ30gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKAogICAgICAgICAgICBQYXJhbSA9PiAnVGVtcGxhdGUnLAogICAgICAgICAgICBSYXcgICA9PiAxCiAgICAgICAgKSB8fCAnJzsKCiAgICAgICAgIyBnZXQgY29tcG9zZWQgY29udGVudCB0eXBlCiAgICAgICAgJEdldFBhcmFte0NvbnRlbnRUeXBlfSA9ICd0ZXh0L3BsYWluJzsKICAgICAgICBpZiAoICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICkgewogICAgICAgICAgICAkR2V0UGFyYW17Q29udGVudFR5cGV9ID0gJ3RleHQvaHRtbCc7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIG5lZWRlZCBkYXRhCiAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KE5hbWUgVmFsaWRJRCBUZW1wbGF0ZVR5cGUpKSB7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnSW52YWxpZCcgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgYSBzdGFuZGFyZCB0ZW1wbGF0ZSBleGlzdHMgd2l0aCB0aGlzIG5hbWUKICAgICAgICBteSAkTmFtZUV4aXN0cyA9ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5OYW1lRXhpc3RzQ2hlY2soIE5hbWUgPT4gJEdldFBhcmFte05hbWV9ICk7CiAgICAgICAgaWYgKCROYW1lRXhpc3RzKSB7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZUV4aXN0c30gICAgPSAxOwogICAgICAgICAgICAkRXJyb3JzeydOYW1lSW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgICMgaWYgbm8gZXJyb3JzIG9jY3VycmVkCiAgICAgICAgaWYgKCAhJUVycm9ycyApIHsKCiAgICAgICAgICAgICMgYWRkIHRlbXBsYXRlCiAgICAgICAgICAgIG15ICRTdGFuZGFyZFRlbXBsYXRlSUQgPSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdC0+U3RhbmRhcmRUZW1wbGF0ZUFkZCgKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkU3RhbmRhcmRUZW1wbGF0ZUlEKSB7CgogICAgICAgICAgICAgICAgbXkgJUF0dGFjaG1lbnRzQWxsID0gJFN0ZEF0dGFjaG1lbnRPYmplY3QtPlN0ZEF0dGFjaG1lbnRMaXN0KCk7CgogICAgICAgICAgICAgICAgIyBjcmVhdGUgaGFzaCB3aXRoIHNlbGVjdGVkIHF1ZXVlcwogICAgICAgICAgICAgICAgbXkgJUF0dGFjaG1lbnRzU2VsZWN0ZWQgPSBtYXAgeyAkXyA9PiAxIH0gQE5ld0lEczsKCiAgICAgICAgICAgICAgICAjIGNoZWNrIGFsbCB1c2VkIGF0dGFjaG1lbnRzCiAgICAgICAgICAgICAgICBmb3IgbXkgJEF0dGFjaG1lbnRJRCAoIHNvcnQga2V5cyAlQXR0YWNobWVudHNBbGwgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJEFjdGl2ZSA9ICRBdHRhY2htZW50c1NlbGVjdGVkeyRBdHRhY2htZW50SUR9ID8gMSA6IDA7CgogICAgICAgICAgICAgICAgICAgICMgc2V0IGF0dGFjaG1lbnQgdG8gc3RhbmRhcmQgdGVtcGxhdGUgcmVsYXRpb24KICAgICAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTdGRBdHRhY2htZW50T2JqZWN0LT5TdGRBdHRhY2htZW50U3RhbmRhcmRUZW1wbGF0ZU1lbWJlckFkZCgKICAgICAgICAgICAgICAgICAgICAgICAgQXR0YWNobWVudElEICAgICAgID0+ICRBdHRhY2htZW50SUQsCiAgICAgICAgICAgICAgICAgICAgICAgIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkU3RhbmRhcmRUZW1wbGF0ZUlELAogICAgICAgICAgICAgICAgICAgICAgICBBY3RpdmUgICAgICAgICAgICAgPT4gJEFjdGl2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRTZWxmLT5fT3ZlcnZpZXcoKTsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoCiAgICAgICAgICAgICAgICAgICAgSW5mbyA9PiBUcmFuc2xhdGFibGUoJ1RlbXBsYXRlIGFkZGVkIScpLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5UZW1wbGF0ZScsCiAgICAgICAgICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICAgICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHNvbWV0aGluZyBoYXMgZ29uZSB3cm9uZwogICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSggUHJpb3JpdHkgPT4gJ0Vycm9yJyApOwogICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgQWN0aW9uICAgICAgICAgICAgICA9PiAnQWRkJywKICAgICAgICAgICAgRXJyb3JzICAgICAgICAgICAgICA9PiBcJUVycm9ycywKICAgICAgICAgICAgU2VsZWN0ZWRBdHRhY2htZW50cyA9PiBcQE5ld0lEcywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5UZW1wbGF0ZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIGRlbGV0ZSBhY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdEZWxldGUnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAkSUQgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSUQnICk7CgogICAgICAgIGlmICggJFNlbGYtPntMaWdodEFkbWlufSApIHsKICAgICAgICAgICAgbXkgJVF1ZXVlcyAgICAgPSAkUXVldWVPYmplY3QtPlF1ZXVlU3RhbmRhcmRUZW1wbGF0ZU1lbWJlckxpc3QoIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkSUQgKTsKICAgICAgICAgICAgbXkgJFBlcm1pc3Npb24gPSAkUXVldWVPYmplY3QtPlF1ZXVlTGlzdFBlcm1pc3Npb24oCiAgICAgICAgICAgICAgICBRdWV1ZUlEcyA9PiBbIGtleXMgJVF1ZXVlcyBdLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgPT4gJ3J3JywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgTm8gcGVybWlzc2lvbiB0byBkZWxldGUgdGhlIHRlbXBsYXRlLgogICAgICAgICAgICBpZiAoICRQZXJtaXNzaW9uIG5lICdydycgKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJERlbGV0ZSA9ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5TdGFuZGFyZFRlbXBsYXRlRGVsZXRlKAogICAgICAgICAgICBJRCA9PiAkSUQsCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkRGVsZXRlICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sJywKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJERlbGV0ZSwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2lubGluZScsCiAgICAgICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5fT3ZlcnZpZXcoKTsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoIEluZm8gPT4gVHJhbnNsYXRhYmxlKCdUZW1wbGF0ZSB1cGRhdGVkIScpICkKICAgICAgICAgICAgaWYgKCAkTm90aWZpY2F0aW9uICYmICROb3RpZmljYXRpb24gZXEgJ1VwZGF0ZScgKTsKCiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5UZW1wbGF0ZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KfQoKc3ViIF9FZGl0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uTGlzdCcgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25PdmVydmlldycgKTsKCiAgICAjIGdldCB2YWxpZCBsaXN0CiAgICBteSAlVmFsaWRMaXN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKICAgIG15ICVWYWxpZExpc3RSZXZlcnNlID0gcmV2ZXJzZSAlVmFsaWRMaXN0OwoKICAgICRQYXJhbXtWYWxpZE9wdGlvbn0gPSAkTGF5b3V0T2JqZWN0LT5CdWlsZFNlbGVjdGlvbigKICAgICAgICBEYXRhICAgICAgID0+IFwlVmFsaWRMaXN0LAogICAgICAgIE5hbWUgICAgICAgPT4gJ1ZhbGlkSUQnLAogICAgICAgIFNlbGVjdGVkSUQgPT4gJFBhcmFte1ZhbGlkSUR9IHx8ICRWYWxpZExpc3RSZXZlcnNle3ZhbGlkfSwKICAgICAgICBDbGFzcyAgICAgID0+ICdNb2Rlcm5pemUgVmFsaWRhdGVfUmVxdWlyZWQgJyAuICggJFBhcmFte0Vycm9yc30tPnsnVmFsaWRJREludmFsaWQnfSB8fCAnJyApLAogICAgKTsKCiAgICBteSAkVGVtcGxhdGVUeXBlTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnU3RhbmRhcmRUZW1wbGF0ZTo6VHlwZXMnKTsKCiAgICAkUGFyYW17VGVtcGxhdGVUeXBlU3RyaW5nfSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gJFRlbXBsYXRlVHlwZUxpc3QsCiAgICAgICAgTmFtZSAgICAgICA9PiAnVGVtcGxhdGVUeXBlJywKICAgICAgICBTZWxlY3RlZElEID0+ICRQYXJhbXtUZW1wbGF0ZVR5cGV9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCAnIC4gKCAkUGFyYW17RXJyb3JzfS0+eydUZW1wbGF0ZVR5cGVJbnZhbGlkJ30gfHwgJycgKSwKICAgICk7CgogICAgbXkgJFN0ZEF0dGFjaG1lbnRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RkQXR0YWNobWVudCcpOwogICAgbXkgJUF0dGFjaG1lbnREYXRhICAgICAgPSAkU3RkQXR0YWNobWVudE9iamVjdC0+U3RkQXR0YWNobWVudExpc3QoIFZhbGlkID0+IDEgKTsKCiAgICBpZiAoICRTZWxmLT57TGlnaHRBZG1pbn0gKSB7CiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJUF0dGFjaG1lbnREYXRhICkgewogICAgICAgICAgICBteSAkUGVybWlzc2lvbiA9ICRTdGRBdHRhY2htZW50T2JqZWN0LT5TdGRBdHRhY2htZW50U3RhbmRhcmRUZW1wbGF0ZVBlcm1pc3Npb24oCiAgICAgICAgICAgICAgICBJRCAgICAgPT4gJEtleSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggJFBlcm1pc3Npb24gbmUgJ3J3JyApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkQXR0YWNobWVudERhdGF7JEtleX07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte0F0dGFjaG1lbnRPcHRpb259ID0gJExheW91dE9iamVjdC0+QnVpbGRTZWxlY3Rpb24oCiAgICAgICAgRGF0YSAgICAgICAgID0+IFwlQXR0YWNobWVudERhdGEsCiAgICAgICAgTmFtZSAgICAgICAgID0+ICdJRHMnLAogICAgICAgIE11bHRpcGxlICAgICA9PiAxLAogICAgICAgIFNpemUgICAgICAgICA9PiA2LAogICAgICAgIFRyYW5zbGF0aW9uICA9PiAwLAogICAgICAgIFBvc3NpYmxlTm9uZSA9PiAxLAogICAgICAgIFNlbGVjdGVkSUQgICA9PiAkUGFyYW17U2VsZWN0ZWRBdHRhY2htZW50c30sCiAgICAgICAgQ2xhc3MgICAgICAgID0+ICdNb2Rlcm5pemUnLAogICAgKTsKCiAgICBteSAkSFRNTFV0aWxzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkhUTUxVdGlscycpOwoKICAgIGlmICggJExheW91dE9iamVjdC0+e0Jyb3dzZXJSaWNoVGV4dH0gKSB7CgogICAgICAgICMgcmVmb3JtYXQgZnJvbSBwbGFpbiB0byBodG1sCiAgICAgICAgaWYgKCAkUGFyYW17Q29udGVudFR5cGV9ICYmICRQYXJhbXtDb250ZW50VHlwZX0gPX4gL3RleHRcL3BsYWluL2kgKSB7CiAgICAgICAgICAgICRQYXJhbXtUZW1wbGF0ZX0gPSAkSFRNTFV0aWxzT2JqZWN0LT5Ub0hUTUwoCiAgICAgICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1RlbXBsYXRlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyByZWZvcm1hdCBmcm9tIGh0bWwgdG8gcGxhaW4KICAgICAgICBpZiAoICRQYXJhbXtDb250ZW50VHlwZX0gJiYgJFBhcmFte0NvbnRlbnRUeXBlfSA9fiAvdGV4dFwvaHRtbC9pICkgewogICAgICAgICAgICAkUGFyYW17VGVtcGxhdGV9ID0gJEhUTUxVdGlsc09iamVjdC0+VG9Bc2NpaSgKICAgICAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17VGVtcGxhdGV9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlld1VwZGF0ZScsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgJXsgJFBhcmFte0Vycm9yc30gfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIHNob3cgYXBwcm9wcmlhdGUgbWVzc2FnZXMgZm9yIFNlcnZlckVycm9yCiAgICBpZiAoIGRlZmluZWQgJFBhcmFte0Vycm9yc30tPntOYW1lRXhpc3RzfSAmJiAkUGFyYW17RXJyb3JzfS0+e05hbWVFeGlzdHN9ID09IDEgKSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0V4aXN0TmFtZVNlcnZlckVycm9yJyApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ05hbWVTZXJ2ZXJFcnJvcicgKTsKICAgIH0KCiAgICAjIGFkZCByaWNoIHRleHQgZWRpdG9yCiAgICBpZiAoICRMYXlvdXRPYmplY3QtPntCcm93c2VyUmljaFRleHR9ICkgewoKICAgICAgICAjIHNldCB1cCByaWNoIHRleHQgZWRpdG9yCiAgICAgICAgJExheW91dE9iamVjdC0+U2V0UmljaFRleHRQYXJhbWV0ZXJzKAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiAxOwp9CgpzdWIgX092ZXJ2aWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRRdWV1ZU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdPdmVydmlldycsCiAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uTGlzdCcgKTsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25BZGQnICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICdJbmNsdWRlSW52YWxpZCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIEluY2x1ZGVJbnZhbGlkICAgICAgICA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSwKICAgICAgICAgICAgSW5jbHVkZUludmFsaWRDaGVja2VkID0+ICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID8gJ2NoZWNrZWQnIDogJycsCiAgICAgICAgfSwKICAgICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnRmlsdGVyJyApOwojIFJvdGhlciBPU1MgLyBJbXBvcnRFeHBvcnRTdGFuZGFyZE9iamVjdHMKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdJbXBvcnRFeHBvcnRXaWRnZXQnICk7CiMgRU8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHQnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgbXkgJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhbmRhcmRUZW1wbGF0ZScpOwogICAgbXkgJUxpc3QgICAgICAgICAgICAgICAgICAgPSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdC0+U3RhbmRhcmRUZW1wbGF0ZUxpc3QoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgVmFsaWQgID0+ICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID8gMCA6IDEsCiAgICApOwoKICAgICMgaWYgdGhlcmUgYXJlIGFueSByZXN1bHRzLCB0aGV5IGFyZSBzaG93bgogICAgaWYgKCVMaXN0KSB7CgogICAgICAgIG15ICVMaXN0R2V0OwogICAgICAgIGZvciBteSAkSUQgKCBzb3J0IGtleXMgJUxpc3QgKSB7CiAgICAgICAgICAgICV7ICRMaXN0R2V0eyRJRH0gfSA9ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5TdGFuZGFyZFRlbXBsYXRlR2V0KAogICAgICAgICAgICAgICAgSUQgPT4gJElELAogICAgICAgICAgICApOwogICAgICAgICAgICAkTGlzdEdldHskSUR9LT57U29ydE5hbWV9ID0gJExpc3RHZXR7JElEfS0+e1RlbXBsYXRlVHlwZX0gLiAkTGlzdEdldHskSUR9LT57TmFtZX07CiAgICAgICAgfQoKICAgICAgICAjIGdldCB2YWxpZCBsaXN0CiAgICAgICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKICAgICAgICBJRDoKICAgICAgICBmb3IgbXkgJElEICggc29ydCB7ICRMaXN0R2V0eyRhfS0+e1NvcnROYW1lfSBjbXAgJExpc3RHZXR7JGJ9LT57U29ydE5hbWV9IH0ga2V5cyAlTGlzdEdldCApCiAgICAgICAgewoKICAgICAgICAgICAgbXkgJURhdGEgPSAleyAkTGlzdEdldHskSUR9IH07CgogICAgICAgICAgICAjIGNoZWNrIHF1ZXVlIHBlcm1pc3Npb25zIG9mIGxpbmtlZCB0ZW1wbGF0ZXMuCiAgICAgICAgICAgIGlmICggJFNlbGYtPntMaWdodEFkbWlufSApIHsKICAgICAgICAgICAgICAgIG15ICVRdWV1ZXMgPSAkUXVldWVPYmplY3QtPlF1ZXVlU3RhbmRhcmRUZW1wbGF0ZU1lbWJlckxpc3QoIFN0YW5kYXJkVGVtcGxhdGVJRCA9PiAkRGF0YXtJRH0gKTsKICAgICAgICAgICAgICAgICREYXRhe1Blcm1pc3Npb259ID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUxpc3RQZXJtaXNzaW9uKAogICAgICAgICAgICAgICAgICAgIFF1ZXVlSURzID0+IFsga2V5cyAlUXVldWVzIF0sCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIERlZmF1bHQgID0+ICdydycsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbmV4dCBJRCBpZiAhJERhdGF7UGVybWlzc2lvbn07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15IEBTZWxlY3RlZEF0dGFjaG1lbnQ7CiAgICAgICAgICAgIG15ICVTZWxlY3RlZEF0dGFjaG1lbnREYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0ZEF0dGFjaG1lbnQnKS0+U3RkQXR0YWNobWVudFN0YW5kYXJkVGVtcGxhdGVNZW1iZXJMaXN0KAogICAgICAgICAgICAgICAgU3RhbmRhcmRUZW1wbGF0ZUlEID0+ICRJRCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJVNlbGVjdGVkQXR0YWNobWVudERhdGEgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBTZWxlY3RlZEF0dGFjaG1lbnQsICRLZXk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICBOYW1lID0+ICdPdmVydmlld1Jlc3VsdFJvdycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBWYWxpZCA9PiAkVmFsaWRMaXN0eyAkRGF0YXtWYWxpZElEfSB9LAogICAgICAgICAgICAgICAgICAgICVEYXRhLAogICAgICAgICAgICAgICAgICAgIEF0dGFjaG1lbnRzID0+IHNjYWxhciBAU2VsZWN0ZWRBdHRhY2htZW50LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2UgaXQgZGlzcGxheXMgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb0RhdGFGb3VuZE1zZycsCiAgICAgICAgICAgIERhdGEgPT4ge30sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Custom/Kernel/Modules/AdminType.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL01vZHVsZXMvQWRtaW5UeXBlLnBtCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpNb2R1bGVzOjpBZG1pblR5cGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CnVzZSBLZXJuZWw6Okxhbmd1YWdlICAgICAgICAgICAgICBxdyhUcmFuc2xhdGFibGUpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHNldCBwcmVmIGZvciBjb2x1bW5zIGtleQogICAgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9ID0gJ0luY2x1ZGVJbnZhbGlkJyAuICctJyAuICRTZWxmLT57QWN0aW9ufTsKCiAgICBteSAlUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFNlbGYtPntVc2VySUR9LAogICAgKTsKCiAgICAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA9ICRQcmVmZXJlbmNlc3sgJFNlbGYtPntQcmVmS2V5SW5jbHVkZUludmFsaWR9IH07CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBTdG9yZSBsYXN0IGVudGl0eSBzY3JlZW4uCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6QXV0aFNlc3Npb24nKS0+VXBkYXRlU2Vzc2lvbklEKAogICAgICAgIFNlc3Npb25JRCA9PiAkU2VsZi0+e1Nlc3Npb25JRH0sCiAgICAgICAgS2V5ICAgICAgID0+ICdMYXN0U2NyZWVuRW50aXR5JywKICAgICAgICBWYWx1ZSAgICAgPT4gJFNlbGYtPntSZXF1ZXN0ZWRVUkx9LAogICAgKTsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRUeXBlT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VHlwZScpOwoKICAgICRQYXJhbXtJbmNsdWRlSW52YWxpZH0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnSW5jbHVkZUludmFsaWQnICk7CgogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtJbmNsdWRlSW52YWxpZH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+U2V0UHJlZmVyZW5jZXMoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgICAgIEtleSAgICA9PiAkU2VsZi0+e1ByZWZLZXlJbmNsdWRlSW52YWxpZH0sCiAgICAgICAgICAgIFZhbHVlICA9PiAkUGFyYW17SW5jbHVkZUludmFsaWR9LAogICAgICAgICk7CgogICAgICAgICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID0gJFBhcmFte0luY2x1ZGVJbnZhbGlkfTsKICAgIH0KCiAgICAjIENoZWNrIGlmIHRpY2tldCB0eXBlIGlzIGVuYWJsZWQuCiAgICBteSAkVHlwZU5vdEFjdGl2ZSA9ICcnOwogICAgaWYgKCAhJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdUaWNrZXQ6OlR5cGUnKSApIHsKICAgICAgICAkVHlwZU5vdEFjdGl2ZSA9ICRMYXlvdXRPYmplY3QtPk5vdGlmeSgKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ0Vycm9yJywKICAgICAgICAgICAgRGF0YSAgICAgPT4gJExheW91dE9iamVjdC0+e0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAiUGxlYXNlIGFjdGl2YXRlICVzIGZpcnN0ISIsICJUeXBlIiApLAogICAgICAgICAgICBMaW5rICAgICA9PgogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+e0Jhc2VsaW5rfQogICAgICAgICAgICAgICAgLiAnQWN0aW9uPUFkbWluU3lzdGVtQ29uZmlndXJhdGlvbjtTdWJhY3Rpb249VmlldztTZXR0aW5nPVRpY2tldCUzQSUzQVR5cGUnLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBjaGFuZ2UKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdDaGFuZ2UnICkgewogICAgICAgIG15ICRJRCAgID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0lEJyApIHx8ICcnOwogICAgICAgIG15ICVEYXRhID0gJFR5cGVPYmplY3QtPlR5cGVHZXQoIElEID0+ICRJRCApOwogICAgICAgIGlmICggISVEYXRhICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBUeXBlIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkVHlwZU5vdEFjdGl2ZTsKICAgICAgICAkU2VsZi0+X0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQ2hhbmdlJywKICAgICAgICAgICAgJURhdGEsCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblR5cGUnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBjaGFuZ2UgYWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnQ2hhbmdlQWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJE5vdGUgPSAnJzsKICAgICAgICBteSAoICVHZXRQYXJhbSwgJUVycm9ycyApOwogICAgICAgIGZvciBteSAkUGFyYW1ldGVyIChxdyhJRCBOYW1lIFRleHQgQ29tbWVudCBWYWxpZElEKSkgewogICAgICAgICAgICAkR2V0UGFyYW17JFBhcmFtZXRlcn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAkUGFyYW1ldGVyICkgfHwgJyc7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIG5lZWRlZCBkYXRhCiAgICAgICAgZm9yIG15ICROZWVkZWQgKHF3KE5hbWUgVmFsaWRJRCkpIHsKICAgICAgICAgICAgaWYgKCAhJEdldFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3sgJE5lZWRlZCAuICdJbnZhbGlkJyB9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJURhdGEgPSAkVHlwZU9iamVjdC0+VHlwZUdldCggSUQgPT4gJEdldFBhcmFte0lEfSApOwogICAgICAgIGlmICggISVEYXRhICkgewogICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+RXJyb3JTY3JlZW4oCiAgICAgICAgICAgICAgICBNZXNzYWdlID0+IFRyYW5zbGF0YWJsZSgnTmVlZCBUeXBlIScpLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBpZiBhIHR5cGUgZXhpc3RzIHdpdGggdGhpcyBuYW1lCiAgICAgICAgbXkgJE5hbWVFeGlzdHMgPSAkVHlwZU9iamVjdC0+TmFtZUV4aXN0c0NoZWNrKAogICAgICAgICAgICBOYW1lID0+ICRHZXRQYXJhbXtOYW1lfSwKICAgICAgICAgICAgSUQgICA9PiAkR2V0UGFyYW17SUR9CiAgICAgICAgKTsKCiAgICAgICAgaWYgKCROYW1lRXhpc3RzKSB7CiAgICAgICAgICAgICRFcnJvcnN7TmFtZUV4aXN0c30gICAgPSAxOwogICAgICAgICAgICAkRXJyb3JzeydOYW1lSW52YWxpZCd9ID0gJ1NlcnZlckVycm9yJzsKICAgICAgICB9CgogICAgICAgICMgQ2hlY2sgaWYgdHlwZSBpcyBwcmVzZW50IGluIFN5c0NvbmZpZyBzZXR0aW5nCiAgICAgICAgbXkgJFVwZGF0ZUVudGl0eSAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVcGRhdGVFbnRpdHknICkgfHwgJyc7CiAgICAgICAgbXkgJFN5c0NvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXNDb25maWcnKTsKICAgICAgICBteSAlVHlwZU9sZERhdGEgICAgID0gJURhdGE7CiAgICAgICAgbXkgQElzVHlwZUluU3lzQ29uZmlnOwogICAgICAgIEBJc1R5cGVJblN5c0NvbmZpZyA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25FbnRpdHlDaGVjaygKICAgICAgICAgICAgRW50aXR5VHlwZSA9PiAnVHlwZScsCiAgICAgICAgICAgIEVudGl0eU5hbWUgPT4gJERhdGF7TmFtZX0sCiAgICAgICAgKTsKICAgICAgICBpZiAoQElzVHlwZUluU3lzQ29uZmlnKSB7CgogICAgICAgICAgICAjIEFuIGVudGl0eSBwcmVzZW50IGluIFN5c0NvbmZpZyBjb3VsZG4ndCBiZSBpbnZhbGlkYXRlZC4KICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTG9va3VwKCBWYWxpZElEID0+ICRHZXRQYXJhbXtWYWxpZElEfSApCiAgICAgICAgICAgICAgICBuZSAndmFsaWQnCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7VmFsaWRJREludmFsaWR9ICAgICAgICAgPSAnU2VydmVyRXJyb3InOwogICAgICAgICAgICAgICAgJEVycm9yc3tWYWxpZE9wdGlvblNlcnZlckVycm9yfSA9ICdJblNldHRpbmcnOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIEluIGNhc2UgY2hhbmdpbmcgbmFtZSBhbiBhdXRob3JpemF0aW9uIChVcGRhdGVFbnRpdHkpIHNob3VsZCBiZSBzZW5kCiAgICAgICAgICAgIGVsc2lmICggJERhdGF7TmFtZX0gbmUgJEdldFBhcmFte05hbWV9ICYmICEkVXBkYXRlRW50aXR5ICkgewogICAgICAgICAgICAgICAgJEVycm9yc3tOYW1lSW52YWxpZH0gICAgICAgICAgICAgID0gJ1NlcnZlckVycm9yJzsKICAgICAgICAgICAgICAgICRFcnJvcnN7SW5TZXR0aW5nTmFtZVNlcnZlckVycm9yfSA9ICdJblNldHRpbmcnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGlmIG5vIGVycm9ycyBvY2N1cnJlZAogICAgICAgIGlmICggISVFcnJvcnMgKSB7CgogICAgICAgICAgICAjIHVwZGF0ZSB0eXBlCiAgICAgICAgICAgIG15ICRVcGRhdGUgPSAkVHlwZU9iamVjdC0+VHlwZVVwZGF0ZSgKICAgICAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0KICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICgkVXBkYXRlKSB7CgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIEBJc1R5cGVJblN5c0NvbmZpZwogICAgICAgICAgICAgICAgICAgICYmICRUeXBlT2xkRGF0YXtOYW1lfSBuZSAkR2V0UGFyYW17TmFtZX0KICAgICAgICAgICAgICAgICAgICAmJiAkVXBkYXRlRW50aXR5CiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFNFVFRJTkc6CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRTZXR0aW5nTmFtZSAoQElzVHlwZUluU3lzQ29uZmlnKSB7CgogICAgICAgICAgICAgICAgICAgICAgICBteSAlU2V0dGluZyA9ICRTeXNDb25maWdPYmplY3QtPlNldHRpbmdHZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRTZXR0aW5nTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgU0VUVElORyBpZiAhSXNIYXNoUmVmV2l0aERhdGEoIFwlU2V0dGluZyApOwoKICAgICAgICAgICAgICAgICAgICAgICAgJFNldHRpbmd7RWZmZWN0aXZlVmFsdWV9ID1+IHMvJFR5cGVPbGREYXRhe05hbWV9LyRHZXRQYXJhbXtOYW1lfS9nOwoKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJEV4Y2x1c2l2ZUxvY2tHVUlEID0gJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ0xvY2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBOYW1lICAgPT4gJFNldHRpbmd7TmFtZX0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBGb3JjZSAgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkU2VsZi0+e1VzZXJJRH0KICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgJFNldHRpbmd7RXhjbHVzaXZlTG9ja0dVSUR9ID0gJEV4Y2x1c2l2ZUxvY2tHVUlEOwoKICAgICAgICAgICAgICAgICAgICAgICAgJFN5c0NvbmZpZ09iamVjdC0+U2V0dGluZ1VwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICVTZXR0aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25EZXBsb3koCiAgICAgICAgICAgICAgICAgICAgICAgIENvbW1lbnRzICAgICAgPT4gIlR5cGUgbmFtZSBjaGFuZ2UiLAogICAgICAgICAgICAgICAgICAgICAgICBEaXJ0eVNldHRpbmdzID0+IFxASXNUeXBlSW5TeXNDb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICAgICBGb3JjZSAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAjIGlmIHRoZSB1c2VyIHdvdWxkIGxpa2UgdG8gY29udGludWUgZWRpdGluZyB0aGUgdHlwZSwganVzdCByZWRpcmVjdCB0byB0aGUgZWRpdCBzY3JlZW4KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICBkZWZpbmVkICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdDb250aW51ZUFmdGVyU2F2ZScgKQogICAgICAgICAgICAgICAgICAgICYmICggJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ0NvbnRpbnVlQWZ0ZXJTYXZlJyApIGVxICcxJyApCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG15ICRJRCA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdJRCcgKSB8fCAnJzsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJExheW91dE9iamVjdC0+UmVkaXJlY3QoIE9QID0+ICJBY3Rpb249JFNlbGYtPntBY3Rpb259O1N1YmFjdGlvbj1DaGFuZ2U7SUQ9JElEIiApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICMgb3RoZXJ3aXNlIHJldHVybiB0byBvdmVydmlldwogICAgICAgICAgICAgICAgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCggT1AgPT4gIkFjdGlvbj0kU2VsZi0+e0FjdGlvbn0iICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgc29tZXRoaW5nIGhhcyBnb25lIHdyb25nCiAgICAgICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICRPdXRwdXQgLj0gJFR5cGVOb3RBY3RpdmU7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Ob3RpZnkoIFByaW9yaXR5ID0+ICdFcnJvcicgKTsKICAgICAgICAkU2VsZi0+X0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQ2hhbmdlJywKICAgICAgICAgICAgRXJyb3JzID0+IFwlRXJyb3JzLAogICAgICAgICAgICAlR2V0UGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblR5cGUnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBhZGQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdBZGQnICkgewogICAgICAgIG15ICVHZXRQYXJhbSA9ICgpOwoKICAgICAgICAkR2V0UGFyYW17TmFtZX0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnTmFtZScgKTsKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkVHlwZU5vdEFjdGl2ZTsKICAgICAgICAkU2VsZi0+X0VkaXQoCiAgICAgICAgICAgIEFjdGlvbiA9PiAnQWRkJywKICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5UeXBlJywKICAgICAgICAgICAgRGF0YSAgICAgICAgID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgICAgIHJldHVybiAkT3V0cHV0OwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgYWRkIGFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0FkZEFjdGlvbicgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICROb3RlID0gJyc7CiAgICAgICAgbXkgKCAlR2V0UGFyYW0sICVFcnJvcnMgKTsKICAgICAgICBmb3IgbXkgJFBhcmFtZXRlciAocXcoSUQgTmFtZSBUZXh0IENvbW1lbnQgVmFsaWRJRCkpIHsKICAgICAgICAgICAgJEdldFBhcmFteyRQYXJhbWV0ZXJ9ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJFBhcmFtZXRlciApIHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayBuZWVkZWQgZGF0YQogICAgICAgIGZvciBteSAkTmVlZGVkIChxdyhOYW1lIFZhbGlkSUQpKSB7CiAgICAgICAgICAgIGlmICggISRHZXRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgICAgICRFcnJvcnN7ICROZWVkZWQgLiAnSW52YWxpZCcgfSA9ICdTZXJ2ZXJFcnJvcic7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgY2hlY2sgaWYgYSB0eXBlIGV4aXN0cyB3aXRoIHRoaXMgbmFtZQogICAgICAgIG15ICROYW1lRXhpc3RzID0gJFR5cGVPYmplY3QtPk5hbWVFeGlzdHNDaGVjayggTmFtZSA9PiAkR2V0UGFyYW17TmFtZX0gKTsKICAgICAgICBpZiAoJE5hbWVFeGlzdHMpIHsKICAgICAgICAgICAgJEVycm9yc3tOYW1lRXhpc3RzfSAgICA9IDE7CiAgICAgICAgICAgICRFcnJvcnN7J05hbWVJbnZhbGlkJ30gPSAnU2VydmVyRXJyb3InOwogICAgICAgIH0KCiAgICAgICAgIyBpZiBubyBlcnJvcnMgb2NjdXJyZWQKICAgICAgICBpZiAoICElRXJyb3JzICkgewoKICAgICAgICAgICAgIyBhZGQgdHlwZQogICAgICAgICAgICBteSAkTmV3VHlwZSA9ICRUeXBlT2JqZWN0LT5UeXBlQWRkKAogICAgICAgICAgICAgICAgJUdldFBhcmFtLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRTZWxmLT57VXNlcklEfQogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoJE5ld1R5cGUpIHsKICAgICAgICAgICAgICAgICRTZWxmLT5fT3ZlcnZpZXcoKTsKICAgICAgICAgICAgICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkVHlwZU5vdEFjdGl2ZTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Tm90aWZ5KCBJbmZvID0+IFRyYW5zbGF0YWJsZSgnVHlwZSBhZGRlZCEnKSApOwogICAgICAgICAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblR5cGUnLAogICAgICAgICAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBzb21ldGhpbmcgaGFzIGdvbmUgd3JvbmcKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkVHlwZU5vdEFjdGl2ZTsKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5vdGlmeSggUHJpb3JpdHkgPT4gJ0Vycm9yJyApOwogICAgICAgICRTZWxmLT5fRWRpdCgKICAgICAgICAgICAgQWN0aW9uID0+ICdBZGQnLAogICAgICAgICAgICBFcnJvcnMgPT4gXCVFcnJvcnMsCiAgICAgICAgICAgICVHZXRQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluVHlwZScsCiAgICAgICAgICAgIERhdGEgICAgICAgICA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgICAgICByZXR1cm4gJE91dHB1dDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIyBvdmVydmlldwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGVsc2UgewoKICAgICAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CiAgICAgICAgJE91dHB1dCAuPSAkVHlwZU5vdEFjdGl2ZTsKCiAgICAgICAgJFNlbGYtPl9PdmVydmlldygpOwoKICAgICAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblR5cGUnLAogICAgICAgICAgICBEYXRhICAgICAgICAgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICAgICAgcmV0dXJuICRPdXRwdXQ7CiAgICB9Cgp9CgpzdWIgX0VkaXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25MaXN0JyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JyApOwoKICAgICMgZ2V0IHZhbGlkIGxpc3QKICAgIG15ICVWYWxpZExpc3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyktPlZhbGlkTGlzdCgpOwogICAgbXkgJVZhbGlkTGlzdFJldmVyc2UgPSByZXZlcnNlICVWYWxpZExpc3Q7CgogICAgJFBhcmFte1ZhbGlkT3B0aW9ufSA9ICRMYXlvdXRPYmplY3QtPkJ1aWxkU2VsZWN0aW9uKAogICAgICAgIERhdGEgICAgICAgPT4gXCVWYWxpZExpc3QsCiAgICAgICAgTmFtZSAgICAgICA9PiAnVmFsaWRJRCcsCiAgICAgICAgU2VsZWN0ZWRJRCA9PiAkUGFyYW17VmFsaWRJRH0gfHwgJFZhbGlkTGlzdFJldmVyc2V7dmFsaWR9LAogICAgICAgIENsYXNzICAgICAgPT4gJ01vZGVybml6ZSBWYWxpZGF0ZV9SZXF1aXJlZCAnIC4gKCAkUGFyYW17RXJyb3JzfS0+eydWYWxpZElESW52YWxpZCd9IHx8ICcnICksCiAgICApOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3VXBkYXRlJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAleyAkUGFyYW17RXJyb3JzfSB9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgc2hvdyBhcHByb3ByaWF0ZSBtZXNzYWdlcyBmb3IgU2VydmVyRXJyb3IKICAgIGlmICggZGVmaW5lZCAkUGFyYW17RXJyb3JzfS0+e05hbWVFeGlzdHN9ICYmICRQYXJhbXtFcnJvcnN9LT57TmFtZUV4aXN0c30gPT0gMSApIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnRXhpc3ROYW1lU2VydmVyRXJyb3InICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnTmFtZVNlcnZlckVycm9yJyApOwogICAgfQoKICAgICMgU2V2ZXJhbCBlcnJvciBtZXNzYWdlcyBjYW4gYmUgdXNlZCBmb3IgTmFtZS4KICAgICRQYXJhbXtFcnJvcnN9LT57SW5TZXR0aW5nTmFtZVNlcnZlckVycm9yfSAvLz0gJ1JlcXVpcmVkJzsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJFBhcmFte0Vycm9yc30tPntJblNldHRpbmdOYW1lU2VydmVyRXJyb3J9IC4gJ05hbWVTZXJ2ZXJFcnJvcicsCiAgICApOwoKICAgICMgU2V2ZXJhbCBlcnJvciBtZXNzYWdlcyBjYW4gYmUgdXNlZCBmb3IgVmFsaWQgb3B0aW9uLgogICAgJFBhcmFte0Vycm9yc30tPntWYWxpZE9wdGlvblNlcnZlckVycm9yfSAvLz0gJ1JlcXVpcmVkJzsKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJFBhcmFte0Vycm9yc30tPntWYWxpZE9wdGlvblNlcnZlckVycm9yfSAuICdWYWxpZE9wdGlvblNlcnZlckVycm9yJywKICAgICk7CgogICAgaWYgKCAkUGFyYW17SUR9ICkgewoKICAgICAgICBteSAkVHlwZU5hbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VHlwZScpLT5UeXBlTG9va3VwKCBUeXBlSUQgPT4gJFBhcmFte0lEfSApOwoKICAgICAgICAjIEFkZCB3YXJuaW5nIGluIGNhc2UgdGhlIFR5cGUgYmVsb25ncyBhIFN5c0NvbmZpZyBzZXR0aW5nLgogICAgICAgIG15ICRTeXNDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJyk7CgogICAgICAgICMgSW4gY2FzZSBkaXJ0eSBzZXR0aW5nLCBkaXNhYmxlIGZvcm0uCiAgICAgICAgbXkgJElzRGlydHlDb25maWcgPSAwOwogICAgICAgIG15IEBJc0RpcnR5UmVzdWx0ID0gJFN5c0NvbmZpZ09iamVjdC0+Q29uZmlndXJhdGlvbkRpcnR5U2V0dGluZ3NMaXN0KCk7CiAgICAgICAgbXkgJUlzRGlydHlMaXN0ICAgPSBtYXAgeyAkXyA9PiAxIH0gQElzRGlydHlSZXN1bHQ7CgogICAgICAgIG15IEBJc1R5cGVJblN5c0NvbmZpZyA9ICRTeXNDb25maWdPYmplY3QtPkNvbmZpZ3VyYXRpb25FbnRpdHlDaGVjaygKICAgICAgICAgICAgRW50aXR5VHlwZSA9PiAnVHlwZScsCiAgICAgICAgICAgIEVudGl0eU5hbWUgPT4gJFR5cGVOYW1lIC8vICcnLAogICAgICAgICk7CiAgICAgICAgaWYgKEBJc1R5cGVJblN5c0NvbmZpZykgewogICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgIE5hbWUgPT4gJ1R5cGVJblN5c0NvbmZpZycsCiAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBPbGROYW1lID0+ICRUeXBlTmFtZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGZvciBteSAkU2V0dGluZ05hbWUgKEBJc1R5cGVJblN5c0NvbmZpZykgewogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAnVHlwZUluU3lzQ29uZmlnUm93JywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgU2V0dGluZ05hbWUgPT4gJFNldHRpbmdOYW1lLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgVmVyaWZ5IGlmIGRpcnR5IHNldHRpbmcuCiAgICAgICAgICAgICAgICBpZiAoICRJc0RpcnR5TGlzdHskU2V0dGluZ05hbWV9ICkgewogICAgICAgICAgICAgICAgICAgICRJc0RpcnR5Q29uZmlnID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRJc0RpcnR5Q29uZmlnKSB7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnVHlwZUluU3lzQ29uZmlnRGlydHknLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKc3ViIF9PdmVydmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXcnLAogICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbkxpc3QnICk7CiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uQWRkJyApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAnSW5jbHVkZUludmFsaWQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBJbmNsdWRlSW52YWxpZCAgICAgICAgPT4gJFNlbGYtPntJbmNsdWRlSW52YWxpZH0sCiAgICAgICAgICAgIEluY2x1ZGVJbnZhbGlkQ2hlY2tlZCA9PiAkU2VsZi0+e0luY2x1ZGVJbnZhbGlkfSA/ICdjaGVja2VkJyA6ICcnLAogICAgICAgIH0sCiAgICApOwogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0ZpbHRlcicgKTsKIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnSW1wb3J0RXhwb3J0V2lkZ2V0JyApOwojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJ092ZXJ2aWV3UmVzdWx0JywKICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICApOwoKICAgIG15ICRUeXBlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlR5cGUnKTsKICAgIG15ICVMaXN0ICAgICAgID0gJFR5cGVPYmplY3QtPlR5cGVMaXN0KAogICAgICAgIFZhbGlkID0+ICRTZWxmLT57SW5jbHVkZUludmFsaWR9ID8gMCA6IDEsCiAgICApOwoKICAgICMgaWYgdGhlcmUgYXJlIGFueSB0eXBlcywgdGhleSBhcmUgc2hvd24KICAgIGlmICglTGlzdCkgewoKICAgICAgICAjIGdldCB2YWxpZCBsaXN0CiAgICAgICAgbXkgJVZhbGlkTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpLT5WYWxpZExpc3QoKTsKCiAgICAgICAgZm9yIG15ICRUeXBlSUQgKCBzb3J0IHsgJExpc3R7JGF9IGNtcCAkTGlzdHskYn0gfSBrZXlzICVMaXN0ICkgewoKICAgICAgICAgICAgbXkgJURhdGEgPSAkVHlwZU9iamVjdC0+VHlwZUdldCgKICAgICAgICAgICAgICAgIElEID0+ICRUeXBlSUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgTmFtZSA9PiAnT3ZlcnZpZXdSZXN1bHRSb3cnLAogICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgVmFsaWQgPT4gJFZhbGlkTGlzdHsgJERhdGF7VmFsaWRJRH0gfSwKICAgICAgICAgICAgICAgICAgICAlRGF0YSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlIGEgbm8gZGF0YSBmb3VuZCBtc2cgaXMgZGlzcGxheWVkCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmRNc2cnLAogICAgICAgICAgICBEYXRhID0+IHt9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminGenericAgent.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbkdlbmVyaWNBZ2VudC50dAojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCjwhLS0gc3RhcnQgZm9ybSAtLT4KPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCI+CiAgICA8aDEgY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiR2VuZXJpYyBBZ2VudCBKb2IgTWFuYWdlbWVudCIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdHZW5lcmljIEFnZW50IEpvYiBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5TdWJhY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdVcGRhdGUnICVdCiAgICAgICAgICAgIFslIElGIERhdGEuUHJvZmlsZSAlXQogICAgICAgICAgICAgICAgWyUgVVNFIEVkaXRKb2IgPSBTdHJpbmcoVHJhbnNsYXRlKCJFZGl0IEpvYiIpKSAlXQogICAgICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gRWRpdEpvYi5hcHBlbmQoICc6ICcsIERhdGEuUHJvZmlsZSApIH0pICVdCiAgICAgICAgICAgIFslIEVMU0UgJV0KICAgICAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgiQWRkIEpvYiIpLH0pICVdCiAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgIFslIENBU0UgJ1J1bicgJV0KICAgICAgICAgICAgWyUgVVNFIFJ1bkpvYiA9IFN0cmluZyhUcmFuc2xhdGUoIlJ1biBKb2IiKSkgJV0KICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGgucHVzaCh7IE5hbWUgPT4gUnVuSm9iLmFwcGVuZCggJzogJywgRGF0YS5Qcm9maWxlICkgfSkgJV0KICAgIFslIEVORCAlXQoKICAgIFslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCAlXQoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNsdWRlSW52YWxpZCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkZpbHRlciBieSB2YWxpZCBzdGF0ZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IkluY2x1ZGVJbnZhbGlkIiBuYW1lPSJJbmNsdWRlSW52YWxpZCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkluY2x1ZGUgaW52YWxpZCBqb2JzIikgfCBodG1sICVdIiBbJSBEYXRhLkluY2x1ZGVJbnZhbGlkQ2hlY2tlZCB8IGh0bWwgJV0vPgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iSW5jbHVkZUludmFsaWQiPlslIFRyYW5zbGF0ZSgiSW5jbHVkZSBpbnZhbGlkIGpvYnMiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkluY2x1ZGVJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uTGlzdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249VXBkYXRlIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCBKb2IiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGaWx0ZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsIGZvcj0iRmlsdGVyR2VuZXJpY0FnZW50Sm9icyI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIEpvYnMiKSB8IGh0bWwgJV08L2xhYmVsPjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRmlsdGVyR2VuZXJpY0FnZW50Sm9icyIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIikgfCBodG1sICVdIiBuYW1lPSJGaWx0ZXJHZW5lcmljQWdlbnRKb2JzIiB2YWx1ZT0iIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIGpvYnMiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkZpbHRlciIpICVdCiMgUm90aGVyIE9TUyAvIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnRFeHBvcnRXaWRnZXQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9J1dpZGdldFNpbXBsZScgaWQ9J0dlbmVyaWNBZ2VudEltcG9ydEV4cG9ydFdpZGdldCc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9J0hlYWRlcic+CiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9IkludmlzaWJsZVRleHQiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSW1wb3J0IC8gRXhwb3J0IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2gxPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiBUcmFuc2xhdGUoJ0ltcG9ydCAvIEV4cG9ydCcpLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICVdCgogICAgICAgICAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9J0NvbnRlbnQnPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9J0ZpZWxkRXhwbGFuYXRpb24nPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnSGVyZSB5b3UgY2FuIHVwbG9hZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBpbXBvcnQgZ2VuZXJpYyBhZ2VudHMgdG8geW91ciBzeXN0ZW0uIFRoZSBmaWxlIG5lZWRzIHRvIGJlIGluIC55bWwgZm9ybWF0IGFzIGV4cG9ydGVkIGJ5IHRoZSBnZW5lcmljIGFnZW50IG1hbmFnZW1lbnQgbW9kdWxlLicpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSdBY3Rpb25MaXN0IFNwYWNpbmdUb3AnPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSdbJSBFbnYoIkNHSUhhbmRsZSIpICVdJyBtZXRob2Q9J3Bvc3QnIGVuY3R5cGU9J211bHRpcGFydC9mb3JtLWRhdGEnIGNsYXNzPSdWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J0NoYWxsZW5nZVRva2VuJyB2YWx1ZT1bJSBFbnYoIlVzZXJDaGFsbGVuZ2VUb2tlbiIpIHwgSlNPTiAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J0FjdGlvbicgdmFsdWU9J0FkbWluR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0Jy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdTdWJhY3Rpb24nIHZhbHVlPSdJbXBvcnQnLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSdGaWxlVXBsb2FkJyBpZD0nRmlsZVVwbG9hZCcgdHlwZT0nZmlsZScgc2l6ZT0nMTgnIGNsYXNzPSdGaXhlZCBXMTAwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5GaWxlVXBsb2FkSW52YWxpZCB8IGh0bWwgJV0nLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9J0ZpbGVVcGxvYWRFcnJvcicgY2xhc3M9J1Rvb2x0aXBFcnJvck1lc3NhZ2UnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSdGaWxlVXBsb2FkU2VydmVyRXJyb3InIGNsYXNzPSdUb29sdGlwRXJyb3JNZXNzYWdlJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBUcmFuc2xhdGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9J1NwYWNpbmdUb3AnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdjaGVja2JveCcgaWQ9J092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXNFeGFtcGxlJyBuYW1lPSdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzJyB2YWx1ZT0nMScvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9J092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXNFeGFtcGxlJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdPdmVyd3JpdGUgZXhpc3RpbmcgZW50aXRpZXMnKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9J0NhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AnIGlkPSdHZW5lcmljQWdlbnRJbXBvcnQnIHR5cGU9J3N1Ym1pdCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9J2ZhIGZhLXVwbG9hZCc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ0dlbmVyaWMgQWdlbnRzIEltcG9ydCcpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9J1slIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkdlbmVyaWNBZ2VudEltcG9ydEV4cG9ydDtTdWJhY3Rpb249RXhwb3J0JyBpZD0nR2VuZXJpY0FnZW50RXhwb3J0JyBjbGFzcz0nQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9J2ZhIGZhLWRvd25sb2FkJz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdHZW5lcmljIEFnZW50cyBFeHBvcnQnKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkltcG9ydEV4cG9ydFdpZGdldCIpICVdCiMgRU8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iR2VuZXJpY0FnZW50Sm9icyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkxhc3QgcnVuIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJSdW4gTm93ISIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZE1zZyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbJSBJRiBEYXRhLlZhbGlkICE9IDElXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVVwZGF0ZTtQcm9maWxlPVslIERhdGEuTmFtZSB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmFtZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuU2NoZWR1bGVMYXN0UnVuIHwgTG9jYWxpemUoIlRpbWVMb25nIikgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlNob3duVmFsaWQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkNlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IlRyYXNoQ2FuIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249RGVsZXRlO1Byb2ZpbGU9WyUgRGF0YS5OYW1lIHwgdXJpICVdO1slIEVudigiQ2hhbGxlbmdlVG9rZW5QYXJhbSIpIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRGVsZXRlIHRoaXMgdGFzayIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj48L2k+IFslIFRyYW5zbGF0ZSgiRGVsZXRlIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlZhbGlkID09IDEgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVJ1bjtQcm9maWxlPVslIERhdGEuTmFtZSB8IHVyaSAlXTtbJSBFbnYoIkNoYWxsZW5nZVRva2VuUGFyYW0iKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlJ1biB0aGlzIHRhc2siKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNSI+WyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlldyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkVkaXQiKSAlXQogICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBuYW1lPSJjb21wb3NlIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkpvYiBTZXR0aW5ncyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJVcGRhdGVBY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTY2hlZHVsZUxhc3RSdW4iIHZhbHVlPSJbJSBEYXRhLlNjaGVkdWxlTGFzdFJ1biB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPbGRQcm9maWxlIiB2YWx1ZT0iWyUgRGF0YS5Qcm9maWxlIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuUHJvZmlsZSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDb250aW51ZUFmdGVyU2F2ZSIgaWQ9IkNvbnRpbnVlQWZ0ZXJTYXZlIiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJQcm9maWxlIiBjbGFzcz0iTWFuZGF0b3J5Ij48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkpvYiBuYW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJQcm9maWxlIiBpZD0iUHJvZmlsZSIgY2xhc3M9IlZhbGlkYXRlX1JlcXVpcmVkIFc1MHBjIFslIERhdGEuUHJvZmlsZUludmFsaWQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5Qcm9maWxlIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlByb2ZpbGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvZmlsZUludmFsaWRNc2ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iUHJvZmlsZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2ZpbGVJbnZhbGlkTXNnIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUHJvZmlsZUludmFsaWRNc2dBZGRFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJQcm9maWxlU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoZSBuYW1lIHlvdSBlbnRlcmVkIGFscmVhZHkgZXhpc3RzLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlByb2ZpbGVJbnZhbGlkTXNnQWRkRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVmFsaWQiPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZE9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgQ29sbGFwc2VkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0QWN0aW9uIFRvZ2dsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlRvZ2dsZSB0aGlzIHdpZGdldCIpIHwgaHRtbCAlXSI+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LXJpZ2h0Ij48L2k+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWRvd24iPjwvaT48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQXV0b21hdGljIEV4ZWN1dGlvbiAoTXVsdGlwbGUgVGlja2V0cykiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIFZhcmlhYmxlV2lkdGgiIHN1bW1hcnk9IlslIFRyYW5zbGF0ZSgiRXhlY3V0aW9uIFNjaGVkdWxlIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48bGFiZWwgZm9yPSJTY2hlZHVsZU1pbnV0ZXMiPlslIFRyYW5zbGF0ZSgiU2NoZWR1bGUgbWludXRlcyIpIHwgaHRtbCAlXTwvbGFiZWw+PC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD48bGFiZWwgZm9yPSJTY2hlZHVsZUhvdXJzIj5bJSBUcmFuc2xhdGUoIlNjaGVkdWxlIGhvdXJzIikgfCBodG1sICVdPC9sYWJlbD48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPjxsYWJlbCBmb3I9IlNjaGVkdWxlRGF5cyI+WyUgVHJhbnNsYXRlKCJTY2hlZHVsZSBkYXlzIikgfCBodG1sICVdPC9sYWJlbD48L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNjaGVkdWxlTWludXRlc0xpc3QgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TY2hlZHVsZUhvdXJzTGlzdCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlNjaGVkdWxlRGF5c0xpc3QgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkF1dG9tYXRpYyBleGVjdXRpb24gdmFsdWVzIGFyZSBpbiB0aGUgc3lzdGVtIHRpbWV6b25lLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJKb2JTY2hlZHVsZVdhcm5pbmciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkVycm9yIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQ3VycmVudGx5IHRoaXMgZ2VuZXJpYyBhZ2VudCBqb2Igd2lsbCBub3QgcnVuIGF1dG9tYXRpY2FsbHkuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJyLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRvIGVuYWJsZSBhdXRvbWF0aWMgZXhlY3V0aW9uIHNlbGVjdCBhdCBsZWFzdCBvbmUgdmFsdWUgZnJvbSBtaW51dGVzLCBob3VycyBhbmQgZGF5cyEiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIkpvYlNjaGVkdWxlV2FybmluZyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIENvbGxhcHNlZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJUb2dnbGUgdGhpcyB3aWRnZXQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkV2ZW50IEJhc2VkIEV4ZWN1dGlvbiAoU2luZ2xlIFRpY2tldCkiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJFdmVudHNUYWJsZSI+WyUgVHJhbnNsYXRlKCJFdmVudCBUcmlnZ2VycyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBXNTBwYyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSBDbGVhck5vbmUgU3BhY2luZ0JvdHRvbVNtYWxsIiBpZD0iRXZlbnRzVGFibGUiIHN1bW1hcnk9IlslIFRyYW5zbGF0ZSgiTGlzdCBvZiBhbGwgY29uZmlndXJlZCBldmVudHMiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVHlwZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJFdmVudCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9IkNlbnRlciI+WyUgVHJhbnNsYXRlKCJEZWxldGUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb0RhdGFGb3VuZE1zZ0V2ZW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZE1zZ0V2ZW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJFdmVudFJvd1RlbXBsYXRlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IkFzQmxvY2sgRXZlbnRUeXBlIj5FdmVudFR5cGU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJFdmVudE5hbWUiID5FdmVudE5hbWU8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJFdmVudERlbGV0ZSBDZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGlkPSJEZWxldGVFdmVudCIgY2xhc3M9IlRyYXNoQ2FuIERlbGV0ZUV2ZW50IiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJEZWxldGUgdGhpcyBldmVudCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRGVsZXRlIHRoaXMgZXZlbnQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRyYXNoLW8iPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iIiBjbGFzcz0iRXZlbnRWYWx1ZSIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkV2ZW50Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJBc0Jsb2NrIj5bJSBEYXRhLkV2ZW50VHlwZSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuRXZlbnQgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQ2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBpZD0iRGVsZXRlRXZlbnRbJSBEYXRhLkV2ZW50IHwgaHRtbCAlXSIgY2xhc3M9IlRyYXNoQ2FuIERlbGV0ZUV2ZW50IiBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJEZWxldGUgdGhpcyBldmVudCIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRGVsZXRlIHRoaXMgZXZlbnQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRyYXNoLW8iPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iRXZlbnRWYWx1ZXMiIGNsYXNzPSJFdmVudFZhbHVlIiB2YWx1ZT0iWyUgRGF0YS5FdmVudCB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiRXZlbnRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQWRkaXRpb25hbGx5IG9yIGFsdGVybmF0aXZlbHkgdG8gYSBwZXJpb2RpYyBleGVjdXRpb24sIHlvdSBjYW4gZGVmaW5lIHRpY2tldCBldmVudHMgdGhhdCB3aWxsIHRyaWdnZXIgdGhpcyBqb2IuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJZiBhIHRpY2tldCBldmVudCBpcyBmaXJlZCwgdGhlIHRpY2tldCBmaWx0ZXIgd2lsbCBiZSBhcHBsaWVkIHRvIGNoZWNrIGlmIHRoZSB0aWNrZXQgbWF0Y2hlcy4gT25seSB0aGVuIHRoZSBqb2IgaXMgcnVuIG9uIHRoYXQgdGlja2V0LiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhpZGRlbiIgaWQ9IkRlbGV0ZUV2ZW50RGlhbG9nQ29udGFpbmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQgPSJEZWxldGVFdmVudERpYWxvZyIgY2xhc3M9IklubmVyQ29udGVudCBHZW5lcmljSW50ZXJmYWNlRGlhbG9nIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iV2FybmluZ0RpYWxvZyAiPiZuYnNwOzwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iQ2VudGVyIFdhcm5pbmciPlslIFRyYW5zbGF0ZSgiRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGV2ZW50IHRyaWdnZXI/IikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iSGlkZU9uQ2hhbmdlIiBmb3I9IkV2ZW50VHlwZSI+WyUgVHJhbnNsYXRlKCJBZGQgRXZlbnQgVHJpZ2dlciIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBIaWRlT25DaGFuZ2UiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFdmVudFR5cGVTdHJnIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRXZlbnRUeXBlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgpbJSBSZW5kZXJCbG9ja0VuZCgiRXZlbnRUeXBlU3RyZyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV2ZW50QWRkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJFdmVudFR5cGVOYW1lIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkV2ZW50U3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgpbJSBSZW5kZXJCbG9ja0VuZCgiRXZlbnRBZGQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVG8gYWRkIGEgbmV3IGV2ZW50IHNlbGVjdCB0aGUgZXZlbnQgb2JqZWN0IGFuZCBldmVudCBuYW1lIikgfCBodG1sICVdLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBDb2xsYXBzZWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiVG9nZ2xlIHRoaXMgd2lkZ2V0IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJTZWxlY3QgVGlja2V0cyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGlja2V0TnVtYmVyIj5bJSBDb25maWcoIlRpY2tldDo6SG9vayIpICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJUaWNrZXROdW1iZXIiIGlkPSJUaWNrZXROdW1iZXIiIHNpemU9IjMwIiB2YWx1ZT0iWyUgRGF0YS5UaWNrZXROdW1iZXIgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCIoZS4gZy4gMTAqNTE1NSBvciAxMDU2NTgqKSIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVGl0bGUiPlslIFRyYW5zbGF0ZSgiVGl0bGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlRpdGxlIiBpZD0iVGl0bGUiIGNsYXNzPSJXMzNwYyIgdmFsdWU9IlslIERhdGEuVGl0bGUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDdXN0b21lcklEIj5bJSBUcmFuc2xhdGUoIkN1c3RvbWVyIElEIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJDdXN0b21lcklEIiBpZD0iQ3VzdG9tZXJJRCIgY2xhc3M9IlczM3BjIiB2YWx1ZT0iWyUgRGF0YS5DdXN0b21lcklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiKGUuIGcuIDIzNDMyMSkiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkN1c3RvbWVyVXNlckxvZ2luIj5bJSBUcmFuc2xhdGUoIkN1c3RvbWVyIHVzZXIgSUQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkN1c3RvbWVyVXNlckxvZ2luIiBpZD0iQ3VzdG9tZXJVc2VyTG9naW4iIGNsYXNzPSJXMzNwYyIgdmFsdWU9IlslIERhdGEuQ3VzdG9tZXJVc2VyTG9naW4gfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCIoZS4gZy4gVTUxNTApIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIlRpY2tldFR5cGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUeXBlSURzIj5bJSBUcmFuc2xhdGUoIlR5cGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5UeXBlc1N0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRpY2tldFR5cGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJNSU1FQmFzZV9Gcm9tIj5bJSBUcmFuc2xhdGUoIkZyb20iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Ik1JTUVCYXNlX0Zyb20iIGlkPSJNSU1FQmFzZV9Gcm9tIiBjbGFzcz0iVzMwcGMgWyUgRGF0YS5NSU1FQmFzZV9Gcm9tSW52YWxpZCB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLk1JTUVCYXNlX0Zyb20gfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJGdWxsdGV4dC1zZWFyY2ggaW4gYXJ0aWNsZSAoZS4gZy4gXCJNYXIqaW5cIiBvciBcIkJhdWUqXCIpLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTUlNRUJhc2VfRnJvbVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgRGF0YS5NSU1FQmFzZV9Gcm9tSW52YWxpZFRvb2x0aXAgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJNSU1FQmFzZV9UbyI+WyUgVHJhbnNsYXRlKCJUbyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTUlNRUJhc2VfVG8iIGlkPSJNSU1FQmFzZV9UbyIgY2xhc3M9IlczM3BjIFslIERhdGEuTUlNRUJhc2VfVG9JbnZhbGlkIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuTUlNRUJhc2VfVG8gfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJGdWxsdGV4dC1zZWFyY2ggaW4gYXJ0aWNsZSAoZS4gZy4gXCJNYXIqaW5cIiBvciBcIkJhdWUqXCIpLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTUlNRUJhc2VfVG9TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIERhdGEuTUlNRUJhc2VfVG9JbnZhbGlkVG9vbHRpcCB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik1JTUVCYXNlX0NjIj5bJSBUcmFuc2xhdGUoIkNjIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJNSU1FQmFzZV9DYyIgaWQ9Ik1JTUVCYXNlX0NjIiBjbGFzcz0iVzMzcGMgWyUgRGF0YS5NSU1FQmFzZV9DY0ludmFsaWQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5NSU1FQmFzZV9DYyB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkZ1bGx0ZXh0LXNlYXJjaCBpbiBhcnRpY2xlIChlLiBnLiBcIk1hcippblwiIG9yIFwiQmF1ZSpcIikuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJNSU1FQmFzZV9DY1NlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgRGF0YS5NSU1FQmFzZV9DY0ludmFsaWRUb29sdGlwIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTUlNRUJhc2VfU3ViamVjdCI+WyUgVHJhbnNsYXRlKCJTdWJqZWN0IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJNSU1FQmFzZV9TdWJqZWN0IiBpZD0iTUlNRUJhc2VfU3ViamVjdCIgY2xhc3M9IlczM3BjIFslIERhdGEuTUlNRUJhc2VfU3ViamVjdEludmFsaWQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5NSU1FQmFzZV9TdWJqZWN0IHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRnVsbHRleHQtc2VhcmNoIGluIGFydGljbGUgKGUuIGcuIFwiTWFyKmluXCIgb3IgXCJCYXVlKlwiKS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1JTUVCYXNlX1N1YmplY3RTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIERhdGEuTUlNRUJhc2VfU3ViamVjdEludmFsaWRUb29sdGlwIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTUlNRUJhc2VfQm9keSI+WyUgVHJhbnNsYXRlKCJUZXh0IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJNSU1FQmFzZV9Cb2R5IiBpZD0iTUlNRUJhc2VfQm9keSIgY2xhc3M9IlczM3BjIFslIERhdGEuTUlNRUJhc2VfQm9keUludmFsaWQgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5NSU1FQmFzZV9Cb2R5IHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRnVsbHRleHQtc2VhcmNoIGluIGFydGljbGUgKGUuIGcuIFwiTWFyKmluXCIgb3IgXCJCYXVlKlwiKS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik1JTUVCYXNlX0JvZHlTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIERhdGEuTUlNRUJhc2VfQm9keUludmFsaWRUb29sdGlwIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUaWNrZXRTZXJ2aWNlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU2VydmljZUlEcyI+WyUgVHJhbnNsYXRlKCJTZXJ2aWNlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU2VydmljZXNTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTTEFJRHMiPlslIFRyYW5zbGF0ZSgiU2VydmljZSBMZXZlbCBBZ3JlZW1lbnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TTEFzU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGlja2V0U2VydmljZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlByaW9yaXR5SURzIj5bJSBUcmFuc2xhdGUoIlByaW9yaXR5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUHJpb3JpdGllc1N0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlF1ZXVlSURzIj5bJSBUcmFuc2xhdGUoIlF1ZXVlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuUXVldWVzU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU3RhdGVJRHMiPlslIFRyYW5zbGF0ZSgiU3RhdGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TdGF0ZXNTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJPd25lcklEcyI+WyUgVHJhbnNsYXRlKCJBZ2VudCIpIHwgaHRtbCAlXS9bJSBUcmFuc2xhdGUoIk93bmVyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuT3duZXJTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUaWNrZXRSZXNwb25zaWJsZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlJlc3BvbnNpYmxlSURzIj5bJSBUcmFuc2xhdGUoIkFnZW50IikgfCBodG1sICVdL1slIFRyYW5zbGF0ZSgiUmVzcG9uc2libGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5SZXNwb25zaWJsZVN0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlRpY2tldFJlc3BvbnNpYmxlIikgJV0KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkxvY2tJRHMiPlslIFRyYW5zbGF0ZSgiVGlja2V0IGxvY2siKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Mb2NrT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJEeW5hbWljIGZpZWxkcyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWRkRHluYW1pY0ZpZWxkcyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBZGQgZHluYW1pYyBmaWVsZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBkYXRhLXdpZGdldD0iU2VsZWN0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EeW5hbWljRmllbGRzU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWRkRHluYW1pY0ZpZWxkcyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGlkPSJTZWxlY3RlZER5bmFtaWNGaWVsZHMiIGNsYXNzPSJUYWJsZUxpa2UiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZWxlY3RlZER5bmFtaWNGaWVsZHMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGRhdGEtaWQ9IlslIERhdGEuSUQgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU2VsZWN0ZWREeW5hbWljRmllbGRzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlRpbWVTZWFyY2hUeXBlTm9uZSI+WyUgVHJhbnNsYXRlKCJDcmVhdGUgdGltZXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJUaW1lU2VhcmNoVHlwZSIgaWQ9IlRpbWVTZWFyY2hUeXBlTm9uZSIgdmFsdWU9IiIgWyUgRGF0YS5pdGVtKCJUaW1lU2VhcmNoVHlwZTo6Tm9uZSIpICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gY3JlYXRlIHRpbWUgc2V0dGluZ3MuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IlRpbWVTZWFyY2hUeXBlIiB2YWx1ZT0iVGltZVBvaW50IiBbJSBEYXRhLml0ZW0oIlRpbWVTZWFyY2hUeXBlOjpUaW1lUG9pbnQiKSAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpY2tldCBjcmVhdGVkIikgfCBodG1sICVdIFslIERhdGEuVGlja2V0Q3JlYXRlVGltZVBvaW50U3RhcnQgJV0gWyUgRGF0YS5UaWNrZXRDcmVhdGVUaW1lUG9pbnQgJV0gWyUgRGF0YS5UaWNrZXRDcmVhdGVUaW1lUG9pbnRGb3JtYXQgJV0uCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IlRpbWVTZWFyY2hUeXBlIiB2YWx1ZT0iVGltZVNsb3QiIFslIERhdGEuaXRlbSgiVGltZVNlYXJjaFR5cGU6OlRpbWVTbG90IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgY3JlYXRlZCBiZXR3ZWVuIikgfCBodG1sICVdIFslIERhdGEuVGlja2V0Q3JlYXRlVGltZVN0YXJ0ICVdIFslIFRyYW5zbGF0ZSgiYW5kIikgfCBodG1sICVdIFslIERhdGEuVGlja2V0Q3JlYXRlVGltZVN0b3AgJV0uCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJMYXN0Q2hhbmdlVGltZVNlYXJjaFR5cGVOb25lIj5bJSBUcmFuc2xhdGUoIkxhc3QgY2hhbmdlZCB0aW1lcyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Ikxhc3RDaGFuZ2VUaW1lU2VhcmNoVHlwZSIgaWQ9Ikxhc3RDaGFuZ2VUaW1lU2VhcmNoVHlwZU5vbmUiIHZhbHVlPSIiIFslIERhdGEuaXRlbSgiTGFzdENoYW5nZVRpbWVTZWFyY2hUeXBlOjpOb25lIikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBsYXN0IGNoYW5nZWQgdGltZSBzZXR0aW5ncy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iTGFzdENoYW5nZVRpbWVTZWFyY2hUeXBlIiB2YWx1ZT0iVGltZVBvaW50IiBbJSBEYXRhLml0ZW0oIkxhc3RDaGFuZ2VUaW1lU2VhcmNoVHlwZTo6VGltZVBvaW50IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgbGFzdCBjaGFuZ2VkIikgfCBodG1sICVdIFslIERhdGEuVGlja2V0TGFzdENoYW5nZVRpbWVQb2ludFN0YXJ0ICVdIFslIERhdGEuVGlja2V0TGFzdENoYW5nZVRpbWVQb2ludCAlXSBbJSBEYXRhLlRpY2tldExhc3RDaGFuZ2VUaW1lUG9pbnRGb3JtYXQgJV0uCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Ikxhc3RDaGFuZ2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVTbG90IiBbJSBEYXRhLml0ZW0oIkxhc3RDaGFuZ2VUaW1lU2VhcmNoVHlwZTo6VGltZVNsb3QiKSAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpY2tldCBsYXN0IGNoYW5nZWQgYmV0d2VlbiIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldExhc3RDaGFuZ2VUaW1lU3RhcnQgJV0gWyUgVHJhbnNsYXRlKCJhbmQiKSB8IGh0bWwgJV0gWyUgRGF0YS5UaWNrZXRMYXN0Q2hhbmdlVGltZVN0b3AgJV0uCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDaGFuZ2VUaW1lU2VhcmNoVHlwZU5vbmUiPlslIFRyYW5zbGF0ZSgiQ2hhbmdlIHRpbWVzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iQ2hhbmdlVGltZVNlYXJjaFR5cGUiIGlkPSJDaGFuZ2VUaW1lU2VhcmNoVHlwZU5vbmUiIHZhbHVlPSIiIFslIERhdGEuaXRlbSgiQ2hhbmdlVGltZVNlYXJjaFR5cGU6Ok5vbmUiKSAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGNoYW5nZSB0aW1lIHNldHRpbmdzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJDaGFuZ2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVQb2ludCIgWyUgRGF0YS5pdGVtKCJDaGFuZ2VUaW1lU2VhcmNoVHlwZTo6VGltZVBvaW50IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgY2hhbmdlZCIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldENoYW5nZVRpbWVQb2ludFN0YXJ0ICVdIFslIERhdGEuVGlja2V0Q2hhbmdlVGltZVBvaW50ICVdIFslIERhdGEuVGlja2V0Q2hhbmdlVGltZVBvaW50Rm9ybWF0ICVdLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJDaGFuZ2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVTbG90IiBbJSBEYXRhLml0ZW0oIkNoYW5nZVRpbWVTZWFyY2hUeXBlOjpUaW1lU2xvdCIpICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGlja2V0IGNoYW5nZWQgYmV0d2VlbiIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldENoYW5nZVRpbWVTdGFydCAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldENoYW5nZVRpbWVTdG9wICVdLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTGFzdENsb3NlVGltZVNlYXJjaFR5cGVOb25lIj5bJSBUcmFuc2xhdGUoIkxhc3QgY2xvc2UgdGltZXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJMYXN0Q2xvc2VUaW1lU2VhcmNoVHlwZSIgaWQ9Ikxhc3RDbG9zZVRpbWVTZWFyY2hUeXBlTm9uZSIgdmFsdWU9IiIgWyUgRGF0YS5pdGVtKCJMYXN0Q2xvc2VUaW1lU2VhcmNoVHlwZTo6Tm9uZSIpICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gbGFzdCBjbG9zZSB0aW1lIHNldHRpbmdzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJMYXN0Q2xvc2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVQb2ludCIgWyUgRGF0YS5pdGVtKCJMYXN0Q2xvc2VUaW1lU2VhcmNoVHlwZTo6VGltZVBvaW50IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgbGFzdCBjbG9zZSIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldExhc3RDbG9zZVRpbWVQb2ludFN0YXJ0ICVdIFslIERhdGEuVGlja2V0TGFzdENsb3NlVGltZVBvaW50ICVdIFslIERhdGEuVGlja2V0TGFzdENsb3NlVGltZVBvaW50Rm9ybWF0ICVdLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJMYXN0Q2xvc2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVTbG90IiBbJSBEYXRhLml0ZW0oIkxhc3RDbG9zZVRpbWVTZWFyY2hUeXBlOjpUaW1lU2xvdCIpICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGlja2V0IGxhc3QgY2xvc2UgYmV0d2VlbiIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldExhc3RDbG9zZVRpbWVTdGFydCAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldExhc3RDbG9zZVRpbWVTdG9wICVdLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iQ2xvc2VUaW1lU2VhcmNoVHlwZU5vbmUiPlslIFRyYW5zbGF0ZSgiQ2xvc2UgdGltZXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJDbG9zZVRpbWVTZWFyY2hUeXBlIiBpZD0iQ2xvc2VUaW1lU2VhcmNoVHlwZU5vbmUiIHZhbHVlPSIiIFslIERhdGEuaXRlbSgiQ2xvc2VUaW1lU2VhcmNoVHlwZTo6Tm9uZSIpICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gY2xvc2UgdGltZSBzZXR0aW5ncy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iQ2xvc2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVQb2ludCIgWyUgRGF0YS5pdGVtKCJDbG9zZVRpbWVTZWFyY2hUeXBlOjpUaW1lUG9pbnQiKSAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpY2tldCBjbG9zZWQiKSB8IGh0bWwgJV0gWyUgRGF0YS5UaWNrZXRDbG9zZVRpbWVQb2ludFN0YXJ0ICVdIFslIERhdGEuVGlja2V0Q2xvc2VUaW1lUG9pbnQgJV0gWyUgRGF0YS5UaWNrZXRDbG9zZVRpbWVQb2ludEZvcm1hdCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iQ2xvc2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVTbG90IiBbJSBEYXRhLml0ZW0oIkNsb3NlVGltZVNlYXJjaFR5cGU6OlRpbWVTbG90IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgY2xvc2VkIGJldHdlZW4iKSB8IGh0bWwgJV0gWyUgRGF0YS5UaWNrZXRDbG9zZVRpbWVTdGFydCAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldENsb3NlVGltZVN0b3AgJV0uCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJUaW1lUGVuZGluZ1NlYXJjaFR5cGVOb25lIj5bJSBUcmFuc2xhdGUoIlBlbmRpbmcgdGltZXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJUaW1lUGVuZGluZ1NlYXJjaFR5cGUiIGlkPSJUaW1lUGVuZGluZ1NlYXJjaFR5cGVOb25lIiB2YWx1ZT0iIiBbJSBEYXRhLml0ZW0oIlRpbWVQZW5kaW5nU2VhcmNoVHlwZTo6Tm9uZSIpICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gcGVuZGluZyB0aW1lIHNldHRpbmdzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJUaW1lUGVuZGluZ1NlYXJjaFR5cGUiIHZhbHVlPSJUaW1lUG9pbnQiIFslIERhdGEuaXRlbSgiVGltZVBlbmRpbmdTZWFyY2hUeXBlOjpUaW1lUG9pbnQiKSAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpY2tldCBwZW5kaW5nIHRpbWUgcmVhY2hlZCIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldFBlbmRpbmdUaW1lUG9pbnRTdGFydCAlXSBbJSBEYXRhLlRpY2tldFBlbmRpbmdUaW1lUG9pbnQgJV0gWyUgRGF0YS5UaWNrZXRQZW5kaW5nVGltZVBvaW50Rm9ybWF0ICVdLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJUaW1lUGVuZGluZ1NlYXJjaFR5cGUiIHZhbHVlPSJUaW1lU2xvdCIgWyUgRGF0YS5pdGVtKCJUaW1lUGVuZGluZ1NlYXJjaFR5cGU6OlRpbWVTbG90IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgcGVuZGluZyB0aW1lIHJlYWNoZWQgYmV0d2VlbiIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldFBlbmRpbmdUaW1lU3RhcnQgJV0gWyUgVHJhbnNsYXRlKCJhbmQiKSB8IGh0bWwgJV0gWyUgRGF0YS5UaWNrZXRQZW5kaW5nVGltZVN0b3AgJV0uCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJFc2NhbGF0aW9uVGltZVNlYXJjaFR5cGVOb25lIj5bJSBUcmFuc2xhdGUoIkVzY2FsYXRpb24gdGltZXMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJFc2NhbGF0aW9uVGltZVNlYXJjaFR5cGUiIGlkPSJFc2NhbGF0aW9uVGltZVNlYXJjaFR5cGVOb25lIiB2YWx1ZT0iIiBbJSBEYXRhLml0ZW0oIkVzY2FsYXRpb25UaW1lU2VhcmNoVHlwZTo6Tm9uZSIpICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZXNjYWxhdGlvbiB0aW1lIHNldHRpbmdzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJFc2NhbGF0aW9uVGltZVNlYXJjaFR5cGUiIHZhbHVlPSJUaW1lUG9pbnQiIFslIERhdGEuaXRlbSgiRXNjYWxhdGlvblRpbWVTZWFyY2hUeXBlOjpUaW1lUG9pbnQiKSAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpY2tldCBlc2NhbGF0aW9uIHRpbWUgcmVhY2hlZCIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25UaW1lUG9pbnRTdGFydCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25UaW1lUG9pbnQgJV0gWyUgRGF0YS5UaWNrZXRFc2NhbGF0aW9uVGltZVBvaW50Rm9ybWF0ICVdLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJFc2NhbGF0aW9uVGltZVNlYXJjaFR5cGUiIHZhbHVlPSJUaW1lU2xvdCIgWyUgRGF0YS5pdGVtKCJFc2NhbGF0aW9uVGltZVNlYXJjaFR5cGU6OlRpbWVTbG90IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgZXNjYWxhdGlvbiB0aW1lIHJlYWNoZWQgYmV0d2VlbiIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25UaW1lU3RhcnQgJV0gWyUgVHJhbnNsYXRlKCJhbmQiKSB8IGh0bWwgJV0gWyUgRGF0YS5UaWNrZXRFc2NhbGF0aW9uVGltZVN0b3AgJV0uCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lU2VhcmNoVHlwZU5vbmUiPlslIFRyYW5zbGF0ZSgiRXNjYWxhdGlvbiAtIGZpcnN0IHJlc3BvbnNlIHRpbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lU2VhcmNoVHlwZSIgaWQ9IkVzY2FsYXRpb25SZXNwb25zZVRpbWVTZWFyY2hUeXBlTm9uZSIgdmFsdWU9IiIgWyUgRGF0YS5pdGVtKCJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lU2VhcmNoVHlwZTo6Tm9uZSIpICVdLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZXNjYWxhdGlvbiB0aW1lIHNldHRpbmdzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lU2VhcmNoVHlwZSIgdmFsdWU9IlRpbWVQb2ludCIgWyUgRGF0YS5pdGVtKCJFc2NhbGF0aW9uUmVzcG9uc2VUaW1lU2VhcmNoVHlwZTo6VGltZVBvaW50IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgZmlyc3QgcmVzcG9uc2UgdGltZSByZWFjaGVkIikgfCBodG1sICVdIFslIERhdGEuVGlja2V0RXNjYWxhdGlvblJlc3BvbnNlVGltZVBvaW50U3RhcnQgJV0gWyUgRGF0YS5UaWNrZXRFc2NhbGF0aW9uUmVzcG9uc2VUaW1lUG9pbnQgJV0gWyUgRGF0YS5UaWNrZXRFc2NhbGF0aW9uUmVzcG9uc2VUaW1lUG9pbnRGb3JtYXQgJV0uCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IkVzY2FsYXRpb25SZXNwb25zZVRpbWVTZWFyY2hUeXBlIiB2YWx1ZT0iVGltZVNsb3QiIFslIERhdGEuaXRlbSgiRXNjYWxhdGlvblJlc3BvbnNlVGltZVNlYXJjaFR5cGU6OlRpbWVTbG90IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgZmlyc3QgcmVzcG9uc2UgdGltZSByZWFjaGVkIGJldHdlZW4iKSB8IGh0bWwgJV0gWyUgRGF0YS5UaWNrZXRFc2NhbGF0aW9uUmVzcG9uc2VUaW1lU3RhcnQgJV0gWyUgVHJhbnNsYXRlKCJhbmQiKSB8IGh0bWwgJV0gWyUgRGF0YS5UaWNrZXRFc2NhbGF0aW9uUmVzcG9uc2VUaW1lU3RvcCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkVzY2FsYXRpb25VcGRhdGVUaW1lU2VhcmNoVHlwZU5vbmUiPlslIFRyYW5zbGF0ZSgiRXNjYWxhdGlvbiAtIHVwZGF0ZSB0aW1lIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iRXNjYWxhdGlvblVwZGF0ZVRpbWVTZWFyY2hUeXBlIiBpZD0iRXNjYWxhdGlvblVwZGF0ZVRpbWVTZWFyY2hUeXBlTm9uZSIgdmFsdWU9IiIgWyUgRGF0YS5pdGVtKCJFc2NhbGF0aW9uVXBkYXRlVGltZVNlYXJjaFR5cGU6Ok5vbmUiKSAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGVzY2FsYXRpb24gdGltZSBzZXR0aW5ncy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iRXNjYWxhdGlvblVwZGF0ZVRpbWVTZWFyY2hUeXBlIiB2YWx1ZT0iVGltZVBvaW50IiBbJSBEYXRhLml0ZW0oIkVzY2FsYXRpb25VcGRhdGVUaW1lU2VhcmNoVHlwZTo6VGltZVBvaW50IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgdXBkYXRlIHRpbWUgcmVhY2hlZCIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25VcGRhdGVUaW1lUG9pbnRTdGFydCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25VcGRhdGVUaW1lUG9pbnQgJV0gWyUgRGF0YS5UaWNrZXRFc2NhbGF0aW9uVXBkYXRlVGltZVBvaW50Rm9ybWF0ICVdLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJFc2NhbGF0aW9uVXBkYXRlVGltZVNlYXJjaFR5cGUiIHZhbHVlPSJUaW1lU2xvdCIgWyUgRGF0YS5pdGVtKCJFc2NhbGF0aW9uVXBkYXRlVGltZVNlYXJjaFR5cGU6OlRpbWVTbG90IikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaWNrZXQgdXBkYXRlIHRpbWUgcmVhY2hlZCBiZXR3ZWVuIikgfCBodG1sICVdIFslIERhdGEuVGlja2V0RXNjYWxhdGlvblVwZGF0ZVRpbWVTdGFydCAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25VcGRhdGVUaW1lU3RvcCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkVzY2FsYXRpb25Tb2x1dGlvblRpbWVTZWFyY2hUeXBlTm9uZSI+WyUgVHJhbnNsYXRlKCJFc2NhbGF0aW9uIC0gc29sdXRpb24gdGltZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IkVzY2FsYXRpb25Tb2x1dGlvblRpbWVTZWFyY2hUeXBlIiBpZD0iRXNjYWxhdGlvblNvbHV0aW9uVGltZVNlYXJjaFR5cGVOb25lIiB2YWx1ZT0iIiBbJSBEYXRhLml0ZW0oIkVzY2FsYXRpb25Tb2x1dGlvblRpbWVTZWFyY2hUeXBlOjpOb25lIikgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBlc2NhbGF0aW9uIHRpbWUgc2V0dGluZ3MuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IkVzY2FsYXRpb25Tb2x1dGlvblRpbWVTZWFyY2hUeXBlIiB2YWx1ZT0iVGltZVBvaW50IiBbJSBEYXRhLml0ZW0oIkVzY2FsYXRpb25Tb2x1dGlvblRpbWVTZWFyY2hUeXBlOjpUaW1lUG9pbnQiKSAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpY2tldCBzb2x1dGlvbiB0aW1lIHJlYWNoZWQiKSB8IGh0bWwgJV0gWyUgRGF0YS5UaWNrZXRFc2NhbGF0aW9uU29sdXRpb25UaW1lUG9pbnRTdGFydCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25Tb2x1dGlvblRpbWVQb2ludCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25Tb2x1dGlvblRpbWVQb2ludEZvcm1hdCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iRXNjYWxhdGlvblNvbHV0aW9uVGltZVNlYXJjaFR5cGUiIHZhbHVlPSJUaW1lU2xvdCIgWyUgRGF0YS5pdGVtKCJFc2NhbGF0aW9uU29sdXRpb25UaW1lU2VhcmNoVHlwZTo6VGltZVNsb3QiKSAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpY2tldCBzb2x1dGlvbiB0aW1lIHJlYWNoZWQgYmV0d2VlbiIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25Tb2x1dGlvblRpbWVTdGFydCAlXSBbJSBUcmFuc2xhdGUoImFuZCIpIHwgaHRtbCAlXSBbJSBEYXRhLlRpY2tldEVzY2FsYXRpb25Tb2x1dGlvblRpbWVTdG9wICVdLgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZWFyY2hJbkFyY2hpdmUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJTZWFyY2hJbkFyY2hpdmUiPlslIFRyYW5zbGF0ZSgiQXJjaGl2ZSBzZWFyY2ggb3B0aW9uIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU2VhcmNoSW5BcmNoaXZlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU2VhcmNoSW5BcmNoaXZlIikgJV0KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2Pgo8IS0tIG5ldyBvcHRpb25zIC0tPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBDb2xsYXBzZWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiVG9nZ2xlIHRoaXMgd2lkZ2V0IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJVcGRhdGUvQWRkIFRpY2tldCBBdHRyaWJ1dGVzIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOZXdUaWNrZXRTZXJ2aWNlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3U2VydmljZUlEIj5bJSBUcmFuc2xhdGUoIlNldCBuZXcgc2VydmljZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5ld1NlcnZpY2VzU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3U0xBSUQiPlslIFRyYW5zbGF0ZSgiU2V0IG5ldyBTZXJ2aWNlIExldmVsIEFncmVlbWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5ld1NMQXNTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOZXdUaWNrZXRTZXJ2aWNlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3UHJpb3JpdHlJRCI+WyUgVHJhbnNsYXRlKCJTZXQgbmV3IHByaW9yaXR5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV3UHJpb3JpdGllc1N0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1F1ZXVlSUQiPlslIFRyYW5zbGF0ZSgiU2V0IG5ldyBxdWV1ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5ld1F1ZXVlc1N0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1N0YXRlSUQiPlslIFRyYW5zbGF0ZSgiU2V0IG5ldyBzdGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5ld1N0YXRlc1N0cmcgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1BlbmRpbmdUaW1lIj5bJSBUcmFuc2xhdGUoIlBlbmRpbmcgZGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmV3UGVuZGluZ1RpbWUiIGlkPSJOZXdQZW5kaW5nVGltZSIgdmFsdWU9IlslIERhdGEuTmV3UGVuZGluZ1RpbWUgfCBodG1sICVdIiBjbGFzcz0iVzEwcGMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV3UGVuZGluZ1RpbWVUeXBlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3T3duZXJJRCI+WyUgVHJhbnNsYXRlKCJTZXQgbmV3IGFnZW50IikgfCBodG1sICVdL1slIFRyYW5zbGF0ZSgibmV3IG93bmVyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV3T3duZXJTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOZXdUaWNrZXRSZXNwb25zaWJsZSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1Jlc3BvbnNpYmxlSUQiPlslIFRyYW5zbGF0ZSgiU2V0IG5ldyBhZ2VudCIpIHwgaHRtbCAlXS9bJSBUcmFuc2xhdGUoIm5ldyByZXNwb25zaWJsZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5ld1Jlc3BvbnNpYmxlU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTmV3VGlja2V0UmVzcG9uc2libGUiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3TG9ja0lEIj5bJSBUcmFuc2xhdGUoIlNldCBuZXcgdGlja2V0IGxvY2siKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5OZXdMb2NrT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdDdXN0b21lclVzZXJMb2dpbiI+WyUgVHJhbnNsYXRlKCJOZXcgY3VzdG9tZXIgdXNlciBJRCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmV3Q3VzdG9tZXJVc2VyTG9naW4iIGlkPSJOZXdDdXN0b21lclVzZXJMb2dpbiIgdmFsdWU9IlslIERhdGEuTmV3Q3VzdG9tZXJVc2VyTG9naW4gfCBodG1sICVdIiBjbGFzcz0iVzMzcGMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld0N1c3RvbWVySUQiPlslIFRyYW5zbGF0ZSgiTmV3IGN1c3RvbWVyIElEIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdDdXN0b21lcklEIiBpZD0iTmV3Q3VzdG9tZXJJRCIgdmFsdWU9IlslIERhdGEuTmV3Q3VzdG9tZXJJRCB8IGh0bWwgJV0iIGNsYXNzPSJXMzNwYyIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3VGl0bGUiPlslIFRyYW5zbGF0ZSgiTmV3IHRpdGxlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdUaXRsZSIgaWQ9Ik5ld1RpdGxlIiBjbGFzcz0iVzMzcGMiIHZhbHVlPSJbJSBEYXRhLk5ld1RpdGxlIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOZXdUaWNrZXRUeXBlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3VHlwZUlEIj5bJSBUcmFuc2xhdGUoIk5ldyB0eXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmV3VHlwZXNTdHJnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJOZXdUaWNrZXRUeXBlIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlslIFRyYW5zbGF0ZSgiRHluYW1pYyBmaWVsZHMiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFkZE5ld0R5bmFtaWNGaWVsZHMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+WyUgVHJhbnNsYXRlKCJBZGQgZHluYW1pYyBmaWVsZCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIiBkYXRhLXdpZGdldD0iVXBkYXRlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5OZXdEeW5hbWljRmllbGRzU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWRkTmV3RHluYW1pY0ZpZWxkcyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGlkPSJTZWxlY3RlZE5ld0R5bmFtaWNGaWVsZHMiIGNsYXNzPSJUYWJsZUxpa2UiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJTZWxlY3RlZE5ld0R5bmFtaWNGaWVsZHMiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5MYWJlbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiIGRhdGEtaWQ9IlslIERhdGEuSUQgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRmllbGQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiU2VsZWN0ZWROZXdEeW5hbWljRmllbGRzIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOZXdBcmNoaXZlRmxhZyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld0FyY2hpdmVGbGFnIj5bJSBUcmFuc2xhdGUoIkFyY2hpdmUgc2VsZWN0ZWQgdGlja2V0cyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5ld0FyY2hpdmVGbGFnU3RyZyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiTmV3QXJjaGl2ZUZsYWciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIENvbGxhcHNlZCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IldpZGdldEFjdGlvbiBUb2dnbGUiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJUb2dnbGUgdGhpcyB3aWRnZXQiKSB8IGh0bWwgJV0iPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1yaWdodCI+PC9pPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIj48L2k+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBOb3RlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdOb3RlRnJvbSI+WyUgVHJhbnNsYXRlKCJGcm9tIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdOb3RlRnJvbSIgaWQ9Ik5ld05vdGVGcm9tIiB2YWx1ZT0iWyUgRGF0YS5OZXdOb3RlRnJvbSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBbJSBEYXRhLk5ld05vdGVGcm9tU2VydmVyRXJyb3IgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmV3Tm90ZUZyb21TZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBtdXN0IGhhdmUgbGVzcyB0aGVuIDIwMCBjaGFyYWN0ZXJzLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld05vdGVTdWJqZWN0Ij5bJSBUcmFuc2xhdGUoIlN1YmplY3QiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Ik5ld05vdGVTdWJqZWN0IiBpZD0iTmV3Tm90ZVN1YmplY3QiIHZhbHVlPSJbJSBEYXRhLk5ld05vdGVTdWJqZWN0IHwgaHRtbCAlXSIgc2l6ZT0iNjAiIFslIElGIERhdGEuTmV3Tm90ZVN1YmplY3RTZXJ2ZXJFcnJvciA9PSAnU2VydmVyRXJyb3InICVdY2xhc3M9IlslIERhdGEuTmV3Tm90ZVN1YmplY3RTZXJ2ZXJFcnJvciB8IGh0bWwgJV0iWyUgRU5EICVdIG1heGxlbmd0aD0iMjAwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJOZXdOb3RlU3ViamVjdFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+PHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIG11c3QgaGF2ZSBsZXNzIHRoZW4gMjAwIGNoYXJhY3RlcnMuIikgfCBodG1sICVdPC9wPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3Tm90ZUJvZHkiPlslIFRyYW5zbGF0ZSgiVGV4dCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0iTmV3Tm90ZUJvZHkiIGlkPSJOZXdOb3RlQm9keSIgY2xhc3M9IlZhbGlkYXRlX01heExlbmd0aCBbJSBEYXRhLk5ld05vdGVCb2R5U2VydmVyRXJyb3IgfCBodG1sICVdIiByb3dzPSI3IiBjb2xzPSI2MCIgZGF0YS1tYXhsZW5ndGg9IjIwMCI+WyUgRGF0YS5OZXdOb3RlQm9keSB8IGh0bWwgJV08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmV3Tm90ZUJvZHlFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPjxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBtdXN0IGhhdmUgbGVzcyB0aGVuIDIwMCBjaGFyYWN0ZXJzLiIpIHwgaHRtbCAlXTwvcD48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5ld05vdGVCb2R5U2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj48cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgbXVzdCBoYXZlIGxlc3MgdGhlbiAyMDAgY2hhcmFjdGVycy4iKSB8IGh0bWwgJV08L3A+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdOb3RlSXNWaXNpYmxlRm9yQ3VzdG9tZXIiPlslIFRyYW5zbGF0ZSgiVmlzaWJsZSBmb3IgY3VzdG9tZXIiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9Ik5ld05vdGVJc1Zpc2libGVGb3JDdXN0b21lciIgaWQ9Ik5ld05vdGVJc1Zpc2libGVGb3JDdXN0b21lciIgdHlwZT0iY2hlY2tib3giCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5OZXdOb3RlSXNWaXNpYmxlRm9yQ3VzdG9tZXIgJV1jaGVja2VkWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdOb3RlVGltZVVuaXRzIj5bJSBUcmFuc2xhdGUoIlRpbWUgdW5pdHMiKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKENvbmZpZygiVGlja2V0OjpGcm9udGVuZDo6VGltZVVuaXRzIikpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmV3Tm90ZVRpbWVVbml0cyIgaWQ9Ik5ld05vdGVUaW1lVW5pdHMiIHZhbHVlPSJbJSBEYXRhLk5ld05vdGVUaW1lVW5pdHMgfCBodG1sICVdIiBjbGFzcz0iVzIwcGMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBDb2xsYXBzZWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiVG9nZ2xlIHRoaXMgd2lkZ2V0IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFeGVjdXRlIFRpY2tldCBDb21tYW5kcyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0iVGFibGVMaWtlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3U2VuZE5vTm90aWZpY2F0aW9uIj5bJSBUcmFuc2xhdGUoIlNlbmQgYWdlbnQvY3VzdG9tZXIgbm90aWZpY2F0aW9ucyBvbiBjaGFuZ2VzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuU2VuZE5vTm90aWZpY2F0aW9uT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBJRiBEYXRhLkFsbG93Q3VzdG9tU2NyaXB0RXhlY3V0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld0NNRCI+WyUgVHJhbnNsYXRlKCJDTUQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Ik5ld0NNRCIgaWQ9Ik5ld0NNRCIgdmFsdWU9IlslIERhdGEuTmV3Q01EIHwgaHRtbCAlXSIgc2l6ZT0iNDAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWyUgVHJhbnNsYXRlKCJUaGlzIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZC4gQVJHWzBdIHdpbGwgYmUgdGhlIHRpY2tldCBudW1iZXIuIEFSR1sxXSB0aGUgdGlja2V0IGlkLiIpIHwgaHRtbCAlXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgRU5EICVdCgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJOZXdEZWxldGUiPlslIFRyYW5zbGF0ZSgiRGVsZXRlIHRpY2tldHMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5EZWxldGVPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJFcnJvciI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJXYXJuaW5nOiBBbGwgYWZmZWN0ZWQgdGlja2V0cyB3aWxsIGJlIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UgYW5kIGNhbm5vdCBiZSByZXN0b3JlZCEiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKWyUgSUYgRGF0YS5BbGxvd0N1c3RvbU1vZHVsZUV4ZWN1dGlvbiAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCBDb2xsYXBzZWQiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRBY3Rpb24gVG9nZ2xlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiVG9nZ2xlIHRoaXMgd2lkZ2V0IikgfCBodG1sICVdIj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtcmlnaHQiPjwvaT48aSBjbGFzcz0iZmEgZmEtY2FyZXQtZG93biI+PC9pPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFeGVjdXRlIEN1c3RvbSBNb2R1bGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld01vZHVsZSI+WyUgVHJhbnNsYXRlKCJNb2R1bGUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Ik5ld01vZHVsZSIgaWQ9Ik5ld01vZHVsZSIgdmFsdWU9IlslIERhdGEuTmV3TW9kdWxlIHwgaHRtbCAlXSIgc2l6ZT0iNDUiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1BhcmFtS2V5MSI+WyUgVHJhbnNsYXRlKCJQYXJhbSAlcyBrZXkiLCAiMSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmV3UGFyYW1LZXkxIiBpZD0iTmV3UGFyYW1LZXkxIiB2YWx1ZT0iWyUgRGF0YS5OZXdQYXJhbUtleTEgfCBodG1sICVdIiBjbGFzcz0iVzIwcGMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1BhcmFtVmFsdWUxIj4gWyUgVHJhbnNsYXRlKCJQYXJhbSAlcyB2YWx1ZSIsICIxIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmV3UGFyYW1WYWx1ZTEiIGlkPSJOZXdQYXJhbVZhbHVlMSIgdmFsdWU9IlslIERhdGEuTmV3UGFyYW1WYWx1ZTEgfCBodG1sICVdIiBjbGFzcz0iVzIwcGMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1BhcmFtS2V5MiI+WyUgVHJhbnNsYXRlKCJQYXJhbSAlcyBrZXkiLCAiMiIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmV3UGFyYW1LZXkyIiBpZD0iTmV3UGFyYW1LZXkyIiB2YWx1ZT0iWyUgRGF0YS5OZXdQYXJhbUtleTIgfCBodG1sICVdIiBjbGFzcz0iVzIwcGMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1BhcmFtVmFsdWUyIj4gWyUgVHJhbnNsYXRlKCJQYXJhbSAlcyB2YWx1ZSIsICIyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmV3UGFyYW1WYWx1ZTIiIGlkPSJOZXdQYXJhbVZhbHVlMiIgdmFsdWU9IlslIERhdGEuTmV3UGFyYW1WYWx1ZTIgfCBodG1sICVdIiBjbGFzcz0iVzIwcGMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1BhcmFtS2V5MyI+WyUgVHJhbnNsYXRlKCJQYXJhbSAlcyBrZXkiLCAiMyIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmV3UGFyYW1LZXkzIiBpZD0iTmV3UGFyYW1LZXkzIiB2YWx1ZT0iWyUgRGF0YS5OZXdQYXJhbUtleTMgfCBodG1sICVdIiBjbGFzcz0iVzIwcGMiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9Ik5ld1BhcmFtVmFsdWUzIj5bJSBUcmFuc2xhdGUoIlBhcmFtICVzIHZhbHVlIiwgIjMiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdQYXJhbVZhbHVlMyIgaWQ9Ik5ld1BhcmFtVmFsdWUzIiB2YWx1ZT0iWyUgRGF0YS5OZXdQYXJhbVZhbHVlMyB8IGh0bWwgJV0iIGNsYXNzPSJXMjBwYyIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3UGFyYW1LZXk0Ij5bJSBUcmFuc2xhdGUoIlBhcmFtICVzIGtleSIsICI0IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdQYXJhbUtleTQiIGlkPSJOZXdQYXJhbUtleTQiIHZhbHVlPSJbJSBEYXRhLk5ld1BhcmFtS2V5NCB8IGh0bWwgJV0iIGNsYXNzPSJXMjBwYyIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3UGFyYW1WYWx1ZTQiPiBbJSBUcmFuc2xhdGUoIlBhcmFtICVzIHZhbHVlIiwgIjQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdQYXJhbVZhbHVlNCIgaWQ9Ik5ld1BhcmFtVmFsdWU0IiB2YWx1ZT0iWyUgRGF0YS5OZXdQYXJhbVZhbHVlNCB8IGh0bWwgJV0iIGNsYXNzPSJXMjBwYyIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3UGFyYW1LZXk1Ij5bJSBUcmFuc2xhdGUoIlBhcmFtICVzIGtleSIsICI1IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdQYXJhbUtleTUiIGlkPSJOZXdQYXJhbUtleTUiIHZhbHVlPSJbJSBEYXRhLk5ld1BhcmFtS2V5NSB8IGh0bWwgJV0iIGNsYXNzPSJXMjBwYyIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3UGFyYW1WYWx1ZTUiPiBbJSBUcmFuc2xhdGUoIlBhcmFtICVzIHZhbHVlIiwgIjUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdQYXJhbVZhbHVlNSIgaWQ9Ik5ld1BhcmFtVmFsdWU1IiB2YWx1ZT0iWyUgRGF0YS5OZXdQYXJhbVZhbHVlNSB8IGh0bWwgJV0iIGNsYXNzPSJXMjBwYyIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3UGFyYW1LZXk2Ij5bJSBUcmFuc2xhdGUoIlBhcmFtICVzIGtleSIsICI2IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdQYXJhbUtleTYiIGlkPSJOZXdQYXJhbUtleTYiIHZhbHVlPSJbJSBEYXRhLk5ld1BhcmFtS2V5NiB8IGh0bWwgJV0iIGNsYXNzPSJXMjBwYyIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iTmV3UGFyYW1WYWx1ZTYiPiBbJSBUcmFuc2xhdGUoIlBhcmFtICVzIHZhbHVlIiwgIjYiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJOZXdQYXJhbVZhbHVlNiIgaWQ9Ik5ld1BhcmFtVmFsdWU2IiB2YWx1ZT0iWyUgRGF0YS5OZXdQYXJhbVZhbHVlNiB8IGh0bWwgJV0iIGNsYXNzPSJXMjBwYyIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+ClslIEVORCAlXQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJTYXZlIENoYW5nZXMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AgU2F2ZUJ1dHRvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgSUYgRGF0YS5Qcm9maWxlICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0QW5kQ29udGludWUiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFByaW1hcnkiIGlkPSJTdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIGFuZCBmaW5pc2giKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZm9ybT4KWyUgUmVuZGVyQmxvY2tFbmQoIkVkaXQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVzdWx0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUmVzdWx0cyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiJXMgVGlja2V0cyBhZmZlY3RlZCEgV2hhdCBkbyB5b3Ugd2FudCB0byBkbz8iLCBEYXRhLkFmZmVjdGVkSURzKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRGVsZXRlV2FybmluZyIpICVdCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRXJyb3IiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiV2FybmluZzogWW91IHVzZWQgdGhlIERFTEVURSBvcHRpb24uIEFsbCBkZWxldGVkIHRpY2tldHMgd2lsbCBiZSBsb3N0ISIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiRGVsZXRlV2FybmluZyIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSdW5MaW1pdCIpICVdCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRXJyb3IiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiV2FybmluZzogVGhlcmUgYXJlICVzIHRpY2tldHMgYWZmZWN0ZWQgYnV0IG9ubHkgJXMgbWF5IGJlIG1vZGlmaWVkIGR1cmluZyBvbmUgam9iIGV4ZWN1dGlvbiEiLCBEYXRhLkNvdW50ZXIsIERhdGEuUnVuTGltaXQpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiUnVuTGltaXQiKSAlXQoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJDYWxsRm9yQWN0aW9uIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249VXBkYXRlO1Byb2ZpbGU9WyUgRGF0YS5OYW1lIHwgdXJpICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKCJFZGl0IEpvYiIpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkNhbGxGb3JBY3Rpb24iIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1SdW5Ob3c7UHJvZmlsZT1bJSBEYXRhLk5hbWUgfCB1cmkgJV07WyUgRW52KCJDaGFsbGVuZ2VUb2tlblBhcmFtIikgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKCJSdW4gSm9iIikgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUmVzdWx0QmxvY2siKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFmZmVjdGVkIFRpY2tldHMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgQ29uZmlnKCJUaWNrZXQ6Okhvb2siKSAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJBZ2UiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiRnJvbSIpIHwgaHRtbCAlXSAvIFslIFRyYW5zbGF0ZSgiU3ViamVjdCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJTdGF0ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJRdWV1ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJPd25lciIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDdXN0b21lciBJRCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlRpY2tldCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdO0FjdGlvbj1BZ2VudFRpY2tldFpvb207VGlja2V0SUQ9WyUgRGF0YS5UaWNrZXRJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVGlja2V0TnVtYmVyIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5BZ2UgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkZyb20gfCB0cnVuY2F0ZSgzMCkgfCBodG1sICVdWyUgRGF0YS5TdWJqZWN0IHwgdHJ1bmNhdGUoMzApIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuU3RhdGUpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5RdWV1ZSB8IHRydW5jYXRlKDMwKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuT3duZXIgfCB0cnVuY2F0ZSgzMCkgfCBodG1sICVdIChbJSBEYXRhLlVzZXJGdWxsbmFtZSB8IGh0bWwgJV0pPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFnZW50VGlja2V0Q3VzdG9tZXI7VGlja2V0SUQ9WyUgRGF0YS5UaWNrZXRJRCB8IHVyaSAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ3VzdG9tZXJJRCB8IHRydW5jYXRlKDE1KSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVGlja2V0IikgJV0KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJSZXN1bHRCbG9jayIpICVdClslIFJlbmRlckJsb2NrRW5kKCJSZXN1bHQiKSAlXQogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2Pgo=</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminGroup.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pbkdyb3VwLnR0CiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3IikgJV0KPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCI+CiAgICA8aDEgY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiR3JvdXAgTWFuYWdlbWVudCIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdHcm91cCBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5BY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdBZGQnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgiQWRkIEdyb3VwIiksfSkgJV0KICAgICAgICBbJSBDQVNFICdDaGFuZ2UnICVdCiAgICAgICAgICAgIFslIFVTRSBFZGl0VGl0bGUgPSBTdHJpbmcoVHJhbnNsYXRlKCJFZGl0IEdyb3VwIikpICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IEVkaXRUaXRsZS5hcHBlbmQoICc6ICcsIERhdGEuTmFtZSApIH0pICVdCiAgICBbJSBFTkQgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkluY2x1ZGVJbnZhbGlkIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRmlsdGVyIGJ5IHZhbGlkIHN0YXRlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iSW5jbHVkZUludmFsaWQiIG5hbWU9IkluY2x1ZGVJbnZhbGlkIiB2YWx1ZT0iMSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiSW5jbHVkZSBpbnZhbGlkIGdyb3VwcyIpIHwgaHRtbCAlXSIgWyUgRGF0YS5JbmNsdWRlSW52YWxpZENoZWNrZWQgfCBodG1sICVdLz4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkluY2x1ZGVJbnZhbGlkIj5bJSBUcmFuc2xhdGUoIkluY2x1ZGUgaW52YWxpZCBncm91cHMiKSB8IGh0bWwgJV08L2xhYmVsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkluY2x1ZGVJbnZhbGlkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uTGlzdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ29udGVudCc+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGQiKSAlXQogICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkdyb3VwO1N1YmFjdGlvbj1BZGQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgR3JvdXAiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25MaXN0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRmlsdGVyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPjxsYWJlbCBmb3I9IkZpbHRlckdyb3VwcyI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIEdyb3VwcyIpIHwgaHRtbCAlXTwvbGFiZWw+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJGaWx0ZXJHcm91cHMiIGNsYXNzPSJGaWx0ZXJCb3giIHBsYWNlaG9sZGVyPSJbJSBUcmFuc2xhdGUoIkp1c3Qgc3RhcnQgdHlwaW5nIHRvIGZpbHRlci4uLiIpIHwgaHRtbCAlXSIgbmFtZT0iRmlsdGVyR3JvdXBzIiB2YWx1ZT0iIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIGdyb3VwcyIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRmlsdGVyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiSGludCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBhZG1pbiBncm91cCBpcyB0byBnZXQgaW4gdGhlIGFkbWluIGFyZWEgYW5kIHRoZSBzdGF0cyBncm91cCB0byBnZXQgc3RhdHMgYXJlYS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkNyZWF0ZSBuZXcgZ3JvdXBzIHRvIGhhbmRsZSBhY2Nlc3MgcGVybWlzc2lvbnMgZm9yIGRpZmZlcmVudCBncm91cHMgb2YgYWdlbnQgKGUuIGcuIHB1cmNoYXNpbmcgZGVwYXJ0bWVudCwgc3VwcG9ydCBkZXBhcnRtZW50LCBzYWxlcyBkZXBhcnRtZW50LCAuLi4pLiAiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkl0J3MgdXNlZnVsIGZvciBBU1Agc29sdXRpb25zLiAiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiMgUm90aGVyIE9TUyAvIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnRFeHBvcnRXaWRnZXQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9J1dpZGdldFNpbXBsZScgaWQ9J0dyb3VwSW1wb3J0RXhwb3J0V2lkZ2V0Jz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0nSGVhZGVyJz4KICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0iSW52aXNpYmxlVGV4dCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJbXBvcnQgLyBFeHBvcnQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvaDE+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgnSW1wb3J0IC8gRXhwb3J0JyksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgJV0KCiAgICAgICAgICAgIFslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCAlXQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ29udGVudCc+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0nRmllbGRFeHBsYW5hdGlvbic+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdIZXJlIHlvdSBjYW4gdXBsb2FkIGEgY29uZmlndXJhdGlvbiBmaWxlIHRvIGltcG9ydCBncm91cHMgdG8geW91ciBzeXN0ZW0uIFRoZSBmaWxlIG5lZWRzIHRvIGJlIGluIC55bWwgZm9ybWF0IGFzIGV4cG9ydGVkIGJ5IHRoZSBncm91cCBtYW5hZ2VtZW50IG1vZHVsZS4nKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0nQWN0aW9uTGlzdCBTcGFjaW5nVG9wJz4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0nWyUgRW52KCJDR0lIYW5kbGUiKSAlXScgbWV0aG9kPSdwb3N0JyBlbmN0eXBlPSdtdWx0aXBhcnQvZm9ybS1kYXRhJyBjbGFzcz0nVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdDaGFsbGVuZ2VUb2tlbicgdmFsdWU9WyUgRW52KCJVc2VyQ2hhbGxlbmdlVG9rZW4iKSB8IEpTT04gJV0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdBY3Rpb24nIHZhbHVlPSdBZG1pbkdyb3VwSW1wb3J0RXhwb3J0Jy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdTdWJhY3Rpb24nIHZhbHVlPSdJbXBvcnQnLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSdGaWxlVXBsb2FkJyBpZD0nRmlsZVVwbG9hZCcgdHlwZT0nZmlsZScgc2l6ZT0nMTgnIGNsYXNzPSdGaXhlZCBXMTAwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5GaWxlVXBsb2FkSW52YWxpZCB8IGh0bWwgJV0nLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9J0ZpbGVVcGxvYWRFcnJvcicgY2xhc3M9J1Rvb2x0aXBFcnJvck1lc3NhZ2UnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSdGaWxlVXBsb2FkU2VydmVyRXJyb3InIGNsYXNzPSdUb29sdGlwRXJyb3JNZXNzYWdlJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBUcmFuc2xhdGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9J1NwYWNpbmdUb3AnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdjaGVja2JveCcgaWQ9J092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXNFeGFtcGxlJyBuYW1lPSdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzJyB2YWx1ZT0nMScvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9J092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXNFeGFtcGxlJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdPdmVyd3JpdGUgZXhpc3RpbmcgZW50aXRpZXMnKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9J0NhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AnIGlkPSdHcm91cEltcG9ydCcgdHlwZT0nc3VibWl0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0nZmEgZmEtdXBsb2FkJz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnR3JvdXBzIEltcG9ydCcpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9J1slIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkdyb3VwSW1wb3J0RXhwb3J0O1N1YmFjdGlvbj1FeHBvcnQnIGlkPSdHcm91cEV4cG9ydCcgY2xhc3M9J0NhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSdmYSBmYS1kb3dubG9hZCc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnR3JvdXBzIEV4cG9ydCcpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0RXhwb3J0V2lkZ2V0IikgJV0KIyBFTyBJbXBvcnRFeHBvcnRTdGFuZGFyZE9iamVjdHMKICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0IikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkxpc3QiKSB8IGh0bWwgJV0gKFslIERhdGEuQWxsSXRlbXNDb3VudCB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJ0b3RhbCIpIHwgaHRtbCAlXSk8L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJHcm91cHMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNoYW5nZWQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ3JlYXRlZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuVmFsaWRJRCAhPSAxICVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249Q2hhbmdlO0lEPVslIERhdGEuSUQgfCB1cmkgJV0iPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB0aXRsZT0iWyUgRGF0YS5Db21tZW50IHwgaHRtbCAlXSI+WyUgRGF0YS5Db21tZW50IHwgdHJ1bmNhdGUoODApIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuVmFsaWQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5DaGFuZ2VUaW1lIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkNyZWF0ZVRpbWUgfCBMb2NhbGl6ZSgiVGltZVNob3J0IikgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI1Ij5bJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZSIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdBZGQnICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZGQgR3JvdXAiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IEdyb3VwIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGlkPSJHcm91cFVwZGF0ZSIgYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9Ikdyb3VwVXBkYXRlIiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgaHRtbCAlXUFjdGlvbiIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IklEIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJOYW1lT2xkIiBpZD0iR3JvdXBPbGROYW1lIiB2YWx1ZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdDaGFuZ2UnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRpbnVlQWZ0ZXJTYXZlIiBpZD0iQ29udGludWVBZnRlclNhdmUiIHZhbHVlPSIiLz4KICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJHcm91cE5hbWUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmFtZSIgaWQ9Ikdyb3VwTmFtZSIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkdyb3VwTmFtZUludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iR3JvdXBOYW1lRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJHcm91cE5hbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJWYWxpZElEIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFsaWRPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNvbW1lbnQiPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iQ29tbWVudCIgaWQ9IkNvbW1lbnQiIHZhbHVlPSJbJSBEYXRhLkNvbW1lbnQgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQ2hhbmdlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdEFuZENvbnRpbnVlIiB0eXBlPSJidXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSBhbmQgZmluaXNoIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlIikgJV0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3IikgJV0K</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminQueue.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA1MWY5ZWQ4Y2VjMzM5YmNjOGFlMzkxYjIyZTRiZDYxYWJhYTIzYTlkIC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pblF1ZXVlLnR0CiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3IikgJV0KPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCI+CiAgICA8aDEgY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiUXVldWUgTWFuYWdlbWVudCIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdRdWV1ZSBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5BY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdBZGQnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgnQWRkIFF1ZXVlJyksfSkgJV0KICAgICAgICBbJSBDQVNFICdDaGFuZ2UnICVdCiAgICAgICAgICAgIFslIFVTRSBFZGl0VGl0bGUgPSBTdHJpbmcoVHJhbnNsYXRlKCJFZGl0IFF1ZXVlIikpICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IEVkaXRUaXRsZS5hcHBlbmQoICc6ICcsIERhdGEuTmFtZSApIH0pICVdCiAgICBbJSBFTkQgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5jbHVkZUludmFsaWQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgYnkgdmFsaWQgc3RhdGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJJbmNsdWRlSW52YWxpZCIgbmFtZT0iSW5jbHVkZUludmFsaWQiIHZhbHVlPSIxIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJJbmNsdWRlIGludmFsaWQgcXVldWVzIikgfCBodG1sICVdIiBbJSBEYXRhLkluY2x1ZGVJbnZhbGlkQ2hlY2tlZCB8IGh0bWwgJV0vPgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iSW5jbHVkZUludmFsaWQiPlslIFRyYW5zbGF0ZSgiSW5jbHVkZSBpbnZhbGlkIHF1ZXVlcyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jbHVkZUludmFsaWQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0IikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXciKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1BZGQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciBDcmVhdGUiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIFF1ZXVlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkIikgJV0KCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3QiKSAlXQoKICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiRmlsdGVyIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPjxsYWJlbCBmb3I9IkZpbHRlclF1ZXVlcyI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIFF1ZXVlcyIpIHwgaHRtbCAlXTwvbGFiZWw+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJGaWx0ZXJRdWV1ZXMiIGNsYXNzPSJGaWx0ZXJCb3giIHBsYWNlaG9sZGVyPSJbJSBUcmFuc2xhdGUoIkp1c3Qgc3RhcnQgdHlwaW5nIHRvIGZpbHRlci4uLiIpIHwgaHRtbCAlXSIgbmFtZT0iRmlsdGVyUXVldWVzIiB2YWx1ZT0iIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIHF1ZXVlcyIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRmlsdGVyIikgJV0KIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzClslIFJlbmRlckJsb2NrU3RhcnQoIkltcG9ydEV4cG9ydFdpZGdldCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0nV2lkZ2V0U2ltcGxlJyBpZD0nUXVldWVJbXBvcnRFeHBvcnRXaWRnZXQnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSdIZWFkZXInPgogICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkltcG9ydCAvIEV4cG9ydCIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9oMT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICBbJSBCcmVhZGNydW1iUGF0aCA9IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdJbXBvcnQgLyBFeHBvcnQnKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAlXQoKICAgICAgICAgICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgICAgICAgICA8ZGl2IGNsYXNzPSdDb250ZW50Jz4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdGaWVsZEV4cGxhbmF0aW9uJz4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ0hlcmUgeW91IGNhbiB1cGxvYWQgYSBjb25maWd1cmF0aW9uIGZpbGUgdG8gaW1wb3J0IHF1ZXVlcyB0byB5b3VyIHN5c3RlbS4gVGhlIGZpbGUgbmVlZHMgdG8gYmUgaW4gLnltbCBmb3JtYXQgYXMgZXhwb3J0ZWQgYnkgdGhlIHF1ZXVlIG1hbmFnZW1lbnQgbW9kdWxlLicpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSdBY3Rpb25MaXN0IFNwYWNpbmdUb3AnPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSdbJSBFbnYoIkNHSUhhbmRsZSIpICVdJyBtZXRob2Q9J3Bvc3QnIGVuY3R5cGU9J211bHRpcGFydC9mb3JtLWRhdGEnIGNsYXNzPSdWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J0NoYWxsZW5nZVRva2VuJyB2YWx1ZT1bJSBFbnYoIlVzZXJDaGFsbGVuZ2VUb2tlbiIpIHwgSlNPTiAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J0FjdGlvbicgdmFsdWU9J0FkbWluUXVldWVJbXBvcnRFeHBvcnQnLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J1N1YmFjdGlvbicgdmFsdWU9J0ltcG9ydCcvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9J0ZpbGVVcGxvYWQnIGlkPSdGaWxlVXBsb2FkJyB0eXBlPSdmaWxlJyBzaXplPScxOCcgY2xhc3M9J0ZpeGVkIFcxMDBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkZpbGVVcGxvYWRJbnZhbGlkIHwgaHRtbCAlXScvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0nRmlsZVVwbG9hZEVycm9yJyBjbGFzcz0nVG9vbHRpcEVycm9yTWVzc2FnZSc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9J0ZpbGVVcGxvYWRTZXJ2ZXJFcnJvcicgY2xhc3M9J1Rvb2x0aXBFcnJvck1lc3NhZ2UnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIFRyYW5zbGF0ZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0nU3BhY2luZ1RvcCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2NoZWNrYm94JyBpZD0nT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc0V4YW1wbGUnIG5hbWU9J092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnIHZhbHVlPScxJy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0nT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc0V4YW1wbGUnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ092ZXJ3cml0ZSBleGlzdGluZyBlbnRpdGllcycpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0nQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCcgaWQ9J1F1ZXVlSW1wb3J0JyB0eXBlPSdzdWJtaXQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSdmYSBmYS11cGxvYWQnPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdRdWV1ZXMgSW1wb3J0JykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0nWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluUXVldWVJbXBvcnRFeHBvcnQ7U3ViYWN0aW9uPUV4cG9ydCcgaWQ9J1F1ZXVlRXhwb3J0JyBjbGFzcz0nQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9J2ZhIGZhLWRvd25sb2FkJz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdRdWV1ZXMgRXhwb3J0JykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbXBvcnRFeHBvcnRXaWRnZXQiKSAlXQojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkxpc3QiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dGFibGUgY2xhc3M9IkRhdGFUYWJsZSIgaWQ9IlF1ZXVlcyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkdyb3VwIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ2hhbmdlZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDcmVhdGVkIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9EYXRhRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vRGF0YUZvdW5kTXNnIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgWyUgSUYgRGF0YS5WYWxpZElEICE9IDEgJV1jbGFzcz0iSW52YWxpZCJbJSBFTkQgJV0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1DaGFuZ2U7UXVldWVJRD1bJSBEYXRhLlF1ZXVlSUQgfCB1cmkgJV0iPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuR3JvdXBOYW1lIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgdGl0bGU9IlslIERhdGEuQ29tbWVudCB8IGh0bWwgJV0iPlslIERhdGEuQ29tbWVudCB8IHRydW5jYXRlKDI2KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlZhbGlkKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQ2hhbmdlVGltZSB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5DcmVhdGVUaW1lIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iNiI+WyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdVcGRhdGUiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQWRkJyAlXQogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBRdWV1ZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRWRpdCBRdWV1ZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGZvcm0gaWQ9IkVudGl0eVVwZGF0ZSIgYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIGNsYXNzPSJWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzIj4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJBY3Rpb24iIHZhbHVlPSJbJSBFbnYoIkFjdGlvbiIpICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3ViYWN0aW9uIiB2YWx1ZT0iWyUgRGF0YS5BY3Rpb24gfCB1cmkgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJRdWV1ZUlEIiB2YWx1ZT0iWyUgRGF0YS5RdWV1ZUlEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdDaGFuZ2UnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRpbnVlQWZ0ZXJTYXZlIiBpZD0iQ29udGludWVBZnRlclNhdmUiIHZhbHVlPSIiLz4KICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9Ik5hbWUiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iTmFtZSIgaWQ9Ik5hbWUiIHZhbHVlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5OYW1lSW52YWxpZCB8IGh0bWwgJV0iIG1heGxlbmd0aD0iNTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Ik5hbWVTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOYW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIk5hbWVTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4aXN0TmFtZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkEgcXVldWUgd2l0aCB0aGlzIG5hbWUgYWxyZWFkeSBleGlzdHMhIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJFeGlzdE5hbWVTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkluU2V0dGluZ05hbWVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhpcyBxdWV1ZSBpcyBwcmVzZW50IGluIGEgU3lzQ29uZmlnIHNldHRpbmcsIGNvbmZpcm1hdGlvbiBmb3IgdXBkYXRpbmcgc2V0dGluZ3MgdG8gcG9pbnQgdG8gdGhlIG5ldyBxdWV1ZSBpcyBuZWVkZWQhIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJJblNldHRpbmdOYW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iUGFyZW50UXVldWVJRCI+WyUgVHJhbnNsYXRlKCJTdWItcXVldWUgb2YiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5RdWV1ZU9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iR3JvdXBJRCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJHcm91cCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkdyb3VwT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJHcm91cElERXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJHcm91cElEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJVbmxvY2tUaW1lb3V0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVW5sb2NrIHRpbWVvdXQiKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKCJtaW51dGVzIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iVW5sb2NrVGltZW91dCIgaWQ9IlVubG9ja1RpbWVvdXQiIHZhbHVlPSJbJSBEYXRhLlVubG9ja1RpbWVvdXQgfCBodG1sICVdIiBjbGFzcz0iVzIwcGMiIG1heGxlbmd0aD0iMTAiLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIjAgPSBubyB1bmxvY2siKSB8IGh0bWwgJV0gLSAyNCBbJSBUcmFuc2xhdGUoImhvdXJzIikgfCBodG1sICVdID0gMTQ0MCBbJSBUcmFuc2xhdGUoIm1pbnV0ZXMiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoIk9ubHkgYnVzaW5lc3MgaG91cnMgYXJlIGNvdW50ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJZiBhbiBhZ2VudCBsb2NrcyBhIHRpY2tldCBhbmQgZG9lcyBub3QgY2xvc2UgaXQgYmVmb3JlIHRoZSB1bmxvY2sgdGltZW91dCBoYXMgcGFzc2VkLCB0aGUgdGlja2V0IHdpbGwgdW5sb2NrIGFuZCB3aWxsIGJlY29tZSBhdmFpbGFibGUgZm9yIG90aGVyIGFnZW50cy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkZpcnN0UmVzcG9uc2VUaW1lIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRXNjYWxhdGlvbiAtIGZpcnN0IHJlc3BvbnNlIHRpbWUiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgibWludXRlcyIpIHwgaHRtbCAlXSk6CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJGaXJzdFJlc3BvbnNlVGltZSIgaWQ9IkZpcnN0UmVzcG9uc2VUaW1lIiB2YWx1ZT0iWyUgRGF0YS5GaXJzdFJlc3BvbnNlVGltZSB8IGh0bWwgJV0iIGNsYXNzPSJXMjBwYyIgbWF4bGVuZ3RoPSIxMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCA8bGFiZWw+WyUgVHJhbnNsYXRlKCJOb3RpZnkgYnkiKSB8IGh0bWwgJV0gIFslIERhdGEuRmlyc3RSZXNwb25zZU5vdGlmeU9wdGlvblN0cmcgJV0gPC9sYWJlbD4gKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiMCA9IG5vIGVzY2FsYXRpb24iKSB8IGh0bWwgJV0gLSAyNCBbJSBUcmFuc2xhdGUoImhvdXJzIikgfCBodG1sICVdID0gMTQ0MCBbJSBUcmFuc2xhdGUoIm1pbnV0ZXMiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoIk9ubHkgYnVzaW5lc3MgaG91cnMgYXJlIGNvdW50ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJZiB0aGVyZSBpcyBub3QgYWRkZWQgYSBjdXN0b21lciBjb250YWN0LCBlaXRoZXIgZW1haWwtZXh0ZXJuYWwgb3IgcGhvbmUsIHRvIGEgbmV3IHRpY2tldCBiZWZvcmUgdGhlIHRpbWUgZGVmaW5lZCBoZXJlIGV4cGlyZXMsIHRoZSB0aWNrZXQgaXMgZXNjYWxhdGVkLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iVXBkYXRlVGltZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkVzY2FsYXRpb24gLSB1cGRhdGUgdGltZSIpIHwgaHRtbCAlXSAoWyUgVHJhbnNsYXRlKCJtaW51dGVzIikgfCBodG1sICVdKToKICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlVwZGF0ZVRpbWUiIGlkPSJVcGRhdGVUaW1lIiB2YWx1ZT0iWyUgRGF0YS5VcGRhdGVUaW1lIHwgaHRtbCAlXSIgY2xhc3M9IlcyMHBjIiBtYXhsZW5ndGg9IjEwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIDxsYWJlbD5bJSBUcmFuc2xhdGUoIk5vdGlmeSBieSIpIHwgaHRtbCAlXSAgWyUgRGF0YS5VcGRhdGVOb3RpZnlPcHRpb25TdHJnICVdPC9sYWJlbD4gKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiMCA9IG5vIGVzY2FsYXRpb24iKSB8IGh0bWwgJV0gLSAyNCBbJSBUcmFuc2xhdGUoImhvdXJzIikgfCBodG1sICVdID0gMTQ0MCBbJSBUcmFuc2xhdGUoIm1pbnV0ZXMiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoIk9ubHkgYnVzaW5lc3MgaG91cnMgYXJlIGNvdW50ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJZiB0aGVyZSBpcyBhbiBhcnRpY2xlIGFkZGVkLCBzdWNoIGFzIGEgZm9sbG93LXVwIHZpYSBlbWFpbCBvciB0aGUgY3VzdG9tZXIgcG9ydGFsLCB0aGUgZXNjYWxhdGlvbiB1cGRhdGUgdGltZSBpcyByZXNldC4gSWYgdGhlcmUgaXMgbm8gY3VzdG9tZXIgY29udGFjdCwgZWl0aGVyIGVtYWlsLWV4dGVybmFsIG9yIHBob25lLCBhZGRlZCB0byBhIHRpY2tldCBiZWZvcmUgdGhlIHRpbWUgZGVmaW5lZCBoZXJlIGV4cGlyZXMsIHRoZSB0aWNrZXQgaXMgZXNjYWxhdGVkLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iU29sdXRpb25UaW1lIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRXNjYWxhdGlvbiAtIHNvbHV0aW9uIHRpbWUiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgibWludXRlcyIpIHwgaHRtbCAlXSk6CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJTb2x1dGlvblRpbWUiIGlkPSJTb2x1dGlvblRpbWUiIHZhbHVlPSJbJSBEYXRhLlNvbHV0aW9uVGltZSB8IGh0bWwgJV0iIGNsYXNzPSJXMjBwYyIgbWF4bGVuZ3RoPSIxMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCA8bGFiZWw+WyUgVHJhbnNsYXRlKCJOb3RpZnkgYnkiKSB8IGh0bWwgJV0gIFslIERhdGEuU29sdXRpb25Ob3RpZnlPcHRpb25TdHJnICVdIDwvbGFiZWw+KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiMCA9IG5vIGVzY2FsYXRpb24iKSB8IGh0bWwgJV0gLSAyNCBbJSBUcmFuc2xhdGUoImhvdXJzIikgfCBodG1sICVdID0gMTQ0MCBbJSBUcmFuc2xhdGUoIm1pbnV0ZXMiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoIk9ubHkgYnVzaW5lc3MgaG91cnMgYXJlIGNvdW50ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJZiB0aGUgdGlja2V0IGlzIG5vdCBzZXQgdG8gY2xvc2VkIGJlZm9yZSB0aGUgdGltZSBkZWZpbmVkIGhlcmUgZXhwaXJlcywgdGhlIHRpY2tldCBpcyBlc2NhbGF0ZWQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJGb2xsb3dVcElEIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIkZvbGxvdyB1cCBPcHRpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5Gb2xsb3dVcE9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU3BlY2lmaWVzIGlmIGZvbGxvdyB1cCB0byBjbG9zZWQgdGlja2V0cyB3b3VsZCByZS1vcGVuIHRoZSB0aWNrZXQsIGJlIHJlamVjdGVkIG9yIGxlYWQgdG8gYSBuZXcgdGlja2V0LiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRm9sbG93VXBJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRm9sbG93VXBJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iRm9sbG93VXBMb2NrIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlRpY2tldCBsb2NrIGFmdGVyIGEgZm9sbG93IHVwIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuRm9sbG93VXBMb2NrWWVzTm9PcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIklmIGEgdGlja2V0IGlzIGNsb3NlZCBhbmQgdGhlIGN1c3RvbWVyIHNlbmRzIGEgZm9sbG93IHVwIHRoZSB0aWNrZXQgd2lsbCBiZSBsb2NrZWQgdG8gdGhlIG9sZCBvd25lci4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkZvbGxvd1VwTG9ja0Vycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRm9sbG93VXBMb2NrU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJTeXN0ZW1BZGRyZXNzSUQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiU3lzdGVtIGFkZHJlc3MiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TeXN0ZW1BZGRyZXNzT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJXaWxsIGJlIHRoZSBzZW5kZXIgYWRkcmVzcyBvZiB0aGlzIHF1ZXVlIGZvciBlbWFpbCBhbnN3ZXJzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSXMgZGVmaW5lZCBpbiBBZG1pbiA+IEVtYWlsIEFkZHJlc3Nlcy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlN5c3RlbUFkZHJlc3NJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU3lzdGVtQWRkcmVzc0lEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPcHRpb25hbEZpZWxkIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iRGVmYXVsdFNpZ25LZXkiPlslIFRyYW5zbGF0ZSgiRGVmYXVsdCBzaWduIGtleSIpIHwgaHRtbCAlXVslIElGIERhdGEuRW1haWwgJV08ZW0+IChbJSBEYXRhLkVtYWlsIHwgaHRtbCAlXSk8L2VtPlslIEVORCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkRlZmF1bHRTaWduS2V5T3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiAhRGF0YS5EZWZhdWx0U2lnbktleUxpc3RBdmFpbGFibGUgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVG8gdXNlIGEgc2lnbiBrZXksIFBHUCBrZXlzIG9yIFMvTUlNRSBjZXJ0aWZpY2F0ZXMgbmVlZCB0byBiZSBhZGRlZCB3aXRoIGlkZW50aWZpZXJzIGZvciBzZWxlY3RlZCBxdWV1ZSBzeXN0ZW0gYWRkcmVzcy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk9wdGlvbmFsRmllbGQiKSAlXQoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iU2FsdXRhdGlvbklEIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlNhbHV0YXRpb24iKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TYWx1dGF0aW9uT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGUgc2FsdXRhdGlvbiBmb3IgZW1haWwgYW5zd2Vycy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlNhbHV0YXRpb25JREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU2FsdXRhdGlvbklEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJTaWduYXR1cmVJRCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJTaWduYXR1cmUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5TaWduYXR1cmVPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBzaWduYXR1cmUgZm9yIGVtYWlsIGFuc3dlcnMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJTaWduYXR1cmVJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iU2lnbmF0dXJlSURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNhbGVuZGFyIj5bJSBUcmFuc2xhdGUoIkNhbGVuZGFyIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQ2FsZW5kYXJPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoZSBidXNpbmVzcyBjYWxlbmRhciBmb3IgdW5sb2NrIHRpbWUgYW5kIHRoZSBlc2NhbGF0aW9uIHRpbWVzLiBObyBzZWxlY3Rpb24gbWVhbnMgdGhhdCB0aGUgZGVmYXVsdCBjYWxlbmRhciBpcyB1c2VkLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSXMgZGVmaW5lZCBpbiBBZG1pbiA+IFN5c3RlbSBDb25maWd1cmF0aW9uID4gQ29yZSA+IFRpbWUgKGRlZmF1bHQgY2FsZW5kYXIpIG9yIGluIGNhbGVuZGFycyAxIHRocm91Z2ggOS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlZhbGlkSUQiPjxzcGFuIGNsYXNzPSJNYXJrZXIiPio8L3NwYW4+IFslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5WYWxpZE9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsaWRJREVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iVmFsaWRJRFNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJlcXVpcmVkVmFsaWRPcHRpb25TZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIlJlcXVpcmVkVmFsaWRPcHRpb25TZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkluU2V0dGluZ1ZhbGlkT3B0aW9uU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIklzIG5vdCBwb3NzaWJsZSB0byBpbnZhbGlkYXRlIHRoaXMgZW50cnksIGFsbCBjb25maWcgc2V0dGluZ3MgaGF2ZSB0byBiZSBjaGFuZ2VkIGJlZm9yZWhhbmQuIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJJblNldHRpbmdWYWxpZE9wdGlvblNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkNvbW1lbnQiPlslIFRyYW5zbGF0ZSgiQ29tbWVudCIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0iQ29tbWVudCIgaWQ9IkNvbW1lbnQiIHZhbHVlPSJbJSBEYXRhLkNvbW1lbnQgfCBodG1sICVdIiBjbGFzcz0iVzUwcGMiIG1heGxlbmd0aD0iMjUwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJdGVtIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5wdXRLZXkiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLktleSkgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBpZD0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgdmFsdWU9IlslIERhdGEuU2VsZWN0ZWRJRCB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIzMCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5wdXRLZXkiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbnB1dCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iPlslIFRyYW5zbGF0ZShEYXRhLkxhYmVsKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGlkPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5TZWxlY3RlZElEIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjMwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuRGVzYykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbnB1dCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlRleHRBcmVhIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSI+WyUgVHJhbnNsYXRlKERhdGEuTGFiZWwpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgbmFtZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaWQ9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIHJvd3M9IlslIERhdGEuUm93cyB8IGh0bWwgJV0iIGNvbHM9IlslIERhdGEuQ29scyB8IGh0bWwgJV0iPlslIERhdGEuU2VsZWN0ZWRJRCB8IGh0bWwgJV08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZShEYXRhLkRlc2MpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVGV4dEFyZWEiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPcHRpb24iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLktleSkgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuRGVzYykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPcHRpb24iKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJVcGxvYWQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLktleSkgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBpZD0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjMwIi8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIiPlslIERhdGEuRmlsZW5hbWUgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVXBsb2FkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiUGFzc3dvcmQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIj5bJSBUcmFuc2xhdGUoRGF0YS5MYWJlbCkgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLktleSkgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgaWQ9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJXNTBwYyIgbWF4bGVuZ3RoPSIzMCIgdmFsdWU9IiIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIj5bJSBEYXRhLkZpbGVuYW1lIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIlBhc3N3b3JkIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkl0ZW0iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdDaGFuZ2UnICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0QW5kQ29udGludWUiIHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFByaW1hcnkiIGlkPSJTdWJtaXQiIHR5cGU9InN1Ym1pdCIgdmFsdWU9IlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXSI+PHNwYW4+WyUgVHJhbnNsYXRlKCJTYXZlIGFuZCBmaW5pc2giKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIEVORCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUXVldWVJblN5c0NvbmZpZyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iT2xkTmFtZSIgaWQ9Ik9sZE5hbWUiIHZhbHVlPSJbJSBEYXRhLk9sZE5hbWUgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iVXBkYXRlRW50aXR5IiBpZD0iVXBkYXRlRW50aXR5IiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iRW50aXR5SW5TZXR0aW5nIiBjbGFzcz0iSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iVGV4dERpYWxvZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDE+WyUgVHJhbnNsYXRlKCJUaGlzIHF1ZXVlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBjb25maWcgc2V0dGluZ3M6IikgfCBodG1sICVdPC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBSZW5kZXJCbG9ja1N0YXJ0KCJRdWV1ZUluU3lzQ29uZmlnUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkluU3lzQ29uZmlnU2V0dGluZyI+WyUgRGF0YS5TZXR0aW5nTmFtZSAlXTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgUmVuZGVyQmxvY2tFbmQoIlF1ZXVlSW5TeXNDb25maWdSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiUXVldWVJblN5c0NvbmZpZyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIlF1ZXVlSW5TeXNDb25maWdEaXJ0eSIpICVdCiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iU3lzQ29uZmlnRGlydHkiIGlkPSJTeXNDb25maWdEaXJ0eSIgdmFsdWU9IjEiLz4KWyUgUmVuZGVyQmxvY2tFbmQoIlF1ZXVlSW5TeXNDb25maWdEaXJ0eSIpICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlIikgJV0KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3IikgJV0K</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminQueueTemplates.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSBmZjllMjk3YmFmMjg3ZTE2MDcxZDNhYzZhZDdmNmMxM2YxMWFjN2ZhIC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pblF1ZXVlVGVtcGxhdGVzLnR0CiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3IikgJV0KPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCI+CiAgICA8aDEgY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiTWFuYWdlIFRlbXBsYXRlLVF1ZXVlIFJlbGF0aW9ucyIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdNYW5hZ2UgVGVtcGxhdGUtUXVldWUgUmVsYXRpb25zJyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBJRiBEYXRhLkJyZWFkY3J1bWJUaXRsZSAlXQogICAgICAgICAgICBbJSBVU0UgRWRpdFRpdGxlID0gU3RyaW5nKERhdGEuQnJlYWRjcnVtYlRpdGxlKSAlXQogICAgICAgICAgICBbJSBCcmVhZGNydW1iUGF0aC5wdXNoKHsgTmFtZSA9PiBFZGl0VGl0bGUuYXBwZW5kKCAiICciLCBEYXRhLk5hbWUsICInIiApIH0pICVdCiAgICBbJSBFTkQgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkxpc3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvbGFiZWw+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25MaXN0IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkZpbHRlciIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj48bGFiZWwgZm9yPSJGaWx0ZXIiPlslIFRyYW5zbGF0ZSgiRmlsdGVyIikgfCBodG1sICVdPC9sYWJlbD48L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkZpbHRlciIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIikgfCBodG1sICVdIiBuYW1lPSJGaWx0ZXIiIHZhbHVlPSIiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkZpbHRlciIpIHwgaHRtbCAlXSIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJGaWx0ZXIiKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiRmlsdGVyVGVtcGxhdGUiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsIGZvcj0iRmlsdGVyVGVtcGxhdGVzIj5bJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgVGVtcGxhdGVzIikgfCBodG1sICVdPC9sYWJlbD48L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkZpbHRlclRlbXBsYXRlcyIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIikgfCBodG1sICVdIiBuYW1lPSJGaWx0ZXJUZW1wbGF0ZXMiIHZhbHVlPSIiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgdGVtcGxhdGVzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkZpbHRlclRlbXBsYXRlIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRmlsdGVyUXVldWUiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsIGZvcj0iRmlsdGVyUXVldWVzIj5bJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgUXVldWVzIikgfCBodG1sICVdPC9sYWJlbD48L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkZpbHRlclF1ZXVlcyIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIikgfCBodG1sICVdIiBuYW1lPSJGaWx0ZXJRdWV1ZXMiIHZhbHVlPSIiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgcXVldWVzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkZpbHRlclF1ZXVlIikgJV0KIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzClslIFJlbmRlckJsb2NrU3RhcnQoIkltcG9ydEV4cG9ydFdpZGdldCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0nV2lkZ2V0U2ltcGxlJyBpZD0nUXVldWVUZW1wbGF0ZXNJbXBvcnRFeHBvcnRXaWRnZXQnPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSdIZWFkZXInPgogICAgICAgICAgICAgICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkltcG9ydCAvIEV4cG9ydCIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9oMT4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICBbJSBCcmVhZGNydW1iUGF0aCA9IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdJbXBvcnQgLyBFeHBvcnQnKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAlXQoKICAgICAgICAgICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgICAgICAgICA8ZGl2IGNsYXNzPSdDb250ZW50Jz4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSdGaWVsZEV4cGxhbmF0aW9uJz4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ0hlcmUgeW91IGNhbiB1cGxvYWQgYSBjb25maWd1cmF0aW9uIGZpbGUgdG8gaW1wb3J0IHF1ZXVlLXRlbXBsYXRlIHJlbGF0aW9ucyB0byB5b3VyIHN5c3RlbS4gVGhlIGZpbGUgbmVlZHMgdG8gYmUgaW4gLnltbCBmb3JtYXQgYXMgZXhwb3J0ZWQgYnkgdGhlIHF1ZXVlLXRlbXBsYXRlIG1hbmFnZW1lbnQgbW9kdWxlLicpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSdBY3Rpb25MaXN0IFNwYWNpbmdUb3AnPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSdbJSBFbnYoIkNHSUhhbmRsZSIpICVdJyBtZXRob2Q9J3Bvc3QnIGVuY3R5cGU9J211bHRpcGFydC9mb3JtLWRhdGEnIGNsYXNzPSdWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J0NoYWxsZW5nZVRva2VuJyB2YWx1ZT1bJSBFbnYoIlVzZXJDaGFsbGVuZ2VUb2tlbiIpIHwgSlNPTiAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J0FjdGlvbicgdmFsdWU9J0FkbWluUXVldWVUZW1wbGF0ZXNJbXBvcnRFeHBvcnQnLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J1N1YmFjdGlvbicgdmFsdWU9J0ltcG9ydCcvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9J0ZpbGVVcGxvYWQnIGlkPSdGaWxlVXBsb2FkJyB0eXBlPSdmaWxlJyBzaXplPScxOCcgY2xhc3M9J0ZpeGVkIFcxMDBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkZpbGVVcGxvYWRJbnZhbGlkIHwgaHRtbCAlXScvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0nRmlsZVVwbG9hZEVycm9yJyBjbGFzcz0nVG9vbHRpcEVycm9yTWVzc2FnZSc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9J0ZpbGVVcGxvYWRTZXJ2ZXJFcnJvcicgY2xhc3M9J1Rvb2x0aXBFcnJvck1lc3NhZ2UnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIFRyYW5zbGF0ZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0nU3BhY2luZ1RvcCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2NoZWNrYm94JyBpZD0nT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc0V4YW1wbGUnIG5hbWU9J092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnIHZhbHVlPScxJy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0nT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc0V4YW1wbGUnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ092ZXJ3cml0ZSBleGlzdGluZyBlbnRpdGllcycpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0nQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCcgaWQ9J1F1ZXVlSW1wb3J0JyB0eXBlPSdzdWJtaXQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSdmYSBmYS11cGxvYWQnPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdRdWV1ZS1UZW1wbGF0ZXMgSW1wb3J0JykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0nWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluUXVldWVUZW1wbGF0ZXNJbXBvcnRFeHBvcnQ7U3ViYWN0aW9uPUV4cG9ydCcgaWQ9J1F1ZXVlVGVtcGxhdGVzRXhwb3J0JyBjbGFzcz0nQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9J2ZhIGZhLWRvd25sb2FkJz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdRdWV1ZS1UZW1wbGF0ZXMgRXhwb3J0JykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbXBvcnRFeHBvcnRXaWRnZXQiKSAlXQojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwoKICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdCIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJPdmVydmlldyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50IExheW91dEdyaWQgQ29sdW1uc1dpdGhTcGFjaW5nIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNpemUxb2YyIj4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IlRhYmxlbGlrZSIgaWQ9IlRlbXBsYXRlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIlRlbXBsYXRlcyIpIHwgaHRtbCAlXTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPlslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV08L2xpPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb1RlbXBsYXRlc0ZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV08L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9UZW1wbGF0ZXNGb3VuZE1zZyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkxpc3QxbiIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249WyUgRGF0YS5TdWJhY3Rpb24gfCB1cmkgJV07SUQ9WyUgRGF0YS5JRCB8IHVyaSAlXSIgY2xhc3M9IkFzQmxvY2siPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+PC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkxpc3QxbiIpICVdCiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU2l6ZTFvZjIiPgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iVGFibGVsaWtlIiBpZD0iUXVldWVzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJIZWFkZXIiPlslIFRyYW5zbGF0ZSgiUXVldWVzIikgfCBodG1sICVdPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+WyUgVHJhbnNsYXRlKCJObyBtYXRjaGVzIGZvdW5kLiIpIHwgaHRtbCAlXTwvbGk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vUXVldWVzRm91bmRNc2ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+WyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXTwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJOb1F1ZXVlc0ZvdW5kTXNnIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiTGlzdG4xIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1bJSBEYXRhLlN1YmFjdGlvbiB8IHVyaSAlXTtJRD1bJSBEYXRhLklEIHwgdXJpICVdIiBjbGFzcz0iQXNCbG9jayI+WyUgRGF0YS5OYW1lIHwgaHRtbCAlXTwvYT48L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiTGlzdG4xIikgJV0KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3UmVzdWx0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ2hhbmdlIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj4KICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLkJyZWFkY3J1bWJUaXRsZSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRGF0YS5BY3Rpb25Ib21lIHwgdXJpICVdO1N1YmFjdGlvbj1DaGFuZ2U7WyUgRGF0YS5RdWV1ZSB8IHVyaSAlXUlEPVslIERhdGEuSUQgfCB1cmkgJV0iPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCAiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9Im1hdHJpeCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkNoYW5nZVslIERhdGEuVHlwZSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJJRCIgdmFsdWU9IlslIERhdGEuSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ29udGludWVBZnRlclNhdmUiIGlkPSJDb250aW51ZUFmdGVyU2F2ZSIgdmFsdWU9IiIvPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIFZhcmlhYmxlV2lkdGgiIGlkPSJJdGVtc1RhYmxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoRGF0YS5WaXNpYmxlTmVUeXBlKSB8IGh0bWwgJV08L3RoPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDaGFuZ2VIZWFkZXIiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0iWyUgRGF0YS5NYXJrIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IlNlbGVjdEFsbEl0ZW1zU2VsZWN0ZWQiIG5hbWU9Ikl0ZW1zU2VsZWN0ZWQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlRvZ2dsZSBhY3RpdmUgc3RhdGUgZm9yIGFsbCIpIHwgaHRtbCAlXSIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJBY3RpdmUiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgpbJSBSZW5kZXJCbG9ja0VuZCgiQ2hhbmdlSGVhZGVyIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiTm9EYXRhRm91bmRNc2dMaXN0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj0iWyUgRGF0YS5Db2xTcGFuIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vRGF0YUZvdW5kTXNnTGlzdCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkNoYW5nZVJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblslIERhdGEuTmVUeXBlIHwgdXJpICVdO1N1YmFjdGlvbj1DaGFuZ2U7WyUgRGF0YS5RdWV1ZSB8IHVyaSAlXUlEPVslIERhdGEuSUQgfCB1cmkgJV0iPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9IlslIERhdGEuTWFyayB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9Ikl0ZW1zU2VsZWN0ZWQiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlRvZ2dsZSBhY3RpdmUgc3RhdGUgZm9yICVzIiwgRGF0YS5OYW1lKSB8IGh0bWwgJV0iIHZhbHVlPSJbJSBEYXRhLklEIHwgaHRtbCAlXSIgWyUgRGF0YS5TZWxlY3RlZCAlXS8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ikl0ZW1zQWxsIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iLz4KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJDaGFuZ2VSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjIiPlslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFByaW1hcnkiIGlkPSJTdWJtaXRBbmRDb250aW51ZSIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSBhbmQgZmluaXNoIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQ2hhbmdlIikgJV0KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlldyIpICVdCg==</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminRole.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pblJvbGUudHQKIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXciKSAlXQo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJSb2xlIE1hbmFnZW1lbnQiKSB8IGh0bWwgJV08L2gxPgoKICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgnUm9sZSBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5BY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdBZGQnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgnQWRkIFJvbGUnKSx9KSAlXQogICAgICAgIFslIENBU0UgJ0NoYW5nZScgJV0KICAgICAgICAgICAgWyUgVVNFIEVkaXRUaXRsZSA9IFN0cmluZyhUcmFuc2xhdGUoIkVkaXQgUm9sZSIpKSAlXQogICAgICAgICAgICBbJSBCcmVhZGNydW1iUGF0aC5wdXNoKHsgTmFtZSA9PiBFZGl0VGl0bGUuYXBwZW5kKCAnOiAnLCBEYXRhLk5hbWUgKSB9KSAlXQogICAgWyUgRU5EICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkluY2x1ZGVJbnZhbGlkIikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiRmlsdGVyIGJ5IHZhbGlkIHN0YXRlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iSW5jbHVkZUludmFsaWQiIG5hbWU9IkluY2x1ZGVJbnZhbGlkIiB2YWx1ZT0iMSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiSW5jbHVkZSBpbnZhbGlkIHJvbGVzIikgfCBodG1sICVdIiBbJSBEYXRhLkluY2x1ZGVJbnZhbGlkQ2hlY2tlZCB8IGh0bWwgJV0vPgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iSW5jbHVkZUludmFsaWQiPlslIFRyYW5zbGF0ZSgiSW5jbHVkZSBpbnZhbGlkIHJvbGVzIikgfCBodG1sICVdPC9sYWJlbD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbmNsdWRlSW52YWxpZCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkxpc3QiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV0iIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLWNhcmV0LWxlZnQiPjwvaT5bJSBUcmFuc2xhdGUoIkdvIHRvIG92ZXJ2aWV3IikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uT3ZlcnZpZXciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25BZGQiKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUFkZCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkFkZCBSb2xlIikgfCBodG1sICVdPC9zcGFuPjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uQWRkIikgJV0KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uTGlzdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGaWx0ZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsIGZvcj0iRmlsdGVyUm9sZXMiPlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBSb2xlcyIpIHwgaHRtbCAlXTwvbGFiZWw+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJGaWx0ZXJSb2xlcyIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIikgfCBodG1sICVdIiBuYW1lPSJGaWx0ZXJSb2xlcyIgdmFsdWU9IiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciByb2xlcyIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRmlsdGVyIikgJV0KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJDcmVhdGUgYSByb2xlIGFuZCBwdXQgZ3JvdXBzIGluIGl0LiBUaGVuIGFkZCB0aGUgcm9sZSB0byB0aGUgdXNlcnMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgojIFJvdGhlciBPU1MgLyBJbXBvcnRFeHBvcnRTdGFuZGFyZE9iamVjdHMKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW1wb3J0RXhwb3J0V2lkZ2V0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSdXaWRnZXRTaW1wbGUnIGlkPSdSb2xlSW1wb3J0RXhwb3J0V2lkZ2V0Jz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0nSGVhZGVyJz4KICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0iSW52aXNpYmxlVGV4dCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJbXBvcnQgLyBFeHBvcnQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvaDE+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgnSW1wb3J0IC8gRXhwb3J0JyksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgJV0KCiAgICAgICAgICAgIFslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCAlXQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ29udGVudCc+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0nRmllbGRFeHBsYW5hdGlvbic+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdIZXJlIHlvdSBjYW4gdXBsb2FkIGEgY29uZmlndXJhdGlvbiBmaWxlIHRvIGltcG9ydCByb2xlcyB0byB5b3VyIHN5c3RlbS4gVGhlIGZpbGUgbmVlZHMgdG8gYmUgaW4gLnltbCBmb3JtYXQgYXMgZXhwb3J0ZWQgYnkgdGhlIHJvbGUgbWFuYWdlbWVudCBtb2R1bGUuJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9J0FjdGlvbkxpc3QgU3BhY2luZ1RvcCc+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249J1slIEVudigiQ0dJSGFuZGxlIikgJV0nIG1ldGhvZD0ncG9zdCcgZW5jdHlwZT0nbXVsdGlwYXJ0L2Zvcm0tZGF0YScgY2xhc3M9J1ZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nQ2hhbGxlbmdlVG9rZW4nIHZhbHVlPVslIEVudigiVXNlckNoYWxsZW5nZVRva2VuIikgfCBKU09OICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nQWN0aW9uJyB2YWx1ZT0nQWRtaW5Sb2xlSW1wb3J0RXhwb3J0Jy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBuYW1lPSdTdWJhY3Rpb24nIHZhbHVlPSdJbXBvcnQnLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPSdGaWxlVXBsb2FkJyBpZD0nRmlsZVVwbG9hZCcgdHlwZT0nZmlsZScgc2l6ZT0nMTgnIGNsYXNzPSdGaXhlZCBXMTAwcGMgVmFsaWRhdGVfUmVxdWlyZWQgWyUgRGF0YS5GaWxlVXBsb2FkSW52YWxpZCB8IGh0bWwgJV0nLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9J0ZpbGVVcGxvYWRFcnJvcicgY2xhc3M9J1Rvb2x0aXBFcnJvck1lc3NhZ2UnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSdGaWxlVXBsb2FkU2VydmVyRXJyb3InIGNsYXNzPSdUb29sdGlwRXJyb3JNZXNzYWdlJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBUcmFuc2xhdGUoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9J1NwYWNpbmdUb3AnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdjaGVja2JveCcgaWQ9J092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXNFeGFtcGxlJyBuYW1lPSdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzJyB2YWx1ZT0nMScvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9J092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXNFeGFtcGxlJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdPdmVyd3JpdGUgZXhpc3RpbmcgZW50aXRpZXMnKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9J0NhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIFNwYWNpbmdUb3AnIGlkPSdSb2xlSW1wb3J0JyB0eXBlPSdzdWJtaXQnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSdmYSBmYS11cGxvYWQnPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdSb2xlcyBJbXBvcnQnKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSdbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5Sb2xlSW1wb3J0RXhwb3J0O1N1YmFjdGlvbj1FeHBvcnQnIGlkPSdHcm91cEV4cG9ydCcgY2xhc3M9J0NhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSdmYSBmYS1kb3dubG9hZCc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnUm9sZXMgRXhwb3J0JykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbXBvcnRFeHBvcnRXaWRnZXQiKSAlXQojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld0hlYWRlciIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJMaXN0IikgfCBodG1sICVdIChbJSBEYXRhLkFsbEl0ZW1zQ291bnQgfCBodG1sICVdIFslIFRyYW5zbGF0ZSgidG90YWwiKSB8IGh0bWwgJV0pPC9oMj4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld0hlYWRlciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk5vUm9sZXNEZWZpbmVkIikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoZXJlIGFyZSBubyByb2xlcyBkZWZpbmVkLiBQbGVhc2UgdXNlIHRoZSAnQWRkJyBidXR0b24gdG8gY3JlYXRlIGEgbmV3IHJvbGUuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk5vUm9sZXNEZWZpbmVkIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iUm9sZXMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNoYW5nZWQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ3JlYXRlZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslIElGIERhdGEuVmFsaWRJRCAhPSAxICVdY2xhc3M9IkludmFsaWQiWyUgRU5EICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxhIGNsYXNzPSJBc0Jsb2NrIiBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249Q2hhbmdlO0lEPVslIERhdGEuSUQgfCB1cmkgJV0iPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+PC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCB0aXRsZT0iWyUgRGF0YS5Db21tZW50IHwgaHRtbCAlXSI+WyUgRGF0YS5Db21tZW50IHwgdHJ1bmNhdGUoMjYpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuVmFsaWQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5DaGFuZ2VUaW1lIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkNyZWF0ZVRpbWUgfCBMb2NhbGl6ZSgiVGltZVNob3J0IikgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI1Ij5bJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZSIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQWRkJyAlXQogICAgICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFkZCBSb2xlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgICAgIFslIEVMU0UgJV0KICAgICAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFJvbGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgdXJpICVdQWN0aW9uIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSUQiIHZhbHVlPSJbJSBEYXRhLklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdDaGFuZ2UnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRpbnVlQWZ0ZXJTYXZlIiBpZD0iQ29udGludWVBZnRlclNhdmUiIHZhbHVlPSIiLz4KICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJOYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Ik5hbWUiIGlkPSJOYW1lIiB2YWx1ZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuTmFtZUludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iVmFsaWRJRCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbGlkT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDb21tZW50Ij5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkNvbW1lbnQiIGlkPSJDb21tZW50IiB2YWx1ZT0iWyUgRGF0YS5Db21tZW50IHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjI1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQ2hhbmdlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdEFuZENvbnRpbnVlIiB0eXBlPSJidXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSBhbmQgZmluaXNoIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3VXBkYXRlIikgJV0KCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlldyIpICVdCg==</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminRoleGroup.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pblJvbGVHcm91cC50dAojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlldyIpICVdCjxkaXYgY2xhc3M9Ik1haW5Cb3ggQVJJQVJvbGVNYWluIExheW91dEZpeGVkU2lkZWJhciBTaWRlYmFyRmlyc3QiPgogICAgPGgxIGNsYXNzPSJJbnZpc2libGVUZXh0Ij5bJSBUcmFuc2xhdGUoIk1hbmFnZSBSb2xlLUdyb3VwIFJlbGF0aW9ucyIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdNYW5hZ2UgUm9sZS1Hcm91cCBSZWxhdGlvbnMnKSwKICAgICAgICAgICAgICAgIExpbmsgPT4gRW52KCJBY3Rpb24iKSwKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICAlXQoKICAgIFslIElGIERhdGEuVHlwZSAlXQogICAgICAgICAgICBbJSBVU0UgRWRpdFRpdGxlID0gU3RyaW5nKERhdGEuQnJlYWRjcnVtYlRpdGxlKSAlXQogICAgICAgICAgICBbJSBCcmVhZGNydW1iUGF0aC5wdXNoKHsgTmFtZSA9PiBFZGl0VGl0bGUuYXBwZW5kKCAiICciLCBEYXRhLk5hbWUsICInIiApIH0pICVdCiAgICBbJSBFTkQgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3QWN0aW9uIikgJV0KICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5Sb2xlO1N1YmFjdGlvbj1BZGQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgUm9sZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkdyb3VwO1N1YmFjdGlvbj1BZGQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgR3JvdXAiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj48bGFiZWwgZm9yPSJGaWx0ZXJSb2xlcyI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIFJvbGVzIikgfCBodG1sICVdPC9sYWJlbD48L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkZpbHRlclJvbGVzIiBjbGFzcz0iRmlsdGVyQm94IiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJKdXN0IHN0YXJ0IHR5cGluZyB0byBmaWx0ZXIuLi4iKSB8IGh0bWwgJV0iIG5hbWU9IkZpbHRlclJvbGVzIiB2YWx1ZT0iIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJGaWx0ZXIgZm9yIHJvbGVzIikgfCBodG1sICVdIi8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsIGZvcj0iRmlsdGVyR3JvdXBzIj5bJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgR3JvdXBzIikgfCBodG1sICVdPC9sYWJlbD48L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9IkZpbHRlckdyb3VwcyIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIikgfCBodG1sICVdIiBuYW1lPSJGaWx0ZXJHcm91cHMiIHZhbHVlPSIiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkZpbHRlciBmb3IgZ3JvdXBzIikgfCBodG1sICVdIiAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzClslIFJlbmRlckJsb2NrU3RhcnQoIkltcG9ydEV4cG9ydFdpZGdldCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0nV2lkZ2V0U2ltcGxlJyBpZD0nUm9sZUdyb3VwSW1wb3J0RXhwb3J0V2lkZ2V0Jz4KICAgICAgICAgICAgPGRpdiBjbGFzcz0nSGVhZGVyJz4KICAgICAgICAgICAgICAgIDxoMSBjbGFzcz0iSW52aXNpYmxlVGV4dCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJbXBvcnQgLyBFeHBvcnQiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgIDwvaDE+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgnSW1wb3J0IC8gRXhwb3J0JyksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgJV0KCiAgICAgICAgICAgIFslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCAlXQoKICAgICAgICAgICAgPGRpdiBjbGFzcz0nQ29udGVudCc+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0nRmllbGRFeHBsYW5hdGlvbic+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdIZXJlIHlvdSBjYW4gdXBsb2FkIGEgY29uZmlndXJhdGlvbiBmaWxlIHRvIGltcG9ydCByb2xlLWdyb3VwIHJlbGF0aW9ucyB0byB5b3VyIHN5c3RlbS4gVGhlIGZpbGUgbmVlZHMgdG8gYmUgaW4gLnltbCBmb3JtYXQgYXMgZXhwb3J0ZWQgYnkgdGhlIHJvbGUtZ3JvdXAgbWFuYWdlbWVudCBtb2R1bGUuJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9J0FjdGlvbkxpc3QgU3BhY2luZ1RvcCc+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249J1slIEVudigiQ0dJSGFuZGxlIikgJV0nIG1ldGhvZD0ncG9zdCcgZW5jdHlwZT0nbXVsdGlwYXJ0L2Zvcm0tZGF0YScgY2xhc3M9J1ZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nQ2hhbGxlbmdlVG9rZW4nIHZhbHVlPVslIEVudigiVXNlckNoYWxsZW5nZVRva2VuIikgfCBKU09OICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nQWN0aW9uJyB2YWx1ZT0nQWRtaW5Sb2xlR3JvdXBJbXBvcnRFeHBvcnQnLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J1N1YmFjdGlvbicgdmFsdWU9J0ltcG9ydCcvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9J0ZpbGVVcGxvYWQnIGlkPSdGaWxlVXBsb2FkJyB0eXBlPSdmaWxlJyBzaXplPScxOCcgY2xhc3M9J0ZpeGVkIFcxMDBwYyBWYWxpZGF0ZV9SZXF1aXJlZCBbJSBEYXRhLkZpbGVVcGxvYWRJbnZhbGlkIHwgaHRtbCAlXScvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0nRmlsZVVwbG9hZEVycm9yJyBjbGFzcz0nVG9vbHRpcEVycm9yTWVzc2FnZSc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9J0ZpbGVVcGxvYWRTZXJ2ZXJFcnJvcicgY2xhc3M9J1Rvb2x0aXBFcnJvck1lc3NhZ2UnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIFRyYW5zbGF0ZSgnVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4nKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWVsZHNldCBjbGFzcz0nU3BhY2luZ1RvcCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2NoZWNrYm94JyBpZD0nT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc0V4YW1wbGUnIG5hbWU9J092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnIHZhbHVlPScxJy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0nT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc0V4YW1wbGUnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ092ZXJ3cml0ZSBleGlzdGluZyBlbnRpdGllcycpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0nQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIgU3BhY2luZ1RvcCcgaWQ9J1JvbGVHcm91cEltcG9ydCcgdHlwZT0nc3VibWl0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0nZmEgZmEtdXBsb2FkJz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnUm9sZS1Hcm91cCBJbXBvcnQnKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSdbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5Sb2xlR3JvdXBJbXBvcnRFeHBvcnQ7U3ViYWN0aW9uPUV4cG9ydCcgaWQ9J0dyb3VwRXhwb3J0JyBjbGFzcz0nQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9J2ZhIGZhLWRvd25sb2FkJz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdSb2xlLUdyb3VwIEV4cG9ydCcpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0RXhwb3J0V2lkZ2V0IikgJV0KIyBFTyBJbXBvcnRFeHBvcnRTdGFuZGFyZE9iamVjdHMKICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIk92ZXJ2aWV3IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgTGF5b3V0R3JpZCBDb2x1bW5zV2l0aFNwYWNpbmciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU2l6ZTFvZjIiPgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iVGFibGVsaWtlIiBpZD0iUm9sZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkhlYWRlciI+WyUgVHJhbnNsYXRlKCJSb2xlcyIpIHwgaHRtbCAlXTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPlslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV08L2xpPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb0RhdGFGb3VuZE1zZ1JvbGUiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+WyUgVHJhbnNsYXRlKCJObyBkYXRhIGZvdW5kLiIpIHwgaHRtbCAlXTwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZE1zZ1JvbGUiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJMaXN0MW4iKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPVslIERhdGEuU3ViYWN0aW9uIHwgdXJpICVdO0lEPVslIERhdGEuSUQgfCB1cmkgJV0iIGNsYXNzPSJBc0Jsb2NrIj5bJSBEYXRhLk5hbWUgfCBodG1sICVdPC9hPjwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJMaXN0MW4iKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlNpemUxb2YyIj4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IlRhYmxlbGlrZSIgaWQ9Ikdyb3VwcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iSGVhZGVyIj5bJSBUcmFuc2xhdGUoIkdyb3VwcyIpIHwgaHRtbCAlXTwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPlslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV08L2xpPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb0RhdGFGb3VuZE1zZ0dyb3VwIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV08L2xpPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9EYXRhRm91bmRNc2dHcm91cCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkxpc3RuMSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249WyUgRGF0YS5TdWJhY3Rpb24gfCB1cmkgJV07SUQ9WyUgRGF0YS5JRCB8IHVyaSAlXSIgY2xhc3M9IkFzQmxvY2siPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+PC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkxpc3RuMSIpICVdCiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdBY3Rpb24iKSAlXQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQ2hhbmdlIikgJV0KICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uTGlzdCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj48c3Bhbj48aSBjbGFzcz0iZmEgZmEtY2FyZXQtbGVmdCI+PC9pPlslIFRyYW5zbGF0ZSgiR28gdG8gb3ZlcnZpZXciKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3QiKSAlXQoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPjxsYWJlbCBmb3I9IkZpbHRlciI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIiKSB8IGh0bWwgJV08L2xhYmVsPjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRmlsdGVyIiBjbGFzcz0iRmlsdGVyQm94IiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJKdXN0IHN0YXJ0IHR5cGluZyB0byBmaWx0ZXIuLi4iKSB8IGh0bWwgJV0iIG5hbWU9IkZpbHRlciIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIHJvbGU6Z3JvdXAgcGVybWlzc2lvbnMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJZiBub3RoaW5nIGlzIHNlbGVjdGVkLCB0aGVuIHRoZXJlIGFyZSBubyBwZXJtaXNzaW9ucyBpbiB0aGlzIGdyb3VwICh0aWNrZXRzIHdpbGwgbm90IGJlIGF2YWlsYWJsZSBmb3IgdGhlIHJvbGUpLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+CiAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5CcmVhZGNydW1iVGl0bGUgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIERhdGEuQWN0aW9uSG9tZSB8IHVyaSAlXTtTdWJhY3Rpb249Q2hhbmdlO0lEPVslIERhdGEuSUQgfCB1cmkgJV0iPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCAiPgogICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSJbJSBFbnYoIkNHSUhhbmRsZSIpICVdIiBtZXRob2Q9InBvc3QiIG5hbWU9Im1hdHJpeCI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IkNoYW5nZVslIERhdGEuVHlwZSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJJRCIgdmFsdWU9IlslIERhdGEuSUQgfCBodG1sICVdIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ29udGludWVBZnRlclNhdmUiIGlkPSJDb250aW51ZUFmdGVyU2F2ZSIgdmFsdWU9IiIvPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIFZhcmlhYmxlV2lkdGgiIGlkPSJVc2VyR3JvdXBzIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoRGF0YS5OZVR5cGUpIHwgaHRtbCAlXTwvdGg+ClslIFJlbmRlckJsb2NrU3RhcnQoIkNoYW5nZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSJDZW50ZXIgWyUgRGF0YS5NYXJrIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXSIgaWQ9IlNlbGVjdEFsbFslIERhdGEuVHlwZSB8IGh0bWwgJV0iIHRpdGxlPSJbJSBUcmFuc2xhdGUoIlRvZ2dsZSAlcyBwZXJtaXNzaW9uIGZvciBhbGwiLCAgVHJhbnNsYXRlKERhdGEuVHlwZSkpIHwgaHRtbCAlXSIgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKERhdGEuVHlwZSkgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KWyUgUmVuZGVyQmxvY2tFbmQoIkNoYW5nZUhlYWRlciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kTXNnTGlzdCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IlslIERhdGEuQ29sU3BhbiB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZE1zZ0xpc3QiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJDaGFuZ2VSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5bJSBEYXRhLk5lVHlwZSB8IHVyaSAlXTtTdWJhY3Rpb249Q2hhbmdlO0lEPVslIERhdGEuSUQgfCB1cmkgJV0iPlslIERhdGEuTmFtZSB8IGh0bWwgJV08L2E+PC90ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQ2hhbmdlUm93SXRlbSIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSJbJSBEYXRhLk1hcmsgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJbJSBEYXRhLlR5cGUgfCBodG1sICVdIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJUb2dnbGUgJXMgcGVybWlzc2lvbiBmb3IgJXMiLCAgVHJhbnNsYXRlKERhdGEuVHlwZSksIERhdGEuTmFtZSkgfCBodG1sICVdIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iIFslIERhdGEuU2VsZWN0ZWQgJV0vPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+ClslIFJlbmRlckJsb2NrRW5kKCJDaGFuZ2VSb3dJdGVtIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJDaGFuZ2VSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGNsYXNzPSJGaWx0ZXJNZXNzYWdlIEhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjgiPlslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJDYWxsRm9yQWN0aW9uIFByaW1hcnkiIGlkPSJTdWJtaXRBbmRDb250aW51ZSIgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSBhbmQgZmluaXNoIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSBTcGFjaW5nVG9wIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlJlZmVyZW5jZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8ZGw+CiAgICAgICAgICAgICAgICAgICAgPGR0PlslIFRyYW5zbGF0ZSgicm8iKSB8IGh0bWwgJV08L2R0PgogICAgICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJSZWFkIG9ubHkgYWNjZXNzIHRvIHRoZSB0aWNrZXQgaW4gdGhpcyBncm91cC9xdWV1ZS4gVGhlIHRpY2tldCBjYW4gYmUgZm91bmQgdmlhIGEgc2VhcmNoIGFuZCBpdHMgVGlja2V0Wm9vbSBjYW4gYmUgYWNjZXNzZWQuIElmIHVzZWQgZm9yIGEgY2FsZW5kYXIsIHVzZXJzIGNhbiBzZWUgYW5kIGV4cG9ydCBhbGwgYXBwb2ludG1lbnRzIGluIHRoZSBjYWxlbmRhci4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgICAgICA8ZHQ+WyUgVHJhbnNsYXRlKCJtb3ZlX2ludG8iKSB8IGh0bWwgJV08L2R0PgogICAgICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJQZXJtaXNzaW9ucyB0byBtb3ZlIHRpY2tldHMgaW50byB0aGlzIGdyb3VwL3F1ZXVlLiBJZiB1c2VkIGZvciBhIGNhbGVuZGFyLCB1c2VycyBjYW4gbW9kaWZ5IGFwcG9pbnRtZW50cyBpbiB0aGUgY2FsZW5kYXIsIGJ1dCB3aXRob3V0IGNoYW5naW5nIHRoZSBjYWxlbmRhciBzZWxlY3Rpb24uIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgPGR0PlslIFRyYW5zbGF0ZSgiY3JlYXRlIikgfCBodG1sICVdPC9kdD4KICAgICAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiUGVybWlzc2lvbnMgdG8gY3JlYXRlIHRpY2tldHMgaW4gdGhpcyBncm91cC9xdWV1ZS4gSWYgdXNlZCBmb3IgYSBjYWxlbmRhciwgdXNlcnMgY2FuIGNyZWF0ZSBhbmQgZGVsZXRlIGFwcG9pbnRtZW50cyBpbiB0aGUgY2FsZW5kYXIuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgPGR0PlslIFRyYW5zbGF0ZSgibm90ZSIpIHwgaHRtbCAlXTwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlBlcm1pc3Npb25zIHRvIGFkZCBub3RlcyB0byB0aWNrZXRzIGluIHRoaXMgZ3JvdXAvcXVldWUuIEl0IGFsc28gYWxsb3dzIGFnZW50cyB0byBiZSBpbmZvcm1lZCB2aWEgdGhlICdJbmZvcm0gQWdlbnRzJyBzZWN0aW9uIGluIHRoZSBOb3Rlcy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgICAgICA8ZHQ+WyUgVHJhbnNsYXRlKCJvd25lciIpIHwgaHRtbCAlXTwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlBlcm1pc3Npb25zIHRvIGJlIGJlY29tZSB0aGUgb3duZXIgb2YgdGlja2V0cyBpbiB0aGlzIGdyb3VwL3F1ZXVlLiBPbmUgY2FuIGJlIHNlbGVjdGVkIGFzIGFuIG93bmVyIHdoaWxlIGNyZWF0aW5nIGEgdGlja2V0IG9yIGNoYW5naW5nIHRoZSBvd25lci4gQmVpbmcgdGhlIG93bmVyIGdpdmVzIGZ1bGwgcncgcGVybWlzc2lvbnMgdG8gdGhpcyB0aWNrZXQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgPGR0PlslIFRyYW5zbGF0ZSgicHJpb3JpdHkiKSB8IGh0bWwgJV08L2R0PgogICAgICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJQZXJtaXNzaW9ucyB0byBvcGVuIHRoZSBwcmlvcml0eSBhY3Rpb24gaW4gdGhpcyBncm91cC9xdWV1ZS4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgICAgICA8ZHQ+WyUgVHJhbnNsYXRlKCJydyIpIHwgaHRtbCAlXTwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkZ1bGwgcmVhZCBhbmQgd3JpdGUgYWNjZXNzIHRvIHRoZSB0aWNrZXRzIGluIHRoaXMgZ3JvdXAvcXVldWUuIElmIHVzZWQgZm9yIGEgY2FsZW5kYXIsIHVzZXJzIGNhbiBtYW5hZ2UgdGhlIGNhbGVuZGFyIGl0c2VsZi4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2RkPgogICAgICAgICAgICAgICAgPC9kbD4KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQ2hhbmdlIikgJV0KPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlldyIpICVdCg==</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminTemplate.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pblRlbXBsYXRlLnR0CiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgojIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCiMgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKIyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwojIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiMgLS0KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3IikgJV0KPGRpdiBjbGFzcz0iTWFpbkJveCBBUklBUm9sZU1haW4gTGF5b3V0Rml4ZWRTaWRlYmFyIFNpZGViYXJGaXJzdCI+CiAgICA8aDEgY2xhc3M9IkludmlzaWJsZVRleHQiPlslIFRyYW5zbGF0ZSgiVGVtcGxhdGUgTWFuYWdlbWVudCIpIHwgaHRtbCAlXTwvaDE+CgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCdUZW1wbGF0ZSBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5BY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdBZGQnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgiQWRkIFRlbXBsYXRlIiksfSkgJV0KICAgICAgICBbJSBDQVNFICdDaGFuZ2UnICVdCiAgICAgICAgICAgIFslIFVTRSBFZGl0VGl0bGUgPSBTdHJpbmcoVHJhbnNsYXRlKCJFZGl0IFRlbXBsYXRlIikpICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IEVkaXRUaXRsZS5hcHBlbmQoICc6ICcsIERhdGEuTmFtZSApIH0pICVdCiAgICBbJSBFTkQgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW5jbHVkZUludmFsaWQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJGaWx0ZXIgYnkgdmFsaWQgc3RhdGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJJbmNsdWRlSW52YWxpZCIgbmFtZT0iSW5jbHVkZUludmFsaWQiIHZhbHVlPSIxIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCJJbmNsdWRlIGludmFsaWQgdGVtcGxhdGVzIikgfCBodG1sICVdIiBbJSBEYXRhLkluY2x1ZGVJbnZhbGlkQ2hlY2tlZCB8IGh0bWwgJV0vPgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iSW5jbHVkZUludmFsaWQiPlslIFRyYW5zbGF0ZSgiSW5jbHVkZSBpbnZhbGlkIHRlbXBsYXRlcyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jbHVkZUludmFsaWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPjxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uQWRkIikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1BZGQiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+PHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJBZGQgVGVtcGxhdGUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGQiKSAlXQogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrU3RhcnQoIkZpbHRlciIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj48bGFiZWwgZm9yPSJGaWx0ZXIiPlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBUZW1wbGF0ZXMiKSB8IGh0bWwgJV08L2xhYmVsPjwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iRmlsdGVyIiBjbGFzcz0iRmlsdGVyQm94IiBwbGFjZWhvbGRlcj0iWyUgVHJhbnNsYXRlKCJKdXN0IHN0YXJ0IHR5cGluZyB0byBmaWx0ZXIuLi4iKSB8IGh0bWwgJV0iIG5hbWU9IkZpbHRlciIgdmFsdWU9IiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciB0ZW1wbGF0ZXMiKSB8IGh0bWwgJV0iIC8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRmlsdGVyIikgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbkxpc3QiKSAlXQoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiSGludCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iRmllbGRFeHBsYW5hdGlvbiI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJBIHRlbXBsYXRlIGlzIGEgZGVmYXVsdCB0ZXh0IHdoaWNoIGhlbHBzIHlvdXIgYWdlbnRzIHRvIHdyaXRlIGZhc3RlciB0aWNrZXRzLCBhbnN3ZXJzIG9yIGZvcndhcmRzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJBdHRlbnRpb24iKSB8IGh0bWwgJV06CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluUXVldWVUZW1wbGF0ZXMiPlslIFRyYW5zbGF0ZSgiRG9uJ3QgZm9yZ2V0IHRvIGFkZCBuZXcgdGVtcGxhdGVzIHRvIHF1ZXVlcy4iKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgojIFJvdGhlciBPU1MgLyBJbXBvcnRFeHBvcnRTdGFuZGFyZE9iamVjdHMKWyUgUmVuZGVyQmxvY2tTdGFydCgiSW1wb3J0RXhwb3J0V2lkZ2V0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSdXaWRnZXRTaW1wbGUnIGlkPSdUZW1wbGF0ZUltcG9ydEV4cG9ydFdpZGdldCc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9J0hlYWRlcic+CiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9IkludmlzaWJsZVRleHQiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSW1wb3J0IC8gRXhwb3J0IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2gxPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiBUcmFuc2xhdGUoJ0ltcG9ydCAvIEV4cG9ydCcpLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICVdCgogICAgICAgICAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9J0NvbnRlbnQnPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9J0ZpZWxkRXhwbGFuYXRpb24nPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnSGVyZSB5b3UgY2FuIHVwbG9hZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBpbXBvcnQgdGVtcGxhdGVzIHRvIHlvdXIgc3lzdGVtLiBUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiAueW1sIGZvcm1hdCBhcyBleHBvcnRlZCBieSB0aGUgdGVtcGxhdGUgbWFuYWdlbWVudCBtb2R1bGUuJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9J0FjdGlvbkxpc3QgU3BhY2luZ1RvcCc+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBhY3Rpb249J1slIEVudigiQ0dJSGFuZGxlIikgJV0nIG1ldGhvZD0ncG9zdCcgZW5jdHlwZT0nbXVsdGlwYXJ0L2Zvcm0tZGF0YScgY2xhc3M9J1ZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nQ2hhbGxlbmdlVG9rZW4nIHZhbHVlPVslIEVudigiVXNlckNoYWxsZW5nZVRva2VuIikgfCBKU09OICVdPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nQWN0aW9uJyB2YWx1ZT0nQWRtaW5UZW1wbGF0ZUltcG9ydEV4cG9ydCcvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nU3ViYWN0aW9uJyB2YWx1ZT0nSW1wb3J0Jy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0nRmlsZVVwbG9hZCcgaWQ9J0ZpbGVVcGxvYWQnIHR5cGU9J2ZpbGUnIHNpemU9JzE4JyBjbGFzcz0nRml4ZWQgVzEwMHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuRmlsZVVwbG9hZEludmFsaWQgfCBodG1sICVdJy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSdGaWxlVXBsb2FkRXJyb3InIGNsYXNzPSdUb29sdGlwRXJyb3JNZXNzYWdlJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0nRmlsZVVwbG9hZFNlcnZlckVycm9yJyBjbGFzcz0nVG9vbHRpcEVycm9yTWVzc2FnZSc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgVHJhbnNsYXRlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSdTcGFjaW5nVG9wJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0nY2hlY2tib3gnIGlkPSdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzRXhhbXBsZScgbmFtZT0nT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcycgdmFsdWU9JzEnLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzRXhhbXBsZSc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnT3ZlcndyaXRlIGV4aXN0aW5nIGVudGl0aWVzJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSdDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciBTcGFjaW5nVG9wJyBpZD0nVGVtcGxhdGVJbXBvcnQnIHR5cGU9J3N1Ym1pdCc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9J2ZhIGZhLXVwbG9hZCc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ1RlbXBsYXRlcyBJbXBvcnQnKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSdbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5UZW1wbGF0ZUltcG9ydEV4cG9ydDtTdWJhY3Rpb249RXhwb3J0JyBpZD0nVGVtcGxhdGVFeHBvcnQnIGNsYXNzPSdDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlcic+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0nZmEgZmEtZG93bmxvYWQnPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoJ1RlbXBsYXRlcyBFeHBvcnQnKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIkltcG9ydEV4cG9ydFdpZGdldCIpICVdCiMgRU8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJUZW1wbGF0ZXMiPgogICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVHlwZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkF0dGFjaG1lbnRzIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiVmFsaWRpdHkiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ2hhbmdlZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDcmVhdGVkIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkRlbGV0ZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBjbGFzcz0iRmlsdGVyTWVzc2FnZSBIaWRkZW4iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjciPlslIFRyYW5zbGF0ZSgiTm8gbWF0Y2hlcyBmb3VuZC4iKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJOb0RhdGFGb3VuZE1zZyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk5vIGRhdGEgZm91bmQuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiTm9EYXRhRm91bmRNc2ciKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1Jlc3VsdFJvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBbJSBJRiBEYXRhLlZhbGlkSUQgIT0gMSAlXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBUcmFuc2xhdGUoRGF0YS5UZW1wbGF0ZVR5cGUpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IkFzQmxvY2siIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdO1N1YmFjdGlvbj1DaGFuZ2U7SUQ9WyUgRGF0YS5JRCB8IHVyaSAlXTtUeXBlPVslIERhdGEuVGVtcGxhdGVUeXBlIHwgdXJpICVdIj5bJSBEYXRhLk5hbWUgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkF0dGFjaG1lbnRzIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgdGl0bGU9IlslIERhdGEuQ29tbWVudCB8IGh0bWwgJV0iPlslIERhdGEuQ29tbWVudCB8IHRydW5jYXRlKDI2KSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIFRyYW5zbGF0ZShEYXRhLlZhbGlkKSB8IGh0bWwgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlslIERhdGEuQ2hhbmdlVGltZSB8IExvY2FsaXplKCJUaW1lU2hvcnQiKSAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5DcmVhdGVUaW1lIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0iQ2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuUGVybWlzc2lvbiAhPSAncm8nICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9IlRyYXNoQ2FuIFRlbXBsYXRlRGVsZXRlIiBocmVmPSIjIiBkYXRhLXF1ZXJ5LXN0cmluZz0iQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPURlbGV0ZTtJRD1bJSBEYXRhLklEIHwgdXJpICVdO1slIEVudigiQ2hhbGxlbmdlVG9rZW5QYXJhbSIpIHwgaHRtbCAlXSIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRGVsZXRlIHRoaXMgZW50cnkiKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkRlbGV0ZSB0aGlzIGVudHJ5IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS10cmFzaC1vIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJIaWRkZW4iIGlkPSJEZWxldGVUZW1wbGF0ZURpYWxvZ0NvbnRhaW5lciI+CiAgICAgICAgICAgIDxkaXYgaWQgPSJEZWxldGVUZW1wbGF0ZURpYWxvZyIgY2xhc3M9IklubmVyQ29udGVudCBHZW5lcmljSW50ZXJmYWNlRGlhbG9nIj4KICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJDZW50ZXIgU3BhY2luZyI+WyUgVHJhbnNsYXRlKCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgdGVtcGxhdGU/IikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZSIpICVdCgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdBZGQnICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBZGQgVGVtcGxhdGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFRlbXBsYXRlIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIERhdGEuQWN0aW9uIHwgdXJpICVdQWN0aW9uIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iSUQiIHZhbHVlPSJbJSBEYXRhLklEIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIFslIElGIERhdGEuQWN0aW9uID09ICdDaGFuZ2UnICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkNvbnRpbnVlQWZ0ZXJTYXZlIiBpZD0iQ29udGludWVBZnRlclNhdmUiIHZhbHVlPSIiLz4KICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9IlRhYmxlTGlrZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0iTWFuZGF0b3J5IiBmb3I9IlRlbXBsYXRlVHlwZSI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJUeXBlIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVGVtcGxhdGVUeXBlU3RyaW5nICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJUZW1wbGF0ZVR5cGVFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlRlbXBsYXRlVHlwZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJOYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Ik5hbWUiIGlkPSJOYW1lIiB2YWx1ZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuTmFtZUludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5hbWVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KWyUgUmVuZGVyQmxvY2tFbmQoIk5hbWVTZXJ2ZXJFcnJvciIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4aXN0TmFtZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIkEgc3RhbmRhcmQgdGVtcGxhdGUgd2l0aCB0aGlzIG5hbWUgYWxyZWFkeSBleGlzdHMhIikgfCBodG1sICVdPC9wPgpbJSBSZW5kZXJCbG9ja0VuZCgiTmFtZVNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJSaWNoVGV4dCI+WyUgVHJhbnNsYXRlKCJUZW1wbGF0ZSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJSaWNoVGV4dEZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0iUmljaFRleHQiIGNsYXNzPSJSaWNoVGV4dCIgcm93cz0iMTAiIGNvbHM9IjYwIiBuYW1lPSJUZW1wbGF0ZSI+WyUgRGF0YS5UZW1wbGF0ZSB8IGh0bWwgJV08L3RleHRhcmVhPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iSURzIj5bJSBUcmFuc2xhdGUoIkF0dGFjaG1lbnRzIikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuQXR0YWNobWVudE9wdGlvbiAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJNYW5kYXRvcnkiIGZvcj0iVmFsaWRJRCI+PHNwYW4gY2xhc3M9Ik1hcmtlciI+Kjwvc3Bhbj4gWyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLlZhbGlkT3B0aW9uICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJWYWxpZElERXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJWYWxpZElEU2VydmVyRXJyb3IiIGNsYXNzPSJUb29sdGlwRXJyb3JNZXNzYWdlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5bJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJDb21tZW50Ij5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IkNvbW1lbnQiIGlkPSJDb21tZW50IiB2YWx1ZT0iWyUgRGF0YS5Db21tZW50IHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIiBtYXhsZW5ndGg9IjI1MCIvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLlBlcm1pc3Npb24gIT0gJ3JvJyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQ2hhbmdlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdEFuZENvbnRpbnVlIiB0eXBlPSJidXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSBhbmQgZmluaXNoIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUgU3BhY2luZ1RvcCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJSZWZlcmVuY2UiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJZb3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIHRhZ3MiKSB8IGh0bWwgJV06PC9wPgogICAgICAgICAgICAgICAgPGRsPgogICAgICAgICAgICAgICAgICAgIDxkdD48Y29kZT4mbHQ7T1RPQk9fQUdFTlRfU1VCSkVDVFsyMF0mZ3Q7PC9jb2RlPjwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRvIGdldCB0aGUgZmlyc3QgMjAgY2hhcmFjdGVycyBvZiB0aGUgc3ViamVjdCBvZiB0aGUgY3VycmVudC9sYXRlc3QgYWdlbnQgYXJ0aWNsZSAoY3VycmVudCBmb3IgQW5zd2VyIGFuZCBGb3J3YXJkLCBsYXRlc3QgZm9yIE5vdGUgdGVtcGxhdGUgdHlwZSkuIFRoaXMgdGFnIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIG90aGVyIHRlbXBsYXRlIHR5cGVzLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgIDwvZGQ+CgogICAgICAgICAgICAgICAgICAgIDxkdD48Y29kZT4mbHQ7T1RPQk9fQUdFTlRfQk9EWVs1XSZndDs8L2NvZGU+PC9kdD4KICAgICAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVG8gZ2V0IHRoZSBmaXJzdCA1IGxpbmVzIG9mIHRoZSBib2R5IG9mIHRoZSBjdXJyZW50L2xhdGVzdCBhZ2VudCBhcnRpY2xlIChjdXJyZW50IGZvciBBbnN3ZXIgYW5kIEZvcndhcmQsIGxhdGVzdCBmb3IgTm90ZSB0ZW1wbGF0ZSB0eXBlKS4gVGhpcyB0YWcgaXMgbm90IHN1cHBvcnRlZCBmb3Igb3RoZXIgdGVtcGxhdGUgdHlwZXMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgPGR0Pjxjb2RlPiZsdDtPVE9CT19DVVNUT01FUl9TVUJKRUNUWzIwXSZndDs8L2NvZGU+PC9kdD4KICAgICAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVG8gZ2V0IHRoZSBmaXJzdCAyMCBjaGFyYWN0ZXJzIG9mIHRoZSBzdWJqZWN0IG9mIHRoZSBjdXJyZW50L2xhdGVzdCBhcnRpY2xlIChjdXJyZW50IGZvciBBbnN3ZXIgYW5kIEZvcndhcmQsIGxhdGVzdCBmb3IgTm90ZSB0ZW1wbGF0ZSB0eXBlKS4gVGhpcyB0YWcgaXMgbm90IHN1cHBvcnRlZCBmb3Igb3RoZXIgdGVtcGxhdGUgdHlwZXMuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgPGR0Pjxjb2RlPiZsdDtPVE9CT19DVVNUT01FUl9CT0RZWzVdJmd0OzwvY29kZT48L2R0PgogICAgICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUbyBnZXQgdGhlIGZpcnN0IDUgbGluZXMgb2YgdGhlIGJvZHkgb2YgdGhlIGN1cnJlbnQvbGF0ZXN0IGFydGljbGUgKGN1cnJlbnQgZm9yIEFuc3dlciBhbmQgRm9yd2FyZCwgbGF0ZXN0IGZvciBOb3RlIHRlbXBsYXRlIHR5cGUpLiBUaGlzIHRhZyBpcyBub3Qgc3VwcG9ydGVkIGZvciBvdGhlciB0ZW1wbGF0ZSB0eXBlcy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgICAgICA8ZHQ+PGNvZGU+Jmx0O09UT0JPX09XTkVSXyomZ3Q7PC9jb2RlPjwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRpY2tldCBvd25lciBvcHRpb25zIikgfCBodG1sICVdIChbJSBUcmFuc2xhdGUoImUuIGcuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtPVE9CT19PV05FUl9Vc2VyRmlyc3RuYW1lJmd0OzwvY29kZT4pLgogICAgICAgICAgICAgICAgICAgIDwvZGQ+CgogICAgICAgICAgICAgICAgICAgIDxkdD48Y29kZT4mbHQ7T1RPQk9fUkVTUE9OU0lCTEVfKiZndDs8L2NvZGU+PC9kdD4KICAgICAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiVGlja2V0IHJlc3BvbnNpYmxlIG9wdGlvbnMiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiZS4gZy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O09UT0JPX1JFU1BPTlNJQkxFX1VzZXJGaXJzdG5hbWUmZ3Q7PC9jb2RlPikuCiAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgPGR0Pjxjb2RlPiZsdDtPVE9CT19DVVJSRU5UXyomZ3Q7PC9jb2RlPjwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk9wdGlvbnMgb2YgdGhlIGN1cnJlbnQgdXNlciB3aG8gcmVxdWVzdGVkIHRoaXMgYWN0aW9uIikgfCBodG1sICVdIChbJSBUcmFuc2xhdGUoImUuIGcuIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxjb2RlPiZsdDtPVE9CT19DVVJSRU5UX1VzZXJGaXJzdG5hbWUmZ3Q7PC9jb2RlPikuCiAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgPGR0Pjxjb2RlPiZsdDtPVE9CT19USUNLRVRfKiZndDs8L2NvZGU+PC9kdD4KICAgICAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiT3B0aW9ucyBvZiB0aGUgdGlja2V0IGRhdGEiKSB8IGh0bWwgJV0gKFslIFRyYW5zbGF0ZSgiZS4gZy4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGNvZGU+Jmx0O09UT0JPX1RJQ0tFVF9UaWNrZXROdW1iZXI+LCAmbHQ7T1RPQk9fVElDS0VUX1RpY2tldElEJmd0OywgJmx0O09UT0JPX1RJQ0tFVF9RdWV1ZSZndDssICZsdDtPVE9CT19USUNLRVRfU3RhdGUmZ3Q7PC9jb2RlPikuCiAgICAgICAgICAgICAgICAgICAgPC9kZD4KCiAgICAgICAgICAgICAgICAgICAgPGR0Pjxjb2RlPiZsdDtPVE9CT19USUNLRVRfRHluYW1pY0ZpZWxkXyomZ3Q7PC9jb2RlPjwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIk9wdGlvbnMgb2YgdGlja2V0IGR5bmFtaWMgZmllbGRzIGludGVybmFsIGtleSB2YWx1ZXMiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgKFslIFRyYW5zbGF0ZSgiIGUuIGcuIikgfCBodG1sICVdIDxjb2RlPiZsdDtPVE9CT19USUNLRVRfRHluYW1pY0ZpZWxkX1Rlc3RGaWVsZCZndDssCiAgICAgICAgICAgICAgICAgICAgICAgICZsdDtPVE9CT19USUNLRVRfRHluYW1pY0ZpZWxkX1RpY2tldEZyZWVUZXh0MSZndDs8L2NvZGU+KS4KICAgICAgICAgICAgICAgICAgICA8L2RkPgoKICAgICAgICAgICAgICAgICAgICA8ZHQ+PGNvZGU+Jmx0O09UT0JPX1RJQ0tFVF9EeW5hbWljRmllbGRfKl9WYWx1ZSZndDs8L2NvZGU+PC9kdD4KICAgICAgICAgICAgICAgICAgICA8ZGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiT3B0aW9ucyBvZiB0aWNrZXQgZHluYW1pYyBmaWVsZHMgZGlzcGxheSB2YWx1ZXMsIHVzZWZ1bCBmb3IgRHJvcGRvd24gYW5kIE11bHRpc2VsZWN0IGZpZWxkcyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAoWyUgVHJhbnNsYXRlKCIgZS4gZy4iKSB8IGh0bWwgJV0gPGNvZGU+Jmx0O09UT0JPX1RJQ0tFVF9EeW5hbWljRmllbGRfVGVzdEZpZWxkX1ZhbHVlJmd0OywKICAgICAgICAgICAgICAgICAgICAgICAgJmx0O09UT0JPX1RJQ0tFVF9EeW5hbWljRmllbGRfVGlja2V0RnJlZVRleHQxX1ZhbHVlJmd0OzwvY29kZT4pLgogICAgICAgICAgICAgICAgICAgIDwvZGQ+CgogICAgICAgICAgICAgICAgICAgIDxkdD48Y29kZT4mbHQ7T1RPQk9fQ1VTVE9NRVJfREFUQV8qJmd0OzwvY29kZT48L2R0PgogICAgICAgICAgICAgICAgICAgIDxkZD4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJPcHRpb25zIG9mIHRoZSBjdXJyZW50IGN1c3RvbWVyIHVzZXIgZGF0YSIpIHwgaHRtbCAlXSAoWyUgVHJhbnNsYXRlKCJlLiBnLiIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8Y29kZT4mbHQ7T1RPQk9fQ1VTVE9NRVJfREFUQV9Vc2VyRmlyc3RuYW1lJmd0OzwvY29kZT4pLgogICAgICAgICAgICAgICAgICAgIDwvZGQ+CgogICAgICAgICAgICAgICAgICAgIDxkdD48Y29kZT4mbHQ7T1RPQk9fQ09ORklHXyomZ3Q7PC9jb2RlPjwvZHQ+CiAgICAgICAgICAgICAgICAgICAgPGRkPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkNvbmZpZyBvcHRpb25zIikgfCBodG1sICVdIChbJSBUcmFuc2xhdGUoImUuIGcuIikgfCBodG1sICVdIDxjb2RlPiZsdDtPVE9CT19DT05GSUdfSHR0cFR5cGUmZ3Q7PC9jb2RlPikuCiAgICAgICAgICAgICAgICAgICAgPC9kZD4KICAgICAgICAgICAgICAgIDwvZGw+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iU3BhY2luZ1RvcCI+PC9kaXY+CiAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPlslIFRyYW5zbGF0ZSgiTm90ZSIpIHwgaHRtbCAlXTo8L3N0cm9uZz4KICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkNyZWF0ZSB0eXBlIHRlbXBsYXRlcyBvbmx5IHN1cHBvcnRzIHRoaXMgc21hcnQgdGFncyIpIHwgaHRtbCAlXToKICAgICAgICAgICAgICAgICAgICA8Y29kZT48c3Ryb25nPiAmbHQ7T1RPQk9fQ1VSUkVOVF8qJmd0Ozwvc3Ryb25nPjwvY29kZT4gWyUgVHJhbnNsYXRlKCJhbmQiKSB8IGh0bWwgJV0gPGNvZGU+PHN0cm9uZz4gJmx0O09UT0JPX0NPTkZJR18qJmd0Ozwvc3Ryb25nPjwvY29kZT4KICAgICAgICAgICAgICAgIDwvcD4KCiAgICAgICAgICAgICAgICA8cCBjbGFzcz0iU3BhY2luZ1RvcCI+CiAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJFeGFtcGxlIHRlbXBsYXRlIikgfCBodG1sICVdOgogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHRleHRhcmVhIHJvd3M9IjUiIGNvbHM9IjYwIiBuYW1lPSJUZW1wbGF0ZWUiPgpbJSBUcmFuc2xhdGUoIlRoZSBjdXJyZW50IHRpY2tldCBzdGF0ZSBpcyIpIHwgaHRtbCAlXTogIiZsdDtPVE9CT19USUNLRVRfU3RhdGUmZ3Q7IgoKWyUgVHJhbnNsYXRlKCJZb3VyIGVtYWlsIGFkZHJlc3MgaXMiKSB8IGh0bWwgJV06ICImbHQ7T1RPQk9fQ1VTVE9NRVJfVXNlckVtYWlsJmd0OyIKICAgICAgICAgICAgICAgIDwvdGV4dGFyZWE+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGUiKSAlXQogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CjwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXciKSAlXQo=</File>
        <File Location="Custom/Kernel/Output/HTML/Templates/Standard/AdminType.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgJG9yaWdpbjogb3RvYm8gLSA2ZWZkYzdiZjJhMzMyNTI3N2NkNzlhNjBmMGYyNDA3ZjhhZDU5ZTg3IC0gS2VybmVsL091dHB1dC9IVE1ML1RlbXBsYXRlcy9TdGFuZGFyZC9BZG1pblR5cGUudHQKIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKWyUgUmVuZGVyQmxvY2tTdGFydCgiT3ZlcnZpZXciKSAlXQo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KICAgIDxoMSBjbGFzcz0iSW52aXNpYmxlVGV4dCI+WyUgVHJhbnNsYXRlKCJUeXBlIE1hbmFnZW1lbnQiKSB8IGh0bWwgJV08L2gxPgoKICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgnVHlwZSBNYW5hZ2VtZW50JyksCiAgICAgICAgICAgICAgICBMaW5rID0+IEVudigiQWN0aW9uIiksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBTV0lUQ0ggRGF0YS5BY3Rpb24gJV0KICAgICAgICBbJSBDQVNFICdBZGQnICVdCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoLnB1c2goeyBOYW1lID0+IFRyYW5zbGF0ZSgiQWRkIFR5cGUiKSx9KSAlXQogICAgICAgIFslIENBU0UgJ0NoYW5nZScgJV0KICAgICAgICAgICAgWyUgVVNFIEVkaXRUaXRsZSA9IFN0cmluZyhUcmFuc2xhdGUoIkVkaXQgVHlwZSIpKSAlXQogICAgICAgICAgICBbJSBCcmVhZGNydW1iUGF0aC5wdXNoKHsgTmFtZSA9PiBFZGl0VGl0bGUuYXBwZW5kKCAnOiAnLCBEYXRhLk5hbWUgKSB9KSAlXQogICAgWyUgRU5EICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbmNsdWRlSW52YWxpZCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkZpbHRlciBieSB2YWxpZCBzdGF0ZSIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IkluY2x1ZGVJbnZhbGlkIiBuYW1lPSJJbmNsdWRlSW52YWxpZCIgdmFsdWU9IjEiIHRpdGxlPSJbJSBUcmFuc2xhdGUoIkluY2x1ZGUgaW52YWxpZCB0eXBlcyIpIHwgaHRtbCAlXSIgWyUgRGF0YS5JbmNsdWRlSW52YWxpZENoZWNrZWQgfCBodG1sICVdLz4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9IkluY2x1ZGVJbnZhbGlkIj5bJSBUcmFuc2xhdGUoIkluY2x1ZGUgaW52YWxpZCB0eXBlcyIpIHwgaHRtbCAlXTwvbGFiZWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiSW5jbHVkZUludmFsaWQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25MaXN0IikgJV0KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1jYXJldC1sZWZ0Ij48L2k+WyUgVHJhbnNsYXRlKCJHbyB0byBvdmVydmlldyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbkFkZCIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249WyUgRW52KCJBY3Rpb24iKSAlXTtTdWJhY3Rpb249QWRkIiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPjxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiQWRkIFR5cGUiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25BZGQiKSAlXQoKICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiQWN0aW9uTGlzdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJGaWx0ZXIiKSAlXQogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+PGxhYmVsIGZvcj0iRmlsdGVyVHlwZXMiPlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciBUeXBlcyIpIHwgaHRtbCAlXTwvbGFiZWw+PC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJGaWx0ZXJUeXBlcyIgY2xhc3M9IkZpbHRlckJveCIgcGxhY2Vob2xkZXI9IlslIFRyYW5zbGF0ZSgiSnVzdCBzdGFydCB0eXBpbmcgdG8gZmlsdGVyLi4uIikgfCBodG1sICVdIiBuYW1lPSJGaWx0ZXJUeXBlcyIgdmFsdWU9IiIgdGl0bGU9IlslIFRyYW5zbGF0ZSgiRmlsdGVyIGZvciB0eXBlcyIpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiRmlsdGVyIikgJV0KIyBSb3RoZXIgT1NTIC8gSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzClslIFJlbmRlckJsb2NrU3RhcnQoIkltcG9ydEV4cG9ydFdpZGdldCIpICVdCiAgICAgICAgPGRpdiBjbGFzcz0nV2lkZ2V0U2ltcGxlJyBpZD0nVHlwZUltcG9ydEV4cG9ydFdpZGdldCc+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9J0hlYWRlcic+CiAgICAgICAgICAgICAgICA8aDEgY2xhc3M9IkludmlzaWJsZVRleHQiPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSW1wb3J0IC8gRXhwb3J0IikgfCBodG1sICVdCiAgICAgICAgICAgICAgICA8L2gxPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiBUcmFuc2xhdGUoJ0ltcG9ydCAvIEV4cG9ydCcpLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICVdCgogICAgICAgICAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9J0NvbnRlbnQnPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9J0ZpZWxkRXhwbGFuYXRpb24nPgogICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnSGVyZSB5b3UgY2FuIHVwbG9hZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBpbXBvcnQgdHlwZXMgdG8geW91ciBzeXN0ZW0uIFRoZSBmaWxlIG5lZWRzIHRvIGJlIGluIC55bWwgZm9ybWF0IGFzIGV4cG9ydGVkIGJ5IHRoZSB0eXBlIG1hbmFnZW1lbnQgbW9kdWxlLicpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSdBY3Rpb25MaXN0IFNwYWNpbmdUb3AnPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gYWN0aW9uPSdbJSBFbnYoIkNHSUhhbmRsZSIpICVdJyBtZXRob2Q9J3Bvc3QnIGVuY3R5cGU9J211bHRpcGFydC9mb3JtLWRhdGEnIGNsYXNzPSdWYWxpZGF0ZSBQcmV2ZW50TXVsdGlwbGVTdWJtaXRzJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J0NoYWxsZW5nZVRva2VuJyB2YWx1ZT1bJSBFbnYoIlVzZXJDaGFsbGVuZ2VUb2tlbiIpIHwgSlNPTiAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J0FjdGlvbicgdmFsdWU9J0FkbWluVHlwZUltcG9ydEV4cG9ydCcvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nU3ViYWN0aW9uJyB2YWx1ZT0nSW1wb3J0Jy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgbmFtZT0nRmlsZVVwbG9hZCcgaWQ9J0ZpbGVVcGxvYWQnIHR5cGU9J2ZpbGUnIHNpemU9JzE4JyBjbGFzcz0nRml4ZWQgVzEwMHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuRmlsZVVwbG9hZEludmFsaWQgfCBodG1sICVdJy8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSdGaWxlVXBsb2FkRXJyb3InIGNsYXNzPSdUb29sdGlwRXJyb3JNZXNzYWdlJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0nRmlsZVVwbG9hZFNlcnZlckVycm9yJyBjbGFzcz0nVG9vbHRpcEVycm9yTWVzc2FnZSc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgVHJhbnNsYXRlKCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSdTcGFjaW5nVG9wJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0nY2hlY2tib3gnIGlkPSdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzRXhhbXBsZScgbmFtZT0nT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcycgdmFsdWU9JzEnLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzRXhhbXBsZSc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnT3ZlcndyaXRlIGV4aXN0aW5nIGVudGl0aWVzJykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmllbGRzZXQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSdDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciBTcGFjaW5nVG9wJyBpZD0nVHlwZUltcG9ydCcgdHlwZT0nc3VibWl0Jz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0nZmEgZmEtdXBsb2FkJz48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnVHlwZXMgSW1wb3J0JykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0nWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluVHlwZUltcG9ydEV4cG9ydDtTdWJhY3Rpb249RXhwb3J0JyBpZD0nVHlwZUV4cG9ydCcgY2xhc3M9J0NhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyJz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSdmYSBmYS1kb3dubG9hZCc+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgnVHlwZXMgRXhwb3J0JykgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJJbXBvcnRFeHBvcnRXaWRnZXQiKSAlXQojIEVPIEltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cwogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0IikgJV0KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkxpc3QiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CgogICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJUeXBlcyI+CiAgICAgICAgICAgICAgICAgICAgPHRoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNoYW5nZWQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiQ3JlYXRlZCIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5vRGF0YUZvdW5kTXNnIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49IjQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiTm8gZGF0YSBmb3VuZC4iKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJOb0RhdGFGb3VuZE1zZyIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIk92ZXJ2aWV3UmVzdWx0Um93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPHRyIFslSUYgRGF0YS5WYWxpZElEICE9IDElXWNsYXNzPSJJbnZhbGlkIlslIEVORCAlXT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD48YSBjbGFzcz0iQXNCbG9jayIgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPVslIEVudigiQWN0aW9uIikgJV07U3ViYWN0aW9uPUNoYW5nZTtJRD1bJSBEYXRhLklEIHwgdXJpICVdIj5bJSBEYXRhLk5hbWUgfCBodG1sICVdPC9hPjwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgVHJhbnNsYXRlKERhdGEuVmFsaWQpIHwgaHRtbCAlXTwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+WyUgRGF0YS5DaGFuZ2VUaW1lIHwgTG9jYWxpemUoIlRpbWVTaG9ydCIpICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5bJSBEYXRhLkNyZWF0ZVRpbWUgfCBMb2NhbGl6ZSgiVGltZVNob3J0IikgJV08L3RkPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdSZXN1bHRSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8dHIgY2xhc3M9IkZpbHRlck1lc3NhZ2UgSGlkZGVuIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPSI0Ij5bJSBUcmFuc2xhdGUoIk5vIG1hdGNoZXMgZm91bmQuIikgfCBodG1sICVdPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgPC9kaXY+ClslIFJlbmRlckJsb2NrRW5kKCJPdmVydmlld1Jlc3VsdCIpICVdCgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJPdmVydmlld1VwZGF0ZSIpICVdCiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CgogICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQWRkJyAlXQogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWRkIFR5cGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICBbJSBFTFNFICVdCiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJFZGl0IFR5cGUiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICBbJSBFTkQgJV0KCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KCiAgICAgICAgICAgICAgICA8Zm9ybSBpZD0iRW50aXR5VXBkYXRlIiBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBEYXRhLkFjdGlvbiB8IHVyaSAlXUFjdGlvbiIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IklEIiB2YWx1ZT0iWyUgRGF0YS5JRCB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQ2hhbmdlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDb250aW51ZUFmdGVyU2F2ZSIgaWQ9IkNvbnRpbnVlQWZ0ZXJTYXZlIiB2YWx1ZT0iIi8+CiAgICAgICAgICAgICAgICAgICAgWyUgRU5EICVdCiAgICAgICAgICAgICAgICAgICAgPGZpZWxkc2V0IGNsYXNzPSJUYWJsZUxpa2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJOYW1lIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV06PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9Ik5hbWUiIGlkPSJOYW1lIiB2YWx1ZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ilc1MHBjIFZhbGlkYXRlX1JlcXVpcmVkIFslIERhdGEuTmFtZUludmFsaWQgfCBodG1sICVdIiBtYXhsZW5ndGg9IjIwMCIvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZUVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+WyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXTwvcD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iTmFtZVNlcnZlckVycm9yIiBjbGFzcz0iVG9vbHRpcEVycm9yTWVzc2FnZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+ClslIFJlbmRlckJsb2NrU3RhcnQoIk5hbWVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiTmFtZVNlcnZlckVycm9yIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRXhpc3ROYW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiQSB0eXBlIHdpdGggdGhpcyBuYW1lIGFscmVhZHkgZXhpc3RzISIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiRXhpc3ROYW1lU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJblNldHRpbmdOYW1lU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoaXMgdHlwZSBpcyBwcmVzZW50IGluIGEgU3lzQ29uZmlnIHNldHRpbmcsIGNvbmZpcm1hdGlvbiBmb3IgdXBkYXRpbmcgc2V0dGluZ3MgdG8gcG9pbnQgdG8gdGhlIG5ldyB0eXBlIGlzIG5lZWRlZCEiKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkluU2V0dGluZ05hbWVTZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Ik1hbmRhdG9yeSIgZm9yPSJWYWxpZElEIj48c3BhbiBjbGFzcz0iTWFya2VyIj4qPC9zcGFuPiBbJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuVmFsaWRPcHRpb24gJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZhbGlkSURFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPlslIFRyYW5zbGF0ZSgiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKSB8IGh0bWwgJV08L3A+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IlZhbGlkSURTZXJ2ZXJFcnJvciIgY2xhc3M9IlRvb2x0aXBFcnJvck1lc3NhZ2UiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSZXF1aXJlZFZhbGlkT3B0aW9uU2VydmVyRXJyb3IiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJSZXF1aXJlZFZhbGlkT3B0aW9uU2VydmVyRXJyb3IiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJblNldHRpbmdWYWxpZE9wdGlvblNlcnZlckVycm9yIikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJJcyBub3QgcG9zc2libGUgdG8gaW52YWxpZGF0ZSB0aGlzIGVudHJ5LCBhbGwgY29uZmlnIHNldHRpbmdzIGhhdmUgdG8gYmUgY2hhbmdlZCBiZWZvcmVoYW5kLiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW5TZXR0aW5nVmFsaWRPcHRpb25TZXJ2ZXJFcnJvciIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBJRiBEYXRhLkFjdGlvbiA9PSAnQ2hhbmdlJyAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdEFuZENvbnRpbnVlIiB0eXBlPSJidXR0b24iIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSIpIHwgaHRtbCAlXTwvc3Bhbj48L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBQcmltYXJ5IiBpZD0iU3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV0iPjxzcGFuPlslIFRyYW5zbGF0ZSgiU2F2ZSBhbmQgZmluaXNoIikgfCBodG1sICVdPC9zcGFuPjwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRUxTRSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IkNhbGxGb3JBY3Rpb24gUHJpbWFyeSIgaWQ9IlN1Ym1pdCIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKCJTYXZlIikgfCBodG1sICVdIj48c3Bhbj5bJSBUcmFuc2xhdGUoIlNhdmUiKSB8IGh0bWwgJV08L3NwYW4+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBFTkQgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1bJSBFbnYoIkFjdGlvbiIpICVdIj5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2ZpZWxkc2V0PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUeXBlSW5TeXNDb25maWciKSAlXQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik9sZE5hbWUiIGlkPSJPbGROYW1lIiB2YWx1ZT0iWyUgRGF0YS5PbGROYW1lIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlVwZGF0ZUVudGl0eSIgaWQ9IlVwZGF0ZUVudGl0eSIgdmFsdWU9IiIvPgogICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9IkVudGl0eUluU2V0dGluZyIgY2xhc3M9IkhpZGRlbiI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IlRleHREaWFsb2ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgxPlslIFRyYW5zbGF0ZSgiVGhpcyB0eXBlIGlzIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBjb25maWcgc2V0dGluZ3M6IikgfCBodG1sICVdPC9oMT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVHlwZUluU3lzQ29uZmlnUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9IkluU3lzQ29uZmlnU2V0dGluZyI+WyUgRGF0YS5TZXR0aW5nTmFtZSAlXTwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJUeXBlSW5TeXNDb25maWdSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj48L3A+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiVHlwZUluU3lzQ29uZmlnIikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiVHlwZUluU3lzQ29uZmlnRGlydHkiKSAlXQogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN5c0NvbmZpZ0RpcnR5IiBpZD0iU3lzQ29uZmlnRGlydHkiIHZhbHVlPSIxIi8+ClslIFJlbmRlckJsb2NrRW5kKCJUeXBlSW5TeXNDb25maWdEaXJ0eSIpICVdCiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgpbJSBSZW5kZXJCbG9ja0VuZCgiT3ZlcnZpZXdVcGRhdGUiKSAlXQoKICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2Pgo8L2Rpdj4KWyUgUmVuZGVyQmxvY2tFbmQoIk92ZXJ2aWV3IikgJV0K</File>
        <File Location="Kernel/Autoload/GenericAgentImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCgp1c2UgS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNBZ2VudCAoKTsgICAgIyMgbm8gcGVybGltcG9ydHMKCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNBZ2VudDsgICAjIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVGaWxlbmFtZU1hdGNoZXNQYWNrYWdlKQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdjUuMjQ7CnVzZSB1dGY4OwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KElzQXJyYXlSZWZXaXRoRGF0YSk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0FnZW50JywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9jaycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlByaW9yaXR5JywKICAgICdLZXJuZWw6OlN5c3RlbTo6UXVldWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTTEEnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTZXJ2aWNlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U3RhdGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUeXBlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7CgpzdWIgRXhwb3J0R2VuZXJpY0FnZW50cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVHZW5lcmljQWdlbnRGaWx0ZXI7CiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte0dlbmVyaWNBZ2VudHN9ICkgKSB7CiAgICAgICAgJUdlbmVyaWNBZ2VudEZpbHRlciA9IG1hcCB7ICRfID0+IDEgfSAkUGFyYW17R2VuZXJpY0FnZW50c30tPkAqOwogICAgfQoKICAgICMgZ2V0IG5lY2Vzc2FyeSBvYmplY3RzCiAgICBteSAkR2VuZXJpY0FnZW50T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNBZ2VudCcpOwogICAgbXkgJExvY2tPYmplY3QgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2NrJyk7CiAgICBteSAkUHJpb3JpdHlPYmplY3QgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlByaW9yaXR5Jyk7CiAgICBteSAkUXVldWVPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyk7CiAgICBteSAkU2VydmljZU9iamVjdCAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UnKTsKICAgIG15ICRTTEFPYmplY3QgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U0xBJyk7CiAgICBteSAkU3RhdGVPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRlJyk7CiAgICBteSAkVHlwZU9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlR5cGUnKTsKICAgIG15ICRVc2VyT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpOwoKICAgICMgZmV0Y2ggbG9va3VwIGxpc3RzCiAgICBteSAlR2VuZXJpY0FnZW50TGlzdCA9ICRHZW5lcmljQWdlbnRPYmplY3QtPkpvYkxpc3QoKTsKCiAgICBteSAlRXhwb3J0RGF0YTsKICAgIEdFTkVSSUNBR0VOVE5BTUU6CiAgICBmb3IgbXkgJEdlbmVyaWNBZ2VudE5hbWUgKCBzb3J0IGtleXMgJUdlbmVyaWNBZ2VudExpc3QgKSB7CgogICAgICAgIG15ICVHZW5lcmljQWdlbnREYXRhID0gJEdlbmVyaWNBZ2VudE9iamVjdC0+Sm9iR2V0KAogICAgICAgICAgICBOYW1lID0+ICRHZW5lcmljQWdlbnROYW1lLAogICAgICAgICk7CgogICAgICAgIGlmICglR2VuZXJpY0FnZW50RmlsdGVyKSB7CiAgICAgICAgICAgIG5leHQgR0VORVJJQ0FHRU5UTkFNRSB1bmxlc3MgJEdlbmVyaWNBZ2VudEZpbHRlcnsgJEdlbmVyaWNBZ2VudERhdGF7TmFtZX0gfTsKICAgICAgICB9CgogICAgICAgICMgdHJhbnNsYXRlIElEcyBpbnRvIG5hbWVzIG9yIG5hbWUtbGlrZSBpZGVudGlmaWVycwogICAgICAgIEFUVFJJQlVURToKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIGtleXMgJUdlbmVyaWNBZ2VudERhdGEgKSB7CgogICAgICAgICAgICAjIHNpbmdsZS12YWx1ZSBhdHRyaWJ1dGVzCiAgICAgICAgICAgIGlmICggJEF0dHJpYnV0ZSBlcSAnTmV3TG9ja0lEJyApIHsKICAgICAgICAgICAgICAgIGlmICggJEdlbmVyaWNBZ2VudERhdGF7TmV3TG9ja0lEfSApIHsKICAgICAgICAgICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YXtOZXdMb2NrfSA9ICRMb2NrT2JqZWN0LT5Mb2NrTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBMb2NrSUQgPT4gJEdlbmVyaWNBZ2VudERhdGF7TmV3TG9ja0lEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkR2VuZXJpY0FnZW50RGF0YXtOZXdMb2NrSUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnTmV3T3duZXJJRCcgKSB7CiAgICAgICAgICAgICAgICBpZiAoICRHZW5lcmljQWdlbnREYXRhe05ld093bmVySUR9ICkgewogICAgICAgICAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhe05ld093bmVyfSA9ICRVc2VyT2JqZWN0LT5Vc2VyTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJEdlbmVyaWNBZ2VudERhdGF7TmV3T3duZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJEdlbmVyaWNBZ2VudERhdGF7TmV3T3duZXJJRH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkQXR0cmlidXRlIGVxICdOZXdQcmlvcml0eUlEJyApIHsKICAgICAgICAgICAgICAgIGlmICggJEdlbmVyaWNBZ2VudERhdGF7TmV3UHJpb3JpdHlJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGF7TmV3UHJpb3JpdHl9ID0gJFByaW9yaXR5T2JqZWN0LT5Qcmlvcml0eUxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHlJRCA9PiAkR2VuZXJpY0FnZW50RGF0YXtOZXdQcmlvcml0eUlEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkR2VuZXJpY0FnZW50RGF0YXtOZXdQcmlvcml0eUlEfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRBdHRyaWJ1dGUgZXEgJ05ld1F1ZXVlSUQnICkgewogICAgICAgICAgICAgICAgaWYgKCAkR2VuZXJpY0FnZW50RGF0YXtOZXdRdWV1ZUlEfSApIHsKICAgICAgICAgICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YXtOZXdRdWV1ZX0gPSAkUXVldWVPYmplY3QtPlF1ZXVlTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICRHZW5lcmljQWdlbnREYXRhe05ld1F1ZXVlSUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRHZW5lcmljQWdlbnREYXRhe05ld1F1ZXVlSUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnTmV3U2VydmljZUlEJyApIHsKICAgICAgICAgICAgICAgIGlmICggJEdlbmVyaWNBZ2VudERhdGF7TmV3U2VydmljZUlEfSApIHsKICAgICAgICAgICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YXtOZXdTZXJ2aWNlfSA9ICRTZXJ2aWNlT2JqZWN0LT5TZXJ2aWNlTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgPT4gJEdlbmVyaWNBZ2VudERhdGF7TmV3U2VydmljZUlEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkR2VuZXJpY0FnZW50RGF0YXtOZXdTZXJ2aWNlSUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnTmV3U0xBSUQnICkgewogICAgICAgICAgICAgICAgaWYgKCAkR2VuZXJpY0FnZW50RGF0YXtOZXdTTEFJRH0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGF7TmV3U0xBfSA9ICRTTEFPYmplY3QtPlNMQUxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgU0xBSUQgPT4gJEdlbmVyaWNBZ2VudERhdGF7TmV3U0xBSUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRHZW5lcmljQWdlbnREYXRhe05ld1NMQUlEfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRBdHRyaWJ1dGUgZXEgJ05ld1N0YXRlSUQnICkgewogICAgICAgICAgICAgICAgaWYgKCAkR2VuZXJpY0FnZW50RGF0YXtOZXdTdGF0ZUlEfSApIHsKICAgICAgICAgICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YXtOZXdTdGF0ZX0gPSAkU3RhdGVPYmplY3QtPlN0YXRlTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBTdGF0ZUlEID0+ICRHZW5lcmljQWdlbnREYXRhe05ld1N0YXRlSUR9LAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRHZW5lcmljQWdlbnREYXRhe05ld1N0YXRlSUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnTmV3VHlwZUlEJyApIHsKICAgICAgICAgICAgICAgIGlmICggJEdlbmVyaWNBZ2VudERhdGF7TmV3VHlwZUlEfSApIHsKICAgICAgICAgICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YXtOZXdUeXBlfSA9ICRUeXBlT2JqZWN0LT5UeXBlTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICBUeXBlSUQgPT4gJEdlbmVyaWNBZ2VudERhdGF7TmV3VHlwZUlEfSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkR2VuZXJpY0FnZW50RGF0YXtOZXdUeXBlSUR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFycmF5IGF0dHJpYnV0ZXMKICAgICAgICAgICAgZWxzaWYgKCAkQXR0cmlidXRlIGVxICdMb2NrSURzJyApIHsKICAgICAgICAgICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkR2VuZXJpY0FnZW50RGF0YXtMb2NrSURzfSApICkgewogICAgICAgICAgICAgICAgICAgIG15IEBMb2NrczsKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJExvY2tJRCAoICRHZW5lcmljQWdlbnREYXRhe0xvY2tJRHN9LT5AKiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBATG9ja3MsICRMb2NrT2JqZWN0LT5Mb2NrTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgTG9ja0lEID0+ICRMb2NrSUQsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhe0xvY2tzfSA9IFxATG9ja3M7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRHZW5lcmljQWdlbnREYXRhe0xvY2tJRHN9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnT3duZXJJRHMnICkgewogICAgICAgICAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRHZW5lcmljQWdlbnREYXRhe093bmVySURzfSApICkgewogICAgICAgICAgICAgICAgICAgIG15IEBPd25lcnM7CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRPd25lcklEICggJEdlbmVyaWNBZ2VudERhdGF7T3duZXJJRHN9LT5AKiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAT3duZXJzLCAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkT3duZXJJRCwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGF7T3duZXJzfSA9IFxAT3duZXJzOwogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkR2VuZXJpY0FnZW50RGF0YXtPd25lcklEc307CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkQXR0cmlidXRlIGVxICdQcmlvcml0eUlEcycgKSB7CiAgICAgICAgICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJEdlbmVyaWNBZ2VudERhdGF7UHJpb3JpdHlJRHN9ICkgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgQFByaW9yaXRpZXM7CiAgICAgICAgICAgICAgICAgICAgZm9yIG15ICRQcmlvcml0eUlEICggJEdlbmVyaWNBZ2VudERhdGF7UHJpb3JpdHlJRHN9LT5AKiApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaCBAUHJpb3JpdGllcywgJFByaW9yaXR5T2JqZWN0LT5Qcmlvcml0eUxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByaW9yaXR5SUQgPT4gJFByaW9yaXR5SUQsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhe1ByaW9yaXRpZXN9ID0gXEBQcmlvcml0aWVzOwogICAgICAgICAgICAgICAgICAgIGRlbGV0ZSAkR2VuZXJpY0FnZW50RGF0YXtQcmlvcml0eUlEc307CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkQXR0cmlidXRlIGVxICdRdWV1ZUlEcycgKSB7CiAgICAgICAgICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJEdlbmVyaWNBZ2VudERhdGF7UXVldWVJRHN9ICkgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgQFF1ZXVlczsKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFF1ZXVlSUQgKCAkR2VuZXJpY0FnZW50RGF0YXtRdWV1ZUlEc30tPkAqICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBRdWV1ZXMsICRRdWV1ZU9iamVjdC0+UXVldWVMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICRRdWV1ZUlELAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YXtRdWV1ZXN9ID0gXEBRdWV1ZXM7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRHZW5lcmljQWdlbnREYXRhe1F1ZXVlSURzfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRBdHRyaWJ1dGUgZXEgJ1NlcnZpY2VJRHMnICkgewogICAgICAgICAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRHZW5lcmljQWdlbnREYXRhe1NlcnZpY2VJRHN9ICkgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgQFNlcnZpY2VzOwogICAgICAgICAgICAgICAgICAgIGZvciBteSAkU2VydmljZUlEICggJEdlbmVyaWNBZ2VudERhdGF7U2VydmljZUlEc30tPkAqICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBTZXJ2aWNlcywgJFNlcnZpY2VPYmplY3QtPlNlcnZpY2VMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgPT4gJFNlcnZpY2VJRCwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGF7U2VydmljZXN9ID0gXEBTZXJ2aWNlczsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJEdlbmVyaWNBZ2VudERhdGF7U2VydmljZUlEc307CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkQXR0cmlidXRlIGVxICdTTEFJRHMnICkgewogICAgICAgICAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRHZW5lcmljQWdlbnREYXRhe1NMQUlEc30gKSApIHsKICAgICAgICAgICAgICAgICAgICBteSBAU0xBczsKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFNMQUlEICggJEdlbmVyaWNBZ2VudERhdGF7U0xBSURzfS0+QCogKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHB1c2ggQFNMQXMsICRTTEFPYmplY3QtPlNMQUxvb2t1cCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNMQUlEID0+ICRTTEFJRCwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGF7U0xBc30gPSBcQFNMQXM7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRHZW5lcmljQWdlbnREYXRhe1NMQUlEc307CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkQXR0cmlidXRlIGVxICdTdGF0ZUlEcycgKSB7CiAgICAgICAgICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJEdlbmVyaWNBZ2VudERhdGF7U3RhdGVJRHN9ICkgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgQFN0YXRlczsKICAgICAgICAgICAgICAgICAgICBmb3IgbXkgJFN0YXRlSUQgKCAkR2VuZXJpY0FnZW50RGF0YXtTdGF0ZUlEc30tPkAqICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBTdGF0ZXMsICRTdGF0ZU9iamVjdC0+U3RhdGVMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0ZUlEID0+ICRTdGF0ZUlELAogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YXtTdGF0ZXN9ID0gXEBTdGF0ZXM7CiAgICAgICAgICAgICAgICAgICAgZGVsZXRlICRHZW5lcmljQWdlbnREYXRhe1N0YXRlSURzfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRBdHRyaWJ1dGUgZXEgJ1R5cGVJRHMnICkgewogICAgICAgICAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRHZW5lcmljQWdlbnREYXRhe1R5cGVJRHN9ICkgKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgQFR5cGVzOwogICAgICAgICAgICAgICAgICAgIGZvciBteSAkVHlwZUlEICggJEdlbmVyaWNBZ2VudERhdGF7VHlwZUlEc30tPkAqICkgewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoIEBUeXBlcywgJFR5cGVPYmplY3QtPlR5cGVMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlSUQgPT4gJFR5cGVJRCwKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGF7VHlwZXN9ID0gXEBUeXBlczsKICAgICAgICAgICAgICAgICAgICBkZWxldGUgJEdlbmVyaWNBZ2VudERhdGF7VHlwZUlEc307CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRFeHBvcnREYXRheyAkR2VuZXJpY0FnZW50RGF0YXtOYW1lfSB9ID0gXCVHZW5lcmljQWdlbnREYXRhOwogICAgfQoKICAgIHJldHVybiBcJUV4cG9ydERhdGE7Cn0KCnN1YiBJbXBvcnRHZW5lcmljQWdlbnRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFVzZXJJRCA9ICRTZWxmLT57VXNlcklEfSB8fCAkUGFyYW17VXNlcklEfTsKCiAgICAjIGdldCBuZWNlc3Nhcnkgb2JqZWN0cwogICAgbXkgJEdlbmVyaWNBZ2VudE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmljQWdlbnQnKTsKICAgIG15ICRMb2NrT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9jaycpOwogICAgbXkgJFByaW9yaXR5T2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQcmlvcml0eScpOwogICAgbXkgJFF1ZXVlT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwogICAgbXkgJFNlcnZpY2VPYmplY3QgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTZXJ2aWNlJyk7CiAgICBteSAkU0xBT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNMQScpOwogICAgbXkgJFN0YXRlT2JqZWN0ICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGF0ZScpOwogICAgbXkgJFR5cGVPYmplY3QgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUeXBlJyk7CiAgICBteSAkVXNlck9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKTsKCiAgICAjIGZldGNoIGxvb2t1cCBsaXN0cwogICAgbXkgJUdlbmVyaWNBZ2VudExpc3QgPSAkR2VuZXJpY0FnZW50T2JqZWN0LT5Kb2JMaXN0KCk7CgogICAgR0VORVJJQ0FHRU5UTkFNRToKICAgIGZvciBteSAkR2VuZXJpY0FnZW50TmFtZSAoIGtleXMgJFBhcmFte0dlbmVyaWNBZ2VudHN9LT4lKiApIHsKICAgICAgICBteSAkR2VuZXJpY0FnZW50RGF0YSA9ICRQYXJhbXtHZW5lcmljQWdlbnRzfXskR2VuZXJpY0FnZW50TmFtZX07CgogICAgICAgICMgY2hlY2sgaWYgdGhlcmUgZXhpc3RzIGEgZ2VuZXJpYyBhZ2VudCB3aXRoIHNhbWUgbmFtZSBpbiB0aGUgc3lzdGVtCiAgICAgICAgIyAgIE5PVEUgR2VuZXJpY0FnZW50TGlzdCBoYXMgZm9ybWF0IHsgTmFtZSA9PiAnTmFtZScgfSwgdGhlcmVmb3IgdXNpbmcgYSBsb29rdXAgaXMgdW5uZWNlc3NhcnkKICAgICAgICBteSAkR2VuZXJpY0FnZW50Q2hlY2tOYW1lID0gJEdlbmVyaWNBZ2VudExpc3R7ICRHZW5lcmljQWdlbnREYXRhLT57TmFtZX0gfTsKCiAgICAgICAgIyBza2lwIGlmIGdlbmVyaWMgYWdlbnQgd2l0aCBzYW1lIG5hbWUgZXhpc3RzIGFuZCBvdmVyd3JpdGUgaXMgbm90IHNldAogICAgICAgIG5leHQgR0VORVJJQ0FHRU5UTkFNRSBpZiAoICEkUGFyYW17T3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc30gJiYgJEdlbmVyaWNBZ2VudENoZWNrTmFtZSApOwoKICAgICAgICAjIHRyYW5zbGF0ZSBuYW1lZCBkYXRhIGJhY2sgdG8gSURzCiAgICAgICAgIyBzaW5nbGUtdmFsdWUgYXR0cmlidXRlcwogICAgICAgIGlmICggJEdlbmVyaWNBZ2VudERhdGEtPntOZXdMb2NrfSApIHsKICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGEtPntOZXdMb2NrSUR9ID0gJExvY2tPYmplY3QtPkxvY2tMb29rdXAoCiAgICAgICAgICAgICAgICBMb2NrID0+ICRHZW5lcmljQWdlbnREYXRhLT57TmV3TG9ja30sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICggJEdlbmVyaWNBZ2VudERhdGEtPntOZXdPd25lcn0gKSB7CiAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhLT57TmV3T3duZXJJRH0gPSAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkR2VuZXJpY0FnZW50RGF0YS0+e05ld093bmVyfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkR2VuZXJpY0FnZW50RGF0YS0+e05ld1ByaW9yaXR5fSApIHsKICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGEtPntOZXdQcmlvcml0eUlEfSA9ICRQcmlvcml0eU9iamVjdC0+UHJpb3JpdHlMb29rdXAoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAkR2VuZXJpY0FnZW50RGF0YS0+e05ld1ByaW9yaXR5fSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkR2VuZXJpY0FnZW50RGF0YS0+e05ld1F1ZXVlfSApIHsKICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGEtPntOZXdRdWV1ZUlEfSA9ICRRdWV1ZU9iamVjdC0+UXVldWVMb29rdXAoCiAgICAgICAgICAgICAgICBRdWV1ZSA9PiAkR2VuZXJpY0FnZW50RGF0YS0+e05ld1F1ZXVlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkR2VuZXJpY0FnZW50RGF0YS0+e05ld1NlcnZpY2V9ICkgewogICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YS0+e05ld1NlcnZpY2VJRH0gPSAkU2VydmljZU9iamVjdC0+U2VydmljZUxvb2t1cCgKICAgICAgICAgICAgICAgIE5hbWUgPT4gJEdlbmVyaWNBZ2VudERhdGEtPntOZXdTZXJ2aWNlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkR2VuZXJpY0FnZW50RGF0YS0+e05ld1NMQX0gKSB7CiAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhLT57TmV3U0xBSUR9ID0gJFNMQU9iamVjdC0+U0xBTG9va3VwKAogICAgICAgICAgICAgICAgTmFtZSA9PiAkR2VuZXJpY0FnZW50RGF0YS0+e05ld1NMQX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICggJEdlbmVyaWNBZ2VudERhdGEtPntOZXdTdGF0ZX0gKSB7CiAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhLT57TmV3U3RhdGVJRH0gPSAkU3RhdGVPYmplY3QtPlN0YXRlTG9va3VwKAogICAgICAgICAgICAgICAgU3RhdGUgPT4gJEdlbmVyaWNBZ2VudERhdGEtPntOZXdTdGF0ZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICggJEdlbmVyaWNBZ2VudERhdGEtPntOZXdUeXBlfSApIHsKICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGEtPntOZXdUeXBlSUR9ID0gJFR5cGVPYmplY3QtPlR5cGVMb29rdXAoCiAgICAgICAgICAgICAgICBUeXBlID0+ICRHZW5lcmljQWdlbnREYXRhLT57TmV3VHlwZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGFycmF5IGF0dHJpYnV0ZXMKICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJEdlbmVyaWNBZ2VudERhdGEtPntMb2Nrc30gKSApIHsKICAgICAgICAgICAgbXkgQExvY2tJRHM7CiAgICAgICAgICAgIGZvciBteSAkTG9jayAoICRHZW5lcmljQWdlbnREYXRhLT57TG9ja3N9LT5AKiApIHsKICAgICAgICAgICAgICAgIHB1c2ggQExvY2tJRHMsICRMb2NrT2JqZWN0LT5Mb2NrTG9va3VwKAogICAgICAgICAgICAgICAgICAgIExvY2sgPT4gJExvY2ssCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhLT57TG9ja0lEc30gPSBcQExvY2tJRHM7CiAgICAgICAgfQogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkR2VuZXJpY0FnZW50RGF0YS0+e093bmVyc30gKSApIHsKICAgICAgICAgICAgbXkgQE93bmVySURzOwogICAgICAgICAgICBmb3IgbXkgJE93bmVyICggJEdlbmVyaWNBZ2VudERhdGEtPntPd25lcnN9LT5AKiApIHsKICAgICAgICAgICAgICAgIHB1c2ggQE93bmVySURzLCAkVXNlck9iamVjdC0+VXNlckxvb2t1cCgKICAgICAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gJE93bmVyLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YS0+e093bmVySURzfSA9IFxAT3duZXJJRHM7CiAgICAgICAgfQogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkR2VuZXJpY0FnZW50RGF0YS0+e1ByaW9yaXRpZXN9ICkgKSB7CiAgICAgICAgICAgIG15IEBQcmlvcml0eUlEczsKICAgICAgICAgICAgZm9yIG15ICRQcmlvcml0eSAoICRHZW5lcmljQWdlbnREYXRhLT57UHJpb3JpdGllc30tPkAqICkgewogICAgICAgICAgICAgICAgcHVzaCBAUHJpb3JpdHlJRHMsICRQcmlvcml0eU9iamVjdC0+UHJpb3JpdHlMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJFByaW9yaXR5LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YS0+e1ByaW9yaXR5SURzfSA9IFxAUHJpb3JpdHlJRHM7CiAgICAgICAgfQogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkR2VuZXJpY0FnZW50RGF0YS0+e1F1ZXVlc30gKSApIHsKICAgICAgICAgICAgbXkgQFF1ZXVlSURzOwogICAgICAgICAgICBmb3IgbXkgJFF1ZXVlICggJEdlbmVyaWNBZ2VudERhdGEtPntRdWV1ZXN9LT5AKiApIHsKICAgICAgICAgICAgICAgIHB1c2ggQFF1ZXVlSURzLCAkUXVldWVPYmplY3QtPlF1ZXVlTG9va3VwKAogICAgICAgICAgICAgICAgICAgIFF1ZXVlID0+ICRRdWV1ZSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJEdlbmVyaWNBZ2VudERhdGEtPntRdWV1ZUlEc30gPSBcQFF1ZXVlSURzOwogICAgICAgIH0KICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJEdlbmVyaWNBZ2VudERhdGEtPntTZXJ2aWNlc30gKSApIHsKICAgICAgICAgICAgbXkgQFNlcnZpY2VJRHM7CiAgICAgICAgICAgIGZvciBteSAkU2VydmljZSAoICRHZW5lcmljQWdlbnREYXRhLT57U2VydmljZXN9LT5AKiApIHsKICAgICAgICAgICAgICAgIHB1c2ggQFNlcnZpY2VJRHMsICRTZXJ2aWNlT2JqZWN0LT5TZXJ2aWNlTG9va3VwKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJFNlcnZpY2UsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhLT57U2VydmljZUlEc30gPSBcQFNlcnZpY2VJRHM7CiAgICAgICAgfQogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkR2VuZXJpY0FnZW50RGF0YS0+e1NMQXN9ICkgKSB7CiAgICAgICAgICAgIG15IEBTTEFJRHM7CiAgICAgICAgICAgIGZvciBteSAkU0xBICggJEdlbmVyaWNBZ2VudERhdGEtPntTTEFzfS0+QCogKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBTTEFJRHMsICRTTEFPYmplY3QtPlNMQUxvb2t1cCgKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRTTEEsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhLT57U0xBSURzfSA9IFxAU0xBSURzOwogICAgICAgIH0KICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJEdlbmVyaWNBZ2VudERhdGEtPntTdGF0ZXN9ICkgKSB7CiAgICAgICAgICAgIG15IEBTdGF0ZUlEczsKICAgICAgICAgICAgZm9yIG15ICRTdGF0ZSAoICRHZW5lcmljQWdlbnREYXRhLT57U3RhdGVzfS0+QCogKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBTdGF0ZUlEcywgJFN0YXRlT2JqZWN0LT5TdGF0ZUxvb2t1cCgKICAgICAgICAgICAgICAgICAgICBTdGF0ZSA9PiAkU3RhdGUsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRHZW5lcmljQWdlbnREYXRhLT57U3RhdGVJRHN9ID0gXEBTdGF0ZUlEczsKICAgICAgICB9CiAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRHZW5lcmljQWdlbnREYXRhLT57VHlwZXN9ICkgKSB7CiAgICAgICAgICAgIG15IEBUeXBlSURzOwogICAgICAgICAgICBmb3IgbXkgJFR5cGUgKCAkR2VuZXJpY0FnZW50RGF0YS0+e1R5cGVzfS0+QCogKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBUeXBlSURzLCAkVHlwZU9iamVjdC0+VHlwZUxvb2t1cCgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICRUeXBlLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkR2VuZXJpY0FnZW50RGF0YS0+e1R5cGVJRHN9ID0gXEBUeXBlSURzOwogICAgICAgIH0KCiAgICAgICAgIyB1cGRhdGUKICAgICAgICBpZiAoJEdlbmVyaWNBZ2VudENoZWNrTmFtZSkgewoKICAgICAgICAgICAgIyByZW1vdmUvY2xlYW4gdXAgb2xkIHByb2ZpbGUgc3R1ZmYKICAgICAgICAgICAgJEdlbmVyaWNBZ2VudE9iamVjdC0+Sm9iRGVsZXRlKAogICAgICAgICAgICAgICAgTmFtZSAgID0+ICRHZW5lcmljQWdlbnRDaGVja05hbWUsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgaW5zZXJ0IG5ldyBwcm9maWxlIHBhcmFtcwogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRHZW5lcmljQWdlbnRPYmplY3QtPkpvYkFkZCgKICAgICAgICAgICAgICAgIE5hbWUgICA9PiAkR2VuZXJpY0FnZW50Q2hlY2tOYW1lLAogICAgICAgICAgICAgICAgRGF0YSAgID0+ICRHZW5lcmljQWdlbnREYXRhLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiB1bmxlc3MgJFN1Y2Nlc3M7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkR2VuZXJpY0FnZW50SUQgPSAkR2VuZXJpY0FnZW50T2JqZWN0LT5Kb2JBZGQoCiAgICAgICAgICAgICAgICBOYW1lICAgPT4gJEdlbmVyaWNBZ2VudERhdGEtPntOYW1lfSwKICAgICAgICAgICAgICAgIERhdGEgICA9PiAkR2VuZXJpY0FnZW50RGF0YSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gdW5sZXNzICRHZW5lcmljQWdlbnRJRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Autoload/GroupImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCgp1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwICgpOyAgICAjIyBubyBwZXJsaW1wb3J0cwoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6R3JvdXA7ICAgIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRmlsZW5hbWVNYXRjaGVzUGFja2FnZSkKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHY1LjI0Owp1c2UgdXRmODsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnLAopOwoKc3ViIEV4cG9ydEdyb3VwcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVHcm91cEZpbHRlcjsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17R3JvdXBzfSApICkgewogICAgICAgICVHcm91cEZpbHRlciA9IG1hcCB7ICRfID0+IDEgfSAkUGFyYW17R3JvdXBzfS0+QCo7CiAgICB9CgogICAgIyBnZXQgbmVjZXNzYXJ5IG9iamVjdHMKICAgIG15ICRHcm91cE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwogICAgbXkgJFZhbGlkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgIyBmZXRjaCBsb29rdXAgbGlzdHMKICAgIG15ICVHcm91cExpc3QgPSAkR3JvdXBPYmplY3QtPkdyb3VwTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICBteSAlRXhwb3J0RGF0YTsKICAgIEdST1VQSUQ6CiAgICBmb3IgbXkgJEdyb3VwSUQgKCBzb3J0IGtleXMgJUdyb3VwTGlzdCApIHsKCiAgICAgICAgbXkgJUdyb3VwRGF0YSA9ICRHcm91cE9iamVjdC0+R3JvdXBHZXQoCiAgICAgICAgICAgIElEID0+ICRHcm91cElELAogICAgICAgICk7CgogICAgICAgIGlmICglR3JvdXBGaWx0ZXIpIHsKICAgICAgICAgICAgbmV4dCBHUk9VUElEIHVubGVzcyAkR3JvdXBGaWx0ZXJ7ICRHcm91cERhdGF7TmFtZX0gfTsKICAgICAgICB9CgogICAgICAgICMgdHJhbnNsYXRlIElEcyBpbnRvIG5hbWVzIG9yIG5hbWUtbGlrZSBpZGVudGlmaWVycwogICAgICAgIEFUVFJJQlVURToKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIGtleXMgJUdyb3VwRGF0YSApIHsKCiAgICAgICAgICAgIG5leHQgQVRUUklCVVRFIHVubGVzcyAkQXR0cmlidXRlID1+IC9JRC87CgogICAgICAgICAgICAjIHNpbmdsZS12YWx1ZSBhdHRyaWJ1dGVzCiAgICAgICAgICAgIGlmICggJEF0dHJpYnV0ZSBlcSAnVmFsaWRJRCcgKSB7CiAgICAgICAgICAgICAgICBteSAkVmFsaWQgPSAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gJEdyb3VwRGF0YXtWYWxpZElEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkR3JvdXBEYXRhe1ZhbGlkfSA9ICRWYWxpZDsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkR3JvdXBEYXRhe1ZhbGlkSUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSB1bm5lZWRlZCBhdHRyaWJ1dGVzIHRvIGF2b2lkIGJsb2F0aW5nIHRoZSBleHBvcnQKICAgICAgICBkZWxldGUgJEdyb3VwRGF0YXtDaGFuZ2VCeX07CiAgICAgICAgZGVsZXRlICRHcm91cERhdGF7Q2hhbmdlVGltZX07CiAgICAgICAgZGVsZXRlICRHcm91cERhdGF7Q3JlYXRlQnl9OwogICAgICAgIGRlbGV0ZSAkR3JvdXBEYXRhe0NyZWF0ZVRpbWV9OwogICAgICAgIGRlbGV0ZSAkR3JvdXBEYXRhe0lEfTsKCiAgICAgICAgJEV4cG9ydERhdGF7ICRHcm91cERhdGF7TmFtZX0gfSA9IFwlR3JvdXBEYXRhOwogICAgfQoKICAgIHJldHVybiBcJUV4cG9ydERhdGE7Cn0KCnN1YiBJbXBvcnRHcm91cHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVXNlcklEID0gJFNlbGYtPntVc2VySUR9IHx8ICRQYXJhbXtVc2VySUR9OwoKICAgICMgZ2V0IG5lY2Vzc2FyeSBvYmplY3RzCiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKICAgIG15ICRWYWxpZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpOwoKICAgICMgZmV0Y2ggbG9va3VwIGxpc3RzCiAgICBteSAlR3JvdXBMaXN0ID0gJEdyb3VwT2JqZWN0LT5Hcm91cExpc3QoCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CiAgICBteSAlR3JvdXBMb29rdXAgPSByZXZlcnNlICVHcm91cExpc3Q7CgogICAgR1JPVVBOQU1FOgogICAgZm9yIG15ICRHcm91cE5hbWUgKCBrZXlzICRQYXJhbXtHcm91cHN9LT4lKiApIHsKICAgICAgICBteSAkR3JvdXBEYXRhID0gJFBhcmFte0dyb3Vwc317JEdyb3VwTmFtZX07CgogICAgICAgIG15ICRHcm91cElEID0gJEdyb3VwTG9va3VweyAkR3JvdXBEYXRhLT57TmFtZX0gfTsKCiAgICAgICAgIyBza2lwIGlmIGdyb3VwIHdpdGggc2FtZSBuYW1lIGV4aXN0cyBhbmQgb3ZlcndyaXRlIGlzIG5vdCBzZXQKICAgICAgICBuZXh0IEdST1VQTkFNRSBpZiAoICEkUGFyYW17T3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc30gJiYgJEdyb3VwSUQgKTsKCiAgICAgICAgIyB0cmFuc2xhdGUgbmFtZWQgZGF0YSBiYWNrIHRvIElEcwogICAgICAgICMgc2luZ2xlLXZhbHVlIGF0dHJpYnV0ZXMKICAgICAgICAkR3JvdXBEYXRhLT57VmFsaWRJRH0gPSAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKAogICAgICAgICAgICBWYWxpZCA9PiAkR3JvdXBEYXRhLT57VmFsaWR9LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlCiAgICAgICAgaWYgKCRHcm91cElEKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJEdyb3VwT2JqZWN0LT5Hcm91cFVwZGF0ZSgKICAgICAgICAgICAgICAgICRHcm91cERhdGEtPiUqLAogICAgICAgICAgICAgICAgSUQgICAgID0+ICRHcm91cElELAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiB1bmxlc3MgJFN1Y2Nlc3M7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkR3JvdXBJRCA9ICRHcm91cE9iamVjdC0+R3JvdXBBZGQoCiAgICAgICAgICAgICAgICAkR3JvdXBEYXRhLT4lKiwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gdW5sZXNzICRHcm91cElEOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Kernel/Autoload/QueueImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCgp1c2UgS2VybmVsOjpTeXN0ZW06OlF1ZXVlICgpOyAgICAjIyBubyBwZXJsaW1wb3J0cwoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6UXVldWU7ICAgIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRmlsZW5hbWVNYXRjaGVzUGFja2FnZSkKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHY1LjI0Owp1c2UgdXRmODsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U2FsdXRhdGlvbicsCiAgICAnS2VybmVsOjpTeXN0ZW06OlNpZ25hdHVyZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3MnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCik7CgpzdWIgRXhwb3J0UXVldWVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVF1ZXVlRmlsdGVyOwogICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoICRQYXJhbXtRdWV1ZXN9ICkgKSB7CiAgICAgICAgJVF1ZXVlRmlsdGVyID0gbWFwIHsgJF8gPT4gMSB9ICRQYXJhbXtRdWV1ZXN9LT5AKjsKICAgIH0KCiAgICAjIGdldCBuZWNlc3Nhcnkgb2JqZWN0cwogICAgbXkgJEdyb3VwT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKICAgIG15ICRRdWV1ZU9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyk7CiAgICBteSAkU2FsdXRhdGlvbk9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTYWx1dGF0aW9uJyk7CiAgICBteSAkU2lnbmF0dXJlT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTaWduYXR1cmUnKTsKICAgIG15ICRTeXN0ZW1BZGRyZXNzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3MnKTsKICAgIG15ICRWYWxpZE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgIyBmZXRjaCBsb29rdXAgbGlzdHMKICAgIG15ICVRdWV1ZUxpc3QgPSAkUXVldWVPYmplY3QtPlF1ZXVlTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKICAgIG15ICVGb2xsb3dVcE9wdGlvbnMgPSAkUXVldWVPYmplY3QtPkdldEZvbGxvd1VwT3B0aW9uTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICBteSAlRXhwb3J0RGF0YTsKICAgIFFVRVVFSUQ6CiAgICBmb3IgbXkgJFF1ZXVlSUQgKCBzb3J0IGtleXMgJVF1ZXVlTGlzdCApIHsKCiAgICAgICAgbXkgJVF1ZXVlRGF0YSA9ICRRdWV1ZU9iamVjdC0+UXVldWVHZXQoCiAgICAgICAgICAgIElEID0+ICRRdWV1ZUlELAogICAgICAgICk7CgogICAgICAgIGlmICglUXVldWVGaWx0ZXIpIHsKICAgICAgICAgICAgbmV4dCBRVUVVRUlEIHVubGVzcyAkUXVldWVGaWx0ZXJ7ICRRdWV1ZURhdGF7TmFtZX0gfTsKICAgICAgICB9CgogICAgICAgICMgdHJhbnNsYXRlIElEcyBpbnRvIG5hbWVzIG9yIG5hbWUtbGlrZSBpZGVudGlmaWVycwogICAgICAgIEFUVFJJQlVURToKICAgICAgICBmb3IgbXkgJEF0dHJpYnV0ZSAoIGtleXMgJVF1ZXVlRGF0YSApIHsKCiAgICAgICAgICAgIG5leHQgQVRUUklCVVRFIHVubGVzcyAkQXR0cmlidXRlID1+IC9JRC87CgogICAgICAgICAgICAjIHNpbmdsZS12YWx1ZSBhdHRyaWJ1dGVzCiAgICAgICAgICAgIGlmICggJEF0dHJpYnV0ZSBlcSAnVmFsaWRJRCcgKSB7CiAgICAgICAgICAgICAgICBteSAkVmFsaWQgPSAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gJFF1ZXVlRGF0YXtWYWxpZElEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkUXVldWVEYXRhe1ZhbGlkfSA9ICRWYWxpZDsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkUXVldWVEYXRhe1ZhbGlkSUR9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnRm9sbG93VXBJRCcgKSB7CiAgICAgICAgICAgICAgICAkUXVldWVEYXRhe0ZvbGxvd1VwfSA9ICRGb2xsb3dVcE9wdGlvbnN7ICRRdWV1ZURhdGF7Rm9sbG93VXBJRH0gfTsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkUXVldWVEYXRhe0ZvbGxvd1VwSUR9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnR3JvdXBJRCcgKSB7CiAgICAgICAgICAgICAgICBteSAkR3JvdXAgPSAkR3JvdXBPYmplY3QtPkdyb3VwTG9va3VwKAogICAgICAgICAgICAgICAgICAgIEdyb3VwSUQgPT4gJFF1ZXVlRGF0YXtHcm91cElEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkUXVldWVEYXRhe0dyb3VwfSA9ICRHcm91cDsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkUXVldWVEYXRhe0dyb3VwSUR9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnU2FsdXRhdGlvbklEJyApIHsKICAgICAgICAgICAgICAgIG15ICVTYWx1dGF0aW9uID0gJFNhbHV0YXRpb25PYmplY3QtPlNhbHV0YXRpb25HZXQoCiAgICAgICAgICAgICAgICAgICAgSUQgPT4gJFF1ZXVlRGF0YXtTYWx1dGF0aW9uSUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIHRyYW5zZm9ybSBJRHMgaW50byBuYW1lcyBhbmQgY2xlYW4gdXAgdW5uZWNlc3NhcnkgYXR0cmlidXRlcwogICAgICAgICAgICAgICAgJFNhbHV0YXRpb257VmFsaWR9ID0gJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCgKICAgICAgICAgICAgICAgICAgICBWYWxpZElEID0+ICRTYWx1dGF0aW9ue1ZhbGlkSUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkU2FsdXRhdGlvbntWYWxpZElEfTsKCiAgICAgICAgICAgICAgICBkZWxldGUgJFNhbHV0YXRpb257Q2hhbmdlVGltZX07CiAgICAgICAgICAgICAgICBkZWxldGUgJFNhbHV0YXRpb257Q3JlYXRlVGltZX07CiAgICAgICAgICAgICAgICBkZWxldGUgJFNhbHV0YXRpb257SUR9OwoKICAgICAgICAgICAgICAgICRRdWV1ZURhdGF7U2FsdXRhdGlvbn0gPSBcJVNhbHV0YXRpb247CiAgICAgICAgICAgICAgICBkZWxldGUgJFF1ZXVlRGF0YXtTYWx1dGF0aW9uSUR9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJEF0dHJpYnV0ZSBlcSAnU2lnbmF0dXJlSUQnICkgewogICAgICAgICAgICAgICAgbXkgJVNpZ25hdHVyZSA9ICRTaWduYXR1cmVPYmplY3QtPlNpZ25hdHVyZUdldCgKICAgICAgICAgICAgICAgICAgICBJRCA9PiAkUXVldWVEYXRhe1NpZ25hdHVyZUlEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyB0cmFuc2Zvcm0gSURzIGludG8gbmFtZXMgYW5kIGNsZWFuIHVwIHVubmVjZXNzYXJ5IGF0dHJpYnV0ZXMKICAgICAgICAgICAgICAgICRTaWduYXR1cmV7VmFsaWR9ID0gJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCgKICAgICAgICAgICAgICAgICAgICBWYWxpZElEID0+ICRTaWduYXR1cmV7VmFsaWRJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgZGVsZXRlICRTaWduYXR1cmV7VmFsaWRJRH07CgogICAgICAgICAgICAgICAgZGVsZXRlICRTaWduYXR1cmV7Q2hhbmdlVGltZX07CiAgICAgICAgICAgICAgICBkZWxldGUgJFNpZ25hdHVyZXtDcmVhdGVUaW1lfTsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkU2lnbmF0dXJle0lEfTsKCiAgICAgICAgICAgICAgICAkUXVldWVEYXRhe1NpZ25hdHVyZX0gPSBcJVNpZ25hdHVyZTsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkUXVldWVEYXRhe1NpZ25hdHVyZUlEfTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRBdHRyaWJ1dGUgZXEgJ1N5c3RlbUFkZHJlc3NJRCcgKSB7CiAgICAgICAgICAgICAgICBteSAlU3lzdGVtQWRkcmVzcyA9ICRTeXN0ZW1BZGRyZXNzT2JqZWN0LT5TeXN0ZW1BZGRyZXNzR2V0KAogICAgICAgICAgICAgICAgICAgIElEID0+ICRRdWV1ZURhdGF7U3lzdGVtQWRkcmVzc0lEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyB0cmFuc2Zvcm0gSURzIGludG8gbmFtZXMgYW5kIGNsZWFuIHVwIHVubmVjZXNzYXJ5IGF0dHJpYnV0ZXMKICAgICAgICAgICAgICAgICRTeXN0ZW1BZGRyZXNze1ZhbGlkfSA9ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgVmFsaWRJRCA9PiAkU3lzdGVtQWRkcmVzc3tWYWxpZElEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBkZWxldGUgJFN5c3RlbUFkZHJlc3N7VmFsaWRJRH07CiAgICAgICAgICAgICAgICAkU3lzdGVtQWRkcmVzc3tRdWV1ZX0gPSAkUXVldWVMaXN0eyAkU3lzdGVtQWRkcmVzc3tRdWV1ZUlEfSB9OwogICAgICAgICAgICAgICAgZGVsZXRlICRTeXN0ZW1BZGRyZXNze1F1ZXVlSUR9OwoKICAgICAgICAgICAgICAgIGRlbGV0ZSAkU3lzdGVtQWRkcmVzc3tDaGFuZ2VUaW1lfTsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkU3lzdGVtQWRkcmVzc3tDcmVhdGVUaW1lfTsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkU3lzdGVtQWRkcmVzc3tJRH07CgogICAgICAgICAgICAgICAgJFF1ZXVlRGF0YXtTeXN0ZW1BZGRyZXNzfSA9IFwlU3lzdGVtQWRkcmVzczsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkUXVldWVEYXRhe1N5c3RlbUFkZHJlc3NJRH07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgZGVsZXRlIHVubmVlZGVkIGF0dHJpYnV0ZXMgdG8gYXZvaWQgYmxvYXRpbmcgdGhlIGV4cG9ydAogICAgICAgIGRlbGV0ZSAkUXVldWVEYXRhe0NoYW5nZVRpbWV9OwogICAgICAgIGRlbGV0ZSAkUXVldWVEYXRhe0NyZWF0ZVRpbWV9OwogICAgICAgIGRlbGV0ZSAkUXVldWVEYXRhe0VtYWlsfTsKICAgICAgICBkZWxldGUgJFF1ZXVlRGF0YXtRdWV1ZUlEfTsKICAgICAgICBkZWxldGUgJFF1ZXVlRGF0YXtSZWFsbmFtZX07CgogICAgICAgICRFeHBvcnREYXRheyAkUXVldWVEYXRhe05hbWV9IH0gPSBcJVF1ZXVlRGF0YTsKICAgIH0KCiAgICByZXR1cm4gXCVFeHBvcnREYXRhOwp9CgpzdWIgSW1wb3J0UXVldWVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFVzZXJJRCA9ICRTZWxmLT57VXNlcklEfSB8fCAkUGFyYW17VXNlcklEfTsKCiAgICAjIGdldCBuZWNlc3Nhcnkgb2JqZWN0cwogICAgbXkgJEdyb3VwT2JqZWN0ICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKICAgIG15ICRRdWV1ZU9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyk7CiAgICBteSAkU2FsdXRhdGlvbk9iamVjdCAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTYWx1dGF0aW9uJyk7CiAgICBteSAkU2lnbmF0dXJlT2JqZWN0ICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTaWduYXR1cmUnKTsKICAgIG15ICRTeXN0ZW1BZGRyZXNzT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3MnKTsKICAgIG15ICRWYWxpZE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgIyBmZXRjaCBsb29rdXAgbGlzdHMKICAgIG15ICVGb2xsb3dVcE9wdGlvbkxpc3QgPSAkUXVldWVPYmplY3QtPkdldEZvbGxvd1VwT3B0aW9uTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKICAgIG15ICVGb2xsb3dVcE9wdGlvbkxvb2t1cCA9IHJldmVyc2UgJUZvbGxvd1VwT3B0aW9uTGlzdDsKICAgIG15ICVRdWV1ZUxpc3QgICAgICAgICAgICA9ICRRdWV1ZU9iamVjdC0+UXVldWVMaXN0KAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwogICAgbXkgJVF1ZXVlTG9va3VwICAgID0gcmV2ZXJzZSAlUXVldWVMaXN0OwogICAgbXkgJVNhbHV0YXRpb25MaXN0ID0gJFNhbHV0YXRpb25PYmplY3QtPlNhbHV0YXRpb25MaXN0KAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwogICAgbXkgJVNhbHV0YXRpb25Mb29rdXAgPSByZXZlcnNlICVTYWx1dGF0aW9uTGlzdDsKICAgIG15ICVTaWduYXR1cmVMaXN0ICAgID0gJFNpZ25hdHVyZU9iamVjdC0+U2lnbmF0dXJlTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKICAgIG15ICVTaWduYXR1cmVMb29rdXAgICA9IHJldmVyc2UgJVNpZ25hdHVyZUxpc3Q7CiAgICBteSAlU3lzdGVtQWRkcmVzc0xpc3QgPSAkU3lzdGVtQWRkcmVzc09iamVjdC0+U3lzdGVtQWRkcmVzc0xpc3QoCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CiAgICBteSAlU3lzdGVtQWRkcmVzc0xvb2t1cCA9IHJldmVyc2UgJVN5c3RlbUFkZHJlc3NMaXN0OwoKICAgICMgc3RvcmUgc3lzdGVtIGFkZHJlc3NlcyBhbmQgaGFuZGxlIHRoZW0gYWZ0ZXJ3YXJkcyB0byBhdm9pZCBjb2xsaXNpb25zCiAgICBteSAlU3lzdGVtQWRkcmVzc2VzOwoKICAgIFFVRVVFTkFNRToKICAgIGZvciBteSAkUXVldWVOYW1lICgga2V5cyAkUGFyYW17UXVldWVzfS0+JSogKSB7CiAgICAgICAgbXkgJFF1ZXVlRGF0YSA9ICRQYXJhbXtRdWV1ZXN9eyRRdWV1ZU5hbWV9OwoKICAgICAgICAjIGluIGNhc2Ugb2YgY2hpbGQgcXVldWUsIGNoZWNrIGlmIGFsbCBwYXJlbnQgcXVldWVzIGFyZSBwcmVzZW50CiAgICAgICAgIyAgIGVpdGhlciBpbiB0aGUgc3lzdGVtIG9yIGluIHRoZSBpbXBvcnQgZGF0YQogICAgICAgIG15IEBOYW1lRWxlbWVudHMgPSBzcGxpdCggLzo6LywgJFF1ZXVlRGF0YS0+e05hbWV9ICk7CgogICAgICAgICMgY2hlY2sgaWYgcXVldWUgbGV2ZWxzIGNvbmZvcm0gdG8gc3lzdGVtIGNvbmZpZ3VyYXRpb24KICAgICAgICBteSAkTWF4UXVldWVMZXZlbCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TWF4UXVldWVMZXZlbCcpOwogICAgICAgIGlmICggc2NhbGFyIEBOYW1lRWxlbWVudHMgPiAkTWF4UXVldWVMZXZlbCApIHsKICAgICAgICAgICAgbmV4dCBRVUVVRU5BTUU7CiAgICAgICAgfQoKICAgICAgICBpZiAoIHNjYWxhciBATmFtZUVsZW1lbnRzID4gMSApIHsKICAgICAgICAgICAgbXkgJE5hbWVTdHJnID0gJyc7CiAgICAgICAgICAgIGZvciBteSAkSW5kZXggKCAwIC4uICQjTmFtZUVsZW1lbnRzIC0gMSApIHsKICAgICAgICAgICAgICAgIGlmICgkTmFtZVN0cmcpIHsKICAgICAgICAgICAgICAgICAgICAkTmFtZVN0cmcgLj0gJzo6JyAuICROYW1lRWxlbWVudHNbJEluZGV4XTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICROYW1lU3RyZyA9ICROYW1lRWxlbWVudHNbJEluZGV4XTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoICEkUXVldWVMb29rdXB7JE5hbWVTdHJnfSAmJiAhJFBhcmFte1F1ZXVlc317JE5hbWVTdHJnfSApIHsKCiAgICAgICAgICAgICAgICAgICAgIyBwYXJlbnQgZWxlbWVudCBub3QgZm91bmQsIHNraXBwaW5nCiAgICAgICAgICAgICAgICAgICAgbmV4dCBRVUVVRU5BTUU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRRdWV1ZUlEID0gJFF1ZXVlTG9va3VweyAkUXVldWVEYXRhLT57TmFtZX0gfTsKCiAgICAgICAgIyBza2lwIGlmIHF1ZXVlIHdpdGggc2FtZSBuYW1lIGV4aXN0cyBhbmQgb3ZlcndyaXRlIGlzIG5vdCBzZXQKICAgICAgICBuZXh0IFFVRVVFTkFNRSBpZiAoICEkUGFyYW17T3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc30gJiYgJFF1ZXVlSUQgKTsKCiAgICAgICAgIyBjcmVhdGUgb3IgdXBkYXRlIG5lY2Vzc2FyeSBwcmV2aW91cyBvYmplY3RzCiAgICAgICAgaWYgKCAkUXVldWVEYXRhLT57U2FsdXRhdGlvbn0gKSB7CiAgICAgICAgICAgIG15ICVTYWx1dGF0aW9uID0gJFF1ZXVlRGF0YS0+e1NhbHV0YXRpb259LT4lKjsKCiAgICAgICAgICAgICMgdHJhbnNmb3JtIG5hbWVzIGJhY2sgdG8gSURzIHdoZXJlIG5lY2Vzc2FyeQogICAgICAgICAgICAkU2FsdXRhdGlvbntWYWxpZElEfSA9ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgICAgICBWYWxpZCA9PiAkU2FsdXRhdGlvbntWYWxpZH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIGNoZWNrIGlmIHNhbHV0YXRpb24gYWxyZWFkeSBleGlzdHMKICAgICAgICAgICAgbXkgJFNhbHV0YXRpb25JRCA9ICRTYWx1dGF0aW9uTG9va3VweyAkU2FsdXRhdGlvbntOYW1lfSB9OwoKICAgICAgICAgICAgaWYgKCAkU2FsdXRhdGlvbklEICYmICRQYXJhbXtPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzfSApIHsKICAgICAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNhbHV0YXRpb25PYmplY3QtPlNhbHV0YXRpb25VcGRhdGUoCiAgICAgICAgICAgICAgICAgICAgJVNhbHV0YXRpb24sCiAgICAgICAgICAgICAgICAgICAgSUQgICAgID0+ICRTYWx1dGF0aW9uSUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgUVVFVUVOQU1FIHVubGVzcyAkU3VjY2VzczsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICEkU2FsdXRhdGlvbklEICkgewogICAgICAgICAgICAgICAgJFNhbHV0YXRpb25JRCA9ICRTYWx1dGF0aW9uT2JqZWN0LT5TYWx1dGF0aW9uQWRkKAogICAgICAgICAgICAgICAgICAgICVTYWx1dGF0aW9uLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRTYWx1dGF0aW9uTG9va3VweyAkU2FsdXRhdGlvbntOYW1lfSB9ID0gJFNhbHV0YXRpb25JRDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkUXVldWVEYXRhLT57U2FsdXRhdGlvbklEfSA9ICRTYWx1dGF0aW9uSUQ7CiAgICAgICAgfQogICAgICAgIGlmICggJFF1ZXVlRGF0YS0+e1NpZ25hdHVyZX0gKSB7CiAgICAgICAgICAgIG15ICVTaWduYXR1cmUgPSAkUXVldWVEYXRhLT57U2lnbmF0dXJlfS0+JSo7CgogICAgICAgICAgICAjIHRyYW5zZm9ybSBuYW1lcyBiYWNrIHRvIElEcyB3aGVyZSBuZWNlc3NhcnkKICAgICAgICAgICAgJFNpZ25hdHVyZXtWYWxpZElEfSA9ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgICAgICBWYWxpZCA9PiAkU2lnbmF0dXJle1ZhbGlkfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgY2hlY2sgaWYgc2FsdXRhdGlvbiBhbHJlYWR5IGV4aXN0cwogICAgICAgICAgICBteSAkU2lnbmF0dXJlSUQgPSAkU2lnbmF0dXJlTG9va3VweyAkU2lnbmF0dXJle05hbWV9IH07CgogICAgICAgICAgICBpZiAoICRTaWduYXR1cmVJRCAmJiAkUGFyYW17T3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc30gKSB7CiAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTaWduYXR1cmVPYmplY3QtPlNpZ25hdHVyZVVwZGF0ZSgKICAgICAgICAgICAgICAgICAgICAlU2lnbmF0dXJlLAogICAgICAgICAgICAgICAgICAgIElEICAgICA9PiAkU2lnbmF0dXJlSUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgIG5leHQgUVVFVUVOQU1FIHVubGVzcyAkU3VjY2VzczsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICEkU2lnbmF0dXJlSUQgKSB7CiAgICAgICAgICAgICAgICAkU2lnbmF0dXJlSUQgPSAkU2lnbmF0dXJlT2JqZWN0LT5TaWduYXR1cmVBZGQoCiAgICAgICAgICAgICAgICAgICAgJVNpZ25hdHVyZSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkU2lnbmF0dXJlTG9va3VweyAkU2lnbmF0dXJle05hbWV9IH0gPSAkU2lnbmF0dXJlSUQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFF1ZXVlRGF0YS0+e1NpZ25hdHVyZUlEfSA9ICRTaWduYXR1cmVJRDsKICAgICAgICB9CgogICAgICAgICMgdHJhbnNsYXRlIG5hbWVkIGRhdGEgYmFjayB0byBJRHMKICAgICAgICAjIHNpbmdsZS12YWx1ZSBhdHRyaWJ1dGVzCiAgICAgICAgJFF1ZXVlRGF0YS0+e0ZvbGxvd1VwSUR9ID0gJEZvbGxvd1VwT3B0aW9uTG9va3VweyAkUXVldWVEYXRhLT57Rm9sbG93VXB9IH07CiAgICAgICAgJFF1ZXVlRGF0YS0+e0dyb3VwSUR9ICAgID0gJEdyb3VwT2JqZWN0LT5Hcm91cExvb2t1cCgKICAgICAgICAgICAgR3JvdXAgPT4gJFF1ZXVlRGF0YS0+e0dyb3VwfSwKICAgICAgICApOwogICAgICAgICRRdWV1ZURhdGEtPntWYWxpZElEfSA9ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgIFZhbGlkID0+ICRRdWV1ZURhdGEtPntWYWxpZH0sCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUKICAgICAgICBpZiAoJFF1ZXVlSUQpIHsKCiAgICAgICAgICAgICMgZ2V0IHN5c3RlbSBhZGRyZXNzIGlkIGFuZCBzZXQgaXQKICAgICAgICAgICAgaWYgKCAkUXVldWVEYXRhLT57U3lzdGVtQWRkcmVzc30gKSB7CiAgICAgICAgICAgICAgICBteSAlU3lzdGVtQWRkcmVzcyA9ICRRdWV1ZURhdGEtPntTeXN0ZW1BZGRyZXNzfS0+JSo7CgogICAgICAgICAgICAgICAgIyB0cmFuc2Zvcm0gbmFtZXMgYmFjayB0byBJRHMgd2hlcmUgbmVjZXNzYXJ5CiAgICAgICAgICAgICAgICAkU3lzdGVtQWRkcmVzc3tWYWxpZElEfSA9ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgVmFsaWQgPT4gJFN5c3RlbUFkZHJlc3N7VmFsaWR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAkU3lzdGVtQWRkcmVzc3tRdWV1ZUlEfSA9ICRRdWV1ZU9iamVjdC0+UXVldWVMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgUXVldWUgPT4gJFN5c3RlbUFkZHJlc3N7UXVldWV9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBteSAkU3lzdGVtQWRkcmVzc0lEID0gJFN5c3RlbUFkZHJlc3NMb29rdXB7ICRTeXN0ZW1BZGRyZXNze05hbWV9IH07CgogICAgICAgICAgICAgICAgaWYgKCAkU3lzdGVtQWRkcmVzc0lEICYmICRQYXJhbXtPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzfSApIHsKICAgICAgICAgICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTeXN0ZW1BZGRyZXNzT2JqZWN0LT5TeXN0ZW1BZGRyZXNzVXBkYXRlKAogICAgICAgICAgICAgICAgICAgICAgICAlU3lzdGVtQWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgSUQgICAgID0+ICRTeXN0ZW1BZGRyZXNzTG9va3VweyAkU3lzdGVtQWRkcmVzc3tOYW1lfSB9LAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBuZXh0IFFVRVVFTkFNRSB1bmxlc3MgJFN1Y2Nlc3M7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNpZiAoICEkU3lzdGVtQWRkcmVzc0lEICkgewogICAgICAgICAgICAgICAgICAgICRTeXN0ZW1BZGRyZXNzSUQgPSAkU3lzdGVtQWRkcmVzc09iamVjdC0+U3lzdGVtQWRkcmVzc0FkZCgKICAgICAgICAgICAgICAgICAgICAgICAgJVN5c3RlbUFkZHJlc3MsCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgJFN5c3RlbUFkZHJlc3NMb29rdXB7ICRTeXN0ZW1BZGRyZXNze05hbWV9IH0gPSAkU3lzdGVtQWRkcmVzc0lEOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJFF1ZXVlRGF0YS0+e1N5c3RlbUFkZHJlc3NJRH0gPSAkU3lzdGVtQWRkcmVzc0lEOwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRRdWV1ZU9iamVjdC0+UXVldWVVcGRhdGUoCiAgICAgICAgICAgICAgICAkUXVldWVEYXRhLT4lKiwKICAgICAgICAgICAgICAgIFF1ZXVlSUQgPT4gJFF1ZXVlSUQsCiAgICAgICAgICAgICAgICBVc2VySUQgID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiB1bmxlc3MgJFN1Y2Nlc3M7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkUXVldWVJRCA9ICRRdWV1ZU9iamVjdC0+UXVldWVBZGQoCiAgICAgICAgICAgICAgICAkUXVldWVEYXRhLT4lKiwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gdW5sZXNzICRRdWV1ZUlEOwoKICAgICAgICAgICAgaWYgKCAkUXVldWVEYXRhLT57U3lzdGVtQWRkcmVzc30gKSB7CiAgICAgICAgICAgICAgICAkU3lzdGVtQWRkcmVzc2VzeyAkUXVldWVEYXRhLT57TmFtZX0gfSA9ICRRdWV1ZURhdGEtPntTeXN0ZW1BZGRyZXNzfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHJlZnJlc2ggc3lzdGVtIGFkZHJlc3MgbGlzdCBhbmQgbG9va3VwCiAgICAlU3lzdGVtQWRkcmVzc0xpc3QgPSAkU3lzdGVtQWRkcmVzc09iamVjdC0+U3lzdGVtQWRkcmVzc0xpc3QoCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CiAgICAlU3lzdGVtQWRkcmVzc0xvb2t1cCA9IHJldmVyc2UgJVN5c3RlbUFkZHJlc3NMaXN0OwoKICAgICMgY3JlYXRlIG9yIHVwZGF0ZSBzeXN0ZW0gYWRkcmVzc2VzCiAgICBRVUVVRU5BTUU6CiAgICBmb3IgbXkgJFF1ZXVlTmFtZSAoIGtleXMgJVN5c3RlbUFkZHJlc3NlcyApIHsKCiAgICAgICAgbXkgJVN5c3RlbUFkZHJlc3MgPSAkU3lzdGVtQWRkcmVzc2VzeyRRdWV1ZU5hbWV9LT4lKjsKICAgICAgICBteSAlUXVldWVEYXRhICAgICA9ICRRdWV1ZU9iamVjdC0+UXVldWVHZXQoCiAgICAgICAgICAgIE5hbWUgPT4gJFF1ZXVlTmFtZSwKICAgICAgICApOwoKICAgICAgICAjIHRyYW5zZm9ybSBuYW1lcyBiYWNrIHRvIElEcyB3aGVyZSBuZWNlc3NhcnkKICAgICAgICAkU3lzdGVtQWRkcmVzc3tWYWxpZElEfSA9ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgIFZhbGlkID0+ICRTeXN0ZW1BZGRyZXNze1ZhbGlkfSwKICAgICAgICApOwoKICAgICAgICAkU3lzdGVtQWRkcmVzc3tRdWV1ZUlEfSA9ICRRdWV1ZU9iamVjdC0+UXVldWVMb29rdXAoCiAgICAgICAgICAgIFF1ZXVlID0+ICRTeXN0ZW1BZGRyZXNze1F1ZXVlfSwKICAgICAgICApOwoKICAgICAgICBteSAkU3lzdGVtQWRkcmVzc0lEID0gJFN5c3RlbUFkZHJlc3NMb29rdXB7ICRTeXN0ZW1BZGRyZXNze05hbWV9IH07CgogICAgICAgIGlmICggJFN5c3RlbUFkZHJlc3NJRCAmJiAkUGFyYW17T3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc30gKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFN5c3RlbUFkZHJlc3NPYmplY3QtPlN5c3RlbUFkZHJlc3NVcGRhdGUoCiAgICAgICAgICAgICAgICAlU3lzdGVtQWRkcmVzcywKICAgICAgICAgICAgICAgIElEICAgICA9PiAkU3lzdGVtQWRkcmVzc0xvb2t1cHsgJFN5c3RlbUFkZHJlc3N7TmFtZX0gfSwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbmV4dCBRVUVVRU5BTUUgdW5sZXNzICRTdWNjZXNzOwogICAgICAgIH0KICAgICAgICBlbHNpZiAoICEkU3lzdGVtQWRkcmVzc0lEICkgewoKICAgICAgICAgICAgJFN5c3RlbUFkZHJlc3NJRCA9ICRTeXN0ZW1BZGRyZXNzT2JqZWN0LT5TeXN0ZW1BZGRyZXNzQWRkKAogICAgICAgICAgICAgICAgJVN5c3RlbUFkZHJlc3MsCiAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFVzZXJJRCwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJFN5c3RlbUFkZHJlc3NMb29rdXB7ICRTeXN0ZW1BZGRyZXNze05hbWV9IH0gPSAkU3lzdGVtQWRkcmVzc0lEOwogICAgICAgIH0KCiAgICAgICAgIyB1cGRhdGUgcXVldWUgYW5kIHNldCBzeXN0ZW0gYWRkcmVzcyBpZAogICAgICAgIG15ICRTdWNjZXNzID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZVVwZGF0ZSgKICAgICAgICAgICAgJVF1ZXVlRGF0YSwKICAgICAgICAgICAgU3lzdGVtQWRkcmVzc0lEID0+ICRTeXN0ZW1BZGRyZXNzSUQsCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAkVXNlcklELAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIHVubGVzcyAkU3VjY2VzczsKICAgIH0KCiAgICByZXR1cm4gMTsKfQoKMTsK</File>
        <File Location="Kernel/Autoload/QueueTemplatesImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCgp1c2UgS2VybmVsOjpTeXN0ZW06OlF1ZXVlICgpOyAgICAjIyBubyBwZXJsaW1wb3J0cwoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6UXVldWU7ICAgIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRmlsZW5hbWVNYXRjaGVzUGFja2FnZSkKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHY1LjI0Owp1c2UgdXRmODsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN0YW5kYXJkVGVtcGxhdGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCik7CgpzdWIgRXhwb3J0UXVldWVUZW1wbGF0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlUXVldWVGaWx0ZXI7CiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1F1ZXVlc30gKSApIHsKICAgICAgICAlUXVldWVGaWx0ZXIgPSBtYXAgeyAkXyA9PiAxIH0gJFBhcmFte1F1ZXVlc30tPkAqOwogICAgfQoKICAgICMgZ2V0IG5lY2Vzc2FyeSBvYmplY3RzCiAgICBteSAkUXVldWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKCiAgICAjIGZldGNoIGxvb2t1cCBsaXN0cwogICAgbXkgJVF1ZXVlTGlzdCA9ICRRdWV1ZU9iamVjdC0+UXVldWVMaXN0KAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwoKICAgIG15ICVFeHBvcnREYXRhOwogICAgUVVFVUVJRDoKICAgIGZvciBteSAkUXVldWVJRCAoIHNvcnQga2V5cyAlUXVldWVMaXN0ICkgewoKICAgICAgICBteSAlUXVldWVEYXRhID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFF1ZXVlSUQsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCVRdWV1ZUZpbHRlcikgewogICAgICAgICAgICBuZXh0IFFVRVVFSUQgdW5sZXNzICRRdWV1ZUZpbHRlcnsgJFF1ZXVlRGF0YXtOYW1lfSB9OwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgYXNzaWduZWQgdGVtcGxhdGVzCiAgICAgICAgbXkgJVF1ZXVlVGVtcGxhdGVzID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZVN0YW5kYXJkVGVtcGxhdGVNZW1iZXJMaXN0KAogICAgICAgICAgICBRdWV1ZUlEID0+ICRRdWV1ZUlELAogICAgICAgICk7CgogICAgICAgIG15IEBRdWV1ZVRlbXBsYXRlcyA9IHZhbHVlcyAlUXVldWVUZW1wbGF0ZXM7CgogICAgICAgICRFeHBvcnREYXRheyAkUXVldWVEYXRhe05hbWV9IH0gPSBcQFF1ZXVlVGVtcGxhdGVzOwogICAgfQoKICAgIHJldHVybiBcJUV4cG9ydERhdGE7Cn0KCnN1YiBJbXBvcnRRdWV1ZVRlbXBsYXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRVc2VySUQgPSAkU2VsZi0+e1VzZXJJRH0gfHwgJFBhcmFte1VzZXJJRH07CgogICAgIyBnZXQgbmVjZXNzYXJ5IG9iamVjdHMKICAgIG15ICRRdWV1ZU9iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyk7CiAgICBteSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGFuZGFyZFRlbXBsYXRlJyk7CgogICAgIyBmZXRjaCBsb29rdXAgbGlzdHMKICAgIG15ICVRdWV1ZUxpc3QgPSAkUXVldWVPYmplY3QtPlF1ZXVlTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKICAgIG15ICVRdWV1ZUxvb2t1cCAgICAgICAgICA9IHJldmVyc2UgJVF1ZXVlTGlzdDsKICAgIG15ICVTdGFuZGFyZFRlbXBsYXRlTGlzdCA9ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5TdGFuZGFyZFRlbXBsYXRlTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKICAgIG15ICVTdGFuZGFyZFRlbXBsYXRlTG9va3VwID0gcmV2ZXJzZSAlU3RhbmRhcmRUZW1wbGF0ZUxpc3Q7CgogICAgUVVFVUVOQU1FOgogICAgZm9yIG15ICRRdWV1ZU5hbWUgKCBrZXlzICRQYXJhbXtRdWV1ZVRlbXBsYXRlc30tPiUqICkgewogICAgICAgIG15ICRRdWV1ZVRlbXBsYXRlcyA9ICRQYXJhbXtRdWV1ZVRlbXBsYXRlc317JFF1ZXVlTmFtZX07CgogICAgICAgIG15ICRRdWV1ZUlEID0gJFF1ZXVlTG9va3VweyRRdWV1ZU5hbWV9OwoKICAgICAgICAjIHNraXAgcXVldWVzIHdoaWNoIGRvIG5vdCBleGlzdCBvbiB0aGUgc3lzdGVtCiAgICAgICAgbmV4dCBRVUVVRU5BTUUgdW5sZXNzICRRdWV1ZUlEOwoKICAgICAgICBURU1QTEFURU5BTUU6CiAgICAgICAgZm9yIG15ICRUZW1wbGF0ZU5hbWUgKCAkUXVldWVUZW1wbGF0ZXMtPkAqICkgewoKICAgICAgICAgICAgIyBteSAkQWN0aXZlID0gJFRlbXBsYXRlc1NlbGVjdGVkeyRUZW1wbGF0ZUlEfSA/IDEgOiAwOwoKICAgICAgICAgICAgbXkgJFN0YW5kYXJkVGVtcGxhdGVJRCA9ICRTdGFuZGFyZFRlbXBsYXRlTG9va3VweyRUZW1wbGF0ZU5hbWV9OwoKICAgICAgICAgICAgbmV4dCBURU1QTEFURSB1bmxlc3MgJFN0YW5kYXJkVGVtcGxhdGVJRDsKCiAgICAgICAgICAgICMgc2V0IGN1c3RvbWVyIHVzZXIgc2VydmljZSBtZW1iZXIKICAgICAgICAgICAgJFF1ZXVlT2JqZWN0LT5RdWV1ZVN0YW5kYXJkVGVtcGxhdGVNZW1iZXJBZGQoCiAgICAgICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgPT4gJFF1ZXVlSUQsCiAgICAgICAgICAgICAgICBTdGFuZGFyZFRlbXBsYXRlSUQgPT4gJFN0YW5kYXJkVGVtcGxhdGVJRCwKICAgICAgICAgICAgICAgIEFjdGl2ZSAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/Autoload/RoleImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCgp1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwICgpOyAgICAjIyBubyBwZXJsaW1wb3J0cwoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6R3JvdXA7ICAgIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRmlsZW5hbWVNYXRjaGVzUGFja2FnZSkKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHY1LjI0Owp1c2UgdXRmODsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnLAopOwoKc3ViIEV4cG9ydFJvbGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVJvbGVGaWx0ZXI7CiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1JvbGVzfSApICkgewogICAgICAgICVSb2xlRmlsdGVyID0gbWFwIHsgJF8gPT4gMSB9ICRQYXJhbXtSb2xlc30tPkAqOwogICAgfQoKICAgICMgZ2V0IG5lY2Vzc2FyeSBvYmplY3RzCiAgICBteSAkR3JvdXBPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKICAgIG15ICRWYWxpZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpOwoKICAgICMgZmV0Y2ggbG9va3VwIGxpc3RzCiAgICBteSAlUm9sZUxpc3QgPSAkR3JvdXBPYmplY3QtPlJvbGVMaXN0KAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwoKICAgIG15ICVFeHBvcnREYXRhOwogICAgUk9MRUlEOgogICAgZm9yIG15ICRSb2xlSUQgKCBzb3J0IGtleXMgJVJvbGVMaXN0ICkgewoKICAgICAgICBteSAlUm9sZURhdGEgPSAkR3JvdXBPYmplY3QtPlJvbGVHZXQoCiAgICAgICAgICAgIElEID0+ICRSb2xlSUQsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCVSb2xlRmlsdGVyKSB7CiAgICAgICAgICAgIG5leHQgUk9MRUlEIHVubGVzcyAkUm9sZUZpbHRlcnsgJFJvbGVEYXRhe05hbWV9IH07CiAgICAgICAgfQoKICAgICAgICAjIHRyYW5zbGF0ZSBJRHMgaW50byBuYW1lcyBvciBuYW1lLWxpa2UgaWRlbnRpZmllcnMKICAgICAgICBBVFRSSUJVVEU6CiAgICAgICAgZm9yIG15ICRBdHRyaWJ1dGUgKCBrZXlzICVSb2xlRGF0YSApIHsKCiAgICAgICAgICAgIG5leHQgQVRUUklCVVRFIHVubGVzcyAkQXR0cmlidXRlID1+IC9JRC87CgogICAgICAgICAgICAjIHNpbmdsZS12YWx1ZSBhdHRyaWJ1dGVzCiAgICAgICAgICAgIGlmICggJEF0dHJpYnV0ZSBlcSAnVmFsaWRJRCcgKSB7CiAgICAgICAgICAgICAgICBteSAkVmFsaWQgPSAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gJFJvbGVEYXRhe1ZhbGlkSUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRSb2xlRGF0YXtWYWxpZH0gPSAkVmFsaWQ7CiAgICAgICAgICAgICAgICBkZWxldGUgJFJvbGVEYXRhe1ZhbGlkSUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSB1bm5lZWRlZCBhdHRyaWJ1dGVzIHRvIGF2b2lkIGJsb2F0aW5nIHRoZSBleHBvcnQKICAgICAgICBkZWxldGUgJFJvbGVEYXRhe0NoYW5nZUJ5fTsKICAgICAgICBkZWxldGUgJFJvbGVEYXRhe0NoYW5nZVRpbWV9OwogICAgICAgIGRlbGV0ZSAkUm9sZURhdGF7Q3JlYXRlQnl9OwogICAgICAgIGRlbGV0ZSAkUm9sZURhdGF7Q3JlYXRlVGltZX07CiAgICAgICAgZGVsZXRlICRSb2xlRGF0YXtJRH07CgogICAgICAgICRFeHBvcnREYXRheyAkUm9sZURhdGF7TmFtZX0gfSA9IFwlUm9sZURhdGE7CiAgICB9CgogICAgcmV0dXJuIFwlRXhwb3J0RGF0YTsKfQoKc3ViIEltcG9ydFJvbGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFVzZXJJRCA9ICRTZWxmLT57VXNlcklEfSB8fCAkUGFyYW17VXNlcklEfTsKCiAgICAjIGdldCBuZWNlc3Nhcnkgb2JqZWN0cwogICAgbXkgJEdyb3VwT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CiAgICBteSAkVmFsaWRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKCiAgICAjIGZldGNoIGxvb2t1cCBsaXN0cwogICAgbXkgJVJvbGVMaXN0ID0gJEdyb3VwT2JqZWN0LT5Sb2xlTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKICAgIG15ICVSb2xlTG9va3VwID0gcmV2ZXJzZSAlUm9sZUxpc3Q7CgogICAgUk9MRU5BTUU6CiAgICBmb3IgbXkgJFJvbGVOYW1lICgga2V5cyAkUGFyYW17Um9sZXN9LT4lKiApIHsKICAgICAgICBteSAkUm9sZURhdGEgPSAkUGFyYW17Um9sZXN9eyRSb2xlTmFtZX07CgogICAgICAgIG15ICRSb2xlSUQgPSAkUm9sZUxvb2t1cHsgJFJvbGVEYXRhLT57TmFtZX0gfTsKCiAgICAgICAgIyBza2lwIGlmIHJvbGUgd2l0aCBzYW1lIG5hbWUgZXhpc3RzIGFuZCBvdmVyd3JpdGUgaXMgbm90IHNldAogICAgICAgIG5leHQgUk9MRU5BTUUgaWYgKCAhJFBhcmFte092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXN9ICYmICRSb2xlSUQgKTsKCiAgICAgICAgIyB0cmFuc2xhdGUgbmFtZWQgZGF0YSBiYWNrIHRvIElEcwogICAgICAgICMgc2luZ2xlLXZhbHVlIGF0dHJpYnV0ZXMKICAgICAgICAkUm9sZURhdGEtPntWYWxpZElEfSA9ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgIFZhbGlkID0+ICRSb2xlRGF0YS0+e1ZhbGlkfSwKICAgICAgICApOwoKICAgICAgICAjIHVwZGF0ZQogICAgICAgIGlmICgkUm9sZUlEKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJEdyb3VwT2JqZWN0LT5Sb2xlVXBkYXRlKAogICAgICAgICAgICAgICAgJFJvbGVEYXRhLT4lKiwKICAgICAgICAgICAgICAgIElEICAgICA9PiAkUm9sZUlELAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiB1bmxlc3MgJFN1Y2Nlc3M7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkUm9sZUlEID0gJEdyb3VwT2JqZWN0LT5Sb2xlQWRkKAogICAgICAgICAgICAgICAgJFJvbGVEYXRhLT4lKiwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gdW5sZXNzICRSb2xlSUQ7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/Autoload/RoleGroupImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCgp1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwICgpOyAgICAjIyBubyBwZXJsaW1wb3J0cwoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6R3JvdXA7ICAgIyMgbm8gY3JpdGljIChNb2R1bGVzOjpSZXF1aXJlRmlsZW5hbWVNYXRjaGVzUGFja2FnZSkKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHY1LjI0Owp1c2UgdXRmODsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKKTsKCnN1YiBFeHBvcnRSb2xlR3JvdXBzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVJvbGVGaWx0ZXI7CiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1JvbGVzfSApICkgewogICAgICAgICVSb2xlRmlsdGVyID0gbWFwIHsgJF8gPT4gMSB9ICRQYXJhbXtSb2xlc30tPkAqOwogICAgfQoKICAgICMgZ2V0IG5lY2Vzc2FyeSBvYmplY3RzCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRHcm91cE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGZldGNoIGxvb2t1cCBsaXN0cwogICAgbXkgJFBlcm1pc3Npb25UeXBlcyA9ICRDb25maWdPYmplY3QtPkdldCgnU3lzdGVtOjpQZXJtaXNzaW9uJyk7CiAgICBteSAlUm9sZUxpc3QgICAgICAgID0gJEdyb3VwT2JqZWN0LT5Sb2xlTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICBteSAlRXhwb3J0RGF0YTsKICAgIFJPTEVJRDoKICAgIGZvciBteSAkUm9sZUlEICggc29ydCBrZXlzICVSb2xlTGlzdCApIHsKCiAgICAgICAgbXkgJVJvbGVEYXRhID0gJEdyb3VwT2JqZWN0LT5Sb2xlR2V0KAogICAgICAgICAgICBJRCA9PiAkUm9sZUlELAogICAgICAgICk7CgogICAgICAgIGlmICglUm9sZUZpbHRlcikgewogICAgICAgICAgICBuZXh0IFJPTEVJRCB1bmxlc3MgJFJvbGVGaWx0ZXJ7ICRSb2xlRGF0YXtOYW1lfSB9OwogICAgICAgIH0KCiAgICAgICAgbXkgJVR5cGVzOwogICAgICAgIGZvciBteSAkVHlwZSAoICRQZXJtaXNzaW9uVHlwZXMtPkAqICkgewogICAgICAgICAgICBteSAlRGF0YSA9ICRHcm91cE9iamVjdC0+UGVybWlzc2lvblJvbGVHcm91cEdldCgKICAgICAgICAgICAgICAgIFJvbGVJRCA9PiAkUm9sZUlELAogICAgICAgICAgICAgICAgVHlwZSAgID0+ICRUeXBlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyB1c2UgdmFsdWVzIGFzIGFycmF5IHRvIHByZXZlbnQgZXhwb3J0aW5nIGdyb3VwIGlkcwogICAgICAgICAgICBteSBAR3JvdXBOYW1lcyA9IHZhbHVlcyAlRGF0YTsKICAgICAgICAgICAgJFR5cGVzeyRUeXBlfSA9IFxAR3JvdXBOYW1lczsKICAgICAgICB9CgogICAgICAgICRFeHBvcnREYXRheyAkUm9sZURhdGF7TmFtZX0gfSA9IFwlVHlwZXM7CiAgICB9CgogICAgcmV0dXJuIFwlRXhwb3J0RGF0YTsKfQoKc3ViIEltcG9ydFJvbGVHcm91cHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVXNlcklEID0gJFNlbGYtPntVc2VySUR9IHx8ICRQYXJhbXtVc2VySUR9OwoKICAgICMgZ2V0IG5lY2Vzc2FyeSBvYmplY3RzCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKICAgIG15ICRHcm91cE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAjIGZldGNoIGxvb2t1cCBsaXN0cwogICAgbXkgJFBlcm1pc3Npb25UeXBlcyA9ICRDb25maWdPYmplY3QtPkdldCgnU3lzdGVtOjpQZXJtaXNzaW9uJyk7CiAgICBteSAlR3JvdXBMaXN0ICAgICAgID0gJEdyb3VwT2JqZWN0LT5Hcm91cExpc3QoCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CiAgICBteSAlR3JvdXBMb29rdXAgPSByZXZlcnNlICVHcm91cExpc3Q7CiAgICBteSAlUm9sZUxpc3QgICAgPSAkR3JvdXBPYmplY3QtPlJvbGVMaXN0KAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwogICAgbXkgJVJvbGVMb29rdXAgPSByZXZlcnNlICVSb2xlTGlzdDsKCiAgICBST0xFTkFNRToKICAgIGZvciBteSAkUm9sZU5hbWUgKCBrZXlzICRQYXJhbXtSb2xlR3JvdXBzfS0+JSogKSB7CgogICAgICAgIG15ICRSb2xlRGF0YSA9ICRQYXJhbXtSb2xlR3JvdXBzfXskUm9sZU5hbWV9OwoKICAgICAgICBuZXh0IFJPTEVOQU1FIHVubGVzcyBJc0hhc2hSZWZXaXRoRGF0YSgkUm9sZURhdGEpOwoKICAgICAgICBteSAkUm9sZUlEID0gJFJvbGVMb29rdXB7JFJvbGVOYW1lfTsKCiAgICAgICAgIyBza2lwIHJvbGVzIHdoaWNoIGRvIG5vdCBleGlzdCBvbiB0aGUgc3lzdGVtCiAgICAgICAgbmV4dCBST0xFTkFNRSB1bmxlc3MgJFJvbGVJRDsKCiAgICAgICAgIyB0cmF2ZXJzZSBwZXJtaXNzaW9uLWdyb3VwIHN0cnVjdHVyZSB0byBiZSBhYmxlIHRvIHNldCBuZXcgdmFsdWVzCiAgICAgICAgbXkgJVBlcm1pc3Npb25zRm9yR3JvdXA7CiAgICAgICAgUEVSTUlTU0lPTlRZUEU6CiAgICAgICAgZm9yIG15ICRQZXJtaXNzaW9uVHlwZSAoICRQZXJtaXNzaW9uVHlwZXMtPkAqICkgewoKICAgICAgICAgICAgbmV4dCBQRVJNSVNTSU9OVFlQRSB1bmxlc3MgSXNBcnJheVJlZldpdGhEYXRhKCAkUm9sZURhdGEtPnskUGVybWlzc2lvblR5cGV9ICk7CgogICAgICAgICAgICBHUk9VUE5BTUU6CiAgICAgICAgICAgIGZvciBteSAkR3JvdXBOYW1lICggJFJvbGVEYXRhLT57JFBlcm1pc3Npb25UeXBlfS0+QCogKSB7CgogICAgICAgICAgICAgICAgbXkgJEdyb3VwSUQgPSAkR3JvdXBMb29rdXB7JEdyb3VwTmFtZX07CgogICAgICAgICAgICAgICAgbmV4dCBHUk9VUE5BTUUgdW5sZXNzICRHcm91cElEOwoKICAgICAgICAgICAgICAgICRQZXJtaXNzaW9uc0Zvckdyb3VweyRHcm91cE5hbWV9IC8vPSB7fTsKICAgICAgICAgICAgICAgICRQZXJtaXNzaW9uc0Zvckdyb3VweyRHcm91cE5hbWV9eyRQZXJtaXNzaW9uVHlwZX0gPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJEN1cnJlbnRHcm91cCAoIGtleXMgJVBlcm1pc3Npb25zRm9yR3JvdXAgKSB7CgogICAgICAgICAgICBteSAkR3JvdXBJRCAgICAgPSAkR3JvdXBMb29rdXB7JEN1cnJlbnRHcm91cH07CiAgICAgICAgICAgIG15ICRQZXJtaXNzaW9ucyA9ICRQZXJtaXNzaW9uc0Zvckdyb3VweyRDdXJyZW50R3JvdXB9OwoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkR3JvdXBPYmplY3QtPlBlcm1pc3Npb25Hcm91cFJvbGVBZGQoCiAgICAgICAgICAgICAgICBHSUQgICAgICAgID0+ICRHcm91cElELAogICAgICAgICAgICAgICAgUklEICAgICAgICA9PiAkUm9sZUlELAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAkUGVybWlzc2lvbnMsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBuZXh0IFJPTEVOQU1FIHVubGVzcyAkU3VjY2VzczsKICAgICAgICB9CgogICAgICAgICMgc2tpcCBpZiByb2xlIHdpdGggc2FtZSBuYW1lIGV4aXN0cyBhbmQgb3ZlcndyaXRlIGlzIG5vdCBzZXQKICAgICAgICBuZXh0IFJPTEVOQU1FIGlmICggISRQYXJhbXtPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzfSAmJiAkUm9sZUlEICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Autoload/TemplateImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCgp1c2UgS2VybmVsOjpTeXN0ZW06OlN0YW5kYXJkVGVtcGxhdGUgKCk7ICAgICMjIG5vIHBlcmxpbXBvcnRzCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpTdGFuZGFyZFRlbXBsYXRlOyAgICMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUZpbGVuYW1lTWF0Y2hlc1BhY2thZ2UpCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB2NS4yNDsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTdGFuZGFyZFRlbXBsYXRlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnLAopOwoKc3ViIEV4cG9ydFRlbXBsYXRlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVUZW1wbGF0ZUZpbHRlcjsKICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17VGVtcGxhdGVzfSApICkgewogICAgICAgICVUZW1wbGF0ZUZpbHRlciA9IG1hcCB7ICRfID0+IDEgfSAkUGFyYW17VGVtcGxhdGVzfS0+QCo7CiAgICB9CgogICAgIyBnZXQgbmVjZXNzYXJ5IG9iamVjdHMKICAgIG15ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YW5kYXJkVGVtcGxhdGUnKTsKICAgIG15ICRWYWxpZE9iamVjdCAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgIyBmZXRjaCBsb29rdXAgbGlzdHMKICAgIG15ICVUZW1wbGF0ZUxpc3QgPSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdC0+U3RhbmRhcmRUZW1wbGF0ZUxpc3QoCiAgICAgICAgVmFsaWQgPT4gMCwKICAgICk7CgogICAgbXkgJUV4cG9ydERhdGE7CiAgICBURU1QTEFURUlEOgogICAgZm9yIG15ICRUZW1wbGF0ZUlEICggc29ydCBrZXlzICVUZW1wbGF0ZUxpc3QgKSB7CgogICAgICAgIG15ICVUZW1wbGF0ZURhdGEgPSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdC0+U3RhbmRhcmRUZW1wbGF0ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFRlbXBsYXRlSUQsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCVUZW1wbGF0ZUZpbHRlcikgewogICAgICAgICAgICBuZXh0IFRFTVBMQVRFSUQgdW5sZXNzICRUZW1wbGF0ZUZpbHRlcnsgJFRlbXBsYXRlRGF0YXtOYW1lfSB9OwogICAgICAgIH0KCiAgICAgICAgIyB0cmFuc2xhdGUgSURzIGludG8gbmFtZXMgb3IgbmFtZS1saWtlIGlkZW50aWZpZXJzCiAgICAgICAgQVRUUklCVVRFOgogICAgICAgIGZvciBteSAkQXR0cmlidXRlICgga2V5cyAlVGVtcGxhdGVEYXRhICkgewoKICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgdW5sZXNzICRBdHRyaWJ1dGUgPX4gL0lELzsKCiAgICAgICAgICAgIGlmICggJEF0dHJpYnV0ZSBlcSAnVmFsaWRJRCcgKSB7CiAgICAgICAgICAgICAgICBteSAkVmFsaWQgPSAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gJFRlbXBsYXRlRGF0YXtWYWxpZElEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkVGVtcGxhdGVEYXRhe1ZhbGlkfSA9ICRWYWxpZDsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkVGVtcGxhdGVEYXRhe1ZhbGlkSUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGRlbGV0ZSB1bm5lZWRlZCBhdHRyaWJ1dGVzIHRvIGF2b2lkIGJsb2F0aW5nIHRoZSBleHBvcnQKICAgICAgICBkZWxldGUgJFRlbXBsYXRlRGF0YXtDaGFuZ2VCeX07CiAgICAgICAgZGVsZXRlICRUZW1wbGF0ZURhdGF7Q2hhbmdlVGltZX07CiAgICAgICAgZGVsZXRlICRUZW1wbGF0ZURhdGF7Q3JlYXRlQnl9OwogICAgICAgIGRlbGV0ZSAkVGVtcGxhdGVEYXRhe0NyZWF0ZVRpbWV9OwogICAgICAgIGRlbGV0ZSAkVGVtcGxhdGVEYXRhe0lEfTsKCiAgICAgICAgJEV4cG9ydERhdGF7ICRUZW1wbGF0ZURhdGF7TmFtZX0gfSA9IFwlVGVtcGxhdGVEYXRhOwogICAgfQoKICAgIHJldHVybiBcJUV4cG9ydERhdGE7Cn0KCnN1YiBJbXBvcnRUZW1wbGF0ZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkVXNlcklEID0gJFNlbGYtPntVc2VySUR9IHx8ICRQYXJhbXtVc2VySUR9OwoKICAgICMgZ2V0IG5lY2Vzc2FyeSBvYmplY3RzCiAgICBteSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGFuZGFyZFRlbXBsYXRlJyk7CiAgICBteSAkVmFsaWRPYmplY3QgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpOwoKICAgICMgZmV0Y2ggbG9va3VwIGxpc3RzCiAgICBteSAlVGVtcGxhdGVMaXN0ID0gJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QtPlN0YW5kYXJkVGVtcGxhdGVMaXN0KAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwogICAgbXkgJVRlbXBsYXRlTG9va3VwID0gcmV2ZXJzZSAlVGVtcGxhdGVMaXN0OwoKICAgIFRFTVBMQVRFTkFNRToKICAgIGZvciBteSAkVGVtcGxhdGVOYW1lICgga2V5cyAkUGFyYW17VGVtcGxhdGVzfS0+JSogKSB7CiAgICAgICAgbXkgJFRlbXBsYXRlRGF0YSA9ICRQYXJhbXtUZW1wbGF0ZXN9eyRUZW1wbGF0ZU5hbWV9OwoKICAgICAgICBteSAkVGVtcGxhdGVJRCA9ICRUZW1wbGF0ZUxvb2t1cHsgJFRlbXBsYXRlRGF0YS0+e05hbWV9IH07CgogICAgICAgICMgc2tpcCBpZiB0ZW1wbGF0ZSB3aXRoIHNhbWUgbmFtZSBleGlzdHMgYW5kIG92ZXJ3cml0ZSBpcyBub3Qgc2V0CiAgICAgICAgbmV4dCBURU1QTEFURU5BTUUgaWYgKCAhJFBhcmFte092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXN9ICYmICRUZW1wbGF0ZUlEICk7CgogICAgICAgICMgdHJhbnNsYXRlIG5hbWVkIGRhdGEgYmFjayB0byBJRHMKICAgICAgICAkVGVtcGxhdGVEYXRhLT57VmFsaWRJRH0gPSAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKAogICAgICAgICAgICBWYWxpZCA9PiAkVGVtcGxhdGVEYXRhLT57VmFsaWR9LAogICAgICAgICk7CgogICAgICAgICMgdXBkYXRlCiAgICAgICAgaWYgKCRUZW1wbGF0ZUlEKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QtPlN0YW5kYXJkVGVtcGxhdGVVcGRhdGUoCiAgICAgICAgICAgICAgICAkVGVtcGxhdGVEYXRhLT4lKiwKICAgICAgICAgICAgICAgIElEICAgICA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkVXNlcklELAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gdW5sZXNzICRTdWNjZXNzOwogICAgICAgIH0KCiAgICAgICAgIyBjcmVhdGUKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJFRlbXBsYXRlSUQgPSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdC0+U3RhbmRhcmRUZW1wbGF0ZUFkZCgKICAgICAgICAgICAgICAgICRUZW1wbGF0ZURhdGEtPiUqLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiB1bmxlc3MgJFRlbXBsYXRlSUQ7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAxOwp9CgoxOwo=</File>
        <File Location="Kernel/Autoload/TypeImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCgp1c2UgS2VybmVsOjpTeXN0ZW06OlR5cGUgKCk7ICAgICMjIG5vIHBlcmxpbXBvcnRzCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpUeXBlOyAgICMjIG5vIGNyaXRpYyAoTW9kdWxlczo6UmVxdWlyZUZpbGVuYW1lTWF0Y2hlc1BhY2thZ2UpCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB2NS4yNDsKdXNlIHV0Zjg7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUeXBlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnLAopOwoKc3ViIEV4cG9ydFR5cGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVR5cGVGaWx0ZXI7CiAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte1R5cGVzfSApICkgewogICAgICAgICVUeXBlRmlsdGVyID0gbWFwIHsgJF8gPT4gMSB9ICRQYXJhbXtUeXBlc30tPkAqOwogICAgfQoKICAgICMgZ2V0IG5lY2Vzc2FyeSBvYmplY3RzCiAgICBteSAkVHlwZU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VHlwZScpOwogICAgbXkgJFZhbGlkT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgIyBmZXRjaCBsb29rdXAgbGlzdHMKICAgIG15ICVUeXBlTGlzdCA9ICRUeXBlT2JqZWN0LT5UeXBlTGlzdCgKICAgICAgICBWYWxpZCA9PiAwLAogICAgKTsKCiAgICBteSAlRXhwb3J0RGF0YTsKICAgIFRZUEVJRDoKICAgIGZvciBteSAkVHlwZUlEICggc29ydCBrZXlzICVUeXBlTGlzdCApIHsKCiAgICAgICAgbXkgJVR5cGVEYXRhID0gJFR5cGVPYmplY3QtPlR5cGVHZXQoCiAgICAgICAgICAgIElEID0+ICRUeXBlSUQsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCVUeXBlRmlsdGVyKSB7CiAgICAgICAgICAgIG5leHQgVFlQRUlEIHVubGVzcyAkVHlwZUZpbHRlcnsgJFR5cGVEYXRhe05hbWV9IH07CiAgICAgICAgfQoKICAgICAgICAjIHRyYW5zbGF0ZSBJRHMgaW50byBuYW1lcyBvciBuYW1lLWxpa2UgaWRlbnRpZmllcnMKICAgICAgICBBVFRSSUJVVEU6CiAgICAgICAgZm9yIG15ICRBdHRyaWJ1dGUgKCBrZXlzICVUeXBlRGF0YSApIHsKCiAgICAgICAgICAgIG5leHQgQVRUUklCVVRFIHVubGVzcyAkQXR0cmlidXRlID1+IC9JRC87CgogICAgICAgICAgICBpZiAoICRBdHRyaWJ1dGUgZXEgJ1ZhbGlkSUQnICkgewogICAgICAgICAgICAgICAgbXkgJFZhbGlkID0gJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCgKICAgICAgICAgICAgICAgICAgICBWYWxpZElEID0+ICRUeXBlRGF0YXtWYWxpZElEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkVHlwZURhdGF7VmFsaWR9ID0gJFZhbGlkOwogICAgICAgICAgICAgICAgZGVsZXRlICRUeXBlRGF0YXtWYWxpZElEfTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyBkZWxldGUgdW5uZWVkZWQgYXR0cmlidXRlcyB0byBhdm9pZCBibG9hdGluZyB0aGUgZXhwb3J0CiAgICAgICAgZGVsZXRlICRUeXBlRGF0YXtDaGFuZ2VCeX07CiAgICAgICAgZGVsZXRlICRUeXBlRGF0YXtDaGFuZ2VUaW1lfTsKICAgICAgICBkZWxldGUgJFR5cGVEYXRhe0NyZWF0ZUJ5fTsKICAgICAgICBkZWxldGUgJFR5cGVEYXRhe0NyZWF0ZVRpbWV9OwogICAgICAgIGRlbGV0ZSAkVHlwZURhdGF7SUR9OwoKICAgICAgICAkRXhwb3J0RGF0YXsgJFR5cGVEYXRhe05hbWV9IH0gPSBcJVR5cGVEYXRhOwogICAgfQoKICAgIHJldHVybiBcJUV4cG9ydERhdGE7Cn0KCnN1YiBJbXBvcnRUeXBlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRVc2VySUQgPSAkU2VsZi0+e1VzZXJJRH0gfHwgJFBhcmFte1VzZXJJRH07CgogICAgIyBnZXQgbmVjZXNzYXJ5IG9iamVjdHMKICAgIG15ICRUeXBlT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUeXBlJyk7CiAgICBteSAkVmFsaWRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKCiAgICAjIGZldGNoIGxvb2t1cCBsaXN0cwogICAgbXkgJVR5cGVMaXN0ID0gJFR5cGVPYmplY3QtPlR5cGVMaXN0KAogICAgICAgIFZhbGlkID0+IDAsCiAgICApOwogICAgbXkgJVR5cGVMb29rdXAgPSByZXZlcnNlICVUeXBlTGlzdDsKCiAgICBUWVBFTkFNRToKICAgIGZvciBteSAkVHlwZU5hbWUgKCBrZXlzICRQYXJhbXtUeXBlc30tPiUqICkgewogICAgICAgIG15ICRUeXBlRGF0YSA9ICRQYXJhbXtUeXBlc317JFR5cGVOYW1lfTsKCiAgICAgICAgbXkgJFR5cGVJRCA9ICRUeXBlTG9va3VweyAkVHlwZURhdGEtPntOYW1lfSB9OwoKICAgICAgICAjIHNraXAgaWYgdHlwZSB3aXRoIHNhbWUgbmFtZSBleGlzdHMgYW5kIG92ZXJ3cml0ZSBpcyBub3Qgc2V0CiAgICAgICAgbmV4dCBUWVBFTkFNRSBpZiAoICEkUGFyYW17T3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllc30gJiYgJFR5cGVJRCApOwoKICAgICAgICAjIHRyYW5zbGF0ZSBuYW1lZCBkYXRhIGJhY2sgdG8gSURzCiAgICAgICAgJFR5cGVEYXRhLT57VmFsaWRJRH0gPSAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKAogICAgICAgICAgICBWYWxpZCA9PiAkVHlwZURhdGEtPntWYWxpZH0sCiAgICAgICAgKTsKCiAgICAgICAgIyB1cGRhdGUKICAgICAgICBpZiAoJFR5cGVJRCkgewogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRUeXBlT2JqZWN0LT5UeXBlVXBkYXRlKAogICAgICAgICAgICAgICAgJFR5cGVEYXRhLT4lKiwKICAgICAgICAgICAgICAgIElEICAgICA9PiAkVHlwZUlELAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiB1bmxlc3MgJFN1Y2Nlc3M7CiAgICAgICAgfQoKICAgICAgICAjIGNyZWF0ZQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkVHlwZUlEID0gJFR5cGVPYmplY3QtPlR5cGVBZGQoCiAgICAgICAgICAgICAgICAkVHlwZURhdGEtPiUqLAogICAgICAgICAgICAgICAgVXNlcklEID0+ICRVc2VySUQsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiB1bmxlc3MgJFR5cGVJRDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cg==</File>
        <File Location="Kernel/Config/Files/XML/ImportExportStandardObjects.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxvdG9ib19jb25maWcgdmVyc2lvbj0iMi4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWRtaW5HZW5lcmljQWdlbnRJbXBvcnRFeHBvcnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFkbWluIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+R2VuZXJpY0FnZW50IEltcG9ydCBFeHBvcnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+R2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+QWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFkbWluR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0IyMjMDAzLUltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LkFkbWluLkdlbmVyaWNBZ2VudEltcG9ydEV4cG9ydC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkF1dG9sb2FkUGVybFBhY2thZ2VzIyMjMDAzLUdlbmVyaWNBZ2VudEltcG9ydEV4cG9ydCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BdXRvbG9hZCBjb25maWd1cmF0aW9uIGZvciBHZW5lcmljQWdlbnQgaW1wb3J0IGFuZCBleHBvcnQgZnVuY3Rpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6QXV0b2xvYWQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+S2VybmVsOjpBdXRvbG9hZDo6R2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0PC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWRtaW5Hcm91cEltcG9ydEV4cG9ydCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Gcm9udGVuZCBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWRtaW4gaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IkZyb250ZW5kUmVnaXN0cmF0aW9uIj4KICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXBSbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPmFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkRlc2NyaXB0aW9uIj5Hcm91cCBJbXBvcnQgRXhwb3J0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiPkdyb3VwSW1wb3J0RXhwb3J0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+QWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFkbWluR3JvdXBJbXBvcnRFeHBvcnQjIyMwMDMtSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuQWdlbnQuQWRtaW4uR3JvdXBJbXBvcnRFeHBvcnQuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJBdXRvbG9hZFBlcmxQYWNrYWdlcyMjIzAwMy1Hcm91cEltcG9ydEV4cG9ydCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BdXRvbG9hZCBjb25maWd1cmF0aW9uIGZvciBHcm91cCBpbXBvcnQgYW5kIGV4cG9ydCBmdW5jdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpBdXRvbG9hZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj5LZXJuZWw6OkF1dG9sb2FkOjpHcm91cEltcG9ydEV4cG9ydDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluUXVldWVJbXBvcnRFeHBvcnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFkbWluIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+UXVldWUgSW1wb3J0IEV4cG9ydDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj5RdWV1ZUltcG9ydEV4cG9ydDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik5hdkJhck5hbWUiPkFkbWluPC9JdGVtPgogICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkxvYWRlcjo6TW9kdWxlOjpBZG1pblF1ZXVlSW1wb3J0RXhwb3J0IyMjMDAzLUltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LkFkbWluLlF1ZXVlSW1wb3J0RXhwb3J0LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iQXV0b2xvYWRQZXJsUGFja2FnZXMjIyMwMDMtUXVldWVJbXBvcnRFeHBvcnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QXV0b2xvYWQgY29uZmlndXJhdGlvbiBmb3IgUXVldWUgaW1wb3J0IGFuZCBleHBvcnQgZnVuY3Rpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6QXV0b2xvYWQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+S2VybmVsOjpBdXRvbG9hZDo6UXVldWVJbXBvcnRFeHBvcnQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZG1pblF1ZXVlVGVtcGxhdGVzSW1wb3J0RXhwb3J0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZG1pbiBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlF1ZXVlLVRlbXBsYXRlIHJlbGF0aW9ucyBJbXBvcnQgRXhwb3J0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiPlF1ZXVlVGVtcGxhdGVzSW1wb3J0RXhwb3J0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+QWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFkbWluUXVldWVUZW1wbGF0ZXNJbXBvcnRFeHBvcnQjIyMwMDMtSW1wb3J0RXhwb3J0U3RhbmRhcmRPYmplY3RzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkxvYWRlciBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgYWdlbnQgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+RnJvbnRlbmQ6OkFkbWluOjpNb2R1bGVSZWdpc3RyYXRpb246OkxvYWRlcjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJKYXZhU2NyaXB0Ij4KICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtPkNvcmUuQWdlbnQuQWRtaW4uUXVldWVUZW1wbGF0ZXNJbXBvcnRFeHBvcnQuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJBdXRvbG9hZFBlcmxQYWNrYWdlcyMjIzAwMy1RdWV1ZVRlbXBsYXRlc0ltcG9ydEV4cG9ydCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BdXRvbG9hZCBjb25maWd1cmF0aW9uIGZvciBRdWV1ZS1UZW1wbGF0ZSByZWxhdGlvbnMgaW1wb3J0IGFuZCBleHBvcnQgZnVuY3Rpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6QXV0b2xvYWQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+S2VybmVsOjpBdXRvbG9hZDo6UXVldWVUZW1wbGF0ZXNJbXBvcnRFeHBvcnQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZG1pblJvbGVJbXBvcnRFeHBvcnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RnJvbnRlbmQgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFkbWluIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJGcm9udGVuZFJlZ2lzdHJhdGlvbiI+CiAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwUm8iPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iR3JvdXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5hZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJEZXNjcmlwdGlvbiI+Um9sZSBJbXBvcnQgRXhwb3J0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iVGl0bGUiPlJvbGVJbXBvcnRFeHBvcnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5BZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWRtaW5Sb2xlSW1wb3J0RXhwb3J0IyMjMDAzLUltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LkFkbWluLlJvbGVJbXBvcnRFeHBvcnQuanM8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJBdXRvbG9hZFBlcmxQYWNrYWdlcyMjIzAwMy1Sb2xlSW1wb3J0RXhwb3J0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkF1dG9sb2FkIGNvbmZpZ3VyYXRpb24gZm9yIFJvbGUgaW1wb3J0IGFuZCBleHBvcnQgZnVuY3Rpb25zLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+Q29yZTo6QXV0b2xvYWQ8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbSBWYWx1ZVR5cGU9IlN0cmluZyI+S2VybmVsOjpBdXRvbG9hZDo6Um9sZUltcG9ydEV4cG9ydDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iRnJvbnRlbmQ6Ok1vZHVsZSMjI0FkbWluUm9sZUdyb3VwSW1wb3J0RXhwb3J0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZG1pbiBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlJvbGUtR3JvdXAgUmVsYXRpb25zIEltcG9ydCBFeHBvcnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+Um9sZUdyb3VwSW1wb3J0RXhwb3J0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+QWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFkbWluUm9sZUdyb3VwSW1wb3J0RXhwb3J0IyMjMDAzLUltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Mb2FkZXIgbW9kdWxlIHJlZ2lzdHJhdGlvbiBmb3IgdGhlIGFnZW50IGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkZyb250ZW5kOjpBZG1pbjo6TW9kdWxlUmVnaXN0cmF0aW9uOjpMb2FkZXI8L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSmF2YVNjcmlwdCI+CiAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbT5Db3JlLkFnZW50LkFkbWluLlJvbGVHcm91cEltcG9ydEV4cG9ydC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkF1dG9sb2FkUGVybFBhY2thZ2VzIyMjMDAzLVJvbGVHcm91cEltcG9ydEV4cG9ydCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BdXRvbG9hZCBjb25maWd1cmF0aW9uIGZvciBSb2xlLUdyb3VwIHJlbGF0aW9ucyBpbXBvcnQgYW5kIGV4cG9ydCBmdW5jdGlvbnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Db3JlOjpBdXRvbG9hZDwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iU3RyaW5nIj5LZXJuZWw6OkF1dG9sb2FkOjpSb2xlR3JvdXBJbXBvcnRFeHBvcnQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkZyb250ZW5kOjpNb2R1bGUjIyNBZG1pblRlbXBsYXRlSW1wb3J0RXhwb3J0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZG1pbiBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlRlbXBsYXRlIEltcG9ydCBFeHBvcnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJUaXRsZSI+VGVtcGxhdGVJbXBvcnRFeHBvcnQ8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYXZCYXJOYW1lIj5BZG1pbjwvSXRlbT4KICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgPC9JdGVtPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJMb2FkZXI6Ok1vZHVsZTo6QWRtaW5UZW1wbGF0ZUltcG9ydEV4cG9ydCMjIzAwMy1JbXBvcnRFeHBvcnRTdGFuZGFyZE9iamVjdHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5BZ2VudC5BZG1pbi5UZW1wbGF0ZUltcG9ydEV4cG9ydC5qczwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KICAgIDxTZXR0aW5nIE5hbWU9IkF1dG9sb2FkUGVybFBhY2thZ2VzIyMjMDAzLVRlbXBsYXRlSW1wb3J0RXhwb3J0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkF1dG9sb2FkIGNvbmZpZ3VyYXRpb24gZm9yIFRlbXBsYXRlIGltcG9ydCBhbmQgZXhwb3J0IGZ1bmN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkF1dG9sb2FkPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPktlcm5lbDo6QXV0b2xvYWQ6OlRlbXBsYXRlSW1wb3J0RXhwb3J0PC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJGcm9udGVuZDo6TW9kdWxlIyMjQWRtaW5UeXBlSW1wb3J0RXhwb3J0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkZyb250ZW5kIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZG1pbiBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxJdGVtIFZhbHVlVHlwZT0iRnJvbnRlbmRSZWdpc3RyYXRpb24iPgogICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJHcm91cFJvIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICA8L0FycmF5PgogICAgICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ikdyb3VwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+YWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iRGVzY3JpcHRpb24iPlR5cGUgSW1wb3J0IEV4cG9ydDwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IlRpdGxlIj5UeXBlSW1wb3J0RXhwb3J0PC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmF2QmFyTmFtZSI+QWRtaW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iTG9hZGVyOjpNb2R1bGU6OkFkbWluVHlwZUltcG9ydEV4cG9ydCMjIzAwMy1JbXBvcnRFeHBvcnRTdGFuZGFyZE9iamVjdHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+TG9hZGVyIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBhZ2VudCBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5Gcm9udGVuZDo6QWRtaW46Ok1vZHVsZVJlZ2lzdHJhdGlvbjo6TG9hZGVyPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkphdmFTY3JpcHQiPgogICAgICAgICAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0+Q29yZS5BZ2VudC5BZG1pbi5UeXBlSW1wb3J0RXhwb3J0LmpzPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1ZhbHVlPgogICAgPC9TZXR0aW5nPgogICAgPFNldHRpbmcgTmFtZT0iQXV0b2xvYWRQZXJsUGFja2FnZXMjIyMwMDMtVHlwZUltcG9ydEV4cG9ydCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BdXRvbG9hZCBjb25maWd1cmF0aW9uIGZvciBUeXBlIGltcG9ydCBhbmQgZXhwb3J0IGZ1bmN0aW9ucy48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxOYXZpZ2F0aW9uPkNvcmU6OkF1dG9sb2FkPC9OYXZpZ2F0aW9uPgogICAgICAgIDxWYWx1ZT4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0gVmFsdWVUeXBlPSJTdHJpbmciPktlcm5lbDo6QXV0b2xvYWQ6OlR5cGVJbXBvcnRFeHBvcnQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KPC9vdG9ib19jb25maWc+Cg==</File>
        <File Location="Kernel/Language/de_ImportExportStandardObjects.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6TGFuZ3VhZ2U6OmRlX0ltcG9ydEV4cG9ydFN0YW5kYXJkT2JqZWN0czsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CgpzdWIgRGF0YSB7CiAgICBteSAkU2VsZiA9IHNoaWZ0OwoKICAgICMgVGVtcGxhdGU6IEFkbWluR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmljQWdlbnRzJ30gPSAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2YgZ2VuZXJpYyBhZ2VudHMgdG8gaW1wb3J0IHRoZXNlIG9uIGFub3RoZXIgc3lzdGVtLiBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGV4cG9ydGVkIGluIHltbCBmb3JtYXQuJ30gPQogICAgICAgICdIaWVyIGvDtm5uZW4gU2llIGVpbmUgS29uZmlndXJhdGlvbnNkYXRlaSB2b24gR2VuZXJpYyBBZ2VudHMgZXhwb3J0aWVyZW4sIHVtIGRpZXNlIGF1ZiBlaW5lbSBhbmRlcmVuIFN5c3RlbSB6dSBpbXBvcnRpZXJlbi4gRGllIEtvbmZpZ3VyYXRpb25zZGF0ZWkgd2lyZCBpbSB5bWwgRm9ybWF0IGV4cG9ydGllcnQuJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dlbmVyaWNBZ2VudHMgTGlzdCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5Hcm91cEltcG9ydEV4cG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGVyZSB5b3UgY2FuIGV4cG9ydCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBvZiBncm91cHMgdG8gaW1wb3J0IHRoZXNlIG9uIGFub3RoZXIgc3lzdGVtLiBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGV4cG9ydGVkIGluIHltbCBmb3JtYXQuJ30gPQogICAgICAgICdIaWVyIGvDtm5uZW4gU2llIGVpbmUgS29uZmlndXJhdGlvbnNkYXRlaSB2b24gR3J1cHBlbiBleHBvcnRpZXJlbiwgdW0gZGllc2UgYXVmIGVpbmVtIGFuZGVyZW4gU3lzdGVtIHp1IGltcG9ydGllcmVuLiBEaWUgS29uZmlndXJhdGlvbnNkYXRlaSB3aXJkIGltIHltbCBGb3JtYXQgZXhwb3J0aWVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXBzIExpc3QnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluUXVldWVJbXBvcnRFeHBvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2YgcXVldWVzIHRvIGltcG9ydCB0aGVzZSBvbiBhbm90aGVyIHN5c3RlbS4gVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBleHBvcnRlZCBpbiB5bWwgZm9ybWF0Lid9ID0KICAgICAgICAnSGllciBrw7ZubmVuIFNpZSBlaW5lIEtvbmZpZ3VyYXRpb25zZGF0ZWkgdm9uIFF1ZXVlcyBleHBvcnRpZXJlbiwgdW0gZGllc2UgYXVmIGVpbmVtIGFuZGVyZW4gU3lzdGVtIHp1IGltcG9ydGllcmVuLiBEaWUgS29uZmlndXJhdGlvbnNkYXRlaSB3aXJkIGltIHltbCBGb3JtYXQgZXhwb3J0aWVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWVzIExpc3QnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluUXVldWVUZW1wbGF0ZXNJbXBvcnRFeHBvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXVlIFRlbXBsYXRlIFJlbGF0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIZXJlIHlvdSBjYW4gZXhwb3J0IGEgY29uZmlndXJhdGlvbiBmaWxlIG9mIHF1ZXVlLXRlbXBsYXRlIHJlbGF0aW9ucyB0byBpbXBvcnQgdGhlc2Ugb24gYW5vdGhlciBzeXN0ZW0uIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgaXMgZXhwb3J0ZWQgaW4geW1sIGZvcm1hdC4nfSA9CiAgICAgICAgJ0hpZXIga8O2bm5lbiBTaWUgZWluZSBLb25maWd1cmF0aW9uc2RhdGVpIHZvbiBRdWV1ZS1Wb3JsYWdlbi1CZXppZWh1bmdlbiBleHBvcnRpZXJlbiwgdW0gZGllc2UgYXVmIGVpbmVtIGFuZGVyZW4gU3lzdGVtIHp1IGltcG9ydGllcmVuLiBEaWUgS29uZmlndXJhdGlvbnNkYXRlaSB3aXJkIGltIHltbCBGb3JtYXQgZXhwb3J0aWVydC4nOwoKICAgICMgVGVtcGxhdGU6IEFkbWluUm9sZUdyb3VwSW1wb3J0RXhwb3J0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSb2xlLUdyb3VwIFJlbGF0aW9ucyd9ID0gJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIZXJlIHlvdSBjYW4gZXhwb3J0IGEgY29uZmlndXJhdGlvbiBmaWxlIG9mIHJvbGUtZ3JvdXAgcmVsYXRpb25zIHRvIGltcG9ydCB0aGVzZSBvbiBhbm90aGVyIHN5c3RlbS4gVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBleHBvcnRlZCBpbiB5bWwgZm9ybWF0Lid9ID0KICAgICAgICAnSGllciBrw7ZubmVuIFNpZSBlaW5lIEtvbmZpZ3VyYXRpb25zZGF0ZWkgdm9uIFJvbGxlbi1HcnVwcGVuLUJlemllaHVuZ2VuIGV4cG9ydGllcmVuLCB1bSBkaWVzZSBhdWYgZWluZW0gYW5kZXJlbiBTeXN0ZW0genUgaW1wb3J0aWVyZW4uIERpZSBLb25maWd1cmF0aW9uc2RhdGVpIHdpcmQgaW0geW1sIEZvcm1hdCBleHBvcnRpZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSb2xlLUdyb3VwIHJlbGF0aW9ucyBMaXN0J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pblJvbGVJbXBvcnRFeHBvcnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2Ygcm9sZXMgdG8gaW1wb3J0IHRoZXNlIG9uIGFub3RoZXIgc3lzdGVtLiBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGV4cG9ydGVkIGluIHltbCBmb3JtYXQuJ30gPQogICAgICAgICdIaWVyIGvDtm5uZW4gU2llIGVpbmUgS29uZmlndXJhdGlvbnNkYXRlaSB2b24gUm9sbGVuIGV4cG9ydGllcmVuLCB1bSBkaWVzZSBhdWYgZWluZW0gYW5kZXJlbiBTeXN0ZW0genUgaW1wb3J0aWVyZW4uIERpZSBLb25maWd1cmF0aW9uc2RhdGVpIHdpcmQgaW0geW1sIEZvcm1hdCBleHBvcnRpZXJ0Lic7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSb2xlcyBMaXN0J30gPSAnJzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pblRlbXBsYXRlSW1wb3J0RXhwb3J0CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIZXJlIHlvdSBjYW4gZXhwb3J0IGEgY29uZmlndXJhdGlvbiBmaWxlIG9mIHRlbXBsYXRlcyB0byBpbXBvcnQgdGhlc2Ugb24gYW5vdGhlciBzeXN0ZW0uIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgaXMgZXhwb3J0ZWQgaW4geW1sIGZvcm1hdC4nfSA9CiAgICAgICAgJ0hpZXIga8O2bm5lbiBTaWUgZWluZSBLb25maWd1cmF0aW9uc2RhdGVpIHZvbiBWb3JsYWdlbiBleHBvcnRpZXJlbiwgdW0gZGllc2UgYXVmIGVpbmVtIGFuZGVyZW4gU3lzdGVtIHp1IGltcG9ydGllcmVuLiBEaWUgS29uZmlndXJhdGlvbnNkYXRlaSB3aXJkIGltIHltbCBGb3JtYXQgZXhwb3J0aWVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGVzIExpc3QnfSA9ICcnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluVHlwZUltcG9ydEV4cG9ydAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGVyZSB5b3UgY2FuIGV4cG9ydCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBvZiB0eXBlcyB0byBpbXBvcnQgdGhlc2Ugb24gYW5vdGhlciBzeXN0ZW0uIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgaXMgZXhwb3J0ZWQgaW4geW1sIGZvcm1hdC4nfSA9CiAgICAgICAgJ0hpZXIga8O2bm5lbiBTaWUgZWluZSBLb25maWd1cmF0aW9uc2RhdGVpIHZvbiBUeXBlbiBleHBvcnRpZXJlbiwgdW0gZGllc2UgYXVmIGVpbmVtIGFuZGVyZW4gU3lzdGVtIHp1IGltcG9ydGllcmVuLiBEaWUgS29uZmlndXJhdGlvbnNkYXRlaSB3aXJkIGltIHltbCBGb3JtYXQgZXhwb3J0aWVydC4nOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgTGlzdCd9ID0gJyc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5HZW5lcmljQWdlbnQKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hlcmUgeW91IGNhbiB1cGxvYWQgYSBjb25maWd1cmF0aW9uIGZpbGUgdG8gaW1wb3J0IGdlbmVyaWMgYWdlbnRzIHRvIHlvdXIgc3lzdGVtLiBUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiAueW1sIGZvcm1hdCBhcyBleHBvcnRlZCBieSB0aGUgZ2VuZXJpYyBhZ2VudCBtYW5hZ2VtZW50IG1vZHVsZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmljIEFnZW50cyBJbXBvcnQnfSA9ICdHZW5lcmljIEFnZW50IEltcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydHZW5lcmljIEFnZW50cyBFeHBvcnQnfSA9ICdHZW5lcmljIEFnZW50IEV4cG9ydCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5Hcm91cAogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGVyZSB5b3UgY2FuIHVwbG9hZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBpbXBvcnQgZ3JvdXBzIHRvIHlvdXIgc3lzdGVtLiBUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiAueW1sIGZvcm1hdCBhcyBleHBvcnRlZCBieSB0aGUgZ3JvdXAgbWFuYWdlbWVudCBtb2R1bGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnR3JvdXBzIEltcG9ydCd9ID0gJ0dydXBwZW4tSW1wb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0dyb3VwcyBFeHBvcnQnfSA9ICdHcnVwcGVuLUV4cG9ydCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5RdWV1ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGVyZSB5b3UgY2FuIHVwbG9hZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBpbXBvcnQgcXVldWVzIHRvIHlvdXIgc3lzdGVtLiBUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiAueW1sIGZvcm1hdCBhcyBleHBvcnRlZCBieSB0aGUgcXVldWUgbWFuYWdlbWVudCBtb2R1bGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUXVldWVzIEltcG9ydCd9ID0gJ1F1ZXVlLUltcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZXMgRXhwb3J0J30gPSAnUXVldWUtRXhwb3J0JzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pblF1ZXVlVGVtcGxhdGVzCiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydIZXJlIHlvdSBjYW4gdXBsb2FkIGEgY29uZmlndXJhdGlvbiBmaWxlIHRvIGltcG9ydCBxdWV1ZS10ZW1wbGF0ZSByZWxhdGlvbnMgdG8geW91ciBzeXN0ZW0uIFRoZSBmaWxlIG5lZWRzIHRvIGJlIGluIC55bWwgZm9ybWF0IGFzIGV4cG9ydGVkIGJ5IHRoZSBxdWV1ZS10ZW1wbGF0ZSBtYW5hZ2VtZW50IG1vZHVsZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydRdWV1ZS1UZW1wbGF0ZXMgSW1wb3J0J30gPSAnUXVldWUtVm9ybGFnZW4tSW1wb3J0JzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1F1ZXVlLVRlbXBsYXRlcyBFeHBvcnQnfSA9ICdRdWV1ZS1Wb3JsYWdlbi1FeHBvcnQnOwoKICAgICMgVGVtcGxhdGU6IEFkbWluUm9sZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGVyZSB5b3UgY2FuIHVwbG9hZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBpbXBvcnQgcm9sZXMgdG8geW91ciBzeXN0ZW0uIFRoZSBmaWxlIG5lZWRzIHRvIGJlIGluIC55bWwgZm9ybWF0IGFzIGV4cG9ydGVkIGJ5IHRoZSByb2xlIG1hbmFnZW1lbnQgbW9kdWxlLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J1JvbGVzIEltcG9ydCd9ID0gJ1JvbGxlbi1JbXBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnUm9sZXMgRXhwb3J0J30gPSAnUm9sbGVuLUV4cG9ydCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5Sb2xlR3JvdXAKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hlcmUgeW91IGNhbiB1cGxvYWQgYSBjb25maWd1cmF0aW9uIGZpbGUgdG8gaW1wb3J0IHJvbGUtZ3JvdXAgcmVsYXRpb25zIHRvIHlvdXIgc3lzdGVtLiBUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiAueW1sIGZvcm1hdCBhcyBleHBvcnRlZCBieSB0aGUgcm9sZS1ncm91cCBtYW5hZ2VtZW50IG1vZHVsZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSb2xlLUdyb3VwIEltcG9ydCd9ID0gJ1JvbGxlbi1HcnVwcGVuLUltcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydSb2xlLUdyb3VwIEV4cG9ydCd9ID0gJ1JvbGxlbi1HcnVwcGVuLUV4cG9ydCc7CgogICAgIyBUZW1wbGF0ZTogQWRtaW5UZW1wbGF0ZQogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnSGVyZSB5b3UgY2FuIHVwbG9hZCBhIGNvbmZpZ3VyYXRpb24gZmlsZSB0byBpbXBvcnQgdGVtcGxhdGVzIHRvIHlvdXIgc3lzdGVtLiBUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiAueW1sIGZvcm1hdCBhcyBleHBvcnRlZCBieSB0aGUgdGVtcGxhdGUgbWFuYWdlbWVudCBtb2R1bGUuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVGVtcGxhdGVzIEltcG9ydCd9ID0gJ1ZvcmxhZ2VuLUltcG9ydCc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUZW1wbGF0ZXMgRXhwb3J0J30gPSAnVm9ybGFnZW4tRXhwb3J0JzsKCiAgICAjIFRlbXBsYXRlOiBBZG1pblR5cGUKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0hlcmUgeW91IGNhbiB1cGxvYWQgYSBjb25maWd1cmF0aW9uIGZpbGUgdG8gaW1wb3J0IHR5cGVzIHRvIHlvdXIgc3lzdGVtLiBUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiAueW1sIGZvcm1hdCBhcyBleHBvcnRlZCBieSB0aGUgdHlwZSBtYW5hZ2VtZW50IG1vZHVsZS4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydUeXBlcyBJbXBvcnQnfSA9ICdUeXBlbi1JbXBvcnQnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnVHlwZXMgRXhwb3J0J30gPSAnVHlwZW4tRXhwb3J0JzsKCiAgICAjIFN5c0NvbmZpZwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0b2xvYWQgY29uZmlndXJhdGlvbiBmb3IgR2VuZXJpY0FnZW50IGltcG9ydCBhbmQgZXhwb3J0IGZ1bmN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRvbG9hZCBjb25maWd1cmF0aW9uIGZvciBHcm91cCBpbXBvcnQgYW5kIGV4cG9ydCBmdW5jdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0b2xvYWQgY29uZmlndXJhdGlvbiBmb3IgUXVldWUgaW1wb3J0IGFuZCBleHBvcnQgZnVuY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dG9sb2FkIGNvbmZpZ3VyYXRpb24gZm9yIFF1ZXVlLVRlbXBsYXRlIHJlbGF0aW9ucyBpbXBvcnQgYW5kIGV4cG9ydCBmdW5jdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0b2xvYWQgY29uZmlndXJhdGlvbiBmb3IgUm9sZSBpbXBvcnQgYW5kIGV4cG9ydCBmdW5jdGlvbnMuJ30gPQogICAgICAgICcnOwogICAgJFNlbGYtPntUcmFuc2xhdGlvbn0tPnsnQXV0b2xvYWQgY29uZmlndXJhdGlvbiBmb3IgUm9sZS1Hcm91cCByZWxhdGlvbnMgaW1wb3J0IGFuZCBleHBvcnQgZnVuY3Rpb25zLid9ID0KICAgICAgICAnJzsKICAgICRTZWxmLT57VHJhbnNsYXRpb259LT57J0F1dG9sb2FkIGNvbmZpZ3VyYXRpb24gZm9yIFRlbXBsYXRlIGltcG9ydCBhbmQgZXhwb3J0IGZ1bmN0aW9ucy4nfSA9CiAgICAgICAgJyc7CiAgICAkU2VsZi0+e1RyYW5zbGF0aW9ufS0+eydBdXRvbG9hZCBjb25maWd1cmF0aW9uIGZvciBUeXBlIGltcG9ydCBhbmQgZXhwb3J0IGZ1bmN0aW9ucy4nfSA9CiAgICAgICAgJyc7CgoKICAgIHB1c2ggQHsgJFNlbGYtPntKYXZhU2NyaXB0U3RyaW5nc30gLy8gW10gfSwgKAogICAgKTsKCn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AdminGenericAgentImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0FnZW50JywKICAgICdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6WUFNTCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBvYmplY3RzCiAgICBteSAkTGF5b3V0T2JqZWN0ICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJEdlbmVyaWNBZ2VudE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmljQWdlbnQnKTsKICAgIG15ICRQYXJhbU9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkWUFNTE9iamVjdCAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKICAgIG15ICRDYWNoZU9iamVjdCAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnKTsKCiAgICAkU2VsZi0+e1N1YmFjdGlvbn0gPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnU3ViYWN0aW9uJyApIHx8ICcnOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgSW1wb3J0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnSW1wb3J0JyApIHsKCiAgICAgICAgIyBjaGFsbGVuZ2UgdG9rZW4gY2hlY2sgZm9yIHdyaXRlIGFjdGlvbgogICAgICAgICRMYXlvdXRPYmplY3QtPkNoYWxsZW5nZVRva2VuQ2hlY2soKTsKCiAgICAgICAgbXkgJVVwbG9hZFN0dWZmID0gJFBhcmFtT2JqZWN0LT5HZXRVcGxvYWRBbGwoCiAgICAgICAgICAgIFBhcmFtID0+ICdGaWxlVXBsb2FkJywKICAgICAgICApOwoKICAgICAgICBteSAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzJyApOwoKICAgICAgICBteSAkUGVybFN0cnVjdHVyZSA9ICRZQU1MT2JqZWN0LT5Mb2FkKAogICAgICAgICAgICBEYXRhID0+ICRVcGxvYWRTdHVmZntDb250ZW50fSwKICAgICAgICApOwoKICAgICAgICAkQ2FjaGVPYmplY3QtPlNldCgKICAgICAgICAgICAgVHlwZSAgPT4gJ0FkbWluR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICAgPT4gJ0FkbWluR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0OjonIC4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBWYWx1ZSA9PiAkUGVybFN0cnVjdHVyZSwKICAgICAgICAgICAgVFRMICAgPT4gNjAgKiA2MCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrKAogICAgICAgICAgICBEYXRhICAgICAgICAgICAgICAgICAgICAgID0+ICRQZXJsU3RydWN0dXJlLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyB8fCAwLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnRBY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnRBY3Rpb24nICkgewoKICAgICAgICBteSAkSW1wb3J0RGF0YSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICdBZG1pbkdlbmVyaWNBZ2VudEltcG9ydEV4cG9ydCcsCiAgICAgICAgICAgIEtleSAgPT4gJ0FkbWluR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0OjonIC4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRJbXBvcnREYXRhKSApIHsKCiAgICAgICAgICAgICMgcmVkaXJlY3QgdG8gQWRtaW5HZW5lcmljQWdlbnQKICAgICAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5HZW5lcmljQWdlbnQiCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gJEhUTUw7CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIHJlcXVpcmVkIHBhcmFtZXRlcnMKICAgICAgICBteSBAR2VuZXJpY0FnZW50c1NlbGVjdGVkICAgICA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdHZW5lcmljQWdlbnRzJyApOwogICAgICAgIG15ICRPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnICkgfHwgMDsKCiAgICAgICAgJENhY2hlT2JqZWN0LT5EZWxldGUoCiAgICAgICAgICAgIFR5cGUgPT4gJ0FkbWluR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5HZW5lcmljQWdlbnRJbXBvcnRFeHBvcnQ6OicgLiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgICAgICMgSW1wb3J0IEdlbmVyaWNBZ2VudHMKICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJEltcG9ydERhdGEtPntHZW5lcmljQWdlbnRzfSApICkgewoKICAgICAgICAgICAgbXkgJUdlbmVyaWNBZ2VudHNJbXBvcnQ7CiAgICAgICAgICAgIEdFTkVSSUNBR0VOVE5BTUU6CiAgICAgICAgICAgIGZvciBteSAkR2VuZXJpY0FnZW50TmFtZSAoIGtleXMgJEltcG9ydERhdGEtPntHZW5lcmljQWdlbnRzfS0+JSogKSB7CgogICAgICAgICAgICAgICAgbXkgJFNlbGVjdGVkID0gZ3JlcCB7ICRHZW5lcmljQWdlbnROYW1lIGVxICRfIH0gQEdlbmVyaWNBZ2VudHNTZWxlY3RlZDsKCiAgICAgICAgICAgICAgICBuZXh0IEdFTkVSSUNBR0VOVE5BTUUgaWYgISRTZWxlY3RlZDsKICAgICAgICAgICAgICAgIG5leHQgR0VORVJJQ0FHRU5UTkFNRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICRJbXBvcnREYXRhLT57R2VuZXJpY0FnZW50c317JEdlbmVyaWNBZ2VudE5hbWV9ICk7CgogICAgICAgICAgICAgICAgJEdlbmVyaWNBZ2VudHNJbXBvcnR7JEdlbmVyaWNBZ2VudE5hbWV9ID0gJEltcG9ydERhdGEtPntHZW5lcmljQWdlbnRzfXskR2VuZXJpY0FnZW50TmFtZX07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJEdlbmVyaWNBZ2VudE9iamVjdC0+SW1wb3J0R2VuZXJpY0FnZW50cygKICAgICAgICAgICAgICAgIEdlbmVyaWNBZ2VudHMgICAgICAgICAgICAgPT4gXCVHZW5lcmljQWdlbnRzSW1wb3J0LAogICAgICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICAjIFRPRE8gc2hvdyBlcnJvcgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluR2VuZXJpY0FnZW50CiAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pbkdlbmVyaWNBZ2VudCIKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJEhUTUw7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBFeHBvcnQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFeHBvcnQnICkgewoKICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFR5cGUgPT4gJFNlbGYtPntTdWJhY3Rpb259LAogICAgICAgICk7CgogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRXhwb3J0QWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0QWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGVjayByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgJURhdGE7CiAgICAgICAgbXkgJEhUTUw7CiAgICAgICAgbXkgQEdlbmVyaWNBZ2VudHMgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnR2VuZXJpY0FnZW50cycgKTsKCiAgICAgICAgaWYgKEBHZW5lcmljQWdlbnRzKSB7CiAgICAgICAgICAgICREYXRhe0dlbmVyaWNBZ2VudHN9ID0gJEdlbmVyaWNBZ2VudE9iamVjdC0+RXhwb3J0R2VuZXJpY0FnZW50cygKICAgICAgICAgICAgICAgIEdlbmVyaWNBZ2VudHMgPT4gXEBHZW5lcmljQWdlbnRzLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJURhdGEgKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0CiAgICAgICAgICAgICRIVE1MIC49ICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pbkdlbmVyaWNBZ2VudEltcG9ydEV4cG9ydDtTdWJhY3Rpb249RXhwb3J0IiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRIVE1MOwogICAgICAgIH0KCiAgICAgICAgIyBjb252ZXJ0IHRoZSBnZW5lcmljIGFnZW50IGRhdGEgaGFzaCB0byBzdHJpbmcKICAgICAgICBteSAkR2VuZXJpY0FnZW50RGF0YVlBTUwgPSAkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiBcJURhdGEgKTsKCiAgICAgICAgIyBHZXQgdGhlIGN1cnJlbnQgdGltZSBmb3JtYXR0ZWQgbGlrZSAnMjAxNi0wMS0zMSAxNDowNTo0NScuCiAgICAgICAgIyBIb3BpbmcgdGhhdCBub2JvZHkgaGFzIHJlZ2lzdGVyZWQgb2JqZWN0IHBhcmFtcyBmb3IgS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lCiAgICAgICAgbXkgJFRpbWVTdGFtcCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Ub1N0cmluZygpOwoKICAgICAgICAjIHNlbmQgdGhlIHJlc3VsdCB0byB0aGUgYnJvd3NlcgogICAgICAgICRIVE1MID0gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbDsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJzZXR9LAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkR2VuZXJpY0FnZW50RGF0YVlBTUwsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdhdHRhY2htZW50JywKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gIkV4cG9ydF9HZW5lcmljQWdlbnRzXyRUaW1lU3RhbXAueW1sIiwKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJEhUTUw7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzZSB7CgogICAgICAgICMgcmVkaXJlY3QgdG8gQWRtaW5HZW5lcmljQWdlbnQKICAgICAgICBteSAkSFRNTCA9ICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluR2VuZXJpY0FnZW50IgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBfTWFzayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkR2VuZXJpY0FnZW50T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNBZ2VudCcpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25PdmVydmlldycgKTsKCiAgICAjIGNhbGwgaGludCBibG9jawogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAkUGFyYW17VHlwZX0gLiAnSGludCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICEkUGFyYW17RGF0YX0gKSB7CgogICAgICAgICRQYXJhbXtEYXRhfXtHZW5lcmljQWdlbnRzfSA9IHt9OwoKICAgICAgICAjIGV4cG9ydAogICAgICAgIG15ICVHZW5lcmljQWdlbnRzID0gJEdlbmVyaWNBZ2VudE9iamVjdC0+Sm9iTGlzdCgpOwoKICAgICAgICAjIGdldCBnZW5lcmljIGFnZW50IGRhdGEKICAgICAgICBmb3IgbXkgJEdlbmVyaWNBZ2VudE5hbWUgKCBrZXlzICVHZW5lcmljQWdlbnRzICkgewogICAgICAgICAgICBteSAlR2VuZXJpY0FnZW50RGF0YSA9ICRHZW5lcmljQWdlbnRPYmplY3QtPkpvYkdldCgKICAgICAgICAgICAgICAgIE5hbWUgPT4gJEdlbmVyaWNBZ2VudE5hbWUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkUGFyYW17RGF0YX17R2VuZXJpY0FnZW50c317ICRHZW5lcmljQWdlbnREYXRhe05hbWV9IH0gPSBcJUdlbmVyaWNBZ2VudERhdGE7CiAgICAgICAgfQogICAgfQoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgcHJpbnQgdGhlIGxpc3Qgb2YgZ2VuZXJpYyBhZ2VudHMKICAgICRTZWxmLT5fR2VuZXJpY0FnZW50U2hvdygKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pbkdlbmVyaWNBZ2VudEltcG9ydEV4cG9ydCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9HZW5lcmljQWdlbnRTaG93IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX17R2VuZXJpY0FnZW50c30gKSApIHsKCiAgICAgICAgbXkgQEdlbmVyaWNBZ2VudHNBbHJlYWR5VXNlZDsKCiAgICAgICAgR0VORVJJQ0FHRU5UTkFNRToKICAgICAgICBmb3IgbXkgJEdlbmVyaWNBZ2VudE5hbWUgKCBzb3J0IGtleXMgJFBhcmFte0RhdGF9e0dlbmVyaWNBZ2VudHN9LT4lKiApIHsKCiAgICAgICAgICAgIG15ICRHZW5lcmljQWdlbnREYXRhID0gJFBhcmFte0RhdGF9e0dlbmVyaWNBZ2VudHN9eyRHZW5lcmljQWdlbnROYW1lfTsKCiAgICAgICAgICAgIHB1c2ggQEdlbmVyaWNBZ2VudHNBbHJlYWR5VXNlZCwgJEdlbmVyaWNBZ2VudERhdGEtPntOYW1lfTsKCiAgICAgICAgICAgIG5leHQgR0VORVJJQ0FHRU5UTkFNRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJEdlbmVyaWNBZ2VudERhdGEpOwoKICAgICAgICAgICAgbXkgJUdlbmVyaWNBZ2VudERhdGEgPSAoCiAgICAgICAgICAgICAgICAleyRHZW5lcmljQWdlbnREYXRhfSwKICAgICAgICAgICAgICAgIFNob3duVmFsaWQgPT4gJEdlbmVyaWNBZ2VudERhdGEtPntWYWxpZH0gPyAndmFsaWQnIDogJ2ludmFsaWQnLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRCbG9ja3MgKCAnR2VuZXJpY0FnZW50c1JvdycsICdHZW5lcmljQWdlbnRDaGVja2JveCcsICRQYXJhbXtUeXBlfSApIHsKCiAgICAgICAgICAgICAgICAjIHByaW50IGVhY2ggZ2VuZXJpYyBhZ2VudCByb3cKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrcywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJUdlbmVyaWNBZ2VudERhdGEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2Ugc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AdminGroupImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluR3JvdXBJbXBvcnRFeHBvcnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6WUFNTCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBvYmplY3RzCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJEdyb3VwT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRZQU1MT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwogICAgbXkgJENhY2hlT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICRTZWxmLT57U3ViYWN0aW9ufSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJhY3Rpb24nICkgfHwgJyc7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnQnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAlVXBsb2FkU3R1ZmYgPSAkUGFyYW1PYmplY3QtPkdldFVwbG9hZEFsbCgKICAgICAgICAgICAgUGFyYW0gPT4gJ0ZpbGVVcGxvYWQnLAogICAgICAgICk7CgogICAgICAgIG15ICRPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnICk7CgogICAgICAgIG15ICRQZXJsU3RydWN0dXJlID0gJFlBTUxPYmplY3QtPkxvYWQoCiAgICAgICAgICAgIERhdGEgPT4gJFVwbG9hZFN0dWZme0NvbnRlbnR9LAogICAgICAgICk7CgogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnQWRtaW5Hcm91cEltcG9ydEV4cG9ydCcsCiAgICAgICAgICAgIEtleSAgID0+ICdBZG1pbkdyb3VwSW1wb3J0RXhwb3J0OjonIC4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBWYWx1ZSA9PiAkUGVybFN0cnVjdHVyZSwKICAgICAgICAgICAgVFRMICAgPT4gNjAgKiA2MCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrKAogICAgICAgICAgICBEYXRhICAgICAgICAgICAgICAgICAgICAgID0+ICRQZXJsU3RydWN0dXJlLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyB8fCAwLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnRBY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnRBY3Rpb24nICkgewoKICAgICAgICBteSAkSW1wb3J0RGF0YSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICdBZG1pbkdyb3VwSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5Hcm91cEltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkSW1wb3J0RGF0YSkgKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluR3JvdXAKICAgICAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5Hcm91cCIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycwogICAgICAgIG15IEBHcm91cHNTZWxlY3RlZCAgICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ0dyb3VwcycgKTsKICAgICAgICBteSAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzJyApIHx8IDA7CgogICAgICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICdBZG1pbkdyb3VwSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5Hcm91cEltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAgICAgIyBJbXBvcnQgR3JvdXBzCiAgICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRJbXBvcnREYXRhLT57R3JvdXBzfSApICkgewoKICAgICAgICAgICAgbXkgJUdyb3Vwc0ltcG9ydDsKICAgICAgICAgICAgR1JPVVBOQU1FOgogICAgICAgICAgICBmb3IgbXkgJEdyb3VwTmFtZSAoIGtleXMgJEltcG9ydERhdGEtPntHcm91cHN9LT4lKiApIHsKCiAgICAgICAgICAgICAgICBteSAkU2VsZWN0ZWQgPSBncmVwIHsgJEdyb3VwTmFtZSBlcSAkXyB9IEBHcm91cHNTZWxlY3RlZDsKCiAgICAgICAgICAgICAgICBuZXh0IEdST1VQTkFNRSBpZiAhJFNlbGVjdGVkOwogICAgICAgICAgICAgICAgbmV4dCBHUk9VUE5BTUUgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkSW1wb3J0RGF0YS0+e0dyb3Vwc317JEdyb3VwTmFtZX0gKTsKCiAgICAgICAgICAgICAgICAkR3JvdXBzSW1wb3J0eyRHcm91cE5hbWV9ID0gJEltcG9ydERhdGEtPntHcm91cHN9eyRHcm91cE5hbWV9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRHcm91cE9iamVjdC0+SW1wb3J0R3JvdXBzKAogICAgICAgICAgICAgICAgR3JvdXBzICAgICAgICAgICAgICAgICAgICA9PiBcJUdyb3Vwc0ltcG9ydCwKICAgICAgICAgICAgICAgIE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPT4gJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CgogICAgICAgICAgICAgICAgIyBUT0RPIHNob3cgZXJyb3IKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZWRpcmVjdCB0byBBZG1pbkdyb3VwCiAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pbkdyb3VwIgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEV4cG9ydAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0V4cG9ydCcgKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+X01hc2soCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e1N1YmFjdGlvbn0sCiAgICAgICAgKTsKCiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBFeHBvcnRBY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFeHBvcnRBY3Rpb24nICkgewoKICAgICAgICAjIGNoZWNrIHJlcXVpcmVkIHBhcmFtZXRlcnMKICAgICAgICBteSAlRGF0YTsKICAgICAgICBteSAkSFRNTDsKICAgICAgICBteSBAR3JvdXBzID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ0dyb3VwcycgKTsKCiAgICAgICAgaWYgKEBHcm91cHMpIHsKICAgICAgICAgICAgJERhdGF7R3JvdXBzfSA9ICRHcm91cE9iamVjdC0+RXhwb3J0R3JvdXBzKAogICAgICAgICAgICAgICAgR3JvdXBzID0+IFxAR3JvdXBzLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJURhdGEgKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluR3JvdXBJbXBvcnRFeHBvcnQKICAgICAgICAgICAgJEhUTUwgLj0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluR3JvdXBJbXBvcnRFeHBvcnQ7U3ViYWN0aW9uPUV4cG9ydCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY29udmVydCB0aGUgZ3JvdXAgZGF0YSBoYXNoIHRvIHN0cmluZwogICAgICAgIG15ICRHcm91cERhdGFZQU1MID0gJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gXCVEYXRhICk7CgogICAgICAgICMgR2V0IHRoZSBjdXJyZW50IHRpbWUgZm9ybWF0dGVkIGxpa2UgJzIwMTYtMDEtMzEgMTQ6MDU6NDUnLgogICAgICAgICMgSG9waW5nIHRoYXQgbm9ib2R5IGhhcyByZWdpc3RlcmVkIG9iamVjdCBwYXJhbXMgZm9yIEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZQogICAgICAgIG15ICRUaW1lU3RhbXAgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+VG9TdHJpbmcoKTsKCiAgICAgICAgIyBzZW5kIHRoZSByZXN1bHQgdG8gdGhlIGJyb3dzZXIKICAgICAgICAkSFRNTCA9ICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWw7IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJEdyb3VwRGF0YVlBTUwsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdhdHRhY2htZW50JywKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gIkV4cG9ydF9Hcm91cHNfJFRpbWVTdGFtcC55bWwiLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNlIHsKCiAgICAgICAgIyByZWRpcmVjdCB0byBBZG1pbkdyb3VwCiAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pbkdyb3VwIgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBfTWFzayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkR3JvdXBPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JyApOwoKICAgICMgY2FsbCBoaW50IGJsb2NrCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICRQYXJhbXtUeXBlfSAuICdIaW50JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISRQYXJhbXtEYXRhfSApIHsKCiAgICAgICAgJFBhcmFte0RhdGF9e0dyb3Vwc30gPSB7fTsKCiAgICAgICAgIyBleHBvcnQKICAgICAgICBteSAlR3JvdXBzID0gJEdyb3VwT2JqZWN0LT5Hcm91cExpc3QoCiAgICAgICAgICAgIFZhbGlkID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgZ3JvdXAgZGF0YQogICAgICAgIGZvciBteSAkR3JvdXBJRCAoIGtleXMgJUdyb3VwcyApIHsKICAgICAgICAgICAgbXkgJUdyb3VwRGF0YSA9ICRHcm91cE9iamVjdC0+R3JvdXBHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkR3JvdXBJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQYXJhbXtEYXRhfXtHcm91cHN9eyAkR3JvdXBEYXRhe05hbWV9IH0gPSBcJUdyb3VwRGF0YTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBwcmludCB0aGUgbGlzdCBvZiBncm91cHMKICAgICRTZWxmLT5fR3JvdXBTaG93KAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluR3JvdXBJbXBvcnRFeHBvcnQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfR3JvdXBTaG93IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRWYWxpZE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX17R3JvdXBzfSApICkgewoKICAgICAgICBteSBAR3JvdXBzQWxyZWFkeVVzZWQ7CgogICAgICAgIEdST1VQTkFNRToKICAgICAgICBmb3IgbXkgJEdyb3VwTmFtZSAoIHNvcnQga2V5cyAkUGFyYW17RGF0YX17R3JvdXBzfS0+JSogKSB7CgogICAgICAgICAgICBteSAkR3JvdXBEYXRhID0gJFBhcmFte0RhdGF9e0dyb3Vwc317JEdyb3VwTmFtZX07CgogICAgICAgICAgICBwdXNoIEBHcm91cHNBbHJlYWR5VXNlZCwgJEdyb3VwRGF0YS0+e05hbWV9OwoKICAgICAgICAgICAgbmV4dCBHUk9VUE5BTUUgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRHcm91cERhdGEpOwoKICAgICAgICAgICAgIyBjb252ZXJ0IFZhbGlkSUQgdG8gVmFsaWRpdHkgc3RyaW5nCiAgICAgICAgICAgIG15ICRWYWxpZCA9ICRHcm91cERhdGEtPntWYWxpZH0gfHwgJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCgKICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gJEdyb3VwRGF0YS0+e1ZhbGlkSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJUdyb3VwRGF0YSA9ICgKICAgICAgICAgICAgICAgICV7JEdyb3VwRGF0YX0sCiAgICAgICAgICAgICAgICBWYWxpZCA9PiAkVmFsaWQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJEJsb2NrcyAoICdHcm91cHNSb3cnLCAnR3JvdXBDaGVja2JveCcsICRQYXJhbXtUeXBlfSApIHsKCiAgICAgICAgICAgICAgICAjIHByaW50IGVhY2ggZ3JvdXAgcm93CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRCbG9ja3MsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVHcm91cERhdGEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2Ugc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AdminQueueImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluUXVldWVJbXBvcnRFeHBvcnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6WUFNTCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBvYmplY3RzCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFF1ZXVlT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRZQU1MT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwogICAgbXkgJENhY2hlT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICRTZWxmLT57U3ViYWN0aW9ufSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJhY3Rpb24nICkgfHwgJyc7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnQnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAlVXBsb2FkU3R1ZmYgPSAkUGFyYW1PYmplY3QtPkdldFVwbG9hZEFsbCgKICAgICAgICAgICAgUGFyYW0gPT4gJ0ZpbGVVcGxvYWQnLAogICAgICAgICk7CgogICAgICAgIG15ICRPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnICk7CgogICAgICAgIG15ICRQZXJsU3RydWN0dXJlID0gJFlBTUxPYmplY3QtPkxvYWQoCiAgICAgICAgICAgIERhdGEgPT4gJFVwbG9hZFN0dWZme0NvbnRlbnR9LAogICAgICAgICk7CgogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnQWRtaW5RdWV1ZUltcG9ydEV4cG9ydCcsCiAgICAgICAgICAgIEtleSAgID0+ICdBZG1pblF1ZXVlSW1wb3J0RXhwb3J0OjonIC4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBWYWx1ZSA9PiAkUGVybFN0cnVjdHVyZSwKICAgICAgICAgICAgVFRMICAgPT4gNjAgKiA2MCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrKAogICAgICAgICAgICBEYXRhICAgICAgICAgICAgICAgICAgICAgID0+ICRQZXJsU3RydWN0dXJlLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyB8fCAwLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnRBY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnRBY3Rpb24nICkgewoKICAgICAgICBteSAkSW1wb3J0RGF0YSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICdBZG1pblF1ZXVlSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5RdWV1ZUltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkSW1wb3J0RGF0YSkgKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluUXVldWUKICAgICAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5RdWV1ZSIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycwogICAgICAgIG15IEBRdWV1ZXNTZWxlY3RlZCAgICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1F1ZXVlcycgKTsKICAgICAgICBteSAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzJyApIHx8IDA7CgogICAgICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICdBZG1pblF1ZXVlSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5RdWV1ZUltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAgICAgIyBJbXBvcnQgUXVldWVzCiAgICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRJbXBvcnREYXRhLT57UXVldWVzfSApICkgewoKICAgICAgICAgICAgbXkgJVF1ZXVlc0ltcG9ydDsKICAgICAgICAgICAgUVVFVUVOQU1FOgogICAgICAgICAgICBmb3IgbXkgJFF1ZXVlTmFtZSAoIGtleXMgJEltcG9ydERhdGEtPntRdWV1ZXN9LT4lKiApIHsKCiAgICAgICAgICAgICAgICBteSAkU2VsZWN0ZWQgPSBncmVwIHsgJFF1ZXVlTmFtZSBlcSAkXyB9IEBRdWV1ZXNTZWxlY3RlZDsKCiAgICAgICAgICAgICAgICBuZXh0IFFVRVVFTkFNRSBpZiAhJFNlbGVjdGVkOwogICAgICAgICAgICAgICAgbmV4dCBRVUVVRU5BTUUgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkSW1wb3J0RGF0YS0+e1F1ZXVlc317JFF1ZXVlTmFtZX0gKTsKCiAgICAgICAgICAgICAgICAkUXVldWVzSW1wb3J0eyRRdWV1ZU5hbWV9ID0gJEltcG9ydERhdGEtPntRdWV1ZXN9eyRRdWV1ZU5hbWV9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRRdWV1ZU9iamVjdC0+SW1wb3J0UXVldWVzKAogICAgICAgICAgICAgICAgUXVldWVzICAgICAgICAgICAgICAgICAgICA9PiBcJVF1ZXVlc0ltcG9ydCwKICAgICAgICAgICAgICAgIE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPT4gJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CgogICAgICAgICAgICAgICAgIyBUT0RPIHNob3cgZXJyb3IKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZWRpcmVjdCB0byBBZG1pblF1ZXVlCiAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pblF1ZXVlIgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEV4cG9ydAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0V4cG9ydCcgKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+X01hc2soCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e1N1YmFjdGlvbn0sCiAgICAgICAgKTsKCiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBFeHBvcnRBY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdFeHBvcnRBY3Rpb24nICkgewoKICAgICAgICAjIGNoZWNrIHJlcXVpcmVkIHBhcmFtZXRlcnMKICAgICAgICBteSAlRGF0YTsKICAgICAgICBteSAkSFRNTDsKICAgICAgICBteSBAUXVldWVzID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1F1ZXVlcycgKTsKCiAgICAgICAgaWYgKEBRdWV1ZXMpIHsKICAgICAgICAgICAgJERhdGF7UXVldWVzfSA9ICRRdWV1ZU9iamVjdC0+RXhwb3J0UXVldWVzKAogICAgICAgICAgICAgICAgUXVldWVzID0+IFxAUXVldWVzLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJURhdGEgKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluUXVldWVJbXBvcnRFeHBvcnQKICAgICAgICAgICAgJEhUTUwgLj0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluUXVldWVJbXBvcnRFeHBvcnQ7U3ViYWN0aW9uPUV4cG9ydCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY29udmVydCB0aGUgcXVldWUgZGF0YSBoYXNoIHRvIHN0cmluZwogICAgICAgIG15ICRRdWV1ZURhdGFZQU1MID0gJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gXCVEYXRhICk7CgogICAgICAgICMgR2V0IHRoZSBjdXJyZW50IHRpbWUgZm9ybWF0dGVkIGxpa2UgJzIwMTYtMDEtMzEgMTQ6MDU6NDUnLgogICAgICAgICMgSG9waW5nIHRoYXQgbm9ib2R5IGhhcyByZWdpc3RlcmVkIG9iamVjdCBwYXJhbXMgZm9yIEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZQogICAgICAgIG15ICRUaW1lU3RhbXAgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+VG9TdHJpbmcoKTsKCiAgICAgICAgIyBzZW5kIHRoZSByZXN1bHQgdG8gdGhlIGJyb3dzZXIKICAgICAgICAkSFRNTCA9ICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWw7IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJFF1ZXVlRGF0YVlBTUwsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdhdHRhY2htZW50JywKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gIkV4cG9ydF9RdWV1ZXNfJFRpbWVTdGFtcC55bWwiLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNlIHsKCiAgICAgICAgIyByZWRpcmVjdCB0byBBZG1pblF1ZXVlCiAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pblF1ZXVlIgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBfTWFzayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkUXVldWVPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JyApOwoKICAgICMgY2FsbCBoaW50IGJsb2NrCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICRQYXJhbXtUeXBlfSAuICdIaW50JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISRQYXJhbXtEYXRhfSApIHsKCiAgICAgICAgJFBhcmFte0RhdGF9e1F1ZXVlc30gPSB7fTsKCiAgICAgICAgIyBleHBvcnQKICAgICAgICBteSAlUXVldWVzID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUxpc3QoCiAgICAgICAgICAgIFZhbGlkID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgcXVldWUgZGF0YQogICAgICAgIGZvciBteSAkUXVldWVJRCAoIGtleXMgJVF1ZXVlcyApIHsKICAgICAgICAgICAgbXkgJVF1ZXVlRGF0YSA9ICRRdWV1ZU9iamVjdC0+UXVldWVHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkUXVldWVJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQYXJhbXtEYXRhfXtRdWV1ZXN9eyAkUXVldWVEYXRhe05hbWV9IH0gPSBcJVF1ZXVlRGF0YTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBwcmludCB0aGUgbGlzdCBvZiBxdWV1ZXMKICAgICRTZWxmLT5fUXVldWVTaG93KAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluUXVldWVJbXBvcnRFeHBvcnQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfUXVldWVTaG93IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRWYWxpZE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKCiAgICAjIGNoZWNrIGlmIGF0IGxlYXN0IDEgZHluYW1pYyBmaWVsZCBpcyByZWdpc3RlcmVkIGluIHRoZSBzeXN0ZW0KICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfXtRdWV1ZXN9ICkgKSB7CgogICAgICAgIG15IEBRdWV1ZXNBbHJlYWR5VXNlZDsKCiAgICAgICAgUVVFVUVOQU1FOgogICAgICAgIGZvciBteSAkUXVldWVOYW1lICggc29ydCBrZXlzICRQYXJhbXtEYXRhfXtRdWV1ZXN9LT4lKiApIHsKCiAgICAgICAgICAgIG15ICRRdWV1ZURhdGEgPSAkUGFyYW17RGF0YX17UXVldWVzfXskUXVldWVOYW1lfTsKCiAgICAgICAgICAgIHB1c2ggQFF1ZXVlc0FscmVhZHlVc2VkLCAkUXVldWVEYXRhLT57TmFtZX07CgogICAgICAgICAgICBuZXh0IFFVRVVFTkFNRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJFF1ZXVlRGF0YSk7CgogICAgICAgICAgICAjIGNvbnZlcnQgVmFsaWRJRCB0byBWYWxpZGl0eSBzdHJpbmcKICAgICAgICAgICAgbXkgJFZhbGlkID0gJFF1ZXVlRGF0YS0+e1ZhbGlkfSB8fCAkVmFsaWRPYmplY3QtPlZhbGlkTG9va3VwKAogICAgICAgICAgICAgICAgVmFsaWRJRCA9PiAkUXVldWVEYXRhLT57VmFsaWRJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAlUXVldWVEYXRhID0gKAogICAgICAgICAgICAgICAgJXskUXVldWVEYXRhfSwKICAgICAgICAgICAgICAgIFZhbGlkID0+ICRWYWxpZCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGZvciBteSAkQmxvY2tzICggJ1F1ZXVlc1JvdycsICdRdWV1ZUNoZWNrYm94JywgJFBhcmFte1R5cGV9ICkgewoKICAgICAgICAgICAgICAgICMgcHJpbnQgZWFjaCBxdWV1ZSByb3cKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrcywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVF1ZXVlRGF0YSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIG90aGVyd2lzZSBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmQnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AdminQueueTemplatesImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluUXVldWVUZW1wbGF0ZXNJbXBvcnRFeHBvcnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlZhbGlkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6WUFNTCcsCik7CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBvYmplY3RzCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFF1ZXVlT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRZQU1MT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwogICAgbXkgJENhY2hlT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICRTZWxmLT57U3ViYWN0aW9ufSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJhY3Rpb24nICkgfHwgJyc7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnQnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAlVXBsb2FkU3R1ZmYgPSAkUGFyYW1PYmplY3QtPkdldFVwbG9hZEFsbCgKICAgICAgICAgICAgUGFyYW0gPT4gJ0ZpbGVVcGxvYWQnLAogICAgICAgICk7CgogICAgICAgIG15ICRPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnICk7CgogICAgICAgIG15ICRQZXJsU3RydWN0dXJlID0gJFlBTUxPYmplY3QtPkxvYWQoCiAgICAgICAgICAgIERhdGEgPT4gJFVwbG9hZFN0dWZme0NvbnRlbnR9LAogICAgICAgICk7CgogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnQWRtaW5RdWV1ZVRlbXBsYXRlc0ltcG9ydEV4cG9ydCcsCiAgICAgICAgICAgIEtleSAgID0+ICdBZG1pblF1ZXVlVGVtcGxhdGVzSW1wb3J0RXhwb3J0OjonIC4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBWYWx1ZSA9PiAkUGVybFN0cnVjdHVyZSwKICAgICAgICAgICAgVFRMICAgPT4gNjAgKiA2MCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrKAogICAgICAgICAgICBEYXRhICAgICAgICAgICAgICAgICAgICAgID0+ICRQZXJsU3RydWN0dXJlLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyB8fCAwLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnRBY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnRBY3Rpb24nICkgewoKICAgICAgICBteSAkSW1wb3J0RGF0YSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICdBZG1pblF1ZXVlVGVtcGxhdGVzSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5RdWV1ZVRlbXBsYXRlc0ltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkSW1wb3J0RGF0YSkgKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluUXVldWVUZW1wbGF0ZXMKICAgICAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5RdWV1ZVRlbXBsYXRlcyIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycwogICAgICAgIG15IEBRdWV1ZXNTZWxlY3RlZCAgICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1F1ZXVlcycgKTsKICAgICAgICBteSAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzJyApIHx8IDA7CgogICAgICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICdBZG1pblF1ZXVlVGVtcGxhdGVzSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5RdWV1ZVRlbXBsYXRlc0ltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAgICAgIyBJbXBvcnQgUXVldWUtVGVtcGxhdGVzCiAgICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRJbXBvcnREYXRhLT57UXVldWVUZW1wbGF0ZXN9ICkgKSB7CgogICAgICAgICAgICBteSAlUXVldWVzSW1wb3J0OwogICAgICAgICAgICBRVUVVRU5BTUU6CiAgICAgICAgICAgIGZvciBteSAkUXVldWVOYW1lICgga2V5cyAkSW1wb3J0RGF0YS0+e1F1ZXVlVGVtcGxhdGVzfS0+JSogKSB7CgogICAgICAgICAgICAgICAgbXkgJFNlbGVjdGVkID0gZ3JlcCB7ICRRdWV1ZU5hbWUgZXEgJF8gfSBAUXVldWVzU2VsZWN0ZWQ7CgogICAgICAgICAgICAgICAgbmV4dCBRVUVVRU5BTUUgaWYgISRTZWxlY3RlZDsKICAgICAgICAgICAgICAgIG5leHQgUVVFVUVOQU1FIGlmICFJc0FycmF5UmVmV2l0aERhdGEoICRJbXBvcnREYXRhLT57UXVldWVUZW1wbGF0ZXN9eyRRdWV1ZU5hbWV9ICk7CgogICAgICAgICAgICAgICAgJFF1ZXVlc0ltcG9ydHskUXVldWVOYW1lfSA9ICRJbXBvcnREYXRhLT57UXVldWVUZW1wbGF0ZXN9eyRRdWV1ZU5hbWV9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRRdWV1ZU9iamVjdC0+SW1wb3J0UXVldWVUZW1wbGF0ZXMoCiAgICAgICAgICAgICAgICBRdWV1ZVRlbXBsYXRlcyAgICAgICAgICAgID0+IFwlUXVldWVzSW1wb3J0LAogICAgICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICAjIFRPRE8gc2hvdyBlcnJvcgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluUXVldWUKICAgICAgICBteSAkSFRNTCA9ICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluUXVldWVUZW1wbGF0ZXMiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRIVE1MOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRXhwb3J0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0JyApIHsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFzaygKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRXhwb3J0QWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0QWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGVjayByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgJURhdGE7CiAgICAgICAgbXkgJEhUTUw7CiAgICAgICAgbXkgQFF1ZXVlcyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdRdWV1ZXMnICk7CgogICAgICAgIGlmIChAUXVldWVzKSB7CiAgICAgICAgICAgICREYXRhe1F1ZXVlVGVtcGxhdGVzfSA9ICRRdWV1ZU9iamVjdC0+RXhwb3J0UXVldWVUZW1wbGF0ZXMoCiAgICAgICAgICAgICAgICBRdWV1ZXMgPT4gXEBRdWV1ZXMsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICElRGF0YSApIHsKCiAgICAgICAgICAgICMgcmVkaXJlY3QgdG8gQWRtaW5RdWV1ZVRlbXBsYXRlc0ltcG9ydEV4cG9ydAogICAgICAgICAgICAkSFRNTCAuPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5RdWV1ZVRlbXBsYXRlc0ltcG9ydEV4cG9ydDtTdWJhY3Rpb249RXhwb3J0IiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRIVE1MOwogICAgICAgIH0KCiAgICAgICAgIyBjb252ZXJ0IHRoZSBxdWV1ZSBkYXRhIGhhc2ggdG8gc3RyaW5nCiAgICAgICAgbXkgJFF1ZXVlVGVtcGxhdGVzRGF0YVlBTUwgPSAkWUFNTE9iamVjdC0+RHVtcCggRGF0YSA9PiBcJURhdGEgKTsKCiAgICAgICAgIyBHZXQgdGhlIGN1cnJlbnQgdGltZSBmb3JtYXR0ZWQgbGlrZSAnMjAxNi0wMS0zMSAxNDowNTo0NScuCiAgICAgICAgIyBIb3BpbmcgdGhhdCBub2JvZHkgaGFzIHJlZ2lzdGVyZWQgb2JqZWN0IHBhcmFtcyBmb3IgS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lCiAgICAgICAgbXkgJFRpbWVTdGFtcCA9ICRLZXJuZWw6Ok9NLT5DcmVhdGUoJ0tlcm5lbDo6U3lzdGVtOjpEYXRlVGltZScpLT5Ub1N0cmluZygpOwoKICAgICAgICAjIHNlbmQgdGhlIHJlc3VsdCB0byB0aGUgYnJvd3NlcgogICAgICAgICRIVE1MID0gJExheW91dE9iamVjdC0+QXR0YWNobWVudCgKICAgICAgICAgICAgQ29udGVudFR5cGUgPT4gJ3RleHQvaHRtbDsgY2hhcnNldD0nIC4gJExheW91dE9iamVjdC0+e0NoYXJzZXR9LAogICAgICAgICAgICBDb250ZW50ICAgICA9PiAkUXVldWVUZW1wbGF0ZXNEYXRhWUFNTCwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2F0dGFjaG1lbnQnLAogICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAiRXhwb3J0X1F1ZXVlVGVtcGxhdGVzXyRUaW1lU3RhbXAueW1sIiwKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJEhUTUw7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzZSB7CgogICAgICAgICMgcmVkaXJlY3QgdG8gQWRtaW5RdWV1ZVRlbXBsYXRlcwogICAgICAgIG15ICRIVE1MID0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5RdWV1ZVRlbXBsYXRlcyIKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJEhUTUw7CiAgICB9CgogICAgcmV0dXJuOwp9CgpzdWIgX01hc2sgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFF1ZXVlT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25PdmVydmlldycgKTsKCiAgICAjIGNhbGwgaGludCBibG9jawogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAkUGFyYW17VHlwZX0gLiAnSGludCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICEkUGFyYW17RGF0YX0gKSB7CgogICAgICAgICRQYXJhbXtEYXRhfXtRdWV1ZVRlbXBsYXRlc30gPSB7fTsKCiAgICAgICAgIyBleHBvcnQKICAgICAgICBteSAlUXVldWVzID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUxpc3QoCiAgICAgICAgICAgIFZhbGlkID0+IDAsCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte0RhdGF9e1F1ZXVlVGVtcGxhdGVzfSA9IHsgbWFwIHsgJF8gPT4ge30gfSB2YWx1ZXMgJVF1ZXVlcyB9OwogICAgfQoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgcHJpbnQgdGhlIGxpc3Qgb2YgcXVldWVzCiAgICAkU2VsZi0+X1F1ZXVlU2hvdygKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblF1ZXVlVGVtcGxhdGVzSW1wb3J0RXhwb3J0JywKICAgICAgICBEYXRhICAgICAgICAgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5Gb290ZXIoKTsKICAgIHJldHVybiAkT3V0cHV0Owp9CgpzdWIgX1F1ZXVlU2hvdyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRRdWV1ZU9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CgogICAgIyBjaGVjayBpZiBhdCBsZWFzdCAxIGR5bmFtaWMgZmllbGQgaXMgcmVnaXN0ZXJlZCBpbiB0aGUgc3lzdGVtCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX17UXVldWVUZW1wbGF0ZXN9ICkgKSB7CgogICAgICAgIG15IEBRdWV1ZXNBbHJlYWR5VXNlZDsKCiAgICAgICAgUVVFVUVOQU1FOgogICAgICAgIGZvciBteSAkUXVldWVOYW1lICggc29ydCBrZXlzICRQYXJhbXtEYXRhfXtRdWV1ZVRlbXBsYXRlc30tPiUqICkgewoKICAgICAgICAgICAgcHVzaCBAUXVldWVzQWxyZWFkeVVzZWQsICRRdWV1ZU5hbWU7CgogICAgICAgICAgICBmb3IgbXkgJEJsb2NrcyAoICdRdWV1ZXNSb3cnLCAnUXVldWVDaGVja2JveCcsICRQYXJhbXtUeXBlfSApIHsKCiAgICAgICAgICAgICAgICAjIHByaW50IGVhY2ggcXVldWUgcm93CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRCbG9ja3MsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIE5hbWUgICAgPT4gJFF1ZXVlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCA9PiAkUXVldWVPYmplY3QtPlF1ZXVlTG9va3VwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUXVldWUgPT4gJFF1ZXVlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIG90aGVyd2lzZSBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmQnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AdminRoleImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluUm9sZUltcG9ydEV4cG9ydDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG9iamVjdHMKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkR3JvdXBPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFlBTUxPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CiAgICBteSAkQ2FjaGVPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgJFNlbGYtPntTdWJhY3Rpb259ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1YmFjdGlvbicgKSB8fCAnJzsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEltcG9ydAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0ltcG9ydCcgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICVVcGxvYWRTdHVmZiA9ICRQYXJhbU9iamVjdC0+R2V0VXBsb2FkQWxsKAogICAgICAgICAgICBQYXJhbSA9PiAnRmlsZVVwbG9hZCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcycgKTsKCiAgICAgICAgbXkgJFBlcmxTdHJ1Y3R1cmUgPSAkWUFNTE9iamVjdC0+TG9hZCgKICAgICAgICAgICAgRGF0YSA9PiAkVXBsb2FkU3R1ZmZ7Q29udGVudH0sCiAgICAgICAgKTsKCiAgICAgICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICdBZG1pblJvbGVJbXBvcnRFeHBvcnQnLAogICAgICAgICAgICBLZXkgICA9PiAnQWRtaW5Sb2xlSW1wb3J0RXhwb3J0OjonIC4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBWYWx1ZSA9PiAkUGVybFN0cnVjdHVyZSwKICAgICAgICAgICAgVFRMICAgPT4gNjAgKiA2MCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrKAogICAgICAgICAgICBEYXRhICAgICAgICAgICAgICAgICAgICAgID0+ICRQZXJsU3RydWN0dXJlLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyB8fCAwLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnRBY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnRBY3Rpb24nICkgewoKICAgICAgICBteSAkSW1wb3J0RGF0YSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICdBZG1pblJvbGVJbXBvcnRFeHBvcnQnLAogICAgICAgICAgICBLZXkgID0+ICdBZG1pblJvbGVJbXBvcnRFeHBvcnQ6OicgLiAkU2VsZi0+e1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJEltcG9ydERhdGEpICkgewoKICAgICAgICAgICAgIyByZWRpcmVjdCB0byBBZG1pblJvbGUKICAgICAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5Sb2xlIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuICRIVE1MOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgQFJvbGVzU2VsZWN0ZWQgICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnUm9sZXMnICk7CiAgICAgICAgbXkgJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcycgKSB8fCAwOwoKICAgICAgICAkQ2FjaGVPYmplY3QtPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAnQWRtaW5Sb2xlSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5Sb2xlSW1wb3J0RXhwb3J0OjonIC4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICAgICAjIEltcG9ydCBSb2xlcwogICAgICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkSW1wb3J0RGF0YS0+e1JvbGVzfSApICkgewoKICAgICAgICAgICAgbXkgJVJvbGVzSW1wb3J0OwogICAgICAgICAgICBST0xFTkFNRToKICAgICAgICAgICAgZm9yIG15ICRSb2xlTmFtZSAoIGtleXMgJEltcG9ydERhdGEtPntSb2xlc30tPiUqICkgewoKICAgICAgICAgICAgICAgIG15ICRTZWxlY3RlZCA9IGdyZXAgeyAkUm9sZU5hbWUgZXEgJF8gfSBAUm9sZXNTZWxlY3RlZDsKCiAgICAgICAgICAgICAgICBuZXh0IFJPTEVOQU1FIGlmICEkU2VsZWN0ZWQ7CiAgICAgICAgICAgICAgICBuZXh0IFJPTEVOQU1FIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJEltcG9ydERhdGEtPntSb2xlc317JFJvbGVOYW1lfSApOwoKICAgICAgICAgICAgICAgICRSb2xlc0ltcG9ydHskUm9sZU5hbWV9ID0gJEltcG9ydERhdGEtPntSb2xlc317JFJvbGVOYW1lfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkR3JvdXBPYmplY3QtPkltcG9ydFJvbGVzKAogICAgICAgICAgICAgICAgUm9sZXMgICAgICAgICAgICAgICAgICAgICA9PiBcJVJvbGVzSW1wb3J0LAogICAgICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICAjIFRPRE8gc2hvdyBlcnJvcgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluUm9sZQogICAgICAgIG15ICRIVE1MID0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5Sb2xlIgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEV4cG9ydAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0V4cG9ydCcgKSB7CgogICAgICAgIHJldHVybiAkU2VsZi0+X01hc2soCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVHlwZSA9PiAkU2VsZi0+e1N1YmFjdGlvbn0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEV4cG9ydEFjdGlvbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0V4cG9ydEFjdGlvbicgKSB7CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycwogICAgICAgIG15ICVEYXRhOwogICAgICAgIG15ICRIVE1MOwogICAgICAgIG15IEBSb2xlcyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdSb2xlcycgKTsKCiAgICAgICAgaWYgKEBSb2xlcykgewogICAgICAgICAgICAkRGF0YXtSb2xlc30gPSAkR3JvdXBPYmplY3QtPkV4cG9ydFJvbGVzKAogICAgICAgICAgICAgICAgUm9sZXMgPT4gXEBSb2xlcywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggISVEYXRhICkgewoKICAgICAgICAgICAgIyByZWRpcmVjdCB0byBBZG1pblJvbGVJbXBvcnRFeHBvcnQKICAgICAgICAgICAgJEhUTUwgLj0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluUm9sZUltcG9ydEV4cG9ydDtTdWJhY3Rpb249RXhwb3J0IiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRIVE1MOwogICAgICAgIH0KCiAgICAgICAgIyBjb252ZXJ0IHRoZSByb2xlIGRhdGEgaGFzaCB0byBzdHJpbmcKICAgICAgICBteSAkUm9sZURhdGFZQU1MID0gJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gXCVEYXRhICk7CgogICAgICAgICMgR2V0IHRoZSBjdXJyZW50IHRpbWUgZm9ybWF0dGVkIGxpa2UgJzIwMTYtMDEtMzEgMTQ6MDU6NDUnLgogICAgICAgICMgSG9waW5nIHRoYXQgbm9ib2R5IGhhcyByZWdpc3RlcmVkIG9iamVjdCBwYXJhbXMgZm9yIEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZQogICAgICAgIG15ICRUaW1lU3RhbXAgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+VG9TdHJpbmcoKTsKCiAgICAgICAgIyBzZW5kIHRoZSByZXN1bHQgdG8gdGhlIGJyb3dzZXIKICAgICAgICAkSFRNTCA9ICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWw7IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJFJvbGVEYXRhWUFNTCwKICAgICAgICAgICAgVHlwZSAgICAgICAgPT4gJ2F0dGFjaG1lbnQnLAogICAgICAgICAgICBGaWxlbmFtZSAgICA9PiAiRXhwb3J0X1JvbGVzXyRUaW1lU3RhbXAueW1sIiwKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJEhUTUw7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzZSB7CgogICAgICAgICMgcmVkaXJlY3QgdG8gQWRtaW5Sb2xlCiAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pblJvbGUiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRIVE1MOwogICAgfQoKICAgIHJldHVybjsKfQoKc3ViIF9NYXNrIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRHcm91cE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXcnICk7CgogICAgIyBjYWxsIGhpbnQgYmxvY2sKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJFBhcmFte1R5cGV9IC4gJ0hpbnQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAhJFBhcmFte0RhdGF9ICkgewoKICAgICAgICAkUGFyYW17RGF0YX17Um9sZXN9ID0ge307CgogICAgICAgICMgZXhwb3J0CiAgICAgICAgbXkgJVJvbGVzID0gJEdyb3VwT2JqZWN0LT5Sb2xlTGlzdCgKICAgICAgICAgICAgVmFsaWQgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIGdldCByb2xlIGRhdGEKICAgICAgICBmb3IgbXkgJFJvbGVJRCAoIGtleXMgJVJvbGVzICkgewogICAgICAgICAgICBteSAlUm9sZURhdGEgPSAkR3JvdXBPYmplY3QtPlJvbGVHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkUm9sZUlELAogICAgICAgICAgICApOwoKICAgICAgICAgICAgJFBhcmFte0RhdGF9e1JvbGVzfXsgJFJvbGVEYXRhe05hbWV9IH0gPSBcJVJvbGVEYXRhOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkT3V0cHV0ID0gJExheW91dE9iamVjdC0+SGVhZGVyKCk7CiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk5hdmlnYXRpb25CYXIoKTsKCiAgICAjIHByaW50IHRoZSBsaXN0IG9mIHJvbGVzCiAgICAkU2VsZi0+X1JvbGVTaG93KAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluUm9sZUltcG9ydEV4cG9ydCcsCiAgICAgICAgRGF0YSAgICAgICAgID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+Rm9vdGVyKCk7CiAgICByZXR1cm4gJE91dHB1dDsKfQoKc3ViIF9Sb2xlU2hvdyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkVmFsaWRPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlZhbGlkJyk7CgogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0RhdGF9e1JvbGVzfSApICkgewoKICAgICAgICBteSBAUm9sZXNBbHJlYWR5VXNlZDsKCiAgICAgICAgUk9MRU5BTUU6CiAgICAgICAgZm9yIG15ICRSb2xlTmFtZSAoIHNvcnQga2V5cyAkUGFyYW17RGF0YX17Um9sZXN9LT4lKiApIHsKCiAgICAgICAgICAgIG15ICRSb2xlRGF0YSA9ICRQYXJhbXtEYXRhfXtSb2xlc317JFJvbGVOYW1lfTsKCiAgICAgICAgICAgIHB1c2ggQFJvbGVzQWxyZWFkeVVzZWQsICRSb2xlRGF0YS0+e05hbWV9OwoKICAgICAgICAgICAgbmV4dCBST0xFTkFNRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJFJvbGVEYXRhKTsKCiAgICAgICAgICAgICMgY29udmVydCBWYWxpZElEIHRvIFZhbGlkaXR5IHN0cmluZwogICAgICAgICAgICBteSAkVmFsaWQgPSAkUm9sZURhdGEtPntWYWxpZH0gfHwgJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCgKICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gJFJvbGVEYXRhLT57VmFsaWRJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAlUm9sZURhdGEgPSAoCiAgICAgICAgICAgICAgICAleyRSb2xlRGF0YX0sCiAgICAgICAgICAgICAgICBWYWxpZCA9PiAkVmFsaWQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJEJsb2NrcyAoICdSb2xlc1JvdycsICdSb2xlQ2hlY2tib3gnLCAkUGFyYW17VHlwZX0gKSB7CgogICAgICAgICAgICAgICAgIyBwcmludCBlYWNoIHJvbGUgcm93CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRCbG9ja3MsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVSb2xlRGF0YSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIG90aGVyd2lzZSBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmQnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AdminRoleGroupImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluUm9sZUdyb3VwSW1wb3J0RXhwb3J0OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyBjb3JlIG1vZHVsZXMKCiMgQ1BBTiBtb2R1bGVzCgojIE9UT0JPIG1vZHVsZXMKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG9iamVjdHMKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkR3JvdXBPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CiAgICBteSAkUGFyYW1PYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcpOwogICAgbXkgJFlBTUxPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CiAgICBteSAkQ2FjaGVPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CgogICAgJFNlbGYtPntTdWJhY3Rpb259ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ1N1YmFjdGlvbicgKSB8fCAnJzsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEltcG9ydAogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkU2VsZi0+e1N1YmFjdGlvbn0gZXEgJ0ltcG9ydCcgKSB7CgogICAgICAgICMgY2hhbGxlbmdlIHRva2VuIGNoZWNrIGZvciB3cml0ZSBhY3Rpb24KICAgICAgICAkTGF5b3V0T2JqZWN0LT5DaGFsbGVuZ2VUb2tlbkNoZWNrKCk7CgogICAgICAgIG15ICVVcGxvYWRTdHVmZiA9ICRQYXJhbU9iamVjdC0+R2V0VXBsb2FkQWxsKAogICAgICAgICAgICBQYXJhbSA9PiAnRmlsZVVwbG9hZCcsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcycgKTsKCiAgICAgICAgbXkgJFBlcmxTdHJ1Y3R1cmUgPSAkWUFNTE9iamVjdC0+TG9hZCgKICAgICAgICAgICAgRGF0YSA9PiAkVXBsb2FkU3R1ZmZ7Q29udGVudH0sCiAgICAgICAgKTsKCiAgICAgICAgJENhY2hlT2JqZWN0LT5TZXQoCiAgICAgICAgICAgIFR5cGUgID0+ICdBZG1pblJvbGVHcm91cEltcG9ydEV4cG9ydCcsCiAgICAgICAgICAgIEtleSAgID0+ICdBZG1pblJvbGVHcm91cEltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgVmFsdWUgPT4gJFBlcmxTdHJ1Y3R1cmUsCiAgICAgICAgICAgIFRUTCAgID0+IDYwICogNjAsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFzaygKICAgICAgICAgICAgRGF0YSAgICAgICAgICAgICAgICAgICAgICA9PiAkUGVybFN0cnVjdHVyZSwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e1N1YmFjdGlvbn0sCiAgICAgICAgICAgIE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPT4gJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgfHwgMCwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgSW1wb3J0QWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnSW1wb3J0QWN0aW9uJyApIHsKCiAgICAgICAgbXkgJEltcG9ydERhdGEgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICAgICAgVHlwZSA9PiAnQWRtaW5Sb2xlR3JvdXBJbXBvcnRFeHBvcnQnLAogICAgICAgICAgICBLZXkgID0+ICdBZG1pblJvbGVHcm91cEltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkSW1wb3J0RGF0YSkgKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluUm9sZUdyb3VwCiAgICAgICAgICAgIG15ICRIVE1MID0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluUm9sZUdyb3VwIgogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuICRIVE1MOwogICAgICAgIH0KCiAgICAgICAgIyBjaGVjayByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgQFJvbGVzU2VsZWN0ZWQgICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldEFycmF5KCBQYXJhbSA9PiAnUm9sZXMnICk7CiAgICAgICAgbXkgJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcycgKSB8fCAwOwoKICAgICAgICAkQ2FjaGVPYmplY3QtPkRlbGV0ZSgKICAgICAgICAgICAgVHlwZSA9PiAnQWRtaW5Sb2xlR3JvdXBJbXBvcnRFeHBvcnQnLAogICAgICAgICAgICBLZXkgID0+ICdBZG1pblJvbGVHcm91cEltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAgICAgIyBJbXBvcnQgUm9sZUdyb3VwcwogICAgICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkSW1wb3J0RGF0YS0+e1JvbGVHcm91cHN9ICkgKSB7CgogICAgICAgICAgICBteSAlUm9sZXNJbXBvcnQ7CiAgICAgICAgICAgIFJPTEVOQU1FOgogICAgICAgICAgICBmb3IgbXkgJFJvbGVOYW1lICgga2V5cyAkSW1wb3J0RGF0YS0+e1JvbGVHcm91cHN9LT4lKiApIHsKCiAgICAgICAgICAgICAgICBteSAkU2VsZWN0ZWQgPSBncmVwIHsgJFJvbGVOYW1lIGVxICRfIH0gQFJvbGVzU2VsZWN0ZWQ7CgogICAgICAgICAgICAgICAgbmV4dCBST0xFTkFNRSBpZiAhJFNlbGVjdGVkOwogICAgICAgICAgICAgICAgbmV4dCBST0xFTkFNRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICRJbXBvcnREYXRhLT57Um9sZUdyb3Vwc317JFJvbGVOYW1lfSApOwoKICAgICAgICAgICAgICAgICRSb2xlc0ltcG9ydHskUm9sZU5hbWV9ID0gJEltcG9ydERhdGEtPntSb2xlR3JvdXBzfXskUm9sZU5hbWV9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRHcm91cE9iamVjdC0+SW1wb3J0Um9sZUdyb3VwcygKICAgICAgICAgICAgICAgIFJvbGVHcm91cHMgICAgICAgICAgICAgICAgPT4gXCVSb2xlc0ltcG9ydCwKICAgICAgICAgICAgICAgIE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPT4gJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CgogICAgICAgICAgICAgICAgIyBUT0RPIHNob3cgZXJyb3IKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyByZWRpcmVjdCB0byBBZG1pblJvbGVHcm91cAogICAgICAgIG15ICRIVE1MID0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5Sb2xlR3JvdXAiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRIVE1MOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRXhwb3J0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0JyApIHsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFzaygKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRXhwb3J0QWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0QWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGVjayByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgJURhdGE7CiAgICAgICAgbXkgJEhUTUw7CiAgICAgICAgbXkgQFJvbGVzID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1JvbGVzJyApOwoKICAgICAgICBpZiAoQFJvbGVzKSB7CiAgICAgICAgICAgICREYXRhe1JvbGVHcm91cHN9ID0gJEdyb3VwT2JqZWN0LT5FeHBvcnRSb2xlR3JvdXBzKAogICAgICAgICAgICAgICAgUm9sZXMgPT4gXEBSb2xlcywKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIGlmICggISVEYXRhICkgewoKICAgICAgICAgICAgIyByZWRpcmVjdCB0byBBZG1pblJvbGVHcm91cEltcG9ydEV4cG9ydAogICAgICAgICAgICAkSFRNTCAuPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5Sb2xlR3JvdXBJbXBvcnRFeHBvcnQ7U3ViYWN0aW9uPUV4cG9ydCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY29udmVydCB0aGUgcm9sZSBkYXRhIGhhc2ggdG8gc3RyaW5nCiAgICAgICAgbXkgJFJvbGVEYXRhWUFNTCA9ICRZQU1MT2JqZWN0LT5EdW1wKCBEYXRhID0+IFwlRGF0YSApOwoKICAgICAgICAjIEdldCB0aGUgY3VycmVudCB0aW1lIGZvcm1hdHRlZCBsaWtlICcyMDE2LTAxLTMxIDE0OjA1OjQ1Jy4KICAgICAgICAjIEhvcGluZyB0aGF0IG5vYm9keSBoYXMgcmVnaXN0ZXJlZCBvYmplY3QgcGFyYW1zIGZvciBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUKICAgICAgICBteSAkVGltZVN0YW1wID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvU3RyaW5nKCk7CgogICAgICAgICMgc2VuZCB0aGUgcmVzdWx0IHRvIHRoZSBicm93c2VyCiAgICAgICAgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRSb2xlRGF0YVlBTUwsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdhdHRhY2htZW50JywKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gIkV4cG9ydF9Sb2xlR3JvdXBzXyRUaW1lU3RhbXAueW1sIiwKICAgICAgICAgICAgTm9DYWNoZSAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJEhUTUw7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgZWxzZSB7CgogICAgICAgICMgcmVkaXJlY3QgdG8gQWRtaW5Sb2xlR3JvdXAKICAgICAgICBteSAkSFRNTCA9ICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluUm9sZUdyb3VwIgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBfTWFzayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkR3JvdXBPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CgogICAgJExheW91dE9iamVjdC0+QmxvY2soIE5hbWUgPT4gJ0FjdGlvbk92ZXJ2aWV3JyApOwoKICAgICMgY2FsbCBoaW50IGJsb2NrCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICBOYW1lID0+ICRQYXJhbXtUeXBlfSAuICdIaW50JywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggISRQYXJhbXtEYXRhfSApIHsKCiAgICAgICAgJFBhcmFte0RhdGF9e1JvbGVHcm91cHN9ID0ge307CgogICAgICAgICMgZXhwb3J0CiAgICAgICAgbXkgJVJvbGVzID0gJEdyb3VwT2JqZWN0LT5Sb2xlTGlzdCgKICAgICAgICAgICAgVmFsaWQgPT4gMCwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17RGF0YX17Um9sZUdyb3Vwc30gPSB7IG1hcCB7ICRfID0+IHt9IH0gdmFsdWVzICVSb2xlcyB9OwogICAgfQoKICAgIG15ICRPdXRwdXQgPSAkTGF5b3V0T2JqZWN0LT5IZWFkZXIoKTsKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+TmF2aWdhdGlvbkJhcigpOwoKICAgICMgcHJpbnQgdGhlIGxpc3Qgb2Ygcm9sZXMKICAgICRTZWxmLT5fUm9sZVNob3coCiAgICAgICAgJVBhcmFtLAogICAgKTsKCiAgICAjIG91dHB1dCBoZWFkZXIKICAgICRPdXRwdXQgLj0gJExheW91dE9iamVjdC0+T3V0cHV0KAogICAgICAgIFRlbXBsYXRlRmlsZSA9PiAnQWRtaW5Sb2xlR3JvdXBJbXBvcnRFeHBvcnQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfUm9sZVNob3cgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkR3JvdXBPYmplY3QgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyk7CiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfXtSb2xlR3JvdXBzfSApICkgewoKICAgICAgICBteSBAUm9sZXNBbHJlYWR5VXNlZDsKCiAgICAgICAgUk9MRU5BTUU6CiAgICAgICAgZm9yIG15ICRSb2xlTmFtZSAoIHNvcnQga2V5cyAkUGFyYW17RGF0YX17Um9sZUdyb3Vwc30tPiUqICkgewoKICAgICAgICAgICAgcHVzaCBAUm9sZXNBbHJlYWR5VXNlZCwgJFJvbGVOYW1lOwoKICAgICAgICAgICAgZm9yIG15ICRCbG9ja3MgKCAnUm9sZXNSb3cnLCAnUm9sZUNoZWNrYm94JywgJFBhcmFte1R5cGV9ICkgewoKICAgICAgICAgICAgICAgICMgcHJpbnQgZWFjaCByb2xlIHJvdwogICAgICAgICAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgICAgICAgICAgTmFtZSA9PiAkQmxvY2tzLAogICAgICAgICAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRSb2xlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgSUQgICA9PiAkR3JvdXBPYmplY3QtPlJvbGVMb29rdXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBSb2xlID0+ICRSb2xlTmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIG90aGVyd2lzZSBzaG93IGEgbm8gZGF0YSBmb3VuZCBtZXNzYWdlCiAgICBlbHNlIHsKICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgTmFtZSA9PiAnTm9EYXRhRm91bmQnLAogICAgICAgICAgICBEYXRhID0+IFwlUGFyYW0sCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm47Cn0KCjE7Cg==</File>
        <File Location="Kernel/Modules/AdminTemplateImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluVGVtcGxhdGVJbXBvcnRFeHBvcnQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0JywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2FjaGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTdGFuZGFyZFRlbXBsYXRlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJywKKTsKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHslUGFyYW19OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgIHJldHVybiAkU2VsZjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IG9iamVjdHMKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhbmRhcmRUZW1wbGF0ZScpOwogICAgbXkgJFBhcmFtT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CiAgICBteSAkWUFNTE9iamVjdCAgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpZQU1MJyk7CiAgICBteSAkQ2FjaGVPYmplY3QgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICRTZWxmLT57U3ViYWN0aW9ufSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJhY3Rpb24nICkgfHwgJyc7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnQnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAlVXBsb2FkU3R1ZmYgPSAkUGFyYW1PYmplY3QtPkdldFVwbG9hZEFsbCgKICAgICAgICAgICAgUGFyYW0gPT4gJ0ZpbGVVcGxvYWQnLAogICAgICAgICk7CgogICAgICAgIG15ICRPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnICk7CgogICAgICAgIG15ICRQZXJsU3RydWN0dXJlID0gJFlBTUxPYmplY3QtPkxvYWQoCiAgICAgICAgICAgIERhdGEgPT4gJFVwbG9hZFN0dWZme0NvbnRlbnR9LAogICAgICAgICk7CgogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnQWRtaW5UZW1wbGF0ZUltcG9ydEV4cG9ydCcsCiAgICAgICAgICAgIEtleSAgID0+ICdBZG1pblRlbXBsYXRlSW1wb3J0RXhwb3J0OjonIC4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICBWYWx1ZSA9PiAkUGVybFN0cnVjdHVyZSwKICAgICAgICAgICAgVFRMICAgPT4gNjAgKiA2MCwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9NYXNrKAogICAgICAgICAgICBEYXRhICAgICAgICAgICAgICAgICAgICAgID0+ICRQZXJsU3RydWN0dXJlLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyB8fCAwLAogICAgICAgICk7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnRBY3Rpb24KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2lmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnRBY3Rpb24nICkgewoKICAgICAgICBteSAkSW1wb3J0RGF0YSA9ICRDYWNoZU9iamVjdC0+R2V0KAogICAgICAgICAgICBUeXBlID0+ICdBZG1pblRlbXBsYXRlSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5UZW1wbGF0ZUltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkSW1wb3J0RGF0YSkgKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluVGVtcGxhdGUKICAgICAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5UZW1wbGF0ZSIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycwogICAgICAgIG15IEBUZW1wbGF0ZXNTZWxlY3RlZCAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1RlbXBsYXRlcycgKTsKICAgICAgICBteSAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzJyApIHx8IDA7CgogICAgICAgICRDYWNoZU9iamVjdC0+RGVsZXRlKAogICAgICAgICAgICBUeXBlID0+ICdBZG1pblRlbXBsYXRlSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5UZW1wbGF0ZUltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAgICAgIyBJbXBvcnQgVGVtcGxhdGVzCiAgICAgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRJbXBvcnREYXRhLT57VGVtcGxhdGVzfSApICkgewoKICAgICAgICAgICAgbXkgJVRlbXBsYXRlc0ltcG9ydDsKICAgICAgICAgICAgVEVNUExBVEVOQU1FOgogICAgICAgICAgICBmb3IgbXkgJFRlbXBsYXRlTmFtZSAoIGtleXMgJEltcG9ydERhdGEtPntUZW1wbGF0ZXN9LT4lKiApIHsKCiAgICAgICAgICAgICAgICBteSAkU2VsZWN0ZWQgPSBncmVwIHsgJFRlbXBsYXRlTmFtZSBlcSAkXyB9IEBUZW1wbGF0ZXNTZWxlY3RlZDsKCiAgICAgICAgICAgICAgICBuZXh0IFRFTVBMQVRFTkFNRSBpZiAhJFNlbGVjdGVkOwogICAgICAgICAgICAgICAgbmV4dCBURU1QTEFURU5BTUUgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkSW1wb3J0RGF0YS0+e1RlbXBsYXRlc317JFRlbXBsYXRlTmFtZX0gKTsKCiAgICAgICAgICAgICAgICAkVGVtcGxhdGVzSW1wb3J0eyRUZW1wbGF0ZU5hbWV9ID0gJEltcG9ydERhdGEtPntUZW1wbGF0ZXN9eyRUZW1wbGF0ZU5hbWV9OwogICAgICAgICAgICB9CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5JbXBvcnRUZW1wbGF0ZXMoCiAgICAgICAgICAgICAgICBUZW1wbGF0ZXMgICAgICAgICAgICAgICAgID0+IFwlVGVtcGxhdGVzSW1wb3J0LAogICAgICAgICAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcywKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICAjIFRPRE8gc2hvdyBlcnJvcgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluVGVtcGxhdGUKICAgICAgICBteSAkSFRNTCA9ICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluVGVtcGxhdGUiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRIVE1MOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRXhwb3J0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0JyApIHsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFzaygKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRXhwb3J0QWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0QWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGVjayByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgJURhdGE7CiAgICAgICAgbXkgJEhUTUw7CiAgICAgICAgbXkgQFRlbXBsYXRlcyA9ICRQYXJhbU9iamVjdC0+R2V0QXJyYXkoIFBhcmFtID0+ICdUZW1wbGF0ZXMnICk7CgogICAgICAgIGlmIChAVGVtcGxhdGVzKSB7CiAgICAgICAgICAgICREYXRhe1RlbXBsYXRlc30gPSAkU3RhbmRhcmRUZW1wbGF0ZU9iamVjdC0+RXhwb3J0VGVtcGxhdGVzKAogICAgICAgICAgICAgICAgVGVtcGxhdGVzID0+IFxAVGVtcGxhdGVzLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAhJURhdGEgKSB7CgogICAgICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluVGVtcGxhdGVJbXBvcnRFeHBvcnQKICAgICAgICAgICAgJEhUTUwgLj0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluVGVtcGxhdGVJbXBvcnRFeHBvcnQ7U3ViYWN0aW9uPUV4cG9ydCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY29udmVydCB0aGUgdGVtcGxhdGUgZGF0YSBoYXNoIHRvIHN0cmluZwogICAgICAgIG15ICRUZW1wbGF0ZURhdGFZQU1MID0gJFlBTUxPYmplY3QtPkR1bXAoIERhdGEgPT4gXCVEYXRhICk7CgogICAgICAgICMgR2V0IHRoZSBjdXJyZW50IHRpbWUgZm9ybWF0dGVkIGxpa2UgJzIwMTYtMDEtMzEgMTQ6MDU6NDUnLgogICAgICAgICMgSG9waW5nIHRoYXQgbm9ib2R5IGhhcyByZWdpc3RlcmVkIG9iamVjdCBwYXJhbXMgZm9yIEtlcm5lbDo6U3lzdGVtOjpEYXRlVGltZQogICAgICAgIG15ICRUaW1lU3RhbXAgPSAkS2VybmVsOjpPTS0+Q3JlYXRlKCdLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUnKS0+VG9TdHJpbmcoKTsKCiAgICAgICAgIyBzZW5kIHRoZSByZXN1bHQgdG8gdGhlIGJyb3dzZXIKICAgICAgICAkSFRNTCA9ICRMYXlvdXRPYmplY3QtPkF0dGFjaG1lbnQoCiAgICAgICAgICAgIENvbnRlbnRUeXBlID0+ICd0ZXh0L2h0bWw7IGNoYXJzZXQ9JyAuICRMYXlvdXRPYmplY3QtPntDaGFyc2V0fSwKICAgICAgICAgICAgQ29udGVudCAgICAgPT4gJFRlbXBsYXRlRGF0YVlBTUwsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdhdHRhY2htZW50JywKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gIkV4cG9ydF9UZW1wbGF0ZXNfJFRpbWVTdGFtcC55bWwiLAogICAgICAgICAgICBOb0NhY2hlICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNlIHsKCiAgICAgICAgIyByZWRpcmVjdCB0byBBZG1pblRlbXBsYXRlCiAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pblRlbXBsYXRlIgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBfTWFzayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhbmRhcmRUZW1wbGF0ZScpOwoKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKCBOYW1lID0+ICdBY3Rpb25PdmVydmlldycgKTsKCiAgICAjIGNhbGwgaGludCBibG9jawogICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgTmFtZSA9PiAkUGFyYW17VHlwZX0gLiAnSGludCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICEkUGFyYW17RGF0YX0gKSB7CgogICAgICAgICRQYXJhbXtEYXRhfXtUZW1wbGF0ZXN9ID0ge307CgogICAgICAgICMgZXhwb3J0CiAgICAgICAgbXkgJVRlbXBsYXRlcyA9ICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5TdGFuZGFyZFRlbXBsYXRlTGlzdCgKICAgICAgICAgICAgVmFsaWQgPT4gMCwKICAgICAgICApOwoKICAgICAgICAjIGdldCB0ZW1wbGF0ZSBkYXRhCiAgICAgICAgZm9yIG15ICRUZW1wbGF0ZUlEICgga2V5cyAlVGVtcGxhdGVzICkgewogICAgICAgICAgICBteSAlVGVtcGxhdGVEYXRhID0gJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QtPlN0YW5kYXJkVGVtcGxhdGVHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkVGVtcGxhdGVJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQYXJhbXtEYXRhfXtUZW1wbGF0ZXN9eyAkVGVtcGxhdGVEYXRhe05hbWV9IH0gPSBcJVRlbXBsYXRlRGF0YTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBwcmludCB0aGUgbGlzdCBvZiB0ZW1wbGF0ZXMKICAgICRTZWxmLT5fVGVtcGxhdGVTaG93KAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgIyBvdXRwdXQgaGVhZGVyCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPk91dHB1dCgKICAgICAgICBUZW1wbGF0ZUZpbGUgPT4gJ0FkbWluVGVtcGxhdGVJbXBvcnRFeHBvcnQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfVGVtcGxhdGVTaG93IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRWYWxpZE9iamVjdCAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VmFsaWQnKTsKCiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX17VGVtcGxhdGVzfSApICkgewoKICAgICAgICBteSBAVGVtcGxhdGVzQWxyZWFkeVVzZWQ7CgogICAgICAgIFRFTVBMQVRFTkFNRToKICAgICAgICBmb3IgbXkgJFRlbXBsYXRlTmFtZSAoIHNvcnQga2V5cyAkUGFyYW17RGF0YX17VGVtcGxhdGVzfS0+JSogKSB7CgogICAgICAgICAgICBteSAkVGVtcGxhdGVEYXRhID0gJFBhcmFte0RhdGF9e1RlbXBsYXRlc317JFRlbXBsYXRlTmFtZX07CgogICAgICAgICAgICBwdXNoIEBUZW1wbGF0ZXNBbHJlYWR5VXNlZCwgJFRlbXBsYXRlRGF0YS0+e05hbWV9OwoKICAgICAgICAgICAgbmV4dCBURU1QTEFURU5BTUUgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRUZW1wbGF0ZURhdGEpOwoKICAgICAgICAgICAgIyBjb252ZXJ0IFZhbGlkSUQgdG8gVmFsaWRpdHkgc3RyaW5nCiAgICAgICAgICAgIG15ICRWYWxpZCA9ICRUZW1wbGF0ZURhdGEtPntWYWxpZH0gfHwgJFZhbGlkT2JqZWN0LT5WYWxpZExvb2t1cCgKICAgICAgICAgICAgICAgIFZhbGlkSUQgPT4gJFRlbXBsYXRlRGF0YS0+e1ZhbGlkSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJVRlbXBsYXRlRGF0YSA9ICgKICAgICAgICAgICAgICAgICV7JFRlbXBsYXRlRGF0YX0sCiAgICAgICAgICAgICAgICBWYWxpZCA9PiAkVmFsaWQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBmb3IgbXkgJEJsb2NrcyAoICdUZW1wbGF0ZXNSb3cnLCAnVGVtcGxhdGVDaGVja2JveCcsICRQYXJhbXtUeXBlfSApIHsKCiAgICAgICAgICAgICAgICAjIHByaW50IGVhY2ggdGVtcGxhdGUgcm93CiAgICAgICAgICAgICAgICAkTGF5b3V0T2JqZWN0LT5CbG9jaygKICAgICAgICAgICAgICAgICAgICBOYW1lID0+ICRCbG9ja3MsCiAgICAgICAgICAgICAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICVUZW1wbGF0ZURhdGEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBvdGhlcndpc2Ugc2hvdyBhIG5vIGRhdGEgZm91bmQgbWVzc2FnZQogICAgZWxzZSB7CiAgICAgICAgJExheW91dE9iamVjdC0+QmxvY2soCiAgICAgICAgICAgIE5hbWUgPT4gJ05vRGF0YUZvdW5kJywKICAgICAgICAgICAgRGF0YSA9PiBcJVBhcmFtLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuOwp9CgoxOwo=</File>
        <File Location="Kernel/Modules/AdminTypeImportExport.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6Ok1vZHVsZXM6OkFkbWluVHlwZUltcG9ydEV4cG9ydDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlR5cGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OllBTUwnLAopOwoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgb2JqZWN0cwogICAgbXkgJExheW91dE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6T3V0cHV0OjpIVE1MOjpMYXlvdXQnKTsKICAgIG15ICRUeXBlT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VHlwZScpOwogICAgbXkgJFBhcmFtT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3QnKTsKICAgIG15ICRZQU1MT2JqZWN0ICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwogICAgbXkgJENhY2hlT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDYWNoZScpOwoKICAgICRTZWxmLT57U3ViYWN0aW9ufSA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdTdWJhY3Rpb24nICkgfHwgJyc7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBJbXBvcnQKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFNlbGYtPntTdWJhY3Rpb259IGVxICdJbXBvcnQnICkgewoKICAgICAgICAjIGNoYWxsZW5nZSB0b2tlbiBjaGVjayBmb3Igd3JpdGUgYWN0aW9uCiAgICAgICAgJExheW91dE9iamVjdC0+Q2hhbGxlbmdlVG9rZW5DaGVjaygpOwoKICAgICAgICBteSAlVXBsb2FkU3R1ZmYgPSAkUGFyYW1PYmplY3QtPkdldFVwbG9hZEFsbCgKICAgICAgICAgICAgUGFyYW0gPT4gJ0ZpbGVVcGxvYWQnLAogICAgICAgICk7CgogICAgICAgIG15ICRPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnICk7CgogICAgICAgIG15ICRQZXJsU3RydWN0dXJlID0gJFlBTUxPYmplY3QtPkxvYWQoCiAgICAgICAgICAgIERhdGEgPT4gJFVwbG9hZFN0dWZme0NvbnRlbnR9LAogICAgICAgICk7CgogICAgICAgICRDYWNoZU9iamVjdC0+U2V0KAogICAgICAgICAgICBUeXBlICA9PiAnQWRtaW5UeXBlSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICAgPT4gJ0FkbWluVHlwZUltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgVmFsdWUgPT4gJFBlcmxTdHJ1Y3R1cmUsCiAgICAgICAgICAgIFRUTCAgID0+IDYwICogNjAsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFzaygKICAgICAgICAgICAgRGF0YSAgICAgICAgICAgICAgICAgICAgICA9PiAkUGVybFN0cnVjdHVyZSwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAkU2VsZi0+e1N1YmFjdGlvbn0sCiAgICAgICAgICAgIE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPT4gJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgfHwgMCwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgSW1wb3J0QWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnSW1wb3J0QWN0aW9uJyApIHsKCiAgICAgICAgbXkgJEltcG9ydERhdGEgPSAkQ2FjaGVPYmplY3QtPkdldCgKICAgICAgICAgICAgVHlwZSA9PiAnQWRtaW5UeXBlSW1wb3J0RXhwb3J0JywKICAgICAgICAgICAgS2V5ICA9PiAnQWRtaW5UeXBlSW1wb3J0RXhwb3J0OjonIC4gJFNlbGYtPntVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRJbXBvcnREYXRhKSApIHsKCiAgICAgICAgICAgICMgcmVkaXJlY3QgdG8gQWRtaW5UeXBlCiAgICAgICAgICAgIG15ICRIVE1MID0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgICAgICBPUCA9PiAiQWN0aW9uPUFkbWluVHlwZSIKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgcmVxdWlyZWQgcGFyYW1ldGVycwogICAgICAgIG15IEBUeXBlc1NlbGVjdGVkICAgICAgICAgICAgID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1R5cGVzJyApOwogICAgICAgIG15ICRPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ092ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMnICkgfHwgMDsKCiAgICAgICAgJENhY2hlT2JqZWN0LT5EZWxldGUoCiAgICAgICAgICAgIFR5cGUgPT4gJ0FkbWluVHlwZUltcG9ydEV4cG9ydCcsCiAgICAgICAgICAgIEtleSAgPT4gJ0FkbWluVHlwZUltcG9ydEV4cG9ydDo6JyAuICRTZWxmLT57VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAgICAgIyBJbXBvcnQgVHlwZXMKICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJEltcG9ydERhdGEtPntUeXBlc30gKSApIHsKCiAgICAgICAgICAgIG15ICVUeXBlc0ltcG9ydDsKICAgICAgICAgICAgVFlQRU5BTUU6CiAgICAgICAgICAgIGZvciBteSAkVHlwZU5hbWUgKCBrZXlzICRJbXBvcnREYXRhLT57VHlwZXN9LT4lKiApIHsKCiAgICAgICAgICAgICAgICBteSAkU2VsZWN0ZWQgPSBncmVwIHsgJFR5cGVOYW1lIGVxICRfIH0gQFR5cGVzU2VsZWN0ZWQ7CgogICAgICAgICAgICAgICAgbmV4dCBUWVBFTkFNRSBpZiAhJFNlbGVjdGVkOwogICAgICAgICAgICAgICAgbmV4dCBUWVBFTkFNRSBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICRJbXBvcnREYXRhLT57VHlwZXN9eyRUeXBlTmFtZX0gKTsKCiAgICAgICAgICAgICAgICAkVHlwZXNJbXBvcnR7JFR5cGVOYW1lfSA9ICRJbXBvcnREYXRhLT57VHlwZXN9eyRUeXBlTmFtZX07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRUeXBlT2JqZWN0LT5JbXBvcnRUeXBlcygKICAgICAgICAgICAgICAgIFR5cGVzICAgICAgICAgICAgICAgICAgICAgPT4gXCVUeXBlc0ltcG9ydCwKICAgICAgICAgICAgICAgIE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPT4gJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+ICRTZWxmLT57VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgcmVkaXJlY3QgdG8gQWRtaW5UeXBlCiAgICAgICAgbXkgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5SZWRpcmVjdCgKICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pblR5cGUiCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRIVE1MOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRXhwb3J0CiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0JyApIHsKCiAgICAgICAgcmV0dXJuICRTZWxmLT5fTWFzaygKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBUeXBlID0+ICRTZWxmLT57U3ViYWN0aW9ufSwKICAgICAgICApOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgRXhwb3J0QWN0aW9uCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBlbHNpZiAoICRTZWxmLT57U3ViYWN0aW9ufSBlcSAnRXhwb3J0QWN0aW9uJyApIHsKCiAgICAgICAgIyBjaGVjayByZXF1aXJlZCBwYXJhbWV0ZXJzCiAgICAgICAgbXkgJURhdGE7CiAgICAgICAgbXkgJEhUTUw7CiAgICAgICAgbXkgQFR5cGVzID0gJFBhcmFtT2JqZWN0LT5HZXRBcnJheSggUGFyYW0gPT4gJ1R5cGVzJyApOwoKICAgICAgICBpZiAoQFR5cGVzKSB7CiAgICAgICAgICAgICREYXRhe1R5cGVzfSA9ICRUeXBlT2JqZWN0LT5FeHBvcnRUeXBlcygKICAgICAgICAgICAgICAgIFR5cGVzID0+IFxAVHlwZXMsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoICElRGF0YSApIHsKCiAgICAgICAgICAgICMgcmVkaXJlY3QgdG8gQWRtaW5UeXBlSW1wb3J0RXhwb3J0CiAgICAgICAgICAgICRIVE1MIC49ICRMYXlvdXRPYmplY3QtPlJlZGlyZWN0KAogICAgICAgICAgICAgICAgT1AgPT4gIkFjdGlvbj1BZG1pblR5cGVJbXBvcnRFeHBvcnQ7U3ViYWN0aW9uPUV4cG9ydCIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkSFRNTDsKICAgICAgICB9CgogICAgICAgICMgY29udmVydCB0aGUgdHlwZSBkYXRhIGhhc2ggdG8gc3RyaW5nCiAgICAgICAgbXkgJFR5cGVEYXRhWUFNTCA9ICRZQU1MT2JqZWN0LT5EdW1wKCBEYXRhID0+IFwlRGF0YSApOwoKICAgICAgICAjIEdldCB0aGUgY3VycmVudCB0aW1lIGZvcm1hdHRlZCBsaWtlICcyMDE2LTAxLTMxIDE0OjA1OjQ1Jy4KICAgICAgICAjIEhvcGluZyB0aGF0IG5vYm9keSBoYXMgcmVnaXN0ZXJlZCBvYmplY3QgcGFyYW1zIGZvciBLZXJuZWw6OlN5c3RlbTo6RGF0ZVRpbWUKICAgICAgICBteSAkVGltZVN0YW1wID0gJEtlcm5lbDo6T00tPkNyZWF0ZSgnS2VybmVsOjpTeXN0ZW06OkRhdGVUaW1lJyktPlRvU3RyaW5nKCk7CgogICAgICAgICMgc2VuZCB0aGUgcmVzdWx0IHRvIHRoZSBicm93c2VyCiAgICAgICAgJEhUTUwgPSAkTGF5b3V0T2JqZWN0LT5BdHRhY2htZW50KAogICAgICAgICAgICBDb250ZW50VHlwZSA9PiAndGV4dC9odG1sOyBjaGFyc2V0PScgLiAkTGF5b3V0T2JqZWN0LT57Q2hhcnNldH0sCiAgICAgICAgICAgIENvbnRlbnQgICAgID0+ICRUeXBlRGF0YVlBTUwsCiAgICAgICAgICAgIFR5cGUgICAgICAgID0+ICdhdHRhY2htZW50JywKICAgICAgICAgICAgRmlsZW5hbWUgICAgPT4gIkV4cG9ydF9UeXBlc18kVGltZVN0YW1wLnltbCIsCiAgICAgICAgICAgIE5vQ2FjaGUgICAgID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuICRIVE1MOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGVsc2UgewoKICAgICAgICAjIHJlZGlyZWN0IHRvIEFkbWluVHlwZQogICAgICAgIG15ICRIVE1MID0gJExheW91dE9iamVjdC0+UmVkaXJlY3QoCiAgICAgICAgICAgIE9QID0+ICJBY3Rpb249QWRtaW5UeXBlIgogICAgICAgICk7CgogICAgICAgIHJldHVybiAkSFRNTDsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBfTWFzayB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRMYXlvdXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Ok91dHB1dDo6SFRNTDo6TGF5b3V0Jyk7CiAgICBteSAkVHlwZU9iamVjdCAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlR5cGUnKTsKCiAgICAkTGF5b3V0T2JqZWN0LT5CbG9jayggTmFtZSA9PiAnQWN0aW9uT3ZlcnZpZXcnICk7CgogICAgIyBjYWxsIGhpbnQgYmxvY2sKICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgIE5hbWUgPT4gJFBhcmFte1R5cGV9IC4gJ0hpbnQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAhJFBhcmFte0RhdGF9ICkgewoKICAgICAgICAkUGFyYW17RGF0YX17VHlwZXN9ID0ge307CgogICAgICAgICMgZXhwb3J0CiAgICAgICAgbXkgJVR5cGVzID0gJFR5cGVPYmplY3QtPlR5cGVMaXN0KAogICAgICAgICAgICBWYWxpZCA9PiAwLAogICAgICAgICk7CgogICAgICAgICMgZ2V0IHR5cGUgZGF0YQogICAgICAgIGZvciBteSAkVHlwZUlEICgga2V5cyAlVHlwZXMgKSB7CiAgICAgICAgICAgIG15ICVUeXBlRGF0YSA9ICRUeXBlT2JqZWN0LT5UeXBlR2V0KAogICAgICAgICAgICAgICAgSUQgPT4gJFR5cGVJRCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRQYXJhbXtEYXRhfXtUeXBlc317ICRUeXBlRGF0YXtOYW1lfSB9ID0gXCVUeXBlRGF0YTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE91dHB1dCA9ICRMYXlvdXRPYmplY3QtPkhlYWRlcigpOwogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5OYXZpZ2F0aW9uQmFyKCk7CgogICAgIyBwcmludCB0aGUgbGlzdCBvZiB0eXBlcwogICAgJFNlbGYtPl9UeXBlU2hvdygKICAgICAgICAlUGFyYW0sCiAgICApOwoKICAgICMgb3V0cHV0IGhlYWRlcgogICAgJE91dHB1dCAuPSAkTGF5b3V0T2JqZWN0LT5PdXRwdXQoCiAgICAgICAgVGVtcGxhdGVGaWxlID0+ICdBZG1pblR5cGVJbXBvcnRFeHBvcnQnLAogICAgICAgIERhdGEgICAgICAgICA9PiB7CiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICB9LAogICAgKTsKCiAgICAkT3V0cHV0IC49ICRMYXlvdXRPYmplY3QtPkZvb3RlcigpOwogICAgcmV0dXJuICRPdXRwdXQ7Cn0KCnN1YiBfVHlwZVNob3cgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkTGF5b3V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpPdXRwdXQ6OkhUTUw6OkxheW91dCcpOwogICAgbXkgJFZhbGlkT2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpWYWxpZCcpOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEYXRhfXtUeXBlc30gKSApIHsKCiAgICAgICAgbXkgQFR5cGVzQWxyZWFkeVVzZWQ7CgogICAgICAgIFRZUEVOQU1FOgogICAgICAgIGZvciBteSAkVHlwZU5hbWUgKCBzb3J0IGtleXMgJFBhcmFte0RhdGF9e1R5cGVzfS0+JSogKSB7CgogICAgICAgICAgICBteSAkVHlwZURhdGEgPSAkUGFyYW17RGF0YX17VHlwZXN9eyRUeXBlTmFtZX07CgogICAgICAgICAgICBwdXNoIEBUeXBlc0FscmVhZHlVc2VkLCAkVHlwZURhdGEtPntOYW1lfTsKCiAgICAgICAgICAgIG5leHQgVFlQRU5BTUUgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCRUeXBlRGF0YSk7CgogICAgICAgICAgICAjIGNvbnZlcnQgVmFsaWRJRCB0byBWYWxpZGl0eSBzdHJpbmcKICAgICAgICAgICAgbXkgJFZhbGlkID0gJFR5cGVEYXRhLT57VmFsaWR9IHx8ICRWYWxpZE9iamVjdC0+VmFsaWRMb29rdXAoCiAgICAgICAgICAgICAgICBWYWxpZElEID0+ICRUeXBlRGF0YS0+e1ZhbGlkSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJVR5cGVEYXRhID0gKAogICAgICAgICAgICAgICAgJXskVHlwZURhdGF9LAogICAgICAgICAgICAgICAgVmFsaWQgPT4gJFZhbGlkLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgZm9yIG15ICRCbG9ja3MgKCAnVHlwZXNSb3cnLCAnVHlwZUNoZWNrYm94JywgJFBhcmFte1R5cGV9ICkgewoKICAgICAgICAgICAgICAgICMgcHJpbnQgZWFjaCBncm91cCByb3cKICAgICAgICAgICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICAgICAgICAgIE5hbWUgPT4gJEJsb2NrcywKICAgICAgICAgICAgICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgJVR5cGVEYXRhLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgb3RoZXJ3aXNlIHNob3cgYSBubyBkYXRhIGZvdW5kIG1lc3NhZ2UKICAgIGVsc2UgewogICAgICAgICRMYXlvdXRPYmplY3QtPkJsb2NrKAogICAgICAgICAgICBOYW1lID0+ICdOb0RhdGFGb3VuZCcsCiAgICAgICAgICAgIERhdGEgPT4gXCVQYXJhbSwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybjsKfQoKMTsK</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminGenericAgentImportExport.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIFpudW55IEdtYkgsIGh0dHA6Ly96bnVueS5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KCiAgICBbJQogICAgICAgIFNFVCBUeXBlICA9IFRyYW5zbGF0ZShEYXRhLlR5cGUpOwogICAgICAgIFNFVCBMYWJlbCA9IFRyYW5zbGF0ZSgiR2VuZXJpY0FnZW50cyIpOwogICAgJV0KCiAgICBbJSBCcmVhZGNydW1iUGF0aCA9IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiBUcmFuc2xhdGUoIiVzIC0gJXMiLExhYmVsLCBUeXBlKSwKICAgICAgICAgICAgfSwKICAgICAgICBdCiAgICAlXQoKICAgIFslIElOQ0xVREUgIkJyZWFkY3J1bWIudHQiIFBhdGggPSBCcmVhZGNydW1iUGF0aCAlXQogICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IlNpZGViYXJDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJBY3Rpb25zIikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJBY3Rpb25MaXN0Ij4KWyUgUmVuZGVyQmxvY2tTdGFydCgiQWN0aW9uT3ZlcnZpZXciKSAlXQogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluR2VuZXJpY0FnZW50IiBjbGFzcz0iQ2FsbEZvckFjdGlvbiBGdWxsc2l6ZSBDZW50ZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aSBjbGFzcz0iZmEgZmEtcGx1cy1zcXVhcmUiPjwvaT5bJSBUcmFuc2xhdGUoIkdlbmVyaWNBZ2VudHMiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgPGI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlbGVjdCB0aGUgaXRlbXMgeW91IHdhbnQgdG8gIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9iPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2JyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIGRlc2lyZWQgZWxlbWVudHMgYW5kIGNvbmZpcm0gdGhlIGltcG9ydCB3aXRoICdpbXBvcnQnLiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0SGludCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkhlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2YgZ2VuZXJpYyBhZ2VudHMgdG8gaW1wb3J0IHRoZXNlIG9uIGFub3RoZXIgc3lzdGVtLiBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGV4cG9ydGVkIGluIHltbCBmb3JtYXQuIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJFeHBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiR2VuZXJpY0FnZW50cyBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBMYXlvdXRHcmlkIENvbHVtbnNXaXRoU3BhY2luZyI+CgogICAgICAgICAgICAgICAgPGZvcm0gaWQ9J0Zvcm0nIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIEVudigiU3ViYWN0aW9uIikgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUeXBlIiB2YWx1ZT0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMiICB2YWx1ZT0iWyUgRGF0YS5PdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJHZW5lcmljQWdlbnRzVGFibGUiIHN1bW1hcnk9Ikxpc3Qgb2YgYWxsIHJlZ2lzdGVyZWQgR2VuZXJpY0FnZW50cyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9J0NlbnRlcic+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iU2VsZWN0QWxsR2VuZXJpY0FnZW50cyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgnVG9nZ2xlIGFsbCBhdmFpbGFibGUgZWxlbWVudHMnKSB8IGh0bWwgJV0iIGNoZWNrZWQgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJGaWVsZHMiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiR2VuZXJpY0FnZW50c1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHIgaWQ9IkdlbmVyaWNBZ2VudElEX1slIERhdGEuR2VuZXJpY0FnZW50SUQgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9J0NlbnRlcic+ClslIFJlbmRlckJsb2NrU3RhcnQoIkdlbmVyaWNBZ2VudENoZWNrYm94IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iR2VuZXJpY0FnZW50cyIgbmFtZT0iR2VuZXJpY0FnZW50cyIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNoZWNrZWQgLz4KWyUgUmVuZGVyQmxvY2tFbmQoIkdlbmVyaWNBZ2VudENoZWNrYm94IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KWyUgUmVuZGVyQmxvY2tTdGFydCgiSW1wb3J0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgRGF0YS5OYW1lICVdClslIFJlbmRlckJsb2NrRW5kKCJJbXBvcnQiKSAlXQpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJFeHBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5HZW5lcmljQWdlbnQ7U3ViYWN0aW9uPVVwZGF0ZTtQcm9maWxlPVslIERhdGEuTmFtZSB8IHVyaSAlXSIgdGl0bGU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj5bJSBEYXRhLk5hbWUgJV08L2E+ClslIFJlbmRlckJsb2NrRW5kKCJFeHBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoRGF0YS5TaG93blZhbGlkKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkdlbmVyaWNBZ2VudHNSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgaWQ9IkV4cG9ydCIgdmFsdWU9IlslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5bJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkdlbmVyaWNBZ2VudCIgPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminGroupImportExport.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIFpudW55IEdtYkgsIGh0dHA6Ly96bnVueS5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KCiAgICBbJQogICAgICAgIFNFVCBUeXBlICA9IFRyYW5zbGF0ZShEYXRhLlR5cGUpOwogICAgICAgIFNFVCBMYWJlbCA9IFRyYW5zbGF0ZSgiR3JvdXBzIik7CiAgICAlXQoKICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgiJXMgLSAlcyIsTGFiZWwsIFR5cGUpLAogICAgICAgICAgICB9LAogICAgICAgIF0KICAgICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5Hcm91cCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJHcm91cHMiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgPGI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlbGVjdCB0aGUgaXRlbXMgeW91IHdhbnQgdG8gIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9iPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2JyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIGRlc2lyZWQgZWxlbWVudHMgYW5kIGNvbmZpcm0gdGhlIGltcG9ydCB3aXRoICdpbXBvcnQnLiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0SGludCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkhlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2YgZ3JvdXBzIHRvIGltcG9ydCB0aGVzZSBvbiBhbm90aGVyIHN5c3RlbS4gVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBleHBvcnRlZCBpbiB5bWwgZm9ybWF0LiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiRXhwb3J0SGludCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkdyb3VwcyBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBMYXlvdXRHcmlkIENvbHVtbnNXaXRoU3BhY2luZyI+CgogICAgICAgICAgICAgICAgPGZvcm0gaWQ9J0Zvcm0nIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIEVudigiU3ViYWN0aW9uIikgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUeXBlIiB2YWx1ZT0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMiICB2YWx1ZT0iWyUgRGF0YS5PdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJHcm91cHNUYWJsZSIgc3VtbWFyeT0iTGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBHcm91cHMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdDZW50ZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNlbGVjdEFsbEdyb3VwcyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgnVG9nZ2xlIGFsbCBhdmFpbGFibGUgZWxlbWVudHMnKSB8IGh0bWwgJV0iIGNoZWNrZWQgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJGaWVsZHMiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiR3JvdXBzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0iR3JvdXBJRF9bJSBEYXRhLkdyb3VwSUQgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9J0NlbnRlcic+ClslIFJlbmRlckJsb2NrU3RhcnQoIkdyb3VwQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJHcm91cHMiIG5hbWU9Ikdyb3VwcyIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNoZWNrZWQgLz4KWyUgUmVuZGVyQmxvY2tFbmQoIkdyb3VwQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5hbWUgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkltcG9ydCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pbkdyb3VwO1N1YmFjdGlvbj1DaGFuZ2U7SUQ9WyUgRGF0YS5JRCB8IHVyaSAlXSIgdGl0bGU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj5bJSBEYXRhLk5hbWUgJV08L2E+ClslIFJlbmRlckJsb2NrRW5kKCJFeHBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIFRyYW5zbGF0ZShEYXRhLkNvbW1lbnQpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlslIFRyYW5zbGF0ZShEYXRhLlZhbGlkKSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KWyUgUmVuZGVyQmxvY2tFbmQoIkdyb3Vwc1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiBpZD0iRXhwb3J0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKERhdGEuVHlwZSkgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluR3JvdXAiID5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminQueueImportExport.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIFpudW55IEdtYkgsIGh0dHA6Ly96bnVueS5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KCiAgICBbJQogICAgICAgIFNFVCBUeXBlICA9IFRyYW5zbGF0ZShEYXRhLlR5cGUpOwogICAgICAgIFNFVCBMYWJlbCA9IFRyYW5zbGF0ZSgiUXVldWVzIik7CiAgICAlXQoKICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgiJXMgLSAlcyIsTGFiZWwsIFR5cGUpLAogICAgICAgICAgICB9LAogICAgICAgIF0KICAgICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5RdWV1ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJRdWV1ZXMiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgPGI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlbGVjdCB0aGUgaXRlbXMgeW91IHdhbnQgdG8gIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9iPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2JyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIGRlc2lyZWQgZWxlbWVudHMgYW5kIGNvbmZpcm0gdGhlIGltcG9ydCB3aXRoICdpbXBvcnQnLiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0SGludCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkhlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2YgcXVldWVzIHRvIGltcG9ydCB0aGVzZSBvbiBhbm90aGVyIHN5c3RlbS4gVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBleHBvcnRlZCBpbiB5bWwgZm9ybWF0LiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiRXhwb3J0SGludCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlF1ZXVlcyBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBMYXlvdXRHcmlkIENvbHVtbnNXaXRoU3BhY2luZyI+CgogICAgICAgICAgICAgICAgPGZvcm0gaWQ9J0Zvcm0nIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIEVudigiU3ViYWN0aW9uIikgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUeXBlIiB2YWx1ZT0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMiICB2YWx1ZT0iWyUgRGF0YS5PdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJRdWV1ZXNUYWJsZSIgc3VtbWFyeT0iTGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBRdWV1ZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdDZW50ZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNlbGVjdEFsbFF1ZXVlcyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgnVG9nZ2xlIGFsbCBhdmFpbGFibGUgZWxlbWVudHMnKSB8IGh0bWwgJV0iIGNoZWNrZWQgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJGaWVsZHMiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUXVldWVzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0iUXVldWVJRF9bJSBEYXRhLlF1ZXVlSUQgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9J0NlbnRlcic+ClslIFJlbmRlckJsb2NrU3RhcnQoIlF1ZXVlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJRdWV1ZXMiIG5hbWU9IlF1ZXVlcyIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNoZWNrZWQgLz4KWyUgUmVuZGVyQmxvY2tFbmQoIlF1ZXVlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5hbWUgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkltcG9ydCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblF1ZXVlO1N1YmFjdGlvbj1DaGFuZ2U7UXVldWVJRD1bJSBEYXRhLlF1ZXVlSUQgfCB1cmkgJV0iIHRpdGxlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBjbGFzcz0iTWFzdGVyQWN0aW9uTGluayI+WyUgRGF0YS5OYW1lICVdPC9hPgpbJSBSZW5kZXJCbG9ja0VuZCgiRXhwb3J0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5Db21tZW50KSB8IGh0bWwgJV08L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5bJSBUcmFuc2xhdGUoRGF0YS5WYWxpZCkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJRdWV1ZXNSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgaWQ9IkV4cG9ydCIgdmFsdWU9IlslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5bJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblF1ZXVlIiA+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminQueueTemplatesImportExport.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIFpudW55IEdtYkgsIGh0dHA6Ly96bnVueS5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KCiAgICBbJQogICAgICAgIFNFVCBUeXBlICA9IFRyYW5zbGF0ZShEYXRhLlR5cGUpOwogICAgICAgIFNFVCBMYWJlbCA9IFRyYW5zbGF0ZSgiUXVldWUgVGVtcGxhdGUgUmVsYXRpb25zIik7CiAgICAlXQoKICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgiJXMgLSAlcyIsTGFiZWwsIFR5cGUpLAogICAgICAgICAgICB9LAogICAgICAgIF0KICAgICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5RdWV1ZVRlbXBsYXRlcyIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJRdWV1ZSBUZW1wbGF0ZSBSZWxhdGlvbnMiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgPGI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlbGVjdCB0aGUgaXRlbXMgeW91IHdhbnQgdG8gIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9iPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2JyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIGRlc2lyZWQgZWxlbWVudHMgYW5kIGNvbmZpcm0gdGhlIGltcG9ydCB3aXRoICdpbXBvcnQnLiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0SGludCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkhlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2YgcXVldWUtdGVtcGxhdGUgcmVsYXRpb25zIHRvIGltcG9ydCB0aGVzZSBvbiBhbm90aGVyIHN5c3RlbS4gVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBleHBvcnRlZCBpbiB5bWwgZm9ybWF0LiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiRXhwb3J0SGludCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlF1ZXVlcyBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBMYXlvdXRHcmlkIENvbHVtbnNXaXRoU3BhY2luZyI+CgogICAgICAgICAgICAgICAgPGZvcm0gaWQ9J0Zvcm0nIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIEVudigiU3ViYWN0aW9uIikgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUeXBlIiB2YWx1ZT0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMiICB2YWx1ZT0iWyUgRGF0YS5PdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJRdWV1ZXNUYWJsZSIgc3VtbWFyeT0iTGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBRdWV1ZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdDZW50ZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNlbGVjdEFsbFF1ZXVlcyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgnVG9nZ2xlIGFsbCBhdmFpbGFibGUgZWxlbWVudHMnKSB8IGh0bWwgJV0iIGNoZWNrZWQgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJGaWVsZHMiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgICAgICAgICAgICAgPC90aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRib2R5PgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJRdWV1ZXNSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyIGlkPSJRdWV1ZUlEX1slIERhdGEuUXVldWVJRCB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz0nQ2VudGVyJz4KWyUgUmVuZGVyQmxvY2tTdGFydCgiUXVldWVDaGVja2JveCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IlF1ZXVlcyIgbmFtZT0iUXVldWVzIiB2YWx1ZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgY2hlY2tlZCAvPgpbJSBSZW5kZXJCbG9ja0VuZCgiUXVldWVDaGVja2JveCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+ClslIFJlbmRlckJsb2NrU3RhcnQoIkltcG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIERhdGEuTmFtZSAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRXhwb3J0IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluUXVldWU7U3ViYWN0aW9uPUNoYW5nZTtRdWV1ZUlEPVslIERhdGEuUXVldWVJRCB8IHVyaSAlXSIgdGl0bGU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNsYXNzPSJNYXN0ZXJBY3Rpb25MaW5rIj5bJSBEYXRhLk5hbWUgJV08L2E+ClslIFJlbmRlckJsb2NrRW5kKCJFeHBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUXVldWVzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJFeHBvcnQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKERhdGEuVHlwZSkgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5RdWV1ZVRlbXBsYXRlcyIgPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminRoleImportExport.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIFpudW55IEdtYkgsIGh0dHA6Ly96bnVueS5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KCiAgICBbJQogICAgICAgIFNFVCBUeXBlICA9IFRyYW5zbGF0ZShEYXRhLlR5cGUpOwogICAgICAgIFNFVCBMYWJlbCA9IFRyYW5zbGF0ZSgiUm9sZXMiKTsKICAgICVdCgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCIlcyAtICVzIixMYWJlbCwgVHlwZSksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblJvbGUiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiUm9sZXMiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgPGI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlbGVjdCB0aGUgaXRlbXMgeW91IHdhbnQgdG8gIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9iPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2JyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIGRlc2lyZWQgZWxlbWVudHMgYW5kIGNvbmZpcm0gdGhlIGltcG9ydCB3aXRoICdpbXBvcnQnLiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0SGludCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkhlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2Ygcm9sZXMgdG8gaW1wb3J0IHRoZXNlIG9uIGFub3RoZXIgc3lzdGVtLiBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGV4cG9ydGVkIGluIHltbCBmb3JtYXQuIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJFeHBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiUm9sZXMgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgTGF5b3V0R3JpZCBDb2x1bW5zV2l0aFNwYWNpbmciPgoKICAgICAgICAgICAgICAgIDxmb3JtIGlkPSdGb3JtJyBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBFbnYoIlN1YmFjdGlvbiIpICVdQWN0aW9uIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iVHlwZSIgdmFsdWU9IlslIERhdGEuVHlwZSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzIiAgdmFsdWU9IlslIERhdGEuT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iUm9sZXNUYWJsZSIgc3VtbWFyeT0iTGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBSb2xlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9J0NlbnRlcic+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iU2VsZWN0QWxsUm9sZXMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoJ1RvZ2dsZSBhbGwgYXZhaWxhYmxlIGVsZW1lbnRzJykgfCBodG1sICVdIiBjaGVja2VkIHZhbHVlPSIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRmllbGRzIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJDb21tZW50IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJvbGVzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0iUm9sZUlEX1slIERhdGEuUm9sZUlEIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSdDZW50ZXInPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb2xlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJSb2xlcyIgbmFtZT0iUm9sZXMiIHZhbHVlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBjaGVja2VkIC8+ClslIFJlbmRlckJsb2NrRW5kKCJSb2xlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5hbWUgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkltcG9ydCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblJvbGU7U3ViYWN0aW9uPUNoYW5nZTtJRD1bJSBEYXRhLklEIHwgdXJpICVdIiB0aXRsZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPlslIERhdGEuTmFtZSAlXTwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuQ29tbWVudCkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuVmFsaWQpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiUm9sZXNSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgaWQ9IkV4cG9ydCIgdmFsdWU9IlslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5bJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblJvbGUiID5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminRoleGroupImportExport.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIFpudW55IEdtYkgsIGh0dHA6Ly96bnVueS5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KCiAgICBbJQogICAgICAgIFNFVCBUeXBlICA9IFRyYW5zbGF0ZShEYXRhLlR5cGUpOwogICAgICAgIFNFVCBMYWJlbCA9IFRyYW5zbGF0ZSgiUm9sZS1Hcm91cCBSZWxhdGlvbnMiKTsKICAgICVdCgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCIlcyAtICVzIixMYWJlbCwgVHlwZSksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblJvbGVHcm91cCIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJSb2xlLUdyb3VwIFJlbGF0aW9ucyIpIHwgaHRtbCAlXTwvc3Bhbj48L2E+CiAgICAgICAgICAgICAgICAgICAgPC9saT4KWyUgUmVuZGVyQmxvY2tFbmQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiSGludCIpIHwgaHRtbCAlXSAtIFslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkRXhwbGFuYXRpb24iPgogICAgICAgICAgICAgICAgICAgIDxwPgogICAgICAgICAgICAgICAgICAgICAgICA8Yj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiU2VsZWN0IHRoZSBpdGVtcyB5b3Ugd2FudCB0byAiKSB8IGh0bWwgJV0gWyUgVHJhbnNsYXRlKERhdGEuVHlwZSkgfCBodG1sICVdLgogICAgICAgICAgICAgICAgICAgICAgICA8L2I+CgogICAgICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkltcG9ydEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlbGVjdCB0aGUgZGVzaXJlZCBlbGVtZW50cyBhbmQgY29uZmlybSB0aGUgaW1wb3J0IHdpdGggJ2ltcG9ydCcuIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJJbXBvcnRIaW50IikgJV0KWyUgUmVuZGVyQmxvY2tTdGFydCgiRXhwb3J0SGludCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiSGVyZSB5b3UgY2FuIGV4cG9ydCBhIGNvbmZpZ3VyYXRpb24gZmlsZSBvZiByb2xlLWdyb3VwIHJlbGF0aW9ucyB0byBpbXBvcnQgdGhlc2Ugb24gYW5vdGhlciBzeXN0ZW0uIFRoZSBjb25maWd1cmF0aW9uIGZpbGUgaXMgZXhwb3J0ZWQgaW4geW1sIGZvcm1hdC4iKSB8IGh0bWwgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkV4cG9ydEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDxkaXYgY2xhc3M9IkNvbnRlbnRDb2x1bW4iPgogICAgICAgIDxkaXYgY2xhc3M9IldpZGdldFNpbXBsZSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkhlYWRlciI+CiAgICAgICAgICAgICAgICA8aDI+WyUgVHJhbnNsYXRlKCJSb2xlLUdyb3VwIHJlbGF0aW9ucyBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBMYXlvdXRHcmlkIENvbHVtbnNXaXRoU3BhY2luZyI+CgogICAgICAgICAgICAgICAgPGZvcm0gaWQ9J0Zvcm0nIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIEVudigiU3ViYWN0aW9uIikgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUeXBlIiB2YWx1ZT0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMiICB2YWx1ZT0iWyUgRGF0YS5PdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJSb2xlR3JvdXBUYWJsZSIgc3VtbWFyeT0iTGlzdCBvZiBhbGwgcm9sZS1ncm91cCByZWxhdGlvbnMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdDZW50ZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNlbGVjdEFsbFJvbGVzIiB0aXRsZT0iWyUgVHJhbnNsYXRlKCdUb2dnbGUgYWxsIGF2YWlsYWJsZSBlbGVtZW50cycpIHwgaHRtbCAlXSIgY2hlY2tlZCB2YWx1ZT0iIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkZpZWxkcyIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPlslIFRyYW5zbGF0ZSgiTmFtZSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlJvbGVzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0iUm9sZUlEX1slIERhdGEuUm9sZUlEIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSdDZW50ZXInPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJSb2xlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJSb2xlcyIgbmFtZT0iUm9sZXMiIHZhbHVlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBjaGVja2VkIC8+ClslIFJlbmRlckJsb2NrRW5kKCJSb2xlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5hbWUgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkltcG9ydCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblJvbGU7U3ViYWN0aW9uPUNoYW5nZTtJRD1bJSBEYXRhLklEIHwgdXJpICVdIiB0aXRsZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPlslIERhdGEuTmFtZSAlXTwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+ClslIFJlbmRlckJsb2NrRW5kKCJSb2xlc1JvdyIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGJvZHk+CiAgICAgICAgICAgICAgICAgICAgPC90YWJsZT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZCBTcGFjaW5nVG9wIiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9IlByaW1hcnkgQ2FsbEZvckFjdGlvbiIgdHlwZT0ic3VibWl0IiBpZD0iRXhwb3J0IiB2YWx1ZT0iWyUgVHJhbnNsYXRlKERhdGEuVHlwZSkgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgib3IiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iWyUgRW52KCJCYXNlbGluayIpICVdQWN0aW9uPUFkbWluUm9sZUdyb3VwIiA+WyUgVHJhbnNsYXRlKCJDYW5jZWwiKSB8IGh0bWwgJV08L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+Cg==</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminTemplateImportExport.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIFpudW55IEdtYkgsIGh0dHA6Ly96bnVueS5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KCiAgICBbJQogICAgICAgIFNFVCBUeXBlICA9IFRyYW5zbGF0ZShEYXRhLlR5cGUpOwogICAgICAgIFNFVCBMYWJlbCA9IFRyYW5zbGF0ZSgiVGVtcGxhdGVzIik7CiAgICAlXQoKICAgIFslIEJyZWFkY3J1bWJQYXRoID0gWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+IFRyYW5zbGF0ZSgiJXMgLSAlcyIsTGFiZWwsIFR5cGUpLAogICAgICAgICAgICB9LAogICAgICAgIF0KICAgICVdCgogICAgWyUgSU5DTFVERSAiQnJlYWRjcnVtYi50dCIgUGF0aCA9IEJyZWFkY3J1bWJQYXRoICVdCiAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CgogICAgPGRpdiBjbGFzcz0iU2lkZWJhckNvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkFjdGlvbnMiKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9IkFjdGlvbkxpc3QiPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5UZW1wbGF0ZSIgY2xhc3M9IkNhbGxGb3JBY3Rpb24gRnVsbHNpemUgQ2VudGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGkgY2xhc3M9ImZhIGZhLXBsdXMtc3F1YXJlIj48L2k+WyUgVHJhbnNsYXRlKCJUZW1wbGF0ZXMiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgPGI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlbGVjdCB0aGUgaXRlbXMgeW91IHdhbnQgdG8gIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9iPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2JyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIGRlc2lyZWQgZWxlbWVudHMgYW5kIGNvbmZpcm0gdGhlIGltcG9ydCB3aXRoICdpbXBvcnQnLiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0SGludCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkhlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2YgdGVtcGxhdGVzIHRvIGltcG9ydCB0aGVzZSBvbiBhbm90aGVyIHN5c3RlbS4gVGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBleHBvcnRlZCBpbiB5bWwgZm9ybWF0LiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiRXhwb3J0SGludCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgICAgPC9wPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iQ29udGVudENvbHVtbiI+CiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIlRlbXBsYXRlcyBMaXN0IikgfCBodG1sICVdPC9oMj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCBMYXlvdXRHcmlkIENvbHVtbnNXaXRoU3BhY2luZyI+CgogICAgICAgICAgICAgICAgPGZvcm0gaWQ9J0Zvcm0nIGFjdGlvbj0iWyUgRW52KCJDR0lIYW5kbGUiKSAlXSIgbWV0aG9kPSJwb3N0IiBjbGFzcz0iVmFsaWRhdGUgUHJldmVudE11bHRpcGxlU3VibWl0cyI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQWN0aW9uIiB2YWx1ZT0iWyUgRW52KCJBY3Rpb24iKSAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IlN1YmFjdGlvbiIgdmFsdWU9IlslIEVudigiU3ViYWN0aW9uIikgJV1BY3Rpb24iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJUeXBlIiB2YWx1ZT0iWyUgRGF0YS5UeXBlIHwgaHRtbCAlXSIvPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMiICB2YWx1ZT0iWyUgRGF0YS5PdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJEYXRhVGFibGUiIGlkPSJUZW1wbGF0ZXNUYWJsZSIgc3VtbWFyeT0iTGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBUZW1wbGF0ZXMiPgogICAgICAgICAgICAgICAgICAgICAgICA8dGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdDZW50ZXInPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIG5hbWU9IlNlbGVjdEFsbFRlbXBsYXRlcyIgdGl0bGU9IlslIFRyYW5zbGF0ZSgnVG9nZ2xlIGFsbCBhdmFpbGFibGUgZWxlbWVudHMnKSB8IGh0bWwgJV0iIGNoZWNrZWQgdmFsdWU9IiIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJGaWVsZHMiKSB8IGh0bWwgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIk5hbWUiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIkNvbW1lbnQiKSB8IGh0bWwgJV08L3RoPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aD5bJSBUcmFuc2xhdGUoIlZhbGlkaXR5IikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0Ym9keT4KWyUgUmVuZGVyQmxvY2tTdGFydCgiVGVtcGxhdGVzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0iU3RhbmRhcmRUZW1wbGF0ZUlEX1slIERhdGEuSUQgfCBodG1sICVdIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9J0NlbnRlcic+ClslIFJlbmRlckJsb2NrU3RhcnQoIlRlbXBsYXRlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJUZW1wbGF0ZXMiIG5hbWU9IlRlbXBsYXRlcyIgdmFsdWU9IlslIERhdGEuTmFtZSB8IGh0bWwgJV0iIGNoZWNrZWQgLz4KWyUgUmVuZGVyQmxvY2tFbmQoIlRlbXBsYXRlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5hbWUgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkltcG9ydCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblRlbXBsYXRlO1N1YmFjdGlvbj1DaGFuZ2U7SUQ9WyUgRGF0YS5JRCB8IHVyaSAlXTtUeXBlPVslIERhdGEuVGVtcGxhdGVUeXBlIHwgdXJpICVdIiB0aXRsZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPlslIERhdGEuTmFtZSAlXTwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuQ29tbWVudCkgfCBodG1sICVdPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuVmFsaWQpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVGVtcGxhdGVzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgPC90Ym9keT4KICAgICAgICAgICAgICAgICAgICA8L3RhYmxlPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkZpZWxkIFNwYWNpbmdUb3AiIHN0eWxlPSJ0ZXh0LWFsaWduOiBjZW50ZXI7Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iUHJpbWFyeSBDYWxsRm9yQWN0aW9uIiB0eXBlPSJzdWJtaXQiIGlkPSJFeHBvcnQiIHZhbHVlPSJbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+WyUgVHJhbnNsYXRlKERhdGEuVHlwZSkgfCBodG1sICVdPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJvciIpIHwgaHRtbCAlXQogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJbJSBFbnYoIkJhc2VsaW5rIikgJV1BY3Rpb249QWRtaW5UZW1wbGF0ZSIgPlslIFRyYW5zbGF0ZSgiQ2FuY2VsIikgfCBodG1sICVdPC9hPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgICAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iQ2xlYXIiPjwvZGl2PgogICAgPC9kaXY+CjwvZGl2Pgo=</File>
        <File Location="Kernel/Output/HTML/Templates/Standard/AdminTypeImportExport.tt" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxMi0yMDIwIFpudW55IEdtYkgsIGh0dHA6Ly96bnVueS5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgo8ZGl2IGNsYXNzPSJNYWluQm94IEFSSUFSb2xlTWFpbiBMYXlvdXRGaXhlZFNpZGViYXIgU2lkZWJhckZpcnN0Ij4KCiAgICBbJQogICAgICAgIFNFVCBUeXBlICA9IFRyYW5zbGF0ZShEYXRhLlR5cGUpOwogICAgICAgIFNFVCBMYWJlbCA9IFRyYW5zbGF0ZSgiVHlwZXMiKTsKICAgICVdCgogICAgWyUgQnJlYWRjcnVtYlBhdGggPSBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgPT4gVHJhbnNsYXRlKCIlcyAtICVzIixMYWJlbCwgVHlwZSksCiAgICAgICAgICAgIH0sCiAgICAgICAgXQogICAgJV0KCiAgICBbJSBJTkNMVURFICJCcmVhZGNydW1iLnR0IiBQYXRoID0gQnJlYWRjcnVtYlBhdGggJV0KICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJTaWRlYmFyQ29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiQWN0aW9ucyIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDb250ZW50Ij4KICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iQWN0aW9uTGlzdCI+ClslIFJlbmRlckJsb2NrU3RhcnQoIkFjdGlvbk92ZXJ2aWV3IikgJV0KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblR5cGUiIGNsYXNzPSJDYWxsRm9yQWN0aW9uIEZ1bGxzaXplIENlbnRlciI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpIGNsYXNzPSJmYSBmYS1wbHVzLXNxdWFyZSI+PC9pPlslIFRyYW5zbGF0ZSgiVHlwZXMiKSB8IGh0bWwgJV08L3NwYW4+PC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+ClslIFJlbmRlckJsb2NrRW5kKCJBY3Rpb25PdmVydmlldyIpICVdCiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iV2lkZ2V0U2ltcGxlIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iSGVhZGVyIj4KICAgICAgICAgICAgICAgIDxoMj5bJSBUcmFuc2xhdGUoIkhpbnQiKSB8IGh0bWwgJV0gLSBbJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L2gyPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iQ29udGVudCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJGaWVsZEV4cGxhbmF0aW9uIj4KICAgICAgICAgICAgICAgICAgICA8cD4KICAgICAgICAgICAgICAgICAgICAgICAgPGI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIlNlbGVjdCB0aGUgaXRlbXMgeW91IHdhbnQgdG8gIikgfCBodG1sICVdIFslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXS4KICAgICAgICAgICAgICAgICAgICAgICAgPC9iPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHA+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2JyPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgWyUgVHJhbnNsYXRlKCJTZWxlY3QgdGhlIGRlc2lyZWQgZWxlbWVudHMgYW5kIGNvbmZpcm0gdGhlIGltcG9ydCB3aXRoICdpbXBvcnQnLiIpIHwgaHRtbCAlXQpbJSBSZW5kZXJCbG9ja0VuZCgiSW1wb3J0SGludCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydEhpbnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIkhlcmUgeW91IGNhbiBleHBvcnQgYSBjb25maWd1cmF0aW9uIGZpbGUgb2YgdHlwZXMgdG8gaW1wb3J0IHRoZXNlIG9uIGFub3RoZXIgc3lzdGVtLiBUaGUgY29uZmlndXJhdGlvbiBmaWxlIGlzIGV4cG9ydGVkIGluIHltbCBmb3JtYXQuIikgfCBodG1sICVdClslIFJlbmRlckJsb2NrRW5kKCJFeHBvcnRIaW50IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD4KICAgICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJDb250ZW50Q29sdW1uIj4KICAgICAgICA8ZGl2IGNsYXNzPSJXaWRnZXRTaW1wbGUiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJIZWFkZXIiPgogICAgICAgICAgICAgICAgPGgyPlslIFRyYW5zbGF0ZSgiVHlwZXMgTGlzdCIpIHwgaHRtbCAlXTwvaDI+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9IkNvbnRlbnQgTGF5b3V0R3JpZCBDb2x1bW5zV2l0aFNwYWNpbmciPgoKICAgICAgICAgICAgICAgIDxmb3JtIGlkPSdGb3JtJyBhY3Rpb249IlslIEVudigiQ0dJSGFuZGxlIikgJV0iIG1ldGhvZD0icG9zdCIgY2xhc3M9IlZhbGlkYXRlIFByZXZlbnRNdWx0aXBsZVN1Ym1pdHMiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IkFjdGlvbiIgdmFsdWU9IlslIEVudigiQWN0aW9uIikgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTdWJhY3Rpb24iIHZhbHVlPSJbJSBFbnYoIlN1YmFjdGlvbiIpICVdQWN0aW9uIi8+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iVHlwZSIgdmFsdWU9IlslIERhdGEuVHlwZSB8IGh0bWwgJV0iLz4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzIiAgdmFsdWU9IlslIERhdGEuT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyB8IGh0bWwgJV0iPgogICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0iRGF0YVRhYmxlIiBpZD0iVHlwZXNUYWJsZSIgc3VtbWFyeT0iTGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCB0eXBlcyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx0aGVhZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9J0NlbnRlcic+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0iU2VsZWN0QWxsVHlwZXMiIHRpdGxlPSJbJSBUcmFuc2xhdGUoJ1RvZ2dsZSBhbGwgYXZhaWxhYmxlIGVsZW1lbnRzJykgfCBodG1sICVdIiBjaGVja2VkIHZhbHVlPSIiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFslIFRyYW5zbGF0ZSgiRmllbGRzIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJOYW1lIikgfCBodG1sICVdPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+WyUgVHJhbnNsYXRlKCJWYWxpZGl0eSIpIHwgaHRtbCAlXTwvdGg+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgogICAgICAgICAgICAgICAgICAgICAgICA8L3RoZWFkPgogICAgICAgICAgICAgICAgICAgICAgICA8dGJvZHk+ClslIFJlbmRlckJsb2NrU3RhcnQoIlR5cGVzUm93IikgJV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ciBpZD0iVHlwZUlEX1slIERhdGEuVHlwZUlEIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPSdDZW50ZXInPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJUeXBlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJUeXBlcyIgbmFtZT0iVHlwZXMiIHZhbHVlPSJbJSBEYXRhLk5hbWUgfCBodG1sICVdIiBjaGVja2VkIC8+ClslIFJlbmRlckJsb2NrRW5kKCJUeXBlQ2hlY2tib3giKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPgpbJSBSZW5kZXJCbG9ja1N0YXJ0KCJJbXBvcnQiKSAlXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJSBEYXRhLk5hbWUgJV0KWyUgUmVuZGVyQmxvY2tFbmQoIkltcG9ydCIpICVdClslIFJlbmRlckJsb2NrU3RhcnQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblR5cGU7U3ViYWN0aW9uPUNoYW5nZTtJRD1bJSBEYXRhLklEIHwgdXJpICVdIiB0aXRsZT0iWyUgRGF0YS5OYW1lIHwgaHRtbCAlXSIgY2xhc3M9Ik1hc3RlckFjdGlvbkxpbmsiPlslIERhdGEuTmFtZSAlXTwvYT4KWyUgUmVuZGVyQmxvY2tFbmQoIkV4cG9ydCIpICVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+WyUgVHJhbnNsYXRlKERhdGEuVmFsaWQpIHwgaHRtbCAlXTwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPgpbJSBSZW5kZXJCbG9ja0VuZCgiVHlwZXNSb3ciKSAlXQogICAgICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICAgICAgICAgICAgIDwvdGFibGU+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iRmllbGQgU3BhY2luZ1RvcCIgc3R5bGU9InRleHQtYWxpZ246IGNlbnRlcjsiPgogICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJQcmltYXJ5IENhbGxGb3JBY3Rpb24iIHR5cGU9InN1Ym1pdCIgaWQ9IkV4cG9ydCIgdmFsdWU9IlslIFRyYW5zbGF0ZShEYXRhLlR5cGUpIHwgaHRtbCAlXSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5bJSBUcmFuc2xhdGUoRGF0YS5UeXBlKSB8IGh0bWwgJV08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICBbJSBUcmFuc2xhdGUoIm9yIikgfCBodG1sICVdCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IlslIEVudigiQmFzZWxpbmsiKSAlXUFjdGlvbj1BZG1pblR5cGUiID5bJSBUcmFuc2xhdGUoIkNhbmNlbCIpIHwgaHRtbCAlXTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJDbGVhciI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Zvcm0+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9IkNsZWFyIj48L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4K</File>
        <File Location="Kernel/System/Console/Command/Admin/ImportExport/ImportACL.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6SW1wb3J0RXhwb3J0OjpJbXBvcnRBQ0w7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgcGFyZW50IHF3KEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpCYXNlQ29tbWFuZCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkFDTDo6REI6OkFDTCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkNhY2hlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TWFpbicsCik7CgpzdWIgQ29uZmlndXJlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPkRlc2NyaXB0aW9uKCdJbXBvcnQgQUNMIGRhdGEgZnJvbSBhIFlBTUwgZmlsZS4nKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3VwZGF0ZScsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkZsYWcgaWYgZXhpc3RpbmcgQUNMcyBzaG91bGQgYmUgb3ZlcndyaXR0ZW4uIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDAsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovc214LAogICAgKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ2RlcGxveScsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkZsYWcgaWYgaW1wb3J0ZWQgQUNMcyBzaG91bGQgYmUgZGVwbG95ZWQuIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDAsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovc214LAogICAgKTsKICAgICRTZWxmLT5BZGRBcmd1bWVudCgKICAgICAgICBOYW1lICAgICAgICA9PiAnc291cmNlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgZmlsZSB3aGljaCBjb250YWlucyB0aGUgZGF0YSBmb3IgaW1wb3J0aW5nLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi8sCiAgICApOwoKICAgIHJldHVybjsKfQoKc3ViIFByZVJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTb3VyY2UgPSAkU2VsZi0+R2V0QXJndW1lbnQoJ3NvdXJjZScpOwogICAgaWYgKCAhJFNvdXJjZSApIHsKCiAgICAgICAgIyBzb3VyY2UgaXMgb3B0aW9uYWwsIGV2ZW4gaWYgYW4gaW1wb3J0IHdpdGhvdXQgc291cmNlIGlzIHVuc2F0aXNmeWluZwogICAgfQogICAgZWxzaWYgKCAtciAkU291cmNlICkgewoKICAgICAgICAjIGEgcmVhZGFibGUgZmlsZSBpcyBmaW5lCiAgICB9CiAgICBlbHNlIHsKICAgICAgICBkaWUgIlRoZSBzb3VyY2UgJFNvdXJjZSBkb2VzIG5vdCBleGlzdCBvciBjYW4gbm90IGJlIHJlYWQuIjsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+U3RhcnRpbmcgQUNMIGltcG9ydC4uLjwveWVsbG93PlxuIik7CgogICAgIyBnZXQgb2JqZWN0CiAgICBteSAkQUNMT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkFDTDo6REI6OkFDTCcpOwoKICAgICMgZmV0Y2ggcGFyYW1zCiAgICBteSAkRmlsZSAgICAgICAgICAgICAgICAgICAgICA9ICRTZWxmLT5HZXRBcmd1bWVudCgnc291cmNlJykgfHwgJyc7CiAgICBteSAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9ICRTZWxmLT5HZXRPcHRpb24oJ3VwZGF0ZScpICAgfHwgMDsKICAgIG15ICREZXBsb3kgICAgICAgICAgICAgICAgICAgID0gJFNlbGYtPkdldE9wdGlvbignZGVwbG95JykgICB8fCAwOwoKICAgICMgc2hvcnRjdXQgZm9yIGVycm9yIHByaW50aW5nCiAgICBteSAkRXJyb3IgPSBzdWIgewogICAgICAgICRTZWxmLT5QcmludCgiPHJlZD4kX1swXTwvcmVkPlxuIik7CgogICAgICAgICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9OwoKICAgICMgcmVhZCBmaWxlCiAgICBteSAkQUNMWUFNTCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkZpbGVSZWFkKAogICAgICAgIExvY2F0aW9uID0+ICRGaWxlLAogICAgKTsKCiAgICAjIHByb2Nlc3MgY29udGVudAogICAgbXkgJEFDTEltcG9ydCA9ICRBQ0xPYmplY3QtPkFDTEltcG9ydCgKICAgICAgICBDb250ZW50ICAgICAgICAgICAgICAgICAgID0+ICR7JEFDTFlBTUx9LAogICAgICAgIE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPT4gJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgKTsKICAgIGlmICggISRBQ0xJbXBvcnQtPntTdWNjZXNzfSApIHsKICAgICAgICBteSAkTWVzc2FnZSA9ICRBQ0xJbXBvcnQtPntNZXNzYWdlfQogICAgICAgICAgICB8fCAnQUNMcyBjb3VsZCBub3QgYmUgSW1wb3J0ZWQgZHVlIHRvIGEgdW5rbm93biBlcnJvciwgcGxlYXNlIGNoZWNrIE9UT0JPIGxvZ3MgZm9yIG1vcmUgaW5mb3JtYXRpb24nOwogICAgICAgIHJldHVybiAkRXJyb3ItPigkTWVzc2FnZSk7CiAgICB9CgogICAgaWYgKCAkQUNMSW1wb3J0LT57QWRkZWRBQ0xzfSApIHsKICAgICAgICBteSAkTWVzc2FnZSA9IHNwcmludGYoCiAgICAgICAgICAgICdUaGUgZm9sbG93aW5nIEFDTHMgaGF2ZSBiZWVuIGFkZGVkIHN1Y2Nlc3NmdWxseTogJXMnLAogICAgICAgICAgICAkQUNMSW1wb3J0LT57QWRkZWRBQ0xzfQogICAgICAgICk7CiAgICAgICAgJFNlbGYtPlByaW50KCI8Z3JlZW4+JE1lc3NhZ2U8L2dyZWVuPlxuIik7CiAgICB9CiAgICBpZiAoICRBQ0xJbXBvcnQtPntVcGRhdGVkQUNMc30gKSB7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSBzcHJpbnRmKAogICAgICAgICAgICAnVGhlIGZvbGxvd2luZyBBQ0xzIGhhdmUgYmVlbiB1cGRhdGVkIHN1Y2Nlc3NmdWxseTogJXMnLAogICAgICAgICAgICAkQUNMSW1wb3J0LT57VXBkYXRlZEFDTHN9CiAgICAgICAgKTsKICAgICAgICAkU2VsZi0+UHJpbnQoIjxncmVlbj4kTWVzc2FnZTwvZ3JlZW4+XG4iKTsKICAgIH0KICAgIGlmICggJEFDTEltcG9ydC0+e0FDTEVycm9yc30gKSB7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSBzcHJpbnRmKAogICAgICAgICAgICAnVGhlcmUgd2hlcmUgZXJyb3JzIGFkZGluZy91cGRhdGluZyB0aGUgZm9sbG93aW5nIEFDTHM6ICVzLiBQbGVhc2UgY2hlY2sgdGhlIGxvZyBmaWxlIGZvciBtb3JlIGluZm9ybWF0aW9uLicsCiAgICAgICAgICAgICRBQ0xJbXBvcnQtPntBQ0xFcnJvcnN9CiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJEVycm9yLT4oJE1lc3NhZ2UpOwogICAgfQoKICAgIGlmICgkRGVwbG95KSB7CgogICAgICAgIG15ICRMb2NhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSG9tZScpIC4gJy9LZXJuZWwvQ29uZmlnL0ZpbGVzL1paWkFDTC5wbSc7CgogICAgICAgIG15ICRBQ0xEdW1wU3VjY2VzcyA9ICRBQ0xPYmplY3QtPkFDTER1bXAoCiAgICAgICAgICAgIFJlc3VsdFR5cGUgPT4gJ0ZJTEUnLAogICAgICAgICAgICBMb2NhdGlvbiAgID0+ICRMb2NhdGlvbiwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICk7CgogICAgICAgIGlmICgkQUNMRHVtcFN1Y2Nlc3MpIHsKCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJEFDTE9iamVjdC0+QUNMc05lZWRTeW5jUmVzZXQoKTsKCiAgICAgICAgICAgICMgcmVtb3ZlIHByZXNlbGVjdGlvbiBjYWNoZSBUT0RPOiByZWJ1aWxkIHRoZSBjYWNoZSBwcm9wZXJseSAoYSBzaW1wbGUgJEZpZWxkUmVzdHJpY3Rpb25zT2JqZWN0LT5TZXRBQ0xQcmVzZWxlY3Rpb25DYWNoZSgpOyB1c2VzIHRoZSBvbGQgQUNMcykKICAgICAgICAgICAgbXkgJENhY2hlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNhY2hlJyk7CiAgICAgICAgICAgIGZvciBteSAkT2JqZWN0VHlwZSAocXcoVGlja2V0IENvbmZpZ0l0ZW0pKSB7CiAgICAgICAgICAgICAgICAkQ2FjaGVPYmplY3QtPkRlbGV0ZSgKICAgICAgICAgICAgICAgICAgICBUeXBlID0+ICRPYmplY3RUeXBlIC4gJ0FDTCcsICAgICMgb25seSBbYS16QS1aMC05X10gY2hhcnMgdXNhYmxlCiAgICAgICAgICAgICAgICAgICAgS2V5ICA9PiAnUHJlc2VsZWN0aW9uJywKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgaWYgKCAhJFN1Y2Nlc3MgKSB7CgogICAgICAgICAgICAgICAgICAgICMgc2hvdyBlcnJvciBpZiBjYW4ndCBzZXQgc3RhdGUKICAgICAgICAgICAgICAgICAgICBteSAkTWVzc2FnZSA9IHNwcmludGYoCiAgICAgICAgICAgICAgICAgICAgICAgICdUaGVyZSB3YXMgYW4gZXJyb3Igc2V0dGluZyB0aGUgZW50aXR5IHN5bmMgc3RhdHVzLicsCiAgICAgICAgICAgICAgICAgICAgICAgICRBQ0xJbXBvcnQtPntBQ0xFcnJvcnN9CiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJEVycm9yLT4oJE1lc3NhZ2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewoKICAgICAgICAgICAgIyBzaG93IGVycm9yIGlmIGNhbid0IHN5bmMKICAgICAgICAgICAgbXkgJE1lc3NhZ2UgPSBzcHJpbnRmKAogICAgICAgICAgICAgICAgJ1RoZXJlIHdhcyBhbiBlcnJvciBzeW5jaHJvbml6aW5nIHRoZSBBQ0xzLicsCiAgICAgICAgICAgICAgICAkQUNMSW1wb3J0LT57QUNMRXJyb3JzfQogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJEVycm9yLT4oJE1lc3NhZ2UpOwogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+UHJpbnQoIjxncmVlbj5Eb25lLjwvZ3JlZW4+XG4iKTsKICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVPaygpOwp9CgoxOwo=</File>
        <File Location="Kernel/System/Console/Command/Admin/ImportExport/ImportDynamicField.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6SW1wb3J0RXhwb3J0OjpJbXBvcnREeW5hbWljRmllbGQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNIYXNoUmVmV2l0aERhdGEpOwoKdXNlIHBhcmVudCBxdyhLZXJuZWw6OlN5c3RlbTo6Q29uc29sZTo6QmFzZUNvbW1hbmQpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6WUFNTCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlpudW55SGVscGVyJywKKTsKCnN1YiBDb25maWd1cmUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+RGVzY3JpcHRpb24oJ0ltcG9ydCBkeW5hbWljIGZpZWxkIGRhdGEgZnJvbSBhIFlBTUwgZmlsZS4nKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3VwZGF0ZScsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkZsYWcgaWYgZXhpc3RpbmcgZHluYW1pYyBmaWVsZCBkYXRhIHNob3VsZCBiZSBvdmVyd3JpdHRlbi4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMCwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi9zbXgsCiAgICApOwogICAgJFNlbGYtPkFkZEFyZ3VtZW50KAogICAgICAgIE5hbWUgICAgICAgID0+ICdzb3VyY2UnLAogICAgICAgIERlc2NyaXB0aW9uID0+ICJTcGVjaWZ5IHRoZSBwYXRoIHRvIHRoZSBmaWxlIHdoaWNoIGNvbnRhaW5zIHRoZSBkYXRhIGZvciBpbXBvcnRpbmcuIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAxLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyLy4qLywKICAgICk7CgogICAgcmV0dXJuOwp9CgpzdWIgUHJlUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFNvdXJjZSA9ICRTZWxmLT5HZXRBcmd1bWVudCgnc291cmNlJyk7CiAgICBpZiAoICEkU291cmNlICkgewoKICAgICAgICAjIHNvdXJjZSBpcyBvcHRpb25hbCwgZXZlbiBpZiBhbiBpbXBvcnQgd2l0aG91dCBzb3VyY2UgaXMgdW5zYXRpc2Z5aW5nCiAgICB9CiAgICBlbHNpZiAoIC1yICRTb3VyY2UgKSB7CgogICAgICAgICMgYSByZWFkYWJsZSBmaWxlIGlzIGZpbmUKICAgIH0KICAgIGVsc2UgewogICAgICAgIGRpZSAiVGhlIHNvdXJjZSAkU291cmNlIGRvZXMgbm90IGV4aXN0IG9yIGNhbiBub3QgYmUgcmVhZC4iOwogICAgfQoKICAgIHJldHVybjsKfQoKc3ViIFJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5TdGFydGluZyBkeW5hbWljIGZpZWxkIGltcG9ydC4uLjwveWVsbG93PlxuIik7CgogICAgIyBnZXQgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwogICAgbXkgJFlBTUxPYmplY3QgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OllBTUwnKTsKICAgIG15ICRabnVueUhlbHBlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpabnVueUhlbHBlcicpOwoKICAgICMgZmV0Y2ggcGFyYW1zCiAgICBteSAkRmlsZSAgICAgICAgICAgICAgICAgICAgICA9ICRTZWxmLT5HZXRBcmd1bWVudCgnc291cmNlJykgfHwgJyc7CiAgICBteSAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9ICRTZWxmLT5HZXRPcHRpb24oJ3VwZGF0ZScpICAgfHwgMDsKCiAgICAjIHJlYWQgZmlsZQogICAgbXkgJERGWUFNTCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkZpbGVSZWFkKAogICAgICAgIExvY2F0aW9uID0+ICRGaWxlLAogICAgKTsKICAgIG15ICRERkRhdGEgPSAkWUFNTE9iamVjdC0+TG9hZCgKICAgICAgICBEYXRhID0+ICR7JERGWUFNTH0sCiAgICApOwoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgSW1wb3J0IER5bmFtaWNGaWVsZHMKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIG15ICRGaWVsZFR5cGVDb25maWcgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ0R5bmFtaWNGaWVsZHM6OkRyaXZlcicpOwogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJERGRGF0YS0+e0R5bmFtaWNGaWVsZHN9ICkgKSB7CgogICAgICAgIG15IEBEeW5hbWljRmllbGRzSW1wb3J0OwogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZCAoIHNvcnQga2V5cyAleyAkREZEYXRhLT57RHluYW1pY0ZpZWxkc30gfSApIHsKICAgICAgICAgICAgJFNlbGYtPlByaW50KCI8eWVsbG93PkN1cnJlbnRseSBwcm9jZXNzaW5nIGZpZWxkICREeW5hbWljRmllbGQuLi48L3llbGxvdz5cbiIpOwoKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkREZEYXRhLT57RHluYW1pY0ZpZWxkc317JER5bmFtaWNGaWVsZH0gKTsKCiAgICAgICAgICAgIG15ICRGaWVsZFR5cGUgPSAkREZEYXRhLT57RHluYW1pY0ZpZWxkc317JER5bmFtaWNGaWVsZH17RmllbGRUeXBlfTsKCiAgICAgICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkRmllbGRUeXBlQ29uZmlnLT57JEZpZWxkVHlwZX0gKSApIHsKCiAgICAgICAgICAgICAgICAkU2VsZi0+UHJpbnQoCiAgICAgICAgICAgICAgICAgICAgIjxyZWQ+Q291bGQgbm90IGltcG9ydCBkeW5hbWljIGZpZWxkICckREZEYXRhLT57RHluYW1pY0ZpZWxkc30tPnskRHluYW1pY0ZpZWxkfS0+e05hbWV9JyAtIER5bmFtaWMgZmllbGQgYmFja2VuZCBmb3IgRmllbGRUeXBlICckREZEYXRhLT57RHluYW1pY0ZpZWxkc30tPnskRHluYW1pY0ZpZWxkfS0+e0ZpZWxkVHlwZX0nIGRvZXMgbm90IGV4aXN0cyEgU2tpcHBpbmcgaXQuLi48L3JlZD5cbiIKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHB1c2ggQER5bmFtaWNGaWVsZHNJbXBvcnQsICRERkRhdGEtPntEeW5hbWljRmllbGRzfXskRHluYW1pY0ZpZWxkfTsKICAgICAgICB9CgogICAgICAgIGlmICgkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcykgewogICAgICAgICAgICAkWm51bnlIZWxwZXJPYmplY3QtPl9EeW5hbWljRmllbGRzQ3JlYXRlKEBEeW5hbWljRmllbGRzSW1wb3J0KTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRabnVueUhlbHBlck9iamVjdC0+X0R5bmFtaWNGaWVsZHNDcmVhdGVJZk5vdEV4aXN0cyhARHluYW1pY0ZpZWxkc0ltcG9ydCk7CiAgICAgICAgfQogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgSW1wb3J0IER5bmFtaWNGaWVsZHNTY3JlZW5zCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJERGRGF0YS0+e0R5bmFtaWNGaWVsZHNTY3JlZW5zfSApICkgewogICAgICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5DdXJyZW50bHkgcHJvY2Vzc2luZyBkeW5hbWljIGZpZWxkIHNjcmVlbnMgY29uZmlnLiBUaGlzIG1heSB0YWtlIHNvbWUgdGltZS4uLjwveWVsbG93PlxuIik7CgogICAgICAgIG15ICVEeW5hbWljRmllbGRzU2NyZWVuc0ltcG9ydDsKICAgICAgICBEWU5BTUlDRklFTERTQ1JFRU46CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGQgKCBzb3J0IGtleXMgJXsgJERGRGF0YS0+e0R5bmFtaWNGaWVsZHNTY3JlZW5zfSB9ICkgewoKICAgICAgICAgICAgJER5bmFtaWNGaWVsZHNTY3JlZW5zSW1wb3J0eyREeW5hbWljRmllbGR9ID0gJERGRGF0YS0+e0R5bmFtaWNGaWVsZHNTY3JlZW5zfXskRHluYW1pY0ZpZWxkfTsKICAgICAgICB9CgogICAgICAgIGlmICglRHluYW1pY0ZpZWxkc1NjcmVlbnNJbXBvcnQpIHsKICAgICAgICAgICAgJFpudW55SGVscGVyT2JqZWN0LT5fRHluYW1pY0ZpZWxkc1NjcmVlbkNvbmZpZ0ltcG9ydCgKICAgICAgICAgICAgICAgIENvbmZpZyA9PiBcJUR5bmFtaWNGaWVsZHNTY3JlZW5zSW1wb3J0LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+UHJpbnQoIjxncmVlbj5Eb25lLjwvZ3JlZW4+XG4iKTsKICAgIHJldHVybiAkU2VsZi0+RXhpdENvZGVPaygpOwp9CgoxOwo=</File>
        <File Location="Kernel/System/Console/Command/Admin/ImportExport/ImportProcess.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6SW1wb3J0RXhwb3J0OjpJbXBvcnRQcm9jZXNzOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHBhcmVudCBxdyhLZXJuZWw6OlN5c3RlbTo6Q29uc29sZTo6QmFzZUNvbW1hbmQpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6UHJvY2Vzc01hbmFnZW1lbnQ6OkRCOjpFbnRpdHknLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpQcm9jZXNzTWFuYWdlbWVudDo6REI6OlByb2Nlc3MnLAopOwoKc3ViIENvbmZpZ3VyZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5EZXNjcmlwdGlvbignSW1wb3J0IGEgcHJvY2VzcyBmcm9tIGEgWUFNTCBmaWxlLicpOwogICAgJFNlbGYtPkFkZE9wdGlvbigKICAgICAgICBOYW1lICAgICAgICA9PiAndXBkYXRlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiRmxhZyBpZiBhbiBleGlzdGluZyBwcm9jZXNzIHNob3VsZCBiZSBvdmVyd3JpdHRlbi4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDAsCiAgICAgICAgSGFzVmFsdWUgICAgPT4gMCwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi9zbXgsCiAgICApOwogICAgJFNlbGYtPkFkZE9wdGlvbigKICAgICAgICBOYW1lICAgICAgICA9PiAnZGVwbG95JywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiRmxhZyBpZiBpbXBvcnRlZCBwcm9jZXNzZXMgc2hvdWxkIGJlIGRlcGxveWVkLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMCwKICAgICAgICBIYXNWYWx1ZSAgICA9PiAwLAogICAgICAgIFZhbHVlUmVnZXggID0+IHFyLy4qL3NteCwKICAgICk7CiAgICAkU2VsZi0+QWRkQXJndW1lbnQoCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3NvdXJjZScsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIlNwZWNpZnkgdGhlIHBhdGggdG8gdGhlIGZpbGUgd2hpY2ggY29udGFpbnMgdGhlIGRhdGEgZm9yIGltcG9ydGluZy4iLAogICAgICAgIFJlcXVpcmVkICAgID0+IDEsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovLAogICAgKTsKCiAgICByZXR1cm47Cn0KCnN1YiBQcmVSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU291cmNlID0gJFNlbGYtPkdldEFyZ3VtZW50KCdzb3VyY2UnKTsKICAgIGlmICggISRTb3VyY2UgKSB7CgogICAgICAgICMgc291cmNlIGlzIG9wdGlvbmFsLCBldmVuIGlmIGFuIGltcG9ydCB3aXRob3V0IHNvdXJjZSBpcyB1bnNhdGlzZnlpbmcKICAgIH0KICAgIGVsc2lmICggLXIgJFNvdXJjZSApIHsKCiAgICAgICAgIyBhIHJlYWRhYmxlIGZpbGUgaXMgZmluZQogICAgfQogICAgZWxzZSB7CiAgICAgICAgZGllICJUaGUgc291cmNlICRTb3VyY2UgZG9lcyBub3QgZXhpc3Qgb3IgY2FuIG5vdCBiZSByZWFkLiI7CiAgICB9CgogICAgcmV0dXJuOwp9CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPlByaW50KCI8eWVsbG93PlN0YXJ0IGltcG9ydGluZyBQcm9jZXNzLi4uPC95ZWxsb3c+XG4iKTsKCiAgICBteSAkRW50aXR5T2JqZWN0ICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQcm9jZXNzTWFuYWdlbWVudDo6REI6OkVudGl0eScpOwogICAgbXkgJFByb2Nlc3NPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UHJvY2Vzc01hbmFnZW1lbnQ6OkRCOjpQcm9jZXNzJyk7CgogICAgbXkgJEZpbGUgICAgICAgICAgICAgICAgICAgICAgPSAkU2VsZi0+R2V0QXJndW1lbnQoJ3NvdXJjZScpIHx8ICcnOwogICAgbXkgJE92ZXJ3cml0ZUV4aXN0aW5nRW50aXRpZXMgPSAkU2VsZi0+R2V0T3B0aW9uKCd1cGRhdGUnKSAgIHx8IDA7CiAgICBteSAkRGVwbG95ICAgICAgICAgICAgICAgICAgICA9ICRTZWxmLT5HZXRPcHRpb24oJ2RlcGxveScpICAgfHwgMDsKCiAgICAjIHNob3J0Y3V0IGZvciBlcnJvciBwcmludGluZwogICAgbXkgJEVycm9yID0gc3ViIHsKICAgICAgICAkU2VsZi0+UHJpbnQoIjxyZWQ+JF9bMF08L3JlZD5cbiIpOwoKICAgICAgICAkU2VsZi0+RXhpdENvZGVFcnJvcigpOwogICAgfTsKCiAgICBteSAkQ29udGVudCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkZpbGVSZWFkKAogICAgICAgIExvY2F0aW9uID0+ICRGaWxlLAogICAgICAgIE1vZGUgICAgID0+ICd1dGY4JywKICAgICk7CgogICAgIyBpbXBvcnQgdGhlIHByb2Nlc3MgWUFNTCBmaWxlCiAgICBteSAlUHJvY2Vzc0ltcG9ydCA9ICRQcm9jZXNzT2JqZWN0LT5Qcm9jZXNzSW1wb3J0KAogICAgICAgIENvbnRlbnQgICAgICAgICAgICAgICAgICAgPT4gJHskQ29udGVudH0sCiAgICAgICAgT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcyA9PiAkT3ZlcndyaXRlRXhpc3RpbmdFbnRpdGllcywKICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICApOwogICAgaWYgKCAhJFByb2Nlc3NJbXBvcnR7U3VjY2Vzc30gKSB7CiAgICAgICAgJEVycm9yLT4oIiRQcm9jZXNzSW1wb3J0e01lc3NhZ2V9XG4kUHJvY2Vzc0ltcG9ydHtDb21tZW50fSIpOwogICAgfQoKICAgIGlmICgkRGVwbG95KSB7CgogICAgICAgIG15ICRMb2NhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSG9tZScpIC4gJy9LZXJuZWwvQ29uZmlnL0ZpbGVzL1paWlByb2Nlc3NNYW5hZ2VtZW50LnBtJzsKCiAgICAgICAgbXkgJFByb2Nlc3NEdW1wID0gJFByb2Nlc3NPYmplY3QtPlByb2Nlc3NEdW1wKAogICAgICAgICAgICBSZXN1bHRUeXBlID0+ICdGSUxFJywKICAgICAgICAgICAgTG9jYXRpb24gICA9PiAkTG9jYXRpb24sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICApOwoKICAgICAgICBpZiAoJFByb2Nlc3NEdW1wKSB7CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRFbnRpdHlPYmplY3QtPkVudGl0eVN5bmNTdGF0ZVB1cmdlKAogICAgICAgICAgICAgICAgVXNlcklEID0+IDEsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKCiAgICAgICAgICAgICAgICAjIHNob3cgZXJyb3IgaWYgY2FuJ3Qgc2V0IHN0YXRlCiAgICAgICAgICAgICAgICAkRXJyb3ItPignVGhlcmUgd2FzIGFuIGVycm9yIHNldHRpbmcgdGhlIGVudGl0eSBzeW5jIHN0YXR1cy4nKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICMgc2hvdyBlcnJvciBpZiBjYW4ndCBzeW5jCiAgICAgICAgICAgICRFcnJvci0+KCdUaGVyZSB3YXMgYW4gZXJyb3Igc3luY2hyb25pemluZyB0aGUgcHJvY2Vzc2VzLicpOwogICAgICAgIH0KICAgIH0KCiAgICAjICMgc2V0IGVudGl0eSBzeW5jIHN0YXRlCiAgICAjIG15ICRTdWNjZXNzID0gJEVudGl0eU9iamVjdC0+RW50aXR5U3luY1N0YXRlU2V0KAogICAgIyAgICAgRW50aXR5VHlwZSA9PiAnUHJvY2VzcycsCiAgICAjICAgICBFbnRpdHlJRCAgID0+ICRFbnRpdHlJRCwKICAgICMgICAgIFN5bmNTdGF0ZSAgPT4gJ25vdF9zeW5jJywKICAgICMgICAgIFVzZXJJRCAgICAgPT4gJFNlbGYtPntVc2VySUR9LAogICAgIyApOwoKICAgICMgIyBzaG93IGVycm9yIGlmIGNhbid0IHNldAogICAgIyBpZiAoICEkU3VjY2VzcyApIHsKICAgICMgICAgIHJldHVybiAkTGF5b3V0T2JqZWN0LT5FcnJvclNjcmVlbigKICAgICMgICAgICAgICBNZXNzYWdlID0+ICRMYXlvdXRPYmplY3QtPntMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgKICAgICMgICAgICAgICAgICAgJ1RoZXJlIHdhcyBhbiBlcnJvciBzZXR0aW5nIHRoZSBlbnRpdHkgc3luYyBzdGF0dXMgZm9yIFByb2Nlc3MgZW50aXR5OiAlcycsICRFbnRpdHlJRAogICAgIyAgICAgICAgICksCiAgICAjICAgICApOwogICAgIyB9CgogICAgJFNlbGYtPlByaW50KCI8Z3JlZW4+RG9uZS48L2dyZWVuPlxuIik7CiAgICByZXR1cm4gJFNlbGYtPkV4aXRDb2RlT2soKTsKfQoKMTsK</File>
        <File Location="Kernel/System/Console/Command/Admin/ImportExport/ImportStandardObject.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDIwIE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgQ29weXJpZ2h0IChDKSAyMDE5LTIwMjYgUm90aGVyIE9TUyBHbWJILCBodHRwczovL290b2JvLmlvLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIKIyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUCiMgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKIyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpDb21tYW5kOjpBZG1pbjo6SW1wb3J0RXhwb3J0OjpJbXBvcnRTdGFuZGFyZE9iamVjdDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0hhc2hSZWZXaXRoRGF0YSk7Cgp1c2UgcGFyZW50IHF3KEtlcm5lbDo6U3lzdGVtOjpDb25zb2xlOjpCYXNlQ29tbWFuZCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0FnZW50JywKICAgICdLZXJuZWw6OlN5c3RlbTo6R3JvdXAnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpNYWluJywKICAgICdLZXJuZWw6OlN5c3RlbTo6UGFja2FnZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U2VydmljZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlNMQScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN0YW5kYXJkVGVtcGxhdGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUeXBlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6WUFNTCcsCik7CgpzdWIgQ29uZmlndXJlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPkRlc2NyaXB0aW9uKAogICAgICAgICJJbXBvcnQgZGF0YSBmb3IgYSBzdGFuZGFyZCBvYmplY3QuIEN1cnJlbnRseSBzdXBwb3J0ZWQgb2JqZWN0IHR5cGVzIGFyZTpcblxuXHRHZW5lcmljQWdlbnRcblx0R3JvdXBcblx0UXVldWVcblx0UXVldWUtVGVtcGxhdGUgcmVsYXRpb25zXG5cdFJvbGVcblx0Um9sZS1Hcm91cCByZWxhdGlvbnNcblx0VGVtcGxhdGVcblx0VHlwZVxuXG5TZXJ2aWNlcyBhbmQgU0xBcyBhcmUgc3VwcG9ydGVkIGluIGNhc2UgdGhhdCBhIGNvbXBhdGlibGUgdmVyc2lvbiBvZiB0aGUgU2VydmljZUNhdGFsb2cgcGFja2FnZSBpcyBpbnN0YWxsZWQuIgogICAgKTsKICAgICRTZWxmLT5BZGRPcHRpb24oCiAgICAgICAgTmFtZSAgICAgICAgPT4gJ3VwZGF0ZScsCiAgICAgICAgRGVzY3JpcHRpb24gPT4gIkZsYWcgaWYgZXhpc3Rpbmcgb2JqZWN0cyBzaG91bGQgYmUgb3ZlcndyaXR0ZW4uIiwKICAgICAgICBSZXF1aXJlZCAgICA9PiAwLAogICAgICAgIEhhc1ZhbHVlICAgID0+IDAsCiAgICAgICAgVmFsdWVSZWdleCAgPT4gcXIvLiovc214LAogICAgKTsKICAgICRTZWxmLT5BZGRBcmd1bWVudCgKICAgICAgICBOYW1lICAgICAgICA9PiAnc291cmNlJywKICAgICAgICBEZXNjcmlwdGlvbiA9PiAiU3BlY2lmeSB0aGUgcGF0aCB0byB0aGUgZmlsZSB3aGljaCBjb250YWlucyB0aGUgZGF0YSBmb3IgaW1wb3J0aW5nLiIsCiAgICAgICAgUmVxdWlyZWQgICAgPT4gMSwKICAgICAgICBWYWx1ZVJlZ2V4ICA9PiBxci8uKi8sCiAgICApOwoKICAgIHJldHVybjsKfQoKc3ViIFByZVJ1biB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRTb3VyY2UgPSAkU2VsZi0+R2V0QXJndW1lbnQoJ3NvdXJjZScpOwogICAgaWYgKCAhJFNvdXJjZSApIHsKCiAgICAgICAgIyBzb3VyY2UgaXMgb3B0aW9uYWwsIGV2ZW4gaWYgYW4gaW1wb3J0IHdpdGhvdXQgc291cmNlIGlzIHVuc2F0aXNmeWluZwogICAgfQogICAgZWxzaWYgKCAtciAkU291cmNlICkgewoKICAgICAgICAjIGEgcmVhZGFibGUgZmlsZSBpcyBmaW5lCiAgICB9CiAgICBlbHNlIHsKICAgICAgICBkaWUgIlRoZSBzb3VyY2UgJFNvdXJjZSBkb2VzIG5vdCBleGlzdCBvciBjYW4gbm90IGJlIHJlYWQuIjsKICAgIH0KCiAgICByZXR1cm47Cn0KCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+UHJpbnQoIjx5ZWxsb3c+U3RhcnRpbmcgdGhlIGltcG9ydC4uLjwveWVsbG93PlxuIik7CgogICAgIyBnZXQgKHByb2JhYmx5KSBuZWNlc3Nhcnkgb2JqZWN0cwogICAgbXkgJEdlbmVyaWNBZ2VudE9iamVjdCAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6R2VuZXJpY0FnZW50Jyk7CiAgICBteSAkR3JvdXBPYmplY3QgICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpOwogICAgbXkgJFBhY2thZ2VPYmplY3QgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UGFja2FnZScpOwogICAgbXkgJFF1ZXVlT2JqZWN0ICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKTsKICAgIG15ICRTZXJ2aWNlT2JqZWN0ICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UnKTsKICAgIG15ICRTTEFPYmplY3QgICAgICAgICAgICAgID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlNMQScpOwogICAgbXkgJFN0YW5kYXJkVGVtcGxhdGVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhbmRhcmRUZW1wbGF0ZScpOwogICAgbXkgJFR5cGVPYmplY3QgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VHlwZScpOwogICAgbXkgJFlBTUxPYmplY3QgICAgICAgICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6WUFNTCcpOwoKICAgICMgb2JqZWN0IHRvIHN1YiBtYXBwaW5nCiAgICBteSAlSW1wb3J0U3ViTWFwcGluZyA9ICgKICAgICAgICBHZW5lcmljQWdlbnQgPT4gc3ViIHsKICAgICAgICAgICAgcmV0dXJuICRHZW5lcmljQWdlbnRPYmplY3QtPkltcG9ydEdlbmVyaWNBZ2VudHMoCiAgICAgICAgICAgICAgICBAXywKICAgICAgICAgICAgKTsKICAgICAgICB9LAogICAgICAgIEdyb3VwID0+IHN1YiB7CiAgICAgICAgICAgIHJldHVybiAkR3JvdXBPYmplY3QtPkltcG9ydEdyb3VwcygKICAgICAgICAgICAgICAgIEBfLAogICAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgUXVldWUgPT4gc3ViIHsKICAgICAgICAgICAgcmV0dXJuICRRdWV1ZU9iamVjdC0+SW1wb3J0UXVldWVzKAogICAgICAgICAgICAgICAgQF8sCiAgICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBRdWV1ZVRlbXBsYXRlID0+IHN1YiB7CiAgICAgICAgICAgIHJldHVybiAkUXVldWVPYmplY3QtPkltcG9ydFF1ZXVlVGVtcGxhdGVzKAogICAgICAgICAgICAgICAgQF8sCiAgICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBSb2xlID0+IHN1YiB7CiAgICAgICAgICAgIHJldHVybiAkR3JvdXBPYmplY3QtPkltcG9ydFJvbGVzKAogICAgICAgICAgICAgICAgQF8sCiAgICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBSb2xlR3JvdXAgPT4gc3ViIHsKICAgICAgICAgICAgcmV0dXJuICRHcm91cE9iamVjdC0+SW1wb3J0Um9sZUdyb3VwcygKICAgICAgICAgICAgICAgIEBfLAogICAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgVGVtcGxhdGUgPT4gc3ViIHsKICAgICAgICAgICAgcmV0dXJuICRTdGFuZGFyZFRlbXBsYXRlT2JqZWN0LT5JbXBvcnRUZW1wbGF0ZXMoCiAgICAgICAgICAgICAgICBAXywKICAgICAgICAgICAgKTsKICAgICAgICB9LAogICAgICAgIFR5cGUgPT4gc3ViIHsKICAgICAgICAgICAgcmV0dXJuICRUeXBlT2JqZWN0LT5JbXBvcnRUeXBlcygKICAgICAgICAgICAgICAgIEBfLAogICAgICAgICAgICApOwogICAgICAgIH0sCiAgICApOwoKICAgICMgY2hlY2sgaWYgU2VydmljZUNhdGFsb2cgaXMgaW5zdGFsbGVkIGFuZCBhZGQgU2VydmljZSB0byBtYXBwaW5nLCBpZiBzbwogICAgIyAgIGltcGxpY2l0bHkgYXNzdW1pbmcgdGhhdCBpdCBpcyBhIGNvbXBhdGlibGUgdmVyc2lvbiBvZiB0aGUgcGFja2FnZQogICAgaWYgKCAkUGFja2FnZU9iamVjdC0+UGFja2FnZUlzSW5zdGFsbGVkKCBOYW1lID0+ICdTZXJ2aWNlQ2F0YWxvZycgKSApIHsKICAgICAgICAkSW1wb3J0U3ViTWFwcGluZ3tTZXJ2aWNlfSA9IHN1YiB7CiAgICAgICAgICAgIHJldHVybiAkU2VydmljZU9iamVjdC0+SW1wb3J0U2VydmljZXMoCiAgICAgICAgICAgICAgICBAXywKICAgICAgICAgICAgKTsKICAgICAgICB9OwogICAgICAgICRJbXBvcnRTdWJNYXBwaW5ne1NMQX0gPSBzdWIgewogICAgICAgICAgICByZXR1cm4gJFNMQU9iamVjdC0+SW1wb3J0U0xBcygKICAgICAgICAgICAgICAgIEBfLAogICAgICAgICAgICApOwogICAgICAgIH07CiAgICB9CgogICAgIyBmZXRjaCBwYXJhbXMKICAgIG15ICRGaWxlICAgICAgICAgICAgICAgICAgICAgID0gJFNlbGYtPkdldEFyZ3VtZW50KCdzb3VyY2UnKSB8fCAnJzsKICAgIG15ICRPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzID0gJFNlbGYtPkdldE9wdGlvbigndXBkYXRlJykgICB8fCAwOwoKICAgICMgc2hvcnRjdXQgZm9yIGVycm9yIHByaW50aW5nCiAgICBteSAkRXJyb3IgPSBzdWIgewogICAgICAgICRTZWxmLT5QcmludCgiPHJlZD4kX1swXTwvcmVkPlxuIik7CgogICAgICAgICRTZWxmLT5FeGl0Q29kZUVycm9yKCk7CiAgICB9OwoKICAgICMgcmVhZCBmaWxlCiAgICBteSAkUmF3SW5wdXQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TWFpbicpLT5GaWxlUmVhZCgKICAgICAgICBMb2NhdGlvbiA9PiAkRmlsZSwKICAgICk7CgogICAgbXkgJFlBTUxEYXRhID0gJFlBTUxPYmplY3QtPkxvYWQoCiAgICAgICAgRGF0YSA9PiAkeyRSYXdJbnB1dH0sCiAgICApOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRZQU1MRGF0YSkgKSB7CiAgICAgICAgJEVycm9yLT4oJ1RoZSBpbnB1dCBmaWxlIGRvZXMgbm90IGhhdmUgdGhlIG5lY2Vzc2FyeSBzdHJ1Y3R1cmUuJyk7CiAgICB9CgogICAgbXkgKCRSYXdPYmplY3RUeXBlKSA9IGtleXMgJFlBTUxEYXRhLT4lKjsKCiAgICAjIHN0cmlwIHBsdXJhbC1zIGZyb20gb2JqZWN0IHR5cGUKICAgIG15ICRPYmplY3RUeXBlID0gJFJhd09iamVjdFR5cGU7CiAgICBpZiAoICRSYXdPYmplY3RUeXBlID1+IC8oPzxPYmplY3RUeXBlPlx3KylzJC8gKSB7CiAgICAgICAgJE9iamVjdFR5cGUgPSAkK3tPYmplY3RUeXBlfTsKICAgIH0KCiAgICBpZiAoICEkSW1wb3J0U3ViTWFwcGluZ3skT2JqZWN0VHlwZX0gKSB7CiAgICAgICAgJEVycm9yLT4oIk9iamVjdCB0eXBlICckT2JqZWN0VHlwZScgaXMgbm90IGltcG9ydGFibGUgdmlhIHRoaXMgY29uc29sZSBjb21tYW5kLiIpOwogICAgfQoKICAgICRTZWxmLT5QcmludCgiPHllbGxvdz5JbXBvcnRpbmcgb2JqZWN0cyBvZiB0eXBlICRPYmplY3RUeXBlLjwveWVsbG93PlxuIik7CgogICAgbXkgJUltcG9ydERhdGE7CiAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkWUFNTERhdGEtPnskT2JqZWN0VHlwZX0gKSApIHsKICAgICAgICAlSW1wb3J0RGF0YSA9ICRZQU1MRGF0YS0+eyRPYmplY3RUeXBlfS0+JSo7CiAgICB9CiAgICBlbHNpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkWUFNTERhdGEtPnskUmF3T2JqZWN0VHlwZX0gKSApIHsKICAgICAgICAlSW1wb3J0RGF0YSA9ICRZQU1MRGF0YS0+eyRSYXdPYmplY3RUeXBlfS0+JSo7CiAgICB9CgogICAgbXkgJEltcG9ydFN1Y2Nlc3MgPSAkSW1wb3J0U3ViTWFwcGluZ3skT2JqZWN0VHlwZX0tPigKICAgICAgICAkUmF3T2JqZWN0VHlwZSAgICAgICAgICAgID0+IFwlSW1wb3J0RGF0YSwKICAgICAgICBPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzID0+ICRPdmVyd3JpdGVFeGlzdGluZ0VudGl0aWVzLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgaWYgKCAhJEltcG9ydFN1Y2Nlc3MgKSB7CiAgICAgICAgJEVycm9yLT4oJ0ltcG9ydCBmYWlsZWQuIFBsZWFzZSByZXZpZXcgdGhlIGxvZ3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uJyk7CiAgICB9CgogICAgJFNlbGYtPlByaW50KCI8Z3JlZW4+RG9uZS48L2dyZWVuPlxuIik7CiAgICByZXR1cm4gJFNlbGYtPkV4aXRDb2RlT2soKTsKfQoKMTsK</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.GenericAgentImportExport.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMCBabnVueSBHbWJILCBodHRwOi8vem51bnkuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSAgICAgICAgID0gQ29yZSAgICAgICAgICAgICB8fCB7fTsKQ29yZS5BZ2VudCAgICAgICA9IENvcmUuQWdlbnQgICAgICAgfHwge307CkNvcmUuQWdlbnQuQWRtaW4gPSBDb3JlLkFnZW50LkFkbWluIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0TlMgYXMgQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljQWdlbnRJbXBvcnRFeHBvcnQKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIEdlbmVyaWNBZ2VudCBJbXBvcnRFeHBvcnQgbW9kdWxlLgogKi8KQ29yZS5BZ2VudC5BZG1pbi5HZW5lcmljQWdlbnRJbXBvcnRFeHBvcnQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJC5lYWNoKFsnR2VuZXJpY0FnZW50cyddLCBmdW5jdGlvbiAoSW5kZXgsIEVsZW1lbnRzKSB7CgogICAgICAgICAgICAkKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdW25hbWU9IlNlbGVjdEFsbCcrRWxlbWVudHMrJyJdJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgICAgICAgQ29yZS5Gb3JtLlNlbGVjdEFsbENoZWNrYm94ZXMoJCh0aGlzKSwgJCgnW25hbWU9IicrRWxlbWVudHMrJyJdJykpOwoKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KENvcmUuQWdlbnQuQWRtaW4uR2VuZXJpY0FnZW50SW1wb3J0RXhwb3J0IHx8IHt9KSk7CgpDb3JlLkFnZW50LkFkbWluLkdlbmVyaWNBZ2VudEltcG9ydEV4cG9ydC5Jbml0KCk7Cg==</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.GroupImportExport.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMCBabnVueSBHbWJILCBodHRwOi8vem51bnkuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSAgICAgICAgID0gQ29yZSAgICAgICAgICAgICB8fCB7fTsKQ29yZS5BZ2VudCAgICAgICA9IENvcmUuQWdlbnQgICAgICAgfHwge307CkNvcmUuQWdlbnQuQWRtaW4gPSBDb3JlLkFnZW50LkFkbWluIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0TlMgYXMgQ29yZS5BZ2VudC5BZG1pbi5Hcm91cEltcG9ydEV4cG9ydAogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgR3JvdXAgSW1wb3J0RXhwb3J0IG1vZHVsZS4KICovCkNvcmUuQWdlbnQuQWRtaW4uR3JvdXBJbXBvcnRFeHBvcnQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJC5lYWNoKFsnR3JvdXAnXSwgZnVuY3Rpb24gKEluZGV4LCBFbGVtZW50cykgewoKICAgICAgICAgICAgJCgnaW5wdXRbdHlwZT0iY2hlY2tib3giXVtuYW1lPSJTZWxlY3RBbGwnK0VsZW1lbnRzKyciXScpLmJpbmQoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewoKICAgICAgICAgICAgICAgIENvcmUuRm9ybS5TZWxlY3RBbGxDaGVja2JveGVzKCQodGhpcyksICQoJ1tuYW1lPSInK0VsZW1lbnRzKyciXScpKTsKCiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwoKICAgIH07CgogICAgcmV0dXJuIFRhcmdldE5TOwoKfShDb3JlLkFnZW50LkFkbWluLkdyb3VwSW1wb3J0RXhwb3J0IHx8IHt9KSk7CgpDb3JlLkFnZW50LkFkbWluLkdyb3VwSW1wb3J0RXhwb3J0LkluaXQoKTsK</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.QueueImportExport.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMCBabnVueSBHbWJILCBodHRwOi8vem51bnkuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSAgICAgICAgID0gQ29yZSAgICAgICAgICAgICB8fCB7fTsKQ29yZS5BZ2VudCAgICAgICA9IENvcmUuQWdlbnQgICAgICAgfHwge307CkNvcmUuQWdlbnQuQWRtaW4gPSBDb3JlLkFnZW50LkFkbWluIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0TlMgYXMgQ29yZS5BZ2VudC5BZG1pbi5RdWV1ZUltcG9ydEV4cG9ydAogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgUXVldWUgSW1wb3J0RXhwb3J0IG1vZHVsZS4KICovCkNvcmUuQWdlbnQuQWRtaW4uUXVldWVJbXBvcnRFeHBvcnQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJC5lYWNoKFsnUXVldWVzJ10sIGZ1bmN0aW9uIChJbmRleCwgRWxlbWVudHMpIHsKCiAgICAgICAgICAgICQoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il1bbmFtZT0iU2VsZWN0QWxsJytFbGVtZW50cysnIl0nKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICAgICAgICBDb3JlLkZvcm0uU2VsZWN0QWxsQ2hlY2tib3hlcygkKHRoaXMpLCAkKCdbbmFtZT0iJytFbGVtZW50cysnIl0nKSk7CgogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKCiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oQ29yZS5BZ2VudC5BZG1pbi5RdWV1ZUltcG9ydEV4cG9ydCB8fCB7fSkpOwoKQ29yZS5BZ2VudC5BZG1pbi5RdWV1ZUltcG9ydEV4cG9ydC5Jbml0KCk7Cg==</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.QueueTemplatesImportExport.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMCBabnVueSBHbWJILCBodHRwOi8vem51bnkuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSAgICAgICAgID0gQ29yZSAgICAgICAgICAgICB8fCB7fTsKQ29yZS5BZ2VudCAgICAgICA9IENvcmUuQWdlbnQgICAgICAgfHwge307CkNvcmUuQWdlbnQuQWRtaW4gPSBDb3JlLkFnZW50LkFkbWluIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0TlMgYXMgQ29yZS5BZ2VudC5BZG1pbi5RdWV1ZVRlbXBsYXRlc0ltcG9ydEV4cG9ydAogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgUXVldWUtVGVtcGxhdGVzIEltcG9ydEV4cG9ydCBtb2R1bGUuCiAqLwpDb3JlLkFnZW50LkFkbWluLlF1ZXVlVGVtcGxhdGVzSW1wb3J0RXhwb3J0ID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgICQuZWFjaChbJ1F1ZXVlVGVtcGxhdGVzJ10sIGZ1bmN0aW9uIChJbmRleCwgRWxlbWVudHMpIHsKCiAgICAgICAgICAgICQoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il1bbmFtZT0iU2VsZWN0QWxsJytFbGVtZW50cysnIl0nKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICAgICAgICBDb3JlLkZvcm0uU2VsZWN0QWxsQ2hlY2tib3hlcygkKHRoaXMpLCAkKCdbbmFtZT0iJytFbGVtZW50cysnIl0nKSk7CgogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKCiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oQ29yZS5BZ2VudC5BZG1pbi5RdWV1ZVRlbXBsYXRlc0ltcG9ydEV4cG9ydCB8fCB7fSkpOwoKQ29yZS5BZ2VudC5BZG1pbi5RdWV1ZVRlbXBsYXRlc0ltcG9ydEV4cG9ydC5Jbml0KCk7Cg==</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.RoleImportExport.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMCBabnVueSBHbWJILCBodHRwOi8vem51bnkuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSAgICAgICAgID0gQ29yZSAgICAgICAgICAgICB8fCB7fTsKQ29yZS5BZ2VudCAgICAgICA9IENvcmUuQWdlbnQgICAgICAgfHwge307CkNvcmUuQWdlbnQuQWRtaW4gPSBDb3JlLkFnZW50LkFkbWluIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0TlMgYXMgQ29yZS5BZ2VudC5BZG1pbi5Sb2xlSW1wb3J0RXhwb3J0CiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBSb2xlIEltcG9ydEV4cG9ydCBtb2R1bGUuCiAqLwpDb3JlLkFnZW50LkFkbWluLlJvbGVJbXBvcnRFeHBvcnQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJC5lYWNoKFsnUm9sZSddLCBmdW5jdGlvbiAoSW5kZXgsIEVsZW1lbnRzKSB7CgogICAgICAgICAgICAkKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdW25hbWU9IlNlbGVjdEFsbCcrRWxlbWVudHMrJyJdJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgICAgICAgQ29yZS5Gb3JtLlNlbGVjdEFsbENoZWNrYm94ZXMoJCh0aGlzKSwgJCgnW25hbWU9IicrRWxlbWVudHMrJyJdJykpOwoKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KENvcmUuQWdlbnQuQWRtaW4uUm9sZUltcG9ydEV4cG9ydCB8fCB7fSkpOwoKQ29yZS5BZ2VudC5BZG1pbi5Sb2xlSW1wb3J0RXhwb3J0LkluaXQoKTsK</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.RoleGroupImportExport.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMCBabnVueSBHbWJILCBodHRwOi8vem51bnkuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSAgICAgICAgID0gQ29yZSAgICAgICAgICAgICB8fCB7fTsKQ29yZS5BZ2VudCAgICAgICA9IENvcmUuQWdlbnQgICAgICAgfHwge307CkNvcmUuQWdlbnQuQWRtaW4gPSBDb3JlLkFnZW50LkFkbWluIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0TlMgYXMgQ29yZS5BZ2VudC5BZG1pbi5Sb2xlR3JvdXBJbXBvcnRFeHBvcnQKICogQGRlc2NyaXB0aW9uCiAqICAgICAgVGhpcyBuYW1lc3BhY2UgY29udGFpbnMgdGhlIHNwZWNpYWwgbW9kdWxlIGZ1bmN0aW9ucyBmb3IgdGhlIFJvbGUtR3JvdXAgSW1wb3J0RXhwb3J0IG1vZHVsZS4KICovCkNvcmUuQWdlbnQuQWRtaW4uUm9sZUdyb3VwSW1wb3J0RXhwb3J0ID0gKGZ1bmN0aW9uIChUYXJnZXROUykgewoKICAgIFRhcmdldE5TLkluaXQgPSBmdW5jdGlvbiAoKSB7CgogICAgICAgICQuZWFjaChbJ1JvbGVHcm91cCddLCBmdW5jdGlvbiAoSW5kZXgsIEVsZW1lbnRzKSB7CgogICAgICAgICAgICAkKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdW25hbWU9IlNlbGVjdEFsbCcrRWxlbWVudHMrJyJdJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgICAgICAgQ29yZS5Gb3JtLlNlbGVjdEFsbENoZWNrYm94ZXMoJCh0aGlzKSwgJCgnW25hbWU9IicrRWxlbWVudHMrJyJdJykpOwoKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KENvcmUuQWdlbnQuQWRtaW4uUm9sZUdyb3VwSW1wb3J0RXhwb3J0IHx8IHt9KSk7CgpDb3JlLkFnZW50LkFkbWluLlJvbGVHcm91cEltcG9ydEV4cG9ydC5Jbml0KCk7Cg==</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.TemplateImportExport.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMCBabnVueSBHbWJILCBodHRwOi8vem51bnkuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSAgICAgICAgID0gQ29yZSAgICAgICAgICAgICB8fCB7fTsKQ29yZS5BZ2VudCAgICAgICA9IENvcmUuQWdlbnQgICAgICAgfHwge307CkNvcmUuQWdlbnQuQWRtaW4gPSBDb3JlLkFnZW50LkFkbWluIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0TlMgYXMgQ29yZS5BZ2VudC5BZG1pbi5UZW1wbGF0ZUltcG9ydEV4cG9ydAogKiBAZGVzY3JpcHRpb24KICogICAgICBUaGlzIG5hbWVzcGFjZSBjb250YWlucyB0aGUgc3BlY2lhbCBtb2R1bGUgZnVuY3Rpb25zIGZvciB0aGUgVGVtcGxhdGUgSW1wb3J0RXhwb3J0IG1vZHVsZS4KICovCkNvcmUuQWdlbnQuQWRtaW4uVGVtcGxhdGVJbXBvcnRFeHBvcnQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJC5lYWNoKFsnVGVtcGxhdGVzJ10sIGZ1bmN0aW9uIChJbmRleCwgRWxlbWVudHMpIHsKCiAgICAgICAgICAgICQoJ2lucHV0W3R5cGU9ImNoZWNrYm94Il1bbmFtZT0iU2VsZWN0QWxsJytFbGVtZW50cysnIl0nKS5iaW5kKCdjbGljaycsIGZ1bmN0aW9uICgpIHsKCiAgICAgICAgICAgICAgICBDb3JlLkZvcm0uU2VsZWN0QWxsQ2hlY2tib3hlcygkKHRoaXMpLCAkKCdbbmFtZT0iJytFbGVtZW50cysnIl0nKSk7CgogICAgICAgICAgICB9KTsKICAgICAgICB9KTsKCiAgICB9OwoKICAgIHJldHVybiBUYXJnZXROUzsKCn0oQ29yZS5BZ2VudC5BZG1pbi5UZW1wbGF0ZUltcG9ydEV4cG9ydCB8fCB7fSkpOwoKQ29yZS5BZ2VudC5BZG1pbi5UZW1wbGF0ZUltcG9ydEV4cG9ydC5Jbml0KCk7Cg==</File>
        <File Location="var/httpd/htdocs/js/Core.Agent.Admin.TypeImportExport.js" Permission="660" Encode="Base64">Ly8gLS0KLy8gT1RPQk8gaXMgYSB3ZWItYmFzZWQgdGlja2V0aW5nIHN5c3RlbSBmb3Igc2VydmljZSBvcmdhbmlzYXRpb25zLgovLyAtLQovLyBDb3B5cmlnaHQgKEMpIDIwMTItMjAyMCBabnVueSBHbWJILCBodHRwOi8vem51bnkuY29tLwovLyBDb3B5cmlnaHQgKEMpIDIwMTktMjAyNiBSb3RoZXIgT1NTIEdtYkgsIGh0dHBzOi8vb3RvYm8uaW8vCi8vIC0tCi8vIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCi8vIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi8vIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi8vIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAovLyBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUwovLyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLy8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLy8gYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCi8vIC0tCgoidXNlIHN0cmljdCI7Cgp2YXIgQ29yZSAgICAgICAgID0gQ29yZSAgICAgICAgICAgICB8fCB7fTsKQ29yZS5BZ2VudCAgICAgICA9IENvcmUuQWdlbnQgICAgICAgfHwge307CkNvcmUuQWdlbnQuQWRtaW4gPSBDb3JlLkFnZW50LkFkbWluIHx8IHt9OwoKLyoqCiAqIEBuYW1lc3BhY2UKICogQGV4cG9ydHMgVGFyZ2V0TlMgYXMgQ29yZS5BZ2VudC5BZG1pbi5UeXBlSW1wb3J0RXhwb3J0CiAqIEBkZXNjcmlwdGlvbgogKiAgICAgIFRoaXMgbmFtZXNwYWNlIGNvbnRhaW5zIHRoZSBzcGVjaWFsIG1vZHVsZSBmdW5jdGlvbnMgZm9yIHRoZSBUeXBlIEltcG9ydEV4cG9ydCBtb2R1bGUuCiAqLwpDb3JlLkFnZW50LkFkbWluLlR5cGVJbXBvcnRFeHBvcnQgPSAoZnVuY3Rpb24gKFRhcmdldE5TKSB7CgogICAgVGFyZ2V0TlMuSW5pdCA9IGZ1bmN0aW9uICgpIHsKCiAgICAgICAgJC5lYWNoKFsnVHlwZSddLCBmdW5jdGlvbiAoSW5kZXgsIEVsZW1lbnRzKSB7CgogICAgICAgICAgICAkKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdW25hbWU9IlNlbGVjdEFsbCcrRWxlbWVudHMrJyJdJykuYmluZCgnY2xpY2snLCBmdW5jdGlvbiAoKSB7CgogICAgICAgICAgICAgICAgQ29yZS5Gb3JtLlNlbGVjdEFsbENoZWNrYm94ZXMoJCh0aGlzKSwgJCgnW25hbWU9IicrRWxlbWVudHMrJyJdJykpOwoKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CgogICAgfTsKCiAgICByZXR1cm4gVGFyZ2V0TlM7Cgp9KENvcmUuQWdlbnQuQWRtaW4uVHlwZUltcG9ydEV4cG9ydCB8fCB7fSkpOwoKQ29yZS5BZ2VudC5BZG1pbi5UeXBlSW1wb3J0RXhwb3J0LkluaXQoKTsK</File>
        <File Location="doc/en/ImportExportStandardObjects.pdf" Permission="644" Encode="Base64">JVBERi0xLjUKJeTw7fgKNCAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCA4MjgvSGVpZ2h0IDI1My9Db2xvclNwYWNlL0RldmljZUdyYXkvQml0c1BlckNvbXBvbmVudAo4L0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAxL0NvbHVtbnMgODI4L1ByZWRpY3RvciAyPj4vRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aAoyNDQzPj4Kc3RyZWFtCnja7d2LddpYAgZgUkGYCqKtIGwFZisIqWCYCsJUsGwFw1QwuIJlKli5gpUrGKhgTQVZJ465AoORhB7X6PvOmXMSGzsaSf/VfWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgF5LktEwSR7/kC3WNf3K8TSp/LOr5cN1nufZ5PxnsodsnTV5EE9XJh2s19mDW/+yUzke34S/bcf1XLflz5f89P34Gq/qMP1Y8JPb1WrV1FHkr8wmS9NMBKpdzcnk0+FlS+q4bef/vOzn70dXeLbTmxIf3i4WjZQfk38ffGGTLlNJKP/wPvZw+HVRw69+eH/hL/jH9V3P0X/LfX47XzRwFNmRZ99muVyLQwnT+YejX//XvIb201+X/oY6jiK2ouo/ZX/iblL/o+fr8S/fzqXn0uTEkp1fF7JTX+vzfHakp/BlnJ+uev+yrOEfWH+48Bf8PZOdRsKz+nTyW7/P9bud7SGYfzn9zc2ojhP4okVatrYyHshOI+F57Si205V0vH72lq88FDaTeq7V7LeLojN5kJ06y7J8bf2PV77559Sj5xWnuo/vBoOHbL2q69wlk+GJ7+z+/bv0VL3iKsccQnZuT7csRsPkoGS7ndZ8HMl08PhUTz40WnZeZX1t+bK+u02ztMUh5q919kq8yey83gGfjKd7rdGmuutHyXj8saH27lVG58XQdpND2LJTJTvfPrr42E7b78jg+OD3mZwcK2rSgzHLu2X7pYzsFHiS5GfONDtOnEynTdcSrzE6d/O0g6OQnSJhyIWn8Xv5cLBPeM5FZzNNOzkM2Sn0IMnNfnvXeFV+NnsvPMXbOp3dubJTKDtJtrudPzffIk2WN8Jz2t4swPtpZ32RslOsARNqba2cqNk8/+jR23aq9Tm4nXU3BiY7xbIT5l23M8titMq3eq5wInv19uAfMdTXZKfEfbmbFLhJ2q/U17OO6yrkas9dP5Blp2B2Qm/Bu3aOcLjKNXqucUphNfk1ix3XZWWnYHbC7Kl3bR1jfpb1FS4DqdYQ/C2eZmBfsxOuQbzZyVfbtqO14DyeknWosXU+5aKv2QlRiDc7e+H5cyI5e31s3VdjZSfi7OwNoOtr21sCHUH3iewUvCcXXzrITr5DVnfB3mMngqJEdsr2s22HbR5nrr/Agyf32IlhroXslB3fabf8zzWOPXjCYyeKAS/ZKZadUOS13L2Tq7X1/cGTK0eiuFtlp9gdGW7hzy2vTgwzH/s+JzRcg00ykJ03k50wnP1Ty7WF3K4kP/V7Zk4oReIYKZadQtkJN3D7rY5wy/R7PnWoNkcyvU92Sq59a//+DVWVfo+PhqkgkWziIDtFshM+3UWRF/bi73WlLXTXR7JP7dee1gfCXqkFLkSur6uLIiYMy/a60vY1rp6C3LDF39b9rDyfH+ocLsJodic17bDurs89baHJGcu+W8/lb+/2AXuuAZztstnb9bibDp5dAXeVbxEr3dyJZpzrqULQv62PfywtO1NmJJNpfmOJjob2w3h6jxs84SS8i+aYksd6QJr28GJMHgvxg1esTcf7VenR/hZ6tW/lXlBob/V4asGuq9PcpHgfRSc18PKqko2zPi8f/Rpbc4cX1df4ouO+2TsHlp/HfHWOR6fDVc/qK+U3mKCTq3PcZr7s6tB2w4KyIztvMTuPd+60o0fPbl5Duwvv4rw679yq8Xl4f+4TXb0DtJPNEuIS+hpl5+31FXzXzayYMC7Y2xtH8RG3vV3CYwqPCkuk2RmPs2zdw6sxHI8O3+w6PXin8bF36HbRVJWdKOtsT9O1ejhu8L0g287OPEaGo/F4f8S0i+mg6mwxFh/Pc3R7F57nOkCB7QeG01n++dPBCjSV/Vx2Ilm9kxt169kahOH/fvxhkxQq+PPvkmq/1qaPOsbxnb6ufQuXolihMVqG+dTtD1AaG41xTo411wWLsfy+6q2XfObkxDinT3aKBiG3r3rryzfNBY2x/JCdwg+R0NnVdqsjLLru8Rzi+Na+yU7xCthu6XPbe4Na+7ZXdH1eyc5by064ei2fLGuu9x6+sVRcZad4dsLyzZar3LtJqn3e6yOchU0iO28tO62/J/6HsJdcr5cbx7u3oeyUuXqtNldDlS2Wmn4nQqsvkh4T2SmRnY6mxoTNsHs9/X43FSSWcXzZqZSdVmcw7bLT83dd7x77kcwfk51K2Wm1r3j3z/b7HSK7eVSxFCHtZOfbuph0cVH/6nQ6yi78FW81O8/vCux1L9v3e2Dx7UREs4dtK9l5auxetL/Z0wucNuO6ntaVpuV2tRRgtPrWwXc/fuh5dgbD6fAhjWUJQivZee4gueDiP28lUNvASqXshA0NWm60D0fjQbYaEJU2srN76V/lOZShe7KuZmKl7OjwouXshP02KzZ2c1OY62poVMrO7n/EduK0nZ1q4UmysGizy+yE8f2+v62dtrIThuMrhSe/6qy2jTaqZCeM7/e8s5jWsrO3WW3p2y6/2rm+o6yQnTAVtG+bO9BZdnJ9u+XDk2vr1NnOqJCd0FPQ+4EWWsvOXq2tXGPhaTis7hpblezkNg31Bhhay06+yfJYbE+KVnnyr5iu9+VRpbOz7Phl1/Q0O3tdZY8337xYwb33iul6W+gls9NMowvZKdtseXz0zM7fscl8f2v1Wju3SmVn/0g8dmg1O4fhGdzNX79nh7PZ++aiUyI7yWRy0+CBIDulwzO4W5yeoTWaHb7Oo+Y7NmTn9rXGV5KMDl9o1fNFNHSQnf02w1PtZ7lKj5b00xefnNUbnQIvSDzBbGbaz85guLp58bVtmmb5l+CMRqPJy5fe1P969qrZER26yM7BIGkuGtngIRsMR0ffFfWtdjep/YatmB3RoaPsHPY6F9PEoVXLTjRLFokpOy2NlQ/nX0r+xP20iYWCVbJTdFiKfthtttjafnHjxccI7tewQ2thtzMPHY60QNqc3jidF624bReLpu7X7GOpj29X87W7hb061NNMs82k1R0UiqWnweQcGW56xSZd2SyAl2aTWjdvKlpzm/58rp2zWDV6UMP56OZceB8LlPU6yzxxiOuJN5l8Oh2c5coNC6fjMx4fKfvvszQVHDjf8BiOH/97+nM6yB5SpwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDL/B9n0iy4KZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjw8L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1NNYXNrIDQgMCBSL1R5cGUvWE9iamVjdC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDgyOC9IZWlnaHQgMjUzL0JpdHNQZXJDb21wb25lbnQKOC9EZWNvZGVQYXJtczw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvcnMgMy9Db2x1bW5zIDgyOC9QcmVkaWN0b3IgMTU+Pi9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoCjE4NDg+PgpzdHJlYW0KeNrt3Gtu2zoQgNG48JK6/xVkT6qBAEZao7FEkeLM8Bz0133gOpRIfqJyfdu27QMAgNh+GQIAANEGAIBoAwAQbQAAiDYAAEQbAIBoAwBAtAEAINoAAEQbAACiDQBAtAEAINoAABBtAACiDQAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQCINgAARBsAAKINAEC0AQAg2gAAEG0AAKINAADRBgAg2gAAEG0AAIg2AADRBgCAaAMAQLQBAIg2AABEGwAAog0AQLQBACDaAABEGwAAog0AANEGACDaAAAQbQAAiDYAANEGAIBoAwAQbQAAiDYAAEQbAIBoAwBAtAEAINoAAEQbAACiDQAA0QYAINoAABBtAACiDQAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQCINgAARBsAAKINAEC0AQAg2gAAEG0AAKINAADRBgCAaAMAEG0AAIg2AADRBgCAaAMAQLQBABRzNwSF3W6/f/4Htu1zzR88rKpXBNPHzW8Zp8P9sG2bUVh5wa034fMWmyUYc8cUsJ7zAydtqy+1j3+30jzPXmzAcxYvniANq5mhK8/vtKWf1TLFSg0lbzxz4eTWYADrcdJmhTUmQOhJ7dzIAPLFSVvWRyjjAHgew64h2jDxUvI0CboNO4how2RDeoJuM4yINubNsWKJoHjAYmg1cwog2lBsum34JxedwDWrmW5LmQS+XHeFXJMC4y6EsWWRBWfQrd6w0Jl0HTcIg5mLr/yoOSHNQyCF52Ll4Kd5kff96qKNlMVm7gGpK2TP6qcz+oav8UzE77QVKTa/DgVU6g+aN4KGMXTMKdq4qNjkGqDbODmGuk20MXbOyDXAakmvDcKoijY8jAJY33Kkm24TbfSfKlY0AEZsGbpNtNFtknglCugMdJtoI0GxGS4AdLBow3wDoPI+snMrcdgm2mifGIoNgIDbE6LNlFBsAAxhTxFtmF0AlNpZHLaJNkwGAJwIINpMKgDotMU4XxBt7JoGig0AEG0A5H6y5TyHbaKNDhPAMRsAQboN0YYpBEACDttEGwC0JIIn276Mp2jD8woAINo88QB4suWqrcd1EW0AcKwMPNmyrLshyPWsA1ByaXKQA285aQv3EImdDFa7mfevjSadBU20ARYyuHoKPFrt64/JmIJzh+m8HhUH7Lo0/6xWLhZVl6DmW92ODqINJDWEvtWvyTVzELweBcBTE8ZZtAGAkgDRlotf+ACsbBZPEG0AVE5D6QaiLQrn/4C16226GXBEGwAkoNsQbQDQ6OIXBbqNZfmeNmjZKrzOZoX7fP+t/voF1KM/pDmIaAN2PdnbM3Crv3Zbl/+iboP/8XoUGjcV72hwq5/3CK/nH5cARFvu5RJXDRa5mY/WmwmIaAOAmXnk1A1E2/yHSIMA0HHBdNiGaAMAD7og2gBAt8Xj5FK0AcCobtMZiDY84gAAog0ASMXbatHmjgfAyjmftz2iDXMGABBtAMB4zjtFGwCc5R0Fog0PKwBAFHdDIOmgr9djj6Q3dpkfBOxNNThpc/fD2ND5yPn2qswPYlHFMIo2Os+Nx18xYShZbBlzR5xhb7I3BeT1qGca4ECxPf6uyYu9iSmctAEhYsiHBBBtgCRSbG4bEG0AJTZgZQCINoDoebT/I/mNH3cLiDYgvf1BE2onVmyL3HUg2gASd5uDnMhcHfjOV34Ak7fkWSclR4PAiY5ig7mctAGdHY2bKXuzYgueazsvkOvCUpy0AUO67VAVXXnk1tCIyiBsTINoA7i62y5It7YgUGxhW82lQbQBTOu2QenWfH4jC86P4bi7y0VBtAFM7rbviXBmbz7ZGbIAEG2AbmsMr7ch1etASLEFv6kMAqINYNQW2yWnrnlJpwkUGwTkKz8Ae+1fH1ITuItAtAF23E8fDz0NbbweBSaEkf8VERcIjnLSBjaSOUMXZ/Rcx8iD4IANnpy0AZNDYeKpmxoQkZDIbds2owDvp8pLWNhURo+wJih/FVwXEG2AaNAEQDVejwKBPKOqb71pNUC0AYytt7aGU2mAaAOY33AAC/KVHwAAog0AANEGACDaAAAQbQAAiDYAANEGAIBoAwBAtAEAiDYAAEQbAIBoAwBAtAEAINoAAEQbAACiDQAA0QYAINoAABBtAACINgAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQAg2gAARBsAAKINAEC0AQAg2gAAEG0AAKINAADRBgCAaAMAEG0AAIg2AABEGwCAaAMAQLQBAIg2AABEGwAAog0AQLQBACDaAAAQbQAAog0AANEGACDaAAAQbQAAiDYAANEGAIBoAwBAtAEAiDYAAEQbAACiDQBAtAEAINoAAEQbAACiDQAA0QYAINoAABBtAACINgAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQAg2gAARBsAAKINAADRBgAg2gAAEG0AAKINAIBI/gCkqoRBCmVuZHN0cmVhbQplbmRvYmoKOCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDMzMT4+CnN0cmVhbQp42nVSy04DMQy88xX+gU1tJ05iKcoB8RDcKvaGOGy7Wy5UqCd+H2dT1EqAdq1k4tgzYwVOQID2ESS2H2F/NPRo8f7vegKnGj18GRrUhShwhBDzD/iAF9j+UUWanVF4XRkjNkAMHNWxFafkosQmYPN0RLj7tCa3I2weCDi4lBPBeADC6EImGIi8E2YY59eCKIIUA5JGpNZWFWmaET0hzf73+Y76erBctBylvletzKXjbPfxgNR602KBraYOjHZhovo2Pq/qKDkmCU0dCzrxpo6TyypncZPWUHoP2VXCdV8HXzrnRB1zbpllvwazMS+78zqvZENAR6zmPbDDoJf2Uro9s0R+6VRmxWRoWY00wxZnEqtt46oDldUiCl7ckFMRbm4yOZZmxlx5m3mny1yHXK7G0WUb8yGY3On6xAz0TJ/W/fjrWWxvvgGs5o5PCmVuZHN0cmVhbQplbmRvYmoKMTIgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAzND4+CnN0cmVhbQp42lMoVDBUMABCQwVzIyAyUEjOBfLcgTidIB3IBQCH6gxHCmVuZHN0cmVhbQplbmRvYmoKMzAgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA4Nzk+PgpzdHJlYW0KeNrtWcly2zgQvc9X4AeI6QVbV6l4SFXiqtw80S01B0skc0kOyWV+fxokxQWSRp5Yvtgs2yIIWehu8L1+jZb5adCA/qCJpL9gjj/07kH/vp1dP+zNn5/QoLPsApl9Z1jIknhTxWgjiNk3X3cAhACJAGIAOLQAjPP4gPXf+8/m496AJUj6ytHpq0vB/PVwYfLXZFesBArZLJgKo1imNFjE9lhXiByy8VRXSaewBXxCvQKgCKBjvQada4axxoohTM6sQ5xNueB6Z84N3iUMdcKS86dVm7qS4HZ5mwAbV8tuCOKpqf0YU3B1RTG/IVITjrOSAA9+jFLnafrv8dpHrps0rPiMsMmmM/fa3wyaFysresTpfhKypSluIOrGx+izj+BSnYYYUWOBjudYju3w9PJT9eliKEuDEq2LvDKoxurKiYwjD7CN3tfoFmh6/KMUMG3Lz92DB+Qt+lAyIXOVkpIenkLtRgbkXKaIP91yrAmmVHebCGBDSoXFq1u10WMjxVVSrDH7KrTgaBGxpEWrtGDOiqDFBHI7K16vhBHIuV7ne4Jkhch63/SaSaOYZu3gUFe8GzTRZQ4ddeUTr2Zhvbkl6NTfUPq7Eeg9kGCN0JeSoCwMvVggmVevJGpBBEff5/pc4p40oK/prmC1rOmIqVy7g3tWdRGsJDe5vazrQi7Pncz8ykTMRauEm7se815Lsf4zHutGwo3K/0llz1iidkGIO+pZIissJTGaSc+eJNd1PSf8ocahrhtl6xprxnfHj+Yy0B+GtLA+5T6rPJylbOnqxqK3jf/gS2x2+BrwF2eTnOlCX87lZoZCvC/f8NjUeDrvh+HEk3GN8QT2/ymAK2fI2YCFM5uIvHv4r7D5KvBnCDa5s+zfZfg7HlqmU65uQ4/quBvz/KIFVjQvz/M/h7EfuOwBTjy6zRCfVBG5cHgjwRs6umieL+DY0X2PLkzJxhBPYFcPo9CY4qGbCxg9e98+soCNLp6teXxBB/4iP53aoanP1y2PLQwFP5WEUzfuSgxLG4mtQGljo9Q2+h0Co+UsWQVe13S4o2x5VcgYS1r0vWnJp/mmmWWmb7bhzS/XLlJjaWejxjZ6CTXWmL1MjfH601iW5M0/WbZC8DayMz90rTTffjdfzOMlZfI2qIRWasumdPpe2HFp6/GPfwFocu9GCmVuZHN0cmVhbQplbmRvYmoKMzMgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMTA+PgpzdHJlYW0KeNpTKFQwVDAAQkMFcyMgMlBIzgXy3IE4HSddqKBnbGlhqlAO5OmamZnqmRubKOQqmJhZILg5CsEKgQpOIQr6boYKlnqWZkZmCiFpYA3m5noWFhYKISnRNgaGJsYgbBcb4qXgGgK3IZALAFfEH9UKZW5kc3RyZWFtCmVuZG9iagozNiAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDQyMT4+CnN0cmVhbQp42n1TTW8cIQy991f4Dwz1BxiQRnOI1FbqLcrcqh5md3Z7aQ455e/XDLBL0rQ7i8AGv/dsDLwAAdpHENn+COdns77Z+PXX/AIuZxV4NWvKzmuAZ/CauvEbnuARHlb4/JUgu6yssF7BszgvESaOLuUA6/5jRmRCDGg/j7gp4umCKObb8vJz/X5AkHfilQuGLTN7gxCXiRpEYsSoJewI+bK+VajsWGOX2Kw3GgcCicGRKkyE6rRrTFXTiareLZvmcNdb1lVE0yxD2tMNMkQXk2+YFkdiwwvSRsvEijNSNsSreYyEQlpkrqbEhcs2XYaDlPPCZOvIS7DpvFc0iuXgiFq86muQ3a0F2u5edqkRqJa45ik00aZdPgrBuXpE+/GNqqdQVIXdu+0jfF131ZWuo+HVEg5VeEn+4MK5Z0H3/AxkVF6yLcRHjjdJvpEajJ8raslAhvLeavlBAf5bsFFIuW5rMSKXQ+voA/woh95LE05L7vcXeTzkjzFWifna+3h4cZJTaP2swUXxt4Zu5r9enVpzR3syGu3ZpdREXs7vOR4//QHemd+KCmVuZHN0cmVhbQplbmRvYmoKMzkgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyNzY+PgpzdHJlYW0KeNptUctOxDAMvPMV/oEEOw8nlqockACJ24reEIfutuXCHvbE7+MmaYW0KLVsJzNuZgI3IEBdBMnph3C5aveq8XXkpxEeXwjECjuGcdVNl20QD+P8MSDGiMQBSRhJR5AI0jQjekKa/f3+mVpe9Yz1jFKrRYqjofVZ8bgibbNp0cCNUwyJAiZC56ZiXEb9/SQlDA0Vz4Ww1sX4oU1VcO0rmJZLDed09nLueS6f4xs8j3AD6yVH+NkkBpswwRUC5735hnc43fnzl2WYo00+dN7RNuY/ThpOyeacm5f7XXwUy2owdoudivBLt4mrFbFrVteMSzLsuorhGDZKLiZ3TPUA2wuEY0Srt5dh3h3YNZ0efgG5XHgHCmVuZHN0cmVhbQplbmRvYmoKNDIgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA0ODE+PgpzdHJlYW0KeNq1lL9uGzEMxvc+BV/AKilS/4BAQ4E2QLe0txUd7LtzlmZIl75+P+nukthOgAyObVmmTiY//kSRHkmI8RZKHh+m8QHWLcb9xfxIrpSo9A/WrjiLgR7IYt6MP/ST7ujLQJ+/CRVXoo80HMm8OtNEO59cLoGG6dcNsxfmwHgZ8z4yH2Zmxdq+1N/D9+5CzKlF33yIOC4KF+qKyOriMNedMH5MczVM2fe/fh1OlUbvfEyb1NU60foikDK7nIXgOLq4BZIqLcBs1YduP+tNVpFYuWnK1wwy84jUQnheS7bOa6bwuEp9guwEuBjiFN8ahX7cvrL49/4V0UhS0vK8C5Z5Yu+PmMeLMFcIh0OIIZ3FZMsVFKSUKh7mUVmiscjMMmKgtvCMJeRzST2AvigYpONxDJtjHKuU5bg9dxvVw30d5H1Ld+xjSfmwzJNembDX4hJfEJ4+hHDEPjuLiWvSy7yRRSk1kpupqaPpsPfyLsAxuWLrZfRmV4alnFywdA5r/hBYwZUG6yRmu2WiGKa9Jn2rExQsUoUdF2ytHvcTamW7w4C3VKrGutNmT3VnjeyIXrPRbu6k034PadXgUpE3SaNXaclh7VURm9WemtVqvtVZ0czaroTGmvMG+0LV3af/o3NIqQplbmRzdHJlYW0KZW5kb2JqCjQ1IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjkxPj4Kc3RyZWFtCnjabZG/TsQwDMZ3nsIvkGDnj5NIVQYkQGI70Q0xtNeUhRtu4vVxk7Q6dKiNHMff59a/wBUIUB6CYORFOF8ke5X1dcSnER5fCJJObBjGVQ5N1C5ZGJePAdF7JHZIiZGkBaWENC2IlpAWe38+U4ur1FhqFNo+pWxoaHkUPa5IW28qsnDzZEVJBBOhMVNWJqJ8fkrZDU3l50xY91nZoXUVcc2rmMq5LmOkd5l7XPLn+AbPI1xB2xQ9/GwjOh0wwAUcxz35hnc43fG5dSlmr4N13XekzfkPScUh6BhjY0llrf9iMelopdwIG5nBlk6JKwnfRxZoyoSNSlm2cbJiLzgq5MXljuvWwW53HMC3PhFpFtiuX4Q51D3ynwvYie0MTg+/je2DlQplbmRzdHJlYW0KZW5kb2JqCjQ4IDAgb2JqCjw8L1R5cGUvWE9iamVjdC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDE5MDcvSGVpZ2h0IDc0Ni9Db2xvclNwYWNlL0RldmljZUdyYXkvQml0c1BlckNvbXBvbmVudAo4L0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAxL0NvbHVtbnMgMTkwNy9QcmVkaWN0b3IgMj4+L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGgKMjM0MD4+CnN0cmVhbQp42u3VQQkAAAwDsfk33bkoFBIJ97kcAFAQCQDAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIlAADLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUAy5UAACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXADY8Iz35zUKZW5kc3RyZWFtCmVuZG9iago0OSAwIG9iago8PC9Db2xvclNwYWNlL0RldmljZVJHQi9TTWFzayA0OCAwIFIvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggMTkwNy9IZWln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YmoKNTUgMCBvYmoKPDwvVHlwZS9YT2JqZWN0L1N1YnR5cGUvSW1hZ2UvV2lkdGggMTkwNy9IZWlnaHQgNjE1L0NvbG9yU3BhY2UvRGV2aWNlR3JheS9CaXRzUGVyQ29tcG9uZW50CjgvRGVjb2RlUGFybXM8PC9CaXRzUGVyQ29tcG9uZW50IDgvQ29sb3JzIDEvQ29sdW1ucyAxOTA3L1ByZWRpY3RvciAyPj4vRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aAoxOTM0Pj4Kc3RyZWFtCnja7dUxAQAADMKw+TfNVMCVSOjTHAAwEAkAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAcByJQAAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEA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cgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwCwXACwXACwXADAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcAMByAcByAcByAQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAMByAcByAQDLBQDLBQDLBQAsFwAsFwAsFwCwXACwXADAcgHAcgHAcgEAywUAywUALBcALBcALBcAsFwAsFwAwHIBwHIBwHIBAMsFAMsFACwXACwXACwXALBcALBcALBcCQDAcgHAcgEAywUAywUAywUALBcALBcAsFwAsFwAsFwAwHIBwHIBAMsFAMsFAMsFACwXACwXALBcALBcALBcAKD1gdYW+AplbmRzdHJlYW0KZW5kb2JqCjU4IDAgb2JqCjw8L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1NNYXNrIDU3IDAgUi9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCAxOTA3L0hlaWdodAoyODAvQml0c1BlckNvbXBvbmVudCA4L0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAzL0NvbHVtbnMgMTkwNy9QcmVkaWN0b3IKMTU+Pi9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM4Mzc1Pj4Kc3RyZWFtCnja7N0HfE3nH8fx59yVmx1JSGKGWLG31t5b7VFbbW3NUkrVn1K0tWvXrlWjRY3au4rWql1CjCRkr5u7zv/eJAiJSIgSPu9XXtzx3HPO/Z37nOR+73OfI8XGxgkAAAAAAAAAANJMQQkAAAAAAAAAAOlCsgwAAAAAAAAASB+SZQAAAAAAAABA+pAsAwAAAAAAAADSh2QZAAAAAAAAAJA+JMsAAAAAAAAAgPQhWQYAAAAAAAAApA/JMgAAAAAAAAAgfUiWAQAAAAAAAADpQ7IMAAAAAAAAAEgf1Zu/iUqlQq1+vJ1Go8nyw54DAAAAAAAAgNclE4xZNpnMBoPx0VWVSmn5Yc8BAAAAAAAAwH/p0iX/R5czx2wYhMsAAAAAAAAA8ObINPMsEy4DAAAAAAAAwBsiM53Bj3AZAAAAAAAAAN4Eisy1uYTLAAAAAAAAAPDaKTLdFhMuAwAAAAAAAMDrpciMG024DAAAAAAAAACvkSKTbjfhMgAAAAAAAAC8Lv9ZsmwOv3b+wF/3dbIQuqBTe0/u3nvZX/dSSyRcBgAAAAAAAIDXQvVfrESOu7HrlxmrrwabNXvqtRhQPWjzir3XRfa2vgVzeUkvs2CTySyEUa1OfBYJybLRaHqZRf417/vpxwyKhMhdqXHJka9ex0YNC9qmtKH6YzNmna46qF+ZtCTacvi1v37ZdOr0jdAoyc7Dp2Cd5tWq57OVXkG9zfeO/O+LfX5Cil+4pHbI4lOhercORTxT2kyT374xyzQff1k5e/JPGWTdmY277ldoXCdn3MGp8y7VHtC71CvL7o1+S4f+tDdcKB5VRJmj3YSuDT0ypkKm26eWHHNq37qAg0SvBwAAAAAAAF7Wq0+WjaHHV/y8aH+YR63GHbJeW7P+5/FXssmyEBkU8L2CcFmRr03fMU3crEGrMfry5nVTFx4uMKlugZfLVKPO7vxm4Z3CrRuO7O+VRYq6fmz/4u/XRI/s2jjno0DXbDQqVBm0QyS74oNmNCttXZqsCzi/ZMpvK/PkHlotvbGqKeTGzTtFLIuzKdGmlU+W55TgZfeqwv2Dsb1ae2f4OHprYaXoB5dvCAM9HgAAAAAAAMgIrzZZliNv/vLDhl+vqEu3a1z8zuGf/vJp3a3cntV//msWIuMGv76CcPlReewLVCzgsePeA4MoICLP/bpt9cHbocLBp3Kt7i0LuD1+CnLExSNLV/916b7RMV/Jdt1rlnF/Mh413du+5lKuTr27VrSLz15dCtVu0tu088/b4eac9sdnLbhYtJJ+zyFzs4/7FQnYsWLnrvOhBgeP8s0btn/fXXl554iNriNGlHeThOnqri/WuwwfUebukjnb1YVNf5/x02m8Slbq1qWct+2znoOk9fStUGDH+qAos3CQH1zZsHTf0X8jZDfvOh0bNfW1f7yNQf/89OP+P25Gyxqn/LUa9G6WO3Dz+l+uROgDljv2buuxbcM/NQb0LiUHnti7dMMFv0iFe+GyHbtWKuwkQnavmnord74bfx5/IGu9inb6uIFlW6MuH/1xxZ+Xgo02HgVb9mpcLceL7W85+ODaCcfyjxhWLps5cPPE9QFNPuqs2zr6hHOR0AsnA8z2uXxbflS3kpdKmJLvHf2xR4WtW1O1/VxwqGrKAvWw3iVcGbYMAAAAAAAAvJxXOM9y3O2/545f9cst1wY9a+U8s3PZ4aCQK38s+TW8Qqc6FbKpJDkmMDBWzqB1vao5l00x109ejyjok99GfnBg87zTbh3HDpo9rkGeC1vm7Q4xP2wlB/89f97V7B17zJrd96O8txYvOhX05BMzB13/JzzPe6XskkSaKp96jT98L4t1B5hjju8PKjewf7/yhhMr1u9TVxo5bcjkfgUCVm/49Yb5GVtmuHAipOLQAXO+b1cl+sjcX24/ezSurA+6fMrPoWhRN6UpaNvs7beKNftm9pCvWjscm7fjeOSjZsbzm3+/nPeDb+cOnzXmfdW+g8dCpPwftG5e0Om9Hl1aFkx8nZj8j/2wPLBIrz6zp3dt4Xhu9tLz4dZnar77x79Zun8y74e+HbNe3bQ/0GQK2LH8b/uWvWbPGTio5IN1W67FveAOkNwq161v/mPt8YjAA7sPudVoW9pWEnLo6SumRt1mzO7bu1jQTwv/vGt+xt55VNgaJXp8VNwtf9XhxMoAAAAAAABARnhFY5bNIWf2zJz3p79Tsa4f5bi8bvOxAGN81iob7l9asyKiTrsGDQ/v2TF7mbl7226V3TQZscqMG7lsvrFhQc9N8ZtrMpns83YZXSqriNl/6m7++q2KuCglkadxgzz79l4Pq1civr0cdvqCX+H3BxSyt6yyUOPyBYacuxRVPpvj4yXK0bHRNrZ2CZtmurVq5KrdwdZ6qHzrTx5azHJ/zsrvlc2mlvTXT513qfVV4awaSXiXb1L2xKq/7zcrmuJGStkqV6meQ6MUHjWbF9/zw/l/2+YsnCRLl2POz+xzwRqiymajSeFVp/2Ywmrz7Usnogt3rONppxR2JSvV9PjxzL+m8i4Jj1D6tu/1hY2DvWwIjzVJkj42hfMryoGnr4SXql7fx1YpbEt/UC7HqMuX4ooVEEJdtFz9fDaSsClYyC3uTpwQWqVC/+DmvcCCeb1bfDQ7rYV/sHnsN1sfJr+SQ8nB05qUULnV7ljy2IxV0xQujT8v4iIJy3Yp85ZtVt7FUqSCDauU3rfvxJ0SzinvnYeFpaMDAAAAAAAAGerVJMv6m5uXnAjOV61PVf3OxTuuRslJh/DKMXd3L48q2bxue9fD61fs8i3avqpLxqw2g8JlRd5WPRLmWZb1EWfXrp6//uL7/T0iorWurpqEjNLGzckhOioycTyxHBEWHXd+99gvDiQuwN1DMpiDD2yasjXAJJSF23T7yNvRKfr6/Rjh6yiEMneHKSM6WDbsn23DtiYURuGSxToDsqyLiTQ7umZJWInC1d0+6n7MM4Z1W+51ShhIrHDPkiX6esSTE4xIdsUGJM6zbI7xPzVnyu87qvVqFhkVFn558Ri/hw2dCpsfFUfS+Z9Zvvb09Ri1q6eT3izypLBSOSpC5+TmlFBfycnJVRkbYd1Ayc7ZPuHjASnhrIFKjwa9akX/vGfi4DBlroJ129Rr7Gv/MN6NO7VkyeoLJqHI1mho61rZkqS+z5hnWZWrVHXPI+vsq1dwT2ysdHVOLJLKOZtLbGhkjJTy3kksLAAAAAAAAICM9WqSZU3e9l/2a+EQ/svnP12JSiEalU0Rp385WWhCt4mtpWwuGbnmxGQzo5amcSpWwdtu5YNg2dvRXnc9VC8LrWUFhtDIKLucDokRqGTvoHUoV3dc93xqyzVT9N2bOqcsCofqrSZXf7ggc97i2Q4e+SO0St0sD3NT060LtyJkj4QrivjNlrR2jorIkDBZZLVcNYeGxNg52sY/n8Ro3hwdEy0S6mUOfRBpFo5K6/jw8DBbu2cHqAq7nEXK5t5/PtAsZbN1zFqq97ia3vGRe6j/A2NWjQhI2Bz/LYtPaz/s+m0ZB6UpYP2Y31Ksh4OTNuJ+pFFk01hj5sgwk9bBNqUVm2LCRZ6WQ0p2NETdOPL77IWH8n/b4OGQapuy3fuWTc9e0F06uis8R86AoztvFmyRx7oUU0iEpUjWUNoUERxu4+xg+6y9o5AIlgEAAAAAAICM96rmWda6ZXFWCvnRYGWFk2+18nVqF8lr/zjpkyU7Dw+7DEz+nppe2Wg0ZcB5/CxL1MXpJLtiZbyu/n70cqTZFHV72w4/r1I+icNmheRaoqDbmSPbr8aaZP2t33+ZvN7v6ZkkFNnqtCse9sv6pQf9g6JNxpjQC7//uuzPOJunnrw6V5kiofu2XAk2yjr/v347qSpZKqtSa6MOvP1vhCz0D/bvvvpwDLMcePTI4XsGs+7+wV/PxBYvmC+VzwgkpVop62L1ipwFS5jP/3owMNYsR10+OOP7ozcelUc2GoxqR2cbpTA9OPP3qSCjMXH+ElPihfgFeZQo4Pj3sV1+cbIp8uyWk/6FCvlqU1qj+e6W79ZuuBAja+zcXbUqpeLFX2f6O5tX+xXt3LZvM4eDq04FxI8TN904tfmvCKNZ9++Owyds85fK7vDsvZOEwWikxwMAAAAAAAAZQfUfrUfh9l6rBrWc7q27eOlGtPxKnsmriJWt8yk4OYX/fdbf3LrGB33Cti//clqYsM9XqUm/em4KoU9s41WhX9fYpYsX7IgwO+Yp1rl7afdksaZDsXoj+v+x4bedk9aE6h3d8pd9v9+oYvu3mZ/YAZJdhS6tHyzfOWHQVqNd1rLtWjf3USrNpZuX3rBq1NSlekWuit7Z7yeuM1+prOfnzlsXbHYr9v4n7X20qT0JdRZXzc2z18OrFWv5aY3VyzYMXx+rcMlVo1fj8vbCnLBAVZ4GrT3n/PDDUI1jjlJlqpW5tmXp0XKj38uR1379gh8dP+mUI76VMk+lTzrFLp0797dohWuhMv27F3eRREgKK8zXrOO1hUvmfhwrad1y1+7ZuEBazqdofrB13ORtj0unKtt3QNN7O0/krvlVQRuH/LXrHPhpzdHCfRTCxje/86HVQxdHKz0Lffhx1XwqSTx77yTWK6tX7uBdE2bbfPlJKTfGMQMAAAAAAAAvR4qNjXtVyzb6LR26ck9ofI6sytv9+07WZHnU4i1348edKrO3nfhRU6+MCfmUSsWj6ZVFxsXKbxDZpIsTNlplfL1M5xbP3unTa2h1u3cwI9UdXTf0bKnpfQuq6b4AAAAAAADAf+jSJf/ChXMlXFa8wvVIWidH5TOiT0mysXOyyZj1vP2xsrVgSq1WyVhbAAAAAAAAAG+CVzkbhtKz5dcjWz5xk1fbSaPaZuxK3oVY+WmK3DUaNnG0eTeDZnWh93tkc1HRdwEAAAAAAIDXJ3MHdK9obuU3nuScr6Dzu/qSVbrlKuNGzwUAAAAAAABeJ0Xm3XSlUvFOxsoAAAAAAAAA8Jpl1jHL7+poZQAAAAAAAAB4/TLlmGViZQAAAAAAAAB4jTJfskysDAAAAAAAAACvVyZLlomVAQAAAAAAAOC1y0zJMrEyAAAAAAAAALwJMk2yTKwMAAAAAAAAAG+IzJEsEysDAAAAAAAAwJsjEyTLxMoAAAAAAAAA8EZRJb/p0iV/6gIAAAAAAAAAeJYUkuXChXNRFwAAAAAAAADAsygoAQAAAAAAAAAgXUiWAQAAAAAAAADpQ7IMAAAAAAAAAEgfkmUAAAAAAAAAQPqQLAMAAAAAAAAA0odkGQAAAAAAAACQPiTLAAAAAAAAAID0IVkGAAAAAAAAAKQPyTIAAAAAAAAAIH1IlgEAAAAAAAAA6UOyDAAAAAAAAABIH5JlAAAAAAAAAED6kCwDAAAAAAAAANJHleKtsmz9x2yWLSz/ms1mGxu1Wq1SKhWSJFE1INOx9GWTyWwwGOPiDAorS1eWLP8KkY4+zZEBAAAAAADgrZfGHEmV0iNFQnhkNpsti7CxUWu1tsRGQKZm6cIqldLyo9VqdDq95bigVCqEsBwaLF0+Tf2bIwMAAAAAAMC7II05UopjlhPDI6PRbG+v1WhUVBN4mw4NtrY2SqUyOlqnsnZu60HBcnMaHsqRAQAAAAAA4B2Seo709DzLj77kTngEvMUsXdvSwS3dPJ51dovU23NkAAAAAAAAeDc9K0dKniwnzqNhY6MmPALe7oOCpZtbOrv8/GCZIwMAAAAAAMC7K8UcKeUxy5ZGtrYaSga83Szd3NLZ0z5mmSMDAAAAAADAuyl5jvT02MP4/Mis1dqkemIuw4GBHWrPiWm7bt2qFvZpWK8csGBooZ2N7myo48BOAN4Ylm5u6ewGgyH+5J6p9uHUjwym299W7Tz8uDFxsSrbbN4+9QYMmNXf1znlBRt++6j1+MKzjwzPpUzjtsbe3T5r6ZSVf531i1Bmy1muUbMvRzV930PxWuuX1mdh+mdZxYaBE68Nr5dhsbz5ypS+Zfc1vbatqcfjChs2dvhgxntL9g3wVPDiBgAAAAAAGSp5jpRCsmwyme3tU/22e9z59VujcuZW7lp/MqJFdadntjP8PrjvinLfLu/o6lLjw3mFcmrZA8AbRqNR6XRx8ef3TE0ajgyq6t8tWd8li+XQIhuiLq6d3f6z8RPLLZ9cMSOmzjDe+bH9x0NulBk1ZvTMsp7K22eX/e+HuvXubDvcv5rjG1ta+f7ab+ofqXVs5nuaHFXGTo0t9sonEVGW6zd0pLtLyvvSeHF8g2XOsycOKEzsDAAAAAAAXsRTOdLTEUPCeGaVKrXoQXds/5aYShMmVlbt3r87IrWVRQXeuxNukoXQFiz/YXWv5+Yqz53sFUDGsnT2hJkuUm+WhiODpLF3cnNztvy4e+ao2r/jh7mC/jwZYs6AbZQfbFo46q8S83aMHt66VPG8nkWq1pu0YUT78M2T14ck3W693vBKamQ26I0v8jhT+IPrAbGWLZRcfJq0Lpb9eYmuZTe83IYqclet08D3GR/hyXH3bwaFxHGQBQAAAAAAL+ipHCnZmOX4CCnVqTD0R9cf1dUb2LSR2Dlw0vo90S0TJsSIufnTyGkT1l8Oss1ZtX33GWMr3Bn3cd8t0RG/96keOvFnr0WFf2twe0Mdh+jrS4bPmrrl0i2TW8m6H0ye2uZ9Vylm3Ze51haaoP1t2PpAkTVvs69GLeyVz1YO2fPN1GHzT10O13hXafzdgp4NszPUDshgls5uTY2f1ywNR4bkC1Y4ONpYHqD/98DowcvXHb0T45aneqeeM74onz3p5BHG+9u/nvHVyr8vhtoWadDq2+ntqmV9sqfLUTvXHM/SaWrrJEcAybnilD2z7trYCWHY2bvdjGLDau3/Yaq2x/Wfyv49c9bn8/88E6jMXa7ykO8+7l5ca52MoumDKZeG1tIIYbo+/r3P7nyzdm6JnY3KHy/fNXb1/LOBymwV2nSd/U3dwnaPV2v2W1er0b2+X8kzR16ov2numBznvx88f+HufwOU2Wv27D179Ps5kxw+o85sHTJo5YY/g+IcPMq17j5/aj3vvVMrf3EmUnfFt1n4rklRHRvcHX91eD2N+e7u5QO/3LH/UqSDT7E2owZ83SKHyn9D3dpXmvQI+X78iWBN1rIf9ls+o1Y+lcnv1wX9vtxx5IbesWDZQTM+/6yK4/Oqb9jcpcX35RbtG+AZ98+OIQOWbTj5wOjm03TkZ3M/Ui/4YOySWxGKRt3Cly+eVlvNKx8AAAAAAKTXUzlSsqxWft65vHTn1v+mr9+6rJNj6Q9qybs2nIwftRy9c8iwzy6Xm3Ns3eWtH7ptmth/Zfh7436Y19S+0rj5B0YVepjA6PZ9Meqz0wUn7l59/eiQRoE/tRpwMDh+bbG/bfq9yrhb0TsvTM97ZMTSrZEi9veFXRbbDNm5Luj69AHqbf2nnDOw94BXwNrln5stP/fIIGRDbHR4uPUnNPDOoXk//Wyo2q2+k2S4Orn9pG1eH27+5+fTKxpJy8Z2/zEgydBc88XpY7psdRv+y8pb58b3MP3S6qNtt54auWu6fe6iKFUhX2IaatJHRljWEqt0z57bVRUftppO/LAl5tPvriyvEbVxWqspIY3mzL9xeeY3pa8Obb3gQMyzt/j+wTlHis754+dru3oWOTK16ajTT7U1B+6dvs937p8/fFk8ZFmPMQtF45/+Wn91WyePTeNafX/j8Thm891FA+eeqzz8dMA2/8O98++ZNeH3OJuGQ45MLOnYaOjFX5vnfRgJm29s7tZ+m9RtzOl/V/z6mdu2Hl9NOWuy3n5n1/zL9fcE7Ak+1jHLxh++P2SQH+we1OOPApPn+99btal1+DeDN14wpXmPmm/P7TfzXLUvTt/+9dyi4meHzVkRmHvQ5rHdc3sP3raUWBkAAAAAALywpDlS8nmWn/Ng3ZH9W/UVf6hpa2lbu1kZ44ADuyOqt1T+tXyTptvW9jVyWxZYY8KP8l6TSGFJ+nNrNhraLv2oaUEbIcp8NqHJyrq7d0dWbyqEskD9Ub0KZFGJLI0rlTVvDo6SJVk2x0XeuR2iy5e3z4b13c0K4hDglR0UXraBEMb9QzpkGfLwmtK95Y9zmnlIxr/2r/UrN3pX7RIukvBo+u3AXcXWHrnT84OHD/p39cq7jSdMa11MK0SWnt+0WlHm4J6Qxt3dkwzPlWOjYpRam8SPwQyHfihSd+Pt+PRZ22T0vV9rWS6oqzcbXtNTK6K3rPrDvefMz2p4Wo5ETb76qM3qSWv+6FfF4xmbrMzZ85vOdfNaj1rffH18Y+89xyaXqp3kJHuyIWf7z+uWdFeYbx1cerjQiEuNymWVhFftyZ/v8Z597PpnbRLbKdw6LPmxk5enu9YUGeroYhd3OVQvRPKz9Zn9t+4+VrLdhV5FcihEjnb9vvi53aSN14f3sByJi/QbU6uQg0IUqFS/yPzDodaKm2X9A//AYFOxCiNmBA6Vlcq0707rUT4qMOBOWP4ytfqdCDJLakkYeZkDAAAAAIAM8CgmUqVyX0riDq0/cifg/gfO2xNvUDhv2BPdvFzQ3TiPmnkSkg+Fx3u1P7ReSDbIWBcaEOleNU9iRKz0zpnHdOZe/ESsCs+sngnBkSLx7ILaen03jlo6ceSQiVeMeapU7/9Vrz4VHCV2HfDKDgcv10xdd+6Gnb1drZ3UGHN104xGfactrzO50/2QB+7Zve0T+q7CM5+XNig46NGoZNP9m7cjf+3dIdejQ5FbAV2EfsuI9l036WShrjRx0Zae2fJkj9t0KcjcKIflIKGuMdjfMNg64HjxsPy/Jh6GvHJntR5WzOEB9815fDwTM1iNl0+O6GOBBuHxjCei9MzvndhW65M7V8TZe7onA2F11lxe1gOT6U7AndjTI8q1GvPwHpc8BSOTFCT4zw2fTz16McrGI29OdaTs8IwSBt0Ls82TPVvCsU6yzevj/OBuaPwR0DV7whFQUiRMgi9lrTNnXejYb6dWGRagLFym/cDeYzvktU/jHlXm7L/4i6hx6zqXmxLolL9Bp44TR1bJy9ETAAAAAAC8tKQBkSp9D409s/43feu129e2jk9O5IjVbdoN2HAqqk6WrKoHt+6aRTalNT3Zv3FhcPkRrbyefrjWxcPhwfVbRpHfGt6Ybt31Vzh7ZElMWZ6cwVWO9Lsn1eqxue8gU/jdAzMnt++xutzfvcup2H3AG09lV6BZnVpDvj//r0mR1dU92P9mtHjPxXKHOcgvUOdeyF0hAhJaKpzc3bN1XbhiRtX4D5xi7589F5czr43rok0hix4tzty4Wd7/Ldl0tPcnVR5Ftubg7VsuGkTdxMUo4g8jluNJVsWt64Em4Wg9VBgCb9yzzRafOQuzSEyzTWFBwQ8PgabAf2+aRDZrW/3NO3ccsmR78ux31rmi449LClcXN6fKk//5qmX8BhiD/E49cC6pSnwW5uu/9ul3tuaOeZsqOCrl8CUftNuYcl2kbJ4uscfv3TeLnNbt1d30i3At5KIQ/vHrevIwHXLX37nG9O0fLjKEX9y5vHPX77K/N2twvrTNNW8M+TfIs+eiWV9p9IGn94/sOGFw/jWb2vK6BAAAAAAAGSl958SLObR/q65s6zoP0x3JsV6L0oZd+/eYy37YKHLxlxuO3YuNvHFk3KDlf0Taxuckcky07nGQrSnRvoVq7dilO29ER9w9O33UlgcN6tRxSnldUXsX1W+94Ner0UaN1k4lhI1Gw5g7ILOQ1Dbq6LBIWVW8RpvcJyaM2n8xJOb+X9uGT7/2XttKuR4deNSF2rTQrPli8ZbLEdFhtzZ8Nqze+DOxTw+OVhTpP2Cw/W+tm8xa9Pulq3fuXzt55Puuo2Zet082Q45d3fYVgxbNn374QWT4vZ3jf1ynrtHufbXk7OQUcn7n8QizMeLkrJ/W3n04ZNrk/+Oo1QduR4dePfLl6D3qFrUra1J+Nsr8VdoUOjlu+O4zQbpIvz/HtBo4aGv4owOSbDIZhNrBQa0wxVzZsnLBEUNsbFzCk5BjdTGPn44iV5PaFc+sG7bsyv3IiIsb5k/c7dm2Vb4UPy8zBxwYUH/cN/sDo2QbezulLKm1yZ6tbNBFhCfObW35idY/XJN8+8duQ3v8cCEgVtI6qCVZpdXGT0gt66JjZF6bAAAAAAAgQ6RrDLDu4PpjcbUG1HV5dIvkWq9aNf3s9ftUK2dPfjBsRtfSiwJVXtW6j5jTOatCmItWLXZ7RO8KMVN/y5XQXlvrmwnfDps1pForf6Nrybod1k+vkVUSKZ1hS/Lq/OnsU98Pq9r8w1jbPBWqT1rYtriS/QVkEsqsebLHzNn8d2iDCiPWfB45eFmDAhOjXb1rdB67rHd2xeOpctTvfTV++shZo+u3+zfSrnCd5qsWNsyR/AMvx2Ljdsz0+frHmb0Gf3rf6JyvWNvhn+/+3+URi7M8eQiTsrYesuH2jOG9PhoXoMxVrvK36/vUsrcGzuNHH+/dpvXscINjpVYtKt5MbK4p3b3R3S9qtD0f5Vym9cAtk8o+c7oJZZ6BK78IG7i4RdHJwTbZq3YZtmqwt/Lhs1DmbzJl+Jl+tVtO0WYt26L94EG+/UeOmlRpztBSJYqOmVawUcyxqYmLUeRrtnxV6Kdffuk7ONLep1ibhf/7vJQqfshyshX6tvzhf34Denw0Pcjkkr9Eh/lDu+d6ui76fTMLus18VMmas1YOTLxYfOSCVn0+G114TIQiq3et7qOmNbMXipyVK5l7N/wwdv2q2XWYtR4AAAAAALwsKTY2Lun12Fh9XJzB0zMLpQHeEQEBoTY2altbTSpt3oojg1kXESsc7bUJ36cI2tqw0JFON7/p5MRLAAAAAAAAIE2S5kjMWwzgHaHQOtlTBQAAAAAAgAxBsgzgXSTZ+bT+VFlEQyUAAAAAAABeBMkygHeSg2/Pcb6UAQAAAAAA4MUoKAEAAAAAAAAAIF1IlgEAAAAAAAAA6UOyDAAAAAAAAABIH5JlAAAAAAAAAED6kCwDAAAAAAAAANKHZBkAAAAAAAAAkD4kywAAAAAAAACA9CFZBgAAAAAAAACkD8kyAAAAAAAAACB9SJYBAAAAAAAAAOlDsgwAAAAAAAAASB+SZQAAAAAAAABA+pAsAwAAAAAAAADSR/Xyi9ixw3/q1LOnTj0IC9ObzTI1BV4LhUJycdGULes+ZEiJBg1y/Zer1un01B8AAAAAAOCtodVqntvmpZLlHTv8+/U77OcXGX9NEoJYGXhtzGY5JES/a9cdy4+3t+PcuVX+43wZAAAAAAAA744Xnw2jS5f9DRtufxgrC2Jl4A2Q2A0tHdPSPS2dlIoAAAAgs/C/HUQRAADIRF4wWa5X77cVK65QPuBNZumklq5KHQAAAJAp5MqZjSIAAJCJvEiy3KXL/l277lA74M1n6aqMXAYAAECmwJhlAAAyl3Qnyzt2+DNaGchELB3W0m2pAwAAAN5wjFkGACBzSfcZ/Pr1O5zSzWatnVklPTnVsizFxaoMTL+clGTba8eHM8rrw+MslyWlHHfmp+MfDb/pb366oaZu1cs97/i2u6573iI13rk+m1CmW3UnJ4Up8LTf9yNOrDiboVVP8zYLe5+fz3rN9T28V5/sdVaq4KhCQV+vjSjzTcuvrm1t+qOO18V/ydJtb9z4kDoAAADgTeZ/O4hwGQCATCR9yfKOHf5JTtmXQM7Z6PiaGRffy2ZSSE+3N4S6rRxeu99aJz2VflywuFUdVvfcYc1lVZ7eC49WHrndv/8e84stTMqSa8aOKnmWHqzT6+4tnbpIh/fXbaoaW3nvzwGJDRRqhTCYza97m5U+ubrUiP5mbdi573f00celEitLkpBJnTOapdtaOm+DBrkoBQAAAN5YxMoAAGQu6UuWp049+/RN6oBh3/5TySMxC5TjbK9dtXHIF+ZlF39nluBu357aurXmpmhKnQJjwJ3dZzXtc6qFpKg5qur3XVydZf2ZFX/0nXA37GEbjU/eST+UaZhPrQwNmjvoyPRjSWNZyeej0g2OHS09+U6Y9Vb9hZ+O9XMvVzyPSoTmXnXE68QOxw+9b7TseqvAyCcWHt64xoWW130/uqUXisaL27be+HPPGyWPzHM5r8hWJ4cUfen68J5//nZbfs42C71X3TJzvvEp6qKI/ufq533/+j0isY3CM9f4xeVb5FXbqPR/fHeg168uU0Zn98rm/ONf+6bnrjnWb9sHi6UaTz7fII33iuM+weedG1fUqHXBUzrunXPeptHEGt+0dLRXGs/NOdTl+6BIXjEvwdJ5SZYBIO0OXtMvOhzlF2xKpY23m7J3FYcq+TWUCwAyBGOWAQDIXNI3z/KpUw+EeHJkskLnmfVxBBm1pXLJSi07LHd49D5Mso31cKTOKRff2TffB4Ue7D6md25Ufl79Bz3LrMlf7uCZhlUnNnz4HlXh1GdeaZtp24oVXFPuk/A2i8tWs0m6BPX71ZyPb02IlePJ+kPTj845brRcVObPVeL0wUqdLkc2eMbCn6Qp6xYz5pe83us7Hsw269u87tJztlnKlm/aFOf1rdYXzL/+w13ZZn/nnSXxIVKeJgWL7T9Y1ndtwRqX3YcWLh98fejXd+9tPt5jYXjCOOcUn68yr4f7LzsKF1hXd7ntgG5ZbYv5jqsV2LnY2gLljp8vn6OkDS+YlyHFd14AQFrN3heZeqxsYWkwaz+fewJAhiFWBgAgc0nfmOWwML0QqU1VIJuscy2bzE+mkhJ1TloNmw6rOjSOs1xS2Lmo/GZv731VKtHfy++nLX9HWYobvHh19O66rupt8Y2dPOpUtM01rNaOzywP1GT3MpXJYes2uO6wcgqT35WeXW46OZgjo+LTWoVT/y1NviyjkLSaiEVbi44WIjZw09YYo1CUqJts4XtS2C7jheuLDlinPz4z7/I/Z3OVV1/frk9lm2V1g5w1s7tmW9Swm+VmOwc3l6w+yuCEV8GNRQc+Lp+9Re8ShcrmKeoQbvP0CyDlTZIj763bGmN5E3/rSqSUT2m+++Av+/dmzpE27Lm7st/py3G8dF6GHN95AQBpFRCRpkmf7oWbqRUAZBTGLAMAkLmkL1k2m1OOleVYp90bs1+Pk2JPOpqEFHDcZ4FWp1DFVGnhX5RviD5drMdzFivcci88XqH3wq3Hk0wuLMuy9GjKaoMpNth/VOOD2+NTXUd3lf6BPu7TzRsT71Zmv2TuXsFFtTPEaI6Y03jVHCHlGdh4W8745cQYEjJn6VkLt1JobB5et9wX30w2y2bFk61S2ObNM3SmyKNnWra4ap24Q6VydRBhxjwJW1VxfNNFxf1nLLu7dZbet07W5DVIcZPkOKMuydtz+cHN3mXvl6mdq27d4hu/LvZdrV1LbjIB84t7VucFAKSXrVpa1iOb5bDafn4g1QCADESsDABA5qJIZ/uUhx+bbuUd9WmVfoMqD1npahTStU3lPh5Upd+A9xdfYLhyasyhIX/ftMubUz6zKyBfh4Il7IVwcOv2oePhXcHGhBYxAdtOe/bp7KQRIkuNige3FPVRPlH4gzPPhfWoOqm5i5P1dmWOaiWmDcyqfnIlyRduiDMpczt6KITCI1eLKomfLqiK5OtaSSMJVbEehUocu31Sn/o2S/pTt/YVLNS3tOXhqlKfNzowxj1xQZJNmYqafdP+XrTpnp+Ha2FbKeFFplRKqWySMdmKtPUqn1vrHfr75cnD/lh617W0N6+ll0QBASBjfN3C1dtNpVVxXAWADOZ/O4giAACQiaRvzLJCkTDy8em3Usq8V+euDbutFzGHSnWb456/y5GvG8YqVLElS/AV0VSZ4wIfqLtWdomd8GffMlUXn2zrIBkv/HSw7za9XDu+gRyzetCfJRbW/+dzhfFB0Ix+Jy48OeWj8fL5Vi2NX4+reXK2nSIk+vK+C6M7nehWxph0eGr4tqcXHmd7aVZMjf0XikrKmL+uxCSceM9wOdRucKOzi7Qqf79BPa4Hys/ZZs3eW6M+cV+wpPVVOznin8v9ewTohU/8NsdumnGz/ZyWf4bE3Dh8e79f0fEjslXbEnK3fqU1/XZNeMYmyeqn16M7eHFG5+q7LhfXxxlvbz3W4zCvpZchKxQkIACQAXpWdaxaQBtnlD/7OfjZv9+D5jTq9uV5e8fEb25Jbu1GHe5yrk6nmOnHe5eP29c+z5SDTg6PTqrg02/CzsGGMRXnuK6e8VnBh5/6m+/NqvfR2EsOjhrZZNZ4Fa/Qb0LvbiXsLEfzmIt7vhq5bueNGINB5VXlg0mTm1fIwkEewNuAMcsAAGQuUmzsE/PXxsbq4+IMnp5ZUmzt5rYsJOTJ+W5tbqz139NGm3gtYm1dj165yk/6eV//yMTBtXHZ+5doNO8epX7zqFT2KlO0dWploSxa5sgMfdt652+R376lXF1tgoO7pnhXQECojY3a1ja1mWtSPzLodEziDOBtU+37+9bfj5J1hPKk7WHhsdZfkJXza6e2c7NcGLo2+PA1XULLg0OTzftkDprTZMjVEUunVXv8Eb7p4spqj5LlAofa3RjTIunJaY0Xv0ieLDcYdn10/EJM0efXzOw4QTHh8PAmzn6Taoy5NOC7+W08bIxhB8aM6BfR48/Z5R3YZwAyP+ZZBgDgzaHVppwUJc2R0jdmuWxZ91277qTSQKEyK4VQq5+MJ5nf9c1kNEYbqcK7wtJ5KQIApFel/NravrZeLqo+y4M8nFQTW7pKQszaG/4oVv6PKO2Ldej3+ZbeS7aFN24b7B9gnze/izWXVrlUHTxo4ikbWWbSIwBvg+fFyvKd+Z8Vm+yy4OjoNp7Wo57533V1u8RMPdCtpPV9bcxvvTu321xk/vlxHd2t9xpPL65QfX32qcs393BP+NROf3ROqQZbii3csK7J8RS+PjIsv4p9AABAeqTvV+eQISWeTpbNdrfuSSJvYnhs3/zAzUoqm6y6R7MBmyPtb0dQ5zed6eo/bbvJdxmw/PaydF6KAADpdeiqbsf5mAbF7Nb19XRzUGqUYsuZmBXHop7/SHPIys6dtiSMStYUG7d3VLuk9+r/+KR4+2GJV9Q1J89b2PR5C5ScSpR0/fbiPaOmRN/PPDs277y9dNlaNcvUqlu+cQMXNbsKwFshDWOWJVvD32NHH6m5sIr7U5+ohZ9cty9bxYIX1m8L7dDFNeFOhavtpV+O3uv+QQ5rtGw8sfmvaBebxMdp3v/h4pNfHwEAAOmUvmS5QYNc3t6Ofn6Rj28yeEz5pKzPlAs1vA3q+MHJWiejiFNFW+fMUETdzbZsVLntMdT5jaePu3WbKry1LN3W0nmpAwC8gP9tCc3hoiqe0zqs7dxt/cRtoWl6mMK104onZ8NIOi2z5r3Z556aDeP5i5SkhDBEU7zP2DNdQi6cOHf40Klp7eeNqPv5ju8quDNmGUDml4apMCTPdt2an/zxy50l5zRwTHK7HLJz78GijX9pcazJ+qP3OjXJHj9KWelTqV70ka13m/bJKQn9xV+P5G5SPSqYQgMAkEHS/XWfuXOrNGq0XU4ywcX9Q6Vavl+KUgJvJkmydlvqAAAvxmQWg9Y+WNHTw3LZcsH0ur7fI0eePxucr6GXdGPP8GW2Q8dUKlqtuuWnd2/fFqW27PqqwodO7CsAmV6a5lnW5B/0fdUGvZfsq/RpjccHybDf1p0v1XJAsXqKMqP2bL7TuG+u+A/clDmb1feftSWoVz8P44nDRwpVHaK58HPCQ5J/faSFPbsAAIB0SXey3KBBrk6dCq5YcYXaAZmCpcMyYBkAXkakTm4+O+B1boE59vKG+ZNOlx0/21mldorZuGB8Ke9vm2e3FfpbB8/+m8O7kC17CcDbIG2n75Nsy3b4rv6AgRPO7ur18DB578i6E4XazMmidK/QtPT8Nb8G9v7EM/4epc8H78cNOerfp+ntLecKf9DBcefDxST/+ggAAEinFzlFwfLlNQIColM/lR+AN0HdujksHZY6AEB6ZXVQ3I96/vhkL2fFiyz9iYFyQlO516EF2YXp3+8adJiX8KeZuvCo7b0fTtYsm0xKt8LlP1ndp7F14tBy36y8/8XIUSWHxUoajYtPhZHLOpVhomUAb4U0jVm20lYa2b96zTmTS1aOvyr7/7r3D8OdG3W6TrFci5HvRh+83q+td/x9ynxVGpumbb6Wz/9Inmaj7KSdlBkAgAzzgie//f33xl267P/pp6tms0wRgTeQQiF17FiAWBkAXszA2o4LDkXdCjGl0sbbTdmnqkNKh+Bs/betfOo2pW+nI6cS/viqueZBzeQPmnh628Snbtq97dMUli45lmg067dG7CMAb5+0xcrxHEuOnlS4et+tYW6NhOnupvU3a0/7cXU7F0kIOXB7yzJbNl1rPTjx+Jv9g0Zyjy9/1hVu+KWj9AdVBgAg46he+JHLl9fo0MFnwIAjV69GUEfgjVKggNPMmZWZBAMAXli1/Jpq+V2pAwD8l9I8ZtlCcqn90YRaxzudFuarB9b7V/yikUvCqUylbFW61PlxysabAxomtvRuWknxv1W+y75Iesq/FL4+sri2G2dDBQAgPaTY2Lik12Nj9XFxBk/PLGlfxI4d/lOnng0K0t27FxMcHGsyUVXgv6ZUCjc3Wy8vu2zZtEOGlEhXphwQEGpjo7a11aTSJvUjg06nZxcAAAAAAAC8NbTalJOipDlSCmOWpXR+TtugQS6GRgKZl8TQDAAAALwB0jNmGQAAvH5Pn3YmIWOSZWZPBt4JCZ2dcBkAAACvHbEyAACZS7ITmktWRiNTWgDvBEtnt3R5omUAAAC8dv63gygCAACZSLIxy5abFFJcnIHSAO8CS2e3dHlyZQAAALx2jFkGACBzeXqeZWvGJEmRkbH29lqJuAl4q8mybOnsGo3K0vFfclF/HP+HegIAAAAAALwF3qtYNC3Nnk6WJUlSKhWWn6ioWEdHO+oIvMUs3Tyhv7/8x0g1qpemngCQYN9l3bz94TceGFNpk9dd9XFN52oFtZQLAAAAwJtGp9OnpVnyM/hJCkVCsqxL4yIAZNJjhKWbWzq7QqHgCwoAkIGm7wpLPVa2sDSYuiuMWgHAE8dGv3sUAQCATCTFZNk6bFmlUgYHRxAuA28lS9e2dHBLN49PliWSZQDIQPfC03Qm5LthnDAZAJ6Q19uLIgAAkIkkT5YTJ8RQqZRqtSo4OCIiIlqWZSoFvB0s3dnSqS1d29LBE5JliWAZAP4rtmppXV+PNX08KAUAJMeYZQAAMpcU5llWWNNmhcp6j8pyNTo6Ljw8xtnZTqu1UauVRFBAZiTLssFg0ums3VmlUmo0asu/KpVCoWDMMgD8d75u4ertpmK0MgCk6Lljlk3XxPt1xV+ySPjjVZtFVGwq5o4RBVQpNDaeE+W+EKt/Eb7K1P9QFqeWiwELxBWTqN5RzPtEuD/80zjskFggiWFVBH8rAwCQopR+A4vH4bIkiYTJMaKj4yIiYs2ylZAZxAxkGtbQOH5YsiL+6wg2NuqEs/YlzLBs6eCCP5UB4D/Rs6pj1QLaOKP82c/BVAMAkrvhd++54bLkKDadFE011stR10WfjmJQEbG1/Yv/Ras/I7rMEgPXiC724tN2YkQxsaim9fawa2LMBHGpkzVZBgAAKUohWZYkIcuJ4fLDE/qZTSZrqmw2J4bKJMtAZpEwHDlhCvWEuW4ejVNOiJUZrwwAr4JSso5QnrQ9LDzWbLlaOb+2VzUnyx9QIzeEXAsyUB8ASC698yw75BNtyorRt4RJiNiLYugosfmKcPARQ8aLfiWStJPFyaXi00XicqQo3kTMGyN8tY/vPLNN6BqJbvmFRoghbUTtrUJXU9xYIjr8JELuiELsFQAAni3FMcsJUZQ1XJZlSZLkhGHL8bGyiP9WPXUDMpOEHp3wFYQkCJUB4BWqlF9b29fWy0XVZ3mQh5NqYktXyzF31t7ww9d0FAcAUpSWMctJxdwSv5wTdToKlU6M6iXu9xNX24m7m0SD3sJnj6j9sFnITtHqJzH7Z9HQUczqJz78QZwc+vid8L83RL5qQh1/OW8BEbdfBJiFb3fxd3ex8WMxj70CAMCzqVK5T0qMo6z5shBy/ChmcmUgU3rUnR9fJFUGgFfp0FXdjvMxDYrZrevr6eag1CjFljMxK45FURkAeJa0xMpypGjtG38melnoDaJQd3HkPWE4IbbbiFXthKNKFGohui4Sv54WtZ0SH7J3syjcXTTJbp0xo39vMe07cX2QKJgw+bIsomOFvUPiZBoKO2GnEzG85QUAIG1Uqd/9KIGSZfEwh7L+R7wMZBZPJcgkygDwn/nfltAcLqriOa2zgZ67rZ+4LZSaAEAq0jjP8vqH8yyHXRQdO4hpbcWoEBGaVeRICIuVIo+HOB8sREKybBb3gsSJ2aLE4sQluOYUcY/ez0rC3lZERws5/o2uHCNibIQtfy8DAJA2qjS2eyqNIpsCAABIncksBq19sKKnh+Wy5YLJTEkAIDXpnWfZpbBoXlT87icUWYXLfXHXJLKrrFHy7fvCzeVhI4VwdRE1OomNza3X5HBxMlD4Jnkf7JNP+F0TRmGdEMPvurDxFl4KdgUAAGnC70wAAIBXJVInN58dYPmxXKAaAJC6G3730vcASdioRFSkUJUQDXRi0noRYxb/bhFLQ0Sz0o9b1awv/lwgdgQIWSeWfS76/vbEMko2FNrfxaYAYQ4VczaIRk2Flj0BAEDaqCgBAABABsrmqAyKND23WXYXJbUCgKTSO2bZeiz1Eqf3iYB2YuICMXi08Jkg7PKKwQutJ+t7dCDO3lKsDBBDmonOeuFbVyzv98TbYE0psbSX+LS9GGYU73cTC2qwHwAASCspNjaOKgBIXWysPi7O4OmZJcV7dTq9VquhSgCQYN9l3Zx94TeDjam0yeuu+qSWc9UCDIwDgMfSMs8yAAD4D6QS9QQEhNrYqG1trfcyZhkAACAj1SyktfxQBwBIL2JlAAAyF+ZZBgAAAAC8fumeZxkAALxWJMsAAAAAgNePMcsAAGQuaZ0NQ5blJ69SOiBzkKSnrkrUBAAAAG8g5lkGACBzeU6yHJ8gy0n+fTpiBpApJATKln8sPTjxIgkzAAAA3iTEygAAZC6pJcuyVcK/VmbzExEzgMziUZSsUEgPCUG6DAAAgDcJY5YBAMhcUk6WExLk+CjZ+q/ZbLaxUavVKqVSQRQFZEaWvmwymQ0GY1ycQWFlTZcV1onW6dMAAAB4IxArAwCQuaSQLD+Klc1ms8lkzZS1WlvCJyBTs3RhlUpp+dFqNTqdPi7OoFQqhFAoFJYunwH927JMigwACQ5e0y86HOUXbEqljbebsncVhyr5NZQLAB7xvx2UK2c26gAAQGahSOnGxFjZaDTb2WltbW2IlYG3hqU7Wzq1pWtbOng82dLlKQsAZKDZ+yJTj5UtLA1m7Y+kVgCQFLEyAACZy9PJ8qPpL4xGs729VqNRUSPg7WPp2pYO/ihcZvZ0AMhAARHmtDS7F26mVgCQlP/tIIoAAEAm8nRwnHDKvoRJMIiVgbeYpYMbjWq93iBJUoZMiAEAeC5btbSsRzazLNrPD6QaAPCU545ZNv2rrN5YeVqIhD9dtS5y+UammV+Y86f0ztX4j7LyGLFsnamwMtWFyuLvVaohP0pXTaJqe+PsvrKbJKIuKoaOUW65Imk8zW0HmcY3lG3YPQAAJJM8WbaOWTaZzLa2TPwHvOUs3Tw2Ni7+dH7yw7/PAQCv0NctXL3dVHfDTJQCAJJLyzzLkqN57RFj4/h3q1E3FJ90Vw3zNWxsI7/w37L6s8oec8THyw0d7RVDOqtGFzHMrSJNHa6828x4fpVsOKVs/Ylqvq9hgDf7BwCAp6WYLJu12mfMraz/q3+BsfoFGxbVVyfeYrw6ptzHZ4f/8ksH9cYOH8x4b8m+AZ6Kl94ss/+G2gWn73/ilGCqsuOXHP/CW8lOAzKIpZtbOrvBYFAoiJUB4JXrWdWxagFtnFH+7OdgqgEAyaV3nmWHvOaWZcT//IVJiNhLihFjlVuvWW6UB3xl7F0s6btc8ddK1eAl0tVIUbSRadZIc2Ht4zvP/a7Q1Td29hEaYR7QUtlwuyKmoHQ0SP6ko+xqeddbwdzJV7n/H0GyDABAcikkyyaT2d7+BebBUJbrN3Sku8szYmX5/tpv6h+pdWzme2n9GpG68NiD336S71HgJansHDI4VjZeHN9gmfPsiQMKK3gp4N2k0ah0ujilki4AABlMKVlHKE/aHhYea51PuXJ+ba9qTrIQIzeEXAsyUB8ASC4tY5aTivFXbDkv12onq3SKsR8rH/Qynm8j3/tV9cHHqnzbjTUfNgvdpWq/Rkz7yVDfQZo7QNV1vnxkoPzoHe91PylvZZEwcsrbR447KN13N638TTjZxr+PjZT+9pfz52LnAACQgqcT5IRzealULxAzKXJXrZM76Q2y2SwpHi3IFP7gekBsek4TprLP4uTm9ooCL5NeL2mkuPs3g0xxnLsM7/AhQKVImAOHUgBAxqqUX1vb19bLRdVneZCHk2piS1dJiFl7ww9f01EcAEhRWmJlOVLRobTG+i5RFnqDKNjZuK+CMJySdmrMy9rIjkrh2MzUaYlq6xlR0ynxIft/UxTqbGjkJSQh9+4hz5yuuPGJqUDCqCVZio4V9g6Jk2ko7ISdTsQoRB5369WIK4qxI5XHq5h2FGfnAACQgmRjluPD5Rc6mZdhc5cW35dbtK9/5Nj3Jkd0L3dy3Lo/o7XelZvPWt6zxl/TKn9xJlJ3xbdZ+N5NzfO+aFxs+veXxjV2VN06a1RJdfSRue93vT/m8EjPKV2HGxsW/mPjxktxLr7l+347aHi1LAphvrt7+cAvd+y/FOngU6zNqAFft8ihMV76ovx0m68aXR+/NPCjMfW3jl1yK0LRqFv48sXTaqt5NeAdZOns1s+TKAQAZLRDV3U7zsc0KGa3rq+nm4NSoxRbzsSsOBZFZQDgWdI4z/Kqh/Msh11Sdu+unNna/HmoFJrVnD3hbaZCzu0h/RMiREKybJbu3Ren5qnKL09cgmsOOe7x4mR7WxEdLcnCGi7LMSLGRthaLpmkvXOUn6yWqn9i3NtezsLUcQAApCTZrBfWIcuppkxy+I+Nav34xE2aZk+1MV7/cXnJdSe213W+Manp4M/n1T751ZAjE+8U3t304rqa2jRumuH8sELVhz26qnDusXXTovof/DDqUI0B65tvLrlq4IFS381t5SkdEcY/F+4ouHDKpYZOV1dO69Dy6yynvu1l3tyt/TaXCWNPt/EM/n1Rhx5fOfnMH13Esm23F8259cPq5Q0KOGh6j71RZKbr+oVjSzJ7M95d1i5PtgwAr8D/toTmcFEVz2nNP87d1k/cFkpNACAV6Z1n2aWQuWlh5e6bQuEuu9yX7pmFl9IaJd+5L7s5P3ojKbs6i2rtDWs+SHg7K/11XxRO8v4vX1755nVhFNYJMW7ekGzymD0lsXeCqv9186Itxipu7BYAAJ4p+TzLz3uE5NRxzdIZtR4+0HR9Uq3hV59upKkzsHvD3DZCFGhSy3NxcMSLpFZPzbMsKbSO1mHFPr0Gj/xlQLvav+lLfHKkWRbJ+jeAsK/X+buOBdwl4fnpgMEbuq7Zer+eefexku0u9CqSQyFytOv3xc/tJm28PqKI5Rkaynbt9kFBB/Y9kI6ODwBIP5NZDFr7YEVPD8tlywWTmZIAQGrSO8+ykGQbtYiOklQ15Ho65bcbzT+2kgN+U64IlaeWEuJmYqvqdc2jFit/r2iq6yytHK2aU9B46NPHyyhe16wdpNzc09jCRrHgV9Hgc7MmQDF1hzx2k6m8o4iLP6u8UiVUnJcEAIBkUjhT3/MyJknr5OTm9nDuCKODrSrZV4Mkx+xeCSfqkxSKVH4DG7b0bNt1k04W6koTF23pk+3Jps+YZ1mZs8un5ce1+qfbDxWzJq5ZkdUnu3PizFhZC/nYLLrzIFCE2ebJnrhEyTavj/ODu6Fm4SQUzrlyadnxQJq7PADgxUXq5OazA6gDAKRFescsW3h5ymcOSIGtzP+bI4aPVRWZLOy85U9/MNZ3EKZHbZqZlgQqP2+j/sggCtcy/dhLTvo2WFPStPAj1eAu6pFGUbGT8YdqwnhIcea+Yk8lTffEt7ei/Vz9kjrsHwAAnqZ6JUuVRNpmalY3XbQpZFE6Fx576dvxp31rOSwfs7nHtlbxJ14w379+L0Iu4WZZpznkXz+9e2lXD+ESe/zefbPIaQ2XdTf9IlwLuSiEWQiFkkmyAADAK5PVQXE/6vnjk72cGf8GAE947phlpY/p0Iknbqk1zuCXcMnXPG/tE8deVVHT8Q0JF+Vq/YzH+j1zsaU7G/d3TnK9mtH/CnsDAIDn+0/f0sixuph0jI406SKjw8Mf/0TEGGWh+/Ob71bk7b1qw+d9wlZ8svBOwgfR0TtXfL72RnBEyPH5s6aeLdKuiUeeJrUrnlk3bNmV+5ERFzfMn7jbs22rfCmN0NZFxzBiEwAAZJiBtR1zuz7nFA7ebsoBNR2pFQAk9QJjlgEAwGuk+q9WJLmWKlF0zLSCjWL+/K1VvrQE2oaLX5Zr9GWSG2wajrw2+nbf5Z7jjtT0slUMm9moUsvpixtM8BVKn/b1PVaPLdY/SJ2vXJ8NY/rmUyhEs+WrQj/98kvfwZH2PsXaLPzf56VU8XMyJ6HMWbmSuXfDD2PXr5pdR82rAQAAvLxq+TXV8rtSBwBIr3TPswwAAF4rKTY2Lun12Fh9XJzB0zNL5nkKxsNDOvfRjjkz0VfF/gTSLyAg1MZGbWurSaVN6kcGnU5PGQEAAAAAAN4aWm3KSVHSHIkJ/gAAAAAAr5//7SCKAABAJvIWDPNV5KjZpLvKjYwcAAAAADIvpsIAACBzeRuS5bxNO37GngQAAACAzIx5lgEAyFwY6QsAAAAAeP2IlQEAyFw46R2ADPCsad0B4B2077Ju3v7wGw+MqbTJ6676uKZztYJaygUAAADgTaPT6dPSjDHLAAAAGWn6rrDUY2ULS4Opu8KoFQA8cWz0u0cRAADIREiWAQAAMtK9cFNamt0NM1ErAEgqr7cXRQAAIBMhWQYAAPiP2KqldX091vTxoBQAkBxjlgEAyFyYZxkAAOA/8nULV283FaOVASBFzx2zbLom3q8r/pKFFH9Vm0VUbCrmjhEFUnpfazwnyn0hVv8ifJWpLlQWp5aLAQvEFZOo3lHM+0S4S+L+H6LfWHHglrDPKwaNEwPLJq4RAAAkRbIMAADwX+hZ1bFqAW2cUf7s52CqAQDJ3fC799xwWXIUm06KpvFnj466Lvp0FIOKiK3tXzz51Z8RXWaJgWtEF3vxaTsxophYVEmM/0xk+0rcqi3u/ixqDBEV94j3eesMAEAy/HoEAADIeErJOkJ50vaw8Fiz5Wrl/Npe1ZxkIUZuCLkWZKA+AJBceudZdsgn2pQVo28JkxCxF8XQUWLzFeHgI4aMF/1KJGkni5NLxaeLxOVIUbyJmDdG+Gof33lmm9A1Et3yC40QQ9qI2ltFTCERWVAMqClsFSJfPVFirLgWK953ZP8AAPA05lkGAADIeJXya2v72s740N1GJXK7qia2dJWEmL03/PA1HcUBgBSld57lmFv/Z+8+4KO4zr3xPzPbi7TqvXcBQiBASIgmUUTv3bjgglvsGJc4Nzfve2/ue/+5932TuMd2HCdxCzammd4lECBAIFAX6g31ttKutu/MXysJIZAQEpfYJv59P/o4q92ZM+c8Z9jMPjr7DH2XS3NnkNBA//oMNa+mkiw6tJl+t5WOd93arO0Yrf47/WonNZ2nFdW08Y9kGdBIWQUFhZKo53FgKBkrqcmD/vZXmshTcTZtf59K4miGApMDAAAwBKxZBgAAAHjwzpYYjubpFoyTf/uch7NSIBbQgWzdlxe0iAwAwN2MZM0yr6E1kT0rpHgymSl8C52PI/NlOiKh7evJTkjhK+nxT2lfFs2x79slZT9FbKElXraKGS9spbd/T+WvUFhv8WWeuvSkUPYV02DlJDeQju95RU1/+h0dyqeIF8kRVZYBAACGgswyAAAAwD/Ebw60ezsIo3xs1UBzb5h+e7gdMQEAGMYI6yzvullnWV1Ij2yit9fRv7ZRuyt59yaLBeTvTnmtRL2ZZY7qm+jyBzT+r30tOPmQke9vjhQy6uoi3vaQeB3pJCTrySMzrvSHr+h3LbQpmd6aRr8Zg/kBAAC4EzLLAAAAAP8QVo5e2dHy5dPu3Y+7H1g5hAQAYDijrbPsEEErxtLxSmJdyaGZ6qzkJbSlkm80k7PDzY1YcnKg2Ztpzwrbb3wHXWmkyAGfg4ODqLLUVh9DRFRZTpIAcrpE8/bT339LbgyxjhTtQaWNRMgsAwAADII6ywAAAAD/KBoDv+KDhu6f7geIBgDA8EZbZ5kYkghJqyHheFpgoP/eRTqOyg7QZ220fOKtrRKTKeMTOtpAvIE+f5OeO3RbG9ELSXqc9jYQ104f7qZFS8nOl+gofZxFHFFDOu2soxljMTkAAABDwJplAAAAgAfJzU7QpLHeczMvBwFiBQAw0GjXLNveSz0pK5Ua1tNvP6Ftv6bg/4/kgbTtz7TQjvrfiL1W0VcN9OpyetREkfPoi+dv+xgsnkCfPUMvbaA3LBT/BH0ym1iGPvx32vozeqeTHPzo6ffpUTdMDgAAwBAYvd448He93mQ0mj08HBEagJ+IhoZ2iUQkk4mH2Wb4dwaDwSSVihFJAIBeqUWGD1M7qlotw2wT6CL8WZJqRqgU4QIA6DeSOssAAADwPRgm1TMwj4Q1ywAAAAAPUmK4tPsHcQAAGC2klQEAAB4uqLMMAAAAAAAAP7xR11kGAACAHxQyywAAAAAAAPDDw5plAACAhwsyywAAAAAAAPDDw5plAACAh8to6yxbWwuuHj9XXtWsNwukzj4B8XMnTfAQMUNsybddOPTHk/qpT6ye7zvC/DXflnX+cB4TtXhatOOtJrn6/N2nalVTZs4Ll7SPuk3iaq98+Nc8SdLKpxLs1UO1/0/KcP142mWNz7yVYzwGhGpAMKX3CAGvPvvpd6fquAFPsW4zlz6X6PxA/xwx9KQDAAAAAMBPDdYsAwAAPFxGl1m21mV9sye3w8EvZrqrpKspL7tg/3az4sUZYZIH0hne2N5cXsH4mHiiW0lGXt9RVV7nGm69v0YZe6/YWUKhn5S5S/v/nHhLR11deZtSz9/+9CiDyQgcxyYEuPTlkhmFv/xBB+6nNCkAAAAAAHB3FZX1SC4DAAA8REaVWeY1NQ1tnHjsvMQF4QIibpxb2oEcc5uaI3euKTvjyNmqOi05+IfNWTwxzP62LKG+tuDo0fySJqPIxTt2fvw0fynD68rSLqZkN7ToWceA8LmLJvhXn/5LWjtHdPrPR6Q/WxTnYGuB7yz8cvt1LU/aw7t2SDfO72mtq+Lq3/cX1+ik/tOmr0pwk5Bl0NFvLavlO+syzuRJBIFjO88PbD9W2HDucMbVik6jzCkiYeqCSS7C0nN/2F6qGhMsqq5s5JUBUyaONxcev9xsUrhPXTp7VoCEDM0ZRy5dKGnTkdQ1KHxO8vggu5vDNFbueielQDVx69aJHqy5YPeOnSUeK16eE1SfffR0aWWzgbVzCpkyZX6sq6xnLXCqKerp5yd5sabsr7/+rtJ/3S9mRwp6u9ue9sm+0/rIx1+e6l129q2vS4WTF/x8kUvRrm92FnssfyXJpyzj0JmK2k6LUOkcMWPawomObOWFd78oUk2NcanKz2vlHYOil6+MNJ44eLSK4+n6lx9Leg5Eg4K5aUO45trJyxeLmtUWibNv4MwFMREOg5YjCxzHzpzY17ce5prLn3ye2+EX/8KjQXV79+zMZ8avXbGUufS7HZU+0yaIr+eWGxQ+46IXzg1yEZKlrTL1WE5BTYdBbOcdPm7+3BA3ke7yF98ebgman8DnXZPMTNDtHDTpAAAAAADwE4S0MgAAwMNlVJllRu6sklFj4bGThxr9/b2dPcfM2DJZwBAZyy5u318iipq82E939VTOzp3irVvG9WcjeW3Zge2Xyh0j5i5xaLh45dQ3Z+XPzwkqPbfzTIP92Og5nh2Zp7N2H7J7YVX8+tj2r69Q7IbEiaq+DCNjF7JqedOf9lY4zV60JEJkukLEaQqy1VPGB/PXCotPX8kat3BCS8ago0e5DsqRisIGtG+vyfji5OkW14T50+QVWacOn+TtVi6x7cI11uhiJ4VLrhUUp6be8A2bMkWSd7HybGpp9BOR2rQzx/L4iKRpYWzdhdSruwWOL6/061uuLfGMCBLnF9VVdk7wsGuprDYLff2C9AW7vr1Wq/Sdluhpup6TcfSkRblyVeTwMVYFBCjockt9JyerbzPyvLGhrdMqqmu0sh5efuaSgweuN3mNmTvNrulqZuaRTP+IueNsu3E3siudp0ROkl3PKLqSkhu4IXHOrPpDZ9SBKzdHud8Mxe3BpNJjJw9cNXvHRCfZtWam5+76Vvj00xM87oibVV1wLru590lG6j8x3N83Ojm6YntW3rnLurpCgyx0xpxwKRXbNi2/XD5matSk+qJLGecOOrk+PsmYtuNMuloVNX2Sm7rs/OVz35DiuYUqW1P6yrQLDt7+ofZh0YMnHR5GBoMJQQAA6JVWavr0nLaydbhvCAU4C7ZOV04PESNcAAD9am40+fq4IQ4AAAAPi9FVwxCHTF6XTKczq7NO117miWFFzuExK5dH6PIqO1i3+dMCAmS8qLZ8Z3ZFYevYcTf30peVl+hFofPGhQUIgiz1eQdq8ko6uMJ6ozQgcWl0pNjsIZLkdzB6oUQpZW35SzuppD/HyIgUClsdZ6FMrhCRLXfFSMcumD0/VNDMNn58ukvdYake4ujjXF0HpSlFt9oXq/Pzb1jsJ4yZFOLCeumKCi9fz2tIHt+9EesTPy05TlFjqCrLYCcuiJ/tqRGWV6dodV08r9cZeZ7VqvXsmDErHo+wiJQD1vJKgiO8xIU3yiuNUzwbqrpY33BvQ+GpG2bZ+AWzkkJF/FhR6/vninJrjZHOw8aY9Qx0l16qrq03KOo7lW6O5paWRo2wQU3OkR4OYsHM9fOF9vYiXUunkCFOp+nqrXbBesTNWDbTkRq4ij/nqNu7BDKZrHtuWZFSKb7VyYHBpPqcfC3jE7ty8TgnxuppbPnsUnl+w3gPr9tSy7y1Lfd0282uOc0ODfVXiIOTpowpPp15NIfEHgvmB9szZOlp3WlywqokN4FRpXkvtaCgRu2uyW3hneMTls9wFfDe1LD3VH5Z9fyYnrZcE7csiLWlkrn6wZMOAADwMPsgVdPQyQ2/TWWr9f3TmukhzggXAEA/pJUBAAAeLqO9g5/Ub+r0x6YSZ+xqqmu4fjHz7PUrx/zcojVm3lJ/7KMdx3q3YvhOTX99X76rU8/xpoJ9Owv6nmE1HWpNF88olQ6244v8pkz1sz3PjehOwIxIbstFkkDY/V+eJ1PnkEd3HS5PyWl1Gp5XZ558J7PvGUFnV09JYkYsEdm6yDLdB5KKuxthmL6WBEHT4yZ3XM25ennPFWJljmPnzl7uJr8VmmC/QHFVVXlDm6mhlXGNCZV2pet5VunqbBskI1e5yJlyW4b6Hp8hhT5evqLy+poKeSPjFRtiSCm9USho5KQRgQ6sqKP52qVThR0WidJBdFsFZanM1ldeKBQyvJnn+XuG0ajTWkjsrOpZKCxwdrVn+aabeeoBwRYH3arU0f+kwj92nLLgolYSFjnBqT/OrJNLTxUSscrFnuG79FqtTsszga72tr0ZpauLgJr0WnNvd1UuSiSSAQDgn9M908q96js4xAoAYCCsWQYAAHi4jCqzzNWfO743hx+7bP4sH4VHYLCbuC23NK9LY5XKWEbiv/a12WNExJmNehOJZKy2sXcvxpb0ZBVTH1u70J/tflmntzIia94N4hu7Oi3kKTbfuJpd2Ok8cZZ/z/YjyIreRiQb6uh3397WPiOVSBnWI3H51pmOLFmNOrNFIJLUXBj2QBYD6xy7fNlcobaysCT9TGFeasGE6ITgm1lXRu4T4S8srqy8YGjhPSaE2rNWpYzhtC1tVnIS8vrOVh3PuslkvZlqq7Vnna/FbL7zMIzMPcCdSkuKy7SqicFuXZevXr9m1YndA70EpuLskwVd3vNXbYizazi267PL/4OZl8gUQjK1dnby5MhwbS2dHCNTjOz+fLymPD1HSywZivIzW/ym9d3gj29v1XAkFZg6Wzu7Ryq3U1oUDN/eorGSRMBrW1qtJJYqRKS2DfKOu/WNdtIBAAAeSjIR8/lTbhxPG/7UiGgAANzhnmlla5lg1mJB1s17f0sd+CmLrO/9igsZ6nOtJV+Q8L/p82+tEYLhP97Qte3CV//ClFhpxgbLB8/xzv2fVXjm1KdsR7J1lR8mBwAAYAijyiyzLn6O1tP5aTuPdUT7OAsNN/KL2kgZG+oSqPOVF9ScO1bI+VmKz1/LN4c+8lycw83dlCH+fqKLealX3Cc7avKy0srEM55aEh3hLq6sPHXQQevVkZFSqg2dFc8wnIBheF19abPa2d2hv2ssK2B4dU1NfWSYdKghBEQOPnp80BB1CxnBzfY7p/hFumafybySpgq2ay5OvdDstmDFJsfhLzgM+fv3HW10njJnjL9ILGaJVSiUt2WwpSERHsKSyuwyck/0dWAYigz0Oncl52iaKs7DWJBTapZGRHnLGIGDSsA3lKcelwRR/eUq652TwCgCAlT82fZWuwgvJ0etG3PheqcgKMpX0pt/tXbWVudd6srK7uJIeteELMMKWIYM7RVVnV5B9hIaHMzAqEhFflb23qMUZddy5YqGdY0e6zEoIz+wzrJtWbLv1LHyspNXig32U5cG3zh8Le1oceQjEXa2F7nWy+e+E4Wo6q7n60WB43xV3rqxToXpl88fkIa7tZeeq+NVk4L8BD2Z5aEmRe3s0JR6Or3BadraKUPONAAAwMPuP1c6BTgL69RWhAIAYLCRrFlm7Lgd5y2Lez7uaSvYn20RvhFp3rOWv+9vRJpyBE99SC9+YX5Ewb76qPDXY8wfzep7qe6g4Ok/MOsnIbMMAAAwNHZUW4v8Jj+yZkK4Ult44WrKuZJ6kff0NfPnBgjlY+I3JQcIy6/tP5xXbxe+clPswMQu4xCxcn1MgKnyxIFLmR1O09fNmekhcJw8Y/V0L0F1zrEzdYKwSWsXBSmJcQoLCbS3lp3NKtXdSpmynv7R3jJtwZULNZYhezX80QdehNxq3+CYsD5xmrv26tFzJ/MtQXPmrZ5sd49rEUYZs3j6FC9T/om0PUeutzqFLl4xzv32fRShfn5CzkoOYaEq1paJH7tmTXSotPXSicxcjf345LlLx8kYEkfMmjLWlau9mput8RznP/gP6KxroLuSIaGHq7tA5O7Z3RTrHuihIJKEj0+KsNeV5JwrovBxzgKuo7xce5fuyoLG+zkLWi6cLG8f8F3bAcFkQ5PnLo5xNBReO5HeyAaMW70+2mtQX3rqLGempPT9nM5q1ZZfO56nl4SMnxY9dmaU3FR+9USermdbQeCkQFN2dkatIHhm0ooYJSN0S9wwK86Przx3Oa3E7DV5+sZ53pJhJkVn1TQ2VFa3afFxGwAA/hk9PcNuRqjUaOFf39mKaAAADDbaUhjKQG5VDFXXUPcHCM119sUNIv/JorFrhX/Ko9uW4PB09UvhrCSR1xTRvH9jrxtuayT3OGtItj4aTFIP7uVVdPQI2/u69Qb7yl8YX3dMCwAAwF0xer1x4O96vcloNHt4OCI094PvPP/XPaeMUU8/N8mL/QmN21J05nc7KgNXbtoQJcJZ8NBpaGiXSEQymXiYbYZ/ZzAYTAgjAEC/mX9o7v6vgLGtUP7vI+oOve1vvAkh0rfW2+618NqO1nOlfVmNtNdcES4AgH73XLNsLRPM3sD88uaaZV0N+/OnBA7/x/y7aPa1xYIbz1g+XcvX7xMue5feP2JJrOirhuF+Sjj1XXr7U0uykvnoZeFXEyznf873f3F054vizxLMBzfZVj0bjguD/sZf+LvVn2M+3CqseNKq/L8C/W/M/x2DyQEAgJ8cqXToTNHAPJIQYXpQeENnden1wmZymuLvwSIeAAAAP2nTQqRzImWeDsJnv2hytxf+dpXtprfvp3T0p5UBAOAOI1mzzGvYTRPFts9bPJnMFPaoJTWWzJnMMTH3+VreTkB2y62b/yY8mE2J9n27nD7Ehj9qXuRJDPFbn+Lfe4et+Jk1tPf7mjzTpSeFsq+YBisnuYF0POX+RbAjwnIojt7CrAAAANwdMssPDNdSdGBfkckzcnGs808tsSzwGrtqbYDcW4DTAAAAoNfZEsPRPN2CcfJvn/NwVgrEAjqQrfvyghaRAQC4mxHWWd5+c82y+rpgyxbBe2u4N9uZdleu72ujLO/nzuS3EfVmljmmvpkyPxZO+aKvBSdv/tb3dhleIaOuLoYnW3KZ15FOQmy+4Oen+D98zisZBpMCAAAwDGSWHxiBz5Sf/euUn+bYGTuX8EgXnAMAAAAD/eZAu7eDMMrHlv/IvWH67eF2xAQAYBijrbPsEM4tjRCcrCLWhXdoZuo58hTYUsm1zbyz6uZGLO+kopkbzN8ss/3GdzBXmyliwJKYoEC+qpwsRCKiqgpG4s9JCtjr19mFU20bmYxEj4svv2w+/gyPdTQAAAB3QNUGAAAAgH8IK0ev7Gip67B2/3Q/sHIICQDAcGpuNI1uB4aXiKhLywjH8fMN7O/2MDqOyg8Jvmznl0y4tdWsedzlvwqONxJvYL76tfBnR25rI2oeJz0p2N9InJr9ZB8tWMQFbLDU5Ziau3+umV8L45//3HQKaWUAAIChYM0yAAAAwD+KxsCv+KABcQAAGInRrlnu5unBZ59hGldzv/mQfvHvwjH/l+QB/Et/tCQrydq/zXLr3xoFb64VPWmmiCTrX57hB34MFkdb//ykcNtjon+x0NTNlj/OxDwAAACMFKPXGwf+rtebjEazh4cjQgPwEzHwnp53M/w7g8FgQhgBAPqt/lNrs/be65M9VeyOp50RLgCAfiOpswwAAADfD6l06EzRwDwSqmEAAAAAPEg/n2Pn53SPr00HOAteTrRDrAAABkJaGQAA4OGCahgAAAAAD9LMEPHMECfEAQBgtLBmGQAA4OGCNcsAAAAAAADww0NaGQAA4OGCzDIAAAAAAAD88GpuNCEIAAAADxFklgEAAAAAAOCHhzXLAAAADxdklgEAAAAAAOCHhzXLAAAADxdklgEAAAAAAOCHhzXLAAAADxchQgAA/3NSqRhBAADolVpk+Ph0R0WLZZhtAl2ELyaqZoZJES4AAAAAAPixMRhMI9kMa5YBAAAAHqR3TqiHTyt3697grRNqxAoA4Lb3xsp6BAEAAOAhgswyAAAAwINU32EdyWZ1aitiBQAwUGCAJ4IAAADwEEFmGQAAAOB7IhMx3z7n/s2z7ggFAMBgWLMMAADwcEGdZQAAAIDvyX+udApwFmK1MgDAkO65ZtlaSvHz6CpPTM+vUkeaupQ++t8UOtTnWksuTf4Vff0dRQqGbZSnzC/o5U+o2EqzHqGPf0YuDGX/gSa/Tb2FjVhHOniVFoowPwAAAHdCZhkAAADg+/D0DLsZoVKjhX99ZyuiAQAwWEVl/T2Ty4wd7b1CS3vuHq0tp2cfoVfG0MENfbnm+2DKpsfep59/Q48p6KX19Mtx9GkiVVXTknfoq0U9R2RIgrQyAADAUJBZBgAAAHjwBIxthfJ/H1F36LnuXxNCpM/MtOeJ/mV3W2mTGfEBABhstHWWlUG0dhL9upqsRPpCeu1faX8xKYPp1f9Dz48fsB1PVz6jlz6lIg1FLaGP/zdFSm+9mH2YDIvoiRASE726luYcJMMsKq+lkCBSyDEnAAAAw0GdZQAAAIAHb1qIdE6k7N2NLhIh+TkJf7vKiSH6IKXjXKkBwQEAGNJo6yzrqum7XJo7g4QG+tdnqHk1lWTRoc30u610vOvWZm3HaPXf6Vc7qek8raimjX/sK3PRq6yCgkKpd1FyYCgZK6nBYsssp/wneY0l3/n072du2x4AAAD6Yc0yAAAAwIN3tsRwNE+3YJz82+c8nJUCsYAOZOu+vKBFZAAA7mYka5Z5Da2J7FkhxZPJTOFb6HwcmS/TEQltX092QgpfSY9/SvuyaI593y4p+yliCy3xslXMeGErvf17Kn+FwnqLL/PUpSeFsq+YBisnuYF0RlIG0vJn6RfTqf4ELX6RPI/Rs96YHwAAgDuNMrNsLt/xh0L/5xbFOfSVsdJmHnv/etDPHwnF94SGZSpJvaQekzDF/ftYJG6qyfr7niLB1OSNLnnvZ7g/t+lBzU7/KMzXtu+pmrxuRZhgtE3wupqjf08vcpz01BLm0Ae1E7fNcL9y9Et1zAvJ7qNui/j2nLTtJ5sClq5aHDrCvc25O3aWTFi/KlyAkxIAAP7RfnOg3dtBGOVjqwaae8P028PtiAkAwDBGWGd51806y+pCemQTvb2O/rWN2l3Ju/caX0D+7pTXStSbWeaovokuf0Dj/9rXgpMPGfn+5kgho64u4m0Puz+tkE5CMgX9dnvf64HzaWs4HbuMzDIAAMAQvpc1yzxnJVbA/IiG3Xvd8D0dy8rxAmtnXUNz4PczIq6lpNIycf7jcQ6MftyaOWLJ6FuzWjmBYHASvH8UopA5ST52gvsIMldfVSibsHVNiJLXJ65z7m7DdP+DttQU1HosWj9kWvkuQ3gw/qGNAwDAPw0rR6/saPnyaffux90PrBxCAgAwnNHWWXaIoBVj6Xglsa7k0Ex1VvIS2lLJN5rJ2eHmRiw5OdDszbRnRc+HlA660kiRAz4HBwdRZamt3oWIqLKcJAHkXk9f5tLyZLLv+TwjFJBEgskBAAAYwgPMLJvqMi4evnij1ShyGzNxSXKIK1N74P0i1znyvFOd0U/Oi+FrUg9m5tR28faesQsSpgdI+9OOuuyTH14PfHF9sIzIUp7+QYpy81Nj2cIrh1Ir6nSsQ0B48qLxAQpD5lf766etXRLEEhmvbd9XG7em53EfXtd4/tDFK5VdZO82Pmna7FA5a27LPJx+tkhtIJFjUNSSZWO8BfWH/pgnjaHc841GgdwvYcbqeFfxwE+AHdW3d5Ip3nfgjEPik7OcBR1F2z+vGfN4ol3a7gvCAK6opN4kcg6NWrIo0lNCxsbi44dzippNYmff+EVTJ3uK+frMT04K4r3rT1d4zA6pO1PTZdl/RLZiYaJff5+N1ennD1+sU5tZqYvf7OXxE1wGZkitrXmXD56ubDSKXEPGLlwY4SG2thXcERPqvHz86wZ3r7qCfDUvcQlKXhMX0pSxN7NDzaZ+K01a7ZS3q2fNskzfeP5AekaVSeYXGmAqtSasWSi8/GGq3WOPjVExZK3J+Lg75o9F8hlHv+0MHtuam6Wa9txcSdZt0YvgL6bcHMUcp/SUihjbmuVBAxdpBnXJdozeOdKU7j9c2dVV++U+4eZkSv22Z81y/4jN6pwTF9IKW3UCVci0+EWxLgPuq0G8vqn79LpUrrHKnCJnTZsXZdd6ISWl0mRoOHhM2H269X2ZTX1pwBCSVRVp6SeuNWlI5j1+8pJEX9WA86WrMufQ8aLKdqvCO3TO0pgI1Z2ZYlPj9UP7s0s7RZ7jfIXXNeNeSPS5OmzjfNXut8rCX0ka131Naq3e+3Zp6M+TQq+n/KlAEaCpKGzlZO4Bs5dOHe+M5dIAAD8hGgO/4oMGxAEAYCRGsmb5NgxJhKTVkHAOLTDQf++iL9ZR/QH6rI3en0hU2bdVYjK9+QkdjaNkB/r8TXo/nC6F3WojeiFJX6C9z9EaCX24mxb9mqQsbf8l5TnQb+OoMY3+UkH/EovJAQAAGMIDW3epv35hR6ZoxhPr33g5KaL9yu5zrbZ1OdbazDKnZc/Pm6JUp++80BA884XXNz6dJMvdcyFfd2tfWZCPe+2NKtviVeuNolp5mK9DU+6uw20BK1a+vm3RbHn5rkPl96pKqM89mJqvmvL0qxuenqMoPHC1zEy6gqsp7X4bt23+5bbkqK6s88U992G31OY2h2x5Y/Orm4O6zuYWGQe0wbUP6qQkLGmiQ3bGlVZdwck8a1xstC1Jaqko6Bz7yLo3fj432pCz+0yTxVKf8u21rvFzXnp93abJlvM7Lpf1LMTl6ooKpZOf2TIxelbSLF/FuGUD08rEt5WcvMjFPrnxl2+uWe3fmnqx0TqgL9a6rG9PaseuX/36y0mRmqzDmZ2WxiFjwjXn1dovXfPmL1bNd6w+c7VNGBq7IsbeI27OuliHmwczl55My3eIe/bVNevC1YWV1ruHkW/LLjNMXfjsQk/jndGz+swcNIqhB35nl/pXaDF2IcsWBij8Yh5fHmx353pma1XKqdP60A0vP7Lt0UjuQuqpioH3yTAWHk7JFI5/fNvGF1f7th5PSasjj/jExABJxKL+tPIdQ/DQXD27t1iV/MyG17bGe1Sc3ZPR2d8TvqN4754al+Rlr72xcolXw8F9Re38Hd1pObsnn0lYvO2VBVPM1cXaUTR+O66zuJqbtvjV11etCGo/9l1+M4+3HQCAf3JudiP6I6KXA/7WCABwm9GuWba9l3pSVio1SOi3n5BqBwVH0/y/0rY/00K7Adusoq8W0q+Wk1s8/dWevnj+tgVW4gn02TP0zgYKXEqNG+mt2cR60sf/j67/B/lPoJnv0FN/prXOmBwAAIAhjH7NsrXx2PufH7/1O88GBRGZK/JqXWJXhtkLGHKeMs33Ympd+3QnYhQRsSFuEoZrqirQ+y+Y4ixlSRo6fpLTgZIb1nE3q/QySu9Qp5ySGmtEYGtRmTh8naq9qFobFhPnLRGQJGxGhOvHVVUmr+F6ZagrqHSO/ZmXsrvJ4AnLF7ZKeJJGTn8hQqwQcUaNmWN4o9Fiy+mxqqg4f9v6VDd3L2mj0Ux085tNXMuQnQyaN6308x1HBdLQ9SvsWeK6m3CKjp7oKhKQ0+RZwVd2lleHMyWC4NUTHSUsSaKiJ1w8UVTLBUmJRN6TY13ld8neM6qw9c+Fy+QCi0FnJsZoNA1IOXKNhdXWMQndR2HJcdLCGfY6QXvx4JgE+XZPYVDEVC8xQ+Tn52BuNg2RtzTX5RbZxTzrqRCQYvzYMWlNw93a2CcsIVDefVqwQ0bvjnOhrnrwwN1G0qXBuKb866IJm4JdRN1nUFBCVO7ukjZroFvfKWJuuF5uN+lpf0chQ56R0yMLjhWrE72Uww7BUH692SdudqCSZcgjId4z80qtdmpI7ybakor6gKh1/tLu9v0TIn3fLa/URzoOKEdtrS0rYIPWRSq7DxgaF+Jhq9N2r8YnD13OWuAVMTPSrntYfvHR4ZlXC5ujXN0YvPUAAPwTey3Z4cPUjqrW4f7/NtBF+LMkFWIFADDQPdcsC0LoUs5tz8z9L6rvfTSW/rL39s+6UZR1oO/x7Jfo6kt3bXbSFkrfctsz/vNp33xMCAAAwD2MPrMscE9+8Y47+BHxRo3WUnfu6EcZfVvJVA62TCQjt+9Zm8prdVpt9YFP6m9mWeUBPGe7t0IvRhkcLLtc2mKW1pSJfFe5kP6aSaFS9L7MKBT2rLHLwA9Y2HNnrpLX6bpEcvveHDEj84n06f5frqPpwuFrBU0WiYODvH+JNCO1U/R2nmFuz+/drZOOUeG+KWldsSGuNzPh9ipF7zaMyt7eUKvTsgalu33vU6xCZWdu0nEk7R6WQjnMonBeV3bm4rliDa+wdxWZ+NvTpFqtQenRl5QWOXuPceaqC4aIiW08Spmobzx3OZBBr+VkdvK+4NgrmbbBfbn5QGov722N9ENF784RGIYY+Ei6NJhVr+nqKNr5Xd7NXeQRt2aZNxl1nFzVt86ZtVfJ9eruwQ+dWe4bAm/oMkhU9qLefUQqhVyv1/E3p1qjN5dlfPrR1b59VE6Mheu4duarc61WYv3nLF7E6LoUjsqendnueWRaR9D4kJllhrVX9nVcqHRUGjS677PKNwAA/AASw6XdP4gDAMBo3ceaZQAAAPgBPaA6y4xYJhMGTFq8PspWtZg3dNZpxK5sa0/21pZEY2QSuWPoiq2TPG1ZSGtno9rqKBq4v3OIt2hfTZ7wBhM63Y1lWuVinbrLSo6srcCuTmOVyCSMqT8Byht1+tuTy1Kp1NSoNfckq3ldeWaNIDJYn3K+zDXpmQ3uMoYrO7Az/Z6DGLqT1oZLefXurnQppzIqLtCWvOY7O7o4ktsO1anVSCQyuUCq7dJwZGfrrq5TK5LJerKtDMPePYWozck41uT92PNR7mIy5Z16u+i2V2VycZfGljy1Vd9oLL/U5hg6VExGNDsSiZT0Wj3ZMrG8Qds1IGPb+1+9wdCXpe3PtluKRxA9Ri4dYuC6+zqFWIlM5hz/yMK4nqLMRnWrWnDrS8KMWCJjdR1anmx/0uA1nXqp/G6DvzkERiKXGms7zTzZtrRodHqpm+zmPjKZRBYZu3WJt+0fAGdorjcq7VnZxMQXJ/ZtYK2QSHS67lApGOK6dDdjds/Geb5nS1sqvK/oCM91dml4cup+1drV0SVWyPC2AwAAAAAwhFHXWQYAAIAf1IOqsywKjHCrvZBVqrHyls7sA8cOFtyWX2TdfEO4srRrbUae11Vn7dieW397sV/W3SfQXJqSxYWGO7HEOIf6yovzMurNPKcrPVvY5O8XIBFKxOaGGrWZ+K7ygqyG26raMjKvCJ/mjPRGXXf7lbnHzjWbxLzVwokVMjFDppaya+UG673uyD5kJ7mWwqM5dnPWJM3zqTme3tLzvVauLScnu9XCmdTX0kqMwf4+Pn4hltJz2R1m3tqWl5Ol847wHhRYnrNYb//damWkMrmIeEPLlexGq5Uf0D/WM9yHy8/NaeuOZ0dWyuUitcBpiJiMbHLEHhEB6qsXu4Njbc8vKOjoiZhYJGxrqu3iyaK+ernGMGgV+NDRu30UAs8RDHyEBG4RwdorpyvbutvS1JzYnprZOvD8co8I1GSeremw8sbG6+cLBaFhjvc6kjQo3KXmUm6VjuP0TRcu1DmHed8s7szYh/iqSnIu1Bg5MjdcOvNVSr3x9ggIvP1D9GUXi3VWTl+eUdZgHUnjIolQXVNr4slUd6mo6uYu1rrr54q6ujteezGnUOIb5sLifQcAAAAAYDCklQEAAB4uD2jNMjF24xNWdV449pcde6wi17CJKxOcWKq99brAbfa6SScOpX6QYmTs3CYtT4i8Y+Um6xwaxGSU+0b0LBhmPcavWXDl0O7d5w2syi989dJgO2JCE6Jzvzv2TobVqvCN8BXffnzFxOUzNQfT//R7Pa90i1mWECISWaZPzP/uyLtXxPYegTETvVLPpmcGjR1uEIM7KdVk7imUTF8UoZBQ4oSrf7mUEZXsRqx3mGP57j2nOnhV0Li187wlIpqzbsLRw8ffPWEROXvHr4sNkdxRsEPs6iVN2bv/5Lplc/tuf8fYRU2cUnT+k3ez5Q6uE6JC3VMyDhV6rYjsW4or9ItZNzPj0FffHjcJXcJilkyxFwoHx4Q6RzQ7sqhFM1r3nfvwD5xTZHiYR6tARKx72Myw08c//vqghXUf4+mivmMXUdjg6IUmuvWNYoFr31aegweuuc9TSBQ6P0l99OKX76abhHZB8bMWBwy8r5F0zKJE9eFLf3v7nFXqGDE3aea9U9iM46QZK7UXjvzpGy3JvKKmr5qqYsncd7q5jF212HjowHcXu3iZR9CCpWEOdyyBFnvPXR1+8MD+t4/Ig2N9/cVdIvZejQuUsbNc9uzd9XuzVeQXGGBn6t1SHOCryDr+7gG9wNl/3ppob9yuCQAAAABgKFizDAAA8HBh9HrjwN/1epPRaPbwcPzee8LVp+7fZYp/Idl9+MwbZzFbBSLRD1aolis9sPOSz/JNE6UPT61cQ2latjp00mRPoVV9/ZvP68Y/kxTVVxOYM5l4kViAur93MjdePNHkkRQVIOW7CtP+kuH66GNjHEcUJt5isjJiYe9pbMw99V5p6LaVfsIf8VgbGtolEpFMJh5mm+HfGQwGk1QqxlkDAAAAAAAAAPBPYJhUz8A80o8k38VZdPVX8y1hy1zvuaCTFYpQTWCUpN6BimuHD1w28ZzALmJRwthbt5pjxcgHDknkHOhRcvizvQaOZ5ReSUvDHUeafWeEYiHiBwAAAAAwWlizDAAA8HD5UaTA+M7SnZ9m6SJi1/j++JPGjMek+Oly0cO1yFfmO27tU+Nwuo/qn4Z7zPQtMf/TVkR+45Y62qEABgAAAADAPSGtDAAA8HD5UWSWGfuwja+GPSQRY5RefkqcODAyrMo9QvWTGKnBYMJ0AwAAAAAAAAD8dOBr+wDwP4UiywAAAAAAAAAAPzUoWQwAAAAAAAAAAAAAo/Ng1yybc3fsLJmwflX4EHVluabrB3MVc+f4SmoyPjoh27glyvkB1Co2laReUo9JmOI+fIrceG37nqrJ61aEPfiCt/3junVXPOI78jLS+TELopSay8c+a4l+caHnw1xpt384dnzjtT/vZ1Y+PcHt+6szPcIpHhlr5a7/d7rAYhsUzxPD2IbBukQ9sYI9dPB7HhcAAAAAAAAAAMBD7D4zy7yV4wXsqFJ9vKGjqo6sRKxbxIqFrP2wKTyeaGQpPmtnXUNz4D03E4XMSfIZcB81nud7s4r/M5zVytLNcQ1kam+q4UL5H2hSRxy9ke5y/8PhOSuxgv9RpEc0xT1p4hE0JghY8y9P2LZvy/3rn1unvT47suek4Bqv4b0AAAAAAAAAAABg5EaXWebqMz85KYj3rj9d4bl+S7Rddc6h40WV7VaFd+icpTED7lTGa0qv7j9eXKOxCuTO4+fNnOfTeGB/aYdG8OVe4aYp6v3HJeu3RDnzutK09BPXmjQk8x4/eUmir4qvP/THPGkM5Z5vNArkfgkzVse7iq2ducfOpRa060nqPTl+5Wwvxc3u3EhLOVPTZdl/RLZi4WzXlouHL14q11hlTpGzps2LUoluddxSnppSEbNuRXDToQ+uWUKspXkdZrFz3MKxbFbmlRod6z521foJvvr8z3e0eDm35ZR1kdJ1wrzpSWEKlhvUSdac++13lUFR5svZ/NRJgvS+cW1eEdKbLreUZuy81N5Oqd9IEhcJiNc3nf/m4uXqLsY5aMGa+DEqhszqnBMX0gpbdQJVyLT4RbEu0iHGyHdV3hHegZl8a1vBlUOpFXU61iEgPHnR+AAFdV4+/nWDu1ddQb6al7gEJa+Jsx2rn7kt83D62SK1gUSOQVFLlo3xFlvzd+0pdAnozCxqtgpVITGrl4e5Cu5s2ae+fzhJ6wK7o64rPXl0R3aLTuTcHY6kYCkzxHBqD7xf5DpHnneqM/rJeVNu/hlBX52z/3BBVYdV5Ow7e3lCeF3qh9cDX1wfLLPNUPoHKcrNT40xX00/dPZGq4lVBUQtWRFJF29N8UzVjdSDmTm1Xby9Z+yChOkB0p411J3e4ob8BrPAOSR5ln1xal65mnOMTtiQ7Du6Gy2OZFx4wwAAAAAAAAAAAOgx6goDXF1RoXTyM1smuGuK9+6pcUle9tobK5d4NRzcV9Tev6iVa7l4rFw5Z8Uv3tz0QrJd8emiRnnQ0mUhKp8Jj64MuZlm5NVXz+4tViU/s+G1rfEeFWf3ZHRy3U9banObQ7a8sfnVzUFdZ3OLjKQvvHK0yXfDzx9549mJsqzMq839h2F9ZibN8lWMW7Yw0c9ceDglUzj+8W0bX1zt23o8Ja2OG3oA1pZG2dQXf7HxycmWs3uyrTOWbHtlQbQh/3K5rUQC11xZbh/73OsbtyY7lO5Pz9ZwQ3eSN+RfbY/csHpVTMigcZEwJHbtVEfXKYkb4hxZ4jXFN2jmkldfWznPoeZMZhtH1qqUU6f1oRtefmTbo5HchdRTFZbBY+Q77h5e2xrb3F2H2wJWrHx926LZ8vJdh8q1PU8359XaL13z5i9WzXesPnO1bWAIdAVXU9r9Nm7b/MttyVFdWeeLzT2ToCsstM5+7pFfvDzLv/7qxSpucMuG24bTfYyqKqf4517b8FQcm3m2vIMfYjg9ca7NLHNa9vyttDJxrRcOF0sTl7/+5voNIR2nzt0QBvm4196oMtm2vlFUKw/zdewoPnbGPOmJ9b94bVGMKedMntG7f4p9OtJ3XmgInvnC6xufTpLl7rmQr+tptamFpi17440VibKS7453TNi89tWnx4uyCq5rR3lij3BcAAAAAAAAAAAAcD938BN5T451lbOkLamoD4ia7i8VsFL/hEjfhhuV+v5WnaY/vmxRuIyxmPQWYowm4xANGcuvN/vEjQ9UsgKFR0K8Z3NRrZbv3lcVFeevYknk5u4lNRvNxLAMr1PXNXZZlEGrX1k6w3WoqgfmhuvldpNm+jsKWaln5PRIc0mxeujUMus0boKrlBE4ezkpvIImeokYkYO3G2sy9RS0EHnFzfBWCgT2IROm+TTlFqvLhuwkkdv4cRGOwpEUYBAFRU7tPopA7udrbzaaeK4p/7powsxgl+4jOwclRAkrStr4QWMcLrzEtxZXa8Oi4rwlAqEybEaEa2VVT36WhEERU73EDCPz83MwG0wD61dII6e/sHGcu4gzGswcwxuNlp5XWZ+YcYEKhpG6+btbjUbubi33YxT+UyeoRIzQyd9VZTaZhhqOtWe7iNgQN8nACHXPpLmjobVVz3rOXvr6Sn+x0jvUqbGkxkpca1GZODzCgWUZ1qprrOvo4u1jN298JEbWvz/XUlWg958xxVnKClSh4yc5NZTcsB2HdfCbECxjWbmXp51LZGignBE4uHgqLSbT6Kp3jHRcAAAAAAAAAAAAcB91lhmlQmlLR3Najd5clvHpR1f7XlA5MZZbi5bbCzOOZTRoWJmzI1nIZYiGeEOXQaKyF/WmDkUqhVyv1/EOxEjtFL3P9VVClkbErmq9cmb33kNGuf/46OQ5wa6iQY2ZjDpOrrLr3ZG1V8n1asPQmUVGIBTebF4o7MkNM/01ehmpUiXufShycJToNZqhOmnb0M5ePrLqwd1NyoQDx2PVa7o6inZ+l3dzf3kEL7lzjIGWocPbuw+v15kUKkVv3WhGobBnjV224dqOJeo71qCO6JsuHL5W0GSRODjIdbe6p1BKB4T7bi0PGI9CrmAHHGOo4fS8Kre3u70TrFP8ismGU5c/f0crcPObMic2IUAZHCy7XNpiltaUiXxXuTAMG7Z4ie7k2ePvfcc7BYclJk8Md7g5xVqdVlt94JP6m38MkQfwPX87EAr6TmKGhMLbIj26E3uE4wIAAAAAAAAAAID7uYMfw7A92ViZTCKLjN26xNvWBGdorjcq7ZnSnk24loJDZ02TtqyKcRTwHfmff6EZqh2JXGqs7TTzZFvXatHo9FI32VAJQZPW5DBx+lMzGENb3bm9aUezPTdPvjOry4glMlbXoeXJwZYe1XTqpXLJfdw3jjd0dZqIZN0PLR0dRmmgUiE11g3VyZHnLu/ckpXIZM7xjyyM6ymCbFS3qgUOVm3n7WP0WDJUePublMnFOnWXlWzlKXi9TmOVyO4xXEtxyvky16RnNrjLGK7swM70u3T23i0zt9/rb6jhCKihJ717+46cQUseszeFJlt0ddmXdu3L9nkpzi/EW7SvJk94gwmd7sZ2x19ndh+3duskXtd+PeX0vlPOr6x2v9kzidwxdMXWSZ62/K+1s1FtdRRR+4P7pzCicQEAAAAAAAAAAIANe787MvYhvqqSnAs1Ro7MDZfOfJVSb+xf02m1WgUSO5mAOH1VZkWDmeP4vudvLWsmaVC4S82l3Codx+mbLlyocw7zthsiO8pr89M/21/cYmaldkqFmGHu6DLPWaxEIveIQE3m2ZoOK29svH6+UBAa5ng/YzPXXjxf38Vx2ors9EqHsGDHEXXytnHdfM5yl0LPAreIYO2V05VtZt6qqTmxPTWzdfAYGdUw4SXGOdRXXpyXUW/mOV3p2cImf78AyfAD47v7I1bIxAyZWsqulRus1iG7d9eWRzOcu3SBazn31cnUCgMvlDrYSwSsbSZZd59Ac2lKFhca7mTLZbde3/3lxYJOTiBTqOQCtuePGL1TzLr5hnBladfajDyvq87asT23/t7FKYyttc1thvs6wUc+LgAAAAAAAAAAgJ8e4X3vybqMXbXYeOjAdxe7eJlH0IKlYQ6Mtab3JbeIxIjUwx9+K1CoAicFj5NePXgy8IV4Zw91xme7xE/E9zbAOE6asVJ74cifvtGSzCtq+qqpKpZ0g47DOMZMia9O//ztq5xQ6hYxdXH0wAXLYlcvacre/SfXLZuzKFF9+NLf3j5nlTpGzE2a6X0/iWXGzjfQkv23d9oMYqfxy2bFOrECh8GdNN8WB4e+cT25JlR1s6iG0t3Zuu/kl7L5y0WDDyIKnZ+kPnrxy3fTTUK7oPhZiwOEEs87x8gKBod3wEE9xq9ZcOXQ7t3nDazKL3z10mA7os7hRiYKmz4x/7sj714R23sExkz0Sj2bnhmaKBs8rUO0zAj7hpP8SPBIhiOgIXO+Qq+ZCzy+O7Dnd0ZGonKfvCzB1zZFzqFBTEa5b0TPUmTWa1xyVNrRT74+TEKlV8iyJX5i4vqnePa6SScOpX6QYmTs3CYtT4iUET/smMnamPbVOcHqDctC7uNkGGpcAAAAAAAAAAAA0IPR62+7u55ebzIazR4ejj/BWPDq/M+/0ia9MNWPxYnxveHqU/fvMsW/kOyOxO0PpaGhXSIRyWTiYbb5Kb8zAAAAAAAAAABAr4F5JORQ4QfEWXT1V/MtYZGuSCsDAAAAAAAAAAA8RIQIQT9G4TMr2eqCZPv3he8s3flpli4ido0vgg4AAAAAd3X0aM1bb+VkZrao1aabt3B58FiWcXAQT5rk8uqr4xcs8EXYAQAAAIaHzPIAIlVgKKLw/WHswza+GoY4AAAAAMDdHD1a8/zz5yorNb3Xj0T8P+5YHMe3tZlOnKjt/gkIsPvoo+nILwMAAAAMA5llAAAAAAD4MXrssdNfflk84An+H3/MvkNUVmoWLjzy6KNhX3wxGxMBAAAAMCRUIQAAAAAAgB+d+fMP3Z5W/gF0d6C7G5gLAAAAgCEhswwAAAAAAD8ujz12+sSJ2h9DT7q70d0ZzAgAAADAYN9fZtlUk/W3d3d8cVFtLj331vYS3YNruCT17OVGjsh4bfvX3xVb76MJXldz5M873tlVqjGUffP7tCIrr7505P1jjfdq6/6P+CDwHXmXjuRq7v2dQF599i/7TttCdJO1eu/vT2TpH3CHuPrMjz/Nbr6tQ4biI/veevd0jvaHGz4AAAAAPFSOHq35wVcrD9Tdme4uYV4AAAAA7vCPrbPM99xlowfXUlJpmTj/8TgHRj9uzRyxZPStWa2cQDA4FW7trGtoDux+IAqZk+RjJxhxl27h6qsKZRO2rglR8vrEdc7dbZhG1KMRHfEfE1nOSoypvamGCx1yRPcgcJu+TimV3CMswx2fJ2YkO1hbrhfKZj07e7xi2NasHC9g2VG1THT/wwcAAACAH7Hnnz/3I+xSRcXG+9yZo7N/oV9/QZl1pPSk+Zvp/20ljwe9wufrp+nQWvoqGacPAAAAfH9Gm1m2tuZdPni6stEocg0Zu3BhhIfY2lZw5VBqRZ2OdQgIT140PkBBnZePf93g7lVXkK/mJS5ByWviQpoy9mZ2qNnUb6VJq53ydmW4P7cpVKZvPH8gPaPKJPMLDTCVWhPWLBRe/jDV7rHHxqgYstZkfJyi3PxYJJ9x9NvO4LGtuVmqac/NlWQdTj9bpDaQyDEoasmyCP5iypmaLsv+I7IVc5zSUypi1q0IExgbi48fzilqNomdfeMXTZ3sKdIM6pLtGD14Ten+w5VdXbVf7hNuTqbUb2snbpvh3j9iszrnxIW0wladQBUyLX5RrIv0VjQs5am9R+TrM9MPnb3RamJVAVFLVoz1EQ+I2Z0t2FXtO3DGIfHJWc6CjqLtn9eMeTzRLm33BWEAV1RSbxI5h0YtWRTpKSFe33Tx8MVL5RqrzCly1rR5USqRtfbA+0Wuc+R5pzqjklSZl9rbKfUbSdKGOEVDRve2N1qNIrcxE5ckh7gKeW1l9sEj16t1IpcQPwczOd02jS3puwr9n583vvPap0dMkXY3LpQaSOY0aUliUpD0ZqLWUrJ/9zm3RU/E2THE1afu32WKf25C3V/3d3qLG/IbzALnkORZ9sWpeeVqzjE6YUOyr/yOk4XXXvvuYqFOX/rlWfHmGWFdd0yKuDtqn5wUxHvXn67wXLuIP3Dwri0ryVidfv7wxTq1mZW6+M1eHj9OfWXnreE7oqoLAAAAwD+Ho0drKis1g58Xz5tRdTSyLyHL6T5ZsP3ZE9wDPK7TtIhnfRp/9227ZahXu7vU3bEFC3xH0BJvMlnF4lufsy6/Q2uP0n+9RwfGUFcJ/dsrtFlCx7bQMOtTRr7YAgAAAOAHNLrMsrUu69uT2imPrH7UQZux49jhTK/Hgsp3HW6L3Lhyk7u59NiJXYeUz60L6r7Wa86rjXh8zZue1oK9+89cDYtIjF0RU39UmrQuVsWX9jZmLj2Zlu8w/dnVbobcM58fsIYl3PXKqi27zLB64bOBcmP2yZR2v8e2LXEndfr2w+eLQ9fNTJpVc7AxYWGinyU7vWdzS33Kt9e6ps1/aaKdJvfsVzsuO74wzW2ILjn3XpcydiHLFjZUZLg/vjxYbiy7Y8RVKadO66M3vbxA1Vm276vUU64rFwfeGTReXXzsjHnSk+sn2HVd/vrQmbygTTEy5u4tLEqamP23jCvjZtmdzrPGzYtWMeVkqSjoXPTYus32msw9J3afcX5uvqr4cEqmMO7xbX6y5oKd21PSnJfPce9urzazbOra56e6SSioo2kvl7AhztF4/cyOTPGiJ9aHStSXdp7Yfc5xa2zn0d1lsoWLt4WL6s+e/HsuH3+3Ob1RVpO8aNtqe+2Vk5+mlU8O7E+5C/1C3duu1nXFhSv5juISS0iyq4DquKYWWrfsjWDrta/3fnc8ZNOWtSsMhV/9ueB6gm/MHU0zyokr4qqrCv0fnxElqj/ytzsmJcF2otQVFQYnPbPFVdp8bZiWJ5lKTl7kYp/cGONgrTl5ZNfFxqglsWun9g0faWUAAACAfxpvvZVz9xe53E/T/+uUkeetpTkPtCgaI1v2L/H/y3Dmnbtklns7NiCzbCrd/acX/i0ls0UYMHP5Wx9smuVGVe9tW3Nj/tri7Z/5vZb1XkzvUhO+iX7zOb25j7YE2H61H0dv/S9auJNuPE5eNfTqG7Qjl6wyin+UPnuFXCz0wmxy2EjbPyKNiKY/T39/lpRExfvo+bcoR0ORifTef9AEBTVdoBf+g85Uk+tE+q//puU+OHEAAADgBzCqzDLXWFhtHZMw0VXEkuOkhTPsdYL24mptWEyct0RAkrAZEa4fV1WZgrovuIRBEVO9xAyRn5+Dudk0xHWfuS63yC7mWU+FgBTjx45Ja7IMc2SfsIRAeXdf2cjpL0SIFSLOqDFzDG80Wga3bK2rLhEEr57oKGFJEhU94eKJolrObSRdGmLETfnXRRM2BbuIGHIOSojK3V3SZg10u3N9AcuwVl1jXUdXmFPs5o2x92qBCwyaN6308x1HBdLQ9SvsWeK6m3CKju4OrICcJs8KvrKz/MYsz+vldpOe9ncUMuQZOT2y4FixOtG9+6pXEREb4iZheipY9IWyIq/WJXZlmL2g+xhTpvleTK1rcGoqdRnzQqRd92H9pkWFXbl216tohf/UGAcRkcrPTXXNZBzwkjjA1+dIVYUhfKy2psTgPceHpRZiHfwmBMtYlvPytHPxDA2UM6zUxVNZYRo2okNOSpCUSOQ9OdZV3huCu7fMqMLWPxcukwssBp2ZGKPRhPLKAAAAAP+UMjNbeqqdDX2515pfd/Sojuc5Xadgyn8sS/uVfPe6XY+ddvvkavKjXblzZ9RtKZ4/80jWQf/wp6cIqw9lPvpEXqaW7CeNeee9CatiZNTQsvv/nt/2pxbdlKn5ab77txb6/GLy4urLT+RGvrtIJGPn6njrvs1frPi7efBVc0/H+lhytm94qXT13s8PReuPvPrG+hfcsnfO7b7mLfnymPrv71xLdO3/BqPuCl0MoHcGrHVWzqKzs2wPDr9HZ6Op6BtS1NGG5fT1Onqp+0OLkb4uprRscimipPV0YBOtqaC1v6UXvqTjPvTBVnrpK0pZQo+/RJP/SF9Pootv0drXKOprnDgAAADwAxjdmmWt1qD0kPcuERU5e49x5qoLTAqVojfTyigU9qyxy2CrfCtVykS9T97ta1wGvZaT2fUWUGBk9kqmbdAm/ZeTUnt5b2ukb7pw+FpBk0Xi4CC/y00AeZ3BoHS37+0lq1DZmZt03Ii6NJhVr+nqKNr5Xd7NXeQRQ1zjMvZhi5foTp49/t53vFNwWGLyxHAHdtgWGMeocN+UtK7YEFfBzTZUir411Cp7e0OtzmDUcXKVXe9urL1KrlfbIkuM3N7u9gHwRo3WUnfu6EcZfU/IVA46nVHooFT0bii0c7K765gZuaxvM+bOgsWMzCvE/UpJlcm7raYreKJvb1eFgr6ThiGhUNgX0XuFdOhJkRKjVCj7lxwP0zKvKztz8VyxhlfYu4pMvBL/cgEAAAD+OanVprullbuvI2e/va7tbSLjjWf8Dn/6X+d+v3TpL38XX5nm9pin+t05mWe1nluICVrpJ9528Y3C6N89M/Xts1Wz/2z3210Jj1rKXl5dYl4b/+EH84ylu17uJBI4bfto/Lmdxe8db7qQIzj3fPycjIw5v7zRUD7kihe+p2O9uJJD6Y2Ln3xlqr2I7Jf8asWYiWfPaOdO7X4lbsmbSa4D7yijbiazE7kMVfli9q8pVU6OPDVqiGWpo6vnWQFtepr8uq+Fw2mKijr0lH2YjIvpyTBb9Yyt/0HebdR4iq7G0a6p1P3pZsbzNC2ezqhJilMHAAAAvnejyyzL5OIujYEnJUNkaSy/1OYYKhfr1F1WslUk4PU6jVUik4wscSuRSEmv1ZPt+128Qdt16/Kx9xGvNxioN4PYn7i0FKecL3NNemaDu4zhyg7sTB+qYUYulWq7NBzZ2fqk69SKZDKWdPcVHlYikznHP7IwrqdChFHdqhY4DL4s5A06s/u4tVsn8br26ymn951yfmV1gHi4FqwNl/Lq3V3pUk5lVFyg7dqT7+zo4kgusD3SaiTdYfz/27v3qKjLPI7jz+83NwYEE4g7iCJIKp7Iy2ZiqyhKF1vNMjPL027bWptt66ndP9pzOp1tyzR1tbZay3bTNk0XOavYKma6XiqvXLwgqCWSF27DZbgMzOW3vxkgCZCbpsi8X4cDB5j5zcPzm+d7nvnwzPMzGOWaiipF3OJcsmGurPXwVHvW4uqNH/ewpDcatZEj7nskTu9qTOUFs963sNCe5+xUH8m5D525RvHpzt/vETXIZ2/e2RxT9cCEQK3z6iPd1PZJcZ1buRPPl6rsA9uKQp94Ji5QL+qP7ViWy8gFAADonRyOdt6c5ji8dMdLm+sUhyW3TAhr0eu/yZ66O/7luY7jS9Je3WsVrim49WDu66vOnN+knz533OgRvsa9AYlhSt6i7A8+L1HO+s97bOTkZF/deufE+dyHu6b87qLzTXsGr1KHUMoqjxwqqe24YY7SYnNAREDDhF++NTBcW1lU7lzL0i/U3/jje/n0E5oyoR78h5Un6guTzZvEoGnC76SY/xdxoEKER4kau7i98eWDCPZvmkK75smFRSJoWOOmzMaB4qGBImOnqN4j7pzYdMAwIVt44gAAgBugS1vUysGDwxzHj2ab7IqtIvPLg7nlGt/ocM+8YwcuWhVHzek9OUX9IyINnTuYPig2svzIN4U1ir3s+IkTFa7Jk16nNRWdr1aErfzIwQJLy1mlYrc59F5GvSTqS85kfGux211Rp+Kw2S/fSBMcMch2em9WhVWxm45lZ9aExoZ2dydeTUBsVNWhXWdN6rHMBds/3Xm4tI1bKaUnU9Z8c6LSoTF69fXUyM2z0raO4CjJ2ZrtPfGhxKSwgvSvSlyLIhym7OysUpujvjxj96m6qP4hHoGxA8yH9xRU2JW6wpP7cjTRMW1sKKx2iBC6AbEB57/OPG1Wz0tl1uZtaSdqDJEREYUn/pdbZVPqL+w/mtO9YF1IPoNCvfIOf20KiY3QXM3z7OpOiuKw2yUPo6dOKJaSQ1mFdrviuPznC6vZ9H1RjY3RDAAA0Bu0s+5AKcsr3LXrwq7dpouu/So8A4x9tUIRUh8/ww/XoRYaSev63Hy62bg4w/VFaXyVoRRfqLV1p2Gy363exQXFDWuYFVPxBau3X1/10ST1hUCL1nuNFCPOiP/kX/5J9QHx7DJxSRELXxLe80XeHrH7Q5Hsd8VH9fUVxZcaV3hYcsTiz51ptV+yOLRDHFU/ton1C8XUYJ42AADgBuha5KqNuGPm3fojn6xf/Nf0bK877h/low0a/lByvzMpKYuXpn1pHjhjapR3Zw9mjLt3XHTh3neXbEw95xsTpNPphBwYc3dMVfr7a998a+sJ72D/lq3TxSTEe2X+d/nbqat3Vg+MDynd89XhMt2tIR65qZu+ONe0oFYXPHHm7YaM9OWL1685II2ZOXqQodv9o4uenDhaOb5m+adLV2XUjfh5YmQbAascMmxKnGXXyrWLlqRuuhT6wMQIfTtH6F9zZFuOIWFkrJchZsLtPpn7D5Q4NxkOjen3bcrGJcu3HdYOezgp1CA8htw7Ib4u8x/L1r6zIf+WSYl3t4xipT6BfvYjX6z5qtxr+NgHb6vaseqzxcu3ZXjETx/rK/eJmjpjYNXOtCWLNqaZBowe0M1sXe4XFuVZpwzo3193dU+0qzopkndc/Chr1srlKe+vOyHFRgfmH9iSU9/055vKs/d9nPadma2XAQAAesHrE+e89UoTOylwZOSsWVGzHokcGShJvhEL344JzMx48rWSgCfGLrq/MVvWjRz88rzo514bcpfedvib0trjBVu/E9GPDJ/3QMRTfxgUJ9fs3GFquY+yw1ppVrRDw+dMH5A0tM2JryJfnlDL0feM8d+y9p0j1Q5rydY3Uo8mJIy/wqsgOUS88qh442nxUYaosgnTSfH710TgLDFWKyxW4R/g3NEif4czeq63tn2E+MnCtln86zuh1Il/vik2fS/Cx4vwL8WSQ8KmiKxVYsoiwUwYAADcEFJtbfNrtona2vq6OmtQUL+f/qEtp3dnlUePGBmstZefXPfxheG/TozzbJzZ1dcrOr1Gcpez4Di9ecP+sF/MjvfocX+yUrV/ddr5O2c8OFjHaOmtLl0qMxh0RqO+ndtcx8oAAADcmp/fxyZTXeuf65PG5W+9Lagh3nXUrLwnJXXGtM1P2pZNSP1jht8b+6e+6HP6wTHfTsue8lh+fooSOG2odHrjwdlP5RyrFV7DBy/92x0zR3lpiks3vbVv/ooi86ifHd8XV/6nf9/1Zrnr3Y/a+BcmbXg1LExUr386de5nltZRra+vobR0btN39ac2vP/MK7uyyjThCVOXvDNnQqDIX/FC4uknT66IbzlvtouvV4sXV4qMQqH3F0mPimXzRZhW5KWIxxYLk1EMmSQmXBQL88W29eKDRDEkRTwXIoRNPD9eDNko5gWIo+vEM2+L3BoxeJL4+5/FUA+Rv108u1AcLBZ+w8TrC8X0CLH2KbHlYfHJFJ5BAADgp9U8R7qBybKoLTiWln6qpF5xaLxjJ4ydEO0pu+kZ6anJssNhuZS5Zp153G9/Hmtg4LhFRbjiaCVZBgAA18XkyVu2bz/fzTvrIz66MGX2/t2h9+eWXutlvElJoenp93GCAACAm2ueI2lvYDuM4cMe/tUwzocQUtCIMQmeup62YLk+b++7n5six4+PJlYGAADAdbFgwfDuJ8uNk2sh/TQN4+wAAAA0p6ULegCpT0hEn57XLH3s3QtiOTsAAAC4fpKTwyMjvc+eNfeoVqlNUhvG2QEAAGhOpgsAAAAA9BzvvZcgdW/Vcf25X/p/4HFvbsk13QpDbYzaJM4LAABACyTLAAAAAHqQ5OTwOXNiek571MawYBkAAKA1kmUAAAAAPcvq1eOTkkJ7QkvUZqiN4YwAAAC0RrIMAAAAoMdJT7/v8cdjZPmGXeVafWi1AWozOBcAAABt4gp+AAAAAHqi1avHz54d9fzz+06dqrzODx0d7bNixVg2wQAAAGgHyTIAAACAHio5OTwvb9bWrQVLl2YXFVkuXqwpLa2126/9A2k0ws/PGBzsGRDgsWDBcDJlAACADrWRLEsS3QK4kU4OeSoDAAC4UZKTw4l6AQAAeoLmAZHc5u8URaGbAHfQMNg7TI2pDAAAAAAAAG6uRY7U6gp+kpPNZqenAHegDnZ1yHcmWqYyAAAAAAAAuLMWOVKrNcuuiyDX1VnpKcAdqINdHfIdbnRBZQAAAAAAAHBzLXKklsmy83eSZDbX8rZ3oNdTh7k62NUhrw789m9JZQAAAAAAAHBnrXOk1vssSxqNrH5UVdXSX0Dvpg7zhvEudbRqmcoAAAAAAADgzlrnSG0ky7LckB9ZLJZ6ugzordQBrg5zdbDLcqeSZSoDAAAAAACAe2ozR2ozWXYuTtRqNaWllURIQG8tB+oAV4e5qyJInUuWqQwAAAAAAABu50o5krbF7VwX93PmR4ri3DtDvY+3t9Hb21Pq+BJfAG4Crj1xaszmWp1O21ARpI6DZSoDAAAAAACA22k/R2qdLEuycx2zrHX+Rqt+W11dV1FR07evp4eHQafTECQBN2khsFrtFotzOKuFQK9X64FGq5VlufNrlqkMAAAAAAAAvV8ncyRtW/e9HCGpN2t4C3x1dV1lZa1DcRKuTwBuCs7B7vp3kuxadGww6Bp2W2/YGcd1Nc9OhsJUBgAAAAAAgN6sSzmSts37K0pjhNR02S6H3e7MjhyOxuiI/Ai4mSpC00bJDTta/PD/pYZy0MnVxlQGAAAAAACA3q1LOZL2yodwRkiKot5aaVic6AqPhGs1NJ0M3HRFQWpYaNyM6OoWFlQGAAAAAACA3q3zOZK23aM0HMaZIgmhuNYqkh4BN2lRkJqXBiG6vzEylQEAAAAAAKAX62SOpO3oKI33VBTRdH/nF0Ik4OapBW2UhmtxTCoDAAAAAABAr9KlHEnb6YNK7TwGAHctN1QGAAAAAAAAdyTTBQAAAAAAAACALiFZBgAAAAAAAAB0DckyAAAAAAAAAKBr/g8gdaQzCmVuZHN0cmVhbQplbmRvYmoKNjEgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMTg4Pj4Kc3RyZWFtCnja5VhLb+Q2DL73V+gPWCuSeliA4UPRdtHets2t6GFm7OmlQZFe+vdLPS15PEl2kQ1aFInHskyK5MeHKIsnAULxHwiH/K/E5ZGfPvL1e71/+yA+/ADCS2/RiocrT+IotSfxsPw6KWWMAqsVeKuAlwDvFZwWpQgULHQ7f4Z0v/I7y+/ApbH3M8KUnkemV1cFYW1Y+VKBZx7AM8EJFOJpHnBULP7kZz0lKnOeQcXxPNCUVmXi+ByJYb3EC5HXXs/5vsy/Pfwkvn8QT0KSH434O5iopVNOPAptx/Lwh/hFfLrB5+YugXFSEi3xL1kQP388mPyrIgtakraYoB20l8bqhC2s617Ht5SGRnrUvciAp5mSx1o80TH0SvvNT4HibIJ/y9vOFRn+RYGmRBycfYJ7hjwJjV4qNByJMSRplGQ8sMZe6nEUA4JhPX2I0Q8/PpL47s/GG9E6aqIUSaJjJnLM7bJxekzqkAu4Br2poOw5Ziyrr86sPq3FappyDKkmQtd0JYMSdTAwRCg6nPrZyxpRYcvLy2UvoIW0Bz3Qs7J3QMepV+oZ1DO1w6jMZYlODjzMzwEQ5xJTmLy8wvaypKbyREfGRYU4p2ON6Gl1rgCMm67aMLvNTCrOBUfdC/6jUkVdqWJRHOW6FKtb5/LITUeVqvXl8wiwy3z2TfTgGMGtoOc6VASSLY7uOBlyU4qb3xu8Tw6L0nt0tuYGGZTjSDk39Eu5wWsx8UBOS86I55Pj+r9JjjcIhX9RMrzVfhTqMNB+Q1q/0obkkHYyOTATZly0SjbFvkFlB7iy/1xM8uaYqcjNsWGAG2WPCgVv9Lzh1FyYQU8lBu4HZ/BjpskR0SZ91hruah0WPZumS0klSbW9S252dgF1T+TNbK03MTN8VdzuK33QbMuJmm++W6wS6Xi1Tdyd0nUDNVhpgEuWHq3EMTsZcTxkNG3V0tJzF9YzsgXcaoYg4TvnkNKrUrikS2Oa5zZSGR5bVt+emJ7HztzOv8QXZOE5RsdrrTRKSwT7+VZ2jO9qJee3ci7JgGWTiUEHl8ZEsRlknV6PBKIEPX4BEi3juyJhdBqHuWg9y7Pxer3VWvFeC19gdcv4rlZbzNG+JDlBbhiH92Fs+I6MjDYJkYCMPUXDegyGYgs46emoBbPWvlhUApWbtjMjt1e1wkV+ni00q+1qVlre223jpzWT1qZse+LiGGs+bxtjrstBo9rMLIHYtLXcFblx89a3bUPVvLHYTduZN9lUZttKfbC+3a+nqwl2b3ttFPrgYpdJZR1H3i6s0rFsKO8HAOlN3Qz/S0GHZOWI1cS4IeLWAtYjTgCOXGkbA7jpqXUWvdQWZpb0RSPOBt+lrxV1x63RysUziyNbFu/FFXWOvn2gmorW6dBRAqDrGTlmoicLDJ0nm5YzyZ6HILFvaUp/EQT4ppXNImJuLJQPjak3pl1S5IbCZaT7jnZrfTdHJH0u6xbXwWqqOt3FpHZFS86+zQ7dnbruZOgG21Fr3X4QCrkvHen8Sag+po9CBx/JBuscn8nyvgXXlGI0YlizZiCmw1AqQKnKtCfz2NjmrpsT3ejPanM/ffMP63phcAplbmRzdHJlYW0KZW5kb2JqCjY0IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggOTI2Pj4Kc3RyZWFtCnja3VnNbtswDL7vKfQC0UiR+gMMHwZsBXbrltuwQ9I4u6yH7rLXHyVZjh0nXbo1hVu0iiybpsiPH2lZVg8KFcgfKm/kH9TdvYxupP0Y+g9r9f4TqqijM06t98pYoyM5ZYLmSGq9+9YAWAvoGDA6QFGEMQJudgCEgDuan99i6fdyzck19OU4xtZgU8ZB5GEPmHRjJw3SPe0KowhsEIzZtCsTQKbfxJabImW3LUI+blfUFK0inMdZGLu73IwR3d2273ft9/Vn9XGtHpSmGKz6Ld4b1h68ulfsQh38VF/V7Qwl0CjogDaO5Jccqi83J07+GvBE1sTOJEBBrdBoa3ssset6m/bVpuecTcJGEadTgsESnhSKThr51oslW5sjgqbiuANkqqKCp49T8MmVPoXR9OdyeCEH4NncQR2treAx6xhwBl7f311jVgKZMkynHkAcOW9MzA2ACysTosJh2xTRSlY5zgCjn1n7VCsPiSrQeNSGapAvtkFC6moSlZS123yOex6kcNowDIUtpkrnvOyGlhKsNBkzS+J3QqcqXCtGUl/4la2SS08sKMeoZSxoikW0OsQDFPGiaAjFcyjhH/Mj3UyDqelMqkkJhFzFHgWh3p80zqGoug4VtD+T7kzGnUBpZFAyvWbm1Ow+hofi818MxFxvFkfBJLvrMb0O3dCSBouLIVw0E5ffBrmClYcYL4lcm1AMSLJ9fwVyyaNGGzTLINfc5UqWV00uw0Z7tEsiF8fD6iLNniPmrkIw5zX5hRCsuo0Tt99EBTMx6uDtsitYy7a5eOWW9F+BkCSvX3a8lF1WxTusLC5f1w3vut1Y6Jhrb4LmZL0GcouieZxNfJ1nNQXULvJCmFve1adevwmKMbLG6Jf2uB52QHrtXFTKxamuDMfuGvxjCjpYXs6j/C+QHAqoG3PpdZPTo5Ya+Arq38stMTk6DeP19eLq4mOL7tf5EH+eDVdLoC2e3XHdXWXHlTQwH80NHNrQTMPTVw073n32443YPM5R4IL3cM1zUZHwR9uzSejQF6SaMhKU1JEvGjblU8ZjtHvWPV1rnfbOzBGgKQJ8BoG/eDkuGifQagmal9pCs7JyYnMu1G1Ku5PRrsnhWDxsRt66Y2/nWfzU0J6rKFmOutFuSK3pYzDH+yTTqCWUROlQ5XNkZok8/li1cs5qT9x/rhqG5YPVKSY573UI4WQetytn6WW/DLEzmih9kSwG7c2xu7fv/gBu31LPCmVuZHN0cmVhbQplbmRvYmoKNjcgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA3Nzc+PgpzdHJlYW0KeNrtWE1v2zAMve9X6A9YI6lvwNBhwFZgt265DTs4jbPLeugu+/ujJMuOG3dIN6fpsCBRHVk0Zb73RKkUDwIF8AeFI/6CuLvn3g23b+P13Ua8/YAiyGDJis2eb5KXOiix2X1pAYwBtBowWEB2gSEAdjsAhYA7dXx/i+W65zHLY+jK7xAiYVv6nu1hD5h8Y88N0jOxwcAGHQJRFxvywNN3Ieq2WJltRMi/Y6Pa4pWNcz8bY3+XGxH77rfDdRe/bj6K9xvxIKQK3oifKUQtHThxL7T1tfNdfBa3Ez4SGQ+QZBX/VRbFp5uFmz8WEWxSpyKoffRtAYBfO4OVgOGAa2QDTkQhN3C6mKFjTAwbbU0OPxR7oqmx+/xs5kgXzEGHA7994SaNMc7ZXrlIcDB34ut5PFdMZypScwyUlpaOMaCMQUxaGGAwMxiYTJdsrObg2wMg7GMgquUorT67Uq5E2xUlpmGkqpddGSskVAdqjC3dSSQlO9XXSara5jhX2wH1Q0ITSOy0PAQDafsRtL+SlnVseTltdb48knwP1zNoJ6B0Hq/iWVs8yLmOvL6cekJGObmY0vk5BITay6CvClpfQR6l1uaie9vEY3mc5XEGCRFYyWeRq4TWlhApLy2YV7SFRc1uYNszzOO5aNCS2VbcR5aZlnPIzaoM3VVua8stGOmsfW173sslMkUgNV2VtbqylCEZyF1IWVHB6UnrHLJyTpqls+RVVn9cRECUwRgaENZIEnwBGPt+KGjsh2t/NNsKsyqS3rn51Inb0M6z1SKxk7IX8uCpqq/58tlcTzPYLt8bGS2E/TU5M/VrPsQoVf/BWJ7xiZjtwkp/ErdpladFvhtW8PNX9CybpOpYadzXet0qH51W5TslxWjLCdaH34JcF6nVryqTKBcxzGps1cMLb1Kajz860NmF+hJlx39SxIaPX6j/exEPCB1W4Rtr+Wiu9FCHH7ulEr9c/HTS+7ol7lX2rjwlnzxeICbMsRQu5/tUCTiM22lsrOH3hzuT2Wz8UeCP3//2zS+AUI1oCmVuZHN0cmVhbQplbmRvYmoKNzAgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA1OTk+PgpzdHJlYW0KeNrtmMGO0zAQhu88hV8gZmZsj22p8gEJVuK20BvikG4SLuxhufD6jD1JSqGsFhV2D6la17E9Hnv++Zo2Ng8GDcgLTSR5g7m7l9aNlC9r/WZvXr9Dk21mYrOfDAWy2bGhZH12Zj982gGEAMgeMDOgOMKcAfsBwCHg4H7vP6DWk4yxjGHU65wL4U7bSexhAqy+cZQCdU7pMItBj0DUl44SyPJ9Ln6nVuFQENp16dxOvYpxazdjHO9aIRLf42Guh/J5/9683ZsHY11OwXyX6MnbCNHcG89paXw1H83tUSWLogpYYiefjtF8uDnT+e2MjmC62lgU5L4p1PYr0bdYRC0iLRC9KohRFGAJ4xBasFnjXu3A6/yaDa/qQp/UvPrUuvggax7GggSzcEv6wmEWbShhHhL9/jbDRONaqspapO39v6WFnkbLkt4TrN1pOpy3TI+mQxCKAlXb/J+TUa3qtlaYx6aki5qRXqOpw0gLoYOOVafMiwO36rAsXO3cuCyy8O1iwbykkTVu9TATUHuWL0gVVRxrZDDDM636XAQ0R7F8GaI3QWhGGxNeEb0AUZT7OCX/HIzmpmmdfvxR2gSm6JPN/srpRZwmtN6HZ+DU5yMA1UedKuBsAVQCtvJH8grqBaCSS5YhvNwNdcv8smsJuvJ7Ab852Mj83/ktDp7+yLWJxy0C62nz8M4K/Xzu0DELk87PJw9rU88ezj94RZtSUi1b4tupxtRW6jjUjRMu4coItyDirOTjyuTTE5Yq0pwdxWEWQWNrcXkmG7xsTPcz+V+jvX31A/z7F4wKZW5kc3RyZWFtCmVuZG9iago3MyAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDI3NT4+CnN0cmVhbQp42m2Qu04EMQxFe77CP5BgO29plAIJkOhWTIco5pGhYYut+H2cx66QFk0sx8m1J/fABQhQPoLAshC2s1SvEl+3/DTD4wtB0smzh/mQQ47aJgPz/jEhOofkLVLySDKCUkJadkRDSLu5P1+p50PuvNxR6PuUMtPU6yh6PJDqbCoSWHuyoiSChZB5yYojyu+XlO3UVW7NhG2flZn6VBG3uompbC2YZXZZR97z5/wGzzNcQJsUHfxUi1YHDHAG6+O1+IZ3ON3x+dulvHc6GDv6bmXv/Iek8iHoGGNn2d+3tveYyHWuaDpmFiOmDFS+4XDDt5BTHCqaUqqnrLwTJri56j+rOFiYkBtA4TEcXz2cHn4BfkJ1UgplbmRzdHJlYW0KZW5kb2JqCjc4IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNTgxPj4Kc3RyZWFtCnjatVXJbtswEL33K/gDZmchhyRg6FCgDdBbWt+KHixLyiU5JJf+fmcoSrUVG+iS2h5TJKX33myie3boQL/oEukP3OlJZ3dqD6/GZ+dLEXY/dLYrPkh0Ty5IXiaP7qu7dx8O7v0ndMUXIXGHyQViHzi5HSWfS3SH4dsegBAggn4CwFEA+hGAde1Yuu+HzxUCg+cgZBjRp4SKwL4gNoSQu6JDJoBTXB/8eLjUKeRJ0iK0zS6UntEEVE8iuR2CeGk8plA5VqJ+XIjWAHlUV0GhWf9Z0H25u7L48nCFUiVimvcrHY4TEE06nl7RvAEdid4XNpyWDNTkowjgcQCYGFBzodc3NbSxMvBZttUfjZPnUhq25iXuZ3iFRh4VWq2UTguCWwJ7NFtWQlEpARAmq5FbEq5Sq6sYUqPWejKc6k5Qi72Gdi0TjRVaxAIXi1jOcxi3iy9XmBi8xLihW11TGjUrTvOa8nHxfg2EOla3LM8mLNFfxfmioYaxw7CfFcD0Ro5quUTADVV11HJpVqxk0OiAOFZbc/2Hrv5bF5EUnzhvu2j4L12UfSy04YRh6Ij3S3nXsDSXrbO2Oq5llK1zJKwvnlpDffzVOQal0JbcHQvP7RVuthf9TnvNq5q4Zd/8oJt+nJHrO6raHOl+jfgrRMpzE2oLzCXaxFVIlnabiSbcL03UIbR7DaI+jnWvCTCkcajEdZy0CkNoovp2bethG3o9ILjk2A4I0cOFw3pCtOmtw0zAJ+34nSTtiLyW2+naC/v+3U/L8J02CmVuZHN0cmVhbQplbmRvYmoKMjEwIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNTEyPj4Kc3RyZWFtCnjaXZTRjpswEEXf+Qo/blWtwAbsRIqQAIMUqe22zeYDCDhZtBuDDHnI3xfmOqtqkYJ0mPHM3BvbYbnXe9vPLPzthvZgZnbubefMNNxca9jJXHobcMG6vp090bu9NmMQlj+b8VdzNSw85j9e8vz7n1vfvk+N7Z6L4aN7Pr7WXLLOnJH6eh8NE573+nCfZnPd2/PAdruAsfDvUnma3Z095d1wMt/Wby+uM663F/Z0LA/05XAbxw9zNXZmUZBlVI5jtnbozDQ2rXGNvZhgFy1Pxnb18mSBsd2XeLLBstO5fWscpSdL+vLm2UoiAgkQB8WgDSghin0sJUp8TIK2IEWU+pobUAraEskcVBIpP4sGSVBFtBGgmihHbClNhO4pNOTonkJDgTlTaCgqEDSUmCWFBq1B0KB9JjRUmCzF1HVMJKkfj2oQ9eMcamUMUqAEhJqS+vEYGqQE+UwF8pnkGU98P+rOvYOLdUTQLgtQASI/ucTUUoN8P/KTK/gpyU++RUxFINRU0LeFnwr6cvipoC+HZwr6CkymoK/0MegroUhBn4YiBX0acyroqx6+QPGyif1u5Y+9+9jrvCK5vMb6OPLZiKdftroQEBKTcUJg64kShPFEDMJfKsgqkaC80P8Ps56t9Ub4vBDam3PLCaVrg87+ekx7az5vlnEY11X0+weYrhgICmVuZHN0cmVhbQplbmRvYmoKMjExIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNTEwPj4Kc3RyZWFtCnjaXZRPb6MwEMXvfAofu6oqsAE7kSIk/oQqh3a3m/TSGwEni7YxyMAh374wz4mqIoXox4zt94YZ/HxX7Ew7Mv+P7eq9HtmpNY3VQzfZWrOjPrfG44I1bT06ont9qXrPz1+q/rW6aOZ/vLx9HJ4f36a2/j9Upnn6q8/TZ2Wf3g8ll6zRJ2Qfrr1mwvGu2F+HUV925tSxzcZjzJ+XtcNor+whbbqj/rU8+20bbVtzZg/v+Z6e7Ke+/9QXbUYWeElC23HIq7tGD31Va1uZs/Y2wXwlbFPOV+Jp0/yIRxGWHU/1v8pSejSnz3eeLCQCkABxUAhagSKi0MViosjFJGgNUkSx23NFJFNQTrQSoJIolUTzAiLsGUNZij1jKMtwegxl2RYEZXkMgrKiAEFZ4TKhrAyJJJ3AgxJEJ3AO1TIEKVAEwi6STuAhVEsJcpkK5DLJO4/ceWuiGDrnghDBrcxAGYiqxCXekSxA7rwtkUIFJVWQrxFTAQg1U3CUomYKjlLURcFRBi0KjnIXg6McHhQcFfCg4KiAMgVH21sl7h5LxMM1NaPrOn7rwVvP8i3Z5SW8hIHLRlz9aFlBjSjm/4QIJsMUhPYSOQivVFCpRAiTgkolIkgTVFSxcm0ZfBe6zM8y+Pe5rydr5ymkrwPN9zKKrdH3D0jf9csq+n0B/0UUDgplbmRzdHJlYW0KZW5kb2JqCjIxMiAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM2OT4+CnN0cmVhbQp42l2ST2uDQBDF736KPaaU4H+NIEJqYvHQtMQE2qPR0QpxXVY95NtX9y05VFD47cybGWefmeaHnHcTM7/kUBU0sabjtaRxmGVF7EZtxw3bYXVXTZrUt+pLYZjpRylOZU/M/DmeT9fs9ULf7w9J6SzHQW7P1M73Um6vl8wOWE0NFJeHIOZozg/FY5yoz3kzsDg2GDMXWTdO8sE2+3q40ct69ilrkh1v2eaaFuqkmIW4U098YpaRJKqcjRGroaZRlBXJkrdkxNbyJCzOlicxiNf/4k4E2a2pfku5ptvpkm5Znp0oOigKQI4HckBvyHRB0AWaoHP3oAyZniLXQqYmBzEf5CKmKUQsULSMxFBakdZFIK3T5IPQ3dshMwVFiGnSU+uaR9BRkY9+XgZCv0ATNuFbIPQLQQF0IbYUQOdjLwHmDDXtQdhEqKvsQPj3MFLXpu9nvcDVfU/zVbOUiw2URZXBVi90nJ4uFoNYVer9A11HwaoKZW5kc3RyZWFtCmVuZG9iagoyMTUgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAxMz4+CnN0cmVhbQp42qv/Tx3wAwBey0gxCmVuZHN0cmVhbQplbmRvYmoKMjE2IDAgb2JqCjw8L0xlbmd0aDEgMTk1NDcvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA5NDYxPj4Kc3RyZWFtCnjazXwJdBvHlWBVNdAAQRIg7htooHGQBHiCBCmRlECChyRSEmVdhGyJpEiKtnVGsmRZsSXHnsQ241wT51oncSaxJ5m8jNOU7diJ5Stx8pzJvHgyL5PJ8fJm1us3SeZldl7ezDrJxgL3/+oGCFKUfKzHuyyx+1fV76p/1f+/qpsilBBSTe4kAmndvrOlvbDlLzqh5RL8Ts2cuUXq7RGmCKEBqH/60In5o2dmL5yD+uOE1Lrmj9x26Jf//IyBEPPfEpL+2o1z07P0+PRXCOk5C/jZG6HB0CcOQF2BeuzGo7ec/XOx+jzUf0yI8bdHjs9Mf+zLn99DyODzhOjuPzp99oTwSfMOQjaPAb50bPro3Bnd2DTUjxDCtpw4OXdiXXbbcUJGn4L+LxEd62KXiB76FtgEtIyqd3qAtFPkghiJ+iMRYoEb1apk/NDQLPkCIX9iwq+XRJj7IdoiEfpx7GMCu8QfEcgb/ZyFcowcQ3z2KqslZKlb91DxR+x7S69BPbL0mlov4ZEvL61b0f7cqnppvB+Tb64YT62X8RSSlhSye2KoIEkgCfOOUUXcuW9C6fAr9YWpQ9LC7gmFxae/aQT+Z2bkg/5IRCEFheTlwYsgg/zUQJNC04o0dahJYWlpVlKeH1d0iX0X66kpPzQzpIhDExFFiBeuu34iIkf8CxOSMj4OTbmCX1K6EeouFKRFFXt6VqmHJq0mKa3Y34qYz49PSEDNwrSkmMYnpqBFwj4TQlmEslP+qUKh4FdoqlCQFTI+MVcoNClCWoJxdPFpoEyfH59Q9PKAIsoDwEdBoVNNii4tA13S7KL+4ICEPUixX6UAr4owNTSjCI0R6MxLC9ICTLDYqo8Dkzsmpsb909cVJuRCpCApuZ0T0OdH1rT5mxR9WjHkUxcJUyUlQlUekEHi8sC0wg4eUugMUKHoG5sUQ1pCUqvzM0/pyEEJR1ByUwVEmRrkpBrTFw3VJD800Bgpy74qvVIXJnUUmgIS8sD3lDS0IE+jXri8iB9lqkh+ILJEJWhHnh5Up6i+yuNKDJ4i/mXWKh+qSXOGLlabBFC2X44UGiNNSm16kbEhZXZ6sEkxpwFRkpSa/BZ8HAB5oKDUYu06qNVCrUmxwDB1XCQSSGAG5lXM+SlpYUpSzCC0JqUuPbprYlE3O1iIKbVz8tkmxZoe3TExulNt9Eeg3c7bbelFYsnvnli0WPIKnR5QLCm0WbDkgcUavNTCRaEu0IQQH59YROEBtwMLoF+ctjEiw2Ml2K/24yOwFLClAJyMAP0j0LpSVVdR4CIhdhmklVfIhouUUq4re5osEja0a0KxyAPSkFINxmeSweAGpCmY/gmrlRIzGRhYmFq0iSnlvpQ/CmJyAG/2VJPiTC9SvLtAznh3pxcFvHvSizq8e9OLerz70osi3v3pRQPeA+lFI96D6cUqvDek5ZLcFXEKJCxLzQrdjwukSWms6HSVO9+jdqYqOhPlzpNqZyhNlNrU2+AvDPyFgC4J+MN7BPjDexT4w7sM/OE9BvzhPQ784T0B/OE9CfzhvR74w3s6LfVyM21Kw7TWKSkPup3Kc1XC0kujrTanlaaU0gSrsAUWwIh0FS3K090yesRrYviR+9ayaqlLaWlc1FPn0AQ4MmSwrVIyV3a3p6VOTm8G8OjQlZPA6lxzcmwnrsd5NBncIHcvtlMnMtcBAgCK1yYYVsV0d5PSmW529zYp2TdCBQueAfQu0AlxxaVmaQRXPshy88LCiDwCrmICQgR4VnAHWUqdDhBpN7gol1IHaDrwmnGOplTlU3MLzbIk9S7AeOtWokjN6liKDloAU1Km0Gnkdkw8xiRB8j/GEoKvMICO1Ag+WebY8jAs4fzq9TiFzkyNGyw/NQvWl5+ehW6Wn/YDPIWObPUz00AWuHd5GJQpwwzDwB/c+Cww3hqTyKrL1IGXACXowbL0V4wKIyJHcU4EXMdVV7k8F+h+fUkOErTqE5oc5F4QUU+5SzHy/mF5BCdF7fWWxYfMaBImuyaapV4IuUi91ighXSUViHGoba6M7qry1jJrTVMy2nZfBSX5kqqmMAVYzXJJvRvAUTSjFIeVuvzEuB9CptRbaF5spg5YoBtX9F7nH1/Rm1vz2Ws90Z9WulPXmnAgraxLLQBtaF/A1FVRQaHNSjM8kecso22WdIJmKcNiaYZ1po46CH4HQkgJ8S0Y8cg7ZbfIBbqoXhm8UIWFRAoajUPgW7tTJTkMQ21dKiJrktA4KTM9Akw71QUO6QWsZXuz0gHredNV2jfDcNRhVzoB3pJWuuA2inIbAgFLwxBLS5IaS6MJK6MAbk1fBGcFwDYAKALb0xcpbxkHgLfsQJwhAK5DHAR2Ig4CuxAHgd3px8Dr9QO0ByDKob3px6jaNgGQ2lZAPIrQPsTj0PWIx6EbEI9D+3HOPAAHcE4EJnFOBKZwTgSmEWcYgIOIg8AM4iAwizgIzHG6BgA6xOlCaJ7ThdCNnC6EbuJ0IXQzpwuhw5wuhI5wuhA6CjJeX1bgMV5TNgB4XAU3AngChc5rOai9B8KohnNSBRHnFMehGs4t8HBPedTTvMafOKOC+MStKojoZ2EcDeE2FUSEcyqICO8F3N7yeLfzGke/QwUR/bwKIvoFeFJDuFMFEeF9KogIdwFuX3m8u3mNo/+ZCiL6+1UQ0T8AT2oI96ggItyrgohwX/qxKh0rJasDKcU4pwix8bOlONwEOhNIPezEJNiPVRMXiRDTkyF3XY1IhNaULRNpd1odciTaac2KburKdlo75AiD5mySJkSntV6mF2W5uE3uYIx+gen0xYNePf2cwFhxmunYJfnygiyzM3odu/xXAtWxPfrLd+oY2wvw5a/i3nI9UHCRuUktqR9VEuMTuWowCvcotDrJmJ/XyKRaKzwejzCDK5UV5WgCCMlm2l1O68WozxfFX1mWffRzPrgWZzAzoEvjbGLph+xlGDuxKM4O5vwER9uLfZMMILodwFpSExcMztSiSAZZorNTHdbpEOUHAqGIHAjKbMIVsAdccAk6+bi/XeolLwHNDtKq0lwDze5RGJJ6KRBdg4zdrVULORP0OiCTxVlcOENXNlsm3yGKco2UkazIQmq0+UXJU11vMbU00hc4K4HuXc2gHmJa+hM7zb5NfCRI4rlokOoEuoXoYCIdPUQEwQHTcyk5PLJd1hu8qRjyEE0kkxGDyCXW0WXPZt3tLrc9nkmy01GXLWjsKP6kwxC0+vzCH42SwxY2vFa86aW5/mpfxGW/7ZzdGfBUmdgeh4s57Ze/8e1/JdxeQDtsHuzFTgIkTjpz7XaVGoHo9IJujoAp7AdJO0ZFqteT/ar2gsFgPBhLRoAOA1BHXEheSZGZdqgZEglZdmbas50s29nBYRbL33vgjyiI159N1bc0xB/5SqiprnND018/To/vGbz1gOxjAz75YtOQ4zMNn62PFi+0t/bEXgCp1C+9xnazF0iStObAyqlAiXCeCIwK7HagTT9J9HrHKJCqmyQ6XVA3lkhG49GYaPCliNNhAIElE3JUFJ0OV6a9C3TlRoKxPQEcZLGB7bLUea3WtnXDN3ZfmO9rspl9NkudZdvEwYcP7n94vjDGFmSnw1nl7jk8dOac2+iyu+p8huTOL5469MXrk6BTlOOXQI51xEvSuQYuNx1FwempIJQEZ7USYvVaPW4nIJqzIlgRcSExFeKzqQKzZug/3DMycs+Bf0eR/fv4vusLjzzCLu1/6ODBh/arorr85PsPHXp/sRFNFOd3wPwSacmlr609frYTjkViqvZiXHsRbfpIu1p1ZlRAdkbo79B4F5EMut0nR/3F372Ct1eo5ZTs9koqMRGfN/xVvHyTlOgxAT1+0pBLYAsjdE5PdTphP7dwIM3JkBQ/8XXKsYho8KTsy5M6yn5BI+iln+L8P417A0jGEFbYZiXic0V/g7SoFLiifG60lw+y75EWsiHXk6A6PdgzE0SBiecNVCR6naifAyLoJIgmMAomw71SkEumhTTJCbCLhBGtB53HCjvhyqqwJzCobFcnX5GgOnZTNHzw9MxXDh78yszMZosl4rHYsutzRzZuPJIL5DwHkOqH6TnZ92PZ3jf9yMGDj0zXG30Wb9zo7j/WD/9MxrvQd2jy+zOQX5gkczHNN8yJelbhHYDaMAnZ47I9rq1Cqyq2zkiF/NABRpA6djAaC3hjxRcSXr+MEN2Y8LJLUf/lZ5Gu3/yGy3QAr//yLz5ZpQF84yVwq/ZcHTcj1YDWct0vlUaVy6NcfrbCDmwknAvwMQTKGDlQNkUbscY7dDDeSjvEMSP0V2h5T/tUcvWnwbwi5dFfK9vZr9kz4LsSOTliM5t0hNEtOghazDFKy4KKk1i8Oa43uCvEZAVfmhQTScFaKS23HTxrhn0nHg0E5EdMPnOtz/SI5PNKcZ8lZPz5Pxv9ZvYMTP8Mmh39+Os1FkotNVRfnPVHgba8N2apKS7S7TWWMn0PAP9BEstFvCa2JnVBEognVlKXpCuponhnZ0Kyz+wXix8Lez0AWoIGeiTsYZckz+Vv+uQqI/374m6PJHnYiE+uMRVb6aMeiR/p8jXxMqwJC9gMagI8g2b+4J008werj+pgHcbECpMHi29mFdYOHv3liQenpx/cuxevE3dlp3r7Jjs7J/t6p7J/emRq6pGZGX7NH81tPJbPH9uYO5pXaUBZZEAWDqABPLlIdSAhHcG1yPbrKcoEU3M65oTY7Aw7Q0E/4NrkhAHMo+wnK2wbfCU6Sx5e6EM3dHffkHkUVSX7XrXH3e64/dFH2aW++b7eG/ue4doByykqUiYQyIR/WZJLt1ADcsmSYbIlN9LgYXqRbjFSvQheQnce1IWu6zwR4SbSeWIwCJNA77Lb8KIG8/0962CIzqZ0LBavgsWoU4kFPSbQVZSjdlczK4sVEIAxl1t1IhtYhmgC7kio7oX9OpafTuRGE17JVVNXW+uyemR5ZtvZAVXy+du29bmT3nBz0Buzih6H6fI/qlpQNRKIuYKdktdlqcV54u5kbdw698AeVTl7HpizuoU6s7XOYtbbTbSLq0lVmaqrpSV2P+iqnmRINpeJQJiNoyi2QCQBs9bTOVL25Zo/amhoyDS0t7V0ynFwSB6+oNXgq2YAK3w6j8DAuxMEwJa1yO6w1FjCHsemlvTTQU8wBb5e6rihK5vaKAo6o/npqMsVtf3iF/t8ZpvFVt1wPtb47ZJiuw/2tU8G0lvqLGG/geqi6yKBlsD/KMWDJtAx54QIOqITQKNoevR24IJNwmoIjPJMAuNkUI9rMkPa5UQj2p4XMr0kd/Dtqq6A2GRpdbhLAQFVBkvEHWJc86+eaPNHPXZL/VhH947xvb8YODm88Xg8GHVbanz74xuHRsb2zHeMnBk0xVKeoFuuiYTa402ZWulrG/e3JcLukFuucsotiVTabGnZkd84mQE+QqCYXaATyOxzIRS6ACkGD6Z81QDRLuKQ5ZjmSDCQlpyIFqEirD0a9X8uEQjEPodyo5fAd/h84cv/yZ1/DS4eovotyFHPgF8N41zgsLj3B8c9SSpiDziMZael+oxyLqzZMndbe6Th8zt2XBiOBTyxxpGG1GhTyMeegUTikzvv3LTpzp30Zp4ff7J1tL5+tJXe7FfjOPJ7L3sOlhjQ4ATro1vAcy7HIb76PMmkjrsHMDYBiEiAQ1eVVXLlM3Hx91WSzRo0/l5f77SGjN9/yhiysmejnlrz5WftDmq3sUGTxR9x2ItJ+jObA+euA+k+BHM3kK1PxoM1AoGkeFQJwgbBDhsg7qoEIVzy4f6cC/JRSDLIea1X6yjkaoHKBlIPFpPEHKdEpwFcg7AWve6sRrdwpkH4rhiy2aSqD38E6LeFxO8KDV6HJH7iLmPIbg8a3/uAGHGw5+KBqurLl6wO6rDTfPEZYMhhZYPVVYG401bspd02J5iHrfgD+oKN73kIJKFsiMs1mPPZTUA1SJbRZcHG6mEbBXo1CKVFq5Hodndx9bKh6h9FPV7572wN7oBTecQZ9MTYUWvxH7gdUUYdHrdPDvzH70Ixn+pnZViDzSwC6V6SfDBncsP+sQrcCAOhukGoXr4ORQyM4VEDJquTJdGq27JgJQJSybF4DAviPi0EGS/T7eUIqpGuQCgUco5AgJBAMpCISph0JmJx44qAuyLouXnGxDNxvqwzrAY3phHq3d0ydKI/dzzfuisY9d133XX9uet29LMIGHMBMgJfsGHk/Pj4hRHZTyHW5Cc3bZqa2rRpksugH2Qwxl6FnVY9OZQzeWGnZdJkoLLImAvjigBuCI1rWQ5BNDE/tPK8fp4jrugF9oJBgOqDSTkCE/jj8YTKXjkQrcoJgU1bBX/0QZWr3YHSHtyzp6UNWOsHFllEZSoZEHmyfQtq+UehpmIeeUMeuV2Bjum/gY6TZFblKL7WZg1dbLhyt+bPyavwSjFmvgKrkDPDJEmSiEOIjS1vO0FnZecLuzsIo+0lllVl0gs3+px1DnuVKVkzuntPvs0jOm213mD3DR1bT+fyZ8dYpDPtilRZ9Hrj/tFNkzWCxSh5PY3eTRe27Tg/UrbdV7ntPnCl7QZRW1xxPJKsbb+R1Uhr2HAY5kIrntdw320jfhX2Ap9cacQvwi7zzmUjVmURAR1LIIt5lbUENFNIlM7zDxH0ZA42WSJXWxgjE8+XggLwFysj6gAFtmHzpScq0Ao5SyQSSUYSzkQiFo3wbRhsC9Rwonofh2FVghozRDrBBpgU8xS/UbMn29Ds19vqnKFA4EDrrjsGN53JD5weLn7ESUXdlhaIKz15i1WoCjn8Lrc0/N6te+4a2nRu5MGjhsbeUtyhCui7kXxoVPEDhyGjgYkiP2dwwf4Fj7F0FI+J1F2sv2TtooEYRHLeSA2GqyODtWt40Az9IJP5iidULFA1RCCgoMEhw5YqJlcZ/CAHZ3mHvCqwZ7SzLtUKEjKVAtfjRuB6XMlZhLLz0/GugENfLXrq2LmkuyXs8YSLn+f++iDCzaMHQmEP5BWiqudu1g16TpEu8oGcOQmi81LBUA36EzR/1QiLlsFuDpJjULcRDBcUXkW1DDlYThe86LzqS8iIBwIA5a+NWsi50mlC0l3pbHsrTN+YiMv1cVPlBheTr67scjrW+QZW74p+6pbQTa42QQxaTVW66+NbNrsKmeFTA/3vGcpM+KO++3fvzud37cpzN54/d9phcsYNVS63QOWebGu4XV0NjaHqVS4dz+xBWFVgK1Gy7YkwpTqqCcdN+BKGlkk89QiXkmR/zqmn6nZ+nqOwykQhSiJx+NEShfIOkHNivcJ/02fG+EljtntjyWn7d2ZY5LbDS4TrlXRtzGdUmPEU65exzNISaJSQJ9jLJMq/BxJA278iZGmJn4X+DW8XtPbXy3tYK/AYIf25KsltNOjUbAj5tKpBSxDcy7lQua3sBAvfgHgk872lmi4nDSvDkbW0sg1uZk26fLbH20os/cTudcmeT319t9cbdTzbdNMyN8UPv2yP2z3ODz5LSnSS7wCdpfMK1zXOK74j+7xR/lse7vInVX0KBbD7TnJ7rroJ4hXd0g5reLPq6l24nvWTRoMo6PXuUUj1Kn28j2AjooiT3GOElzFyHmyBPoK7SIwPpS5tqXeSjrj6w5f6VbV/FVtod2PKWLvCIFYZxnnZvb9nbetYAfNz97pY5ljj4LKN20EmUXIz2jjXPUrDzt02JLyofbYi3Lm5Rbyh+ZPJkvm/Lfv/7jZkrbl7/UCZzb0dV+GQc2WNdWgxDNY6PwvpVel1lg5EwpUHIn5kkaDbmq9oLXzjzR6U5DfdMTp2+6ZNt4+N3rHpbMNQY+NQg3p9+sLw8AV0KiMXxtu2NjZubWsba2wca9PyxG7IEyM8T4R8wwP5hqky31hOhd1aroGEobTxlYWWbxDsvSKZrETMhcsJZWWnJgivmm+8K1nlizyrnEMN6VZklWocKu0bvqzyrwmEgkD8vCKolcIV4glXpE+jWiSqSMfcq3K2lYjL6VhFHz5WjlRXpmPxlenY6siUXSsdi5azsbZdASHiKadjbkjHHkSZfC+g5WMxvztU3FoRgPjapJ/n+dhfjiq28YkngphUbPHDHRdqgTfm7OiHy0u1nLWoOy8wAkJPoMefWo2gbks0BN5DiG5KXdGldMav9eO6JhDbcalwofI0Rl3XEgmD/4+VNsDlAxPReaX90NMNkstiF5w1vtZwyWzce9ogOLvDYUgcpf6mf1te0rUNKZSDF/Yez4EcsmS/SnbsKgc94dHSK6OgHqiPrkYDnQug8wqkQq4qLSdTMn+hlMXUQ808+DlQ+TzPXT7tAsbQBZROgmCReH1mi9Me6m/e1tm9fnNnV6E9cyhYazfbXGbbuthYIJXMbmpff33rwMnYpM1nq7KHQ0J3MGSpk/q7WkeSiXidw22pNrt8XS6/pdoiDWTbNifSbci3BS5H2AJpKOeqsIcS7tZDEGKQd6IT4KGodHBTzlURC9JOKlKDeL4SnVQgQ666Ag8wANXAwHkvY2kBrIHU23mqGsMAFnM5185QKzJY9W0c3eHuiW/Y3YxJajNG5BGERlx2o7mm+j1+lz/euYc6JI87nEN95xAq/s5p1+m5/YMvNzE3rL4NKmc2fljlLqeU3I3zRkbvrmgs8De9sGgh3miHWBrF5dfGanIJNfrr6K3Hjp3huTTsQaI+5obs48i5c0eKPA/p6+npA4jvHZaWmAPo8ZG+J1y42dHyJLNO9dflJIk3EHZ3+aAIyfERb9LqLp3f8XMiflC04oCI/qdkfNrgt1ZZg8ZvGaJeu2RcuM8YsDJX2F1jK85aHXjeQz9bV+eIOGzFF2mP3UFLtL0CtNWTnU/G8ExLX6LOQ/SwCvTkvEGELB5yGIZrWo3X2KTX3Q1bNf3d5XbYpQG59SQZT1odVrf2skw9gUsmIL1bTTjP79xufiD3QkT3GTFsM0atu3dYo0ZbWPyMLuJ3BMUj2+uSTrdx62Ex5AIR+6vMxVmbk7LYa6/FGOepusYbt9uLv/hJ3Gb/EZXsdr4Glor0p8BXjKzLVUGQN+iW5V4r0BVi5/WKvDTWGF+Zl5ZP6pMrj7wwNaU/TbiDjrOnq7xmZ8LywY/Wxj1Bx3tP2oOeiHnho9sd3pjvE5+oqZWcDttXH6tzeGXvZz7ljzhd1q88ptpqN7fVdvKenMlHBT3upkqnP7HSBklTAfietfZRsZI6SnuvtdBU7bSTtngiFquPa9pZvXkKMXXztOrcFhutqtHffzo6Uto2GeSkcyTfcaxjPI3roKuzY522DvbedWt1lbZhEsxVfVtM/W17u2kMl8YS2djVt45CCgb7DjzP3YN7JZoF8mRwsX+h7jPYveV3VBv4Oyq/9g6dMxTgr9DpJL5OD9KxOnA2df46n8sBiOaEyL/ESFS+VZGzFUH2n27bsOG2Xbv4Nbd5cw5/Tfu+dPjwl/ap17Pnzpw5h788nqJTifAz9vpcHPIKMCR8AQRp6nlBfUNVOnp2EWc8rh09L79RVL1dF9gMWYriOfsGi9UrW82fsvrYJXwnyiPXzxNVCXddwLivCudsgcv/Br4bSHMuBVOBl9WdLx2JIPc6XcW7e/CzSbmxQ9TesKivTMFeS0yXaSgLxGDI0J+DTy1+zRey/TyeyjUGezy2gCvucCRmmwdms/1dF354DP2q5PXaf1O/I9o0kJQ8Uacl7Eg0dx/c0Pe+nnu4/3iNvgKy6SDnRxUz2GwTBAa9oDcIEBgEqhcgfGKAYLeDVYr7IUQ4VrrhTBkfoi7knRCUqV537afU4NJBOoC5OFiqujtafr2mvZfRXpxV8t9Veumhrl46ubt54Ox4bJM/HvU43KmOcLfc3+wICT6ry2eqefB7GHZoe0jyfIB+q3e6a/PR9TaLI+qpt0TCPYlsr5Eaw26zq/avUFARv8fzANrsPrjcAjIJwF4CtBfmX8/oYY3ii0M1GVp+PxMKYhKdgCBpKGdCpfdinaoaqboMM5FMJ9sFBDViRCy+7kpYaK897I02Fi99kaaRhPehJb1P9rhs9G4PLMO/fol/gwU6ugz0ZMlwLp+hggG/LBKooKNgUegxbgcdgPQNAoZw/f7SpzMVn0BkSWesKxaHTGa1rNcSdsldZsufasgGzOJ2H+4bO785udNXUxf22vyNUsOm1JaMO+a1OauTERrWRdw0giL/g92+3kd/0ndzf/5k3uM0xepsQbsvkYtnB2tqqoyNQZPuD04/cvyxanPJT9DX2XN8f5TNZcCTwioFAwK2mDCvfe+y/FXHyi1M/Yq3yVpyrrl4ZMewagezdy638ebc0JH1mXtuqan2RYOejYe97bnwwEBLa39/K/3exsMb4N/WO0Y2f/2zEcEfdEUMthtyqeLnhzs6hvGX+5XepT8xK/cr6ncQbP8V7sQRX36TRcufeUU0I6b/mhSLfzSEbN64+Jvia9xYb2CXIr5a8+WnbWCn5lpaRCmp33X1gqDqYD4fSUAg6Mut99WgTW6pPGLmexrH8s4QCEkm/f5ke7KtKeVP+OOpVGk/U5ZV1wpXa0iIWpoEAlshtl90bjycyx3eOC03rZ/p7Z1Z1yIrXV2NDV1dDa0DA634S3fsbFo31d09tW6q1zHY3HVDNntDV3u//b931jd0ZuvrO4tST2OqpyfV2KO9qwdBvs6+X9K7jR+3iRXHCWwSvyIIjJa+UqvUe0N9hd4rfGTX8g5tBQN7Vmu8gxsC6rwFdM++f4XGVUNYoXdG8PoDVsfPGsa0sxEd1T6E5FkqbMtAF048IHfC7ko9EK5sL+RsPOaF64IeJwxU24kxz6YmqqUPHGW2qj4XDgdrgysv9J5w0IoQXIq3LcMgwMDSreRn5CRE3kDOa+XvWoF6+DejOq9kYxRfCbo0u8Qlw4VlKNuD82fRbNDlq7PrAk6rtbqmNpR2ptstwx12Z12tyCzeaqtBDzmp7OzKqPqMweVjYKOjZDu5P2fqp8YqPwTcUkbUYLWIkKNi5g4SqaZVVY5Rc12tYDAYJ2tMzGgMj+KOhW9Ck9jAO4nRcOMaD2qYhVx0DFbb2Pax7du2wsRbhgc39q1f19Eei8TislOORWyGYIoaSpuUZf9WCWo7mmUgW0oRK0F1CAM8yRKhFti7uvsdgt/hCdK6hx1CwOEGIIbNWbU3p/VavqT1WmRsfib0cIg++WjY7QqcsXtCnirdgTMOd9hj1B3ANt5xUu3Yd1Lt2Mc7Hn2Uf5NLyXNkAczGm3OVvpbVvhZAU8IPWbOrTKewbDArbKSd/J7uo8dILQlp39/uxhH38+9vt/Lvb6s7tAG18XC43RCnHsVg9ejvo+qha4Rof4uq/YXppKX3f8Hy/TXCf/P0xz+K9x+P3PdiMVr8kb5V9xDgGtAaifac+jer+p3F6NKT+tblv2pVf1gb2wQe4rf4PfLSOLUv/ZZdICbyLv6wj5BRdgr91VX6f8DPqq89Ru8b47xt+tqBvqeuQd/LV85N7e88PUjHm8ETMioe+6e3RgP7/dV5/H/xw67X+PgPUs++fm1e2O63Tjs7iXusq/S98F9nT3z8vyQh4ev43cwafbvwm5O3Oe5x2Cm+mzo6TvqZcPU5r0UPG/yvpRX2yyF22zXm34Lnwat+fsvf9/3fzw1+tDzPumVbouY3tivhv6l0gR30vyVdHHp3df9mbKNkA/TitXmhrxDvW5LvZ/j/0HD1uUffmuzehi8OQTi+wn/QXxHLOzU3+9CV44OO6+kRomce0sJMYN8vkn0sT9azGPjIdaSXjcFv7P8vP/6OrCcrGab4VzeVsngCcuI/kvX0/jc9TDv8biBHyKfJ31PP2yw300sryuurCxt8S+Uu9mplERLlsulNl7NrlJeEl3Q1Vynb3qHyad2n9TH9wqryP69WxNiKcugtlocNtooyds3yw7dXjBuMX60sVa0ryhffWjHFTE9VlmpbuYTeRGnk5TwvX1hdahqh/PlVyivvTKm9EcofzLevKn9Yu1jOrirPv7VSZ647Vy4/tG57E+VAuXzB+nNbs+0pO7GftP+tQ+c45njp3SrOgHOPWlxGV/ObLntwJ8aGyI2wW/sEEWHH1kh6yAfBQ91b68K/oOD/IdEh2PVRHR582/gOEGFKbFBTYUaMNKbBAmmnaQ3WkQA9oMF64qPnNFiE9gc02Ew6qELy5Dg5QW4jJ8lNZB6ouYVI4CdbSRsUieyCljm47yCnoX+GHCanyDQ5RmahbRyeOU5uhv4Z/lQ/4NwC+Meh/RTU6/lot8Dop2B32QJlHsZAjNPkIGmGp46To9CqjncSxrmVNAH2NOAdAcxjAN3Ke1vWmH8Y7keh7QjQ3kDSMN+t2ugSuQ7GOgW/J8kZuCKtwzDXMU7lNv4c8CQFrhxVCgJdV841AE8fgXsGelt56QHuD5EhaOtZA7+p/MRaciv17eEUnoJ+pE2qGP1aI5Zkqkr0FGCh5k5A2yl4/hSXSDPXwTz0bwfO8fRi9Cny0nUTi5R+uKBQ9T+DOLFIDAOPj2TCAmlE8Mn1xoTRZhSMam1QbBUDIq+ZBi6Zn696Xvc8GE4V1GsHLpEcL7wukMHFGL13x4SSu3diUZgdXExg7VvGO8HMcvfO7JpAlAL8PNlrrDc6jEJN41N06f2K7kOLjAw+pp8VyeDg/wGQefidCmVuZHN0cmVhbQplbmRvYmoKMjE5IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTM+PgpzdHJlYW0KeNqr/09l8AAAFatREAplbmRzdHJlYW0KZW5kb2JqCjIyMCAwIG9iago8PC9MZW5ndGgxIDE4NjI3L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggOTEyMj4+CnN0cmVhbQp42t17CXQbx5VgVXWjG2jcJw+QIsAGwAMALxAAL1EgwEMkKJISdQCSeEAiRdk6I8uXnMiO5dgWc2zsyWRyOHYceybXm5mmHMfeWOP4ZRMn2ee1k6zjTJKJ48xkHL/seDfZTO4I3F/VAAjqsuVNsvMWRXT/qvpd9a/6/1c1iDBCSI/uQBxqm5xu7chUPhiFlvPwnd9/00lPz2eJiBCugfqHDhxfOnLTwu2noP45hIyupcO3Hriv6TNPIWR6DqGGJw8u5hbw13L/DaHYXYAfOwgN4l8JxwGk4/kOHjl5y5mThjug/gpCuk8cPrY/d7bjA8MIJQBfU3kkd8tx7lXTFEJDDwC+52juyOIt90zeC3V4nuw7fmLxeHds4hhCmz3Q/wjiiQe/H2mgb5lkoCWt3vEs6sCtUKdd7APoZrjhQhVNHRhaQM8g9HvCvbYqIMQ/hFs9CP8F7cO/I+fZIxx6o08flC7URfHJvxAYZ7WLfyj/TfLs6q+grl/9lVov4qGjq13kx9D+20L7navt6+rF8X6O/te68dR6aTwFhTwK2pEZyno86SeRaWtaEaZ3Z5ROt9KYnT/gWd6RUYg/95+1SIv275f3ub1eBWUVlJIHz4EMUvPJsIJDimf+QFghIc+CR3lmSuEDu881Yik1tH9IEYYyXoXzZ7ftyXhlr3s541GmpqApkXV7lC4KdWWznhUVO7egNEJToeZR2mh/G8V8ZirjAWqWcx5FmsrMQ4uH9kkUilEoNu+ez2azbgUHs1lZQVOZxWw2rHAhD4zD+3NAmSY1lVE0clIR5CTwkVXwfFjhQzLQ5VlY0exLemgPpditUkCvCjc/tF/hmr3QmfIse5ZhgpU2jR+Y3JqZn3LntmUzctab9SiJ6Qz0uSlrhfnDiiakiKngOURUSQlQlZMySFxO5hSy74CC9wMViqY5rIghDyVVn9r/JI/2eegISmI+S1HmBxmp2tA5UY9SQ8lmb0n2utB6XUjqKDgIJKSA73nP0LKco3ph8kJuKlPF4wYii1SCduTcoDqF/gqPKz54CrnXWCt/yBBiDJ3TSxwo2y17s83esGIMrRAypCzkBsOKKQSIHo9iSI3RxwGQk1nFSGvboGaEWlgxwzAWJhIPSGA/zKuYUvOe5XmPYgKhhRVLKL09s8IvDGZ9inFRviWsWEPprZn0tNro9kK7nbXbQivInNqRWTGbUwrOJRVzkNosWHJyxUAvRrgo2AWa4PxTmRUqPOA2uQz6pdM2e2V4rAi71X76CCwF2pIFTkaA/hFoXa+qKyhwBSG7DNJKKaj/HMaY6coeQiuIDG3PKGY56RlS9GB8kgwGl/TMw/SPW60YmVAyuTy/YhOCytmgux7E5ADe7MGw4gytYHp3gZzpvSK0wtF7ZWiFp/eq0IqG3qtDKwK9u0MrIr3XhFa09F4bWtHRe1NILspdEeZBwrKnRcEzdIGEleayTlep821qZ7CsM1DqPKF2bgghxRh8C/zVAX8bgC4P8EfvXuCP3uuBP3qXgT969wF/9O4H/ug9APzRewPwR++NwB+9h0KePmam4RBMa533pEC38ymmSlh6IWqrLSElHFTCsApbYQGMeK6gRTnXJVOPeFUMN+W+raRa7FJam1c02DmUAUdGGWwvl8yl3R0hT5TRGwE8PHTpJLA6Lzs5bUeuz7FoMtgvd610YCdlrhMEABRfnmBYFbmusBINtVT0hZXYG6GCBe8H9DjoBLn8nhbPCF35IMvR5eUReQRcRQZCBHhWcAcxjJ0OEGkXuCiXYgE0Hrymn6EpulRwcblF9nj6lmG87vUonhZ1LIWHFsD0KPPUaSS2Zh4jHs7jfowEuOpskjpSLfhkmWHLw7CEUxevx3nqzNS4QVLzC2B9qdwCdJNUzg3wPHVkFz+TA7LAvcvDoEwZZhgG/uDGZoHxLjOJrLpMHrwEKEEDlqW5ZFQYkXLkZ0TAdUp1lWtzge57inLwQKsmUJCD3Aci6i11KVrWPyyP0Emp9vpK4qPMFCSMtmdaPH0Qcin1hUYPpauoAsEPtdHy6K4q73JmXdCUTG17YxklqaKq5mkKcDHLRfX2g6NooVIcViypzJQbQqanL9uy0oIdsEA3revd5p5a15u47LNXe2IgpHQFrzZhMqR0B5eBNmpfwNQVUUGhLUoLPJFiLFPbLOqEmqUMi6UF1pk66iD4HQghRcRrMOKRP5bdUi6oi+qTwQuVWYg3W6BxCHxrV7Aoh2GodQe9ckESBU5KTI8A0051gUN6AWvZ3qJ0wnrefIX2URgOO+xKFOCxkBKHW5rKbQgE7BmGWFqU1HiImrCSBnBL6Bw4KwAmAMAUmAydw6xlCgDWspXiDAGwjeJQYJriUGA7xaHAjtBj4PUGANoJEGbQrtBjWG3LAKS2ZSkeptBuisegPRSPQXspHoNm6JwpAGbpnBSYo3NSYJ7OSYEcxRkGYB/FocB+ikOBBYpDgUVGVxKgA4wuCi0xuih0kNFFoesYXRS6ntFFoUOMLgodZnRR6AjIuKekwKOspvQDeEwFNwF4nAqd1RJQexuE0QLOCRWkODcwHFzAOQkP95ZGvZHV2BM3qSB94mYVpOi3wDgFhFtVkCKcUkGKcBvg9pXGezurMfR3qCBFP62CFP12eLKAcIcKUoR3qiBFuBNwN5bGO8NqDP0uFaTo71JBin43PFlAuEcFKcK9KkgRzoYe0/GkmKwmg4p2UeF8U7cU43AYdMahRtiJeWA/pkcu5EXSExsqLAYBcW1BW8Tb4bQ6ZG991BoTKrArFrV2yl4CzbEGHBCc1kYZn5Pl/ITcSQj+OOE1+X1VGvwxjpB8jvDkvHxhWZbJTRqeXPg0h3myU3PhDp6QXQBf+AzdW24BCs4SLTIie8IC9lCRhgYnGvd7iegKxgS5PgBzxiIdLqf1rNVotLIvXPFzFM53Irx6GxlffZ58HBlQYEVYGEy4YWCMdtFt6RwBCE8CaEB6Pyc6gysCGiSBaJSO6XQ6BPmYq8LR6HSQcbtNstn98IXnVv9ttQd9CF8AUqoSLni8Ig0j4So8zshzhOhQAhsmHouVKHQIgsxbTAZ/OyUzmKp/1mLg9WYiRoKEp/Re+EXLkB/EjWpXV8n15IuoCtWgpkSgBvOcGSglY4gHqfD4AOI4B8zJhOFoqLfLGrEq6KME1wcaGrwiu0c745jOXIH9Xo5cbzNIZj6df2pMazeZgFyt1gUNWMxPYNd7PLzRotc98YTDZOAEjtzt0OsuvOMHeCdiNjALRO0FG3CgWhRA0USHAyjCY9DDazh+EYF6Z0CqjrSANRo0oyppw4YNgQ3+Bi/QIQJ1yEXJ8xY05u2gVTEWkGVnBGREYtFOgK0RYhm/dXf+F1QcWLd9rrPNN9Dzwx/Ghlqnd6RefQ0v7t68L2c1kjuM1r1T0e325zf9Dg9uyrcNDg4n8z+jNtO2+itymHwFNaG2BFgw5jDiTiOOYI68HWjUzCGNpiYNJPNziOdr+fFAQ31ABlqqg8jpoJJrCMj1guB0uFyRjjgIsMJF26lIA6BRJlFyWNSZtNqpua1n0uNnpuYmtTqTTjQ1nIjNPTw3+/Fc16Egud2i0+s10fGzu7Jn050ag1Zv0VbLex69bvGvZzy1iOqZyvUhkKsFVaNQoonJkcdUkBrMcUVBWq0IWautVZUuQDTFBDAu5KLiKxOnjcqPCRB//8zAwJn5VUxFiFaP3tRxaOuLL5Lzcw/N739wRhXdhdsfvnPrmckLXwB5URp0QIMHtSZCV9coO8Op83l9qkZ9l9Go7HUWAasX/4YuwvuYLo+xBXkOe9n9h3ii12YwWlRyYDlYfk8vVIOoQJMANLmp9UOdcJgsQg8/o8E870iD+Ts5So4bVclAjyBWFu1rbXpHyT148S/ppI9hD5v8FavRREk6TM5bjQbr7y105m/RLkpM0YZuI8+iNtSf6G3AvAZsndB1IZwWsYA0vKBZBBrwHIgIbInn0RwQU8sk1IZa5ACYSoOWWpTLeYntMPLWGVksHqWkAqURcr3VHD7afeDR2dlHD0T3N5isekmb3r7jnvHxe3YEd9U/aLTZjF/EsAR+bpXq6gEJUKsrdRajTdM0cXbHjrMTlc5nqX8pyvEEyLEOtSSCBo4AuUUXsihoSJkTAcLr0Aa7X7b7C4vVKqjy8xaBghfzUoDkrNhmNNry18PNZLWZjDb8QbsRBGq6cCfUjbg5/5LRZjWR07SWfxVXG20l3eJVoMmG6hI1zMRAuaTMxGzI6u/kwb+vty82N/6fVIEfNaozDvZajEW1gff8GFtTVHfPg+7MwBCdASy5oCZYUQU1BQKBeh5sxrdOMy5nCylTCjil53d+KJf70E71mhi6bXLytiH1+utHZ2YeXTr46N69jx7cdXYcFrl6RaV13VTwl+CFBMwD0zyiNkPAhAkBE4aUEY87ncB1rbPGXQW4NjkgAtvFtS2XWXDEVvSP+OOZ9vZM/AU12r3es3lzzwsvkPORPd3ds7H8r4riyP/N9k39E/kfoYJMtnFVIJMYGkYjicHGCqIR8JgWw1XQ4NOIYB4T/jQSIMYIeAlMBP72I1Hk5oDkGhHUkhro7Ybno+GQ7PPrwER4lUqIMwFqyizkQMSJt5CSOKEfGAKLZzZOY2EEFUTbGVDtn9NZenf5u7e0+Dtlo9PskgxW65ldd6dVkQ+c3HJdbauvKdFY316hk0SzeOFEuRa6LHpXs7uqwmETRMlmcAitutwD86pWsh/YZ5U5u9XptJk0kqDDm8rVpOoIPADkNx0olojUQ2jALMaCxwMz1eBFWNfcTHmkbWpq6mjqaG+NygFYJZU04LK13UBNKLBOYV6Vf5X7Cq6fqAjkMM+btJJYUz8Re9liNDnADZm6d0dSsVAXxmbrN+Q+35b+10JmjVbU8pbNk8PdaiykOm3fGUvkbNatPf0dEg5xjYOh7jTVMEY+sHkC+o1SThDHI55Dp5nJ4bcDF2QOVkFNmkU/6s9rNXSdRVGnHAjXB+h6d4EWWdJTQdVDtdNQ0mPJYVGNwdqo2ECY5v/7sU6D3WCQJm7cPNc63pvYFeteSm085DE7DJLo3t0+ujezbWR3d+91KaktIpkMDmnnYDzY7bPbW7b0Rre1NgWsBr1d9DQOdPX0VztDW5OR6TbVR9SDbnpAN5BxJjZQ4XMQFqki1FUDOC7kkGWfRqwo+P2S7AuO1EuaQGovUOf0Aos//0TOg7MwX/gok+aixWiwFPzR6q/JIeYjYS4e8gTwSCCuMo8OjhEcRmEuq6PgM0pZXcGimVvcbR2+ZfPoLcNWs8EWm4nFZ+IW6hSN+X2jp4aHT43iB1kE2tc1G4/PdtEao0EGfm8m/4AqUX2izkGYn4YsmZFSdIuVqKKhgWf+AcwOq0sPF7Rmt4OqyKKNy/+St+h0Zj7/K86md+p+/rrGrCX/YNWL2gt36vSSjrxDkIwW14VnSFKnZ3NvAOl+ijyNfKgj0UqzJG+1xEG+BNkdgaCHTkN6Th0WLgUKH5KdDb5AIeiKHFsCHMcI4lSCXJSiihi7RbgP2sgPOLOuQvzbv9U5dWaoOA2Shfvyp3R2yEA/+SWtizxtMRkv3KGT7Piz+R12oPMOQTBZJd2FL+NHHBjrdfkZ0menviwMtm4gesiMQ+jg5yslouHxWFqpnMokagUwkop00eLr0iJNXuYKlLsT3ov7qXAZEgsRtXg8m3DUQmpWG6oN+mWYwh3w+7UlxVPbiq4P5pRbUubPqDXg37N9SNVCb+rQxv5DA30LVVbjA9OtrdOdndOtLdNRvAohsZ9aQircP3xqfPzWwZ7WfoimrfFcX898PDbX15eLA6+TwGuY/EuB16oir/WUV2DARVnh5ihX5bzWMl4v7qdLp4CkWvYlvPr9AZXXkmd3OtaFfmDZdjGvdx3euPFQsju3obj9cu/raWW8Rre3tE5HiX7w1vH0bcPdrUmaupBPswXw3fa+vNyV6+2bi0XnGbPMFkG3+GXQbZj5scvk7tR71ZUn7/BYGIX8sD4LeYursAkqhKVShsWiT0eRM1V/eM/WdrNeMmqNBnN7TXxPZ0e22xd0ilatQTSY2rZHRk9sSpxME73T59TbtFqjIOq65nv65uMGPW8SRbPB2lAzdGp89NbNapxVbfPHV7RN1xvYpuuPapvWq9jm/r7koX6wzd6F6jLbhCv5MWRSGaqk4ZYE8JY+NdTbiv2wZxiL5fp65+Px+V4QQIlfyOX0sCtoQl2JKLRArg75BH1/rEGL1EsxRTHrY7lELTfu9XqbvI0uulvxshwZcryikpiG1ufLrgpI771RSM1g2Rjyd7fv6W8br9BLkkXy5GJbbkoOHN7Yd10S51/eb8I7NB3pRmy19s3FG+t0FkkvNXQkb57YdttA1+Gxz02lteGUDDSCGPF28gpQfSCtbADt+JEgIlFAp7VYFNkW0QVpKSgH4g7d3oNGnAS0JBfxoBn6gd/FsidUrGyCRpYm1OiTfRCjZJ3oDtoEp1O1vksiVUR1mMVNwY/k43qrVX+camnUYLEYRkc31rRZJJ3RZSSfbfYvWQwGSz7HYtpDVr3RvLRpyGo3WDQC00cXqQV9hFAfGk0MN1YTQWMFMsmYCPsmYEOjYVqoS2tBNczQaqlqmEuoQuNh2DCH+8K90QgMEQz4wwGd6uSLUY9mCWxLrOYJb8IZEoN14G2j8pY4L+p4QbA6+2PZxarDvUPHEoljg5uuA9f4iV3t7bviMXqN4VWrKT85cazHVmMWdZLAibrKxZ39sY2qKW4KJaibjOY2bpyPFi0Ro0m4/BTWnYzCiWYPZtsctpow5uc0jPW1fY6M6v2wdIQSZ6qLU0m2XuLx8P0Zqov+ZHO6peTj5jsI97Zs/l+ZGtwDWxtTDWqFfIr5t+8H42h1FQ3AdB8gD0E+A7NjETT0LLTqVjB+cnVViQQBh50lPUI+DjgcO2sh6NvMF+6Ay+vAkxf5El5PhVbkET1yYV6dRrGC5wCnLfNqLkoNqEG8yGf7C2tKrMCvO3VG3Q/SRSawV2fQ2/TPfzcIFf1PE39VRn/XbyW73qD/+9dQkRZ0H9BSPIdzXeUc7r7yczh1uAsZVUdcEvKJLnTr56OtLMVRI5mLLjTNnFYUOI2mIg3ZhuoS00o79FYj2khRBEAhglCGkahe146oQy12ZtVl2IXiICGqb7oMr6Lvy6nfqZo1Ta1e30FZ2lQ0gr5E02i4ZA17Iz3bbc7j3YQ7tqdgE5XJ6cahxvxrlxgIfoZee5piXbFQsmi7/w5rVkZTj6umqzJewbRcsuC6ogW7oWetkW1qCz3ZhPHazJvyhz+2y2YwWgcGg1vaSgwtQtg+sjv/PUawrFL/gzXqIYtfi3cNQPtFe+26t7LXbkieHBk5mVSvfR3ZWCwTiWRisWzH46eGhk6l0zSBTvfRAETDUGy+T6VhEnxeGOyKxtzeRFchSWJxVIAcmlSUJT1UnFV4/I3SnkuldIW0pydXW5RZ9b7eUtrTsj1KuNTNY+mbB+Mt+d+wdfUemv0MtsbyLdHZ3p6ZaOdMb+9stKD/EyDDDej0424aUQoJQ0VplZd0rQYh1Twgbcegd3L6YjMphqo1hHXWwpw+jVKqtWxAtf5AvWPtAK1eZdJ5sQjieJvHotfUGv2jrUWeK2Y2Eb3FAnl69+6WX6/ZR6Y7jZnfaIb84NPAW4SdxV5+X1qXLp7KwrY0KDcE6330LDZWCDSF/WjDuvMzcW0/6irsR6Gh2ShIBql3X9tIsnd6tmWyI7irTieJeklbmQy0pshQqnMweHDLqc2zOqMoSBPhYHOz2ZkaaBrweX2i0aATtO6aUKix2Wr09LQNbNnDeKAHaRGyDAE9l1bCTPIaXnMGfA7H8TMCCy5US0XBuiGZoAiQvYLDhoyiHBGt4ZXSBMgRfL56O/VPdthNAr/FdCBwaZZQzCIeq6kQbBqd0eNyNzeMGqxWwyjVyILeajHgr+RXAm6NWTLZpQ7QG80Y2PHrMZveYGY+Z/W3+H/gPyA36letycY2vhXlG1+32kjwmbLGbMLATl2r/X6/Zl3uubYdpgqjNfw969Hc/BFK1vjQ8BYwjj9AZHl133XX7cPVLMq8ujmd3kxh9QxjFeKdhKrpPtyFS1vgurUtcDWqblzbAtN9pwA7zs6yLWesAn/fxn+ZN2slC/8VzmKGrfBnPsubJaIz6XXafKdWjyUJP0e0vMEKm8pD+C91etVWYX7yHMwfKO6D5VrDpfvgurJ9cAD5/Q2ByuLaoQQ10C1wkbAyutQteoQ8ZeU+ooENuok/cyMl0so9yNmMOjP3rpshcGvfcUZwEcliwoZ8J9Al6XBn/jkgWa/DzwmikVL8Nhy02/Pfwe910HOS1T/gLxEefL4nUVtfZYEcgYDYMPV6BTp9zb71+UHxnK544FMRX8sQvmQzmPQf/rDOrLeJj35SsBvMugc+KJmNZvETj/olg9307FcNZoNe+63vaCWDzfj1rxvNer32299WbaoLcjAt6kCJxMYqrOENYDsgPZAkEHRaFEh5BlpbMrUqJssO1A4mVd8YKJyaW4tni9QNlPxAVLjU1grG9l1r/9Gh5tFKJ+FMWkFI9Eznqmbju3azsJ1qSkO0JlqwuZHJ4z02s9FCtJLEyQd3y82Rg1kcYfb40uaxplQANxutkKXRPcIvYY9Qj2MsqmKcU3M40sByOFLM4SAGxSEO1rAzZ3fhPQ5jrYa9xsFz9JUObOAssOAtbku1ywGIpgB9j+MqC4iUYxZm1GO2yPcOx2NHJiePxONHJnfOzOzcMTOzQ5p9ZOngJ2ZnHjm49Mhs/8Nnlx9+ePnsw8x+6Q9zf0aeRi5UmXBaJII3QyMs3kKWSBM129pqLZhBLB6PVfzIbDcZbe8QRSM4oU9LJrBSwwV2pE5Gx3iHQTTxBwRC55gAZiXgsxF1JtqrQb80IS2cHRc2eJRnni87zm9EDQ1ycyddJWsH+mB/RVZLlBT356Loxb8Fh5Y/a7Jpf9IV2zbavsWuN+sdWqH6YP/iib6hJ3Gkx2owQuTRS6t9cy2DE61tNoskWLSxvqPZ+A3jLxTOEr5FzkPsOaHmmQ1FU4QdG485LHJLYI3CDBIEx3rHF4Y4hTkeNrKYPvB2eACC15XwVUceQR2dfi998aMmmmun42vnqsUcorACvYWjSnX1RXAs1ztwfDA4VWOyGQzG5rG2bW3tkyFDQGMwS1/M/5Q6eTxlMUtPCPipzoXBwet7a2okk8GpD4emOuJjsgi2Lr1ITzbpsexzYJf0HJWADGrUN0B17K2tBlYiJAYQhJdQ+Znqhlp2qADhSCxlA3IhD4iqSsPquot4I1b8cyAnZaOvzr5nsIk4CYvLmsr/p/+NLTTefIGazxeADi3+awMsrRM4ATqJr+bxD4GeGBpLjEQwJ/qAIvpW+wriFgTNDMh8TdyqScVQ1BeX/XLDJbIuCrso7bIXE/SEtPhuUKSJ78al3oGTY83TdYJoNej11RvrurPt+7bVRb2VotmOgwTEHaZCz79WXz3ix9/sXkoMH+uvqebNomTXOVyQ5o3P2MwGu1HDYYtkpi8TXzDaVH+Af0O+CfIMor2PVzGxq8lDtQZSPI4nwBx9J0WzgjW7q6YZ25kSRnlnNmFnWWuwttlXT/XUuO5dUSGxXjtAEVnSuj5nXZiLdi/0pw9GNi/PaTVGW+XUe6s37Gjv2u0fbuucaG4cj+CnEtf39i71D59I7vgvj/iIxezUej85Kzflb5wZDU+0tU62hcbC6p6wb/UCfpWd0TclAuAJiF79hQJAM5z6iquoLxdy+C8+uqbWVFwA+DtmLv86b9EZ7GAI+S8ySz9OzlsMGt2F23V6iwGSqD3syJ7K9tcg26+yfD+WAEOkwqVv2OhbzSWW4dI3bDVpVXDrc/2mxjKpFS0D5Fa2N7kk1Z85GBl595yWN9ort727qnZHe+9srHuxv32iCSTWsrnJN9xOvgoS2/70gz5iMzq18kf3eBs2XUcFmb+5ZbIVRNY83hbe0srkFkSv4BB+BULAhsv/FoXGBvoDkthFseFsryz31sv0Kr9SzyrqVd0H0SO5uyBPoXsxiEE05jDjYUkdN0cjkZNTY1CdpbbSCYjGKI1BNvX3Liy7pEueXFQftdmsonX9BT/ssDltTvizOfJzDpvL5mAXlkedRQ+gAUjWeh+3FfazEli+lfF6rLhHBJfjpo4To7vKmrKP+4P1HCSWroKRxGLFQCEW0innA7Uhp94sOTUms0Gy6A0+Z7W3qtuvhzxf4ES3RW/SSSab21ur2mknXN+J9gG76m91mKQLb5GoCKioOy5iebjEKOOQ8UrH0q6exr/j6mBPUJuoZgobo81n6IgnYTwrsjRwLKwzZ1lYjdTgKy08fkw06yEtzW8RTdKdVrBpbsaoNxt0uj98wiAxWnvQT/AWXI+MJdugJy94hk1FfwxlRPpO1TaK9FJyxywW4z9Sh/uPP6G/orAV3m0R1Lg6y30M4vUkWMIv1JNOiwdLxO82cryUxILIjblZE1felFVR25CIBCQKp/UQ4jGC5PIg1LWCdj/4ZN2cAet0sMokicyxjFOiW1MPPNf5pp5j21b6MFKfTcQh0ZYIJ51+09OqT8JOFvS6d/eOaeBzosEXCDT6IBQYxdoy90jj7frDSuorWdLudKx/JV04kbjcL39s0c4iDkMhf/fg1v4jA8Eo5uoXY82pwMDRZMewSeLdbtyK3baWrW1j9+w++/LtQ/cdjWyJhgTBIBDbpgNjd3xq4n3//sFgIhKbbok3teztx+TZ7e/LbHtooSWg01T1JkLplsS9u2PhhLtK5PMvanRVVTvPjkzcmjr6wru337/b7HJxJoEz6eq8Bz+Z+9C/3pa/y9S5KX0sEutPLHYW/i+r8N9Wc+a+X4K02VHef33qL95P7y+OnP1y/p7VRo2fPwJVejKpfui7Vvb/W5pp6P+Gxr/2H17qhwyTzZDTvUR/m7d6G/r56r+Re1At+jN+yLvRLHkvarti/wv03f4bjNH1xjhvmb4Y0PfEVej7xp9u7nXzOP6085D8lXn8f/Eh21V+ORG1kQevzjvpQL5rHn8vqr9i39f/xLL+MJK5Z+m7+j/yuLtR+M+qo91oElL58Fuhh4T+tLTC/r6WHL7K/F30rPaiz0vsHc///Qf8aGmeChb11c+rZfAVPtz7VbpI8jL0XU0X039e3b8Z2yjp4p1X5wV/GzVfk26n6TnuVebuvjbZXTNvVuQjP7vU5+Afo/rL2tVbmSN+aRwGHcchcdRA3wTRojCsoXriR3FSBV8Bqa9Qmtje4f+bD94Je6yngKcvXcbHP872A5fKTkLatzzf3aiHe+4/kAAa2bUfzaNl9AV6CPuWSgb/3brys4sL6bmmcoq8XF64xrdQMtdYPvJHKv/M/TN/mP/W+qLpuWI5vq6cu8byM2Hzmy5Pv7UixsQPlhetaV25/hrLS7pt68qDpaK8iXKeFomw4rukKJKiN12hTP2RikKLYcNF5Y4rlJ+uL8bOaywnjc8Xi8lhevubKPeXyotmwbzX/LIlYPmI1WDdDOVTf6byoq3SNl8qd5eVz1+1vPwfp9j/ie5mYf94Pex470f0F1PNqBe9G7zl/UYX/fU7QFp0AHbOmNeBZ7exXTSFMbJBTYUJMmFfAeZQF+4owDyqx9cXYA2qxu8pwAK0/00BNqFO/DWUQsfQcXQrOoGuQ0voIDqJPKgDdlPtUDxoO7Qswn0ruhH696ND6AaUQ0fRArRNwTPHgP5FaKdPDQDOScA/Bu03QL2RjXYSRr8B9aBWKEswBsW4Ee1DLfDUMXQEWtXxTsA4N0MWeBzqS+gwYB4F6GbW23qZ+YfhfgTaDgPtTSgE891cGN2DtsFYN8D3BLoJrpTWYZjrKKNygj0HPHlqLh3VUwt0XToXHW8JWg9D/QSKAE4bK70ggwNoCDB6L/NU+KLnLifD9Rg7Gc03ABal1lM20xuPXpS1KukbAJdq9Di03QCj3MAk1cJ0swT9kyAReuqYfhJ9bVtmBeP3ZRWs/tP58RUkJj83EqnjUDMFn+jRBrQ2LadVa4NCm1AjsJqUPG96RvcM/wwYlA7qxuR5lGCF1Tk0uOLD927NKIl7MyvcwuBKgNa+oL0DzC9x7/7tGYqShc8TfdpGrUPLGZqfxKvvUvj3rhA0+JhmQUCDg/8H+JCEtAplbmRzdHJlYW0KZW5kb2JqCjIyMiAwIG9iago8PC9TdWJ0eXBlL0NJREZvbnRUeXBlMEMvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyNjIzPj4Kc3RyZWFtCnjajVcLVBNnFp5AMkFIURmCLqMzA1Ug8ixiVXStIIL4oL6wPlpOwQSIIKF5yGtBhSBa0WoAAYWwKlTqA8WdraAU17UV1tYeKtWq1bpbWquWVbS2d7Y/e3b/PCTxnO45OydnJv/8d+797r3fvXdGRIjFhEgk8lmpWp1QoFXNM2h1Gm3oclWGITtVa9mJEyYIE3fKGIEhBFYkcC6Cn6vgL66UiebKXIcPot2/3vp1kWQiQYjaRlvOT8aCTOaP/73UJZtkufFANplwcyFExGjCm5hA+IncRawoRBT5oqkYpSZNlahU5ejV+oLIsIiIqHma3AKtOiNTz0VGRLwaYjnP5NI1Wg5D5SxYOVW+XpWjU2tydFxaARcbxi1MXZ+lydNlqbnUHCW3MGxJGJekycM31VyQJodLU2WmZqdzmnSrCoNOpdVxGVqNIVenCONWZqp1XJ5Gm8Xhq1aVrUrVqZScIUep0nL6TBWXkLxiJRevydFzi9XrsVkVFxrKcTqVisvU63Ojw8P1howwjTYjPB3L6MKzbUK6cMtzofGvJ60MXZw4b37Sivlh+ny91Q+lSp+qztaF/WboX7iZpNFuTM0m8DGBmEhMIoKJECKUCCciiEhiKjGdiCFiiXnEfGIBkUgsJpKIZcRyYiWRTKQSacR6YgNhIPJccQLwwRCMJRViIp8YFqWKvnSZ7bLF5bprjGuH2FNcIj4ofiCJleyXfEsyJC+dIi2WnnOb4LbXDUZVuSvcKzxoj50Q47mTh0AeOnmRMPBHeV2pqYBJJ9EawSxBb5MFpcaS4mpjIwsyEiUMGyTZTreCycZqU73lCXY2eQECJWAmL6JAyWtOMhFWGRbFg1KONpNAQKdkP+lZxGt5iONhPO/Vz8MlnvqD0G43ngxN5NWE82HpC0vyVzJbKsqNW323VJfWMDv3Vr5XyRy+eWTvSfrLjzasZeOkB5Zm73mLRmOnLY1iKeNrl9+4/0VPy8e9DBW34KHUZtjznpw6vnhBsi6Ojk85cf5y/4c/nzlXXnqStWF4YsXwlAeBp/KFdkiXw5iQQeQZsyIrbg0DrSHSEV8uDJuTHZ49HCCp4/PP9qi/pEE2OARj2bRtckX0zClBs+8MDd26/ejxzeiXGWxEMPGiy7zgzrsKR3+W7yur2mys2FFmZBYlr34nnkbugU9Bxl6Vgsf3g+D63derkt5jiipNZbV0vakaB1AsbTRWlxQbSwuYHGnHm68fTqQRzSEPNJ6dIUU0jEajYcKnvc2dXUzL4dqGGl+LSREvusvDP7HJYwPymtLqrcbtO8rKmHVvLNHF0kg05/ozcPnqOrjcvZq66j22cNdeYx1dZzF3T2q2WctnSqQn05LNSTTyDQ5B45H3g3AYd+VKU1s3e8S8v7HW1/MPMA5+D+NFsAmCXAV3+El+amOrktlKKjfmpKd/kHOarSFPf9B6ikV/EZ/aeMS2o3HsHGlnMfcEAy/6iYdvMdYGMMkvSsEvAMRIzqBcR7BPDBvUTqTKJUE+BGLwZ9NK5X5TFcEMmiIY4GUSRl3zU7yQ2cs8/MvCrq+fs0voCXFouoC2kFfXLjs+l0YeUwLRaEwiNHowADyu97R9cRbTKHKERrAE8yhwVrQicPbtJ5b8Dt2chfOLi6eIBxXvBWN4mMz/wufx1K9Cgw9EOfKGk/U5FMHkFGmBqbTeEmcGxjm2U9BkUEkpXIIKEgvU1VsF2OEYZ+oZnKhHlWIPIZaHKbhmG2CdvHO7ufg4803GrO5gGnkHhqGXkM8vk4C+B7Kzbftw+rdV7NhmZLPWxxqW0IiY1fesmMWElA+7kz809n8ySA9eWxpxgB1xRmRzBrwtSRFmyzGYVf8LDBSTjTXWLpDPIsbqppMXVjeLS0bchM8V0pFdT9iHHWiGY7bUDAc4tAoBtr5hJwgcw0iKrCnMZxCLc82S5urnVvud0LDDBsQ6rfut6KyuDfD3H3vB7sdxPNUr7HmuLEqQoalOD7ijARTltP63TQEVgSKFNvkRwyFNLh4QuYf0779/6FAL44mSeKHRqvne400WzSkaubAMtTniBeXDQWTC2rWJDPJ2Uiwn73362X2sOE+4+xt67Y4n8dCCfW/3gbecCBWFWgTDj9KR9ouKHYp/HDYEO1YWPWZ7AJ187kGRTlBGDZt/y2db0HJxi/4TzLH8vCdQXcL39kpSQxt56c2uZWkbNq1RMucMWYfeplNzCtapWer2eSfunkADI7XbwIKIbKixo1bjTk91fdx+rLmNPnE0U8mivmsOnyy7n7R/cPgk3XZ0gwpn2bbnQAVePDTzVMfI5FCDibyRcClySUb+omUM1dc39wUUKWS+bWVmYZxjdKXAXpJq7eloPXmT/tsnqkUs2ql2Sp7ITkRbI+/mhSgcyU5olcMcRIAP8kMsckHj0Ew0E/AVWJiIO9M4mMakVcrRxBAkRRJEhoIUOODu44sU3H5AJJrE2Bt1v202NEOqHKjAR8gbUQG4FaGxQ0FAgdeTR+DJpPkETY+e9PIM3Hm+uf3Tszuz/K2dZzkPu23F2ok1VAj+8vsz+v0YZCT/v2JdjuMA5HfX7rNpPvHzlkcxyBd2g4K89dmKBNbCbPDh4akl1rYBOR4PSJUcPEKfojGvrcmNX8VQg3demJCNzsaSHUFWwCYysfPixht4YD18Bh5s2g552KypiqDZAw8ZyvvBrW8fDd2YNsXq1UC3CNZbOC+I5NXlVYX1zMF3DNU59Oq1mulh7BPkJi3cWra5pKasgb2OBoLJkRX0YW5V1dZtrSpkUQK8Qw6BS9uhDvpg0xb9YdZo2vWuia6trq61J9PrB77gDJzmDWeo1cIeCJZ36z9UHmY2mjVVc+rckLtZfbTX90pv152bvSmv24ayfUo+dZRivpRPTWlcSvvPXjA1+mwK+OnYq5ubypuL3KjmIwUN2Zm+MfOTwyJiuq9sZw68W15VQlseY5HY0QZbpW/yl7R9+DXiH18MsjZW4IDndcDJDuqGUA5u8qtJp5GHmZlWv6Six/fDi8eufXU+J2UPU7TLZKy1QeqzDu6Ssi2FTIX0aGbK/uW0InbdwqUnMsC/iAVi85mst3xXJSqnMhT3avypTtYkpcbUlVVvxmsrohl4bRlPDNVqVbhPmv7njwo/o0HyzcWvLKgAT+mAPBGeC5hq3fitombrtu3vbitj9Mq4whV0/NvHu1loglynrpQLHqS5vKrYPgVjpCMFeA0dJOf2rnvwdyDbW21Zx6Og017IpSRaDPEwHV6RmBwcQi4Obp0j0UTkg+nqI+m0StSX7sUSrg4JEwnT0StoMYqXlDpx8ncOfQkkvAIKCEcKyUInifH2grc1dgxK8LOhcrZ/gUTT0F00A+5KzjshlDokDpCwdFgWhyZLEPViAT6XXkhCtdAoqbfbs3ydjRFoWQD+yiKiLV9cfV55TcK0JvBqamoiGXfxjP/IRu2UefDuvEdLVSU+dlXuNnUdlclaqnZZFpbjr7KXhEHvX+T/BS5UcOIKZW5kc3RyZWFtCmVuZG9iagoyMjQgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyMz4+CnN0cmVhbQp42mtgYODhkN3IUHIqh6FAgRUAG2sDogplbmRzdHJlYW0KZW5kb2JqCjEwIDAgb2JqCjw8L1R5cGUvT2JqU3RtL04gMTg5L0ZpcnN0IDE2NzEvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA0ODE1Pj4Kc3RyZWFtCnja7Vxrc9tGlv0+vwLfRkxKYL8fKRdrZWuUqNaJPX5sMuHwAy1BMmckUUVSWfvf77ndDbJBAhQ9pi15Z1KRAfTr3nvuuf0i0L5gBZeF0wXH/xIPphBKFdwXUrtCsEJZXHihPS6isMgQKC8VihVe60KgHrO4moJzj9oW7VArruBK8kJ4NK15gVturChQk1ulC4lyjrlCQaZzvFASQiFZoSrjttASV8cKIyDe2cJAhGSqMNBDWgtNoIFmhYUmGipZ1NPOFMgSpKWFog6NObTj8excIRmM9BKqQCnYI4XEFZZKCeUZMhT+4VBKKkfmSAIB+nKkWMoiWBxZAoHSQxsuyAIuYLMsFLd0g5TQIBqHgoxgwA21o5BlgSKHccqRCGCsmaIbX2hBDRqGGyjJkaqlBLqKwAAMXKEMpBZAQyvo5PCsUAxJWgEHDzdphoJwjdbkTDhHa8jgDEUJHQ43acNV4QSuShRQSxtjiQHaeDwj3wJ+j3SLfI90ayETMiww4xw3DjagLGxCQVRw8L+HUj7AhwKeMGLEGtjFoRLoA3+T+8gHnGnckMeZwQ1cyTnHDXzBgaXhRCIoacAcYhduHKGPWoJTYdQi33EoagS054KIAp05GGEkJ86hQQn9uEaD0hLB0WBwMBo1RE2u0Y4iDTXaCS4XRDROfkV1rQhLjxtLWKIdigKKEmOI7mjCoDRukGVAOA5yG8soAiDCEtVBBGPJeeA7ihAbUN2R91CbCMoV3RAGEGccYYAwgC+IMGjGwwBuUMY7Ck+JGyqDeLCEETfgvAAfEV0FRFKYKUQFgWEQBoZkQn9rCUKIsR48QgjCpSAMBzJOwn6OAHJGUGGwwZG7EPmeUOMwzSsdAhZ+pjKO/BtcacmLgrCj9pnSdKfIs6AOp46FeYImBJQgPrvgXPrXEZ8s8QBUhg8pl9RFoFMuoa8JO093jnoSCgwZnn0Al8KL5CAG0b4nNCX9CzYibigcyWOaSMB96IkQg5zs1p5IRiXAKULPEXAAFL0PoavpjnINdXIkx1iyjfQxDrZSHU+4U3HvqBDBwQhdwozcGSIa3kH3J+gGIMiAGWiKfgK2oyi5zIZuFtEAf6Ae9cAW7C9UcIylQCfHACpDXnTAR7DgIkskJBcF0pCL0H+RWShDClASsZAiwBEO6FUJW+qaKRgcdapUXJIPyE/wjCALnFOh7yX8gX3gmEf8FpbwpX6XcPMeyFGfLQIvqFEYJDgpqIONpCl14Iy0QXgTHAKsoF6B2oCUJ0/6v71494/qbIG702v0IBiXXg0G/ZPpDSWdwMiU8nI2PXtdLYb9l8cn/TfVhwXKjy+rZ/HyNF5OR4PBn1Dvkwq/+Xhb9Y9ubqaL/uu7dwt6ej65+Wf/6XR2Xs2GDAqwUf+n/mn/2ZDHhyNUe93/cfpm2j8+OHs/vl1Us5L3oOYr2DKEAwBBGZiseIkeBP1zaaTes0TRkMhNKQz5z5fodLRwJTr0PUmcQ8hkelOKzEpnSiIfxrFSstAzlTKqgY5v73LFulzlRSkpPLQtMQiTGqD+3uXKDbmOlZJmRcyVEkFPejgt9uxambsWs4hSuTAAQgXMmSwrvVR7tlVu+hazjFLTkKcgkCZrUAS9+t4FbzpXqlJTD+JLBvlKWVz3b/Cmc4Uoqf/FUFGyoIcumXF7F6w2BHN0EOhOBViMgVgJeIPLPZNK5aSSDh0EzXS4LjWwxlBaop/fs6lqk1TSooegaYACmTgp4su9+1ZtckoaYEvjMcgUJvvWlsLVffLaiNM/ofH2Xxl7PnPo+o8eu+uRzx3QOflQ4PSaBqG9iuqfaJqzbArFsGOSUAyE7jHh/Pga+tTqn9IVMJrC1l3B21en9HdwPZ5cLaY/vK+urqb/NV1M303LyXTZK2D1UtIcXzOMAzS7p0EVK0gsGkrHzb6UeL9Y3M5/6Pc35HtXakyqFXo/ExYOrHSYyGMhjxHH7tsXzyfXk8V8eHA8PTt8vRjPFr1s3jrq/zK+rhq5jix7VZf5DoUcz1MoQVDCWvurqenBxeTyblaFacVSwCoba8W8OdlzupGgei6YnDfjbIvEZT5E3sLiXFyW53yzNdnzrJmiej6amFrxbfbFPJZEyZWoOsOrrA00olePoufN6gkKtJmTOWgp4r8n5/Mhlp4oTftZdPHxybsuHVWqb9ZUVD3aqVlqoXu0X7N8ND3atelo0qYmJ2tN2h7t8CzbcD3a51k++h7t9iwfJz3a2OmQMJn0GlP+ppwJ1Y1uTIW+QxnamcqSwhKFtpWaaVSuzbB8ot+YGC5F5yVo4yVvVwZZei2NZJm1NKprt/iqKTo4nHYmycc0VwlXnp6522KIzFtTOYZ5Cdo4yxWkaRrtfTXTYIhoBe3uXdYYqoaUZeJ3FAcrseuFaZsyyGlmkDDdlgHohFlmNKXQxl27fnm5FgVVU8Fmadr8a5MHFSVrzYGOkrfmAGspdtBRb+rounVE2ErVKg8RLHVrDsJUtuOIiJX2Xk61aBd5KhIvReKpTM/S7WC332hZ8G670ZmoVg8IcEG1egDN0ZbcvZoIsamJ7tQEpWm7tk0euKBaPSDABdXqAQii7f77dTQbOm5REVRQrUSGhroVRSioW0GEfnoHDDfV853qQTvdCiB4qlvxA011K3xghbb/Etf8ksQqkVYlEuv0rHMSh6Lep244XWW6xhUClRyauBT57W+/05as1qrUxc3d1dVoPUv5sHnVnqcYgrbOi/RY5sXtgtY8bjCz5HVexLjOM1hzW9uep6QpMbzWushGPc9La9rzBLMlAizlxc4u5vHCaotZ7bKeyetJgYn2EpfYadV59GNDbRzvyrAdGbarKbtFt7zSep7saK9TZ7mtMdedl9u6kae25NnuPL2lXu7Ibc7ayPO72QDuY1ljXEcew3SAt+cRGeWyTb6j7bRVajDmdpDfYzKh2/Mk02UHvzO/rgWFyfVfy0NQaN2eRz8GyI5AUx7zR9mRRwHaoaS0ruxoUgrEruqIXZigXXvgaItxv8M8DnFd9ZTFFNy1x3yOpWli6UonOvI4zzq7Zl6zbzVb+lbT3beu9UtOloy35wm0ucrjaifbBISpjgEgr+S3AOI7AcGwdFzNF/PwCkHYGQj7FpPFVfXkorq4YAzGMqMZsxJX/EEmMx5Xhj8V7w3KmWqw5Zetl+NZdbMIP4SSKr9UHxbhJ+d2kSaJwWLTnCfxNooJ6e8GW39gWgpTuTDTLgxtR0Fk37t0b2ubB1t/UVoT9HJW/RF+Y8+k2g6phJxLSJJJeBbnEVXSgNIIXYt8wRL6hLJJ6XZVzujB1t+f2rXsgkNGoSTQJteTD4ISIsFCgnWmvF75yVRJQTnY8rPjyWQ2Xyyhej6eL6HqP5veQdlDuU6ZpLbMwXUd/LFJr4uop2WDrT9aLSW5rHHbEQ86NWzOosEEzKbAmK5rcM6StxrxsoVfco1fLofA51ryDgh45JQ1idFVYrhOXCPt6qheMn6w9aeuVm0iTLU2olubgIvKsLtIklWKQZ0wPLsvJqF99of/45+MEaQz0oZoyrFHuvJZ3sUq0uitK+vW09cRWV8KZbDYnJpWPw4kbOqp9225arE8ESLvdK15BDDUvZVeXfcJhe6GIh8JrH14KNr6qX1CYbqhMDkU7nGy4r6ug9rcJ1y2Gy6bw+UfAVxro94+YXDdMOQDsmOPI4DqWc6yTR/bUlk79SxonzD5bpjyGYHjj5AtX7jf4awTm07WyGw9AZFyHP+2w9SiRuPXidXUNg2DcWobfVJPbd1K03w15MQ9q6GLFa+WHFSZ5uepjEo9Wj1BzRxVTwvDbN3HNr7kNIE35teuYa56GHMfMoS5aIEj8TSfPTr9QFT4wlMlLrvtz6eNzjyQ/V9wlOOq2/Z8nujsw8XFF+2jdbf9+eTQucfD/a89IeSmG6N8Ruj8I4mPL80Z241HPjX07OGGzq+118BdNxafS4cW0+6DZrm1ZdM+YNovrPdtt24Nb7y8sZo3pXEwzpuiXzvnTWn2m4+cvmv2uzbbrUf++8zcBtHnTZzuWWh8Ylu63q7lK/cu94epHtlG9+PkNtmxTbv5q3fGuohuDbX8elB/2Unbt+EKwVpcEUPA5xNrr75iCHyVQfMb8Q/v9k+ji9IP65//l9iLbuzzhYU3XxH7z1pMfCO4y27c80WNt193rPi8Sek3gr3qxj5fUHn3gJz/d/GF7vZFvnDz/utOT/e3OPlG/GC6/eAe+yIpa6+VDtsXUTJbRKX5YFpE+R0WUZ2bz3KlHb17ErS1KZg7rGi8+WCyCbvO30MYbP26td5Fb6wGeccLIo33EToWgPe+7ND4drp+P8Vn4hNeSbzqeD8lm20Ixu4HdRkFsm0LoPkdbJKY2q2FdHhOZ8gHwzsX482PXteEBLME2/aaSd6/q8GWj4cjqqmxiGpSv0ZVdKCaxW7tGpk3ku8TqFjuVTWf3s3OqnkRnRi+xXs5vqxWFqpU62aB5/kwf1d7VTt+N7ND9dUXQsP4UU8Rv+Mp0qve8aOZIn4nU8RPY4r09UP8qKWIn7AU8YOVIn6dUqQPI+JXJaOmcvGzkR2Ui1+ejOLHiPNw6sjKoXXteUJQrpqJxoc31+vvh9Kb7q1gxc9K2vQxa/rI9vp21/qmtX78vGOX+r69vtyxfuObkA0AVTuA0eXx9e4ivsldxBeXNxUxXYrYNUV0a30td6zf+DBjVT+F3/31Tbv+6c2+HeqrTwcyvsxexHe3i/gqdmHaGZUGhxZF3JoitrW+5TvWjy/CbdZXu9Zf6j+ML8sU8SWQtYi3ftf23FrE+y0R345zfEe0iKNgEce/wuptDuM6Vk0dUB04td9rNUf9n6vzyfjp9EP4CNqg77S+PgXl2awaL6azg+fjN9Vvxf9OFu+L95Azm1UXvebo8zVnnXeL99PZ2jugtn6LN42z4V3Q9BIt/dXvhoY5Ix6UCx9en9+dVbODD+d/TG7PL64/FH8/CAchWc7+3utF8zEgH48X1cHxD8iCjsJzJR3n3zP+Z8b+3ItIvbitbo7C6J2+MjmZLEbBHz9Pz6v+23n14m5xNbmBeyjx+fhddTVHvV/urudDFsbp48FAhJvZYKDqFDgifncVzhCjhut2VgMzOX1Jl8CDZ+PF+Gp6SQxWQyP9SIohfSNvhB0pNrRcj5QfaitGVgzpiC7jzchRhh85PRRWjzgzlDPi3Awdkjl3CAykSxTTeDZmaJjEFenUtLMjbu1Qe1w9GxphcLUIRj0SgiOoXeGVxL1DGTMSJBl6CAc5jo0kZ0NF58FJiXuUcQZay6GQuCoedJJKQSdYoyyeUUeboRcC19imtJDLFUz0QyVx5XaonBgpgWfmR0pCP+ipDA9WW+NwT2VsEdKhi9ES2HBqh04aoaP7Ck0nJyJcdDjIy9FJeyjv6H6kNXREj0H6aehhPO6VH8EmDG1mNAouUDa6gE6lk9EFPrgAGgQXGDooLrhAsIi9FBFrYwLWZF/A2tLRdCxiTf4hrJmKWHMZsUaf702NsYoYaxMwlhiPEAARY0gPGKNMwFjxiLHUEWOZMOYJY+sCxhqqEsbS6YgxfEIYS5kwpmfCGDMlq0XCmE4qdAFjbWzAGO3Q4Y1Ip3OuWAEdgSmdkohnDmwZZAEvrcWQjhkLR895hWc/5I6PtNGQIRLWbITgH3qQGpiDZXS4HP5GkojKoFidElJhXn2r2epWh7JGN8oaH1KBZp1iY5s2SBk5vsxwannrbaMRcmq4cpuusdXRsvemQyKWp1M8Oz2mZ8oQ/afjeRVy3x49f3F09P1f7yZn/5yPb84Pn06vzkPF42p+NpvcorcO57qFAej0+PXH+aK6Pr25mIah63IyX8w+HhydT99Vvf4LOvpicnN5cHqOAWey+NiD9Nvbq+qaxh+Gnuf4Vzqosf9rOFAuNflm+uPp8c/j235dKxt/mor0j+ZnYQWBvpe+bQkPh0Kz/mso9T/00QF6qtufqsnl+1Tq6I/LXyfnGGZAidDaUxqYDul0vUNJx91JOpeUOznqn6KLm5wd3VxeVQXrn1yNL9EJGsFD8x8xMj1Bz3gznVdPWP2fY43/BumAOupfO5AlCCuMxXEZEUqfTK4qOlfPrA3iDe9RCrvPbX+5OZueA/8lkoc/JZjOx5AzDXOHOEa/mb69maB0RSfvbRPcTpvff/7r729+zOSDCndX49kmc+wemcNEYI7bP3Oc7SaOUhlx6KTZQ/IVl5yOrZQdxDGdnNFbONMJ65I2fp02gn0CbTrb34U56XSJBnX4jtTJdPjbX1798vbke8z/fvw4q57dzebTWcPOz+PJOgHjmpzoIxwj+gjZovMmUxxXK6JwZxJRFM+IQmVWPLE+44nGep/4Raed0rnIvJ0mdgtNfCdNtkJYcwOzBiGWwUfkEeoTqLJNxmHGkl2YY9gmc+qtrf8DnEYbFAplbmRzdHJlYW0KZW5kb2JqCjIyNSAwIG9iago8PC9UeXBlL1hSZWYvSURbPGE2ZjhkNzU0MzU2MGZjN2JkYWEzMzcxNmFiOTNjYzBiPjxhNmY4ZDc1NDM1NjBmYzdiZGFhMzM3MTZhYjkzY2MwYj5dL1Jvb3QKMSAwIFIvSW5mbyAyIDAgUi9TaXplIDIyNi9XWzEgMyAyXS9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDUyOD4+CnN0cmVhbQp42jXU6VPNURjA8ee559quJVquJGUnS2SXcENIRLYi+5Y9eyjKkn3Ncu3URSj7luW9l154wQxjzDAYjOkvkN/vO6c3n3nme87MmTkz54iI1NV5RHzyAO/jeRUJE1HxFYlQnuETlfAKW0S9afl2vqASmWRnxUvoQYMv8Dl6sQE2xEbYGJugD5tiM2yOLZyzgvasMLyiEp1hS0u86pR/trTCayoxP20Jx3KV2FRbIjCkEpdnSyReV4l/695DwgdHDQVcK0OOnvTfdmcU3lBPJj3b72hSCl0Dn+2e1/hSzfsaW/x4U82n+vtsjbfUfCm1JRpvq/n6zpY2eEfN9/qbj8FqbIuxan68savtcAyuxBEYhyMxgKk4CONxMA7BoTgW2+MoHI3jcDx2wI6YjhMwAzvhRJyEmTgVO2MKpuFknIJdMAun4XScgV2xG87E+bgQu2MyDsPhOA8TcAEuwsW4BHvgUlyGebgce2IvXIGrcDX2xjW4FvvjAEzEgZiNOTgL++BszMU5OBf7YhL2w3w8h+twE67HDbgRT+Nm3IIFeApLcCtuw+1YiEW4A3diMR7EXbgb9+BeLMV9uB8PYBkewsN4BI/iMTyOJ/AkBvEMnsV7eBkvYgVW4l2sUvMry32Vf4Kufz/aN/IUH6qpLXN77Tfba/CRev2J7l/nL7H9lXqTC+z82PkDI9zVnHKR/1n2c10KZW5kc3RyZWFtCmVuZG9iagpzdGFydHhyZWYKMjg0ODMzCiUlRU9GCg==</File>
    </Filelist>
</otrs_package>