{"format":"pcremote-corresponding-source-1","version":"20260928-ice-ordering","upstream":{"url":"https://codeload.github.com/MrCreativ3001/moonlight-web-stream/zip/refs/tags/v2.10.0","sha256":"a70673c13bc9ceb5ec61aa02078929e749212acfab8d92db1a37dbfdc777d8ec","root":"moonlight-web-stream-2.10.0/","bytes":1135394},"files":[{"path":".editorconfig","sha256":"c4f3317f47955781dbffb1cc138fd34d3cb9963d28a7421146b2caf3f8f80849","contentBase64":"cm9vdCA9IHRydWUKCiMgVW5peC1zdHlsZSBuZXdsaW5lcyB3aXRoIGEgbmV3bGluZSBlbmRpbmcgZXZlcnkgZmlsZQpbKl0KZW5kX29mX2xpbmUgPSBsZgppbnNlcnRfZmluYWxfbmV3bGluZSA9IHRydWU="},{"path":".gitattributes","sha256":"459e7c172cef04014c22e56be39d6f344bb7b801b730a930484f910701a2c52b","contentBase64":"KiB0ZXh0PWF1dG8="},{"path":".github/workflows/ci.yml","sha256":"3a85e6dc5a2560942c5f53a89e40edbf90c6c9375d90c97937e7eb7da0e3296e","contentBase64":"bmFtZTogQ0kKCm9uOgogIHB1c2g6CiAgICBicmFuY2hlczoKICAgICAgLSAnKionCiAgICB0YWdzOgogICAgICAtICd2KicKICBwdWxsX3JlcXVlc3Q6CgpwZXJtaXNzaW9uczoKICBjb250ZW50czogd3JpdGUKCmpvYnM6CiAgdGVzdDoKICAgIG5hbWU6IFRlc3QgeDg2XzY0LXVua25vd24tbGludXgtZ251CiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgCiAgICBzdGVwczoKICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY1CiAgICAgICAgd2l0aDoKICAgICAgICAgIHN1Ym1vZHVsZXM6IHJlY3Vyc2l2ZQoKICAgICAgLSB1c2VzOiBhY3Rpb25zLXJ1c3QtbGFuZy9zZXR1cC1ydXN0LXRvb2xjaGFpbkB2MQogICAgICAgIHdpdGg6CiAgICAgICAgICB0b29sY2hhaW46IG5pZ2h0bHktMjAyNi0wMi0xMwogICAgICAgICAgY29tcG9uZW50czogY2xpcHB5LCBydXN0Zm10CiAgICAgIC0gdXNlczogU3dhdGluZW0vcnVzdC1jYWNoZUB2MgoKICAgICAgIyBGb3JtYXQgY2hlY2sKICAgICAgLSBuYW1lOiBSdXN0Zm10CiAgICAgICAgcnVuOiBjYXJnbyBmbXQgLS1hbGwgLS0gLS1jaGVjawoKICAgICAgIyBDbGlwcHkKICAgICAgLSBuYW1lOiBDbGlwcHkKICAgICAgICBydW46IGNhcmdvIGNsaXBweSAtLWFsbC10YXJnZXRzIC0tYWxsLWZlYXR1cmVzIC0tIC1EIHdhcm5pbmdzCgogICAgICAjIEJpbnN0YWxsCiAgICAgIC0gbmFtZTogSW5zdGFsbCBjYXJnby1iaW5zdGFsbAogICAgICAgIHVzZXM6IGNhcmdvLWJpbnMvY2FyZ28tYmluc3RhbGxAbWFpbgoKICAgICAgIyBDYXJnbyBTaGVhcgogICAgICAtIG5hbWU6IEluc3RhbGwgY2FyZ28tc2hlYXIKICAgICAgICBydW46IGNhcmdvIGJpbnN0YWxsIC0tZm9yY2UgLS1uby1jb25maXJtIGNhcmdvLXNoZWFyCiAgICAgIC0gbmFtZTogQ2FyZ28gU2hlYXIKICAgICAgICBydW46IGNhcmdvIHNoZWFyIC0tZXhwYW5kCiAgCiAgICAgICMgVGVzdAogICAgICAtIG5hbWU6IFRlc3QKICAgICAgICBydW46IGNhcmdvIHRlc3QgLS13b3Jrc3BhY2UgLS1sb2NrZWQKCiAgYnVpbGQ6CiAgICBuZWVkczogdGVzdAogICAgc3RyYXRlZ3k6CiAgICAgIGZhaWwtZmFzdDogZmFsc2UKICAgICAgbWF0cml4OgogICAgICAgIGluY2x1ZGU6CiAgICAgICAgICAtIHRhcmdldDogeDg2XzY0LXBjLXdpbmRvd3MtZ251CiAgICAgICAgICAgIGFwcC1zdWZmaXg6IC5leGUKICAgICAgICAgIC0gdGFyZ2V0OiB4ODZfNjQtdW5rbm93bi1saW51eC1nbnUKICAgICAgICAgICAgYXBwLXN1ZmZpeDogIiIKICAgICAgICAgICMgVE9ETzogZml4IG11c2wgYnVpbGQgYnkgZGlzYWJsaW5nIFNJTUQgaW4gbW9vbmxpZ2h0LWNvbW1vbi1jCiAgICAgICAgICAjLSB0YXJnZXQ6IHg4Nl82NC11bmtub3duLWxpbnV4LW11c2wKICAgICAgICAgICMgIGFwcC1zdWZmaXg6ICIiCiAgICAgICAgICAtIHRhcmdldDogYWFyY2g2NC11bmtub3duLWxpbnV4LWdudQogICAgICAgICAgICBhcHAtc3VmZml4OiAiIgogICAgICAgICAgLSB0YXJnZXQ6IGFhcmNoNjQtdW5rbm93bi1saW51eC1tdXNsCiAgICAgICAgICAgIGFwcC1zdWZmaXg6ICIiCgogICAgbmFtZTogQnVpbGQgJHt7IG1hdHJpeC50YXJnZXQgfX0KICAgIHJ1bnMtb246IHVidW50dS1sYXRlc3QKICAKICAgIHN0ZXBzOgogICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY1CiAgICAgIHdpdGg6CiAgICAgICAgc3VibW9kdWxlczogcmVjdXJzaXZlCiAgCiAgICAjIEluc3RhbGwgbm9kZQogICAgLSB1c2VzOiBhY3Rpb25zL3NldHVwLW5vZGVAdjYKICAgICAgd2l0aDoKICAgICAgICBub2RlLXZlcnNpb246IDI0CiAgICAgICAgY2FjaGU6IG5wbQogIAogICAgIyBJbnN0YWxsIHJ1c3QKICAgIC0gdXNlczogYWN0aW9ucy1ydXN0LWxhbmcvc2V0dXAtcnVzdC10b29sY2hhaW5AdjEKICAgICAgd2l0aDoKICAgICAgICB0b29sY2hhaW46IG5pZ2h0bHktMjAyNi0wMi0xMwogICAgLSB1c2VzOiBTd2F0aW5lbS9ydXN0LWNhY2hlQHYyCiAgICAgIHdpdGg6CiAgICAgICAgc2hhcmVkLWtleTogY3Jvc3MtJHt7IG1hdHJpeC50YXJnZXQgfX0KICAKICAgICMgSW5zdGFsbCBjcm9zcwogICAgLSBuYW1lOiBJbnN0YWxsIGNhcmdvLWJpbnN0YWxsCiAgICAgIHVzZXM6IGNhcmdvLWJpbnMvY2FyZ28tYmluc3RhbGxAbWFpbgogICAgLSBuYW1lOiBJbnN0YWxsIENyb3NzCiAgICAgIHJ1bjogY2FyZ28gYmluc3RhbGwgLS1mb3JjZSBjcm9zcwogIAogICAgIyBCdWlsZAogICAgLSBuYW1lOiBCdWlsZAogICAgICBydW46IHwKICAgICAgICBjcm9zcyBidWlsZCAtLXJlbGVhc2UgLS10YXJnZXQgJHt7IG1hdHJpeC50YXJnZXQgfX0KICAKICAgICAgICBucG0gY2kKICAgICAgICBucG0gcnVuIGJ1aWxkCiAgICAgICAgbXYgZGlzdCBzdGF0aWMKICAKICAgICAgICBybSAtcmYgc3RyZWFtZXIgd2ViLXNlcnZlcgogICAgICAgIG12IHRhcmdldC8ke3sgbWF0cml4LnRhcmdldCB9fS9yZWxlYXNlL3N0cmVhbWVyJHt7IG1hdHJpeC5hcHAtc3VmZml4IH19IHN0cmVhbWVyJHt7IG1hdHJpeC5hcHAtc3VmZml4IH19CiAgICAgICAgbXYgdGFyZ2V0LyR7eyBtYXRyaXgudGFyZ2V0IH19L3JlbGVhc2Uvd2ViLXNlcnZlciR7eyBtYXRyaXguYXBwLXN1ZmZpeCB9fSB3ZWItc2VydmVyJHt7IG1hdHJpeC5hcHAtc3VmZml4IH19CiAgCiAgICAtIG5hbWU6IFVwbG9hZCBidWlsZCBhcnRpZmFjdAogICAgICB1c2VzOiBhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2NAogICAgICB3aXRoOgogICAgICAgIG5hbWU6IG1vb25saWdodC13ZWItJHt7IG1hdHJpeC50YXJnZXQgfX0KICAgICAgICBwYXRoOiB8CiAgICAgICAgICBzdHJlYW1lciR7eyBtYXRyaXguYXBwLXN1ZmZpeCB9fQogICAgICAgICAgd2ViLXNlcnZlciR7eyBtYXRyaXguYXBwLXN1ZmZpeCB9fQogICAgICAgICAgc3RhdGljCgogIGNyZWF0ZS1yZWxlYXNlOgogICAgbmFtZTogQ3JlYXRlIEdpdEh1YiBSZWxlYXNlCiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CiAgICBpZjogc3RhcnRzV2l0aChnaXRodWIucmVmLCAncmVmcy90YWdzL3YnKQogICAgbmVlZHM6IGJ1aWxkCiAgCiAgICBvdXRwdXRzOgogICAgICB1cGxvYWRfdXJsOiAke3sgc3RlcHMucmVsZWFzZS5vdXRwdXRzLnVwbG9hZF91cmwgfX0KICAKICAgIHN0ZXBzOgogICAgICAtIG5hbWU6IENyZWF0ZSByZWxlYXNlCiAgICAgICAgaWQ6IHJlbGVhc2UKICAgICAgICB1c2VzOiBzb2Z0cHJvcHMvYWN0aW9uLWdoLXJlbGVhc2VAdjIKICAgICAgICB3aXRoOgogICAgICAgICAgZ2VuZXJhdGVfcmVsZWFzZV9ub3RlczogdHJ1ZQogICAgICAgICAgZHJhZnQ6IGZhbHNlCiAgICAgICAgICBwcmVyZWxlYXNlOiAke3sgY29udGFpbnMoZ2l0aHViLnJlZl9uYW1lLCAnLXByZXJlbGVhc2UnKSB9fQogICAgICAgIGVudjoKICAgICAgICAgIEdJVEhVQl9UT0tFTjogJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19CgogIHJlbGVhc2U6CiAgICBuYW1lOiBQdWJsaXNoIEdpdEh1YiBSZWxlYXNlIEFydGlmYWN0cwogICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAogICAgaWY6IHN0YXJ0c1dpdGgoZ2l0aHViLnJlZiwgJ3JlZnMvdGFncy92JykKICAgIG5lZWRzOgogICAgLSBidWlsZAogICAgLSBjcmVhdGUtcmVsZWFzZQoKICAgIHN0cmF0ZWd5OgogICAgICBtYXRyaXg6CiAgICAgICAgaW5jbHVkZToKICAgICAgICAgIC0gdGFyZ2V0OiB4ODZfNjQtcGMtd2luZG93cy1nbnUKICAgICAgICAgICAgc3VmZml4OiAuZXhlCiAgICAgICAgICAtIHRhcmdldDogeDg2XzY0LXVua25vd24tbGludXgtZ251CiAgICAgICAgICAgIHN1ZmZpeDogIiIKICAgICAgICAgIC0gdGFyZ2V0OiBhYXJjaDY0LXVua25vd24tbGludXgtZ251CiAgICAgICAgICAgIHN1ZmZpeDogIiIKICAgICAgICAgIC0gdGFyZ2V0OiBhYXJjaDY0LXVua25vd24tbGludXgtbXVzbAogICAgICAgICAgICBzdWZmaXg6ICIiCgogICAgc3RlcHM6CiAgICAgIC0gbmFtZTogRG93bmxvYWQgYXJ0aWZhY3QKICAgICAgICB1c2VzOiBhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QHY0CiAgICAgICAgd2l0aDoKICAgICAgICAgIG5hbWU6IG1vb25saWdodC13ZWItJHt7IG1hdHJpeC50YXJnZXQgfX0KICAgICAgICAgIHBhdGg6IGRpc3QKCiAgICAgIC0gbmFtZTogQ3JlYXRlIGFyY2hpdmUKICAgICAgICBydW46IHwKICAgICAgICAgIG1rZGlyIHBhY2thZ2UKICAgICAgICAgIG12IGRpc3Qvc3RyZWFtZXIke3sgbWF0cml4LnN1ZmZpeCB9fSBwYWNrYWdlLwogICAgICAgICAgbXYgZGlzdC93ZWItc2VydmVyJHt7IG1hdHJpeC5zdWZmaXggfX0gcGFja2FnZS8KICAgICAgICAgIG12IGRpc3Qvc3RhdGljIHBhY2thZ2UvCgogICAgICAgICAgQVJDSElWRT0ibW9vbmxpZ2h0LXdlYi0ke3sgbWF0cml4LnRhcmdldCB9fSIKCiAgICAgICAgICBpZiBbWyAiJHt7IG1hdHJpeC5zdWZmaXggfX0iID09ICIuZXhlIiBdXTsgdGhlbgogICAgICAgICAgICB6aXAgLXIgIiRBUkNISVZFLnppcCIgcGFja2FnZQogICAgICAgICAgICBlY2hvICJBU1NFVD0kQVJDSElWRS56aXAiID4+ICRHSVRIVUJfRU5WCiAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHRhciAtY3pmICIkQVJDSElWRS50YXIuZ3oiIHBhY2thZ2UKICAgICAgICAgICAgZWNobyAiQVNTRVQ9JEFSQ0hJVkUudGFyLmd6IiA+PiAkR0lUSFVCX0VOVgogICAgICAgICAgZmkKCiAgICAgIC0gbmFtZTogVXBsb2FkIHRvIHJlbGVhc2UKICAgICAgICB1c2VzOiBzb2Z0cHJvcHMvYWN0aW9uLWdoLXJlbGVhc2VAdjIKICAgICAgICB3aXRoOgogICAgICAgICAgZmlsZXM6ICR7eyBlbnYuQVNTRVQgfX0KICAgICAgICBlbnY6CiAgICAgICAgICBHSVRIVUJfVE9LRU46ICR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fQoKICBkb2NrZXI6CiAgICBuYW1lOiBEb2NrZXIgJHt7IG1hdHJpeC5uYW1lIH19CiAgICBuZWVkczogYnVpbGQKCiAgICBpZjogc3RhcnRzV2l0aChnaXRodWIucmVmLCAncmVmcy90YWdzL3YnKQoKICAgIHN0cmF0ZWd5OgogICAgICBtYXRyaXg6CiAgICAgICAgaW5jbHVkZToKICAgICAgICAgIC0gcnVubmVyOiB1YnVudHUtbGF0ZXN0CiAgICAgICAgICAgIGFyY2g6IHg4Nl82NAogICAgICAgICAgICBwbGF0Zm9ybTogYW1kNjQKICAgICAgICAgIC0gcnVubmVyOiB1YnVudHUtMjQuMDQtYXJtCiAgICAgICAgICAgIGFyY2g6IGFhcmNoNjQKICAgICAgICAgICAgcGxhdGZvcm06IGFybTY0CgogICAgcnVucy1vbjogJHt7IG1hdHJpeC5ydW5uZXIgfX0KCiAgICBzdGVwczoKICAgICAgLSB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY0CgogICAgICAtIG5hbWU6IERvd25sb2FkIGFydGlmYWN0cwogICAgICAgIHVzZXM6IGFjdGlvbnMvZG93bmxvYWQtYXJ0aWZhY3RAdjQKICAgICAgICB3aXRoOgogICAgICAgICAgbmFtZTogbW9vbmxpZ2h0LXdlYi0ke3sgbWF0cml4LmFyY2ggfX0tdW5rbm93bi1saW51eC1nbnUKICAgICAgICAgIHBhdGg6IC4vZG9ja2VyL21vb25saWdodC13ZWIKCiAgICAgIC0gbmFtZTogTG9nIGluIHRvIERvY2tlciBIdWIKICAgICAgICB1c2VzOiBkb2NrZXIvbG9naW4tYWN0aW9uQHYyCiAgICAgICAgd2l0aDoKICAgICAgICAgIHVzZXJuYW1lOiAke3sgc2VjcmV0cy5ET0NLRVJIVUJfVVNFUk5BTUUgfX0KICAgICAgICAgIHBhc3N3b3JkOiAke3sgc2VjcmV0cy5ET0NLRVJIVUJfVE9LRU4gfX0KCiAgICAgIC0gbmFtZTogQnVpbGQgRG9ja2VyIGltYWdlCiAgICAgICAgdXNlczogZG9ja2VyL2J1aWxkLXB1c2gtYWN0aW9uQHY0CiAgICAgICAgd2l0aDoKICAgICAgICAgIGNvbnRleHQ6IC4vZG9ja2VyLwogICAgICAgICAgZmlsZTogLi9kb2NrZXIvRG9ja2VyZmlsZS5hY3Rpb24KICAgICAgICAgIHRhZ3M6IG1yY3JlYXRpdjMwMDEvbW9vbmxpZ2h0LXdlYi1zdHJlYW06JHt7IGdpdGh1Yi5yZWZfbmFtZSB9fS0ke3sgbWF0cml4LnBsYXRmb3JtIH19CiAgICAgICAgICBwdXNoOiB0cnVlCgogIGRvY2tlci1tYW5pZmVzdDoKICAgIG5hbWU6IERvY2tlciBjcmVhdGUgbXVsdGktYXJjaCBtYW5pZmVzdCBmb3IgdmVyc2lvbmVkIGltYWdlcwogICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAoKICAgIG5lZWRzOiBkb2NrZXIKICAgIGlmOiBzdGFydHNXaXRoKGdpdGh1Yi5yZWYsICdyZWZzL3RhZ3MvdicpCgogICAgc3RlcHM6CiAgICAgIC0gbmFtZTogTG9nIGluIHRvIERvY2tlciBIdWIKICAgICAgICB1c2VzOiBkb2NrZXIvbG9naW4tYWN0aW9uQHYyCiAgICAgICAgd2l0aDoKICAgICAgICAgIHVzZXJuYW1lOiAke3sgc2VjcmV0cy5ET0NLRVJIVUJfVVNFUk5BTUUgfX0KICAgICAgICAgIHBhc3N3b3JkOiAke3sgc2VjcmV0cy5ET0NLRVJIVUJfVE9LRU4gfX0KCiAgICAgIC0gbmFtZTogQ3JlYXRlIGFuZCBwdXNoIG1hbmlmZXN0CiAgICAgICAgcnVuOiB8CiAgICAgICAgICBkb2NrZXIgbWFuaWZlc3QgY3JlYXRlIG1yY3JlYXRpdjMwMDEvbW9vbmxpZ2h0LXdlYi1zdHJlYW06JHt7IGdpdGh1Yi5yZWZfbmFtZSB9fSBcCiAgICAgICAgICAgIC0tYW1lbmQgbXJjcmVhdGl2MzAwMS9tb29ubGlnaHQtd2ViLXN0cmVhbToke3sgZ2l0aHViLnJlZl9uYW1lIH19LWFtZDY0IFwKICAgICAgICAgICAgLS1hbWVuZCBtcmNyZWF0aXYzMDAxL21vb25saWdodC13ZWItc3RyZWFtOiR7eyBnaXRodWIucmVmX25hbWUgfX0tYXJtNjQKCiAgICAgICAgICBkb2NrZXIgbWFuaWZlc3QgcHVzaCBtcmNyZWF0aXYzMDAxL21vb25saWdodC13ZWItc3RyZWFtOiR7eyBnaXRodWIucmVmX25hbWUgfX0KCiAgZG9ja2VyLW1hbmlmZXN0LWxhdGVzdDoKICAgIG5hbWU6IERvY2tlciBwb2ludCBsYXRlc3QgaW1hZ2UgdG8gdmVyc2lvbmVkIGltYWdlCiAgICBydW5zLW9uOiB1YnVudHUtbGF0ZXN0CgogICAgbmVlZHM6IGRvY2tlcgogICAgaWY6IHN0YXJ0c1dpdGgoZ2l0aHViLnJlZiwgJ3JlZnMvdGFncy92JykgJiYgIWNvbnRhaW5zKGdpdGh1Yi5yZWZfbmFtZSwgJy1wcmVyZWxlYXNlJykKCiAgICBzdGVwczoKICAgICAgLSBuYW1lOiBMb2cgaW4gdG8gRG9ja2VyIEh1YgogICAgICAgIHVzZXM6IGRvY2tlci9sb2dpbi1hY3Rpb25AdjIKICAgICAgICB3aXRoOgogICAgICAgICAgdXNlcm5hbWU6ICR7eyBzZWNyZXRzLkRPQ0tFUkhVQl9VU0VSTkFNRSB9fQogICAgICAgICAgcGFzc3dvcmQ6ICR7eyBzZWNyZXRzLkRPQ0tFUkhVQl9UT0tFTiB9fQoKICAgICAgLSBuYW1lOiBDcmVhdGUgYW5kIHB1c2ggbWFuaWZlc3QKICAgICAgICBydW46IHwKICAgICAgICAgIGRvY2tlciBtYW5pZmVzdCBjcmVhdGUgbXJjcmVhdGl2MzAwMS9tb29ubGlnaHQtd2ViLXN0cmVhbTpsYXRlc3QgXAogICAgICAgICAgICAtLWFtZW5kIG1yY3JlYXRpdjMwMDEvbW9vbmxpZ2h0LXdlYi1zdHJlYW06JHt7IGdpdGh1Yi5yZWZfbmFtZSB9fS1hbWQ2NCBcCiAgICAgICAgICAgIC0tYW1lbmQgbXJjcmVhdGl2MzAwMS9tb29ubGlnaHQtd2ViLXN0cmVhbToke3sgZ2l0aHViLnJlZl9uYW1lIH19LWFybTY0CgogICAgICAgICAgZG9ja2VyIG1hbmlmZXN0IHB1c2ggbXJjcmVhdGl2MzAwMS9tb29ubGlnaHQtd2ViLXN0cmVhbTpsYXRlc3Q="},{"path":".github/workflows/prepare-release.yml","sha256":"9b9020396d4eabe1b380b8138faf710c96427b2827a38cfbf0b144bc4576abb6","contentBase64":"bmFtZTogUHJlcGFyZSBSZWxlYXNlCgpvbjoKICB3b3JrZmxvd19kaXNwYXRjaDoKICAgIGlucHV0czoKICAgICAgdmVyc2lvbjoKICAgICAgICBkZXNjcmlwdGlvbjogJ1RhcmdldCB2ZXJzaW9uIChlLmcuLCAyLjkuMCknCiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgYnJhbmNoOgogICAgICAgIGRlc2NyaXB0aW9uOiAnQnJhbmNoIHRvIHJlbGVhc2UgZnJvbScKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGRlZmF1bHQ6ICdtYXN0ZXInCiAgICAgICAgdHlwZTogc3RyaW5nCgpwZXJtaXNzaW9uczoKICBjb250ZW50czogd3JpdGUKCmpvYnM6CiAgYnVtcC12ZXJzaW9uOgogICAgcnVucy1vbjogdWJ1bnR1LWxhdGVzdAoKICAgIHN0ZXBzOgogICAgICAtIG5hbWU6IENoZWNrb3V0IGNvZGUKICAgICAgICB1c2VzOiBhY3Rpb25zL2NoZWNrb3V0QHY1CiAgICAgICAgd2l0aDoKICAgICAgICAgIHJlZjogJHt7IGdpdGh1Yi5ldmVudC5pbnB1dHMuYnJhbmNoIH19CiAgICAgICAgICB0b2tlbjogJHt7IHNlY3JldHMuR0hfUEFUIH19CiAgICAgICAgICBmZXRjaC1kZXB0aDogMAoKICAgICAgLSBuYW1lOiBJbnN0YWxsIFJ1c3QgdG9vbGNoYWluCiAgICAgICAgdXNlczogZHRvbG5heS9ydXN0LXRvb2xjaGFpbkBzdGFibGUKCiAgICAgIC0gbmFtZTogVXBkYXRlIHZlcnNpb24gYW5kIFRhZwogICAgICAgIHJ1bjogfAogICAgICAgICAgUkFXX1ZFUlNJT049JHt7IGdpdGh1Yi5ldmVudC5pbnB1dHMudmVyc2lvbiB9fQogICAgICAgICAgVkVSU0lPTj0ke1JBV19WRVJTSU9OI3Z9CgogICAgICAgICAgc2VkIC1pICIwLC9edmVyc2lvbiA9IC4qL3MvL3ZlcnNpb24gPSBcIiRWRVJTSU9OXCIvIiBDYXJnby50b21sCiAgICAgICAgICBjYXJnbyB1cGRhdGUgLS13b3Jrc3BhY2UKCiAgICAgICAgICBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAiZ2l0aHViLWFjdGlvbnNbYm90XSIKICAgICAgICAgIGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAiZ2l0aHViLWFjdGlvbnNbYm90XUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20iCiAgICAgICAgICAKICAgICAgICAgIGdpdCBhZGQgQ2FyZ28udG9tbCBDYXJnby5sb2NrCiAgICAgICAgICBnaXQgY29tbWl0IC1tICJjaG9yZTogYnVtcCB2ZXJzaW9uIHRvICRWRVJTSU9OIgoKICAgICAgICAgIGdpdCBwdXNoIG9yaWdpbiAke3sgZ2l0aHViLmV2ZW50LmlucHV0cy5icmFuY2ggfX0KCiAgICAgICAgICBORVdfVEFHPSJ2JFZFUlNJT04iCiAgICAgICAgICBnaXQgdGFnICRORVdfVEFHCiAgICAgICAgICBnaXQgcHVzaCBvcmlnaW4gJE5FV19UQUcK"},{"path":".gitignore","sha256":"dd9843a5a329cbd5f77461616f69a0e0d1dd0949d382fa2ccece41ef58e79b47","contentBase64":"IyBSdXN0Ci90YXJnZXQKZmluYWxPdXRwdXQKaWdub3JlCgojIFZzQ29kZQoudnNjb2RlCgojIG5wbSAvIGpzCm5vZGVfbW9kdWxlcwpkaXN0CmJpbmRpbmdzCndlYi9hcGlfYmluZGluZ3MudHMKCiMgU2VydmVyCnNlcnZlcgoKLy5pZGVhCg=="},{"path":".gitmodules","sha256":"87bc3ff52c1a1dd37b195e8747371acd8a378a3aabc55db8c9ef24057155d258","contentBase64":"W3N1Ym1vZHVsZSAibW9vbmxpZ2h0LWNvbW1vbi1zeXMvbW9vbmxpZ2h0LWNvbW1vbi1jIl0KCXBhdGggPSBtb29ubGlnaHQtY29tbW9uLXN5cy9tb29ubGlnaHQtY29tbW9uLWMKCXVybCA9IGh0dHBzOi8vZ2l0aHViLmNvbS9tb29ubGlnaHQtc3RyZWFtL21vb25saWdodC1jb21tb24tYy5naXQK"},{"path":"Cargo.lock","sha256":"356aa86838be8830b9686f9fbad2b633972d360ba408af5ce8e536ad5d8cc1fb","contentBase64":"IyBUaGlzIGZpbGUgaXMgYXV0b21hdGljYWxseSBAZ2VuZXJhdGVkIGJ5IENhcmdvLgojIEl0IGlzIG5vdCBpbnRlbmRlZCBmb3IgbWFudWFsIGVkaXRpbmcuCnZlcnNpb24gPSA0CgpbW3BhY2thZ2VdXQpuYW1lID0gImFjdGl4LWNvZGVjIgp2ZXJzaW9uID0gIjAuNS4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjVmN2IwYTIxOTg4YzFiZjg3N2NmNDc1OWVmNWRkYWFjMDRjMWM5ZmU4MDhjOTE0MmVjYjc4YmE5N2Q5N2EyOGEiCmRlcGVuZGVuY2llcyA9IFsKICJiaXRmbGFncyAyLjExLjAiLAogImJ5dGVzIiwKICJmdXR1cmVzLWNvcmUiLAogImZ1dHVyZXMtc2luayIsCiAibWVtY2hyIiwKICJwaW4tcHJvamVjdC1saXRlIiwKICJ0b2tpbyIsCiAidG9raW8tdXRpbCIsCiAidHJhY2luZyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYWN0aXgtZmlsZXMiCnZlcnNpb24gPSAiMC42LjEwIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImRmOGM0ZjMwZTMyNzJkN2MzNDVmODhhZTBhYWMzODQ4NTA3ZWY1YmE4NzFmOWNjMmE0MWM4MDg1YTBmMDUyM2IiCmRlcGVuZGVuY2llcyA9IFsKICJhY3RpeC1odHRwIiwKICJhY3RpeC1zZXJ2aWNlIiwKICJhY3RpeC11dGlscyIsCiAiYWN0aXgtd2ViIiwKICJiaXRmbGFncyAyLjExLjAiLAogImJ5dGVzIiwKICJkZXJpdmVfbW9yZSIsCiAiZnV0dXJlcy1jb3JlIiwKICJodHRwLXJhbmdlIiwKICJsb2ciLAogIm1pbWUiLAogIm1pbWVfZ3Vlc3MiLAogInBlcmNlbnQtZW5jb2RpbmciLAogInBpbi1wcm9qZWN0LWxpdGUiLAogInZfaHRtbGVzY2FwZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYWN0aXgtaHR0cCIKdmVyc2lvbiA9ICIzLjEyLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZjg2MGVlNjc0NmQwYzViNjgyMTQ3YjJmN2Y4ZWYwMzZkNGY5MmZlNTE4MjUxYTNhMzVmZmEzNjUwZWFmZGYwZSIKZGVwZW5kZW5jaWVzID0gWwogImFjdGl4LWNvZGVjIiwKICJhY3RpeC1ydCIsCiAiYWN0aXgtc2VydmljZSIsCiAiYWN0aXgtdGxzIiwKICJhY3RpeC11dGlscyIsCiAiYmFzZTY0IiwKICJiaXRmbGFncyAyLjExLjAiLAogImJyb3RsaSIsCiAiYnl0ZXMiLAogImJ5dGVzdHJpbmciLAogImRlcml2ZV9tb3JlIiwKICJlbmNvZGluZ19ycyIsCiAiZmxhdGUyIiwKICJmb2xkaGFzaCIsCiAiZnV0dXJlcy1jb3JlIiwKICJoMiIsCiAiaHR0cCAwLjIuMTIiLAogImh0dHBhcnNlIiwKICJodHRwZGF0ZSIsCiAiaXRvYSIsCiAibGFuZ3VhZ2UtdGFncyIsCiAibG9jYWwtY2hhbm5lbCIsCiAibWltZSIsCiAicGVyY2VudC1lbmNvZGluZyIsCiAicGluLXByb2plY3QtbGl0ZSIsCiAicmFuZCIsCiAic2hhMSIsCiAic21hbGx2ZWMiLAogInRva2lvIiwKICJ0b2tpby11dGlsIiwKICJ0cmFjaW5nIiwKICJ6c3RkIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJhY3RpeC1tYWNyb3MiCnZlcnNpb24gPSAiMC4yLjQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTAxZWQzMTQwYjJmOGQ0MjJjNjhhZmExZWQyZTg1ZDk5NmVhNjE5Yzk4OGFjODM0ZDI1NWRiMzIxMzg2NTVjYiIKZGVwZW5kZW5jaWVzID0gWwogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFjdGl4LXJvdXRlciIKdmVyc2lvbiA9ICIwLjUuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxNGY4Yzc1YzUxODkyZjE4ZDljNDYxNTBjNWFjN2JlYjgxYzk1Zjc4YzhiODNhNjM0ZDQ5ZjRjYTMyNTUxZmU3IgpkZXBlbmRlbmNpZXMgPSBbCiAiYnl0ZXN0cmluZyIsCiAiY2ZnLWlmIiwKICJodHRwIDAuMi4xMiIsCiAicmVnZXgiLAogInJlZ2V4LWxpdGUiLAogInNlcmRlIiwKICJ0cmFjaW5nIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJhY3RpeC1ydCIKdmVyc2lvbiA9ICIyLjExLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOTI1ODk3MTQ4NzhjYTU5YTc2MjZlYTE5NzM0ZjBlMDdhNmE4NzUxOTdlZWM3NTFiYjVkM2Y5OWU2NDk5OGM2MyIKZGVwZW5kZW5jaWVzID0gWwogImZ1dHVyZXMtY29yZSIsCiAidG9raW8iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFjdGl4LXNlcnZlciIKdmVyc2lvbiA9ICIyLjYuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJhNjUwNjRlYTRhNDU3ZWFmMDdmMmZiYTMwYjRjNjk1YmY0M2I3MjE3OTBlOTUzMGQyNmNiNmY5MDE5ZmY3NTAyIgpkZXBlbmRlbmNpZXMgPSBbCiAiYWN0aXgtcnQiLAogImFjdGl4LXNlcnZpY2UiLAogImFjdGl4LXV0aWxzIiwKICJmdXR1cmVzLWNvcmUiLAogImZ1dHVyZXMtdXRpbCIsCiAibWlvIiwKICJzb2NrZXQyIDAuNS4xMCIsCiAidG9raW8iLAogInRyYWNpbmciLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFjdGl4LXNlcnZpY2UiCnZlcnNpb24gPSAiMi4wLjMiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOWU0NmYzNmJmMGU1YWY0NGJkYzRiZGIzNmZiYmQ0MjFhYTk4Yzc5YTliY2U3MjRlMWVkZWIzODk0ZTEwZGM3ZiIKZGVwZW5kZW5jaWVzID0gWwogImZ1dHVyZXMtY29yZSIsCiAicGluLXByb2plY3QtbGl0ZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYWN0aXgtdGxzIgp2ZXJzaW9uID0gIjMuNS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjYxNzYwOTlkZTNmNThmYmRkYWM5MTZhN2Y4YzZkYjI5N2UwMjFkNzA2ZTdhNmI5OTk0Nzc4NWZlZTE0YWJlOWYiCmRlcGVuZGVuY2llcyA9IFsKICJhY3RpeC1ydCIsCiAiYWN0aXgtc2VydmljZSIsCiAiYWN0aXgtdXRpbHMiLAogImZ1dHVyZXMtY29yZSIsCiAiaW1wbC1tb3JlIiwKICJvcGVuc3NsIiwKICJwaW4tcHJvamVjdC1saXRlIiwKICJ0b2tpbyIsCiAidG9raW8tb3BlbnNzbCIsCiAidG9raW8tdXRpbCIsCiAidHJhY2luZyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYWN0aXgtdXRpbHMiCnZlcnNpb24gPSAiMy4wLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODhhMWRjZGZmMTQ2NmUzYzI0ODhlMWNiNWMzNmE3MTgyMjc1MGFkNDM4Mzk5MzdmODVkMmY0ZDlmOGI3MDVkOCIKZGVwZW5kZW5jaWVzID0gWwogImxvY2FsLXdha2VyIiwKICJwaW4tcHJvamVjdC1saXRlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJhY3RpeC13ZWIiCnZlcnNpb24gPSAiNC4xMy4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImZmODc0NTNiYzNiNTZlOWIyYjIzYzFjYzBiMWJlODc5NzE4NGFjY2Y1MWQyYWJlMGY4YTMzZWMyNzVkMzE2YmYiCmRlcGVuZGVuY2llcyA9IFsKICJhY3RpeC1jb2RlYyIsCiAiYWN0aXgtaHR0cCIsCiAiYWN0aXgtbWFjcm9zIiwKICJhY3RpeC1yb3V0ZXIiLAogImFjdGl4LXJ0IiwKICJhY3RpeC1zZXJ2ZXIiLAogImFjdGl4LXNlcnZpY2UiLAogImFjdGl4LXRscyIsCiAiYWN0aXgtdXRpbHMiLAogImFjdGl4LXdlYi1jb2RlZ2VuIiwKICJieXRlcyIsCiAiYnl0ZXN0cmluZyIsCiAiY2ZnLWlmIiwKICJjb29raWUiLAogImRlcml2ZV9tb3JlIiwKICJlbmNvZGluZ19ycyIsCiAiZm9sZGhhc2giLAogImZ1dHVyZXMtY29yZSIsCiAiZnV0dXJlcy11dGlsIiwKICJpbXBsLW1vcmUiLAogIml0b2EiLAogImxhbmd1YWdlLXRhZ3MiLAogImxvZyIsCiAibWltZSIsCiAib25jZV9jZWxsIiwKICJwaW4tcHJvamVjdC1saXRlIiwKICJyZWdleCIsCiAicmVnZXgtbGl0ZSIsCiAic2VyZGUiLAogInNlcmRlX2pzb24iLAogInNlcmRlX3VybGVuY29kZWQiLAogInNtYWxsdmVjIiwKICJzb2NrZXQyIDAuNi4yIiwKICJ0aW1lIiwKICJ0cmFjaW5nIiwKICJ1cmwiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFjdGl4LXdlYi1jb2RlZ2VuIgp2ZXJzaW9uID0gIjQuMy4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImY1OTEzODBlMmU2ODQ5MGI1ZGZhZjFkZDFhYTBlYmU3OGQ4NGJhNzA2NzA3ODUxMmI0ZWE2ZTQ0OTJkNjIyYjgiCmRlcGVuZGVuY2llcyA9IFsKICJhY3RpeC1yb3V0ZXIiLAogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJhY3RpeC13cyIKdmVyc2lvbiA9ICIwLjMuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxMmQ0ZjJmYmVlM2VmN2EyMmZhNmNiMGU0MTZiOTYyMjM3YTE2N2VkMDQxOWYyMmQ0ZTQ1MWRhMmQ3ZjA4MmY4IgpkZXBlbmRlbmNpZXMgPSBbCiAiYWN0aXgtY29kZWMiLAogImFjdGl4LWh0dHAiLAogImFjdGl4LXdlYiIsCiAiYnl0ZXN0cmluZyIsCiAiZnV0dXJlcy1jb3JlIiwKICJ0b2tpbyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYWRsZXIyIgp2ZXJzaW9uID0gIjIuMC4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjMyMDExOTU3OWZjYWQ5YzIxODg0ZjVjNDg2MWQxNjE3NGQwZTA2MjUwNjI1MjY2ZjUwZmU2ODk4MzQwYWJlZmEiCgpbW3BhY2thZ2VdXQpuYW1lID0gImFlYWQiCnZlcnNpb24gPSAiMC41LjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDEyMjQxM2YyODRjZjJkNjJmYjFiN2RiOTdlMDJlZGI4Y2RhOTZkNzY5YjE2ZTQ0M2E0ZjYxOTVlMzU2NjJiMCIKZGVwZW5kZW5jaWVzID0gWwogImNyeXB0by1jb21tb24iLAogImdlbmVyaWMtYXJyYXkiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFlcyIKdmVyc2lvbiA9ICIwLjguNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJiMTY5ZjdhNmQ0NzQyMjM2YTBhMDBjNTQxYjg0NTk5MWQwYWM0M2U1NDY4MzFhZjEyNDk3NTNhYjRjM2FhM2EwIgpkZXBlbmRlbmNpZXMgPSBbCiAiY2ZnLWlmIiwKICJjaXBoZXIiLAogImNwdWZlYXR1cmVzIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJhZXMtZ2NtIgp2ZXJzaW9uID0gIjAuMTAuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI4MzEwMTBhMGY3NDJlMTIwOWIzYmNlYThmYWI2YThlMTQ5MDUxYmE2MDk5NDMyYzhjYjJjYzExN2RlYzNlYWQxIgpkZXBlbmRlbmNpZXMgPSBbCiAiYWVhZCIsCiAiYWVzIiwKICJjaXBoZXIiLAogImN0ciIsCiAiZ2hhc2giLAogInN1YnRsZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYWhvLWNvcmFzaWNrIgp2ZXJzaW9uID0gIjEuMS40Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImRkZDMxYTEzMDQyN2MyNzUxOGRmMjY2OTQzYTUzMDhlZDkyZDRiMjI2Y2M2MzlmNWE4ZjEwMDI4MTYxNzQzMDEiCmRlcGVuZGVuY2llcyA9IFsKICJtZW1jaHIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFsbG9jLW5vLXN0ZGxpYiIKdmVyc2lvbiA9ICIyLjAuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJjYzdiYjE2MmVjMzlkNDZhYjFjYThjNzdiZjcyZTg5MDUzNWJlY2QxNzUxYmI0NWY2NGM1OTdlZGI0YzhjNmIzIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJhbGxvYy1zdGRsaWIiCnZlcnNpb24gPSAiMC4yLjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOTRmYjgyNzUwNDFjNzIxMjllYjUxYjdkMDMyMmMyOWI4Mzg3YTAzODYxMjc3MThiMDk2NDI5MjAxYTVkNmVjZSIKZGVwZW5kZW5jaWVzID0gWwogImFsbG9jLW5vLXN0ZGxpYiIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYW5zdHJlYW0iCnZlcnNpb24gPSAiMC42LjIxIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjQzZDViMjgxZTczNzU0NDM4NGU5NjlhNWNjYWQzZjFjZGQyNGI0ODA4NmEwZmMxYjJhNTI2MmEyNmI4ZjRmNGEiCmRlcGVuZGVuY2llcyA9IFsKICJhbnN0eWxlIiwKICJhbnN0eWxlLXBhcnNlIiwKICJhbnN0eWxlLXF1ZXJ5IiwKICJhbnN0eWxlLXdpbmNvbiIsCiAiY29sb3JjaG9pY2UiLAogImlzX3Rlcm1pbmFsX3BvbHlmaWxsIiwKICJ1dGY4cGFyc2UiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFuc3R5bGUiCnZlcnNpb24gPSAiMS4wLjEzIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjUxOTJjY2E4MDA2ZjFmZDRmNzIzNzUxNmY0MGZhMTgzYmIwN2Y4ZmJkZmVkYWEwMDM2ZGU1ZWE5YjBiNDVlNzgiCgpbW3BhY2thZ2VdXQpuYW1lID0gImFuc3R5bGUtcGFyc2UiCnZlcnNpb24gPSAiMC4yLjciCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNGU3NjQ0ODI0ZjBhYTJjN2I5Mzg0NTc5MjM0ZWYxMGViN2VmYjZhMGRlYjgzZjk2MzBhNDk1OTRkZDljMTVjMiIKZGVwZW5kZW5jaWVzID0gWwogInV0ZjhwYXJzZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYW5zdHlsZS1xdWVyeSIKdmVyc2lvbiA9ICIxLjEuNSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0MGM0OGY3MmZkNTNjZDI4OTEwNGZjNjQwOTlhYmNhNzNkYjQxNjZhZDg2ZWEwYjQzNDFhYmU2NWFmODNkYWRjIgpkZXBlbmRlbmNpZXMgPSBbCiAid2luZG93cy1zeXMgMC42MS4yIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJhbnN0eWxlLXdpbmNvbiIKdmVyc2lvbiA9ICIzLjAuMTEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMjkxZTZhMjUwZmY4NmNkNGE4MjAxMTJmYjg4OTg4MDhhMzY2ZDhmOWY1OGNlMTZkMWY1MzgzNTNhZDU1NzQ3ZCIKZGVwZW5kZW5jaWVzID0gWwogImFuc3R5bGUiLAogIm9uY2VfY2VsbF9wb2x5ZmlsbCIsCiAid2luZG93cy1zeXMgMC42MS4yIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJhbnlob3ciCnZlcnNpb24gPSAiMS4wLjEwMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3ZjIwMmRmODY0ODRjODY4ZGJhZDdlYWE1NTdlZjc4NWQ1YzY2Mjk1ZTQxYjQ2MGVmOTIyZWNhMDcyM2I4NDJjIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJhcmMtc3dhcCIKdmVyc2lvbiA9ICIxLjguMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmOWYzNjQ3YzE0NTU2OGNlYzAyYzQyMDU0ZTA3YmRmOWE1YTY5OGUxNWI0NjZmYjIzNDFiZmMzOTNjZDI0YWE1IgpkZXBlbmRlbmNpZXMgPSBbCiAicnVzdHZlcnNpb24iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFzbjEtcnMiCnZlcnNpb24gPSAiMC42LjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNTQ5M2MzYmVkYmFjZjdmZDczODJjNjM0NmJiZDY2Njg3ZDEyYmJhYWQzYTg5YTJkMmMzMDNlZTZjZjIwYjA0OCIKZGVwZW5kZW5jaWVzID0gWwogImFzbjEtcnMtZGVyaXZlIiwKICJhc24xLXJzLWltcGwiLAogImRpc3BsYXlkb2MiLAogIm5vbSIsCiAibnVtLXRyYWl0cyIsCiAicnVzdGljYXRhLW1hY3JvcyIsCiAidGhpc2Vycm9yIDEuMC42OSIsCiAidGltZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYXNuMS1ycy1kZXJpdmUiCnZlcnNpb24gPSAiMC41LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOTY1YzJkMzNlNTNjYjZiMjY3ZTE0OGE0Y2IwNzYwYmMwMWY0OTA0YzFjZDRiYjQwMDJhMDg1YmIwMTZkMTQ5MCIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKICJzeW5zdHJ1Y3R1cmUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFzbjEtcnMtaW1wbCIKdmVyc2lvbiA9ICIwLjIuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3YjE4MDUwYzJjZDZmZTg2YzNhNzY1ODRlZjVlMGJhZjI4NmQwMzhjZGEyMDNlYjYyMjNkZjJjYzQxMzU2NWY3IgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImFzeW5jLXRyYWl0Igp2ZXJzaW9uID0gIjAuMS44OSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5MDM1YWQyZDA5NmJlZDc5NTVhMzIwZWU3ZTIyMzA1NzRkMjhmZDNjM2EwZjE4NmNiZWExZmYzYzdlZWQ1ZGJiIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImF0b21pYy13YWtlciIKdmVyc2lvbiA9ICIxLjEuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxNTA1YmQ1ZDNkMTE2ODcyZTcyNzFhNmQ0ZTE2ZDgxZDBjODU3MDg3NmM4ZGU2ODA5M2EwOWFjMjY5ZDhhYWMwIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJhdXRvY2ZnIgp2ZXJzaW9uID0gIjEuNS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImMwODYwNmY4YzNjYmY0Y2U2ZWM4ZTI4ZmIwMDE0YTJjMDg2NzA4ZmU5NTRlYWE4ODUzODRhNjE2NTE3MmU3ZTgiCgpbW3BhY2thZ2VdXQpuYW1lID0gImJhc2UxNmN0Igp2ZXJzaW9uID0gIjAuMi4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjRjN2YwMmQ0ZWE2NWYyYzE4NTMwODlmZmQ4ZDI3ODdiZGJjNjNkZTJmMGQyOWRlZGJjZjhjY2RmYTBjY2Q0Y2YiCgpbW3BhY2thZ2VdXQpuYW1lID0gImJhc2U2NCIKdmVyc2lvbiA9ICIwLjIyLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNzJiMzI1NGYxNjI1MWE4MzgxYWExMmU0MGUzYzRkMmYwMTk5ZjhjNjUwOGZiZWNiOWQ5MWY1NzVlMGZiYjhjNiIKCltbcGFja2FnZV1dCm5hbWUgPSAiYmFzZTY0Y3QiCnZlcnNpb24gPSAiMS44LjMiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMmFmNTAxNzdlMTkwZTA3YTI2YWI3NGY4YjFlZmJmZTJlZjg3ZGEyMTE2MjIxMzE4Y2IxYzJlODJiYWY3ZGUwNiIKCltbcGFja2FnZV1dCm5hbWUgPSAiYmluY29kZSIKdmVyc2lvbiA9ICIxLjMuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJiMWY0NWU5NDE3ZDg3MjI3YzdhNTZkMjJlNDcxYzYyMDY0NjJjYmE1MTRjNzU5MGMwOWFmZjRjZjZkMWRkY2FkIgpkZXBlbmRlbmNpZXMgPSBbCiAic2VyZGUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImJpbmRnZW4iCnZlcnNpb24gPSAiMC43Mi4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjk5Mzc3NmI1MDljZmI0OWM3NTBmMTFiOGYwN2E0NmZhMjNlMGExMzg2ZmZjMDFmYjFlN2QzNDNlZmMzODc4OTUiCmRlcGVuZGVuY2llcyA9IFsKICJiaXRmbGFncyAyLjExLjAiLAogImNleHByIiwKICJjbGFuZy1zeXMiLAogIml0ZXJ0b29scyAwLjEzLjAiLAogImxvZyIsCiAicHJldHR5cGxlYXNlIiwKICJwcm9jLW1hY3JvMiIsCiAicXVvdGUiLAogInJlZ2V4IiwKICJydXN0Yy1oYXNoIiwKICJzaGxleCIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJiaXRmbGFncyIKdmVyc2lvbiA9ICIxLjMuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJiZWYzOGQ0NTE2M2MyZjFkZGUwOTRhN2RmZDMzY2NmNTk1YzkyOTA1YzhmOGY0ZmRjMThkMDZmYjEwMzc3MThhIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJiaXRmbGFncyIKdmVyc2lvbiA9ICIyLjExLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODQzODY3YmU5NmM4ZGFhZDBkNzU4YjU3ZGY5MzkyYjZkOGQyNzExMzRmY2U1NDlkZTZjZTE2OWZmOThhOTJhZiIKCltbcGFja2FnZV1dCm5hbWUgPSAiYmxvY2stYnVmZmVyIgp2ZXJzaW9uID0gIjAuMTAuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIzMDc4Yzc2MjliNjJkM2YwNDM5NTE3ZmEzOTQ5OTZhY2FjYzVjYmM5MWM1YTIwZDhjNjU4ZTc3YWJkNTAzYTcxIgpkZXBlbmRlbmNpZXMgPSBbCiAiZ2VuZXJpYy1hcnJheSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYmxvY2stcGFkZGluZyIKdmVyc2lvbiA9ICIwLjMuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJhODg5NGZlYmJmZjlmNzU4MDM0YTViOGUxMmQ4NzkxOGY1NmRmYzY0YThlMWZlNzU3ZDY1ZTI5MDQxNTM4ZDkzIgpkZXBlbmRlbmNpZXMgPSBbCiAiZ2VuZXJpYy1hcnJheSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYnJvdGxpIgp2ZXJzaW9uID0gIjguMC4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjRiZDhiOTYwM2M3YWE5NzM1OWRiZDk3ZWNmMjU4OTY4Yzk1ZjNhZGRkZDZkYjJmN2U3YTViZWYxMDFjODQ1NjAiCmRlcGVuZGVuY2llcyA9IFsKICJhbGxvYy1uby1zdGRsaWIiLAogImFsbG9jLXN0ZGxpYiIsCiAiYnJvdGxpLWRlY29tcHJlc3NvciIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYnJvdGxpLWRlY29tcHJlc3NvciIKdmVyc2lvbiA9ICI1LjAuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI4NzRiYjgxMTJhYmVjYzk4Y2JkNmQ4MWVhNGZhN2U5NGZiOTQ0OTY0OGM5M2NjODlhYTQwYzgxYzI0ZDdkZTAzIgpkZXBlbmRlbmNpZXMgPSBbCiAiYWxsb2Mtbm8tc3RkbGliIiwKICJhbGxvYy1zdGRsaWIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImJzdHIiCnZlcnNpb24gPSAiMS4xMi4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjYzMDQ0ZTFhZThlNjlmM2I1YTkyYzczNmNhNjI2OWI4ZDEyZmE3ZWZlMzliZjM0ZGRiMDZkMTAyY2YwZTJjYWIiCmRlcGVuZGVuY2llcyA9IFsKICJtZW1jaHIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImJ1bXBhbG8iCnZlcnNpb24gPSAiMy4yMC4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjVkMjA3ODk4NjhmNGIwMWIyZjJjYWVjOWY1YzRlMDIxM2I0MWUzZTU3MDJhNTAxNTdkNjk5YWUzMWNlZDJmY2IiCgpbW3BhY2thZ2VdXQpuYW1lID0gImJ5dGVjaGVjayIKdmVyc2lvbiA9ICIwLjguMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIwY2FhMzNhMmMwZWRjYTA0MTlkMTVhYzcyM2RmZjAzZjE5NTZmNzk3ODMyOWIxZTNiNWZkYWFhZWQ5ZDNjYThiIgpkZXBlbmRlbmNpZXMgPSBbCiAiYnl0ZWNoZWNrX2Rlcml2ZSIsCiAicHRyX21ldGEiLAogInJhbmNvciIsCiAic2ltZHV0ZjgiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImJ5dGVjaGVja19kZXJpdmUiCnZlcnNpb24gPSAiMC44LjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODkzODVlODJiNWQxODIxZDIyMTllMGIwOTVlZmEyY2MxZjI0NmNiZjk5MDgwZjNiZTQ2YTFhODVjMGQzOTJkOSIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJieXRlb3JkZXIiCnZlcnNpb24gPSAiMS41LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMWZkMGYyNTg0MTQ2ZjZmMmVmNDgwODUwNTA4ODZhY2YzNTNiZWZmNzMwNWViZDFhZTY5NTAwZTI3YzY3ZjY0YiIKCltbcGFja2FnZV1dCm5hbWUgPSAiYnl0ZXMiCnZlcnNpb24gPSAiMS4xMS4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjFlNzQ4NzMzYjdjYmM3OThlMTQzNGI2YWM1MjRmMGMxZmYyYWI0NTZmZTIwMTUwMWU2NDk3Yzg0MTdhNGZjMzMiCmRlcGVuZGVuY2llcyA9IFsKICJzZXJkZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiYnl0ZXN0cmluZyIKdmVyc2lvbiA9ICIxLjUuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxMTNiNDM0M2I1ZjY2MTdlN2FkNDAxY2VkOGRlM2NjOGIwMTJlNzNhNTk0MzQ3YzMwN2I5MGRiM2U5MjcxMjg5IgpkZXBlbmRlbmNpZXMgPSBbCiAiYnl0ZXMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImNiYyIKdmVyc2lvbiA9ICIwLjEuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIyNmI1MmE5NTQzYWUzMzhmMjc5Yjk2YjBiOWZlZDljODA5Mzc0NDY4NTA0MzczOTA3OWNlODVjZDU4ZjI4OWE2IgpkZXBlbmRlbmNpZXMgPSBbCiAiY2lwaGVyIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjYyIKdmVyc2lvbiA9ICIxLjIuNTYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYWViZjM1NjkxZDFiZmIwYWMzODZhNjliYWMyZmRlNGRkMjc2ZmI2MThjZjhiZjRmNTMxOGZlMjg1ZTgyMWJiMiIKZGVwZW5kZW5jaWVzID0gWwogImZpbmQtbXN2Yy10b29scyIsCiAiam9ic2VydmVyIiwKICJsaWJjIiwKICJzaGxleCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiY2NtIgp2ZXJzaW9uID0gIjAuNS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjlhZTNjODJlNDM1NTIzNDc2Nzc1NjIxMmM1NzBlMjk4MzM2OTlhYjYzZTZmZmQxNjE4ODczMTRjYzViNDM4NDciCmRlcGVuZGVuY2llcyA9IFsKICJhZWFkIiwKICJjaXBoZXIiLAogImN0ciIsCiAic3VidGxlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjZXhwciIKdmVyc2lvbiA9ICIwLjYuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI2ZmFjMzg3YTk4YmI3YzM3MjkyMDU3Y2ZmYzU2ZDYyZWNiNjI5OTAwMDI2NDAyNjMzYWU5MTYwZGY5M2E4NzY2IgpkZXBlbmRlbmNpZXMgPSBbCiAibm9tIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjZmctaWYiCnZlcnNpb24gPSAiMS4wLjQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOTMzMGY4YjJmZjEzZjM0NTQwYjQ0ZTk0NmVmMzUxMTE4MjU3MjdiMzhkMzMyODZlZjk4NjE0MjYxNTEyMTgwMSIKCltbcGFja2FnZV1dCm5hbWUgPSAiY2hhY2hhMjAiCnZlcnNpb24gPSAiMC45LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYzM2MTNmNzRiZDJlYWMwM2RhZDYxYmQ1M2RiZTYyMDcwM2Q0MzcxNjE0ZmUwYmMzYjlmMDRkZDM2ZmU0ZTgxOCIKZGVwZW5kZW5jaWVzID0gWwogImNmZy1pZiIsCiAiY2lwaGVyIiwKICJjcHVmZWF0dXJlcyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiY2hhY2hhMjBwb2x5MTMwNSIKdmVyc2lvbiA9ICIwLjEwLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMTBjZDc5NDMyMTkyZDFjMGY0ZTFhMGZlZjk1Mjc2OTZjYzAzOTE2NWQ3MjlmYjQxYjNmNGY0ZjM1NGMyZGMzNSIKZGVwZW5kZW5jaWVzID0gWwogImFlYWQiLAogImNoYWNoYTIwIiwKICJjaXBoZXIiLAogInBvbHkxMzA1IiwKICJ6ZXJvaXplIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjaXBoZXIiCnZlcnNpb24gPSAiMC40LjQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNzczZjNiOWFmNjQ0NDdkMmNlOTg1MDMzMGM0NzM1MTUwMTRhYTIzNWU2YTc4M2IwMmRiODFmZjM5ZTRhM2RhZCIKZGVwZW5kZW5jaWVzID0gWwogImNyeXB0by1jb21tb24iLAogImlub3V0IiwKICJ6ZXJvaXplIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjbGFuZy1zeXMiCnZlcnNpb24gPSAiMS44LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMGIwMjM5NDc4MTE3NThjOTdjNTliZjlkMWMxODhmZDYxOWFkNDcxOGRjYWE3Njc5NDdkZjFjYWRiMTRmMzlmNCIKZGVwZW5kZW5jaWVzID0gWwogImdsb2IiLAogImxpYmMiLAogImxpYmxvYWRpbmciLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImNsYXAiCnZlcnNpb24gPSAiNC41LjYwIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjI3OTdmMzRkYTMzOWNlMzEwNDJiMjdkMjM2MDdlMDUxNzg2MTMyOTg3ZjU5NWIwMmJhNGY2YTZkZmZiNzAzMGEiCmRlcGVuZGVuY2llcyA9IFsKICJjbGFwX2J1aWxkZXIiLAogImNsYXBfZGVyaXZlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjbGFwX2J1aWxkZXIiCnZlcnNpb24gPSAiNC41LjYwIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjI0YTI0MTMxMmNlYTUwNTliMTM1NzRiYjliMzg2MWNhYmY3NThiODc5YzE1MTkwYjM3YjZkNmZkNjNhYjY4NzYiCmRlcGVuZGVuY2llcyA9IFsKICJhbnN0cmVhbSIsCiAiYW5zdHlsZSIsCiAiY2xhcF9sZXgiLAogInN0cnNpbSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiY2xhcF9kZXJpdmUiCnZlcnNpb24gPSAiNC41LjU1Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImE5Mjc5M2RhMWE0NmE1ZjJhMDJhNmY0YzQ2YzY0OTZiMjhjNDM2MzhhZGVhODMwNmZjYjBjYWExNjM0ZjI0ZTUiCmRlcGVuZGVuY2llcyA9IFsKICJoZWNrIiwKICJwcm9jLW1hY3JvMiIsCiAicXVvdGUiLAogInN5biIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiY2xhcF9sZXgiCnZlcnNpb24gPSAiMS4wLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiM2E4MjJlYTViYzc1OTBmOWQ0MGYxYmExMmMwZGMzYzI3NjBmMzQ4MmM2OTg0ZGIxNTczYWQxMTAzMTQyMDgzMSIKCltbcGFja2FnZV1dCm5hbWUgPSAiY21ha2UiCnZlcnNpb24gPSAiMC4xLjU3Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjc1NDQzYzQ0Y2Q2YjM3OWJlYjhjNWI0NWQ4NWQwNzczYmFmMzFjY2U5MDFmZTdiYjI1MmY0ZWZmMzAwOGVmN2QiCmRlcGVuZGVuY2llcyA9IFsKICJjYyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiY29sb3JjaG9pY2UiCnZlcnNpb24gPSAiMS4wLjQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYjA1YjYxZGM1MTEyY2JiMTdlNGI2Y2Q2MTc5MGQ5ODQ1ZDEzODg4MzU2MzkxNjI0Y2JlN2U0MWVmZWFjMWU3NSIKCltbcGFja2FnZV1dCm5hbWUgPSAiY29tbW9uIgp2ZXJzaW9uID0gIjIuMTAuMCIKZGVwZW5kZW5jaWVzID0gWwogImJ5dGVzIiwKICJsb2ciLAogIm1vb25saWdodC1jb21tb24iLAogInBlbSIsCiAic2VyZGUiLAogInNlcmRlX2pzb24iLAogInRoaXNlcnJvciAyLjAuMTgiLAogInRva2lvIiwKICJ0cmFjaW5nIiwKICJ0cy1ycyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiY29uc3Qtb2lkIgp2ZXJzaW9uID0gIjAuOS42Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImMyNDU5Mzc3Mjg1YWQ4NzQwNTRkNzk3ZjNjY2ViZjk4NDk3OGFhMzkxMjlmNmVhZmRlNWNkYzgzMTViNjEyZjgiCgpbW3BhY2thZ2VdXQpuYW1lID0gImNvbnZlcnRfY2FzZSIKdmVyc2lvbiA9ICIwLjEwLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNjMzNDU4ZDRlZjhjNzhiNzI0NTRkZTJkNTRmZDZhYjJlNjBmOWUwMmJlMjJmM2M2MTA0Y2RjOGE0ZTBmY2ViOSIKZGVwZW5kZW5jaWVzID0gWwogInVuaWNvZGUtc2VnbWVudGF0aW9uIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjb29raWUiCnZlcnNpb24gPSAiMC4xNi4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImU4NTljZDU3ZDA3MTBkOWUwNmMzODFiNTUwYzA2ZTc2OTkyNDcyYThjNmQ1MjdhZWNkMmZjNjczZGNjMjMxZmIiCmRlcGVuZGVuY2llcyA9IFsKICJwZXJjZW50LWVuY29kaW5nIiwKICJ0aW1lIiwKICJ2ZXJzaW9uX2NoZWNrIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjcHVmZWF0dXJlcyIKdmVyc2lvbiA9ICIwLjIuMTciCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNTllZDU4MzhlZWJiMjZhMmJiMmU1OGY2ZDViNTMxNjk4OWFlOWQwOGJhYjEwZTBlNmQxMDNlNjU2ZDFiMDI4MCIKZGVwZW5kZW5jaWVzID0gWwogImxpYmMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImNyYyIKdmVyc2lvbiA9ICIzLjQuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI1ZWI4YTJhMWNkMTJhYjBkOTg3YTVkNWU4MjUxOTVkMzcyMDAxYTQwOTRhMDM3NjMxOWQ1YTBhZDcxYzFiYTBkIgpkZXBlbmRlbmNpZXMgPSBbCiAiY3JjLWNhdGFsb2ciLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImNyYy1jYXRhbG9nIgp2ZXJzaW9uID0gIjIuNC4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjE5ZDM3NDI3NmI0MGZiOGJiZGVlOTVhZWY3YzdmYTZiNTMxNmVjNzY0NTEwZWI2NGI4ZGQwZTJlZDBkN2U3ZjUiCgpbW3BhY2thZ2VdXQpuYW1lID0gImNyYzMyZmFzdCIKdmVyc2lvbiA9ICIxLjUuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5NDgxYzFjOTBjYmYyYWM5NTNmMDdjOGQ0YTU4YWEzOTQ1YzQyNWI3MTg1YzkxNTRkNjdhNjVlNDIzMGRhNTExIgpkZXBlbmRlbmNpZXMgPSBbCiAiY2ZnLWlmIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjcm9zc2JlYW0tY2hhbm5lbCIKdmVyc2lvbiA9ICIwLjUuMTUiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODJiOGY4Zjg2OGIzNjk2N2Y5NjA2NzkwZDE5MDM1NzBkZTljZWFmODcwYTdiZjlmYmJkMzAxNmQ2MzZhMmNiMiIKZGVwZW5kZW5jaWVzID0gWwogImNyb3NzYmVhbS11dGlscyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiY3Jvc3NiZWFtLWRlcXVlIgp2ZXJzaW9uID0gIjAuOC42Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjlkZDExMWI3YjdmN2Q1NWI3MmMwYTZhZTM2MTY2MGVlNTg1M2M5YWY3M2Y3MGMzYzJlZjY4NThiOTUwZTJlNTEiCmRlcGVuZGVuY2llcyA9IFsKICJjcm9zc2JlYW0tZXBvY2giLAogImNyb3NzYmVhbS11dGlscyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiY3Jvc3NiZWFtLWVwb2NoIgp2ZXJzaW9uID0gIjAuOS4xOCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI1YjgyYWM0YTNjMmNhOWMzNDYwOTY0ZjAyMGUxNDAyZWRkNTc1MzQxMWQ3NzM3YWEzOWMzNzE0YWQxYjU0MjBlIgpkZXBlbmRlbmNpZXMgPSBbCiAiY3Jvc3NiZWFtLXV0aWxzIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjcm9zc2JlYW0tdXRpbHMiCnZlcnNpb24gPSAiMC44LjIxIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImQwYTVjNDAwZGYyODM0YjgwYTRjMzMyN2IzYWFkM2E0YzRjZDRkZTA2MjkwNjM5NjJiMDMyMzU2OTc1MDZhMjgiCgpbW3BhY2thZ2VdXQpuYW1lID0gImNyeXB0by1iaWdpbnQiCnZlcnNpb24gPSAiMC41LjUiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMGRjOTJmYjU3Y2E0NGRmNmRiODA1OTExMWFiM2FmOTlhNjNkNWQwZjgzNzVkOTk3MmUzMTlhMzc5YzZiYWI3NiIKZGVwZW5kZW5jaWVzID0gWwogImdlbmVyaWMtYXJyYXkiLAogInJhbmRfY29yZSAwLjYuNCIsCiAic3VidGxlIiwKICJ6ZXJvaXplIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjcnlwdG8tY29tbW9uIgp2ZXJzaW9uID0gIjAuMS43Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjc4YzgyOTIwNTVkMWMxZGYwY2NlNWQxODAzOTNkYzhjY2UwYWJlYzBhNzEwMmFkYjZjN2IxZWVmNjAxNmQ2MGEiCmRlcGVuZGVuY2llcyA9IFsKICJnZW5lcmljLWFycmF5IiwKICJyYW5kX2NvcmUgMC42LjQiLAogInR5cGVudW0iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImN0ciIKdmVyc2lvbiA9ICIwLjkuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIwMzY5ZWUxYWQ2NzE4MzQ1ODA1MTU4ODliODBmMmVhOTE1ZjIzYjhiZThkMGRhYTRiYmFmMmFjNWM3NTkwODM1IgpkZXBlbmRlbmNpZXMgPSBbCiAiY2lwaGVyIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJjdXJ2ZTI1NTE5LWRhbGVrIgp2ZXJzaW9uID0gIjQuMS4zIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjk3ZmI4YjdjNDUwM2RlN2Q2YWU3YjQyYWI3MmE1YTU5ODU3YjRjOTM3ZWMyN2EzZDQ1MzlkYmE5NWI1YWIyYmUiCmRlcGVuZGVuY2llcyA9IFsKICJjZmctaWYiLAogImNwdWZlYXR1cmVzIiwKICJjdXJ2ZTI1NTE5LWRhbGVrLWRlcml2ZSIsCiAiZmlhdC1jcnlwdG8iLAogInJ1c3RjX3ZlcnNpb24iLAogInN1YnRsZSIsCiAiemVyb2l6ZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiY3VydmUyNTUxOS1kYWxlay1kZXJpdmUiCnZlcnNpb24gPSAiMC4xLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZjQ2ODgyZTE3OTk5YzZjYzU5MGFmNTkyMjkwNDMyYmUzYmNlMDQyOGNiMGQ1ZjhiNjcxNWU0ZGM3YjM4M2ViMyIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJkYXRhLWVuY29kaW5nIgp2ZXJzaW9uID0gIjIuMTAuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJkN2ExZTJmMjc2MzZmMTE2NDkzYjhiODYwZjU1NDZlZGI0N2M4ZDhmOGVhNzNlMWQyYTIwYmU4OGUyOGQxZmVhIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJkZXIiCnZlcnNpb24gPSAiMC43LjEwIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImU3YzE4MzI4MzdiOTA1YmJmYjUxMDFlMDdjYzI0YzhkZWRkZjUyZjkzMjI1ZWVlNmVhZDVmNGQ2M2Q1M2RkY2IiCmRlcGVuZGVuY2llcyA9IFsKICJjb25zdC1vaWQiLAogInBlbS1yZmM3NDY4IiwKICJ6ZXJvaXplIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJkZXItcGFyc2VyIgp2ZXJzaW9uID0gIjkuMC4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjVjZDBhNWM2NDM2ODk2MjZiZWMyMTNjNGQ4YmQ0ZDk2YWNjOGZmZGI0YWQ0YmI2YmMxNmFiZjI3ZDVmNGI1NTMiCmRlcGVuZGVuY2llcyA9IFsKICJhc24xLXJzIiwKICJkaXNwbGF5ZG9jIiwKICJub20iLAogIm51bS1iaWdpbnQiLAogIm51bS10cmFpdHMiLAogInJ1c3RpY2F0YS1tYWNyb3MiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImRlcmFuZ2VkIgp2ZXJzaW9uID0gIjAuNS44Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjdjZDgxMmNjMmJjMWQ2OWQ0NzY0YmQ4MGRmODhiNDMxN2VhZWY5ZTc3M2M3NTIyNjQwN2Q5YmMwODc2YjIxMWMiCmRlcGVuZGVuY2llcyA9IFsKICJwb3dlcmZtdCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiZGVyaXZlX21vcmUiCnZlcnNpb24gPSAiMi4xLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDc1MWU5ZTQ5MTU2YjAyYjQ0ZjljMTgxNWJjYjk0Yjk4NGNkY2M0Mzk2ZWNjMzI1MjFjNzM5NDUyODA4YjEzNCIKZGVwZW5kZW5jaWVzID0gWwogImRlcml2ZV9tb3JlLWltcGwiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImRlcml2ZV9tb3JlLWltcGwiCnZlcnNpb24gPSAiMi4xLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNzk5YTk3MjY0OTIxZDg2MjNhOTU3ZjZjM2I5MDExZjNiNTQ5MmY1NTdiYmI3YTVhMTliN2ZhNmQwNmJhOGRjYiIKZGVwZW5kZW5jaWVzID0gWwogImNvbnZlcnRfY2FzZSIsCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJydXN0Y192ZXJzaW9uIiwKICJzeW4iLAogInVuaWNvZGUteGlkIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJkaWdlc3QiCnZlcnNpb24gPSAiMC4xMC43Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjllZDlhMjgxZjdiYzliNzU3NmU2MTQ2OGJhNjE1YTY2YTVjOGNmZGZmNDI0MjBhNzBhYTgyNzAxYTNiMWUyOTIiCmRlcGVuZGVuY2llcyA9IFsKICJibG9jay1idWZmZXIiLAogImNvbnN0LW9pZCIsCiAiY3J5cHRvLWNvbW1vbiIsCiAic3VidGxlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJkaXNwbGF5ZG9jIgp2ZXJzaW9uID0gIjAuMi41Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjk3MzY5Y2JiYzA0MWJjMzY2OTQ5YmM3NGQzNDY1OGQ2Y2RhNTYyMTAzOTczMWM2MzEwNTIxODkyYTNhMjBhZTAiCmRlcGVuZGVuY2llcyA9IFsKICJwcm9jLW1hY3JvMiIsCiAicXVvdGUiLAogInN5biIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiZHRscyIKdmVyc2lvbiA9ICIwLjE3LjEiCnNvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvd2VicnRjLXJzLmdpdD9yZXY9Yzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSNjOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5IgpkZXBlbmRlbmNpZXMgPSBbCiAiYWVzIiwKICJhZXMtZ2NtIiwKICJhc3luYy10cmFpdCIsCiAiYnl0ZWNoZWNrIiwKICJieXRlb3JkZXIiLAogImNiYyIsCiAiY2NtIiwKICJjaGFjaGEyMHBvbHkxMzA1IiwKICJkZXItcGFyc2VyIiwKICJobWFjIiwKICJsb2ciLAogInAyNTYiLAogInAzODQiLAogInBvcnRhYmxlLWF0b21pYyIsCiAicmFuZCIsCiAicmFuZF9jb3JlIDAuNi40IiwKICJyY2dlbiIsCiAicmluZyIsCiAicmt5diIsCiAicnVzdGxzIiwKICJzZWMxIiwKICJzaGExIiwKICJzaGEyIiwKICJ0aGlzZXJyb3IgMS4wLjY5IiwKICJ0b2tpbyIsCiAid2VicnRjLXV0aWwiLAogIngyNTUxOS1kYWxlayIsCiAieDUwOS1wYXJzZXIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImVjZHNhIgp2ZXJzaW9uID0gIjAuMTYuOSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJlZTI3ZjMyYjVjNTI5Mjk2N2QyZDRhOWQ3ZjFlMGIwYWVkMmMxNWRhZGVkNWE2MDMwMGU0YWJiOWQ4MDIwYmNhIgpkZXBlbmRlbmNpZXMgPSBbCiAiZGVyIiwKICJkaWdlc3QiLAogImVsbGlwdGljLWN1cnZlIiwKICJyZmM2OTc5IiwKICJzaWduYXR1cmUiLAogInNwa2kiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImVpdGhlciIKdmVyc2lvbiA9ICIxLjE1LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNDhjNzU3OTQ4YzVlZGUwZTQ2MTc3YjdhZGQyZTY3MTU1ZjcwZTMzYzA3ZmVhODI4NGRmNjU3NmRhNzBiMzcxOSIKCltbcGFja2FnZV1dCm5hbWUgPSAiZWxsaXB0aWMtY3VydmUiCnZlcnNpb24gPSAiMC4xMy44Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImI1ZTYwNDMwODZiZjc5NzM0NzJlMGM3ZGZmMjE0MmVhMGI2ODBkMzBlMThkOWNjNDBmMjY3ZWZiZjIyMmJkNDciCmRlcGVuZGVuY2llcyA9IFsKICJiYXNlMTZjdCIsCiAiY3J5cHRvLWJpZ2ludCIsCiAiZGlnZXN0IiwKICJmZiIsCiAiZ2VuZXJpYy1hcnJheSIsCiAiZ3JvdXAiLAogImhrZGYiLAogInBlbS1yZmM3NDY4IiwKICJwa2NzOCIsCiAicmFuZF9jb3JlIDAuNi40IiwKICJzZWMxIiwKICJzdWJ0bGUiLAogInplcm9pemUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImVuY29kaW5nX3JzIgp2ZXJzaW9uID0gIjAuOC4zNSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3NTAzMGYzYzRmNDVkYWZkNzU4NmRkNjc4MDk2NWE4YzdlOGUyODVhNWVjYjg2NzEzZTYzYTc5YzViMjc2NmYzIgpkZXBlbmRlbmNpZXMgPSBbCiAiY2ZnLWlmIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJlcXVpdmFsZW50Igp2ZXJzaW9uID0gIjEuMC4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjg3N2E0YWNlODcxM2IwYmNmMmE0ZTdlZWM4MjUyOWMwMjlmMWQwNjE5ODg2ZDE4MTQ1ZmVhOTZjM2ZmZTVjMGYiCgpbW3BhY2thZ2VdXQpuYW1lID0gImVycm5vIgp2ZXJzaW9uID0gIjAuMy4xNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIzOWNhYjcxNjE3YWUwZDYzZjUxYTM2ZDY5Zjg2NjM5MTczNWI1MTY5MWRiZGE2M2NmNmY5NmQwNDJiNjNlZmViIgpkZXBlbmRlbmNpZXMgPSBbCiAibGliYyIsCiAid2luZG93cy1zeXMgMC42MS4yIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJmYWxsaWJsZS1pdGVyYXRvciIKdmVyc2lvbiA9ICIwLjMuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIyYWNjZTRhMTBmMTJkYzJmYjE0YTIxODU4OWQ0ZjFmNjJlZjAxMWIyZDBjYzRiM2NiMWJiYThlOTRkYTE0NjQ5IgoKW1twYWNrYWdlXV0KbmFtZSA9ICJmYXN0cmFuZCIKdmVyc2lvbiA9ICIyLjMuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIzNzkwOWVlYmJiNTBkNzJmOTA1OWMzYjZkODJjMDQ2M2YyZmYwNjJjOWU5NTg0NWM0M2E2YzljMDM1NTQxMWJlIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJmZWMtcnMiCnZlcnNpb24gPSAiMC4xLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiN2E4NmQyYmIwZGI5NjQ3ZWU1ZGVjZTJlYTU0YTgwOGMxNDQyOGRiMDA5YWQ3NTFmOTViMDkxNTk4ODM1Y2QwYiIKZGVwZW5kZW5jaWVzID0gWwogInJheW9uIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJmZiIKdmVyc2lvbiA9ICIwLjEzLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYzBiNTBiZmI2NTM2NTNmOWNhOTA5NWI0MjdiZWQwOGFiOGQ3NWExMzc4MzlkOWFkNjRlYjExODEwZDViNjM5MyIKZGVwZW5kZW5jaWVzID0gWwogInJhbmRfY29yZSAwLjYuNCIsCiAic3VidGxlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJmaWF0LWNyeXB0byIKdmVyc2lvbiA9ICIwLjIuOSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIyOGRlYTUxOWE5Njk1Yjk5NzcyMTY4NzlhM2ViZmRkZjkyZjFjMDhjMDVkOTg0Zjg5OTZhZWNkNmVjZGM4MTFkIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJmaW5kLW1zdmMtdG9vbHMiCnZlcnNpb24gPSAiMC4xLjkiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNWJhZWJjMDc3NDE1MWY5MDVhMWEyY2M0MTk4OTMwMGIxZTZmYmIyOWFmZjBjZWZmYTEwNjRmZGQzMDg4ZDU4MiIKCltbcGFja2FnZV1dCm5hbWUgPSAiZml4ZWRiaXRzZXQiCnZlcnNpb24gPSAiMC41LjciCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMWQ2NzRlODEzOTFkMWUxYWI2ODFhMjhkOTlkZjA3OTI3YzZkNGFhNWIwMjdkN2RhMTZiYTMyZDFkMjFlY2Q5OSIKCltbcGFja2FnZV1dCm5hbWUgPSAiZmxhdGUyIgp2ZXJzaW9uID0gIjEuMS45Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjg0M2ZiYTI3NDZlNDQ4YjM3ZTI2YTgxOTU3OTk1NzQxNWM4Y2VmMzM5YmYwODU2NGZlOGI3ZGRiZDk1OTU3M2MiCmRlcGVuZGVuY2llcyA9IFsKICJjcmMzMmZhc3QiLAogIm1pbml6X294aWRlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJmbnYiCnZlcnNpb24gPSAiMS4wLjciCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiM2Y5ZWVjOTE4ZDNmMjQwNjlkZWNiOWFmMTU1NGNhZDdjODgwZTJkYTI0YTlhZmQ4OGFjYTAwMDUzMWFiODJjMSIKCltbcGFja2FnZV1dCm5hbWUgPSAiZm9sZGhhc2giCnZlcnNpb24gPSAiMC4xLjUiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDljNGY1ZGFjNWUxNWMyNGViOTk5YzI2MTgxYTZjYTQwYjM5ZmU5NDZjYmU0YzI2M2M3MjA5NDY3YmM4M2FmMiIKCltbcGFja2FnZV1dCm5hbWUgPSAiZm9yZWlnbi10eXBlcyIKdmVyc2lvbiA9ICIwLjMuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmNmYzMzllYjhhZGMwNTJjZDJjYTc4OTEwZmRhODY5YWVmYTM4ZDIyZDVjYjY0OGU2NDg1ZTRkM2ZjMDZmM2IxIgpkZXBlbmRlbmNpZXMgPSBbCiAiZm9yZWlnbi10eXBlcy1zaGFyZWQiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImZvcmVpZ24tdHlwZXMtc2hhcmVkIgp2ZXJzaW9uID0gIjAuMS4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjAwYjAyMjg0MTE5MDhjYTg2ODVkYmE3ZmMyY2RkNzBlYzk5OTBhNmU3NTNlODliNmFjOTFhODRjNDBmYmFmNGIiCgpbW3BhY2thZ2VdXQpuYW1lID0gImZvcm1fdXJsZW5jb2RlZCIKdmVyc2lvbiA9ICIxLjIuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJjYjRjYjI0NTAzODUxNmY1Zjg1Mjc3ODc1Y2RhYTRmN2QyYzlhMGZhMDQ2OGRlMDZlZDE5MDE2M2IxNTgxZmNmIgpkZXBlbmRlbmNpZXMgPSBbCiAicGVyY2VudC1lbmNvZGluZyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiZnV0dXJlcyIKdmVyc2lvbiA9ICIwLjMuMzIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOGIxNDdlZTlkMWY2ZDA5N2NlZjljZTYyOGNkMmVlNjIyODhkOTYzZTE2ZmIyODdiZDkyODY0NTViMjQxMzgyZCIKZGVwZW5kZW5jaWVzID0gWwogImZ1dHVyZXMtY2hhbm5lbCIsCiAiZnV0dXJlcy1jb3JlIiwKICJmdXR1cmVzLWV4ZWN1dG9yIiwKICJmdXR1cmVzLWlvIiwKICJmdXR1cmVzLXNpbmsiLAogImZ1dHVyZXMtdGFzayIsCiAiZnV0dXJlcy11dGlsIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJmdXR1cmVzLWNoYW5uZWwiCnZlcnNpb24gPSAiMC4zLjMyIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjA3YmJlODljNTBkN2E1MzVlNTM5YjhjMTdiYzBiNDliZGI3Nzc0NzAzNGRhYTgwODc0MDdkNjU1ZjNmN2NjMWQiCmRlcGVuZGVuY2llcyA9IFsKICJmdXR1cmVzLWNvcmUiLAogImZ1dHVyZXMtc2luayIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiZnV0dXJlcy1jb25jdXJyZW5jeSIKdmVyc2lvbiA9ICI3LjcuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxNzVjZDhjY2E5ZTFkNDViODdmMThmZmE3NTA4OGYyMDk5ZTNjNGZlNWUyZjgzZTQyZGUxMTI1NjBiZWE4ZWE2IgpkZXBlbmRlbmNpZXMgPSBbCiAiZml4ZWRiaXRzZXQiLAogImZ1dHVyZXMtY29yZSIsCiAiZnV0dXJlcy1saXRlIiwKICJwaW4tcHJvamVjdCIsCiAic21hbGx2ZWMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImZ1dHVyZXMtY29yZSIKdmVyc2lvbiA9ICIwLjMuMzIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiN2UzNDUwODE1MjcyZWY1OGNlYzZkNTY0NDIzZjZlNzU1ZTI1Mzc5YjIxN2IwYmM2ODhlMjk1YmEyNGRmNmIxZCIKCltbcGFja2FnZV1dCm5hbWUgPSAiZnV0dXJlcy1leGVjdXRvciIKdmVyc2lvbiA9ICIwLjMuMzIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYmFmMjljMzg4MTgzNDJhM2IyNmI1YjkyMzYzOWU3YjFmNGE2MWZjNWU3NjEwMmQ0YjE5ODFjNmRjN2E3NTc5ZCIKZGVwZW5kZW5jaWVzID0gWwogImZ1dHVyZXMtY29yZSIsCiAiZnV0dXJlcy10YXNrIiwKICJmdXR1cmVzLXV0aWwiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImZ1dHVyZXMtaW8iCnZlcnNpb24gPSAiMC4zLjMyIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImNlY2JhMzVkN2FkOTI3ZTIzNjI0YjIyYWQ1NTIzNWYyMjM5Y2ZhNDRmZDEwNDI4ZWVjYmViYTZkNmE3MTc3MTgiCgpbW3BhY2thZ2VdXQpuYW1lID0gImZ1dHVyZXMtbGl0ZSIKdmVyc2lvbiA9ICIyLjYuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmNzhlMTA2MDlmZTBlMGIzZjQxNTdmZmFiMTg3NjMxOWI1YjBkYjEwMmEyYzYwZGM0NjI2MzA2ZGM0NmI0NGFkIgpkZXBlbmRlbmNpZXMgPSBbCiAiZmFzdHJhbmQiLAogImZ1dHVyZXMtY29yZSIsCiAiZnV0dXJlcy1pbyIsCiAicGFya2luZyIsCiAicGluLXByb2plY3QtbGl0ZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiZnV0dXJlcy1tYWNybyIKdmVyc2lvbiA9ICIwLjMuMzIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTgzNWI3MDIwM2U0MTI5MzM0MzEzN2RmNWMwNjY0NTQ2ZGE1NzQ1ZjgyZWM5Yjg0ZDQwYmU4MzM2OTU4NDQ3YiIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJmdXR1cmVzLXNpbmsiCnZlcnNpb24gPSAiMC4zLjMyIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImMzOTc1NGUxNTczMzFiMDEzOTc4ZWM5MTk5MmJkZTFhYzA4OTg0MzQ0M2M0OWNiYzdmNDYxNTBiMGZhZDA4OTMiCgpbW3BhY2thZ2VdXQpuYW1lID0gImZ1dHVyZXMtdGFzayIKdmVyc2lvbiA9ICIwLjMuMzIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMDM3NzExYjNkNTljMzMwMDRkMzg1NmZiZGM4M2I5OWQ0ZmYzN2EyNDc2OGZhMWJlOWNlMzUzOGExY2RlNDM5MyIKCltbcGFja2FnZV1dCm5hbWUgPSAiZnV0dXJlcy11dGlsIgp2ZXJzaW9uID0gIjAuMy4zMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIzODljYTQxMjk2ZTYxOTBiNDgwNTNkZTAzMjFkMDJhNzdmMzJmOGE1ZDI0NjFkZDM4NzYyYzA1OTM4MDVjNmQ2IgpkZXBlbmRlbmNpZXMgPSBbCiAiZnV0dXJlcy1jaGFubmVsIiwKICJmdXR1cmVzLWNvcmUiLAogImZ1dHVyZXMtaW8iLAogImZ1dHVyZXMtbWFjcm8iLAogImZ1dHVyZXMtc2luayIsCiAiZnV0dXJlcy10YXNrIiwKICJtZW1jaHIiLAogInBpbi1wcm9qZWN0LWxpdGUiLAogInNsYWIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImdlbmVyaWMtYXJyYXkiCnZlcnNpb24gPSAiMC4xNC43Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjg1NjQ5Y2E1MWZkNzIyNzJkNzgyMWFkYWYyNzRhZDkxYzI4ODI3NzcxM2Q5YzE4ODIwZDg0OTlhN2ZmNjllOWEiCmRlcGVuZGVuY2llcyA9IFsKICJ0eXBlbnVtIiwKICJ2ZXJzaW9uX2NoZWNrIiwKICJ6ZXJvaXplIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJnZXRyYW5kb20iCnZlcnNpb24gPSAiMC4yLjE3Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImZmMmFiYzAwYmU3ZmNhNmViYzQ3NDUyNDY5N2FlMjc2YWQ4NDdhZDBhNmIzZmFhNGJjYjAyN2U5YTQ2MTRhZDAiCmRlcGVuZGVuY2llcyA9IFsKICJjZmctaWYiLAogImpzLXN5cyIsCiAibGliYyIsCiAid2FzaSIsCiAid2FzbS1iaW5kZ2VuIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJnZXRyYW5kb20iCnZlcnNpb24gPSAiMC4zLjQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODk5ZGVmNWMzN2M0ZmQ3YjI2NjQ2NDhjMjgxMjBlY2VjMTM4ZTRkMzk1YjQ1OWU1Y2EzNGY5Y2NlMmRkNzdmZCIKZGVwZW5kZW5jaWVzID0gWwogImNmZy1pZiIsCiAibGliYyIsCiAici1lZmkgNS4zLjAiLAogIndhc2lwMiIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiZ2V0cmFuZG9tIgp2ZXJzaW9uID0gIjAuNC4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjBkZTUxZTY4NzRlOTRlN2JmNzZkNzI2ZmM1ZDEzYmE3ODJkZWNhNzM0ZmY2MGQ1YmIyZmIyNjA3Yzc0MDY1NTUiCmRlcGVuZGVuY2llcyA9IFsKICJjZmctaWYiLAogImxpYmMiLAogInItZWZpIDYuMC4wIiwKICJ3YXNpcDIiLAogIndhc2lwMyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiZ2hhc2giCnZlcnNpb24gPSAiMC41LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZjBkOGE0MzYyY2NiMjljYjBiMjY1MjUzZmIwYTI3MjhmNTkyODk1ZWU2ODU0ZmQ5YmMxM2YyZmZkYTI2NmZmMSIKZGVwZW5kZW5jaWVzID0gWwogIm9wYXF1ZS1kZWJ1ZyIsCiAicG9seXZhbCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiZ2xvYiIKdmVyc2lvbiA9ICIwLjMuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIwY2MyMzI3MGY2ZTE4MDhlMzBhOTI4YmRjODRkZWEwYjliNDEzNmE4YmM4MjMzODU3NGYyM2JhZjQ3YmJkMjgwIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJncm91cCIKdmVyc2lvbiA9ICIwLjEzLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZjBmOWVmNzQ2MmY3YzA5OWY1MThkNzU0MzYxODU4Zjg2ZDhhMDdhZjUzYmE5YWYwZmU2MzViYmNjYjE1MWE2MyIKZGVwZW5kZW5jaWVzID0gWwogImZmIiwKICJyYW5kX2NvcmUgMC42LjQiLAogInN1YnRsZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaDIiCnZlcnNpb24gPSAiMC4zLjI3Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjBiZWNhNTAzODBiMWZjMzI5ODNmYzFjYjQ1ODdiZmE0YmI5ZTc4ZmMyNTlhYWQ0YTAwMzJkMjA4MDMwOTIyMmQiCmRlcGVuZGVuY2llcyA9IFsKICJieXRlcyIsCiAiZm52IiwKICJmdXR1cmVzLWNvcmUiLAogImZ1dHVyZXMtc2luayIsCiAiZnV0dXJlcy11dGlsIiwKICJodHRwIDAuMi4xMiIsCiAiaW5kZXhtYXAiLAogInNsYWIiLAogInRva2lvIiwKICJ0b2tpby11dGlsIiwKICJ0cmFjaW5nIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJoYXNoYnJvd24iCnZlcnNpb24gPSAiMC4xNS41Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjkyMjljZmU1M2RmZDY5ZjA2MDlhNDlmNjU0NjFiZDkzMDAxZWExZWY4ODljZDU1MjlkZDE3NjU5M2Y1MzM4YTEiCmRlcGVuZGVuY2llcyA9IFsKICJmb2xkaGFzaCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaGFzaGJyb3duIgp2ZXJzaW9uID0gIjAuMTYuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI4NDFkMWNjOWJlZDdmOTIzNmYzMjFkZjk3NzAzMDM3M2Y0YTQxNjNhZTFhN2RiZmUxYTUxYTJjMWE1MWQ5MTAwIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJoZWNrIgp2ZXJzaW9uID0gIjAuNS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjIzMDRlMDA5ODNmODdmZmIzOGI1NWI0NDRiNWUzYjYwYTg4NGI1ZDMwYzBmY2E3ZDgyZmUzMzQ0OWJiZTU1ZWEiCgpbW3BhY2thZ2VdXQpuYW1lID0gImhleCIKdmVyc2lvbiA9ICIwLjQuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3ZjI0MjU0YWE5YTU0YjVjODU4ZWFlZTJmNWJjY2RiNDZhYWYwZTQ4NmE1OTVlZDVmZDhmODZiYTU1MjMyYTcwIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJoa2RmIgp2ZXJzaW9uID0gIjAuMTIuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3YjVmOGViMmFkNzI4NjM4ZWEyYzdkNDdhMjFkYjIzYjdiNThhNzJlZDZhMzgyNTZiOGExODQ5ZjE1ZmJiZGY3IgpkZXBlbmRlbmNpZXMgPSBbCiAiaG1hYyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaG1hYyIKdmVyc2lvbiA9ICIwLjEyLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNmM0OWMzN2MwOWMxN2E1M2Q5MzdkZmJiNzQyZWIzYTk2MWQ2NWE5OTRlNmJjZGNmMzdlNzM5OWQwY2M4YWI1ZSIKZGVwZW5kZW5jaWVzID0gWwogImRpZ2VzdCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaHR0cCIKdmVyc2lvbiA9ICIwLjIuMTIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNjAxY2JiNTdlNTc3ZTJmNWVmNWJlOGU3YjgzZjBmNjM5OTRmMjVhYTk0ZDY3M2U1NGE5MmQ1YzUxNmQxMDFmMSIKZGVwZW5kZW5jaWVzID0gWwogImJ5dGVzIiwKICJmbnYiLAogIml0b2EiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImh0dHAiCnZlcnNpb24gPSAiMS40LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTNiYTJhMzg2ZDdmODVhODFmMTE5YWQ3NDk4ZWJlNDQ0ZDJlMjJjMmFmMGI4NmIwNjk0MTZhY2U0OGIzMzExYSIKZGVwZW5kZW5jaWVzID0gWwogImJ5dGVzIiwKICJpdG9hIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJodHRwLWJvZHkiCnZlcnNpb24gPSAiMS4wLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMWVmZWRjZTFmYjhlNjkxM2YyM2UwYzkyZGU4ZTYyY2Q1Yjc3MmE2N2U3YjM5NDZkZjkzMGE2MjU2NmM5MzE4NCIKZGVwZW5kZW5jaWVzID0gWwogImJ5dGVzIiwKICJodHRwIDEuNC4wIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJodHRwLWJvZHktdXRpbCIKdmVyc2lvbiA9ICIwLjEuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJiMDIxZDkzZTI2YmVjZjVkYzdlMWI3NWIxYmVkMWZkOTMxMjRiMzc0Y2ViNzNmNDNkNGQ0ZWFmZWM4OTZhNjRhIgpkZXBlbmRlbmNpZXMgPSBbCiAiYnl0ZXMiLAogImZ1dHVyZXMtY29yZSIsCiAiaHR0cCAxLjQuMCIsCiAiaHR0cC1ib2R5IiwKICJwaW4tcHJvamVjdC1saXRlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJodHRwLXJhbmdlIgp2ZXJzaW9uID0gIjAuMS41Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjIxZGVjOWRiMTEwZjVmODcyZWQ5Njk5YzNlY2Y1MGNmMTZmNDIzNTAyNzA2YmE1YzcyNDYyZTI4ZDMxNTc1NzMiCgpbW3BhY2thZ2VdXQpuYW1lID0gImh0dHBhcnNlIgp2ZXJzaW9uID0gIjEuMTAuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI2ZGJmM2RlNzllNTFmM2Q1ODZhYjRjYjlkNWMzZTJjMTRhYTI4ZWQyM2QxODBjZjg5YjRkZjA0NTRhNjljYzg3IgoKW1twYWNrYWdlXV0KbmFtZSA9ICJodHRwZGF0ZSIKdmVyc2lvbiA9ICIxLjAuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJkZjNiNDY0MDJhOWQ1YWRiNGM4NmEwY2Y0NjNmNDJlMTk5OTRlM2VlODkxMTAxYjE4NDFmMzBhNTQ1Y2I0OWE5IgoKW1twYWNrYWdlXV0KbmFtZSA9ICJoeXBlciIKdmVyc2lvbiA9ICIxLjguMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIyYWIyZDRmMjUwYzNkN2IxYzlmY2RmZjFjZWNlOTRlYTRlMmRmYmVjNjg2MTRmN2I4N2NiMjA1ZjI0Y2E5ZDExIgpkZXBlbmRlbmNpZXMgPSBbCiAiYXRvbWljLXdha2VyIiwKICJieXRlcyIsCiAiZnV0dXJlcy1jaGFubmVsIiwKICJmdXR1cmVzLWNvcmUiLAogImh0dHAgMS40LjAiLAogImh0dHAtYm9keSIsCiAiaHR0cGFyc2UiLAogIml0b2EiLAogInBpbi1wcm9qZWN0LWxpdGUiLAogInBpbi11dGlscyIsCiAic21hbGx2ZWMiLAogInRva2lvIiwKICJ3YW50IiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJoeXBlci1ydXN0bHMiCnZlcnNpb24gPSAiMC4yNy43Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImUzYzkzZWI2MTE2ODFiMjA3ZTFmZTU1ZDVhNzFlY2Y5MTU3MmVjOGE2NzA1Y2RiNjg1N2Y3ZDhkNTI0MmNmNTgiCmRlcGVuZGVuY2llcyA9IFsKICJodHRwIDEuNC4wIiwKICJoeXBlciIsCiAiaHlwZXItdXRpbCIsCiAicnVzdGxzIiwKICJydXN0bHMtcGtpLXR5cGVzIiwKICJ0b2tpbyIsCiAidG9raW8tcnVzdGxzIiwKICJ0b3dlci1zZXJ2aWNlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJoeXBlci11dGlsIgp2ZXJzaW9uID0gIjAuMS4yMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5NjU0N2MyNTU2ZWM5ZDEyZmIxNTc4YzRlYWY0NDhiMDQ5OTNlN2ZiNzljYmFhZDkzMGE2NTY4ODBhNmJkZmEwIgpkZXBlbmRlbmNpZXMgPSBbCiAiYnl0ZXMiLAogImZ1dHVyZXMtY2hhbm5lbCIsCiAiZnV0dXJlcy11dGlsIiwKICJodHRwIDEuNC4wIiwKICJodHRwLWJvZHkiLAogImh5cGVyIiwKICJsaWJjIiwKICJwaW4tcHJvamVjdC1saXRlIiwKICJzb2NrZXQyIDAuNi4yIiwKICJ0b2tpbyIsCiAidG93ZXItc2VydmljZSIsCiAidHJhY2luZyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaWN1X2NvbGxlY3Rpb25zIgp2ZXJzaW9uID0gIjIuMS4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjRjNmI2NDk3MDE2NjdiYmU4MjVjM2I3ZTYzODhjYjUyMWMyM2Q4ODY0NDY3OGU4M2MwYzRkMGE2MjFhMzRiNDMiCmRlcGVuZGVuY2llcyA9IFsKICJkaXNwbGF5ZG9jIiwKICJwb3RlbnRpYWxfdXRmIiwKICJ5b2tlIiwKICJ6ZXJvZnJvbSIsCiAiemVyb3ZlYyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaWN1X2xvY2FsZV9jb3JlIgp2ZXJzaW9uID0gIjIuMS4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImVkYmE3ODYxMDA0ZGQzNzE0MjY1YjRkYjU0YTNjMzkwZTg4MGFiNjU4ZmVjNWY3ZGI4OTVmYWUyMDQ2YjViYjYiCmRlcGVuZGVuY2llcyA9IFsKICJkaXNwbGF5ZG9jIiwKICJsaXRlbWFwIiwKICJ0aW55c3RyIiwKICJ3cml0ZWFibGUiLAogInplcm92ZWMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImljdV9ub3JtYWxpemVyIgp2ZXJzaW9uID0gIjIuMS4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjVmNmM4ODI4YjY3YmY4OTA4ZDgyMTI3YjIwNTRlYTFiNDQyN2ZmMDIzMGVlOTE0MWM1NDI1MTkzNGFiMWI1OTkiCmRlcGVuZGVuY2llcyA9IFsKICJpY3VfY29sbGVjdGlvbnMiLAogImljdV9ub3JtYWxpemVyX2RhdGEiLAogImljdV9wcm9wZXJ0aWVzIiwKICJpY3VfcHJvdmlkZXIiLAogInNtYWxsdmVjIiwKICJ6ZXJvdmVjIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJpY3Vfbm9ybWFsaXplcl9kYXRhIgp2ZXJzaW9uID0gIjIuMS4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjdhZWRjY2NkMDFmYzVmZTgxZTZiNDg5YzE1YjI0N2I4YjA2OTBmZWIyMzMwNDMwM2E5ZTU2MGYzN2VmYzU2MGEiCgpbW3BhY2thZ2VdXQpuYW1lID0gImljdV9wcm9wZXJ0aWVzIgp2ZXJzaW9uID0gIjIuMS4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjAyMGJmYzAyZmU4NzBlYzNhNjZkOTNlNjc3Y2NjYTA1NjI1MDZlNTg3MmM2NTBmODkzMjY5ZTA4NjE1ZDc0ZWMiCmRlcGVuZGVuY2llcyA9IFsKICJpY3VfY29sbGVjdGlvbnMiLAogImljdV9sb2NhbGVfY29yZSIsCiAiaWN1X3Byb3BlcnRpZXNfZGF0YSIsCiAiaWN1X3Byb3ZpZGVyIiwKICJ6ZXJvdHJpZSIsCiAiemVyb3ZlYyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaWN1X3Byb3BlcnRpZXNfZGF0YSIKdmVyc2lvbiA9ICIyLjEuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI2MTZjMjk0Y2Y4ZDcyNWM2YWZjZDhmNTVhYmMxN2M1NjQ2NGVmNjIxMWY5ZWQ1OWNjY2ZmZTUzNDEyOWM3N2FmIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJpY3VfcHJvdmlkZXIiCnZlcnNpb24gPSAiMi4xLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODU5NjJjZjBjZTAyZTFlMGE2MjljYzM0ZTdjYTNlMzczY2UyMGRkYTRjNGQ3Mjk0YmJkMGJmMWZkYjU5ZTYxNCIKZGVwZW5kZW5jaWVzID0gWwogImRpc3BsYXlkb2MiLAogImljdV9sb2NhbGVfY29yZSIsCiAid3JpdGVhYmxlIiwKICJ5b2tlIiwKICJ6ZXJvZnJvbSIsCiAiemVyb3RyaWUiLAogInplcm92ZWMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImlkLWFyZW5hIgp2ZXJzaW9uID0gIjIuMy4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjNkMzA2N2Q3OWI5NzVlODg0NGNhOWViMDcyZTE2YjMxYzNjMWMzNjkyOGVkZjljNjc4OTU0OGM1MjRkMGQ5NTQiCgpbW3BhY2thZ2VdXQpuYW1lID0gImlkbmEiCnZlcnNpb24gPSAiMS4xLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiM2IwODc1ZjIzY2FhMDM4OTg5OTRmNmRkYzUwMTg4NmE0NWM3ZDNkNjJkMDRkMmQ5MDc4OGQ0N2JlMWIxZTRkZSIKZGVwZW5kZW5jaWVzID0gWwogImlkbmFfYWRhcHRlciIsCiAic21hbGx2ZWMiLAogInV0ZjhfaXRlciIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaWRuYV9hZGFwdGVyIgp2ZXJzaW9uID0gIjEuMi4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjNhY2FlOTYwOTU0MGFhMzE4ZDFiYzU4ODQ1NTIyNWZiMjA4NWI5ZWQwYzRmNmJkMGQ5ZDViY2Q4NmYxYTAzNDQiCmRlcGVuZGVuY2llcyA9IFsKICJpY3Vfbm9ybWFsaXplciIsCiAiaWN1X3Byb3BlcnRpZXMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImltcGwtbW9yZSIKdmVyc2lvbiA9ICIwLjEuOSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJlOGE1YTlhMGZmMDA4NmM3YTE0OGFjYjk0MmJhYWFiZWFkZjk1MDRkMTA0MDBiNWEwNTY0NTg1MzcyOWI5Y2QyIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJpbmRleG1hcCIKdmVyc2lvbiA9ICIyLjEzLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNzcxNGU3MDQzN2E3ZGMzYWM4ZWI3ZTZmOGRmNzVmZDhlYjQyMjY3NWZjNzY3OGFmZjczNjQzMDEwOTJiMTAxNyIKZGVwZW5kZW5jaWVzID0gWwogImVxdWl2YWxlbnQiLAogImhhc2hicm93biAwLjE2LjEiLAogInNlcmRlIiwKICJzZXJkZV9jb3JlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJpbm91dCIKdmVyc2lvbiA9ICIwLjEuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI4NzlmMTBlNjNjMjA2MjllY2FiYmI2NGE4MDEwMzE5NzM4YzY2YTVjZDBjMjliMDJkNjNkMjcyYjAzNzUxZDAxIgpkZXBlbmRlbmNpZXMgPSBbCiAiYmxvY2stcGFkZGluZyIsCiAiZ2VuZXJpYy1hcnJheSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaW50ZXJjZXB0b3IiCnZlcnNpb24gPSAiMC4xNy4xIgpzb3VyY2UgPSAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL3dlYnJ0Yy1ycy5naXQ/cmV2PWM5Njc1ZTIyMjI0NWU5NWMwNTZlMmRjYzAxOTVmYjA3NmZmYTliODkjYzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSIKZGVwZW5kZW5jaWVzID0gWwogImFzeW5jLXRyYWl0IiwKICJieXRlcyIsCiAiZnV0dXJlcyIsCiAibG9nIiwKICJwb3J0YWJsZS1hdG9taWMiLAogInJhbmQiLAogInJ0Y3AiLAogInJ0cCIsCiAidGhpc2Vycm9yIDEuMC42OSIsCiAidG9raW8iLAogIndhaXRncm91cCIsCiAid2VicnRjLXNydHAiLAogIndlYnJ0Yy11dGlsIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJpcG5ldCIKdmVyc2lvbiA9ICIyLjEyLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDk4ZjZmZWQxZmRlM2Y4YzIxYmM0MGExYWJiODhkZDc1ZTY3OTI0ZjljZmZjM2VmOTU2MDdiYWQ4MDE3ZjhlMiIKCltbcGFja2FnZV1dCm5hbWUgPSAiaXNfdGVybWluYWxfcG9seWZpbGwiCnZlcnNpb24gPSAiMS43MC4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImE2Y2IxMzhiYjc5YTE0NmMxYmQ0NjAwMDU2MjNlMTQyZWYwMTgxZTNkMDIxOWNiNDkzZTAyZjdkMDhhMzU2OTUiCgpbW3BhY2thZ2VdXQpuYW1lID0gIml0ZXJ0b29scyIKdmVyc2lvbiA9ICIwLjEzLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNDEzZWU3ZGZjNTJlZTFhNDk0OWNlZWI3ZGJjOGEzM2YyZDZjMDg4MTk0ZDlmOTIyZmI4MzE4ZmFmMWYwMTE4NiIKZGVwZW5kZW5jaWVzID0gWwogImVpdGhlciIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiaXRlcnRvb2xzIgp2ZXJzaW9uID0gIjAuMTQuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIyYjE5MmM3ODIwMzdmYWRkOWNmYTc1NTQ4MzEwNDg4YWFiZGJmM2QyZGE3Mzg4NWIzMWJkMGFiZDAzMzUxMjg1IgpkZXBlbmRlbmNpZXMgPSBbCiAiZWl0aGVyIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJpdG9hIgp2ZXJzaW9uID0gIjEuMC4xNyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5MmVjYzY2MTgxODFkZWYwNDU3MzkyY2NkMGVlNTExOThlMDY1ZTAxNmQxZDUyN2E3YWMxYjZkYzdjMWYwOWQyIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJqb2JzZXJ2ZXIiCnZlcnNpb24gPSAiMC4xLjM0Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjlhZmIzZGU0Mzk1ZDZiM2U2N2E3ODBiNmRlNjRiNTFjOTc4ZWNmMTFjYjlhNDYyYzY2YmU3ZDRjYTkwMzlkMzMiCmRlcGVuZGVuY2llcyA9IFsKICJnZXRyYW5kb20gMC4zLjQiLAogImxpYmMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImpzLXN5cyIKdmVyc2lvbiA9ICIwLjMuOTEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYjQ5NzE1YjcwNzNmMzg1YmE0YmM1MjhlNTc0N2QwMmU2NmNiMzljNjE0NmVmYjY2Yjc4MWYxMzFmMGZiMzk5YyIKZGVwZW5kZW5jaWVzID0gWwogIm9uY2VfY2VsbCIsCiAid2FzbS1iaW5kZ2VuIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJsYW5ndWFnZS10YWdzIgp2ZXJzaW9uID0gIjAuMy4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImQ0MzQ1OTY0YmIxNDI0ODQ3OTdiMTYxZjQ3M2E1MDNhNDM0ZGU3NzE0OWRkOGM3NDI3Nzg4YzZlMTMzNzkzODgiCgpbW3BhY2thZ2VdXQpuYW1lID0gImxhenlfc3RhdGljIgp2ZXJzaW9uID0gIjEuNS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImJiZDJiY2I0Yzk2M2YyZGRhZTA2YTJlZmM3ZTlmMzU5MTMxMjQ3M2M1MGM2Njg1ZTFmMjk4MDY4MzE2ZTY2ZmUiCgpbW3BhY2thZ2VdXQpuYW1lID0gImxlYjEyOGZtdCIKdmVyc2lvbiA9ICIwLjEuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIwOWVkZDllOGI1NGU0OWU1ODdlNGY2Mjk1YTdkMjljM2VhOTRkNDY5Y2I0MGFiOGNhNzBiMjg4MjQ4YTgxZGIyIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJsaWJjIgp2ZXJzaW9uID0gIjAuMi4xODIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNjgwMGJhZGI2Y2IyMDgyZmZkN2I2YTY3ZTYxMjViYjM5ZjE4NzgyZjc5MzUyMGNhZWU4Y2I4ODQ2YmUwNjExMiIKCltbcGFja2FnZV1dCm5hbWUgPSAibGlibG9hZGluZyIKdmVyc2lvbiA9ICIwLjguOSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJkN2M0YjAyMTk5ZmVlN2M1ZDIxYTVhZTdkOGNmYTc5YTZlZjViYjJmYzgzNGQ2ZTkwNThlODljODI1ZWZkYzU1IgpkZXBlbmRlbmNpZXMgPSBbCiAiY2ZnLWlmIiwKICJ3aW5kb3dzLWxpbmsiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImxpdGVtYXAiCnZlcnNpb24gPSAiMC44LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNjM3MzYwN2E1OWYwYmU3M2EzOWI2ZmU0NTZiODE5MmZjYzM1ODVmNjAyYWYyMDc1MTYwMGU5NzRkZDQ1NWU3NyIKCltbcGFja2FnZV1dCm5hbWUgPSAibG9jYWwtY2hhbm5lbCIKdmVyc2lvbiA9ICIwLjEuNSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJiNmNiYzg1ZTY5YjhkZjRiOGJiOGI4OWVjNjM0ZTcxODkwOTljZWE4OTI3YTI3NmI3Mzg0Y2U1NDg4ZTUzZWM4IgpkZXBlbmRlbmNpZXMgPSBbCiAiZnV0dXJlcy1jb3JlIiwKICJmdXR1cmVzLXNpbmsiLAogImxvY2FsLXdha2VyIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJsb2NhbC13YWtlciIKdmVyc2lvbiA9ICIwLjEuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0ZDg3M2Q3YzY3Y2UwOWI0MjExMGQ4MDE4MTNlZmJjOTM2NDQxNGUzNTZiZTk5MzU3MDBkMzY4MzUxNjU3NDg3IgoKW1twYWNrYWdlXV0KbmFtZSA9ICJsb2NrX2FwaSIKdmVyc2lvbiA9ICIwLjQuMTQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMjI0Mzk5ZTc0Yjg3YjVmMzU1NzUxMWQ5OGRmZjhiMTQwODliM2RhZGFmY2FiNmJiOTNlYWI2N2QzYWFjZTk2NSIKZGVwZW5kZW5jaWVzID0gWwogInNjb3BlZ3VhcmQiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gImxvZyIKdmVyc2lvbiA9ICIwLjQuMjkiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNWU1MDMyZTI0MDE5MDQ1Yzc2MmQzYzBmMjhmNWI2YjhiYmYzODU2M2E2NTkwODM4OWJmNzk3ODc1ODkyMDg5NyIKZGVwZW5kZW5jaWVzID0gWwogInNlcmRlX2NvcmUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIm1hdGNoZXJzIgp2ZXJzaW9uID0gIjAuMi4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImQxNTI1YTJhMjhjN2Y0ZmEwZmM5OGJiOTFhZTc1NWQxZTJkMTUwNTA3OWUwNTUzOWUzNWJjODc2YjVkNjVhZTkiCmRlcGVuZGVuY2llcyA9IFsKICJyZWdleC1hdXRvbWF0YSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAibWQtNSIKdmVyc2lvbiA9ICIwLjEwLjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDg5ZTdlZTBjZmJlZGZjNGRhMzM0MDIxODQ5MjE5NjI0MWQ4OWVlZmI2ZGFiMjdkZTVkZjkxN2E2ZDJlNzhjZiIKZGVwZW5kZW5jaWVzID0gWwogImNmZy1pZiIsCiAiZGlnZXN0IiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJtZW1jaHIiCnZlcnNpb24gPSAiMi44LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZjhjYTU4ZjQ0N2YwNmVkMTdkNWZjNDA0M2NlMWIxMGRkMjA1ZTA2MGZiM2NlNWI5NzliOGVkOGU1OWZmM2Y3OSIKCltbcGFja2FnZV1dCm5hbWUgPSAibWVtb2Zmc2V0Igp2ZXJzaW9uID0gIjAuNy4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjVkZTg5M2MzMmNkZTVmMzgzYmFhNGMwNGM1ZDZkYmRkNzM1Y2ZkNGE3OTRiMGRlYmRiMmJiMWI0MjFkYTVmZjQiCmRlcGVuZGVuY2llcyA9IFsKICJhdXRvY2ZnIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJtaW1lIgp2ZXJzaW9uID0gIjAuMy4xNyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI2ODc3YmI1MTQwODFlZTJhN2ZmNWVmOWRlMzI4MWYxNGE0ZGQ0YmNlYWM0YzA5Mzg4MDc0YTZiNWRmOGExMzlhIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJtaW1lX2d1ZXNzIgp2ZXJzaW9uID0gIjIuMC41Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImY3YzQ0ZjhlNjcyYzAwZmU1MzA4ZmEyMzVmODIxY2I0MTk4NDE0ZTFjNzc5MzVjMWFiNjk0OGQzZmQ3ODU1MGUiCmRlcGVuZGVuY2llcyA9IFsKICJtaW1lIiwKICJ1bmljYXNlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJtaW5pbWFsLWxleGljYWwiCnZlcnNpb24gPSAiMC4yLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNjgzNTRjNWM2YmQzNmQ3M2ZmM2ZlY2ViMDVlZmE1OWI2YWNiNzYyNjYxN2Y0OTYyYmUzMjJhODI1ZTYxZjc5YSIKCltbcGFja2FnZV1dCm5hbWUgPSAibWluaXpfb3hpZGUiCnZlcnNpb24gPSAiMC44LjkiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMWZhNzZhMmM4NmY3MDRiZGIyMjJkNjY5NjVmYjNkNjMyNjljZTM4NTE4YjgzY2IwNTc1ZmNhODU1ZWJiNjMxNiIKZGVwZW5kZW5jaWVzID0gWwogImFkbGVyMiIsCiAic2ltZC1hZGxlcjMyIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJtaW8iCnZlcnNpb24gPSAiMS4xLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYTY5YmNhYjBhZDQ3MjcxYTAyMzRkOTQyMmIxMzE4MDZiZjM5NjgwMjFlNWRjOTMyOGNhZjJkNGNkNTg1NTdmYyIKZGVwZW5kZW5jaWVzID0gWwogImxpYmMiLAogImxvZyIsCiAid2FzaSIsCiAid2luZG93cy1zeXMgMC42MS4yIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJtb29ubGlnaHQtY29tbW9uIgp2ZXJzaW9uID0gIjAuMS4wIgpzb3VyY2UgPSAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL21vb25saWdodC1jb21tb24tcnVzdC5naXQ/cmV2PWRmOWYxZTMwMDNmYjQ4MzRkYmIxN2E0YmQ0ZDNjZjI1ZDJmZWEzZDkjZGY5ZjFlMzAwM2ZiNDgzNGRiYjE3YTRiZDRkM2NmMjVkMmZlYTNkOSIKZGVwZW5kZW5jaWVzID0gWwogImFzeW5jLXRyYWl0IiwKICJiaXRmbGFncyAyLjExLjAiLAogImJ5dGVzIiwKICJmZWMtcnMiLAogImZvcm1fdXJsZW5jb2RlZCIsCiAiZnV0dXJlcyIsCiAiZ2V0cmFuZG9tIDAuMi4xNyIsCiAiaGV4IiwKICJodHRwIDEuNC4wIiwKICJodHRwLWJvZHktdXRpbCIsCiAiaHlwZXIiLAogImh5cGVyLXJ1c3RscyIsCiAiaHlwZXItdXRpbCIsCiAibW9vbmxpZ2h0LWNvbW1vbi1zeXMiLAogIm51bSIsCiAibnVtLWRlcml2ZSIsCiAibnVtLXRyYWl0cyIsCiAib3BlbnNzbCIsCiAicGVtIiwKICJyb3htbHRyZWUiLAogInJ1c3RscyIsCiAicnVzdHlfZW5ldCIsCiAic2RwLXR5cGVzIiwKICJzZXJkZSIsCiAic21hbGx2ZWMiLAogInRoaXNlcnJvciAyLjAuMTgiLAogInRva2lvIiwKICJ0cmFjaW5nIiwKICJ1dWlkIDAuOC4yIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJtb29ubGlnaHQtY29tbW9uLXN5cyIKdmVyc2lvbiA9ICIwLjEuMCIKc291cmNlID0gImdpdCtodHRwczovL2dpdGh1Yi5jb20vTXJDcmVhdGl2MzAwMS9tb29ubGlnaHQtY29tbW9uLXJ1c3QuZ2l0P3Jldj1kZjlmMWUzMDAzZmI0ODM0ZGJiMTdhNGJkNGQzY2YyNWQyZmVhM2Q5I2RmOWYxZTMwMDNmYjQ4MzRkYmIxN2E0YmQ0ZDNjZjI1ZDJmZWEzZDkiCmRlcGVuZGVuY2llcyA9IFsKICJiaW5kZ2VuIiwKICJjbWFrZSIsCiAib3BlbnNzbC1zeXMiLAogInByaW50Zi1jb21wYXQiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIm11bmdlIgp2ZXJzaW9uID0gIjAuNC43Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjVlMTc0MDFmMjU5ZWJhOTU2Y2ExNjQ5MTQ2MWI2ZThmNzI5MTNhMGExMTRlMzk3MzZjZTQwNDQxMGY5MTVhMGMiCmRlcGVuZGVuY2llcyA9IFsKICJtdW5nZV9tYWNybyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAibXVuZ2VfbWFjcm8iCnZlcnNpb24gPSAiMC40LjciCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNDU2OGYyNWNjYmQ0NWFiNWQ1NjAzZGMzNDMxOGMxZWM1NmIxMTc1MzE3ODEyNjAwMDIxNTFiODUzMGE5ZjkzMSIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJtdXR1YWxseV9leGNsdXNpdmVfZmVhdHVyZXMiCnZlcnNpb24gPSAiMC4xLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTk0ZTFlNjQ0NWQzMTRmOTcyZmY3Mzk1ZGYyZGUyOTVmZTUxYjcxODIxNjk0ZjBiMGUxZTc5YzRmMTJjODU3NyIKCltbcGFja2FnZV1dCm5hbWUgPSAibml4Igp2ZXJzaW9uID0gIjAuMjYuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI1OThiZWFmM2NjNmZkZDlhNWRmYjE2MzBjMjgwMGM3YWNkMzFkZjdhYWYwZjU2NTc5NmZiYTJiNTNjYTFhZjFiIgpkZXBlbmRlbmNpZXMgPSBbCiAiYml0ZmxhZ3MgMS4zLjIiLAogImNmZy1pZiIsCiAibGliYyIsCiAibWVtb2Zmc2V0IiwKICJwaW4tdXRpbHMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIm5vbSIKdmVyc2lvbiA9ICI3LjEuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJkMjczOTgzYzVhNjU3YTcwYTNlOGYyYTAxMzI5ODIyZjNiOGM4MTcyYjczODI2NDExYTU1NzUxZTQwNGEwYTRhIgpkZXBlbmRlbmNpZXMgPSBbCiAibWVtY2hyIiwKICJtaW5pbWFsLWxleGljYWwiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIm51LWFuc2ktdGVybSIKdmVyc2lvbiA9ICIwLjUwLjMiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNzk1N2I5NzQwNzQ0ODkyZjExNDkzNmFiNGE1N2IzZjQ4NzQ5MWJiZWFmYWY4MDgzNjg4YjE2ODQxYTQyNDBlNSIKZGVwZW5kZW5jaWVzID0gWwogIndpbmRvd3Mtc3lzIDAuNjEuMiIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAibnVtIgp2ZXJzaW9uID0gIjAuNC4zIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjM1YmQwMjRlOGIyZmY3NTU2MmU1ZjM0ZTdmNDkwNTgzOWRlYjRiMjI5NTVlZjVlNzNkMmZlYTFiOTgxM2NiMjMiCmRlcGVuZGVuY2llcyA9IFsKICJudW0tYmlnaW50IiwKICJudW0tY29tcGxleCIsCiAibnVtLWludGVnZXIiLAogIm51bS1pdGVyIiwKICJudW0tcmF0aW9uYWwiLAogIm51bS10cmFpdHMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIm51bS1iaWdpbnQiCnZlcnNpb24gPSAiMC40LjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYTVlNDRmNzIzZjExMzNjOWRlYWM2NDY3NjM1NzlmZGIzYWM3NDVlNDE4ZjJhN2FmOWNkMGM0MzFkYTFmMjBiOSIKZGVwZW5kZW5jaWVzID0gWwogIm51bS1pbnRlZ2VyIiwKICJudW0tdHJhaXRzIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJudW0tY29tcGxleCIKdmVyc2lvbiA9ICIwLjQuNiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3M2Y4OGExMzA3NjM4MTU2NjgyYmFkYTlkNzYwNDEzNTU1Mjk1N2I3ODE4MDU3ZGNlZjIyNzA1YjRkNTA5NDk1IgpkZXBlbmRlbmNpZXMgPSBbCiAibnVtLXRyYWl0cyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAibnVtLWNvbnYiCnZlcnNpb24gPSAiMC4yLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiY2Y5N2VjNTc5YzNjNDJmOTUzZWY3NmRiZjhkNTVhYzkxZmIyMTlkZGU3MGU0OWFhNGE2YjdkNzRlOTkxOTA1MCIKCltbcGFja2FnZV1dCm5hbWUgPSAibnVtLWRlcml2ZSIKdmVyc2lvbiA9ICIwLjQuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJlZDM5NTVmMWE5YzdjMGMxNWUwOTJmOWM4ODdkYjA4YjFmYzY4MzMwNWZkZjZlYjY2ODRmMjI1NTUzNTVlMjAyIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIm51bS1pbnRlZ2VyIgp2ZXJzaW9uID0gIjAuMS40NiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3OTY5NjYxZmQyOTU4YTVjYjA5NmU1NmM4ZTFhZDA0NDRhYzJiYmNkMDA2MWJkMjg2NjA0ODVhNDQ4Nzk4NThmIgpkZXBlbmRlbmNpZXMgPSBbCiAibnVtLXRyYWl0cyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAibnVtLWl0ZXIiCnZlcnNpb24gPSAiMC4xLjQ1Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjE0MjkwMzRhMDQ5MDcyNGQwMDc1ZWJiMmJjOWU4NzVkNjUwM2MzY2Y2OWUyMzVhODk0MWFhNzU3ZDgzZWY1YmYiCmRlcGVuZGVuY2llcyA9IFsKICJhdXRvY2ZnIiwKICJudW0taW50ZWdlciIsCiAibnVtLXRyYWl0cyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAibnVtLXJhdGlvbmFsIgp2ZXJzaW9uID0gIjAuNC4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImY4M2QxNGRhMzkwNTYyZGNhNjlmYzg0MDgyZTczZTU0OGUxYWQzMDhkMjRhY2NkZWRkMjcyMDAxN2NiMzc4MjQiCmRlcGVuZGVuY2llcyA9IFsKICJudW0tYmlnaW50IiwKICJudW0taW50ZWdlciIsCiAibnVtLXRyYWl0cyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAibnVtLXRyYWl0cyIKdmVyc2lvbiA9ICIwLjIuMTkiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMDcxZGZjMDYyNjkwZTkwYjczNGMwYjIyNzNjZTcyYWQwZmZhOTVmMGM3NDU5NmJjMjUwZGNmZDk2MDI2Mjg0MSIKZGVwZW5kZW5jaWVzID0gWwogImF1dG9jZmciLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIm9pZC1yZWdpc3RyeSIKdmVyc2lvbiA9ICIwLjcuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJhOGQ4MDM0ZDk0ODljZGFmNzkyMjhlYjlmNmEzYjhkN2JiMzJiYTAwZDY2NDVlYmQ0OGVlZjQwNzdjZWI1YmQ5IgpkZXBlbmRlbmNpZXMgPSBbCiAiYXNuMS1ycyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAib25jZV9jZWxsIgp2ZXJzaW9uID0gIjEuMjEuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0MmY1ZTE1Yzk5NTNjNWU0Y2NjZWViMmU3MzgyYTcxNjQ4MmMzNDUxNTMxNWY3YjAzNTMyYjhiNGU4MzkzZDJkIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJvbmNlX2NlbGxfcG9seWZpbGwiCnZlcnNpb24gPSAiMS43MC4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjM4NGI4YWI2ZDM3MjE1ZjNjNTMwMWE5NWE0YWNjYjVkNjRhYTYwN2YxZmNiMjZhMTFiNTMwMzg3ODQ1MWI0ZmUiCgpbW3BhY2thZ2VdXQpuYW1lID0gIm9wYXF1ZS1kZWJ1ZyIKdmVyc2lvbiA9ICIwLjMuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJjMDhkNjU4ODVlZTM4ODc2YzRmODZmYTUwM2ZiNDlkN2I1MDdjMmI2MjU1MmRmN2M3MGIyZmNlNjI3ZTA2MzgxIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJvcGVuc3NsIgp2ZXJzaW9uID0gIjAuMTAuNzMiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODUwNTczNGQ0NmM4YWIxZTE5YTFkY2UzYWVmNTk3YWQ4N2RjYjRjMzdlNzE4ODIzMTc2OWJkNmJkNTFjZWJmOCIKZGVwZW5kZW5jaWVzID0gWwogImJpdGZsYWdzIDIuMTEuMCIsCiAiY2ZnLWlmIiwKICJmb3JlaWduLXR5cGVzIiwKICJsaWJjIiwKICJvbmNlX2NlbGwiLAogIm9wZW5zc2wtbWFjcm9zIiwKICJvcGVuc3NsLXN5cyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAib3BlbnNzbC1tYWNyb3MiCnZlcnNpb24gPSAiMC4xLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYTk0ODY2NmI2MzdhMGY0NjVlODU2NGM3M2U4OWQ0ZGRlMDBkNzJkNGQ0NzNjYzk3MmYzOTBmYzNkY2VlN2Q5YyIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJvcGVuc3NsLXNyYyIKdmVyc2lvbiA9ICIzMDAuNS4zKzMuNS40Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImRjNmJhZDhjZDAyMzNiNjM5NzFlMjMyY2M5YzVlODMwMzkzNzViODU4NmQyMzEyZjMxZmRhODVkYjhmODg4YzIiCmRlcGVuZGVuY2llcyA9IFsKICJjYyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAib3BlbnNzbC1zeXMiCnZlcnNpb24gPSAiMC45LjEwOSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5MDA5NmUyZTQ3NjMwZDc4YjdkMWMyMDk1MmRjNjIxZjk1NzEwM2Y4YmMyYzgzNTllYzgxMjkwZDc1MjM4NTcxIgpkZXBlbmRlbmNpZXMgPSBbCiAiY2MiLAogImxpYmMiLAogIm9wZW5zc2wtc3JjIiwKICJwa2ctY29uZmlnIiwKICJ2Y3BrZyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicDI1NiIKdmVyc2lvbiA9ICIwLjEzLjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYzk4NjNhZDg1ZmE4ZjQ0NjBmOWM0OGNiOTA5ZDM4YTBkNjg5ZGJhMWY2ZjY5ODhhNWUzZTBkMzEwNzFiY2Q0YiIKZGVwZW5kZW5jaWVzID0gWwogImVjZHNhIiwKICJlbGxpcHRpYy1jdXJ2ZSIsCiAicHJpbWVvcmRlciIsCiAic2hhMiIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicDM4NCIKdmVyc2lvbiA9ICIwLjEzLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZmU0MmYxNjcwYTUyYTQ3ZDQ0OGYxNGI2YTVjNjFkZDc4ZmNlNTE4NTZlNjhlZGFhMzhmN2FlM2E0NmI4ZDZiNiIKZGVwZW5kZW5jaWVzID0gWwogImVjZHNhIiwKICJlbGxpcHRpYy1jdXJ2ZSIsCiAicHJpbWVvcmRlciIsCiAic2hhMiIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicGFya2luZyIKdmVyc2lvbiA9ICIyLjIuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmMzhkNTY1MmMxNmZkZTUxNWJiMWVjZWY0NTBhYjBmNmEyMTlkNjE5YTcyNzQ5NzYzMjRkNWUzNzdmN2RjZWJhIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJwYXJraW5nX2xvdCIKdmVyc2lvbiA9ICIwLjEyLjUiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOTM4NTc0NTMyNTBlMzA3N2JkNzFmZjk4YjZhNjVlYTY2MjFhMTliYjBmNTU5YTg1MjQ4OTU1YWMxMmM0NWExYSIKZGVwZW5kZW5jaWVzID0gWwogImxvY2tfYXBpIiwKICJwYXJraW5nX2xvdF9jb3JlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJwYXJraW5nX2xvdF9jb3JlIgp2ZXJzaW9uID0gIjAuOS4xMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIyNjIxNjg1OTg1YTJlYmYxYzUxNjg4MWMwMjYwMzJhYzdkZWFmY2RhMWEyYzliNzg1MGRjODFlM2RmY2I2NGMxIgpkZXBlbmRlbmNpZXMgPSBbCiAiY2ZnLWlmIiwKICJsaWJjIiwKICJyZWRveF9zeXNjYWxsIiwKICJzbWFsbHZlYyIsCiAid2luZG93cy1saW5rIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJwZW0iCnZlcnNpb24gPSAiMy4wLjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMWQzMGM1M2MyNmJjNWIzMWE5OGNkMDJkMjBmMjVhN2M4NTY3MTQ2Y2FmNjNlZDU5M2E5ZDg3YjI3NzUyOTFiZSIKZGVwZW5kZW5jaWVzID0gWwogImJhc2U2NCIsCiAic2VyZGVfY29yZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicGVtLXJmYzc0NjgiCnZlcnNpb24gPSAiMC43LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODhiMzljOWJmY2ZjMjMxMDY4NDU0MzgyNzg0YmI0NjBhYWU1OTQzNDNmYjAzMGQ0NmU5ZjUwYTY0NTQxODQxMiIKZGVwZW5kZW5jaWVzID0gWwogImJhc2U2NGN0IiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJwZXJjZW50LWVuY29kaW5nIgp2ZXJzaW9uID0gIjIuMy4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjliNGY2MjdjYjFiMjU5MTcxOTNhMjU5ZTQ5YmRhZDA4ZjY3MWY4ZDk3MDhhY2ZkNWZlMGE4YzE0NTVkODcyMjAiCgpbW3BhY2thZ2VdXQpuYW1lID0gInBpbi1wcm9qZWN0Igp2ZXJzaW9uID0gIjEuMS4xMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmMTc0OWM3ZWQ0YmNhZjRjM2QwYTNlZmMyODUzODg0NGZiMjliY2RkN2QyYjY3YjJiZTdlMjBiYTg2MWZmNTE3IgpkZXBlbmRlbmNpZXMgPSBbCiAicGluLXByb2plY3QtaW50ZXJuYWwiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInBpbi1wcm9qZWN0LWludGVybmFsIgp2ZXJzaW9uID0gIjEuMS4xMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJkOWIyMGVkMzBmMTA1Mzk5Nzc2YjljODgzZTY4ZTUzNmVmNjAyYTE2YWU2ZjU5NmQyYzQ3MzU5MWQ2YWQ2NGM2IgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInBpbi1wcm9qZWN0LWxpdGUiCnZlcnNpb24gPSAiMC4yLjE3Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImE4OTMyMmRmOWViZTFjMTU3OGQ2ODljOTIzMThlMDcwOTY3ZDEwNDJiNTEyYWZiZTQ5NTE4NzIzZjRlNmQ1Y2QiCgpbW3BhY2thZ2VdXQpuYW1lID0gInBpbi11dGlscyIKdmVyc2lvbiA9ICIwLjEuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI4Yjg3MGQ4YzE1MWI2ZjJmYjkzZTg0YTEzMTQ2MTM4ZjA1ZDAyZWQxMWM3ZTdjNTRmODgyNmFhYWY3YzlmMTg0IgoKW1twYWNrYWdlXV0KbmFtZSA9ICJwa2NzOCIKdmVyc2lvbiA9ICIwLjEwLjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZjk1MGIyMzc3ODQ1Y2ViZTVjZjhiNTE2NWNiM2NjMWE1ZTBmYTVjZmEzZTFmN2Y1NTcwN2Q4ZmQ4MmUwYTdiNyIKZGVwZW5kZW5jaWVzID0gWwogImRlciIsCiAic3BraSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicGtnLWNvbmZpZyIKdmVyc2lvbiA9ICIwLjMuMzIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiN2VkZGRiZDBiNTJkNzMyYjIxYWQ5YTVmYWI1YzcwNGMxNGNkOTQ5ZTVlOWExZWM1OTI5YTI0ZmRlZDFiOTA0YyIKCltbcGFja2FnZV1dCm5hbWUgPSAicG9seTEzMDUiCnZlcnNpb24gPSAiMC44LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODE1OWJkOTA3MjVkMmRmNDk4ODlhMDc4YjU0ZjRmNzllODdmMWY4YTg0NDQxOTRjZGNhODFkMzhmNTM5M2FiZiIKZGVwZW5kZW5jaWVzID0gWwogImNwdWZlYXR1cmVzIiwKICJvcGFxdWUtZGVidWciLAogInVuaXZlcnNhbC1oYXNoIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJwb2x5dmFsIgp2ZXJzaW9uID0gIjAuNi4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjlkMWZlNjBkMDYxNDNiMjQzMGFhNTMyYzk0Y2ZlOWUyOTc4MzA0N2YwNmMwZDdmZDM1OWE5YTUxYjcyOWZhMjUiCmRlcGVuZGVuY2llcyA9IFsKICJjZmctaWYiLAogImNwdWZlYXR1cmVzIiwKICJvcGFxdWUtZGVidWciLAogInVuaXZlcnNhbC1oYXNoIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJwb3J0YWJsZS1hdG9taWMiCnZlcnNpb24gPSAiMS4xMy4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImMzM2E5NDcxODk2ZjFjNjljZWNlZjhkMjBjYmUyZjdhY2NkMTI1MjdjZTYwODQ1ZmY0NGMxNTNiYjJhMjFiNDkiCgpbW3BhY2thZ2VdXQpuYW1lID0gInBvdGVudGlhbF91dGYiCnZlcnNpb24gPSAiMC4xLjQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYjczOTQ5NDMyZjVlMmEwOTY1NzAwM2MyNWJjYTVlMTlhMGU5Yzg0ZjgwNThjYTM3NGY0OWUwZWJlNjA1YWY3NyIKZGVwZW5kZW5jaWVzID0gWwogInplcm92ZWMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInBvd2VyZm10Igp2ZXJzaW9uID0gIjAuMi4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjQzOWVlMzA1ZGVmMTE1YmEwNTkzOGRiNmViMTY0NGZmOTQxNjVjNWFiNWU5NDIwZDFjMWJjZWRiYmE5MDkzOTEiCgpbW3BhY2thZ2VdXQpuYW1lID0gInBwdi1saXRlODYiCnZlcnNpb24gPSAiMC4yLjIxIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjg1ZWFlM2M0ZWQyZjUwZGNmZTcyNjQzZGE0YmVmYzMwZGVhZGI0NThhOWI1OTBkNzIwY2RlMmYyYjFlOTdkYTkiCmRlcGVuZGVuY2llcyA9IFsKICJ6ZXJvY29weSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicHJldHR5cGxlYXNlIgp2ZXJzaW9uID0gIjAuMi4zNyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0NzljYThhZGFjZGQ3Y2U4ZjFmYjM5Y2U5ZWNjY2JmZTkzYTNmMTM0NGIzZDBkOTdmMjBiYzAxOTYyMDhmNjJiIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInN5biIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicHJpbWVvcmRlciIKdmVyc2lvbiA9ICIwLjEzLjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMzUzZTFjYTE4OTY2YzE2ZDlkZWIxYzY5Mjc4ZWRiYzVmMTk0MTM5NjEyNzcyYmQ5NTM3YWY2MGFjMjMxZTFlNiIKZGVwZW5kZW5jaWVzID0gWwogImVsbGlwdGljLWN1cnZlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJwcmludGYtY29tcGF0Igp2ZXJzaW9uID0gIjAuMy4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjhmNjc3NGRlYmE3Yjk2OWY5MDYxNGQ2N2M2NWJlMGUwYzEyMzJkNDA3ODMzMjgwMGQ2ZTY4YTE1ZWNjOGE0ZjMiCmRlcGVuZGVuY2llcyA9IFsKICJiaXRmbGFncyAyLjExLjAiLAogIml0ZXJ0b29scyAwLjE0LjAiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInByb2MtbWFjcm8yIgp2ZXJzaW9uID0gIjEuMC4xMDYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOGZkMDBmMGJiMmU5MGQ4MWQxMDQ0YzJiMzI2MTdmNjhmY2I5ZmEzYmI3NjQwYzIzZTljNzQ4ZTUzZmIzMDkzNCIKZGVwZW5kZW5jaWVzID0gWwogInVuaWNvZGUtaWRlbnQiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInB0cl9tZXRhIgp2ZXJzaW9uID0gIjAuMy4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjBiOWEwY2Y5NWExMTk2YWY2MWQ0ZjFjYmRhYjk2NzE3OTUxNmQ5YTRhNDMxMmFmMWYzMTk0OGY4ZjYyMjRhNzkiCmRlcGVuZGVuY2llcyA9IFsKICJwdHJfbWV0YV9kZXJpdmUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInB0cl9tZXRhX2Rlcml2ZSIKdmVyc2lvbiA9ICIwLjMuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3MzQ3ODY3ZDBhN2UxMjA4ZDkzYjQ2NzY3YmU4M2UyYjhmOTc4YzNkYWQzNWY3NzVhYzhkODg0NzU1MWQ2ZmUxIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInF1b3RlIgp2ZXJzaW9uID0gIjEuMC40NSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0MWYyNjE5OTY2MDUwNjg5MzgyZDJiNDRmNjY0ZjRiYzU5M2UxMjk3ODVhMzZkNmVlMzc2ZGRmMzcyNTliOTI0IgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInItZWZpIgp2ZXJzaW9uID0gIjUuMy4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjY5Y2RiMzRjMTU4Y2ViMjg4ZGYxMWUxOGI0YmQzOWRlOTk0ZjY2NTdkODM4NDdiZGZmZGJkN2YzNDY3NTRiMGYiCgpbW3BhY2thZ2VdXQpuYW1lID0gInItZWZpIgp2ZXJzaW9uID0gIjYuMC4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImY4ZGNjOWM3ZDUyYTgxMTY5N2QyMTUxYzcwMWUwZDA4OTU2ZjkyYjBlMjQxMzZjZjRjZjI3YjU3YTZhMGQ5YmYiCgpbW3BhY2thZ2VdXQpuYW1lID0gInJhbmNvciIKdmVyc2lvbiA9ICIwLjEuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJhMDYzZWE3MjM4MTUyN2MyYTA1NjFkYTljODAwMDBlZjgyMmJkZDdjMzI0MWIxY2MxYjEyMTAwZTNkZjA4MWVlIgpkZXBlbmRlbmNpZXMgPSBbCiAicHRyX21ldGEiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJhbmQiCnZlcnNpb24gPSAiMC45LjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNmRiMjc3MGYwNjExN2Q0OTA2MTBjNzQ4ODU0N2Q1NDM2MTdiMjFiZmEwNzc5NmQ3YTEyZjZmMWJkNTM4NTBkMSIKZGVwZW5kZW5jaWVzID0gWwogInJhbmRfY2hhY2hhIiwKICJyYW5kX2NvcmUgMC45LjUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJhbmRfY2hhY2hhIgp2ZXJzaW9uID0gIjAuOS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImQzMDIyYjVmMWRmNjBmMjZlMWZmZGRkNmM2NmU4YWExNWRlMzgyYWU2M2IzYTBjMWJmYzBlNGQzZTNmMzI1Y2IiCmRlcGVuZGVuY2llcyA9IFsKICJwcHYtbGl0ZTg2IiwKICJyYW5kX2NvcmUgMC45LjUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJhbmRfY29yZSIKdmVyc2lvbiA9ICIwLjYuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJlYzBiZTQ3OTVlMmY2YTI4MDY5YmVjMGI1ZmYzZTJhYzliYWZjOTllNmE5YTdkYzM1NDc5OTZjNWM4MTY5MjJjIgpkZXBlbmRlbmNpZXMgPSBbCiAiZ2V0cmFuZG9tIDAuMi4xNyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicmFuZF9jb3JlIgp2ZXJzaW9uID0gIjAuOS41Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjc2YWZjODI2ZGUxNDIzOGU2ZThjMzc0ZGRjYzFmYTE5ZTM3NGZkOGRkOTg2YjBkMmFmMGQwMjM3NzI2MWQ4M2MiCmRlcGVuZGVuY2llcyA9IFsKICJnZXRyYW5kb20gMC4zLjQiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJheW9uIgp2ZXJzaW9uID0gIjEuMTIuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmYjM5YjE2Njc4MWY5MmQ0ODI1MzRlZjRiNGIxYjI1NjhmNDI2MTNiNTNlNWI2YzE2MGUyNGNmYmZhMzA5MjZkIgpkZXBlbmRlbmNpZXMgPSBbCiAiZWl0aGVyIiwKICJyYXlvbi1jb3JlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJyYXlvbi1jb3JlIgp2ZXJzaW9uID0gIjEuMTMuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIyMmUxOGIwZjAwNjJkMzBkNDIzMGIyZTg1ZmY3N2ZkZmU0MzI2ZmViMDU0Yjk3ODNhMzQ2MGQ4NDM1YzhhYjkxIgpkZXBlbmRlbmNpZXMgPSBbCiAiY3Jvc3NiZWFtLWRlcXVlIiwKICJjcm9zc2JlYW0tdXRpbHMiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJjZ2VuIgp2ZXJzaW9uID0gIjAuMTMuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3NWU2NjllNTIwMjI1OWI1MzE0ZDFlYTUzOTczMTZhZDQwMDgxOTQzNzg1N2I5MDg2MTc2NWYyNGM0Y2Y4MGEyIgpkZXBlbmRlbmNpZXMgPSBbCiAicGVtIiwKICJyaW5nIiwKICJydXN0bHMtcGtpLXR5cGVzIiwKICJ0aW1lIiwKICJ4NTA5LXBhcnNlciIsCiAieWFzbmEiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJlZG94X3N5c2NhbGwiCnZlcnNpb24gPSAiMC41LjE4Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImVkMmJmMjU0NzU1MWE3MDUzZDZmZGZhZmRhM2Y5Mzg5Nzk2NDVjNDQ4MTJmYmZjZGEwOThmYWFlM2YxYTM2MmQiCmRlcGVuZGVuY2llcyA9IFsKICJiaXRmbGFncyAyLjExLjAiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJlZ2V4Igp2ZXJzaW9uID0gIjEuMTIuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJlMTA3NTRhMTRiOTEzN2RkN2IxZTNlNWIwNDkzY2M5MTcxZmRkMTA1ZTBhYjQ3N2Y1MWI3MmU3ZjNhYzBlMjc2IgpkZXBlbmRlbmNpZXMgPSBbCiAiYWhvLWNvcmFzaWNrIiwKICJtZW1jaHIiLAogInJlZ2V4LWF1dG9tYXRhIiwKICJyZWdleC1zeW50YXgiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJlZ2V4LWF1dG9tYXRhIgp2ZXJzaW9uID0gIjAuNC4xNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI2ZTFkZDQxMjJmYzE1OTVlODE2MjYxODk0NTQ3Njg5MmVlZmNhN2I4OGM1MjgyMGU3NGFmNjI2MjIxM2NhZThmIgpkZXBlbmRlbmNpZXMgPSBbCiAiYWhvLWNvcmFzaWNrIiwKICJtZW1jaHIiLAogInJlZ2V4LXN5bnRheCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicmVnZXgtbGl0ZSIKdmVyc2lvbiA9ICIwLjEuOSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJjYWI4MzRjNzNkMjQ3ZTY3ZjRmYWU0NTI4MDZkMTdkM2M3NTAxNzU2ZDk4Yzg4MDhkN2M5YzdhYTdkMThmOTczIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJyZWdleC1zeW50YXgiCnZlcnNpb24gPSAiMC44LjEwIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImRjODk3ZGQ4ZDllOGJkMWVkOGNkYWQ4MmI1OTY2YzNlMGVjYWUwOWZiMTkwN2Q1OGVmYWEwMTM1NDMxODVkMGEiCgpbW3BhY2thZ2VdXQpuYW1lID0gInJlbmQiCnZlcnNpb24gPSAiMC41LjMiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiY2FkYWRlZjMxN2MyZjIwNzU1YTY0ZDdmZGM0OGY5ZTcxNzhlZTZiMGUxZjdmY2UzM2ZhNjBmMWQ2OGEyNzZlNiIKZGVwZW5kZW5jaWVzID0gWwogImJ5dGVjaGVjayIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicmZjNjk3OSIKdmVyc2lvbiA9ICIwLjQuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmOGRkMmE4MDhkNDU2YzRhNTRlMzAwYTIzZTlmNWE2N2UxMjJjMzAyNDExOWFjYmZkNzNlM2JmNjY0NDkxY2IyIgpkZXBlbmRlbmNpZXMgPSBbCiAiaG1hYyIsCiAic3VidGxlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJyaW5nIgp2ZXJzaW9uID0gIjAuMTcuMTQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYTQ2ODllNmMyMjk0ZDgxZTg4ZGM2MjYxYzc2OGI2M2JjNGZjZGI4NTJiZTZkMTM1MjQ5OGIxMTRmNjEzODNiNyIKZGVwZW5kZW5jaWVzID0gWwogImNjIiwKICJjZmctaWYiLAogImdldHJhbmRvbSAwLjIuMTciLAogImxpYmMiLAogInVudHJ1c3RlZCIsCiAid2luZG93cy1zeXMgMC41Mi4wIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJya3l2Igp2ZXJzaW9uID0gIjAuOC4xNSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxYTMwZTYzMWI3ZjRhMDNkZWU5MDU2YjhlZjY5ODJlOGJhMzcxZGQ1YmVkYjc0ZDNlYzg2ZGY0NDk5MTMyYzcwIgpkZXBlbmRlbmNpZXMgPSBbCiAiYnl0ZWNoZWNrIiwKICJieXRlcyIsCiAiaGFzaGJyb3duIDAuMTYuMSIsCiAiaW5kZXhtYXAiLAogIm11bmdlIiwKICJwdHJfbWV0YSIsCiAicmFuY29yIiwKICJyZW5kIiwKICJya3l2X2Rlcml2ZSIsCiAidGlueXZlYyIsCiAidXVpZCAxLjIyLjAiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJreXZfZGVyaXZlIgp2ZXJzaW9uID0gIjAuOC4xNSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI4MTAwYmIzNGMwYTFkMGY5MDcxNDNkYjMxNDllNmI0ZWVhM2MzM2I5ZWU4YjE4OTcyMDE2OGU4MTgzMDM5ODZmIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJveG1sdHJlZSIKdmVyc2lvbiA9ICIwLjIxLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZjE5NjRiMTBjNzYxMjVjMzZmOGFmZTE5MDA2NWE0YmY5YTg3YmYzMjQ4NDJjMDU3MDEzMzBiYmE5ZjFjYWNiYiIKZGVwZW5kZW5jaWVzID0gWwogIm1lbWNociIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicnRjcCIKdmVyc2lvbiA9ICIwLjE3LjEiCnNvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvd2VicnRjLXJzLmdpdD9yZXY9Yzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSNjOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5IgpkZXBlbmRlbmNpZXMgPSBbCiAiYnl0ZXMiLAogInRoaXNlcnJvciAxLjAuNjkiLAogIndlYnJ0Yy11dGlsIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJydHAiCnZlcnNpb24gPSAiMC4xNy4xIgpzb3VyY2UgPSAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL3dlYnJ0Yy1ycy5naXQ/cmV2PWM5Njc1ZTIyMjI0NWU5NWMwNTZlMmRjYzAxOTVmYjA3NmZmYTliODkjYzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSIKZGVwZW5kZW5jaWVzID0gWwogImJ5dGVzIiwKICJtZW1jaHIiLAogInBvcnRhYmxlLWF0b21pYyIsCiAicmFuZCIsCiAic2VyZGUiLAogInRoaXNlcnJvciAxLjAuNjkiLAogIndlYnJ0Yy11dGlsIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJydXN0Yy1oYXNoIgp2ZXJzaW9uID0gIjIuMS4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjM1NzcwM2Q0MTM2NWI0YjI3YzU5MGUzZWQ5MWVhYmIxYjY2M2YwN2M0YzA4NDA5NWU2MGNiZWQ0MzYyZGZmMGQiCgpbW3BhY2thZ2VdXQpuYW1lID0gInJ1c3RjX3ZlcnNpb24iCnZlcnNpb24gPSAiMC40LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiY2ZjYjNhMjJlZjQ2ZTg1YjQ1ZGU2ZWU3ZTc5ZDA2MzMxOWViYjY1OTRmYWFmY2YxYzIyNWVhOTJhYjZlOWI5MiIKZGVwZW5kZW5jaWVzID0gWwogInNlbXZlciIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicnVzdGljYXRhLW1hY3JvcyIKdmVyc2lvbiA9ICI0LjEuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmYWYwYzRhNmVjZTk5NTBiOWFiZGI2MmIxY2ZjZjJhNjhiM2I2N2ExMGJhNDQ1YjNiYjg1YmUyYTI5M2QwNjMyIgpkZXBlbmRlbmNpZXMgPSBbCiAibm9tIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJydXN0bHMiCnZlcnNpb24gPSAiMC4yMy4zNyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3NTgwMjVjYjVmY2NmZDNiYzJmZDc0NzA4ZmQ0NjgyYmU0MWQ5OWU1ZGZmNzNjMzc3YzA2NDZjNjAxMmM3M2E0IgpkZXBlbmRlbmNpZXMgPSBbCiAib25jZV9jZWxsIiwKICJyaW5nIiwKICJydXN0bHMtcGtpLXR5cGVzIiwKICJydXN0bHMtd2VicGtpIiwKICJzdWJ0bGUiLAogInplcm9pemUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInJ1c3Rscy1wa2ktdHlwZXMiCnZlcnNpb24gPSAiMS4xNC4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImJlMDQwZjhiMGEyMjVlNDAzNzU4MjJhNTYzZmE5NTI0Mzc4YjlkNjMxMTJmNTNlMTlmZmZmMzRkZjVkMzNmZGQiCmRlcGVuZGVuY2llcyA9IFsKICJ6ZXJvaXplIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJydXN0bHMtd2VicGtpIgp2ZXJzaW9uID0gIjAuMTAzLjkiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDdkZjIzMTA5YWE2YzE1NjdkMWM1NzViOTk1MjU1NjM4OGRhNTc0MDFlNGFjZTFkMTVmNzllZWRhZDBkOGY1MyIKZGVwZW5kZW5jaWVzID0gWwogInJpbmciLAogInJ1c3Rscy1wa2ktdHlwZXMiLAogInVudHJ1c3RlZCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicnVzdHZlcnNpb24iCnZlcnNpb24gPSAiMS4wLjIyIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImIzOWNkZWYwZmE4MDBmYzQ0NTI1Yzg0Y2NiNTRhMDI5OTYxYTgyMTVmOTYxOTc1MzYzNWE5YzBkMjUzOGQ0NmQiCgpbW3BhY2thZ2VdXQpuYW1lID0gInJ1c3R5X2VuZXQiCnZlcnNpb24gPSAiMC40LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTFjMGI0M2UyN2Q4ZDg2YmIzYTE1YjllYWMyMzJiNmQ3OGEwNmFmZWUyNThhOTg2MWRlYjVhMGQxNWI2NWMzMyIKZGVwZW5kZW5jaWVzID0gWwogImpzLXN5cyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAicnl1Igp2ZXJzaW9uID0gIjEuMC4yMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5Nzc0YmE0YTc0ZGU1ZjdiMWMxNDUxZWQ2Y2Q1Mjg1YTMyZWRkYjVjY2NiOGNjNjU1YTRlNTAwMDllMDY0NzdmIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJzY29wZWd1YXJkIgp2ZXJzaW9uID0gIjEuMi4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjk0MTQzZjM3NzI1MTA5ZjkyYzI2MmVkMmNmNWU1OWJjZTc0OThjMDFiY2MxNTAyZDdiOWFmZTQzOWE0ZTlmNDkiCgpbW3BhY2thZ2VdXQpuYW1lID0gInNkcCIKdmVyc2lvbiA9ICIwLjE3LjEiCnNvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvd2VicnRjLXJzLmdpdD9yZXY9Yzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSNjOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5IgpkZXBlbmRlbmNpZXMgPSBbCiAicmFuZCIsCiAic3Vic3RyaW5nIiwKICJ0aGlzZXJyb3IgMS4wLjY5IiwKICJ1cmwiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInNkcC10eXBlcyIKdmVyc2lvbiA9ICIwLjEuOCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5YmI2YzYzNmFjZTIwZGU3M2ZiOTUzNjAxN2Y5ZWYwNjliMjU4MzA4YTZjMzQxYTRhYWYzZDJmZDExYWZjNTcwIgpkZXBlbmRlbmNpZXMgPSBbCiAiYnN0ciIsCiAiZmFsbGlibGUtaXRlcmF0b3IiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInNlYzEiCnZlcnNpb24gPSAiMC43LjMiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDNlOTdhNTY1Zjc2MjMzYTYwMDNmOWY1YzU0YmUxZDljNWJkZmEzZWNjZmIxODk0NjlmMTFlYzQ5MDFjNDdkYyIKZGVwZW5kZW5jaWVzID0gWwogImJhc2UxNmN0IiwKICJkZXIiLAogImdlbmVyaWMtYXJyYXkiLAogInBrY3M4IiwKICJzdWJ0bGUiLAogInplcm9pemUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInNlbXZlciIKdmVyc2lvbiA9ICIxLjAuMjciCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDc2N2ViMGFhYmM4ODBiMjk5NTZjMzU3MzQxNzBmMjZlZDU1MWE4NTlkYmQzNjFkMTQwY2RiZWNhNjFhYjFlMiIKCltbcGFja2FnZV1dCm5hbWUgPSAic2VyZGUiCnZlcnNpb24gPSAiMS4wLjIyOCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5YThlOTRlYTdmMzc4YmQzMmNiYmQzNzE5OGE0YTkxNDM2MTgwYzViYjQ3MjQxMWU0OGI1ZWMyZTIxMjRhZTllIgpkZXBlbmRlbmNpZXMgPSBbCiAic2VyZGVfY29yZSIsCiAic2VyZGVfZGVyaXZlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJzZXJkZV9jb3JlIgp2ZXJzaW9uID0gIjEuMC4yMjgiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNDFkMzg1YzdkNGNhNThlNTlmYzczMmFmMjVjMzk4M2I2N2FjODUyYzFhMjUwMDBhZmUxMTc1ZGU0NThiNjdhZCIKZGVwZW5kZW5jaWVzID0gWwogInNlcmRlX2Rlcml2ZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAic2VyZGVfZGVyaXZlIgp2ZXJzaW9uID0gIjEuMC4yMjgiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDU0MGYyMjBkMzE4NzE3M2RhMjIwZjg4NWFiNjY2MDgzNjdiNjU3NGU5MjUwMTFhOTM1M2U0YmFkZGE5MWQ3OSIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJzZXJkZV9qc29uIgp2ZXJzaW9uID0gIjEuMC4xNDkiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiODNmYzAzOTQ3M2M1NTk1YWNlODYwZDhjNGZhZmEyMjBmZjQ3NGIzZmM2YmZkYjQyOTMzMjdmMWEzN2U5NGQ4NiIKZGVwZW5kZW5jaWVzID0gWwogIml0b2EiLAogIm1lbWNociIsCiAic2VyZGUiLAogInNlcmRlX2NvcmUiLAogInptaWoiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInNlcmRlX3VybGVuY29kZWQiCnZlcnNpb24gPSAiMC43LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDM0OTFjMTQ3MTVjYTIyOTRjNGQ2YTg4ZjE1ZTg0NzM5Nzg4YzFkMDMwZWVkOGMxMTA0MzZhYWZkYWEyZjNmZCIKZGVwZW5kZW5jaWVzID0gWwogImZvcm1fdXJsZW5jb2RlZCIsCiAiaXRvYSIsCiAicnl1IiwKICJzZXJkZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAic2hhMSIKdmVyc2lvbiA9ICIwLjEwLjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTNiZjgyOWEyZDUxYWI0YTVkZGYxMzUyZDg0NzBjMTQwY2FkYzgzMDFiMmFlMTc4OWRiMDIzZjAxY2VkZDZiYSIKZGVwZW5kZW5jaWVzID0gWwogImNmZy1pZiIsCiAiY3B1ZmVhdHVyZXMiLAogImRpZ2VzdCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAic2hhMiIKdmVyc2lvbiA9ICIwLjEwLjkiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYTc1MDdkODE5NzY5ZDAxYTM2NWFiNzA3Nzk0YTQwODQzOTJjODI0ZjU0YTdhNmE3ODYyZjhjM2QwODkyYjI4MyIKZGVwZW5kZW5jaWVzID0gWwogImNmZy1pZiIsCiAiY3B1ZmVhdHVyZXMiLAogImRpZ2VzdCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAic2hhcmRlZC1zbGFiIgp2ZXJzaW9uID0gIjAuMS43Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImY0MGNhM2M0NjgyMzcxM2UwZDQyMDk1OTJlOGQ2ZTgyNmFhNTdlOTI4ZjA5NzUyNjE5ZmM2OTZjNDk5NjM3ZjYiCmRlcGVuZGVuY2llcyA9IFsKICJsYXp5X3N0YXRpYyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAic2hsZXgiCnZlcnNpb24gPSAiMS4zLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMGZkYTJmZjBkMDg0MDE5YmE0ZDdjNmYzNzFjOTVkOGZkNzVjZTM1MjRjM2NiOGZiNjUzYTMwMjNmNjMyM2U2NCIKCltbcGFja2FnZV1dCm5hbWUgPSAic2lnbmFsLWhvb2stcmVnaXN0cnkiCnZlcnNpb24gPSAiMS40LjgiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYzRkYjY5Y2JhMTExMGFmZmMwZTlmN2JjZDQ4YmJmODdiM2Y0ZmM3YzYxZmM5MTU1YWZkNGM0NjllYjNkNmMxYiIKZGVwZW5kZW5jaWVzID0gWwogImVycm5vIiwKICJsaWJjIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJzaWduYXR1cmUiCnZlcnNpb24gPSAiMi4yLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNzc1NDkzOTk1NTJkZTQ1YTg5OGE1ODBjMWI0MWQ0NDViZjczMGRmODY3Y2M0NGU2YzAyMzNiYmM0YjgzMjlkZSIKZGVwZW5kZW5jaWVzID0gWwogImRpZ2VzdCIsCiAicmFuZF9jb3JlIDAuNi40IiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJzaW1kLWFkbGVyMzIiCnZlcnNpb24gPSAiMC4zLjgiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTMyMGE2YzVhZDMxZDI3MWFkNTIzZGNmM2FkMTNlMjc2N2FkOGIxY2I4ZjA0N2Y3NWE4YWVhZjhkYTEzOWRhMiIKCltbcGFja2FnZV1dCm5hbWUgPSAic2ltZHV0ZjgiCnZlcnNpb24gPSAiMC4xLjUiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTNhOWZlMzRlM2U3YTUwMzE2MDYwMzUxZjM3MTg3YTNmNTQ2YmNlOTU0OTYxNTY3NTRiNjAxYTVmYTcxYjc2ZSIKCltbcGFja2FnZV1dCm5hbWUgPSAic2xhYiIKdmVyc2lvbiA9ICIwLjQuMTIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMGM3OTBkZTIzMTI0ZjlhYjQ0NTQ0ZDdhYzA1ZDYwNDQwYWRjNTg2NDc5Y2U1MDFjMWQ2ZDdkYTNjZDhjOWNmNSIKCltbcGFja2FnZV1dCm5hbWUgPSAic21hbGx2ZWMiCnZlcnNpb24gPSAiMS4xNS4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjY3YjFiN2EzYjVmZTRmMTM3Njg4NzE4NDA0NWZjZjQ1YzY5ZTkyYWY3MzRiN2FhZGRjMDVmYjc3N2I2ZmJkMDMiCgpbW3BhY2thZ2VdXQpuYW1lID0gInNtb2xfc3RyIgp2ZXJzaW9uID0gIjAuMi4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImRkNTM4ZmI2OTEwYWMxMDk5ODUwMjU1Y2Y5NGE5NGRmNjU1MWZiZGQ2MDI0NTQzODdkMGFkYjJkMWNhNmRlYWQiCmRlcGVuZGVuY2llcyA9IFsKICJzZXJkZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAic29ja2V0MiIKdmVyc2lvbiA9ICIwLjUuMTAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTIyMzc2YWJlZDM1MGQ3M2RkMWNkMTE5YjU3ZmZjY2FkOTViNGU1ODVhN2NkYTQzZTI4NjI0NWNlMjNjMDY3OCIKZGVwZW5kZW5jaWVzID0gWwogImxpYmMiLAogIndpbmRvd3Mtc3lzIDAuNTIuMCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAic29ja2V0MiIKdmVyc2lvbiA9ICIwLjYuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI4NmY0YWEzYWQ5OWYyMDg4Yzk5MGRmYTgyZDM2N2UxOWNiMjkyNjhlZDY3YzU3NGQxMGQwYTRiZmU3MWYwN2UwIgpkZXBlbmRlbmNpZXMgPSBbCiAibGliYyIsCiAid2luZG93cy1zeXMgMC42MC4yIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJzcGtpIgp2ZXJzaW9uID0gIjAuNy4zIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImQ5MWVkNmM4NThiMDFmOTQyY2Q1NmIzN2E5NGIzZTBhMTc5ODI5MDMyN2QxMjM2ZTRkOWNmNGVhY2E0NGQyOWQiCmRlcGVuZGVuY2llcyA9IFsKICJiYXNlNjRjdCIsCiAiZGVyIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJzdGFibGVfZGVyZWZfdHJhaXQiCnZlcnNpb24gPSAiMS4yLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNmNlMmJlOGRjMjU0NTVlMWY5MWRmNzFiZmExMmFkMzdkN2FmMTA5MmFlNzM2ZjNhNmNkMGUzN2JjNzgxMDU5NiIKCltbcGFja2FnZV1dCm5hbWUgPSAic3RyZWFtZXIiCnZlcnNpb24gPSAiMi4xMC4wIgpkZXBlbmRlbmNpZXMgPSBbCiAiYW55aG93IiwKICJhc3luYy10cmFpdCIsCiAiYnl0ZXMiLAogImNvbW1vbiIsCiAibG9nIiwKICJtb29ubGlnaHQtY29tbW9uIiwKICJudW0iLAogIm51bS1kZXJpdmUiLAogIm51bS10cmFpdHMiLAogInNlcmRlX2pzb24iLAogInRoaXNlcnJvciAyLjAuMTgiLAogInRva2lvIiwKICJ0cmFjaW5nIiwKICJ0cmFjaW5nLXN1YnNjcmliZXIiLAogIndlYnJ0YyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAic3Ryc2ltIgp2ZXJzaW9uID0gIjAuMTEuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3ZGE4YjU3MzY4NDVkOWYyZmNiODM3ZWE1ZDllMjYyODU2NGIzYjA0M2E3MDk0OGEzZjBiNzc4ODM4YzVmYjRmIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJzdHVuIgp2ZXJzaW9uID0gIjAuMTcuMSIKc291cmNlID0gImdpdCtodHRwczovL2dpdGh1Yi5jb20vTXJDcmVhdGl2MzAwMS93ZWJydGMtcnMuZ2l0P3Jldj1jOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5I2M5Njc1ZTIyMjI0NWU5NWMwNTZlMmRjYzAxOTVmYjA3NmZmYTliODkiCmRlcGVuZGVuY2llcyA9IFsKICJiYXNlNjQiLAogImNyYyIsCiAibGF6eV9zdGF0aWMiLAogIm1kLTUiLAogInJhbmQiLAogInJpbmciLAogInN1YnRsZSIsCiAidGhpc2Vycm9yIDEuMC42OSIsCiAidG9raW8iLAogInVybCIsCiAid2VicnRjLXV0aWwiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInN1YnN0cmluZyIKdmVyc2lvbiA9ICIxLjQuNSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0MmVlNjQzM2VjZWYyMTNiMmU3MmY1ODdlZjY0YTJmNTk0M2U3Y2QxNmZiZDgyZGJlOGJjMDc0ODZjNTM0Yzg2IgpkZXBlbmRlbmNpZXMgPSBbCiAiYXV0b2NmZyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAic3VidGxlIgp2ZXJzaW9uID0gIjIuNi4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjEzYzJiZGRlY2M1N2IzODRkZWUxODY1MjM1OGZiMjMxNzJmYWNiOGEyYzUxY2NjMTBkNzRjMTU3YmRlYTMyOTIiCgpbW3BhY2thZ2VdXQpuYW1lID0gInN5biIKdmVyc2lvbiA9ICIyLjAuMTE3Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImU2NjViODgwM2U3YjFkMmE3MjdmNDAyMzQ1NmJiYmJlNzRkYTY3MDk5YzU4NTI1OGFmMGFkOWM1MDEzYjliOTkiCmRlcGVuZGVuY2llcyA9IFsKICJwcm9jLW1hY3JvMiIsCiAicXVvdGUiLAogInVuaWNvZGUtaWRlbnQiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInN5bnN0cnVjdHVyZSIKdmVyc2lvbiA9ICIwLjEzLjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNzI4YTcwZjNkYmFmNWJhYjdmMGM0YjFhYzhkN2FlNWVhNjBhNGI1NTQ5YzhhNTkxNDM2MWM5OTE0N2E3MDlkMiIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ0ZXJtY29sb3IiCnZlcnNpb24gPSAiMS40LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMDY3OTRmOGY2YzVjODk4YjMyNzVhZWJlZmE2YjhhMWNiMjRjZDJjNmM3OTM5N2FiMTU3NzQ4MzdhMGJjNTc1NSIKZGVwZW5kZW5jaWVzID0gWwogIndpbmFwaS11dGlsIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ0aGlzZXJyb3IiCnZlcnNpb24gPSAiMS4wLjY5Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImI2YWFmNTMzOWI1NzhlYTg1YjUwZTA4MGZlYjI1MGEzZThhZThjZmNkZmY5YTQ2MWM5ZWMyOTA0YmM5MjNmNTIiCmRlcGVuZGVuY2llcyA9IFsKICJ0aGlzZXJyb3ItaW1wbCAxLjAuNjkiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInRoaXNlcnJvciIKdmVyc2lvbiA9ICIyLjAuMTgiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNDI4OGI1YmNiYzc5MjBjMDdhMTE0OWEzNWNmOTU5MGEyYWE4MDhlMGJjMWVhZmFhZGUwYjgwOTQ3ODY1ZmJjNCIKZGVwZW5kZW5jaWVzID0gWwogInRoaXNlcnJvci1pbXBsIDIuMC4xOCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidGhpc2Vycm9yLWltcGwiCnZlcnNpb24gPSAiMS4wLjY5Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjRmZWU2YzRlZmM5MDA1OWUxMGY4MWU2ZDQyYzYwYTE4Zjc2NTg4YzNkNzRjYjgzYTBiMjQyYTJiNmM3NTA0YzEiCmRlcGVuZGVuY2llcyA9IFsKICJwcm9jLW1hY3JvMiIsCiAicXVvdGUiLAogInN5biIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidGhpc2Vycm9yLWltcGwiCnZlcnNpb24gPSAiMi4wLjE4Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImViYzRlZTdmNjc2NzBlOWI2NGQwNWZhNDI1M2U3NTNlMDE2YzZjOTVmZjM1Yjg5Yjc5NDFkNmI4NTZkZWMxZDUiCmRlcGVuZGVuY2llcyA9IFsKICJwcm9jLW1hY3JvMiIsCiAicXVvdGUiLAogInN5biIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidGhyZWFkLWlkIgp2ZXJzaW9uID0gIjUuMS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjIwMTBkMjdhZGQzZjMyNDBjMWZlZjc5NTlmNDZjODE0NDg3YjIxNmJhZWU2NjJhZjUzYmU2NDViYTc4MzFjMDciCmRlcGVuZGVuY2llcyA9IFsKICJsaWJjIiwKICJ3aW5kb3dzLXN5cyAwLjYxLjIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInRocmVhZF9sb2NhbCIKdmVyc2lvbiA9ICIxLjEuOSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmNjAyNDZhNDk0NGYyNGY2ZTAxOGFhMTdjZGVmZmI3ODE4Yjc2MzU2OTY1ZDAzYjA3ZDZhOTg4NmU4OTYyMTg1IgpkZXBlbmRlbmNpZXMgPSBbCiAiY2ZnLWlmIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ0aW1lIgp2ZXJzaW9uID0gIjAuMy40NyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3NDNiZDQ4YzI4M2FmYzAzODhmOWI4ODI3Yjk3NjkwNWZiMjE3YWQ5ZTY0N2ZhZTNhMzc5YTkyODNjNGRlZjJjIgpkZXBlbmRlbmNpZXMgPSBbCiAiZGVyYW5nZWQiLAogIml0b2EiLAogIm51bS1jb252IiwKICJwb3dlcmZtdCIsCiAic2VyZGVfY29yZSIsCiAidGltZS1jb3JlIiwKICJ0aW1lLW1hY3JvcyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidGltZS1jb3JlIgp2ZXJzaW9uID0gIjAuMS44Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjc2OTRlMWNmZTc5MWY4ZDMxMDI2OTUyYWJmMDljNjljYTZmNmZhNGUxYTEyMjllMTg5ODhmMDZhMDRhMTJkY2EiCgpbW3BhY2thZ2VdXQpuYW1lID0gInRpbWUtbWFjcm9zIgp2ZXJzaW9uID0gIjAuMi4yNyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIyZTcwZTRjNWEwZTBhOGE0ODIzYWQ2NWRmZTFhNjkzMGU0ZjRkNzU2ZGNkOWRkNzkzOTAyMmI1ZThjNTAxMjE1IgpkZXBlbmRlbmNpZXMgPSBbCiAibnVtLWNvbnYiLAogInRpbWUtY29yZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidGlueXN0ciIKdmVyc2lvbiA9ICIwLjguMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0MmQzZTljNDVjMDlkZTE1ZDA2ZGQ4YWNmNWY0ZTBlMzk5ZTg1OTI3YjdmMDA3MTEwMjRlYjdhZTEwZmE0ODY5IgpkZXBlbmRlbmNpZXMgPSBbCiAiZGlzcGxheWRvYyIsCiAiemVyb3ZlYyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidGlueXZlYyIKdmVyc2lvbiA9ICIxLjEwLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYmZhNWZkYzNiY2U2MTkxYTFkYmM4YzAyZDVjOGJmZmNmNTU3YmFmYTE3YzEyNGM1MjY0YTQ1OGYxYjA2MTNmYSIKZGVwZW5kZW5jaWVzID0gWwogInRpbnl2ZWNfbWFjcm9zIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ0aW55dmVjX21hY3JvcyIKdmVyc2lvbiA9ICIwLjEuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxZjNjY2JhYzMxMWZlYTA1Zjg2ZjYxOTA0YjQ2MmI1NWZiM2RmODgzN2EzNjZkZmM2MDFhMDE2MWQwNTMyZjIwIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJ0b2tpbyIKdmVyc2lvbiA9ICIxLjUwLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMjdhZDVlMzQzNzRlMDNjZmZmZWZjMzAxYmVjYjQ0ZTlkYzNjMTc1ODRmNDE0MzQ5ZWJlMjllZDI2NjYxODIyZCIKZGVwZW5kZW5jaWVzID0gWwogImJ5dGVzIiwKICJsaWJjIiwKICJtaW8iLAogInBhcmtpbmdfbG90IiwKICJwaW4tcHJvamVjdC1saXRlIiwKICJzaWduYWwtaG9vay1yZWdpc3RyeSIsCiAic29ja2V0MiAwLjYuMiIsCiAidG9raW8tbWFjcm9zIiwKICJ3aW5kb3dzLXN5cyAwLjYxLjIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInRva2lvLW1hY3JvcyIKdmVyc2lvbiA9ICIyLjYuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI1YzU1YTJlZmY4YjY5Y2U2NmM4NGY4NWUxZGExYzIzM2VkYzM2Y2ViODVhMjA1OGQxMWIwZDZhM2M3ZTc1NjljIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInRva2lvLW9wZW5zc2wiCnZlcnNpb24gPSAiMC42LjUiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNTlkZjY4NDljYWE0M2JiNzU2N2Y5YTM2Zjg2M2M0NDdkOTVhMTFkNTkwM2M5Y2MzMzRiYTMyNTc2YTI3ZWFkZCIKZGVwZW5kZW5jaWVzID0gWwogIm9wZW5zc2wiLAogIm9wZW5zc2wtc3lzIiwKICJ0b2tpbyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidG9raW8tcnVzdGxzIgp2ZXJzaW9uID0gIjAuMjYuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxNzI5YWE5NDVmMjlkOTFiYTU0MTI1OGM4ZGY4OTAyN2Q1NzkyZDg1YTg4NDFmYjY1ZThiZjBmNGVkZTRlZjYxIgpkZXBlbmRlbmNpZXMgPSBbCiAicnVzdGxzIiwKICJ0b2tpbyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidG9raW8tdXRpbCIKdmVyc2lvbiA9ICIwLjcuMTgiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOWFlOWNlYzgwNWIwMWU4ZmMzZmQyZmUyODlmODkxNDlhOWI2NmRkMTY3ODZhYmQ4YjE5Y2ZhN2I0OGNiMDA5OCIKZGVwZW5kZW5jaWVzID0gWwogImJ5dGVzIiwKICJmdXR1cmVzLWNvcmUiLAogImZ1dHVyZXMtc2luayIsCiAicGluLXByb2plY3QtbGl0ZSIsCiAidG9raW8iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInRvd2VyLXNlcnZpY2UiCnZlcnNpb24gPSAiMC4zLjMiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOGRmOWI2ZTEzZjJkMzJjOTFiOWJkNzE5YzAwZDE5NTg4MzdiYzdkZWM0NzRkOTQ5NTI3OThjYzhlNjllZWVjMyIKCltbcGFja2FnZV1dCm5hbWUgPSAidHJhY2luZyIKdmVyc2lvbiA9ICIwLjEuNDQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNjNlNzE2NjJmYTRiMmEyYzNhMjZmNTcwZjAzN2ViOTViYjFmODUzOTdmM2NkODA3NmNhZWQyZjAyNmE2ZDEwMCIKZGVwZW5kZW5jaWVzID0gWwogImxvZyIsCiAicGluLXByb2plY3QtbGl0ZSIsCiAidHJhY2luZy1hdHRyaWJ1dGVzIiwKICJ0cmFjaW5nLWNvcmUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInRyYWNpbmctYWN0aXgtd2ViIgp2ZXJzaW9uID0gIjAuNy4yMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxY2E2YjE1NDA3ZjliZmNiMzVmODJkMGU3OWU2MDNlMTYyOWVjZTRlOTFjYzZkOWU1OGY4OTBjMTg0ZGQyMGFmIgpkZXBlbmRlbmNpZXMgPSBbCiAiYWN0aXgtd2ViIiwKICJtdXR1YWxseV9leGNsdXNpdmVfZmVhdHVyZXMiLAogInBpbi1wcm9qZWN0IiwKICJ0cmFjaW5nIiwKICJ1dWlkIDEuMjIuMCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidHJhY2luZy1hcHBlbmRlciIKdmVyc2lvbiA9ICIwLjIuNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3ODZkNDgwYmNlNjI0N2FiNzVmMDA1YjE0YWUxNjI0YWQ5NzhkMzAyOWQ5MTEzZjBhMjJmYTFhYzc3M2ZhZWFmIgpkZXBlbmRlbmNpZXMgPSBbCiAiY3Jvc3NiZWFtLWNoYW5uZWwiLAogInRoaXNlcnJvciAyLjAuMTgiLAogInRpbWUiLAogInRyYWNpbmctc3Vic2NyaWJlciIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidHJhY2luZy1hdHRyaWJ1dGVzIgp2ZXJzaW9uID0gIjAuMS4zMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3NDkwY2ZhNWVjOTYzNzQ2NTY4NzQwNjUxYWM2NzgxZjcwMWM5YzVlYTI1N2M1OGUwNTdmM2JhOGNmNjllOGRhIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInRyYWNpbmctY29yZSIKdmVyc2lvbiA9ICIwLjEuMzYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZGI5N2NhZjlkOTA2ZmJkZTU1NWRkNjJmYTk1ZGRiYTllZWNmZDE0Y2IzODhlNGY0OTFhNjZkNzRjZDVmYjc5YSIKZGVwZW5kZW5jaWVzID0gWwogIm9uY2VfY2VsbCIsCiAidmFsdWFibGUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInRyYWNpbmctbG9nIgp2ZXJzaW9uID0gIjAuMi4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImVlODU1ZjFmNDAwYmQwZTVjMDJkMTUwYWU1ZGUzODQwMDM5YTNmNTRiMDI1MTU2NDA0ZTM0YzIzYzAzZjQ3YzMiCmRlcGVuZGVuY2llcyA9IFsKICJsb2ciLAogIm9uY2VfY2VsbCIsCiAidHJhY2luZy1jb3JlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ0cmFjaW5nLXN1YnNjcmliZXIiCnZlcnNpb24gPSAiMC4zLjIyIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjJmMzAxNDM4MjdkZGFiMGQyNTZmZDg0M2I3YTY2ZDE2NGU5ZjI3MWNmYTBkZGU0OTE0MmM1Y2EwY2EyOTFmMWUiCmRlcGVuZGVuY2llcyA9IFsKICJtYXRjaGVycyIsCiAibnUtYW5zaS10ZXJtIiwKICJvbmNlX2NlbGwiLAogInJlZ2V4LWF1dG9tYXRhIiwKICJzaGFyZGVkLXNsYWIiLAogInNtYWxsdmVjIiwKICJ0aHJlYWRfbG9jYWwiLAogInRyYWNpbmciLAogInRyYWNpbmctY29yZSIsCiAidHJhY2luZy1sb2ciLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInRyeS1sb2NrIgp2ZXJzaW9uID0gIjAuMi41Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImU0MjFhYmFkZDQxYTQyMjUyNzU1MDRlYTRkNjU2NjkyMzQxOGI3ZjA1NTA2ZmJjOWMwZmU4NmJhNzM5NjExNGIiCgpbW3BhY2thZ2VdXQpuYW1lID0gInRzLXJzIgp2ZXJzaW9uID0gIjExLjEuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0OTk0YWNlYTI1MjJjZDJiM2I4NWMxZDk1MjlhNTU5OTFlM2FkNWUyNWNkY2QzZGU5ZDUwNTk3MmM0Mzc5NDI0IgpkZXBlbmRlbmNpZXMgPSBbCiAidGhpc2Vycm9yIDIuMC4xOCIsCiAidHMtcnMtbWFjcm9zIiwKICJ1dWlkIDEuMjIuMCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidHMtcnMtbWFjcm9zIgp2ZXJzaW9uID0gIjExLjEuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJlZTZmZjU5NjY2YzljYmFlYzM1MzM5NjQ1MDVkMzkxNTRkYzRlMGE1NjE1MWZkZWEzMGEwOWVkMDMwMWY2MmUyIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLAogInRlcm1jb2xvciIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidHVybiIKdmVyc2lvbiA9ICIwLjE3LjEiCnNvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvd2VicnRjLXJzLmdpdD9yZXY9Yzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSNjOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5IgpkZXBlbmRlbmNpZXMgPSBbCiAiYXN5bmMtdHJhaXQiLAogImJhc2U2NCIsCiAiZnV0dXJlcyIsCiAibG9nIiwKICJtZC01IiwKICJwb3J0YWJsZS1hdG9taWMiLAogInJhbmQiLAogInJpbmciLAogInN0dW4iLAogInRoaXNlcnJvciAxLjAuNjkiLAogInRva2lvIiwKICJ0b2tpby11dGlsIiwKICJ3ZWJydGMtdXRpbCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidHlwZW51bSIKdmVyc2lvbiA9ICIxLjE5LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNTYyZDQ4MTA2NmJkZTA2NTgyNzZhMzU0NjdjNGFmMDBiZGM2ZWU3MjYzMDU2OThhNTViODZlNjFkN2FkODJiYiIKCltbcGFja2FnZV1dCm5hbWUgPSAidW5pY2FzZSIKdmVyc2lvbiA9ICIyLjkuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJkYmM0YmMzYTlmNzQ2ZDg2MmM0NWNiODlkNzA1YWExMGYxODdiYjk2Yzc2MDAxYWZhYjA3YTBkMzVjZTYwMTQyIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJ1bmljb2RlLWlkZW50Igp2ZXJzaW9uID0gIjEuMC4yNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJlNmU0MzEzY2Q1ZmNkM2RhZDVjYWZhMTc5NzAyZTJiMjQ0Zjc2MDk5MWY0NTM5N2QxNGQ0ZWJmMzgyNDdkYTc1IgoKW1twYWNrYWdlXV0KbmFtZSA9ICJ1bmljb2RlLXNlZ21lbnRhdGlvbiIKdmVyc2lvbiA9ICIxLjEyLjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZjZjY2YyNTEyMTIxMTRiNTQ0MzNlYzk0OWZkNmE3ODQxMjc1ZjlhZGEyMGRkZGQyZjI5ZTljZWVhNDUwMTQ5MyIKCltbcGFja2FnZV1dCm5hbWUgPSAidW5pY29kZS14aWQiCnZlcnNpb24gPSAiMC4yLjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZWJjMWMwNGM3MTUxMGM3ZjcwMmI1MmI3YzM1MDczNGM5ZmYxMjk1YzQ2NGEwMzMzNWIwMGJiODRmYzU0Zjg1MyIKCltbcGFja2FnZV1dCm5hbWUgPSAidW5pdmVyc2FsLWhhc2giCnZlcnNpb24gPSAiMC41LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZmMxZGUyYzY4OGRjMTUzMDU5ODhiNTYzYzM4NTQwNjQwNDMzNTYwMTlmOTdhNGI0NjI3NmZlNzM0YzRmMDdlYSIKZGVwZW5kZW5jaWVzID0gWwogImNyeXB0by1jb21tb24iLAogInN1YnRsZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidW50cnVzdGVkIgp2ZXJzaW9uID0gIjAuOS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjhlY2I2ZGEyOGI4YTM1MWQ3NzNiNjhkNTgyNWFjMzkwMTdlNjgwNzUwZjk4MGYzYTFhODVjZDhkZDI4YTQ3YzEiCgpbW3BhY2thZ2VdXQpuYW1lID0gInVybCIKdmVyc2lvbiA9ICIyLjUuOCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJmZjY3YThhNDM5NzM3M2MzZWY2NjA4MTJhY2FiMzI2ODIyMjAzNTAxMGFiODY4MGVjNDIxNWYzOGJhM2QwZWVkIgpkZXBlbmRlbmNpZXMgPSBbCiAiZm9ybV91cmxlbmNvZGVkIiwKICJpZG5hIiwKICJwZXJjZW50LWVuY29kaW5nIiwKICJzZXJkZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidXRmOF9pdGVyIgp2ZXJzaW9uID0gIjEuMC40Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImI2YzE0MDYyMGU3ZmZiYjIyYzJkZWU1OWNhZmU2MDg0YTU5YjVmZmMyN2E4ODU5YTVmMGQ0OTRiNWQ1MmI2YmUiCgpbW3BhY2thZ2VdXQpuYW1lID0gInV0ZjhwYXJzZSIKdmVyc2lvbiA9ICIwLjIuMiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIwNmFiZGUzNjExNjU3YWRmNjZkMzgzZjAwYjA5M2Q3ZmFlY2M3ZmE1NzA3MWNjZTI1Nzg2NjBjOWYxMDEwODIxIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJ1dWlkIgp2ZXJzaW9uID0gIjAuOC4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImJjNWNmOThkODE4NjI0NDQxNGM4NDgwMTdmMGUyNjc2YjNmY2I0NjgwN2Y2NjY4YTk3ZGZlNjczNTlhM2M0YjciCmRlcGVuZGVuY2llcyA9IFsKICJnZXRyYW5kb20gMC4yLjE3IiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ1dWlkIgp2ZXJzaW9uID0gIjEuMjIuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJhNjhkM2M4ZjAxYzBjZmE1NGE3NTI5MWQ4MzYwMTE2MTc5OWU0YTg5YTM5ZTA5MjlmNGIwMzU0ZDg4NzU3YTM3IgpkZXBlbmRlbmNpZXMgPSBbCiAiZ2V0cmFuZG9tIDAuNC4yIiwKICJqcy1zeXMiLAogIndhc20tYmluZGdlbiIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAidl9odG1sZXNjYXBlIgp2ZXJzaW9uID0gIjAuMTUuOCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0ZTgyNTdmYmM1MTBmMGE0NmViNjAyYzEwMjE1OTAxOTM4YjVjMmE3ZDVlNzBmYzExNDgzYjFkM2M5YjViMThjIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJ2YWx1YWJsZSIKdmVyc2lvbiA9ICIwLjEuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJiYTczZWE5Y2YxNmEyNWRmMGM4Y2FhMTZjNTFhY2I5MzdkNTcxMmE4NDI5ZGI3OGEzZWUyOWQ1ZGNhY2QzYTY1IgoKW1twYWNrYWdlXV0KbmFtZSA9ICJ2Y3BrZyIKdmVyc2lvbiA9ICIwLjIuMTUiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYWNjZDRlYTYyZjdiYjdhODJmZTIzMDY2ZmIwOTU3ZDQ4ZWY2NzdmNmVlYjgyMTVmMzcyZjUyZTQ4YmIzMjQyNiIKCltbcGFja2FnZV1dCm5hbWUgPSAidmVuYXRvciIKdmVyc2lvbiA9ICIxLjEuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0Mzg4ZjUyNWNhMGVkMjEzMGFmYjkyMmRkNzgzY2M1MTY5ZmE3ZjYwODNhOTI4YWQ0NzFiZDBmOTliNTEyNTA1IgpkZXBlbmRlbmNpZXMgPSBbCiAiYmluY29kZSIsCiAic2VyZGUiLAogInRocmVhZC1pZCIsCiAidHJhY2luZyIsCiAidHJhY2luZy1jb3JlIiwKICJ0cmFjaW5nLXN1YnNjcmliZXIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInZlcnNpb25fY2hlY2siCnZlcnNpb24gPSAiMC45LjUiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMGI5MjhmMzNkOTc1ZmM2YWQ5Zjg2YzhmMjgzODUzYWQyNmJkZDViMTBiN2YxNTQyYWEyZmExNWUyMjg5MTA1YSIKCltbcGFja2FnZV1dCm5hbWUgPSAid2FpdGdyb3VwIgp2ZXJzaW9uID0gIjAuMS4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImQxZjUwMDAwYTc4MzQ2N2U2YzAyMDBmOWQxMDY0MmY0YmM0MjRlMzllZmMxYjc3MDIwM2U4OGI0ODhmNzkyOTIiCmRlcGVuZGVuY2llcyA9IFsKICJhdG9taWMtd2FrZXIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIndhbnQiCnZlcnNpb24gPSAiMC4zLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYmZhNzc2MGFlZDE5ZTEwNmRlMmM3YzBiNTgxYjUwOWYyZjI1ZDNkYWNhZjczN2NiODJhYzYxYmM2ZDc2MGIwZSIKZGVwZW5kZW5jaWVzID0gWwogInRyeS1sb2NrIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3YXNpIgp2ZXJzaW9uID0gIjAuMTEuMSt3YXNpLXNuYXBzaG90LXByZXZpZXcxIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImNjZjNlYzY1MWE4NDdlYjAxZGU3M2NjYWQxNWViN2Q5OWY4MDQ4NWRlMDQzZWZiMmYzNzBjZDY1NGY0ZWE0NGIiCgpbW3BhY2thZ2VdXQpuYW1lID0gIndhc2lwMiIKdmVyc2lvbiA9ICIxLjAuMit3YXNpLTAuMi45Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjk1MTdmOTIzOWYwMmMwNjlkYjc1ZTY1ZjE3NGIzZGE4MjhmZTVmNWI5NDVjNGRkMjZiZDI1ZDg5YzAzZWJjZjUiCmRlcGVuZGVuY2llcyA9IFsKICJ3aXQtYmluZGdlbiIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2FzaXAzIgp2ZXJzaW9uID0gIjAuNC4wK3dhc2ktMC4zLjAtcmMtMjAyNi0wMS0wNiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI1NDI4ZjhiZjg4ZWE1ZGRjMDhmYWRkZWYyYWM0YTY3ZTM5MGI4ODE4NmM3MDNjZTZkYmQ5NTVlMWMxNDVhY2E1IgpkZXBlbmRlbmNpZXMgPSBbCiAid2l0LWJpbmRnZW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIndhc20tYmluZGdlbiIKdmVyc2lvbiA9ICIwLjIuMTE0Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjY1MzJmOWE1YzFlY2UzNzk4Y2IxYzJjZmRiYTY0MGI5YjNiYTg4NGY1ZGI0NTk3M2E2ZjQ0MjUxMGE4N2QzOGUiCmRlcGVuZGVuY2llcyA9IFsKICJjZmctaWYiLAogIm9uY2VfY2VsbCIsCiAicnVzdHZlcnNpb24iLAogIndhc20tYmluZGdlbi1tYWNybyIsCiAid2FzbS1iaW5kZ2VuLXNoYXJlZCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2FzbS1iaW5kZ2VuLW1hY3JvIgp2ZXJzaW9uID0gIjAuMi4xMTQiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMThhMmQ1MGZjZjEwNWZiMzNiYjE1ZjAwZTdhNzdiNzcyOTQ1YTJlZTQ1ZGNmNDU0OTYxZmQ4NDNlNzRjMThlNiIKZGVwZW5kZW5jaWVzID0gWwogInF1b3RlIiwKICJ3YXNtLWJpbmRnZW4tbWFjcm8tc3VwcG9ydCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2FzbS1iaW5kZ2VuLW1hY3JvLXN1cHBvcnQiCnZlcnNpb24gPSAiMC4yLjExNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIwM2NlNGNhZWFhYzU0N2NkZjcxM2QyODBlZGEyMmE3MzA4MjRkZDExZTZiOGMzY2E5ZTQyMjQ3YjI1YzYzMWUzIgpkZXBlbmRlbmNpZXMgPSBbCiAiYnVtcGFsbyIsCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLAogIndhc20tYmluZGdlbi1zaGFyZWQiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIndhc20tYmluZGdlbi1zaGFyZWQiCnZlcnNpb24gPSAiMC4yLjExNCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI3NWEzMjZiOGMyMjNlZTE3ODgzYTQyNTE5MDc0NTVhMjQzMWFjYzI3OTFjOThjMjYyNzkzNzY0OTBjMzc4YzE2IgpkZXBlbmRlbmNpZXMgPSBbCiAidW5pY29kZS1pZGVudCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2FzbS1lbmNvZGVyIgp2ZXJzaW9uID0gIjAuMjQ0LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOTkwMDY1ZjJmZTYzMDAzZmUzMzdiOTMyY2ZiNWUzYjgwZTBiNGQwZjVmZjY1MGU2OTg1YjEwNDhmNjJjODMxOSIKZGVwZW5kZW5jaWVzID0gWwogImxlYjEyOGZtdCIsCiAid2FzbXBhcnNlciIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2FzbS1tZXRhZGF0YSIKdmVyc2lvbiA9ICIwLjI0NC4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImJiMGUzNTNlNmEyZmJkYzE3NjkzMmJiYWFiNDkzNzYyZWIxMjU1YTc5MDBmZTBmZWExYTJmOTZjMjk2Y2M5MDkiCmRlcGVuZGVuY2llcyA9IFsKICJhbnlob3ciLAogImluZGV4bWFwIiwKICJ3YXNtLWVuY29kZXIiLAogIndhc21wYXJzZXIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIndhc21wYXJzZXIiCnZlcnNpb24gPSAiMC4yNDQuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI0N2I4MDdjNzJlMWJhYzY5MzgyYjNhNmZiM2RiZThlYTRjMGVkODdmZjU2MjliODY4NWFlNmI5YTYxMTAyOGZlIgpkZXBlbmRlbmNpZXMgPSBbCiAiYml0ZmxhZ3MgMi4xMS4wIiwKICJoYXNoYnJvd24gMC4xNS41IiwKICJpbmRleG1hcCIsCiAic2VtdmVyIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3ZWItc2VydmVyIgp2ZXJzaW9uID0gIjIuMTAuMCIKZGVwZW5kZW5jaWVzID0gWwogImFjdGl4LWZpbGVzIiwKICJhY3RpeC13ZWIiLAogImFjdGl4LXdzIiwKICJhbnlob3ciLAogImFzeW5jLXRyYWl0IiwKICJjbGFwIiwKICJjb21tb24iLAogImZ1dHVyZXMiLAogImZ1dHVyZXMtY29uY3VycmVuY3kiLAogImhleCIsCiAibG9nIiwKICJtb29ubGlnaHQtY29tbW9uIiwKICJvcGVuc3NsIiwKICJwZW0iLAogInNlcmRlIiwKICJzZXJkZV9qc29uIiwKICJzaGEyIiwKICJ0aGlzZXJyb3IgMi4wLjE4IiwKICJ0b2tpbyIsCiAidHJhY2luZyIsCiAidHJhY2luZy1hY3RpeC13ZWIiLAogInRyYWNpbmctYXBwZW5kZXIiLAogInRyYWNpbmctc3Vic2NyaWJlciIsCiAidXVpZCAwLjguMiIsCiAidmVuYXRvciIsCiAid2luZG93cy1zeXMgMC42MS4yIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3ZWJydGMiCnZlcnNpb24gPSAiMC4xNy4xIgpzb3VyY2UgPSAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL3dlYnJ0Yy1ycy5naXQ/cmV2PWM5Njc1ZTIyMjI0NWU5NWMwNTZlMmRjYzAxOTVmYjA3NmZmYTliODkjYzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSIKZGVwZW5kZW5jaWVzID0gWwogImFyYy1zd2FwIiwKICJhc3luYy10cmFpdCIsCiAiYnl0ZXMiLAogImR0bHMiLAogImhleCIsCiAiaW50ZXJjZXB0b3IiLAogImxhenlfc3RhdGljIiwKICJsb2ciLAogInBvcnRhYmxlLWF0b21pYyIsCiAicmFuZCIsCiAicmNnZW4iLAogInJlZ2V4IiwKICJyaW5nIiwKICJydGNwIiwKICJydHAiLAogInNkcCIsCiAic2VyZGUiLAogInNlcmRlX2pzb24iLAogInNoYTIiLAogInNtb2xfc3RyIiwKICJzdHVuIiwKICJ0aGlzZXJyb3IgMS4wLjY5IiwKICJ0b2tpbyIsCiAidHVybiIsCiAidW5pY2FzZSIsCiAidXJsIiwKICJ3YWl0Z3JvdXAiLAogIndlYnJ0Yy1kYXRhIiwKICJ3ZWJydGMtaWNlIiwKICJ3ZWJydGMtbWRucyIsCiAid2VicnRjLW1lZGlhIiwKICJ3ZWJydGMtc2N0cCIsCiAid2VicnRjLXNydHAiLAogIndlYnJ0Yy11dGlsIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3ZWJydGMtZGF0YSIKdmVyc2lvbiA9ICIwLjE3LjEiCnNvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvd2VicnRjLXJzLmdpdD9yZXY9Yzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSNjOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5IgpkZXBlbmRlbmNpZXMgPSBbCiAiYnl0ZXMiLAogImxvZyIsCiAicG9ydGFibGUtYXRvbWljIiwKICJ0aGlzZXJyb3IgMS4wLjY5IiwKICJ0b2tpbyIsCiAid2VicnRjLXNjdHAiLAogIndlYnJ0Yy11dGlsIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3ZWJydGMtaWNlIgp2ZXJzaW9uID0gIjAuMTcuMSIKc291cmNlID0gImdpdCtodHRwczovL2dpdGh1Yi5jb20vTXJDcmVhdGl2MzAwMS93ZWJydGMtcnMuZ2l0P3Jldj1jOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5I2M5Njc1ZTIyMjI0NWU5NWMwNTZlMmRjYzAxOTVmYjA3NmZmYTliODkiCmRlcGVuZGVuY2llcyA9IFsKICJhcmMtc3dhcCIsCiAiYXN5bmMtdHJhaXQiLAogImNyYyIsCiAibG9nIiwKICJwb3J0YWJsZS1hdG9taWMiLAogInJhbmQiLAogInNlcmRlIiwKICJzZXJkZV9qc29uIiwKICJzdHVuIiwKICJ0aGlzZXJyb3IgMS4wLjY5IiwKICJ0b2tpbyIsCiAidHVybiIsCiAidXJsIiwKICJ1dWlkIDEuMjIuMCIsCiAid2FpdGdyb3VwIiwKICJ3ZWJydGMtbWRucyIsCiAid2VicnRjLXV0aWwiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIndlYnJ0Yy1tZG5zIgp2ZXJzaW9uID0gIjAuMTcuMSIKc291cmNlID0gImdpdCtodHRwczovL2dpdGh1Yi5jb20vTXJDcmVhdGl2MzAwMS93ZWJydGMtcnMuZ2l0P3Jldj1jOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5I2M5Njc1ZTIyMjI0NWU5NWMwNTZlMmRjYzAxOTVmYjA3NmZmYTliODkiCmRlcGVuZGVuY2llcyA9IFsKICJsb2ciLAogInNvY2tldDIgMC41LjEwIiwKICJ0aGlzZXJyb3IgMS4wLjY5IiwKICJ0b2tpbyIsCiAid2VicnRjLXV0aWwiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIndlYnJ0Yy1tZWRpYSIKdmVyc2lvbiA9ICIwLjE3LjEiCnNvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvd2VicnRjLXJzLmdpdD9yZXY9Yzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSNjOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5IgpkZXBlbmRlbmNpZXMgPSBbCiAiYnl0ZW9yZGVyIiwKICJieXRlcyIsCiAicmFuZCIsCiAicnRwIiwKICJ0aGlzZXJyb3IgMS4wLjY5IiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3ZWJydGMtc2N0cCIKdmVyc2lvbiA9ICIwLjE3LjEiCnNvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvd2VicnRjLXJzLmdpdD9yZXY9Yzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSNjOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5IgpkZXBlbmRlbmNpZXMgPSBbCiAiYXJjLXN3YXAiLAogImFzeW5jLXRyYWl0IiwKICJieXRlcyIsCiAiY3JjIiwKICJsb2ciLAogInBvcnRhYmxlLWF0b21pYyIsCiAicmFuZCIsCiAidGhpc2Vycm9yIDEuMC42OSIsCiAidG9raW8iLAogIndlYnJ0Yy11dGlsIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3ZWJydGMtc3J0cCIKdmVyc2lvbiA9ICIwLjE3LjEiCnNvdXJjZSA9ICJnaXQraHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvd2VicnRjLXJzLmdpdD9yZXY9Yzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSNjOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5IgpkZXBlbmRlbmNpZXMgPSBbCiAiYWVhZCIsCiAiYWVzIiwKICJhZXMtZ2NtIiwKICJieXRlb3JkZXIiLAogImJ5dGVzIiwKICJjdHIiLAogImhtYWMiLAogImxvZyIsCiAicnRjcCIsCiAicnRwIiwKICJzaGExIiwKICJzdWJ0bGUiLAogInRoaXNlcnJvciAxLjAuNjkiLAogInRva2lvIiwKICJ3ZWJydGMtdXRpbCIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2VicnRjLXV0aWwiCnZlcnNpb24gPSAiMC4xNy4xIgpzb3VyY2UgPSAiZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL3dlYnJ0Yy1ycy5naXQ/cmV2PWM5Njc1ZTIyMjI0NWU5NWMwNTZlMmRjYzAxOTVmYjA3NmZmYTliODkjYzk2NzVlMjIyMjQ1ZTk1YzA1NmUyZGNjMDE5NWZiMDc2ZmZhOWI4OSIKZGVwZW5kZW5jaWVzID0gWwogImFzeW5jLXRyYWl0IiwKICJiaXRmbGFncyAxLjMuMiIsCiAiYnl0ZXMiLAogImlwbmV0IiwKICJsYXp5X3N0YXRpYyIsCiAibG9nIiwKICJuaXgiLAogInBvcnRhYmxlLWF0b21pYyIsCiAicmFuZCIsCiAidGhpc2Vycm9yIDEuMC42OSIsCiAidG9raW8iLAogIndpbmFwaSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2luYXBpIgp2ZXJzaW9uID0gIjAuMy45Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjVjODM5YTY3NGZjZDdhOTg5NTJlNTkzMjQyZWE0MDBhYmU5Mzk5Mjc0Njc2MWUzODY0MTQwNWQyOGIwMGY0MTkiCmRlcGVuZGVuY2llcyA9IFsKICJ3aW5hcGktaTY4Ni1wYy13aW5kb3dzLWdudSIsCiAid2luYXBpLXg4Nl82NC1wYy13aW5kb3dzLWdudSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2luYXBpLWk2ODYtcGMtd2luZG93cy1nbnUiCnZlcnNpb24gPSAiMC40LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYWMzYjg3YzYzNjIwNDI2ZGQ5Yjk5MWU1Y2UwMzI5ZWZmNTQ1YmNjYmJiMzRmM2JlMDlmZjZmYjZhYjUxYjdiNiIKCltbcGFja2FnZV1dCm5hbWUgPSAid2luYXBpLXV0aWwiCnZlcnNpb24gPSAiMC4xLjExIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImMyYTdiMWMwM2M4NzYxMjJhYTQzZjMwMjBlNmMzYzNlZTVjMDUwODFjOWEwMDczOWZhZjc1MDNhZWJhMTBkMjIiCmRlcGVuZGVuY2llcyA9IFsKICJ3aW5kb3dzLXN5cyAwLjYxLjIiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpbmFwaS14ODZfNjQtcGMtd2luZG93cy1nbnUiCnZlcnNpb24gPSAiMC40LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNzEyZTIyNzg0MWQwNTdjMWVlMWNkMmZiMjJmYTdlNWE1NDYxYWU4ZTQ4ZmEyY2E3OWVjNDJjZmMxOTMxMTgzZiIKCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93cy1saW5rIgp2ZXJzaW9uID0gIjAuMi4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImYwODA1MjIyZTU3Zjc1MjFkNmE2MmUzNmZhOTE2M2JjODkxYWNkNDIyZjk3MWRlZmU5N2Q2NGU3MGQwYTRmZTUiCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpbmRvd3Mtc3lzIgp2ZXJzaW9uID0gIjAuNTIuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIyODJiZTVmMzZhOGNlNzgxZmFkOGM4YWUxOGZhM2Y5YmVmZjU3ZWMxYjUyY2IzZGUwNzg5MjAxNDI1ZDlhMzNkIgpkZXBlbmRlbmNpZXMgPSBbCiAid2luZG93cy10YXJnZXRzIDAuNTIuNiIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93cy1zeXMiCnZlcnNpb24gPSAiMC42MC4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImYyZjUwMGU0ZDI4MjM0ZjcyMDQwOTkwZWM5ZDM5ZTNhNmI5NTBmOWYyMmQzZGJhMTg0MTZjMzU4ODI2MTJiY2IiCmRlcGVuZGVuY2llcyA9IFsKICJ3aW5kb3dzLXRhcmdldHMgMC41My41IiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3aW5kb3dzLXN5cyIKdmVyc2lvbiA9ICIwLjYxLjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYWUxMzcyMjliY2JkNmNkZjBmN2I4MGEzMWRmNjE3NjYxNDUwNzdkZGY0OTQxNmE3MjhiMDJjYjM5MjFmZjNmYyIKZGVwZW5kZW5jaWVzID0gWwogIndpbmRvd3MtbGluayIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93cy10YXJnZXRzIgp2ZXJzaW9uID0gIjAuNTIuNiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5YjcyNGY3Mjc5NmUwMzZhYjkwYzEwMjFkNDc4MGQ0ZDNkNjQ4YWNhNTllNDkxZTZiOThlNzI1Yjg0ZTk5OTczIgpkZXBlbmRlbmNpZXMgPSBbCiAid2luZG93c19hYXJjaDY0X2dudWxsdm0gMC41Mi42IiwKICJ3aW5kb3dzX2FhcmNoNjRfbXN2YyAwLjUyLjYiLAogIndpbmRvd3NfaTY4Nl9nbnUgMC41Mi42IiwKICJ3aW5kb3dzX2k2ODZfZ251bGx2bSAwLjUyLjYiLAogIndpbmRvd3NfaTY4Nl9tc3ZjIDAuNTIuNiIsCiAid2luZG93c194ODZfNjRfZ251IDAuNTIuNiIsCiAid2luZG93c194ODZfNjRfZ251bGx2bSAwLjUyLjYiLAogIndpbmRvd3NfeDg2XzY0X21zdmMgMC41Mi42IiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3aW5kb3dzLXRhcmdldHMiCnZlcnNpb24gPSAiMC41My41Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjQ5NDVmOWY1NTFiODhlMGQ2NWYzZGIwYmMyNWMzM2I4YWNlYTRkOWU0MTE2M2VkZjkwZGNkMGIxOWY5MDY5ZjMiCmRlcGVuZGVuY2llcyA9IFsKICJ3aW5kb3dzLWxpbmsiLAogIndpbmRvd3NfYWFyY2g2NF9nbnVsbHZtIDAuNTMuMSIsCiAid2luZG93c19hYXJjaDY0X21zdmMgMC41My4xIiwKICJ3aW5kb3dzX2k2ODZfZ251IDAuNTMuMSIsCiAid2luZG93c19pNjg2X2dudWxsdm0gMC41My4xIiwKICJ3aW5kb3dzX2k2ODZfbXN2YyAwLjUzLjEiLAogIndpbmRvd3NfeDg2XzY0X2dudSAwLjUzLjEiLAogIndpbmRvd3NfeDg2XzY0X2dudWxsdm0gMC41My4xIiwKICJ3aW5kb3dzX3g4Nl82NF9tc3ZjIDAuNTMuMSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93c19hYXJjaDY0X2dudWxsdm0iCnZlcnNpb24gPSAiMC41Mi42Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjMyYTQ2MjIxODBlN2EwZWMwNDRiYjU1NTQwNGM4MDBiYzlmZDllYzI2MmVjMTQ3ZWRkNTk4OWNjZDBjMDJjZDMiCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpbmRvd3NfYWFyY2g2NF9nbnVsbHZtIgp2ZXJzaW9uID0gIjAuNTMuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJhOWQ4NDE2ZmE4YjQyZjVjOTQ3Zjg0ODJjNDNlN2Q4OWU3M2ExNzNjZWFkNTZkMDQ0ZjZhNTYxMDRhNmQxYjUzIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3aW5kb3dzX2FhcmNoNjRfbXN2YyIKdmVyc2lvbiA9ICIwLjUyLjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMDllYzJhN2JiMTUyZTIyNTJiNTNmYTc4MDMxNTAwMDc4Nzk1NDhiYzcwOWMwMzlkZjc2MjdjYWJiZDA1ZDQ2OSIKCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93c19hYXJjaDY0X21zdmMiCnZlcnNpb24gPSAiMC41My4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImI5ZDc4MmU4MDRjMmY2MzJlMzk1NzA4ZTk5YTk0Mjc1OTEwZWI5MTAwYjIxMTQ2NTFlMDQ3NDRlOWIxMjUwMDYiCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpbmRvd3NfaTY4Nl9nbnUiCnZlcnNpb24gPSAiMC41Mi42Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjhlOWI1YWQ1YWI4MDJlOTdlYjhlMjk1YWM2NzIwZTUwOWVlNGMyNDNmNjlkNzgxMzk0MDE0ZWJmZThiYmZhMGIiCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpbmRvd3NfaTY4Nl9nbnUiCnZlcnNpb24gPSAiMC41My4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjk2MGU2ZGEwNjlkODFlMDliZWNiMGNhNTdhNjUyMjBkZGZmMDE2ZmYyZDZhZjZhMjIzY2YzNzJhNTA2NTkzYTMiCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpbmRvd3NfaTY4Nl9nbnVsbHZtIgp2ZXJzaW9uID0gIjAuNTIuNiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIwZWVlNTJkMzhjMDkwYjNjYWE3NmM1NjNiODZjM2E0YmQ3MWVmMWE4MTkyODdjMTlkNTg2ZDczMzRhZThlZDY2IgoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3aW5kb3dzX2k2ODZfZ251bGx2bSIKdmVyc2lvbiA9ICIwLjUzLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZmE3MzU5ZDEwMDQ4ZjY4YWI4YjA5ZmE3MWMzZGFjY2ZiMGU5YjU1OWFlZDY0OGE4Zjk1NDY5YzI3MDU3MTgwYyIKCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93c19pNjg2X21zdmMiCnZlcnNpb24gPSAiMC41Mi42Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjI0MDk0OGJjMDVjNWU3YzZkYWJiYTI4YmY4OWQ4OWZmY2UzZTMwMzAyMjgwOWU3M2RlYWVmZTRmNmVjNTZjNjYiCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpbmRvd3NfaTY4Nl9tc3ZjIgp2ZXJzaW9uID0gIjAuNTMuMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICIxZTdhYzc1MTc5ZjE4MjMyZmU5YzI4NTE2MzU2NWE1N2VmOGQzYzg5MjU0YTMwNjg1YjU3ZDgzYTM4ZDMyNmMyIgoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3aW5kb3dzX3g4Nl82NF9nbnUiCnZlcnNpb24gPSAiMC41Mi42Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjE0N2E1YzgwYWFiZmJmMGM3ZDkwMWNiNTg5NWQxZGUzMGVmMjkwN2ViMjFmYmJhYjI5Y2E5NGM1YjA4YjFhNzgiCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpbmRvd3NfeDg2XzY0X2dudSIKdmVyc2lvbiA9ICIwLjUzLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOWMzODQyY2RkNzRhODY1YTgwNjZhYjM5YzhhN2E0NzNjMDc3OGEzZjI5MzcwYjVmZDZiNGI5YWE3ZGY0YTQ5OSIKCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93c194ODZfNjRfZ251bGx2bSIKdmVyc2lvbiA9ICIwLjUyLjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMjRkNWIyM2RjNDE3NDEyNjc5NjgxMzk2ZjJiNDlmM2RlOGMxNDczZGViNTE2YmQzNDQxMDg3MmVmZjUxZWQwZCIKCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93c194ODZfNjRfZ251bGx2bSIKdmVyc2lvbiA9ICIwLjUzLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiMGZmYTE3OWUyZDA3ZWVlOGFkOGY1NzQ5MzQzNjU2NmM3Y2MzMGFjNTM2YTMzNzlmZGYwMDhmNDdmNmJiN2FlMSIKCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93c194ODZfNjRfbXN2YyIKdmVyc2lvbiA9ICIwLjUyLjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNTg5ZjZkYTg0YzY0NjIwNDc0N2QxMjcwYTJhNTY2MWVhNjZlZDFjY2VkMjYzMWQ1NDZmZGZiMTU1OTU5ZjllYyIKCltbcGFja2FnZV1dCm5hbWUgPSAid2luZG93c194ODZfNjRfbXN2YyIKdmVyc2lvbiA9ICIwLjUzLjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDZiYmZmNWYwYWFkYTQyN2ExZTVhNmRhNWYxZjk4MTU4MTgyZjI2NTU2ZjM0NWFjOWUwNGQzNmQwZWJlZDY1MCIKCltbcGFja2FnZV1dCm5hbWUgPSAid2l0LWJpbmRnZW4iCnZlcnNpb24gPSAiMC41MS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImQ3MjQ5MjE5ZjY2Y2VkMDI5NjkzODhjZjJiYjA0NGEwOTc1NmEwODNkMGZhYjFlNTY2MDU2YjA0ZDlmYmNhYTUiCmRlcGVuZGVuY2llcyA9IFsKICJ3aXQtYmluZGdlbi1ydXN0LW1hY3JvIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3aXQtYmluZGdlbi1jb3JlIgp2ZXJzaW9uID0gIjAuNTEuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJlYTYxZGU2ODRjM2VhNjhjYjA4MmI3YTg4NTA4YThiMjdmY2M4Yjc5N2Q3MzhiZmM5OWE4MmZhY2YxZDc1MmRjIgpkZXBlbmRlbmNpZXMgPSBbCiAiYW55aG93IiwKICJoZWNrIiwKICJ3aXQtcGFyc2VyIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3aXQtYmluZGdlbi1ydXN0Igp2ZXJzaW9uID0gIjAuNTEuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJiN2M1NjZlMGY0YjI4NGRkNjU2MWM3ODZkOWNiMDE0MmRhNDkxZjQ2YTlmYmVkNzllYTY5Y2RhZDVkYjE3ZjIxIgpkZXBlbmRlbmNpZXMgPSBbCiAiYW55aG93IiwKICJoZWNrIiwKICJpbmRleG1hcCIsCiAicHJldHR5cGxlYXNlIiwKICJzeW4iLAogIndhc20tbWV0YWRhdGEiLAogIndpdC1iaW5kZ2VuLWNvcmUiLAogIndpdC1jb21wb25lbnQiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpdC1iaW5kZ2VuLXJ1c3QtbWFjcm8iCnZlcnNpb24gPSAiMC41MS4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjBjMGY5YmZkNzdlNmE0OGVjY2Y1MTM1OWUzYWU3NzE0MGE3ZjUwYjFlMmViZmU2MjQyMmQ4YWZkYWZmYWIxN2EiCmRlcGVuZGVuY2llcyA9IFsKICJhbnlob3ciLAogInByZXR0eXBsZWFzZSIsCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLAogIndpdC1iaW5kZ2VuLWNvcmUiLAogIndpdC1iaW5kZ2VuLXJ1c3QiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gIndpdC1jb21wb25lbnQiCnZlcnNpb24gPSAiMC4yNDQuMCIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI5ZDY2ZWEyMGU5NTUzYjMwMTcyYjVlODMxOTk0ZTM1ZmJkZTJkMTY1MzI1YmVjODRmYzQzZGJmNmY0ZWI5Y2IyIgpkZXBlbmRlbmNpZXMgPSBbCiAiYW55aG93IiwKICJiaXRmbGFncyAyLjExLjAiLAogImluZGV4bWFwIiwKICJsb2ciLAogInNlcmRlIiwKICJzZXJkZV9kZXJpdmUiLAogInNlcmRlX2pzb24iLAogIndhc20tZW5jb2RlciIsCiAid2FzbS1tZXRhZGF0YSIsCiAid2FzbXBhcnNlciIsCiAid2l0LXBhcnNlciIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAid2l0LXBhcnNlciIKdmVyc2lvbiA9ICIwLjI0NC4wIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImVjYzhhYzRiYzFkYzMzODFiN2Y1OWMzNGYwMGI2N2UxOGY5MTBjMmMwZjUwMDE1NjY5ZGRlN2RlZjY1NmE3MzYiCmRlcGVuZGVuY2llcyA9IFsKICJhbnlob3ciLAogImlkLWFyZW5hIiwKICJpbmRleG1hcCIsCiAibG9nIiwKICJzZW12ZXIiLAogInNlcmRlIiwKICJzZXJkZV9kZXJpdmUiLAogInNlcmRlX2pzb24iLAogInVuaWNvZGUteGlkIiwKICJ3YXNtcGFyc2VyIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ3cml0ZWFibGUiCnZlcnNpb24gPSAiMC42LjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOWVkZGUwZGI0NzY5ZDJkYzY4NTc5ODkzZjIzMDZiMjZjNmVjZmJlMGVmNDk5YjAxM2Q3MzFiN2I5MjQ3ZTBiOSIKCltbcGFja2FnZV1dCm5hbWUgPSAieDI1NTE5LWRhbGVrIgp2ZXJzaW9uID0gIjIuMC4xIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImM3ZTQ2ODMyMWM4MWZiMDdmYTdmNGM2MzZjMzk3MmI5MTAwZjAzNDZlNWI2YTlmMmJkMDYwM2E1MmY3ZWQyNzciCmRlcGVuZGVuY2llcyA9IFsKICJjdXJ2ZTI1NTE5LWRhbGVrIiwKICJyYW5kX2NvcmUgMC42LjQiLAogInNlcmRlIiwKICJ6ZXJvaXplIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ4NTA5LXBhcnNlciIKdmVyc2lvbiA9ICIwLjE2LjAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZmNiYzE2MmYzMDcwMGQ2ZjNmODJhMjRiZjdjYzYyZmZlN2NhZWE0MmMwYjJjYmE4YmY3ZjNhZTUwY2Y1MWY2OSIKZGVwZW5kZW5jaWVzID0gWwogImFzbjEtcnMiLAogImRhdGEtZW5jb2RpbmciLAogImRlci1wYXJzZXIiLAogImxhenlfc3RhdGljIiwKICJub20iLAogIm9pZC1yZWdpc3RyeSIsCiAicmluZyIsCiAicnVzdGljYXRhLW1hY3JvcyIsCiAidGhpc2Vycm9yIDEuMC42OSIsCiAidGltZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAieWFzbmEiCnZlcnNpb24gPSAiMC41LjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTE3YmIzNTQ5Y2MxMzIxYWUxMjk2YjljZGMyNjk4ZTJiNmNiMTk5MmFkZmExOWE4YzcyZTViN2E3MzhmNDRjZCIKZGVwZW5kZW5jaWVzID0gWwogInRpbWUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInlva2UiCnZlcnNpb24gPSAiMC44LjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNzJkNmU1YzZhZmI4NGQ3Mzk0NGU1Y2VkYjA1MmM0NjgwZDU2NTczMzcyMDE1NTVmOWYyYTE2Yjc0MDZkNDk1NCIKZGVwZW5kZW5jaWVzID0gWwogInN0YWJsZV9kZXJlZl90cmFpdCIsCiAieW9rZS1kZXJpdmUiLAogInplcm9mcm9tIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ5b2tlLWRlcml2ZSIKdmVyc2lvbiA9ICIwLjguMSIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICJiNjU5MDUyODc0ZWI2OThlZmU1YjllOGNmMzgyMjA0Njc4YTAwODZlYmY0Njk4MmI3OWQ2Y2EzMTgyOTI3ZTVkIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLAogInN5bnN0cnVjdHVyZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiemVyb2NvcHkiCnZlcnNpb24gPSAiMC44LjQwIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImE3ODljNmU0OTBiNTc2ZGI5ZjdlNmI2ZDY2MWJjYzk3OTlmN2MwYWM4MzUyZjU2ZWEyMDE5M2IyNjgxNTMyZTUiCmRlcGVuZGVuY2llcyA9IFsKICJ6ZXJvY29weS1kZXJpdmUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInplcm9jb3B5LWRlcml2ZSIKdmVyc2lvbiA9ICIwLjguNDAiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZjY1YzQ4OWE3MDcxYTc0OWM4NDk3MTM4MDc3ODNmNzA2NzJiMjgwOTQwMTE2MjNlMjAwY2I4NmRjYjgzNTk1MyIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ6ZXJvZnJvbSIKdmVyc2lvbiA9ICIwLjEuNiIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI1MGNjNDJlMDMzM2UwNTY2MGMzNTg3ZjNiZjlkMDQ3ODY4OGUxNWQ4NzBmYWIzMzQ2NDUxY2U3ZjhjOWZiZWE1IgpkZXBlbmRlbmNpZXMgPSBbCiAiemVyb2Zyb20tZGVyaXZlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ6ZXJvZnJvbS1kZXJpdmUiCnZlcnNpb24gPSAiMC4xLjYiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZDcxZTVkNmUwNmFiMDkwYzY3YjVlNDQ5OTNlYzE2YjcyZGNiYWFiYzUyNmRiODgzYTM2MDA1NzY3OGI0ODUwMiIKZGVwZW5kZW5jaWVzID0gWwogInByb2MtbWFjcm8yIiwKICJxdW90ZSIsCiAic3luIiwKICJzeW5zdHJ1Y3R1cmUiLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInplcm9pemUiCnZlcnNpb24gPSAiMS44LjIiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYjk3MTU0ZTY3ZTMyYzg1NDY1ODI2ZThiY2MxYzU5NDI5YWFhZjEwN2MxZTRhOWU1M2M4ZDhjY2Q1ZWZmODhkMCIKZGVwZW5kZW5jaWVzID0gWwogInplcm9pemVfZGVyaXZlIiwKXQoKW1twYWNrYWdlXV0KbmFtZSA9ICJ6ZXJvaXplX2Rlcml2ZSIKdmVyc2lvbiA9ICIxLjQuMyIKc291cmNlID0gInJlZ2lzdHJ5K2h0dHBzOi8vZ2l0aHViLmNvbS9ydXN0LWxhbmcvY3JhdGVzLmlvLWluZGV4IgpjaGVja3N1bSA9ICI4NWE1YjQxNTg0OTk4NzZjNzYzY2IwM2JjNGU0OTE4NWQzY2NjYmFiYjE1YjMzYzYyN2Y3ODg0ZjQzZGI4NTJlIgpkZXBlbmRlbmNpZXMgPSBbCiAicHJvYy1tYWNybzIiLAogInF1b3RlIiwKICJzeW4iLApdCgpbW3BhY2thZ2VdXQpuYW1lID0gInplcm90cmllIgp2ZXJzaW9uID0gIjAuMi4zIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjJhNTljMTdhNTU2MmQ1MDdlNGI1NDk2MGU4NTY5ZWJlZTMzYmVlODkwYzcwYWEzZmU3Yjk3ZTg1YTlmZDc4NTEiCmRlcGVuZGVuY2llcyA9IFsKICJkaXNwbGF5ZG9jIiwKICJ5b2tlIiwKICJ6ZXJvZnJvbSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiemVyb3ZlYyIKdmVyc2lvbiA9ICIwLjExLjUiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiNmMyODcxOTI5NDgyOTQ3N2Y1MjViZTAxODZkMTNlZmE5YTNjNjAyZjdlYzIwMmNhOWUzNTNkMzEwZmI5YTAwMiIKZGVwZW5kZW5jaWVzID0gWwogInlva2UiLAogInplcm9mcm9tIiwKICJ6ZXJvdmVjLWRlcml2ZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiemVyb3ZlYy1kZXJpdmUiCnZlcnNpb24gPSAiMC4xMS4yIgpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gImVhZGNlMzk1MzljYTVjYjM5ODU1OTAxMDI2NzFmMjU2N2U2NTlmY2E5NjY2NTgxYWQzNDExZDU5MjA3OTUxZjMiCmRlcGVuZGVuY2llcyA9IFsKICJwcm9jLW1hY3JvMiIsCiAicXVvdGUiLAogInN5biIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAiem1paiIKdmVyc2lvbiA9ICIxLjAuMjEiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiYjg4NDhlZTY3ZWNjOGFlZGJhZjNlNDEyMjIxN2FmZjg5MjYzOTIzMWJlZmM2YTFiNThkMjlmZmY0YzJjYWJhYSIKCltbcGFja2FnZV1dCm5hbWUgPSAienN0ZCIKdmVyc2lvbiA9ICIwLjEzLjMiCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiZTkxZWUzMTFhNTY5YzMyNzE3MTY1MTU2NmUwNzk3MjIwMGU3NmZjZmUyMjQyYTRmYTQ0NjE0OWEzODgxYzA4YSIKZGVwZW5kZW5jaWVzID0gWwogInpzdGQtc2FmZSIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAienN0ZC1zYWZlIgp2ZXJzaW9uID0gIjcuMi40Igpzb3VyY2UgPSAicmVnaXN0cnkraHR0cHM6Ly9naXRodWIuY29tL3J1c3QtbGFuZy9jcmF0ZXMuaW8taW5kZXgiCmNoZWNrc3VtID0gIjhmNDljNGQ1ZjBhYmI2MDJhOTNmYjg3MzZhZjJhNGY0ZGQ5NTEyZTM2ZjdmNTcwZDY2ZTY1ZmY4NjdlZDNiOWQiCmRlcGVuZGVuY2llcyA9IFsKICJ6c3RkLXN5cyIsCl0KCltbcGFja2FnZV1dCm5hbWUgPSAienN0ZC1zeXMiCnZlcnNpb24gPSAiMi4wLjE2K3pzdGQuMS41LjciCnNvdXJjZSA9ICJyZWdpc3RyeStodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL2NyYXRlcy5pby1pbmRleCIKY2hlY2tzdW0gPSAiOTFlMTllYmMyYWRjOGY4M2U0MzAzOWU3OTc3NmUzZmRhOGNhOTE5MTMyZDY4YTFmZWQ2YTVmYWNhMjY4Mzc0OCIKZGVwZW5kZW5jaWVzID0gWwogImNjIiwKICJwa2ctY29uZmlnIiwKXQo="},{"path":"Cargo.toml","sha256":"0119c48e65f1747287d3e25c4c9328f676c560c4937712824d2b763b6faf2b2c","contentBase64":"Y2FyZ28tZmVhdHVyZXMgPSBbInByb2ZpbGUtcnVzdGZsYWdzIl0KClt3b3Jrc3BhY2VdCnJlc29sdmVyID0gIjMiCm1lbWJlcnMgPSBbImNvbW1vbiIsICJzdHJlYW1lciIsICIuLyJdCmRlZmF1bHQtbWVtYmVycyA9IFsic3RyZWFtZXIiLCAiLi8iXQoKW3Byb2ZpbGUucmVsZWFzZV0KIyBzdHJpcCByZWxlYXNlIGluZm9ybWF0aW9uCnJ1c3RmbGFncyA9IFsiLVpyZW1hcC1jd2QtcHJlZml4PS4iLCAiLVpsb2NhdGlvbi1kZXRhaWw9bm9uZSJdCgpbd29ya3NwYWNlLnBhY2thZ2VdCnZlcnNpb24gPSAiMi4xMC4wIgpsaWNlbnNlID0gIkdQTC0zLjAtb3ItbGF0ZXIiCgpbd29ya3NwYWNlLmRlcGVuZGVuY2llc10KbW9vbmxpZ2h0LWNvbW1vbiA9IHsgZ2l0ID0gImh0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL21vb25saWdodC1jb21tb24tcnVzdC5naXQiLCByZXYgPSAiZGY5ZjFlMzAwM2ZiNDgzNGRiYjE3YTRiZDRkM2NmMjVkMmZlYTNkOSIsIGZlYXR1cmVzID0gWwogICAgInRva2lvIiwKICAgICJ0b2tpby1oeXBlciIsCiAgICAib3BlbnNzbCIsCiAgICAic3RyZWFtLWMiLAogICAgInNlcmRlIiwKXSwgZGVmYXVsdC1mZWF0dXJlcyA9IGZhbHNlIH0KY29tbW9uID0geyBwYXRoID0gIi4vY29tbW9uIiB9CgojIExvZwpsb2cgPSAiMC40LjI4Igp0cmFjaW5nID0gIjAuMS40NCIKdHJhY2luZy1zdWJzY3JpYmVyID0gIjAuMy4yMiIKdHJhY2luZy1hcHBlbmRlciA9ICIwLjIuNCIKdHJhY2luZy1hY3RpeC13ZWIgPSAiMC43LjIxIgp2ZW5hdG9yID0gIjEuMS4wIgoKIyBDbGkKY2xhcCA9IHsgdmVyc2lvbiA9ICI0LjUuNTMiIH0KdHMtcnMgPSAiMTEuMC4xIgphc3luYy10cmFpdCA9ICIwLjEuODkiCgojIEFzeW5jCnRva2lvID0geyB2ZXJzaW9uID0gIjEuNDcuMSIgfQpmdXR1cmVzID0gIjAuMy4zMSIKYnl0ZXMgPSAiMS4xMS4xIgoKIyAtLSBIdHRwIC8gSHR0cHMKIyBvdGhlcgojIFRPRE86IG1ha2UgbW9vbmxpZ2h0IGNvbW1vbiBydXN0IHVzZSB0aGUgbGF0ZXN0IHZlcnNpb24KdXVpZCA9IHsgdmVyc2lvbiA9ICIwLjguMiIgfQpoZXggPSB7IHZlcnNpb24gPSAiMC40LjMiIH0KCiMgV2ViUlRDCndlYnJ0YyA9IHsgdmVyc2lvbiA9ICIwLjE3LjEiLCBnaXQgPSAiaHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvd2VicnRjLXJzLmdpdCIsIHJldiA9ICJjOTY3NWUyMjIyNDVlOTVjMDU2ZTJkY2MwMTk1ZmIwNzZmZmE5Yjg5IiB9CgojIEFjdGl4CmFjdGl4LXdlYiA9IHsgdmVyc2lvbiA9ICI0LjExLjAiIH0KYWN0aXgtZmlsZXMgPSAiMC42LjYiCmFjdGl4LXdzID0gIjAuMy4wIgoKIyBPcGVuU1NMIC8gQ3J5cHRvCm9wZW5zc2wgPSAiMC4xMC42NyIKcGVtID0gIjMuMC41IgoKIyBTZXJpYWxpemF0aW9uCnNlcmRlID0geyB2ZXJzaW9uID0gIjEuMC4yMTkiLCBmZWF0dXJlcyA9IFsiZGVyaXZlIl0gfQpzZXJkZV9qc29uID0gIjEuMC4xNDIiCgojIEVycm9yCmFueWhvdyA9ICIxLjAuOTkiCnRoaXNlcnJvciA9ICIyLjAuMTYiCgojIE51bWJlcnMKbnVtID0gIjAuNCIKbnVtLWRlcml2ZSA9ICIwLjQiCm51bS10cmFpdHMgPSAiMC4yIgoKW3dvcmtzcGFjZS5saW50cy5jbGlwcHldCnRvb19tYW55X2FyZ3VtZW50cyA9ICJhbGxvdyIKdW53cmFwX3VzZWQgPSAid2FybiIKdG9kbyA9ICJ3YXJuIgoKW3BhY2thZ2VdCm5hbWUgPSAid2ViLXNlcnZlciIKdmVyc2lvbi53b3Jrc3BhY2UgPSB0cnVlCmVkaXRpb24gPSAiMjAyNCIKbGljZW5zZSA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CmRlZmF1bHQtcnVuID0gIndlYi1zZXJ2ZXIiCgpbZGVwZW5kZW5jaWVzXQptb29ubGlnaHQtY29tbW9uID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KY29tbW9uID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KCnRva2lvID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBmZWF0dXJlcyA9IFsicnQtbXVsdGktdGhyZWFkIiwgImZzIl0gfQpmdXR1cmVzLWNvbmN1cnJlbmN5ID0gIjcuNy4xIgoKY2xhcCA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbImRlcml2ZSIsICJlbnYiXSB9CgphY3RpeC13ZWIgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyJvcGVuc3NsIl0gfQpvcGVuc3NsID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KYWN0aXgtZmlsZXMgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQphY3RpeC13cyA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9Cgpsb2cgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQp0cmFjaW5nID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KdHJhY2luZy1zdWJzY3JpYmVyID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBmZWF0dXJlcyA9IFsiZW52LWZpbHRlciJdIH0KdHJhY2luZy1hcHBlbmRlciA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CnRyYWNpbmctYWN0aXgtd2ViID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KdmVuYXRvci53b3Jrc3BhY2UgPSB0cnVlCgphbnlob3cgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQoKc2VyZGUgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQpzZXJkZV9qc29uID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KcGVtID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KZnV0dXJlcyA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CnV1aWQud29ya3NwYWNlID0gdHJ1ZQp0aGlzZXJyb3Iud29ya3NwYWNlID0gdHJ1ZQphc3luYy10cmFpdC53b3Jrc3BhY2UgPSB0cnVlCmhleC53b3Jrc3BhY2UgPSB0cnVlCnNoYTIgPSAiMC4xMC45IgoKW3RhcmdldC4nY2ZnKHdpbmRvd3MpJy5kZXBlbmRlbmNpZXNdCndpbmRvd3Mtc3lzID0geyB2ZXJzaW9uID0gIjAuNjEuMiIsIGZlYXR1cmVzID0gWyJXaW4zMl9TeXN0ZW1fQ29uc29sZSJdIH0KCltsaW50c10Kd29ya3NwYWNlID0gdHJ1ZQo="},{"path":"Cross.toml","sha256":"34e6b72aa038f8d7f77e72f66abb1b8e85e0795a0da177492294ba7cb7ca34ba","contentBase64":"IyBUT0RPOiBsb29rIGF0IHRoaXMgYW5kIHVwZGF0ZSB0aG9zZSBpbWFnZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9jcm9zcy1ycy9jcm9zcy9wdWxsLzE1ODAKCiMgVXNlIHByZXVwbG9hZGVkIGltYWdlLCBiZWNhdXNlIHNvbWUgaW1hZ2VzIHRha2UgNDArIG1pbnMgdG8gYnVpbGQgYW5kIHNvbWV0aW1lcyBmYWlscyBiZWNhdXNlIG9mIHJhdGUgbGltaXRpbmcKCiMgeDg2XzY0IGxpbnV4Clt0YXJnZXQueDg2XzY0LXVua25vd24tbGludXgtZ251XQppbWFnZSA9ICJtcmNyZWF0aXYzMDAxL2Nyb3NzLWN1c3RvbS1tb29ubGlnaHQtd2ViLXN0cmVhbTp4ODZfNjQtdW5rbm93bi1saW51eC1nbnUtMCIKClt0YXJnZXQueDg2XzY0LXVua25vd24tbGludXgtbXVzbF0KaW1hZ2UgPSAibXJjcmVhdGl2MzAwMS9jcm9zcy1jdXN0b20tbW9vbmxpZ2h0LXdlYi1zdHJlYW06eDg2XzY0LXVua25vd24tbGludXgtbXVzbC0wIgoKIyBhYXJjaDY0IGxpbnV4Clt0YXJnZXQuYWFyY2g2NC11bmtub3duLWxpbnV4LWdudV0KaW1hZ2UgPSAibXJjcmVhdGl2MzAwMS9jcm9zcy1jdXN0b20tbW9vbmxpZ2h0LXdlYi1zdHJlYW06YWFyY2g2NC11bmtub3duLWxpbnV4LWdudS0wIgoKW3RhcmdldC5hYXJjaDY0LXVua25vd24tbGludXgtbXVzbF0KaW1hZ2UgPSAibXJjcmVhdGl2MzAwMS9jcm9zcy1jdXN0b20tbW9vbmxpZ2h0LXdlYi1zdHJlYW06YWFyY2g2NC11bmtub3duLWxpbnV4LW11c2wtMCIKCiMgeDg2XzY0IHdpbmRvd3MKW3RhcmdldC54ODZfNjQtcGMtd2luZG93cy1nbnVdCmltYWdlID0gIm1yY3JlYXRpdjMwMDEvY3Jvc3MtY3VzdG9tLW1vb25saWdodC13ZWItc3RyZWFtOng4Nl82NC1wYy13aW5kb3dzLWdudS0wIgoKIyB4ODZfNjQgbGludXgKI1t0YXJnZXQueDg2XzY0LXVua25vd24tbGludXgtZ251LmRvY2tlcmZpbGVdCiNmaWxlID0gIi4vQ3Jvc3MvRG9ja2VyZmlsZS54ODZfNjQtdW5rbm93bi1saW51eC1nbnUiCiNjb250ZXh0ID0gIi4vQ3Jvc3MvIgojCiNbdGFyZ2V0Lng4Nl82NC11bmtub3duLWxpbnV4LW11c2wuZG9ja2VyZmlsZV0KI2ZpbGUgPSAiLi9Dcm9zcy9Eb2NrZXJmaWxlLng4Nl82NC11bmtub3duLWxpbnV4LW11c2wiCiNjb250ZXh0ID0gIi4vQ3Jvc3MvIgojCiMjIGFhcmNoNjQgbGludXgKI1t0YXJnZXQuYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS5kb2NrZXJmaWxlXQojZmlsZSA9ICIuL0Nyb3NzL0RvY2tlcmZpbGUuYWFyY2g2NC11bmtub3duLWxpbnV4LWdudSIKI2NvbnRleHQgPSAiLi9Dcm9zcy8iCiMKI1t0YXJnZXQuYWFyY2g2NC11bmtub3duLWxpbnV4LW11c2wuZG9ja2VyZmlsZV0KI2ZpbGUgPSAiLi9Dcm9zcy9Eb2NrZXJmaWxlLmFhcmNoNjQtdW5rbm93bi1saW51eC1tdXNsIgojY29udGV4dCA9ICIuL0Nyb3NzLyIKIwojIyB4ODZfNjQgd2luZG93cwojW3RhcmdldC54ODZfNjQtcGMtd2luZG93cy1nbnUuZG9ja2VyZmlsZV0KI2ZpbGUgPSAiLi9Dcm9zcy9Eb2NrZXJmaWxlLng4Nl82NC1wYy13aW5kb3dzLWdudSIKI2NvbnRleHQgPSAiLi9Dcm9zcy8iCg=="},{"path":"Cross/Dockerfile.aarch64-unknown-linux-gnu","sha256":"fbcd735ab90fa8087012fea5d9cb45b97076624a30238c7247e5b588a36787ea","contentBase64":"RlJPTSB1YnVudHU6MjQuMDQKCkVOViBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUKCkNPUFkgdG9vbGNoYWluLmNtYWtlIC9vcHQvdG9vbGNoYWluLmNtYWtlCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKICAgIGNsYW5nIFwKICAgIGJ1aWxkLWVzc2VudGlhbCBcCiAgICBjbWFrZSBcCiAgICBnY2MtYWFyY2g2NC1saW51eC1nbnUgXAogICAgZysrLWFhcmNoNjQtbGludXgtZ251IFwKICAgIGxpYmM2LWRldi1hcm02NC1jcm9zcyBcCiAgICAmJiBybSAtcmYgL3Zhci9saWIvYXB0L2xpc3RzLyoKCkVOViBDUk9TU19UT09MQ0hBSU5fUFJFRklYPWFhcmNoNjQtbGludXgtZ251LQpFTlYgQ1JPU1NfU1lTUk9PVD0vdXNyL2FhcmNoNjQtbGludXgtZ251CkVOViBDQVJHT19UQVJHRVRfQUFSQ0g2NF9VTktOT1dOX0xJTlVYX0dOVV9MSU5LRVI9IiRDUk9TU19UT09MQ0hBSU5fUFJFRklYImdjYyBcCiAgICBBUl9hYXJjaDY0X3Vua25vd25fbGludXhfZ251PSIkQ1JPU1NfVE9PTENIQUlOX1BSRUZJWCJhciBcCiAgICBDQ19hYXJjaDY0X3Vua25vd25fbGludXhfZ251PSIkQ1JPU1NfVE9PTENIQUlOX1BSRUZJWCJnY2MgXAogICAgQ1hYX2FhcmNoNjRfdW5rbm93bl9saW51eF9nbnU9IiRDUk9TU19UT09MQ0hBSU5fUFJFRklYImcrKyBcCiAgICBDTUFLRV9UT09MQ0hBSU5fRklMRV9hYXJjaDY0X3Vua25vd25fbGludXhfZ251PS9vcHQvdG9vbGNoYWluLmNtYWtlIFwKICAgIEJJTkRHRU5fRVhUUkFfQ0xBTkdfQVJHU19hYXJjaDY0X3Vua25vd25fbGludXhfZ251PSItLXN5c3Jvb3Q9JENST1NTX1NZU1JPT1QgLWlkaXJhZnRlci91c3IvaW5jbHVkZSIgXAogICAgQ1JPU1NfQ01BS0VfU1lTVEVNX05BTUU9TGludXggXAogICAgQ1JPU1NfQ01BS0VfU1lTVEVNX1BST0NFU1NPUj1hYXJjaDY0IFwKICAgIENST1NTX0NNQUtFX0NSVD1nbnUgXAogICAgQ1JPU1NfQ01BS0VfT0JKRUNUX0ZMQUdTPSItZmZ1bmN0aW9uLXNlY3Rpb25zIC1mZGF0YS1zZWN0aW9ucyAtZlBJQyIK"},{"path":"Cross/Dockerfile.aarch64-unknown-linux-musl","sha256":"7e8f0beed4ab245719b82a917ee8108dc5da4286c3edc7306c5dba04dd9df5cd","contentBase64":"RlJPTSB1YnVudHU6MjQuMDQKCkVOViBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUKCkNPUFkgdG9vbGNoYWluLmNtYWtlIC9vcHQvdG9vbGNoYWluLmNtYWtlCgojIEluc3RhbGwgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGZvciBydXN0IGJ1aWxkClJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAogICAgY2xhbmcgXAogICAgYnVpbGQtZXNzZW50aWFsIFwKICAgIGNtYWtlIFwKICAgIGdpdCBcCiAgICBjYS1jZXJ0aWZpY2F0ZXMgXAogICAgJiYgcm0gLXJmIC92YXIvbGliL2FwdC9saXN0cy8qCgojIEluc3RhbGwgZGVwZW5kZW5jaWVzIGZvciBjcm9zc3Rvb2wtbmc6IGh0dHBzOi8vZ2l0aHViLmNvbS9jcm9zc3Rvb2wtbmcvY3Jvc3N0b29sLW5nL2Jsb2IvMTg1ZjM0ODNlMGU1MDI4MzU3YjEzMWZiOTdjNDMzMTU1MWE3MGExZS90ZXN0aW5nL2RvY2tlci91YnVudHUyMi4wNC9Eb2NrZXJmaWxlI0wxMy1MMTUKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCiAgICBhdXRvY29uZiBcCiAgICBhdXRvbWFrZSBcCiAgICBiaXNvbiBcCiAgICBiemlwMiBcCiAgICBmaWxlIFwKICAgIGZsZXggXAogICAgZ2F3ayBcCiAgICBncGVyZiBcCiAgICBoZWxwMm1hbiBcCiAgICBsaWJuY3Vyc2VzLWRldiBcCiAgICBsaWJ0b29sIFwKICAgIGxpYnRvb2wtYmluIFwKICAgIHBhdGNoIFwKICAgIHB5dGhvbjMgXAogICAgcnN5bmMgXAogICAgdGV4aW5mbyBcCiAgICB1bnppcCBcCiAgICB3Z2V0IFwKICAgIHh6LXV0aWxzIFwKICAgICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKIyBDcm9zc3Rvb2wgbmcgZG9lc24ndCBhbGxvdyByb290IGJ5IGRlZmF1bHQsIGJ1dCB3ZSBkb24ndCBjYXJlCkVOViBDVF9FWFBFUklNRU5UQUw9eSBcCiAgICBDVF9BTExPV19CVUlMRF9BU19ST09UPXkgXAogICAgQ1RfQUxMT1dfQlVJTERfQVNfUk9PVF9TVVJFPXkgXAogICAgIyBTZXQgdG9vbGNoYWluIHByZWZpeAogICAgQ1RfUFJFRklYPS9vcHQveC10b29scyBcCiAgICBDVF9UQVJHRVQ9YWFyY2g2NC11bmtub3duLWxpbnV4LW11c2wKIyBjb3B5IHRoZSBjcm9zc3Rvb2wgY29uZmlnCkNPUFkgY3Jvc3N0b29sLW5nL2FhcmNoNjQtdW5rbm93bi1saW51eC1tdXNsLmNvbmZpZyAvY3Jvc3N0b29sLmNvbmZpZwoKIyBSdW4gdGhlIGNyb3NzdG9vbC1uZyB0b29sY2hhaW4gYnVpbGQgc2NyaXB0IGFuZCBnZW5lcmF0ZSB0aGUgdG9vbGNoYWluCkNPUFkgY3Jvc3N0b29sLW5nLnNoIC9jcm9zc3Rvb2wtbmcuc2gKUlVOIGNobW9kICt4IC9jcm9zc3Rvb2wtbmcuc2ggJiYgXAogICAgL2Nyb3NzdG9vbC1uZy5zaAoKIyBBZGQgaXQgdG8gcGF0aApFTlYgUEFUSD0iJHtDVF9QUkVGSVh9LyRDVF9UQVJHRVQvYmluOiR7UEFUSH0iCgpFTlYgQ1JPU1NfU1lTUk9PVD0iJENUX1BSRUZJWC8kQ1RfVEFSR0VULyRDVF9UQVJHRVQvc3lzcm9vdCIKRU5WIENST1NTX1RPT0xDSEFJTl9QUkVGSVg9JHtDVF9UQVJHRVR9LQpFTlYgQ0FSR09fVEFSR0VUX0FBUkNINjRfVU5LTk9XTl9MSU5VWF9NVVNMX0xJTktFUj0iJENST1NTX1RPT0xDSEFJTl9QUkVGSVgiZ2NjIFwKICAgIEFSX2FhcmNoNjRfdW5rbm93bl9saW51eF9tdXNsPSIkQ1JPU1NfVE9PTENIQUlOX1BSRUZJWCJhciBcCiAgICBDQ19hYXJjaDY0X3Vua25vd25fbGludXhfbXVzbD0iJENST1NTX1RPT0xDSEFJTl9QUkVGSVgiZ2NjIFwKICAgIENYWF9hYXJjaDY0X3Vua25vd25fbGludXhfbXVzbD0iJENST1NTX1RPT0xDSEFJTl9QUkVGSVgiZysrIFwKICAgIENNQUtFX1RPT0xDSEFJTl9GSUxFX2FhcmNoNjRfdW5rbm93bl9saW51eF9tdXNsPS9vcHQvdG9vbGNoYWluLmNtYWtlIFwKICAgIEJJTkRHRU5fRVhUUkFfQ0xBTkdfQVJHU19hYXJjaDY0X3Vua25vd25fbGludXhfbXVzbD0iLS1zeXNyb290PSRDUk9TU19TWVNST09UIC1pZGlyYWZ0ZXIvdXNyL2luY2x1ZGUiIFwKICAgIENST1NTX0NNQUtFX1NZU1RFTV9OQU1FPUxpbnV4IFwKICAgIENST1NTX0NNQUtFX1NZU1RFTV9QUk9DRVNTT1I9YWFyY2g2NCBcCiAgICBDUk9TU19DTUFLRV9DUlQ9bXVzbCBcCiAgICBDUk9TU19DTUFLRV9PQkpFQ1RfRkxBR1M9Ii1mZnVuY3Rpb24tc2VjdGlvbnMgLWZkYXRhLXNlY3Rpb25zIC1mUElDIC1tNjQi"},{"path":"Cross/Dockerfile.x86_64-pc-windows-gnu","sha256":"48aa42189d68e269f8ab3fea3d9c09884a805599a09521366237b3bc86fde5f7","contentBase64":"RlJPTSB1YnVudHU6MjQuMDQKCkVOViBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUKCkNPUFkgdG9vbGNoYWluLmNtYWtlIC9vcHQvdG9vbGNoYWluLmNtYWtlCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKICAgIGNsYW5nIFwKICAgIGJ1aWxkLWVzc2VudGlhbCBcCiAgICBjbWFrZSBcCiAgICBnY2MtbWluZ3ctdzY0LXg4Ni02NCBcCiAgICBnKystbWluZ3ctdzY0LXg4Ni02NCBcCiAgICBiaW51dGlscy1taW5ndy13NjQteDg2LTY0IFwKICAgICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKRU5WIENST1NTX1RPT0xDSEFJTl9QUkVGSVg9eDg2XzY0LXc2NC1taW5ndzMyLQoKRU5WIENBUkdPX1RBUkdFVF9YODZfNjRfUENfV0lORE9XU19HTlVfTElOS0VSPSIkQ1JPU1NfVE9PTENIQUlOX1BSRUZJWCJnY2MgXAogICAgQVJfeDg2XzY0X3BjX3dpbmRvd3NfZ251PSIkQ1JPU1NfVE9PTENIQUlOX1BSRUZJWCJhciBcCiAgICBDQ194ODZfNjRfcGNfd2luZG93c19nbnU9IiRDUk9TU19UT09MQ0hBSU5fUFJFRklYImdjYyBcCiAgICBDWFhfeDg2XzY0X3BjX3dpbmRvd3NfZ251PSIkQ1JPU1NfVE9PTENIQUlOX1BSRUZJWCJnKysgXAogICAgQ01BS0VfVE9PTENIQUlOX0ZJTEVfeDg2XzY0X3BjX3dpbmRvd3NfZ251PS9vcHQvdG9vbGNoYWluLmNtYWtlIFwKICAgIEJJTkRHRU5fRVhUUkFfQ0xBTkdfQVJHU194ODZfNjRfcGNfd2luZG93c19nbnU9Ii0tdGFyZ2V0PXg4Nl82NC13NjQtd2luZG93cy1nbnUiIFwKICAgIENST1NTX0NNQUtFX1NZU1RFTV9OQU1FPVdpbmRvd3MgXAogICAgQ1JPU1NfQ01BS0VfU1lTVEVNX1BST0NFU1NPUj14ODZfNjQgXAogICAgQ1JPU1NfQ01BS0VfQ1JUPWdudSBcCiAgICBDUk9TU19DTUFLRV9PQkpFQ1RfRkxBR1M9Ii1mZnVuY3Rpb24tc2VjdGlvbnMgLWZkYXRhLXNlY3Rpb25zIC1mUElDIg=="},{"path":"Cross/Dockerfile.x86_64-unknown-linux-gnu","sha256":"f0e98833a72474ec413dfeff1d6df71fb7fbf0c2c04aa5606d81555cc5d7229f","contentBase64":"RlJPTSB1YnVudHU6MjQuMDQKCkVOViBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUKCkNPUFkgdG9vbGNoYWluLmNtYWtlIC9vcHQvdG9vbGNoYWluLmNtYWtlCgpSVU4gYXB0LWdldCB1cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC15IC0tbm8taW5zdGFsbC1yZWNvbW1lbmRzIFwKICAgIGNsYW5nIFwKICAgIGJ1aWxkLWVzc2VudGlhbCBcCiAgICBjbWFrZSBcCiAgICBnY2MteDg2LTY0LWxpbnV4LWdudSBcCiAgICBnKysteDg2LTY0LWxpbnV4LWdudSBcCiAgICBsaWJjNi1kZXYtYW1kNjQtY3Jvc3MgXAogICAgJiYgcm0gLXJmIC92YXIvbGliL2FwdC9saXN0cy8qCgpFTlYgQ1JPU1NfVE9PTENIQUlOX1BSRUZJWD14ODZfNjQtbGludXgtZ251LQpFTlYgQ1JPU1NfU1lTUk9PVD0vdXNyL3g4Nl82NC1saW51eC1nbnUKRU5WIENBUkdPX1RBUkdFVF9YODZfNjRfVU5LTk9XTl9MSU5VWF9HTlVfTElOS0VSPSIkQ1JPU1NfVE9PTENIQUlOX1BSRUZJWCJnY2MgXAogICAgQVJfeDg2XzY0X3Vua25vd25fbGludXhfZ251PSIkQ1JPU1NfVE9PTENIQUlOX1BSRUZJWCJhciBcCiAgICBDQ194ODZfNjRfdW5rbm93bl9saW51eF9nbnU9IiRDUk9TU19UT09MQ0hBSU5fUFJFRklYImdjYyBcCiAgICBDWFhfeDg2XzY0X3Vua25vd25fbGludXhfZ251PSIkQ1JPU1NfVE9PTENIQUlOX1BSRUZJWCJnKysgXAogICAgQ01BS0VfVE9PTENIQUlOX0ZJTEVfeDg2XzY0X3Vua25vd25fbGludXhfZ251PS9vcHQvdG9vbGNoYWluLmNtYWtlIFwKICAgIEJJTkRHRU5fRVhUUkFfQ0xBTkdfQVJHU194ODZfNjRfdW5rbm93bl9saW51eF9nbnU9Ii0tc3lzcm9vdD0kQ1JPU1NfU1lTUk9PVCAtaWRpcmFmdGVyL3Vzci9pbmNsdWRlIiBcCiAgICBDUk9TU19DTUFLRV9TWVNURU1fTkFNRT1MaW51eCBcCiAgICBDUk9TU19DTUFLRV9TWVNURU1fUFJPQ0VTU09SPXg4Nl82NCBcCiAgICBDUk9TU19DTUFLRV9DUlQ9Z251IFwKICAgIENST1NTX0NNQUtFX09CSkVDVF9GTEFHUz0iLWZmdW5jdGlvbi1zZWN0aW9ucyAtZmRhdGEtc2VjdGlvbnMgLWZQSUMgLW02NCI="},{"path":"Cross/Dockerfile.x86_64-unknown-linux-musl","sha256":"14e4c81fd97ff2d660f5f33d2a3587f7649a127c70eddab525763203ceab044b","contentBase64":"RlJPTSB1YnVudHU6MjQuMDQKCkVOViBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUKCkNPUFkgdG9vbGNoYWluLmNtYWtlIC9vcHQvdG9vbGNoYWluLmNtYWtlCgojIEluc3RhbGwgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGZvciBydXN0IGJ1aWxkClJVTiBhcHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLXkgLS1uby1pbnN0YWxsLXJlY29tbWVuZHMgXAogICAgY2xhbmcgXAogICAgYnVpbGQtZXNzZW50aWFsIFwKICAgIGNtYWtlIFwKICAgIGdpdCBcCiAgICBjYS1jZXJ0aWZpY2F0ZXMgXAogICAgJiYgcm0gLXJmIC92YXIvbGliL2FwdC9saXN0cy8qCgojIEluc3RhbGwgZGVwZW5kZW5jaWVzIGZvciBjcm9zc3Rvb2wtbmc6IGh0dHBzOi8vZ2l0aHViLmNvbS9jcm9zc3Rvb2wtbmcvY3Jvc3N0b29sLW5nL2Jsb2IvMTg1ZjM0ODNlMGU1MDI4MzU3YjEzMWZiOTdjNDMzMTU1MWE3MGExZS90ZXN0aW5nL2RvY2tlci91YnVudHUyMi4wNC9Eb2NrZXJmaWxlI0wxMy1MMTUKUlVOIGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyBcCiAgICBhdXRvY29uZiBcCiAgICBhdXRvbWFrZSBcCiAgICBiaXNvbiBcCiAgICBiemlwMiBcCiAgICBmaWxlIFwKICAgIGZsZXggXAogICAgZ2F3ayBcCiAgICBncGVyZiBcCiAgICBoZWxwMm1hbiBcCiAgICBsaWJuY3Vyc2VzLWRldiBcCiAgICBsaWJ0b29sIFwKICAgIGxpYnRvb2wtYmluIFwKICAgIHBhdGNoIFwKICAgIHB5dGhvbjMgXAogICAgcnN5bmMgXAogICAgdGV4aW5mbyBcCiAgICB1bnppcCBcCiAgICB3Z2V0IFwKICAgIHh6LXV0aWxzIFwKICAgICYmIHJtIC1yZiAvdmFyL2xpYi9hcHQvbGlzdHMvKgoKIyBDcm9zc3Rvb2wgbmcgZG9lc24ndCBhbGxvdyByb290IGJ5IGRlZmF1bHQsIGJ1dCB3ZSBkb24ndCBjYXJlCkVOViBDVF9FWFBFUklNRU5UQUw9eSBcCiAgICBDVF9BTExPV19CVUlMRF9BU19ST09UPXkgXAogICAgQ1RfQUxMT1dfQlVJTERfQVNfUk9PVF9TVVJFPXkgXAogICAgIyBTZXQgdG9vbGNoYWluIHByZWZpeAogICAgQ1RfUFJFRklYPS9vcHQveC10b29scyBcCiAgICBDVF9UQVJHRVQ9eDg2XzY0LXVua25vd24tbGludXgtbXVzbAojIGNvcHkgdGhlIGNyb3NzdG9vbCBjb25maWcKQ09QWSBjcm9zc3Rvb2wtbmcveDg2XzY0LXVua25vd24tbGludXgtbXVzbC5jb25maWcgL2Nyb3NzdG9vbC5jb25maWcKCiMgUnVuIHRoZSBjcm9zc3Rvb2wtbmcgdG9vbGNoYWluIGJ1aWxkIHNjcmlwdCBhbmQgZ2VuZXJhdGUgdGhlIHRvb2xjaGFpbgpDT1BZIGNyb3NzdG9vbC1uZy5zaCAvY3Jvc3N0b29sLW5nLnNoClJVTiBjaG1vZCAreCAvY3Jvc3N0b29sLW5nLnNoICYmIFwKICAgIC9jcm9zc3Rvb2wtbmcuc2gKCiMgQWRkIGl0IHRvIHBhdGgKRU5WIFBBVEg9IiR7Q1RfUFJFRklYfS8kQ1RfVEFSR0VUL2Jpbjoke1BBVEh9IgoKRU5WIENST1NTX1NZU1JPT1Q9IiRDVF9QUkVGSVgvJENUX1RBUkdFVC8kQ1RfVEFSR0VUL3N5c3Jvb3QiCkVOViBDUk9TU19UT09MQ0hBSU5fUFJFRklYPSR7Q1RfVEFSR0VUfS0KRU5WIENBUkdPX1RBUkdFVF9YODZfNjRfVU5LTk9XTl9MSU5VWF9NVVNMX0xJTktFUj0iJENST1NTX1RPT0xDSEFJTl9QUkVGSVgiZ2NjIFwKICAgIEFSX3g4Nl82NF91bmtub3duX2xpbnV4X211c2w9IiRDUk9TU19UT09MQ0hBSU5fUFJFRklYImFyIFwKICAgIENDX3g4Nl82NF91bmtub3duX2xpbnV4X211c2w9IiRDUk9TU19UT09MQ0hBSU5fUFJFRklYImdjYyBcCiAgICBDWFhfeDg2XzY0X3Vua25vd25fbGludXhfbXVzbD0iJENST1NTX1RPT0xDSEFJTl9QUkVGSVgiZysrIFwKICAgIENNQUtFX1RPT0xDSEFJTl9GSUxFX3g4Nl82NF91bmtub3duX2xpbnV4X211c2w9L29wdC90b29sY2hhaW4uY21ha2UgXAogICAgQklOREdFTl9FWFRSQV9DTEFOR19BUkdTX3g4Nl82NF91bmtub3duX2xpbnV4X211c2w9Ii1pZGlyYWZ0ZXIvdXNyL2luY2x1ZGUiIFwKICAgIENST1NTX0NNQUtFX1NZU1RFTV9OQU1FPUxpbnV4IFwKICAgIENST1NTX0NNQUtFX1NZU1RFTV9QUk9DRVNTT1I9eDg2XzY0IFwKICAgIENST1NTX0NNQUtFX0NSVD1tdXNsIFwKICAgIENST1NTX0NNQUtFX09CSkVDVF9GTEFHUz0iLWZmdW5jdGlvbi1zZWN0aW9ucyAtZmRhdGEtc2VjdGlvbnMgLWZQSUMgLW02NCIKCiMgbGluayB3aXRoIGdsaWJjLCBiZWNhdXNlIG1vb25saWdodCBjb21tb24gYyBuZWVkcyBpdApFTlYgTElCR0NDX0RJUj0vb3B0L3gtdG9vbHMveDg2XzY0LXVua25vd24tbGludXgtbXVzbC9saWIvZ2NjL3g4Nl82NC11bmtub3duLWxpbnV4LW11c2wvMTUuMi4wCkVOViBDQVJHT19UQVJHRVRfWDg2XzY0X1VOS05PV05fTElOVVhfTVVTTF9SVVNURkxBR1M9Ii1DIGxpbmstYXJnPS1MJHtMSUJHQ0NfRElSfSAtQyBsaW5rLWFyZz0tbGdjYyI="},{"path":"Cross/crosstool-ng.sh","sha256":"1946522b25894c34d40b0c86b38a452cd1f48a0c7746b41c3067f1d93e3d943b","contentBase64":"IyEvYmluL3NoCnNldCAtZXUKCkNPTkZJRz0vY3Jvc3N0b29sLmNvbmZpZwpDVE5HX1ZFUlNJT049ImNyb3NzdG9vbC1uZy0xLjI4LjAiCgojIEdldCBjcm9zc3Rvb2xzIGF0IHNwZWNpZmljIHZlcnNpb24KZ2l0IGNsb25lIC0tZGVwdGggMSAtLWJyYW5jaCAiJENUTkdfVkVSU0lPTiIgaHR0cHM6Ly9naXRodWIuY29tL2Nyb3NzdG9vbC1uZy9jcm9zc3Rvb2wtbmcgL2Nyb3NzdG9vbC1uZwoKY2QgL2Nyb3NzdG9vbC1uZwoKLi9ib290c3RyYXAKLi9jb25maWd1cmUKbWFrZQptYWtlIGluc3RhbGwKCm1rZGlyIGJ1aWxkCmNkIC9jcm9zc3Rvb2wtbmcvYnVpbGQKCmNwICIkQ09ORklHIiAvY3Jvc3N0b29sLW5nL2J1aWxkLy5jb25maWcKY3QtbmcgYnVpbGQKCnJtIC1yZiAvY3Jvc3N0b29sLW5n"},{"path":"Cross/crosstool-ng/aarch64-unknown-linux-musl.config","sha256":"05db4ac66313dc16b858abed6d1cfcb49b8e7306bac01a4f6b83439745606f84","contentBase64":"IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGU7IERPIE5PVCBFRElULgojIGNyb3NzdG9vbC1ORyAxLjI4LjAgQ29uZmlndXJhdGlvbgojCkNUX0NPTkZJR1VSRV9oYXNfc3RhdGljX2xpbms9eQpDVF9DT05GSUdVUkVfaGFzX2N4eDExPXkKQ1RfQ09ORklHVVJFX2hhc193Z2V0PXkKQ1RfQ09ORklHVVJFX2hhc19tYWtlXzNfODFfb3JfbmV3ZXI9eQpDVF9DT05GSUdVUkVfaGFzX21ha2VfNF8wX29yX25ld2VyPXkKQ1RfQ09ORklHVVJFX2hhc19saWJ0b29sXzJfNF9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfbGlidG9vbGl6ZV8yXzRfb3JfbmV3ZXI9eQpDVF9DT05GSUdVUkVfaGFzX2F1dG9jb25mXzJfNjVfb3JfbmV3ZXI9eQpDVF9DT05GSUdVUkVfaGFzX2F1dG9yZWNvbmZfMl82NV9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfYXV0b21ha2VfMV8xNV9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfZ251X200XzFfNF8xMl9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfcHl0aG9uXzNfNF9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfYmlzb25fMl83X29yX25ld2VyPXkKQ1RfQ09ORklHVVJFX2hhc19iaXNvbl8zXzBfNF9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfcHl0aG9uPXkKQ1RfQ09ORklHVVJFX2hhc19naXQ9eQpDVF9DT05GSUdVUkVfaGFzX21kNXN1bT15CkNUX0NPTkZJR1VSRV9oYXNfc2hhMXN1bT15CkNUX0NPTkZJR1VSRV9oYXNfc2hhMjU2c3VtPXkKQ1RfQ09ORklHVVJFX2hhc19zaGE1MTJzdW09eQpDVF9DT05GSUdVUkVfaGFzX2luc3RhbGxfd2l0aF9zdHJpcF9wcm9ncmFtPXkKQ1RfVkVSU0lPTj0iMS4yOC4wIgpDVF9WQ0hFQ0s9IiIKQ1RfQ09ORklHX1ZFUlNJT05fRU5WPSI0IgpDVF9DT05GSUdfVkVSU0lPTl9DVVJSRU5UPSI0IgpDVF9DT05GSUdfVkVSU0lPTj0iNCIKQ1RfTU9EVUxFUz15CgojCiMgUGF0aHMgYW5kIG1pc2Mgb3B0aW9ucwojCgojCiMgY3Jvc3N0b29sLU5HIGJlaGF2aW9yCiMKIyBDVF9PQlNPTEVURSBpcyBub3Qgc2V0CiMgQ1RfRVhQRVJJTUVOVEFMIGlzIG5vdCBzZXQKIyBDVF9ERUJVR19DVCBpcyBub3Qgc2V0CgojCiMgUGF0aHMKIwpDVF9MT0NBTF9UQVJCQUxMU19ESVI9IiR7SE9NRX0vc3JjIgpDVF9TQVZFX1RBUkJBTExTPXkKIyBDVF9UQVJCQUxMU19CVUlMRFJPT1RfTEFZT1VUIGlzIG5vdCBzZXQKQ1RfV09SS19ESVI9IiR7Q1RfVE9QX0RJUn0vLmJ1aWxkIgpDVF9CVUlMRF9UT1BfRElSPSIke0NUX1dPUktfRElSOi0ke0NUX1RPUF9ESVJ9Ly5idWlsZH0vJHtDVF9IT1NUOitIT1NULSR7Q1RfSE9TVH0vfSR7Q1RfVEFSR0VUfSIKQ1RfQlVJTERfRElSPSIke0NUX0JVSUxEX1RPUF9ESVJ9L2J1aWxkIgpDVF9QUkVGSVhfRElSPSIke0NUX1BSRUZJWDotJHtIT01FfS94LXRvb2xzfS8ke0NUX0hPU1Q6K0hPU1QtJHtDVF9IT1NUfS99JHtDVF9UQVJHRVR9IgpDVF9STV9SRl9QUkVGSVhfRElSPXkKQ1RfUkVNT1ZFX0RPQ1M9eQpDVF9JTlNUQUxMX0xJQ0VOU0VTPXkKQ1RfUFJFRklYX0RJUl9STz15CkNUX1NUUklQX0hPU1RfVE9PTENIQUlOX0VYRUNVVEFCTEVTPXkKIyBDVF9TVFJJUF9UQVJHRVRfVE9PTENIQUlOX0VYRUNVVEFCTEVTIGlzIG5vdCBzZXQKCiMKIyBEb3dubG9hZGluZwojCkNUX0RPV05MT0FEX0FHRU5UX1dHRVQ9eQojIENUX0RPV05MT0FEX0FHRU5UX05PTkUgaXMgbm90IHNldAojIENUX0ZPUkJJRF9ET1dOTE9BRCBpcyBub3Qgc2V0CiMgQ1RfRk9SQ0VfRE9XTkxPQUQgaXMgbm90IHNldApDVF9DT05ORUNUX1RJTUVPVVQ9MTAKQ1RfRE9XTkxPQURfV0dFVF9PUFRJT05TPSItLXRyaWVzPTMgLW5jIC0tcHJvZ3Jlc3M9ZG90OmJpbmFyeSIKIyBDVF9PTkxZX0RPV05MT0FEIGlzIG5vdCBzZXQKIyBDVF9VU0VfTUlSUk9SIGlzIG5vdCBzZXQKQ1RfVkVSSUZZX0RPV05MT0FEX0RJR0VTVD15CkNUX1ZFUklGWV9ET1dOTE9BRF9ESUdFU1RfU0hBNTEyPXkKIyBDVF9WRVJJRllfRE9XTkxPQURfRElHRVNUX1NIQTI1NiBpcyBub3Qgc2V0CiMgQ1RfVkVSSUZZX0RPV05MT0FEX0RJR0VTVF9TSEExIGlzIG5vdCBzZXQKIyBDVF9WRVJJRllfRE9XTkxPQURfRElHRVNUX01ENSBpcyBub3Qgc2V0CkNUX1ZFUklGWV9ET1dOTE9BRF9ESUdFU1RfQUxHPSJzaGE1MTIiCiMgQ1RfVkVSSUZZX0RPV05MT0FEX1NJR05BVFVSRSBpcyBub3Qgc2V0CgojCiMgRXh0cmFjdGluZwojCiMgQ1RfRk9SQ0VfRVhUUkFDVCBpcyBub3Qgc2V0CkNUX09WRVJSSURFX0NPTkZJR19HVUVTU19TVUI9eQojIENUX09OTFlfRVhUUkFDVCBpcyBub3Qgc2V0CkNUX1BBVENIX0JVTkRMRUQ9eQojIENUX1BBVENIX0JVTkRMRURfTE9DQUwgaXMgbm90IHNldApDVF9QQVRDSF9PUkRFUj0iYnVuZGxlZCIKCiMKIyBCdWlsZCBiZWhhdmlvcgojCkNUX1BBUkFMTEVMX0pPQlM9MApDVF9MT0FEPSIiCkNUX1VTRV9QSVBFUz15CkNUX0VYVFJBX0NGTEFHU19GT1JfQlVJTEQ9IiIKQ1RfRVhUUkFfQ1hYRkxBR1NfRk9SX0JVSUxEPSIiCkNUX0VYVFJBX0xERkxBR1NfRk9SX0JVSUxEPSIiCkNUX0VYVFJBX0NGTEFHU19GT1JfSE9TVD0iIgpDVF9FWFRSQV9MREZMQUdTX0ZPUl9IT1NUPSIiCiMgQ1RfQ09ORklHX1NIRUxMX1NIIGlzIG5vdCBzZXQKIyBDVF9DT05GSUdfU0hFTExfQVNIIGlzIG5vdCBzZXQKQ1RfQ09ORklHX1NIRUxMX0JBU0g9eQojIENUX0NPTkZJR19TSEVMTF9DVVNUT00gaXMgbm90IHNldApDVF9DT05GSUdfU0hFTEw9IiR7YmFzaH0iCgojCiMgTG9nZ2luZwojCiMgQ1RfTE9HX0VSUk9SIGlzIG5vdCBzZXQKIyBDVF9MT0dfV0FSTiBpcyBub3Qgc2V0CiMgQ1RfTE9HX0lORk8gaXMgbm90IHNldApDVF9MT0dfRVhUUkE9eQojIENUX0xPR19BTEwgaXMgbm90IHNldAojIENUX0xPR19ERUJVRyBpcyBub3Qgc2V0CkNUX0xPR19MRVZFTF9NQVg9IkVYVFJBIgojIENUX0xPR19TRUVfVE9PTFNfV0FSTiBpcyBub3Qgc2V0CkNUX0xPR19QUk9HUkVTU19CQVI9eQpDVF9MT0dfVE9fRklMRT15CkNUX0xPR19GSUxFX0NPTVBSRVNTPXkKIyBlbmQgb2YgUGF0aHMgYW5kIG1pc2Mgb3B0aW9ucwoKIwojIFRhcmdldCBvcHRpb25zCiMKIyBDVF9BUkNIX0FMUEhBIGlzIG5vdCBzZXQKIyBDVF9BUkNIX0FSQyBpcyBub3Qgc2V0CkNUX0FSQ0hfQVJNPXkKIyBDVF9BUkNIX0FWUiBpcyBub3Qgc2V0CiMgQ1RfQVJDSF9CUEYgaXMgbm90IHNldAojIENUX0FSQ0hfTTY4SyBpcyBub3Qgc2V0CiMgQ1RfQVJDSF9NSVBTIGlzIG5vdCBzZXQKIyBDVF9BUkNIX05JT1MyIGlzIG5vdCBzZXQKIyBDVF9BUkNIX1BPV0VSUEMgaXMgbm90IHNldAojIENUX0FSQ0hfUFJVIGlzIG5vdCBzZXQKIyBDVF9BUkNIX1JJU0NWIGlzIG5vdCBzZXQKIyBDVF9BUkNIX1JYIGlzIG5vdCBzZXQKIyBDVF9BUkNIX1MzOTAgaXMgbm90IHNldAojIENUX0FSQ0hfU0ggaXMgbm90IHNldAojIENUX0FSQ0hfU1BBUkMgaXMgbm90IHNldAojIENUX0FSQ0hfWDg2IGlzIG5vdCBzZXQKIyBDVF9BUkNIX1hURU5TQSBpcyBub3Qgc2V0CkNUX0FSQ0g9ImFybSIKQ1RfQVJDSF9DSE9JQ0VfS1NZTT0iQVJNIgpDVF9BUkNIX0NQVT0iIgpDVF9BUkNIX1RVTkU9IiIKQ1RfQVJDSF9BUk1fU0hPVz15CgojCiMgT3B0aW9ucyBmb3IgYXJtCiMKQ1RfQVJDSF9BUk1fUEtHX0tTWU09IiIKQ1RfQUxMX0FSQ0hfQ0hPSUNFUz0iQUxQSEEgQVJDIEFSTSBBVlIgQlBGIEM2WCBMTTMyIExPT05HQVJDSCBNNjhLIE1JQ1JPQkxBWkUgTUlQUyBNT1hJRSBNU1A0MzAgTklPUzIgT1BFTlJJU0MgUEFSSVNDIFBPV0VSUEMgUFJVIFJJU0NWIFJYIFMzOTAgU0ggU1BBUkMgVFJJQ09SRSBYODYgWFRFTlNBIgpDVF9BUkNIX1NVRkZJWD0iIgojIENUX09NSVRfVEFSR0VUX1ZFTkRPUiBpcyBub3Qgc2V0CgojCiMgR2VuZXJpYyB0YXJnZXQgb3B0aW9ucwojCiMgQ1RfTVVMVElMSUIgaXMgbm90IHNldApDVF9ERU1VTFRJTElCPXkKQ1RfQVJDSF9TVVBQT1JUU19CT1RIX01NVT15CkNUX0FSQ0hfREVGQVVMVF9IQVNfTU1VPXkKQ1RfQVJDSF9VU0VfTU1VPXkKQ1RfQVJDSF9TVVBQT1JUU19GTEFUX0ZPUk1BVD15CkNUX0FSQ0hfU1VQUE9SVFNfTElCU0FOSVRJWkVSPXkKQ1RfQVJDSF9TVVBQT1JUU19FSVRIRVJfRU5ESUFOPXkKQ1RfQVJDSF9ERUZBVUxUX0xFPXkKIyBDVF9BUkNIX0JFIGlzIG5vdCBzZXQKQ1RfQVJDSF9MRT15CkNUX0FSQ0hfRU5ESUFOPSJsaXR0bGUiCkNUX0FSQ0hfU1VQUE9SVFNfMzI9eQpDVF9BUkNIX1NVUFBPUlRTXzY0PXkKQ1RfQVJDSF9ERUZBVUxUXzMyPXkKQ1RfQVJDSF9CSVRORVNTPTY0CiMgQ1RfQVJDSF8zMiBpcyBub3Qgc2V0CkNUX0FSQ0hfNjQ9eQoKIwojIFRhcmdldCBvcHRpbWlzYXRpb25zCiMKQ1RfQVJDSF9TVVBQT1JUU19XSVRIX0FSQ0g9eQpDVF9BUkNIX1NVUFBPUlRTX1dJVEhfQ1BVPXkKQ1RfQVJDSF9TVVBQT1JUU19XSVRIX1RVTkU9eQpDVF9BUkNIX0VYQ0xVU0lWRV9XSVRIX0NQVT15CkNUX0FSQ0hfQVJDSD0iIgpDVF9UQVJHRVRfQ0ZMQUdTPSIiCkNUX1RBUkdFVF9MREZMQUdTPSIiCiMgZW5kIG9mIFRhcmdldCBvcHRpb25zCgojCiMgVG9vbGNoYWluIG9wdGlvbnMKIwoKIwojIEdlbmVyYWwgdG9vbGNoYWluIG9wdGlvbnMKIwpDVF9GT1JDRV9TWVNST09UPXkKQ1RfVVNFX1NZU1JPT1Q9eQpDVF9TWVNST09UX05BTUU9InN5c3Jvb3QiCkNUX1NZU1JPT1RfRElSX1BSRUZJWD0iIgpDVF9XQU5UU19TVEFUSUNfTElOSz15CkNUX1dBTlRTX1NUQVRJQ19MSU5LX0NYWD15CiMgQ1RfU1RBVElDX1RPT0xDSEFJTiBpcyBub3Qgc2V0CkNUX1NIT1dfQ1RfVkVSU0lPTj15CkNUX1RPT0xDSEFJTl9QS0dWRVJTSU9OPSIiCkNUX1RPT0xDSEFJTl9CVUdVUkw9IiIKCiMKIyBUdXBsZSBjb21wbGV0aW9uIGFuZCBhbGlhc2luZwojCkNUX1RBUkdFVF9WRU5ET1I9IiIKQ1RfVEFSR0VUX0FMSUFTX1NFRF9FWFBSPSIiCkNUX1RBUkdFVF9BTElBUz0iIgoKIwojIFRvb2xjaGFpbiB0eXBlCiMKQ1RfQ1JPU1M9eQojIENUX0NBTkFESUFOIGlzIG5vdCBzZXQKQ1RfVE9PTENIQUlOX1RZUEU9ImNyb3NzIgoKIwojIEJ1aWxkIHN5c3RlbQojCkNUX0JVSUxEPSIiCkNUX0JVSUxEX1BSRUZJWD0iIgpDVF9CVUlMRF9TVUZGSVg9IiIKCiMKIyBNaXNjIG9wdGlvbnMKIwojIENUX1RPT0xDSEFJTl9FTkFCTEVfTkxTIGlzIG5vdCBzZXQKIyBDVF9UT09MQ0hBSU5fQ01BS0VfVE9PTENIQUlOX0ZJTEUgaXMgbm90IHNldAojIGVuZCBvZiBUb29sY2hhaW4gb3B0aW9ucwoKIwojIE9wZXJhdGluZyBTeXN0ZW0KIwpDVF9LRVJORUxfU1VQUE9SVFNfU0hBUkVEX0xJQlM9eQojIENUX0tFUk5FTF9CQVJFX01FVEFMIGlzIG5vdCBzZXQKQ1RfS0VSTkVMX0xJTlVYPXkKQ1RfS0VSTkVMPSJsaW51eCIKQ1RfS0VSTkVMX0NIT0lDRV9LU1lNPSJMSU5VWCIKQ1RfS0VSTkVMX0xJTlVYX1NIT1c9eQoKIwojIE9wdGlvbnMgZm9yIGxpbnV4CiMKQ1RfS0VSTkVMX0xJTlVYX1BLR19LU1lNPSJMSU5VWCIKQ1RfTElOVVhfRElSX05BTUU9ImxpbnV4IgpDVF9MSU5VWF9QS0dfTkFNRT0ibGludXgiCkNUX0xJTlVYX1NSQ19SRUxFQVNFPXkKIyBDVF9MSU5VWF9TUkNfREVWRUwgaXMgbm90IHNldApDVF9MSU5VWF9QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9MSU5VWF9WXzZfMTY9eQojIENUX0xJTlVYX1ZfNl8xNSBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzE0IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfMTMgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl8xMiBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzExIGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfMTAgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl85IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfOCBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzcgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl82IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfNSBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzQgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl8zIGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfMiBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzEgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl8wIGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzVfMTkgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV8xOCBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl81XzE3IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzVfMTYgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV8xNSBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl81XzE0IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzVfMTMgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV8xMiBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl81XzExIGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzVfMTAgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV85IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzVfOCBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl81XzcgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV80IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzRfMjAgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNF8xOSBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl80XzE4IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzRfMTUgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNF8xNCBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl80XzkgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNF80IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzRfMSBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl8zXzE2IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzNfMTMgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfM18xMiBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl8zXzEwIGlzIG5vdCBzZXQKQ1RfTElOVVhfVkVSU0lPTj0iNi4xNiIKQ1RfTElOVVhfTUlSUk9SUz0iJChDVF9NaXJyb3JzIGtlcm5lbC5vcmcgbGludXggJHtDVF9MSU5VWF9WRVJTSU9OfSkiCkNUX0xJTlVYX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0xJTlVYX0FSQ0hJVkVfRElSTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfTElOVVhfQVJDSElWRV9GT1JNQVRTPSIudGFyLnh6IC50YXIuZ3oiCkNUX0xJTlVYX1NJR05BVFVSRV9GT1JNQVQ9InVucGFja2VkLy5zaWduIgpDVF9MSU5VWF9sYXRlcl90aGFuXzVfMTk9eQpDVF9MSU5VWF81XzE5X29yX2xhdGVyPXkKQ1RfTElOVVhfbGF0ZXJfdGhhbl81XzEyPXkKQ1RfTElOVVhfNV8xMl9vcl9sYXRlcj15CkNUX0xJTlVYX2xhdGVyX3RoYW5fNV81PXkKQ1RfTElOVVhfNV81X29yX2xhdGVyPXkKQ1RfTElOVVhfbGF0ZXJfdGhhbl81XzM9eQpDVF9MSU5VWF81XzNfb3JfbGF0ZXI9eQpDVF9MSU5VWF9sYXRlcl90aGFuXzRfOD15CkNUX0xJTlVYXzRfOF9vcl9sYXRlcj15CkNUX0xJTlVYX2xhdGVyX3RoYW5fM183PXkKQ1RfTElOVVhfM183X29yX2xhdGVyPXkKQ1RfTElOVVhfUkVRVUlSRV8zXzdfb3JfbGF0ZXI9eQpDVF9MSU5VWF9sYXRlcl90aGFuXzNfMj15CkNUX0xJTlVYXzNfMl9vcl9sYXRlcj15CkNUX0tFUk5FTF9oYXNfcnN5bmM9eQpDVF9LRVJORUxfREVQX1JTWU5DPXkKQ1RfS0VSTkVMX0xJTlVYX1ZFUkJPU0lUWV8wPXkKIyBDVF9LRVJORUxfTElOVVhfVkVSQk9TSVRZXzEgaXMgbm90IHNldAojIENUX0tFUk5FTF9MSU5VWF9WRVJCT1NJVFlfMiBpcyBub3Qgc2V0CkNUX0tFUk5FTF9MSU5VWF9WRVJCT1NFX0xFVkVMPTAKQ1RfQUxMX0tFUk5FTF9DSE9JQ0VTPSJCQVJFX01FVEFMIExJTlVYIFdJTkRPV1MiCgojCiMgQ29tbW9uIGtlcm5lbCBvcHRpb25zCiMKQ1RfU0hBUkVEX0xJQlM9eQojIGVuZCBvZiBPcGVyYXRpbmcgU3lzdGVtCgojCiMgQmluYXJ5IHV0aWxpdGllcwojCkNUX0FSQ0hfQklORk1UX0VMRj15CkNUX0JJTlVUSUxTX0JJTlVUSUxTPXkKQ1RfQklOVVRJTFM9ImJpbnV0aWxzIgpDVF9CSU5VVElMU19DSE9JQ0VfS1NZTT0iQklOVVRJTFMiCkNUX0JJTlVUSUxTX0JJTlVUSUxTX1NIT1c9eQoKIwojIE9wdGlvbnMgZm9yIGJpbnV0aWxzCiMKQ1RfQklOVVRJTFNfQklOVVRJTFNfUEtHX0tTWU09IkJJTlVUSUxTIgpDVF9CSU5VVElMU19ESVJfTkFNRT0iYmludXRpbHMiCkNUX0JJTlVUSUxTX1VTRV9HTlU9eQojIENUX0JJTlVUSUxTX1VTRV9PUkFDTEUgaXMgbm90IHNldApDVF9CSU5VVElMU19VU0U9IkJJTlVUSUxTIgpDVF9CSU5VVElMU19QS0dfTkFNRT0iYmludXRpbHMiCkNUX0JJTlVUSUxTX1NSQ19SRUxFQVNFPXkKIyBDVF9CSU5VVElMU19TUkNfREVWRUwgaXMgbm90IHNldApDVF9CSU5VVElMU19QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9CSU5VVElMU19WXzJfNDU9eQojIENUX0JJTlVUSUxTX1ZfMl80NCBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzQzIGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfNDIgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl80MSBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzQwIGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMzkgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8zOCBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzM3IGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMzYgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8zNSBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzM0IGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMzMgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8zMiBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzMxIGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMzAgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8yOSBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzI4IGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMjcgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8yNiBpcyBub3Qgc2V0CkNUX0JJTlVUSUxTX1ZFUlNJT049IjIuNDUiCkNUX0JJTlVUSUxTX01JUlJPUlM9IiQoQ1RfTWlycm9ycyBHTlUgYmludXRpbHMpICQoQ1RfTWlycm9ycyBzb3VyY2V3YXJlIGJpbnV0aWxzL3JlbGVhc2VzKSIKQ1RfQklOVVRJTFNfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfQklOVVRJTFNfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9CSU5VVElMU19BUkNISVZFX0ZPUk1BVFM9Ii50YXIueHogLnRhci5iejIgLnRhci5neiIKQ1RfQklOVVRJTFNfU0lHTkFUVVJFX0ZPUk1BVD0icGFja2VkLy5zaWciCkNUX0JJTlVUSUxTXzJfNDVfb3JfbGF0ZXI9eQpDVF9CSU5VVElMU18yXzQ1X29yX29sZGVyPXkKQ1RfQklOVVRJTFNfbGF0ZXJfdGhhbl8yXzQ0PXkKQ1RfQklOVVRJTFNfMl80NF9vcl9sYXRlcj15CkNUX0JJTlVUSUxTX2xhdGVyX3RoYW5fMl80MT15CkNUX0JJTlVUSUxTXzJfNDFfb3JfbGF0ZXI9eQpDVF9CSU5VVElMU19sYXRlcl90aGFuXzJfMzk9eQpDVF9CSU5VVElMU18yXzM5X29yX2xhdGVyPXkKQ1RfQklOVVRJTFNfbGF0ZXJfdGhhbl8yXzMwPXkKQ1RfQklOVVRJTFNfMl8zMF9vcl9sYXRlcj15CkNUX0JJTlVUSUxTX2xhdGVyX3RoYW5fMl8yNz15CkNUX0JJTlVUSUxTXzJfMjdfb3JfbGF0ZXI9eQpDVF9CSU5VVElMU19sYXRlcl90aGFuXzJfMjY9eQpDVF9CSU5VVElMU18yXzI2X29yX2xhdGVyPXkKCiMKIyBHTlUgYmludXRpbHMKIwpDVF9CSU5VVElMU19HT0xEX1NVUFBPUlRTX0FSQ0g9eQpDVF9CSU5VVElMU19MSU5LRVJfTEQ9eQpDVF9CSU5VVElMU19MSU5LRVJTX0xJU1Q9ImxkIgpDVF9CSU5VVElMU19MSU5LRVJfREVGQVVMVD0iYmZkIgpDVF9CSU5VVElMU19QTFVHSU5TPXkKQ1RfQklOVVRJTFNfUkVMUk89bQpDVF9CSU5VVElMU19ERVRFUk1JTklTVElDX0FSQ0hJVkVTPXkKQ1RfQklOVVRJTFNfRVhUUkFfQ09ORklHX0FSUkFZPSIiCiMgQ1RfQklOVVRJTFNfRk9SX1RBUkdFVCBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfR1BST0ZORyBpcyBub3Qgc2V0CkNUX0FMTF9CSU5VVElMU19DSE9JQ0VTPSJCSU5VVElMUyIKIyBlbmQgb2YgQmluYXJ5IHV0aWxpdGllcwoKIwojIEMtbGlicmFyeQojCiMgQ1RfTElCQ19HTElCQyBpcyBub3Qgc2V0CkNUX0xJQkNfTVVTTD15CiMgQ1RfTElCQ19VQ0xJQkNfTkcgaXMgbm90IHNldApDVF9MSUJDPSJtdXNsIgpDVF9MSUJDX0NIT0lDRV9LU1lNPSJNVVNMIgpDVF9USFJFQURTPSJtdXNsIgpDVF9MSUJDX01VU0xfU0hPVz15CgojCiMgT3B0aW9ucyBmb3IgbXVzbAojCkNUX0xJQkNfTVVTTF9QS0dfS1NZTT0iTVVTTCIKQ1RfTVVTTF9ESVJfTkFNRT0ibXVzbCIKQ1RfTVVTTF9QS0dfTkFNRT0ibXVzbCIKQ1RfTVVTTF9TUkNfUkVMRUFTRT15CiMgQ1RfTVVTTF9TUkNfREVWRUwgaXMgbm90IHNldApDVF9NVVNMX1BBVENIX09SREVSPSJnbG9iYWwiCkNUX01VU0xfVl8xXzJfNT15CiMgQ1RfTVVTTF9WXzFfMl80IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8yXzMgaXMgbm90IHNldAojIENUX01VU0xfVl8xXzJfMiBpcyBub3Qgc2V0CiMgQ1RfTVVTTF9WXzFfMl8xIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzI0IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzIzIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzIyIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzIxIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzIwIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzE5IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzE4IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzE3IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzE2IGlzIG5vdCBzZXQKQ1RfTVVTTF9WRVJTSU9OPSIxLjIuNSIKQ1RfTVVTTF9NSVJST1JTPSJodHRwczovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzIgpDVF9NVVNMX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX01VU0xfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9NVVNMX0FSQ0hJVkVfRk9STUFUUz0iLnRhci5neiIKQ1RfTVVTTF9TSUdOQVRVUkVfRk9STUFUPSJwYWNrZWQvLmFzYyIKIyBDVF9MSUJDX01VU0xfREVCVUcgaXMgbm90IHNldAojIENUX0xJQkNfTVVTTF9XQVJOSU5HUyBpcyBub3Qgc2V0CiMgQ1RfTElCQ19NVVNMX09QVElNSVpFX05PTkUgaXMgbm90IHNldApDVF9MSUJDX01VU0xfT1BUSU1JWkVfQVVUTz15CiMgQ1RfTElCQ19NVVNMX09QVElNSVpFX1NQRUVEIGlzIG5vdCBzZXQKIyBDVF9MSUJDX01VU0xfT1BUSU1JWkVfU0laRSBpcyBub3Qgc2V0CkNUX0xJQkNfTVVTTF9PUFRJTUlaRT0iYXV0byIKQ1RfTElCQ19NVVNMX0VYVFJBX0NGTEFHUz0iIgpDVF9BTExfTElCQ19DSE9JQ0VTPSJBVlJfTElCQyBHTElCQyBNSU5HV19XNjQgTU9YSUVCT1ggTVVTTCBORVdMSUIgTk9ORSBQSUNPTElCQyBVQ0xJQkNfTkciCkNUX0xJQkNfU1VQUE9SVF9USFJFQURTX0FOWT15CkNUX0xJQkNfU1VQUE9SVF9USFJFQURTX05BVElWRT15CgojCiMgQ29tbW9uIEMgbGlicmFyeSBvcHRpb25zCiMKQ1RfVEhSRUFEU19OQVRJVkU9eQojIENUX0NSRUFURV9MRFNPX0NPTkYgaXMgbm90IHNldApDVF9MSUJDX1hMREQ9eQojIGVuZCBvZiBDLWxpYnJhcnkKCiMKIyBDIGNvbXBpbGVyCiMKQ1RfQ0NfQ09SRV9ORUVERUQ9eQpDVF9DQ19TVVBQT1JUX0NYWD15CkNUX0NDX1NVUFBPUlRfRk9SVFJBTj15CkNUX0NDX1NVUFBPUlRfQURBPXkKQ1RfQ0NfU1VQUE9SVF9EPXkKQ1RfQ0NfU1VQUE9SVF9KSVQ9eQpDVF9DQ19TVVBQT1JUX09CSkM9eQpDVF9DQ19TVVBQT1JUX09CSkNYWD15CkNUX0NDX1NVUFBPUlRfR09MQU5HPXkKQ1RfQ0NfR0NDPXkKQ1RfQ0M9ImdjYyIKQ1RfQ0NfQ0hPSUNFX0tTWU09IkdDQyIKQ1RfQ0NfR0NDX1NIT1c9eQoKIwojIE9wdGlvbnMgZm9yIGdjYwojCkNUX0NDX0dDQ19QS0dfS1NZTT0iR0NDIgpDVF9HQ0NfRElSX05BTUU9ImdjYyIKQ1RfR0NDX1VTRV9HTlU9eQojIENUX0dDQ19VU0VfT1JBQ0xFIGlzIG5vdCBzZXQKQ1RfR0NDX1VTRT0iR0NDIgpDVF9HQ0NfUEtHX05BTUU9ImdjYyIKQ1RfR0NDX1NSQ19SRUxFQVNFPXkKIyBDVF9HQ0NfU1JDX0RFVkVMIGlzIG5vdCBzZXQKQ1RfR0NDX1BBVENIX09SREVSPSJnbG9iYWwiCkNUX0dDQ19WXzE1PXkKIyBDVF9HQ0NfVl8xNCBpcyBub3Qgc2V0CiMgQ1RfR0NDX1ZfMTMgaXMgbm90IHNldAojIENUX0dDQ19WXzEyIGlzIG5vdCBzZXQKIyBDVF9HQ0NfVl8xMSBpcyBub3Qgc2V0CiMgQ1RfR0NDX1ZfMTAgaXMgbm90IHNldAojIENUX0dDQ19WXzkgaXMgbm90IHNldAojIENUX0dDQ19WXzggaXMgbm90IHNldAojIENUX0dDQ19WXzcgaXMgbm90IHNldAojIENUX0dDQ19WXzYgaXMgbm90IHNldAojIENUX0dDQ19WXzUgaXMgbm90IHNldAojIENUX0dDQ19WXzRfOSBpcyBub3Qgc2V0CkNUX0dDQ19WRVJTSU9OPSIxNS4yLjAiCkNUX0dDQ19NSVJST1JTPSIkKENUX01pcnJvcnMgR05VIGdjYy9nY2MtJHtDVF9HQ0NfVkVSU0lPTn0pICQoQ1RfTWlycm9ycyBzb3VyY2V3YXJlIGdjYy9yZWxlYXNlcy9nY2MtJHtDVF9HQ0NfVkVSU0lPTn0pIgpDVF9HQ0NfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfR0NDX0FSQ0hJVkVfRElSTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfR0NDX0FSQ0hJVkVfRk9STUFUUz0iLnRhci54eiAudGFyLmd6IgpDVF9HQ0NfU0lHTkFUVVJFX0ZPUk1BVD0iIgpDVF9HQ0NfbGF0ZXJfdGhhbl8xNT15CkNUX0dDQ18xNV9vcl9sYXRlcj15CkNUX0dDQ19sYXRlcl90aGFuXzE0PXkKQ1RfR0NDXzE0X29yX2xhdGVyPXkKQ1RfR0NDX2xhdGVyX3RoYW5fMTM9eQpDVF9HQ0NfMTNfb3JfbGF0ZXI9eQpDVF9HQ0NfbGF0ZXJfdGhhbl8xMj15CkNUX0dDQ18xMl9vcl9sYXRlcj15CkNUX0dDQ19sYXRlcl90aGFuXzExPXkKQ1RfR0NDXzExX29yX2xhdGVyPXkKQ1RfR0NDX2xhdGVyX3RoYW5fMTA9eQpDVF9HQ0NfMTBfb3JfbGF0ZXI9eQpDVF9HQ0NfbGF0ZXJfdGhhbl85PXkKQ1RfR0NDXzlfb3JfbGF0ZXI9eQpDVF9HQ0NfbGF0ZXJfdGhhbl84PXkKQ1RfR0NDXzhfb3JfbGF0ZXI9eQpDVF9HQ0NfbGF0ZXJfdGhhbl83PXkKQ1RfR0NDXzdfb3JfbGF0ZXI9eQpDVF9HQ0NfbGF0ZXJfdGhhbl82PXkKQ1RfR0NDXzZfb3JfbGF0ZXI9eQpDVF9HQ0NfbGF0ZXJfdGhhbl81PXkKQ1RfR0NDXzVfb3JfbGF0ZXI9eQpDVF9HQ0NfbGF0ZXJfdGhhbl80Xzk9eQpDVF9HQ0NfNF85X29yX2xhdGVyPXkKQ1RfQ0NfR0NDX0VOQUJMRV9QTFVHSU5TPXkKQ1RfQ0NfR0NDX0hBU19MSUJNUFg9eQpDVF9DQ19HQ0NfRU5BQkxFX0NYWF9GTEFHUz0iIgpDVF9DQ19HQ0NfQ09SRV9FWFRSQV9DT05GSUdfQVJSQVk9IiIKQ1RfQ0NfR0NDX0VYVFJBX0NPTkZJR19BUlJBWT0iIgpDVF9DQ19HQ0NfU1RBVElDX0xJQlNURENYWD15CiMgQ1RfQ0NfR0NDX1NZU1RFTV9aTElCIGlzIG5vdCBzZXQKQ1RfQ0NfR0NDX0NPTkZJR19UTFM9bQoKIwojIE9wdGltaXNhdGlvbiBmZWF0dXJlcwojCkNUX0NDX0dDQ19VU0VfR1JBUEhJVEU9eQpDVF9DQ19HQ0NfVVNFX0xUTz15CkNUX0NDX0dDQ19MVE9fWlNURD1tCgojCiMgU2V0dGluZ3MgZm9yIGxpYnJhcmllcyBydW5uaW5nIG9uIHRhcmdldAojCiMgQ1RfQ0NfR0NDX0VOQUJMRV9ERUZBVUxUX1BJRSBpcyBub3Qgc2V0CkNUX0NDX0dDQ19FTkFCTEVfVEFSR0VUX09QVFNQQUNFPXkKQ1RfQ0NfR0NDX0xJQlNURENYWD1tCiMgQ1RfQ0NfR0NDX0xJQlNURENYWF9IT1NURURfRElTQUJMRSBpcyBub3Qgc2V0CkNUX0NDX0dDQ19MSUJTVERDWFhfVEFSR0VUX0NYWEZMQUdTPSIiCiMgQ1RfQ0NfR0NDX0xJQk1VREZMQVAgaXMgbm90IHNldAojIENUX0NDX0dDQ19MSUJHT01QIGlzIG5vdCBzZXQKIyBDVF9DQ19HQ0NfTElCU1NQIGlzIG5vdCBzZXQKIyBDVF9DQ19HQ0NfTElCUVVBRE1BVEggaXMgbm90IHNldApDVF9DQ19HQ0NfTElCU1REQ1hYX1ZFUkJPU0U9bQoKIwojIE1pc2MuIG9ic2N1cmUgb3B0aW9ucy4KIwpDVF9DQ19DWEFfQVRFWElUPXkKQ1RfQ0NfR0NDX1RNX0NMT05FX1JFR0lTVFJZPW0KIyBDVF9DQ19HQ0NfRElTQUJMRV9QQ0ggaXMgbm90IHNldApDVF9DQ19HQ0NfU0pMSl9FWENFUFRJT05TPW0KQ1RfQ0NfR0NDX0xEQkxfMTI4PW0KIyBDVF9DQ19HQ0NfQlVJTERfSUQgaXMgbm90IHNldApDVF9DQ19HQ0NfTE5LX0hBU0hfU1RZTEVfREVGQVVMVD15CiMgQ1RfQ0NfR0NDX0xOS19IQVNIX1NUWUxFX1NZU1YgaXMgbm90IHNldAojIENUX0NDX0dDQ19MTktfSEFTSF9TVFlMRV9HTlUgaXMgbm90IHNldAojIENUX0NDX0dDQ19MTktfSEFTSF9TVFlMRV9CT1RIIGlzIG5vdCBzZXQKQ1RfQ0NfR0NDX0xOS19IQVNIX1NUWUxFPSIiCkNUX0NDX0dDQ19ERUNfRkxPQVRTX0FVVE89eQojIENUX0NDX0dDQ19ERUNfRkxPQVRTX0JJRCBpcyBub3Qgc2V0CiMgQ1RfQ0NfR0NDX0RFQ19GTE9BVFNfRFBEIGlzIG5vdCBzZXQKIyBDVF9DQ19HQ0NfREVDX0ZMT0FUU19OTyBpcyBub3Qgc2V0CkNUX0NDX0dDQ19ERUNfRkxPQVRTPSIiCkNUX0FMTF9DQ19DSE9JQ0VTPSJHQ0MiCgojCiMgQWRkaXRpb25hbCBzdXBwb3J0ZWQgbGFuZ3VhZ2VzOgojCkNUX0NDX0xBTkdfQ1hYPXkKIyBDVF9DQ19MQU5HX0ZPUlRSQU4gaXMgbm90IHNldAojIGVuZCBvZiBDIGNvbXBpbGVyCgojCiMgTGlua2VycwojCgojCiMgQkZEIGVuYWJsZWQgaW4gYmludXRpbHMKIwojIENUX0xJTktFUl9NT0xEIGlzIG5vdCBzZXQKQ1RfQUxMX0xJTktFUl9DSE9JQ0VTPSJNT0xEIgojIGVuZCBvZiBMaW5rZXJzCgojCiMgRGVidWcgZmFjaWxpdGllcwojCiMgQ1RfREVCVUdfRFVNQSBpcyBub3Qgc2V0CiMgQ1RfREVCVUdfR0RCIGlzIG5vdCBzZXQKIyBDVF9ERUJVR19MVFJBQ0UgaXMgbm90IHNldAojIENUX0RFQlVHX1NUUkFDRSBpcyBub3Qgc2V0CkNUX0FMTF9ERUJVR19DSE9JQ0VTPSJEVU1BIEdEQiBMVFJBQ0UgU1RSQUNFIgojIGVuZCBvZiBEZWJ1ZyBmYWNpbGl0aWVzCgojCiMgQ29tcGFuaW9uIGxpYnJhcmllcwojCiMgQ1RfQ09NUExJQlNfQ0hFQ0sgaXMgbm90IHNldAojIENUX0NPTVBfTElCU19DTE9PRyBpcyBub3Qgc2V0CkNUX0NPTVBfTElCU19FWFBBVD15CkNUX0NPTVBfTElCU19FWFBBVF9QS0dfS1NZTT0iRVhQQVQiCkNUX0VYUEFUX0RJUl9OQU1FPSJleHBhdCIKQ1RfRVhQQVRfUEtHX05BTUU9ImV4cGF0IgpDVF9FWFBBVF9TUkNfUkVMRUFTRT15CiMgQ1RfRVhQQVRfU1JDX0RFVkVMIGlzIG5vdCBzZXQKQ1RfRVhQQVRfUEFUQ0hfT1JERVI9Imdsb2JhbCIKQ1RfRVhQQVRfVl8yXzc9eQojIENUX0VYUEFUX1ZfMl82IGlzIG5vdCBzZXQKIyBDVF9FWFBBVF9WXzJfNSBpcyBub3Qgc2V0CkNUX0VYUEFUX1ZFUlNJT049IjIuNy4xIgpDVF9FWFBBVF9NSVJST1JTPSJodHRwOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L2V4cGF0L2V4cGF0LyR7Q1RfRVhQQVRfVkVSU0lPTn0gaHR0cHM6Ly9naXRodWIuY29tL2xpYmV4cGF0L2xpYmV4cGF0L3JlbGVhc2VzL2Rvd25sb2FkL1JfJHtDVF9FWFBBVF9WRVJTSU9OLy8uL199IgpDVF9FWFBBVF9BUkNISVZFX0ZJTEVOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9FWFBBVF9BUkNISVZFX0RJUk5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0VYUEFUX0FSQ0hJVkVfRk9STUFUUz0iLnRhci54eiAudGFyLmx6IC50YXIuYnoyIC50YXIuZ3oiCkNUX0VYUEFUX1NJR05BVFVSRV9GT1JNQVQ9IiIKQ1RfQ09NUF9MSUJTX0dFVFRFWFQ9eQpDVF9DT01QX0xJQlNfR0VUVEVYVF9QS0dfS1NZTT0iR0VUVEVYVCIKQ1RfR0VUVEVYVF9ESVJfTkFNRT0iZ2V0dGV4dCIKQ1RfR0VUVEVYVF9QS0dfTkFNRT0iZ2V0dGV4dCIKQ1RfR0VUVEVYVF9TUkNfUkVMRUFTRT15CiMgQ1RfR0VUVEVYVF9TUkNfREVWRUwgaXMgbm90IHNldApDVF9HRVRURVhUX1BBVENIX09SREVSPSJnbG9iYWwiCkNUX0dFVFRFWFRfVl8wXzI2PXkKIyBDVF9HRVRURVhUX1ZfMF8yM18xIGlzIG5vdCBzZXQKIyBDVF9HRVRURVhUX1ZfMF8yMl81IGlzIG5vdCBzZXQKIyBDVF9HRVRURVhUX1ZfMF8yMSBpcyBub3Qgc2V0CiMgQ1RfR0VUVEVYVF9WXzBfMjBfMSBpcyBub3Qgc2V0CiMgQ1RfR0VUVEVYVF9WXzBfMTlfOF8xIGlzIG5vdCBzZXQKQ1RfR0VUVEVYVF9WRVJTSU9OPSIwLjI2IgpDVF9HRVRURVhUX01JUlJPUlM9IiQoQ1RfTWlycm9ycyBHTlUgZ2V0dGV4dCkiCkNUX0dFVFRFWFRfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfR0VUVEVYVF9BUkNISVZFX0RJUk5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0dFVFRFWFRfQVJDSElWRV9GT1JNQVRTPSIudGFyLnh6IC50YXIuZ3oiCkNUX0dFVFRFWFRfU0lHTkFUVVJFX0ZPUk1BVD0icGFja2VkLy5zaWciCkNUX0dFVFRFWFRfbGF0ZXJfdGhhbl8wXzIzPXkKQ1RfR0VUVEVYVF8wXzIzX29yX2xhdGVyPXkKQ1RfR0VUVEVYVF9sYXRlcl90aGFuXzBfMjE9eQpDVF9HRVRURVhUXzBfMjFfb3JfbGF0ZXI9eQpDVF9HRVRURVhUX0lOQ09NUEFUSUJMRV9XSVRIX1VDTElCQ19ORz15CgojCiMgVGhpcyB2ZXJzaW9uIG9mIGdldHRleHQgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB1Q2xpYmMtTkcuIFNlbGVjdAojCgojCiMgYSBkaWZmZXJlbnQgdmVyc2lvbiBpZiB1Q2xpYmMtTkcgaXMgdXNlZCBvbiB0aGUgdGFyZ2V0IG9yIChpbiBhCiMKCiMKIyBDYW5hZGlhbiBjcm9zcyBidWlsZCkgb24gdGhlIGhvc3QuCiMKQ1RfQ09NUF9MSUJTX0dNUD15CkNUX0NPTVBfTElCU19HTVBfUEtHX0tTWU09IkdNUCIKQ1RfR01QX0RJUl9OQU1FPSJnbXAiCkNUX0dNUF9QS0dfTkFNRT0iZ21wIgpDVF9HTVBfU1JDX1JFTEVBU0U9eQojIENUX0dNUF9TUkNfREVWRUwgaXMgbm90IHNldApDVF9HTVBfUEFUQ0hfT1JERVI9Imdsb2JhbCIKQ1RfR01QX1ZfNl8zPXkKIyBDVF9HTVBfVl82XzIgaXMgbm90IHNldAojIENUX0dNUF9WXzZfMSBpcyBub3Qgc2V0CkNUX0dNUF9WRVJTSU9OPSI2LjMuMCIKQ1RfR01QX01JUlJPUlM9Imh0dHBzOi8vZ21wbGliLm9yZy9kb3dubG9hZC9nbXAgaHR0cHM6Ly9nbXBsaWIub3JnL2Rvd25sb2FkL2dtcC9hcmNoaXZlICQoQ1RfTWlycm9ycyBHTlUgZ21wKSIKQ1RfR01QX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0dNUF9BUkNISVZFX0RJUk5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0dNUF9BUkNISVZFX0ZPUk1BVFM9Ii50YXIueHogLnRhci5seiAudGFyLmJ6MiIKQ1RfR01QX1NJR05BVFVSRV9GT1JNQVQ9InBhY2tlZC8uc2lnIgpDVF9HTVBfRVhUUkFfQ0ZMQUdTPSItc3RkPWdudTE3IgpDVF9DT01QX0xJQlNfSVNMPXkKQ1RfQ09NUF9MSUJTX0lTTF9QS0dfS1NZTT0iSVNMIgpDVF9JU0xfRElSX05BTUU9ImlzbCIKQ1RfSVNMX1BLR19OQU1FPSJpc2wiCkNUX0lTTF9TUkNfUkVMRUFTRT15CiMgQ1RfSVNMX1NSQ19ERVZFTCBpcyBub3Qgc2V0CkNUX0lTTF9QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9JU0xfVl8wXzI3PXkKIyBDVF9JU0xfVl8wXzI2IGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzI1IGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzI0IGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzIzIGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzIyIGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzIxIGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzIwIGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzE5IGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzE4IGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzE3IGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzE2IGlzIG5vdCBzZXQKIyBDVF9JU0xfVl8wXzE1IGlzIG5vdCBzZXQKQ1RfSVNMX1ZFUlNJT049IjAuMjciCkNUX0lTTF9NSVJST1JTPSJodHRwczovL2xpYmlzbC5zb3VyY2Vmb3JnZS5pbyIKQ1RfSVNMX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0lTTF9BUkNISVZFX0RJUk5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0lTTF9BUkNISVZFX0ZPUk1BVFM9Ii50YXIueHogLnRhci5iejIgLnRhci5neiIKQ1RfSVNMX1NJR05BVFVSRV9GT1JNQVQ9IiIKQ1RfSVNMX2xhdGVyX3RoYW5fMF8xOD15CkNUX0lTTF8wXzE4X29yX2xhdGVyPXkKQ1RfSVNMX2xhdGVyX3RoYW5fMF8xNT15CkNUX0lTTF8wXzE1X29yX2xhdGVyPXkKIyBDVF9DT01QX0xJQlNfTElCRUxGIGlzIG5vdCBzZXQKQ1RfQ09NUF9MSUJTX0xJQklDT05WPXkKQ1RfQ09NUF9MSUJTX0xJQklDT05WX1BLR19LU1lNPSJMSUJJQ09OViIKQ1RfTElCSUNPTlZfRElSX05BTUU9ImxpYmljb252IgpDVF9MSUJJQ09OVl9QS0dfTkFNRT0ibGliaWNvbnYiCkNUX0xJQklDT05WX1NSQ19SRUxFQVNFPXkKIyBDVF9MSUJJQ09OVl9TUkNfREVWRUwgaXMgbm90IHNldApDVF9MSUJJQ09OVl9QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9MSUJJQ09OVl9WXzFfMTg9eQojIENUX0xJQklDT05WX1ZfMV8xNiBpcyBub3Qgc2V0CiMgQ1RfTElCSUNPTlZfVl8xXzE1IGlzIG5vdCBzZXQKQ1RfTElCSUNPTlZfVkVSU0lPTj0iMS4xOCIKQ1RfTElCSUNPTlZfTUlSUk9SUz0iJChDVF9NaXJyb3JzIEdOVSBsaWJpY29udikiCkNUX0xJQklDT05WX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0xJQklDT05WX0FSQ0hJVkVfRElSTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfTElCSUNPTlZfQVJDSElWRV9GT1JNQVRTPSIudGFyLmd6IgpDVF9MSUJJQ09OVl9TSUdOQVRVUkVfRk9STUFUPSJwYWNrZWQvLnNpZyIKQ1RfQ09NUF9MSUJTX01QQz15CkNUX0NPTVBfTElCU19NUENfUEtHX0tTWU09Ik1QQyIKQ1RfTVBDX0RJUl9OQU1FPSJtcGMiCkNUX01QQ19QS0dfTkFNRT0ibXBjIgpDVF9NUENfU1JDX1JFTEVBU0U9eQojIENUX01QQ19TUkNfREVWRUwgaXMgbm90IHNldApDVF9NUENfUEFUQ0hfT1JERVI9Imdsb2JhbCIKQ1RfTVBDX1ZfMV8zPXkKQ1RfTVBDX1ZFUlNJT049IjEuMy4xIgpDVF9NUENfTUlSUk9SUz0iaHR0cHM6Ly93d3cubXVsdGlwcmVjaXNpb24ub3JnL2Rvd25sb2FkcyAkKENUX01pcnJvcnMgR05VIG1wYykiCkNUX01QQ19BUkNISVZFX0ZJTEVOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9NUENfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9NUENfQVJDSElWRV9GT1JNQVRTPSIudGFyLmd6IgpDVF9NUENfU0lHTkFUVVJFX0ZPUk1BVD0icGFja2VkLy5zaWciCkNUX0NPTVBfTElCU19NUEZSPXkKQ1RfQ09NUF9MSUJTX01QRlJfUEtHX0tTWU09Ik1QRlIiCkNUX01QRlJfRElSX05BTUU9Im1wZnIiCkNUX01QRlJfUEtHX05BTUU9Im1wZnIiCkNUX01QRlJfU1JDX1JFTEVBU0U9eQojIENUX01QRlJfU1JDX0RFVkVMIGlzIG5vdCBzZXQKQ1RfTVBGUl9QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9NUEZSX1ZfNF8yPXkKQ1RfTVBGUl9WRVJTSU9OPSI0LjIuMiIKQ1RfTVBGUl9NSVJST1JTPSJodHRwczovL3d3dy5tcGZyLm9yZy9tcGZyLSR7Q1RfTVBGUl9WRVJTSU9OfSAkKENUX01pcnJvcnMgR05VIG1wZnIpIgpDVF9NUEZSX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX01QRlJfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9NUEZSX0FSQ0hJVkVfRk9STUFUUz0iLnRhci54eiAudGFyLmJ6MiAudGFyLmd6IC56aXAiCkNUX01QRlJfU0lHTkFUVVJFX0ZPUk1BVD0icGFja2VkLy5hc2MiCkNUX0NPTVBfTElCU19OQ1VSU0VTPXkKQ1RfQ09NUF9MSUJTX05DVVJTRVNfUEtHX0tTWU09Ik5DVVJTRVMiCkNUX05DVVJTRVNfRElSX05BTUU9Im5jdXJzZXMiCkNUX05DVVJTRVNfUEtHX05BTUU9Im5jdXJzZXMiCkNUX05DVVJTRVNfU1JDX1JFTEVBU0U9eQojIENUX05DVVJTRVNfU1JDX0RFVkVMIGlzIG5vdCBzZXQKQ1RfTkNVUlNFU19QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9OQ1VSU0VTX1ZfNl81PXkKIyBDVF9OQ1VSU0VTX1ZfNl80IGlzIG5vdCBzZXQKIyBDVF9OQ1VSU0VTX1ZfNl8yIGlzIG5vdCBzZXQKIyBDVF9OQ1VSU0VTX1ZfNl8xIGlzIG5vdCBzZXQKIyBDVF9OQ1VSU0VTX1ZfNl8wIGlzIG5vdCBzZXQKQ1RfTkNVUlNFU19WRVJTSU9OPSI2LjUiCkNUX05DVVJTRVNfTUlSUk9SUz0iaHR0cHM6Ly9pbnZpc2libGUtbWlycm9yLm5ldC9hcmNoaXZlcy9uY3Vyc2VzICQoQ1RfTWlycm9ycyBHTlUgbmN1cnNlcykiCkNUX05DVVJTRVNfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfTkNVUlNFU19BUkNISVZFX0RJUk5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX05DVVJTRVNfQVJDSElWRV9GT1JNQVRTPSIudGFyLmd6IgpDVF9OQ1VSU0VTX1NJR05BVFVSRV9GT1JNQVQ9InBhY2tlZC8uYXNjIgpDVF9OQ1VSU0VTX05FV19BQkk9eQpDVF9OQ1VSU0VTX0hPU1RfQ09ORklHX0FSR1M9IiIKQ1RfTkNVUlNFU19IT1NUX0RJU0FCTEVfREI9eQpDVF9OQ1VSU0VTX0hPU1RfRkFMTEJBQ0tTPSJsaW51eCx4dGVybSx4dGVybS1jb2xvcix4dGVybS0yNTZjb2xvcix2dDEwMCIKQ1RfTkNVUlNFU19UQVJHRVRfQ09ORklHX0FSR1M9IiIKIyBDVF9OQ1VSU0VTX1RBUkdFVF9ESVNBQkxFX0RCIGlzIG5vdCBzZXQKQ1RfTkNVUlNFU19UQVJHRVRfRkFMTEJBQ0tTPSIiCkNUX05DVVJTRVNfRVhUUkFfQ0ZMQUdTPSItc3RkPWdudTE3IgpDVF9DT01QX0xJQlNfWkxJQj15CkNUX0NPTVBfTElCU19aTElCX1BLR19LU1lNPSJaTElCIgpDVF9aTElCX0RJUl9OQU1FPSJ6bGliIgpDVF9aTElCX1BLR19OQU1FPSJ6bGliIgpDVF9aTElCX1NSQ19SRUxFQVNFPXkKIyBDVF9aTElCX1NSQ19ERVZFTCBpcyBub3Qgc2V0CkNUX1pMSUJfUEFUQ0hfT1JERVI9Imdsb2JhbCIKQ1RfWkxJQl9WXzFfM18xPXkKIyBDVF9aTElCX1ZfMV8yXzEzIGlzIG5vdCBzZXQKQ1RfWkxJQl9WRVJTSU9OPSIxLjMuMSIKQ1RfWkxJQl9NSVJST1JTPSJodHRwczovL2dpdGh1Yi5jb20vbWFkbGVyL3psaWIvcmVsZWFzZXMvZG93bmxvYWQvdiR7Q1RfWkxJQl9WRVJTSU9OfSBodHRwczovL3d3dy56bGliLm5ldC8iCkNUX1pMSUJfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfWkxJQl9BUkNISVZFX0RJUk5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX1pMSUJfQVJDSElWRV9GT1JNQVRTPSIudGFyLnh6IC50YXIuZ3oiCkNUX1pMSUJfU0lHTkFUVVJFX0ZPUk1BVD0icGFja2VkLy5hc2MiCkNUX0NPTVBfTElCU19aU1REPXkKQ1RfQ09NUF9MSUJTX1pTVERfUEtHX0tTWU09IlpTVEQiCkNUX1pTVERfRElSX05BTUU9InpzdGQiCkNUX1pTVERfUEtHX05BTUU9InpzdGQiCkNUX1pTVERfU1JDX1JFTEVBU0U9eQojIENUX1pTVERfU1JDX0RFVkVMIGlzIG5vdCBzZXQKQ1RfWlNURF9QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9aU1REX1ZfMV81Xzc9eQojIENUX1pTVERfVl8xXzVfNiBpcyBub3Qgc2V0CiMgQ1RfWlNURF9WXzFfNV81IGlzIG5vdCBzZXQKIyBDVF9aU1REX1ZfMV81XzIgaXMgbm90IHNldApDVF9aU1REX1ZFUlNJT049IjEuNS43IgpDVF9aU1REX01JUlJPUlM9Imh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay96c3RkL3JlbGVhc2VzL2Rvd25sb2FkL3Yke0NUX1pTVERfVkVSU0lPTn0gaHR0cHM6Ly9kb3dubG9hZHMuc291cmNlZm9yZ2UubmV0L3Byb2plY3QvenN0YW5kYXJkLm1pcnJvci92JHtDVF9aU1REX1ZFUlNJT059IgpDVF9aU1REX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX1pTVERfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9aU1REX0FSQ0hJVkVfRk9STUFUUz0iLnRhci5neiIKQ1RfWlNURF9TSUdOQVRVUkVfRk9STUFUPSJwYWNrZWQvLnNpZyIKQ1RfQUxMX0NPTVBfTElCU19DSE9JQ0VTPSJDTE9PRyBFWFBBVCBHRVRURVhUIEdNUCBHTlVQUlVNQ1UgSVNMIExJQkVMRiBMSUJJQ09OViBNUEMgTVBGUiBOQ1VSU0VTIE5FV0xJQl9OQU5PIFBJQ09MSUJDIFpMSUIgWlNURCIKQ1RfTElCSUNPTlZfTkVFREVEPXkKQ1RfR0VUVEVYVF9ORUVERUQ9eQpDVF9HTVBfTkVFREVEPXkKQ1RfTVBGUl9ORUVERUQ9eQpDVF9JU0xfTkVFREVEPXkKQ1RfTVBDX05FRURFRD15CkNUX05DVVJTRVNfTkVFREVEPXkKQ1RfWkxJQl9ORUVERUQ9eQpDVF9aU1REX05FRURFRD15CkNUX0xJQklDT05WPXkKQ1RfR0VUVEVYVD15CkNUX0dNUD15CkNUX01QRlI9eQpDVF9JU0w9eQpDVF9NUEM9eQpDVF9OQ1VSU0VTPXkKQ1RfWkxJQj15CkNUX1pTVEQ9eQojIGVuZCBvZiBDb21wYW5pb24gbGlicmFyaWVzCgojCiMgQ29tcGFuaW9uIHRvb2xzCiMKIyBDVF9DT01QX1RPT0xTX0ZPUl9IT1NUIGlzIG5vdCBzZXQKIyBDVF9DT01QX1RPT0xTX0FVVE9DT05GIGlzIG5vdCBzZXQKIyBDVF9DT01QX1RPT0xTX0FVVE9NQUtFIGlzIG5vdCBzZXQKIyBDVF9DT01QX1RPT0xTX0JJU09OIGlzIG5vdCBzZXQKIyBDVF9DT01QX1RPT0xTX0RUQyBpcyBub3Qgc2V0CiMgQ1RfQ09NUF9UT09MU19MSUJUT09MIGlzIG5vdCBzZXQKIyBDVF9DT01QX1RPT0xTX000IGlzIG5vdCBzZXQKIyBDVF9DT01QX1RPT0xTX01BS0UgaXMgbm90IHNldApDVF9BTExfQ09NUF9UT09MU19DSE9JQ0VTPSJBVVRPQ09ORiBBVVRPTUFLRSBCSVNPTiBEVEMgTElCVE9PTCBNNCBNQUtFIgojIGVuZCBvZiBDb21wYW5pb24gdG9vbHM="},{"path":"Cross/crosstool-ng/x86_64-unknown-linux-musl.config","sha256":"7d112262cd3be7c752030582b71ef7cef8b58de5fe36f90c954bf1b6fd6bf1f8","contentBase64":"IwojIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGU7IERPIE5PVCBFRElULgojIGNyb3NzdG9vbC1ORyAxLjI4LjAgQ29uZmlndXJhdGlvbgojCkNUX0NPTkZJR1VSRV9oYXNfc3RhdGljX2xpbms9eQpDVF9DT05GSUdVUkVfaGFzX2N4eDExPXkKQ1RfQ09ORklHVVJFX2hhc193Z2V0PXkKQ1RfQ09ORklHVVJFX2hhc19tYWtlXzNfODFfb3JfbmV3ZXI9eQpDVF9DT05GSUdVUkVfaGFzX21ha2VfNF8wX29yX25ld2VyPXkKQ1RfQ09ORklHVVJFX2hhc19saWJ0b29sXzJfNF9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfbGlidG9vbGl6ZV8yXzRfb3JfbmV3ZXI9eQpDVF9DT05GSUdVUkVfaGFzX2F1dG9jb25mXzJfNjVfb3JfbmV3ZXI9eQpDVF9DT05GSUdVUkVfaGFzX2F1dG9yZWNvbmZfMl82NV9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfYXV0b21ha2VfMV8xNV9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfZ251X200XzFfNF8xMl9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfcHl0aG9uXzNfNF9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfYmlzb25fMl83X29yX25ld2VyPXkKQ1RfQ09ORklHVVJFX2hhc19iaXNvbl8zXzBfNF9vcl9uZXdlcj15CkNUX0NPTkZJR1VSRV9oYXNfcHl0aG9uPXkKQ1RfQ09ORklHVVJFX2hhc19naXQ9eQpDVF9DT05GSUdVUkVfaGFzX21kNXN1bT15CkNUX0NPTkZJR1VSRV9oYXNfc2hhMXN1bT15CkNUX0NPTkZJR1VSRV9oYXNfc2hhMjU2c3VtPXkKQ1RfQ09ORklHVVJFX2hhc19zaGE1MTJzdW09eQpDVF9DT05GSUdVUkVfaGFzX2luc3RhbGxfd2l0aF9zdHJpcF9wcm9ncmFtPXkKQ1RfVkVSU0lPTj0iMS4yOC4wIgpDVF9WQ0hFQ0s9IiIKQ1RfQ09ORklHX1ZFUlNJT05fRU5WPSI0IgpDVF9DT05GSUdfVkVSU0lPTl9DVVJSRU5UPSI0IgpDVF9DT05GSUdfVkVSU0lPTj0iNCIKQ1RfTU9EVUxFUz15CgojCiMgUGF0aHMgYW5kIG1pc2Mgb3B0aW9ucwojCgojCiMgY3Jvc3N0b29sLU5HIGJlaGF2aW9yCiMKIyBDVF9PQlNPTEVURSBpcyBub3Qgc2V0CiMgQ1RfRVhQRVJJTUVOVEFMIGlzIG5vdCBzZXQKIyBDVF9ERUJVR19DVCBpcyBub3Qgc2V0CgojCiMgUGF0aHMKIwpDVF9MT0NBTF9UQVJCQUxMU19ESVI9IiR7SE9NRX0vc3JjIgpDVF9TQVZFX1RBUkJBTExTPXkKIyBDVF9UQVJCQUxMU19CVUlMRFJPT1RfTEFZT1VUIGlzIG5vdCBzZXQKQ1RfV09SS19ESVI9IiR7Q1RfVE9QX0RJUn0vLmJ1aWxkIgpDVF9CVUlMRF9UT1BfRElSPSIke0NUX1dPUktfRElSOi0ke0NUX1RPUF9ESVJ9Ly5idWlsZH0vJHtDVF9IT1NUOitIT1NULSR7Q1RfSE9TVH0vfSR7Q1RfVEFSR0VUfSIKQ1RfQlVJTERfRElSPSIke0NUX0JVSUxEX1RPUF9ESVJ9L2J1aWxkIgpDVF9QUkVGSVhfRElSPSIke0NUX1BSRUZJWDotJHtIT01FfS94LXRvb2xzfS8ke0NUX0hPU1Q6K0hPU1QtJHtDVF9IT1NUfS99JHtDVF9UQVJHRVR9IgpDVF9STV9SRl9QUkVGSVhfRElSPXkKQ1RfUkVNT1ZFX0RPQ1M9eQpDVF9JTlNUQUxMX0xJQ0VOU0VTPXkKQ1RfUFJFRklYX0RJUl9STz15CkNUX1NUUklQX0hPU1RfVE9PTENIQUlOX0VYRUNVVEFCTEVTPXkKIyBDVF9TVFJJUF9UQVJHRVRfVE9PTENIQUlOX0VYRUNVVEFCTEVTIGlzIG5vdCBzZXQKCiMKIyBEb3dubG9hZGluZwojCkNUX0RPV05MT0FEX0FHRU5UX1dHRVQ9eQojIENUX0RPV05MT0FEX0FHRU5UX05PTkUgaXMgbm90IHNldAojIENUX0ZPUkJJRF9ET1dOTE9BRCBpcyBub3Qgc2V0CiMgQ1RfRk9SQ0VfRE9XTkxPQUQgaXMgbm90IHNldApDVF9DT05ORUNUX1RJTUVPVVQ9MTAKQ1RfRE9XTkxPQURfV0dFVF9PUFRJT05TPSItLXRyaWVzPTMgLW5jIC0tcHJvZ3Jlc3M9ZG90OmJpbmFyeSIKIyBDVF9PTkxZX0RPV05MT0FEIGlzIG5vdCBzZXQKIyBDVF9VU0VfTUlSUk9SIGlzIG5vdCBzZXQKQ1RfVkVSSUZZX0RPV05MT0FEX0RJR0VTVD15CkNUX1ZFUklGWV9ET1dOTE9BRF9ESUdFU1RfU0hBNTEyPXkKIyBDVF9WRVJJRllfRE9XTkxPQURfRElHRVNUX1NIQTI1NiBpcyBub3Qgc2V0CiMgQ1RfVkVSSUZZX0RPV05MT0FEX0RJR0VTVF9TSEExIGlzIG5vdCBzZXQKIyBDVF9WRVJJRllfRE9XTkxPQURfRElHRVNUX01ENSBpcyBub3Qgc2V0CkNUX1ZFUklGWV9ET1dOTE9BRF9ESUdFU1RfQUxHPSJzaGE1MTIiCiMgQ1RfVkVSSUZZX0RPV05MT0FEX1NJR05BVFVSRSBpcyBub3Qgc2V0CgojCiMgRXh0cmFjdGluZwojCiMgQ1RfRk9SQ0VfRVhUUkFDVCBpcyBub3Qgc2V0CkNUX09WRVJSSURFX0NPTkZJR19HVUVTU19TVUI9eQojIENUX09OTFlfRVhUUkFDVCBpcyBub3Qgc2V0CkNUX1BBVENIX0JVTkRMRUQ9eQojIENUX1BBVENIX0JVTkRMRURfTE9DQUwgaXMgbm90IHNldApDVF9QQVRDSF9PUkRFUj0iYnVuZGxlZCIKCiMKIyBCdWlsZCBiZWhhdmlvcgojCkNUX1BBUkFMTEVMX0pPQlM9MApDVF9MT0FEPSIiCkNUX1VTRV9QSVBFUz15CkNUX0VYVFJBX0NGTEFHU19GT1JfQlVJTEQ9IiIKQ1RfRVhUUkFfQ1hYRkxBR1NfRk9SX0JVSUxEPSIiCkNUX0VYVFJBX0xERkxBR1NfRk9SX0JVSUxEPSIiCkNUX0VYVFJBX0NGTEFHU19GT1JfSE9TVD0iIgpDVF9FWFRSQV9MREZMQUdTX0ZPUl9IT1NUPSIiCiMgQ1RfQ09ORklHX1NIRUxMX1NIIGlzIG5vdCBzZXQKIyBDVF9DT05GSUdfU0hFTExfQVNIIGlzIG5vdCBzZXQKQ1RfQ09ORklHX1NIRUxMX0JBU0g9eQojIENUX0NPTkZJR19TSEVMTF9DVVNUT00gaXMgbm90IHNldApDVF9DT05GSUdfU0hFTEw9IiR7YmFzaH0iCgojCiMgTG9nZ2luZwojCiMgQ1RfTE9HX0VSUk9SIGlzIG5vdCBzZXQKIyBDVF9MT0dfV0FSTiBpcyBub3Qgc2V0CiMgQ1RfTE9HX0lORk8gaXMgbm90IHNldApDVF9MT0dfRVhUUkE9eQojIENUX0xPR19BTEwgaXMgbm90IHNldAojIENUX0xPR19ERUJVRyBpcyBub3Qgc2V0CkNUX0xPR19MRVZFTF9NQVg9IkVYVFJBIgojIENUX0xPR19TRUVfVE9PTFNfV0FSTiBpcyBub3Qgc2V0CkNUX0xPR19QUk9HUkVTU19CQVI9eQpDVF9MT0dfVE9fRklMRT15CkNUX0xPR19GSUxFX0NPTVBSRVNTPXkKIyBlbmQgb2YgUGF0aHMgYW5kIG1pc2Mgb3B0aW9ucwoKIwojIFRhcmdldCBvcHRpb25zCiMKIyBDVF9BUkNIX0FMUEhBIGlzIG5vdCBzZXQKIyBDVF9BUkNIX0FSQyBpcyBub3Qgc2V0CiMgQ1RfQVJDSF9BUk0gaXMgbm90IHNldAojIENUX0FSQ0hfQVZSIGlzIG5vdCBzZXQKIyBDVF9BUkNIX0JQRiBpcyBub3Qgc2V0CiMgQ1RfQVJDSF9NNjhLIGlzIG5vdCBzZXQKIyBDVF9BUkNIX01JUFMgaXMgbm90IHNldAojIENUX0FSQ0hfTklPUzIgaXMgbm90IHNldAojIENUX0FSQ0hfUE9XRVJQQyBpcyBub3Qgc2V0CiMgQ1RfQVJDSF9QUlUgaXMgbm90IHNldAojIENUX0FSQ0hfUklTQ1YgaXMgbm90IHNldAojIENUX0FSQ0hfUlggaXMgbm90IHNldAojIENUX0FSQ0hfUzM5MCBpcyBub3Qgc2V0CiMgQ1RfQVJDSF9TSCBpcyBub3Qgc2V0CiMgQ1RfQVJDSF9TUEFSQyBpcyBub3Qgc2V0CkNUX0FSQ0hfWDg2PXkKIyBDVF9BUkNIX1hURU5TQSBpcyBub3Qgc2V0CkNUX0FSQ0g9Ing4NiIKQ1RfQVJDSF9DSE9JQ0VfS1NZTT0iWDg2IgpDVF9BUkNIX0NQVT0iIgpDVF9BUkNIX1RVTkU9IiIKQ1RfQVJDSF9YODZfU0hPVz15CgojCiMgT3B0aW9ucyBmb3IgeDg2CiMKQ1RfQVJDSF9YODZfUEtHX0tTWU09IiIKQ1RfQUxMX0FSQ0hfQ0hPSUNFUz0iQUxQSEEgQVJDIEFSTSBBVlIgQlBGIEM2WCBMTTMyIExPT05HQVJDSCBNNjhLIE1JQ1JPQkxBWkUgTUlQUyBNT1hJRSBNU1A0MzAgTklPUzIgT1BFTlJJU0MgUEFSSVNDIFBPV0VSUEMgUFJVIFJJU0NWIFJYIFMzOTAgU0ggU1BBUkMgVFJJQ09SRSBYODYgWFRFTlNBIgpDVF9BUkNIX1NVRkZJWD0iIgojIENUX09NSVRfVEFSR0VUX1ZFTkRPUiBpcyBub3Qgc2V0CgojCiMgR2VuZXJpYyB0YXJnZXQgb3B0aW9ucwojCiMgQ1RfTVVMVElMSUIgaXMgbm90IHNldAojIENUX0RFTVVMVElMSUIgaXMgbm90IHNldApDVF9BUkNIX1VTRV9NTVU9eQpDVF9BUkNIX1NVUFBPUlRTX0xJQlNBTklUSVpFUj15CkNUX0FSQ0hfU1VQUE9SVFNfMzI9eQpDVF9BUkNIX1NVUFBPUlRTXzY0PXkKQ1RfQVJDSF9ERUZBVUxUXzMyPXkKQ1RfQVJDSF9CSVRORVNTPTY0CiMgQ1RfQVJDSF8zMiBpcyBub3Qgc2V0CkNUX0FSQ0hfNjQ9eQpDVF9BUkNIX1NVUFBPUlRTX1dJVEhfMzJfNjQ9eQoKIwojIFRhcmdldCBvcHRpbWlzYXRpb25zCiMKQ1RfQVJDSF9TVVBQT1JUU19XSVRIX0FSQ0g9eQpDVF9BUkNIX1NVUFBPUlRTX1dJVEhfQ1BVPXkKQ1RfQVJDSF9TVVBQT1JUU19XSVRIX1RVTkU9eQpDVF9BUkNIX0FSQ0g9IiIKQ1RfVEFSR0VUX0NGTEFHUz0iIgpDVF9UQVJHRVRfTERGTEFHUz0iIgojIGVuZCBvZiBUYXJnZXQgb3B0aW9ucwoKIwojIFRvb2xjaGFpbiBvcHRpb25zCiMKCiMKIyBHZW5lcmFsIHRvb2xjaGFpbiBvcHRpb25zCiMKQ1RfRk9SQ0VfU1lTUk9PVD15CkNUX1VTRV9TWVNST09UPXkKQ1RfU1lTUk9PVF9OQU1FPSJzeXNyb290IgpDVF9TWVNST09UX0RJUl9QUkVGSVg9IiIKQ1RfV0FOVFNfU1RBVElDX0xJTks9eQpDVF9XQU5UU19TVEFUSUNfTElOS19DWFg9eQojIENUX1NUQVRJQ19UT09MQ0hBSU4gaXMgbm90IHNldApDVF9TSE9XX0NUX1ZFUlNJT049eQpDVF9UT09MQ0hBSU5fUEtHVkVSU0lPTj0iIgpDVF9UT09MQ0hBSU5fQlVHVVJMPSIiCgojCiMgVHVwbGUgY29tcGxldGlvbiBhbmQgYWxpYXNpbmcKIwpDVF9UQVJHRVRfVkVORE9SPSJ1bmtub3duIgpDVF9UQVJHRVRfQUxJQVNfU0VEX0VYUFI9IiIKQ1RfVEFSR0VUX0FMSUFTPSIiCgojCiMgVG9vbGNoYWluIHR5cGUKIwpDVF9DUk9TUz15CiMgQ1RfQ0FOQURJQU4gaXMgbm90IHNldApDVF9UT09MQ0hBSU5fVFlQRT0iY3Jvc3MiCgojCiMgQnVpbGQgc3lzdGVtCiMKQ1RfQlVJTEQ9IiIKQ1RfQlVJTERfUFJFRklYPSIiCkNUX0JVSUxEX1NVRkZJWD0iIgoKIwojIE1pc2Mgb3B0aW9ucwojCiMgQ1RfVE9PTENIQUlOX0VOQUJMRV9OTFMgaXMgbm90IHNldAojIENUX1RPT0xDSEFJTl9DTUFLRV9UT09MQ0hBSU5fRklMRSBpcyBub3Qgc2V0CiMgZW5kIG9mIFRvb2xjaGFpbiBvcHRpb25zCgojCiMgT3BlcmF0aW5nIFN5c3RlbQojCkNUX0tFUk5FTF9TVVBQT1JUU19TSEFSRURfTElCUz15CiMgQ1RfS0VSTkVMX0JBUkVfTUVUQUwgaXMgbm90IHNldApDVF9LRVJORUxfTElOVVg9eQpDVF9LRVJORUw9ImxpbnV4IgpDVF9LRVJORUxfQ0hPSUNFX0tTWU09IkxJTlVYIgpDVF9LRVJORUxfTElOVVhfU0hPVz15CgojCiMgT3B0aW9ucyBmb3IgbGludXgKIwpDVF9LRVJORUxfTElOVVhfUEtHX0tTWU09IkxJTlVYIgpDVF9MSU5VWF9ESVJfTkFNRT0ibGludXgiCkNUX0xJTlVYX1BLR19OQU1FPSJsaW51eCIKQ1RfTElOVVhfU1JDX1JFTEVBU0U9eQojIENUX0xJTlVYX1NSQ19ERVZFTCBpcyBub3Qgc2V0CkNUX0xJTlVYX1BBVENIX09SREVSPSJnbG9iYWwiCkNUX0xJTlVYX1ZfNl8xNj15CiMgQ1RfTElOVVhfVl82XzE1IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfMTQgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl8xMyBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzEyIGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfMTEgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl8xMCBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzkgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl84IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfNyBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzYgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl81IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfNCBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzMgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNl8yIGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzZfMSBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl82XzAgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV8xOSBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl81XzE4IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzVfMTcgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV8xNiBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl81XzE1IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzVfMTQgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV8xMyBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl81XzEyIGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzVfMTEgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV8xMCBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl81XzkgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNV84IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzVfNyBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl81XzQgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNF8yMCBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl80XzE5IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzRfMTggaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNF8xNSBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl80XzE0IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzRfOSBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl80XzQgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfNF8xIGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzNfMTYgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfM18xMyBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl8zXzEyIGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzNfMTAgaXMgbm90IHNldAojIENUX0xJTlVYX1ZfM180IGlzIG5vdCBzZXQKIyBDVF9MSU5VWF9WXzNfMiBpcyBub3Qgc2V0CiMgQ1RfTElOVVhfVl8yXzZfMzIgaXMgbm90IHNldApDVF9MSU5VWF9WRVJTSU9OPSI2LjE2IgpDVF9MSU5VWF9NSVJST1JTPSIkKENUX01pcnJvcnMga2VybmVsLm9yZyBsaW51eCAke0NUX0xJTlVYX1ZFUlNJT059KSIKQ1RfTElOVVhfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfTElOVVhfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9MSU5VWF9BUkNISVZFX0ZPUk1BVFM9Ii50YXIueHogLnRhci5neiIKQ1RfTElOVVhfU0lHTkFUVVJFX0ZPUk1BVD0idW5wYWNrZWQvLnNpZ24iCkNUX0xJTlVYX2xhdGVyX3RoYW5fNV8xOT15CkNUX0xJTlVYXzVfMTlfb3JfbGF0ZXI9eQpDVF9MSU5VWF9sYXRlcl90aGFuXzVfMTI9eQpDVF9MSU5VWF81XzEyX29yX2xhdGVyPXkKQ1RfTElOVVhfbGF0ZXJfdGhhbl81XzU9eQpDVF9MSU5VWF81XzVfb3JfbGF0ZXI9eQpDVF9MSU5VWF9sYXRlcl90aGFuXzVfMz15CkNUX0xJTlVYXzVfM19vcl9sYXRlcj15CkNUX0xJTlVYX2xhdGVyX3RoYW5fNF84PXkKQ1RfTElOVVhfNF84X29yX2xhdGVyPXkKQ1RfTElOVVhfbGF0ZXJfdGhhbl8zXzc9eQpDVF9MSU5VWF8zXzdfb3JfbGF0ZXI9eQpDVF9MSU5VWF9sYXRlcl90aGFuXzNfMj15CkNUX0xJTlVYXzNfMl9vcl9sYXRlcj15CkNUX0tFUk5FTF9oYXNfcnN5bmM9eQpDVF9LRVJORUxfREVQX1JTWU5DPXkKQ1RfS0VSTkVMX0xJTlVYX1ZFUkJPU0lUWV8wPXkKIyBDVF9LRVJORUxfTElOVVhfVkVSQk9TSVRZXzEgaXMgbm90IHNldAojIENUX0tFUk5FTF9MSU5VWF9WRVJCT1NJVFlfMiBpcyBub3Qgc2V0CkNUX0tFUk5FTF9MSU5VWF9WRVJCT1NFX0xFVkVMPTAKQ1RfQUxMX0tFUk5FTF9DSE9JQ0VTPSJCQVJFX01FVEFMIExJTlVYIFdJTkRPV1MiCgojCiMgQ29tbW9uIGtlcm5lbCBvcHRpb25zCiMKQ1RfU0hBUkVEX0xJQlM9eQojIGVuZCBvZiBPcGVyYXRpbmcgU3lzdGVtCgojCiMgQmluYXJ5IHV0aWxpdGllcwojCkNUX0FSQ0hfQklORk1UX0VMRj15CkNUX0JJTlVUSUxTX0JJTlVUSUxTPXkKQ1RfQklOVVRJTFM9ImJpbnV0aWxzIgpDVF9CSU5VVElMU19DSE9JQ0VfS1NZTT0iQklOVVRJTFMiCkNUX0JJTlVUSUxTX0JJTlVUSUxTX1NIT1c9eQoKIwojIE9wdGlvbnMgZm9yIGJpbnV0aWxzCiMKQ1RfQklOVVRJTFNfQklOVVRJTFNfUEtHX0tTWU09IkJJTlVUSUxTIgpDVF9CSU5VVElMU19ESVJfTkFNRT0iYmludXRpbHMiCkNUX0JJTlVUSUxTX1VTRV9HTlU9eQojIENUX0JJTlVUSUxTX1VTRV9PUkFDTEUgaXMgbm90IHNldApDVF9CSU5VVElMU19VU0U9IkJJTlVUSUxTIgpDVF9CSU5VVElMU19QS0dfTkFNRT0iYmludXRpbHMiCkNUX0JJTlVUSUxTX1NSQ19SRUxFQVNFPXkKIyBDVF9CSU5VVElMU19TUkNfREVWRUwgaXMgbm90IHNldApDVF9CSU5VVElMU19QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9CSU5VVElMU19WXzJfNDU9eQojIENUX0JJTlVUSUxTX1ZfMl80NCBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzQzIGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfNDIgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl80MSBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzQwIGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMzkgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8zOCBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzM3IGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMzYgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8zNSBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzM0IGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMzMgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8zMiBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzMxIGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMzAgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8yOSBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfVl8yXzI4IGlzIG5vdCBzZXQKIyBDVF9CSU5VVElMU19WXzJfMjcgaXMgbm90IHNldAojIENUX0JJTlVUSUxTX1ZfMl8yNiBpcyBub3Qgc2V0CkNUX0JJTlVUSUxTX1ZFUlNJT049IjIuNDUiCkNUX0JJTlVUSUxTX01JUlJPUlM9IiQoQ1RfTWlycm9ycyBHTlUgYmludXRpbHMpICQoQ1RfTWlycm9ycyBzb3VyY2V3YXJlIGJpbnV0aWxzL3JlbGVhc2VzKSIKQ1RfQklOVVRJTFNfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfQklOVVRJTFNfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9CSU5VVElMU19BUkNISVZFX0ZPUk1BVFM9Ii50YXIueHogLnRhci5iejIgLnRhci5neiIKQ1RfQklOVVRJTFNfU0lHTkFUVVJFX0ZPUk1BVD0icGFja2VkLy5zaWciCkNUX0JJTlVUSUxTXzJfNDVfb3JfbGF0ZXI9eQpDVF9CSU5VVElMU18yXzQ1X29yX29sZGVyPXkKQ1RfQklOVVRJTFNfbGF0ZXJfdGhhbl8yXzQ0PXkKQ1RfQklOVVRJTFNfMl80NF9vcl9sYXRlcj15CkNUX0JJTlVUSUxTX2xhdGVyX3RoYW5fMl80MT15CkNUX0JJTlVUSUxTXzJfNDFfb3JfbGF0ZXI9eQpDVF9CSU5VVElMU19sYXRlcl90aGFuXzJfMzk9eQpDVF9CSU5VVElMU18yXzM5X29yX2xhdGVyPXkKQ1RfQklOVVRJTFNfbGF0ZXJfdGhhbl8yXzMwPXkKQ1RfQklOVVRJTFNfMl8zMF9vcl9sYXRlcj15CkNUX0JJTlVUSUxTX2xhdGVyX3RoYW5fMl8yNz15CkNUX0JJTlVUSUxTXzJfMjdfb3JfbGF0ZXI9eQpDVF9CSU5VVElMU19sYXRlcl90aGFuXzJfMjY9eQpDVF9CSU5VVElMU18yXzI2X29yX2xhdGVyPXkKCiMKIyBHTlUgYmludXRpbHMKIwpDVF9CSU5VVElMU19HT0xEX1NVUFBPUlRTX0FSQ0g9eQpDVF9CSU5VVElMU19MSU5LRVJfTEQ9eQpDVF9CSU5VVElMU19MSU5LRVJTX0xJU1Q9ImxkIgpDVF9CSU5VVElMU19MSU5LRVJfREVGQVVMVD0iYmZkIgpDVF9CSU5VVElMU19QTFVHSU5TPXkKQ1RfQklOVVRJTFNfUkVMUk89bQpDVF9CSU5VVElMU19ERVRFUk1JTklTVElDX0FSQ0hJVkVTPXkKQ1RfQklOVVRJTFNfRVhUUkFfQ09ORklHX0FSUkFZPSIiCiMgQ1RfQklOVVRJTFNfRk9SX1RBUkdFVCBpcyBub3Qgc2V0CiMgQ1RfQklOVVRJTFNfR1BST0ZORyBpcyBub3Qgc2V0CkNUX0FMTF9CSU5VVElMU19DSE9JQ0VTPSJCSU5VVElMUyIKIyBlbmQgb2YgQmluYXJ5IHV0aWxpdGllcwoKIwojIEMtbGlicmFyeQojCiMgQ1RfTElCQ19HTElCQyBpcyBub3Qgc2V0CkNUX0xJQkNfTVVTTD15CiMgQ1RfTElCQ19VQ0xJQkNfTkcgaXMgbm90IHNldApDVF9MSUJDPSJtdXNsIgpDVF9MSUJDX0NIT0lDRV9LU1lNPSJNVVNMIgpDVF9USFJFQURTPSJtdXNsIgpDVF9MSUJDX01VU0xfU0hPVz15CgojCiMgT3B0aW9ucyBmb3IgbXVzbAojCkNUX0xJQkNfTVVTTF9QS0dfS1NZTT0iTVVTTCIKQ1RfTVVTTF9ESVJfTkFNRT0ibXVzbCIKQ1RfTVVTTF9QS0dfTkFNRT0ibXVzbCIKQ1RfTVVTTF9TUkNfUkVMRUFTRT15CiMgQ1RfTVVTTF9TUkNfREVWRUwgaXMgbm90IHNldApDVF9NVVNMX1BBVENIX09SREVSPSJnbG9iYWwiCkNUX01VU0xfVl8xXzJfNT15CiMgQ1RfTVVTTF9WXzFfMl80IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8yXzMgaXMgbm90IHNldAojIENUX01VU0xfVl8xXzJfMiBpcyBub3Qgc2V0CiMgQ1RfTVVTTF9WXzFfMl8xIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzI0IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzIzIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzIyIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzIxIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzIwIGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzE5IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzE4IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzE3IGlzIG5vdCBzZXQKIyBDVF9NVVNMX1ZfMV8xXzE2IGlzIG5vdCBzZXQKQ1RfTVVTTF9WRVJTSU9OPSIxLjIuNSIKQ1RfTVVTTF9NSVJST1JTPSJodHRwczovL3d3dy5tdXNsLWxpYmMub3JnL3JlbGVhc2VzIgpDVF9NVVNMX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX01VU0xfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9NVVNMX0FSQ0hJVkVfRk9STUFUUz0iLnRhci5neiIKQ1RfTVVTTF9TSUdOQVRVUkVfRk9STUFUPSJwYWNrZWQvLmFzYyIKIyBDVF9MSUJDX01VU0xfREVCVUcgaXMgbm90IHNldAojIENUX0xJQkNfTVVTTF9XQVJOSU5HUyBpcyBub3Qgc2V0CiMgQ1RfTElCQ19NVVNMX09QVElNSVpFX05PTkUgaXMgbm90IHNldApDVF9MSUJDX01VU0xfT1BUSU1JWkVfQVVUTz15CiMgQ1RfTElCQ19NVVNMX09QVElNSVpFX1NQRUVEIGlzIG5vdCBzZXQKIyBDVF9MSUJDX01VU0xfT1BUSU1JWkVfU0laRSBpcyBub3Qgc2V0CkNUX0xJQkNfTVVTTF9PUFRJTUlaRT0iYXV0byIKQ1RfTElCQ19NVVNMX0VYVFJBX0NGTEFHUz0iIgpDVF9BTExfTElCQ19DSE9JQ0VTPSJBVlJfTElCQyBHTElCQyBNSU5HV19XNjQgTU9YSUVCT1ggTVVTTCBORVdMSUIgTk9ORSBQSUNPTElCQyBVQ0xJQkNfTkciCkNUX0xJQkNfU1VQUE9SVF9USFJFQURTX0FOWT15CkNUX0xJQkNfU1VQUE9SVF9USFJFQURTX05BVElWRT15CgojCiMgQ29tbW9uIEMgbGlicmFyeSBvcHRpb25zCiMKQ1RfVEhSRUFEU19OQVRJVkU9eQpDVF9DUkVBVEVfTERTT19DT05GPXkKQ1RfTERTT19DT05GX0VYVFJBX0RJUlNfQVJSQVk9IiIKQ1RfTElCQ19YTEREPXkKIyBlbmQgb2YgQy1saWJyYXJ5CgojCiMgQyBjb21waWxlcgojCkNUX0NDX0NPUkVfTkVFREVEPXkKQ1RfQ0NfU1VQUE9SVF9DWFg9eQpDVF9DQ19TVVBQT1JUX0ZPUlRSQU49eQpDVF9DQ19TVVBQT1JUX0FEQT15CkNUX0NDX1NVUFBPUlRfRD15CkNUX0NDX1NVUFBPUlRfSklUPXkKQ1RfQ0NfU1VQUE9SVF9PQkpDPXkKQ1RfQ0NfU1VQUE9SVF9PQkpDWFg9eQpDVF9DQ19TVVBQT1JUX0dPTEFORz15CkNUX0NDX0dDQz15CkNUX0NDPSJnY2MiCkNUX0NDX0NIT0lDRV9LU1lNPSJHQ0MiCkNUX0NDX0dDQ19TSE9XPXkKCiMKIyBPcHRpb25zIGZvciBnY2MKIwpDVF9DQ19HQ0NfUEtHX0tTWU09IkdDQyIKQ1RfR0NDX0RJUl9OQU1FPSJnY2MiCkNUX0dDQ19VU0VfR05VPXkKIyBDVF9HQ0NfVVNFX09SQUNMRSBpcyBub3Qgc2V0CkNUX0dDQ19VU0U9IkdDQyIKQ1RfR0NDX1BLR19OQU1FPSJnY2MiCkNUX0dDQ19TUkNfUkVMRUFTRT15CiMgQ1RfR0NDX1NSQ19ERVZFTCBpcyBub3Qgc2V0CkNUX0dDQ19QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9HQ0NfVl8xNT15CiMgQ1RfR0NDX1ZfMTQgaXMgbm90IHNldAojIENUX0dDQ19WXzEzIGlzIG5vdCBzZXQKIyBDVF9HQ0NfVl8xMiBpcyBub3Qgc2V0CiMgQ1RfR0NDX1ZfMTEgaXMgbm90IHNldAojIENUX0dDQ19WXzEwIGlzIG5vdCBzZXQKIyBDVF9HQ0NfVl85IGlzIG5vdCBzZXQKIyBDVF9HQ0NfVl84IGlzIG5vdCBzZXQKIyBDVF9HQ0NfVl83IGlzIG5vdCBzZXQKIyBDVF9HQ0NfVl82IGlzIG5vdCBzZXQKIyBDVF9HQ0NfVl81IGlzIG5vdCBzZXQKIyBDVF9HQ0NfVl80XzkgaXMgbm90IHNldApDVF9HQ0NfVkVSU0lPTj0iMTUuMi4wIgpDVF9HQ0NfTUlSUk9SUz0iJChDVF9NaXJyb3JzIEdOVSBnY2MvZ2NjLSR7Q1RfR0NDX1ZFUlNJT059KSAkKENUX01pcnJvcnMgc291cmNld2FyZSBnY2MvcmVsZWFzZXMvZ2NjLSR7Q1RfR0NDX1ZFUlNJT059KSIKQ1RfR0NDX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0dDQ19BUkNISVZFX0RJUk5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX0dDQ19BUkNISVZFX0ZPUk1BVFM9Ii50YXIueHogLnRhci5neiIKQ1RfR0NDX1NJR05BVFVSRV9GT1JNQVQ9IiIKQ1RfR0NDX2xhdGVyX3RoYW5fMTU9eQpDVF9HQ0NfMTVfb3JfbGF0ZXI9eQpDVF9HQ0NfbGF0ZXJfdGhhbl8xND15CkNUX0dDQ18xNF9vcl9sYXRlcj15CkNUX0dDQ19sYXRlcl90aGFuXzEzPXkKQ1RfR0NDXzEzX29yX2xhdGVyPXkKQ1RfR0NDX2xhdGVyX3RoYW5fMTI9eQpDVF9HQ0NfMTJfb3JfbGF0ZXI9eQpDVF9HQ0NfbGF0ZXJfdGhhbl8xMT15CkNUX0dDQ18xMV9vcl9sYXRlcj15CkNUX0dDQ19sYXRlcl90aGFuXzEwPXkKQ1RfR0NDXzEwX29yX2xhdGVyPXkKQ1RfR0NDX2xhdGVyX3RoYW5fOT15CkNUX0dDQ185X29yX2xhdGVyPXkKQ1RfR0NDX2xhdGVyX3RoYW5fOD15CkNUX0dDQ184X29yX2xhdGVyPXkKQ1RfR0NDX2xhdGVyX3RoYW5fNz15CkNUX0dDQ183X29yX2xhdGVyPXkKQ1RfR0NDX2xhdGVyX3RoYW5fNj15CkNUX0dDQ182X29yX2xhdGVyPXkKQ1RfR0NDX2xhdGVyX3RoYW5fNT15CkNUX0dDQ181X29yX2xhdGVyPXkKQ1RfR0NDX2xhdGVyX3RoYW5fNF85PXkKQ1RfR0NDXzRfOV9vcl9sYXRlcj15CkNUX0NDX0dDQ19FTkFCTEVfUExVR0lOUz15CkNUX0NDX0dDQ19IQVNfTElCTVBYPXkKQ1RfQ0NfR0NDX0VOQUJMRV9DWFhfRkxBR1M9IiIKQ1RfQ0NfR0NDX0NPUkVfRVhUUkFfQ09ORklHX0FSUkFZPSIiCkNUX0NDX0dDQ19FWFRSQV9DT05GSUdfQVJSQVk9IiIKQ1RfQ0NfR0NDX1NUQVRJQ19MSUJTVERDWFg9eQojIENUX0NDX0dDQ19TWVNURU1fWkxJQiBpcyBub3Qgc2V0CkNUX0NDX0dDQ19DT05GSUdfVExTPW0KCiMKIyBPcHRpbWlzYXRpb24gZmVhdHVyZXMKIwpDVF9DQ19HQ0NfVVNFX0dSQVBISVRFPXkKQ1RfQ0NfR0NDX1VTRV9MVE89eQpDVF9DQ19HQ0NfTFRPX1pTVEQ9bQoKIwojIFNldHRpbmdzIGZvciBsaWJyYXJpZXMgcnVubmluZyBvbiB0YXJnZXQKIwojIENUX0NDX0dDQ19FTkFCTEVfREVGQVVMVF9QSUUgaXMgbm90IHNldApDVF9DQ19HQ0NfRU5BQkxFX1RBUkdFVF9PUFRTUEFDRT15CkNUX0NDX0dDQ19MSUJTVERDWFg9bQojIENUX0NDX0dDQ19MSUJTVERDWFhfSE9TVEVEX0RJU0FCTEUgaXMgbm90IHNldApDVF9DQ19HQ0NfTElCU1REQ1hYX1RBUkdFVF9DWFhGTEFHUz0iIgojIENUX0NDX0dDQ19MSUJNVURGTEFQIGlzIG5vdCBzZXQKIyBDVF9DQ19HQ0NfTElCR09NUCBpcyBub3Qgc2V0CiMgQ1RfQ0NfR0NDX0xJQlNTUCBpcyBub3Qgc2V0CiMgQ1RfQ0NfR0NDX0xJQlFVQURNQVRIIGlzIG5vdCBzZXQKQ1RfQ0NfR0NDX0xJQlNURENYWF9WRVJCT1NFPW0KCiMKIyBNaXNjLiBvYnNjdXJlIG9wdGlvbnMuCiMKQ1RfQ0NfQ1hBX0FURVhJVD15CkNUX0NDX0dDQ19UTV9DTE9ORV9SRUdJU1RSWT1tCiMgQ1RfQ0NfR0NDX0RJU0FCTEVfUENIIGlzIG5vdCBzZXQKQ1RfQ0NfR0NDX1NKTEpfRVhDRVBUSU9OUz1tCkNUX0NDX0dDQ19MREJMXzEyOD1tCiMgQ1RfQ0NfR0NDX0JVSUxEX0lEIGlzIG5vdCBzZXQKQ1RfQ0NfR0NDX0xOS19IQVNIX1NUWUxFX0RFRkFVTFQ9eQojIENUX0NDX0dDQ19MTktfSEFTSF9TVFlMRV9TWVNWIGlzIG5vdCBzZXQKIyBDVF9DQ19HQ0NfTE5LX0hBU0hfU1RZTEVfR05VIGlzIG5vdCBzZXQKIyBDVF9DQ19HQ0NfTE5LX0hBU0hfU1RZTEVfQk9USCBpcyBub3Qgc2V0CkNUX0NDX0dDQ19MTktfSEFTSF9TVFlMRT0iIgpDVF9DQ19HQ0NfREVDX0ZMT0FUU19BVVRPPXkKIyBDVF9DQ19HQ0NfREVDX0ZMT0FUU19CSUQgaXMgbm90IHNldAojIENUX0NDX0dDQ19ERUNfRkxPQVRTX0RQRCBpcyBub3Qgc2V0CiMgQ1RfQ0NfR0NDX0RFQ19GTE9BVFNfTk8gaXMgbm90IHNldApDVF9DQ19HQ0NfREVDX0ZMT0FUUz0iIgpDVF9BTExfQ0NfQ0hPSUNFUz0iR0NDIgoKIwojIEFkZGl0aW9uYWwgc3VwcG9ydGVkIGxhbmd1YWdlczoKIwpDVF9DQ19MQU5HX0NYWD15CiMgQ1RfQ0NfTEFOR19GT1JUUkFOIGlzIG5vdCBzZXQKIyBlbmQgb2YgQyBjb21waWxlcgoKIwojIExpbmtlcnMKIwoKIwojIEJGRCBlbmFibGVkIGluIGJpbnV0aWxzCiMKIyBDVF9MSU5LRVJfTU9MRCBpcyBub3Qgc2V0CkNUX0FMTF9MSU5LRVJfQ0hPSUNFUz0iTU9MRCIKIyBlbmQgb2YgTGlua2VycwoKIwojIERlYnVnIGZhY2lsaXRpZXMKIwojIENUX0RFQlVHX0RVTUEgaXMgbm90IHNldAojIENUX0RFQlVHX0dEQiBpcyBub3Qgc2V0CiMgQ1RfREVCVUdfTFRSQUNFIGlzIG5vdCBzZXQKIyBDVF9ERUJVR19TVFJBQ0UgaXMgbm90IHNldApDVF9BTExfREVCVUdfQ0hPSUNFUz0iRFVNQSBHREIgTFRSQUNFIFNUUkFDRSIKIyBlbmQgb2YgRGVidWcgZmFjaWxpdGllcwoKIwojIENvbXBhbmlvbiBsaWJyYXJpZXMKIwojIENUX0NPTVBMSUJTX0NIRUNLIGlzIG5vdCBzZXQKIyBDVF9DT01QX0xJQlNfQ0xPT0cgaXMgbm90IHNldApDVF9DT01QX0xJQlNfRVhQQVQ9eQpDVF9DT01QX0xJQlNfRVhQQVRfUEtHX0tTWU09IkVYUEFUIgpDVF9FWFBBVF9ESVJfTkFNRT0iZXhwYXQiCkNUX0VYUEFUX1BLR19OQU1FPSJleHBhdCIKQ1RfRVhQQVRfU1JDX1JFTEVBU0U9eQojIENUX0VYUEFUX1NSQ19ERVZFTCBpcyBub3Qgc2V0CkNUX0VYUEFUX1BBVENIX09SREVSPSJnbG9iYWwiCkNUX0VYUEFUX1ZfMl83PXkKIyBDVF9FWFBBVF9WXzJfNiBpcyBub3Qgc2V0CiMgQ1RfRVhQQVRfVl8yXzUgaXMgbm90IHNldApDVF9FWFBBVF9WRVJTSU9OPSIyLjcuMSIKQ1RfRVhQQVRfTUlSUk9SUz0iaHR0cDovL2Rvd25sb2Fkcy5zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdC9leHBhdC9leHBhdC8ke0NUX0VYUEFUX1ZFUlNJT059IGh0dHBzOi8vZ2l0aHViLmNvbS9saWJleHBhdC9saWJleHBhdC9yZWxlYXNlcy9kb3dubG9hZC9SXyR7Q1RfRVhQQVRfVkVSU0lPTi8vLi9ffSIKQ1RfRVhQQVRfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfRVhQQVRfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9FWFBBVF9BUkNISVZFX0ZPUk1BVFM9Ii50YXIueHogLnRhci5seiAudGFyLmJ6MiAudGFyLmd6IgpDVF9FWFBBVF9TSUdOQVRVUkVfRk9STUFUPSIiCiMgQ1RfQ09NUF9MSUJTX0dFVFRFWFQgaXMgbm90IHNldApDVF9DT01QX0xJQlNfR01QPXkKQ1RfQ09NUF9MSUJTX0dNUF9QS0dfS1NZTT0iR01QIgpDVF9HTVBfRElSX05BTUU9ImdtcCIKQ1RfR01QX1BLR19OQU1FPSJnbXAiCkNUX0dNUF9TUkNfUkVMRUFTRT15CiMgQ1RfR01QX1NSQ19ERVZFTCBpcyBub3Qgc2V0CkNUX0dNUF9QQVRDSF9PUkRFUj0iZ2xvYmFsIgpDVF9HTVBfVl82XzM9eQojIENUX0dNUF9WXzZfMiBpcyBub3Qgc2V0CiMgQ1RfR01QX1ZfNl8xIGlzIG5vdCBzZXQKQ1RfR01QX1ZFUlNJT049IjYuMy4wIgpDVF9HTVBfTUlSUk9SUz0iaHR0cHM6Ly9nbXBsaWIub3JnL2Rvd25sb2FkL2dtcCBodHRwczovL2dtcGxpYi5vcmcvZG93bmxvYWQvZ21wL2FyY2hpdmUgJChDVF9NaXJyb3JzIEdOVSBnbXApIgpDVF9HTVBfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfR01QX0FSQ0hJVkVfRElSTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfR01QX0FSQ0hJVkVfRk9STUFUUz0iLnRhci54eiAudGFyLmx6IC50YXIuYnoyIgpDVF9HTVBfU0lHTkFUVVJFX0ZPUk1BVD0icGFja2VkLy5zaWciCkNUX0dNUF9FWFRSQV9DRkxBR1M9Ii1zdGQ9Z251MTciCkNUX0NPTVBfTElCU19JU0w9eQpDVF9DT01QX0xJQlNfSVNMX1BLR19LU1lNPSJJU0wiCkNUX0lTTF9ESVJfTkFNRT0iaXNsIgpDVF9JU0xfUEtHX05BTUU9ImlzbCIKQ1RfSVNMX1NSQ19SRUxFQVNFPXkKIyBDVF9JU0xfU1JDX0RFVkVMIGlzIG5vdCBzZXQKQ1RfSVNMX1BBVENIX09SREVSPSJnbG9iYWwiCkNUX0lTTF9WXzBfMjc9eQojIENUX0lTTF9WXzBfMjYgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMjUgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMjQgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMjMgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMjIgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMjEgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMjAgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMTkgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMTggaXMgbm90IHNldAojIENUX0lTTF9WXzBfMTcgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMTYgaXMgbm90IHNldAojIENUX0lTTF9WXzBfMTUgaXMgbm90IHNldApDVF9JU0xfVkVSU0lPTj0iMC4yNyIKQ1RfSVNMX01JUlJPUlM9Imh0dHBzOi8vbGliaXNsLnNvdXJjZWZvcmdlLmlvIgpDVF9JU0xfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfSVNMX0FSQ0hJVkVfRElSTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfSVNMX0FSQ0hJVkVfRk9STUFUUz0iLnRhci54eiAudGFyLmJ6MiAudGFyLmd6IgpDVF9JU0xfU0lHTkFUVVJFX0ZPUk1BVD0iIgpDVF9JU0xfbGF0ZXJfdGhhbl8wXzE4PXkKQ1RfSVNMXzBfMThfb3JfbGF0ZXI9eQpDVF9JU0xfbGF0ZXJfdGhhbl8wXzE1PXkKQ1RfSVNMXzBfMTVfb3JfbGF0ZXI9eQojIENUX0NPTVBfTElCU19MSUJFTEYgaXMgbm90IHNldAojIENUX0NPTVBfTElCU19MSUJJQ09OViBpcyBub3Qgc2V0CkNUX0NPTVBfTElCU19NUEM9eQpDVF9DT01QX0xJQlNfTVBDX1BLR19LU1lNPSJNUEMiCkNUX01QQ19ESVJfTkFNRT0ibXBjIgpDVF9NUENfUEtHX05BTUU9Im1wYyIKQ1RfTVBDX1NSQ19SRUxFQVNFPXkKIyBDVF9NUENfU1JDX0RFVkVMIGlzIG5vdCBzZXQKQ1RfTVBDX1BBVENIX09SREVSPSJnbG9iYWwiCkNUX01QQ19WXzFfMz15CkNUX01QQ19WRVJTSU9OPSIxLjMuMSIKQ1RfTVBDX01JUlJPUlM9Imh0dHBzOi8vd3d3Lm11bHRpcHJlY2lzaW9uLm9yZy9kb3dubG9hZHMgJChDVF9NaXJyb3JzIEdOVSBtcGMpIgpDVF9NUENfQVJDSElWRV9GSUxFTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfTVBDX0FSQ0hJVkVfRElSTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfTVBDX0FSQ0hJVkVfRk9STUFUUz0iLnRhci5neiIKQ1RfTVBDX1NJR05BVFVSRV9GT1JNQVQ9InBhY2tlZC8uc2lnIgpDVF9DT01QX0xJQlNfTVBGUj15CkNUX0NPTVBfTElCU19NUEZSX1BLR19LU1lNPSJNUEZSIgpDVF9NUEZSX0RJUl9OQU1FPSJtcGZyIgpDVF9NUEZSX1BLR19OQU1FPSJtcGZyIgpDVF9NUEZSX1NSQ19SRUxFQVNFPXkKIyBDVF9NUEZSX1NSQ19ERVZFTCBpcyBub3Qgc2V0CkNUX01QRlJfUEFUQ0hfT1JERVI9Imdsb2JhbCIKQ1RfTVBGUl9WXzRfMj15CkNUX01QRlJfVkVSU0lPTj0iNC4yLjIiCkNUX01QRlJfTUlSUk9SUz0iaHR0cHM6Ly93d3cubXBmci5vcmcvbXBmci0ke0NUX01QRlJfVkVSU0lPTn0gJChDVF9NaXJyb3JzIEdOVSBtcGZyKSIKQ1RfTVBGUl9BUkNISVZFX0ZJTEVOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9NUEZSX0FSQ0hJVkVfRElSTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfTVBGUl9BUkNISVZFX0ZPUk1BVFM9Ii50YXIueHogLnRhci5iejIgLnRhci5neiAuemlwIgpDVF9NUEZSX1NJR05BVFVSRV9GT1JNQVQ9InBhY2tlZC8uYXNjIgpDVF9DT01QX0xJQlNfTkNVUlNFUz15CkNUX0NPTVBfTElCU19OQ1VSU0VTX1BLR19LU1lNPSJOQ1VSU0VTIgpDVF9OQ1VSU0VTX0RJUl9OQU1FPSJuY3Vyc2VzIgpDVF9OQ1VSU0VTX1BLR19OQU1FPSJuY3Vyc2VzIgpDVF9OQ1VSU0VTX1NSQ19SRUxFQVNFPXkKIyBDVF9OQ1VSU0VTX1NSQ19ERVZFTCBpcyBub3Qgc2V0CkNUX05DVVJTRVNfUEFUQ0hfT1JERVI9Imdsb2JhbCIKQ1RfTkNVUlNFU19WXzZfNT15CiMgQ1RfTkNVUlNFU19WXzZfNCBpcyBub3Qgc2V0CiMgQ1RfTkNVUlNFU19WXzZfMiBpcyBub3Qgc2V0CiMgQ1RfTkNVUlNFU19WXzZfMSBpcyBub3Qgc2V0CiMgQ1RfTkNVUlNFU19WXzZfMCBpcyBub3Qgc2V0CkNUX05DVVJTRVNfVkVSU0lPTj0iNi41IgpDVF9OQ1VSU0VTX01JUlJPUlM9Imh0dHBzOi8vaW52aXNpYmxlLW1pcnJvci5uZXQvYXJjaGl2ZXMvbmN1cnNlcyAkKENUX01pcnJvcnMgR05VIG5jdXJzZXMpIgpDVF9OQ1VSU0VTX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX05DVVJTRVNfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9OQ1VSU0VTX0FSQ0hJVkVfRk9STUFUUz0iLnRhci5neiIKQ1RfTkNVUlNFU19TSUdOQVRVUkVfRk9STUFUPSJwYWNrZWQvLmFzYyIKQ1RfTkNVUlNFU19ORVdfQUJJPXkKQ1RfTkNVUlNFU19IT1NUX0NPTkZJR19BUkdTPSIiCkNUX05DVVJTRVNfSE9TVF9ESVNBQkxFX0RCPXkKQ1RfTkNVUlNFU19IT1NUX0ZBTExCQUNLUz0ibGludXgseHRlcm0seHRlcm0tY29sb3IseHRlcm0tMjU2Y29sb3IsdnQxMDAiCkNUX05DVVJTRVNfVEFSR0VUX0NPTkZJR19BUkdTPSIiCiMgQ1RfTkNVUlNFU19UQVJHRVRfRElTQUJMRV9EQiBpcyBub3Qgc2V0CkNUX05DVVJTRVNfVEFSR0VUX0ZBTExCQUNLUz0iIgpDVF9OQ1VSU0VTX0VYVFJBX0NGTEFHUz0iLXN0ZD1nbnUxNyIKQ1RfQ09NUF9MSUJTX1pMSUI9eQpDVF9DT01QX0xJQlNfWkxJQl9QS0dfS1NZTT0iWkxJQiIKQ1RfWkxJQl9ESVJfTkFNRT0iemxpYiIKQ1RfWkxJQl9QS0dfTkFNRT0iemxpYiIKQ1RfWkxJQl9TUkNfUkVMRUFTRT15CiMgQ1RfWkxJQl9TUkNfREVWRUwgaXMgbm90IHNldApDVF9aTElCX1BBVENIX09SREVSPSJnbG9iYWwiCkNUX1pMSUJfVl8xXzNfMT15CiMgQ1RfWkxJQl9WXzFfMl8xMyBpcyBub3Qgc2V0CkNUX1pMSUJfVkVSU0lPTj0iMS4zLjEiCkNUX1pMSUJfTUlSUk9SUz0iaHR0cHM6Ly9naXRodWIuY29tL21hZGxlci96bGliL3JlbGVhc2VzL2Rvd25sb2FkL3Yke0NUX1pMSUJfVkVSU0lPTn0gaHR0cHM6Ly93d3cuemxpYi5uZXQvIgpDVF9aTElCX0FSQ0hJVkVfRklMRU5BTUU9IkB7cGtnX25hbWV9LUB7dmVyc2lvbn0iCkNUX1pMSUJfQVJDSElWRV9ESVJOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9aTElCX0FSQ0hJVkVfRk9STUFUUz0iLnRhci54eiAudGFyLmd6IgpDVF9aTElCX1NJR05BVFVSRV9GT1JNQVQ9InBhY2tlZC8uYXNjIgpDVF9DT01QX0xJQlNfWlNURD15CkNUX0NPTVBfTElCU19aU1REX1BLR19LU1lNPSJaU1REIgpDVF9aU1REX0RJUl9OQU1FPSJ6c3RkIgpDVF9aU1REX1BLR19OQU1FPSJ6c3RkIgpDVF9aU1REX1NSQ19SRUxFQVNFPXkKIyBDVF9aU1REX1NSQ19ERVZFTCBpcyBub3Qgc2V0CkNUX1pTVERfUEFUQ0hfT1JERVI9Imdsb2JhbCIKQ1RfWlNURF9WXzFfNV83PXkKIyBDVF9aU1REX1ZfMV81XzYgaXMgbm90IHNldAojIENUX1pTVERfVl8xXzVfNSBpcyBub3Qgc2V0CiMgQ1RfWlNURF9WXzFfNV8yIGlzIG5vdCBzZXQKQ1RfWlNURF9WRVJTSU9OPSIxLjUuNyIKQ1RfWlNURF9NSVJST1JTPSJodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svenN0ZC9yZWxlYXNlcy9kb3dubG9hZC92JHtDVF9aU1REX1ZFUlNJT059IGh0dHBzOi8vZG93bmxvYWRzLnNvdXJjZWZvcmdlLm5ldC9wcm9qZWN0L3pzdGFuZGFyZC5taXJyb3IvdiR7Q1RfWlNURF9WRVJTSU9OfSIKQ1RfWlNURF9BUkNISVZFX0ZJTEVOQU1FPSJAe3BrZ19uYW1lfS1Ae3ZlcnNpb259IgpDVF9aU1REX0FSQ0hJVkVfRElSTkFNRT0iQHtwa2dfbmFtZX0tQHt2ZXJzaW9ufSIKQ1RfWlNURF9BUkNISVZFX0ZPUk1BVFM9Ii50YXIuZ3oiCkNUX1pTVERfU0lHTkFUVVJFX0ZPUk1BVD0icGFja2VkLy5zaWciCkNUX0FMTF9DT01QX0xJQlNfQ0hPSUNFUz0iQ0xPT0cgRVhQQVQgR0VUVEVYVCBHTVAgR05VUFJVTUNVIElTTCBMSUJFTEYgTElCSUNPTlYgTVBDIE1QRlIgTkNVUlNFUyBORVdMSUJfTkFOTyBQSUNPTElCQyBaTElCIFpTVEQiCiMgQ1RfTElCSUNPTlZfTkVFREVEIGlzIG5vdCBzZXQKIyBDVF9HRVRURVhUX05FRURFRCBpcyBub3Qgc2V0CkNUX0dNUF9ORUVERUQ9eQpDVF9NUEZSX05FRURFRD15CkNUX0lTTF9ORUVERUQ9eQpDVF9NUENfTkVFREVEPXkKQ1RfWkxJQl9ORUVERUQ9eQpDVF9aU1REX05FRURFRD15CkNUX0dNUD15CkNUX01QRlI9eQpDVF9JU0w9eQpDVF9NUEM9eQpDVF9aTElCPXkKQ1RfWlNURD15CiMgZW5kIG9mIENvbXBhbmlvbiBsaWJyYXJpZXMKCiMKIyBDb21wYW5pb24gdG9vbHMKIwojIENUX0NPTVBfVE9PTFNfRk9SX0hPU1QgaXMgbm90IHNldAojIENUX0NPTVBfVE9PTFNfQVVUT0NPTkYgaXMgbm90IHNldAojIENUX0NPTVBfVE9PTFNfQVVUT01BS0UgaXMgbm90IHNldAojIENUX0NPTVBfVE9PTFNfQklTT04gaXMgbm90IHNldAojIENUX0NPTVBfVE9PTFNfRFRDIGlzIG5vdCBzZXQKIyBDVF9DT01QX1RPT0xTX0xJQlRPT0wgaXMgbm90IHNldAojIENUX0NPTVBfVE9PTFNfTTQgaXMgbm90IHNldAojIENUX0NPTVBfVE9PTFNfTUFLRSBpcyBub3Qgc2V0CkNUX0FMTF9DT01QX1RPT0xTX0NIT0lDRVM9IkFVVE9DT05GIEFVVE9NQUtFIEJJU09OIERUQyBMSUJUT09MIE00IE1BS0UiCiMgZW5kIG9mIENvbXBhbmlvbiB0b29scw=="},{"path":"Cross/toolchain.cmake","sha256":"5b8ba670b7046df69fa760e05157d451b4e5a17242aaa12f2cf5840892c95081","contentBase64":"c2V0KENNQUtFX1NZU1RFTV9OQU1FICIkRU5We0NST1NTX0NNQUtFX1NZU1RFTV9OQU1FfSIpCnNldChDTUFLRV9TWVNURU1fUFJPQ0VTU09SICIkRU5We0NST1NTX0NNQUtFX1NZU1RFTV9QUk9DRVNTT1J9IikKaWYoREVGSU5FRCBFTlZ7Q1JPU1NfVEFSR0VUX1JVTk5FUn0pCiAgICBzZXQocnVubmVyICIkRU5We0NST1NTX1RBUkdFVF9SVU5ORVJ9IikKICAgIHNlcGFyYXRlX2FyZ3VtZW50cyhydW5uZXIpCiAgICBzZXQoQ01BS0VfQ1JPU1NDT01QSUxJTkdfRU1VTEFUT1IgJHtydW5uZXJ9KQplbmRpZigpCgojIG5vdCBhbGwgb2YgdGhlc2UgYXJlIHN0YW5kYXJkLCBob3dldmVyLCB0aGV5J3JlIGNvbW1vbiBlbm91Z2gKIyB0aGF0IGl0J3MgZ29vZCBwcmFjdGljZSB0byBkZWZpbmUgdGhlbS4Kc2V0KHByZWZpeCAiJEVOVntDUk9TU19UT09MQ0hBSU5fUFJFRklYfSIpCnNldChzdWZmaXggIiRFTlZ7Q1JPU1NfVE9PTENIQUlOX1NVRkZJWH0iKQpzZXQoQ01BS0VfQ19DT01QSUxFUiAiJHtwcmVmaXh9Z2NjJHtzdWZmaXh9IikKc2V0KENNQUtFX0FTTV9DT01QSUxFUiAiJHtwcmVmaXh9Z2NjJHtzdWZmaXh9IikKc2V0KENNQUtFX0NYWF9DT01QSUxFUiAiJHtwcmVmaXh9ZysrJHtzdWZmaXh9IikKc2V0KENNQUtFX0FSICIke3ByZWZpeH1hciIpCnNldChDTUFLRV9MSU5LRVIgIiR7cHJlZml4fWxkIikKc2V0KENNQUtFX05NICIke3ByZWZpeH1ubSIpCnNldChDTUFLRV9PQkpDT1BZICIke3ByZWZpeH1vYmpjb3B5IikKc2V0KENNQUtFX09CSkRVTVAgIiR7cHJlZml4fW9iamR1bXAiKQpzZXQoQ01BS0VfUkFOTElCICIke3ByZWZpeH1yYW5saWIiKQpzZXQoQ01BS0VfU1RSSVAgIiR7cHJlZml4fXN0cmlwIikKCiMgdGhlc2UgYXJlIGNhY2hlZCBzbyBhbnkgYnVpbGQgc3lzdGVtIHRoYXQgY29tcGlsZWQgb3V0c2lkZSBvZiB0aGUgcnVzdAojIGJ1aWxkIHN5c3RlbSwgc3VjaCBhcyBhIHRoaXJkLXBhcnR5IGNtYWtlIGJ1aWxkIGFuZCBpbnN0YWxsIG9mIGEgc2hhcmVkCiMgbGlicmFyeSwgd2lsbCBzdGlsbCB3b3JrLiBob3dldmVyLCBjbWFrZS1ycyBjYW4gb3ZlcnJpZGUgdGhlc2UgdmFsdWVzCmlmKERFRklORUQgRU5We0NST1NTX0NNQUtFX09CSkVDVF9GTEFHU30pCiAgICBzZXQoQ01BS0VfQ19GTEFHUyAiJEVOVntDUk9TU19DTUFLRV9PQkpFQ1RfRkxBR1N9IiBDQUNIRSBTVFJJTkcgIkMgQ29tcGlsZXIgb3B0aW9ucyIpCiAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdTICIkRU5We0NST1NTX0NNQUtFX09CSkVDVF9GTEFHU30iIENBQ0hFIFNUUklORyAiQysrIENvbXBpbGVyIG9wdGlvbnMiKQogICAgc2V0KENNQUtFX0FTTV9GTEFHUyAiJEVOVntDUk9TU19DTUFLRV9PQkpFQ1RfRkxBR1N9IiBDQUNIRSBTVFJJTkcgIkFTTSBDb21waWxlciBvcHRpb25zIikKZW5kaWYoKQoKIyBpZiBjcm9zcy1jb21waWxpbmcsIHdlIG5lZWQgdG8gZGlzYWJsZSB3aGVyZSB0aGUgcm9vdCBwYXRoCiMgaXMgZm91bmQgYW5kIGFsc28gcHJvdmlkZSBvdXIgb3duIHN5c3Jvb3QKaWYoREVGSU5FRCBFTlZ7Q1JPU1NfU1lTUk9PVH0pCiAgICBzZXQoQ01BS0VfRklORF9ST09UX1BBVEggIiRFTlZ7Q1JPU1NfU1lTUk9PVH0iICIke0NNQUtFX1BSRUZJWF9QQVRIfSIpCiAgICBzZXQoQ01BS0VfRklORF9ST09UX1BBVEhfTU9ERV9QUk9HUkFNIE5FVkVSKQogICAgc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfTElCUkFSWSBPTkxZKQogICAgc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfSU5DTFVERSBPTkxZKQogICAgc2V0KENNQUtFX0ZJTkRfUk9PVF9QQVRIX01PREVfUEFDS0FHRSBPTkxZKQplbmRpZigpCgpzZXQoY3J0ICIkRU5We0NST1NTX0NNQUtFX0NSVH0iKQppZihjcnQgU1RSRVFVQUwgIm5ld2xpYiIpCiAgICAjIGNtYWtlIG5vcm1hbGx5IHRyaWVzIHRvIHRlc3QgdGhlIEMgYW5kIEMrKyBjb21waWxlcnMgYnkgYnVpbGRpbmcgYW5kCiAgICAjIHJ1bm5pbmcgYSBiaW5hcnksIGJ1dCB0aGlzIGZhaWxzIGZvciBiYXJlLW1ldGFsIHRhcmdldHMsIHNpbmNlCiAgICAjIHRoZXkgYXJlIG1pc3Npbmcgc3RhcnQgZmlsZXMgYW5kIHBvdGVudGlhbGx5IG90aGVyIHN5bWJvbHMuCiAgICAjIGNob29zaW5nIHRvIG1ha2UgYSBzdGF0aWMgbGlicmFyeSBjYXVzZXMgY21ha2UgdG8gc2tpcCB0aGUgY2hlY2suCiAgICBzZXQoQ01BS0VfVFJZX0NPTVBJTEVfVEFSR0VUX1RZUEUgU1RBVElDX0xJQlJBUlkpCmVuZGlmKCk="},{"path":"LICENSE","sha256":"8b1ba204bb69a0ade2bfcf65ef294a920f6bb361b317dba43c7ef29d96332b9b","contentBase64":"ICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24gMywgMjkgSnVuZSAyMDA3CgogQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cHM6Ly9mc2Yub3JnLz4KIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKCiAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGEgZnJlZSwgY29weWxlZnQgbGljZW5zZSBmb3IKc29mdHdhcmUgYW5kIG90aGVyIGtpbmRzIG9mIHdvcmtzLgoKICBUaGUgbGljZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYW5kIG90aGVyIHByYWN0aWNhbCB3b3JrcyBhcmUgZGVzaWduZWQKdG8gdGFrZSBhd2F5IHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIHRoZSB3b3Jrcy4gIEJ5IGNvbnRyYXN0LAp0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0bwpzaGFyZSBhbmQgY2hhbmdlIGFsbCB2ZXJzaW9ucyBvZiBhIHByb2dyYW0tLXRvIG1ha2Ugc3VyZSBpdCByZW1haW5zIGZyZWUKc29mdHdhcmUgZm9yIGFsbCBpdHMgdXNlcnMuICBXZSwgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgdXNlIHRoZQpHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9zdCBvZiBvdXIgc29mdHdhcmU7IGl0IGFwcGxpZXMgYWxzbyB0bwphbnkgb3RoZXIgd29yayByZWxlYXNlZCB0aGlzIHdheSBieSBpdHMgYXV0aG9ycy4gIFlvdSBjYW4gYXBwbHkgaXQgdG8KeW91ciBwcm9ncmFtcywgdG9vLgoKICBXaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSByZWZlcnJpbmcgdG8gZnJlZWRvbSwgbm90CnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UKaGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgp0aGVtIGlmIHlvdSB3aXNoKSwgdGhhdCB5b3UgcmVjZWl2ZSBzb3VyY2UgY29kZSBvciBjYW4gZ2V0IGl0IGlmIHlvdQp3YW50IGl0LCB0aGF0IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBvciB1c2UgcGllY2VzIG9mIGl0IGluIG5ldwpmcmVlIHByb2dyYW1zLCBhbmQgdGhhdCB5b3Uga25vdyB5b3UgY2FuIGRvIHRoZXNlIHRoaW5ncy4KCiAgVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBwcmV2ZW50IG90aGVycyBmcm9tIGRlbnlpbmcgeW91CnRoZXNlIHJpZ2h0cyBvciBhc2tpbmcgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLiAgVGhlcmVmb3JlLCB5b3UgaGF2ZQpjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBzb2Z0d2FyZSwgb3IgaWYKeW91IG1vZGlmeSBpdDogcmVzcG9uc2liaWxpdGllcyB0byByZXNwZWN0IHRoZSBmcmVlZG9tIG9mIG90aGVycy4KCiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBkaXN0cmlidXRlIGNvcGllcyBvZiBzdWNoIGEgcHJvZ3JhbSwgd2hldGhlcgpncmF0aXMgb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBwYXNzIG9uIHRvIHRoZSByZWNpcGllbnRzIHRoZSBzYW1lCmZyZWVkb21zIHRoYXQgeW91IHJlY2VpdmVkLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlCm9yIGNhbiBnZXQgdGhlIHNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5Cmtub3cgdGhlaXIgcmlnaHRzLgoKICBEZXZlbG9wZXJzIHRoYXQgdXNlIHRoZSBHTlUgR1BMIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCB0d28gc3RlcHM6CigxKSBhc3NlcnQgY29weXJpZ2h0IG9uIHRoZSBzb2Z0d2FyZSwgYW5kICgyKSBvZmZlciB5b3UgdGhpcyBMaWNlbnNlCmdpdmluZyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkgaXQuCgogIEZvciB0aGUgZGV2ZWxvcGVycycgYW5kIGF1dGhvcnMnIHByb3RlY3Rpb24sIHRoZSBHUEwgY2xlYXJseSBleHBsYWlucwp0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGlzIGZyZWUgc29mdHdhcmUuICBGb3IgYm90aCB1c2VycycgYW5kCmF1dGhvcnMnIHNha2UsIHRoZSBHUEwgcmVxdWlyZXMgdGhhdCBtb2RpZmllZCB2ZXJzaW9ucyBiZSBtYXJrZWQgYXMKY2hhbmdlZCwgc28gdGhhdCB0aGVpciBwcm9ibGVtcyB3aWxsIG5vdCBiZSBhdHRyaWJ1dGVkIGVycm9uZW91c2x5IHRvCmF1dGhvcnMgb2YgcHJldmlvdXMgdmVyc2lvbnMuCgogIFNvbWUgZGV2aWNlcyBhcmUgZGVzaWduZWQgdG8gZGVueSB1c2VycyBhY2Nlc3MgdG8gaW5zdGFsbCBvciBydW4KbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhlIHNvZnR3YXJlIGluc2lkZSB0aGVtLCBhbHRob3VnaCB0aGUgbWFudWZhY3R1cmVyCmNhbiBkbyBzby4gIFRoaXMgaXMgZnVuZGFtZW50YWxseSBpbmNvbXBhdGlibGUgd2l0aCB0aGUgYWltIG9mCnByb3RlY3RpbmcgdXNlcnMnIGZyZWVkb20gdG8gY2hhbmdlIHRoZSBzb2Z0d2FyZS4gIFRoZSBzeXN0ZW1hdGljCnBhdHRlcm4gb2Ygc3VjaCBhYnVzZSBvY2N1cnMgaW4gdGhlIGFyZWEgb2YgcHJvZHVjdHMgZm9yIGluZGl2aWR1YWxzIHRvCnVzZSwgd2hpY2ggaXMgcHJlY2lzZWx5IHdoZXJlIGl0IGlzIG1vc3QgdW5hY2NlcHRhYmxlLiAgVGhlcmVmb3JlLCB3ZQpoYXZlIGRlc2lnbmVkIHRoaXMgdmVyc2lvbiBvZiB0aGUgR1BMIHRvIHByb2hpYml0IHRoZSBwcmFjdGljZSBmb3IgdGhvc2UKcHJvZHVjdHMuICBJZiBzdWNoIHByb2JsZW1zIGFyaXNlIHN1YnN0YW50aWFsbHkgaW4gb3RoZXIgZG9tYWlucywgd2UKc3RhbmQgcmVhZHkgdG8gZXh0ZW5kIHRoaXMgcHJvdmlzaW9uIHRvIHRob3NlIGRvbWFpbnMgaW4gZnV0dXJlIHZlcnNpb25zCm9mIHRoZSBHUEwsIGFzIG5lZWRlZCB0byBwcm90ZWN0IHRoZSBmcmVlZG9tIG9mIHVzZXJzLgoKICBGaW5hbGx5LCBldmVyeSBwcm9ncmFtIGlzIHRocmVhdGVuZWQgY29uc3RhbnRseSBieSBzb2Z0d2FyZSBwYXRlbnRzLgpTdGF0ZXMgc2hvdWxkIG5vdCBhbGxvdyBwYXRlbnRzIHRvIHJlc3RyaWN0IGRldmVsb3BtZW50IGFuZCB1c2Ugb2YKc29mdHdhcmUgb24gZ2VuZXJhbC1wdXJwb3NlIGNvbXB1dGVycywgYnV0IGluIHRob3NlIHRoYXQgZG8sIHdlIHdpc2ggdG8KYXZvaWQgdGhlIHNwZWNpYWwgZGFuZ2VyIHRoYXQgcGF0ZW50cyBhcHBsaWVkIHRvIGEgZnJlZSBwcm9ncmFtIGNvdWxkCm1ha2UgaXQgZWZmZWN0aXZlbHkgcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHRoZSBHUEwgYXNzdXJlcyB0aGF0CnBhdGVudHMgY2Fubm90IGJlIHVzZWQgdG8gcmVuZGVyIHRoZSBwcm9ncmFtIG5vbi1mcmVlLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKICAgICAgICAgICAgICAgICAgICAgICBURVJNUyBBTkQgQ09ORElUSU9OUwoKICAwLiBEZWZpbml0aW9ucy4KCiAgIlRoaXMgTGljZW5zZSIgcmVmZXJzIHRvIHZlcnNpb24gMyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCgogICJDb3B5cmlnaHQiIGFsc28gbWVhbnMgY29weXJpZ2h0LWxpa2UgbGF3cyB0aGF0IGFwcGx5IHRvIG90aGVyIGtpbmRzIG9mCndvcmtzLCBzdWNoIGFzIHNlbWljb25kdWN0b3IgbWFza3MuCgogICJUaGUgUHJvZ3JhbSIgcmVmZXJzIHRvIGFueSBjb3B5cmlnaHRhYmxlIHdvcmsgbGljZW5zZWQgdW5kZXIgdGhpcwpMaWNlbnNlLiAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuICAiTGljZW5zZWVzIiBhbmQKInJlY2lwaWVudHMiIG1heSBiZSBpbmRpdmlkdWFscyBvciBvcmdhbml6YXRpb25zLgoKICBUbyAibW9kaWZ5IiBhIHdvcmsgbWVhbnMgdG8gY29weSBmcm9tIG9yIGFkYXB0IGFsbCBvciBwYXJ0IG9mIHRoZSB3b3JrCmluIGEgZmFzaGlvbiByZXF1aXJpbmcgY29weXJpZ2h0IHBlcm1pc3Npb24sIG90aGVyIHRoYW4gdGhlIG1ha2luZyBvZiBhbgpleGFjdCBjb3B5LiAgVGhlIHJlc3VsdGluZyB3b3JrIGlzIGNhbGxlZCBhICJtb2RpZmllZCB2ZXJzaW9uIiBvZiB0aGUKZWFybGllciB3b3JrIG9yIGEgd29yayAiYmFzZWQgb24iIHRoZSBlYXJsaWVyIHdvcmsuCgogIEEgImNvdmVyZWQgd29yayIgbWVhbnMgZWl0aGVyIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0gb3IgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLgoKICBUbyAicHJvcGFnYXRlIiBhIHdvcmsgbWVhbnMgdG8gZG8gYW55dGhpbmcgd2l0aCBpdCB0aGF0LCB3aXRob3V0CnBlcm1pc3Npb24sIHdvdWxkIG1ha2UgeW91IGRpcmVjdGx5IG9yIHNlY29uZGFyaWx5IGxpYWJsZSBmb3IKaW5mcmluZ2VtZW50IHVuZGVyIGFwcGxpY2FibGUgY29weXJpZ2h0IGxhdywgZXhjZXB0IGV4ZWN1dGluZyBpdCBvbiBhCmNvbXB1dGVyIG9yIG1vZGlmeWluZyBhIHByaXZhdGUgY29weS4gIFByb3BhZ2F0aW9uIGluY2x1ZGVzIGNvcHlpbmcsCmRpc3RyaWJ1dGlvbiAod2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiksIG1ha2luZyBhdmFpbGFibGUgdG8gdGhlCnB1YmxpYywgYW5kIGluIHNvbWUgY291bnRyaWVzIG90aGVyIGFjdGl2aXRpZXMgYXMgd2VsbC4KCiAgVG8gImNvbnZleSIgYSB3b3JrIG1lYW5zIGFueSBraW5kIG9mIHByb3BhZ2F0aW9uIHRoYXQgZW5hYmxlcyBvdGhlcgpwYXJ0aWVzIHRvIG1ha2Ugb3IgcmVjZWl2ZSBjb3BpZXMuICBNZXJlIGludGVyYWN0aW9uIHdpdGggYSB1c2VyIHRocm91Z2gKYSBjb21wdXRlciBuZXR3b3JrLCB3aXRoIG5vIHRyYW5zZmVyIG9mIGEgY29weSwgaXMgbm90IGNvbnZleWluZy4KCiAgQW4gaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2UgZGlzcGxheXMgIkFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXMiCnRvIHRoZSBleHRlbnQgdGhhdCBpdCBpbmNsdWRlcyBhIGNvbnZlbmllbnQgYW5kIHByb21pbmVudGx5IHZpc2libGUKZmVhdHVyZSB0aGF0ICgxKSBkaXNwbGF5cyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlLCBhbmQgKDIpCnRlbGxzIHRoZSB1c2VyIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoZSB3b3JrIChleGNlcHQgdG8gdGhlCmV4dGVudCB0aGF0IHdhcnJhbnRpZXMgYXJlIHByb3ZpZGVkKSwgdGhhdCBsaWNlbnNlZXMgbWF5IGNvbnZleSB0aGUKd29yayB1bmRlciB0aGlzIExpY2Vuc2UsIGFuZCBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlLiAgSWYKdGhlIGludGVyZmFjZSBwcmVzZW50cyBhIGxpc3Qgb2YgdXNlciBjb21tYW5kcyBvciBvcHRpb25zLCBzdWNoIGFzIGEKbWVudSwgYSBwcm9taW5lbnQgaXRlbSBpbiB0aGUgbGlzdCBtZWV0cyB0aGlzIGNyaXRlcmlvbi4KCiAgMS4gU291cmNlIENvZGUuCgogIFRoZSAic291cmNlIGNvZGUiIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrCmZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gICJPYmplY3QgY29kZSIgbWVhbnMgYW55IG5vbi1zb3VyY2UKZm9ybSBvZiBhIHdvcmsuCgogIEEgIlN0YW5kYXJkIEludGVyZmFjZSIgbWVhbnMgYW4gaW50ZXJmYWNlIHRoYXQgZWl0aGVyIGlzIGFuIG9mZmljaWFsCnN0YW5kYXJkIGRlZmluZWQgYnkgYSByZWNvZ25pemVkIHN0YW5kYXJkcyBib2R5LCBvciwgaW4gdGhlIGNhc2Ugb2YKaW50ZXJmYWNlcyBzcGVjaWZpZWQgZm9yIGEgcGFydGljdWxhciBwcm9ncmFtbWluZyBsYW5ndWFnZSwgb25lIHRoYXQKaXMgd2lkZWx5IHVzZWQgYW1vbmcgZGV2ZWxvcGVycyB3b3JraW5nIGluIHRoYXQgbGFuZ3VhZ2UuCgogIFRoZSAiU3lzdGVtIExpYnJhcmllcyIgb2YgYW4gZXhlY3V0YWJsZSB3b3JrIGluY2x1ZGUgYW55dGhpbmcsIG90aGVyCnRoYW4gdGhlIHdvcmsgYXMgYSB3aG9sZSwgdGhhdCAoYSkgaXMgaW5jbHVkZWQgaW4gdGhlIG5vcm1hbCBmb3JtIG9mCnBhY2thZ2luZyBhIE1ham9yIENvbXBvbmVudCwgYnV0IHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoYXQgTWFqb3IKQ29tcG9uZW50LCBhbmQgKGIpIHNlcnZlcyBvbmx5IHRvIGVuYWJsZSB1c2Ugb2YgdGhlIHdvcmsgd2l0aCB0aGF0Ck1ham9yIENvbXBvbmVudCwgb3IgdG8gaW1wbGVtZW50IGEgU3RhbmRhcmQgSW50ZXJmYWNlIGZvciB3aGljaCBhbgppbXBsZW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbiBzb3VyY2UgY29kZSBmb3JtLiAgQQoiTWFqb3IgQ29tcG9uZW50IiwgaW4gdGhpcyBjb250ZXh0LCBtZWFucyBhIG1ham9yIGVzc2VudGlhbCBjb21wb25lbnQKKGtlcm5lbCwgd2luZG93IHN5c3RlbSwgYW5kIHNvIG9uKSBvZiB0aGUgc3BlY2lmaWMgb3BlcmF0aW5nIHN5c3RlbQooaWYgYW55KSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSB3b3JrIHJ1bnMsIG9yIGEgY29tcGlsZXIgdXNlZCB0bwpwcm9kdWNlIHRoZSB3b3JrLCBvciBhbiBvYmplY3QgY29kZSBpbnRlcnByZXRlciB1c2VkIHRvIHJ1biBpdC4KCiAgVGhlICJDb3JyZXNwb25kaW5nIFNvdXJjZSIgZm9yIGEgd29yayBpbiBvYmplY3QgY29kZSBmb3JtIG1lYW5zIGFsbAp0aGUgc291cmNlIGNvZGUgbmVlZGVkIHRvIGdlbmVyYXRlLCBpbnN0YWxsLCBhbmQgKGZvciBhbiBleGVjdXRhYmxlCndvcmspIHJ1biB0aGUgb2JqZWN0IGNvZGUgYW5kIHRvIG1vZGlmeSB0aGUgd29yaywgaW5jbHVkaW5nIHNjcmlwdHMgdG8KY29udHJvbCB0aG9zZSBhY3Rpdml0aWVzLiAgSG93ZXZlciwgaXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgd29yaydzClN5c3RlbSBMaWJyYXJpZXMsIG9yIGdlbmVyYWwtcHVycG9zZSB0b29scyBvciBnZW5lcmFsbHkgYXZhaWxhYmxlIGZyZWUKcHJvZ3JhbXMgd2hpY2ggYXJlIHVzZWQgdW5tb2RpZmllZCBpbiBwZXJmb3JtaW5nIHRob3NlIGFjdGl2aXRpZXMgYnV0CndoaWNoIGFyZSBub3QgcGFydCBvZiB0aGUgd29yay4gIEZvciBleGFtcGxlLCBDb3JyZXNwb25kaW5nIFNvdXJjZQppbmNsdWRlcyBpbnRlcmZhY2UgZGVmaW5pdGlvbiBmaWxlcyBhc3NvY2lhdGVkIHdpdGggc291cmNlIGZpbGVzIGZvcgp0aGUgd29yaywgYW5kIHRoZSBzb3VyY2UgY29kZSBmb3Igc2hhcmVkIGxpYnJhcmllcyBhbmQgZHluYW1pY2FsbHkKbGlua2VkIHN1YnByb2dyYW1zIHRoYXQgdGhlIHdvcmsgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIHJlcXVpcmUsCnN1Y2ggYXMgYnkgaW50aW1hdGUgZGF0YSBjb21tdW5pY2F0aW9uIG9yIGNvbnRyb2wgZmxvdyBiZXR3ZWVuIHRob3NlCnN1YnByb2dyYW1zIGFuZCBvdGhlciBwYXJ0cyBvZiB0aGUgd29yay4KCiAgVGhlIENvcnJlc3BvbmRpbmcgU291cmNlIG5lZWQgbm90IGluY2x1ZGUgYW55dGhpbmcgdGhhdCB1c2VycwpjYW4gcmVnZW5lcmF0ZSBhdXRvbWF0aWNhbGx5IGZyb20gb3RoZXIgcGFydHMgb2YgdGhlIENvcnJlc3BvbmRpbmcKU291cmNlLgoKICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGEgd29yayBpbiBzb3VyY2UgY29kZSBmb3JtIGlzIHRoYXQKc2FtZSB3b3JrLgoKICAyLiBCYXNpYyBQZXJtaXNzaW9ucy4KCiAgQWxsIHJpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSBhcmUgZ3JhbnRlZCBmb3IgdGhlIHRlcm0gb2YKY29weXJpZ2h0IG9uIHRoZSBQcm9ncmFtLCBhbmQgYXJlIGlycmV2b2NhYmxlIHByb3ZpZGVkIHRoZSBzdGF0ZWQKY29uZGl0aW9ucyBhcmUgbWV0LiAgVGhpcyBMaWNlbnNlIGV4cGxpY2l0bHkgYWZmaXJtcyB5b3VyIHVubGltaXRlZApwZXJtaXNzaW9uIHRvIHJ1biB0aGUgdW5tb2RpZmllZCBQcm9ncmFtLiAgVGhlIG91dHB1dCBmcm9tIHJ1bm5pbmcgYQpjb3ZlcmVkIHdvcmsgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2Ugb25seSBpZiB0aGUgb3V0cHV0LCBnaXZlbiBpdHMKY29udGVudCwgY29uc3RpdHV0ZXMgYSBjb3ZlcmVkIHdvcmsuICBUaGlzIExpY2Vuc2UgYWNrbm93bGVkZ2VzIHlvdXIKcmlnaHRzIG9mIGZhaXIgdXNlIG9yIG90aGVyIGVxdWl2YWxlbnQsIGFzIHByb3ZpZGVkIGJ5IGNvcHlyaWdodCBsYXcuCgogIFlvdSBtYXkgbWFrZSwgcnVuIGFuZCBwcm9wYWdhdGUgY292ZXJlZCB3b3JrcyB0aGF0IHlvdSBkbyBub3QKY29udmV5LCB3aXRob3V0IGNvbmRpdGlvbnMgc28gbG9uZyBhcyB5b3VyIGxpY2Vuc2Ugb3RoZXJ3aXNlIHJlbWFpbnMKaW4gZm9yY2UuICBZb3UgbWF5IGNvbnZleSBjb3ZlcmVkIHdvcmtzIHRvIG90aGVycyBmb3IgdGhlIHNvbGUgcHVycG9zZQpvZiBoYXZpbmcgdGhlbSBtYWtlIG1vZGlmaWNhdGlvbnMgZXhjbHVzaXZlbHkgZm9yIHlvdSwgb3IgcHJvdmlkZSB5b3UKd2l0aCBmYWNpbGl0aWVzIGZvciBydW5uaW5nIHRob3NlIHdvcmtzLCBwcm92aWRlZCB0aGF0IHlvdSBjb21wbHkgd2l0aAp0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIGluIGNvbnZleWluZyBhbGwgbWF0ZXJpYWwgZm9yIHdoaWNoIHlvdSBkbwpub3QgY29udHJvbCBjb3B5cmlnaHQuICBUaG9zZSB0aHVzIG1ha2luZyBvciBydW5uaW5nIHRoZSBjb3ZlcmVkIHdvcmtzCmZvciB5b3UgbXVzdCBkbyBzbyBleGNsdXNpdmVseSBvbiB5b3VyIGJlaGFsZiwgdW5kZXIgeW91ciBkaXJlY3Rpb24KYW5kIGNvbnRyb2wsIG9uIHRlcm1zIHRoYXQgcHJvaGliaXQgdGhlbSBmcm9tIG1ha2luZyBhbnkgY29waWVzIG9mCnlvdXIgY29weXJpZ2h0ZWQgbWF0ZXJpYWwgb3V0c2lkZSB0aGVpciByZWxhdGlvbnNoaXAgd2l0aCB5b3UuCgogIENvbnZleWluZyB1bmRlciBhbnkgb3RoZXIgY2lyY3Vtc3RhbmNlcyBpcyBwZXJtaXR0ZWQgc29sZWx5IHVuZGVyCnRoZSBjb25kaXRpb25zIHN0YXRlZCBiZWxvdy4gIFN1YmxpY2Vuc2luZyBpcyBub3QgYWxsb3dlZDsgc2VjdGlvbiAxMAptYWtlcyBpdCB1bm5lY2Vzc2FyeS4KCiAgMy4gUHJvdGVjdGluZyBVc2VycycgTGVnYWwgUmlnaHRzIEZyb20gQW50aS1DaXJjdW12ZW50aW9uIExhdy4KCiAgTm8gY292ZXJlZCB3b3JrIHNoYWxsIGJlIGRlZW1lZCBwYXJ0IG9mIGFuIGVmZmVjdGl2ZSB0ZWNobm9sb2dpY2FsCm1lYXN1cmUgdW5kZXIgYW55IGFwcGxpY2FibGUgbGF3IGZ1bGZpbGxpbmcgb2JsaWdhdGlvbnMgdW5kZXIgYXJ0aWNsZQoxMSBvZiB0aGUgV0lQTyBjb3B5cmlnaHQgdHJlYXR5IGFkb3B0ZWQgb24gMjAgRGVjZW1iZXIgMTk5Niwgb3IKc2ltaWxhciBsYXdzIHByb2hpYml0aW5nIG9yIHJlc3RyaWN0aW5nIGNpcmN1bXZlbnRpb24gb2Ygc3VjaAptZWFzdXJlcy4KCiAgV2hlbiB5b3UgY29udmV5IGEgY292ZXJlZCB3b3JrLCB5b3Ugd2FpdmUgYW55IGxlZ2FsIHBvd2VyIHRvIGZvcmJpZApjaXJjdW12ZW50aW9uIG9mIHRlY2hub2xvZ2ljYWwgbWVhc3VyZXMgdG8gdGhlIGV4dGVudCBzdWNoIGNpcmN1bXZlbnRpb24KaXMgZWZmZWN0ZWQgYnkgZXhlcmNpc2luZyByaWdodHMgdW5kZXIgdGhpcyBMaWNlbnNlIHdpdGggcmVzcGVjdCB0bwp0aGUgY292ZXJlZCB3b3JrLCBhbmQgeW91IGRpc2NsYWltIGFueSBpbnRlbnRpb24gdG8gbGltaXQgb3BlcmF0aW9uIG9yCm1vZGlmaWNhdGlvbiBvZiB0aGUgd29yayBhcyBhIG1lYW5zIG9mIGVuZm9yY2luZywgYWdhaW5zdCB0aGUgd29yaydzCnVzZXJzLCB5b3VyIG9yIHRoaXJkIHBhcnRpZXMnIGxlZ2FsIHJpZ2h0cyB0byBmb3JiaWQgY2lyY3VtdmVudGlvbiBvZgp0ZWNobm9sb2dpY2FsIG1lYXN1cmVzLgoKICA0LiBDb252ZXlpbmcgVmVyYmF0aW0gQ29waWVzLgoKICBZb3UgbWF5IGNvbnZleSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncyBzb3VyY2UgY29kZSBhcyB5b3UKcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwgcHJvdmlkZWQgdGhhdCB5b3UgY29uc3BpY3VvdXNseSBhbmQKYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlOwprZWVwIGludGFjdCBhbGwgbm90aWNlcyBzdGF0aW5nIHRoYXQgdGhpcyBMaWNlbnNlIGFuZCBhbnkKbm9uLXBlcm1pc3NpdmUgdGVybXMgYWRkZWQgaW4gYWNjb3JkIHdpdGggc2VjdGlvbiA3IGFwcGx5IHRvIHRoZSBjb2RlOwprZWVwIGludGFjdCBhbGwgbm90aWNlcyBvZiB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7IGFuZCBnaXZlIGFsbApyZWNpcGllbnRzIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCiAgWW91IG1heSBjaGFyZ2UgYW55IHByaWNlIG9yIG5vIHByaWNlIGZvciBlYWNoIGNvcHkgdGhhdCB5b3UgY29udmV5LAphbmQgeW91IG1heSBvZmZlciBzdXBwb3J0IG9yIHdhcnJhbnR5IHByb3RlY3Rpb24gZm9yIGEgZmVlLgoKICA1LiBDb252ZXlpbmcgTW9kaWZpZWQgU291cmNlIFZlcnNpb25zLgoKICBZb3UgbWF5IGNvbnZleSBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0sIG9yIHRoZSBtb2RpZmljYXRpb25zIHRvCnByb2R1Y2UgaXQgZnJvbSB0aGUgUHJvZ3JhbSwgaW4gdGhlIGZvcm0gb2Ygc291cmNlIGNvZGUgdW5kZXIgdGhlCnRlcm1zIG9mIHNlY3Rpb24gNCwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgoKICAgIGEpIFRoZSB3b3JrIG11c3QgY2FycnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZyB0aGF0IHlvdSBtb2RpZmllZAogICAgaXQsIGFuZCBnaXZpbmcgYSByZWxldmFudCBkYXRlLgoKICAgIGIpIFRoZSB3b3JrIG11c3QgY2FycnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZyB0aGF0IGl0IGlzCiAgICByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UgYW5kIGFueSBjb25kaXRpb25zIGFkZGVkIHVuZGVyIHNlY3Rpb24KICAgIDcuICBUaGlzIHJlcXVpcmVtZW50IG1vZGlmaWVzIHRoZSByZXF1aXJlbWVudCBpbiBzZWN0aW9uIDQgdG8KICAgICJrZWVwIGludGFjdCBhbGwgbm90aWNlcyIuCgogICAgYykgWW91IG11c3QgbGljZW5zZSB0aGUgZW50aXJlIHdvcmssIGFzIGEgd2hvbGUsIHVuZGVyIHRoaXMKICAgIExpY2Vuc2UgdG8gYW55b25lIHdobyBjb21lcyBpbnRvIHBvc3Nlc3Npb24gb2YgYSBjb3B5LiAgVGhpcwogICAgTGljZW5zZSB3aWxsIHRoZXJlZm9yZSBhcHBseSwgYWxvbmcgd2l0aCBhbnkgYXBwbGljYWJsZSBzZWN0aW9uIDcKICAgIGFkZGl0aW9uYWwgdGVybXMsIHRvIHRoZSB3aG9sZSBvZiB0aGUgd29yaywgYW5kIGFsbCBpdHMgcGFydHMsCiAgICByZWdhcmRsZXNzIG9mIGhvdyB0aGV5IGFyZSBwYWNrYWdlZC4gIFRoaXMgTGljZW5zZSBnaXZlcyBubwogICAgcGVybWlzc2lvbiB0byBsaWNlbnNlIHRoZSB3b3JrIGluIGFueSBvdGhlciB3YXksIGJ1dCBpdCBkb2VzIG5vdAogICAgaW52YWxpZGF0ZSBzdWNoIHBlcm1pc3Npb24gaWYgeW91IGhhdmUgc2VwYXJhdGVseSByZWNlaXZlZCBpdC4KCiAgICBkKSBJZiB0aGUgd29yayBoYXMgaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2VzLCBlYWNoIG11c3QgZGlzcGxheQogICAgQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlczsgaG93ZXZlciwgaWYgdGhlIFByb2dyYW0gaGFzIGludGVyYWN0aXZlCiAgICBpbnRlcmZhY2VzIHRoYXQgZG8gbm90IGRpc3BsYXkgQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcywgeW91cgogICAgd29yayBuZWVkIG5vdCBtYWtlIHRoZW0gZG8gc28uCgogIEEgY29tcGlsYXRpb24gb2YgYSBjb3ZlcmVkIHdvcmsgd2l0aCBvdGhlciBzZXBhcmF0ZSBhbmQgaW5kZXBlbmRlbnQKd29ya3MsIHdoaWNoIGFyZSBub3QgYnkgdGhlaXIgbmF0dXJlIGV4dGVuc2lvbnMgb2YgdGhlIGNvdmVyZWQgd29yaywKYW5kIHdoaWNoIGFyZSBub3QgY29tYmluZWQgd2l0aCBpdCBzdWNoIGFzIHRvIGZvcm0gYSBsYXJnZXIgcHJvZ3JhbSwKaW4gb3Igb24gYSB2b2x1bWUgb2YgYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0sIGlzIGNhbGxlZCBhbgoiYWdncmVnYXRlIiBpZiB0aGUgY29tcGlsYXRpb24gYW5kIGl0cyByZXN1bHRpbmcgY29weXJpZ2h0IGFyZSBub3QKdXNlZCB0byBsaW1pdCB0aGUgYWNjZXNzIG9yIGxlZ2FsIHJpZ2h0cyBvZiB0aGUgY29tcGlsYXRpb24ncyB1c2VycwpiZXlvbmQgd2hhdCB0aGUgaW5kaXZpZHVhbCB3b3JrcyBwZXJtaXQuICBJbmNsdXNpb24gb2YgYSBjb3ZlcmVkIHdvcmsKaW4gYW4gYWdncmVnYXRlIGRvZXMgbm90IGNhdXNlIHRoaXMgTGljZW5zZSB0byBhcHBseSB0byB0aGUgb3RoZXIKcGFydHMgb2YgdGhlIGFnZ3JlZ2F0ZS4KCiAgNi4gQ29udmV5aW5nIE5vbi1Tb3VyY2UgRm9ybXMuCgogIFlvdSBtYXkgY29udmV5IGEgY292ZXJlZCB3b3JrIGluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgdGhlIHRlcm1zCm9mIHNlY3Rpb25zIDQgYW5kIDUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gY29udmV5IHRoZQptYWNoaW5lLXJlYWRhYmxlIENvcnJlc3BvbmRpbmcgU291cmNlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UsCmluIG9uZSBvZiB0aGVzZSB3YXlzOgoKICAgIGEpIENvbnZleSB0aGUgb2JqZWN0IGNvZGUgaW4sIG9yIGVtYm9kaWVkIGluLCBhIHBoeXNpY2FsIHByb2R1Y3QKICAgIChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmaXhlZCBvbiBhIGR1cmFibGUgcGh5c2ljYWwgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZS4KCiAgICBiKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0CiAgICAoaW5jbHVkaW5nIGEgcGh5c2ljYWwgZGlzdHJpYnV0aW9uIG1lZGl1bSksIGFjY29tcGFuaWVkIGJ5IGEKICAgIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZSB5ZWFycyBhbmQgdmFsaWQgZm9yIGFzCiAgICBsb25nIGFzIHlvdSBvZmZlciBzcGFyZSBwYXJ0cyBvciBjdXN0b21lciBzdXBwb3J0IGZvciB0aGF0IHByb2R1Y3QKICAgIG1vZGVsLCB0byBnaXZlIGFueW9uZSB3aG8gcG9zc2Vzc2VzIHRoZSBvYmplY3QgY29kZSBlaXRoZXIgKDEpIGEKICAgIGNvcHkgb2YgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGZvciBhbGwgdGhlIHNvZnR3YXJlIGluIHRoZQogICAgcHJvZHVjdCB0aGF0IGlzIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLCBvbiBhIGR1cmFibGUgcGh5c2ljYWwKICAgIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZSwgZm9yIGEgcHJpY2Ugbm8KICAgIG1vcmUgdGhhbiB5b3VyIHJlYXNvbmFibGUgY29zdCBvZiBwaHlzaWNhbGx5IHBlcmZvcm1pbmcgdGhpcwogICAgY29udmV5aW5nIG9mIHNvdXJjZSwgb3IgKDIpIGFjY2VzcyB0byBjb3B5IHRoZQogICAgQ29ycmVzcG9uZGluZyBTb3VyY2UgZnJvbSBhIG5ldHdvcmsgc2VydmVyIGF0IG5vIGNoYXJnZS4KCiAgICBjKSBDb252ZXkgaW5kaXZpZHVhbCBjb3BpZXMgb2YgdGhlIG9iamVjdCBjb2RlIHdpdGggYSBjb3B5IG9mIHRoZQogICAgd3JpdHRlbiBvZmZlciB0byBwcm92aWRlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZS4gIFRoaXMKICAgIGFsdGVybmF0aXZlIGlzIGFsbG93ZWQgb25seSBvY2Nhc2lvbmFsbHkgYW5kIG5vbmNvbW1lcmNpYWxseSwgYW5kCiAgICBvbmx5IGlmIHlvdSByZWNlaXZlZCB0aGUgb2JqZWN0IGNvZGUgd2l0aCBzdWNoIGFuIG9mZmVyLCBpbiBhY2NvcmQKICAgIHdpdGggc3Vic2VjdGlvbiA2Yi4KCiAgICBkKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGJ5IG9mZmVyaW5nIGFjY2VzcyBmcm9tIGEgZGVzaWduYXRlZAogICAgcGxhY2UgKGdyYXRpcyBvciBmb3IgYSBjaGFyZ2UpLCBhbmQgb2ZmZXIgZXF1aXZhbGVudCBhY2Nlc3MgdG8gdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBpbiB0aGUgc2FtZSB3YXkgdGhyb3VnaCB0aGUgc2FtZSBwbGFjZSBhdCBubwogICAgZnVydGhlciBjaGFyZ2UuICBZb3UgbmVlZCBub3QgcmVxdWlyZSByZWNpcGllbnRzIHRvIGNvcHkgdGhlCiAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4gIElmIHRoZSBwbGFjZSB0bwogICAgY29weSB0aGUgb2JqZWN0IGNvZGUgaXMgYSBuZXR3b3JrIHNlcnZlciwgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlCiAgICBtYXkgYmUgb24gYSBkaWZmZXJlbnQgc2VydmVyIChvcGVyYXRlZCBieSB5b3Ugb3IgYSB0aGlyZCBwYXJ0eSkKICAgIHRoYXQgc3VwcG9ydHMgZXF1aXZhbGVudCBjb3B5aW5nIGZhY2lsaXRpZXMsIHByb3ZpZGVkIHlvdSBtYWludGFpbgogICAgY2xlYXIgZGlyZWN0aW9ucyBuZXh0IHRvIHRoZSBvYmplY3QgY29kZSBzYXlpbmcgd2hlcmUgdG8gZmluZCB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlLiAgUmVnYXJkbGVzcyBvZiB3aGF0IHNlcnZlciBob3N0cyB0aGUKICAgIENvcnJlc3BvbmRpbmcgU291cmNlLCB5b3UgcmVtYWluIG9ibGlnYXRlZCB0byBlbnN1cmUgdGhhdCBpdCBpcwogICAgYXZhaWxhYmxlIGZvciBhcyBsb25nIGFzIG5lZWRlZCB0byBzYXRpc2Z5IHRoZXNlIHJlcXVpcmVtZW50cy4KCiAgICBlKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIHVzaW5nIHBlZXItdG8tcGVlciB0cmFuc21pc3Npb24sIHByb3ZpZGVkCiAgICB5b3UgaW5mb3JtIG90aGVyIHBlZXJzIHdoZXJlIHRoZSBvYmplY3QgY29kZSBhbmQgQ29ycmVzcG9uZGluZwogICAgU291cmNlIG9mIHRoZSB3b3JrIGFyZSBiZWluZyBvZmZlcmVkIHRvIHRoZSBnZW5lcmFsIHB1YmxpYyBhdCBubwogICAgY2hhcmdlIHVuZGVyIHN1YnNlY3Rpb24gNmQuCgogIEEgc2VwYXJhYmxlIHBvcnRpb24gb2YgdGhlIG9iamVjdCBjb2RlLCB3aG9zZSBzb3VyY2UgY29kZSBpcyBleGNsdWRlZApmcm9tIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBhcyBhIFN5c3RlbSBMaWJyYXJ5LCBuZWVkIG5vdCBiZQppbmNsdWRlZCBpbiBjb252ZXlpbmcgdGhlIG9iamVjdCBjb2RlIHdvcmsuCgogIEEgIlVzZXIgUHJvZHVjdCIgaXMgZWl0aGVyICgxKSBhICJjb25zdW1lciBwcm9kdWN0Iiwgd2hpY2ggbWVhbnMgYW55CnRhbmdpYmxlIHBlcnNvbmFsIHByb3BlcnR5IHdoaWNoIGlzIG5vcm1hbGx5IHVzZWQgZm9yIHBlcnNvbmFsLCBmYW1pbHksCm9yIGhvdXNlaG9sZCBwdXJwb3Nlcywgb3IgKDIpIGFueXRoaW5nIGRlc2lnbmVkIG9yIHNvbGQgZm9yIGluY29ycG9yYXRpb24KaW50byBhIGR3ZWxsaW5nLiAgSW4gZGV0ZXJtaW5pbmcgd2hldGhlciBhIHByb2R1Y3QgaXMgYSBjb25zdW1lciBwcm9kdWN0LApkb3VidGZ1bCBjYXNlcyBzaGFsbCBiZSByZXNvbHZlZCBpbiBmYXZvciBvZiBjb3ZlcmFnZS4gIEZvciBhIHBhcnRpY3VsYXIKcHJvZHVjdCByZWNlaXZlZCBieSBhIHBhcnRpY3VsYXIgdXNlciwgIm5vcm1hbGx5IHVzZWQiIHJlZmVycyB0byBhCnR5cGljYWwgb3IgY29tbW9uIHVzZSBvZiB0aGF0IGNsYXNzIG9mIHByb2R1Y3QsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YXR1cwpvZiB0aGUgcGFydGljdWxhciB1c2VyIG9yIG9mIHRoZSB3YXkgaW4gd2hpY2ggdGhlIHBhcnRpY3VsYXIgdXNlcgphY3R1YWxseSB1c2VzLCBvciBleHBlY3RzIG9yIGlzIGV4cGVjdGVkIHRvIHVzZSwgdGhlIHByb2R1Y3QuICBBIHByb2R1Y3QKaXMgYSBjb25zdW1lciBwcm9kdWN0IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgcHJvZHVjdCBoYXMgc3Vic3RhbnRpYWwKY29tbWVyY2lhbCwgaW5kdXN0cmlhbCBvciBub24tY29uc3VtZXIgdXNlcywgdW5sZXNzIHN1Y2ggdXNlcyByZXByZXNlbnQKdGhlIG9ubHkgc2lnbmlmaWNhbnQgbW9kZSBvZiB1c2Ugb2YgdGhlIHByb2R1Y3QuCgogICJJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24iIGZvciBhIFVzZXIgUHJvZHVjdCBtZWFucyBhbnkgbWV0aG9kcywKcHJvY2VkdXJlcywgYXV0aG9yaXphdGlvbiBrZXlzLCBvciBvdGhlciBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBpbnN0YWxsCmFuZCBleGVjdXRlIG1vZGlmaWVkIHZlcnNpb25zIG9mIGEgY292ZXJlZCB3b3JrIGluIHRoYXQgVXNlciBQcm9kdWN0IGZyb20KYSBtb2RpZmllZCB2ZXJzaW9uIG9mIGl0cyBDb3JyZXNwb25kaW5nIFNvdXJjZS4gIFRoZSBpbmZvcm1hdGlvbiBtdXN0CnN1ZmZpY2UgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbnRpbnVlZCBmdW5jdGlvbmluZyBvZiB0aGUgbW9kaWZpZWQgb2JqZWN0CmNvZGUgaXMgaW4gbm8gY2FzZSBwcmV2ZW50ZWQgb3IgaW50ZXJmZXJlZCB3aXRoIHNvbGVseSBiZWNhdXNlCm1vZGlmaWNhdGlvbiBoYXMgYmVlbiBtYWRlLgoKICBJZiB5b3UgY29udmV5IGFuIG9iamVjdCBjb2RlIHdvcmsgdW5kZXIgdGhpcyBzZWN0aW9uIGluLCBvciB3aXRoLCBvcgpzcGVjaWZpY2FsbHkgZm9yIHVzZSBpbiwgYSBVc2VyIFByb2R1Y3QsIGFuZCB0aGUgY29udmV5aW5nIG9jY3VycyBhcwpwYXJ0IG9mIGEgdHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIHJpZ2h0IG9mIHBvc3Nlc3Npb24gYW5kIHVzZSBvZiB0aGUKVXNlciBQcm9kdWN0IGlzIHRyYW5zZmVycmVkIHRvIHRoZSByZWNpcGllbnQgaW4gcGVycGV0dWl0eSBvciBmb3IgYQpmaXhlZCB0ZXJtIChyZWdhcmRsZXNzIG9mIGhvdyB0aGUgdHJhbnNhY3Rpb24gaXMgY2hhcmFjdGVyaXplZCksIHRoZQpDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCB1bmRlciB0aGlzIHNlY3Rpb24gbXVzdCBiZSBhY2NvbXBhbmllZApieSB0aGUgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uLiAgQnV0IHRoaXMgcmVxdWlyZW1lbnQgZG9lcyBub3QgYXBwbHkKaWYgbmVpdGhlciB5b3Ugbm9yIGFueSB0aGlyZCBwYXJ0eSByZXRhaW5zIHRoZSBhYmlsaXR5IHRvIGluc3RhbGwKbW9kaWZpZWQgb2JqZWN0IGNvZGUgb24gdGhlIFVzZXIgUHJvZHVjdCAoZm9yIGV4YW1wbGUsIHRoZSB3b3JrIGhhcwpiZWVuIGluc3RhbGxlZCBpbiBST00pLgoKICBUaGUgcmVxdWlyZW1lbnQgdG8gcHJvdmlkZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gZG9lcyBub3QgaW5jbHVkZSBhCnJlcXVpcmVtZW50IHRvIGNvbnRpbnVlIHRvIHByb3ZpZGUgc3VwcG9ydCBzZXJ2aWNlLCB3YXJyYW50eSwgb3IgdXBkYXRlcwpmb3IgYSB3b3JrIHRoYXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkIGJ5IHRoZSByZWNpcGllbnQsIG9yIGZvcgp0aGUgVXNlciBQcm9kdWN0IGluIHdoaWNoIGl0IGhhcyBiZWVuIG1vZGlmaWVkIG9yIGluc3RhbGxlZC4gIEFjY2VzcyB0byBhCm5ldHdvcmsgbWF5IGJlIGRlbmllZCB3aGVuIHRoZSBtb2RpZmljYXRpb24gaXRzZWxmIG1hdGVyaWFsbHkgYW5kCmFkdmVyc2VseSBhZmZlY3RzIHRoZSBvcGVyYXRpb24gb2YgdGhlIG5ldHdvcmsgb3IgdmlvbGF0ZXMgdGhlIHJ1bGVzIGFuZApwcm90b2NvbHMgZm9yIGNvbW11bmljYXRpb24gYWNyb3NzIHRoZSBuZXR3b3JrLgoKICBDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCwgYW5kIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiBwcm92aWRlZCwKaW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uIG11c3QgYmUgaW4gYSBmb3JtYXQgdGhhdCBpcyBwdWJsaWNseQpkb2N1bWVudGVkIChhbmQgd2l0aCBhbiBpbXBsZW1lbnRhdGlvbiBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbgpzb3VyY2UgY29kZSBmb3JtKSwgYW5kIG11c3QgcmVxdWlyZSBubyBzcGVjaWFsIHBhc3N3b3JkIG9yIGtleSBmb3IKdW5wYWNraW5nLCByZWFkaW5nIG9yIGNvcHlpbmcuCgogIDcuIEFkZGl0aW9uYWwgVGVybXMuCgogICJBZGRpdGlvbmFsIHBlcm1pc3Npb25zIiBhcmUgdGVybXMgdGhhdCBzdXBwbGVtZW50IHRoZSB0ZXJtcyBvZiB0aGlzCkxpY2Vuc2UgYnkgbWFraW5nIGV4Y2VwdGlvbnMgZnJvbSBvbmUgb3IgbW9yZSBvZiBpdHMgY29uZGl0aW9ucy4KQWRkaXRpb25hbCBwZXJtaXNzaW9ucyB0aGF0IGFyZSBhcHBsaWNhYmxlIHRvIHRoZSBlbnRpcmUgUHJvZ3JhbSBzaGFsbApiZSB0cmVhdGVkIGFzIHRob3VnaCB0aGV5IHdlcmUgaW5jbHVkZWQgaW4gdGhpcyBMaWNlbnNlLCB0byB0aGUgZXh0ZW50CnRoYXQgdGhleSBhcmUgdmFsaWQgdW5kZXIgYXBwbGljYWJsZSBsYXcuICBJZiBhZGRpdGlvbmFsIHBlcm1pc3Npb25zCmFwcGx5IG9ubHkgdG8gcGFydCBvZiB0aGUgUHJvZ3JhbSwgdGhhdCBwYXJ0IG1heSBiZSB1c2VkIHNlcGFyYXRlbHkKdW5kZXIgdGhvc2UgcGVybWlzc2lvbnMsIGJ1dCB0aGUgZW50aXJlIFByb2dyYW0gcmVtYWlucyBnb3Zlcm5lZCBieQp0aGlzIExpY2Vuc2Ugd2l0aG91dCByZWdhcmQgdG8gdGhlIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMuCgogIFdoZW4geW91IGNvbnZleSBhIGNvcHkgb2YgYSBjb3ZlcmVkIHdvcmssIHlvdSBtYXkgYXQgeW91ciBvcHRpb24KcmVtb3ZlIGFueSBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGZyb20gdGhhdCBjb3B5LCBvciBmcm9tIGFueSBwYXJ0IG9mCml0LiAgKEFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbWF5IGJlIHdyaXR0ZW4gdG8gcmVxdWlyZSB0aGVpciBvd24KcmVtb3ZhbCBpbiBjZXJ0YWluIGNhc2VzIHdoZW4geW91IG1vZGlmeSB0aGUgd29yay4pICBZb3UgbWF5IHBsYWNlCmFkZGl0aW9uYWwgcGVybWlzc2lvbnMgb24gbWF0ZXJpYWwsIGFkZGVkIGJ5IHlvdSB0byBhIGNvdmVyZWQgd29yaywKZm9yIHdoaWNoIHlvdSBoYXZlIG9yIGNhbiBnaXZlIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBwZXJtaXNzaW9uLgoKICBOb3R3aXRoc3RhbmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIGZvciBtYXRlcmlhbCB5b3UKYWRkIHRvIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IChpZiBhdXRob3JpemVkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVycyBvZgp0aGF0IG1hdGVyaWFsKSBzdXBwbGVtZW50IHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2Ugd2l0aCB0ZXJtczoKCiAgICBhKSBEaXNjbGFpbWluZyB3YXJyYW50eSBvciBsaW1pdGluZyBsaWFiaWxpdHkgZGlmZmVyZW50bHkgZnJvbSB0aGUKICAgIHRlcm1zIG9mIHNlY3Rpb25zIDE1IGFuZCAxNiBvZiB0aGlzIExpY2Vuc2U7IG9yCgogICAgYikgUmVxdWlyaW5nIHByZXNlcnZhdGlvbiBvZiBzcGVjaWZpZWQgcmVhc29uYWJsZSBsZWdhbCBub3RpY2VzIG9yCiAgICBhdXRob3IgYXR0cmlidXRpb25zIGluIHRoYXQgbWF0ZXJpYWwgb3IgaW4gdGhlIEFwcHJvcHJpYXRlIExlZ2FsCiAgICBOb3RpY2VzIGRpc3BsYXllZCBieSB3b3JrcyBjb250YWluaW5nIGl0OyBvcgoKICAgIGMpIFByb2hpYml0aW5nIG1pc3JlcHJlc2VudGF0aW9uIG9mIHRoZSBvcmlnaW4gb2YgdGhhdCBtYXRlcmlhbCwgb3IKICAgIHJlcXVpcmluZyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIG9mIHN1Y2ggbWF0ZXJpYWwgYmUgbWFya2VkIGluCiAgICByZWFzb25hYmxlIHdheXMgYXMgZGlmZmVyZW50IGZyb20gdGhlIG9yaWdpbmFsIHZlcnNpb247IG9yCgogICAgZCkgTGltaXRpbmcgdGhlIHVzZSBmb3IgcHVibGljaXR5IHB1cnBvc2VzIG9mIG5hbWVzIG9mIGxpY2Vuc29ycyBvcgogICAgYXV0aG9ycyBvZiB0aGUgbWF0ZXJpYWw7IG9yCgogICAgZSkgRGVjbGluaW5nIHRvIGdyYW50IHJpZ2h0cyB1bmRlciB0cmFkZW1hcmsgbGF3IGZvciB1c2Ugb2Ygc29tZQogICAgdHJhZGUgbmFtZXMsIHRyYWRlbWFya3MsIG9yIHNlcnZpY2UgbWFya3M7IG9yCgogICAgZikgUmVxdWlyaW5nIGluZGVtbmlmaWNhdGlvbiBvZiBsaWNlbnNvcnMgYW5kIGF1dGhvcnMgb2YgdGhhdAogICAgbWF0ZXJpYWwgYnkgYW55b25lIHdobyBjb252ZXlzIHRoZSBtYXRlcmlhbCAob3IgbW9kaWZpZWQgdmVyc2lvbnMgb2YKICAgIGl0KSB3aXRoIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIG9mIGxpYWJpbGl0eSB0byB0aGUgcmVjaXBpZW50LCBmb3IKICAgIGFueSBsaWFiaWxpdHkgdGhhdCB0aGVzZSBjb250cmFjdHVhbCBhc3N1bXB0aW9ucyBkaXJlY3RseSBpbXBvc2Ugb24KICAgIHRob3NlIGxpY2Vuc29ycyBhbmQgYXV0aG9ycy4KCiAgQWxsIG90aGVyIG5vbi1wZXJtaXNzaXZlIGFkZGl0aW9uYWwgdGVybXMgYXJlIGNvbnNpZGVyZWQgImZ1cnRoZXIKcmVzdHJpY3Rpb25zIiB3aXRoaW4gdGhlIG1lYW5pbmcgb2Ygc2VjdGlvbiAxMC4gIElmIHRoZSBQcm9ncmFtIGFzIHlvdQpyZWNlaXZlZCBpdCwgb3IgYW55IHBhcnQgb2YgaXQsIGNvbnRhaW5zIGEgbm90aWNlIHN0YXRpbmcgdGhhdCBpdCBpcwpnb3Zlcm5lZCBieSB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCBhIHRlcm0gdGhhdCBpcyBhIGZ1cnRoZXIKcmVzdHJpY3Rpb24sIHlvdSBtYXkgcmVtb3ZlIHRoYXQgdGVybS4gIElmIGEgbGljZW5zZSBkb2N1bWVudCBjb250YWlucwphIGZ1cnRoZXIgcmVzdHJpY3Rpb24gYnV0IHBlcm1pdHMgcmVsaWNlbnNpbmcgb3IgY29udmV5aW5nIHVuZGVyIHRoaXMKTGljZW5zZSwgeW91IG1heSBhZGQgdG8gYSBjb3ZlcmVkIHdvcmsgbWF0ZXJpYWwgZ292ZXJuZWQgYnkgdGhlIHRlcm1zCm9mIHRoYXQgbGljZW5zZSBkb2N1bWVudCwgcHJvdmlkZWQgdGhhdCB0aGUgZnVydGhlciByZXN0cmljdGlvbiBkb2VzCm5vdCBzdXJ2aXZlIHN1Y2ggcmVsaWNlbnNpbmcgb3IgY29udmV5aW5nLgoKICBJZiB5b3UgYWRkIHRlcm1zIHRvIGEgY292ZXJlZCB3b3JrIGluIGFjY29yZCB3aXRoIHRoaXMgc2VjdGlvbiwgeW91Cm11c3QgcGxhY2UsIGluIHRoZSByZWxldmFudCBzb3VyY2UgZmlsZXMsIGEgc3RhdGVtZW50IG9mIHRoZQphZGRpdGlvbmFsIHRlcm1zIHRoYXQgYXBwbHkgdG8gdGhvc2UgZmlsZXMsIG9yIGEgbm90aWNlIGluZGljYXRpbmcKd2hlcmUgdG8gZmluZCB0aGUgYXBwbGljYWJsZSB0ZXJtcy4KCiAgQWRkaXRpb25hbCB0ZXJtcywgcGVybWlzc2l2ZSBvciBub24tcGVybWlzc2l2ZSwgbWF5IGJlIHN0YXRlZCBpbiB0aGUKZm9ybSBvZiBhIHNlcGFyYXRlbHkgd3JpdHRlbiBsaWNlbnNlLCBvciBzdGF0ZWQgYXMgZXhjZXB0aW9uczsKdGhlIGFib3ZlIHJlcXVpcmVtZW50cyBhcHBseSBlaXRoZXIgd2F5LgoKICA4LiBUZXJtaW5hdGlvbi4KCiAgWW91IG1heSBub3QgcHJvcGFnYXRlIG9yIG1vZGlmeSBhIGNvdmVyZWQgd29yayBleGNlcHQgYXMgZXhwcmVzc2x5CnByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0IG90aGVyd2lzZSB0byBwcm9wYWdhdGUgb3IKbW9kaWZ5IGl0IGlzIHZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyCnRoaXMgTGljZW5zZSAoaW5jbHVkaW5nIGFueSBwYXRlbnQgbGljZW5zZXMgZ3JhbnRlZCB1bmRlciB0aGUgdGhpcmQKcGFyYWdyYXBoIG9mIHNlY3Rpb24gMTEpLgoKICBIb3dldmVyLCBpZiB5b3UgY2Vhc2UgYWxsIHZpb2xhdGlvbiBvZiB0aGlzIExpY2Vuc2UsIHRoZW4geW91cgpsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMgcmVpbnN0YXRlZCAoYSkKcHJvdmlzaW9uYWxseSwgdW5sZXNzIGFuZCB1bnRpbCB0aGUgY29weXJpZ2h0IGhvbGRlciBleHBsaWNpdGx5IGFuZApmaW5hbGx5IHRlcm1pbmF0ZXMgeW91ciBsaWNlbnNlLCBhbmQgKGIpIHBlcm1hbmVudGx5LCBpZiB0aGUgY29weXJpZ2h0CmhvbGRlciBmYWlscyB0byBub3RpZnkgeW91IG9mIHRoZSB2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zCnByaW9yIHRvIDYwIGRheXMgYWZ0ZXIgdGhlIGNlc3NhdGlvbi4KCiAgTW9yZW92ZXIsIHlvdXIgbGljZW5zZSBmcm9tIGEgcGFydGljdWxhciBjb3B5cmlnaHQgaG9sZGVyIGlzCnJlaW5zdGF0ZWQgcGVybWFuZW50bHkgaWYgdGhlIGNvcHlyaWdodCBob2xkZXIgbm90aWZpZXMgeW91IG9mIHRoZQp2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zLCB0aGlzIGlzIHRoZSBmaXJzdCB0aW1lIHlvdSBoYXZlCnJlY2VpdmVkIG5vdGljZSBvZiB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNlIChmb3IgYW55IHdvcmspIGZyb20gdGhhdApjb3B5cmlnaHQgaG9sZGVyLCBhbmQgeW91IGN1cmUgdGhlIHZpb2xhdGlvbiBwcmlvciB0byAzMCBkYXlzIGFmdGVyCnlvdXIgcmVjZWlwdCBvZiB0aGUgbm90aWNlLgoKICBUZXJtaW5hdGlvbiBvZiB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIHNlY3Rpb24gZG9lcyBub3QgdGVybWluYXRlIHRoZQpsaWNlbnNlcyBvZiBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcyBvciByaWdodHMgZnJvbSB5b3UgdW5kZXIKdGhpcyBMaWNlbnNlLiAgSWYgeW91ciByaWdodHMgaGF2ZSBiZWVuIHRlcm1pbmF0ZWQgYW5kIG5vdCBwZXJtYW5lbnRseQpyZWluc3RhdGVkLCB5b3UgZG8gbm90IHF1YWxpZnkgdG8gcmVjZWl2ZSBuZXcgbGljZW5zZXMgZm9yIHRoZSBzYW1lCm1hdGVyaWFsIHVuZGVyIHNlY3Rpb24gMTAuCgogIDkuIEFjY2VwdGFuY2UgTm90IFJlcXVpcmVkIGZvciBIYXZpbmcgQ29waWVzLgoKICBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlIGluIG9yZGVyIHRvIHJlY2VpdmUgb3IKcnVuIGEgY29weSBvZiB0aGUgUHJvZ3JhbS4gIEFuY2lsbGFyeSBwcm9wYWdhdGlvbiBvZiBhIGNvdmVyZWQgd29yawpvY2N1cnJpbmcgc29sZWx5IGFzIGEgY29uc2VxdWVuY2Ugb2YgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbgp0byByZWNlaXZlIGEgY29weSBsaWtld2lzZSBkb2VzIG5vdCByZXF1aXJlIGFjY2VwdGFuY2UuICBIb3dldmVyLApub3RoaW5nIG90aGVyIHRoYW4gdGhpcyBMaWNlbnNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBwcm9wYWdhdGUgb3IKbW9kaWZ5IGFueSBjb3ZlcmVkIHdvcmsuICBUaGVzZSBhY3Rpb25zIGluZnJpbmdlIGNvcHlyaWdodCBpZiB5b3UgZG8Kbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5IG1vZGlmeWluZyBvciBwcm9wYWdhdGluZyBhCmNvdmVyZWQgd29yaywgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28uCgogIDEwLiBBdXRvbWF0aWMgTGljZW5zaW5nIG9mIERvd25zdHJlYW0gUmVjaXBpZW50cy4KCiAgRWFjaCB0aW1lIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseQpyZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUgb3JpZ2luYWwgbGljZW5zb3JzLCB0byBydW4sIG1vZGlmeSBhbmQKcHJvcGFnYXRlIHRoYXQgd29yaywgc3ViamVjdCB0byB0aGlzIExpY2Vuc2UuICBZb3UgYXJlIG5vdCByZXNwb25zaWJsZQpmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB3aXRoIHRoaXMgTGljZW5zZS4KCiAgQW4gImVudGl0eSB0cmFuc2FjdGlvbiIgaXMgYSB0cmFuc2FjdGlvbiB0cmFuc2ZlcnJpbmcgY29udHJvbCBvZiBhbgpvcmdhbml6YXRpb24sIG9yIHN1YnN0YW50aWFsbHkgYWxsIGFzc2V0cyBvZiBvbmUsIG9yIHN1YmRpdmlkaW5nIGFuCm9yZ2FuaXphdGlvbiwgb3IgbWVyZ2luZyBvcmdhbml6YXRpb25zLiAgSWYgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkCndvcmsgcmVzdWx0cyBmcm9tIGFuIGVudGl0eSB0cmFuc2FjdGlvbiwgZWFjaCBwYXJ0eSB0byB0aGF0CnRyYW5zYWN0aW9uIHdobyByZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHdvcmsgYWxzbyByZWNlaXZlcyB3aGF0ZXZlcgpsaWNlbnNlcyB0byB0aGUgd29yayB0aGUgcGFydHkncyBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCBoYWQgb3IgY291bGQKZ2l2ZSB1bmRlciB0aGUgcHJldmlvdXMgcGFyYWdyYXBoLCBwbHVzIGEgcmlnaHQgdG8gcG9zc2Vzc2lvbiBvZiB0aGUKQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdvcmsgZnJvbSB0aGUgcHJlZGVjZXNzb3IgaW4gaW50ZXJlc3QsIGlmCnRoZSBwcmVkZWNlc3NvciBoYXMgaXQgb3IgY2FuIGdldCBpdCB3aXRoIHJlYXNvbmFibGUgZWZmb3J0cy4KCiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyIHJlc3RyaWN0aW9ucyBvbiB0aGUgZXhlcmNpc2Ugb2YgdGhlCnJpZ2h0cyBncmFudGVkIG9yIGFmZmlybWVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEZvciBleGFtcGxlLCB5b3UgbWF5Cm5vdCBpbXBvc2UgYSBsaWNlbnNlIGZlZSwgcm95YWx0eSwgb3Igb3RoZXIgY2hhcmdlIGZvciBleGVyY2lzZSBvZgpyaWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UsIGFuZCB5b3UgbWF5IG5vdCBpbml0aWF0ZSBsaXRpZ2F0aW9uCihpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0CmFueSBwYXRlbnQgY2xhaW0gaXMgaW5mcmluZ2VkIGJ5IG1ha2luZywgdXNpbmcsIHNlbGxpbmcsIG9mZmVyaW5nIGZvcgpzYWxlLCBvciBpbXBvcnRpbmcgdGhlIFByb2dyYW0gb3IgYW55IHBvcnRpb24gb2YgaXQuCgogIDExLiBQYXRlbnRzLgoKICBBICJjb250cmlidXRvciIgaXMgYSBjb3B5cmlnaHQgaG9sZGVyIHdobyBhdXRob3JpemVzIHVzZSB1bmRlciB0aGlzCkxpY2Vuc2Ugb2YgdGhlIFByb2dyYW0gb3IgYSB3b3JrIG9uIHdoaWNoIHRoZSBQcm9ncmFtIGlzIGJhc2VkLiAgVGhlCndvcmsgdGh1cyBsaWNlbnNlZCBpcyBjYWxsZWQgdGhlIGNvbnRyaWJ1dG9yJ3MgImNvbnRyaWJ1dG9yIHZlcnNpb24iLgoKICBBIGNvbnRyaWJ1dG9yJ3MgImVzc2VudGlhbCBwYXRlbnQgY2xhaW1zIiBhcmUgYWxsIHBhdGVudCBjbGFpbXMKb3duZWQgb3IgY29udHJvbGxlZCBieSB0aGUgY29udHJpYnV0b3IsIHdoZXRoZXIgYWxyZWFkeSBhY3F1aXJlZCBvcgpoZXJlYWZ0ZXIgYWNxdWlyZWQsIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIGJ5IHNvbWUgbWFubmVyLCBwZXJtaXR0ZWQKYnkgdGhpcyBMaWNlbnNlLCBvZiBtYWtpbmcsIHVzaW5nLCBvciBzZWxsaW5nIGl0cyBjb250cmlidXRvciB2ZXJzaW9uLApidXQgZG8gbm90IGluY2x1ZGUgY2xhaW1zIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIG9ubHkgYXMgYQpjb25zZXF1ZW5jZSBvZiBmdXJ0aGVyIG1vZGlmaWNhdGlvbiBvZiB0aGUgY29udHJpYnV0b3IgdmVyc2lvbi4gIEZvcgpwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJjb250cm9sIiBpbmNsdWRlcyB0aGUgcmlnaHQgdG8gZ3JhbnQKcGF0ZW50IHN1YmxpY2Vuc2VzIGluIGEgbWFubmVyIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mCnRoaXMgTGljZW5zZS4KCiAgRWFjaCBjb250cmlidXRvciBncmFudHMgeW91IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUKcGF0ZW50IGxpY2Vuc2UgdW5kZXIgdGhlIGNvbnRyaWJ1dG9yJ3MgZXNzZW50aWFsIHBhdGVudCBjbGFpbXMsIHRvCm1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgZm9yIHNhbGUsIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHJ1biwgbW9kaWZ5IGFuZApwcm9wYWdhdGUgdGhlIGNvbnRlbnRzIG9mIGl0cyBjb250cmlidXRvciB2ZXJzaW9uLgoKICBJbiB0aGUgZm9sbG93aW5nIHRocmVlIHBhcmFncmFwaHMsIGEgInBhdGVudCBsaWNlbnNlIiBpcyBhbnkgZXhwcmVzcwphZ3JlZW1lbnQgb3IgY29tbWl0bWVudCwgaG93ZXZlciBkZW5vbWluYXRlZCwgbm90IHRvIGVuZm9yY2UgYSBwYXRlbnQKKHN1Y2ggYXMgYW4gZXhwcmVzcyBwZXJtaXNzaW9uIHRvIHByYWN0aWNlIGEgcGF0ZW50IG9yIGNvdmVuYW50IG5vdCB0bwpzdWUgZm9yIHBhdGVudCBpbmZyaW5nZW1lbnQpLiAgVG8gImdyYW50IiBzdWNoIGEgcGF0ZW50IGxpY2Vuc2UgdG8gYQpwYXJ0eSBtZWFucyB0byBtYWtlIHN1Y2ggYW4gYWdyZWVtZW50IG9yIGNvbW1pdG1lbnQgbm90IHRvIGVuZm9yY2UgYQpwYXRlbnQgYWdhaW5zdCB0aGUgcGFydHkuCgogIElmIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIGtub3dpbmdseSByZWx5aW5nIG9uIGEgcGF0ZW50IGxpY2Vuc2UsCmFuZCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdvcmsgaXMgbm90IGF2YWlsYWJsZSBmb3IgYW55b25lCnRvIGNvcHksIGZyZWUgb2YgY2hhcmdlIGFuZCB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLCB0aHJvdWdoIGEKcHVibGljbHkgYXZhaWxhYmxlIG5ldHdvcmsgc2VydmVyIG9yIG90aGVyIHJlYWRpbHkgYWNjZXNzaWJsZSBtZWFucywKdGhlbiB5b3UgbXVzdCBlaXRoZXIgKDEpIGNhdXNlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB0byBiZSBzbwphdmFpbGFibGUsIG9yICgyKSBhcnJhbmdlIHRvIGRlcHJpdmUgeW91cnNlbGYgb2YgdGhlIGJlbmVmaXQgb2YgdGhlCnBhdGVudCBsaWNlbnNlIGZvciB0aGlzIHBhcnRpY3VsYXIgd29yaywgb3IgKDMpIGFycmFuZ2UsIGluIGEgbWFubmVyCmNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgTGljZW5zZSwgdG8gZXh0ZW5kIHRoZSBwYXRlbnQKbGljZW5zZSB0byBkb3duc3RyZWFtIHJlY2lwaWVudHMuICAiS25vd2luZ2x5IHJlbHlpbmciIG1lYW5zIHlvdSBoYXZlCmFjdHVhbCBrbm93bGVkZ2UgdGhhdCwgYnV0IGZvciB0aGUgcGF0ZW50IGxpY2Vuc2UsIHlvdXIgY29udmV5aW5nIHRoZQpjb3ZlcmVkIHdvcmsgaW4gYSBjb3VudHJ5LCBvciB5b3VyIHJlY2lwaWVudCdzIHVzZSBvZiB0aGUgY292ZXJlZCB3b3JrCmluIGEgY291bnRyeSwgd291bGQgaW5mcmluZ2Ugb25lIG9yIG1vcmUgaWRlbnRpZmlhYmxlIHBhdGVudHMgaW4gdGhhdApjb3VudHJ5IHRoYXQgeW91IGhhdmUgcmVhc29uIHRvIGJlbGlldmUgYXJlIHZhbGlkLgoKICBJZiwgcHVyc3VhbnQgdG8gb3IgaW4gY29ubmVjdGlvbiB3aXRoIGEgc2luZ2xlIHRyYW5zYWN0aW9uIG9yCmFycmFuZ2VtZW50LCB5b3UgY29udmV5LCBvciBwcm9wYWdhdGUgYnkgcHJvY3VyaW5nIGNvbnZleWFuY2Ugb2YsIGEKY292ZXJlZCB3b3JrLCBhbmQgZ3JhbnQgYSBwYXRlbnQgbGljZW5zZSB0byBzb21lIG9mIHRoZSBwYXJ0aWVzCnJlY2VpdmluZyB0aGUgY292ZXJlZCB3b3JrIGF1dGhvcml6aW5nIHRoZW0gdG8gdXNlLCBwcm9wYWdhdGUsIG1vZGlmeQpvciBjb252ZXkgYSBzcGVjaWZpYyBjb3B5IG9mIHRoZSBjb3ZlcmVkIHdvcmssIHRoZW4gdGhlIHBhdGVudCBsaWNlbnNlCnlvdSBncmFudCBpcyBhdXRvbWF0aWNhbGx5IGV4dGVuZGVkIHRvIGFsbCByZWNpcGllbnRzIG9mIHRoZSBjb3ZlcmVkCndvcmsgYW5kIHdvcmtzIGJhc2VkIG9uIGl0LgoKICBBIHBhdGVudCBsaWNlbnNlIGlzICJkaXNjcmltaW5hdG9yeSIgaWYgaXQgZG9lcyBub3QgaW5jbHVkZSB3aXRoaW4KdGhlIHNjb3BlIG9mIGl0cyBjb3ZlcmFnZSwgcHJvaGliaXRzIHRoZSBleGVyY2lzZSBvZiwgb3IgaXMKY29uZGl0aW9uZWQgb24gdGhlIG5vbi1leGVyY2lzZSBvZiBvbmUgb3IgbW9yZSBvZiB0aGUgcmlnaHRzIHRoYXQgYXJlCnNwZWNpZmljYWxseSBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIFlvdSBtYXkgbm90IGNvbnZleSBhIGNvdmVyZWQKd29yayBpZiB5b3UgYXJlIGEgcGFydHkgdG8gYW4gYXJyYW5nZW1lbnQgd2l0aCBhIHRoaXJkIHBhcnR5IHRoYXQgaXMKaW4gdGhlIGJ1c2luZXNzIG9mIGRpc3RyaWJ1dGluZyBzb2Z0d2FyZSwgdW5kZXIgd2hpY2ggeW91IG1ha2UgcGF5bWVudAp0byB0aGUgdGhpcmQgcGFydHkgYmFzZWQgb24gdGhlIGV4dGVudCBvZiB5b3VyIGFjdGl2aXR5IG9mIGNvbnZleWluZwp0aGUgd29yaywgYW5kIHVuZGVyIHdoaWNoIHRoZSB0aGlyZCBwYXJ0eSBncmFudHMsIHRvIGFueSBvZiB0aGUKcGFydGllcyB3aG8gd291bGQgcmVjZWl2ZSB0aGUgY292ZXJlZCB3b3JrIGZyb20geW91LCBhIGRpc2NyaW1pbmF0b3J5CnBhdGVudCBsaWNlbnNlIChhKSBpbiBjb25uZWN0aW9uIHdpdGggY29waWVzIG9mIHRoZSBjb3ZlcmVkIHdvcmsKY29udmV5ZWQgYnkgeW91IChvciBjb3BpZXMgbWFkZSBmcm9tIHRob3NlIGNvcGllcyksIG9yIChiKSBwcmltYXJpbHkKZm9yIGFuZCBpbiBjb25uZWN0aW9uIHdpdGggc3BlY2lmaWMgcHJvZHVjdHMgb3IgY29tcGlsYXRpb25zIHRoYXQKY29udGFpbiB0aGUgY292ZXJlZCB3b3JrLCB1bmxlc3MgeW91IGVudGVyZWQgaW50byB0aGF0IGFycmFuZ2VtZW50LApvciB0aGF0IHBhdGVudCBsaWNlbnNlIHdhcyBncmFudGVkLCBwcmlvciB0byAyOCBNYXJjaCAyMDA3LgoKICBOb3RoaW5nIGluIHRoaXMgTGljZW5zZSBzaGFsbCBiZSBjb25zdHJ1ZWQgYXMgZXhjbHVkaW5nIG9yIGxpbWl0aW5nCmFueSBpbXBsaWVkIGxpY2Vuc2Ugb3Igb3RoZXIgZGVmZW5zZXMgdG8gaW5mcmluZ2VtZW50IHRoYXQgbWF5Cm90aGVyd2lzZSBiZSBhdmFpbGFibGUgdG8geW91IHVuZGVyIGFwcGxpY2FibGUgcGF0ZW50IGxhdy4KCiAgMTIuIE5vIFN1cnJlbmRlciBvZiBPdGhlcnMnIEZyZWVkb20uCgogIElmIGNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdApleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYgeW91IGNhbm5vdCBjb252ZXkgYQpjb3ZlcmVkIHdvcmsgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdSBtYXkKbm90IGNvbnZleSBpdCBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgeW91IGFncmVlIHRvIHRlcm1zIHRoYXQgb2JsaWdhdGUgeW91CnRvIGNvbGxlY3QgYSByb3lhbHR5IGZvciBmdXJ0aGVyIGNvbnZleWluZyBmcm9tIHRob3NlIHRvIHdob20geW91IGNvbnZleQp0aGUgUHJvZ3JhbSwgdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggdGhvc2UgdGVybXMgYW5kIHRoaXMKTGljZW5zZSB3b3VsZCBiZSB0byByZWZyYWluIGVudGlyZWx5IGZyb20gY29udmV5aW5nIHRoZSBQcm9ncmFtLgoKICAxMy4gVXNlIHdpdGggdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KCiAgTm90d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlLCB5b3UgaGF2ZQpwZXJtaXNzaW9uIHRvIGxpbmsgb3IgY29tYmluZSBhbnkgY292ZXJlZCB3b3JrIHdpdGggYSB3b3JrIGxpY2Vuc2VkCnVuZGVyIHZlcnNpb24gMyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGludG8gYSBzaW5nbGUKY29tYmluZWQgd29yaywgYW5kIHRvIGNvbnZleSB0aGUgcmVzdWx0aW5nIHdvcmsuICBUaGUgdGVybXMgb2YgdGhpcwpMaWNlbnNlIHdpbGwgY29udGludWUgdG8gYXBwbHkgdG8gdGhlIHBhcnQgd2hpY2ggaXMgdGhlIGNvdmVyZWQgd29yaywKYnV0IHRoZSBzcGVjaWFsIHJlcXVpcmVtZW50cyBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLApzZWN0aW9uIDEzLCBjb25jZXJuaW5nIGludGVyYWN0aW9uIHRocm91Z2ggYSBuZXR3b3JrIHdpbGwgYXBwbHkgdG8gdGhlCmNvbWJpbmF0aW9uIGFzIHN1Y2guCgogIDE0LiBSZXZpc2VkIFZlcnNpb25zIG9mIHRoaXMgTGljZW5zZS4KCiAgVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMgb2YKdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcgdmVyc2lvbnMgd2lsbApiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KYWRkcmVzcyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCgogIEVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlClByb2dyYW0gc3BlY2lmaWVzIHRoYXQgYSBjZXJ0YWluIG51bWJlcmVkIHZlcnNpb24gb2YgdGhlIEdOVSBHZW5lcmFsClB1YmxpYyBMaWNlbnNlICJvciBhbnkgbGF0ZXIgdmVyc2lvbiIgYXBwbGllcyB0byBpdCwgeW91IGhhdmUgdGhlCm9wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGVpdGhlciBvZiB0aGF0IG51bWJlcmVkCnZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YgdGhlCkdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZApieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgoKICBJZiB0aGUgUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIHByb3h5IGNhbiBkZWNpZGUgd2hpY2ggZnV0dXJlCnZlcnNpb25zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBjYW4gYmUgdXNlZCwgdGhhdCBwcm94eSdzCnB1YmxpYyBzdGF0ZW1lbnQgb2YgYWNjZXB0YW5jZSBvZiBhIHZlcnNpb24gcGVybWFuZW50bHkgYXV0aG9yaXplcyB5b3UKdG8gY2hvb3NlIHRoYXQgdmVyc2lvbiBmb3IgdGhlIFByb2dyYW0uCgogIExhdGVyIGxpY2Vuc2UgdmVyc2lvbnMgbWF5IGdpdmUgeW91IGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50CnBlcm1pc3Npb25zLiAgSG93ZXZlciwgbm8gYWRkaXRpb25hbCBvYmxpZ2F0aW9ucyBhcmUgaW1wb3NlZCBvbiBhbnkKYXV0aG9yIG9yIGNvcHlyaWdodCBob2xkZXIgYXMgYSByZXN1bHQgb2YgeW91ciBjaG9vc2luZyB0byBmb2xsb3cgYQpsYXRlciB2ZXJzaW9uLgoKICAxNS4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4KCiAgVEhFUkUgSVMgTk8gV0FSUkFOVFkgRk9SIFRIRSBQUk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWQpBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVOIE9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUCkhPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkKT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sClRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0KSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFIFBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GCkFMTCBORUNFU1NBUlkgU0VSVklDSU5HLCBSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTYuIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LgoKICBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcKV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdITyBNT0RJRklFUyBBTkQvT1IgQ09OVkVZUwpUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsIElOQ0xVRElORyBBTlkKR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFClVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIExPU1MgT0YKREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWSBZT1UgT1IgVEhJUkQKUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBQUk9HUkFNUyksCkVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKU1VDSCBEQU1BR0VTLgoKICAxNy4gSW50ZXJwcmV0YXRpb24gb2YgU2VjdGlvbnMgMTUgYW5kIDE2LgoKICBJZiB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50eSBhbmQgbGltaXRhdGlvbiBvZiBsaWFiaWxpdHkgcHJvdmlkZWQKYWJvdmUgY2Fubm90IGJlIGdpdmVuIGxvY2FsIGxlZ2FsIGVmZmVjdCBhY2NvcmRpbmcgdG8gdGhlaXIgdGVybXMsCnJldmlld2luZyBjb3VydHMgc2hhbGwgYXBwbHkgbG9jYWwgbGF3IHRoYXQgbW9zdCBjbG9zZWx5IGFwcHJveGltYXRlcwphbiBhYnNvbHV0ZSB3YWl2ZXIgb2YgYWxsIGNpdmlsIGxpYWJpbGl0eSBpbiBjb25uZWN0aW9uIHdpdGggdGhlClByb2dyYW0sIHVubGVzcyBhIHdhcnJhbnR5IG9yIGFzc3VtcHRpb24gb2YgbGlhYmlsaXR5IGFjY29tcGFuaWVzIGEKY29weSBvZiB0aGUgUHJvZ3JhbSBpbiByZXR1cm4gZm9yIGEgZmVlLgoKICAgICAgICAgICAgICAgICAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgogICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CnN0YXRlIHRoZSBleGNsdXNpb24gb2Ygd2FycmFudHk7IGFuZCBlYWNoIGZpbGUgc2hvdWxkIGhhdmUgYXQgbGVhc3QKdGhlICJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuCgogICAgPG9uZSBsaW5lIHRvIGdpdmUgdGhlIHByb2dyYW0ncyBuYW1lIGFuZCBhIGJyaWVmIGlkZWEgb2Ygd2hhdCBpdCBkb2VzLj4KICAgIENvcHlyaWdodCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+CgogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgogICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KCiAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgoKICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCiAgSWYgdGhlIHByb2dyYW0gZG9lcyB0ZXJtaW5hbCBpbnRlcmFjdGlvbiwgbWFrZSBpdCBvdXRwdXQgYSBzaG9ydApub3RpY2UgbGlrZSB0aGlzIHdoZW4gaXQgc3RhcnRzIGluIGFuIGludGVyYWN0aXZlIG1vZGU6CgogICAgPHByb2dyYW0+ICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgogICAgVGhpcyBwcm9ncmFtIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgeW91ciBwcm9ncmFtJ3MgY29tbWFuZHMKbWlnaHQgYmUgZGlmZmVyZW50OyBmb3IgYSBHVUkgaW50ZXJmYWNlLCB5b3Ugd291bGQgdXNlIGFuICJhYm91dCBib3giLgoKICBZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3Igc2Nob29sLAppZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYgbmVjZXNzYXJ5LgpGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzLCBhbmQgaG93IHRvIGFwcGx5IGFuZCBmb2xsb3cgdGhlIEdOVSBHUEwsIHNlZQo8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtCmludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQptYXkgY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGgKdGhlIGxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAo8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy93aHktbm90LWxncGwuaHRtbD4u"},{"path":"PCREMOTE-COMPILE.cjs","sha256":"0e74f6f9240e3bf5a09275e01128b90ac797fd295011e4cf0b352290b952a259","contentBase64":"Ly8gUmVidWlsZCBvbmx5IHRoZSBzaXggbW9kaWZpZWQgYnJvd3NlciBtb2R1bGVzOyBUeXBlU2NyaXB0IDUuOS4zLgpjb25zdCBmcyA9IHJlcXVpcmUoJ25vZGU6ZnMnKSwgcGF0aCA9IHJlcXVpcmUoJ25vZGU6cGF0aCcpLCBjcnlwdG8gPSByZXF1aXJlKCdub2RlOmNyeXB0bycpOwpjb25zdCB0cyA9IHJlcXVpcmUocHJvY2Vzcy5hcmd2WzJdIHx8ICd0eXBlc2NyaXB0Jyk7CmlmICh0cy52ZXJzaW9uICE9PSAnNS45LjMnKSB0aHJvdyBuZXcgRXJyb3IoJ1VzZSBUeXBlU2NyaXB0IDUuOS4zJyk7CmNvbnN0IGV4cGVjdGVkID0gcmVxdWlyZSgnLi9QQ1JFTU9URS1FWFBFQ1RFRC1KUy5qc29uJyk7CmZvciAoY29uc3QgW21vZHVsZSwgc2hhXSBvZiBPYmplY3QuZW50cmllcyhleHBlY3RlZCkpIHsKICBjb25zdCBzb3VyY2UgPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnd2ViJywgbW9kdWxlLnJlcGxhY2UoL1wuanMkLywgJy50cycpKTsKICBjb25zdCByZXN1bHQgPSB0cy50cmFuc3BpbGVNb2R1bGUoZnMucmVhZEZpbGVTeW5jKHNvdXJjZSwgJ3V0ZjgnKSwgeyBmaWxlTmFtZTogc291cmNlLCByZXBvcnREaWFnbm9zdGljczogdHJ1ZSwgY29tcGlsZXJPcHRpb25zOiB7IHRhcmdldDogdHMuU2NyaXB0VGFyZ2V0LkVTMjAxNSwgbW9kdWxlOiB0cy5Nb2R1bGVLaW5kLkVTTmV4dCwgc3RyaWN0OiB0cnVlIH0gfSk7CiAgaWYgKHJlc3VsdC5kaWFnbm9zdGljcy5zb21lKHggPT4geC5jYXRlZ29yeSA9PT0gdHMuRGlhZ25vc3RpY0NhdGVnb3J5LkVycm9yKSkgdGhyb3cgbmV3IEVycm9yKCdDb21waWxlIGRpYWdub3N0aWNzOiAnICsgbW9kdWxlKTsKICBjb25zdCBhY3R1YWwgPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKHJlc3VsdC5vdXRwdXRUZXh0KS5kaWdlc3QoJ2hleCcpOwogIGlmIChhY3R1YWwgIT09IHNoYSkgdGhyb3cgbmV3IEVycm9yKCdPdXRwdXQgaGFzaCBtaXNtYXRjaDogJyArIG1vZHVsZSArICcgKCcgKyBhY3R1YWwgKyAnKScpOwogIGNvbnN0IHRhcmdldCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdwY3JlbW90ZS1kaXN0JywgbW9kdWxlKTsKICBmcy5ta2RpclN5bmMocGF0aC5kaXJuYW1lKHRhcmdldCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pOyBmcy53cml0ZUZpbGVTeW5jKHRhcmdldCwgcmVzdWx0Lm91dHB1dFRleHQpOwogIHByb2Nlc3Muc3Rkb3V0LndyaXRlKG1vZHVsZSArICcgJyArIGFjdHVhbCArICdcbicpOwp9Cg=="},{"path":"PCREMOTE-DEPLOYED-JS.json","sha256":"f257d33ff4b3918beb0cfc3951a20fc4958c3f8c21533b2d43468c48d9b066ea","contentBase64":"ewogICJzdHJlYW0vdmlkZW8vdmlkZW9fZGVjb2Rlcl9waXBlLmpzIjogIjgwMjBiMmJiYTg5YWFhYzRkMjNiYzRiOGVkOTBjYmIxNTVmNjJlOGNlOTQ4MjQ0OTI2ZDI1Njk4MTdjNTQ3NjQiLAogICJzdHJlYW0vdmlkZW8vY2FudmFzLmpzIjogIjUwYWI3MThjOTZjMTNkZTM0OTk1MDMxNjdhNGYxYjJhYWE5ZmU0MzNkMzhhYjI4M2M2ZThiYTU3YjZiZDY5OTciLAogICJzdHJlYW0vdmlkZW8vY2FudmFzX2ZyYW1lLmpzIjogImU1Zjg3MTA5YWU3NDAxYThlNDk4MWFmMTdhNmRmZWY4ZmIzZDdmZmQxYjQ3NDIxNGRmYWUyODM5NDhiNTZmYjkiLAogICJzdHJlYW0vaW5kZXguanMiOiAiYjdmM2IwOTMxNjFiOTJmMDY3ZWIyOWRkNDNhYTkwN2UxM2Q0NjBkMDlhNjEwMDUxZWNkMmNhM2Y2MDIxNmNlZSIsCiAgInN0cmVhbS9zdGF0cy5qcyI6ICI4MGJhMDdlZDE2NDI2MWYwZjFiZjg5YWYxZDI4YWNkNzhmYjYyZjhkMTRkNjY2ZTM1YjdhYjdiNGZiZjBmNjc0IiwKICAic3RyZWFtL3RyYW5zcG9ydC93ZWJydGMuanMiOiAiNDFmYzg0MTU2YmEzNTM3OTlmYmU0MDY4OWJhZDdhOGYwOGI3YTNjZjQxZGIzZDNhNDY4YjQwNjk2MDU0NzdhMyIKfQo="},{"path":"PCREMOTE-EXPECTED-JS.json","sha256":"7947ee40a887d5d4fa32bcef339f0815e7115c8d35de05b69bcda39125bcbb2e","contentBase64":"ewogICJzdHJlYW0vdmlkZW8vdmlkZW9fZGVjb2Rlcl9waXBlLmpzIjogIjI4NWMzYmUyZWVlYjA4MjdiYjAzNWZkNmIxNWNmMTg2ZTBmYmNmOTk3NDZmMDFiYzlmY2I1ZGZjYjRmZjdiMTYiLAogICJzdHJlYW0vdmlkZW8vY2FudmFzLmpzIjogImI4Mzc3ODdkOWM1Yjg3ZGE0YzI3NjU0MjBiODMyMTE5NmZlZDA5YzQ5YzY1NjgyODdkYzgyODYwYTk5NWEwOTIiLAogICJzdHJlYW0vdmlkZW8vY2FudmFzX2ZyYW1lLmpzIjogIjBkYzBkYjM2ZjIwZDhhN2Q1ZTc3YTU1YWQ0MGYxNDZkNjdlOGM1M2VkMDE1ZmZmZjlhNjlmOGNkZDVlMjkwNTUiLAogICJzdHJlYW0vaW5kZXguanMiOiAiYjdmM2IwOTMxNjFiOTJmMDY3ZWIyOWRkNDNhYTkwN2UxM2Q0NjBkMDlhNjEwMDUxZWNkMmNhM2Y2MDIxNmNlZSIsCiAgInN0cmVhbS9zdGF0cy5qcyI6ICI4MGJhMDdlZDE2NDI2MWYwZjFiZjg5YWYxZDI4YWNkNzhmYjYyZjhkMTRkNjY2ZTM1YjdhYjdiNGZiZjBmNjc0IiwKICAic3RyZWFtL3RyYW5zcG9ydC93ZWJydGMuanMiOiAiNDFmYzg0MTU2YmEzNTM3OTlmYmU0MDY4OWJhZDdhOGYwOGI3YTNjZjQxZGIzZDNhNDY4YjQwNjk2MDU0NzdhMyIKfQo="},{"path":"PCREMOTE-PATCHES.md","sha256":"a7f702ec4b3da5c4708636eeacbf80a770190a9b9092523e7816ae0cd44e2cfb","contentBase64":"IyBNb29ubGlnaHQgV2ViIHYyLjEwLjAgY29tcGF0aWJpbGl0eSBhbmQgcmVuZGVyaW5nIHBhdGNoZXMKClNvbWUgYnJvd3NlcnMsIGluY2x1ZGluZyBDaHJvbWUgMTAzLCByZWplY3QgYW4gdW5zdXBwb3J0ZWQgY29kZWMgc3RyaW5nIHdpdGggYSBgVHlwZUVycm9yYCBmcm9tIGBWaWRlb0RlY29kZXIuaXNDb25maWdTdXBwb3J0ZWQoKWAuIFRoZSB1cHN0cmVhbSB2Mi4xMC4wIGNvZGVjIHByb2JlIGxldHMgdGhhdCByZWplY3Rpb24gYWJvcnQgZGlzY292ZXJ5IG9mIGFsbCBjb2RlY3MsIGluY2x1ZGluZyB3b3JraW5nIEguMjY0IGNob2ljZXMuIFRoaXMgcGF0Y2ggdHJlYXRzIHRoYXQgc3BlY2lmaWMgcmVqZWN0aW9uIGFzIGFuIHVuc3VwcG9ydGVkIGNhbmRpZGF0ZSBhbmQga2VlcHMgdGhlIG90aGVyIHByb2JlcyBhbmQgZGVjb2RlciBjb25maWd1cmF0aW9uIGZhbGxiYWNrcyB3b3JraW5nLiBVbnJlbGF0ZWQgZXhjZXB0aW9ucyBzdGlsbCBwcm9wYWdhdGUuCgpUaGUgbWF0Y2hpbmcgc291cmNlIGNoYW5nZXMgYXJlIGluIGBicm93c2VyL3ZlbmRvci9zb3VyY2UvbW9vbmxpZ2h0LXdlYi1zdHJlYW0tMi4xMC4wL3dlYi9zdHJlYW0vdmlkZW8vYC4gVGhlIHJldmlld2VkIEphdmFTY3JpcHQgcmVwbGFjZW1lbnRzIGFyZSBgdmlkZW9fZGVjb2Rlcl9waXBlLmpzYCwgYGNhbnZhcy5qc2AsIGFuZCBgY2FudmFzX2ZyYW1lLmpzYCwgZm9yIHRoZSBjb3JyZXNwb25kaW5nIGZpbGVzIHVuZGVyIGBwYWNrYWdlL3N0YXRpYy9zdHJlYW0vdmlkZW8vYCBpbiB0aGUgcGlubmVkIHJlbGVhc2UuIFRoZSBvcmlnaW5hbCByZWxlYXNlIGFyY2hpdmUgYW5kIG5hdGl2ZSBleGVjdXRhYmxlcyByZW1haW4gdW5jaGFuZ2VkLgoKVGhlIHJlbmRlcmluZyB1cGRhdGUgYXZvaWRzIHJlY3JlYXRpbmcgdGhlIGNhbnZhcyBiYWNraW5nIGJ1ZmZlciB3aGVuIGZyYW1lIGRpbWVuc2lvbnMgYXJlIHVuY2hhbmdlZCwgcmVsZWFzZXMgY29waWVkIGBWaWRlb0ZyYW1lYCByZXNvdXJjZXMgaW1tZWRpYXRlbHksIGFuZCByZW1vdmVzIGFuIHVubmVjZXNzYXJ5IGFuaW1hdGlvbiBsb29wIGZvciBpbW1lZGlhdGUgcmVuZGVyaW5nLiBUaGUgdnN5bmMgcmVuZGVyZXIgc3RpbGwga2VlcHMgb25seSB0aGUgbmV3ZXN0IHBlbmRpbmcgZnJhbWUgYW5kIGNhbmNlbHMgaXRzIGxvb3Agb24gY2xlYW51cC4gRGVjb2RlciBzdGFydHVwIGJ1ZmZlcmluZyBpcyBib3VuZGVkOyBhIGRlY29kZXIgYmFja2xvZyBvZiBhdCBsZWFzdCAxMDAgbXMgKGFuZCBtb3JlIHRoYW4gdHdvIHF1ZXVlZCBmcmFtZXMpIHJlc2V0cyBkZWNvZGluZyBhbmQgcmVxdWVzdHMgYSBmcmVzaCBrZXlmcmFtZS4gRGVwZW5kZW50IGRlbHRhIGZyYW1lcyBhcmUgc2tpcHBlZCB1bnRpbCB0aGF0IGtleWZyYW1lIGFycml2ZXMuIFRoZSBvdXQtb2YtYmFuZCBILjI2NC9ILjI2NSBwYXRoIHByZXNlcnZlcyBpdHMgcGFyc2VkIGNvbmZpZ3VyYXRpb24gd2hpbGUgY2xlYXJpbmcgdGhlIGFjdHVhbCBkZWNvZGVyIHF1ZXVlLiBUaGUgZWFybGllciBDaHJvbWUgMTAzIGNvZGVjIHJlamVjdGlvbiBhbmQgaGFyZHdhcmUtaGludCBmYWxsYmFja3MgcmVtYWluIGludGFjdC4KClRoZXNlIGNoYW5nZXMgcmVkdWNlIGF2b2lkYWJsZSBicm93c2VyIHdvcmsgYW5kIHN0YWxlIGZyYW1lIGJhY2tsb2c7IHRoZXkgZG8gbm90IHJlbW92ZSByZWxheS9uZXR3b3JrIGxhdGVuY3kgb3IgZ3VhcmFudGVlIGEgZnJhbWUgcmF0ZSBvbiBvbGQgQ2hyb21lYm9vayBoYXJkd2FyZS4gRGVjb2RlciBkaWFnbm9zdGljcyByZXBvcnQgcXVldWUgZnJhbWVzLCBhbiBlc3RpbWF0ZWQgcXVldWUgZGVsYXkgYmFzZWQgb24gdGhlIHRhcmdldCBmcmFtZSByYXRlLCBhbmQgcmVjb3ZlcnkgY291bnQuIFRoZXkgZG8gbm90IG1lYXN1cmUgY29udHJvbGxlci10by1kaXNwbGF5IGxhdGVuY3kuCgpgYnJvd3Nlci90b29scy9BcHBseS1HYXRld2F5Q29tcGF0aWJpbGl0eS5wczEgLVN0YXRpY0RpcmVjdG9yeSA8YWJzb2x1dGUgc3RhdGljIGRpcmVjdG9yeT5gIGNoZWNrcyBvcmlnaW5hbCBhbmQgcmVwbGFjZW1lbnQgU0hBLTI1NiB2YWx1ZXMgZm9yIGFsbCBzaXggbW9kdWxlcyBiZWZvcmUgd3JpdGluZywgdXNlcyBhbiBhdG9taWMgcmVwbGFjZW1lbnQgZm9yIGVhY2ggY2hhbmdlZCBmaWxlLCBhbmQgaXMgaWRlbXBvdGVudC4gSXQgYWNjZXB0cyB0aGUgb3JpZ2luYWwgcmVsZWFzZSBhbmQgdGhlIHByZXZpb3VzIGNvZGVjLW9ubHkgcGF0Y2ggZm9yIHVwZ3JhZGVzLiBVbmtub3duIHZlcnNpb25zIG9yIGxvY2FsIGNoYW5nZXMgZmFpbCB3aXRob3V0IG92ZXJ3cml0aW5nIGFueSBtb2R1bGUuIGAtQ2hlY2tPbmx5YCB2ZXJpZmllcyBhbiBpbnN0YWxsYXRpb24gd2l0aCBhbGwgY3VycmVudCBwYXRjaGVzLgoKVGhlIGFkZGl0aW9uYWwgYHN0cmVhbS9pbmRleC5qc2AsIGBzdHJlYW0vc3RhdHMuanNgLCBhbmQgYHN0cmVhbS90cmFuc3BvcnQvd2VicnRjLmpzYCByZXBsYWNlbWVudHMgc3VwcG9ydCB0aGUgYXV0aGVudGljYXRlZCBvd25lci1vbmx5IGRpcmVjdCBjb25uZWN0aW9uLiBUaGV5IHJldGFpbiB0aGUgY2FsbGVyJ3Mgc2NvcGVkIHNvY2tldCBjb25zdHJ1Y3RvciBvbiByZXRyaWVzLCBjbG9zZSBmYWlsZWQgcGVlcnMgYmVmb3JlIFdlYlNvY2tldCBmYWxsYmFjaywgY2FuY2VsIHJldHJpZXMgb24gU3RvcCwgY2xlYXIgb2Jzb2xldGUgY29udHJvbGxlciBxdWV1ZXMsIGFuZCBwcmV2ZW50IHN0YWxlIHRyYW5zcG9ydCBzdGF0aXN0aWNzLiBUaGUgcG9ydGFsIHNlcGFyYXRlbHkgc2VuZHMgYSBicm9rZXItY29uc3VtZWQgaGVhcnRiZWF0IHdoaWxlIGVsaWdpYmxlIHNpZ25hbGluZyBzb2NrZXRzIGFyZSBvcGVuLiBXZWJSVEMgcGVyZm9ybWFuY2UgcmVhZHMgdGhlIHNlbGVjdGVkIElDRSBjYW5kaWRhdGUgcGFpcjsgb25seSBmaXhlZCByb3V0ZSBsYWJlbHMgYW5kIG51bWVyaWMgdGltaW5nIGFyZSBleHBvc2VkLCBuZXZlciBjYW5kaWRhdGUgYWRkcmVzc2VzLiBIb3N0L2hvc3QgY2FuZGlkYXRlcyBhcmUgZGVzY3JpYmVkIGFzIGxvY2FsIGNhbmRpZGF0ZXMgcmF0aGVyIHRoYW4gcHJvb2YgdGhhdCB0d28gZGV2aWNlcyBzaGFyZSBhIG5ldHdvcmsuIFRoZSBvcmlnaW5hbCBILjI2NCBjb2RlYyBhbmQgcmVuZGVyaW5nIGNvbXBhdGliaWxpdHkgcGF0Y2hlcyByZW1haW4gdW5jaGFuZ2VkLgoKYENvbXBpbGUtVHJhbnNwb3J0UGF0Y2hlcy5janMgPHBhdGgtdG8tdHlwZXNjcmlwdC01LjkuMz5gIHJlYnVpbGRzIHRoZXNlIHRocmVlIEphdmFTY3JpcHQgcmVwbGFjZW1lbnRzIGZyb20gdGhlIG1hdGNoaW5nIHZlbmRvciBUeXBlU2NyaXB0IHdpdGggdGhlIHBpbm5lZCBFUzIwMTUgdGFyZ2V0LiBgZnJvbnRlbmQvdGVzdHMvZGlyZWN0LXRyYW5zcG9ydC50ZXN0Lm1qc2AgZXhlcmNpc2VzIHRoZSBleGFjdCBjb21waWxlZCB0cmFuc3BvcnQgbWV0aG9kcyBhZ2FpbnN0IGJyb3dzZXIgQVBJIGJvdW5kYXJpZXM7IGRldmljZSBwbGF5YmFjayBzdGlsbCByZXF1aXJlcyBhIGJyb3dzZXIgaW50ZWdyYXRpb24gdGVzdC4KCkZyZXNoIGdhdGV3YXkgaW5pdGlhbGl6YXRpb24gYW5kIGNvbm5lY3RvciBzZXR1cCBhcHBseSB0aGUgcGF0Y2guIFNoYXJlZC1icm9rZXIgc3RhcnR1cCBjaGVja3MgdGhlIHRydXN0ZWQgc3RhdGljIGRpcmVjdG9yeSBiZWZvcmUgc2VydmluZyBpdC4gYEJ1aWxkLUJyb3dzZXIucHMxYCBydW5zIHRoZSBpc29sYXRlZCBzY3JpcHQgcmVncmVzc2lvbjsgYFRlc3QtR2F0ZXdheUNvbXBhdGliaWxpdHkucHMxYCBjYW4gYWxzbyBydW4gYnkgaXRzZWxmLiBgZnJvbnRlbmQvdGVzdHMvcGlubmVkLWNvZGVjcy50ZXN0Lm1qc2AgYW5kIGBwaW5uZWQtcmVuZGVyaW5nLnRlc3QubWpzYCBydW4gdGhlIHNoaXBwZWQgSlMgYWdhaW5zdCBicm93c2VyIEFQSSBib3VuZGFyaWVzIHdoZW4gYFBDX1JFTU9URV9HQVRFV0FZX1NUQVRJQ2AgcG9pbnRzIHRvIHRoZSBleHRyYWN0ZWQgcmVsZWFzZSBzdGF0aWMgZGlyZWN0b3J5LiBFeGlzdGluZyBydW5uaW5nIHNlcnZpY2VzIGRvIG5vdCBuZWVkIHRvIHJlc3RhcnQgYWZ0ZXIgdGhlIG1vZHVsZXMgYXJlIHJlcGxhY2VkOyByZWxvYWQgdGhlIGJyb3dzZXIgcGFnZSB0byBmZXRjaCB0aGVtLiBJbW11dGFibGUgc2VydmVyIGltYWdlcyByZXF1aXJlIGFuIGltYWdlIHVwZGF0ZSBhcyB1c3VhbC4KCktlZXAgdGhpcyBkaXJlY3RvcnkgYW5kIGBBcHBseS1HYXRld2F5Q29tcGF0aWJpbGl0eS5wczFgIHRvZ2V0aGVyIGluIGFueSBzb3VyY2Ugb3IgaW5zdGFsbGF0aW9uIGtpdCBjb250YWluaW5nIGdhdGV3YXkgaW5pdGlhbGl6YXRpb24uIFRoZSBvcmlnaW5hbCB1cHN0cmVhbSBsaWNlbnNlIHJlbWFpbnMgYXBwbGljYWJsZSB0byB0aGUgbW9kaWZpZWQgbW9kdWxlOyBzZWUgdGhlIHBpbm5lZCBzb3VyY2UgYXJjaGl2ZSdzIGBMSUNFTlNFYC4KClRoZSBuYXRpdmUtdmlkZW8gZm9sbG93LXVwIHByZWZlcnMgdGhlIGJyb3dzZXIncyB2aWRlbyBlbGVtZW50IGZvciBXZWJSVEMgdmlkZW8gdHJhY2tzIHVzaW5nIG5vcm1hbCBjYXBhYmlsaXR5IGNoZWNrcywgd2l0aCBhIHN1cHBvcnRlZCBjYW52YXMgcmVuZGVyZXIgYXMgZmFsbGJhY2suIFdlYlNvY2tldCB2aWRlbyByZXRhaW5zIHRoZSBleGlzdGluZyBib3VuZGVkIFdlYkNvZGVjcy9jYW52YXMgcGF0aC4gVGhpcyBhdm9pZHMgcmVhZGluZyBhbmQgZHJhd2luZyBldmVyeSBXZWJSVEMgZnJhbWUgdGhyb3VnaCBKYXZhU2NyaXB0IG9uIHRoZSBtYWluIHRocmVhZC4gSXQgZG9lcyBub3QgY2hhbmdlIGlucHV0IG1hcHBpbmcsIGF1ZGlvIHJvdXRpbmcsIGF1dGhlbnRpY2F0aW9uLCBhZG1pc3Npb24sIG9yIGJpdHJhdGUgbGltaXRzLCBhbmQgZG9lcyBub3QgZ3VhcmFudGVlIGxvd2VyIGlucHV0LXRvLWRpc3BsYXkgbGF0ZW5jeSBvbiBhIHNwZWNpZmljIGRldmljZS4KCldlYlJUQyB2aWRlbyBkaWFnbm9zdGljcyBhZGRpdGlvbmFsbHkgcmVwb3J0IG1lYXN1cmVkIGludGVydmFsIHRocm91Z2hwdXQsIGRlY29kZWQgZnJhbWUgcmF0ZSwgZGVjb2RlIHRpbWUgcGVyIGZyYW1lLCBqaXR0ZXItYnVmZmVyIHJlc2lkZW5jZSB0aW1lLCBwYWNrZXQgbG9zcywgYW5kIGRyb3BwZWQgZnJhbWVzIHdoZW4gdGhlIGJyb3dzZXIgZXhwb3NlcyB0aG9zZSBjb3VudGVycy4gTWlzc2luZyBvciByZXNldCBjb3VudGVycyBuZXZlciBiZWNvbWUgaW52ZW50ZWQgemVybyBtZWFzdXJlbWVudHM7IGEgbmV3IHBlZXIvcmVwb3J0IG9yIGxvbmcgc2FtcGxpbmcgZ2FwIGVzdGFibGlzaGVzIGEgZnJlc2ggYmFzZWxpbmUuIE1lYXN1cmVtZW50cyBzdGF5IGluIGJyb3dzZXIgbWVtb3J5IGFuZCBvbWl0IGNhbmRpZGF0ZSBhZGRyZXNzZXMgYW5kIGNyZWRlbnRpYWxzLiBUZXN0cyBleGVyY2lzZSB0aGUgc2hpcHBlZCByZW5kZXJlciBjaG9pY2UvZmFsbGJhY2svY2xlYW51cCBhbmQgc3VjY2Vzc2l2ZSBzdGF0cyBzbmFwc2hvdHMsIGluY2x1ZGluZyBvbGRlci1icm93c2VyIG9taXNzaW9ucyBhbmQgY291bnRlciByZXNldHMuCgpUaGUgU2VwdGVtYmVyIDI4IGRpYWdub3N0aWMgdXBkYXRlIHJldGFpbnMgYSBzYW5pdGl6ZWQgZGlyZWN0LWNvbm5lY3Rpb24gYXR0ZW1wdCByZXN1bHQgYWNyb3NzIGEgV2ViU29ja2V0IGZhbGxiYWNrLiBJdCByZXBvcnRzIHRoZSBhdHRlbXB0IG91dGNvbWUsIGVsYXBzZWQgdGltZSwgYWxsb3dsaXN0ZWQgSUNFIHN0YXRlIGFuZCBjb3VudHMgb2YgY2FuZGlkYXRlIHR5cGVzIHdoZW4gYXZhaWxhYmxlLiBJdCBkb2VzIG5vdCBleHBvc2UgY2FuZGlkYXRlIGFkZHJlc3NlcywgU0RQLCBjcmVkZW50aWFscyBvciByYXcgZXhjZXB0aW9uIG1lc3NhZ2VzLCBhbmQgaXQgZG9lcyBub3QgaW5mZXIgYSBmaXJld2FsbCBvciBOQVQgZGlhZ25vc2lzIGZyb20gYW4gdW5zdWNjZXNzZnVsIGF0dGVtcHQuIEEgc2VwYXJhdGUgcG9ydGFsIGJpdHJhdGUgcHJlZmVyZW5jZSBpcyBjb25zdHJhaW5lZCBieSBib3RoIHRoZSBhdXRoZW50aWNhdGVkIHNlc3Npb24gcG9saWN5IGFuZCB0aGUgZ2F0ZXdheSByb2xlOyBleGlzdGluZyBkZWZhdWx0cyBhbmQgYWRtaXNzaW9uIGxpbWl0cyByZW1haW4gdW5jaGFuZ2VkLiBUaGVzZSBjaGFuZ2VzIGFkZCBubyBuZXR3b3JrIHNlcnZpY2UsIFRVUk4gc2VydmVyIG9yIGZpcmV3YWxsIGFjY2VzcyBhbmQgZG8gbm90IGd1YXJhbnRlZSBhIGRpcmVjdCBjb25uZWN0aW9uIG9uIHJlc3RyaWN0aXZlIG5ldHdvcmtzLgoKVGhlIFNlcHRlbWJlciAyOCBJQ0Ugb3JkZXJpbmcgZm9sbG93LXVwIHF1ZXVlcyBpbmNvbWluZyBjYW5kaWRhdGVzIHVudGlsIHRoZSByZW1vdGUgc2Vzc2lvbiBkZXNjcmlwdGlvbiBoYXMgYmVlbiBhcHBsaWVkLCBhbmQgaG9sZHMgb3V0Z29pbmcgY2FuZGlkYXRlcyB1bnRpbCB0aGUgbG9jYWwgYW5zd2VyIGhhcyBiZWVuIHNlbnQuIENhbmRpZGF0ZSBxdWV1ZXMgYXJlIGJvdW5kZWQgYW5kIHByZXNlcnZlIG9yZGVyOyBjbG9zaW5nIGFuIGF0dGVtcHQgcHJldmVudHMgcXVldWVkIHdvcmsgZnJvbSBhZmZlY3RpbmcgYSBsYXRlciBhdHRlbXB0LiBUaGlzIGFkZHJlc3NlcyBhIHNpZ25hbGluZyByYWNlIHRoYXQgY291bGQgcHJldmVudCBhIGRpcmVjdCBjb25uZWN0aW9uIGRlc3BpdGUgYSB1c2FibGUgbmV0d29yayBwYXRoLiBJdCBjaGFuZ2VzIG9ubHkgdGhlIGJyb3dzZXIgdHJhbnNwb3J0IG1vZHVsZSBhbmQgZG9lcyBub3QgY2hhbmdlIHJlbGF5IGFkbWlzc2lvbiwgc2Vzc2lvbiBwZXJzaXN0ZW5jZSwgbmV0d29yayBzZXJ2aWNlcywgb3IgZmlyZXdhbGwgYWNjZXNzLgo="},{"path":"PCREMOTE-REVIEWED-JS/stream/index.js","sha256":"b7f3b093161b92f067eb29dd43aa907e13d460d09a610051ecd2ca3f60216cee","contentBase64":"dmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7CiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0KICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH0KICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9CiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH0KICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7CiAgICB9KTsKfTsKaW1wb3J0IHsgVHJhbnNwb3J0Q2hhbm5lbElkIH0gZnJvbSAiLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgc2hvd05vdGlmaWNhdGlvbiB9IGZyb20gIi4uL2NvbXBvbmVudC9ub3RpZmljYXRpb24uanMiOwppbXBvcnQgeyBidWlsZEF1ZGlvUGlwZWxpbmUgfSBmcm9tICIuL2F1ZGlvL3BpcGVsaW5lLmpzIjsKaW1wb3J0IHsgQklHX0JVRkZFUiwgQnl0ZUJ1ZmZlciB9IGZyb20gIi4vYnVmZmVyLmpzIjsKaW1wb3J0IHsgZGVmYXVsdFN0cmVhbUlucHV0Q29uZmlnLCBTdHJlYW1JbnB1dCB9IGZyb20gIi4vaW5wdXQuanMiOwppbXBvcnQgeyBMb2dnZXIgfSBmcm9tICIuL2xvZy5qcyI7CmltcG9ydCB7IGdhdGhlclBpcGVJbmZvIH0gZnJvbSAiLi9waXBlbGluZS9pbmRleC5qcyI7CmltcG9ydCB7IFN0cmVhbVN0YXRzIH0gZnJvbSAiLi9zdGF0cy5qcyI7CmltcG9ydCB7IFdlYlNvY2tldFRyYW5zcG9ydCB9IGZyb20gIi4vdHJhbnNwb3J0L3dlYl9zb2NrZXQuanMiOwppbXBvcnQgeyBXZWJSVENUcmFuc3BvcnQgfSBmcm9tICIuL3RyYW5zcG9ydC93ZWJydGMuanMiOwppbXBvcnQgeyBhbGxWaWRlb0NvZGVjcywgYW5kVmlkZW9Db2RlY3MsIGNyZWF0ZVN1cHBvcnRlZFZpZGVvRm9ybWF0c0JpdHMsIGVtcHR5VmlkZW9Db2RlY3MsIGdldFNlbGVjdGVkVmlkZW9Db2RlYywgaGFzQW55Q29kZWMgfSBmcm9tICIuL3ZpZGVvLmpzIjsKaW1wb3J0IHsgYnVpbGRWaWRlb1BpcGVsaW5lIH0gZnJvbSAiLi92aWRlby9waXBlbGluZS5qcyI7CmV4cG9ydCBmdW5jdGlvbiBnZXRTdHJlYW1lclNpemUoc2V0dGluZ3MsIHZpZXdlclNjcmVlblNpemUpIHsKICAgIGxldCB3aWR0aCwgaGVpZ2h0OwogICAgaWYgKHNldHRpbmdzLnZpZGVvU2l6ZSA9PSAiNzIwcCIpIHsKICAgICAgICB3aWR0aCA9IDEyODA7CiAgICAgICAgaGVpZ2h0ID0gNzIwOwogICAgfQogICAgZWxzZSBpZiAoc2V0dGluZ3MudmlkZW9TaXplID09ICIxMDgwcCIpIHsKICAgICAgICB3aWR0aCA9IDE5MjA7CiAgICAgICAgaGVpZ2h0ID0gMTA4MDsKICAgIH0KICAgIGVsc2UgaWYgKHNldHRpbmdzLnZpZGVvU2l6ZSA9PSAiMTQ0MHAiKSB7CiAgICAgICAgd2lkdGggPSAyNTYwOwogICAgICAgIGhlaWdodCA9IDE0NDA7CiAgICB9CiAgICBlbHNlIGlmIChzZXR0aW5ncy52aWRlb1NpemUgPT0gIjRrIikgewogICAgICAgIHdpZHRoID0gMzg0MDsKICAgICAgICBoZWlnaHQgPSAyMTYwOwogICAgfQogICAgZWxzZSBpZiAoc2V0dGluZ3MudmlkZW9TaXplID09ICJjdXN0b20iKSB7CiAgICAgICAgd2lkdGggPSBzZXR0aW5ncy52aWRlb1NpemVDdXN0b20ud2lkdGg7CiAgICAgICAgaGVpZ2h0ID0gc2V0dGluZ3MudmlkZW9TaXplQ3VzdG9tLmhlaWdodDsKICAgIH0KICAgIGVsc2UgeyAvLyBuYXRpdmUKICAgICAgICB3aWR0aCA9IHZpZXdlclNjcmVlblNpemVbMF07CiAgICAgICAgaGVpZ2h0ID0gdmlld2VyU2NyZWVuU2l6ZVsxXTsKICAgIH0KICAgIHJldHVybiBbd2lkdGgsIGhlaWdodF07Cn0KZnVuY3Rpb24gZ2V0VmlkZW9Db2RlY0hpbnQoc2V0dGluZ3MpIHsKICAgIGxldCB2aWRlb0NvZGVjSGludCA9IGVtcHR5VmlkZW9Db2RlY3MoKTsKICAgIGlmIChzZXR0aW5ncy52aWRlb0NvZGVjID09ICJoMjY0IikgewogICAgICAgIHZpZGVvQ29kZWNIaW50LkgyNjQgPSB0cnVlOwogICAgICAgIHZpZGVvQ29kZWNIaW50LkgyNjRfSElHSDhfNDQ0ID0gdHJ1ZTsKICAgIH0KICAgIGVsc2UgaWYgKHNldHRpbmdzLnZpZGVvQ29kZWMgPT0gImgyNjUiKSB7CiAgICAgICAgdmlkZW9Db2RlY0hpbnQuSDI2NSA9IHRydWU7CiAgICAgICAgdmlkZW9Db2RlY0hpbnQuSDI2NV9NQUlOMTAgPSB0cnVlOwogICAgICAgIHZpZGVvQ29kZWNIaW50LkgyNjVfUkVYVDhfNDQ0ID0gdHJ1ZTsKICAgICAgICB2aWRlb0NvZGVjSGludC5IMjY1X1JFWFQxMF80NDQgPSB0cnVlOwogICAgfQogICAgZWxzZSBpZiAoc2V0dGluZ3MudmlkZW9Db2RlYyA9PSAiYXYxIikgewogICAgICAgIHZpZGVvQ29kZWNIaW50LkFWMV9NQUlOOCA9IHRydWU7CiAgICAgICAgdmlkZW9Db2RlY0hpbnQuQVYxX01BSU4xMCA9IHRydWU7CiAgICAgICAgdmlkZW9Db2RlY0hpbnQuQVYxX0hJR0g4XzQ0NCA9IHRydWU7CiAgICAgICAgdmlkZW9Db2RlY0hpbnQuQVYxX0hJR0gxMF80NDQgPSB0cnVlOwogICAgfQogICAgZWxzZSBpZiAoc2V0dGluZ3MudmlkZW9Db2RlYyA9PSAiYXV0byIpIHsKICAgICAgICB2aWRlb0NvZGVjSGludCA9IGFsbFZpZGVvQ29kZWNzKCk7CiAgICB9CiAgICBpZiAoaXNGaXJlZm94KCkpIHsKICAgICAgICB2aWRlb0NvZGVjSGludC5BVjFfTUFJTjEwID0gZmFsc2U7CiAgICAgICAgdmlkZW9Db2RlY0hpbnQuQVYxX0hJR0gxMF80NDQgPSBmYWxzZTsKICAgIH0KICAgIHJldHVybiB2aWRlb0NvZGVjSGludDsKfQpmdW5jdGlvbiBpc0ZpcmVmb3goKSB7CiAgICByZXR1cm4gbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygiRmlyZWZveC8iKTsKfQpjb25zdCBXRUJSVENfQ09OTkVDVF9USU1FT1VUX01TID0gMTUwMDA7CmNvbnN0IEZBTExCQUNLX1JFQ09OTkVDVF9ERUxBWV9NUyA9IDUwMDsKZXhwb3J0IGNsYXNzIFN0cmVhbSB7CiAgICBjb25zdHJ1Y3RvcihhcGksIGhvc3RJZCwgYXBwSWQsIHNldHRpbmdzLCB2aWV3ZXJTY3JlZW5TaXplLCBwZXJtaXNzaW9ucykgewogICAgICAgIHRoaXMubG9nZ2VyID0gbmV3IExvZ2dlcigpOwogICAgICAgIHRoaXMuZGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQgPSBuZXcgRXZlbnRUYXJnZXQoKTsKICAgICAgICAvLyBDYXB0dXJlIHRoZSBjYWxsZXIncyBzY29wZWQgYXV0aGVudGljYXRlZCBjb25zdHJ1Y3RvciBmb3IgYXN5bmMgcmV0cmllcy4KICAgICAgICB0aGlzLnNvY2tldENvbnN0cnVjdG9yID0gV2ViU29ja2V0OwogICAgICAgIHRoaXMuc3RvcHBpbmcgPSBmYWxzZTsKICAgICAgICB0aGlzLnJlc3RhcnRpbmcgPSBmYWxzZTsKICAgICAgICB0aGlzLmNhbmNlbFRyYW5zcG9ydEF0dGVtcHQgPSBudWxsOwogICAgICAgIHRoaXMuaWNlU2VydmVycyA9IG51bGw7CiAgICAgICAgdGhpcy50cmFuc3BvcnRPdmVycmlkZSA9IG51bGw7CiAgICAgICAgdGhpcy5kaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyA9IG51bGw7CiAgICAgICAgdGhpcy52aWRlb1JlbmRlcmVyID0gbnVsbDsKICAgICAgICB0aGlzLmF1ZGlvUGxheWVyID0gbnVsbDsKICAgICAgICB0aGlzLmhhc0Nvbm5lY3Rpb25Db21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHRoaXMuaGFzVmlkZW9SZWFkeSA9IGZhbHNlOwogICAgICAgIHRoaXMuaGFzRGlzcGF0Y2hlZFZpZGVvUmVhZHkgPSBmYWxzZTsKICAgICAgICB0aGlzLnRyYW5zcG9ydCA9IG51bGw7CiAgICAgICAgLy8gLS0gUmF3IFdlYiBTb2NrZXQgc3R1ZmYKICAgICAgICB0aGlzLndzU2VuZEJ1ZmZlciA9IFtdOwogICAgICAgIHRoaXMubG9nZ2VyLmFkZEluZm9MaXN0ZW5lcigoaW5mbywgdHlwZSkgPT4gewogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGluZm8sIHsgdHlwZTogdHlwZSAhPT0gbnVsbCAmJiB0eXBlICE9PSB2b2lkIDAgPyB0eXBlIDogdW5kZWZpbmVkIH0pOwogICAgICAgIH0pOwogICAgICAgIHRoaXMuYXBpID0gYXBpOwogICAgICAgIHRoaXMuaG9zdElkID0gaG9zdElkOwogICAgICAgIHRoaXMuYXBwSWQgPSBhcHBJZDsKICAgICAgICB0aGlzLnBlcm1pc3Npb25zID0gcGVybWlzc2lvbnM7CiAgICAgICAgdGhpcy5zZXR0aW5ncyA9IHNldHRpbmdzOwogICAgICAgIHRoaXMuc3RyZWFtZXJTaXplID0gZ2V0U3RyZWFtZXJTaXplKHNldHRpbmdzLCB2aWV3ZXJTY3JlZW5TaXplKTsKICAgICAgICB0aGlzLndzID0gdGhpcy5jcmVhdGVDb250cm9sV2ViU29ja2V0KCk7CiAgICAgICAgdGhpcy5zZW5kSW5pdE1lc3NhZ2UoKTsKICAgICAgICAvLyBTdHJlYW0gSW5wdXQKICAgICAgICBjb25zdCBzdHJlYW1JbnB1dENvbmZpZyA9IGRlZmF1bHRTdHJlYW1JbnB1dENvbmZpZygpOwogICAgICAgIE9iamVjdC5hc3NpZ24oc3RyZWFtSW5wdXRDb25maWcsIHsKICAgICAgICAgICAgbW91c2VNb2RlOiB0aGlzLnNldHRpbmdzLm1vdXNlTW9kZSwKICAgICAgICAgICAgbW91c2VTY3JvbGxNb2RlOiB0aGlzLnNldHRpbmdzLm1vdXNlU2Nyb2xsTW9kZSwKICAgICAgICAgICAgdG91Y2hNb2RlOiB0aGlzLnNldHRpbmdzLnRvdWNoTW9kZSwKICAgICAgICAgICAgbG9jYWxDdXJzb3JTZW5zaXRpdml0eTogdGhpcy5zZXR0aW5ncy5sb2NhbEN1cnNvclNlbnNpdGl2aXR5LAogICAgICAgICAgICBjb250cm9sbGVyQ29uZmlnOiB0aGlzLnNldHRpbmdzLmNvbnRyb2xsZXJDb25maWcKICAgICAgICB9KTsKICAgICAgICB0aGlzLmlucHV0ID0gbmV3IFN0cmVhbUlucHV0KHN0cmVhbUlucHV0Q29uZmlnKTsKICAgICAgICAvLyBTdHJlYW0gU3RhdHMKICAgICAgICB0aGlzLnN0YXRzID0gbmV3IFN0cmVhbVN0YXRzKHRoaXMubG9nZ2VyKTsKICAgIH0KICAgIGRlYnVnTG9nKG1lc3NhZ2UsIGFkZGl0aW9uYWwpIHsKICAgICAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbWVzc2FnZS5zcGxpdCgiXG4iKSkgewogICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgic3RyZWFtLWluZm8iLCB7CiAgICAgICAgICAgICAgICBkZXRhaWw6IHsgdHlwZTogImFkZERlYnVnTGluZSIsIGxpbmUsIGFkZGl0aW9uYWwgfQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgdGhpcy5ldmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAgICB9CiAgICB9CiAgICByZXNldFZpZGVvUmVhZHlTdGF0ZSgpIHsKICAgICAgICB0aGlzLmhhc0Nvbm5lY3Rpb25Db21wbGV0ZSA9IGZhbHNlOwogICAgICAgIHRoaXMuaGFzVmlkZW9SZWFkeSA9IGZhbHNlOwogICAgICAgIHRoaXMuaGFzRGlzcGF0Y2hlZFZpZGVvUmVhZHkgPSBmYWxzZTsKICAgIH0KICAgIG1hcmtDb25uZWN0aW9uQ29tcGxldGUoKSB7CiAgICAgICAgdGhpcy5oYXNDb25uZWN0aW9uQ29tcGxldGUgPSB0cnVlOwogICAgICAgIHRoaXMudHJ5RGlzcGF0Y2hWaWRlb1JlYWR5KCk7CiAgICB9CiAgICBtYXJrVmlkZW9SZWFkeSgpIHsKICAgICAgICB0aGlzLmhhc1ZpZGVvUmVhZHkgPSB0cnVlOwogICAgICAgIHRoaXMudHJ5RGlzcGF0Y2hWaWRlb1JlYWR5KCk7CiAgICB9CiAgICB0cnlEaXNwYXRjaFZpZGVvUmVhZHkoKSB7CiAgICAgICAgaWYgKCF0aGlzLmhhc0Nvbm5lY3Rpb25Db21wbGV0ZSB8fCAhdGhpcy5oYXNWaWRlb1JlYWR5IHx8IHRoaXMuaGFzRGlzcGF0Y2hlZFZpZGVvUmVhZHkpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLmhhc0Rpc3BhdGNoZWRWaWRlb1JlYWR5ID0gdHJ1ZTsKICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgic3RyZWFtLWluZm8iLCB7CiAgICAgICAgICAgIGRldGFpbDogeyB0eXBlOiAidmlkZW9SZWFkeSIgfQogICAgICAgIH0pOwogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICB9CiAgICBvbk1lc3NhZ2UobWVzc2FnZSkgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgICAgIGlmICh0aGlzLnN0b3BwaW5nIHx8IHRoaXMucmVzdGFydGluZykKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgY29uc3QgbWVzc2FnZVRyYW5zcG9ydCA9IHRoaXMudHJhbnNwb3J0OwogICAgICAgICAgICBpZiAoIkRlYnVnTG9nIiBpbiBtZXNzYWdlKSB7CiAgICAgICAgICAgICAgICBjb25zdCBkZWJ1Z0xvZyA9IG1lc3NhZ2UuRGVidWdMb2c7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGRlYnVnTG9nLm1lc3NhZ2UsIHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiAoX2EgPSBkZWJ1Z0xvZy50eSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdW5kZWZpbmVkCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmICgiVXBkYXRlQXBwIiBpbiBtZXNzYWdlKSB7CiAgICAgICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDdXN0b21FdmVudCgic3RyZWFtLWluZm8iLCB7CiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB7IHR5cGU6ICJhcHAiLCBhcHA6IG1lc3NhZ2UuVXBkYXRlQXBwLmFwcCB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoIkNvbm5lY3Rpb25Db21wbGV0ZSIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gbWVzc2FnZS5Db25uZWN0aW9uQ29tcGxldGUuY2FwYWJpbGl0aWVzOwogICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0UmF3ID0gbWVzc2FnZS5Db25uZWN0aW9uQ29tcGxldGUuZm9ybWF0OwogICAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSBtZXNzYWdlLkNvbm5lY3Rpb25Db21wbGV0ZS53aWR0aDsKICAgICAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG1lc3NhZ2UuQ29ubmVjdGlvbkNvbXBsZXRlLmhlaWdodDsKICAgICAgICAgICAgICAgIGNvbnN0IGZwcyA9IG1lc3NhZ2UuQ29ubmVjdGlvbkNvbXBsZXRlLmZwczsKICAgICAgICAgICAgICAgIGNvbnN0IGF1ZGlvU2FtcGxlUmF0ZSA9IG1lc3NhZ2UuQ29ubmVjdGlvbkNvbXBsZXRlLmF1ZGlvX3NhbXBsZV9yYXRlOwogICAgICAgICAgICAgICAgY29uc3QgYXVkaW9DaGFubmVsQ291bnQgPSBtZXNzYWdlLkNvbm5lY3Rpb25Db21wbGV0ZS5hdWRpb19jaGFubmVsX2NvdW50OwogICAgICAgICAgICAgICAgY29uc3QgYXVkaW9TdHJlYW1zID0gbWVzc2FnZS5Db25uZWN0aW9uQ29tcGxldGUuYXVkaW9fc3RyZWFtczsKICAgICAgICAgICAgICAgIGNvbnN0IGF1ZGlvQ291cGxlZFN0cmVhbXMgPSBtZXNzYWdlLkNvbm5lY3Rpb25Db21wbGV0ZS5hdWRpb19jb3VwbGVkX3N0cmVhbXM7CiAgICAgICAgICAgICAgICBjb25zdCBhdWRpb1NhbXBsZXNQZXJGcmFtZSA9IG1lc3NhZ2UuQ29ubmVjdGlvbkNvbXBsZXRlLmF1ZGlvX3NhbXBsZXNfcGVyX2ZyYW1lOwogICAgICAgICAgICAgICAgY29uc3QgYXVkaW9NYXBwaW5nID0gbWVzc2FnZS5Db25uZWN0aW9uQ29tcGxldGUuYXVkaW9fbWFwcGluZzsKICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IGdldFNlbGVjdGVkVmlkZW9Db2RlYyhmb3JtYXRSYXcpOwogICAgICAgICAgICAgICAgaWYgKGZvcm1hdCA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgVmlkZW8gRm9ybWF0ICR7Zm9ybWF0UmF3fSB3YXMgbm90IGZvdW5kISBDb3VsZG4ndCBzdGFydCBzdHJlYW0hYCwgeyB0eXBlOiAiZmF0YWwiIH0pOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCJzdHJlYW0taW5mbyIsIHsKICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHsgdHlwZTogImNvbm5lY3Rpb25Db21wbGV0ZSIsIGNhcGFiaWxpdGllcyB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgICAgICAgICAgICB0aGlzLmlucHV0Lm9uU3RyZWFtU3RhcnQoY2FwYWJpbGl0aWVzLCBbd2lkdGgsIGhlaWdodF0pOwogICAgICAgICAgICAgICAgdGhpcy5zdGF0cy5zZXRWaWRlb0luZm8oZm9ybWF0ICE9PSBudWxsICYmIGZvcm1hdCAhPT0gdm9pZCAwID8gZm9ybWF0IDogIlVua25vd24iLCB3aWR0aCwgaGVpZ2h0LCBmcHMpOwogICAgICAgICAgICAgICAgLy8gSERSIHN0YXRlIHdpbGwgYmUgc2V0IHdoZW4gc2VydmVyIHNlbmRzIEhkck1vZGVVcGRhdGUgbWVzc2FnZQogICAgICAgICAgICAgICAgLy8gRG9uJ3QgaW5pdGlhbGl6ZSBmcm9tIHNldHRpbmdzLmhkciBiZWNhdXNlIHRoYXQncyBqdXN0IHRoZSB1c2VyJ3MgcHJlZmVyZW5jZSwKICAgICAgICAgICAgICAgIC8vIG5vdCB0aGUgYWN0dWFsIEhEUiBzdGF0ZSAod2hpY2ggZGVwZW5kcyBvbiBob3N0IHN1cHBvcnQsIGRpc3BsYXksIGFuZCBjb2RlYykKICAgICAgICAgICAgICAgIGlmICh0aGlzLnNldHRpbmdzLmhkcikgewogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIkhEUiByZXF1ZXN0ZWQgYnkgdXNlciwgd2FpdGluZyBmb3IgaG9zdCBjb25maXJtYXRpb24uLi4iKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIC8vIHdlIHNob3VsZCBhbGxvdyBzdHJlYW1pbmcgd2l0aG91dCBhdWRpbwogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmF1ZGlvUGxheWVyKSB7CiAgICAgICAgICAgICAgICAgICAgc2hvd05vdGlmaWNhdGlvbigiRmFpbGVkIHRvIGZpbmQgc3VwcG9ydGVkIGF1ZGlvIHBsYXllciAtPiBhdWRpbyBpcyBtaXNzaW5nLiIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCF0aGlzLnZpZGVvUmVuZGVyZXIgfHwgIXRoaXMuYXVkaW9QbGF5ZXIpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyAiVmlkZW8gcmVuZGVyZXIgb3IgYXVkaW8gcGxheWVyIG5vdCBpbml0aWFsaXplZCEiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgeWllbGQgUHJvbWlzZS5hbGwoWwogICAgICAgICAgICAgICAgICAgIHRoaXMudmlkZW9SZW5kZXJlci5zZXR1cCh7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVjOiBmb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgIGZwcywKICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvUGxheWVyLnNldHVwKHsKICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlUmF0ZTogYXVkaW9TYW1wbGVSYXRlLAogICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsczogYXVkaW9DaGFubmVsQ291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbXM6IGF1ZGlvU3RyZWFtcywKICAgICAgICAgICAgICAgICAgICAgICAgY291cGxlZFN0cmVhbXM6IGF1ZGlvQ291cGxlZFN0cmVhbXMsCiAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZXNQZXJGcmFtZTogYXVkaW9TYW1wbGVzUGVyRnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmc6IGF1ZGlvTWFwcGluZywKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgXSk7CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RvcHBpbmcgJiYgIXRoaXMucmVzdGFydGluZyAmJiB0aGlzLnRyYW5zcG9ydCA9PT0gbWVzc2FnZVRyYW5zcG9ydCkKICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtDb25uZWN0aW9uQ29tcGxldGUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmICgiQ29ubmVjdGlvblRlcm1pbmF0ZWQiIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGNvZGUgPSBtZXNzYWdlLkNvbm5lY3Rpb25UZXJtaW5hdGVkLmVycm9yX2NvZGU7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBDb25uZWN0aW9uVGVybWluYXRlZCB3aXRoIGNvZGUgJHtjb2RlfWAsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIC0tIFdlYlJUQyBDb25maWcKICAgICAgICAgICAgZWxzZSBpZiAoIlNldHVwIiBpbiBtZXNzYWdlKSB7CiAgICAgICAgICAgICAgICBjb25zdCBpY2VTZXJ2ZXJzID0gbWVzc2FnZS5TZXR1cC5pY2Vfc2VydmVyczsKICAgICAgICAgICAgICAgIHRoaXMuaWNlU2VydmVycyA9IGljZVNlcnZlcnM7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGB3aW5kb3cuaXNTZWN1cmVDb250ZXh0OiAke3dpbmRvdy5pc1NlY3VyZUNvbnRleHR9YCk7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKCJSZWNlaXZlZCBXZWJSVEMgY29uZmlndXJhdGlvbiIpOwogICAgICAgICAgICAgICAgeWllbGQgdGhpcy5zdGFydENvbm5lY3Rpb24oKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyAtLSBXZWJSVEMKICAgICAgICAgICAgZWxzZSBpZiAoIldlYlJ0YyIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICAgICAgY29uc3Qgd2VicnRjTWVzc2FnZSA9IG1lc3NhZ2UuV2ViUnRjOwogICAgICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNwb3J0IGluc3RhbmNlb2YgV2ViUlRDVHJhbnNwb3J0KSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQub25SZWNlaXZlTWVzc2FnZSh3ZWJydGNNZXNzYWdlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYFJlY2VpdmVkIFdlYlJUQyBtZXNzYWdlIGJ1dCB0cmFuc3BvcnQgaXMgY3VycmVudGx5ICR7KF9iID0gdGhpcy50cmFuc3BvcnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5pbXBsZW1lbnRhdGlvbk5hbWV9YCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KICAgIHN0YXJ0Q29ubmVjdGlvbigpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICB2YXIgX2E7CiAgICAgICAgICAgIGlmICh0aGlzLnN0b3BwaW5nKQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBQZXJtaXNzaW9uczogJHtKU09OLnN0cmluZ2lmeSh0aGlzLnBlcm1pc3Npb25zKX1gKTsKICAgICAgICAgICAgY29uc3QgZGVzaXJlZFRyYW5zcG9ydCA9IChfYSA9IHRoaXMudHJhbnNwb3J0T3ZlcnJpZGUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRoaXMuc2V0dGluZ3MuZGF0YVRyYW5zcG9ydDsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgVXNpbmcgdHJhbnNwb3J0OiAke2Rlc2lyZWRUcmFuc3BvcnR9YCk7CiAgICAgICAgICAgIGlmIChkZXNpcmVkVHJhbnNwb3J0ID09ICJhdXRvIikgewogICAgICAgICAgICAgICAgbGV0IHNodXRkb3duUmVhc29uID0geWllbGQgdGhpcy50cnlXZWJSVENUcmFuc3BvcnQoKTsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdG9wcGluZyAmJiAoc2h1dGRvd25SZWFzb24gPT0gImZhaWxlZG5vY29ubmVjdCIgfHwgc2h1dGRvd25SZWFzb24gPT0gImZhaWxlZCIpKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZygiRmFpbGVkIHRvIGVzdGFibGlzaCBXZWJSVEMgY29ubmVjdGlvbi4gRmFsbGluZyBiYWNrIHRvIFdlYiBTb2NrZXQgdHJhbnNwb3J0LiIsIHsgdHlwZTogImlmRXJyb3JEZXNjcmlwdGlvbiIgfSk7CiAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5yZXN0YXJ0V2l0aEZyZXNoVHJhbnNwb3J0RmFsbGJhY2soIndlYnNvY2tldCIpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmIChkZXNpcmVkVHJhbnNwb3J0ID09ICJ3ZWJydGMiKSB7CiAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLnRyeVdlYlJUQ1RyYW5zcG9ydCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgaWYgKGRlc2lyZWRUcmFuc3BvcnQgPT0gIndlYnNvY2tldCIpIHsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5kaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYykKICAgICAgICAgICAgICAgICAgICB0aGlzLnJlY29yZERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKHsgb3V0Y29tZTogInVuYXZhaWxhYmxlIiwgcmVhc29uOiAibm90LWVuYWJsZWQiLCBmYWxsYmFjazogZmFsc2UgfSk7CiAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLnRyeVdlYlNvY2tldFRyYW5zcG9ydCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghdGhpcy5zdG9wcGluZykKICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIlRyaWVkIGFsbCBjb25maWd1cmVkIHRyYW5zcG9ydCBvcHRpb25zIGJ1dCBubyBjb25uZWN0aW9uIHdhcyBwb3NzaWJsZSIsIHsgdHlwZTogImZhdGFsIiB9KTsKICAgICAgICB9KTsKICAgIH0KICAgIHJlY29yZERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKHZhbHVlKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICB0aGlzLmRpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljID0gdmFsdWU7CiAgICAgICAgKF9iID0gKF9hID0gdGhpcy5zdGF0cykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNldERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgdmFsdWUpOwogICAgfQogICAgY3JlYXRlQ29udHJvbFdlYlNvY2tldCgpIHsKICAgICAgICBjb25zdCB3c0FwaUhvc3QgPSB0aGlzLmFwaS5ob3N0X3VybC5yZXBsYWNlKC9eaHR0cChzKT86LywgIndzJDE6Iik7CiAgICAgICAgY29uc3Qgd3MgPSBuZXcgdGhpcy5zb2NrZXRDb25zdHJ1Y3RvcihgJHt3c0FwaUhvc3R9L2hvc3Qvc3RyZWFtYCk7CiAgICAgICAgd3MuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgaWYgKHRoaXMud3MgIT09IHdzIHx8IHRoaXMucmVzdGFydGluZyB8fCB0aGlzLnN0b3BwaW5nKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5vbkVycm9yKGV2ZW50KTsKICAgICAgICB9KTsKICAgICAgICB3cy5hZGRFdmVudExpc3RlbmVyKCJvcGVuIiwgKCkgPT4gewogICAgICAgICAgICBpZiAodGhpcy53cyAhPT0gd3MpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLm9uV3NPcGVuKCk7CiAgICAgICAgfSk7CiAgICAgICAgd3MuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCAoKSA9PiB7CiAgICAgICAgICAgIGlmICh0aGlzLndzICE9PSB3cyB8fCB0aGlzLnJlc3RhcnRpbmcgfHwgdGhpcy5zdG9wcGluZykgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMub25Xc0Nsb3NlKCk7CiAgICAgICAgfSk7CiAgICAgICAgd3MuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4gewogICAgICAgICAgICBpZiAodGhpcy53cyAhPT0gd3MpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLm9uUmF3V3NNZXNzYWdlKGV2ZW50KTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gd3M7CiAgICB9CiAgICBzZW5kSW5pdE1lc3NhZ2UoKSB7CiAgICAgICAgdGhpcy5zZW5kV3NNZXNzYWdlKHsKICAgICAgICAgICAgSW5pdDogewogICAgICAgICAgICAgICAgaG9zdF9pZDogdGhpcy5ob3N0SWQsCiAgICAgICAgICAgICAgICBhcHBfaWQ6IHRoaXMuYXBwSWQsCiAgICAgICAgICAgICAgICB2aWRlb19mcmFtZV9xdWV1ZV9zaXplOiB0aGlzLnNldHRpbmdzLnZpZGVvRnJhbWVRdWV1ZVNpemUsCiAgICAgICAgICAgICAgICBhdWRpb19zYW1wbGVfcXVldWVfc2l6ZTogdGhpcy5zZXR0aW5ncy5hdWRpb1NhbXBsZVF1ZXVlU2l6ZSwKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQogICAgcmVzdGFydFdpdGhGcmVzaFRyYW5zcG9ydEZhbGxiYWNrKHRyYW5zcG9ydCkgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLnN0b3BwaW5nIHx8IHRoaXMucmVzdGFydGluZykKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgaWYgKHRoaXMuZGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMpCiAgICAgICAgICAgICAgICB0aGlzLnJlY29yZERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5kaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyksIHsgZmFsbGJhY2s6IHRydWUgfSkpOwogICAgICAgICAgICB0aGlzLnJlc3RhcnRpbmcgPSB0cnVlOwogICAgICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzdHJlYW0taW5mbyIsIHsgZGV0YWlsOiB7IHR5cGU6ICJ0cmFuc3BvcnRGYWxsYmFjayIgfSB9KSk7CiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0T3ZlcnJpZGUgPSB0cmFuc3BvcnQ7CiAgICAgICAgICAgIHRoaXMucmVzZXRWaWRlb1JlYWR5U3RhdGUoKTsKICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNwb3J0KSB7CiAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLnRyYW5zcG9ydC5jbG9zZSgpOwogICAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQgPSBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMud3NTZW5kQnVmZmVyLmxlbmd0aCA9IDA7CiAgICAgICAgICAgIGNvbnN0IG9sZFdzID0gdGhpcy53czsKICAgICAgICAgICAgaWYgKG9sZFdzLnJlYWR5U3RhdGUgPT0gV2ViU29ja2V0Lk9QRU4gfHwgb2xkV3MucmVhZHlTdGF0ZSA9PSBXZWJTb2NrZXQuQ09OTkVDVElORykgewogICAgICAgICAgICAgICAgb2xkV3MuY2xvc2UoKTsKICAgICAgICAgICAgICAgIHlpZWxkIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHJlc29sdmUoKSwgMTAwMCk7CiAgICAgICAgICAgICAgICAgICAgb2xkV3MuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKICAgICAgICAgICAgICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICB5aWVsZCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gd2luZG93LnNldFRpbWVvdXQocmVzb2x2ZSwgRkFMTEJBQ0tfUkVDT05ORUNUX0RFTEFZX01TKSk7CiAgICAgICAgICAgIGlmICh0aGlzLnN0b3BwaW5nKQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB0aGlzLndzID0gdGhpcy5jcmVhdGVDb250cm9sV2ViU29ja2V0KCk7CiAgICAgICAgICAgIHRoaXMucmVzdGFydGluZyA9IGZhbHNlOwogICAgICAgICAgICB0aGlzLnNlbmRJbml0TWVzc2FnZSgpOwogICAgICAgIH0pOwogICAgfQogICAgc2V0VHJhbnNwb3J0KHRyYW5zcG9ydCkgewogICAgICAgIGlmICh0aGlzLnRyYW5zcG9ydCkgewogICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5jbG9zZSgpOwogICAgICAgIH0KICAgICAgICB0aGlzLnRyYW5zcG9ydCA9IHRyYW5zcG9ydDsKICAgICAgICB0aGlzLmlucHV0LnNldFRyYW5zcG9ydCh0aGlzLnRyYW5zcG9ydCk7CiAgICAgICAgdGhpcy5zdGF0cy5zZXRUcmFuc3BvcnQodGhpcy50cmFuc3BvcnQpOwogICAgICAgIGNvbnN0IHJ0dCA9IHRoaXMudHJhbnNwb3J0LmdldENoYW5uZWwoVHJhbnNwb3J0Q2hhbm5lbElkLlJUVCk7CiAgICAgICAgaWYgKHJ0dC50eXBlID09ICJkYXRhIikgewogICAgICAgICAgICBydHQuYWRkUmVjZWl2ZUxpc3RlbmVyKChkYXRhKSA9PiB7CiAgICAgICAgICAgICAgICBjb25zdCBidWZmZXIgPSBuZXcgQnl0ZUJ1ZmZlcihkYXRhLmJ5dGVMZW5ndGgpOwogICAgICAgICAgICAgICAgYnVmZmVyLnB1dFU4QXJyYXkobmV3IFVpbnQ4QXJyYXkoZGF0YSkpOwogICAgICAgICAgICAgICAgYnVmZmVyLmZsaXAoKTsKICAgICAgICAgICAgICAgIGNvbnN0IHR5ID0gYnVmZmVyLmdldFU4KCk7CiAgICAgICAgICAgICAgICBpZiAodHkgPT0gMCkgewogICAgICAgICAgICAgICAgICAgIHJ0dC5zZW5kKGRhdGEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIkZhaWxlZCB0byBnZXQgcnR0IGFzIGRhdGEgdHJhbnNwb3J0IGNoYW5uZWwuIENhbm5vdCByZXNwb25kIHRvIHJ0dCBwYWNrZXRzIik7CiAgICAgICAgfQogICAgICAgIC8vIFNldHVwIEdFTkVSQUwgY2hhbm5lbCBsaXN0ZW5lciBmb3IgSERSIG1vZGUgdXBkYXRlcwogICAgICAgIGNvbnN0IGdlbmVyYWxDaGFubmVsID0gdGhpcy50cmFuc3BvcnQuZ2V0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQuR0VORVJBTCk7CiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgW0dFTkVSQUxdIFNldHRpbmcgdXAgR0VORVJBTCBjaGFubmVsIGxpc3RlbmVyLCB0eXBlPSR7Z2VuZXJhbENoYW5uZWwudHlwZX1gKTsKICAgICAgICBpZiAoZ2VuZXJhbENoYW5uZWwudHlwZSA9PT0gImRhdGEiKSB7CiAgICAgICAgICAgIGdlbmVyYWxDaGFubmVsLmFkZFJlY2VpdmVMaXN0ZW5lcigoZGF0YSkgPT4gewogICAgICAgICAgICAgICAgdGhpcy5vbkdlbmVyYWxDaGFubmVsTWVzc2FnZShkYXRhKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYFtHRU5FUkFMXSBHRU5FUkFMIGNoYW5uZWwgbGlzdGVuZXIgcmVnaXN0ZXJlZGApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgW0dFTkVSQUxdIENhbm5vdCByZWdpc3RlciBsaXN0ZW5lciwgY2hhbm5lbCB0eXBlIGlzIG5vdCAnZGF0YSdgKTsKICAgICAgICB9CiAgICB9CiAgICBvbkdlbmVyYWxDaGFubmVsTWVzc2FnZShkYXRhKSB7CiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgW0dFTkVSQUxdIFJlY2VpdmVkIG1lc3NhZ2Ugb24gR0VORVJBTCBjaGFubmVsLCBzaXplPSR7ZGF0YS5ieXRlTGVuZ3RofWApOwogICAgICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KGRhdGEpOwogICAgICAgIGlmIChidWZmZXIubGVuZ3RoIDwgMikgewogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBbR0VORVJBTF0gTWVzc2FnZSB0b28gc2hvcnQ6ICR7YnVmZmVyLmxlbmd0aH0gYnl0ZXNgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCB0ZXh0TGVuZ3RoID0gKGJ1ZmZlclswXSA8PCA4KSB8IGJ1ZmZlclsxXTsKICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA8IDIgKyB0ZXh0TGVuZ3RoKSB7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYFtHRU5FUkFMXSBNZXNzYWdlIGluY29tcGxldGU6IGV4cGVjdGVkICR7MiArIHRleHRMZW5ndGh9IGJ5dGVzLCBnb3QgJHtidWZmZXIubGVuZ3RofWApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IHRleHQgPSBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoYnVmZmVyLnNsaWNlKDIsIDIgKyB0ZXh0TGVuZ3RoKSk7CiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgW0dFTkVSQUxdIFBhcnNlZCBtZXNzYWdlOiAke3RleHR9YCk7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IEpTT04ucGFyc2UodGV4dCk7CiAgICAgICAgICAgIHRoaXMuaGFuZGxlR2VuZXJhbE1lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgfQogICAgICAgIGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgRmFpbGVkIHRvIHBhcnNlIGdlbmVyYWwgbWVzc2FnZTogJHtlcnJ9YCk7CiAgICAgICAgfQogICAgfQogICAgaGFuZGxlR2VuZXJhbE1lc3NhZ2UobWVzc2FnZSkgewogICAgICAgIGlmICgiSGRyTW9kZVVwZGF0ZSIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICBjb25zdCBoZHJVcGRhdGUgPSBtZXNzYWdlLkhkck1vZGVVcGRhdGU7CiAgICAgICAgICAgIGlmIChoZHJVcGRhdGUpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGVuYWJsZWQgPSBoZHJVcGRhdGUuZW5hYmxlZDsKICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYEhEUiBtb2RlICR7ZW5hYmxlZCA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCJ9YCk7CiAgICAgICAgICAgICAgICB0aGlzLnNldEhkck1vZGUoZW5hYmxlZCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoIkNvbm5lY3Rpb25TdGF0dXNVcGRhdGUiIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgY29uc3Qgc3RhdHVzVXBkYXRlID0gbWVzc2FnZS5Db25uZWN0aW9uU3RhdHVzVXBkYXRlOwogICAgICAgICAgICBpZiAoc3RhdHVzVXBkYXRlKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBzdGF0dXNVcGRhdGUuc3RhdHVzOwogICAgICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoInN0cmVhbS1pbmZvIiwgewogICAgICAgICAgICAgICAgICAgIGRldGFpbDogeyB0eXBlOiAiY29ubmVjdGlvblN0YXR1cyIsIHN0YXR1cyB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBzZXRIZHJNb2RlKGVuYWJsZWQpIHsKICAgICAgICB0aGlzLnN0YXRzLnNldEhkckVuYWJsZWQoZW5hYmxlZCk7CiAgICAgICAgaWYgKHRoaXMudmlkZW9SZW5kZXJlcikgewogICAgICAgICAgICBpZiAoInNldEhkck1vZGUiIGluIHRoaXMudmlkZW9SZW5kZXJlciAmJiB0eXBlb2YgdGhpcy52aWRlb1JlbmRlcmVyLnNldEhkck1vZGUgPT09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIHRoaXMudmlkZW9SZW5kZXJlci5zZXRIZHJNb2RlKGVuYWJsZWQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgc2VuZEdlbmVyYWxNZXNzYWdlKG1lc3NhZ2UpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgY29uc3QgZ2VuZXJhbCA9IChfYSA9IHRoaXMudHJhbnNwb3J0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQuR0VORVJBTCk7CiAgICAgICAgaWYgKCFnZW5lcmFsIHx8IGdlbmVyYWwudHlwZSAhPSAiZGF0YSIpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBjb25zdCB0ZXh0ID0gSlNPTi5zdHJpbmdpZnkobWVzc2FnZSk7CiAgICAgICAgY29uc3QgYnVmZmVyID0gQklHX0JVRkZFUjsKICAgICAgICBidWZmZXIucmVzZXQoKTsKICAgICAgICBidWZmZXIucHV0VTE2KHRleHQubGVuZ3RoKTsKICAgICAgICBidWZmZXIucHV0VXRmOFJhdyh0ZXh0KTsKICAgICAgICBidWZmZXIuZmxpcCgpOwogICAgICAgIGdlbmVyYWwuc2VuZChidWZmZXIuZ2V0UmVtYWluaW5nQnVmZmVyKCkuYnVmZmVyKTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIHRyeVdlYlJUQ1RyYW5zcG9ydCgpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICBpZiAodGhpcy5zdG9wcGluZykKICAgICAgICAgICAgICAgIHJldHVybiAiZGlzY29ubmVjdCI7CiAgICAgICAgICAgIGlmICghdGhpcy5wZXJtaXNzaW9ucy5hbGxvd190cmFuc3BvcnRfd2VicnRjIHx8ICF0aGlzLmljZVNlcnZlcnMpIHsKICAgICAgICAgICAgICAgIHRoaXMucmVjb3JkRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMoeyBvdXRjb21lOiAidW5hdmFpbGFibGUiLCByZWFzb246ICF0aGlzLnBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJydGMgPyAibm90LWVuYWJsZWQiIDogInNldHVwLW1pc3NpbmciLCBmYWxsYmFjazogZmFsc2UgfSk7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKCJOb3QgdHJ5aW5nIFdlYlJUQyB0cmFuc3BvcnQgYmVjYXVzZSBwZXJtaXNzaW9ucyBkaXNhbGxvdyBpdCIpOwogICAgICAgICAgICAgICAgcmV0dXJuICJmYWlsZWRub2Nvbm5lY3QiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIlRyeWluZyBXZWJSVEMgdHJhbnNwb3J0Iik7CiAgICAgICAgICAgIGNvbnN0IHRyYW5zcG9ydCA9IG5ldyBXZWJSVENUcmFuc3BvcnQodGhpcy5sb2dnZXIpOwogICAgICAgICAgICBjb25zdCBzdGFydGVkID0gcGVyZm9ybWFuY2Uubm93KCk7CiAgICAgICAgICAgIGxldCBhY3RpdmUgPSB0cnVlLCBvdXRjb21lID0gImF0dGVtcHRpbmciLCByZWFzb24sIGVsYXBzZWRNcyA9IG51bGwsIHNldHRsZWQgPSBmYWxzZTsKICAgICAgICAgICAgY29uc3QgcHVibGlzaCA9ICgpID0+IHsKICAgICAgICAgICAgICAgIHZhciBfYTsKICAgICAgICAgICAgICAgIGlmICghYWN0aXZlKQogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIGNvbnN0IGVsYXBzZWQgPSBlbGFwc2VkTXMgIT09IG51bGwgJiYgZWxhcHNlZE1zICE9PSB2b2lkIDAgPyBlbGFwc2VkTXMgOiBNYXRoLm1heCgwLCBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0ZWQpOwogICAgICAgICAgICAgICAgdGhpcy5yZWNvcmREaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyhPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIChfYSA9IHRyYW5zcG9ydC5nZXRDb25uZWN0aW9uRGlhZ25vc3RpY3MpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHRyYW5zcG9ydCkpLCB7IG91dGNvbWUsIHJlYXNvbiwgZWxhcHNlZE1zOiBlbGFwc2VkLCBmYWxsYmFjazogZmFsc2UgfSkpOwogICAgICAgICAgICB9OwogICAgICAgICAgICBjb25zdCBmaW5pc2hPdXRjb21lID0gKG5leHQsIHdoeSkgPT4gewogICAgICAgICAgICAgICAgb3V0Y29tZSA9IG5leHQ7CiAgICAgICAgICAgICAgICByZWFzb24gPSB3aHk7CiAgICAgICAgICAgICAgICBpZiAoZWxhcHNlZE1zID09PSBudWxsKQogICAgICAgICAgICAgICAgICAgIGVsYXBzZWRNcyA9IE1hdGgubWF4KDAsIHBlcmZvcm1hbmNlLm5vdygpIC0gc3RhcnRlZCk7CiAgICAgICAgICAgICAgICBwdWJsaXNoKCk7CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHRyYW5zcG9ydC5vbmRpYWdub3N0aWNzID0gKCkgPT4geyBpZiAoIXRoaXMuc3RvcHBpbmcpCiAgICAgICAgICAgICAgICBwdWJsaXNoKCk7IH07CiAgICAgICAgICAgIHB1Ymxpc2goKTsKICAgICAgICAgICAgdHJhbnNwb3J0Lm9uc2VuZG1lc3NhZ2UgPSBtZXNzYWdlID0+IHsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdG9wcGluZyAmJiB0aGlzLnRyYW5zcG9ydCA9PT0gdHJhbnNwb3J0KQogICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZFdzTWVzc2FnZSh7IFdlYlJ0YzogbWVzc2FnZSB9KTsKICAgICAgICAgICAgfTsKICAgICAgICAgICAgbGV0IHJlc29sdmVOZWdvdGlhdGlvbiA9ICgpID0+IHsgfTsKICAgICAgICAgICAgY29uc3QgbmVnb3RpYXRpb24gPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsgcmVzb2x2ZU5lZ290aWF0aW9uID0gcmVzb2x2ZTsgfSk7CiAgICAgICAgICAgIGNvbnN0IHNldHRsZSA9IChjb25uZWN0ZWQsIG5leHQsIHdoeSkgPT4gewogICAgICAgICAgICAgICAgaWYgKHNldHRsZWQgfHwgIWFjdGl2ZSkKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICBzZXR0bGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGZpbmlzaE91dGNvbWUobmV4dCwgd2h5KTsKICAgICAgICAgICAgICAgIHJlc29sdmVOZWdvdGlhdGlvbihjb25uZWN0ZWQpOwogICAgICAgICAgICB9OwogICAgICAgICAgICBjb25zdCB0aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3BwaW5nKQogICAgICAgICAgICAgICAgICAgIHNldHRsZShmYWxzZSwgInRpbWVkLW91dCIsICJuZWdvdGlhdGlvbi10aW1lb3V0Iik7CiAgICAgICAgICAgIH0sIFdFQlJUQ19DT05ORUNUX1RJTUVPVVRfTVMpOwogICAgICAgICAgICB0aGlzLmNhbmNlbFRyYW5zcG9ydEF0dGVtcHQgPSAoKSA9PiBzZXR0bGUoZmFsc2UsICJjYW5jZWxsZWQiLCAic3RvcHBlZCIpOwogICAgICAgICAgICB0cmFuc3BvcnQub25jb25uZWN0ID0gKCkgPT4geyBpZiAoIXRoaXMuc3RvcHBpbmcpCiAgICAgICAgICAgICAgICBzZXR0bGUodHJ1ZSwgImNvbm5lY3RlZCIpOyB9OwogICAgICAgICAgICB0cmFuc3BvcnQub25jbG9zZSA9ICgpID0+IHsgaWYgKCF0aGlzLnN0b3BwaW5nKQogICAgICAgICAgICAgICAgc2V0dGxlKGZhbHNlLCAiZmFpbGVkIiwgIm5lZ290aWF0aW9uLWZhaWxlZCIpOyB9OwogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgeWllbGQgdHJhbnNwb3J0LmluaXRQZWVyKHsgaWNlU2VydmVyczogdGhpcy5pY2VTZXJ2ZXJzIH0pOwogICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RvcHBpbmcpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJkaXNjb25uZWN0IjsKICAgICAgICAgICAgICAgIHRoaXMuc2V0VHJhbnNwb3J0KHRyYW5zcG9ydCk7CiAgICAgICAgICAgICAgICB0aGlzLnNlbmRXc01lc3NhZ2UoeyBTZXRUcmFuc3BvcnQ6ICJXZWJSVEMiIH0pOwogICAgICAgICAgICAgICAgY29uc3QgdmlkZW9Db2RlY1N1cHBvcnQgPSB5aWVsZCB0aGlzLmNyZWF0ZVBpcGVsaW5lcygpOwogICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RvcHBpbmcpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJkaXNjb25uZWN0IjsKICAgICAgICAgICAgICAgIGlmICghdmlkZW9Db2RlY1N1cHBvcnQpIHsKICAgICAgICAgICAgICAgICAgICBmaW5pc2hPdXRjb21lKCJmYWlsZWQiLCAidmlkZW8tdW5hdmFpbGFibGUiKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gImZhaWxlZG5vY29ubmVjdCI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLnN0YXJ0U3RyZWFtKHZpZGVvQ29kZWNTdXBwb3J0KTsKICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIG5lZ290aWF0aW9uOwogICAgICAgICAgICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aW1lb3V0KTsKICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYFdlYlJUQyBuZWdvdGlhdGlvbiBzdWNjZXNzOiAke3Jlc3VsdH1gKTsKICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0b3BwaW5nKQogICAgICAgICAgICAgICAgICAgIHJldHVybiAiZGlzY29ubmVjdCI7CiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gImZhaWxlZG5vY29ubmVjdCI7CiAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxUcmFuc3BvcnRBdHRlbXB0ID0gKCkgPT4gcmVzb2x2ZSgiZGlzY29ubmVjdCIpOwogICAgICAgICAgICAgICAgICAgIHRyYW5zcG9ydC5vbmNsb3NlID0gdmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3RvcHBpbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5pc2hPdXRjb21lKCJmYWlsZWQiLCAiY29ubmVjdGlvbi1sb3N0Iik7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUodmFsdWUpOwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBjYXRjaCAoX2EpIHsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdG9wcGluZykKICAgICAgICAgICAgICAgICAgICBmaW5pc2hPdXRjb21lKCJmYWlsZWQiLCAic2V0dXAtZmFpbGVkIik7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKCJEaXJlY3QgdHJhbnNwb3J0IHVuYXZhaWxhYmxlOyB1c2luZyB0aGUgcmVsYXkgZmFsbGJhY2suIik7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9wcGluZyA/ICJkaXNjb25uZWN0IiA6ICJmYWlsZWRub2Nvbm5lY3QiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZpbmFsbHkgewogICAgICAgICAgICAgICAgYWN0aXZlID0gZmFsc2U7CiAgICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpOwogICAgICAgICAgICAgICAgdGhpcy5jYW5jZWxUcmFuc3BvcnRBdHRlbXB0ID0gbnVsbDsKICAgICAgICAgICAgICAgIHRyYW5zcG9ydC5vbmNvbm5lY3QgPSBudWxsOwogICAgICAgICAgICAgICAgdHJhbnNwb3J0Lm9uY2xvc2UgPSBudWxsOwogICAgICAgICAgICAgICAgdHJhbnNwb3J0Lm9uc2VuZG1lc3NhZ2UgPSBudWxsOwogICAgICAgICAgICAgICAgdHJhbnNwb3J0Lm9uZGlhZ25vc3RpY3MgPSBudWxsOwogICAgICAgICAgICAgICAgeWllbGQgdHJhbnNwb3J0LmNsb3NlKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KICAgIHRyeVdlYlNvY2tldFRyYW5zcG9ydCgpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICBpZiAoIXRoaXMucGVybWlzc2lvbnMuYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHMpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIk5vdCB0cnlpbmcgV2ViU29ja2V0IHRyYW5zcG9ydCBiZWNhdWVzIHBlcm1pc3Npb25zIGRpc2FsbG93IGl0Iik7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZygiVHJ5aW5nIFdlYiBTb2NrZXQgdHJhbnNwb3J0Iik7CiAgICAgICAgICAgIHRoaXMuc2VuZFdzTWVzc2FnZSh7CiAgICAgICAgICAgICAgICBTZXRUcmFuc3BvcnQ6ICJXZWJTb2NrZXQiCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCB0cmFuc3BvcnQgPSBuZXcgV2ViU29ja2V0VHJhbnNwb3J0KHRoaXMud3MsIEJJR19CVUZGRVIsIHRoaXMubG9nZ2VyKTsKICAgICAgICAgICAgdGhpcy5zZXRUcmFuc3BvcnQodHJhbnNwb3J0KTsKICAgICAgICAgICAgY29uc3QgdmlkZW9Db2RlY1N1cHBvcnQgPSB5aWVsZCB0aGlzLmNyZWF0ZVBpcGVsaW5lcygpOwogICAgICAgICAgICBpZiAoIXZpZGVvQ29kZWNTdXBwb3J0KSB7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKCJGYWlsZWQgdG8gc3RhcnQgc3RyZWFtIGJlY2F1c2Ugbm8gdmlkZW8gcGlwZWxpbmUgd2l0aCBzdXBwb3J0IGZvciB0aGUgc3BlY2lmaWVkIGNvZGVjIHdhcyBmb3VuZCEiLCB7IHR5cGU6ICJmYXRhbERlc2NyaXB0aW9uIiB9KTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICB5aWVsZCB0aGlzLnN0YXJ0U3RyZWFtKHZpZGVvQ29kZWNTdXBwb3J0KTsKICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgICAgICAgICAgICB0cmFuc3BvcnQub25jbG9zZSA9IChzaHV0ZG93bikgPT4gewogICAgICAgICAgICAgICAgICAgIHJlc29sdmUoc2h1dGRvd24pOwogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9CiAgICBjcmVhdGVQaXBlbGluZXMoKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kOwogICAgICAgICAgICAvLyBQcmludCBzdXBwb3J0ZWQgcGlwZXMKICAgICAgICAgICAgY29uc3QgcGlwZXNJbmZvID0geWllbGQgZ2F0aGVyUGlwZUluZm8oKTsKICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYFN1cHBvcnRlZCBQaXBlczoge2ApOwogICAgICAgICAgICBsZXQgaXNGaXJzdCA9IHRydWU7CiAgICAgICAgICAgIGZvciAoY29uc3QgW3BpcGUsIGluZm9dIG9mIHBpcGVzSW5mbykgewogICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYCR7aXNGaXJzdCA/ICIiIDogIiwifSIke3BpcGUubmFtZX0iOiAke0pTT04uc3RyaW5naWZ5KGluZm8pfWApOwogICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGB9YCk7CiAgICAgICAgICAgIC8vIENyZWF0ZSBwaXBlbGluZXMKICAgICAgICAgICAgY29uc3QgW3N1cHBvcnRlZFZpZGVvQ29kZWNzXSA9IHlpZWxkIFByb21pc2UuYWxsKFt0aGlzLmNyZWF0ZVZpZGVvUmVuZGVyZXIoKSwgdGhpcy5jcmVhdGVBdWRpb1BsYXllcigpXSk7CiAgICAgICAgICAgIGNvbnN0IHZpZGVvUGlwZWxpbmVOYW1lID0gYCR7KF9hID0gdGhpcy50cmFuc3BvcnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRDaGFubmVsKFRyYW5zcG9ydENoYW5uZWxJZC5IT1NUX1ZJREVPKS50eXBlfSAodHJhbnNwb3J0KSAtPiAkeyhfYiA9IHRoaXMudmlkZW9SZW5kZXJlcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmltcGxlbWVudGF0aW9uTmFtZX0gKHJlbmRlcmVyKWA7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYFVzaW5nIHZpZGVvIHBpcGVsaW5lOiAke3ZpZGVvUGlwZWxpbmVOYW1lfWApOwogICAgICAgICAgICBjb25zdCBhdWRpb1BpcGVsaW5lTmFtZSA9IGAkeyhfYyA9IHRoaXMudHJhbnNwb3J0KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZ2V0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQuSE9TVF9BVURJTykudHlwZX0gKHRyYW5zcG9ydCkgLT4gJHsoX2QgPSB0aGlzLmF1ZGlvUGxheWVyKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuaW1wbGVtZW50YXRpb25OYW1lfSAocGxheWVyKWA7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYFVzaW5nIGF1ZGlvIHBpcGVsaW5lOiAke2F1ZGlvUGlwZWxpbmVOYW1lfWApOwogICAgICAgICAgICB0aGlzLnN0YXRzLnNldFZpZGVvUGlwZWxpbmUodmlkZW9QaXBlbGluZU5hbWUsIHRoaXMudmlkZW9SZW5kZXJlcik7CiAgICAgICAgICAgIHRoaXMuc3RhdHMuc2V0QXVkaW9QaXBlbGluZShhdWRpb1BpcGVsaW5lTmFtZSwgdGhpcy5hdWRpb1BsYXllcik7CiAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWRWaWRlb0NvZGVjczsKICAgICAgICB9KTsKICAgIH0KICAgIGNyZWF0ZVZpZGVvUmVuZGVyZXIoKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgaWYgKHRoaXMudmlkZW9SZW5kZXJlcikgewogICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZygiRm91bmQgYW4gb2xkIHZpZGVvIHJlbmRlcmVyIC0+IGNsZWFuaW5nIGl0IHVwIik7CiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvUmVuZGVyZXIudW5tb3VudCh0aGlzLmRpdkVsZW1lbnQpOwogICAgICAgICAgICAgICAgdGhpcy52aWRlb1JlbmRlcmVyLmNsZWFudXAoKTsKICAgICAgICAgICAgICAgIHRoaXMudmlkZW9SZW5kZXJlciA9IG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCF0aGlzLnRyYW5zcG9ydCkgewogICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZygiRmFpbGVkIHRvIHNldHVwIHZpZGVvIHdpdGhvdXQgdHJhbnNwb3J0Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCBjb2RlY0hpbnQgPSBnZXRWaWRlb0NvZGVjSGludCh0aGlzLnNldHRpbmdzKTsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgQ29kZWMgSGludCBieSB0aGUgdXNlcjogJHtKU09OLnN0cmluZ2lmeShjb2RlY0hpbnQpfWApOwogICAgICAgICAgICBpZiAoIWhhc0FueUNvZGVjKGNvZGVjSGludCkpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIkNvdWxkbid0IGZpbmQgYW55IHN1cHBvcnRlZCB2aWRlbyBmb3JtYXQuIENoYW5nZSB0aGUgY29kZWMgb3B0aW9uIHRvIEgyNjQgaW4gdGhlIHNldHRpbmdzIGlmIHlvdSdyZSB1bnN1cmUgd2hpY2ggY29kZWNzIGFyZSBzdXBwb3J0ZWQuIiwgeyB0eXBlOiAiZmF0YWxEZXNjcmlwdGlvbiIgfSk7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCB0cmFuc3BvcnRDb2RlY1N1cHBvcnQgPSB5aWVsZCB0aGlzLnRyYW5zcG9ydC5zZXR1cEhvc3RWaWRlbyh7CiAgICAgICAgICAgICAgICB0eXBlOiBbInZpZGVvdHJhY2siLCAiZGF0YSJdCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBUcmFuc3BvcnQgc3VwcG9ydHMgdGhlc2UgdmlkZW8gY29kZWNzOiAke0pTT04uc3RyaW5naWZ5KHRyYW5zcG9ydENvZGVjU3VwcG9ydCl9YCk7CiAgICAgICAgICAgIGNvbnN0IHZpZGVvU2V0dGluZ3MgPSB7CiAgICAgICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYW5kVmlkZW9Db2RlY3MoY29kZWNIaW50LCB0cmFuc3BvcnRDb2RlY1N1cHBvcnQpLAogICAgICAgICAgICAgICAgY2FudmFzUmVuZGVyZXI6IHRoaXMuc2V0dGluZ3MuY2FudmFzUmVuZGVyZXIsCiAgICAgICAgICAgICAgICBmb3JjZVZpZGVvRWxlbWVudFJlbmRlcmVyOiB0aGlzLnNldHRpbmdzLmZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXIsCiAgICAgICAgICAgICAgICBjYW52YXNWc3luYzogdGhpcy5zZXR0aW5ncy5jYW52YXNWc3luYwogICAgICAgICAgICB9OwogICAgICAgICAgICBsZXQgcGlwZWxpbmVDb2RlY1N1cHBvcnQ7CiAgICAgICAgICAgIGNvbnN0IHZpZGVvID0gdGhpcy50cmFuc3BvcnQuZ2V0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQuSE9TVF9WSURFTyk7CiAgICAgICAgICAgIGlmICh2aWRlby50eXBlID09ICJ2aWRlb3RyYWNrIikgewogICAgICAgICAgICAgICAgLy8gUHJlZmVyIG5hdGl2ZSB2aWRlbyBwcmVzZW50YXRpb24gZm9yIFdlYlJUQyB0cmFja3MsIGF2b2lkaW5nIGEKICAgICAgICAgICAgICAgIC8vIEphdmFTY3JpcHQgZnJhbWUgcHVtcCBhbmQgY2FudmFzIGNvcHkgb24gZWFjaCBkZWNvZGVkIGZyYW1lLgogICAgICAgICAgICAgICAgLy8gTm9ybWFsIGNhcGFiaWxpdHkgY2hlY2tzIHN0aWxsIGFsbG93IGEgc3VwcG9ydGVkIGNhbnZhcyBmYWxsYmFjay4KICAgICAgICAgICAgICAgIC8vIEtlZXAgdGhlIGRhdGEtY2hhbm5lbCBzZXR0aW5ncyB1bmNoYW5nZWQgZm9yIFdlYlNvY2tldC9XZWJDb2RlY3MuCiAgICAgICAgICAgICAgICBjb25zdCB0cmFja1NldHRpbmdzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB2aWRlb1NldHRpbmdzKSwgeyBjYW52YXNSZW5kZXJlcjogZmFsc2UsIGZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXI6IGZhbHNlIH0pOwogICAgICAgICAgICAgICAgY29uc3QgeyB2aWRlb1JlbmRlcmVyLCBzdXBwb3J0ZWRDb2RlY3MsIGVycm9yIH0gPSB5aWVsZCBidWlsZFZpZGVvUGlwZWxpbmUoInZpZGVvdHJhY2siLCB0cmFja1NldHRpbmdzLCB0aGlzLmxvZ2dlcik7CiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHBpcGVsaW5lQ29kZWNTdXBwb3J0ID0gc3VwcG9ydGVkQ29kZWNzOwogICAgICAgICAgICAgICAgdmlkZW9SZW5kZXJlci5tb3VudCh0aGlzLmRpdkVsZW1lbnQpOwogICAgICAgICAgICAgICAgdmlkZW8uYWRkVHJhY2tMaXN0ZW5lcigodHJhY2spID0+IHsKICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtWaWRlb1JlYWR5KCk7CiAgICAgICAgICAgICAgICAgICAgdmlkZW9SZW5kZXJlci5zZXRUcmFjayh0cmFjayk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRoaXMudmlkZW9SZW5kZXJlciA9IHZpZGVvUmVuZGVyZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAodmlkZW8udHlwZSA9PSAiZGF0YSIpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHsgdmlkZW9SZW5kZXJlciwgc3VwcG9ydGVkQ29kZWNzLCBlcnJvciB9ID0geWllbGQgYnVpbGRWaWRlb1BpcGVsaW5lKCJkYXRhIiwgdmlkZW9TZXR0aW5ncywgdGhpcy5sb2dnZXIpOwogICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBwaXBlbGluZUNvZGVjU3VwcG9ydCA9IHN1cHBvcnRlZENvZGVjczsKICAgICAgICAgICAgICAgIHZpZGVvUmVuZGVyZXIubW91bnQodGhpcy5kaXZFbGVtZW50KTsKICAgICAgICAgICAgICAgIHZpZGVvLmFkZFJlY2VpdmVMaXN0ZW5lcigoZGF0YSkgPT4gewogICAgICAgICAgICAgICAgICAgIHRoaXMubWFya1ZpZGVvUmVhZHkoKTsKICAgICAgICAgICAgICAgICAgICB2aWRlb1JlbmRlcmVyLnN1Ym1pdFBhY2tldChkYXRhKTsKICAgICAgICAgICAgICAgICAgICAvLyBkYXRhIHBpcGVsaW5lIHN1cHBvcnQgcmVxdWVzdGluZyBpZHJzIG92ZXIgdmlkZW8gY2hhbm5lbAogICAgICAgICAgICAgICAgICAgIGlmICh2aWRlb1JlbmRlcmVyLnBvbGxSZXF1ZXN0SWRyKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gbmV3IEJ5dGVCdWZmZXIoMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5wdXRVOCgwKTsKICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmZsaXAoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdmlkZW8uc2VuZChidWZmZXIuZ2V0UmVtYWluaW5nQnVmZmVyKCkuYnVmZmVyKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRoaXMudmlkZW9SZW5kZXJlciA9IHZpZGVvUmVuZGVyZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBGYWlsZWQgdG8gY3JlYXRlIHZpZGVvIHBpcGVsaW5lIHdpdGggdHJhbnNwb3J0IGNoYW5uZWwgb2YgdHlwZSAke3ZpZGVvLnR5cGV9ICgke3RoaXMudHJhbnNwb3J0LmltcGxlbWVudGF0aW9uTmFtZX0pYCk7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gcGlwZWxpbmVDb2RlY1N1cHBvcnQ7CiAgICAgICAgfSk7CiAgICB9CiAgICBjcmVhdGVBdWRpb1BsYXllcigpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICB2YXIgX2E7CiAgICAgICAgICAgIGlmICh0aGlzLmF1ZGlvUGxheWVyKSB7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKCJGb3VuZCBhbiBvbGQgYXVkaW8gcGxheWVyIC0+IGNsZWFuaW5nIGl0IHVwIik7CiAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvUGxheWVyLnVubW91bnQodGhpcy5kaXZFbGVtZW50KTsKICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9QbGF5ZXIuY2xlYW51cCgpOwogICAgICAgICAgICAgICAgdGhpcy5hdWRpb1BsYXllciA9IG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCF0aGlzLnRyYW5zcG9ydCkgewogICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZygiRmFpbGVkIHRvIHNldHVwIGF1ZGlvIHdpdGhvdXQgdHJhbnNwb3J0Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQuc2V0dXBIb3N0QXVkaW8oewogICAgICAgICAgICAgICAgdHlwZTogWyJhdWRpb3RyYWNrIiwgImRhdGEiXQogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3QgYXVkaW8gPSAoX2EgPSB0aGlzLnRyYW5zcG9ydCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldENoYW5uZWwoVHJhbnNwb3J0Q2hhbm5lbElkLkhPU1RfQVVESU8pOwogICAgICAgICAgICBpZiAoYXVkaW8udHlwZSA9PSAiYXVkaW90cmFjayIpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHsgYXVkaW9QbGF5ZXIsIGVycm9yIH0gPSB5aWVsZCBidWlsZEF1ZGlvUGlwZWxpbmUoImF1ZGlvdHJhY2siLCB0aGlzLnNldHRpbmdzLCB0aGlzLmxvZ2dlcik7CiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhdWRpb1BsYXllci5tb3VudCh0aGlzLmRpdkVsZW1lbnQpOwogICAgICAgICAgICAgICAgYXVkaW8uYWRkVHJhY2tMaXN0ZW5lcigodHJhY2spID0+IGF1ZGlvUGxheWVyLnNldFRyYWNrKHRyYWNrKSk7CiAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvUGxheWVyID0gYXVkaW9QbGF5ZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoYXVkaW8udHlwZSA9PSAiZGF0YSIpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHsgYXVkaW9QbGF5ZXIsIGVycm9yIH0gPSB5aWVsZCBidWlsZEF1ZGlvUGlwZWxpbmUoImRhdGEiLCB0aGlzLnNldHRpbmdzLCB0aGlzLmxvZ2dlcik7CiAgICAgICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhdWRpb1BsYXllci5tb3VudCh0aGlzLmRpdkVsZW1lbnQpOwogICAgICAgICAgICAgICAgYXVkaW8uYWRkUmVjZWl2ZUxpc3RlbmVyKChkYXRhKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgYXVkaW9QbGF5ZXIuc3VibWl0UGFja2V0KGRhdGEpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvUGxheWVyID0gYXVkaW9QbGF5ZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBDYW5ub3QgZmluZCBhdWRpbyBwaXBlbGluZSBmb3IgdHJhbnNwb3J0IHR5cGUgIiR7YXVkaW8udHlwZX0iYCk7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfSk7CiAgICB9CiAgICBzdGFydFN0cmVhbSh2aWRlb0NvZGVjU3VwcG9ydCkgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIHZhciBfYTsKICAgICAgICAgICAgaWYgKHRoaXMuc3RvcHBpbmcpCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGNvbnN0IHNldHRpbmdzID0gewogICAgICAgICAgICAgICAgYml0cmF0ZV9rYnBzOiB0aGlzLnNldHRpbmdzLmJpdHJhdGUsCiAgICAgICAgICAgICAgICBmcHM6IHRoaXMuc2V0dGluZ3MuZnBzLAogICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMuc3RyZWFtZXJTaXplWzBdLAogICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLnN0cmVhbWVyU2l6ZVsxXSwKICAgICAgICAgICAgICAgIHBsYXlfYXVkaW9fbG9jYWw6IHRoaXMuc2V0dGluZ3MucGxheUF1ZGlvTG9jYWwsCiAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfY29kZWNzOiBjcmVhdGVTdXBwb3J0ZWRWaWRlb0Zvcm1hdHNCaXRzKHZpZGVvQ29kZWNTdXBwb3J0KSwKICAgICAgICAgICAgICAgIGhkcjogKF9hID0gdGhpcy5zZXR0aW5ncy5oZHIpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGZhbHNlLAogICAgICAgICAgICB9OwogICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gewogICAgICAgICAgICAgICAgU3RhcnRTdHJlYW06IHsKICAgICAgICAgICAgICAgICAgICBzZXR0aW5ncwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBTdGFydGluZyBzdHJlYW0gd2l0aCBpbmZvOiAke0pTT04uc3RyaW5naWZ5KG1lc3NhZ2UpfWApOwogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBTdHJlYW0gdmlkZW8gY29kZWMgaW5mbzogJHtKU09OLnN0cmluZ2lmeSh2aWRlb0NvZGVjU3VwcG9ydCl9YCk7CiAgICAgICAgICAgIC8vIExvZyBIRFIgcmVxdWlyZW1lbnRzIGlmIEhEUiBpcyByZXF1ZXN0ZWQKICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuaGRyKSB7CiAgICAgICAgICAgICAgICBjb25zdCBoYXNIZHJDb2RlYyA9IHZpZGVvQ29kZWNTdXBwb3J0LkgyNjVfTUFJTjEwIHx8IHZpZGVvQ29kZWNTdXBwb3J0LkFWMV9NQUlOMTA7CiAgICAgICAgICAgICAgICBpZiAoIWhhc0hkckNvZGVjKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgV2FybmluZzogSERSIHJlcXVlc3RlZCBidXQgbm8gMTAtYml0IGNvZGVjIGF2YWlsYWJsZS4gSERSIHJlcXVpcmVzIEgyNjVfTUFJTjEwIG9yIEFWMV9NQUlOMTAgc3VwcG9ydC5gKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYEhEUiBjb2RlYyBhdmFpbGFibGU6IEgyNjVfTUFJTjEwPSR7dmlkZW9Db2RlY1N1cHBvcnQuSDI2NV9NQUlOMTB9LCBBVjFfTUFJTjEwPSR7dmlkZW9Db2RlY1N1cHBvcnQuQVYxX01BSU4xMH1gKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLnNlbmRXc01lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgfSk7CiAgICB9CiAgICBtb3VudChwYXJlbnQpIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5kaXZFbGVtZW50KTsKICAgIH0KICAgIHVubW91bnQocGFyZW50KSB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMuZGl2RWxlbWVudCk7CiAgICB9CiAgICBnZXRWaWRlb1JlbmRlcmVyKCkgewogICAgICAgIHJldHVybiB0aGlzLnZpZGVvUmVuZGVyZXI7CiAgICB9CiAgICBnZXRBdWRpb1BsYXllcigpIHsKICAgICAgICByZXR1cm4gdGhpcy5hdWRpb1BsYXllcjsKICAgIH0KICAgIG9uV3NPcGVuKCkgewogICAgICAgIHRoaXMuZGVidWdMb2coYFdlYiBTb2NrZXQgT3BlbmApOwogICAgICAgIGZvciAoY29uc3QgcmF3IG9mIHRoaXMud3NTZW5kQnVmZmVyLnNwbGljZSgwKSkgewogICAgICAgICAgICB0aGlzLndzLnNlbmQocmF3KTsKICAgICAgICB9CiAgICB9CiAgICBvbldzQ2xvc2UoKSB7CiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgV2ViIFNvY2tldCBDbG9zZWRgKTsKICAgIH0KICAgIG9uRXJyb3IoZXZlbnQpIHsKICAgICAgICB0aGlzLmRlYnVnTG9nKGBXZWIgU29ja2V0IG9yIFdlYlJ0Y1BlZXIgRXJyb3JgKTsKICAgICAgICBjb25zb2xlLmVycm9yKGBXZWIgU29ja2V0IG9yIFdlYlJ0Y1BlZXIgRXJyb3JgLCBldmVudCk7CiAgICB9CiAgICBzZW5kV3NNZXNzYWdlKG1lc3NhZ2UpIHsKICAgICAgICBjb25zdCByYXcgPSBKU09OLnN0cmluZ2lmeShtZXNzYWdlKTsKICAgICAgICBpZiAodGhpcy53cy5yZWFkeVN0YXRlID09IFdlYlNvY2tldC5PUEVOKSB7CiAgICAgICAgICAgIHRoaXMud3Muc2VuZChyYXcpOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgdGhpcy53c1NlbmRCdWZmZXIucHVzaChyYXcpOwogICAgICAgIH0KICAgIH0KICAgIG9uUmF3V3NNZXNzYWdlKGV2ZW50KSB7CiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGV2ZW50LmRhdGE7CiAgICAgICAgaWYgKHR5cGVvZiBtZXNzYWdlID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKG1lc3NhZ2UpOwogICAgICAgICAgICB0aGlzLm9uTWVzc2FnZShqc29uKTsKICAgICAgICB9CiAgICB9CiAgICBzdG9wKCkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgaWYgKHRoaXMuc3RvcHBpbmcpCiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpOwogICAgICAgIHRoaXMuc3RvcHBpbmcgPSB0cnVlOwogICAgICAgIGNvbnN0IHNlbnQgPSB0aGlzLnNlbmRHZW5lcmFsTWVzc2FnZSgiU3RvcCIpOwogICAgICAgIChfYSA9IHRoaXMuY2FuY2VsVHJhbnNwb3J0QXR0ZW1wdCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwodGhpcyk7CiAgICAgICAgdm9pZCAoKF9iID0gdGhpcy50cmFuc3BvcnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jbG9zZSgpKTsKICAgICAgICB0aGlzLnN0YXRzLnNldEVuYWJsZWQoZmFsc2UpOwogICAgICAgIC8vIFdhaXQgZm9yIHRoZSBtZXNzYWdlIHRvIGdldCBzZW50CiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7CiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcmVzb2x2ZShzZW50KSwgMTAwKTsKICAgICAgICB9KTsKICAgIH0KICAgIC8vIC0tIENsYXNzIEFwaQogICAgYWRkSW5mb0xpc3RlbmVyKGxpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5ldmVudFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJzdHJlYW0taW5mbyIsIGxpc3RlbmVyKTsKICAgIH0KICAgIHJlbW92ZUluZm9MaXN0ZW5lcihsaXN0ZW5lcikgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RyZWFtLWluZm8iLCBsaXN0ZW5lcik7CiAgICB9CiAgICBnZXRJbnB1dCgpIHsKICAgICAgICByZXR1cm4gdGhpcy5pbnB1dDsKICAgIH0KICAgIGdldFN0YXRzKCkgewogICAgICAgIHJldHVybiB0aGlzLnN0YXRzOwogICAgfQogICAgZ2V0U3RyZWFtZXJTaXplKCkgewogICAgICAgIHJldHVybiB0aGlzLnN0cmVhbWVyU2l6ZTsKICAgIH0KfQpmdW5jdGlvbiBjcmVhdGVQcmV0dHlMaXN0KGxpc3QpIHsKICAgIHJldHVybiBgWyR7bGlzdC5qb2luKCIsICIpfV1gOwp9Cg=="},{"path":"PCREMOTE-REVIEWED-JS/stream/stats.js","sha256":"80ba07ed164261f0f1bf89af1d28acd78fb62f8d14d666e35b7ab7b4fbf0f674","contentBase64":"dmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7CiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0KICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH0KICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9CiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH0KICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7CiAgICB9KTsKfTsKaW1wb3J0IHsgVHJhbnNwb3J0Q2hhbm5lbElkIH0gZnJvbSAiLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgQklHX0JVRkZFUiB9IGZyb20gIi4vYnVmZmVyLmpzIjsKZnVuY3Rpb24gbnVtKHZhbHVlLCBzdWZmaXgpIHsKICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gYCR7dmFsdWUudG9GaXhlZCgyKX0ke3N1ZmZpeCAhPT0gbnVsbCAmJiBzdWZmaXggIT09IHZvaWQgMCA/IHN1ZmZpeCA6ICIifWA7CiAgICB9Cn0KZXhwb3J0IGZ1bmN0aW9uIHN0cmVhbVN0YXRzVG9UZXh0KHN0YXRzRGF0YSkgewogICAgbGV0IHRleHQgPSBgc3RhdHM6CnZpZGVvIGluZm9ybWF0aW9uOiAke3N0YXRzRGF0YS52aWRlb0NvZGVjfSwgJHtzdGF0c0RhdGEudmlkZW9XaWR0aH14JHtzdGF0c0RhdGEudmlkZW9IZWlnaHR9LCAke3N0YXRzRGF0YS52aWRlb0Zwc30gZnBzCkhEUjogJHtzdGF0c0RhdGEuaGRyRW5hYmxlZCA9PT0gdHJ1ZSA/ICJFbmFibGVkIiA6IHN0YXRzRGF0YS5oZHJFbmFibGVkID09PSBmYWxzZSA/ICJEaXNhYmxlZCIgOiAiVW5rbm93biJ9CnZpZGVvIHBpcGVsaW5lOiAke3N0YXRzRGF0YS52aWRlb1BpcGVsaW5lfQphdWRpbyBwaXBlbGluZTogJHtzdGF0c0RhdGEuYXVkaW9QaXBlbGluZX0Kc3RyZWFtZXIgcm91bmQgdHJpcCB0aW1lOiAke251bShzdGF0c0RhdGEuc3RyZWFtZXJSdHRNcywgIm1zIil9ICh2YXJpYW5jZTogJHtudW0oc3RhdHNEYXRhLnN0cmVhbWVyUnR0VmFyaWFuY2VNcywgIm1zIil9KQpob3N0IHByb2Nlc3NpbmcgbGF0ZW5jeSBtaW4vbWF4L2F2ZzogJHtudW0oc3RhdHNEYXRhLm1pbkhvc3RQcm9jZXNzaW5nTGF0ZW5jeU1zLCAibXMiKX0gLyAke251bShzdGF0c0RhdGEubWF4SG9zdFByb2Nlc3NpbmdMYXRlbmN5TXMsICJtcyIpfSAvICR7bnVtKHN0YXRzRGF0YS5hdmdIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNcywgIm1zIil9CnN0cmVhbWVyIHByb2Nlc3NpbmcgbGF0ZW5jeSBtaW4vbWF4L2F2ZzogJHtudW0oc3RhdHNEYXRhLm1pblN0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNcywgIm1zIil9IC8gJHtudW0oc3RhdHNEYXRhLm1heFN0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNcywgIm1zIil9IC8gJHtudW0oc3RhdHNEYXRhLmF2Z1N0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNcywgIm1zIil9CnN0cmVhbWVyIHRvIGJyb3dzZXIgcnR0ICh3cyBvbmx5KTogJHtudW0oc3RhdHNEYXRhLmJyb3dzZXJSdHQsICJtcyIpfQpgOwogICAgZm9yIChjb25zdCBrZXkgaW4gc3RhdHNEYXRhLnRyYW5zcG9ydCkgewogICAgICAgIGNvbnN0IHZhbHVlID0gc3RhdHNEYXRhLnRyYW5zcG9ydFtrZXldOwogICAgICAgIGxldCB2YWx1ZVByZXR0eSA9IHZhbHVlOwogICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT0gIm51bWJlciIgJiYga2V5LmVuZHNXaXRoKCJNcyIpKSB7CiAgICAgICAgICAgIHZhbHVlUHJldHR5ID0gYCR7bnVtKHZhbHVlLCAibXMiKX1gOwogICAgICAgIH0KICAgICAgICB0ZXh0ICs9IGAke2tleX06ICR7dmFsdWVQcmV0dHl9XG5gOwogICAgfQogICAgZm9yIChjb25zdCBrZXkgaW4gc3RhdHNEYXRhLnZpZGVvKSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSBzdGF0c0RhdGEudmlkZW9ba2V5XTsKICAgICAgICBsZXQgdmFsdWVQcmV0dHkgPSB2YWx1ZTsKICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09ICJudW1iZXIiICYmIGtleS5lbmRzV2l0aCgiTXMiKSkgewogICAgICAgICAgICB2YWx1ZVByZXR0eSA9IGAke251bSh2YWx1ZSwgIm1zIil9YDsKICAgICAgICB9CiAgICAgICAgdGV4dCArPSBgJHtrZXl9OiAke3ZhbHVlUHJldHR5fVxuYDsKICAgIH0KICAgIGZvciAoY29uc3Qga2V5IGluIHN0YXRzRGF0YS5hdWRpbykgewogICAgICAgIGNvbnN0IHZhbHVlID0gc3RhdHNEYXRhLmF1ZGlvW2tleV07CiAgICAgICAgbGV0IHZhbHVlUHJldHR5ID0gdmFsdWU7CiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAibnVtYmVyIiAmJiBrZXkuZW5kc1dpdGgoIk1zIikpIHsKICAgICAgICAgICAgdmFsdWVQcmV0dHkgPSBgJHtudW0odmFsdWUsICJtcyIpfWA7CiAgICAgICAgfQogICAgICAgIHRleHQgKz0gYCR7a2V5fTogJHt2YWx1ZVByZXR0eX1cbmA7CiAgICB9CiAgICByZXR1cm4gdGV4dDsKfQovLyBLZWVwIHRoaXMgZXhwbGljaXQ6IHRyYW5zcG9ydCBkaWFnbm9zdGljcyBtdXN0IG5ldmVyIGNhcnJ5IElDRSBhZGRyZXNzZXMsCi8vIFNEUCwgY3JlZGVudGlhbHMsIHJhdyBlcnJvcnMsIG9yIGFyYml0cmFyeSBzdHJpbmdzIGludG8gZXhwb3J0ZWQgc25hcHNob3RzLgpleHBvcnQgZnVuY3Rpb24gc2FuaXRpemVEaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyhpbnB1dCkgewogICAgaWYgKCFpbnB1dCB8fCB0eXBlb2YgaW5wdXQgIT09ICJvYmplY3QiKQogICAgICAgIHJldHVybiBudWxsOwogICAgY29uc3QgdmFsdWUgPSBpbnB1dDsKICAgIGlmICh0eXBlb2YgdmFsdWUub3V0Y29tZSAhPT0gInN0cmluZyIgfHwgIVsidW5hdmFpbGFibGUiLCAiYXR0ZW1wdGluZyIsICJjb25uZWN0ZWQiLCAidGltZWQtb3V0IiwgImZhaWxlZCIsICJjYW5jZWxsZWQiXS5pbmNsdWRlcyh2YWx1ZS5vdXRjb21lKSkKICAgICAgICByZXR1cm4gbnVsbDsKICAgIGNvbnN0IHJlc3VsdCA9IHsgb3V0Y29tZTogdmFsdWUub3V0Y29tZSwgZmFsbGJhY2s6IHZhbHVlLmZhbGxiYWNrID09PSB0cnVlIH07CiAgICBpZiAodHlwZW9mIHZhbHVlLnJlYXNvbiA9PT0gInN0cmluZyIgJiYgWyJub3QtZW5hYmxlZCIsICJzZXR1cC1taXNzaW5nIiwgIm5lZ290aWF0aW9uLXRpbWVvdXQiLCAibmVnb3RpYXRpb24tZmFpbGVkIiwgInNldHVwLWZhaWxlZCIsICJ2aWRlby11bmF2YWlsYWJsZSIsICJjb25uZWN0aW9uLWxvc3QiLCAic3RvcHBlZCJdLmluY2x1ZGVzKHZhbHVlLnJlYXNvbikpCiAgICAgICAgcmVzdWx0LnJlYXNvbiA9IHZhbHVlLnJlYXNvbjsKICAgIGlmICh0eXBlb2YgdmFsdWUuZWxhcHNlZE1zID09PSAibnVtYmVyIiAmJiBOdW1iZXIuaXNGaW5pdGUodmFsdWUuZWxhcHNlZE1zKSAmJiB2YWx1ZS5lbGFwc2VkTXMgPj0gMCAmJiB2YWx1ZS5lbGFwc2VkTXMgPD0gNjAwMDApCiAgICAgICAgcmVzdWx0LmVsYXBzZWRNcyA9IE1hdGgucm91bmQodmFsdWUuZWxhcHNlZE1zKTsKICAgIGlmICh0eXBlb2YgdmFsdWUuaWNlU3RhdGUgPT09ICJzdHJpbmciICYmIFsibmV3IiwgImNoZWNraW5nIiwgImNvbm5lY3RlZCIsICJjb21wbGV0ZWQiLCAiZGlzY29ubmVjdGVkIiwgImZhaWxlZCIsICJjbG9zZWQiXS5pbmNsdWRlcyh2YWx1ZS5pY2VTdGF0ZSkpCiAgICAgICAgcmVzdWx0LmljZVN0YXRlID0gdmFsdWUuaWNlU3RhdGU7CiAgICBpZiAodHlwZW9mIHZhbHVlLmdhdGhlcmluZ1N0YXRlID09PSAic3RyaW5nIiAmJiBbIm5ldyIsICJnYXRoZXJpbmciLCAiY29tcGxldGUiXS5pbmNsdWRlcyh2YWx1ZS5nYXRoZXJpbmdTdGF0ZSkpCiAgICAgICAgcmVzdWx0LmdhdGhlcmluZ1N0YXRlID0gdmFsdWUuZ2F0aGVyaW5nU3RhdGU7CiAgICBmb3IgKGNvbnN0IHNpZGUgb2YgWyJsb2NhbENhbmRpZGF0ZXMiLCAicmVtb3RlQ2FuZGlkYXRlcyJdKSB7CiAgICAgICAgY29uc3Qgc291cmNlID0gdmFsdWVbc2lkZV07CiAgICAgICAgaWYgKCFzb3VyY2UgfHwgdHlwZW9mIHNvdXJjZSAhPT0gIm9iamVjdCIpCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIGNvbnN0IGNvdW50cyA9IHt9OwogICAgICAgIGZvciAoY29uc3QgdHlwZSBvZiBbImhvc3QiLCAic3JmbHgiLCAicHJmbHgiLCAicmVsYXkiXSkgewogICAgICAgICAgICBjb25zdCBjb3VudCA9IHNvdXJjZVt0eXBlXTsKICAgICAgICAgICAgaWYgKHR5cGVvZiBjb3VudCA9PT0gIm51bWJlciIgJiYgTnVtYmVyLmlzSW50ZWdlcihjb3VudCkgJiYgY291bnQgPj0gMCAmJiBjb3VudCA8PSAxMDAwKQogICAgICAgICAgICAgICAgY291bnRzW3R5cGVdID0gY291bnQ7CiAgICAgICAgfQogICAgICAgIGlmIChPYmplY3Qua2V5cyhjb3VudHMpLmxlbmd0aCkKICAgICAgICAgICAgcmVzdWx0W3NpZGVdID0gY291bnRzOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQpleHBvcnQgY2xhc3MgU3RyZWFtU3RhdHMgewogICAgY29uc3RydWN0b3IobG9nZ2VyKSB7CiAgICAgICAgdGhpcy5sb2dnZXIgPSBudWxsOwogICAgICAgIHRoaXMuZW5hYmxlZCA9IGZhbHNlOwogICAgICAgIHRoaXMudHJhbnNwb3J0ID0gbnVsbDsKICAgICAgICB0aGlzLnN0YXRzQ2hhbm5lbCA9IG51bGw7CiAgICAgICAgdGhpcy51cGRhdGVJbnRlcnZhbElkID0gbnVsbDsKICAgICAgICB0aGlzLm9uUmF3RGF0YUJvdW5kID0gdGhpcy5vblJhd0RhdGEuYmluZCh0aGlzKTsKICAgICAgICB0aGlzLnZpZGVvUGlwZSA9IG51bGw7CiAgICAgICAgdGhpcy5hdWRpb1BpcGUgPSBudWxsOwogICAgICAgIHRoaXMuZGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMgPSBudWxsOwogICAgICAgIHRoaXMuc3RhdHNEYXRhID0gewogICAgICAgICAgICB2aWRlb0NvZGVjOiBudWxsLAogICAgICAgICAgICB2aWRlb1dpZHRoOiBudWxsLAogICAgICAgICAgICB2aWRlb0hlaWdodDogbnVsbCwKICAgICAgICAgICAgdmlkZW9GcHM6IG51bGwsCiAgICAgICAgICAgIHZpZGVvUGlwZWxpbmU6IG51bGwsCiAgICAgICAgICAgIGF1ZGlvUGlwZWxpbmU6IG51bGwsCiAgICAgICAgICAgIGhkckVuYWJsZWQ6IG51bGwsCiAgICAgICAgICAgIHN0cmVhbWVyUnR0TXM6IG51bGwsCiAgICAgICAgICAgIHN0cmVhbWVyUnR0VmFyaWFuY2VNczogbnVsbCwKICAgICAgICAgICAgbWluSG9zdFByb2Nlc3NpbmdMYXRlbmN5TXM6IG51bGwsCiAgICAgICAgICAgIG1heEhvc3RQcm9jZXNzaW5nTGF0ZW5jeU1zOiBudWxsLAogICAgICAgICAgICBhdmdIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNczogbnVsbCwKICAgICAgICAgICAgbWluU3RyZWFtZXJQcm9jZXNzaW5nVGltZU1zOiBudWxsLAogICAgICAgICAgICBtYXhTdHJlYW1lclByb2Nlc3NpbmdUaW1lTXM6IG51bGwsCiAgICAgICAgICAgIGF2Z1N0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNczogbnVsbCwKICAgICAgICAgICAgYnJvd3NlclJ0dDogbnVsbCwKICAgICAgICAgICAgdHJhbnNwb3J0OiB7fSwKICAgICAgICAgICAgdmlkZW86IHt9LAogICAgICAgICAgICBhdWRpbzoge30KICAgICAgICB9OwogICAgICAgIHRoaXMuYnVmZmVyID0gQklHX0JVRkZFUjsKICAgICAgICBpZiAobG9nZ2VyKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyOwogICAgICAgIH0KICAgIH0KICAgIHNldFRyYW5zcG9ydCh0cmFuc3BvcnQpIHsKICAgICAgICB0aGlzLnRyYW5zcG9ydCA9IHRyYW5zcG9ydDsKICAgICAgICB0aGlzLnN0YXRzRGF0YS50cmFuc3BvcnQgPSB7IGtpbmQ6IHRyYW5zcG9ydC5pbXBsZW1lbnRhdGlvbk5hbWUgfTsKICAgICAgICB0aGlzLmF0dGFjaERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKCk7CiAgICAgICAgdGhpcy5zdGF0c0RhdGEuYnJvd3NlclJ0dCA9IG51bGw7CiAgICAgICAgdGhpcy5jaGVja0VuYWJsZWQoKTsKICAgIH0KICAgIHNldERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKHZhbHVlKSB7CiAgICAgICAgdGhpcy5kaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyA9IHNhbml0aXplRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWModmFsdWUpOwogICAgICAgIHRoaXMuYXR0YWNoRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMoKTsKICAgIH0KICAgIGF0dGFjaERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKCkgewogICAgICAgIC8vIEtlZXAgaW50ZXJuYWwgZGlhZ25vc3RpY3Mgc2VwYXJhdGUgZnJvbSB0aGUgY29uc3VtZXItdmlzaWJsZSBzbmFwc2hvdC4KICAgICAgICBkZWxldGUgdGhpcy5zdGF0c0RhdGEudHJhbnNwb3J0LmRpcmVjdENvbm5lY3Rpb247CiAgICAgICAgaWYgKHRoaXMuZGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMpCiAgICAgICAgICAgIHRoaXMuc3RhdHNEYXRhLnRyYW5zcG9ydC5kaXJlY3RDb25uZWN0aW9uID0gc2FuaXRpemVEaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyh0aGlzLmRpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKTsKICAgIH0KICAgIGNoZWNrRW5hYmxlZCgpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKHRoaXMuc3RhdHNDaGFubmVsKSB7CiAgICAgICAgICAgIHRoaXMuc3RhdHNDaGFubmVsLnJlbW92ZVJlY2VpdmVMaXN0ZW5lcih0aGlzLm9uUmF3RGF0YUJvdW5kKTsKICAgICAgICAgICAgdGhpcy5zdGF0c0NoYW5uZWwgPSBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5lbmFibGVkKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5zdGF0c0NoYW5uZWwgJiYgdGhpcy50cmFuc3BvcnQpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5uZWwgPSB0aGlzLnRyYW5zcG9ydC5nZXRDaGFubmVsKFRyYW5zcG9ydENoYW5uZWxJZC5TVEFUUyk7CiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbC50eXBlICE9ICJkYXRhIikgewogICAgICAgICAgICAgICAgICAgIChfYSA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGVidWcoYEZhaWxlZCBpbml0aWFsaXplIGRlYnVnIHRyYW5zcG9ydCBjaGFubmVsIGJlY2F1c2UgdHlwZSBpcyAiJHtjaGFubmVsLnR5cGV9IiBhbmQgbm90ICJkYXRhImApOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNoYW5uZWwuYWRkUmVjZWl2ZUxpc3RlbmVyKHRoaXMub25SYXdEYXRhQm91bmQpOwogICAgICAgICAgICAgICAgdGhpcy5zdGF0c0NoYW5uZWwgPSBjaGFubmVsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZUludGVydmFsSWQgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwodGhpcy51cGRhdGVMb2NhbFN0YXRzLmJpbmQodGhpcyksIDEwMDApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAodGhpcy51cGRhdGVJbnRlcnZhbElkICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVJbnRlcnZhbElkKTsKICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSW50ZXJ2YWxJZCA9IG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBzZXRFbmFibGVkKGVuYWJsZWQpIHsKICAgICAgICB0aGlzLmVuYWJsZWQgPSBlbmFibGVkOwogICAgICAgIHRoaXMuY2hlY2tFbmFibGVkKCk7CiAgICB9CiAgICBpc0VuYWJsZWQoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuZW5hYmxlZDsKICAgIH0KICAgIHRvZ2dsZSgpIHsKICAgICAgICB0aGlzLnNldEVuYWJsZWQoIXRoaXMuaXNFbmFibGVkKCkpOwogICAgfQogICAgb25SYXdEYXRhKGRhdGEpIHsKICAgICAgICB0aGlzLmJ1ZmZlci5yZXNldCgpOwogICAgICAgIHRoaXMuYnVmZmVyLnB1dFU4QXJyYXkobmV3IFVpbnQ4QXJyYXkoZGF0YSkpOwogICAgICAgIHRoaXMuYnVmZmVyLmZsaXAoKTsKICAgICAgICBjb25zdCB0ZXh0TGVuZ3RoID0gdGhpcy5idWZmZXIuZ2V0VTE2KCk7CiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuYnVmZmVyLmdldFV0ZjhSYXcodGV4dExlbmd0aCk7CiAgICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UodGV4dCk7CiAgICAgICAgdGhpcy5vbk1lc3NhZ2UoanNvbik7CiAgICB9CiAgICBvbk1lc3NhZ2UobXNnKSB7CiAgICAgICAgaWYgKCJSdHQiIGluIG1zZykgewogICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5zdHJlYW1lclJ0dE1zID0gbXNnLlJ0dC5ydHRfbXM7CiAgICAgICAgICAgIHRoaXMuc3RhdHNEYXRhLnN0cmVhbWVyUnR0VmFyaWFuY2VNcyA9IG1zZy5SdHQucnR0X3ZhcmlhbmNlX21zOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICgiVmlkZW8iIGluIG1zZykgewogICAgICAgICAgICBpZiAobXNnLlZpZGVvLmhvc3RfcHJvY2Vzc2luZ19sYXRlbmN5KSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5taW5Ib3N0UHJvY2Vzc2luZ0xhdGVuY3lNcyA9IG1zZy5WaWRlby5ob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeS5taW5faG9zdF9wcm9jZXNzaW5nX2xhdGVuY3lfbXM7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5tYXhIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNcyA9IG1zZy5WaWRlby5ob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeS5tYXhfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3lfbXM7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5hdmdIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNcyA9IG1zZy5WaWRlby5ob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeS5hdmdfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3lfbXM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5taW5Ib3N0UHJvY2Vzc2luZ0xhdGVuY3lNcyA9IG51bGw7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5tYXhIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNcyA9IG51bGw7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5hdmdIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNcyA9IG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5zdGF0c0RhdGEubWluU3RyZWFtZXJQcm9jZXNzaW5nVGltZU1zID0gbXNnLlZpZGVvLm1pbl9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWVfbXM7CiAgICAgICAgICAgIHRoaXMuc3RhdHNEYXRhLm1heFN0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNcyA9IG1zZy5WaWRlby5tYXhfc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lX21zOwogICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5hdmdTdHJlYW1lclByb2Nlc3NpbmdUaW1lTXMgPSBtc2cuVmlkZW8uYXZnX3N0cmVhbWVyX3Byb2Nlc3NpbmdfdGltZV9tczsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoIkJyb3dzZXJSdHQiIGluIG1zZykgewogICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5icm93c2VyUnR0ID0gbXNnLkJyb3dzZXJSdHQucnR0X21zOwogICAgICAgIH0KICAgIH0KICAgIHVwZGF0ZUxvY2FsU3RhdHMoKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgUHJvbWlzZS5hbGwoWwogICAgICAgICAgICAgICAgdGhpcy51cGRhdGVUcmFuc3BvcnRTdGF0cygpLAogICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWaWRlb1N0YXRzKCksCiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUF1ZGlvU3RhdHMoKSwKICAgICAgICAgICAgXSk7CiAgICAgICAgfSk7CiAgICB9CiAgICB1cGRhdGVUcmFuc3BvcnRTdGF0cygpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0KSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCJDYW5ub3QgcXVlcnkgc3RhdHMgd2l0aG91dCB0cmFuc3BvcnQiKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBjb25zdCB0cmFuc3BvcnQgPSB0aGlzLnRyYW5zcG9ydDsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRzID0geWllbGQgdHJhbnNwb3J0LmdldFN0YXRzKCk7CiAgICAgICAgICAgICAgICBpZiAodGhpcy50cmFuc3BvcnQgPT09IHRyYW5zcG9ydCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdHNEYXRhLnRyYW5zcG9ydCA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3RhdHMpLCB7IGtpbmQ6IHRyYW5zcG9ydC5pbXBsZW1lbnRhdGlvbk5hbWUgfSk7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdHRhY2hEaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYygpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGNhdGNoICggLyogQSBjbG9zaW5nIHBlZXIgY2FuIHJlamVjdCBhIHBlbmRpbmcgc3RhdHMgcmVxdWVzdC4gKi9fYSkgeyAvKiBBIGNsb3NpbmcgcGVlciBjYW4gcmVqZWN0IGEgcGVuZGluZyBzdGF0cyByZXF1ZXN0LiAqLyB9CiAgICAgICAgfSk7CiAgICB9CiAgICB1cGRhdGVWaWRlb1N0YXRzKCkgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0ge307CiAgICAgICAgICAgIGlmICh0aGlzLnZpZGVvUGlwZSAmJiB0aGlzLnZpZGVvUGlwZS5yZXBvcnRTdGF0cykgewogICAgICAgICAgICAgICAgdGhpcy52aWRlb1BpcGUucmVwb3J0U3RhdHMoc3RhdHMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuc3RhdHNEYXRhLnZpZGVvID0gc3RhdHM7CiAgICAgICAgfSk7CiAgICB9CiAgICB1cGRhdGVBdWRpb1N0YXRzKCkgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0ge307CiAgICAgICAgICAgIGlmICh0aGlzLmF1ZGlvUGlwZSAmJiB0aGlzLmF1ZGlvUGlwZS5yZXBvcnRTdGF0cykgewogICAgICAgICAgICAgICAgdGhpcy5hdWRpb1BpcGUucmVwb3J0U3RhdHMoc3RhdHMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuc3RhdHNEYXRhLmF1ZGlvID0gc3RhdHM7CiAgICAgICAgfSk7CiAgICB9CiAgICBzZXRWaWRlb0luZm8oY29kZWMsIHdpZHRoLCBoZWlnaHQsIGZwcykgewogICAgICAgIHRoaXMuc3RhdHNEYXRhLnZpZGVvQ29kZWMgPSBjb2RlYzsKICAgICAgICB0aGlzLnN0YXRzRGF0YS52aWRlb1dpZHRoID0gd2lkdGg7CiAgICAgICAgdGhpcy5zdGF0c0RhdGEudmlkZW9IZWlnaHQgPSBoZWlnaHQ7CiAgICAgICAgdGhpcy5zdGF0c0RhdGEudmlkZW9GcHMgPSBmcHM7CiAgICB9CiAgICBzZXRWaWRlb1BpcGVsaW5lKG5hbWUsIHBpcGUpIHsKICAgICAgICB0aGlzLnN0YXRzRGF0YS52aWRlb1BpcGVsaW5lID0gbmFtZTsKICAgICAgICB0aGlzLnZpZGVvUGlwZSA9IHBpcGU7CiAgICB9CiAgICBzZXRBdWRpb1BpcGVsaW5lKG5hbWUsIHBpcGUpIHsKICAgICAgICB0aGlzLnN0YXRzRGF0YS5hdWRpb1BpcGVsaW5lID0gbmFtZTsKICAgICAgICB0aGlzLmF1ZGlvUGlwZSA9IHBpcGU7CiAgICB9CiAgICBzZXRIZHJFbmFibGVkKGVuYWJsZWQpIHsKICAgICAgICB0aGlzLnN0YXRzRGF0YS5oZHJFbmFibGVkID0gZW5hYmxlZDsKICAgIH0KICAgIGdldEN1cnJlbnRTdGF0cygpIHsKICAgICAgICBjb25zdCBkYXRhID0ge307CiAgICAgICAgT2JqZWN0LmFzc2lnbihkYXRhLCB0aGlzLnN0YXRzRGF0YSk7CiAgICAgICAgcmV0dXJuIGRhdGE7CiAgICB9Cn0K"},{"path":"PCREMOTE-REVIEWED-JS/stream/transport/webrtc.js","sha256":"41fc84156ba353799fbe40689bad7a8f08b7a3cf41db3d3a468b4069605477a3","contentBase64":"dmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7CiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0KICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH0KICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9CiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH0KICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7CiAgICB9KTsKfTsKaW1wb3J0IHsgVHJhbnNwb3J0Q2hhbm5lbElkIH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgQ0FQQUJJTElUSUVTX0NPREVDUywgZW1wdHlWaWRlb0NvZGVjcywgbWF5YmVWaWRlb0NvZGVjcyB9IGZyb20gIi4uL3ZpZGVvLmpzIjsKY29uc3QgTUFYX1BFTkRJTkdfU0lHTkFMSU5HX01FU1NBR0VTID0gMjU2Owpjb25zdCBNQVhfSUNFX0NBTkRJREFURV9MRU5HVEggPSAyMDQ4OwpleHBvcnQgY2xhc3MgV2ViUlRDVHJhbnNwb3J0IHsKICAgIGNvbnN0cnVjdG9yKGxvZ2dlcikgewogICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb25OYW1lID0gIndlYnJ0YyI7CiAgICAgICAgdGhpcy5wZWVyID0gbnVsbDsKICAgICAgICB0aGlzLnZpZGVvU3RhdHNTYW1wbGVyID0gbmV3IFJ0Y1ZpZGVvU3RhdHNTYW1wbGVyKCk7CiAgICAgICAgdGhpcy5kaWFnbm9zdGljc0Nsb3NlZCA9IGZhbHNlOwogICAgICAgIHRoaXMub25kaWFnbm9zdGljcyA9IG51bGw7CiAgICAgICAgdGhpcy5sb2NhbENhbmRpZGF0ZUNvdW50cyA9IHsgaG9zdDogMCwgc3JmbHg6IDAsIHByZmx4OiAwLCByZWxheTogMCB9OwogICAgICAgIHRoaXMucmVtb3RlQ2FuZGlkYXRlQ291bnRzID0geyBob3N0OiAwLCBzcmZseDogMCwgcHJmbHg6IDAsIHJlbGF5OiAwIH07CiAgICAgICAgdGhpcy5zaWduYWxpbmdGYWlsZWQgPSBmYWxzZTsKICAgICAgICB0aGlzLnNpZ25hbGluZ01lc3NhZ2VzID0gW107CiAgICAgICAgdGhpcy5zaWduYWxpbmdEcmFpbiA9IG51bGw7CiAgICAgICAgdGhpcy5sb2NhbEljZUNhbmRpZGF0ZXMgPSBbXTsKICAgICAgICB0aGlzLnNlbnRMb2NhbERlc2NyaXB0aW9uID0gZmFsc2U7CiAgICAgICAgdGhpcy5vbnNlbmRtZXNzYWdlID0gbnVsbDsKICAgICAgICB0aGlzLmljZUNhbmRpZGF0ZXMgPSBbXTsKICAgICAgICB0aGlzLndhc0Nvbm5lY3RlZCA9IGZhbHNlOwogICAgICAgIHRoaXMuY2hhbm5lbHMgPSBbXTsKICAgICAgICB0aGlzLnZpZGVvVHJhY2tIb2xkZXIgPSB7IG9udHJhY2s6IG51bGwsIHRyYWNrOiBudWxsIH07CiAgICAgICAgdGhpcy52aWRlb1JlY2VpdmVyID0gbnVsbDsKICAgICAgICB0aGlzLmF1ZGlvVHJhY2tIb2xkZXIgPSB7IG9udHJhY2s6IG51bGwsIHRyYWNrOiBudWxsIH07CiAgICAgICAgdGhpcy5vbmNvbm5lY3QgPSBudWxsOwogICAgICAgIHRoaXMub25jbG9zZSA9IG51bGw7CiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgIT09IG51bGwgJiYgbG9nZ2VyICE9PSB2b2lkIDAgPyBsb2dnZXIgOiBudWxsOwogICAgfQogICAgaW5pdFBlZXIoY29uZmlndXJhdGlvbikgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgICAgIChfYSA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGVidWcoYENyZWF0aW5nIENsaWVudCBQZWVyYCk7CiAgICAgICAgICAgIGlmICghdGhpcy5zaWduYWxpbmdBY3RpdmUoKSB8fCB0aGlzLnBlZXIpIHsKICAgICAgICAgICAgICAgIChfYiA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZGVidWcoYENhbm5vdCBjcmVhdGUgUGVlciBiZWNhdXNlIGEgUGVlciBhbHJlYWR5IGV4aXN0c2ApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIENvbmZpZ3VyZSB3ZWIgcnRjCiAgICAgICAgICAgIC8vIFRPRE86IHVzZSB0aGlzIGZvciBzaWduYWxpbmcgaW5zdGVhZCBhbmQgZXh0ZW5kIHRoZSBwcm90b2NvbCBzbyB0aGF0IHRoZSBjbGllbnQgYWxzbyByZXF1ZXN0cyBhIGNvbnRyb2wgY2hhbm5lbCB3aXRoIG5hbWU6ICJjb250cm9sIiwgcHJvdG9jb2w6Im1vb25saWdodC1jb250cm9sLXYxIjogaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1pZXRmLXdpc2gtd2hlcC0wMi5odG1sCiAgICAgICAgICAgIHRoaXMucGVlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgdGhpcy5wZWVyLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgdGhpcy5vbkVycm9yLmJpbmQodGhpcykpOwogICAgICAgICAgICB0aGlzLnBlZXIuYWRkRXZlbnRMaXN0ZW5lcigiaWNlY2FuZGlkYXRlIiwgdGhpcy5vbkljZUNhbmRpZGF0ZS5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgdGhpcy5wZWVyLmFkZEV2ZW50TGlzdGVuZXIoImNvbm5lY3Rpb25zdGF0ZWNoYW5nZSIsIHRoaXMub25Db25uZWN0aW9uU3RhdGVDaGFuZ2UuYmluZCh0aGlzKSk7CiAgICAgICAgICAgIHRoaXMucGVlci5hZGRFdmVudExpc3RlbmVyKCJzaWduYWxpbmdzdGF0ZWNoYW5nZSIsIHRoaXMub25TaWduYWxpbmdTdGF0ZUNoYW5nZS5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgdGhpcy5wZWVyLmFkZEV2ZW50TGlzdGVuZXIoImljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSIsIHRoaXMub25JY2VDb25uZWN0aW9uU3RhdGVDaGFuZ2UuYmluZCh0aGlzKSk7CiAgICAgICAgICAgIHRoaXMucGVlci5hZGRFdmVudExpc3RlbmVyKCJpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSIsIHRoaXMub25JY2VHYXRoZXJpbmdTdGF0ZUNoYW5nZS5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgdGhpcy5wZWVyLmFkZEV2ZW50TGlzdGVuZXIoInRyYWNrIiwgdGhpcy5vblRyYWNrLmJpbmQodGhpcykpOwogICAgICAgICAgICB0aGlzLnBlZXIuYWRkRXZlbnRMaXN0ZW5lcigiZGF0YWNoYW5uZWwiLCB0aGlzLm9uRGF0YUNoYW5uZWwuYmluZCh0aGlzKSk7CiAgICAgICAgICAgIHRoaXMuaW5pdENoYW5uZWxzKCk7CiAgICAgICAgICAgIHlpZWxkIHRoaXMuZHJhaW5TaWduYWxpbmdNZXNzYWdlcygpOwogICAgICAgIH0pOwogICAgfQogICAgb25FcnJvcihldmVudCkgewogICAgICAgIHZhciBfYTsKICAgICAgICAoX2EgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRlYnVnKGBXZWIgU29ja2V0IG9yIFdlYlJ0Y1BlZXIgRXJyb3JgKTsKICAgICAgICBjb25zb2xlLmVycm9yKCJXZWIgU29ja2V0IG9yIFdlYlJ0Y1BlZXIgRXJyb3IiKTsKICAgIH0KICAgIHNlbmRNZXNzYWdlKG1lc3NhZ2UpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZSgpKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKHRoaXMub25zZW5kbWVzc2FnZSkgewogICAgICAgICAgICB0aGlzLm9uc2VuZG1lc3NhZ2UobWVzc2FnZSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAoX2EgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRlYnVnKCJGYWlsZWQgdG8gY2FsbCBvbmljZWNhbmRpZGF0ZSBiZWNhdXNlIG5vIGhhbmRsZXIgaXMgc2V0Iik7CiAgICAgICAgfQogICAgfQogICAgb25SZWNlaXZlTWVzc2FnZShtZXNzYWdlKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZSgpKQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoIkFkZEljZUNhbmRpZGF0ZSIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gbWVzc2FnZS5BZGRJY2VDYW5kaWRhdGU7CiAgICAgICAgICAgICAgICB0aGlzLmNvdW50Q2FuZGlkYXRlKHRoaXMucmVtb3RlQ2FuZGlkYXRlQ291bnRzLCBjYW5kaWRhdGUuY2FuZGlkYXRlKTsKICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FuZGlkYXRlLmNhbmRpZGF0ZSAhPT0gInN0cmluZyIgfHwgY2FuZGlkYXRlLmNhbmRpZGF0ZS5sZW5ndGggPiBNQVhfSUNFX0NBTkRJREFURV9MRU5HVEgpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmZhaWxTaWduYWxpbmcoKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCF0aGlzLnJlc2VydmVTaWduYWxpbmdNZXNzYWdlKCkpCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIHRoaXMuc2lnbmFsaW5nTWVzc2FnZXMucHVzaChtZXNzYWdlKTsKICAgICAgICAgICAgeWllbGQgdGhpcy5kcmFpblNpZ25hbGluZ01lc3NhZ2VzKCk7CiAgICAgICAgfSk7CiAgICB9CiAgICBzaWduYWxpbmdBY3RpdmUocGVlcikgewogICAgICAgIHJldHVybiAhdGhpcy5kaWFnbm9zdGljc0Nsb3NlZCAmJiAhdGhpcy5zaWduYWxpbmdGYWlsZWQgJiYgKCFwZWVyIHx8IHRoaXMucGVlciA9PT0gcGVlcik7CiAgICB9CiAgICByZXNlcnZlU2lnbmFsaW5nTWVzc2FnZSgpIHsKICAgICAgICBpZiAodGhpcy5zaWduYWxpbmdNZXNzYWdlcy5sZW5ndGggKyB0aGlzLmljZUNhbmRpZGF0ZXMubGVuZ3RoICsgdGhpcy5sb2NhbEljZUNhbmRpZGF0ZXMubGVuZ3RoIDwgTUFYX1BFTkRJTkdfU0lHTkFMSU5HX01FU1NBR0VTKQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB0aGlzLmZhaWxTaWduYWxpbmcoKTsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBmYWlsU2lnbmFsaW5nKCkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZSgpKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgdGhpcy5zaWduYWxpbmdGYWlsZWQgPSB0cnVlOwogICAgICAgIHRoaXMuc2lnbmFsaW5nTWVzc2FnZXMubGVuZ3RoID0gMDsKICAgICAgICB0aGlzLmljZUNhbmRpZGF0ZXMubGVuZ3RoID0gMDsKICAgICAgICB0aGlzLmxvY2FsSWNlQ2FuZGlkYXRlcy5sZW5ndGggPSAwOwogICAgICAgIC8vIE5ldmVyIGV4cG9zZSBjYW5kaWRhdGUgYWRkcmVzc2VzLCBTRFAgb3IgdGhlIGJyb3dzZXIncyByYXcgZXJyb3IuCiAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZygiV2ViUlRDIHNpZ25hbGluZyBmYWlsZWQiKTsKICAgICAgICAoX2IgPSB0aGlzLm9uY2xvc2UpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKHRoaXMsIHRoaXMud2FzQ29ubmVjdGVkID8gImZhaWxlZCIgOiAiZmFpbGVkbm9jb25uZWN0Iik7CiAgICB9CiAgICBkcmFpblNpZ25hbGluZ01lc3NhZ2VzKCkgewogICAgICAgIGNvbnN0IHBlZXIgPSB0aGlzLnBlZXI7CiAgICAgICAgaWYgKCFwZWVyIHx8ICF0aGlzLnNpZ25hbGluZ0FjdGl2ZShwZWVyKSkKICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlmICh0aGlzLnNpZ25hbGluZ0RyYWluKQogICAgICAgICAgICByZXR1cm4gdGhpcy5zaWduYWxpbmdEcmFpbjsKICAgICAgICAvLyBXZWJTb2NrZXQgY2FsbGJhY2tzIGRvIG5vdCBhd2FpdCBvbmUgYW5vdGhlci4gS2VlcCBkZXNjcmlwdGlvbiBhbmQKICAgICAgICAvLyBjYW5kaWRhdGUgb3BlcmF0aW9ucyBvcmRlcmVkLCBpbmNsdWRpbmcgd2hpbGUgYSBicm93c2VyIG9wZXJhdGlvbiB3YWl0cy4KICAgICAgICB0aGlzLnNpZ25hbGluZ0RyYWluID0gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICB3aGlsZSAodGhpcy5zaWduYWxpbmdBY3RpdmUocGVlcikgJiYgdGhpcy5zaWduYWxpbmdNZXNzYWdlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5zaWduYWxpbmdNZXNzYWdlcy5zaGlmdCgpOwogICAgICAgICAgICAgICAgICAgIGlmICgiRGVzY3JpcHRpb24iIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhpcy5oYW5kbGVSZW1vdGVEZXNjcmlwdGlvbih7IHR5cGU6IG1lc3NhZ2UuRGVzY3JpcHRpb24udHksIHNkcDogbWVzc2FnZS5EZXNjcmlwdGlvbi5zZHAgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCJBZGRJY2VDYW5kaWRhdGUiIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gbWVzc2FnZS5BZGRJY2VDYW5kaWRhdGU7CiAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMuYWRkSWNlQ2FuZGlkYXRlKHsgY2FuZGlkYXRlOiBjYW5kaWRhdGUuY2FuZGlkYXRlLCBzZHBNaWQ6IGNhbmRpZGF0ZS5zZHBfbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2RwTUxpbmVJbmRleDogY2FuZGlkYXRlLnNkcF9tbGluZV9pbmRleCwgdXNlcm5hbWVGcmFnbWVudDogY2FuZGlkYXRlLnVzZXJuYW1lX2ZyYWdtZW50IH0sIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY2F0Y2ggKF9hKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5zaWduYWxpbmdBY3RpdmUocGVlcikpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5mYWlsU2lnbmFsaW5nKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZmluYWxseSB7CiAgICAgICAgICAgICAgICB0aGlzLnNpZ25hbGluZ0RyYWluID0gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gdGhpcy5zaWduYWxpbmdEcmFpbjsKICAgIH0KICAgIGhhbmRsZVJlbW90ZURlc2NyaXB0aW9uKHJlbW90ZURlc2NyaXB0aW9uKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgdmFyIF9hLCBfYiwgX2M7CiAgICAgICAgICAgIGNvbnN0IHBlZXIgPSB0aGlzLnBlZXI7CiAgICAgICAgICAgIGlmICghcGVlciB8fCAhdGhpcy5zaWduYWxpbmdBY3RpdmUocGVlcikpCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIChfYSA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGVidWcoYFJlY2VpdmVkIHJlbW90ZSBkZXNjcmlwdGlvbjogJHtyZW1vdGVEZXNjcmlwdGlvbi50eXBlfWApOwogICAgICAgICAgICBpZiAocmVtb3RlRGVzY3JpcHRpb24udHlwZSA9PT0gIm9mZmVyIikKICAgICAgICAgICAgICAgIHRoaXMuc2VudExvY2FsRGVzY3JpcHRpb24gPSBmYWxzZTsKICAgICAgICAgICAgeWllbGQgcGVlci5zZXRSZW1vdGVEZXNjcmlwdGlvbihyZW1vdGVEZXNjcmlwdGlvbik7CiAgICAgICAgICAgIGlmICghdGhpcy5zaWduYWxpbmdBY3RpdmUocGVlcikpCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGlmIChyZW1vdGVEZXNjcmlwdGlvbi50eXBlID09PSAib2ZmZXIiKSB7CiAgICAgICAgICAgICAgICB5aWVsZCBwZWVyLnNldExvY2FsRGVzY3JpcHRpb24oKTsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5zaWduYWxpbmdBY3RpdmUocGVlcikpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgY29uc3QgbG9jYWxEZXNjcmlwdGlvbiA9IHBlZXIubG9jYWxEZXNjcmlwdGlvbjsKICAgICAgICAgICAgICAgIGlmICghbG9jYWxEZXNjcmlwdGlvbikKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgbG9jYWwgZGVzY3JpcHRpb24iKTsKICAgICAgICAgICAgICAgIChfYiA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZGVidWcoYFJlc3BvbmRpbmcgdG8gb2ZmZXIgZGVzY3JpcHRpb246ICR7bG9jYWxEZXNjcmlwdGlvbi50eXBlfWApOwogICAgICAgICAgICAgICAgLy8gVGhlIG5hdGl2ZSBwZWVyIHJlamVjdHMgY2FuZGlkYXRlcyB1bnRpbCB0aGlzIGFuc3dlciBpcyBhcHBsaWVkLgogICAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZSh7IERlc2NyaXB0aW9uOiB7IHR5OiBsb2NhbERlc2NyaXB0aW9uLnR5cGUsIHNkcDogKF9jID0gbG9jYWxEZXNjcmlwdGlvbi5zZHApICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICIiIH0gfSk7CiAgICAgICAgICAgICAgICB0aGlzLnNlbnRMb2NhbERlc2NyaXB0aW9uID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHdoaWxlICh0aGlzLnNpZ25hbGluZ0FjdGl2ZShwZWVyKSAmJiB0aGlzLmxvY2FsSWNlQ2FuZGlkYXRlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKHRoaXMubG9jYWxJY2VDYW5kaWRhdGVzLnNoaWZ0KCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHlpZWxkIHRoaXMudHJ5RGVxdWV1ZUljZUNhbmRpZGF0ZXMoKTsKICAgICAgICB9KTsKICAgIH0KICAgIG9uSWNlQ2FuZGlkYXRlKGV2ZW50KSB7CiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2Y7CiAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZSgpKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgewogICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSBldmVudC5jYW5kaWRhdGUudG9KU09OKCk7CiAgICAgICAgICAgIHRoaXMuY291bnRDYW5kaWRhdGUodGhpcy5sb2NhbENhbmRpZGF0ZUNvdW50cywgY2FuZGlkYXRlLmNhbmRpZGF0ZSk7CiAgICAgICAgICAgIChfYSA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGVidWcoIlNlbmRpbmcgSUNFIGNhbmRpZGF0ZSIpOwogICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gewogICAgICAgICAgICAgICAgQWRkSWNlQ2FuZGlkYXRlOiB7CiAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlOiAoX2IgPSBjYW5kaWRhdGUuY2FuZGlkYXRlKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAiIiwKICAgICAgICAgICAgICAgICAgICBzZHBfbWlkOiAoX2MgPSBjYW5kaWRhdGUuc2RwTWlkKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiBudWxsLAogICAgICAgICAgICAgICAgICAgIHNkcF9tbGluZV9pbmRleDogKF9kID0gY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWVfZnJhZ21lbnQ6IChfZSA9IGNhbmRpZGF0ZS51c2VybmFtZUZyYWdtZW50KSAhPT0gbnVsbCAmJiBfZSAhPT0gdm9pZCAwID8gX2UgOiBudWxsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIGlmICh0aGlzLnNlbnRMb2NhbERlc2NyaXB0aW9uKQogICAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZShtZXNzYWdlKTsKICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5yZXNlcnZlU2lnbmFsaW5nTWVzc2FnZSgpKQogICAgICAgICAgICAgICAgdGhpcy5sb2NhbEljZUNhbmRpZGF0ZXMucHVzaChtZXNzYWdlKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIChfZiA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuZGVidWcoIk5vIG5ldyBpY2UgY2FuZGlkYXRlcyIpOwogICAgICAgIH0KICAgIH0KICAgIGFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGVfMSkgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgYXJndW1lbnRzLCB2b2lkIDAsIGZ1bmN0aW9uKiAoY2FuZGlkYXRlLCBjb3VudEFubm91bmNlbWVudCA9IHRydWUpIHsKICAgICAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZSgpKQogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoY291bnRBbm5vdW5jZW1lbnQpCiAgICAgICAgICAgICAgICB0aGlzLmNvdW50Q2FuZGlkYXRlKHRoaXMucmVtb3RlQ2FuZGlkYXRlQ291bnRzLCBjYW5kaWRhdGUuY2FuZGlkYXRlKTsKICAgICAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZygiUmVjZWl2ZWQgSUNFIGNhbmRpZGF0ZSIpOwogICAgICAgICAgICBjb25zdCBwZWVyID0gdGhpcy5wZWVyOwogICAgICAgICAgICBpZiAoIShwZWVyID09PSBudWxsIHx8IHBlZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBlZXIucmVtb3RlRGVzY3JpcHRpb24pKSB7CiAgICAgICAgICAgICAgICAoX2IgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmRlYnVnKCJCdWZmZXJpbmcgaWNlIGNhbmRpZGF0ZSIpOwogICAgICAgICAgICAgICAgaWYgKHRoaXMucmVzZXJ2ZVNpZ25hbGluZ01lc3NhZ2UoKSkKICAgICAgICAgICAgICAgICAgICB0aGlzLmljZUNhbmRpZGF0ZXMucHVzaChjYW5kaWRhdGUpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHlpZWxkIHRoaXMudHJ5RGVxdWV1ZUljZUNhbmRpZGF0ZXMoKTsKICAgICAgICAgICAgaWYgKHRoaXMuc2lnbmFsaW5nQWN0aXZlKHBlZXIpKQogICAgICAgICAgICAgICAgeWllbGQgcGVlci5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKICAgICAgICB9KTsKICAgIH0KICAgIHRyeURlcXVldWVJY2VDYW5kaWRhdGVzKCkgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIGNvbnN0IHBlZXIgPSB0aGlzLnBlZXI7CiAgICAgICAgICAgIGlmICghKHBlZXIgPT09IG51bGwgfHwgcGVlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGVlci5yZW1vdGVEZXNjcmlwdGlvbikpCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIHdoaWxlICh0aGlzLnNpZ25hbGluZ0FjdGl2ZShwZWVyKSAmJiB0aGlzLmljZUNhbmRpZGF0ZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICB5aWVsZCBwZWVyLmFkZEljZUNhbmRpZGF0ZSh0aGlzLmljZUNhbmRpZGF0ZXMuc2hpZnQoKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KICAgIG9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlKCkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgaWYgKCF0aGlzLnBlZXIpIHsKICAgICAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZygiT25Db25uZWN0aW9uU3RhdGVDaGFuZ2Ugd2l0aG91dCBhIHBlZXIiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICB0aGlzLnB1Ymxpc2hDb25uZWN0aW9uRGlhZ25vc3RpY3MoKTsKICAgICAgICBsZXQgdHlwZSA9IG51bGw7CiAgICAgICAgaWYgKHRoaXMucGVlci5jb25uZWN0aW9uU3RhdGUgPT0gImNvbm5lY3RlZCIpIHsKICAgICAgICAgICAgdHlwZSA9ICJyZWNvdmVyIjsKICAgICAgICAgICAgaWYgKHRoaXMub25jb25uZWN0KSB7CiAgICAgICAgICAgICAgICB0aGlzLm9uY29ubmVjdCgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMud2FzQ29ubmVjdGVkID0gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoKHRoaXMucGVlci5jb25uZWN0aW9uU3RhdGUgPT0gImZhaWxlZCIgfHwgdGhpcy5wZWVyLmNvbm5lY3Rpb25TdGF0ZSA9PSAiY2xvc2VkIikgJiYgdGhpcy5wZWVyLmljZUdhdGhlcmluZ1N0YXRlID09ICJjb21wbGV0ZSIpIHsKICAgICAgICAgICAgLy8gVGhlIHN0cmVhbSBjb250cm9sbGVyIG93bnMgZmFsbGJhY2suIEEgdHJhbnNpZW50IElDRSBmYWlsdXJlIG11c3QKICAgICAgICAgICAgLy8gbm90IGVtaXQgYSBmYXRhbCBVSSBldmVudCBiZWZvcmUgaXQgY2FuIHN3aXRjaCB0byBXZWJTb2NrZXQuCiAgICAgICAgICAgIHR5cGUgPSBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5wZWVyLmNvbm5lY3Rpb25TdGF0ZSA9PSAiZmFpbGVkIiB8fCB0aGlzLnBlZXIuY29ubmVjdGlvblN0YXRlID09ICJjbG9zZWQiKSB7CiAgICAgICAgICAgIGlmICh0aGlzLm9uY2xvc2UpIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLndhc0Nvbm5lY3RlZCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMub25jbG9zZSgiZmFpbGVkIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLm9uY2xvc2UoImZhaWxlZG5vY29ubmVjdCIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIChfYiA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZGVidWcoYENoYW5naW5nIFBlZXIgU3RhdGUgdG8gJHt0aGlzLnBlZXIuY29ubmVjdGlvblN0YXRlfWAsIHsKICAgICAgICAgICAgdHlwZTogdHlwZSAhPT0gbnVsbCAmJiB0eXBlICE9PSB2b2lkIDAgPyB0eXBlIDogdW5kZWZpbmVkCiAgICAgICAgfSk7CiAgICB9CiAgICBvblNpZ25hbGluZ1N0YXRlQ2hhbmdlKCkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgaWYgKCF0aGlzLnBlZXIpIHsKICAgICAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZygiT25TaWduYWxpbmdTdGF0ZUNoYW5nZSB3aXRob3V0IGEgcGVlciIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIChfYiA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZGVidWcoYENoYW5naW5nIFBlZXIgU2lnbmFsaW5nIFN0YXRlIHRvICR7dGhpcy5wZWVyLnNpZ25hbGluZ1N0YXRlfWApOwogICAgfQogICAgb25JY2VDb25uZWN0aW9uU3RhdGVDaGFuZ2UoKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBpZiAoIXRoaXMucGVlcikgewogICAgICAgICAgICAoX2EgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRlYnVnKCJPbkljZUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSB3aXRob3V0IGEgcGVlciIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRoaXMucHVibGlzaENvbm5lY3Rpb25EaWFnbm9zdGljcygpOwogICAgICAgIChfYiA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZGVidWcoYENoYW5naW5nIFBlZXIgSWNlIFN0YXRlIHRvICR7dGhpcy5wZWVyLmljZUNvbm5lY3Rpb25TdGF0ZX1gKTsKICAgIH0KICAgIG9uSWNlR2F0aGVyaW5nU3RhdGVDaGFuZ2UoKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBpZiAoIXRoaXMucGVlcikgewogICAgICAgICAgICAoX2EgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRlYnVnKCJPbkljZUdhdGhlcmluZ1N0YXRlQ2hhbmdlIHdpdGhvdXQgYSBwZWVyIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdGhpcy5wdWJsaXNoQ29ubmVjdGlvbkRpYWdub3N0aWNzKCk7CiAgICAgICAgKF9iID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5kZWJ1ZyhgQ2hhbmdpbmcgUGVlciBJY2UgR2F0aGVyaW5nIFN0YXRlIHRvICR7dGhpcy5wZWVyLmljZUdhdGhlcmluZ1N0YXRlfWApOwogICAgICAgIC8vIEdhdGhlcmluZyBjb21wbGV0aW9uIHNheXMgbm90aGluZyBhYm91dCB3aGV0aGVyIHJlbW90ZSBjYW5kaWRhdGVzCiAgICAgICAgLy8gaGF2ZSBiZWVuIGFwcGxpZWQuIEV4cGxpY2l0IHBlZXIgZmFpbHVyZSBvciB0aGUgc2V0dXAgZGVhZGxpbmUgb3ducyBmYWxsYmFjay4KICAgIH0KICAgIGNvdW50Q2FuZGlkYXRlKGNvdW50cywgY2FuZGlkYXRlKSB7CiAgICAgICAgaWYgKHRoaXMuZGlhZ25vc3RpY3NDbG9zZWQgfHwgdHlwZW9mIGNhbmRpZGF0ZSAhPT0gInN0cmluZyIgfHwgY2FuZGlkYXRlLmxlbmd0aCA+IDIwNDgpCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICAvLyBSZWFkIG9ubHkgdGhlIGZpeGVkIGNhbmRpZGF0ZS10eXBlIHRva2VuLiBOZXZlciByZXRhaW4gdGhlIGNhbmRpZGF0ZQogICAgICAgIC8vIHN0cmluZyBvciBidWlsZCBhbiBhZGRyZXNzLWJhc2VkIGRlZHVwbGljYXRpb24gc2V0IGZvciBkaWFnbm9zdGljcy4KICAgICAgICBjb25zdCBmaWVsZHMgPSBjYW5kaWRhdGUudHJpbSgpLnNwbGl0KC9ccysvKTsKICAgICAgICBjb25zdCB0eXBlID0gZmllbGRzWzZdID09PSAidHlwIiA/IGZpZWxkc1s3XSA6IG51bGw7CiAgICAgICAgaWYgKHR5cGUgJiYgWyJob3N0IiwgInNyZmx4IiwgInByZmx4IiwgInJlbGF5Il0uaW5jbHVkZXModHlwZSkpIHsKICAgICAgICAgICAgY29uc3Qga2V5ID0gdHlwZTsKICAgICAgICAgICAgY291bnRzW2tleV0gPSBNYXRoLm1pbigxMDAwLCBjb3VudHNba2V5XSArIDEpOwogICAgICAgICAgICB0aGlzLnB1Ymxpc2hDb25uZWN0aW9uRGlhZ25vc3RpY3MoKTsKICAgICAgICB9CiAgICB9CiAgICBnZXRDb25uZWN0aW9uRGlhZ25vc3RpY3MoKSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0geyBsb2NhbENhbmRpZGF0ZXM6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMubG9jYWxDYW5kaWRhdGVDb3VudHMpLCByZW1vdGVDYW5kaWRhdGVzOiBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnJlbW90ZUNhbmRpZGF0ZUNvdW50cykgfTsKICAgICAgICBpZiAodGhpcy5wZWVyICYmIFsibmV3IiwgImNoZWNraW5nIiwgImNvbm5lY3RlZCIsICJjb21wbGV0ZWQiLCAiZGlzY29ubmVjdGVkIiwgImZhaWxlZCIsICJjbG9zZWQiXS5pbmNsdWRlcyh0aGlzLnBlZXIuaWNlQ29ubmVjdGlvblN0YXRlKSkKICAgICAgICAgICAgcmVzdWx0LmljZVN0YXRlID0gdGhpcy5wZWVyLmljZUNvbm5lY3Rpb25TdGF0ZTsKICAgICAgICBpZiAodGhpcy5wZWVyICYmIFsibmV3IiwgImdhdGhlcmluZyIsICJjb21wbGV0ZSJdLmluY2x1ZGVzKHRoaXMucGVlci5pY2VHYXRoZXJpbmdTdGF0ZSkpCiAgICAgICAgICAgIHJlc3VsdC5nYXRoZXJpbmdTdGF0ZSA9IHRoaXMucGVlci5pY2VHYXRoZXJpbmdTdGF0ZTsKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogICAgcHVibGlzaENvbm5lY3Rpb25EaWFnbm9zdGljcygpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKCF0aGlzLmRpYWdub3N0aWNzQ2xvc2VkKQogICAgICAgICAgICAoX2EgPSB0aGlzLm9uZGlhZ25vc3RpY3MpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHRoaXMpOwogICAgfQogICAgaW5pdENoYW5uZWxzKCkgewogICAgICAgIHZhciBfYSwgX2I7CiAgICAgICAgaWYgKCF0aGlzLnBlZXIpIHsKICAgICAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZygiRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhbm5lbCB3aXRob3V0IHBlZXIiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5jaGFubmVscy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIChfYiA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZGVidWcoIkFscmVhZHkgaW5pdGlhbGl6ZWQgY2hhbm5lbHMiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBmb3IgKGNvbnN0IGNoYW5uZWxSYXcgaW4gVHJhbnNwb3J0Q2hhbm5lbElkKSB7CiAgICAgICAgICAgIGNvbnN0IGNoYW5uZWwgPSBjaGFubmVsUmF3OwogICAgICAgICAgICBpZiAoY2hhbm5lbCA9PSAiSE9TVF9WSURFTyIpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5uZWwgPSBuZXcgV2ViUlRDSW5ib3VuZFRyYWNrVHJhbnNwb3J0Q2hhbm5lbCh0aGlzLmxvZ2dlciwgInZpZGVvdHJhY2siLCAidmlkZW8iLCB0aGlzLnZpZGVvVHJhY2tIb2xkZXIpOwogICAgICAgICAgICAgICAgdGhpcy5jaGFubmVsc1tUcmFuc3BvcnRDaGFubmVsSWQuSE9TVF9WSURFT10gPSBjaGFubmVsOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNoYW5uZWwgPT0gIkhPU1RfQVVESU8iKSB7CiAgICAgICAgICAgICAgICBjb25zdCBjaGFubmVsID0gbmV3IFdlYlJUQ0luYm91bmRUcmFja1RyYW5zcG9ydENoYW5uZWwodGhpcy5sb2dnZXIsICJhdWRpb3RyYWNrIiwgImF1ZGlvIiwgdGhpcy5hdWRpb1RyYWNrSG9sZGVyKTsKICAgICAgICAgICAgICAgIHRoaXMuY2hhbm5lbHNbVHJhbnNwb3J0Q2hhbm5lbElkLkhPU1RfQVVESU9dID0gY2hhbm5lbDsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIEFsbCBEYXRhIENoYW5uZWxzIGFyZSBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXIKICAgICAgICAgICAgY29uc3QgaWQgPSBUcmFuc3BvcnRDaGFubmVsSWRbY2hhbm5lbF07CiAgICAgICAgICAgIHRoaXMuY2hhbm5lbHNbaWRdID0gbmV3IFdlYlJUQ0RhdGFUcmFuc3BvcnRDaGFubmVsKGNoYW5uZWwsIG51bGwpOwogICAgICAgIH0KICAgIH0KICAgIG9uVHJhY2soZXZlbnQpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgY29uc3QgdHJhY2sgPSBldmVudC50cmFjazsKICAgICAgICBjb25zdCByZWNlaXZlciA9IGV2ZW50LnJlY2VpdmVyOwogICAgICAgIGlmICh0cmFjay5raW5kID09ICJ2aWRlbyIpIHsKICAgICAgICAgICAgdGhpcy52aWRlb1JlY2VpdmVyID0gcmVjZWl2ZXI7CiAgICAgICAgfQogICAgICAgIHJlY2VpdmVyLmppdHRlckJ1ZmZlclRhcmdldCA9IDA7CiAgICAgICAgaWYgKCJwbGF5b3V0RGVsYXlIaW50IiBpbiByZWNlaXZlcikgewogICAgICAgICAgICByZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50ID0gMDsKICAgICAgICB9CiAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZyhgQWRkaW5nIHJlY2VpdmVyOiAke3RyYWNrLmtpbmR9LCAke3RyYWNrLmlkfSwgJHt0cmFjay5sYWJlbH1gKTsKICAgICAgICBpZiAodHJhY2sua2luZCA9PSAidmlkZW8iKSB7CiAgICAgICAgICAgIGlmICgiY29udGVudEhpbnQiIGluIHRyYWNrKSB7CiAgICAgICAgICAgICAgICB0cmFjay5jb250ZW50SGludCA9ICJtb3Rpb24iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMudmlkZW9UcmFja0hvbGRlci50cmFjayA9IHRyYWNrOwogICAgICAgICAgICBpZiAoIXRoaXMudmlkZW9UcmFja0hvbGRlci5vbnRyYWNrKSB7CiAgICAgICAgICAgICAgICB0aHJvdyAiTm8gdmlkZW8gdHJhY2sgbGlzdGVuZXIgcmVnaXN0ZXJlZCEiOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMudmlkZW9UcmFja0hvbGRlci5vbnRyYWNrKCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKHRyYWNrLmtpbmQgPT0gImF1ZGlvIikgewogICAgICAgICAgICB0aGlzLmF1ZGlvVHJhY2tIb2xkZXIudHJhY2sgPSB0cmFjazsKICAgICAgICAgICAgaWYgKCF0aGlzLmF1ZGlvVHJhY2tIb2xkZXIub250cmFjaykgewogICAgICAgICAgICAgICAgdGhyb3cgIk5vIGF1ZGlvIHRyYWNrIGxpc3RlbmVyIHJlZ2lzdGVyZWQhIjsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLmF1ZGlvVHJhY2tIb2xkZXIub250cmFjaygpOwogICAgICAgIH0KICAgIH0KICAgIC8vIEhhbmRsZSBkYXRhIGNoYW5uZWxzIGNyZWF0ZWQgYnkgdGhlIHJlbW90ZSBwZWVyIChzZXJ2ZXIpCiAgICBvbkRhdGFDaGFubmVsKGV2ZW50KSB7CiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kOwogICAgICAgIGNvbnN0IHJlbW90ZUNoYW5uZWwgPSBldmVudC5jaGFubmVsOwogICAgICAgIGNvbnN0IGxhYmVsID0gcmVtb3RlQ2hhbm5lbC5sYWJlbDsKICAgICAgICAoX2EgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRlYnVnKGBSZWNlaXZlZCByZW1vdGUgZGF0YSBjaGFubmVsOiAke2xhYmVsfWApOwogICAgICAgIC8vIE1hcCB0aGUgY2hhbm5lbCBsYWJlbCB0byB0aGUgY29ycmVzcG9uZGluZyBUcmFuc3BvcnRDaGFubmVsSWQKICAgICAgICBjb25zdCBjaGFubmVsS2V5ID0gbGFiZWwudG9VcHBlckNhc2UoKTsKICAgICAgICBpZiAoY2hhbm5lbEtleSBpbiBUcmFuc3BvcnRDaGFubmVsSWQpIHsKICAgICAgICAgICAgY29uc3QgaWQgPSBUcmFuc3BvcnRDaGFubmVsSWRbY2hhbm5lbEtleV07CiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQ2hhbm5lbCA9IHRoaXMuY2hhbm5lbHNbaWRdOwogICAgICAgICAgICAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBjaGFubmVsIGZvciB0aGlzIElELCByZXBsYWNlIGl0cyB1bmRlcmx5aW5nIFJUQ0RhdGFDaGFubmVsCiAgICAgICAgICAgIC8vIHdpdGggdGhlIHJlbW90ZSBvbmUgc28gd2UgY2FuIHJlY2VpdmUgbWVzc2FnZXMgZnJvbSB0aGUgc2VydmVyCiAgICAgICAgICAgIGlmIChleGlzdGluZ0NoYW5uZWwgJiYgZXhpc3RpbmdDaGFubmVsLnR5cGUgPT09ICJkYXRhIikgewogICAgICAgICAgICAgICAgKF9iID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5kZWJ1ZyhgUmVwbGFjaW5nIHVuZGVybHlpbmcgY2hhbm5lbCBmb3IgJHtsYWJlbH0gd2l0aCByZW1vdGUgY2hhbm5lbGApOwogICAgICAgICAgICAgICAgZXhpc3RpbmdDaGFubmVsLnJlcGxhY2VDaGFubmVsKHJlbW90ZUNoYW5uZWwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgKF9jID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5kZWJ1ZyhgQ3JlYXRpbmcgbmV3IGNoYW5uZWwgZm9yICR7bGFiZWx9YCk7CiAgICAgICAgICAgICAgICB0aGlzLmNoYW5uZWxzW2lkXSA9IG5ldyBXZWJSVENEYXRhVHJhbnNwb3J0Q2hhbm5lbChsYWJlbCwgcmVtb3RlQ2hhbm5lbCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIChfZCA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuZGVidWcoYFVua25vd24gcmVtb3RlIGRhdGEgY2hhbm5lbDogJHtsYWJlbH1gKTsKICAgICAgICB9CiAgICB9CiAgICBzZXR1cEhvc3RWaWRlbyhfc2V0dXApIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICAvLyBUT0RPOiBjaGVjayB0cmFuc3BvcnQgdHlwZQogICAgICAgICAgICB2YXIgX2E7CiAgICAgICAgICAgIGxldCBjYXBhYmlsaXRpZXM7CiAgICAgICAgICAgIGlmICgiZ2V0Q2FwYWJpbGl0aWVzIiBpbiBSVENSdHBSZWNlaXZlciAmJiAoY2FwYWJpbGl0aWVzID0gUlRDUnRwUmVjZWl2ZXIuZ2V0Q2FwYWJpbGl0aWVzKCJ2aWRlbyIpKSkgewogICAgICAgICAgICAgICAgY29uc3QgY29kZWNzID0gZW1wdHlWaWRlb0NvZGVjcygpOwogICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb2RlYyBpbiBjb2RlY3MpIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBzdXBwb3J0UmVxdWlyZW1lbnRzID0gQ0FQQUJJTElUSUVTX0NPREVDU1tjb2RlY107CiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdXBwb3J0UmVxdWlyZW1lbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBsZXQgc3VwcG9ydGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0eUNvZGVjTG9vcDogZm9yIChjb25zdCBjb2RlY0NhcGFiaWxpdHkgb2YgY2FwYWJpbGl0aWVzLmNvZGVjcykgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29kZWNDYXBhYmlsaXR5Lm1pbWVUeXBlICE9IHN1cHBvcnRSZXF1aXJlbWVudHMubWltZVR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZm10cExpbmUgb2Ygc3VwcG9ydFJlcXVpcmVtZW50cy5mbXRwTGluZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoKF9hID0gY29kZWNDYXBhYmlsaXR5LnNkcEZtdHBMaW5lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaW5jbHVkZXMoZm10cExpbmUpKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlIGNhcGFiaWxpdHlDb2RlY0xvb3A7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGNvZGVjc1tjb2RlY10gPSBzdXBwb3J0ZWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gY29kZWNzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIG1heWJlVmlkZW9Db2RlY3MoKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQogICAgc2V0dXBIb3N0QXVkaW8oX3NldHVwKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgLy8gVE9ETzogY2hlY2sgdHJhbnNwb3J0IHR5cGUKICAgICAgICB9KTsKICAgIH0KICAgIGdldENoYW5uZWwoaWQpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgY29uc3QgY2hhbm5lbCA9IHRoaXMuY2hhbm5lbHNbaWRdOwogICAgICAgIGlmICghY2hhbm5lbCkgewogICAgICAgICAgICAoX2EgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRlYnVnKCJGYWlsZWQgdG8gc2V0dXAgdmlkZW8gd2l0aG91dCBwZWVyIik7CiAgICAgICAgICAgIHRocm93IGBGYWlsZWQgdG8gZ2V0IGNoYW5uZWwgYmVjYXVzZSBpdCBpcyBub3QgeWV0IGluaXRpYWxpemVkLCBJZDogJHtpZH1gOwogICAgICAgIH0KICAgICAgICByZXR1cm4gY2hhbm5lbDsKICAgIH0KICAgIGNsb3NlKCkgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIHZhciBfYTsKICAgICAgICAgICAgdGhpcy5kaWFnbm9zdGljc0Nsb3NlZCA9IHRydWU7CiAgICAgICAgICAgIHRoaXMuc2lnbmFsaW5nTWVzc2FnZXMubGVuZ3RoID0gMDsKICAgICAgICAgICAgdGhpcy5pY2VDYW5kaWRhdGVzLmxlbmd0aCA9IDA7CiAgICAgICAgICAgIHRoaXMubG9jYWxJY2VDYW5kaWRhdGVzLmxlbmd0aCA9IDA7CiAgICAgICAgICAgIHRoaXMuc2VudExvY2FsRGVzY3JpcHRpb24gPSBmYWxzZTsKICAgICAgICAgICAgdGhpcy5vbmRpYWdub3N0aWNzID0gbnVsbDsKICAgICAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZygiQ2xvc2luZyBXZWJSVEMgUGVlciIpOwogICAgICAgICAgICBjb25zdCBwZWVyID0gdGhpcy5wZWVyOwogICAgICAgICAgICB0aGlzLnBlZXIgPSBudWxsOwogICAgICAgICAgICB0aGlzLnZpZGVvU3RhdHNTYW1wbGVyLnJlc2V0KCk7CiAgICAgICAgICAgIGZvciAoY29uc3QgY2hhbm5lbCBvZiB0aGlzLmNoYW5uZWxzKSB7CiAgICAgICAgICAgICAgICBpZiAoY2hhbm5lbCBpbnN0YW5jZW9mIFdlYlJUQ0RhdGFUcmFuc3BvcnRDaGFubmVsKQogICAgICAgICAgICAgICAgICAgIGNoYW5uZWwuY2xvc2UoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBwZWVyID09PSBudWxsIHx8IHBlZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHBlZXIuY2xvc2UoKTsKICAgICAgICB9KTsKICAgIH0KICAgIGdldFN0YXRzKCkgewogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIHZhciBfYTsKICAgICAgICAgICAgY29uc3Qgc3RhdHNEYXRhID0ge307CiAgICAgICAgICAgIGNvbnN0IHBlZXIgPSB0aGlzLnBlZXI7CiAgICAgICAgICAgIGlmICghcGVlcikKICAgICAgICAgICAgICAgIHJldHVybiBzdGF0c0RhdGE7CiAgICAgICAgICAgIGNvbnN0IHN0YXRzID0geWllbGQgcGVlci5nZXRTdGF0cygpOwogICAgICAgICAgICBpZiAodGhpcy5wZWVyICE9PSBwZWVyKQogICAgICAgICAgICAgICAgcmV0dXJuIHN0YXRzRGF0YTsKICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihzdGF0c0RhdGEsIHN1bW1hcml6ZVJ0Y1N0YXRzKHN0YXRzKSk7CiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc3RhdHNEYXRhLCB0aGlzLnZpZGVvU3RhdHNTYW1wbGVyLnNhbXBsZShzdGF0cykpOwogICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBzdGF0cy5lbnRyaWVzKCkpIHsKICAgICAgICAgICAgICAgIGlmICh2YWx1ZS50eXBlICE9PSAiaW5ib3VuZC1ydHAiIHx8ICgoX2EgPSB2YWx1ZS5raW5kKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB2YWx1ZS5tZWRpYVR5cGUpICE9PSAidmlkZW8iKQogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgaWYgKCJkZWNvZGVySW1wbGVtZW50YXRpb24iIGluIHZhbHVlICYmIHZhbHVlLmRlY29kZXJJbXBsZW1lbnRhdGlvbiAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgc3RhdHNEYXRhLmRlY29kZXJJbXBsZW1lbnRhdGlvbiA9IHZhbHVlLmRlY29kZXJJbXBsZW1lbnRhdGlvbjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgiZnJhbWVXaWR0aCIgaW4gdmFsdWUgJiYgdmFsdWUuZnJhbWVXaWR0aCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgc3RhdHNEYXRhLnZpZGVvV2lkdGggPSB2YWx1ZS5mcmFtZVdpZHRoOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCJmcmFtZUhlaWdodCIgaW4gdmFsdWUgJiYgdmFsdWUuZnJhbWVIZWlnaHQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHN0YXRzRGF0YS52aWRlb0hlaWdodCA9IHZhbHVlLmZyYW1lSGVpZ2h0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCJmcmFtZXNQZXJTZWNvbmQiIGluIHZhbHVlICYmIHZhbHVlLmZyYW1lc1BlclNlY29uZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y0ZwcyA9IHZhbHVlLmZyYW1lc1BlclNlY29uZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgiaml0dGVyQnVmZmVyRGVsYXkiIGluIHZhbHVlICYmIHZhbHVlLmppdHRlckJ1ZmZlckRlbGF5ICE9IG51bGwgJiYgdmFsdWUuaml0dGVyQnVmZmVyRW1pdHRlZENvdW50ID4gMCkgewogICAgICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNKaXR0ZXJCdWZmZXJEZWxheU1zID0gdmFsdWUuaml0dGVyQnVmZmVyRGVsYXkgKiAxMDAwIC8gdmFsdWUuaml0dGVyQnVmZmVyRW1pdHRlZENvdW50OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCJqaXR0ZXJCdWZmZXJUYXJnZXREZWxheSIgaW4gdmFsdWUgJiYgdmFsdWUuaml0dGVyQnVmZmVyVGFyZ2V0RGVsYXkgIT0gbnVsbCAmJiB2YWx1ZS5qaXR0ZXJCdWZmZXJFbWl0dGVkQ291bnQgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y0ppdHRlckJ1ZmZlclRhcmdldERlbGF5TXMgPSB2YWx1ZS5qaXR0ZXJCdWZmZXJUYXJnZXREZWxheSAqIDEwMDAgLyB2YWx1ZS5qaXR0ZXJCdWZmZXJFbWl0dGVkQ291bnQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoImppdHRlckJ1ZmZlck1pbmltdW1EZWxheSIgaW4gdmFsdWUgJiYgdmFsdWUuaml0dGVyQnVmZmVyTWluaW11bURlbGF5ICE9IG51bGwgJiYgdmFsdWUuaml0dGVyQnVmZmVyRW1pdHRlZENvdW50ID4gMCkgewogICAgICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNKaXR0ZXJCdWZmZXJNaW5pbXVtRGVsYXlNcyA9IHZhbHVlLmppdHRlckJ1ZmZlck1pbmltdW1EZWxheSAqIDEwMDAgLyB2YWx1ZS5qaXR0ZXJCdWZmZXJFbWl0dGVkQ291bnQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoImppdHRlciIgaW4gdmFsdWUgJiYgdmFsdWUuaml0dGVyICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBzdGF0c0RhdGEud2VicnRjSml0dGVyTXMgPSB2YWx1ZS5qaXR0ZXIgKiAxMDAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCJ0b3RhbERlY29kZVRpbWUiIGluIHZhbHVlICYmIHZhbHVlLnRvdGFsRGVjb2RlVGltZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y1RvdGFsRGVjb2RlVGltZU1zID0gdmFsdWUudG90YWxEZWNvZGVUaW1lICogMTAwMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgidG90YWxBc3NlbWJseVRpbWUiIGluIHZhbHVlICYmIHZhbHVlLnRvdGFsQXNzZW1ibHlUaW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBzdGF0c0RhdGEud2VicnRjVG90YWxBc3NlbWJseVRpbWVNcyA9IHZhbHVlLnRvdGFsQXNzZW1ibHlUaW1lICogMTAwMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgidG90YWxQcm9jZXNzaW5nRGVsYXkiIGluIHZhbHVlICYmIHZhbHVlLnRvdGFsUHJvY2Vzc2luZ0RlbGF5ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBzdGF0c0RhdGEud2VicnRjVG90YWxQcm9jZXNzaW5nRGVsYXlNcyA9IHZhbHVlLnRvdGFsUHJvY2Vzc2luZ0RlbGF5ICogMTAwMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgicGFja2V0c1JlY2VpdmVkIiBpbiB2YWx1ZSAmJiB2YWx1ZS5wYWNrZXRzUmVjZWl2ZWQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNQYWNrZXRzUmVjZWl2ZWQgPSB2YWx1ZS5wYWNrZXRzUmVjZWl2ZWQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoInBhY2tldHNMb3N0IiBpbiB2YWx1ZSAmJiB2YWx1ZS5wYWNrZXRzTG9zdCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y1BhY2tldHNMb3N0ID0gdmFsdWUucGFja2V0c0xvc3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoImZyYW1lc0Ryb3BwZWQiIGluIHZhbHVlICYmIHZhbHVlLmZyYW1lc0Ryb3BwZWQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNGcmFtZXNEcm9wcGVkID0gdmFsdWUuZnJhbWVzRHJvcHBlZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgia2V5RnJhbWVzRGVjb2RlZCIgaW4gdmFsdWUgJiYgdmFsdWUua2V5RnJhbWVzRGVjb2RlZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y0tleUZyYW1lc0RlY29kZWQgPSB2YWx1ZS5rZXlGcmFtZXNEZWNvZGVkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCJuYWNrQ291bnQiIGluIHZhbHVlICYmIHZhbHVlLm5hY2tDb3VudCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y05hY2tDb3VudCA9IHZhbHVlLm5hY2tDb3VudDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gc3RhdHNEYXRhOwogICAgICAgIH0pOwogICAgfQp9CmNvbnN0IFZJREVPX0NPVU5URVJTID0gWyJieXRlc1JlY2VpdmVkIiwgImZyYW1lc0RlY29kZWQiLCAidG90YWxEZWNvZGVUaW1lIiwgImppdHRlckJ1ZmZlckRlbGF5IiwgImppdHRlckJ1ZmZlckVtaXR0ZWRDb3VudCIsICJwYWNrZXRzUmVjZWl2ZWQiLCAiZnJhbWVzRHJvcHBlZCJdOwpmdW5jdGlvbiBmaW5pdGVOb25uZWdhdGl2ZSh2YWx1ZSkgewogICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gIm51bWJlciIgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlKSAmJiB2YWx1ZSA+PSAwOwp9Ci8vIEEgc2luZ2xlLCBudW1lcmljLW9ubHkgYmFzZWxpbmUgaXMgcmV0YWluZWQgaW4gbWVtb3J5LiBOZXZlciBwdWJsaXNoIHJhdwovLyByZXBvcnRzLCByZXBvcnQgSURzLCBjYW5kaWRhdGUgYWRkcmVzc2VzLCBTRFAgb3IgZGVjb2RlciBpbXBsZW1lbnRhdGlvbiBkYXRhLgovLyBEZWx0YXMgZGVzY3JpYmUgdGhlIGxhc3QgcG9sbGluZyBpbnRlcnZhbCwgbm90IHRoZSBsaWZldGltZSBvZiB0aGUgc3RyZWFtLgpleHBvcnQgY2xhc3MgUnRjVmlkZW9TdGF0c1NhbXBsZXIgewogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5wcmV2aW91cyA9IG51bGw7CiAgICB9CiAgICByZXNldCgpIHsgdGhpcy5wcmV2aW91cyA9IG51bGw7IH0KICAgIHNhbXBsZShzdGF0cykgewogICAgICAgIHZhciBfYSwgX2IsIF9jOwogICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9OwogICAgICAgIGxldCB2aWRlbyA9IG51bGw7CiAgICAgICAgZm9yIChjb25zdCB2YWx1ZSBvZiBzdGF0cy52YWx1ZXMoKSkgewogICAgICAgICAgICBpZiAodmFsdWUudHlwZSAhPT0gImluYm91bmQtcnRwIiB8fCAoKF9hID0gdmFsdWUua2luZCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdmFsdWUubWVkaWFUeXBlKSAhPT0gInZpZGVvIiB8fCB2YWx1ZS5pc1JlbW90ZSA9PT0gdHJ1ZSkKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAvLyBQQyBSZW1vdGUgcmVxdWVzdHMgb25lIHZpZGVvIHRyYWNrLiBLZWVwIHRoYXQgcmVwb3J0IHN0YWJsZSBpZgogICAgICAgICAgICAvLyBhbiBvbGRlciByZWNlaXZlciByZW1haW5zIGJyaWVmbHkgaW4gZ2V0U3RhdHMgZHVyaW5nIHJlcGxhY2VtZW50LgogICAgICAgICAgICBpZiAoIXZpZGVvIHx8IHZhbHVlLmlkID09PSAoKF9iID0gdGhpcy5wcmV2aW91cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmlkKSkKICAgICAgICAgICAgICAgIHZpZGVvID0gdmFsdWU7CiAgICAgICAgICAgIGlmICh2YWx1ZS5pZCA9PT0gKChfYyA9IHRoaXMucHJldmlvdXMpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5pZCkpCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgaWYgKCF2aWRlbykgewogICAgICAgICAgICB0aGlzLnJlc2V0KCk7CiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgfQogICAgICAgIGlmIChmaW5pdGVOb25uZWdhdGl2ZSh2aWRlby5mcmFtZXNQZXJTZWNvbmQpKQogICAgICAgICAgICByZXN1bHQucnRjVmlkZW9EZWNvZGVkRnBzID0gdmlkZW8uZnJhbWVzUGVyU2Vjb25kOwogICAgICAgIGlmICh0eXBlb2YgdmlkZW8uaWQgIT09ICJzdHJpbmciIHx8ICFmaW5pdGVOb25uZWdhdGl2ZSh2aWRlby50aW1lc3RhbXApKSB7CiAgICAgICAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICB9CiAgICAgICAgY29uc3QgY3VycmVudCA9IHsgaWQ6IHZpZGVvLmlkLCB0aW1lc3RhbXA6IHZpZGVvLnRpbWVzdGFtcCwgY291bnRlcnM6IHt9IH07CiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBWSURFT19DT1VOVEVSUykgewogICAgICAgICAgICBpZiAoZmluaXRlTm9ubmVnYXRpdmUodmlkZW9bZmllbGRdKSkKICAgICAgICAgICAgICAgIGN1cnJlbnQuY291bnRlcnNbZmllbGRdID0gdmlkZW9bZmllbGRdOwogICAgICAgIH0KICAgICAgICAvLyBwYWNrZXRzTG9zdCBpcyBzaWduZWQgaW4gdGhlIFdlYlJUQyBzcGVjOyBsYXRlIGFycml2YWxzIGNhbiByZWR1Y2UgaXQuCiAgICAgICAgaWYgKHR5cGVvZiB2aWRlby5wYWNrZXRzTG9zdCA9PT0gIm51bWJlciIgJiYgTnVtYmVyLmlzRmluaXRlKHZpZGVvLnBhY2tldHNMb3N0KSkKICAgICAgICAgICAgY3VycmVudC5wYWNrZXRzTG9zdCA9IHZpZGVvLnBhY2tldHNMb3N0OwogICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5wcmV2aW91czsKICAgICAgICAvLyBPdXQtb2Ytb3JkZXIgLyByZXBlYXRlZCBnZXRTdGF0cyByZXNwb25zZXMgbXVzdCBub3QgbW92ZSBvdXIgYmFzZWxpbmUKICAgICAgICAvLyBiYWNrd2FyZHMgb3IgcHJvZHVjZSBkaXZpZGVkLWJ5LXplcm8gcmF0ZXMuCiAgICAgICAgaWYgKChwcmV2aW91cyA9PT0gbnVsbCB8fCBwcmV2aW91cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJldmlvdXMuaWQpID09PSBjdXJyZW50LmlkICYmIGN1cnJlbnQudGltZXN0YW1wIDw9IHByZXZpb3VzLnRpbWVzdGFtcCkKICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICB0aGlzLnByZXZpb3VzID0gY3VycmVudDsKICAgICAgICBpZiAoIXByZXZpb3VzIHx8IHByZXZpb3VzLmlkICE9PSBjdXJyZW50LmlkKQogICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgIGNvbnN0IGludGVydmFsID0gY3VycmVudC50aW1lc3RhbXAgLSBwcmV2aW91cy50aW1lc3RhbXA7CiAgICAgICAgaWYgKGludGVydmFsID4gMTAwMDApCiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7IC8vIFJlc3VtZWQgdGFiOiB3YWl0IGZvciBhIGZyZXNoLCBzaG9ydCBzYW1wbGUuCiAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBWSURFT19DT1VOVEVSUykgewogICAgICAgICAgICBjb25zdCBiZWZvcmUgPSBwcmV2aW91cy5jb3VudGVyc1tmaWVsZF0sIGFmdGVyID0gY3VycmVudC5jb3VudGVyc1tmaWVsZF07CiAgICAgICAgICAgIGlmIChiZWZvcmUgIT0gbnVsbCAmJiBhZnRlciAhPSBudWxsICYmIGFmdGVyIDwgYmVmb3JlKQogICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICB9CiAgICAgICAgcmVzdWx0LnJ0Y1ZpZGVvU2FtcGxlSW50ZXJ2YWxNcyA9IGludGVydmFsOwogICAgICAgIGNvbnN0IGRlbHRhID0gKGZpZWxkKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IHByZXZpb3VzLmNvdW50ZXJzW2ZpZWxkXSwgYWZ0ZXIgPSBjdXJyZW50LmNvdW50ZXJzW2ZpZWxkXTsKICAgICAgICAgICAgcmV0dXJuIGJlZm9yZSA9PSBudWxsIHx8IGFmdGVyID09IG51bGwgPyBudWxsIDogYWZ0ZXIgLSBiZWZvcmU7CiAgICAgICAgfTsKICAgICAgICBjb25zdCBwdXQgPSAoa2V5LCB2YWx1ZSkgPT4geyBpZiAoZmluaXRlTm9ubmVnYXRpdmUodmFsdWUpKQogICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlOyB9OwogICAgICAgIGNvbnN0IGJ5dGVzID0gZGVsdGEoImJ5dGVzUmVjZWl2ZWQiKSwgZGVjb2RlZCA9IGRlbHRhKCJmcmFtZXNEZWNvZGVkIik7CiAgICAgICAgaWYgKGJ5dGVzICE9IG51bGwpCiAgICAgICAgICAgIHB1dCgicnRjVmlkZW9SZWNlaXZlZE1icHMiLCBieXRlcyAqIDggLyBpbnRlcnZhbCAvIDEwMDApOwogICAgICAgIGlmIChkZWNvZGVkICE9IG51bGwpCiAgICAgICAgICAgIHB1dCgicnRjVmlkZW9EZWNvZGVkRnBzIiwgZGVjb2RlZCAqIDEwMDAgLyBpbnRlcnZhbCk7CiAgICAgICAgY29uc3QgZGVjb2RlVGltZSA9IGRlbHRhKCJ0b3RhbERlY29kZVRpbWUiKSwgaml0dGVyRGVsYXkgPSBkZWx0YSgiaml0dGVyQnVmZmVyRGVsYXkiKSwgZW1pdHRlZCA9IGRlbHRhKCJqaXR0ZXJCdWZmZXJFbWl0dGVkQ291bnQiKTsKICAgICAgICBpZiAoZGVjb2RlZCAhPSBudWxsICYmIGRlY29kZWQgPiAwICYmIGRlY29kZVRpbWUgIT0gbnVsbCkKICAgICAgICAgICAgcHV0KCJydGNWaWRlb0RlY29kZU1zUGVyRnJhbWUiLCBkZWNvZGVUaW1lICogMTAwMCAvIGRlY29kZWQpOwogICAgICAgIGlmIChlbWl0dGVkICE9IG51bGwgJiYgZW1pdHRlZCA+IDAgJiYgaml0dGVyRGVsYXkgIT0gbnVsbCkKICAgICAgICAgICAgcHV0KCJydGNWaWRlb0ppdHRlckJ1ZmZlck1zUGVyRnJhbWUiLCBqaXR0ZXJEZWxheSAqIDEwMDAgLyBlbWl0dGVkKTsKICAgICAgICBjb25zdCByZWNlaXZlZCA9IGRlbHRhKCJwYWNrZXRzUmVjZWl2ZWQiKSwgZHJvcHBlZCA9IGRlbHRhKCJmcmFtZXNEcm9wcGVkIik7CiAgICAgICAgaWYgKHJlY2VpdmVkICE9IG51bGwpCiAgICAgICAgICAgIHB1dCgicnRjVmlkZW9QYWNrZXRzUmVjZWl2ZWQiLCByZWNlaXZlZCk7CiAgICAgICAgaWYgKGRyb3BwZWQgIT0gbnVsbCkKICAgICAgICAgICAgcHV0KCJydGNWaWRlb0ZyYW1lc0Ryb3BwZWQiLCBkcm9wcGVkKTsKICAgICAgICBpZiAocHJldmlvdXMucGFja2V0c0xvc3QgIT0gbnVsbCAmJiBjdXJyZW50LnBhY2tldHNMb3N0ICE9IG51bGwpIHsKICAgICAgICAgICAgY29uc3QgbG9zdCA9IGN1cnJlbnQucGFja2V0c0xvc3QgLSBwcmV2aW91cy5wYWNrZXRzTG9zdDsKICAgICAgICAgICAgLy8gQSBkZWNyZWFzZSBpcyBhbWJpZ3VvdXMgKGxhdGUgcGFja2V0cyBvciByZXNldCksIG5ldmVyIHNob3cgYQogICAgICAgICAgICAvLyBuZWdhdGl2ZSBsb3NzIHJhdGUgb3IgbWlzcmVwcmVzZW50IGl0IGFzIHplcm8gbG9zcy4KICAgICAgICAgICAgaWYgKGxvc3QgPj0gMCkgewogICAgICAgICAgICAgICAgcHV0KCJydGNWaWRlb1BhY2tldHNMb3N0IiwgbG9zdCk7CiAgICAgICAgICAgICAgICBpZiAocmVjZWl2ZWQgIT0gbnVsbCAmJiByZWNlaXZlZCArIGxvc3QgPiAwKQogICAgICAgICAgICAgICAgICAgIHB1dCgicnRjVmlkZW9QYWNrZXRMb3NzUGVyY2VudCIsIGxvc3QgKiAxMDAgLyAocmVjZWl2ZWQgKyBsb3N0KSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KfQovLyBEZWxpYmVyYXRlbHkgcmV0dXJuIG5vIGNhbmRpZGF0ZSBhZGRyZXNzZXMsIHBvcnRzLCBJRHMgb3IgY3JlZGVudGlhbHMuCmV4cG9ydCBmdW5jdGlvbiBzdW1tYXJpemVSdGNTdGF0cyhzdGF0cykgewogICAgY29uc3QgcmVzdWx0ID0geyBydGNSb3V0ZTogInBlbmRpbmciIH07CiAgICBsZXQgcGFpciA9IG51bGw7CiAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHN0YXRzLnZhbHVlcygpKSB7CiAgICAgICAgaWYgKHZhbHVlLnR5cGUgPT09ICJ0cmFuc3BvcnQiICYmIHZhbHVlLnNlbGVjdGVkQ2FuZGlkYXRlUGFpcklkKSB7CiAgICAgICAgICAgIHBhaXIgPSBzdGF0cy5nZXQodmFsdWUuc2VsZWN0ZWRDYW5kaWRhdGVQYWlySWQpOwogICAgICAgICAgICBpZiAocGFpcikKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KICAgIGlmICghcGFpcikKICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHN0YXRzLnZhbHVlcygpKSB7CiAgICAgICAgICAgIGlmICh2YWx1ZS50eXBlID09PSAiY2FuZGlkYXRlLXBhaXIiICYmIHZhbHVlLnN0YXRlID09PSAic3VjY2VlZGVkIiAmJiAodmFsdWUuc2VsZWN0ZWQgPT09IHRydWUgfHwgdmFsdWUubm9taW5hdGVkID09PSB0cnVlKSkgewogICAgICAgICAgICAgICAgcGFpciA9IHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICBpZiAoIXBhaXIgfHwgcGFpci5zdGF0ZSAhPT0gInN1Y2NlZWRlZCIpCiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIGNvbnN0IGxvY2FsID0gc3RhdHMuZ2V0KHBhaXIubG9jYWxDYW5kaWRhdGVJZCksIHJlbW90ZSA9IHN0YXRzLmdldChwYWlyLnJlbW90ZUNhbmRpZGF0ZUlkKTsKICAgIHJlc3VsdC5ydGNSb3V0ZSA9IChsb2NhbCA9PT0gbnVsbCB8fCBsb2NhbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbG9jYWwuY2FuZGlkYXRlVHlwZSkgPT09ICJyZWxheSIgfHwgKHJlbW90ZSA9PT0gbnVsbCB8fCByZW1vdGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlbW90ZS5jYW5kaWRhdGVUeXBlKSA9PT0gInJlbGF5IiA/ICJyZWxheSIKICAgICAgICA6IChsb2NhbCA9PT0gbnVsbCB8fCBsb2NhbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbG9jYWwuY2FuZGlkYXRlVHlwZSkgPT09ICJob3N0IiAmJiAocmVtb3RlID09PSBudWxsIHx8IHJlbW90ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVtb3RlLmNhbmRpZGF0ZVR5cGUpID09PSAiaG9zdCIgPyAiZGlyZWN0LWxvY2FsIiA6ICJkaXJlY3QiOwogICAgaWYgKE51bWJlci5pc0Zpbml0ZShwYWlyLmN1cnJlbnRSb3VuZFRyaXBUaW1lKSAmJiBwYWlyLmN1cnJlbnRSb3VuZFRyaXBUaW1lID49IDApCiAgICAgICAgcmVzdWx0LnJ0Y0NhbmRpZGF0ZVBhaXJSdHRNcyA9IHBhaXIuY3VycmVudFJvdW5kVHJpcFRpbWUgKiAxMDAwOwogICAgaWYgKChsb2NhbCA9PT0gbnVsbCB8fCBsb2NhbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbG9jYWwucHJvdG9jb2wpID09PSAidWRwIiB8fCAobG9jYWwgPT09IG51bGwgfHwgbG9jYWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGxvY2FsLnByb3RvY29sKSA9PT0gInRjcCIpCiAgICAgICAgcmVzdWx0LnJ0Y1Byb3RvY29sID0gbG9jYWwucHJvdG9jb2w7CiAgICByZXR1cm4gcmVzdWx0Owp9Ci8vIFRoaXMgcmVjZWl2ZXMgdHJhY2sgZGF0YQpjbGFzcyBXZWJSVENJbmJvdW5kVHJhY2tUcmFuc3BvcnRDaGFubmVsIHsKICAgIGNvbnN0cnVjdG9yKGxvZ2dlciwgdHlwZSwgbGFiZWwsIHRyYWNrSG9sZGVyKSB7CiAgICAgICAgdGhpcy5jYW5SZWNlaXZlID0gdHJ1ZTsKICAgICAgICB0aGlzLmNhblNlbmQgPSBmYWxzZTsKICAgICAgICB0aGlzLnRyYWNrTGlzdGVuZXJzID0gW107CiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7CiAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKICAgICAgICB0aGlzLmxhYmVsID0gbGFiZWw7CiAgICAgICAgdGhpcy50cmFja0hvbGRlciA9IHRyYWNrSG9sZGVyOwogICAgICAgIHRoaXMudHJhY2tIb2xkZXIub250cmFjayA9IHRoaXMub25UcmFjay5iaW5kKHRoaXMpOwogICAgfQogICAgc2V0VHJhY2soX3RyYWNrKSB7CiAgICAgICAgdGhyb3cgIldlYlJUQ0luYm91bmRUcmFja1RyYW5zcG9ydENoYW5uZWwgY2Fubm90IGFkZFRyYWNrIjsKICAgIH0KICAgIG9uVHJhY2soKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIGNvbnN0IHRyYWNrID0gdGhpcy50cmFja0hvbGRlci50cmFjazsKICAgICAgICBpZiAoIXRyYWNrKSB7CiAgICAgICAgICAgIChfYSA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGVidWcoIldlYlJUQyBUcmFja0hvbGRlci50cmFjayBpcyBudWxsISIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgbGlzdGVuZXIgb2YgdGhpcy50cmFja0xpc3RlbmVycykgewogICAgICAgICAgICBsaXN0ZW5lcih0cmFjayk7CiAgICAgICAgfQogICAgfQogICAgYWRkVHJhY2tMaXN0ZW5lcihsaXN0ZW5lcikgewogICAgICAgIGlmICh0aGlzLnRyYWNrSG9sZGVyLnRyYWNrKSB7CiAgICAgICAgICAgIGxpc3RlbmVyKHRoaXMudHJhY2tIb2xkZXIudHJhY2spOwogICAgICAgIH0KICAgICAgICB0aGlzLnRyYWNrTGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpOwogICAgfQogICAgcmVtb3ZlVHJhY2tMaXN0ZW5lcihsaXN0ZW5lcikgewogICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy50cmFja0xpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTsKICAgICAgICBpZiAoaW5kZXggIT0gLTEpIHsKICAgICAgICAgICAgdGhpcy50cmFja0xpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIH0KICAgIH0KfQpjbGFzcyBXZWJSVENEYXRhVHJhbnNwb3J0Q2hhbm5lbCB7CiAgICBjb25zdHJ1Y3RvcihsYWJlbCwgY2hhbm5lbCwgbG9nZ2VyKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICB0aGlzLnR5cGUgPSAiZGF0YSI7CiAgICAgICAgdGhpcy5jYW5SZWNlaXZlID0gdHJ1ZTsKICAgICAgICB0aGlzLmNhblNlbmQgPSB0cnVlOwogICAgICAgIHRoaXMubG9nZ2VyID0gbnVsbDsKICAgICAgICB0aGlzLnNlbmRRdWV1ZSA9IFtdOwogICAgICAgIHRoaXMuY2xvc2VkID0gZmFsc2U7CiAgICAgICAgdGhpcy5yZWNlaXZlTGlzdGVuZXJzID0gW107CiAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsOwogICAgICAgIHRoaXMuY2hhbm5lbCA9IGNoYW5uZWw7CiAgICAgICAgdGhpcy5ib3VuZE9uTWVzc2FnZSA9IHRoaXMub25NZXNzYWdlLmJpbmQodGhpcyk7CiAgICAgICAgdGhpcy5ib3VuZFRyeURlcXVldWVTZW5kUXVldWUgPSB0aGlzLnRyeURlcXVldWVTZW5kUXVldWUuYmluZCh0aGlzKTsKICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciAhPT0gbnVsbCAmJiBsb2dnZXIgIT09IHZvaWQgMCA/IGxvZ2dlciA6IG51bGw7CiAgICAgICAgKF9hID0gdGhpcy5jaGFubmVsKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRoaXMuYm91bmRPbk1lc3NhZ2UpOwogICAgICAgIChfYiA9IHRoaXMuY2hhbm5lbCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmFkZEV2ZW50TGlzdGVuZXIoIm9wZW4iLCB0aGlzLmJvdW5kVHJ5RGVxdWV1ZVNlbmRRdWV1ZSk7CiAgICB9CiAgICAvLyBSZXBsYWNlIHRoZSB1bmRlcmx5aW5nIGNoYW5uZWwgd2l0aCBhIG5ldyBvbmUgKGUuZy4sIGZyb20gcmVtb3RlIHBlZXIpCiAgICAvLyBUaGlzIGlzIHVzZWQgd2hlbiB3ZSByZWNlaXZlIGEgZGF0YSBjaGFubmVsIGZyb20gdGhlIHNlcnZlciB0aGF0IHNob3VsZAogICAgLy8gcmVwbGFjZSBvdXIgbG9jYWxseSBjcmVhdGVkIG9uZSBmb3IgcmVjZWl2aW5nIG1lc3NhZ2VzCiAgICByZXBsYWNlQ2hhbm5lbChuZXdDaGFubmVsKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsKICAgICAgICAgICAgbmV3Q2hhbm5lbC5jbG9zZSgpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIC8vIFJlbW92ZSBsaXN0ZW5lciBmcm9tIG9sZCBjaGFubmVsCiAgICAgICAgKF9hID0gdGhpcy5jaGFubmVsKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3BlbiIsIHRoaXMuYm91bmRUcnlEZXF1ZXVlU2VuZFF1ZXVlKTsKICAgICAgICAoX2IgPSB0aGlzLmNoYW5uZWwpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGhpcy5ib3VuZE9uTWVzc2FnZSk7CiAgICAgICAgLy8gQWRkIGxpc3RlbmVyIHRvIG5ldyBjaGFubmVsCiAgICAgICAgdGhpcy5jaGFubmVsID0gbmV3Q2hhbm5lbDsKICAgICAgICB0aGlzLmNoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigib3BlbiIsIHRoaXMuYm91bmRUcnlEZXF1ZXVlU2VuZFF1ZXVlKTsKICAgICAgICB0aGlzLmNoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRoaXMuYm91bmRPbk1lc3NhZ2UpOwogICAgICAgIHRoaXMudHJ5RGVxdWV1ZVNlbmRRdWV1ZSgpOwogICAgfQogICAgc2VuZChtZXNzYWdlKSB7CiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgaWYgKCF0aGlzLmNoYW5uZWwgfHwgdGhpcy5jaGFubmVsLnJlYWR5U3RhdGUgIT0gIm9wZW4iKSB7CiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0byBjb3B5IHRoZSBtZXNzYWdlCiAgICAgICAgICAgIHRoaXMuc2VuZFF1ZXVlLnB1c2gobWVzc2FnZS5zbGljZSgwKSk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICB0aGlzLmNoYW5uZWwuc2VuZChtZXNzYWdlKTsKICAgICAgICB9CiAgICB9CiAgICB0cnlEZXF1ZXVlU2VuZFF1ZXVlKCkgewogICAgICAgIGlmICghdGhpcy5jaGFubmVsIHx8IHRoaXMuY2hhbm5lbC5yZWFkeVN0YXRlICE9ICJvcGVuIikgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiB0aGlzLnNlbmRRdWV1ZS5zcGxpY2UoMCkpIHsKICAgICAgICAgICAgdGhpcy5jaGFubmVsLnNlbmQobWVzc2FnZSk7CiAgICAgICAgfQogICAgfQogICAgb25NZXNzYWdlKGV2ZW50KSB7CiAgICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGE7CiAgICAgICAgaWYgKCEoZGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSkgewogICAgICAgICAgICBjb25zb2xlLndhcm4oYHJlY2VpdmVkIHRleHQgZGF0YSBvbiB3ZWJydGMgY2hhbm5lbCAke3RoaXMubGFiZWx9YCk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiB0aGlzLnJlY2VpdmVMaXN0ZW5lcnMpIHsKICAgICAgICAgICAgbGlzdGVuZXIoZXZlbnQuZGF0YSk7CiAgICAgICAgfQogICAgfQogICAgYWRkUmVjZWl2ZUxpc3RlbmVyKGxpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5yZWNlaXZlTGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpOwogICAgfQogICAgcmVtb3ZlUmVjZWl2ZUxpc3RlbmVyKGxpc3RlbmVyKSB7CiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnJlY2VpdmVMaXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcik7CiAgICAgICAgaWYgKGluZGV4ICE9IC0xKSB7CiAgICAgICAgICAgIHRoaXMucmVjZWl2ZUxpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgIH0KICAgIH0KICAgIGVzdGltYXRlZEJ1ZmZlcmVkQnl0ZXMoKSB7CiAgICAgICAgdmFyIF9hLCBfYjsKICAgICAgICByZXR1cm4gKF9iID0gKF9hID0gdGhpcy5jaGFubmVsKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuYnVmZmVyZWRBbW91bnQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IG51bGw7CiAgICB9CiAgICBjbG9zZSgpIHsKICAgICAgICB2YXIgX2EsIF9iLCBfYzsKICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgdGhpcy5zZW5kUXVldWUubGVuZ3RoID0gMDsKICAgICAgICB0aGlzLnJlY2VpdmVMaXN0ZW5lcnMubGVuZ3RoID0gMDsKICAgICAgICAoX2EgPSB0aGlzLmNoYW5uZWwpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZW1vdmVFdmVudExpc3RlbmVyKCJvcGVuIiwgdGhpcy5ib3VuZFRyeURlcXVldWVTZW5kUXVldWUpOwogICAgICAgIChfYiA9IHRoaXMuY2hhbm5lbCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0aGlzLmJvdW5kT25NZXNzYWdlKTsKICAgICAgICAoX2MgPSB0aGlzLmNoYW5uZWwpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5jbG9zZSgpOwogICAgICAgIHRoaXMuY2hhbm5lbCA9IG51bGw7CiAgICB9Cn0K"},{"path":"PCREMOTE-REVIEWED-JS/stream/video/canvas.js","sha256":"50ab718c96c13de3499503167a4f1b2aaa9fe433d38ab283c6e8ba57b6bd6997","contentBase64":"dmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7CiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0KICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH0KICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9CiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH0KICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7CiAgICB9KTsKfTsKaW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IGFkZFBpcGVQYXNzdGhyb3VnaCB9IGZyb20gIi4uL3BpcGVsaW5lL3BpcGVzLmpzIjsKaW1wb3J0IHsgYWxsVmlkZW9Db2RlY3MgfSBmcm9tICIuLi92aWRlby5qcyI7CmltcG9ydCB7IGdldFN0cmVhbVJlY3RDb3JyZWN0ZWQgfSBmcm9tICIuL2luZGV4LmpzIjsKZnVuY3Rpb24gZ2V0Q29sb3JTcGFjZShoZHJFbmFibGVkKSB7CiAgICByZXR1cm4gaGRyRW5hYmxlZCA/ICJyZWMyMDIwLXBxIiA6ICJzcmdiIjsKfQpleHBvcnQgY2xhc3MgQmFzZUNhbnZhc1ZpZGVvUmVuZGVyZXIgewogICAgc3RhdGljIGNyZWF0ZU1haW5DYW52YXMoKSB7CiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CiAgICAgICAgY2FudmFzLmNsYXNzTGlzdC5hZGQoInZpZGVvLXN0cmVhbSIpOwogICAgICAgIHJldHVybiBjYW52YXM7CiAgICB9CiAgICBjb25zdHJ1Y3RvcihpbXBsZW1lbnRhdGlvbk5hbWUsIG9wdGlvbnMpIHsKICAgICAgICB0aGlzLmRpdiA9ICgiZG9jdW1lbnQiIGluIGdsb2JhbE9iamVjdCgpKSA/IGdsb2JhbE9iamVjdCgpLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIDogbnVsbDsKICAgICAgICB0aGlzLmNhbnZhcyA9IG51bGw7CiAgICAgICAgdGhpcy5pc1RyYW5zZmVycmVkID0gZmFsc2U7CiAgICAgICAgdGhpcy5jb250ZXh0ID0gbnVsbDsKICAgICAgICB0aGlzLmhkckVuYWJsZWQgPSBmYWxzZTsKICAgICAgICB0aGlzLnZpZGVvU2l6ZSA9IG51bGw7CiAgICAgICAgdGhpcy5vcHRpb25zID0gbnVsbDsKICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uTmFtZSA9IGltcGxlbWVudGF0aW9uTmFtZTsKICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMgOiBudWxsOwogICAgfQogICAgc2V0Q2FudmFzKGNhbnZhcywgaXNUcmFuc2ZlcnJlZCkgewogICAgICAgIHRoaXMuaXNUcmFuc2ZlcnJlZCA9IGlzVHJhbnNmZXJyZWQgIT09IG51bGwgJiYgaXNUcmFuc2ZlcnJlZCAhPT0gdm9pZCAwID8gaXNUcmFuc2ZlcnJlZCA6IGZhbHNlOwogICAgICAgIHRoaXMuY2FudmFzID0gY2FudmFzOwogICAgICAgIGlmICh0aGlzLmRpdiAmJiBjYW52YXMgaW5zdGFuY2VvZiBIVE1MQ2FudmFzRWxlbWVudCkgewogICAgICAgICAgICB0aGlzLmRpdi5hcHBlbmRDaGlsZChjYW52YXMpOwogICAgICAgIH0KICAgIH0KICAgIHNldEhkck1vZGUoZW5hYmxlZCkgewogICAgICAgIHRoaXMuaGRyRW5hYmxlZCA9IGVuYWJsZWQ7CiAgICAgICAgLy8gVXBkYXRlIGV4aXN0aW5nIGNvbnRleHQKICAgICAgICBpZiAodGhpcy5jb250ZXh0KSB7CiAgICAgICAgICAgIC8vIFNldCBIRFIgY29sb3Igc3BhY2UgYW5kIHRyYW5zZmVyIGZ1bmN0aW9uCiAgICAgICAgICAgIGlmICgiY29sb3JTcGFjZSIgaW4gdGhpcy5jb250ZXh0KSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5jb2xvclNwYWNlID0gZ2V0Q29sb3JTcGFjZShlbmFibGVkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBzZXQgY2FudmFzIGNvbG9yU3BhY2U6IiwgZXJyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHVzZUNhbnZhc0NvbnRleHQodHlwZSkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAoIXRoaXMuY2FudmFzKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBjb250ZXh0OiBudWxsLAogICAgICAgICAgICAgICAgZXJyb3I6ICJub0NhbnZhcyIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIGlmICghdGhpcy5jb250ZXh0KSB7CiAgICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CiAgICAgICAgICAgICAgICBjb2xvclNwYWNlOiBnZXRDb2xvclNwYWNlKHRoaXMuaGRyRW5hYmxlZCksCiAgICAgICAgICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvT2Zmc2NyZWVuQ2FudmFzL2dldENvbnRleHQjZGVzeW5jaHJvbml6ZWQKICAgICAgICAgICAgICAgIGRlc3luY2hyb25pemVkOiAoX2EgPSB0aGlzLm9wdGlvbnMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kcmF3T25TdWJtaXQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHR5cGUgPT0gIndlYmdsIikgewogICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgid2ViZ2wiLCBvcHRpb25zKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmICh0eXBlID09ICJ3ZWJnbDIiKSB7CiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQgPSB0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCJ3ZWJnbDIiLCBvcHRpb25zKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIGlmICh0eXBlID09ICIyZCIpIHsKICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIiwgb3B0aW9ucyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCF0aGlzLmNvbnRleHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogbnVsbCwKICAgICAgICAgICAgICAgICAgICBlcnJvcjogImNyZWF0aW9uRmFpbGVkIiwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKHR5cGUgPT0gIndlYmdsIiAmJiAodGhpcy5jb250ZXh0IGluc3RhbmNlb2YgV2ViR0xSZW5kZXJpbmdDb250ZXh0KSkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsCiAgICAgICAgICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHQKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAodHlwZSA9PSAid2ViZ2wyIiAmJiB0aGlzLmNvbnRleHQgaW5zdGFuY2VvZiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0KSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCwKICAgICAgICAgICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh0eXBlID09ICIyZCIgJiYgKHRoaXMuY29udGV4dCBpbnN0YW5jZW9mIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8fCB0aGlzLmNvbnRleHQgaW5zdGFuY2VvZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCwKICAgICAgICAgICAgICAgIGNvbnRleHQ6IHRoaXMuY29udGV4dAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gewogICAgICAgICAgICBjb250ZXh0OiBudWxsLAogICAgICAgICAgICBlcnJvcjogIm90aGVyQ29udGV4dEluVXNlIgogICAgICAgIH07CiAgICB9CiAgICBzZXRDYW52YXNTaXplKHdpZHRoLCBoZWlnaHQpIHsKICAgICAgICBpZiAodGhpcy5jYW52YXMgJiYgIXRoaXMuaXNUcmFuc2ZlcnJlZCkgewogICAgICAgICAgICAvLyBBc3NpZ25pbmcgZXZlbiB0aGUgc2FtZSBzaXplIGNsZWFycyB0aGUgY2FudmFzIGFuZCByZWNyZWF0ZXMgaXRzCiAgICAgICAgICAgIC8vIGJhY2tpbmcgYnVmZmVyLiBLZWVwIHRoZSBidWZmZXIgd2hpbGUgdGhlIHN0cmVhbSBzaXplIGlzIHN0YWJsZS4KICAgICAgICAgICAgaWYgKHRoaXMuY2FudmFzLndpZHRoICE9PSB3aWR0aCkgdGhpcy5jYW52YXMud2lkdGggPSB3aWR0aDsKICAgICAgICAgICAgaWYgKHRoaXMuY2FudmFzLmhlaWdodCAhPT0gaGVpZ2h0KSB0aGlzLmNhbnZhcy5oZWlnaHQgPSBoZWlnaHQ7CiAgICAgICAgfQogICAgfQogICAgY29tbWl0RnJhbWUoKSB7CiAgICAgICAgaWYgKHRoaXMuY2FudmFzICYmICJjb21taXQiIGluIHRoaXMuY2FudmFzICYmIHR5cGVvZiB0aGlzLmNhbnZhcy5jb21taXQgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAvLyBTaWduYWwgZmluaXNoZWQsIG5vdCBzdXBwb3J0ZWQgaW4gYWxsIGJyb3dzZXJzCiAgICAgICAgICAgIHRoaXMuY2FudmFzLmNvbW1pdCgpOwogICAgICAgIH0KICAgIH0KICAgIHNldHVwKHNldHVwKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgdGhpcy52aWRlb1NpemUgPSBbc2V0dXAud2lkdGgsIHNldHVwLmhlaWdodF07CiAgICAgICAgICAgIHRoaXMuc2V0Q2FudmFzU2l6ZShzZXR1cC53aWR0aCwgc2V0dXAuaGVpZ2h0KTsKICAgICAgICB9KTsKICAgIH0KICAgIGNsZWFudXAoKSB7IH0KICAgIHBvbGxSZXF1ZXN0SWRyKCkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIG9uVXNlckludGVyYWN0aW9uKCkgewogICAgICAgIC8vIE5vdGhpbmcKICAgIH0KICAgIG1vdW50KHBhcmVudCkgewogICAgICAgIGlmICghdGhpcy5kaXYpIHsKICAgICAgICAgICAgdGhyb3cgIkNhbm5vdCBtb3VudCBkaXYgaW5zaWRlIGEgd29ya2VyISI7CiAgICAgICAgfQogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmRpdik7CiAgICB9CiAgICB1bm1vdW50KHBhcmVudCkgewogICAgICAgIGlmICghdGhpcy5kaXYpIHsKICAgICAgICAgICAgdGhyb3cgIkNhbm5vdCB1bm1vdW50IGRpdiBpbnNpZGUgYSB3b3JrZXIhIjsKICAgICAgICB9CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMuZGl2KTsKICAgIH0KICAgIGdldFN0cmVhbVJlY3QoKSB7CiAgICAgICAgaWYgKCF0aGlzLnZpZGVvU2l6ZSB8fCAhdGhpcy5jYW52YXMpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBET01SZWN0KCk7CiAgICAgICAgfQogICAgICAgIGlmICghKHRoaXMuY2FudmFzIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpKSB7CiAgICAgICAgICAgIHRocm93ICJDYW5ub3QgZ2V0IGNsaWVudCBib3VuZGluZyByZWN0IG9mIE9mZnNjcmVlbkNhbnZhcyEiOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZ2V0U3RyZWFtUmVjdENvcnJlY3RlZCh0aGlzLmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwgdGhpcy52aWRlb1NpemUpOwogICAgfQogICAgZ2V0QmFzZSgpIHsKICAgICAgICByZXR1cm4gbnVsbDsKICAgIH0KfQpleHBvcnQgY2xhc3MgTWFpbkNhbnZhc1JlbmRlcmVyIGV4dGVuZHMgQmFzZUNhbnZhc1ZpZGVvUmVuZGVyZXIgewogICAgc3RhdGljIGdldEluZm8oKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgLy8gbm8gbGluawogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6ICJIVE1MQ2FudmFzRWxlbWVudCIgaW4gZ2xvYmFsT2JqZWN0KCkgJiYgIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIgaW4gZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYWxsVmlkZW9Db2RlY3MoKQogICAgICAgICAgICB9OwogICAgICAgIH0pOwogICAgfQogICAgY29uc3RydWN0b3IobG9nZ2VyLCBvcHRpb25zKSB7CiAgICAgICAgc3VwZXIoImNhbnZhcyIsIG9wdGlvbnMpOwogICAgICAgIGxvZ2dlciA9PT0gbnVsbCB8fCBsb2dnZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGxvZ2dlci5kZWJ1ZyhgQXBwbHlpbmcgY2FudmFzIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkob3B0aW9ucyl9YCk7CiAgICAgICAgdGhpcy5zZXRDYW52YXMoQmFzZUNhbnZhc1ZpZGVvUmVuZGVyZXIuY3JlYXRlTWFpbkNhbnZhcygpKTsKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcyk7CiAgICB9CiAgICBzZXR1cChzZXR1cCkgewogICAgICAgIGNvbnN0IF9zdXBlciA9IE9iamVjdC5jcmVhdGUobnVsbCwgewogICAgICAgICAgICBzZXR1cDogeyBnZXQ6ICgpID0+IHN1cGVyLnNldHVwIH0KICAgICAgICB9KTsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICB5aWVsZCBfc3VwZXIuc2V0dXAuY2FsbCh0aGlzLCBzZXR1cCk7CiAgICAgICAgfSk7CiAgICB9CiAgICBjbGVhbnVwKCkgewogICAgICAgIHN1cGVyLmNsZWFudXAoKTsKICAgIH0KICAgIG1vdW50KHBhcmVudCkgewogICAgICAgIHN1cGVyLm1vdW50KHBhcmVudCk7CiAgICB9Cn0KTWFpbkNhbnZhc1JlbmRlcmVyLnR5cGUgPSAiY2FudmFzIjsK"},{"path":"PCREMOTE-REVIEWED-JS/stream/video/canvas_frame.js","sha256":"e5f87109ae7401a8e4981af17a6dfef8fb3d7ffd1b474214dfae283948b56fb9","contentBase64":"dmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7CiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0KICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH0KICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9CiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH0KICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7CiAgICB9KTsKfTsKaW1wb3J0IHsgY29weUludG9ZdXYsIHl1dkJ1ZmZlclNpemUgfSBmcm9tICIuLi8uLi9saWJvcGVuaDI2NC9pbmRleC5qcyI7CmltcG9ydCB7IGdsb2JhbE9iamVjdCB9IGZyb20gIi4uLy4uL3V0aWwuanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IGFsbFZpZGVvQ29kZWNzIH0gZnJvbSAiLi4vdmlkZW8uanMiOwpjbGFzcyBCYXNlQ2FudmFzRnJhbWVEcmF3UGlwZSB7CiAgICBzdGF0aWMgZ2V0SW5mbygpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICAvLyBubyBsaW5rCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIgaW4gZ2xvYmFsT2JqZWN0KCkgfHwgIk9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIgaW4gZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYWxsVmlkZW9Db2RlY3MoKQogICAgICAgICAgICB9OwogICAgICAgIH0pOwogICAgfQogICAgY29uc3RydWN0b3IoaW1wbGVtZW50YXRpb25OYW1lLCBiYXNlLCBfbG9nZ2VyLCBvcHRpb25zKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ID0gbnVsbDsKICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uTmFtZSA9IGltcGxlbWVudGF0aW9uTmFtZTsKICAgICAgICB0aGlzLmJhc2UgPSBiYXNlOwogICAgICAgIGNvbnN0IG9wdHMgPSBvcHRpb25zOwogICAgICAgIHRoaXMuZHJhd09uU3VibWl0ID0gKF9hID0gb3B0cyA9PT0gbnVsbCB8fCBvcHRzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvcHRzLmRyYXdPblN1Ym1pdCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdHJ1ZTsKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcyk7CiAgICB9CiAgICBzZXR1cChzZXR1cCkgewogICAgICAgIHZhciBhcmd1bWVudHNfMSA9IGFyZ3VtZW50czsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICBpZiAoIXRoaXMuZHJhd09uU3VibWl0ICYmIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ID09IG51bGwpIHsKICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMub25BbmltYXRpb25GcmFtZS5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoInNldHVwIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5zZXR1cCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5iYXNlLnNldHVwKC4uLmFyZ3VtZW50c18xKTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwogICAgfQogICAgY2xlYW51cCgpIHsKICAgICAgICBpZiAodGhpcy5hbmltYXRpb25GcmFtZVJlcXVlc3QgIT09IG51bGwpIHsKICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5hbmltYXRpb25GcmFtZVJlcXVlc3QpOwogICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkZyYW1lUmVxdWVzdCA9IG51bGw7CiAgICAgICAgfQogICAgICAgIGlmICgiY2xlYW51cCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2UuY2xlYW51cCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhc2UuY2xlYW51cCguLi5hcmd1bWVudHMpOwogICAgICAgIH0KICAgIH0KICAgIG9uRnJhbWVTdWJtaXR0ZWQoKSB7CiAgICAgICAgaWYgKHRoaXMuZHJhd09uU3VibWl0KSB7CiAgICAgICAgICAgIHRoaXMuZHJhd0N1cnJlbnRGcmFtZUlmUmVhZHkoKTsKICAgICAgICB9CiAgICB9CiAgICBvbkFuaW1hdGlvbkZyYW1lKCkgewogICAgICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ID0gbnVsbDsKICAgICAgICBpZiAoIXRoaXMuZHJhd09uU3VibWl0KSB7CiAgICAgICAgICAgIHRoaXMuZHJhd0N1cnJlbnRGcmFtZUlmUmVhZHkoKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5hbmltYXRpb25GcmFtZVJlcXVlc3QgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5vbkFuaW1hdGlvbkZyYW1lLmJpbmQodGhpcykpOwogICAgfQogICAgZ2V0QmFzZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5iYXNlOwogICAgfQp9CkJhc2VDYW52YXNGcmFtZURyYXdQaXBlLmJhc2VUeXBlID0gImNhbnZhcyI7CmV4cG9ydCBjbGFzcyBDYW52YXNGcmFtZURyYXdQaXBlIGV4dGVuZHMgQmFzZUNhbnZhc0ZyYW1lRHJhd1BpcGUgewogICAgc3RhdGljIGdldEluZm8oKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgLy8gbm8gbGluawogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6ICJDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiIGluIGdsb2JhbE9iamVjdCgpIHx8ICJPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiIGluIGdsb2JhbE9iamVjdCgpLAogICAgICAgICAgICAgICAgc3VwcG9ydGVkVmlkZW9Db2RlY3M6IGFsbFZpZGVvQ29kZWNzKCkKICAgICAgICAgICAgfTsKICAgICAgICB9KTsKICAgIH0KICAgIGNvbnN0cnVjdG9yKGJhc2UsIF9sb2dnZXIsIG9wdGlvbnMpIHsKICAgICAgICBzdXBlcihgY2FudmFzX2ZyYW1lIC0+ICR7YmFzZS5pbXBsZW1lbnRhdGlvbk5hbWV9YCwgYmFzZSwgX2xvZ2dlciwgb3B0aW9ucyk7CiAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUgPSBudWxsOwogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKTsKICAgIH0KICAgIHN1Ym1pdEZyYW1lKGZyYW1lKSB7CiAgICAgICAgdmFyIF9hOwogICAgICAgIChfYSA9IHRoaXMuY3VycmVudEZyYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2xvc2UoKTsKICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSA9IGZyYW1lOwogICAgICAgIHRoaXMub25GcmFtZVN1Ym1pdHRlZCgpOwogICAgfQogICAgY2xlYW51cCgpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgKF9hID0gdGhpcy5jdXJyZW50RnJhbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jbG9zZSgpOwogICAgICAgIHRoaXMuY3VycmVudEZyYW1lID0gbnVsbDsKICAgICAgICBzdXBlci5jbGVhbnVwKCk7CiAgICB9CiAgICAvKiogRHJhdyBjdXJyZW50RnJhbWUgdG8gY2FudmFzIGlmIGNvbnRleHQgYW5kIGZyYW1lIGFyZSByZWFkeS4gT25seSB1cGRhdGVzIHNpemUgd2hlbiBkaW1lbnNpb25zIGNoYW5nZS4gKi8KICAgIGRyYXdDdXJyZW50RnJhbWVJZlJlYWR5KCkgewogICAgICAgIGNvbnN0IGZyYW1lID0gdGhpcy5jdXJyZW50RnJhbWU7CiAgICAgICAgY29uc3QgeyBjb250ZXh0LCBlcnJvciB9ID0gdGhpcy5iYXNlLnVzZUNhbnZhc0NvbnRleHQoIjJkIik7CiAgICAgICAgaWYgKCFmcmFtZSB8fCBlcnJvcikgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IHcgPSBmcmFtZS5kaXNwbGF5V2lkdGg7CiAgICAgICAgY29uc3QgaCA9IGZyYW1lLmRpc3BsYXlIZWlnaHQ7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdGhpcy5iYXNlLnNldENhbnZhc1NpemUodywgaCk7CiAgICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIHcsIGgpOwogICAgICAgICAgICBjb250ZXh0LmRyYXdJbWFnZShmcmFtZSwgMCwgMCwgdywgaCk7CiAgICAgICAgICAgIHRoaXMuYmFzZS5jb21taXRGcmFtZSgpOwogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIC8vIGRyYXdJbWFnZSBoYXMgY29waWVkIHRoZSBmcmFtZTsgcmV0dXJuIHRoZSBkZWNvZGVyIHN1cmZhY2UgcHJvbXB0bHkuCiAgICAgICAgICAgIGZyYW1lLmNsb3NlKCk7CiAgICAgICAgICAgIHRoaXMuY3VycmVudEZyYW1lID0gbnVsbDsKICAgICAgICB9CiAgICB9Cn0KQ2FudmFzRnJhbWVEcmF3UGlwZS50eXBlID0gInZpZGVvZnJhbWUiOwpleHBvcnQgY2xhc3MgQ2FudmFzUmdiYUZyYW1lRHJhd1BpcGUgZXh0ZW5kcyBCYXNlQ2FudmFzRnJhbWVEcmF3UGlwZSB7CiAgICBzdGF0aWMgZ2V0SW5mbygpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICAvLyBubyBsaW5rCiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIgaW4gZ2xvYmFsT2JqZWN0KCkgfHwgIk9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIgaW4gZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYWxsVmlkZW9Db2RlY3MoKQogICAgICAgICAgICB9OwogICAgICAgIH0pOwogICAgfQogICAgY29uc3RydWN0b3IoYmFzZSwgX2xvZ2dlciwgb3B0aW9ucykgewogICAgICAgIHN1cGVyKGByZ2JhX2NhbnZhc19mcmFtZSAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAsIGJhc2UsIF9sb2dnZXIsIG9wdGlvbnMpOwogICAgICAgIHRoaXMuY3VycmVudEZyYW1lID0gbnVsbDsKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcyk7CiAgICB9CiAgICBzdWJtaXRSYXdGcmFtZShmcmFtZSkgewogICAgICAgIHRoaXMuY3VycmVudEZyYW1lID0gbmV3IEltYWdlRGF0YShmcmFtZS5idWZmZXIsIGZyYW1lLndpZHRoLCBmcmFtZS5oZWlnaHQpOwogICAgICAgIHRoaXMub25GcmFtZVN1Ym1pdHRlZCgpOwogICAgfQogICAgLyoqIERyYXcgY3VycmVudEZyYW1lIHRvIGNhbnZhcyBpZiBjb250ZXh0IGFuZCBmcmFtZSBhcmUgcmVhZHkuIE9ubHkgdXBkYXRlcyBzaXplIHdoZW4gZGltZW5zaW9ucyBjaGFuZ2UuICovCiAgICBkcmF3Q3VycmVudEZyYW1lSWZSZWFkeSgpIHsKICAgICAgICBjb25zdCBmcmFtZSA9IHRoaXMuY3VycmVudEZyYW1lOwogICAgICAgIGNvbnN0IHsgY29udGV4dCwgZXJyb3IgfSA9IHRoaXMuYmFzZS51c2VDYW52YXNDb250ZXh0KCIyZCIpOwogICAgICAgIGlmICghZnJhbWUgfHwgZXJyb3IpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBjb25zdCB3ID0gZnJhbWUud2lkdGg7CiAgICAgICAgY29uc3QgaCA9IGZyYW1lLmhlaWdodDsKICAgICAgICB0aGlzLmJhc2Uuc2V0Q2FudmFzU2l6ZSh3LCBoKTsKICAgICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCB3LCBoKTsKICAgICAgICBjb250ZXh0LnB1dEltYWdlRGF0YShmcmFtZSwgMCwgMCk7CiAgICAgICAgdGhpcy5iYXNlLmNvbW1pdEZyYW1lKCk7CiAgICB9Cn0KQ2FudmFzUmdiYUZyYW1lRHJhd1BpcGUudHlwZSA9ICJyZ2JhdmlkZW9mcmFtZSI7CmV4cG9ydCBjbGFzcyBDYW52YXNZdXY0MjBGcmFtZURyYXdQaXBlIGV4dGVuZHMgQmFzZUNhbnZhc0ZyYW1lRHJhd1BpcGUgewogICAgc3RhdGljIGdldEluZm8oKSB7CiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgLy8gbm8gbGluawogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6ICJXZWJHTFJlbmRlcmluZ0NvbnRleHQiIGluIGdsb2JhbE9iamVjdCgpLAogICAgICAgICAgICAgICAgc3VwcG9ydGVkVmlkZW9Db2RlY3M6IGFsbFZpZGVvQ29kZWNzKCkKICAgICAgICAgICAgfTsKICAgICAgICB9KTsKICAgIH0KICAgIGNvbnN0cnVjdG9yKGJhc2UsIGxvZ2dlciwgb3B0aW9ucykgewogICAgICAgIHN1cGVyKGByZ2JhX2NhbnZhc19mcmFtZSAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAsIGJhc2UsIGxvZ2dlciwgb3B0aW9ucyk7CiAgICAgICAgdGhpcy5lcnJvcmVkID0gZmFsc2U7CiAgICAgICAgdGhpcy5zaXplQ2hhbmdlZCA9IGZhbHNlOwogICAgICAgIHRoaXMud2lkdGggPSAtMTsKICAgICAgICB0aGlzLmhlaWdodCA9IC0xOwogICAgICAgIHRoaXMuY3VycmVudEZyYW1lID0gbnVsbDsKICAgICAgICB0aGlzLnRleHR1cmVZID0gbnVsbDsKICAgICAgICB0aGlzLnRleHR1cmVVID0gbnVsbDsKICAgICAgICB0aGlzLnRleHR1cmVWID0gbnVsbDsKICAgICAgICB0aGlzLnByb2dyYW0gPSBudWxsOwogICAgICAgIHRoaXMucXVhZCA9IG51bGw7CiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgIT09IG51bGwgJiYgbG9nZ2VyICE9PSB2b2lkIDAgPyBsb2dnZXIgOiBudWxsOwogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKTsKICAgIH0KICAgIHN1Ym1pdFJhd0ZyYW1lKGZyYW1lKSB7CiAgICAgICAgaWYgKHRoaXMuZXJyb3JlZCkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IGJ1ZmZlclNpemUgPSB5dXZCdWZmZXJTaXplKGZyYW1lLndpZHRoLCBmcmFtZS5oZWlnaHQpOwogICAgICAgIGlmICghdGhpcy5jdXJyZW50RnJhbWUgfHwgdGhpcy5jdXJyZW50RnJhbWUubGVuZ3RoIDwgYnVmZmVyU2l6ZSkgewogICAgICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlclNpemUpOwogICAgICAgIH0KICAgICAgICBjb3B5SW50b1l1dihbZnJhbWUueVBsYW5lLCBmcmFtZS51UGxhbmUsIGZyYW1lLnZQbGFuZV0sIFtmcmFtZS55U3RyaWRlLCBmcmFtZS51dlN0cmlkZV0sIGZyYW1lLndpZHRoLCBmcmFtZS5oZWlnaHQsIHRoaXMuY3VycmVudEZyYW1lKTsKICAgICAgICBpZiAodGhpcy53aWR0aCAhPSBmcmFtZS53aWR0aCB8fCB0aGlzLmhlaWdodCAhPSBmcmFtZS5oZWlnaHQpIHsKICAgICAgICAgICAgdGhpcy53aWR0aCA9IGZyYW1lLndpZHRoOwogICAgICAgICAgICB0aGlzLmhlaWdodCA9IGZyYW1lLmhlaWdodDsKICAgICAgICAgICAgdGhpcy5zaXplQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHRoaXMub25GcmFtZVN1Ym1pdHRlZCgpOwogICAgfQogICAgLyoqIERyYXcgY3VycmVudEZyYW1lIHRvIGNhbnZhcyBpZiBjb250ZXh0IGFuZCBmcmFtZSBhcmUgcmVhZHkuIE9ubHkgdXBkYXRlcyBzaXplIHdoZW4gZGltZW5zaW9ucyBjaGFuZ2UuICovCiAgICBkcmF3Q3VycmVudEZyYW1lSWZSZWFkeSgpIHsKICAgICAgICBpZiAodGhpcy5lcnJvcmVkKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgY29uc3QgZnJhbWUgPSB0aGlzLmN1cnJlbnRGcmFtZTsKICAgICAgICBjb25zdCB7IGNvbnRleHQ6IGdsLCBlcnJvciB9ID0gdGhpcy5iYXNlLnVzZUNhbnZhc0NvbnRleHQoIndlYmdsIik7CiAgICAgICAgaWYgKCFmcmFtZSB8fCBlcnJvcikgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGNvbnN0IHcgPSB0aGlzLndpZHRoOwogICAgICAgIGNvbnN0IGggPSB0aGlzLmhlaWdodDsKICAgICAgICB0aGlzLmJhc2Uuc2V0Q2FudmFzU2l6ZSh3LCBoKTsKICAgICAgICBnbC52aWV3cG9ydCgwLCAwLCB3LCBoKTsKICAgICAgICAvLyAtLSBDcmVhdGUgUHJvZ3JhbSBpZiBub3QgcHJlc2VudAogICAgICAgIGNvbnN0IHByb2dyYW0gPSB0aGlzLmdldFByb2dyYW0oZ2wpOwogICAgICAgIGlmICghcHJvZ3JhbSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIC8vIC0tIENyZWF0ZSBhbmQgQmluZCBRdWFkIHRvIHByb2dyYW0KICAgICAgICBjb25zdCBxdWFkQnVmZmVyID0gdGhpcy5iaW5kUXVhZEJ1ZmZlcihnbCwgcHJvZ3JhbSk7CiAgICAgICAgaWYgKCFxdWFkQnVmZmVyKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgLy8gLS0gQ3JlYXRlIGFuZCBiaW5kIFRleHR1cmUgY29ycmVjdGx5CiAgICAgICAgLy8gc2l6ZUNoYW5nZWQgd2lsbCByZWFsbG9jIGEgdGV4dHVyZSAtPiBzZXQgaXQgdG8gdHJ1ZQogICAgICAgIGlmICghdGhpcy50ZXh0dXJlWSkgewogICAgICAgICAgICB0aGlzLnRleHR1cmVZID0gdGhpcy5jcmVhdGVUZXh0dXJlKGdsKTsKICAgICAgICAgICAgdGhpcy5zaXplQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgICAgIGlmICghdGhpcy5zZXRQcm9ncmFtVGV4dHVyZShnbCwgcHJvZ3JhbSwgInRleHR1cmVZIiwgdGhpcy50ZXh0dXJlWSwgMSkpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMudGV4dHVyZVUpIHsKICAgICAgICAgICAgdGhpcy50ZXh0dXJlVSA9IHRoaXMuY3JlYXRlVGV4dHVyZShnbCk7CiAgICAgICAgICAgIHRoaXMuc2l6ZUNoYW5nZWQgPSB0cnVlOwogICAgICAgICAgICBpZiAoIXRoaXMuc2V0UHJvZ3JhbVRleHR1cmUoZ2wsIHByb2dyYW0sICJ0ZXh0dXJlVSIsIHRoaXMudGV4dHVyZVUsIDIpKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCF0aGlzLnRleHR1cmVWKSB7CiAgICAgICAgICAgIHRoaXMudGV4dHVyZVYgPSB0aGlzLmNyZWF0ZVRleHR1cmUoZ2wpOwogICAgICAgICAgICB0aGlzLnNpemVDaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgaWYgKCF0aGlzLnNldFByb2dyYW1UZXh0dXJlKGdsLCBwcm9ncmFtLCAidGV4dHVyZVYiLCB0aGlzLnRleHR1cmVWLCAzKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIC0tIFVwbG9hZCB0ZXh0dXJlIHRvIHRoZSBncHUKICAgICAgICBjb25zdCBzaXplID0gdGhpcy53aWR0aCAqIHRoaXMuaGVpZ2h0OwogICAgICAgIGNvbnN0IHV2V2lkdGggPSB0aGlzLndpZHRoID4+IDE7CiAgICAgICAgY29uc3QgdXZIZWlnaHQgPSB0aGlzLmhlaWdodCA+PiAxOwogICAgICAgIGNvbnN0IHV2U2l6ZSA9IHV2V2lkdGggKiB1dkhlaWdodDsKICAgICAgICBpZiAodGhpcy5zaXplQ2hhbmdlZCkgewogICAgICAgICAgICAvLyBSZWFsbG9jCiAgICAgICAgICAgIGdsLnBpeGVsU3RvcmVpKGdsLlVOUEFDS19BTElHTk1FTlQsIDEpOwogICAgICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0aGlzLnRleHR1cmVZKTsKICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5MVU1JTkFOQ0UsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCAwLCBnbC5MVU1JTkFOQ0UsIGdsLlVOU0lHTkVEX0JZVEUsIGZyYW1lLnN1YmFycmF5KDAsIHNpemUpKTsKICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGhpcy50ZXh0dXJlVSk7CiAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuTFVNSU5BTkNFLCB1dldpZHRoLCB1dkhlaWdodCwgMCwgZ2wuTFVNSU5BTkNFLCBnbC5VTlNJR05FRF9CWVRFLCBmcmFtZS5zdWJhcnJheShzaXplLCBzaXplICsgdXZTaXplKSk7CiAgICAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRoaXMudGV4dHVyZVYpOwogICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLkxVTUlOQU5DRSwgdXZXaWR0aCwgdXZIZWlnaHQsIDAsIGdsLkxVTUlOQU5DRSwgZ2wuVU5TSUdORURfQllURSwgZnJhbWUuc3ViYXJyYXkoc2l6ZSArIHV2U2l6ZSwgc2l6ZSArIHV2U2l6ZSArIHV2U2l6ZSkpOwogICAgICAgICAgICB0aGlzLnNpemVDaGFuZ2VkID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAvLyBPbmx5IHJlYXNzaWduCiAgICAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRoaXMudGV4dHVyZVkpOwogICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCBnbC5MVU1JTkFOQ0UsIGdsLlVOU0lHTkVEX0JZVEUsIGZyYW1lLnN1YmFycmF5KDAsIHNpemUpKTsKICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGhpcy50ZXh0dXJlVSk7CiAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgdXZXaWR0aCwgdXZIZWlnaHQsIGdsLkxVTUlOQU5DRSwgZ2wuVU5TSUdORURfQllURSwgZnJhbWUuc3ViYXJyYXkoc2l6ZSwgc2l6ZSArIHV2U2l6ZSkpOwogICAgICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0aGlzLnRleHR1cmVWKTsKICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB1dldpZHRoLCB1dkhlaWdodCwgZ2wuTFVNSU5BTkNFLCBnbC5VTlNJR05FRF9CWVRFLCBmcmFtZS5zdWJhcnJheShzaXplICsgdXZTaXplLCBzaXplICsgdXZTaXplICsgdXZTaXplKSk7CiAgICAgICAgfQogICAgICAgIC8vIC0tIERyYXcgdGhlIGZyYW1lCiAgICAgICAgZ2wuZHJhd0FycmF5cyhnbC5UUklBTkdMRV9TVFJJUCwgMCwgNCk7CiAgICAgICAgdGhpcy5iYXNlLmNvbW1pdEZyYW1lKCk7CiAgICB9CiAgICBnZXRQcm9ncmFtKGdsKSB7CiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaDsKICAgICAgICBjb25zdCBWRVJURVhfU0hBREVSID0gYAphdHRyaWJ1dGUgdmVjMiBhUG9zaXRpb247Cgp2YXJ5aW5nIHZlYzIgdlBvc2l0aW9uOwoKdm9pZCBtYWluKCkgewogICBnbF9Qb3NpdGlvbiA9IHZlYzQoYVBvc2l0aW9uLCAwLjAsIDEuMCk7CiAgIHZQb3NpdGlvbiA9IHZlYzIoYVBvc2l0aW9uLngsIC1hUG9zaXRpb24ueSk7Cn0KYDsKICAgICAgICBjb25zdCBGUkFHTUVOVF9TSEFERVIgPSBgCnByZWNpc2lvbiBtZWRpdW1wIGZsb2F0OwoKdmFyeWluZyB2ZWMyIHZQb3NpdGlvbjsKCnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmVZOwp1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlVTsKdW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZVY7CiAKdm9pZCBtYWluKCkgewogICAgdmVjMiB0ZXhDb29yZCA9IHZQb3NpdGlvbi54eSAqIDAuNSArIDAuNTsKCiAgICBmbG9hdCB5ID0gdGV4dHVyZTJEKHRleHR1cmVZLCB0ZXhDb29yZCkucjsKICAgIGZsb2F0IHUgPSB0ZXh0dXJlMkQodGV4dHVyZVUsIHRleENvb3JkKS5yIC0gMC41OwogICAgZmxvYXQgdiA9IHRleHR1cmUyRCh0ZXh0dXJlViwgdGV4Q29vcmQpLnIgLSAwLjU7CgogICAgLy8gQlQuNjAxIGNvbnZlcnNpb24KICAgIGZsb2F0IHIgPSB5ICsgKDEuNDAyICogdik7CiAgICBmbG9hdCBnID0geSAtICgwLjM0NDEzNiAqIHUpIC0gKDAuNzE0MTM2ICogdik7CiAgICBmbG9hdCBiID0geSArICgxLjc3MiAqIHUpOwoKICAgIGdsX0ZyYWdDb2xvciA9IHZlYzQociwgZywgYiwgMS4wKTsKfQpgOwogICAgICAgIGlmICghdGhpcy5wcm9ncmFtKSB7CiAgICAgICAgICAgIC8vIFZlcnRleCBTaGFkZXIKICAgICAgICAgICAgY29uc3QgdmVydGV4U2hhZGVyID0gZ2wuY3JlYXRlU2hhZGVyKGdsLlZFUlRFWF9TSEFERVIpOwogICAgICAgICAgICBpZiAoIXZlcnRleFNoYWRlcikgewogICAgICAgICAgICAgICAgdGhpcy5lcnJvcmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIChfYSA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGVidWcoIkZhaWxlZCB0byBjcmVhdGUgdmVydGV4IHNoYWRlciEiLCB7IHR5cGU6ICJmYXRhbERlc2NyaXB0aW9uIiB9KTsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGdsLnNoYWRlclNvdXJjZSh2ZXJ0ZXhTaGFkZXIsIFZFUlRFWF9TSEFERVIpOwogICAgICAgICAgICBnbC5jb21waWxlU2hhZGVyKHZlcnRleFNoYWRlcik7CiAgICAgICAgICAgIGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHZlcnRleFNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpKSB7CiAgICAgICAgICAgICAgICBjb25zdCBsb2cgPSBnbC5nZXRTaGFkZXJJbmZvTG9nKHZlcnRleFNoYWRlcik7CiAgICAgICAgICAgICAgICB0aGlzLmVycm9yZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgKF9iID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5kZWJ1ZygiRmFpbGVkIHRvIGNvbXBpbGUgdmVydGV4IHNoYWRlciEiLCB7IHR5cGU6ICJmYXRhbERlc2NyaXB0aW9uIiB9KTsKICAgICAgICAgICAgICAgIGlmIChsb2cpIHsKICAgICAgICAgICAgICAgICAgICAoX2MgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmRlYnVnKGxvZyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBGcmFnbWVudCBTaGFkZXIKICAgICAgICAgICAgY29uc3QgZnJhZ21lbnRTaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSKTsKICAgICAgICAgICAgaWYgKCFmcmFnbWVudFNoYWRlcikgewogICAgICAgICAgICAgICAgdGhpcy5lcnJvcmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIChfZCA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuZGVidWcoIkZhaWxlZCB0byBjcmVhdGUgZnJhZ21lbnQgc2hhZGVyISIsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pOwogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZ2wuc2hhZGVyU291cmNlKGZyYWdtZW50U2hhZGVyLCBGUkFHTUVOVF9TSEFERVIpOwogICAgICAgICAgICBnbC5jb21waWxlU2hhZGVyKGZyYWdtZW50U2hhZGVyKTsKICAgICAgICAgICAgaWYgKCFnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoZnJhZ21lbnRTaGFkZXIsIGdsLkNPTVBJTEVfU1RBVFVTKSkgewogICAgICAgICAgICAgICAgdGhpcy5lcnJvcmVkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGNvbnN0IGxvZyA9IGdsLmdldFNoYWRlckluZm9Mb2coZnJhZ21lbnRTaGFkZXIpOwogICAgICAgICAgICAgICAgKF9lID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5kZWJ1ZygiRmFpbGVkIHRvIGNvbXBpbGUgZnJhZ21lbnQgc2hhZGVyISIsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pOwogICAgICAgICAgICAgICAgaWYgKGxvZykgewogICAgICAgICAgICAgICAgICAgIChfZiA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuZGVidWcobG9nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIExpbmsgUHJvZ3JhbQogICAgICAgICAgICBjb25zdCBwcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpOwogICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKICAgICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHByb2dyYW0sIGZyYWdtZW50U2hhZGVyKTsKICAgICAgICAgICAgZ2wubGlua1Byb2dyYW0ocHJvZ3JhbSk7CiAgICAgICAgICAgIGlmICghZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykpIHsKICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWU7CiAgICAgICAgICAgICAgICBjb25zdCBsb2cgPSBnbC5nZXRQcm9ncmFtSW5mb0xvZyhwcm9ncmFtKTsKICAgICAgICAgICAgICAgIChfZyA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cuZGVidWcoIkZhaWxlZCB0byBsaW5rIHByb2dyYW0hIiwgeyB0eXBlOiAiZmF0YWxEZXNjcmlwdGlvbiIgfSk7CiAgICAgICAgICAgICAgICBpZiAobG9nKSB7CiAgICAgICAgICAgICAgICAgICAgKF9oID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9oID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfaC5kZWJ1Zyhsb2cpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5wcm9ncmFtID0gcHJvZ3JhbTsKICAgICAgICAgICAgLy8gVXNlIHByb2dyYW0KICAgICAgICAgICAgZ2wudXNlUHJvZ3JhbSh0aGlzLnByb2dyYW0pOwogICAgICAgICAgICAvLyBNYXJrIHNoYWRlcnMgZm9yIGRlbGV0aW9uLCBpcyBhbGxvd2VkIGF0IHRoaXMgcG9pbnQgYXMgd2UndmUgZ290IHRoZW0gaW4gYSBwcm9ncmFtCiAgICAgICAgICAgIGdsLmRlbGV0ZVNoYWRlcih2ZXJ0ZXhTaGFkZXIpOwogICAgICAgICAgICBnbC5kZWxldGVTaGFkZXIoZnJhZ21lbnRTaGFkZXIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5wcm9ncmFtOwogICAgfQogICAgYmluZFF1YWRCdWZmZXIoZ2wsIHByb2dyYW0pIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgaWYgKCF0aGlzLnF1YWQpIHsKICAgICAgICAgICAgLy8gTm90ZTogV2UncmUgdXNpbmcgYSB0cmlhbmdsZSBzdHJpcAogICAgICAgICAgICBjb25zdCBxdWFkRGF0YSA9IG5ldyBGbG9hdDMyQXJyYXkoWwogICAgICAgICAgICAgICAgLTEsIDEsIC8vIFRvcCBMZWZ0CiAgICAgICAgICAgICAgICAtMSwgLTEsIC8vIEJvdHRvbSBMZWZ0CiAgICAgICAgICAgICAgICAxLCAxLCAvLyBUb3AgUmlnaHQKICAgICAgICAgICAgICAgIDEsIC0xLCAvLyBCb3R0b20gUmlnaHQKICAgICAgICAgICAgXSk7CiAgICAgICAgICAgIGNvbnN0IHF1YWQgPSBnbC5jcmVhdGVCdWZmZXIoKTsKICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHF1YWQpOwogICAgICAgICAgICBnbC5idWZmZXJEYXRhKGdsLkFSUkFZX0JVRkZFUiwgcXVhZERhdGEsIGdsLlNUQVRJQ19EUkFXKTsKICAgICAgICAgICAgdGhpcy5xdWFkID0gcXVhZDsKICAgICAgICAgICAgLy8gU2V0IFZlcnRleCBBdHRyaWJ1dGUKICAgICAgICAgICAgY29uc3QgcXVhZEF0dHJpYiA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICJhUG9zaXRpb24iKTsKICAgICAgICAgICAgaWYgKHF1YWRBdHRyaWIgPT0gLTEpIHsKICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAoX2EgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRlYnVnKCJGYWlsZWQgdG8gZ2V0IFwiYVBvc2l0aW9uXCIgYXR0cmlidXRlIGZyb20gcHJvZ3JhbSIsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pOwogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkocXVhZEF0dHJpYik7CiAgICAgICAgICAgIGdsLnZlcnRleEF0dHJpYlBvaW50ZXIocXVhZEF0dHJpYiwgMiwgZ2wuRkxPQVQsIGZhbHNlLCAwLCAwKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRoaXMucXVhZDsKICAgIH0KICAgIGNyZWF0ZVRleHR1cmUoZ2wpIHsKICAgICAgICBjb25zdCB0ZXh0dXJlID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwogICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleHR1cmUpOwogICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCBnbC5MSU5FQVIpOwogICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpOwogICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1MsIGdsLkNMQU1QX1RPX0VER0UpOwogICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9XUkFQX1QsIGdsLkNMQU1QX1RPX0VER0UpOwogICAgICAgIHJldHVybiB0ZXh0dXJlOwogICAgfQogICAgc2V0UHJvZ3JhbVRleHR1cmUoZ2wsIHByb2dyYW0sIG5hbWUsIHRleHR1cmUsIHRleHR1cmVJZCkgewogICAgICAgIHZhciBfYTsKICAgICAgICBjb25zdCB1bmlmb3JtID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sIG5hbWUpOwogICAgICAgIGlmICh1bmlmb3JtID09IG51bGwpIHsKICAgICAgICAgICAgdGhpcy5lcnJvcmVkID0gdHJ1ZTsKICAgICAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZyhgRmFpbGVkIHRvIGZpbmQgdW5pZm9ybSAiJHtuYW1lfSJgLCB7IHR5cGU6ICJmYXRhbERlc2NyaXB0aW9uIiB9KTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwICsgdGV4dHVyZUlkKTsKICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKTsKICAgICAgICBnbC51bmlmb3JtMWkodW5pZm9ybSwgdGV4dHVyZUlkKTsKICAgICAgICAvLyBGb3IgZnVydGhlciBjYWxscyB1c2UgdGhlIGZpcnN0IHRleHR1cmUKICAgICAgICBnbC5hY3RpdmVUZXh0dXJlKGdsLlRFWFRVUkUwKTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIGNsZWFudXAoKSB7CiAgICAgICAgY29uc3QgeyBjb250ZXh0OiBnbCB9ID0gdGhpcy5iYXNlLnVzZUNhbnZhc0NvbnRleHQoIndlYmdsIik7CiAgICAgICAgaWYgKGdsKSB7CiAgICAgICAgICAgIGdsLmRlbGV0ZVRleHR1cmUodGhpcy50ZXh0dXJlWSk7CiAgICAgICAgICAgIHRoaXMudGV4dHVyZVkgPSBudWxsOwogICAgICAgICAgICBnbC5kZWxldGVUZXh0dXJlKHRoaXMudGV4dHVyZVUpOwogICAgICAgICAgICB0aGlzLnRleHR1cmVVID0gbnVsbDsKICAgICAgICAgICAgZ2wuZGVsZXRlVGV4dHVyZSh0aGlzLnRleHR1cmVWKTsKICAgICAgICAgICAgdGhpcy50ZXh0dXJlViA9IG51bGw7CiAgICAgICAgICAgIGdsLmRlbGV0ZVByb2dyYW0odGhpcy5wcm9ncmFtKTsKICAgICAgICAgICAgdGhpcy5wcm9ncmFtID0gbnVsbDsKICAgICAgICAgICAgZ2wuZGVsZXRlQnVmZmVyKHRoaXMucXVhZCk7CiAgICAgICAgICAgIHRoaXMucXVhZCA9IG51bGw7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzdXBlci5jbGVhbnVwKCk7CiAgICB9Cn0KQ2FudmFzWXV2NDIwRnJhbWVEcmF3UGlwZS50eXBlID0gInl1djQyMHZpZGVvZnJhbWUiOwo="},{"path":"PCREMOTE-REVIEWED-JS/stream/video/video_decoder_pipe.js","sha256":"8020b2bba89aaac4d23bc4b8ed90cbb155f62e8ce948244926d2569817c54764","contentBase64":"dmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7CiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH0KICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH0KICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvclsidGhyb3ciXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9CiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH0KICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7CiAgICB9KTsKfTsKaW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IGFkZFBpcGVQYXNzdGhyb3VnaCB9IGZyb20gIi4uL3BpcGVsaW5lL3BpcGVzLmpzIjsKaW1wb3J0IHsgZW1wdHlWaWRlb0NvZGVjcywgbWF5YmVWaWRlb0NvZGVjcyB9IGZyb20gIi4uL3ZpZGVvLmpzIjsKaW1wb3J0IHsgSDI2NFN0cmVhbVZpZGVvVHJhbnNsYXRvciwgSDI2NVN0cmVhbVZpZGVvVHJhbnNsYXRvciwgVklERU9fREVDT0RFUl9DT0RFQ1NfT1VUX09GX0JBTkQgfSBmcm9tICIuL2FubmV4X2JfdHJhbnNsYXRvci5qcyI7CmV4cG9ydCBjb25zdCBWSURFT19ERUNPREVSX0NPREVDU19JTl9CQU5EID0gewogICAgLy8gYXZjMSA9IG91dCBvZiBiYW5kIGNvbmZpZywgYXZjMyA9IGluIGJhbmQgd2l0aCBzcHMsIHBwcywgaWRyCiAgICAiSDI2NCI6ICJhdmMzLjQyRTAxRSIsCiAgICAiSDI2NF9ISUdIOF80NDQiOiAiYXZjMy42NDAwMzIiLAogICAgLy8gaHZjMSA9IG91dCBvZiBiYW5kIGNvbmZpZywgaGV2MSA9IGluIGJhbmQgd2l0aCBzcHMsIHBwcywgaWRyCiAgICAiSDI2NSI6ICJoZXYxLjEuNi5MOTMuQjAiLAogICAgIkgyNjVfTUFJTjEwIjogImhldjEuMi40LkwxMjAuOTAiLAogICAgIkgyNjVfUkVYVDhfNDQ0IjogImhldjEuNi42Lkw5My45MCIsCiAgICAiSDI2NV9SRVhUMTBfNDQ0IjogImhldjEuNi4xMC5MMTIwLjkwIiwKICAgIC8vIGF2MSBkb2Vzbid0IGhhdmUgaW4gYmFuZCBhbmQgb3V0IG9mIGJhbmQgZGlzdGluY3Rpb24KICAgICJBVjFfTUFJTjgiOiAiYXYwMS4wLjA0TS4wOCIsCiAgICAiQVYxX01BSU4xMCI6ICJhdjAxLjAuMDRNLjEwIiwKICAgICJBVjFfSElHSDhfNDQ0IjogImF2MDEuMC4wOE0uMDgiLAogICAgIkFWMV9ISUdIMTBfNDQ0IjogImF2MDEuMC4wOE0uMTAiCn07CmZ1bmN0aW9uIGRldGVjdENvZGVjcygpIHsKICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgaWYgKCEoImlzQ29uZmlnU3VwcG9ydGVkIiBpbiBWaWRlb0RlY29kZXIpKSB7CiAgICAgICAgICAgIHJldHVybiBtYXliZVZpZGVvQ29kZWNzKCk7CiAgICAgICAgfQogICAgICAgIGNvbnN0IGNvZGVjcyA9IGVtcHR5VmlkZW9Db2RlY3MoKTsKICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdOwogICAgICAgIGZvciAoY29uc3QgY29kZWMgaW4gY29kZWNzKSB7CiAgICAgICAgICAgIHByb21pc2VzLnB1c2goKCgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN1cHBvcnRlZEluQmFuZCA9IHlpZWxkIGdldElmQ29uZmlnU3VwcG9ydGVkKHsKICAgICAgICAgICAgICAgICAgICBjb2RlYzogVklERU9fREVDT0RFUl9DT0RFQ1NfSU5fQkFORFtjb2RlY10KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgY29uc3Qgc3VwcG9ydGVkT3V0T2ZCYW5kID0geWllbGQgZ2V0SWZDb25maWdTdXBwb3J0ZWQoewogICAgICAgICAgICAgICAgICAgIGNvZGVjOiBWSURFT19ERUNPREVSX0NPREVDU19PVVRfT0ZfQkFORFtjb2RlY10KICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgY29kZWNzW2NvZGVjXSA9IHN1cHBvcnRlZEluQmFuZCAhPT0gbnVsbCB8fCBzdXBwb3J0ZWRPdXRPZkJhbmQgIT09IG51bGw7CiAgICAgICAgICAgIH0pKSgpKTsKICAgICAgICB9CiAgICAgICAgeWllbGQgUHJvbWlzZS5hbGwocHJvbWlzZXMpOwogICAgICAgIC8vIFRPRE86IEZpcmVmb3gsIFNhZmFyaSBzYXkgdGhleSBjYW4gcGxheSB0aGlzIGNvZGVjLCBidXQgdGhleSBjYW4ndAogICAgICAgIGNvZGVjcy5IMjY0X0hJR0g4XzQ0NCA9IGZhbHNlOwogICAgICAgIHJldHVybiBjb2RlY3M7CiAgICB9KTsKfQpmdW5jdGlvbiBnZXRJZkNvbmZpZ1N1cHBvcnRlZChjb25maWcpIHsKICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3Qgc3VwcG9ydGVkID0geWllbGQgVmlkZW9EZWNvZGVyLmlzQ29uZmlnU3VwcG9ydGVkKGNvbmZpZyk7CiAgICAgICAgICAgIHJldHVybiBzdXBwb3J0ZWQuc3VwcG9ydGVkID8gY29uZmlnIDogbnVsbDsKICAgICAgICB9CiAgICAgICAgY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgIC8vIE9sZGVyIFdlYkNvZGVjcyBpbXBsZW1lbnRhdGlvbnMgdGhyb3cgZm9yIGNvZGVjIHN0cmluZ3MgdGhleSBjYW5ub3QKICAgICAgICAgICAgLy8gcGFyc2UuIEFuIG9wdGlvbmFsIGNvZGVjIG11c3Qgbm90IHByZXZlbnQgc3VwcG9ydGVkIEgyNjQgZnJvbSBzdGFydGluZy4KICAgICAgICAgICAgLy8gS2VlcCB1bmV4cGVjdGVkIHJ1bnRpbWUgZmFpbHVyZXMgdmlzaWJsZSBpbnN0ZWFkIG9mIG1hc2tpbmcgdGhlbS4KICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9CiAgICB9KTsKfQpleHBvcnQgY2xhc3MgVmlkZW9EZWNvZGVyUGlwZSB7CiAgICBzdGF0aWMgZ2V0SW5mbygpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICBjb25zdCBzdXBwb3J0ZWQgPSAiVmlkZW9EZWNvZGVyIiBpbiBnbG9iYWxPYmplY3QoKTsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIGVudmlyb25tZW50U3VwcG9ydGVkOiBzdXBwb3J0ZWQsCiAgICAgICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogc3VwcG9ydGVkID8geWllbGQgZGV0ZWN0Q29kZWNzKCkgOiBlbXB0eVZpZGVvQ29kZWNzKCkKICAgICAgICAgICAgfTsKICAgICAgICB9KTsKICAgIH0KICAgIGNvbnN0cnVjdG9yKGJhc2UsIGxvZ2dlcikgewogICAgICAgIHRoaXMuZnBzID0gMDsKICAgICAgICB0aGlzLmVycm9yZWQgPSBmYWxzZTsKICAgICAgICB0aGlzLmNsb3NlZCA9IGZhbHNlOwogICAgICAgIHRoaXMuZGVjb2RlclJlY292ZXJpZXMgPSAwOwogICAgICAgIHRoaXMuY29uZmlnID0gbnVsbDsKICAgICAgICB0aGlzLnRyYW5zbGF0b3IgPSBudWxsOwogICAgICAgIHRoaXMuZGVjb2RlclNldHVwRmluaXNoZWQgPSBmYWxzZTsKICAgICAgICB0aGlzLnJlcXVlc3RlZElkciA9IGZhbHNlOwogICAgICAgIHRoaXMubmVlZHNLZXlGcmFtZSA9IHRydWU7CiAgICAgICAgdGhpcy5zdGFydHVwTmVlZHNJZHIgPSBmYWxzZTsKICAgICAgICB0aGlzLmJ1ZmZlcmVkVW5pdHMgPSBbXTsKICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uTmFtZSA9IGB2aWRlb19kZWNvZGVyIC0+ICR7YmFzZS5pbXBsZW1lbnRhdGlvbk5hbWV9YDsKICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciAhPT0gbnVsbCAmJiBsb2dnZXIgIT09IHZvaWQgMCA/IGxvZ2dlciA6IG51bGw7CiAgICAgICAgdGhpcy5iYXNlID0gYmFzZTsKICAgICAgICB0aGlzLmRlY29kZXIgPSBuZXcgVmlkZW9EZWNvZGVyKHsKICAgICAgICAgICAgZXJyb3I6IHRoaXMub25FcnJvci5iaW5kKHRoaXMpLAogICAgICAgICAgICBvdXRwdXQ6IHRoaXMub25PdXRwdXQuYmluZCh0aGlzKQogICAgICAgIH0pOwogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKTsKICAgIH0KICAgIG9uRXJyb3IoZXJyb3IpIHsKICAgICAgICB2YXIgX2E7CiAgICAgICAgdGhpcy5lcnJvcmVkID0gdHJ1ZTsKICAgICAgICAoX2EgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRlYnVnKGBWaWRlb0RlY29kZXIgaGFzIGFuIGVycm9yICR7InRvU3RyaW5nIiBpbiBlcnJvciA/IGVycm9yLnRvU3RyaW5nKCkgOiBgJHtlcnJvcn1gfWAsIHsgdHlwZTogImZhdGFsIiB9KTsKICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTsKICAgIH0KICAgIG9uT3V0cHV0KGZyYW1lKSB7CiAgICAgICAgaWYgKHRoaXMuY2xvc2VkIHx8IHRoaXMuZXJyb3JlZCkgewogICAgICAgICAgICBmcmFtZS5jbG9zZSgpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRoaXMuYmFzZS5zdWJtaXRGcmFtZShmcmFtZSk7CiAgICB9CiAgICB0cnlTZXRDb25maWcoY29kZWMpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnKSB7CiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZyA9IHlpZWxkIGdldElmQ29uZmlnU3VwcG9ydGVkKHsKICAgICAgICAgICAgICAgICAgICBjb2RlYywKICAgICAgICAgICAgICAgICAgICBoYXJkd2FyZUFjY2VsZXJhdGlvbjogInByZWZlci1oYXJkd2FyZSIsCiAgICAgICAgICAgICAgICAgICAgb3B0aW1pemVGb3JMYXRlbmN5OiB0cnVlCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnKSB7CiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZyA9IHlpZWxkIGdldElmQ29uZmlnU3VwcG9ydGVkKHsKICAgICAgICAgICAgICAgICAgICBjb2RlYywKICAgICAgICAgICAgICAgICAgICBvcHRpbWl6ZUZvckxhdGVuY3k6IHRydWUKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWcpIHsKICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnID0geWllbGQgZ2V0SWZDb25maWdTdXBwb3J0ZWQoewogICAgICAgICAgICAgICAgICAgIGNvZGVjLAogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KICAgIHNldHVwKHNldHVwKSB7CiAgICAgICAgdmFyIGFyZ3VtZW50c18xID0gYXJndW1lbnRzOwogICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7CiAgICAgICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZzsKICAgICAgICAgICAgdGhpcy5mcHMgPSBOdW1iZXIuaXNGaW5pdGUoc2V0dXAuZnBzKSAmJiBzZXR1cC5mcHMgPiAwID8gc2V0dXAuZnBzIDogNjA7CiAgICAgICAgICAgIGNvbnN0IGNvZGVjID0gVklERU9fREVDT0RFUl9DT0RFQ1NfSU5fQkFORFtzZXR1cC5jb2RlY107CiAgICAgICAgICAgIHlpZWxkIHRoaXMudHJ5U2V0Q29uZmlnKGNvZGVjKTsKICAgICAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSByZXR1cm47CiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWcpIHsKICAgICAgICAgICAgICAgIGlmIChzZXR1cC5jb2RlYyA9PSAiSDI2NCIgfHwgc2V0dXAuY29kZWMgPT0gIkgyNjRfSElHSDhfNDQ0IikgewogICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRvciA9IG5ldyBIMjY0U3RyZWFtVmlkZW9UcmFuc2xhdG9yKChfYSA9IHRoaXMubG9nZ2VyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB1bmRlZmluZWQpOwogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVjID0gVklERU9fREVDT0RFUl9DT0RFQ1NfT1VUX09GX0JBTkRbc2V0dXAuY29kZWNdOwogICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoaXMudHJ5U2V0Q29uZmlnKGNvZGVjKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNldHVwLmNvZGVjID09ICJIMjY1IiB8fCBzZXR1cC5jb2RlYyA9PSAiSDI2NV9NQUlOMTAiIHx8IHNldHVwLmNvZGVjID09ICJIMjY1X1JFWFQ4XzQ0NCIgfHwgc2V0dXAuY29kZWMgPT0gIkgyNjVfUkVYVDEwXzQ0NCIpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0b3IgPSBuZXcgSDI2NVN0cmVhbVZpZGVvVHJhbnNsYXRvcigoX2IgPSB0aGlzLmxvZ2dlcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogdW5kZWZpbmVkKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCBjb2RlYyA9IFZJREVPX0RFQ09ERVJfQ09ERUNTX09VVF9PRl9CQU5EW3NldHVwLmNvZGVjXTsKICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzLnRyeVNldENvbmZpZyhjb2RlYyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIGlmIChzZXR1cC5jb2RlYyA9PSAiQVYxX01BSU44IiB8fCBzZXR1cC5jb2RlYyA9PSAiQVYxX01BSU4xMCIgfHwgc2V0dXAuY29kZWMgPT0gIkFWMV9ISUdIOF80NDQiIHx8IHNldHVwLmNvZGVjID09ICJBVjFfSElHSDEwXzQ0NCIpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmVycm9yZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIChfYyA9IHRoaXMubG9nZ2VyKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuZGVidWcoIkF2MSBzdHJlYW0gdHJhbnNsYXRvciBpcyBub3QgaW1wbGVtZW50ZWQgY3VycmVudGx5ISIsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgKF9kID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5kZWJ1ZyhgRmFpbGVkIHRvIGZpbmQgc3RyZWFtIHRyYW5zbGF0b3IgZm9yIGNvZGVjICR7c2V0dXAuY29kZWN9YCk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0aGlzLmNsb3NlZCkgcmV0dXJuOwogICAgICAgICAgICBpZiAoIXRoaXMuY29uZmlnKSB7CiAgICAgICAgICAgICAgICB0aGlzLmVycm9yZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgKF9lID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5kZWJ1ZyhgRmFpbGVkIHRvIHNldHVwIFZpZGVvRGVjb2RlciBmb3IgY29kZWMgJHtzZXR1cC5jb2RlY30gYmVjYXVzZSBvZiBtaXNzaW5nIGNvbmZpZ2ApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIChfZiA9IHRoaXMudHJhbnNsYXRvcikgPT09IG51bGwgfHwgX2YgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9mLnNldEJhc2VDb25maWcodGhpcy5jb25maWcpOwogICAgICAgICAgICAoX2cgPSB0aGlzLmxvZ2dlcikgPT09IG51bGwgfHwgX2cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nLmRlYnVnKGBWaWRlb0RlY29kZXIgY29uZmlnOiAke0pTT04uc3RyaW5naWZ5KHRoaXMuY29uZmlnKX1gKTsKICAgICAgICAgICAgdGhpcy5yZXNldCgpOwogICAgICAgICAgICB0aGlzLmRlY29kZXJTZXR1cEZpbmlzaGVkID0gdHJ1ZTsKICAgICAgICAgICAgaWYgKCJzZXR1cCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2Uuc2V0dXAgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIHRoaXMuYmFzZS5zZXR1cCguLi5hcmd1bWVudHNfMSk7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KICAgIHN1Ym1pdERlY29kZVVuaXQodW5pdCkgewogICAgICAgIHZhciBfYTsKICAgICAgICBpZiAodGhpcy5lcnJvcmVkIHx8IHRoaXMuY2xvc2VkKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoIkNhbm5vdCBzdWJtaXQgdmlkZW8gZGVjb2RlIHVuaXQgYmVjYXVzZSB0aGUgc3RyZWFtIGVycm9yZWQiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMuZGVjb2RlclNldHVwRmluaXNoZWQpIHsKICAgICAgICAgICAgaWYgKHVuaXQudHlwZSA9PT0gImtleSIpIHsKICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyZWRVbml0cyA9IFtdOwogICAgICAgICAgICAgICAgdGhpcy5zdGFydHVwTmVlZHNJZHIgPSBmYWxzZTsKICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0dXBOZWVkc0lkcikgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuYnVmZmVyZWRVbml0cy5wdXNoKHVuaXQpOwogICAgICAgICAgICAvLyBEZWNvZGVyIGNhcGFiaWxpdHkgcHJvYmVzIG1heSBiZSBzbG93LiBOZXZlciByZXBsYXkgYSBsb25nIHN0YXJ0dXAKICAgICAgICAgICAgLy8gYmFja2xvZyBvciBkcm9wIGFuIGludGVyLWZyYW1lIGRlcGVuZGVuY3kgYW5kIGRlY29kZSBpdHMgY2hpbGRyZW4uCiAgICAgICAgICAgIGlmICh0aGlzLmJ1ZmZlcmVkVW5pdHMubGVuZ3RoID4gTWF0aC5tYXgoMywgTWF0aC5jZWlsKHRoaXMuZnBzIC8gMTApKSkgewogICAgICAgICAgICAgICAgdGhpcy5idWZmZXJlZFVuaXRzID0gW107CiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0dXBOZWVkc0lkciA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5idWZmZXJlZFVuaXRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgY29uc3QgYnVmZmVyZWRVbml0cyA9IHRoaXMuYnVmZmVyZWRVbml0cy5zcGxpY2UoMCk7CiAgICAgICAgICAgIGZvciAoY29uc3QgYnVmZmVyZWRVbml0IG9mIGJ1ZmZlcmVkVW5pdHMpIHsKICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0RGVjb2RlVW5pdChidWZmZXJlZFVuaXQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICh1bml0LnR5cGUgIT09ICJrZXkiICYmIHRoaXMubmVlZHNLZXlGcmFtZSkgcmV0dXJuOwogICAgICAgIGlmICh1bml0LnR5cGUgPT09ICJrZXkiKSB0aGlzLnN0YXJ0dXBOZWVkc0lkciA9IGZhbHNlOwogICAgICAgIGlmICh0aGlzLnRyYW5zbGF0b3IpIHsKICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnRyYW5zbGF0b3Iuc3VibWl0RGVjb2RlVW5pdCh1bml0KTsKICAgICAgICAgICAgaWYgKHZhbHVlLmVycm9yKSB7CiAgICAgICAgICAgICAgICB0aGlzLmVycm9yZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZygiVmlkZW9EZWNvZGVyIGhhcyBlcnJvcmVkISIpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHsgY29uZmlndXJlLCBjaHVuayB9ID0gdmFsdWU7CiAgICAgICAgICAgIGlmICghY2h1bmspIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoIk5vIGNodW5rIHJlY2VpdmVkISIpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjb25maWd1cmUpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoIlJlc2V0dGluZyB2aWRlbyBkZWNvZGVyIGNvbmZpZyB3aXRoIiwgY29uZmlndXJlKTsKICAgICAgICAgICAgICAgIHRoaXMuZGVjb2Rlci5yZXNldCgpOwogICAgICAgICAgICAgICAgdGhpcy5kZWNvZGVyLmNvbmZpZ3VyZShjb25maWd1cmUpOwogICAgICAgICAgICAgICAgLy8gVGhpcyBsaWtlbHkgaXMgYW4gaWRyCiAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RlZElkciA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGVuY29kZWRDaHVuayA9IG5ldyBFbmNvZGVkVmlkZW9DaHVuayh7CiAgICAgICAgICAgICAgICB0eXBlOiB1bml0LnR5cGUsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IHVuaXQudGltZXN0YW1wTWljcm9zZWNvbmRzLAogICAgICAgICAgICAgICAgZHVyYXRpb246IHVuaXQuZHVyYXRpb25NaWNyb3NlY29uZHMsCiAgICAgICAgICAgICAgICBkYXRhOiBjaHVuaywKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRoaXMuZGVjb2Rlci5kZWNvZGUoZW5jb2RlZENodW5rKTsKICAgICAgICAgICAgdGhpcy5uZWVkc0tleUZyYW1lID0gZmFsc2U7CiAgICAgICAgICAgIHRoaXMucmVxdWVzdGVkSWRyID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAodW5pdC50eXBlICE9ICJrZXkiICYmIHRoaXMubmVlZHNLZXlGcmFtZSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMubmVlZHNLZXlGcmFtZSA9IGZhbHNlOwogICAgICAgICAgICB0aGlzLnJlcXVlc3RlZElkciA9IGZhbHNlOwogICAgICAgICAgICBjb25zdCBjaHVuayA9IG5ldyBFbmNvZGVkVmlkZW9DaHVuayh7CiAgICAgICAgICAgICAgICB0eXBlOiB1bml0LnR5cGUsCiAgICAgICAgICAgICAgICBkYXRhOiB1bml0LmRhdGEsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IHVuaXQudGltZXN0YW1wTWljcm9zZWNvbmRzLAogICAgICAgICAgICAgICAgZHVyYXRpb246IHVuaXQuZHVyYXRpb25NaWNyb3NlY29uZHMKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRoaXMuZGVjb2Rlci5kZWNvZGUoY2h1bmspOwogICAgICAgIH0KICAgIH0KICAgIHJlc2V0KCkgewogICAgICAgIHZhciBfYTsKICAgICAgICB0aGlzLm5lZWRzS2V5RnJhbWUgPSB0cnVlOwogICAgICAgIGlmICghdGhpcy50cmFuc2xhdG9yKSB7CiAgICAgICAgICAgIHRoaXMuZGVjb2Rlci5yZXNldCgpOwogICAgICAgICAgICB0aGlzLm5lZWRzS2V5RnJhbWUgPSB0cnVlOwogICAgICAgICAgICBpZiAodGhpcy5jb25maWcpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVjb2Rlci5jb25maWd1cmUodGhpcy5jb25maWcpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgKF9hID0gdGhpcy5sb2dnZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kZWJ1ZygiRmFpbGVkIHRvIGNvbmZpZ3VyZSBWaWRlb0RlY29kZXIgYmVjYXVzZSBvZiBtaXNzaW5nIGNvbmZpZyIsIHsgdHlwZTogImZhdGFsIiB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmICh0aGlzLmNvbmZpZykgewogICAgICAgICAgICAvLyBQcmVzZXJ2ZSBwYXJzZWQgU1BTL1BQUywgYnV0IGRpc2NhcmQgcXVldWVkIGZyYW1lcyBpbiB0aGUgYWN0dWFsCiAgICAgICAgICAgIC8vIGRlY29kZXIgdG9vLiBVcGRhdGluZyB0aGUgdHJhbnNsYXRvciBhbG9uZSBsZWF2ZXMgdGhlIGJhY2tsb2cuCiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnRyYW5zbGF0b3IuZ2V0Q3VycmVudENvbmZpZygpOwogICAgICAgICAgICBpZiAoY3VycmVudCAmJiBjdXJyZW50LmRlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgICAgICB0aGlzLmRlY29kZXIucmVzZXQoKTsKICAgICAgICAgICAgICAgIHRoaXMuZGVjb2Rlci5jb25maWd1cmUoY3VycmVudCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0b3Iuc2V0QmFzZUNvbmZpZyh0aGlzLmNvbmZpZyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBwb2xsUmVxdWVzdElkcigpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQgfHwgdGhpcy5lcnJvcmVkIHx8ICF0aGlzLmRlY29kZXJTZXR1cEZpbmlzaGVkKSByZXR1cm4gZmFsc2U7CiAgICAgICAgbGV0IHJlcXVlc3RJZHIgPSBmYWxzZTsKICAgICAgICBjb25zdCBlc3RpbWF0ZWRRdWV1ZURlbGF5TXMgPSB0aGlzLmRlY29kZXIuZGVjb2RlUXVldWVTaXplICogMTAwMCAvIHRoaXMuZnBzOwogICAgICAgIGlmICh0aGlzLnN0YXJ0dXBOZWVkc0lkciB8fCAoZXN0aW1hdGVkUXVldWVEZWxheU1zID49IDEwMCAmJiB0aGlzLmRlY29kZXIuZGVjb2RlUXVldWVTaXplID4gMikpIHsKICAgICAgICAgICAgLy8gUmVqb2luIGF0IGEga2V5IGZyYW1lIHJhdGhlciB0aGFuIGxldHRpbmcgaW50ZXJhY3RpdmUgdmlkZW8gdHJhaWwKICAgICAgICAgICAgLy8gdXNlciBpbnB1dC4gT3JkaW5hcnkgb25lL3R3by1mcmFtZSBoYXJkd2FyZSBkZWNvZGUgYnVyc3RzIGFyZSBrZXB0LgogICAgICAgICAgICBpZiAoIXRoaXMucmVxdWVzdGVkSWRyKSB7CiAgICAgICAgICAgICAgICByZXF1ZXN0SWRyID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgICAgICAgICAgIHRoaXMuc3RhcnR1cE5lZWRzSWRyID0gZmFsc2U7CiAgICAgICAgICAgICAgICB0aGlzLmRlY29kZXJSZWNvdmVyaWVzKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgUmVxdWVzdGluZyBpZHIgYmVjYXVzZSBvZiBkZWNvZGUgcXVldWUgc2l6ZSgke3RoaXMuZGVjb2Rlci5kZWNvZGVRdWV1ZVNpemV9KSBhbmQgZXN0aW1hdGVkIGRlbGF5IG9mIHRoZSBxdWV1ZTogJHtlc3RpbWF0ZWRRdWV1ZURlbGF5TXN9YCk7CiAgICAgICAgfQogICAgICAgIGlmICgicG9sbFJlcXVlc3RJZHIiIGluIHRoaXMuYmFzZSAmJiB0eXBlb2YgdGhpcy5iYXNlLnBvbGxSZXF1ZXN0SWRyID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgaWYgKHRoaXMuYmFzZS5wb2xsUmVxdWVzdElkciguLi5hcmd1bWVudHMpKSB7CiAgICAgICAgICAgICAgICByZXF1ZXN0SWRyID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAocmVxdWVzdElkcikgewogICAgICAgICAgICB0aGlzLnJlcXVlc3RlZElkciA9IHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiByZXF1ZXN0SWRyOwogICAgfQogICAgY2xlYW51cCgpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHJldHVybjsKICAgICAgICB0aGlzLmNsb3NlZCA9IHRydWU7CiAgICAgICAgdGhpcy5idWZmZXJlZFVuaXRzID0gW107CiAgICAgICAgdGhpcy5kZWNvZGVyLmNsb3NlKCk7CiAgICAgICAgaWYgKCJjbGVhbnVwIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5jbGVhbnVwID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFzZS5jbGVhbnVwKGFyZ3VtZW50cyk7CiAgICAgICAgfQogICAgfQogICAgZ2V0QmFzZSgpIHsKICAgICAgICByZXR1cm4gdGhpcy5iYXNlOwogICAgfQogICAgcmVwb3J0U3RhdHMoc3RhdHMpIHsKICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkgewogICAgICAgICAgICBzdGF0cy5kZWNvZGVyUXVldWVGcmFtZXMgPSB0aGlzLmRlY29kZXIuZGVjb2RlUXVldWVTaXplOwogICAgICAgICAgICBzdGF0cy5kZWNvZGVyUXVldWVNcyA9IHRoaXMuZGVjb2Rlci5kZWNvZGVRdWV1ZVNpemUgKiAxMDAwIC8gdGhpcy5mcHM7CiAgICAgICAgICAgIHN0YXRzLmRlY29kZXJSZWNvdmVyaWVzID0gdGhpcy5kZWNvZGVyUmVjb3ZlcmllczsKICAgICAgICAgICAgaWYgKHRoaXMuYmFzZS5yZXBvcnRTdGF0cykgeWllbGQgdGhpcy5iYXNlLnJlcG9ydFN0YXRzKHN0YXRzKTsKICAgICAgICB9KTsKICAgIH0KfQpWaWRlb0RlY29kZXJQaXBlLmJhc2VUeXBlID0gInZpZGVvZnJhbWUiOwpWaWRlb0RlY29kZXJQaXBlLnR5cGUgPSAidmlkZW9kYXRhIjsK"},{"path":"PCREMOTE-SOURCE.md","sha256":"1923eee00dcaac39468dd1a2417128e45e66e56bec2a8b82a6c65338a4983f43","contentBase64":"IyBQQyBSZW1vdGUgYnJvd3NlciBlbmdpbmUgbWF0Y2hpbmcgc291cmNlIOKAlCAyMDI2LTA5LTI4CgpUaGlzIGJ1bmRsZSBjb250YWlucyB0aGUgY29tcGxldGUgcGlubmVkIE1vb25saWdodCBXZWIgdjIuMTAuMCBzb3VyY2UgdHJlZSB3aXRoCnRoZSBzaXggYnJvd3NlciBUeXBlU2NyaXB0IG1vZHVsZXMgbW9kaWZpZWQgYnkgUEMgUmVtb3RlIHRocm91Z2ggMjAyNi0wOS0yOC4gSXQgaXMKbGljZW5zZWQgR1BMLTMuMC1vci1sYXRlciwgYXMgZGVjbGFyZWQgYnkgdXBzdHJlYW0ncyBwYWNrYWdlLmpzb247IHRoZSBmdWxsIEdQTHYzCnRleHQgaXMgaW4gTElDRU5TRS4gVXBzdHJlYW06IGh0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL21vb25saWdodC13ZWItc3RyZWFtCmF0IHRhZyB2Mi4xMC4wLiBFeGlzdGluZyB1cHN0cmVhbSBjb3B5cmlnaHQgbm90aWNlcyByZW1haW4gaW50YWN0LgoKQ2hhbmdlczogQ2hyb21lIDEwMyBjb2RlYyBwcm9iaW5nIGNvbXBhdGliaWxpdHk7IGJvdW5kZWQgZGVjb2RlciBxdWV1ZXM7CmltbWVkaWF0ZSBjYW52YXMgcmVuZGVyaW5nOyBvd25lZCBkaXJlY3QgV2ViUlRDIGxpZmVjeWNsZSBhbmQgV2ViU29ja2V0IGZhbGxiYWNrOwpzYWZlIGNoYW5uZWwgY2xlYW51cDsgdHJhbnNwb3J0LXNwZWNpZmljIHBlcmZvcm1hbmNlIHN0YXRpc3RpY3M7IHNhbml0aXplZApkaXJlY3QtY29ubmVjdGlvbiBhdHRlbXB0IGRpYWdub3N0aWNzIHJldGFpbmVkIGFmdGVyIFdlYlNvY2tldCBmYWxsYmFjazsgb3JkZXJlZApJQ0Ugc2lnbmFsaW5nIGFyb3VuZCBTRFAgc2V0dXAgd2l0aCBib3VuZGVkIGNhbmRpZGF0ZSBxdWV1ZXMgYW5kIGNsb3NlIGd1YXJkcy4gU2VlClBDUkVNT1RFLVBBVENIRVMubWQuIE5vIG5hdGl2ZSBSdXN0IGNvZGUgd2FzIGNoYW5nZWQgaW4gdGhpcyByZWxlYXNlJ3MgcGF0Y2hlcy4KVGhpcyBpcyB0aGUgYnJvd3NlciBlbmdpbmUgc291cmNlLCBzZXBhcmF0ZSBmcm9tIHRoZSBBbmRyb2lkIGFwcGxpY2F0aW9uIGFuZCB0aGUKUEMgUmVtb3RlIGJyb2tlci9jb25uZWN0b3IuIFByaXZhdGUgY3JlZGVudGlhbHMgYW5kIHJ1bnRpbWUgc3RhdGUgYXJlIG5vdCBuZWVkZWQuCgojIyBSZWJ1aWxkIHRoZSBzaXggc2VydmVkIEphdmFTY3JpcHQgbW9kdWxlcwoKVXNlIE5vZGUuanMgKHZhbGlkYXRlZCB3aXRoIDI0LjIxLjApIGFuZCBUeXBlU2NyaXB0IGV4YWN0bHkgNS45LjM6CgogICAgbnBtIGluc3RhbGwgLS1pZ25vcmUtc2NyaXB0cyAtLW5vLWF1ZGl0IC0tbm8tZnVuZCAtLW5vLXNhdmUgdHlwZXNjcmlwdEA1LjkuMwogICAgbm9kZSBQQ1JFTU9URS1DT01QSUxFLmNqcwoKVGhlIHNjcmlwdCB2ZXJpZmllcyBldmVyeSByZWJ1aWx0IFNIQS0yNTYgYWdhaW5zdCBQQ1JFTU9URS1FWFBFQ1RFRC1KUy5qc29uIGFuZAp3cml0ZXMgb25seSBwY3JlbW90ZS1kaXN0L3N0cmVhbS8uIFRoZSBuZXcgdGhyZWUgdHJhbnNwb3J0IG1vZHVsZXMgcmVwcm9kdWNlIHRoZQpkZXBsb3llZCBKYXZhU2NyaXB0IGJ5dGUtZm9yLWJ5dGUuIFRoZSBvbGRlciB2aWRlbyBtb2R1bGVzIHdlcmUgaGFuZC1lbWl0dGVkIGFuZApjb250YWluIGZvcm1hdHRpbmcgYW5kIGVxdWl2YWxlbnQgb3B0aW9uYWwtcHJvcGVydHkgZ3VhcmQgZGlmZmVyZW5jZXMgZnJvbSB0aGUKVHlwZVNjcmlwdCBjb21waWxlciBvdXRwdXQuIFRoZWlyIGV4YWN0IHJldmlld2VkIEphdmFTY3JpcHQgaXMgYWxzbyBpbmNsdWRlZCBpbgpQQ1JFTU9URS1SRVZJRVdFRC1KUy8sIHdpdGggZGVwbG95ZWQgaGFzaGVzIGluIFBDUkVNT1RFLURFUExPWUVELUpTLmpzb24uIFRvCnJlcHJvZHVjZSB0aGUgc2VydmVkIGZpbGVzIGV4YWN0bHksIHVzZSB0aG9zZSByZXZpZXdlZCBmaWxlczsgdGhlIGVkaXRhYmxlClR5cGVTY3JpcHQgZm9yIGFsbCBzaXggbW9kdWxlcyByZW1haW5zIGluY2x1ZGVkIGFzIHRoZSBwcmVmZXJyZWQgc291cmNlIGZvcm0uClRoZSBzaXggbW9kdWxlcyB1c2UgdGhlIHNhbWUgcmVsYXRpdmUgc3RyZWFtLyBwYXRocyBpbiB0aGUgc3RhdGljIGRpcmVjdG9yeSBvZgp0aGUgcGlubmVkIHVwc3RyZWFtIHYyLjEwLjAgcmVsZWFzZS4KVGhpcyBpcyBhIG1vZHVsZS10cmFuc3BpbGF0aW9uIGJ1aWxkLCBub3QgYSBmdWxsIHNlbWFudGljIHR5cGVjaGVjay4gRm9yIGEgZnVsbAp1cHN0cmVhbSBidWlsZCBpbmNsdWRpbmcgZ2VuZXJhdGVkIFJ1c3QgQVBJIGJpbmRpbmdzLCBmb2xsb3cgdGhlIG9yaWdpbmFsClJFQURNRS5tZCBCdWlsZGluZyBzZWN0aW9uIGFuZCBwYWNrYWdlLmpzb24gc2NyaXB0cy4gVGhlIHVwc3RyZWFtIGxvY2sgZmlsZXMsClJ1c3Qgc291cmNlLCB3ZWIgc291cmNlLCBidWlsZCBjb25maWd1cmF0aW9uIGFuZCBub3RpY2VzIGFyZSBhbGwgaW5jbHVkZWQuCgpEaXN0cmlidXRvcnMgc2hvdWxkIHB1Ymxpc2ggdGhpcyBhcmNoaXZlIGJlc2lkZSB0aGUgYnJvd3NlciBhcHBsaWNhdGlvbiB3aXRoIGEKdmlzaWJsZSBzb3VyY2UgbGluay4gRG8gbm90IHN1YnN0aXR1dGUgdGhlIEFuZHJvaWQgc291cmNlIGRvd25sb2FkIGZvciB0aGlzCmJyb3dzZXIgZW5naW5lIHNvdXJjZS4gUHJlc2VydmUgdGhpcyBub3RpY2UgYW5kIExJQ0VOU0Ugd2hlbiByZWRpc3RyaWJ1dGluZy4K"},{"path":"README.md","sha256":"db979c81899c086954f0c5801f2d6ae80d5870e9a00f21b92c79f1fac252e540","contentBase64":"CiMgTW9vbmxpZ2h0IFdlYgpBbiB1bm9mZmljaWFsIFtNb29ubGlnaHQgQ2xpZW50XShodHRwczovL21vb25saWdodC1zdHJlYW0ub3JnLykgYWxsb3dpbmcgeW91IHRvIHN0cmVhbSB5b3VyIHBjIHRvIHRoZSBXZWIuCkl0IGhvc3RzIGEgV2ViIFNlcnZlciB3aGljaCB3aWxsIGZvcndhcmQgW1N1bnNoaW5lXShodHRwczovL2RvY3MubGl6YXJkYnl0ZS5kZXYvcHJvamVjdHMvc3Vuc2hpbmUvbGF0ZXN0LykgdHJhZmZpYyB0byBhIEJyb3dzZXIgdXNpbmcgdGhlIFtXZWJSVEMgQXBpXShodHRwczovL3dlYnJ0Yy5vcmcvKS4KCiFbQW4gaW1hZ2UgZGlzcGxheWluZzogUEMgd2l0aCBzdW5zaGluZSBhbmQgbW9vbmxpZ2h0IHdlYiBpbnN0YWxsZWQsIGEgYnJvd3NlciBtYWtpbmcgcmVxdWVzdHMgdG8gaXRdKC9yZWFkbWUvc3RydWN0dXJlLnBuZykKCiMjIE92ZXJ2aWV3CgotIFtMaW1pdGF0aW9uc10oI2xpbWl0YXRpb25zKQotIFtJbnN0YWxsYXRpb25dKCNpbnN0YWxsYXRpb24pCiAgLSBbTWFudWFsIEluc3RhbGxhdGlvbl0oI2luc3RhbGwtbWFudWFsbHkpCiAgLSBbRG9ja2VyIEluc3RhbGxhdGlvbl0oZG9ja2VyL1JFQURNRS5tZCkKLSBbU2V0dXBdKCNzZXR1cCkKICAtIFtTdHJlYW1pbmcgb3ZlciB0aGUgSW50ZXJuZXRdKCNzdHJlYW1pbmctb3Zlci10aGUtaW50ZXJuZXQpCiAgLSBbQ29uZmlndXJpbmcgaHR0cHNdKCNjb25maWd1cmluZy1odHRwcykKICAtIFtQcm94eWluZyB2aWEgQXBhY2hlIDJdKCNwcm94eWluZy12aWEtYXBhY2hlLTIpCiAgLSBbQXV0aGVudGljYXRpb24gd2l0aCBhIFJldmVyc2UgUHJveHldKCNhdXRoZW50aWNhdGlvbi11c2luZy1hLXJldmVyc2UtcHJveHkpCiAgLSBbVXNpbmcgV2ViIFNvY2tldCBUcmFuc3BvcnRdKCN1c2luZy13ZWJzb2NrZXQtdHJhbnNwb3J0KQotIFtDb25maWddKCNjb25maWcpCi0gW01pZ3JhdGluZyB0byB2Ml0oI21pZ3JhdGluZy10by12MikKLSBbQ29udHJpYnV0b3JzXSgjY29udHJpYnV0b3JzKQotIFtCdWlsZGluZ10oI2J1aWxkaW5nKQoKIyMgTGltaXRhdGlvbnMKLSBGZWF0dXJlcyB0aGF0IG9ubHkgd29yayBpbiBhIFtTZWN1cmUgQ29udGV4dF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvU2VjdXJpdHkvU2VjdXJlX0NvbnRleHRzIzp+OnRleHQ9VGhleSUyMG11c3QlMjBiZSxiZSUyMGNvbnNpZGVyZWQlMjBkZXByZWNhdGVkLikgLT4gW0hvdyB0byBjb25maWd1cmUgYSBTZWN1cmUgQ29udGV4dCAvIGh0dHBzXSgjY29uZmlndXJpbmctaHR0cHMpCiAgLSBDb250cm9sbGVyczogW0dhbWVwYWQgQVBJXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvR2FtZXBhZF9BUEkpCiAgLSBLZXlib2FyZCBMb2NrIChhbGxvd3MgdG8gY2FwdHVyZSBhbG1vc3QgYWxsIGtleXMgYWxzbyBPUyBLZXlzKTogW0V4cGVyaW1lbnRhbCBLZXlib2FyZCBMb2NrIEFQSV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkX0FQSSkKICAtIFdlYiBTb2NrZXQgVHJhbnNwb3J0IGJlY2F1c2Ugb2YgdGhlIFtXZWIgQ29kZWNzIEFwaV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1ZpZGVvRGVjb2RlcikKCiMjIEluc3RhbGxhdGlvbgoKWW91IGNhbiBpbnN0YWxsIGl0IFttYW51YWxseV0oI2luc3RhbGwtbWFudWFsbHkpIG9yIHdpdGggW2RvY2tlcl0oZG9ja2VyL1JFQURNRS5tZCkKCiMjIyBJbnN0YWxsIE1hbnVhbGx5CgoxLiBJbnN0YWxsIFtTdW5zaGluZV0oaHR0cHM6Ly9naXRodWIuY29tL0xpemFyZEJ5dGUvU3Vuc2hpbmUvYmxvYi92MjAyNS42MjguNDUxMC9kb2NzL2dldHRpbmdfc3RhcnRlZC5tZCkKCjIuIERvd25sb2FkIHRoZSBbY29tcHJlc3NlZCBhcmNoaXZlXShodHRwczovL2dpdGh1Yi5jb20vTXJDcmVhdGl2MzAwMS9tb29ubGlnaHQtd2ViLXN0cmVhbS9yZWxlYXNlcy9sYXRlc3QpIGZvciB5b3VyIHBsYXRmb3JtIGFuZCB1bmNvbXByZXNzIGl0IG9yIFtidWlsZCBpdCB5b3Vyc2VsZl0oI2J1aWxkaW5nKQoKMy4gUnVuIHRoZSAid2ViLXNlcnZlciIgZXhlY3V0YWJsZQoKNC4gR28gdG8gYGxvY2FsaG9zdDo4MDgwYCBhbmQgdmlldyB0aGUgd2ViIGludGVyZmFjZS4gWW91IGNhbiBhbHNvIHRoZSBjaGFuZ2UgW2JpbmQgYWRkcmVzc10oI2JpbmQtYWRkcmVzcykuCgojIyBTZXR1cAoKMS4gQWRkIGEgbmV3IHVzZXIgYnkgdHlwaW5nIGluIHlvdXIgbmFtZSBhbmQgcGFzc3dvcmQuIFRoZSBmaXJzdCB1c2VyIHRvIGxvZ2luIHdpbGwgYmUgY3JlYXRlZCBhbmQgd2lsbCBiZSB0aGUgYWRtaW4uCgoyLiBBZGQgYSBuZXcgcGMgKDxpbWcgc3JjPSJ3ZWIvcmVzb3VyY2VzL2ljX2FkZF90b19xdWV1ZV93aGl0ZV80OHB4LnN2ZyIgYWx0PSJpY29uIiBzdHlsZT0iaGVpZ2h0OjFlbTsgdmVydGljYWwtYWxpZ246bWlkZGxlOyI+KSB3aXRoIHRoZSBhZGRyZXNzIGFzIGBsb2NhbGhvc3RgIGFuZCBsZWF2ZSB0aGUgcG9ydCBlbXB0eSAoaWYgeW91J3ZlIGdvdCB0aGUgZGVmYXVsdCBwb3J0KQoKMi4gUGFpciB5b3VyIHBjIGJ5IGNsaWNraW5nIG9uIHRoZSBob3N0ICg8aW1nIHNyYz0id2ViL3Jlc291cmNlcy9kZXNrdG9wX3dpbmRvd3MtNDhweC5zdmciIGFsdD0iaWNvbiIgc3R5bGU9ImhlaWdodDoxZW07IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsiPikuIFRoZW4gZW50ZXIgdGhlIGNvZGUgaW4gc3Vuc2hpbmUKCjMuIExhdW5jaCBhbiBhcHAKCiMjIyBTdHJlYW1pbmcgb3ZlciB0aGUgSW50ZXJuZXQKCjEuIEZvcndhcmQgdGhlIHdlYiBzZXJ2ZXIgcG9ydCBvbiB5b3VyIHJvdXRlciAoZGVmYXVsdCBpcyBgODA4MGA7IEhUVFAgaXMgYDgwYCwgSFRUUFMgaXMgYDQ0M2ApLiAgCiAgIFlvdSBjYW4gY29uZmlndXJlIHRoaXMgdXNpbmcgdGhlIFtgYmluZF9hZGRyZXNzYF0oI2JpbmQtYWRkcmVzcykgb3B0aW9uLgoKV2hlbiBydW5uaW5nIG9uIGEgKipsb2NhbCBuZXR3b3JrKiosIFdlYlJUQyBwZWVycyB1c3VhbGx5IG5lZ290aWF0ZSBjb25uZWN0aW9ucyB3aXRob3V0IGFueSBpc3N1ZXMuCgpXaGVuIHN0cmVhbWluZyAqKm92ZXIgdGhlIEludGVybmV0KiosIHRoZSBidWlsdC1pbiBTVFVOIHNlcnZlcnMgd2lsbCBhdHRlbXB0IHRvIGVzdGFibGlzaCBhIGRpcmVjdCBwZWVyLXRvLXBlZXIgV2ViUlRDIGNvbm5lY3Rpb24uIFRoaXMgd29ya3MgZm9yIG1vc3QgaG9tZSBuZXR3b3JrcywgYnV0IG1heSBmYWlsIGluIG1vcmUgcmVzdHJpY3RpdmUgZW52aXJvbm1lbnRzIChmb3IgZXhhbXBsZSwgY29ycG9yYXRlIGZpcmV3YWxscyBvciBzdHJpY3QgTkFUIGNvbmZpZ3VyYXRpb25zKS4KCklmIGEgZGlyZWN0IFdlYlJUQyBjb25uZWN0aW9uIGNhbm5vdCBiZSBlc3RhYmxpc2hlZCwgeW91IGhhdmUgYSBmZXcgb3B0aW9uczoKCjEuICoqVXNlIGEgVFVSTiBzZXJ2ZXIgKHJlY29tbWVuZGVkKSoqICAKICAgQ29uZmlndXJlIGEgW1RVUk4gc2VydmVyXSgjY29uZmlndXJlLWEtdHVybi1zZXJ2ZXIpIHRvIHJlbGlhYmx5IHJlbGF5IFdlYlJUQyB0cmFmZmljIHdoZW4gZGlyZWN0IHBlZXItdG8tcGVlciBjb25uZWN0aW9ucyBhcmUgYmxvY2tlZC4KCjIuICoqRm9yd2FyZCBwb3J0cyBkaXJlY3RseSoqICAKICAgWW91IGNhbiBbZm9yd2FyZCB0aGUgcmVxdWlyZWQgcG9ydHNdKCNwb3J0LWZvcndhcmQpIG9uIHlvdXIgcm91dGVyLiAgCiAgIE5vdGUgdGhhdCB0aGlzIG1heSBzdGlsbCBmYWlsIGlmIHRoZSBmaXJld2FsbCBibG9ja3MgVURQIHRyYWZmaWMuCgozLiAqKlVzZSBXZWJTb2NrZXQgdHJhbnNwb3J0IGFzIGEgZmFsbGJhY2sqKiAgCiAgIFdlYlNvY2tldHMgdXNlIHN0YW5kYXJkIEhUVFAvSFRUUFMgcG9ydHMgYW5kIGFyZSBvZnRlbiBhbGxvd2VkIGV2ZW4gaW4gdmVyeSByZXN0cmljdGl2ZSBuZXR3b3JrcywgbWFraW5nIHRoZW0gYSBnb29kIGZhbGxiYWNrIG9wdGlvbiB3aGVuIFdlYlJUQyBuZWdvdGlhdGlvbiBmYWlscy4gU2VlIFtVc2luZyBXZWJTb2NrZXQgVHJhbnNwb3J0XSgjdXNpbmctd2Vic29ja2V0LXRyYW5zcG9ydCkuCgoKIyMjIyBDb25maWd1cmUgYSB0dXJuIHNlcnZlcgoxLiBIb3N0IGFuZCBjb25maWd1cmUgYSB0dXJuIHNlcnZlciBsaWtlIFtjb3R1cm5dKGh0dHBzOi8vZ2l0aHViLmNvbS9jb3R1cm4vY290dXJuKSBvciB1c2Ugb3RoZXIgc2VydmljZXMgdG8gaG9zdCBvbmUgZm9yIHlvdS4KCjIuIEFkZCB5b3VyIHR1cm4gc2VydmVyIHRvIHlvdXIgV2ViUlRDIEljZSBTZXJ2ZXIgbGlzdApgYGBqc29uCnsKICAgICJ3ZWJydGMiOiB7CiAgICAgICAgImljZV9zZXJ2ZXJzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidXJscyI6IFsKICAgICAgICAgICAgICAgICAgICAic3R1bjpzdHVuLmwuZ29vZ2xlLmNvbToxOTMwMiIsCiAgICAgICAgICAgICAgICAgICAgInN0dW46c3R1bi5sLmdvb2dsZS5jb206NTM0OSIsCiAgICAgICAgICAgICAgICAgICAgInN0dW46c3R1bjEubC5nb29nbGUuY29tOjM0NzgiLAogICAgICAgICAgICAgICAgICAgICJzdHVuOnN0dW4xLmwuZ29vZ2xlLmNvbTo1MzQ5IiwKICAgICAgICAgICAgICAgICAgICAic3R1bjpzdHVuMi5sLmdvb2dsZS5jb206MTkzMDIiLAogICAgICAgICAgICAgICAgICAgICJzdHVuOnN0dW4yLmwuZ29vZ2xlLmNvbTo1MzQ5IiwKICAgICAgICAgICAgICAgICAgICAic3R1bjpzdHVuMy5sLmdvb2dsZS5jb206MzQ3OCIsCiAgICAgICAgICAgICAgICAgICAgInN0dW46c3R1bjMubC5nb29nbGUuY29tOjUzNDkiLAogICAgICAgICAgICAgICAgICAgICJzdHVuOnN0dW40LmwuZ29vZ2xlLmNvbToxOTMwMiIsCiAgICAgICAgICAgICAgICAgICAgInN0dW46c3R1bjQubC5nb29nbGUuY29tOjUzNDkiLAogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidXJscyI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgInR1cm46eW91cmlwLmNvbTozNDc4P3RyYW5zcG9ydD11ZHAiLAogICAgICAgICAgICAgICAgICAgICAgICAidHVybjp5b3VyaXAuY29tOjM0Nzg/dHJhbnNwb3J0PXRjcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0dXJuOnlvdXJpcC5jb206NTM0OT90cmFuc3BvcnQ9dGNwIgogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ1c2VybmFtZSI6ICJ5b3VyIHVzZXJuYW1lIiwKICAgICAgICAgICAgICAgICJjcmVkZW50aWFsIjogInlvdXIgY3JlZGVudGlhbCIKICAgICAgICAgICAgfQogICAgICAgIF0KICAgIH0KfQpgYGAKU29tZSAoYnVzaW5lc3MpIGZpcmV3YWxscyBtaWdodCBiZSB2ZXJ5IHN0cmljdCBhbmQgb25seSBhbGxvdyB0Y3Agb24gcG9ydCA0NDMgZm9yIHR1cm4gY29ubmVjdGlvbnMgaWYgdGhhdCdzIHRoZSBjYXNlIGFsc28gYmluZCB0aGUgdHVybiBzZXJ2ZXIgb24gcG9ydCA0NDMgYW5kIGFkZCBgInR1cm46eW91cmlwLmNvbTo0NDM/dHJhbnNwb3J0PXRjcCJgIHRvIHRoZSB1cmwncyBsaXN0LgoKIyMjIyBQb3J0IGZvcndhcmQKCjEuIFNldCB0aGUgcG9ydCByYW5nZSB1c2VkIGJ5IHRoZSBXZWJSVEMgUGVlciB0byBhIGZpeGVkIHJhbmdlIGluIHRoZSBbY29uZmlnXSgjY29uZmlnKQpgYGBqc29uCnsKICAgICJ3ZWJydGMiOiB7CiAgICAgICAgInBvcnRfcmFuZ2UiOiB7CiAgICAgICAgICAgICJtaW4iOiA0MDAwMCwKICAgICAgICAgICAgIm1heCI6IDQwMDEwCiAgICAgICAgfQogICAgfQp9CmBgYAoyLiBGb3J3YXJkIHRoZSBwb3J0IHJhbmdlIHNwZWNpZmllZCBpbiB0aGUgcHJldmlvdXMgc3RlcCBhcyBgdWRwYC4KSWYgeW91J3JlIHVzaW5nIFdpbmRvd3MgRGVmZW5kZXIgbWFrZSBzdXJlIHRvIGFsbG93IE5BVCBUcmF2ZXJzYWwuIEltcG9ydGFudDogSWYgeW91ciBmaXJld2FsbCBibG9ja3MgdWRwIGNvbm5lY3Rpb25zIHRoaXMgd29uJ3Qgd29yayBhbmQgeW91IG5lZWQgdG8gaG9zdCBhIFt0dXJuIHNlcnZlcl0oI2NvbmZpZ3VyZS1hLXR1cm4tc2VydmVyKQoKMy4gQ29uZmlndXJlIFtXZWJSVEMgTmF0IDEgVG8gMV0oI3dlYnJ0Yy1uYXQtMS10by0xLWlwcykgdG8gYWR2ZXJ0aXNlIHlvdXIgW3B1YmxpYyBpcF0oaHR0cHM6Ly93aGF0aXNteWlwYWRkcmVzcy5jb20vKSAoT3B0aW9uYWw6IFdlYlJUQyBzdHVuIHNlcnZlcnMgY2FuIHVzdWFsbHkgYXV0b21hdGljYWxseSBkZXRlY3QgdGhlbSk6CmBgYGpzb24KewogICAgIndlYnJ0YyI6IHsKICAgICAgICAibmF0XzF0bzEiOiB7CiAgICAgICAgICAgICJpY2VfY2FuZGlkYXRlX3R5cGUiOiAiaG9zdCIsCiAgICAgICAgICAgICJpcHMiOiBbCiAgICAgICAgICAgICAgICAiNzQuMTI1LjIyNC43MiIKICAgICAgICAgICAgXQogICAgICAgIH0KICAgIH0KfQpgYGAKCkl0IG1pZ2h0IGJlIGhlbHBmdWwgdG8gbG9vayB3aGF0IGtpbmQgb2YgbmF0IHlvdXIgcGMgaXMgYmVoaW5kOgotIFtOYXQgQ2hlY2tlcl0oaHR0cHM6Ly93d3cuY2hlY2tteW5hdC5jb20vKQoKIyMjIENvbmZpZ3VyaW5nIGh0dHBzCllvdSBjYW4gY29uZmlndXJlIGh0dHBzIGRpcmVjdGx5IHdpdGggdGhlIE1vb25saWdodCBXZWIgU2VydmVyLgoKMS4gWW91J2xsIG5lZWQgYSBwcml2YXRlIGtleSBhbmQgYSBjZXJ0aWZpY2F0ZS4KCllvdSBjYW4gZ2VuZXJhdGUgYSBzZWxmIHNpZ25lZCBjZXJ0aWZpY2F0ZSB3aXRoIHRoaXMgcHl0aG9uIHNjcmlwdCBbZ2VuZXJhdGVfY2VydGlmaWNhdGUucHldKGdlbmVyYXRlX2NlcnRpZmljYXRlLnB5KToKCmBgYHNoCnBpcCBpbnN0YWxsIHB5T3BlblNTTApweXRob24gLi9nZW5lcmF0ZV9jZXJ0aWZpY2F0ZS5weQpgYGAKCjIuIENvcHkgdGhlIGZpbGVzIGBzZXJ2ZXIva2V5LnBlbWAgYW5kIGBzZXJ2ZXIvY2VydC5wZW1gIGludG8geW91ciBgc2VydmVyYCBkaXJlY3RvcnkuCgozLiBNb2RpZnkgdGhlIFtjb25maWddKCNjb25maWcpIHRvIGVuYWJsZSBodHRwcyB1c2luZyB0aGUgY2VydGlmaWNhdGVzCmBgYGpzb24KewogICAgIndlYl9zZXJ2ZXIiOiB7CiAgICAgICAgImNlcnRpZmljYXRlIjogewogICAgICAgICAgICAicHJpdmF0ZV9rZXlfcGVtIjogIi4vc2VydmVyL2tleS5wZW0iLAogICAgICAgICAgICAiY2VydGlmaWNhdGVfcGVtIjogIi4vc2VydmVyL2NlcnQucGVtIgogICAgICAgIH0KICAgIH0KfQpgYGAKCiMjIyBQcm94eWluZyB2aWEgQXBhY2hlIDIKSXQncyBwb3NzaWJsZSB0byBwcm94eSB0aGUgTW9vbmxpZ2h0IFdlYnNpdGUgdXNpbmcgW0FwYWNoZSAyXShodHRwczovL2h0dHBkLmFwYWNoZS5vcmcvKS4KCk5vdGU6CldoZW4geW91IHdhbnQgdG8gdXNlIGh0dHBzLCB0aGUgTW9vbmxpZ2h0IFdlYnNpdGUgc2hvdWxkIHVzZSBodHRwIHNvIHRoYXQgQXBhY2hlIDIgd2lsbCBoYW5kbGUgYWxsIHRoZSBodHRwcyBlbmNyeXB0aW9uLgoKMS4gRW5hYmxlIHRoZSBtb2R1bGVzIGBtb2RfcHJveHlgLCBgbW9kX3Byb3h5X3dzdHVubmVsYAoKYGBgc2gKc3VkbyBhMmVubW9kIG1vZF9wcm94eSBtb2RfcHJveHlfd3N0dW5uZWwKYGBgCgoyLiBDcmVhdGUgYSBuZXcgZmlsZSB1bmRlciBgL2V0Yy9hcGFjaGUyL2NvbmYtYXZhaWxhYmxlL21vb25saWdodC13ZWIuY29uZmAgd2l0aCB0aGUgY29udGVudDoKYGBgCiMgRXhhbXBsZSBzdWJwYXRoICIvbW9vbmxpZ2h0IiAtPiBUbyBjb25uZWN0IHlvdSdkIGdvIHRvICJodHRwOi8veW91cmlwLmNvbS9tb29ubGlnaHQvIgpEZWZpbmUgTU9PTkxJR0hUX1NVQlBBVEggL21vb25saWdodAojIFRoZSBhZGRyZXNzIGFuZCBwb3J0IG9mIHlvdXIgTW9vbmxpZ2h0IFdlYiBzZXJ2ZXIKRGVmaW5lIE1PT05MSUdIVF9TVFJFQU1FUiBZT1VSX0xPQ0FMX0lQOllPVVJfUE9SVAoKUHJveHlQcmVzZXJ2ZUhvc3Qgb24KICAgICAgICAKIyBJbXBvcnRhbnQ6IFRoaXMgV2ViU29ja2V0IHdpbGwgaGVscCBuZWdvdGlhdGUgdGhlIFdlYlJUQyBQZWVycwo8TG9jYXRpb24gJHtNT09OTElHSFRfU1VCUEFUSH0vYXBpL2hvc3Qvc3RyZWFtPgogICAgICAgIFByb3h5UGFzcyB3czovLyR7TU9PTkxJR0hUX1NUUkVBTUVSfSR7TU9PTkxJR0hUX1NVQlBBVEh9L2FwaS9ob3N0L3N0cmVhbQogICAgICAgIFByb3h5UGFzc1JldmVyc2Ugd3M6Ly8ke01PT05MSUdIVF9TVFJFQU1FUn0ke01PT05MSUdIVF9TVUJQQVRIfS9hcGkvaG9zdC9zdHJlYW0KPC9Mb2NhdGlvbj4KClByb3h5UGFzcyAke01PT05MSUdIVF9TVUJQQVRIfS8gaHR0cDovLyR7TU9PTkxJR0hUX1NUUkVBTUVSfSR7TU9PTkxJR0hUX1NVQlBBVEh9LwpQcm94eVBhc3NSZXZlcnNlICR7TU9PTkxJR0hUX1NVQlBBVEh9LyBodHRwOi8vJHtNT09OTElHSFRfU1RSRUFNRVJ9JHtNT09OTElHSFRfU1VCUEFUSH0vCmBgYAoKMy4gRW5hYmxlIHRoZSBjcmVhdGVkIGNvbmZpZyBmaWxlCmBgYHNoCnN1ZG8gYTJlbmNvbmYgbW9vbmxpZ2h0LXdlYgpgYGAKCjQuIENoYW5nZSBbY29uZmlnXSgjY29uZmlnKSB0byBpbmNsdWRlIHRoZSBbcHJlZml4ZWQgcGF0aF0oI3VybC1wYXRoLXByZWZpeCkKYGBganNvbgp7CiAgICAid2ViX3NlcnZlciI6IHsKICAgICAgICAidXJsX3BhdGhfcHJlZml4IjogIi9tb29ubGlnaHQiCiAgICB9Cn0KYGBgCgo1LiBVc2UgaHR0cHMgd2l0aCBhIGNlcnRpZmljYXRlIChPcHRpb25hbCkKCiMjIyBBdXRoZW50aWNhdGlvbiB1c2luZyBhIFJldmVyc2UgUHJveHkKQXV0aGVudGljYXRpb24gd2l0aCBhIHJldmVyc2UgcHJveHkgd29ya3MgYnkgdGhlIHByb3h5IGFkZGluZyBjdXN0b20gaGVhZGVycyB0byB0aGUgcmVxdWVzdCBvZiB0aGUgdXNlci4gSW4gdGhpcyBleGFtcGxlIHRoZSB1c2VybmFtZSBoZWFkZXIgaXMgbmFtZWQgYFgtRm9yd2FyZGVkLVVzZXJgLgoKPGI+TWFrZSBzdXJlIHRoYXQgdGhlIGhlYWRlciBpcyBub3QgY2hhbmdlYWJsZSBieSBhbnkgZXh0ZXJuYWwgcmVxdWVzdCBhbmQgb25seSB0aGUgcHJveHkgY2FuIHNldCB0aGlzIGhlYWRlci48L2I+CgpFbmFibGUgcHJveHkgYXV0aGVudGljYXRpb24gYnkgc2V0dGluZyB0aGUgW2ZvcndhcmRlZCBoZWFkZXIgdXNlcm5hbWVdKCNmb3J3YXJkZWQtaGVhZGVyLXVzZXJuYW1lKSBvcHRpb24uCkJ5IGRlZmF1bHQgdGhlIFthdXRvIGNyZWF0ZSBtaXNzaW5nIHVzZXJdKCNmb3J3YXJkZWQtaGVhZGVyLWF1dG8tY3JlYXRlLW1pc3NpbmctdXNlcikgb3B0aW9uIGlzIHR1cm5lZCBvbiBldmVuIGlmIGl0J3Mgbm90IHNwZWNpZmllZCBpbiB0aGUgY29uZmlnLgpgYGBqc29uCnsKICAgICJ3ZWJfc2VydmVyIjogewogICAgICAgICJmb3J3YXJkZWRfaGVhZGVyIjogewogICAgICAgICAgICAidXNlcm5hbWVfaGVhZGVyIjogIlgtRm9yd2FyZGVkLVVzZXIiLAogICAgICAgICAgICAiYXV0b19jcmVhdGVfbWlzc2luZ191c2VyIjogdHJ1ZQogICAgICAgIH0KICAgIH0KfQpgYGAKCiMjIyBVc2luZyBXZWJTb2NrZXQgVHJhbnNwb3J0CgpJbiBzb21lIG5ldHdvcmtzIChmb3IgZXhhbXBsZSwgY29ycG9yYXRlIG9yIGhpZ2hseSByZXN0cmljdGVkIGVudmlyb25tZW50cyksIGVzdGFibGlzaGluZyBhIFdlYlJUQyBjb25uZWN0aW9uIGNhbiBiZSBkaWZmaWN1bHQgb3IgbWF5IG5vdCB3b3JrIGF0IGFsbC4KVG8gc3VwcG9ydCB0aGVzZSBjYXNlcywgeW91IGNhbiBzdHJlYW0gZGF0YSBvdmVyICoqV2ViU29ja2V0cyoqIHVzaW5nIHRoZSBzYW1lIEhUVFAgb3IgSFRUUFMgcG9ydCB0aGF0IHlvdXIgc2VydmVyIGFscmVhZHkgZXhwb3Nlcy4KCllvdSBjYW4gZm9yY2UgdGhlIFdlYiBTb2NrZXRzIGJ5IHNldHRpbmcgdGhlIGBEYXRhIFRyYW5zcG9ydGAgb3B0aW9uIHRvIGBXZWIgU29ja2V0c2AuCgpUaGVyZSBhcmUgYSBmZXcgaW1wb3J0YW50IHRoaW5ncyB0byBiZSBhd2FyZSBvZiB3aGVuIHVzaW5nIFdlYlNvY2tldHMgZm9yIHN0cmVhbWluZzoKCi0gVGhlIGJyb3dzZXLigJlzIGBWaWRlb0RlY29kZXJgIEFQSSBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIHlvdXIgc2l0ZSBpcyBzZXJ2ZWQgb3ZlciAqKkhUVFBTKiogKGEgc2VjdXJlIGNvbnRleHQpLgoKLSBJZiB0aGUgYXBwbGljYXRpb24gaXMgKipub3QqKiBydW5uaW5nIGluIGEgc2VjdXJlIGNvbnRleHQsIGl0IHdpbGwgZmFsbCBiYWNrIHRvIGFuIG9sZGVyIHZpZGVvIHBsYXliYWNrIEFQSSwgd2hpY2ggbWF5IGludHJvZHVjZSBub3RpY2VhYmxlIGxhdGVuY3kuCgotIElmIHRoaXMgaXMgdW5hY2NlcHRhYmxlIGFuZCB5b3Uga25vdyB3aGF0IHlvdSdyZSBkb2luZywgeW91IGNhbiB1c2UgYSBzb2Z0d2FyZS1iYXNlZCBkZWNvZGVyOgogIC0gQnVpbGQgYSBjdXN0b20gdmVyc2lvbiBvZiBbb3BlbmgyNjRdKGh0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL29wZW5oMjY0LWpzKSBmb3IgdGhlIGJyb3dzZXIuCiAgLSBUaGlzIGN1c3RvbSBidWlsZCBhbGxvd3MgdmlkZW8gZnJhbWVzIHRvIGJlIGRlY29kZWQgZGlyZWN0bHkgaW4gdGhlIGJyb3dzZXIgd2l0aG91dCByZWx5aW5nIG9uIHRoZSBgVmlkZW9EZWNvZGVyYCBBUEkuCiAgLSBBZnRlciBidWlsZGluZywgY29weSB0aGUgZ2VuZXJhdGVkIGBkZWNvZGVyLmpzYCBmaWxlIHRvOgogICAgYGBgCiAgICBzdGF0aWMvbGlib3BlbmgyNjQvZGVjb2Rlci5qcwogICAgYGBgCiAgLSBUaGUgZGVjb2RlciB3aWxsIGJlIGRldGVjdGVkIGFuZCB1c2VkIGF1dG9tYXRpY2FsbHkuCgojIyBDb25maWcKVGhlIGNvbmZpZyBmaWxlIGlzIHVuZGVyIGBzZXJ2ZXIvY29uZmlnLmpzb25gIHJlbGF0aXZlIHRvIHRoZSBleGVjdXRhYmxlLgpIZXJlIGFyZSB0aGUgbW9zdCBpbXBvcnRhbnQgc2V0dGluZ3MgZm9yIGNvbmZpZ3VyaW5nIE1vb25saWdodCBXZWIuCgpNb3N0IG9wdGlvbnMgaGF2ZSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIG9yIGVudmlyb25tZW50IHZhcmlhYmxlcyBhc3NvY2lhdGVkIHdpdGggdGhlbS4KYGBgc2gKLi93ZWItc2VydmVyIGhlbHAKYGBgCgpGb3IgYSBmdWxsIGxpc3Qgb2YgdmFsdWVzIGxvb2sgaW50byB0aGUgW1J1c3QgQ29uZmlnIG1vZHVsZV0obW9vbmxpZ2h0LXdlYi9jb21tb24vc3JjL2NvbmZpZy5ycykuCgojIyMgQmluZCBBZGRyZXNzIApUaGUgYWRkcmVzcyBhbmQgcG9ydCB0aGUgd2Vic2l0ZSB3aWxsIHJ1biBvbgoKYGBganNvbgp7CiAgICAid2ViX3NlcnZlciI6IHsKICAgICAgICAiYmluZF9hZGRyZXNzIjogIjAuMC4wLjA6ODA4MCIKICAgIH0KfQpgYGAKCiMjIyBEZWZhdWx0IFVzZXIKVGhlIHVzZXIgaWQgd2hpY2ggaXMgc2VsZWN0ZWQgYnkgZGVmYXVsdCB3aGVuIHByb3ZpZGluZyBubyBsb2dpbi4KR28gaW50byB0aGUgQWRtaW4gUGFuZWwgYW5kIGxvb2sgZm9yIHRoZSB1c2VyIGlkIG9mIHRoZSB1c2VyIHlvdSB3YW50IHRvIG1ha2UgdGhlIGRlZmF1bHQuCgpgYGBqc29uCnsKICAgICJ3ZWJfc2VydmVyIjogewogICAgICAgICJkZWZhdWx0X3VzZXJfaWQiOiAxMjg0MzU4OTMyCiAgICB9Cn0KYGBgCgojIyMgSHR0cHMgQ2VydGlmaWNhdGVzCklmIGVuYWJsZWQgdGhlIHdlYiBzZXJ2ZXIgd2lsbCB1c2UgaHR0cHMgd2l0aCB0aGUgcHJvdmlkZWQgY2VydGlmaWNhdGUgZGF0YQoKYGBganNvbgp7CiAgICAid2ViX3NlcnZlciI6ewogICAgICAgICJjZXJ0aWZpY2F0ZSI6IHsKICAgICAgICAgICAgInByaXZhdGVfa2V5X3BlbSI6ICIuL3NlcnZlci9rZXkucGVtIiwKICAgICAgICAgICAgImNlcnRpZmljYXRlX3BlbSI6ICIuL3NlcnZlci9jZXJ0LnBlbSIKICAgICAgICB9CiAgICB9Cn0KYGBgCgojIyMgV2ViUlRDIFBvcnQgUmFuZ2UKVGhpcyB3aWxsIHNldCB0aGUgcG9ydCByYW5nZSBvbiB0aGUgd2ViIHNlcnZlciB1c2VkIHRvIGNvbW11bmljYXRlIHdoZW4gdXNpbmcgV2ViUlRDCgpgYGBqc29uCnsKICAgICJ3ZWJydGMiOiB7CiAgICAgICAgInBvcnRfcmFuZ2UiOiB7CiAgICAgICAgICAgICJtaW4iOiA0MDAwMCwKICAgICAgICAgICAgIm1heCI6IDQwMDEwCiAgICAgICAgfQogICAgfQp9CmBgYAoKIyMjIFdlYlJUQyBJY2UgU2VydmVycwpBIGxpc3Qgb2YgaWNlIHNlcnZlcnMgZm9yIHdlYnJ0YyB0byB1c2UuCgpgYGBqc29uCnsKICAgICJ3ZWJydGMiOiB7CiAgICAgICAgImljZV9zZXJ2ZXJzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidXJscyI6IFsKICAgICAgICAgICAgICAgICAgICAic3R1bjpzdHVuLmwuZ29vZ2xlLmNvbToxOTMwMiIsCiAgICAgICAgICAgICAgICAgICAgInN0dW46c3R1bi5sLmdvb2dsZS5jb206NTM0OSIsCiAgICAgICAgICAgICAgICAgICAgInN0dW46c3R1bjEubC5nb29nbGUuY29tOjM0NzgiLAogICAgICAgICAgICAgICAgICAgICJzdHVuOnN0dW4xLmwuZ29vZ2xlLmNvbTo1MzQ5IiwKICAgICAgICAgICAgICAgICAgICAic3R1bjpzdHVuMi5sLmdvb2dsZS5jb206MTkzMDIiLAogICAgICAgICAgICAgICAgICAgICJzdHVuOnN0dW4yLmwuZ29vZ2xlLmNvbTo1MzQ5IiwKICAgICAgICAgICAgICAgICAgICAic3R1bjpzdHVuMy5sLmdvb2dsZS5jb206MzQ3OCIsCiAgICAgICAgICAgICAgICAgICAgInN0dW46c3R1bjMubC5nb29nbGUuY29tOjUzNDkiLAogICAgICAgICAgICAgICAgICAgICJzdHVuOnN0dW40LmwuZ29vZ2xlLmNvbToxOTMwMiIsCiAgICAgICAgICAgICAgICAgICAgInN0dW46c3R1bjQubC5nb29nbGUuY29tOjUzNDkiLAogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfQp9CmBgYAoKWW91IGNhbiBhbHNvIHNldCBpY2Ugc2VydmVycyB3aXRoIGVudmlyb25tZW50IHZhcmlhYmxlczoKYGBgZG9ja2VyZmlsZQpFTlYgV0VCUlRDX0lDRV9TRVJWRVJfMF9VUkw9c3R1bjpzdHVuLmwuZ29vZ2xlLmNvbTo1MzQ5CkVOViBXRUJSVENfSUNFX1NFUlZFUl8wX1VTRVJOQU1FPW5hbWUKRU5WIFdFQlJUQ19JQ0VfU0VSVkVSXzBfQ1JFREVOVElBTD1jcmVkCkVOViBXRUJSVENfSUNFX1NFUlZFUl8xX1VSTD1zdHVuOnN0dW4xLmwuZ29vZ2xlLmNvbTo1MzQ5CmBgYAp3aWxsIGN1cnJlc3BvbmQgdG8gdGhlIGljZSBzZXJ2ZXIKYGBganNvbgp7CiAgICAid2VicnRjIjogewogICAgICAgICJpY2Vfc2VydmVycyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInVybHMiOiBbCiAgICAgICAgICAgICAgICAgICAgInN0dW46c3R1bi5sLmdvb2dsZS5jb206MTkzMDIiLAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ1c2VybmFtZSI6ICJuYW1lIiwKICAgICAgICAgICAgICAgICJjcmVkZW50aWFsIjogImNyZWQiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ1cmxzIjogWwogICAgICAgICAgICAgICAgICAgICJzdHVuOnN0dW4xLmwuZ29vZ2xlLmNvbTo1MzQ5IgogICAgICAgICAgICAgICAgXQogICAgICAgICAgICB9CiAgICAgICAgXQogICAgfQp9CmBgYAoKT24gZmlyc3Qgc3RhcnR1cCB5b3UgY2FuIGRpc2FibGUgYWxsIGRlZmF1bHQgaWNlIHNlcnZlcnMgd2l0aCB0aGUgY2xpIGFyZ3VtZW50IGAtLWRpc2FibGUtZGVmYXVsdC13ZWJydGMtaWNlLXNlcnZlcnNgIG9yIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBgRElTQUJMRV9ERUZBVUxUX1dFQlJUQ19JQ0VfU0VSVkVSU2AuCkFmdGVyIHRoZSBgY29uZmlnLmpzb25gIGhhcyBiZWVuIGdlbmVyYXRlZCBhbGwgaWNlIHNlcnZlciBpbiBpdCB3aWxsIGJlIHVzZWQsIGV2ZW4gaWYgdGhvc2UgYXJlIHRoZSBkZWZhdWx0cy4KCiMjIyBXZWJSVEMgSWNlIFNlcnZlciBTY3JpcHQKVGhlIGdpdmVuIHNjcmlwdCB3aWxsIGJlIGV4ZWN1dGVkIG9uIGV2ZXJ5IHN0cmVhbSBzdGFydCB0byBkeW5hbWljYWxseSBnZW5lcmF0ZSBpY2Ugc2VydmVycy4KCmBgYGpzb24KewogICAgIndlYnJ0YyI6IHsKICAgICAgICAiaWNlX3NlcnZlcl9zY3JpcHQiOiAiLi9zZXJ2ZXIvaWNlX3NlcnZlcl9zY3JpcHQuc2giCiAgICB9Cn0KYGBgCgpUaGUgc2NyaXB0IG11c3QgcmV0dXJuIGEganNvbiBsaXN0IHRoYXQgZm9sbG93cyB0aGUgc2FtZSBzdHJ1Y3R1cmUgYXMgdGhlIFtXZWJSVEMgSWNlIFNlcnZlcnNdKCN3ZWJydGMtaWNlLXNlcnZlcnMpIGNvbmZpZyBvcHRpb24uCgpMaW51eCBleGFtcGxlIHVzaW5nIGEgYmFzaCBzY3JpcHQ6CmBgYHNoCiMhL2Jpbi9iYXNoCgojIEFzc2lnbiBhcmd1bWVudHMgdG8gdmFyaWFibGVzCnVzZXJuYW1lPSJ1c2VyIgpjcmVkZW50aWFsPSJjcmVkIgoKIyBPdXRwdXQgdGhlIGpzb24gaW50byBzdGRvdXQKZWNobyAiWwogICAgewogICAgICAgIFwidXJsc1wiOiBbCiAgICAgICAgICAgIFwidHVybjpleGFtcGxlLmNvbVwiCiAgICAgICAgXSwKICAgICAgICBcInVzZXJuYW1lXCI6IFwiJHVzZXJuYW1lXCIsCiAgICAgICAgXCJjcmVkZW50aWFsXCI6IFwiJGNyZWRlbnRpYWxcIgogICAgfQpdIgpgYGAKCldpbmRvd3MgZXhhbXBsZSB1c2luZyBhIGJhdGNoIHNjcmlwdDoKYGBgYmF0CkBlY2hvIG9mZgoKOjogQXNzaWduIGFyZ3VtZW50cyB0byB2YXJpYWJsZXMKc2V0ICJ1c2VybmFtZT11c2VyIgpzZXQgImNyZWRlbnRpYWw9Y3JlZCIKCjo6IE91dHB1dCB0aGUgSlNPTiB3aXRoIGR5bmFtaWMgdmFsdWVzCmVjaG8gWwplY2hvICAgICB7CmVjaG8gICAgICAgICAidXJscyI6IFsKZWNobyAgICAgICAgICAgICAidHVybjpleGFtcGxlLmNvbSIKZWNobyAgICAgICAgIF0sCmVjaG8gICAgICAgICAidXNlcm5hbWUiOiAiJXVzZXJuYW1lJSIsCmVjaG8gICAgICAgICAiY3JlZGVudGlhbCI6ICIlY3JlZGVudGlhbCUiCmVjaG8gICAgIH0KZWNobyBdCmBgYAoKIyMjIFdlYlJUQyBOYXQgMSB0byAxIGlwcwpUaGlzIHdpbGwgYWR2ZXJ0aXNlIHRoZSBpcCBhcyBhbiBpY2UgY2FuZGlkYXRlIG9uIHRoZSB3ZWIgc2VydmVyLgpJdCdzIHJlY29tbWVuZGVkIHRvIHNldCB0aGlzIGJ1dCBzdHVuIHNlcnZlcnMgc2hvdWxkIGZpZ3VyZSBvdXQgdGhlIHB1YmxpYyBpcC4KCmBpY2VfY2FuZGlkYXRlX3R5cGVgOgotIGBob3N0YCAtPiBUaGlzIGlzIHRoZSBpcCBhZGRyZXNzIG9mIHRoZSBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQgY2FuIGNvbm5lY3QgdG8KLSBgc3JmbHhgIC0+IFRoaXMgaXMgdGhlIHB1YmxpYyBpcCBhZGRyZXNzIG9mIHRoaXMgc2VydmVyLCBsaWtlIGFuIGljZSBjYW5kaWRhdGUgYWRkZWQgZnJvbSBhIHN0dW4gc2VydmVyLgoKYGBganNvbgp7CiAgICAid2VicnRjIjogewogICAgICAgICJuYXRfMXRvMSI6IHsKICAgICAgICAgICAgImljZV9jYW5kaWRhdGVfdHlwZSI6ICJob3N0IiwKICAgICAgICAgICAgImlwcyI6IFsKICAgICAgICAgICAgICAgICI3NC4xMjUuMjI0LjcyIgogICAgICAgICAgICBdCiAgICAgICAgfQogICAgfQp9CmBgYAoKWW91IGNhbiBhbHNvIHVzZSB0aGUgY2xpIGFyZ3VtZW50IGAtLXdlYnJ0Yy1uYXQtMXRvMS1ob3N0YCBvciBlbnZpcm9ubWVudCB2YXJpYWJsZSBgV0VCUlRDX05BVF8xVE8xX0hPU1RgIHRvIHVzZSBhIGlwIGFzIGEgaG9zdCBjYW5kaWRhdGUgdHlwZS4gVGhpcyB3aWxsIGRvIHRoZSBzYW1lIGFzIHRoZSBqc29uIGFib3ZlLgpgYGBkb2NrZXJmaWxlCkVOViBXRUJSVENfTkFUXzFUTzFfSE9TVD03NC4xMjUuMjI0LjcyCmBgYAoKIyMjIFdlYlJUQyBOZXR3b3JrIFR5cGVzClRoaXMgd2lsbCBzZXQgdGhlIG5ldHdvcmsgdHlwZXMgYWxsb3dlZCBieSB3ZWJydGMuCjxicj5BbGxvd2VkIHZhbHVlczoKLSB1ZHA0OiBBbGwgdWRwIHdpdGggaXB2NAotIHVkcDY6IEFsbCB1ZHAgd2l0aCBpcHY2Ci0gdGNwNDogQWxsIHRjcCB3aXRoIGlwdjQKLSB0Y3A2OiBBbGwgdGNwIHdpdGggaXB2NgoKYGBganNvbgp7CiAgICAid2VicnRjIjogewogICAgICAgICJuZXR3b3JrX3R5cGVzIjogWwogICAgICAgICAgICAidWRwNCIsCiAgICAgICAgICAgICJ1ZHA2IiwKICAgICAgICBdCiAgICB9Cn0KYGBgCgojIyMgVXJsIFBhdGggUHJlZml4ClRoaXMgaXMgdXNlZnVsIHdoZW4gcmVyb3V0aW5nIHRoZSB3ZWIgcGFnZSB1c2luZyBzZXJ2aWNlcyBsaWtlIFtBcGFjaGUgMl0oI3Byb3h5aW5nLXZpYS1hcGFjaGUtMikuCldpbGwgYWx3YXlzIGFwcGVuZCB0aGUgcHJlZml4IHRvIGFsbCByZXF1ZXN0cyBtYWRlIGJ5IHRoZSB3ZWJzaXRlLgoKYGBganNvbgp7CiAgICAid2ViX3NlcnZlciI6IHsKICAgICAgICAidXJsX3BhdGhfcHJlZml4IjogIi9tb29ubGlnaHQiCiAgICB9Cn0KYGBgCgojIyMgRm9yd2FyZGVkIEhlYWRlciBVc2VybmFtZQpUaGUgaGVhZGVyIHRoYXQgd2lsbCBnaXZlIHRoZSBhdXRoZW50aWNhdGVkIHVzZXJuYW1lIHRvIHRoaXMgd2ViIHNlcnZlci4KCmBgYGpzb24KewogICAgIndlYl9zZXJ2ZXIiOiB7CiAgICAgICAgImZvcndhcmRlZF9oZWFkZXIiOiB7CiAgICAgICAgICAgICJ1c2VybmFtZV9oZWFkZXIiOiAiWC1Gb3J3YXJkZWQtVXNlciIKICAgICAgICB9CiAgICB9Cn0KYGBgCgojIyMgRm9yd2FyZGVkIEhlYWRlciBBdXRvIENyZWF0ZSBNaXNzaW5nIFVzZXIKQXV0b21hdGljYWxseSBjcmVhdGUgYSBuZXcgdXNlciB3aGVuIHRoZSByZXF1ZXN0ZWQgdXNlciBzcGVjaWZpZWQgaW4gdGhlIFt1c2VybmFtZV9oZWFkZXJdKCNmb3J3YXJkZWQtaGVhZGVyLXVzZXJuYW1lKSBpcyBub3QgZm91bmQuCgpgYGBqc29uCnsKICAgICJ3ZWJfc2VydmVyIjogewogICAgICAgICJmb3J3YXJkZWRfaGVhZGVyIjogewogICAgICAgICAgICAiYXV0b19jcmVhdGVfbWlzc2luZ191c2VyIjogdHJ1ZQogICAgICAgIH0KICAgIH0KfQpgYGAKCiMjIE1pZ3JhdGluZyB0byB2MgoxLiBTb21lIGNvbmZpZyBvcHRpb25zIGhhdmUgY2hhbmdlZCBzbyBiYWNrdXAgeW91ciBvbGQgY29uZmlnIGJ5IHJlbmFtaW5nIGl0IHRvIHNvbWV0aGluZyBsaWtlIGBvbGRfY29uZmlnLmpzb25gLgoKMi4gU3RhcnQgdGhlIHdlYiBzZXJ2ZXIgd2hpY2ggd2lsbCBnZW5lcmF0ZSB0aGUgbmV3IGNvbmZpZy4KCjMuIE1vdmUgeW91ciBjb25maWd1cmF0aW9ucyB0byB0aGUgbmV3IGNvbmZpZwoKNC4gVGhlIGZpcnN0IHVzZXIgdG8gbG9naW4gd2lsbCBiZSBjcmVhdGVkIGFuZCB3aWxsIGJlIGFuIGFkbWluLiBBbGwgcHJldmlvdXNseSBzdG9yZWQgaG9zdHMgd2lsbCBiZSBtb3ZlZCB0byB0aGlzIHVzZXIuCgpPdGhlciBjaGFuZ2VzOgotIFByb3h5IHBhdGggY2hhbmdlZDoKICAtIGNoYW5nZSBhbGwgaW5zdGFuY2VzIG9mIGBQcm94eVBhc3MgJHtNT09OTElHSFRfU1VCUEFUSH0vIGh0dHA6Ly8ke01PT05MSUdIVF9TVFJFQU1FUn0vYDxicj4gdG8gYFByb3h5UGFzcyAke01PT05MSUdIVF9TVUJQQVRIfS8gaHR0cDovLyR7TU9PTkxJR0hUX1NUUkVBTUVSfSR7TU9PTkxJR0hUX1NVQlBBVEh9L2AKICAtIFtQcm94eWluZyB2aWEgQXBhY2hlIDJdKGh0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL21vb25saWdodC13ZWItc3RyZWFtL3RyZWUvdjI/dGFiPXJlYWRtZS1vdi1maWxlI3Byb3h5aW5nLXZpYS1hcGFjaGUtMikKCiMjIENvbnRyaWJ1dG9ycwotIFRoYW5rcyB0byBbQEFyZ29uMjAwMF0oaHR0cHM6Ly9naXRodWIuY29tL0FyZ29uMjAwMCkgZm9yIGltcGxlbWVudGluZyBhIGNhbnZhcyByZW5kZXJlciwgd2hpY2ggbWFrZXMgdGhpcyBydW4gaW4gdGhlIFRlc2xhIGJyb3dzZXIuCi0gVGhhbmtzIHRvIFtATWFuZWV0YmFsXShodHRwczovL2dpdGh1Yi5jb20vTWFuZWV0YmFsKSBmb3IgY3JlYXRpbmcgYSBuZXcgYmVhdXRpZnVsIEdVSS4KLSBUaGFua3MgdG8gW0BjaHJvbWF0aWNwaXBlXShodHRwczovL2dpdGh1Yi5jb20vY2hyb21hdGljcGlwZSkgZm9yIG1ha2luZyBHaXRodWIgQ0kuCi0gVGhhbmtzIHRvIFtAcWlpbjIzMzNdKGh0dHBzOi8vZ2l0aHViLmNvbS9xaWluMjMzMykgZm9yIGltcGxlbWVudGluZyBIRFIgc3VwcG9ydC4KLSBUaGFua3MgdG8gW0BJZGVmaXgyMDIwXShodHRwczovL2dpdGh1Yi5jb20vSWRlZml4MjAyMCkgZm9yIGZpeGluZyB0aGUgY29udGV4dCBtZW51IGFuZCBpbXBsZW1lbnRpbmcgY2FjaGluZyBmb3IgYXBwIGltYWdlcwoKIyMgQnVpbGRpbmcKTWFrZSBzdXJlIHlvdSd2ZSBjbG9uZWQgdGhpcyByZXBvIHdpdGggYWxsIGl0J3Mgc3VibW9kdWxlcwpgYGBzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvbW9vbmxpZ2h0LXdlYi1zdHJlYW0uZ2l0CmBgYApBIFtSdXN0XShodHRwczovL3d3dy5ydXN0LWxhbmcub3JnL3Rvb2xzL2luc3RhbGwpIFtuaWdodGx5XShodHRwczovL3J1c3QtbGFuZy5naXRodWIuaW8vcnVzdHVwL2NvbmNlcHRzL2NoYW5uZWxzLmh0bWwpIGluc3RhbGxhdGlvbiBpcyByZXF1aXJlZC4KClRoZXJlIGFyZSAyIHdheXMgdG8gYnVpbGQgTW9vbmxpZ2h0IFdlYjoKLSBCdWlsZCBpdCBvbiB5b3VyIHN5c3RlbQoKICBXaGVuIHlvdSB3YW50IHRvIGJ1aWxkIGl0IG9uIHlvdXIgc3lzdGVtIHRha2UgYSBsb29rIGF0IGhvdyB0byBjb21waWxlIHRoZSB3ZWIgc2VydmVyIGFuZCBzdHJlYW1lciBiaW5hcnk6CiAgLSBbbW9vbmxpZ2h0IHdlYiBzZXJ2ZXJdKCNjcmF0ZS1tb29ubGlnaHQtd2ViLXNlcnZlcikKICAtIFttb29ubGlnaHQgd2ViIHN0cmVhbWVyXSgjY3JhdGUtbW9vbmxpZ2h0LXdlYi1zdHJlYW1lcikKICAtIFttb29ubGlnaHQgY29tbW9uIHJ1c3RdKGh0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL21vb25saWdodC1jb21tb24tcnVzdC90cmVlL21hc3Rlci9leGFtcGxlcyNjbGllbnQtY29tbW9uLWMpCgotIENvbXBpbGUgdXNpbmcgW0NhcmdvIENyb3NzXShodHRwczovL2dpdGh1Yi5jb20vY3Jvc3MtcnMvY3Jvc3MpIChkb2Vzbid0IHdvcmsgb24gbW9zdCB0YXJnZXRzIGJlY2F1c2UgY3Jvc3MtcnMgaW1hZ2VzIHVzZSBvdXRkYXRlZCBjL2NwcCBjb21waWxlcnMpCgogIEFmdGVyIHlvdSd2ZSBnb3QgYSBzdWNjZXNzZnVsIGluc3RhbGxhdGlvbiBvZiBjcm9zcyBqdXN0IHJ1biB0aGUgY29tbWFuZCBpbiB0aGUgcHJvamVjdCByb290IGRpcmVjdG9yeS4KICBUaGlzIHdpbGwgY29tcGlsZSB0aGUgW3dlYiBzZXJ2ZXJdKCNjcmF0ZS1tb29ubGlnaHQtd2ViLXNlcnZlcikgYW5kIHRoZSBbc3RyZWFtZXJdKCNjcmF0ZS1tb29ubGlnaHQtd2ViLXN0cmVhbWVyKS4KICBgYGBzaAogIGNyb3NzIGJ1aWxkIC0tcmVsZWFzZSAtLXRhcmdldCBZT1VSX1RBUkdFVAogIGBgYAogIE5vdGU6IHdpbmRvd3Mgb25seSBoYXMgdGhlIGdudSB0YXJnZXQgYHg4Nl82NC1wYy13aW5kb3dzLWdudWAKCiMjIyBDcmF0ZTogTW9vbmxpZ2h0IFdlYiBTZXJ2ZXIKVGhpcyBpcyB0aGUgd2ViIHNlcnZlciBmb3IgTW9vbmxpZ2h0IFdlYiBmb3VuZCBhdCBgc3JjL2AuCkl0J2xsIHNwYXduIGEgbXVsdGlwbGUgW3N0cmVhbWVyc10oI2NyYXRlLW1vb25saWdodC13ZWItc2VydmVyKSBhcyBhIHN1YnByb2Nlc3MgZm9yIGhhbmRsaW5nIGVhY2ggc3RyZWFtLgoKQnVpbGQgdGhlIHdlYiBmcm9udGVuZCB3aXRoIFtucG1dKGh0dHBzOi8vZG9jcy5ucG1qcy5jb20vZG93bmxvYWRpbmctYW5kLWluc3RhbGxpbmctbm9kZS1qcy1hbmQtbnBtKS4KYGBgc2gKbnBtIGluc3RhbGwKbnBtIHJ1biBidWlsZApgYGAKVGhlIGJ1aWxkIG91dHB1dCB3aWxsIGJlIGluIGBkaXN0L2AuCgpJZiB5b3UncmUgY29tcGlsaW5nIGluOgotIGRlYnVnIG1vZGUgLT4gdGhlIGZvbGRlciBuZWVkcyB0byBiZSBjYWxsZWQgYGRpc3QvYAotIHJlbGVhc2UgbW9kZSAtPiB0aGUgZm9sZGVyIG5lZWRzIHRvIGJlIGNhbGxlZCBgc3RhdGljL2AKCiMjIyBDcmF0ZTogTW9vbmxpZ2h0IFdlYiBTdHJlYW1lcgpUaGlzIGlzIHRoZSBzdHJlYW1lciBzdWJwcm9jZXNzIG9mIHRoZSBbd2ViIHNlcnZlcl0oI2NyYXRlLW1vb25saWdodC13ZWItc2VydmVyKSBhbmQgZm91bmQgYXQgYHN0cmVhbWVyL2AuCkl0J2xsIGNvbW11bmljYXRlIHZpYSBzdGRpbiBhbmQgc3Rkb3V0IHdpdGggdGhlIHdlYiBzZXJ2ZXIgdG8gbmVnb3RpYXRlIHRoZSBXZWJSVEMgcGVlcnMgYW5kIHRoZW4gY29udGludWUgdG8gY29tbXVuaWNhdGUgdmlhIHRoZSBwZWVyLgo="},{"path":"build-windows.ps1","sha256":"1941beb6b5f76a77e78dc5e31bac1cd9a81f4c7f16813b5e3434b3a713c7c5aa","contentBase64":"IyBXaW5kb3dzIGJ1aWxkOiBzZXQgT1BFTlNTTF9ESVIgdGhlbiBjYXJnbyBidWlsZCAoYXZvaWRzIG9wZW5zc2wtc3lzIHNvdXJjZSBidWlsZCBmYWlsdXJlKS4KIyBVc2FnZTogLlxidWlsZC13aW5kb3dzLnBzMSBbLS1yZWxlYXNlXQoKJEVycm9yQWN0aW9uUHJlZmVyZW5jZSA9ICJTdG9wIgoKaWYgKC1ub3QgJGVudjpPUEVOU1NMX0RJUikgewogICAgJGNhbmRpZGF0ZXMgPSBAKAogICAgICAgICJDOlxQcm9ncmFtIEZpbGVzXE9wZW5TU0wtV2luNjQiLAogICAgICAgICJDOlxQcm9ncmFtIEZpbGVzXE9wZW5TU0wiLAogICAgICAgICJDOlxPcGVuU1NMLVdpbjY0IiwKICAgICAgICAiQzpcT3BlblNTTCIKICAgICkKICAgIGZvcmVhY2ggKCRkaXIgaW4gJGNhbmRpZGF0ZXMpIHsKICAgICAgICAkaCA9IEpvaW4tUGF0aCAkZGlyICJpbmNsdWRlXG9wZW5zc2xcc3NsLmgiCiAgICAgICAgaWYgKFRlc3QtUGF0aCAkaCkgewogICAgICAgICAgICAkZW52Ok9QRU5TU0xfRElSID0gJGRpcgogICAgICAgICAgICBXcml0ZS1Ib3N0ICJVc2luZyBPUEVOU1NMX0RJUj0kZGlyIgogICAgICAgICAgICBicmVhawogICAgICAgIH0KICAgIH0KICAgIGlmICgtbm90ICRlbnY6T1BFTlNTTF9ESVIpIHsKICAgICAgICBXcml0ZS1Ib3N0ICJPcGVuU1NMIG5vdCBmb3VuZCBpbjogJCgkY2FuZGlkYXRlcyAtam9pbiAnLCAnKSIKICAgICAgICBXcml0ZS1Ib3N0ICIiCiAgICAgICAgV3JpdGUtSG9zdCAiT3B0aW9uIDEgLSBJbnN0YWxsIFdpbjY0IE9wZW5TU0wgKGRlZmF1bHQgcGF0aCk6IgogICAgICAgIFdyaXRlLUhvc3QgIiAgaHR0cHM6Ly9zbHByb3dlYi5jb20vcHJvZHVjdHMvV2luMzJPcGVuU1NMLmh0bWwiCiAgICAgICAgV3JpdGUtSG9zdCAiICBEb3dubG9hZCAnV2luNjQgT3BlblNTTCB2My54JyBhbmQgaW5zdGFsbCB0byBkZWZhdWx0IGxvY2F0aW9uLCB0aGVuIHJ1biB0aGlzIHNjcmlwdCBhZ2Fpbi4iCiAgICAgICAgV3JpdGUtSG9zdCAiIgogICAgICAgIFdyaXRlLUhvc3QgIk9wdGlvbiAyIC0gSWYgYWxyZWFkeSBpbnN0YWxsZWQgZWxzZXdoZXJlLCBzZXQgT1BFTlNTTF9ESVIgYW5kIHJ1biBhZ2FpbjoiCiAgICAgICAgV3JpdGUtSG9zdCAiICBgJGVudjpPUEVOU1NMX0RJUiA9ICdDOlxwYXRoXHRvXHlvdXJcT3BlblNTTC1XaW42NCciCiAgICAgICAgV3JpdGUtSG9zdCAiICAuXGJ1aWxkLXdpbmRvd3MucHMxIgogICAgICAgIGV4aXQgMQogICAgfQp9CgokcmVsZWFzZSA9ICgkYXJncyAtY29udGFpbnMgJy0tcmVsZWFzZScpCmlmICgkcmVsZWFzZSkgewogICAgY2FyZ28gYnVpbGQgLS1yZWxlYXNlCn0gZWxzZSB7CiAgICBjYXJnbyBidWlsZAp9Cg=="},{"path":"buildAll.ps1","sha256":"ae2c5d9f71f74b248ccb8f739d92c768c6f56b76f3550916f120c47e822c82fd","contentBase64":"IyBSZXNvbHZpbmcgcGF0aHMKCiRtZXRhZGF0YUpzb24gPSBjYXJnbyBtZXRhZGF0YSAtLWZvcm1hdC12ZXJzaW9uIDEgLS1uby1kZXBzCiRtZXRhZGF0YSA9ICRtZXRhZGF0YUpzb24gfCBDb252ZXJ0RnJvbS1Kc29uCiR0YXJnZXREaXIgPSAkbWV0YWRhdGEudGFyZ2V0X2RpcmVjdG9yeQoKTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAiLi9maW5hbE91dHB1dCIgLUZvcmNlCiRvdXRwdXREaXIgPSBSZXNvbHZlLVBhdGggIi4vZmluYWxPdXRwdXQiCgokbW9vbmxpZ2h0Um9vdCA9IFJlc29sdmUtUGF0aCAiLiIKJG1vb25saWdodEZyb250ZW5kID0gSm9pbi1QYXRoIC1QYXRoICRtb29ubGlnaHRSb290IC1DaGlsZFBhdGggIi4iCgppZighJG1vb25saWdodFJvb3QgLW9yICEkbW9vbmxpZ2h0RnJvbnRlbmQpIHsKICAgIGVjaG8gIk5vIHJvb3QgZGlyZWN0b3J5IGZvdW5kISIKICAgIGV4aXQgMAp9CgplY2hvICJUYXJnZXQgZGlyZWN0b3J5IGF0ICR0YXJnZXREaXIiCmVjaG8gIlB1dHRpbmcgZmluYWwgb3V0cHV0IGludG8gJG91dHB1dERpciIKZWNobyAiTW9vbmxpZ2h0IFJvb3QgRGlyZWN0b3J5ICRtb29ubGlnaHRSb290IgoKJHRhcmdldHMgPSBAKAogICAgIng4Nl82NC1wYy13aW5kb3dzLWdudSIKICAgICJ4ODZfNjQtdW5rbm93bi1saW51eC1nbnUiCiAgICAiYWFyY2g2NC11bmtub3duLWxpbnV4LW11c2wiCikKClJlbW92ZS1JdGVtIC1QYXRoICIkb3V0cHV0RGlyLyoiIC1SZWN1cnNlIC1Gb3JjZQoKZWNobyAiLS0tLS0tLS0tLS0tLSBTdGFydGluZyBCdWlsZCBmb3IgRnJvbnRlbmQgLS0tLS0tLS0tLS0tLSIKU2V0LUxvY2F0aW9uICRtb29ubGlnaHRGcm9udGVuZAoKTmV3LUl0ZW0gLUl0ZW1UeXBlIERpcmVjdG9yeSAiJG91dHB1dERpci9zdGF0aWMiIC1Gb3JjZSB8IE91dC1OdWxsCgpSZW1vdmUtSXRlbSAtUGF0aCAiJG1vb25saWdodEZyb250ZW5kL2Rpc3QiIC1SZWN1cnNlIC1Gb3JjZQpucG0gcnVuIGJ1aWxkCgpDb3B5LUl0ZW0gLVBhdGggIiRtb29ubGlnaHRGcm9udGVuZC9kaXN0LyoiIC1EZXN0aW5hdGlvbiAiJG91dHB1dERpci9zdGF0aWMiIC1SZWN1cnNlIC1Gb3JjZQplY2hvICItLS0tLS0tLS0tLS0tIEZpbmlzaGVkIEJ1aWxkIGZvciBGcm9udGVuZCAtLS0tLS0tLS0tLS0tIgoKU2V0LUxvY2F0aW9uICRtb29ubGlnaHRSb290Cgpmb3JlYWNoKCR0YXJnZXQgaW4gJHRhcmdldHMpIHsKICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0gU3RhcnRpbmcgQnVpbGQgZm9yICR0YXJnZXQgLS0tLS0tLS0tLS0tLSIKICAgICRtZXNzYWdlcyA9IGNyb3NzIGJ1aWxkIC0tcmVsZWFzZSAtLXRhcmdldCAkdGFyZ2V0IC0tbWVzc2FnZS1mb3JtYXQ9anNvbiB8IEZvckVhY2gtT2JqZWN0IHsgJF8gfCBDb252ZXJ0RnJvbS1Kc29uIH0KICAgIGlmICgkTEFTVEVYSVRDT0RFIC1uZSAwKSB7CiAgICAgICAgZXhpdCAkTEFTVEVYSVRDT0RFCiAgICB9CiAgICBlY2hvICItLS0tLS0tLS0tLS0tIEZpbmlzaGVkIEJ1aWxkIGZvciAkdGFyZ2V0IC0tLS0tLS0tLS0tLS0iCgogICAgJGFydGlmYWN0ID0gJG1lc3NhZ2VzIHwgV2hlcmUtT2JqZWN0IHsgJF8ucmVhc29uIC1lcSAiY29tcGlsZXItYXJ0aWZhY3QiIC1hbmQgJF8uZXhlY3V0YWJsZSB9CiAgICAkYmluYXJ5UGF0aHMgPSAkYXJ0aWZhY3QgfCBGb3JFYWNoLU9iamVjdCB7IEpvaW4tUGF0aCAtUGF0aCAkdGFyZ2V0RGlyIC1DaGlsZFBhdGggKCRfLmV4ZWN1dGFibGUuU3Vic3RyaW5nKCIvdGFyZ2V0Ii5sZW5ndGgpKSB9CgogICAgJGJpbmFyeVBhdGhzIHwgRm9yRWFjaC1PYmplY3QgeyBXcml0ZS1Ib3N0ICJCaW5hcnk6ICRfIiB9CgogICAgZWNobyAiLS0tLS0tLS0tLS0tLSBTdGFydGluZyBaaXBwaW5nIGZvciAkdGFyZ2V0IC0tLS0tLS0tLS0tLS0iCiAgICAkaXRlbXNUb1ppcCA9IEAoJGJpbmFyeVBhdGhzKSArICIkb3V0cHV0RGlyL3N0YXRpYyIKICAgICRhcmNoaXZlTmFtZSA9ICIkb3V0cHV0RGlyL21vb25saWdodC13ZWItJHRhcmdldCIKCiAgICBpZiAoJHRhcmdldCAtY2xpa2UgIip3aW5kb3dzKiIpIHsKICAgICAgICAjIENyZWF0ZSB6aXAKICAgICAgICAkemlwRGVzdGluYXRpb24gPSAiJGFyY2hpdmVOYW1lLnppcCIKICAgICAgICA3eiBhIC10emlwICR6aXBEZXN0aW5hdGlvbiAkaXRlbXNUb1ppcCAteQogICAgfSBlbHNlIHsKICAgICAgICAjIENyZWF0ZSB0YXIuZ3oKICAgICAgICBOZXctSXRlbSAtSXRlbVR5cGUgRGlyZWN0b3J5ICIkYXJjaGl2ZU5hbWUiIC1Gb3JjZSB8IE91dC1OdWxsCgogICAgICAgIGZvcmVhY2ggKCRpdGVtIGluICRpdGVtc1RvWmlwKSB7CiAgICAgICAgICAgIENvcHktSXRlbSAkaXRlbSAtUmVjdXJzZSAtRGVzdGluYXRpb24gJGFyY2hpdmVOYW1lCiAgICAgICAgfQoKICAgICAgICAkdGFyRGVzdGluYXRpb24gPSAiJGFyY2hpdmVOYW1lLnRhciIKICAgICAgICAkZ3pEZXN0aW5hdGlvbiA9ICIkYXJjaGl2ZU5hbWUudGFyLmd6IgogICAgICAgIDd6IGEgLXR0YXIgJHRhckRlc3RpbmF0aW9uICRhcmNoaXZlTmFtZSAteQogICAgICAgIDd6IGEgLXRnemlwICRnekRlc3RpbmF0aW9uICR0YXJEZXN0aW5hdGlvbiAteQogICAgICAgIAogICAgICAgIFJlbW92ZS1JdGVtICR0YXJEZXN0aW5hdGlvbgoKICAgICAgICBSZW1vdmUtSXRlbSAkYXJjaGl2ZU5hbWUgLVJlY3Vyc2UKICAgIH0KCiAgICBlY2hvICJDcmVhdGVkIFppcCBmaWxlIGF0ICRhcmNoaXZlTmFtZSIKICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0gRmluaXNoZWQgWmlwcGluZyBmb3IgJHRhcmdldCAtLS0tLS0tLS0tLS0tIgp9CgpSZW1vdmUtSXRlbSAiJG91dHB1dERpci9zdGF0aWMiIC1SZWN1cnNlCgplY2hvICJGaW5pc2hlZCEi"},{"path":"common/Cargo.toml","sha256":"6d7da3b4ee53ae905d1cc460254a9b96d8247a25cf19fd48f98eabb6d30df831","contentBase64":"W3BhY2thZ2VdCm5hbWUgPSAiY29tbW9uIgp2ZXJzaW9uLndvcmtzcGFjZSA9IHRydWUKZWRpdGlvbiA9ICIyMDI0IgpsaWNlbnNlLndvcmtzcGFjZSA9IHRydWUKCltkZXBlbmRlbmNpZXNdCm1vb25saWdodC1jb21tb24gPSB7IHdvcmtzcGFjZSA9IHRydWUgfQoKdG9raW8gPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWwogICAgInByb2Nlc3MiLAogICAgInJ0IiwKICAgICJpby11dGlsIiwKICAgICJpby1zdGQiLAogICAgInN5bmMiLApdIH0KCmJ5dGVzID0geyB3b3Jrc3BhY2UgPSB0cnVlLCBmZWF0dXJlcyA9IFsic2VyZGUiXSB9CgpwZW0gPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyJzZXJkZSJdIH0KCnNlcmRlID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0Kc2VyZGVfanNvbiA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9Cgpsb2cgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyJzZXJkZSJdIH0KdHJhY2luZyA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9Cgp0cy1ycyA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbInV1aWQtaW1wbCJdIH0KCnRoaXNlcnJvciA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CgpbbGludHNdCndvcmtzcGFjZSA9IHRydWUKCltsaWJdCmRvY3Rlc3QgPSBmYWxzZQo="},{"path":"common/src/api_bindings.rs","sha256":"9e3b132f77a0dcd1c2275279ded94263bad5f9aedafc3d998a2ca93cdb89ad0f","contentBase64":"dXNlIHN0ZDo6Zm10Ojp7RGlzcGxheSwgRm9ybWF0dGVyfTsKCnVzZSBtb29ubGlnaHRfY29tbW9uOjp7CiAgICBTZXJ2ZXJTdGF0ZSwKICAgIHN0cmVhbTo6Y29udHJvbDo6e0NvbnRyb2xsZXJCdXR0b25zLCBDb250cm9sbGVyQ2FwYWJpbGl0aWVzLCBLZXlNb2RpZmllcnMsIE1vdXNlQnV0dG9ufSwKICAgIHN0cmVhbTo6dmlkZW86OntDb2xvclNwYWNlLCBWaWRlb0Zvcm1hdHN9LAp9Owp1c2Ugc2VyZGU6OntEZXNlcmlhbGl6ZSwgU2VyaWFsaXplfTsKdXNlIHRzX3JzOjpUUzsKCnVzZSBjcmF0ZTo6e2FwaV9iaW5kaW5nc19leHQ6OlRzQW55LCB0c19jb25zdHN9OwoKY29uc3QgRVhQT1JUX1BBVEg6ICZzdHIgPSAiLi4vLi4vd2ViL2FwaV9iaW5kaW5ncy50cyI7CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMsIENsb25lKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBDb25maWdKcyB7CiAgICBwdWIgcGF0aF9wcmVmaXg6IFN0cmluZywKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTLCBDbG9uZSldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgUG9zdExvZ2luUmVxdWVzdCB7CiAgICBwdWIgbmFtZTogU3RyaW5nLAogICAgcHViIHBhc3N3b3JkOiBTdHJpbmcsCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUywgQ2xvbmUsIENvcHkpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgZW51bSBIb3N0U3RhdGUgewogICAgRnJlZSwKICAgIEJ1c3ksCn0KCmltcGwgRnJvbTxTZXJ2ZXJTdGF0ZT4gZm9yIEhvc3RTdGF0ZSB7CiAgICBmbiBmcm9tKHZhbHVlOiBTZXJ2ZXJTdGF0ZSkgLT4gU2VsZiB7CiAgICAgICAgbWF0Y2ggdmFsdWUgewogICAgICAgICAgICBTZXJ2ZXJTdGF0ZTo6RnJlZSA9PiBTZWxmOjpGcmVlLAogICAgICAgICAgICBTZXJ2ZXJTdGF0ZTo6QnVzeSA9PiBTZWxmOjpCdXN5LAogICAgICAgIH0KICAgIH0KfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIGVudW0gUGFpclN0YXR1cyB7CiAgICBOb3RQYWlyZWQsCiAgICBQYWlyZWQsCn0KCmltcGwgUGFpclN0YXR1cyB7CiAgICBwdWIgZm4gZnJvbV9wYWlyZWQodmFsdWU6IGJvb2wpIC0+IFBhaXJTdGF0dXMgewogICAgICAgIGlmIHZhbHVlIHsKICAgICAgICAgICAgUGFpclN0YXR1czo6UGFpcmVkCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgUGFpclN0YXR1czo6Tm90UGFpcmVkCiAgICAgICAgfQogICAgfQp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgZW51bSBIb3N0T3duZXIgewogICAgVGhpc1VzZXIsCiAgICBHbG9iYWwsCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgVW5kZXRhaWxlZEhvc3QgewogICAgcHViIGhvc3RfaWQ6IHUzMiwKICAgIHB1YiBvd25lcjogSG9zdE93bmVyLAogICAgcHViIG5hbWU6IFN0cmluZywKICAgIHB1YiBwYWlyZWQ6IFBhaXJTdGF0dXMsCiAgICAvLy8gTm9uZSBpZiBvZmZsaW5lIGVsc2UgdGhlIHN0YXRlCiAgICBwdWIgc2VydmVyX3N0YXRlOiBPcHRpb248SG9zdFN0YXRlPiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBEZXRhaWxlZEhvc3QgewogICAgcHViIGhvc3RfaWQ6IHUzMiwKICAgIHB1YiBvd25lcjogSG9zdE93bmVyLAogICAgcHViIG5hbWU6IFN0cmluZywKICAgIHB1YiBwYWlyZWQ6IFBhaXJTdGF0dXMsCiAgICBwdWIgc2VydmVyX3N0YXRlOiBPcHRpb248SG9zdFN0YXRlPiwKICAgIHB1YiBhZGRyZXNzOiBTdHJpbmcsCiAgICBwdWIgaHR0cF9wb3J0OiB1MTYsCiAgICBwdWIgaHR0cHNfcG9ydDogdTE2LAogICAgcHViIGV4dGVybmFsX3BvcnQ6IHUxNiwKICAgIHB1YiB2ZXJzaW9uOiBTdHJpbmcsCiAgICBwdWIgZ2ZlX3ZlcnNpb246IFN0cmluZywKICAgIHB1YiB1bmlxdWVfaWQ6IFN0cmluZywKICAgIHB1YiBtYWM6IE9wdGlvbjxTdHJpbmc+LAogICAgcHViIGxvY2FsX2lwOiBTdHJpbmcsCiAgICBwdWIgY3VycmVudF9nYW1lOiB1MzIsCiAgICBwdWIgbWF4X2x1bWFfcGl4ZWxzX2hldmM6IHUzMiwKICAgIHB1YiBzZXJ2ZXJfY29kZWNfbW9kZV9zdXBwb3J0OiB1MzIsCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgQXBwIHsKICAgIHB1YiBhcHBfaWQ6IHUzMiwKICAgIHB1YiB0aXRsZTogU3RyaW5nLAogICAgcHViIGlzX2hkcl9zdXBwb3J0ZWQ6IGJvb2wsCn0KCmltcGwgRnJvbTxtb29ubGlnaHRfY29tbW9uOjpodHRwOjphcHBfbGlzdDo6QXBwPiBmb3IgQXBwIHsKICAgIGZuIGZyb20odmFsdWU6IG1vb25saWdodF9jb21tb246Omh0dHA6OmFwcF9saXN0OjpBcHApIC0+IFNlbGYgewogICAgICAgIFNlbGYgewogICAgICAgICAgICBhcHBfaWQ6IHZhbHVlLmlkLAogICAgICAgICAgICB0aXRsZTogdmFsdWUudGl0bGUsCiAgICAgICAgICAgIGlzX2hkcl9zdXBwb3J0ZWQ6IHZhbHVlLmlzX2hkcl9zdXBwb3J0ZWQsCiAgICAgICAgfQogICAgfQp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IEdldEhvc3RzUmVzcG9uc2UgewogICAgcHViIGhvc3RzOiBWZWM8VW5kZXRhaWxlZEhvc3Q+LAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IEdldEhvc3RRdWVyeSB7CiAgICBwdWIgaG9zdF9pZDogdTMyLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IEdldEhvc3RSZXNwb25zZSB7CiAgICBwdWIgaG9zdDogRGV0YWlsZWRIb3N0LAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IFBvc3RIb3N0UmVxdWVzdCB7CiAgICBwdWIgYWRkcmVzczogU3RyaW5nLAogICAgcHViIGh0dHBfcG9ydDogT3B0aW9uPHUxNj4sCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgUG9zdEhvc3RSZXNwb25zZSB7CiAgICBwdWIgaG9zdDogRGV0YWlsZWRIb3N0LAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IFBhdGNoSG9zdFJlcXVlc3QgewogICAgLy8vIFRoZSBob3N0IGlkIG9mIHRoZSBob3N0IHRvIGNoYW5nZQogICAgcHViIGhvc3RfaWQ6IHUzMiwKICAgIC8vLyBPcHRpb248T3B0aW9uPHUzMj4+IGFyZSBub3Qgc3VwcG9ydGVkCiAgICBwdWIgY2hhbmdlX293bmVyOiBib29sLAogICAgcHViIG93bmVyOiBPcHRpb248dTMyPiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBEZWxldGVIb3N0UXVlcnkgewogICAgcHViIGhvc3RfaWQ6IHUzMiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBQb3N0UGFpclJlcXVlc3QgewogICAgcHViIGhvc3RfaWQ6IHUzMiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIGVudW0gUG9zdFBhaXJSZXNwb25zZTEgewogICAgSW50ZXJuYWxTZXJ2ZXJFcnJvciwKICAgIFBhaXJFcnJvciwKICAgIFBpbihTdHJpbmcpLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgZW51bSBQb3N0UGFpclJlc3BvbnNlMiB7CiAgICBQYWlyRXJyb3IsCiAgICBQYWlyZWQoRGV0YWlsZWRIb3N0KSwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBQb3N0V2FrZVVwUmVxdWVzdCB7CiAgICBwdWIgaG9zdF9pZDogdTMyLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IEdldEFwcHNRdWVyeSB7CiAgICBwdWIgaG9zdF9pZDogdTMyLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IEdldEFwcHNSZXNwb25zZSB7CiAgICBwdWIgYXBwczogVmVjPEFwcD4sCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgR2V0QXBwSW1hZ2VRdWVyeSB7CiAgICBwdWIgaG9zdF9pZDogdTMyLAogICAgcHViIGFwcF9pZDogdTMyLAogICAgI1tzZXJkZShkZWZhdWx0KV0KICAgIHB1YiBmb3JjZV9yZWZyZXNoOiBib29sLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IFBvc3RDYW5jZWxSZXF1ZXN0IHsKICAgIHB1YiBob3N0X2lkOiB1MzIsCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgUG9zdENhbmNlbFJlc3BvbnNlIHsKICAgIHB1YiBzdWNjZXNzOiBib29sLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgZW51bSBSb2xlVHlwZSB7CiAgICBVc2VyLAogICAgQWRtaW4sCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgR2V0VXNlclF1ZXJ5IHsKICAgIHB1YiBuYW1lOiBPcHRpb248U3RyaW5nPiwKICAgIHB1YiB1c2VyX2lkOiBPcHRpb248dTMyPiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBEZXRhaWxlZFVzZXIgewogICAgcHViIGlkOiB1MzIsCiAgICBwdWIgaXNfZGVmYXVsdF91c2VyOiBib29sLAogICAgcHViIG5hbWU6IFN0cmluZywKICAgIHB1YiByb2xlOiBSb2xlVHlwZSwKICAgIHB1YiByb2xlX2lkOiB1MzIsCiAgICBwdWIgY2xpZW50X3VuaXF1ZV9pZDogU3RyaW5nLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IFBvc3RVc2VyUmVxdWVzdCB7CiAgICBwdWIgbmFtZTogU3RyaW5nLAogICAgcHViIHBhc3N3b3JkOiBTdHJpbmcsCiAgICBwdWIgcm9sZV9pZDogdTMyLAogICAgcHViIGNsaWVudF91bmlxdWVfaWQ6IFN0cmluZywKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBQYXRjaFVzZXJSZXF1ZXN0IHsKICAgIC8vLyBUaGUgdXNlciBpZCBvZiB0aGUgdXNlciB0byBjaGFuZ2UKICAgIHB1YiBpZDogdTMyLAogICAgcHViIHBhc3N3b3JkOiBPcHRpb248U3RyaW5nPiwKICAgIHB1YiByb2xlX2lkOiBPcHRpb248dTMyPiwKICAgIHB1YiBjbGllbnRfdW5pcXVlX2lkOiBPcHRpb248U3RyaW5nPiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBEZWxldGVVc2VyUmVxdWVzdCB7CiAgICBwdWIgaWQ6IHUzMiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBHZXRVc2Vyc1Jlc3BvbnNlIHsKICAgIHB1YiB1c2VyczogVmVjPERldGFpbGVkVXNlcj4sCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgRGV0YWlsZWRSb2xlIHsKICAgIHB1YiBpZDogdTMyLAogICAgcHViIG5hbWU6IFN0cmluZywKICAgIHB1YiB0eTogUm9sZVR5cGUsCiAgICBwdWIgZGVmYXVsdF9zZXR0aW5nczogVHNBbnksCiAgICBwdWIgcGVybWlzc2lvbnM6IFN0cmVhbVBlcm1pc3Npb25zLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IFVuZGV0YWlsZWRSb2xlIHsKICAgIHB1YiBpZDogdTMyLAogICAgcHViIG5hbWU6IFN0cmluZywKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBTdHJlYW1TZXR0aW5ncyB7CiAgICBwdWIgYml0cmF0ZV9rYnBzOiB1MzIsCiAgICBwdWIgd2lkdGg6IHUzMiwKICAgIHB1YiBoZWlnaHQ6IHUzMiwKICAgIHB1YiBmcHM6IHUzMiwKICAgIHB1YiBwbGF5X2F1ZGlvX2xvY2FsOiBib29sLAogICAgLy8vIFRoaXMgaXMgdXNpbmcgdGhlIFtWaWRlb0Zvcm1hdHNdCiAgICBwdWIgc3VwcG9ydGVkX2NvZGVjczogdTMyLAogICAgcHViIGhkcjogYm9vbCwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBTdHJlYW1QZXJtaXNzaW9ucyB7CiAgICBwdWIgYWxsb3dfYWRkX2hvc3RzOiBib29sLAogICAgLy8vIElmIFtOb25lXSB0aGVyZSdzIG5vIGxpbWl0CiAgICBwdWIgbWF4aW11bV9iaXRyYXRlX2ticHM6IE9wdGlvbjx1MzI+LAogICAgcHViIGFsbG93X2NvZGVjX2gyNjQ6IGJvb2wsCiAgICBwdWIgYWxsb3dfY29kZWNfaDI2NTogYm9vbCwKICAgIHB1YiBhbGxvd19jb2RlY19hdjE6IGJvb2wsCiAgICBwdWIgYWxsb3dfaGRyOiBib29sLAogICAgcHViIGFsbG93X3RyYW5zcG9ydF93ZWJydGM6IGJvb2wsCiAgICBwdWIgYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHM6IGJvb2wsCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgUG9zdFJvbGVSZXF1ZXN0IHsKICAgIHB1YiBuYW1lOiBTdHJpbmcsCiAgICBwdWIgdHk6IFJvbGVUeXBlLAogICAgcHViIGRlZmF1bHRfc2V0dGluZ3M6IFRzQW55LAogICAgcHViIHBlcm1pc3Npb25zOiBTdHJlYW1QZXJtaXNzaW9ucywKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBQb3N0Um9sZVJlc3BvbnNlIHsKICAgIHB1YiByb2xlOiBEZXRhaWxlZFJvbGUsCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBzdHJ1Y3QgUGF0Y2hSb2xlUmVxdWVzdCB7CiAgICAvLy8gVGhlIHJvbGUgaWQKICAgIHB1YiBpZDogdTMyLAogICAgcHViIG5hbWU6IE9wdGlvbjxTdHJpbmc+LAogICAgcHViIHR5OiBSb2xlVHlwZSwKICAgIHB1YiBkZWZhdWx0X3NldHRpbmdzOiBPcHRpb248VHNBbnk+LAogICAgcHViIHBlcm1pc3Npb25zOiBPcHRpb248U3RyZWFtUGVybWlzc2lvbnM+LAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IEdldFJvbGVRdWVyeSB7CiAgICAvLy8gVGhlIHJvbGUgaWQKICAgIC8vLyBJZiBlbXB0eSB0aGUgcm9sZSBvZiB0aGUgdXNlciBtYWtpbmcgdGhlIHJlcXVlc3QgaXMgdXNlZAogICAgcHViIGlkOiBPcHRpb248dTMyPiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBHZXRSb2xlUmVzcG9uc2UgewogICAgcHViIHJvbGU6IERldGFpbGVkUm9sZSwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBEZWxldGVSb2xlUXVlcnkgewogICAgLy8vIFRoZSByb2xlIGlkCiAgICBwdWIgaWQ6IHUzMiwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBHZXRSb2xlc1Jlc3BvbnNlIHsKICAgIHB1YiByb2xlczogVmVjPFVuZGV0YWlsZWRSb2xlPiwKfQoKLy8gLS0gU3RyZWFtCgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMsIENsb25lLCBDb3B5LCBQYXJ0aWFsRXEsIEVxKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KI1tzZXJkZShyZW5hbWVfYWxsID0gImxvd2VyY2FzZSIpXQpwdWIgZW51bSBUcmFuc3BvcnRDaGFubmVsTWV0aG9kIHsKICAgIFdlYlJUQywKICAgIFdlYlNvY2tldCwKfQoKdHNfY29uc3RzISgKICAgIHB1YiBUcmFuc3BvcnRDaGFubmVsSWQoZXhwb3J0X2JpbmRpbmdzX3RyYW5zcG9ydF9jaGFubmVsX2lkOiBFWFBPUlRfUEFUSCkgYXMgdTg6CgogICAgcHViIGNvbnN0IEdFTkVSQUw6IHU4ID0gMDsKICAgIHB1YiBjb25zdCBTVEFUUzogdTggPSAxOwogICAgcHViIGNvbnN0IEhPU1RfVklERU86IHU4ID0gMjsKICAgIHB1YiBjb25zdCBIT1NUX0FVRElPOiB1OCA9IDM7CiAgICBwdWIgY29uc3QgTU9VU0VfUkVMSUFCTEU6IHU4ID0gNDsKICAgIHB1YiBjb25zdCBNT1VTRV9BQlNPTFVURTogdTggPSA1OwogICAgcHViIGNvbnN0IE1PVVNFX1JFTEFUSVZFOiB1OCA9IDY7CiAgICBwdWIgY29uc3QgS0VZQk9BUkQ6IHU4ID0gNzsKICAgIHB1YiBjb25zdCBUT1VDSDogdTggPSA4OwogICAgcHViIGNvbnN0IENPTlRST0xMRVJTOiB1OCA9IDk7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjA6IHU4ID0gMTA7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjE6IHU4ID0gMTE7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjI6IHU4ID0gMTI7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjM6IHU4ID0gMTM7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjQ6IHU4ID0gMTQ7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjU6IHU4ID0gMTU7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjY6IHU4ID0gMTY7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjc6IHU4ID0gMTc7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjg6IHU4ID0gMTg7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjk6IHU4ID0gMTk7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjEwOiB1OCA9IDIwOwogICAgcHViIGNvbnN0IENPTlRST0xMRVIxMTogdTggPSAyMTsKICAgIHB1YiBjb25zdCBDT05UUk9MTEVSMTI6IHU4ID0gMjI7CiAgICBwdWIgY29uc3QgQ09OVFJPTExFUjEzOiB1OCA9IDIzOwogICAgcHViIGNvbnN0IENPTlRST0xMRVIxNDogdTggPSAyNDsKICAgIHB1YiBjb25zdCBDT05UUk9MTEVSMTU6IHU4ID0gMjU7CiAgICBwdWIgY29uc3QgUlRUOiB1OCA9IDI2OwopOwoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTLCBDbG9uZSwgQ29weSwgUGFydGlhbEVxLCBFcSldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCiNbc2VyZGUocmVuYW1lX2FsbCA9ICJsb3dlcmNhc2UiKV0KcHViIGVudW0gUnRjU2RwVHlwZSB7CiAgICBPZmZlciwKICAgIEFuc3dlciwKICAgIFByYW5zd2VyLAogICAgUm9sbGJhY2ssCiAgICBVbnNwZWNpZmllZCwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBSdGNTZXNzaW9uRGVzY3JpcHRpb24gewogICAgcHViIHR5OiBSdGNTZHBUeXBlLAogICAgcHViIHNkcDogU3RyaW5nLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IFJ0Y0ljZUNhbmRpZGF0ZSB7CiAgICBwdWIgY2FuZGlkYXRlOiBTdHJpbmcsCiAgICBwdWIgc2RwX21pZDogT3B0aW9uPFN0cmluZz4sCiAgICBwdWIgc2RwX21saW5lX2luZGV4OiBPcHRpb248dTE2PiwKICAgIHB1YiB1c2VybmFtZV9mcmFnbWVudDogT3B0aW9uPFN0cmluZz4sCn0KCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBlbnVtIFN0cmVhbVNpZ25hbGluZ01lc3NhZ2UgewogICAgRGVzY3JpcHRpb24oUnRjU2Vzc2lvbkRlc2NyaXB0aW9uKSwKICAgIEFkZEljZUNhbmRpZGF0ZShSdGNJY2VDYW5kaWRhdGUpLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgZW51bSBUcmFuc3BvcnRUeXBlIHsKICAgIFdlYlJUQywKICAgIFdlYlNvY2tldCwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIGVudW0gU3RyZWFtQ2xpZW50TWVzc2FnZSB7CiAgICBJbml0IHsKICAgICAgICBob3N0X2lkOiB1MzIsCiAgICAgICAgYXBwX2lkOiB1MzIsCiAgICAgICAgdmlkZW9fZnJhbWVfcXVldWVfc2l6ZTogdXNpemUsCiAgICAgICAgYXVkaW9fc2FtcGxlX3F1ZXVlX3NpemU6IHVzaXplLAogICAgfSwKICAgIFdlYlJ0YyhTdHJlYW1TaWduYWxpbmdNZXNzYWdlKSwKICAgIFNldFRyYW5zcG9ydChUcmFuc3BvcnRUeXBlKSwKICAgIFN0YXJ0U3RyZWFtIHsKICAgICAgICBzZXR0aW5nczogU3RyZWFtU2V0dGluZ3MsCiAgICB9LAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMsIENsb25lLCBEZWZhdWx0KV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBSdGNJY2VTZXJ2ZXIgewogICAgI1tzZXJkZShza2lwKV0KICAgIHB1YiBpc19kZWZhdWx0OiBib29sLAogICAgcHViIHVybHM6IFZlYzxTdHJpbmc+LAogICAgI1tzZXJkZShkZWZhdWx0KV0KICAgIHB1YiB1c2VybmFtZTogU3RyaW5nLAogICAgI1tzZXJkZShkZWZhdWx0KV0KICAgIHB1YiBjcmVkZW50aWFsOiBTdHJpbmcsCn0KCmltcGwgRGlzcGxheSBmb3IgUnRjSWNlU2VydmVyIHsKICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBGb3JtYXR0ZXI8J18+KSAtPiBzdGQ6OmZtdDo6UmVzdWx0IHsKICAgICAgICB3cml0ZSEoCiAgICAgICAgICAgIGYsCiAgICAgICAgICAgICJ1cmxzPVt7fV0sIHVzZXJuYW1lPVwie31cIiwgY3JlZGVudGlhbD1cInt9XCIiLAogICAgICAgICAgICBzZWxmLnVybHMuam9pbigiLCAiKSwKICAgICAgICAgICAgc2VsZi51c2VybmFtZSwKICAgICAgICAgICAgc2VsZi5jcmVkZW50aWFsLAogICAgICAgICkKICAgIH0KfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIHN0cnVjdCBTdHJlYW1DYXBhYmlsaXRpZXMgewogICAgcHViIHRvdWNoOiBib29sLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQojW3NlcmRlKHJlbmFtZV9hbGwgPSAiY2FtZWxDYXNlIildCiNbdHMocmVuYW1lX2FsbCA9ICJjYW1lbENhc2UiKV0KcHViIGVudW0gTG9nTWVzc2FnZVR5cGUgewogICAgRmF0YWwsCiAgICBJZkVycm9yRGVzY3JpcHRpb24sCiAgICBGYXRhbERlc2NyaXB0aW9uLAogICAgUmVjb3ZlciwKICAgIEluZm9ybUVycm9yLAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgZW51bSBTdHJlYW1TZXJ2ZXJNZXNzYWdlIHsKICAgIFNldHVwIHsKICAgICAgICBpY2Vfc2VydmVyczogVmVjPFJ0Y0ljZVNlcnZlcj4sCiAgICB9LAogICAgV2ViUnRjKFN0cmVhbVNpZ25hbGluZ01lc3NhZ2UpLAogICAgLy8gT3B0aW9uYWwgSW5mbwogICAgVXBkYXRlQXBwIHsKICAgICAgICBhcHA6IEFwcCwKICAgIH0sCiAgICBEZWJ1Z0xvZyB7CiAgICAgICAgbWVzc2FnZTogU3RyaW5nLAogICAgICAgIHR5OiBPcHRpb248TG9nTWVzc2FnZVR5cGU+LAogICAgfSwKICAgIENvbm5lY3Rpb25Db21wbGV0ZSB7CiAgICAgICAgY2FwYWJpbGl0aWVzOiBTdHJlYW1DYXBhYmlsaXRpZXMsCiAgICAgICAgLy8vIFVzZSBWaWRlb1N1cHBvcnRlZENvZGVjIHRvIGZpZ3VyZSB0aGlzIG91dAogICAgICAgIGZvcm1hdDogdTMyLAogICAgICAgIHdpZHRoOiB1MzIsCiAgICAgICAgaGVpZ2h0OiB1MzIsCiAgICAgICAgZnBzOiB1MzIsCiAgICAgICAgYXVkaW9fc2FtcGxlX3JhdGU6IHUzMiwKICAgICAgICBhdWRpb19jaGFubmVsX2NvdW50OiB1MzIsCiAgICAgICAgYXVkaW9fc3RyZWFtczogdTMyLAogICAgICAgIGF1ZGlvX2NvdXBsZWRfc3RyZWFtczogdTMyLAogICAgICAgIGF1ZGlvX3NhbXBsZXNfcGVyX2ZyYW1lOiB1MzIsCiAgICAgICAgYXVkaW9fbWFwcGluZzogW3U4OyA4XSwKICAgIH0sCiAgICBDb25uZWN0aW9uVGVybWluYXRlZCB7CiAgICAgICAgZXJyb3JfY29kZTogaTMyLAogICAgfSwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIGVudW0gR2VuZXJhbFNlcnZlck1lc3NhZ2UgewogICAgQ29ubmVjdGlvblN0YXR1c1VwZGF0ZSB7IHN0YXR1czogQ29ubmVjdGlvblN0YXR1cyB9LAogICAgSGRyTW9kZVVwZGF0ZSB7IGVuYWJsZWQ6IGJvb2wgfSwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIGVudW0gR2VuZXJhbENsaWVudE1lc3NhZ2UgewogICAgU3RvcCwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIGVudW0gQ29ubmVjdGlvblN0YXR1cyB7CiAgICBPaywKICAgIFBvb3IsCn0KCmltcGwgRnJvbTxtb29ubGlnaHRfY29tbW9uOjpzdHJlYW06OmM6OmJpbmRpbmdzOjpDb25uZWN0aW9uU3RhdHVzPiBmb3IgQ29ubmVjdGlvblN0YXR1cyB7CiAgICBmbiBmcm9tKHZhbHVlOiBtb29ubGlnaHRfY29tbW9uOjpzdHJlYW06OmM6OmJpbmRpbmdzOjpDb25uZWN0aW9uU3RhdHVzKSAtPiBTZWxmIHsKICAgICAgICB1c2UgbW9vbmxpZ2h0X2NvbW1vbjo6c3RyZWFtOjpjOjpiaW5kaW5nczo6Q29ubmVjdGlvblN0YXR1czsKICAgICAgICBtYXRjaCB2YWx1ZSB7CiAgICAgICAgICAgIENvbm5lY3Rpb25TdGF0dXM6Ok9rID0+IFNlbGY6Ok9rLAogICAgICAgICAgICBDb25uZWN0aW9uU3RhdHVzOjpQb29yID0+IFNlbGY6OlBvb3IsCiAgICAgICAgfQogICAgfQp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplLCBEZWJ1ZywgVFMpXQojW3RzKGV4cG9ydCwgZXhwb3J0X3RvID0gRVhQT1JUX1BBVEgpXQpwdWIgc3RydWN0IFN0YXRzSG9zdFByb2Nlc3NpbmdMYXRlbmN5IHsKICAgIHB1YiBtaW5faG9zdF9wcm9jZXNzaW5nX2xhdGVuY3lfbXM6IGY2NCwKICAgIHB1YiBtYXhfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3lfbXM6IGY2NCwKICAgIHB1YiBhdmdfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3lfbXM6IGY2NCwKfQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSwgRGVidWcsIFRTKV0KI1t0cyhleHBvcnQsIGV4cG9ydF90byA9IEVYUE9SVF9QQVRIKV0KcHViIGVudW0gU3RyZWFtZXJTdGF0c1VwZGF0ZSB7CiAgICBSdHQgewogICAgICAgIC8vLyBUaGUgaG9zdCB0byB0aGUgc3RyZWFtZXIKICAgICAgICBydHRfbXM6IGY2NCwKICAgICAgICAvLy8gVGhlIGhvc3QgdG8gdGhlIHN0cmVhbWVyCiAgICAgICAgcnR0X3ZhcmlhbmNlX21zOiBmNjQsCiAgICB9LAogICAgVmlkZW8gewogICAgICAgIGhvc3RfcHJvY2Vzc2luZ19sYXRlbmN5OiBPcHRpb248U3RhdHNIb3N0UHJvY2Vzc2luZ0xhdGVuY3k+LAogICAgICAgIG1pbl9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWVfbXM6IGY2NCwKICAgICAgICBtYXhfc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lX21zOiBmNjQsCiAgICAgICAgYXZnX3N0cmVhbWVyX3Byb2Nlc3NpbmdfdGltZV9tczogZjY0LAogICAgfSwKICAgIEJyb3dzZXJSdHQgewogICAgICAgIC8vLyBUaGUgYnJvd3NlciB0byB0aGUgc3RyZWFtZXIKICAgICAgICAvLy8gVXNlZCB3aXRoIHdzIHByb3RvY29sIHRvIGtub3cgYmFja2xvZwogICAgICAgIHJ0dF9tczogZjY0LAogICAgfSwKfQoKLy8gVmlydHVhbC1LZXkgQ29kZXMKLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3YWtlY29kaW5nL1dpbjMyS2V5Ym9hcmQvYmxvYi9tYXN0ZXIvdmtjb2Rlcy5oCnRzX2NvbnN0cyEoCiAgICBwdWIgU3RyZWFtS2V5cyhleHBvcnRfYmluZGluZ3Nfa2V5czogRVhQT1JUX1BBVEgpIGFzIHUxNjoKCiAgICAvKiBNb3VzZSBidXR0b25zICovCgogICAgLy8gTGVmdCBtb3VzZSBidXR0b24KICAgIHB1YiBjb25zdCBWS19MQlVUVE9OOiB1MTYgPSAweDAxOwogICAgLy8gUmlnaHQgbW91c2UgYnV0dG9uCiAgICBwdWIgY29uc3QgVktfUkJVVFRPTjogdTE2ID0gMHgwMjsKICAgIC8vIENvbnRyb2wtYnJlYWsgcHJvY2Vzc2luZwogICAgcHViIGNvbnN0IFZLX0NBTkNFTDogdTE2ID0gMHgwMzsKICAgIC8vIE1pZGRsZSBtb3VzZSBidXR0b24gKHRocmVlLWJ1dHRvbiBtb3VzZSkKICAgIHB1YiBjb25zdCBWS19NQlVUVE9OOiB1MTYgPSAweDA0OwogICAgLy8gV2luZG93cyAyMDAwL1hQOiBYMSBtb3VzZSBidXR0b24KICAgIHB1YiBjb25zdCBWS19YQlVUVE9OMTogdTE2ID0gMHgwNTsKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogWDIgbW91c2UgYnV0dG9uCiAgICBwdWIgY29uc3QgVktfWEJVVFRPTjI6IHUxNiA9IDB4MDY7CgogICAgLyogMHgwNyBpcyB1bmRlZmluZWQgKi8KCiAgICAvLyBCQUNLU1BBQ0Uga2V5CiAgICBwdWIgY29uc3QgVktfQkFDSzogdTE2ID0gMHgwODsKICAgIC8vIFRBQiBrZXkKICAgIHB1YiBjb25zdCBWS19UQUI6IHUxNiA9IDB4MDk7CgogICAgLyogMHgwQSB0byAweDBCIGFyZSByZXNlcnZlZCAqLwoKICAgIC8vIENMRUFSIGtleQogICAgcHViIGNvbnN0IFZLX0NMRUFSOiB1MTYgPSAweDBDOwogICAgLy8gRU5URVIga2V5CiAgICBwdWIgY29uc3QgVktfUkVUVVJOOiB1MTYgPSAweDBEOwoKICAgIC8qIDB4MEUgdG8gMHgwRiBhcmUgdW5kZWZpbmVkICovCgogICAgLy8gU0hJRlQga2V5CiAgICBwdWIgY29uc3QgVktfU0hJRlQ6IHUxNiA9IDB4MTA7CiAgICAvLyBDVFJMIGtleQogICAgcHViIGNvbnN0IFZLX0NPTlRST0w6IHUxNiA9IDB4MTE7CiAgICAvLyBBTFQga2V5CiAgICBwdWIgY29uc3QgVktfTUVOVTogdTE2ID0gMHgxMjsKICAgIC8vIFBBVVNFIGtleQogICAgcHViIGNvbnN0IFZLX1BBVVNFOiB1MTYgPSAweDEzOwogICAgLy8gQ0FQUyBMT0NLIGtleQogICAgcHViIGNvbnN0IFZLX0NBUElUQUw6IHUxNiA9IDB4MTQ7CiAgICAvLyBJbnB1dCBNZXRob2QgRWRpdG9yIChJTUUpIEthbmEgbW9kZQogICAgcHViIGNvbnN0IFZLX0tBTkE6IHUxNiA9IDB4MTU7CiAgICAvLyBJTUUgSGFuZ3VlbCBtb2RlIChtYWludGFpbmVkIGZvciBjb21wYXRpYmlsaXR5OyB1c2UgI2RlZmluZSBWS19IQU5HVUwpCiAgICBwdWIgY29uc3QgVktfSEFOR1VFTDogdTE2ID0gMHgxNTsKICAgIC8vIElNRSBIYW5ndWwgbW9kZQogICAgcHViIGNvbnN0IFZLX0hBTkdVTDogdTE2ID0gMHgxNTsKCiAgICAvKiAweDE2IGlzIHVuZGVmaW5lZCAqLwoKICAgIC8vIElNRSBKdW5qYSBtb2RlCiAgICBwdWIgY29uc3QgVktfSlVOSkE6IHUxNiA9IDB4MTc7CiAgICAvLyBJTUUgZmluYWwgbW9kZQogICAgcHViIGNvbnN0IFZLX0ZJTkFMOiB1MTYgPSAweDE4OwogICAgLy8gSU1FIEhhbmphIG1vZGUKICAgIHB1YiBjb25zdCBWS19IQU5KQTogdTE2ID0gMHgxOTsKICAgIC8vIElNRSBLYW5qaSBtb2RlCiAgICBwdWIgY29uc3QgVktfS0FOSkk6IHUxNiA9IDB4MTk7CgogICAgLyogMHgxQSBpcyB1bmRlZmluZWQgKi8KCiAgICAvLyBFU0Mga2V5CiAgICBwdWIgY29uc3QgVktfRVNDQVBFOiB1MTYgPSAweDFCOwogICAgLy8gSU1FIGNvbnZlcnQKICAgIHB1YiBjb25zdCBWS19DT05WRVJUOiB1MTYgPSAweDFDOwogICAgLy8gSU1FIG5vbmNvbnZlcnQKICAgIHB1YiBjb25zdCBWS19OT05DT05WRVJUOiB1MTYgPSAweDFEOwogICAgLy8gSU1FIGFjY2VwdAogICAgcHViIGNvbnN0IFZLX0FDQ0VQVDogdTE2ID0gMHgxRTsKICAgIC8vIElNRSBtb2RlIGNoYW5nZSByZXF1ZXN0CiAgICBwdWIgY29uc3QgVktfTU9ERUNIQU5HRTogdTE2ID0gMHgxRjsKCiAgICAvLyBTUEFDRUJBUgogICAgcHViIGNvbnN0IFZLX1NQQUNFOiB1MTYgPSAweDIwOwogICAgLy8gUEFHRSBVUCBrZXkKICAgIHB1YiBjb25zdCBWS19QUklPUjogdTE2ID0gMHgyMTsKICAgIC8vIFBBR0UgRE9XTiBrZXkKICAgIHB1YiBjb25zdCBWS19ORVhUOiB1MTYgPSAweDIyOwogICAgLy8gRU5EIGtleQogICAgcHViIGNvbnN0IFZLX0VORDogdTE2ID0gMHgyMzsKICAgIC8vIEhPTUUga2V5CiAgICBwdWIgY29uc3QgVktfSE9NRTogdTE2ID0gMHgyNDsKICAgIC8vIExFRlQgQVJST1cga2V5CiAgICBwdWIgY29uc3QgVktfTEVGVDogdTE2ID0gMHgyNTsKICAgIC8vIFVQIEFSUk9XIGtleQogICAgcHViIGNvbnN0IFZLX1VQOiB1MTYgPSAweDI2OwogICAgLy8gUklHSFQgQVJST1cga2V5CiAgICBwdWIgY29uc3QgVktfUklHSFQ6IHUxNiA9IDB4Mjc7CiAgICAvLyBET1dOIEFSUk9XIGtleQogICAgcHViIGNvbnN0IFZLX0RPV046IHUxNiA9IDB4Mjg7CiAgICAvLyBTRUxFQ1Qga2V5CiAgICBwdWIgY29uc3QgVktfU0VMRUNUOiB1MTYgPSAweDI5OwogICAgLy8gUFJJTlQga2V5CiAgICBwdWIgY29uc3QgVktfUFJJTlQ6IHUxNiA9IDB4MkE7CiAgICAvLyBFWEVDVVRFIGtleQogICAgcHViIGNvbnN0IFZLX0VYRUNVVEU6IHUxNiA9IDB4MkI7CiAgICAvLyBQUklOVCBTQ1JFRU4ga2V5CiAgICBwdWIgY29uc3QgVktfU05BUFNIT1Q6IHUxNiA9IDB4MkM7CiAgICAvLyBJTlMga2V5CiAgICBwdWIgY29uc3QgVktfSU5TRVJUOiB1MTYgPSAweDJEOwogICAgLy8gREVMIGtleQogICAgcHViIGNvbnN0IFZLX0RFTEVURTogdTE2ID0gMHgyRTsKICAgIC8vIEhFTFAga2V5CiAgICBwdWIgY29uc3QgVktfSEVMUDogdTE2ID0gMHgyRjsKCiAgICAvKiBEaWdpdHMsIHRoZSBsYXN0IDQgYml0cyBvZiB0aGUgY29kZSByZXByZXNlbnQgdGhlIGNvcnJlc3BvbmRpbmcgZGlnaXQgKi8KCiAgICAvLyAnMCcga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzA6IHUxNiA9IDB4MzA7CiAgICAvLyAnMScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzE6IHUxNiA9IDB4MzE7CiAgICAvLyAnMicga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzI6IHUxNiA9IDB4MzI7CiAgICAvLyAnMycga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzM6IHUxNiA9IDB4MzM7CiAgICAvLyAnNCcga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzQ6IHUxNiA9IDB4MzQ7CiAgICAvLyAnNScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzU6IHUxNiA9IDB4MzU7CiAgICAvLyAnNicga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzY6IHUxNiA9IDB4MzY7CiAgICAvLyAnNycga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzc6IHUxNiA9IDB4Mzc7CiAgICAvLyAnOCcga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzg6IHUxNiA9IDB4Mzg7CiAgICAvLyAnOScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZXzk6IHUxNiA9IDB4Mzk7CgogICAgLyogMHgzQSB0byAweDQwIGFyZSB1bmRlZmluZWQgKi8KCiAgICAvKiBUaGUgYWxwaGFiZXQsIHRoZSBjb2RlIGNvcnJlc3BvbmRzIHRvIHRoZSBjYXBpdGFsaXplZCBsZXR0ZXIgaW4gdGhlIEFTQ0lJIGNvZGUgKi8KCiAgICAvLyAnQScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0E6IHUxNiA9IDB4NDE7CiAgICAvLyAnQicga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0I6IHUxNiA9IDB4NDI7CiAgICAvLyAnQycga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0M6IHUxNiA9IDB4NDM7CiAgICAvLyAnRCcga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0Q6IHUxNiA9IDB4NDQ7CiAgICAvLyAnRScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0U6IHUxNiA9IDB4NDU7CiAgICAvLyAnRicga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0Y6IHUxNiA9IDB4NDY7CiAgICAvLyAnRycga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0c6IHUxNiA9IDB4NDc7CiAgICAvLyAnSCcga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0g6IHUxNiA9IDB4NDg7CiAgICAvLyAnSScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0k6IHUxNiA9IDB4NDk7CiAgICAvLyAnSicga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0o6IHUxNiA9IDB4NEE7CiAgICAvLyAnSycga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0s6IHUxNiA9IDB4NEI7CiAgICAvLyAnTCcga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX0w6IHUxNiA9IDB4NEM7CiAgICAvLyAnTScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX006IHUxNiA9IDB4NEQ7CiAgICAvLyAnTicga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX046IHUxNiA9IDB4NEU7CiAgICAvLyAnTycga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX086IHUxNiA9IDB4NEY7CiAgICAvLyAnUCcga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1A6IHUxNiA9IDB4NTA7CiAgICAvLyAnUScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1E6IHUxNiA9IDB4NTE7CiAgICAvLyAnUicga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1I6IHUxNiA9IDB4NTI7CiAgICAvLyAnUycga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1M6IHUxNiA9IDB4NTM7CiAgICAvLyAnVCcga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1Q6IHUxNiA9IDB4NTQ7CiAgICAvLyAnVScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1U6IHUxNiA9IDB4NTU7CiAgICAvLyAnVicga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1Y6IHUxNiA9IDB4NTY7CiAgICAvLyAnVycga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1c6IHUxNiA9IDB4NTc7CiAgICAvLyAnWCcga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1g6IHUxNiA9IDB4NTg7CiAgICAvLyAnWScga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1k6IHUxNiA9IDB4NTk7CiAgICAvLyAnWicga2V5CiAgICBwdWIgY29uc3QgVktfS0VZX1o6IHUxNiA9IDB4NUE7CgogICAgLy8gTGVmdCBXaW5kb3dzIGtleSAoTWljcm9zb2Z0IE5hdHVyYWwga2V5Ym9hcmQpCiAgICBwdWIgY29uc3QgVktfTFdJTjogdTE2ID0gMHg1QjsKICAgIC8vIFJpZ2h0IFdpbmRvd3Mga2V5IChOYXR1cmFsIGtleWJvYXJkKQogICAgcHViIGNvbnN0IFZLX1JXSU46IHUxNiA9IDB4NUM7CiAgICAvLyBBcHBsaWNhdGlvbnMga2V5IChOYXR1cmFsIGtleWJvYXJkKQogICAgcHViIGNvbnN0IFZLX0FQUFM6IHUxNiA9IDB4NUQ7CgogICAgLyogMHg1RSBpcyByZXNlcnZlZCAqLwoKICAgIC8vIENvbXB1dGVyIFNsZWVwIGtleQogICAgcHViIGNvbnN0IFZLX1NMRUVQOiB1MTYgPSAweDVGOwoKICAgIC8qIE51bWVyaWMga2V5cGFkIGRpZ2l0cywgdGhlIGxhc3QgZm91ciBiaXRzIG9mIHRoZSBjb2RlIHJlcHJlc2VudCB0aGUgY29ycmVzcG9uZGluZyBkaWdpdCAqLwoKICAgIC8vIE51bWVyaWMga2V5cGFkICcwJyBrZXkKICAgIHB1YiBjb25zdCBWS19OVU1QQUQwOiB1MTYgPSAweDYwOwogICAgLy8gTnVtZXJpYyBrZXlwYWQgJzEnIGtleQogICAgcHViIGNvbnN0IFZLX05VTVBBRDE6IHUxNiA9IDB4NjE7CiAgICAvLyBOdW1lcmljIGtleXBhZCAnMicga2V5CiAgICBwdWIgY29uc3QgVktfTlVNUEFEMjogdTE2ID0gMHg2MjsKICAgIC8vIE51bWVyaWMga2V5cGFkICczJyBrZXkKICAgIHB1YiBjb25zdCBWS19OVU1QQUQzOiB1MTYgPSAweDYzOwogICAgLy8gTnVtZXJpYyBrZXlwYWQgJzQnIGtleQogICAgcHViIGNvbnN0IFZLX05VTVBBRDQ6IHUxNiA9IDB4NjQ7CiAgICAvLyBOdW1lcmljIGtleXBhZCAnNScga2V5CiAgICBwdWIgY29uc3QgVktfTlVNUEFENTogdTE2ID0gMHg2NTsKICAgIC8vIE51bWVyaWMga2V5cGFkICc2JyBrZXkKICAgIHB1YiBjb25zdCBWS19OVU1QQUQ2OiB1MTYgPSAweDY2OwogICAgLy8gTnVtZXJpYyBrZXlwYWQgJzcnIGtleQogICAgcHViIGNvbnN0IFZLX05VTVBBRDc6IHUxNiA9IDB4Njc7CiAgICAvLyBOdW1lcmljIGtleXBhZCAnOCcga2V5CiAgICBwdWIgY29uc3QgVktfTlVNUEFEODogdTE2ID0gMHg2ODsKICAgIC8vIE51bWVyaWMga2V5cGFkICc5JyBrZXkKICAgIHB1YiBjb25zdCBWS19OVU1QQUQ5OiB1MTYgPSAweDY5OwoKICAgIC8qIE51bWVyaWMga2V5cGFkIG9wZXJhdG9ycyBhbmQgc3BlY2lhbCBrZXlzICovCgogICAgLy8gTXVsdGlwbHkga2V5CiAgICBwdWIgY29uc3QgVktfTVVMVElQTFk6IHUxNiA9IDB4NkE7CiAgICAvLyBBZGQga2V5CiAgICBwdWIgY29uc3QgVktfQUREOiB1MTYgPSAweDZCOwogICAgLy8gU2VwYXJhdG9yIGtleQogICAgcHViIGNvbnN0IFZLX1NFUEFSQVRPUjogdTE2ID0gMHg2QzsKICAgIC8vIFN1YnRyYWN0IGtleQogICAgcHViIGNvbnN0IFZLX1NVQlRSQUNUOiB1MTYgPSAweDZEOwogICAgLy8gRGVjaW1hbCBrZXkKICAgIHB1YiBjb25zdCBWS19ERUNJTUFMOiB1MTYgPSAweDZFOwogICAgLy8gRGl2aWRlIGtleQogICAgcHViIGNvbnN0IFZLX0RJVklERTogdTE2ID0gMHg2RjsKCiAgICAvKiBGdW5jdGlvbiBrZXlzLCBmcm9tIEYxIHRvIEYyNCAqLwoKICAgIC8vIEYxIGtleQogICAgcHViIGNvbnN0IFZLX0YxOiB1MTYgPSAweDcwOwogICAgLy8gRjIga2V5CiAgICBwdWIgY29uc3QgVktfRjI6IHUxNiA9IDB4NzE7CiAgICAvLyBGMyBrZXkKICAgIHB1YiBjb25zdCBWS19GMzogdTE2ID0gMHg3MjsKICAgIC8vIEY0IGtleQogICAgcHViIGNvbnN0IFZLX0Y0OiB1MTYgPSAweDczOwogICAgLy8gRjUga2V5CiAgICBwdWIgY29uc3QgVktfRjU6IHUxNiA9IDB4NzQ7CiAgICAvLyBGNiBrZXkKICAgIHB1YiBjb25zdCBWS19GNjogdTE2ID0gMHg3NTsKICAgIC8vIEY3IGtleQogICAgcHViIGNvbnN0IFZLX0Y3OiB1MTYgPSAweDc2OwogICAgLy8gRjgga2V5CiAgICBwdWIgY29uc3QgVktfRjg6IHUxNiA9IDB4Nzc7CiAgICAvLyBGOSBrZXkKICAgIHB1YiBjb25zdCBWS19GOTogdTE2ID0gMHg3ODsKICAgIC8vIEYxMCBrZXkKICAgIHB1YiBjb25zdCBWS19GMTA6IHUxNiA9IDB4Nzk7CiAgICAvLyBGMTEga2V5CiAgICBwdWIgY29uc3QgVktfRjExOiB1MTYgPSAweDdBOwogICAgLy8gRjEyIGtleQogICAgcHViIGNvbnN0IFZLX0YxMjogdTE2ID0gMHg3QjsKICAgIC8vIEYxMyBrZXkKICAgIHB1YiBjb25zdCBWS19GMTM6IHUxNiA9IDB4N0M7CiAgICAvLyBGMTQga2V5CiAgICBwdWIgY29uc3QgVktfRjE0OiB1MTYgPSAweDdEOwogICAgLy8gRjE1IGtleQogICAgcHViIGNvbnN0IFZLX0YxNTogdTE2ID0gMHg3RTsKICAgIC8vIEYxNiBrZXkKICAgIHB1YiBjb25zdCBWS19GMTY6IHUxNiA9IDB4N0Y7CiAgICAvLyBGMTcga2V5CiAgICBwdWIgY29uc3QgVktfRjE3OiB1MTYgPSAweDgwOwogICAgLy8gRjE4IGtleQogICAgcHViIGNvbnN0IFZLX0YxODogdTE2ID0gMHg4MTsKICAgIC8vIEYxOSBrZXkKICAgIHB1YiBjb25zdCBWS19GMTk6IHUxNiA9IDB4ODI7CiAgICAvLyBGMjAga2V5CiAgICBwdWIgY29uc3QgVktfRjIwOiB1MTYgPSAweDgzOwogICAgLy8gRjIxIGtleQogICAgcHViIGNvbnN0IFZLX0YyMTogdTE2ID0gMHg4NDsKICAgIC8vIEYyMiBrZXkKICAgIHB1YiBjb25zdCBWS19GMjI6IHUxNiA9IDB4ODU7CiAgICAvLyBGMjMga2V5CiAgICBwdWIgY29uc3QgVktfRjIzOiB1MTYgPSAweDg2OwogICAgLy8gRjI0IGtleQogICAgcHViIGNvbnN0IFZLX0YyNDogdTE2ID0gMHg4NzsKCiAgICAvKiAweDg4IHRvIDB4OEYgYXJlIHVuYXNzaWduZWQgKi8KCiAgICAvLyBOVU0gTE9DSyBrZXkKICAgIHB1YiBjb25zdCBWS19OVU1MT0NLOiB1MTYgPSAweDkwOwogICAgLy8gU0NST0xMIExPQ0sga2V5CiAgICBwdWIgY29uc3QgVktfU0NST0xMOiB1MTYgPSAweDkxOwoKICAgIC8qIDB4OTIgdG8gMHg5NiBhcmUgT0VNIHNwZWNpZmljICovCiAgICAvKiAweDk3IHRvIDB4OUYgYXJlIHVuYXNzaWduZWQgKi8KCiAgICAvKiBNb2RpZmllciBrZXlzICovCgogICAgLy8gTGVmdCBTSElGVCBrZXkKICAgIHB1YiBjb25zdCBWS19MU0hJRlQ6IHUxNiA9IDB4QTA7CiAgICAvLyBSaWdodCBTSElGVCBrZXkKICAgIHB1YiBjb25zdCBWS19SU0hJRlQ6IHUxNiA9IDB4QTE7CiAgICAvLyBMZWZ0IENPTlRST0wga2V5CiAgICBwdWIgY29uc3QgVktfTENPTlRST0w6IHUxNiA9IDB4QTI7CiAgICAvLyBSaWdodCBDT05UUk9MIGtleQogICAgcHViIGNvbnN0IFZLX1JDT05UUk9MOiB1MTYgPSAweEEzOwogICAgLy8gTGVmdCBNRU5VIGtleQogICAgcHViIGNvbnN0IFZLX0xNRU5VOiB1MTYgPSAweEE0OwogICAgLy8gUmlnaHQgTUVOVSBrZXkKICAgIHB1YiBjb25zdCBWS19STUVOVTogdTE2ID0gMHhBNTsKCiAgICAvKiBCcm93c2VyIHJlbGF0ZWQga2V5cyAqLwoKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogQnJvd3NlciBCYWNrIGtleQogICAgcHViIGNvbnN0IFZLX0JST1dTRVJfQkFDSzogdTE2ID0gMHhBNjsKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogQnJvd3NlciBGb3J3YXJkIGtleQogICAgcHViIGNvbnN0IFZLX0JST1dTRVJfRk9SV0FSRDogdTE2ID0gMHhBNzsKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogQnJvd3NlciBSZWZyZXNoIGtleQogICAgcHViIGNvbnN0IFZLX0JST1dTRVJfUkVGUkVTSDogdTE2ID0gMHhBODsKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogQnJvd3NlciBTdG9wIGtleQogICAgcHViIGNvbnN0IFZLX0JST1dTRVJfU1RPUDogdTE2ID0gMHhBOTsKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogQnJvd3NlciBTZWFyY2gga2V5CiAgICBwdWIgY29uc3QgVktfQlJPV1NFUl9TRUFSQ0g6IHUxNiA9IDB4QUE7CiAgICAvLyBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIgRmF2b3JpdGVzIGtleQogICAgcHViIGNvbnN0IFZLX0JST1dTRVJfRkFWT1JJVEVTOiB1MTYgPSAweEFCOwogICAgLy8gV2luZG93cyAyMDAwL1hQOiBCcm93c2VyIFN0YXJ0IGFuZCBIb21lIGtleQogICAgcHViIGNvbnN0IFZLX0JST1dTRVJfSE9NRTogdTE2ID0gMHhBQzsKCiAgICAvKiBWb2x1bWUgcmVsYXRlZCBrZXlzICovCgogICAgLy8gV2luZG93cyAyMDAwL1hQOiBWb2x1bWUgTXV0ZSBrZXkKICAgIHB1YiBjb25zdCBWS19WT0xVTUVfTVVURTogdTE2ID0gMHhBRDsKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogVm9sdW1lIERvd24ga2V5CiAgICBwdWIgY29uc3QgVktfVk9MVU1FX0RPV046IHUxNiA9IDB4QUU7CiAgICAvLyBXaW5kb3dzIDIwMDAvWFA6IFZvbHVtZSBVcCBrZXkKICAgIHB1YiBjb25zdCBWS19WT0xVTUVfVVA6IHUxNiA9IDB4QUY7CgogICAgLyogTWVkaWEgcGxheWVyIHJlbGF0ZWQga2V5cyAqLwoKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogTmV4dCBUcmFjayBrZXkKICAgIHB1YiBjb25zdCBWS19NRURJQV9ORVhUX1RSQUNLOiB1MTYgPSAweEIwOwogICAgLy8gV2luZG93cyAyMDAwL1hQOiBQcmV2aW91cyBUcmFjayBrZXkKICAgIHB1YiBjb25zdCBWS19NRURJQV9QUkVWX1RSQUNLOiB1MTYgPSAweEIxOwogICAgLy8gV2luZG93cyAyMDAwL1hQOiBTdG9wIE1lZGlhIGtleQogICAgcHViIGNvbnN0IFZLX01FRElBX1NUT1A6IHUxNiA9IDB4QjI7CiAgICAvLyBXaW5kb3dzIDIwMDAvWFA6IFBsYXkvUGF1c2UgTWVkaWEga2V5CiAgICBwdWIgY29uc3QgVktfTUVESUFfUExBWV9QQVVTRTogdTE2ID0gMHhCMzsKCiAgICAvKiBBcHBsaWNhdGlvbiBsYXVuY2hlciBrZXlzICovCgogICAgLy8gV2luZG93cyAyMDAwL1hQOiBTdGFydCBNYWlsIGtleQogICAgcHViIGNvbnN0IFZLX0xBVU5DSF9NQUlMOiB1MTYgPSAweEI0OwogICAgLy8gV2luZG93cyAyMDAwL1hQOiBTZWxlY3QgTWVkaWEga2V5CiAgICBwdWIgY29uc3QgVktfTUVESUFfU0VMRUNUOiB1MTYgPSAweEI1OwogICAgLy8gV2luZG93cyAyMDAwL1hQOiBTdGFydCBBcHBsaWNhdGlvbiAxIGtleQogICAgcHViIGNvbnN0IFZLX0xBVU5DSF9BUFAxOiB1MTYgPSAweEI2OwogICAgLy8gV2luZG93cyAyMDAwL1hQOiBTdGFydCBBcHBsaWNhdGlvbiAyIGtleQogICAgcHViIGNvbnN0IFZLX0xBVU5DSF9BUFAyOiB1MTYgPSAweEI3OwoKICAgIC8qIDB4QjggYW5kIDB4QjkgYXJlIHJlc2VydmVkICovCgogICAgLyogT0VNIGtleXMgKi8KCiAgICAvLyBVc2VkIGZvciBtaXNjZWxsYW5lb3VzIGNoYXJhY3RlcnM7IGl0IGNhbiB2YXJ5IGJ5IGtleWJvYXJkLgogICAgcHViIGNvbnN0IFZLX09FTV8xOiB1MTYgPSAweEJBOwogICAgLyogV2luZG93cyAyMDAwL1hQOiBGb3IgdGhlIFVTIHN0YW5kYXJkIGtleWJvYXJkLCB0aGUgJzs6JyBrZXkgKi8KCiAgICAvLyBXaW5kb3dzIDIwMDAvWFA6IEZvciBhbnkgY291bnRyeS9yZWdpb24sIHRoZSAnKycga2V5CiAgICBwdWIgY29uc3QgVktfT0VNX1BMVVM6IHUxNiA9IDB4QkI7CiAgICAvLyBXaW5kb3dzIDIwMDAvWFA6IEZvciBhbnkgY291bnRyeS9yZWdpb24sIHRoZSAnLCcga2V5CiAgICBwdWIgY29uc3QgVktfT0VNX0NPTU1BOiB1MTYgPSAweEJDOwogICAgLy8gV2luZG93cyAyMDAwL1hQOiBGb3IgYW55IGNvdW50cnkvcmVnaW9uLCB0aGUgJy0nIGtleQogICAgcHViIGNvbnN0IFZLX09FTV9NSU5VUzogdTE2ID0gMHhCRDsKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5L3JlZ2lvbiwgdGhlICcuJyBrZXkKICAgIHB1YiBjb25zdCBWS19PRU1fUEVSSU9EOiB1MTYgPSAweEJFOwoKICAgIC8vIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuCiAgICBwdWIgY29uc3QgVktfT0VNXzI6IHUxNiA9IDB4QkY7CiAgICAvKiBXaW5kb3dzIDIwMDAvWFA6IEZvciB0aGUgVVMgc3RhbmRhcmQga2V5Ym9hcmQsIHRoZSAnLz8nIGtleSAqLwoKICAgIC8vIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuCiAgICBwdWIgY29uc3QgVktfT0VNXzM6IHUxNiA9IDB4QzA7CiAgICAvKiBXaW5kb3dzIDIwMDAvWFA6IEZvciB0aGUgVVMgc3RhbmRhcmQga2V5Ym9hcmQsIHRoZSAnYH4nIGtleSAqLwoKICAgIC8qIDB4QzEgdG8gMHhENyBhcmUgcmVzZXJ2ZWQgKi8KICAgIC8vIEJyYXppbGlhbiAoQUJOVCkgS2V5Ym9hcmQKICAgIHB1YiBjb25zdCBWS19BQk5UX0MxOiB1MTYgPSAweEMxOwogICAgLy8gQnJhemlsaWFuIChBQk5UKSBLZXlib2FyZAogICAgcHViIGNvbnN0IFZLX0FCTlRfQzI6IHUxNiA9IDB4QzI7CgogICAgLyogMHhEOCB0byAweERBIGFyZSB1bmFzc2lnbmVkICovCgogICAgLy8gVXNlZCBmb3IgbWlzY2VsbGFuZW91cyBjaGFyYWN0ZXJzOyBpdCBjYW4gdmFyeSBieSBrZXlib2FyZC4KICAgIHB1YiBjb25zdCBWS19PRU1fNDogdTE2ID0gMHhEQjsKICAgIC8qIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdbeycga2V5ICovCgogICAgLy8gVXNlZCBmb3IgbWlzY2VsbGFuZW91cyBjaGFyYWN0ZXJzOyBpdCBjYW4gdmFyeSBieSBrZXlib2FyZC4KICAgIHB1YiBjb25zdCBWS19PRU1fNTogdTE2ID0gMHhEQzsKICAgIC8qIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdcfCcga2V5ICovCgogICAgLy8gVXNlZCBmb3IgbWlzY2VsbGFuZW91cyBjaGFyYWN0ZXJzOyBpdCBjYW4gdmFyeSBieSBrZXlib2FyZC4KICAgIHB1YiBjb25zdCBWS19PRU1fNjogdTE2ID0gMHhERDsKICAgIC8qIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICddfScga2V5ICovCgogICAgLy8gVXNlZCBmb3IgbWlzY2VsbGFuZW91cyBjaGFyYWN0ZXJzOyBpdCBjYW4gdmFyeSBieSBrZXlib2FyZC4KICAgIHB1YiBjb25zdCBWS19PRU1fNzogdTE2ID0gMHhERTsKICAgIC8qIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdzaW5nbGUtcXVvdGUvZG91YmxlLXF1b3RlJyBrZXkgKi8KCiAgICAvLyBVc2VkIGZvciBtaXNjZWxsYW5lb3VzIGNoYXJhY3RlcnM7IGl0IGNhbiB2YXJ5IGJ5IGtleWJvYXJkLgogICAgcHViIGNvbnN0IFZLX09FTV84OiB1MTYgPSAweERGOwoKICAgIC8qIDB4RTAgaXMgcmVzZXJ2ZWQgKi8KICAgIC8qIDB4RTEgaXMgT0VNIHNwZWNpZmljICovCgogICAgLy8gV2luZG93cyAyMDAwL1hQOiBFaXRoZXIgdGhlIGFuZ2xlIGJyYWNrZXQga2V5IG9yCiAgICBwdWIgY29uc3QgVktfT0VNXzEwMjogdTE2ID0gMHhFMjsKICAgIC8qIHRoZSBiYWNrc2xhc2gga2V5IG9uIHRoZSBSVCAxMDIta2V5IGtleWJvYXJkICovCgogICAgLyogMHhFMyBhbmQgMHhFNCBhcmUgT0VNIHNwZWNpZmljICovCgogICAgLy8gV2luZG93cyA5NS85OC9NZSwgV2luZG93cyBOVCA0LjAsIFdpbmRvd3MgMjAwMC9YUDogSU1FIFBST0NFU1Mga2V5CiAgICBwdWIgY29uc3QgVktfUFJPQ0VTU0tFWTogdTE2ID0gMHhFNTsKCiAgICAvKiAweEU2IGlzIE9FTSBzcGVjaWZpYyAqLwoKICAgIC8vIFdpbmRvd3MgMjAwMC9YUDogVXNlZCB0byBwYXNzIFVuaWNvZGUgY2hhcmFjdGVycyBhcyBpZiB0aGV5IHdlcmUga2V5c3Ryb2tlcy4KICAgIHB1YiBjb25zdCBWS19QQUNLRVQ6IHUxNiA9IDB4RTc7CiAgICAvKiBUaGUgI2RlZmluZSBWS19QQUNLRVQga2V5IGlzIHRoZSBsb3cgd29yZCBvZiBhIDMyLWJpdCBWaXJ0dWFsIEtleSB2YWx1ZSB1c2VkICovCiAgICAvKiBmb3Igbm9uLWtleWJvYXJkIGlucHV0IG1ldGhvZHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCAqLwogICAgLyogc2VlIFJlbWFyayBpbiBLRVlCRElOUFVULCBTZW5kSW5wdXQsIFdNX0tFWURPV04sIGFuZCBXTV9LRVlVUCAqLwoKICAgIC8qIDB4RTggaXMgdW5hc3NpZ25lZCAqLwogICAgLyogMHhFOSB0byAweEY1IGFyZSBPRU0gc3BlY2lmaWMgKi8KCiAgICAvLyBBdHRuIGtleQogICAgcHViIGNvbnN0IFZLX0FUVE46IHUxNiA9IDB4RjY7CiAgICAvLyBDclNlbCBrZXkKICAgIHB1YiBjb25zdCBWS19DUlNFTDogdTE2ID0gMHhGNzsKICAgIC8vIEV4U2VsIGtleQogICAgcHViIGNvbnN0IFZLX0VYU0VMOiB1MTYgPSAweEY4OwogICAgLy8gRXJhc2UgRU9GIGtleQogICAgcHViIGNvbnN0IFZLX0VSRU9GOiB1MTYgPSAweEY5OwogICAgLy8gUGxheSBrZXkKICAgIHB1YiBjb25zdCBWS19QTEFZOiB1MTYgPSAweEZBOwogICAgLy8gWm9vbSBrZXkKICAgIHB1YiBjb25zdCBWS19aT09NOiB1MTYgPSAweEZCOwogICAgLy8gUmVzZXJ2ZWQKICAgIHB1YiBjb25zdCBWS19OT05BTUU6IHUxNiA9IDB4RkM7CiAgICAvLyBQQTEga2V5CiAgICBwdWIgY29uc3QgVktfUEExOiB1MTYgPSAweEZEOwogICAgLy8gQ2xlYXIga2V5CiAgICBwdWIgY29uc3QgVktfT0VNX0NMRUFSOiB1MTYgPSAweEZFOwopOwoKLy8gS2V5IE1vZGlmaWVycwp0c19jb25zdHMhKAogICAgcHViIFN0cmVhbUtleU1vZGlmaWVycyhleHBvcnRfYmluZGluZ3Nfa2V5X21vZGlmaWVyczogRVhQT1JUX1BBVEgpOgoKICAgIHB1YiBjb25zdCBNQVNLX1NISUZUOiBpOCA9IEtleU1vZGlmaWVyczo6U0hJRlQuYml0cygpOwogICAgcHViIGNvbnN0IE1BU0tfQ1RSTDogaTggPSBLZXlNb2RpZmllcnM6OkNUUkwuYml0cygpOwogICAgcHViIGNvbnN0IE1BU0tfQUxUOiBpOCA9IEtleU1vZGlmaWVyczo6QUxULmJpdHMoKTsKICAgIHB1YiBjb25zdCBNQVNLX01FVEE6IGk4ID0gS2V5TW9kaWZpZXJzOjpNRVRBLmJpdHMoKTsKKTsKCi8vIE1vdXNlIEJ1dHRvbnMKdHNfY29uc3RzISgKICAgIHB1YiBTdHJlYW1Nb3VzZUJ1dHRvbihleHBvcnRfYmluZGluZ3NfbW91c2VfYnV0dG9uczogRVhQT1JUX1BBVEgpOgoKICAgIHB1YiBjb25zdCBMRUZUOiBpMzIgPSBNb3VzZUJ1dHRvbjo6TGVmdCBhcyBpMzI7CiAgICBwdWIgY29uc3QgTUlERExFOiBpMzIgPSBNb3VzZUJ1dHRvbjo6TWlkZGxlIGFzIGkzMjsKICAgIHB1YiBjb25zdCBSSUdIVDogaTMyID0gTW91c2VCdXR0b246OlJpZ2h0IGFzIGkzMjsKICAgIHB1YiBjb25zdCBYMTogaTMyID0gTW91c2VCdXR0b246OlgxIGFzIGkzMjsKICAgIHB1YiBjb25zdCBYMjogaTMyID0gTW91c2VCdXR0b246OlgyIGFzIGkzMjsKKTsKCi8vIENvbnRyb2xsZXIgQnV0dG9ucwp0c19jb25zdHMhKAogICAgcHViIFN0cmVhbUNvbnRyb2xsZXJCdXR0b24oZXhwb3J0X2JpbmRpbmdzX2NvbnRyb2xsZXJfYnV0dG9uczogRVhQT1JUX1BBVEgpOgoKICAgIHB1YiBjb25zdCBCVVRUT05fQTogdTMyICAgICAgID0gQ29udHJvbGxlckJ1dHRvbnM6OkEuYml0cygpOwogICAgcHViIGNvbnN0IEJVVFRPTl9COiB1MzIgICAgICAgPSBDb250cm9sbGVyQnV0dG9uczo6Qi5iaXRzKCk7CiAgICBwdWIgY29uc3QgQlVUVE9OX1g6IHUzMiAgICAgICA9IENvbnRyb2xsZXJCdXR0b25zOjpYLmJpdHMoKTsKICAgIHB1YiBjb25zdCBCVVRUT05fWTogdTMyICAgICAgID0gQ29udHJvbGxlckJ1dHRvbnM6OlkuYml0cygpOwogICAgcHViIGNvbnN0IEJVVFRPTl9VUDogdTMyICAgICAgPSBDb250cm9sbGVyQnV0dG9uczo6VVAuYml0cygpOwogICAgcHViIGNvbnN0IEJVVFRPTl9ET1dOOiB1MzIgICAgPSBDb250cm9sbGVyQnV0dG9uczo6RE9XTi5iaXRzKCk7CiAgICBwdWIgY29uc3QgQlVUVE9OX0xFRlQ6IHUzMiAgICA9IENvbnRyb2xsZXJCdXR0b25zOjpMRUZULmJpdHMoKTsKICAgIHB1YiBjb25zdCBCVVRUT05fUklHSFQ6IHUzMiAgID0gQ29udHJvbGxlckJ1dHRvbnM6OlJJR0hULmJpdHMoKTsKICAgIHB1YiBjb25zdCBCVVRUT05fTEI6IHUzMiAgICAgID0gQ29udHJvbGxlckJ1dHRvbnM6OkxCLmJpdHMoKTsKICAgIHB1YiBjb25zdCBCVVRUT05fUkI6IHUzMiAgICAgID0gQ29udHJvbGxlckJ1dHRvbnM6OlJCLmJpdHMoKTsKICAgIHB1YiBjb25zdCBCVVRUT05fUExBWTogdTMyICAgID0gQ29udHJvbGxlckJ1dHRvbnM6OlBMQVkuYml0cygpOwogICAgcHViIGNvbnN0IEJVVFRPTl9CQUNLOiB1MzIgICAgPSBDb250cm9sbGVyQnV0dG9uczo6QkFDSy5iaXRzKCk7CiAgICBwdWIgY29uc3QgQlVUVE9OX0xTX0NMSzogdTMyICA9IENvbnRyb2xsZXJCdXR0b25zOjpMU19DTEsuYml0cygpOwogICAgcHViIGNvbnN0IEJVVFRPTl9SU19DTEs6IHUzMiAgPSBDb250cm9sbGVyQnV0dG9uczo6UlNfQ0xLLmJpdHMoKTsKICAgIHB1YiBjb25zdCBCVVRUT05fU1BFQ0lBTDogdTMyID0gQ29udHJvbGxlckJ1dHRvbnM6OlNQRUNJQUwuYml0cygpOwogICAgcHViIGNvbnN0IEJVVFRPTl9QQURETEUxOiB1MzIgPSBDb250cm9sbGVyQnV0dG9uczo6UEFERExFMS5iaXRzKCk7CiAgICBwdWIgY29uc3QgQlVUVE9OX1BBRERMRTI6IHUzMiA9IENvbnRyb2xsZXJCdXR0b25zOjpQQURETEUyLmJpdHMoKTsKICAgIHB1YiBjb25zdCBCVVRUT05fUEFERExFMzogdTMyID0gQ29udHJvbGxlckJ1dHRvbnM6OlBBRERMRTMuYml0cygpOwogICAgcHViIGNvbnN0IEJVVFRPTl9QQURETEU0OiB1MzIgPSBDb250cm9sbGVyQnV0dG9uczo6UEFERExFNC5iaXRzKCk7CiAgICBwdWIgY29uc3QgQlVUVE9OX1RPVUNIUEFEOiB1MzIgPUNvbnRyb2xsZXJCdXR0b25zOjpUT1VDSFBBRC5iaXRzKCk7CiAgICBwdWIgY29uc3QgQlVUVE9OX01JU0M6IHUzMiAgICAgPUNvbnRyb2xsZXJCdXR0b25zOjpNSVNDLmJpdHMoKTsKKTsKCi8vIENvbnRyb2xsZXIgQnV0dG9ucwp0c19jb25zdHMhKAogICAgcHViIFN0cmVhbUNvbnRyb2xsZXJDYXBhYmlsaXRpZXMoZXhwb3J0X2JpbmRpbmdzX2NvbnRyb2xsZXJfY2FwYWJpbGl0aWVzOiBFWFBPUlRfUEFUSCk6CgogICAgcHViIGNvbnN0IENBUEFCSUxJVFlfUlVNQkxFOiB1MTYgPSBDb250cm9sbGVyQ2FwYWJpbGl0aWVzOjpSVU1CTEUuYml0cygpOwogICAgcHViIGNvbnN0IENBUEFCSUxJVFlfVFJJR0dFUl9SVU1CTEU6IHUxNiA9IENvbnRyb2xsZXJDYXBhYmlsaXRpZXM6OlRSSUdHRVJfUlVNQkxFLmJpdHMoKTsKKTsKCiNbZGVyaXZlKFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIERlYnVnLCBUUyldCiNbdHMoZXhwb3J0LCBleHBvcnRfdG8gPSBFWFBPUlRfUEFUSCldCnB1YiBlbnVtIFN0cmVhbUNvbG9yc3BhY2UgewogICAgUmVjNjAxLAogICAgUmVjNzA5LAogICAgUmVjMjAyMCwKfQoKaW1wbCBGcm9tPFN0cmVhbUNvbG9yc3BhY2U+IGZvciBDb2xvclNwYWNlIHsKICAgIGZuIGZyb20odmFsdWU6IFN0cmVhbUNvbG9yc3BhY2UpIC0+IFNlbGYgewogICAgICAgIG1hdGNoIHZhbHVlIHsKICAgICAgICAgICAgU3RyZWFtQ29sb3JzcGFjZTo6UmVjNjAxID0+IENvbG9yU3BhY2U6OlJlYzYwMSwKICAgICAgICAgICAgU3RyZWFtQ29sb3JzcGFjZTo6UmVjNzA5ID0+IENvbG9yU3BhY2U6OlJlYzcwOSwKICAgICAgICAgICAgU3RyZWFtQ29sb3JzcGFjZTo6UmVjMjAyMCA9PiBDb2xvclNwYWNlOjpSZWMyMDIwLAogICAgICAgIH0KICAgIH0KfQoKLy8gVmlkZW8gU3VwcG9ydGVkIENvZGVjCnRzX2NvbnN0cyEoCiAgICBwdWIgU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MoZXhwb3J0X2JpbmRpbmdzX3N1cHBvcnRlZF92aWRlb19jb2RlY3M6IEVYUE9SVF9QQVRIKToKCiAgICBwdWIgY29uc3QgSDI2NDogdTMyID0gVmlkZW9Gb3JtYXRzOjpIMjY0LmJpdHMoKTsKICAgIHB1YiBjb25zdCBIMjY0X0hJR0g4XzQ0NDogdTMyID0gVmlkZW9Gb3JtYXRzOjpIMjY0X0hJR0g4XzQ0NC5iaXRzKCk7CiAgICBwdWIgY29uc3QgSDI2NTogdTMyID0gVmlkZW9Gb3JtYXRzOjpIMjY1LmJpdHMoKTsKICAgIHB1YiBjb25zdCBIMjY1X01BSU4xMDogdTMyID0gVmlkZW9Gb3JtYXRzOjpIMjY1X01BSU4xMC5iaXRzKCk7CiAgICBwdWIgY29uc3QgSDI2NV9SRVhUOF80NDQ6IHUzMiA9IFZpZGVvRm9ybWF0czo6SDI2NV9SRVhUOF80NDQuYml0cygpOwogICAgcHViIGNvbnN0IEgyNjVfUkVYVDEwXzQ0NDogdTMyID0gVmlkZW9Gb3JtYXRzOjpIMjY1X1JFWFQxMF80NDQuYml0cygpOwogICAgcHViIGNvbnN0IEFWMV9NQUlOODogdTMyID0gVmlkZW9Gb3JtYXRzOjpBVjFfTUFJTjguYml0cygpOwogICAgcHViIGNvbnN0IEFWMV9NQUlOMTA6IHUzMiA9IFZpZGVvRm9ybWF0czo6QVYxX01BSU4xMC5iaXRzKCk7CiAgICBwdWIgY29uc3QgQVYxX0hJR0g4XzQ0NDogdTMyID0gVmlkZW9Gb3JtYXRzOjpBVjFfSElHSDhfNDQ0LmJpdHMoKTsKICAgIHB1YiBjb25zdCBBVjFfSElHSDEwXzQ0NDogdTMyID0gVmlkZW9Gb3JtYXRzOjpBVjFfSElHSDEwXzQ0NC5iaXRzKCk7Cik7Cg=="},{"path":"common/src/api_bindings_ext.rs","sha256":"21b965f07eb0cfd558b11eeeff5b5dea681c34146a80340c5e7778679ca22d3d","contentBase64":"dXNlIHNlcmRlOjp7RGVzZXJpYWxpemUsIFNlcmlhbGl6ZX07CnVzZSBzZXJkZV9qc29uOjpWYWx1ZTsKdXNlIHRzX3JzOjpUUzsKCiNbbWFjcm9fZXhwb3J0XQptYWNyb19ydWxlcyEgdHNfY29uc3RzIHsKICAgICgkc3RydWN0X3ZpczogdmlzICRzdHJ1Y3Q6IGlkZW50ICQoKCAkdGVzdF9uYW1lOiBpZGVudCA6ICRwYXRoOiBleHByICkpPyAkKCBhcyAkcmVjb3JkX3R5OiBpZGVudCk/IDogJCgkdmlzOiB2aXMgY29uc3QgJG5hbWU6IGlkZW50IDogJHR5OiBpZGVudCA9ICRjb25zdDogZXhwcjspKikgPT4gewogICAgICAgICRzdHJ1Y3RfdmlzIHN0cnVjdCAkc3RydWN0OwoKICAgICAgICAjW2FsbG93KHVudXNlZCldCiAgICAgICAgaW1wbCAkc3RydWN0IHsKICAgICAgICAgICAgJCgKICAgICAgICAgICAgICAgICR2aXMgY29uc3QgJG5hbWU6ICR0eSA9ICRjb25zdDsKICAgICAgICAgICAgKSoKICAgICAgICB9CgogICAgICAgICNbYWxsb3coY2xpcHB5Ojp1bndyYXBfdXNlZCldCiAgICAgICAgaW1wbCBUUyBmb3IgJHN0cnVjdCB7CiAgICAgICAgICAgIHR5cGUgV2l0aG91dEdlbmVyaWNzID0gU2VsZjsKCiAgICAgICAgICAgIHR5cGUgT3B0aW9uSW5uZXJUeXBlID0gU2VsZjsKCiAgICAgICAgICAgIGZuIGRlY2woKSAtPiBTdHJpbmcgewogICAgICAgICAgICAgICAgdXNlIHN0ZDo6Zm10OjpXcml0ZSBhcyBfOwoKICAgICAgICAgICAgICAgIGxldCBtdXQgZGVjbCA9IFN0cmluZzo6bmV3KCk7CgogICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgZGVjbCwgImNvbnN0IHt9Iiwgc3RyaW5naWZ5ISgkc3RydWN0KSkudW53cmFwKCk7CiAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBkZWNsLCAiID0ge30iLCBTZWxmOjppbmxpbmUoKSkudW53cmFwKCk7CiAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBkZWNsLCAiOyIpLnVud3JhcCgpOwoKICAgICAgICAgICAgICAgIGRlY2wKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm4gZGVjbF9jb25jcmV0ZSgpIC0+IFN0cmluZyB7CiAgICAgICAgICAgICAgICBTZWxmOjpkZWNsKCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm4gbmFtZSgpIC0+IFN0cmluZyB7CiAgICAgICAgICAgICAgICBzdHJpbmdpZnkhKCRzdHJ1Y3QpLnRvX3N0cmluZygpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZuIGlubGluZSgpIC0+IFN0cmluZyB7CiAgICAgICAgICAgICAgICB1c2Ugc3RkOjpmbXQ6OldyaXRlIGFzIF87CgogICAgICAgICAgICAgICAgbGV0IG11dCBpbmxpbmUgPSBTdHJpbmc6Om5ldygpOwoKICAgICAgICAgICAgICAgIHdyaXRlISgmbXV0IGlubGluZSwgInt7ICIpLnVud3JhcCgpOwogICAgICAgICAgICAgICAgJCgKICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWU6ICR0eSA9ICRzdHJ1Y3Q6OiRuYW1lOwoKICAgICAgICAgICAgICAgICAgICB3cml0ZSEoJm11dCBpbmxpbmUsICJ7fToge30sICIsIHN0cmluZ2lmeSEoJG5hbWUpLCB2YWx1ZSkudW53cmFwKCk7CiAgICAgICAgICAgICAgICApKgogICAgICAgICAgICAgICAgd3JpdGUhKCZtdXQgaW5saW5lLCAifX0iKS51bndyYXAoKTsKCiAgICAgICAgICAgICAgICBpbmxpbmUKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm4gaW5saW5lX2ZsYXR0ZW5lZCgpIC0+IFN0cmluZyB7CiAgICAgICAgICAgICAgICBmb3JtYXQhKCIoe30pIiwgU2VsZjo6aW5saW5lKCkpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICQoCiAgICAgICAgICAgIGZuIG91dHB1dF9wYXRoKCkgLT4gT3B0aW9uPHN0ZDo6cGF0aDo6UGF0aEJ1Zj4gewogICAgICAgICAgICAgICAgU29tZShzdGQ6OnBhdGg6OlBhdGhCdWY6OmZyb20oewogICAgICAgICAgICAgICAgICAgIGxldCBkaXJfb3JfZmlsZSA9IGZvcm1hdCEoInt9IiwgJHBhdGgpOwogICAgICAgICAgICAgICAgICAgIGlmIGRpcl9vcl9maWxlLmVuZHNfd2l0aCgnLycpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0ISgie2Rpcl9vcl9maWxlfXt9LnRzIiwgc3RyaW5naWZ5ISgkc3RydWN0KSkKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQhKCJ7ZGlyX29yX2ZpbGV9IikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgfQogICAgICAgICAgICApPwogICAgICAgIH0KCiAgICAgICAgJCgKICAgICAgICAjW2NmZyh0ZXN0KV0KICAgICAgICAjW3Rlc3RdCiAgICAgICAgZm4gJHRlc3RfbmFtZSgpIHsKICAgICAgICAgICAgPCRzdHJ1Y3QgYXMgOjp0c19yczo6VFM+OjpleHBvcnRfYWxsKCkuZXhwZWN0KCJjb3VsZCBub3QgZXhwb3J0IGNvbnN0cyIpOwogICAgICAgIH0KICAgICAgICApPwogICAgfTsKCn0KCiNbZGVyaXZlKERlYnVnLCBTZXJpYWxpemUsIERlc2VyaWFsaXplLCBDbG9uZSldCiNbc2VyZGUoZnJvbSA9ICJWYWx1ZSIsIGludG8gPSAiVmFsdWUiKV0KcHViIHN0cnVjdCBUc0FueShWYWx1ZSk7CgppbXBsIEZyb208VmFsdWU+IGZvciBUc0FueSB7CiAgICBmbiBmcm9tKHZhbHVlOiBWYWx1ZSkgLT4gU2VsZiB7CiAgICAgICAgU2VsZih2YWx1ZSkKICAgIH0KfQppbXBsIEZyb208VHNBbnk+IGZvciBWYWx1ZSB7CiAgICBmbiBmcm9tKHZhbHVlOiBUc0FueSkgLT4gU2VsZiB7CiAgICAgICAgdmFsdWUuMAogICAgfQp9CgppbXBsIFRTIGZvciBUc0FueSB7CiAgICB0eXBlIFdpdGhvdXRHZW5lcmljcyA9IFNlbGY7CiAgICB0eXBlIE9wdGlvbklubmVyVHlwZSA9IFNlbGY7CgogICAgZm4gZGVjbCgpIC0+IFN0cmluZyB7CiAgICAgICAgImFueSIudG9fc3RyaW5nKCkKICAgIH0KCiAgICBmbiBkZWNsX2NvbmNyZXRlKCkgLT4gU3RyaW5nIHsKICAgICAgICBTZWxmOjpkZWNsKCkKICAgIH0KCiAgICBmbiBuYW1lKCkgLT4gU3RyaW5nIHsKICAgICAgICAiYW55Ii50b19zdHJpbmcoKQogICAgfQoKICAgIGZuIGlubGluZSgpIC0+IFN0cmluZyB7CiAgICAgICAgImFueSIudG9fc3RyaW5nKCkKICAgIH0KCiAgICBmbiBpbmxpbmVfZmxhdHRlbmVkKCkgLT4gU3RyaW5nIHsKICAgICAgICBmb3JtYXQhKCIoe30pIiwgU2VsZjo6aW5saW5lKCkpCiAgICB9Cn0K"},{"path":"common/src/config.rs","sha256":"918e537f8397abea000069329b7c2aee1001b6ea721d52558f96efcd9fcf2bd2","contentBase64":"dXNlIHN0ZDo6ewogICAgZm10OjpEaXNwbGF5LAogICAgbmV0Ojp7SXB2NEFkZHIsIFNvY2tldEFkZHIsIFNvY2tldEFkZHJWNH0sCiAgICBudW06OlBhcnNlSW50RXJyb3IsCiAgICBzdHI6OkZyb21TdHIsCiAgICB0aW1lOjpEdXJhdGlvbiwKfTsKCnVzZSBsb2c6OkxldmVsRmlsdGVyOwp1c2Ugc2VyZGU6OntEZXNlcmlhbGl6ZSwgU2VyaWFsaXplfTsKdXNlIHNlcmRlX2pzb246OlZhbHVlOwp1c2UgdGhpc2Vycm9yOjpFcnJvcjsKCnVzZSBjcmF0ZTo6YXBpX2JpbmRpbmdzOjpSdGNJY2VTZXJ2ZXI7CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgc3RydWN0IENvbmZpZyB7CiAgICAjW3NlcmRlKGRlZmF1bHQpXQogICAgcHViIGRhdGFfc3RvcmFnZTogU3RvcmFnZUNvbmZpZywKICAgICNbc2VyZGUoZGVmYXVsdCldCiAgICBwdWIgd2VicnRjOiBXZWJSdGNDb25maWcsCiAgICAjW3NlcmRlKGRlZmF1bHQpXQogICAgcHViIHdlYl9zZXJ2ZXI6IFdlYlNlcnZlckNvbmZpZywKICAgICNbc2VyZGUoZGVmYXVsdCldCiAgICBwdWIgbW9vbmxpZ2h0OiBNb29ubGlnaHRDb25maWcsCiAgICAjW3NlcmRlKGRlZmF1bHQgPSAiZGVmYXVsdF9zdHJlYW1lcl9wYXRoIildCiAgICBwdWIgc3RyZWFtZXJfcGF0aDogU3RyaW5nLAogICAgI1tzZXJkZShkZWZhdWx0KV0KICAgIHB1YiBsb2c6IExvZ0NvbmZpZywKICAgIC8vIFRPRE86IHJlbW92ZSB0aGlzIG9uIG5leHQgbWFqb3IsIGl0IHdhcyByZXBsYWNlZCBieSByb2xlcwogICAgI1tkZXByZWNhdGVkXQogICAgI1tzZXJkZShkZWZhdWx0KV0KICAgIHB1YiBkZWZhdWx0X3NldHRpbmdzOiBPcHRpb248VmFsdWU+LAp9CgppbXBsIERlZmF1bHQgZm9yIENvbmZpZyB7CiAgICBmbiBkZWZhdWx0KCkgLT4gU2VsZiB7CiAgICAgICAgU2VsZiB7CiAgICAgICAgICAgIGRhdGFfc3RvcmFnZTogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgICAgICBzdHJlYW1lcl9wYXRoOiBkZWZhdWx0X3N0cmVhbWVyX3BhdGgoKSwKICAgICAgICAgICAgd2ViX3NlcnZlcjogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgICAgICBtb29ubGlnaHQ6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICAgICAgd2VicnRjOiBEZWZhdWx0OjpkZWZhdWx0KCksCiAgICAgICAgICAgIGxvZzogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgICAgICAjW2FsbG93KGRlcHJlY2F0ZWQpXQogICAgICAgICAgICBkZWZhdWx0X3NldHRpbmdzOiBEZWZhdWx0OjpkZWZhdWx0KCksCiAgICAgICAgfQogICAgfQp9CgovLyAtLSBMb2cKCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBzdHJ1Y3QgTG9nQ29uZmlnIHsKICAgIHB1YiBsZXZlbF9maWx0ZXI6IExldmVsRmlsdGVyLAogICAgcHViIGZpbGVfcGF0aDogT3B0aW9uPFN0cmluZz4sCiAgICAjW3NlcmRlKGRlZmF1bHQgPSAiZGVmYXVsdF9kZXZfdmVuYXRvciIpXQogICAgcHViIGRldl92ZW5hdG9yOiBib29sLAp9CgppbXBsIERlZmF1bHQgZm9yIExvZ0NvbmZpZyB7CiAgICBmbiBkZWZhdWx0KCkgLT4gU2VsZiB7CiAgICAgICAgU2VsZiB7CiAgICAgICAgICAgIGxldmVsX2ZpbHRlcjogZGVmYXVsdF9sZXZlbF9maWx0ZXIoKSwKICAgICAgICAgICAgZmlsZV9wYXRoOiBOb25lLAogICAgICAgICAgICBkZXZfdmVuYXRvcjogZGVmYXVsdF9kZXZfdmVuYXRvcigpLAogICAgICAgIH0KICAgIH0KfQoKZm4gZGVmYXVsdF9sZXZlbF9maWx0ZXIoKSAtPiBMZXZlbEZpbHRlciB7CiAgICBMZXZlbEZpbHRlcjo6SW5mbwp9CgpmbiBkZWZhdWx0X2Rldl92ZW5hdG9yKCkgLT4gYm9vbCB7CiAgICBmYWxzZQp9CgovLyAtLSBEYXRhIFN0b3JhZ2UKI1tkZXJpdmUoRGVidWcsIENsb25lLCBTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KI1tzZXJkZSh0YWcgPSAidHlwZSIpXQojW3NlcmRlKHJlbmFtZV9hbGwgPSAiY2FtZWxDYXNlIildCnB1YiBlbnVtIFN0b3JhZ2VDb25maWcgewogICAgSnNvbiB7CiAgICAgICAgcGF0aDogU3RyaW5nLAogICAgICAgIHNlc3Npb25fZXhwaXJhdGlvbl9jaGVja19pbnRlcnZhbDogRHVyYXRpb24sCiAgICB9LAp9CgppbXBsIERlZmF1bHQgZm9yIFN0b3JhZ2VDb25maWcgewogICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgewogICAgICAgIFN0b3JhZ2VDb25maWc6Okpzb24gewogICAgICAgICAgICBwYXRoOiAic2VydmVyL2RhdGEuanNvbiIudG9fc3RyaW5nKCksCiAgICAgICAgICAgIHNlc3Npb25fZXhwaXJhdGlvbl9jaGVja19pbnRlcnZhbDogZGVmYXVsdF9zZXNzaW9uX2V4cGlyYXRpb25fY2hlY2tfaW50ZXJ2YWwoKSwKICAgICAgICB9CiAgICB9Cn0KCmZuIGRlZmF1bHRfc2Vzc2lvbl9leHBpcmF0aW9uX2NoZWNrX2ludGVydmFsKCkgLT4gRHVyYXRpb24gewogICAgRHVyYXRpb246OmZyb21fbWlucyg1KQp9CgovLyAtLSBXZWJSVEMgQ29uZmlnCgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgc3RydWN0IFdlYlJ0Y0NvbmZpZyB7CiAgICAjW3NlcmRlKGRlZmF1bHQgPSAiZGVmYXVsdF9pY2Vfc2VydmVycyIpXQogICAgcHViIGljZV9zZXJ2ZXJzOiBWZWM8UnRjSWNlU2VydmVyPiwKICAgICNbc2VyZGUoZGVmYXVsdCldCiAgICBwdWIgaWNlX3NlcnZlcl9zY3JpcHQ6IE9wdGlvbjxTdHJpbmc+LAogICAgI1tzZXJkZShkZWZhdWx0KV0KICAgIHB1YiBwb3J0X3JhbmdlOiBPcHRpb248UG9ydFJhbmdlPiwKICAgICNbc2VyZGUoZGVmYXVsdCldCiAgICBwdWIgbmF0XzF0bzE6IE9wdGlvbjxXZWJSdGNOYXQxVG8xTWFwcGluZz4sCiAgICAjW3NlcmRlKGRlZmF1bHQgPSAiZGVmYXVsdF9uZXR3b3JrX3R5cGVzIildCiAgICBwdWIgbmV0d29ya190eXBlczogVmVjPFdlYlJ0Y05ldHdvcmtUeXBlPiwKICAgICNbc2VyZGUoZGVmYXVsdCA9ICJkZWZhdWx0X2luY2x1ZGVfbG9vcGJhY2tfY2FuZGlkYXRlcyIpXQogICAgcHViIGluY2x1ZGVfbG9vcGJhY2tfY2FuZGlkYXRlczogYm9vbCwKfQoKaW1wbCBEZWZhdWx0IGZvciBXZWJSdGNDb25maWcgewogICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgewogICAgICAgIFNlbGYgewogICAgICAgICAgICBpY2Vfc2VydmVyczogZGVmYXVsdF9pY2Vfc2VydmVycygpLAogICAgICAgICAgICBpY2Vfc2VydmVyX3NjcmlwdDogTm9uZSwKICAgICAgICAgICAgcG9ydF9yYW5nZTogTm9uZSwKICAgICAgICAgICAgbmF0XzF0bzE6IE5vbmUsCiAgICAgICAgICAgIG5ldHdvcmtfdHlwZXM6IGRlZmF1bHRfbmV0d29ya190eXBlcygpLAogICAgICAgICAgICBpbmNsdWRlX2xvb3BiYWNrX2NhbmRpZGF0ZXM6IGRlZmF1bHRfaW5jbHVkZV9sb29wYmFja19jYW5kaWRhdGVzKCksCiAgICAgICAgfQogICAgfQp9CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIENvcHksIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgZW51bSBXZWJSdGNOZXR3b3JrVHlwZSB7CiAgICAjW3NlcmRlKHJlbmFtZSA9ICJ1ZHA0IildCiAgICBVZHA0LAogICAgI1tzZXJkZShyZW5hbWUgPSAidWRwNiIpXQogICAgVWRwNiwKICAgICNbc2VyZGUocmVuYW1lID0gInRjcDQiKV0KICAgIFRjcDQsCiAgICAjW3NlcmRlKHJlbmFtZSA9ICJ0Y3A2IildCiAgICBUY3A2LAp9CgppbXBsIERpc3BsYXkgZm9yIFdlYlJ0Y05ldHdvcmtUeXBlIHsKICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBzdGQ6OmZtdDo6Rm9ybWF0dGVyPCdfPikgLT4gc3RkOjpmbXQ6OlJlc3VsdCB7CiAgICAgICAgbGV0IHR5ID0gbWF0Y2ggc2VsZiB7CiAgICAgICAgICAgIFNlbGY6OlVkcDQgPT4gInVkcDQiLAogICAgICAgICAgICBTZWxmOjpVZHA2ID0+ICJ1ZHA2IiwKICAgICAgICAgICAgU2VsZjo6VGNwNCA9PiAidGNwNCIsCiAgICAgICAgICAgIFNlbGY6OlRjcDYgPT4gInRjcDYiLAogICAgICAgIH07CiAgICAgICAgd3JpdGUhKGYsICJ7fSIsIHR5KQogICAgfQp9CgojW2Rlcml2ZShEZWJ1ZywgRXJyb3IpXQojW2Vycm9yKCJub3QgYSB2YWxpZCBuZXR3b3JrIHR5cGUiKV0KcHViIHN0cnVjdCBXZWJSdGNOZXR3b3JrVHlwZUZyb21TdHI7CgppbXBsIEZyb21TdHIgZm9yIFdlYlJ0Y05ldHdvcmtUeXBlIHsKICAgIHR5cGUgRXJyID0gV2ViUnRjTmV0d29ya1R5cGVGcm9tU3RyOwogICAgZm4gZnJvbV9zdHIoczogJnN0cikgLT4gUmVzdWx0PFNlbGYsIFNlbGY6OkVycj4gewogICAgICAgIG1hdGNoIHMgewogICAgICAgICAgICAidWRwNCIgPT4gT2soU2VsZjo6VWRwNCksCiAgICAgICAgICAgICJ1ZHA2IiA9PiBPayhTZWxmOjpVZHA2KSwKICAgICAgICAgICAgInRjcDQiID0+IE9rKFNlbGY6OlRjcDQpLAogICAgICAgICAgICAidGNwNiIgPT4gT2soU2VsZjo6VGNwNiksCiAgICAgICAgICAgIF8gPT4gRXJyKFdlYlJ0Y05ldHdvcmtUeXBlRnJvbVN0ciksCiAgICAgICAgfQogICAgfQp9CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgc3RydWN0IFdlYlJ0Y05hdDFUbzFNYXBwaW5nIHsKICAgIHB1YiBpcHM6IFZlYzxTdHJpbmc+LAogICAgcHViIGljZV9jYW5kaWRhdGVfdHlwZTogV2ViUnRjTmF0MVRvMUljZUNhbmRpZGF0ZVR5cGUsCn0KCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgQ29weSwgU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBlbnVtIFdlYlJ0Y05hdDFUbzFJY2VDYW5kaWRhdGVUeXBlIHsKICAgICNbc2VyZGUocmVuYW1lID0gInNyZmx4IildCiAgICBTcmZseCwKICAgICNbc2VyZGUocmVuYW1lID0gImhvc3QiKV0KICAgIEhvc3QsCn0KCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBzdHJ1Y3QgUG9ydFJhbmdlIHsKICAgIHB1YiBtaW46IHUxNiwKICAgIHB1YiBtYXg6IHUxNiwKfQoKI1tkZXJpdmUoRGVidWcsIEVycm9yKV0KcHViIGVudW0gUG9ydFJhbmdlRnJvbVN0ckVycm9yIHsKICAgICNbZXJyb3IoInRoZSBwb3J0IHJhbmdlIG11c3QgYmUgb2YgZm9ybWF0IFwiTUlOOk1BWFwiIildCiAgICBTcGxpdCwKICAgICNbZXJyb3IoImNvdWxkbid0IHBhcnNlIG51bWJlcjogezB9IildCiAgICBQYXJzZU51bWJlcigjW2Zyb21dIFBhcnNlSW50RXJyb3IpLAp9CgppbXBsIEZyb21TdHIgZm9yIFBvcnRSYW5nZSB7CiAgICB0eXBlIEVyciA9IFBvcnRSYW5nZUZyb21TdHJFcnJvcjsKICAgIGZuIGZyb21fc3RyKHM6ICZzdHIpIC0+IFJlc3VsdDxTZWxmLCBTZWxmOjpFcnI+IHsKICAgICAgICBsZXQgKG1pbiwgbWF4KSA9IHMuc3BsaXRfb25jZSgiOiIpLm9rX29yKFBvcnRSYW5nZUZyb21TdHJFcnJvcjo6U3BsaXQpPzsKICAgICAgICBPayhQb3J0UmFuZ2UgewogICAgICAgICAgICBtaW46IG1pbi5wYXJzZSgpLm1hcF9lcnIoUG9ydFJhbmdlRnJvbVN0ckVycm9yOjpQYXJzZU51bWJlcik/LAogICAgICAgICAgICBtYXg6IG1heC5wYXJzZSgpLm1hcF9lcnIoUG9ydFJhbmdlRnJvbVN0ckVycm9yOjpQYXJzZU51bWJlcik/LAogICAgICAgIH0pCiAgICB9Cn0KCmZuIGRlZmF1bHRfaWNlX3NlcnZlcnMoKSAtPiBWZWM8UnRjSWNlU2VydmVyPiB7CiAgICB2ZWMhW1J0Y0ljZVNlcnZlciB7CiAgICAgICAgaXNfZGVmYXVsdDogdHJ1ZSwKICAgICAgICB1cmxzOiB2ZWMhWwogICAgICAgICAgICAvLyBHb29nbGUKICAgICAgICAgICAgInN0dW46c3R1bi5sLmdvb2dsZS5jb206MTkzMDIiLnRvX3N0cmluZygpLAogICAgICAgICAgICAic3R1bjpzdHVuLmwuZ29vZ2xlLmNvbTo1MzQ5Ii50b19zdHJpbmcoKSwKICAgICAgICAgICAgInN0dW46c3R1bjEubC5nb29nbGUuY29tOjM0NzgiLnRvX3N0cmluZygpLAogICAgICAgICAgICAic3R1bjpzdHVuMS5sLmdvb2dsZS5jb206NTM0OSIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICJzdHVuOnN0dW4yLmwuZ29vZ2xlLmNvbToxOTMwMiIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICJzdHVuOnN0dW4yLmwuZ29vZ2xlLmNvbTo1MzQ5Ii50b19zdHJpbmcoKSwKICAgICAgICAgICAgInN0dW46c3R1bjMubC5nb29nbGUuY29tOjM0NzgiLnRvX3N0cmluZygpLAogICAgICAgICAgICAic3R1bjpzdHVuMy5sLmdvb2dsZS5jb206NTM0OSIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICJzdHVuOnN0dW40LmwuZ29vZ2xlLmNvbToxOTMwMiIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICJzdHVuOnN0dW40LmwuZ29vZ2xlLmNvbTo1MzQ5Ii50b19zdHJpbmcoKSwKICAgICAgICBdLAogICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICB9XQp9CmZuIGRlZmF1bHRfbmV0d29ya190eXBlcygpIC0+IFZlYzxXZWJSdGNOZXR3b3JrVHlwZT4gewogICAgdmVjIVtXZWJSdGNOZXR3b3JrVHlwZTo6VWRwNCwgV2ViUnRjTmV0d29ya1R5cGU6OlVkcDZdCn0KZm4gZGVmYXVsdF9pbmNsdWRlX2xvb3BiYWNrX2NhbmRpZGF0ZXMoKSAtPiBib29sIHsKICAgIHRydWUKfQoKLy8gLS0gV2ViIFNlcnZlciBDb25maWcKCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBzdHJ1Y3QgV2ViU2VydmVyQ29uZmlnIHsKICAgICNbc2VyZGUoZGVmYXVsdCA9ICJkZWZhdWx0X2JpbmRfYWRkcmVzcyIpXQogICAgcHViIGJpbmRfYWRkcmVzczogU29ja2V0QWRkciwKICAgIHB1YiBjZXJ0aWZpY2F0ZTogT3B0aW9uPENvbmZpZ1NzbD4sCiAgICAjW3NlcmRlKGRlZmF1bHQpXQogICAgcHViIHVybF9wYXRoX3ByZWZpeDogU3RyaW5nLAogICAgI1tzZXJkZShkZWZhdWx0ID0gImRlZmF1bHRfc2Vzc2lvbl9jb29raWVfc2VjdXJlIildCiAgICBwdWIgc2Vzc2lvbl9jb29raWVfc2VjdXJlOiBib29sLAogICAgI1tzZXJkZShkZWZhdWx0ID0gImRlZmF1bHRfc2Vzc2lvbl9jb29raWVfZXhwaXJhdGlvbiIpXQogICAgcHViIHNlc3Npb25fY29va2llX2V4cGlyYXRpb246IER1cmF0aW9uLAogICAgcHViIGZpcnN0X2xvZ2luX2NyZWF0ZV9hZG1pbjogYm9vbCwKICAgIHB1YiBmaXJzdF9sb2dpbl9hc3NpZ25fZ2xvYmFsX2hvc3RzOiBib29sLAogICAgcHViIGRlZmF1bHRfdXNlcl9pZDogT3B0aW9uPHUzMj4sCiAgICBwdWIgZGVmYXVsdF9yb2xlX2lkOiBPcHRpb248dTMyPiwKICAgIHB1YiBmb3J3YXJkZWRfaGVhZGVyOiBPcHRpb248Rm9yd2FyZGVkSGVhZGVycz4sCn0KCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBzdHJ1Y3QgQ29uZmlnU3NsIHsKICAgIHB1YiBwcml2YXRlX2tleV9wZW06IFN0cmluZywKICAgIHB1YiBjZXJ0aWZpY2F0ZV9wZW06IFN0cmluZywKfQoKaW1wbCBEZWZhdWx0IGZvciBXZWJTZXJ2ZXJDb25maWcgewogICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgewogICAgICAgIFNlbGYgewogICAgICAgICAgICBiaW5kX2FkZHJlc3M6IGRlZmF1bHRfYmluZF9hZGRyZXNzKCksCiAgICAgICAgICAgIGNlcnRpZmljYXRlOiBOb25lLAogICAgICAgICAgICB1cmxfcGF0aF9wcmVmaXg6ICIiLnRvX3N0cmluZygpLAogICAgICAgICAgICBzZXNzaW9uX2Nvb2tpZV9zZWN1cmU6IGRlZmF1bHRfc2Vzc2lvbl9jb29raWVfc2VjdXJlKCksCiAgICAgICAgICAgIHNlc3Npb25fY29va2llX2V4cGlyYXRpb246IGRlZmF1bHRfc2Vzc2lvbl9jb29raWVfZXhwaXJhdGlvbigpLAogICAgICAgICAgICBmaXJzdF9sb2dpbl9jcmVhdGVfYWRtaW46IHRydWUsCiAgICAgICAgICAgIGZpcnN0X2xvZ2luX2Fzc2lnbl9nbG9iYWxfaG9zdHM6IHRydWUsCiAgICAgICAgICAgIGRlZmF1bHRfdXNlcl9pZDogTm9uZSwKICAgICAgICAgICAgZGVmYXVsdF9yb2xlX2lkOiBOb25lLAogICAgICAgICAgICBmb3J3YXJkZWRfaGVhZGVyOiBOb25lLAogICAgICAgIH0KICAgIH0KfQoKZm4gZGVmYXVsdF9iaW5kX2FkZHJlc3MoKSAtPiBTb2NrZXRBZGRyIHsKICAgIFNvY2tldEFkZHI6OlY0KFNvY2tldEFkZHJWNDo6bmV3KElwdjRBZGRyOjpVTlNQRUNJRklFRCwgODA4MCkpCn0KZm4gZGVmYXVsdF9zZXNzaW9uX2Nvb2tpZV9zZWN1cmUoKSAtPiBib29sIHsKICAgIGZhbHNlCn0KZm4gZGVmYXVsdF9zZXNzaW9uX2Nvb2tpZV9leHBpcmF0aW9uKCkgLT4gRHVyYXRpb24gewogICAgY29uc3QgREFZX1NFQ09ORFM6IHU2NCA9IDI0ICogNjAgKiA2MDsKCiAgICBEdXJhdGlvbjo6ZnJvbV9zZWNzKERBWV9TRUNPTkRTKQp9CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgc3RydWN0IEZvcndhcmRlZEhlYWRlcnMgewogICAgcHViIHVzZXJuYW1lX2hlYWRlcjogU3RyaW5nLAogICAgI1tzZXJkZShkZWZhdWx0ID0gImRlZmF1bHRfZm9yd2FyZGVkX2hlYWRlcnNfYXV0b19jcmVhdGVfdXNlciIpXQogICAgcHViIGF1dG9fY3JlYXRlX21pc3NpbmdfdXNlcjogYm9vbCwKfQoKaW1wbCBEZWZhdWx0IGZvciBGb3J3YXJkZWRIZWFkZXJzIHsKICAgIGZuIGRlZmF1bHQoKSAtPiBTZWxmIHsKICAgICAgICBTZWxmIHsKICAgICAgICAgICAgdXNlcm5hbWVfaGVhZGVyOiAiWC1Gb3J3YXJkZWQtVXNlciIudG9fc3RyaW5nKCksCiAgICAgICAgICAgIGF1dG9fY3JlYXRlX21pc3NpbmdfdXNlcjogZGVmYXVsdF9mb3J3YXJkZWRfaGVhZGVyc19hdXRvX2NyZWF0ZV91c2VyKCksCiAgICAgICAgfQogICAgfQp9CgpmbiBkZWZhdWx0X2ZvcndhcmRlZF9oZWFkZXJzX2F1dG9fY3JlYXRlX3VzZXIoKSAtPiBib29sIHsKICAgIHRydWUKfQoKLy8gLS0gTW9vbmxpZ2h0CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgc3RydWN0IE1vb25saWdodENvbmZpZyB7CiAgICAjW3NlcmRlKGRlZmF1bHQgPSAiZGVmYXVsdF9tb29ubGlnaHRfaHR0cF9wb3J0IildCiAgICBwdWIgZGVmYXVsdF9odHRwX3BvcnQ6IHUxNiwKICAgICNbc2VyZGUoZGVmYXVsdCA9ICJkZWZhdWx0X3BhaXJfZGV2aWNlX25hbWUiKV0KICAgIHB1YiBwYWlyX2RldmljZV9uYW1lOiBTdHJpbmcsCn0KCmltcGwgRGVmYXVsdCBmb3IgTW9vbmxpZ2h0Q29uZmlnIHsKICAgIGZuIGRlZmF1bHQoKSAtPiBTZWxmIHsKICAgICAgICBTZWxmIHsKICAgICAgICAgICAgZGVmYXVsdF9odHRwX3BvcnQ6IGRlZmF1bHRfbW9vbmxpZ2h0X2h0dHBfcG9ydCgpLAogICAgICAgICAgICBwYWlyX2RldmljZV9uYW1lOiBkZWZhdWx0X3BhaXJfZGV2aWNlX25hbWUoKSwKICAgICAgICB9CiAgICB9Cn0KCmZuIGRlZmF1bHRfbW9vbmxpZ2h0X2h0dHBfcG9ydCgpIC0+IHUxNiB7CiAgICA0Nzk4OQp9CgpmbiBkZWZhdWx0X3BhaXJfZGV2aWNlX25hbWUoKSAtPiBTdHJpbmcgewogICAgInJvdGgiLnRvX3N0cmluZygpCn0KCmZuIGRlZmF1bHRfc3RyZWFtZXJfcGF0aCgpIC0+IFN0cmluZyB7CiAgICAiLi9zdHJlYW1lciIudG9fc3RyaW5nKCkKfQo="},{"path":"common/src/ipc.rs","sha256":"fab8be800035044cb1377770c23e49d3c23b72c15d9cd117b58b2039ca47fe23","contentBase64":"dXNlIHN0ZDo6bWFya2VyOjpQaGFudG9tRGF0YTsKCnVzZSBieXRlczo6Qnl0ZXM7CnVzZSBsb2c6OkxldmVsRmlsdGVyOwp1c2UgcGVtOjpQZW07CnVzZSBzZXJkZTo6e0Rlc2VyaWFsaXplLCBTZXJpYWxpemUsIGRlOjpEZXNlcmlhbGl6ZU93bmVkfTsKdXNlIHRva2lvOjp7CiAgICBpbzo6ewogICAgICAgIEFzeW5jQnVmUmVhZCwgQXN5bmNCdWZSZWFkRXh0LCBBc3luY1JlYWQsIEFzeW5jV3JpdGVFeHQsIEJ1ZlJlYWRlciwgTGluZXMsIFN0ZGluLCBTdGRvdXQsCiAgICB9LAogICAgcHJvY2Vzczo6e0NoaWxkU3RkZXJyLCBDaGlsZFN0ZGluLCBDaGlsZFN0ZG91dH0sCiAgICBzcGF3biwKICAgIHN5bmM6Om1wc2M6OntSZWNlaXZlciwgU2VuZGVyLCBjaGFubmVsfSwKfTsKdXNlIHRyYWNpbmc6OntTcGFuLCBpbmZvLCB0cmFjZSwgd2Fybn07Cgp1c2UgY3JhdGU6OnsKICAgIGFwaV9iaW5kaW5nczo6e1N0cmVhbUNsaWVudE1lc3NhZ2UsIFN0cmVhbVBlcm1pc3Npb25zLCBTdHJlYW1TZXJ2ZXJNZXNzYWdlfSwKICAgIGNvbmZpZzo6V2ViUnRjQ29uZmlnLAp9OwoKI1tkZXJpdmUoRGVidWcsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgc3RydWN0IFN0cmVhbWVyQ29uZmlnIHsKICAgIHB1YiB3ZWJydGM6IFdlYlJ0Y0NvbmZpZywKICAgIHB1YiBsb2dfbGV2ZWw6IExldmVsRmlsdGVyLAp9CgojW2FsbG93KGNsaXBweTo6bGFyZ2VfZW51bV92YXJpYW50KV0KI1tkZXJpdmUoRGVidWcsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgZW51bSBTZXJ2ZXJJcGNNZXNzYWdlIHsKICAgIEluaXQgewogICAgICAgIGNvbmZpZzogU3RyZWFtZXJDb25maWcsCiAgICAgICAgaG9zdF9hZGRyZXNzOiBTdHJpbmcsCiAgICAgICAgaG9zdF9odHRwX3BvcnQ6IHUxNiwKICAgICAgICBjbGllbnRfdW5pcXVlX2lkOiBPcHRpb248U3RyaW5nPiwKICAgICAgICBjbGllbnRfcHJpdmF0ZV9rZXk6IFBlbSwKICAgICAgICBjbGllbnRfY2VydGlmaWNhdGU6IFBlbSwKICAgICAgICBzZXJ2ZXJfY2VydGlmaWNhdGU6IFBlbSwKICAgICAgICBhcHBfaWQ6IHUzMiwKICAgICAgICB2aWRlb19mcmFtZV9xdWV1ZV9zaXplOiB1c2l6ZSwKICAgICAgICBhdWRpb19zYW1wbGVfcXVldWVfc2l6ZTogdXNpemUsCiAgICAgICAgcGVybWlzc2lvbnM6IFN0cmVhbVBlcm1pc3Npb25zLAogICAgfSwKICAgIFdlYlNvY2tldChTdHJlYW1DbGllbnRNZXNzYWdlKSwKICAgIFdlYlNvY2tldFRyYW5zcG9ydChCeXRlcyksCiAgICBTdG9wLAp9CgojW2Rlcml2ZShEZWJ1ZywgU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBlbnVtIFN0cmVhbWVySXBjTWVzc2FnZSB7CiAgICBXZWJTb2NrZXQoU3RyZWFtU2VydmVyTWVzc2FnZSksCiAgICBXZWJTb2NrZXRUcmFuc3BvcnQoQnl0ZXMpLAogICAgU3RvcCwKfQoKLy8gV2UncmUgdXNpbmcgdGhlOgovLyBTdGRpbjogbWVzc2FnZSBwYXNzaW5nCi8vIFN0ZG91dDogbWVzc2FnZSBwYXNzaW5nCi8vIFN0ZGVycjogbG9nZ2luZwoKcHViIGFzeW5jIGZuIGNyZWF0ZV9jaGlsZF9pcGM8TWVzc2FnZSwgQ2hpbGRNZXNzYWdlPigKICAgIHNwYW46IFNwYW4sCiAgICBzdGRpbjogQ2hpbGRTdGRpbiwKICAgIHN0ZG91dDogQ2hpbGRTdGRvdXQsCiAgICBzdGRlcnI6IE9wdGlvbjxDaGlsZFN0ZGVycj4sCikgLT4gKElwY1NlbmRlcjxNZXNzYWdlPiwgSXBjUmVjZWl2ZXI8Q2hpbGRNZXNzYWdlPikKd2hlcmUKICAgIE1lc3NhZ2U6IFNlbmQgKyBTZXJpYWxpemUgKyAnc3RhdGljLAogICAgQ2hpbGRNZXNzYWdlOiBEZXNlcmlhbGl6ZU93bmVkLAp7CiAgICBpZiBsZXQgU29tZShzdGRlcnIpID0gc3RkZXJyIHsKICAgICAgICAvLyBUaGlzIGlzIHRoZSBsb2cgb3V0cHV0IG9mIHRoZSBzdHJlYW1lcgogICAgICAgIGxldCBzcGFuID0gc3Bhbi5jbG9uZSgpOwoKICAgICAgICBzcGF3bihhc3luYyBtb3ZlIHsKICAgICAgICAgICAgbGV0IGJ1Zl9yZWFkZXIgPSBCdWZSZWFkZXI6Om5ldyhzdGRlcnIpOwogICAgICAgICAgICBsZXQgbXV0IGxpbmVzID0gYnVmX3JlYWRlci5saW5lcygpOwoKICAgICAgICAgICAgd2hpbGUgbGV0IE9rKFNvbWUobGluZSkpID0gbGluZXMubmV4dF9saW5lKCkuYXdhaXQgewogICAgICAgICAgICAgICAgaW5mbyEocGFyZW50OiAmc3BhbiwgIntsaW5lfSIpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9CgogICAgbGV0IChzZW5kZXIsIHJlY2VpdmVyKSA9IGNoYW5uZWw6OjxNZXNzYWdlPigxMCk7CgogICAgc3Bhd24oewogICAgICAgIGxldCBzcGFuID0gc3Bhbi5jbG9uZSgpOwoKICAgICAgICBhc3luYyBtb3ZlIHsKICAgICAgICAgICAgaXBjX3NlbmRlcihzcGFuLmNsb25lKCksIHN0ZGluLCByZWNlaXZlcikuYXdhaXQ7CiAgICAgICAgfQogICAgfSk7CgogICAgKAogICAgICAgIElwY1NlbmRlciB7CiAgICAgICAgICAgIHNlbmRlciwKICAgICAgICAgICAgc3Bhbjogc3Bhbi5jbG9uZSgpLAogICAgICAgIH0sCiAgICAgICAgSXBjUmVjZWl2ZXIgewogICAgICAgICAgICBlcnJvcmVkOiBmYWxzZSwKICAgICAgICAgICAgcmVhZDogY3JlYXRlX2xpbmVzKHN0ZG91dCksCiAgICAgICAgICAgIHBoYW50b206IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICAgICAgc3BhbiwKICAgICAgICB9LAogICAgKQp9CgpwdWIgYXN5bmMgZm4gY3JlYXRlX3Byb2Nlc3NfaXBjPFBhcmVudE1lc3NhZ2UsIE1lc3NhZ2U+KAogICAgc3BhbjogU3BhbiwKICAgIHN0ZGluOiBTdGRpbiwKICAgIHN0ZG91dDogU3Rkb3V0LAopIC0+IChJcGNTZW5kZXI8TWVzc2FnZT4sIElwY1JlY2VpdmVyPFBhcmVudE1lc3NhZ2U+KQp3aGVyZQogICAgUGFyZW50TWVzc2FnZTogRGVzZXJpYWxpemVPd25lZCwKICAgIE1lc3NhZ2U6IFNlbmQgKyBTZXJpYWxpemUgKyAnc3RhdGljLAp7CiAgICBsZXQgKHNlbmRlciwgcmVjZWl2ZXIpID0gY2hhbm5lbDo6PE1lc3NhZ2U+KDEwKTsKCiAgICBzcGF3bih7CiAgICAgICAgbGV0IHNwYW4gPSBzcGFuLmNsb25lKCk7CgogICAgICAgIGFzeW5jIG1vdmUgewogICAgICAgICAgICBpcGNfc2VuZGVyKHNwYW4uY2xvbmUoKSwgc3Rkb3V0LCByZWNlaXZlcikuYXdhaXQ7CiAgICAgICAgfQogICAgfSk7CgogICAgKAogICAgICAgIElwY1NlbmRlciB7CiAgICAgICAgICAgIHNlbmRlciwKICAgICAgICAgICAgc3Bhbjogc3Bhbi5jbG9uZSgpLAogICAgICAgIH0sCiAgICAgICAgSXBjUmVjZWl2ZXIgewogICAgICAgICAgICBlcnJvcmVkOiBmYWxzZSwKICAgICAgICAgICAgcmVhZDogY3JlYXRlX2xpbmVzKHN0ZGluKSwKICAgICAgICAgICAgcGhhbnRvbTogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgICAgICBzcGFuLAogICAgICAgIH0sCiAgICApCn0KZm4gY3JlYXRlX2xpbmVzKAogICAgcmVhZDogaW1wbCBBc3luY1JlYWQgKyBTZW5kICsgVW5waW4gKyAnc3RhdGljLAopIC0+IExpbmVzPEJveDxkeW4gQXN5bmNCdWZSZWFkICsgU2VuZCArIFVucGluICsgJ3N0YXRpYz4+IHsKICAgIChCb3g6Om5ldyhCdWZSZWFkZXI6Om5ldyhyZWFkKSkgYXMgQm94PGR5biBBc3luY0J1ZlJlYWQgKyBTZW5kICsgVW5waW4gKyAnc3RhdGljPikubGluZXMoKQp9Cgphc3luYyBmbiBpcGNfc2VuZGVyPE1lc3NhZ2U+KAogICAgc3BhbjogU3BhbiwKICAgIG11dCB3cml0ZTogaW1wbCBBc3luY1dyaXRlRXh0ICsgVW5waW4sCiAgICBtdXQgcmVjZWl2ZXI6IFJlY2VpdmVyPE1lc3NhZ2U+LAopIHdoZXJlCiAgICBNZXNzYWdlOiBTZXJpYWxpemUsCnsKICAgIHdoaWxlIGxldCBTb21lKHZhbHVlKSA9IHJlY2VpdmVyLnJlY3YoKS5hd2FpdCB7CiAgICAgICAgbGV0IG11dCBqc29uID0gbWF0Y2ggc2VyZGVfanNvbjo6dG9fc3RyaW5nKCZ2YWx1ZSkgewogICAgICAgICAgICBPayh2YWx1ZSkgPT4gdmFsdWUsCiAgICAgICAgICAgIEVycihlcnIpID0+IHsKICAgICAgICAgICAgICAgIHdhcm4hKHBhcmVudDogJnNwYW4sIltJcGNdOiBmYWlsZWQgdG8gZW5jb2RlIG1lc3NhZ2U6IHtlcnI6P30iKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgdHJhY2UhKHBhcmVudDogJnNwYW4sICJbSXBjXSBzZW5kaW5nIHtqc29ufSIpOwoKICAgICAgICBqc29uLnB1c2goJ1xuJyk7CgogICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IHdyaXRlLndyaXRlX2FsbChqc29uLmFzX2J5dGVzKCkpLmF3YWl0IHsKICAgICAgICAgICAgd2FybiEocGFyZW50OiAmc3BhbiwgImZhaWxlZCB0byB3cml0ZSBtZXNzYWdlIGxlbmd0aDoge2Vycjo/fSIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfTsKCiAgICAgICAgaWYgbGV0IEVycihlcnIpID0gd3JpdGUuZmx1c2goKS5hd2FpdCB7CiAgICAgICAgICAgIHdhcm4hKHBhcmVudDogJnNwYW4sICJmYWlsZWQgdG8gZmx1c2g6IHtlcnI6P30iKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KfQoKI1tkZXJpdmUoRGVidWcpXQpwdWIgc3RydWN0IElwY1NlbmRlcjxNZXNzYWdlPiB7CiAgICBzZW5kZXI6IFNlbmRlcjxNZXNzYWdlPiwKICAgIHNwYW46IFNwYW4sCn0KCmltcGw8TWVzc2FnZT4gQ2xvbmUgZm9yIElwY1NlbmRlcjxNZXNzYWdlPiB7CiAgICBmbiBjbG9uZSgmc2VsZikgLT4gU2VsZiB7CiAgICAgICAgU2VsZiB7CiAgICAgICAgICAgIHNlbmRlcjogc2VsZi5zZW5kZXIuY2xvbmUoKSwKICAgICAgICAgICAgc3Bhbjogc2VsZi5zcGFuLmNsb25lKCksCiAgICAgICAgfQogICAgfQp9CgppbXBsPE1lc3NhZ2U+IElwY1NlbmRlcjxNZXNzYWdlPgp3aGVyZQogICAgTWVzc2FnZTogU2VyaWFsaXplICsgU2VuZCArICdzdGF0aWMsCnsKICAgIHB1YiBhc3luYyBmbiBzZW5kKCZtdXQgc2VsZiwgbWVzc2FnZTogTWVzc2FnZSkgewogICAgICAgIGlmIHNlbGYuc2VuZGVyLnNlbmQobWVzc2FnZSkuYXdhaXQuaXNfZXJyKCkgewogICAgICAgICAgICB3YXJuIShwYXJlbnQ6ICZzZWxmLnNwYW4sICJmYWlsZWQgdG8gc2VuZCBtZXNzYWdlIik7CiAgICAgICAgfQogICAgfQogICAgcHViIGZuIGJsb2NraW5nX3NlbmQoJm11dCBzZWxmLCBtZXNzYWdlOiBNZXNzYWdlKSB7CiAgICAgICAgaWYgc2VsZi5zZW5kZXIuYmxvY2tpbmdfc2VuZChtZXNzYWdlKS5pc19lcnIoKSB7CiAgICAgICAgICAgIHdhcm4hKHBhcmVudDogJnNlbGYuc3BhbiwgImZhaWxlZCB0byBzZW5kIG1lc3NhZ2UiKTsKICAgICAgICB9CiAgICB9Cn0KCnB1YiBzdHJ1Y3QgSXBjUmVjZWl2ZXI8TWVzc2FnZT4gewogICAgZXJyb3JlZDogYm9vbCwKICAgIHJlYWQ6IExpbmVzPEJveDxkeW4gQXN5bmNCdWZSZWFkICsgU2VuZCArIFVucGluPj4sCiAgICBwaGFudG9tOiBQaGFudG9tRGF0YTxNZXNzYWdlPiwKICAgIHNwYW46IFNwYW4sCn0KCmltcGw8TWVzc2FnZT4gSXBjUmVjZWl2ZXI8TWVzc2FnZT4Kd2hlcmUKICAgIE1lc3NhZ2U6IERlc2VyaWFsaXplT3duZWQsCnsKICAgIHB1YiBhc3luYyBmbiByZWN2KCZtdXQgc2VsZikgLT4gT3B0aW9uPE1lc3NhZ2U+IHsKICAgICAgICBpZiBzZWxmLmVycm9yZWQgewogICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICB9CgogICAgICAgIGxldCBsaW5lID0gbWF0Y2ggc2VsZi5yZWFkLm5leHRfbGluZSgpLmF3YWl0IHsKICAgICAgICAgICAgT2soU29tZSh2YWx1ZSkpID0+IHZhbHVlLAogICAgICAgICAgICBPayhOb25lKSA9PiByZXR1cm4gTm9uZSwKICAgICAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgc2VsZi5lcnJvcmVkID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICB3YXJuIShwYXJlbnQ6ICZzZWxmLnNwYW4sICJmYWlsZWQgdG8gcmVhZCBuZXh0IGxpbmUge2Vycjo/fSIpOwoKICAgICAgICAgICAgICAgIHJldHVybiBOb25lOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgdHJhY2UhKHBhcmVudDogJnNlbGYuc3BhbiwgInJlY2VpdmVkIHtsaW5lfSIpOwoKICAgICAgICBtYXRjaCBzZXJkZV9qc29uOjpmcm9tX3N0cjo6PE1lc3NhZ2U+KCZsaW5lKSB7CiAgICAgICAgICAgIE9rKHZhbHVlKSA9PiBTb21lKHZhbHVlKSwKICAgICAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgd2FybiEocGFyZW50OiAmc2VsZi5zcGFuLCAiZmFpbGVkIHRvIGRlc2VyaWFsaXplIG1lc3NhZ2U6IHtlcnI6P30iKTsKCiAgICAgICAgICAgICAgICBOb25lCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0K"},{"path":"common/src/lib.rs","sha256":"93edf2df39c0f869a657e555a31d4a0bf550c7e842ebbc6ac6466839054d12b4","contentBase64":"dXNlIGxvZzo6d2FybjsKdXNlIG1vb25saWdodF9jb21tb246OnN0cmVhbTo6dmlkZW86OlZpZGVvRm9ybWF0czsKdXNlIHNlcmRlOjpTZXJpYWxpemU7Cgp1c2UgY3JhdGU6OmFwaV9iaW5kaW5nczo6e1N0cmVhbVBlcm1pc3Npb25zLCBTdHJlYW1TZXR0aW5nc307CgpwdWIgbW9kIGFwaV9iaW5kaW5nczsKcHViIG1vZCBhcGlfYmluZGluZ3NfZXh0OwpwdWIgbW9kIGNvbmZpZzsKcHViIG1vZCBpcGM7CgovLy8gQXBwbGllcyB0aGUgcGVybWlzc2lvbnMgLyByZXN0cmljdGlvbnMgdG8gdGhlIGN1cnJlbnQgc2V0dGluZ3Mgb2YgdGhlIHVzZXIuCi8vLyBUaGlzIHdvbid0IGVycm9yLCBpdCdsbCBqdXN0IG92ZXJ3cml0ZSBpdCwgYmVjYXVzZSB0aGUgR1VJIHNob3VsZCBpbmRpY2F0ZSB0aG9zZSByZXN0cmljdGlvbnMuCnB1YiBmbiBhcHBseV9wZXJtaXNzaW9uc190b19zZXR0aW5ncygKICAgIHBlcm1pc3Npb25zOiAmU3RyZWFtUGVybWlzc2lvbnMsCiAgICBzZXR0aW5nczogJm11dCBTdHJlYW1TZXR0aW5ncywKKSB7CiAgICBsZXQgU3RyZWFtUGVybWlzc2lvbnMgewogICAgICAgIGFsbG93X2FkZF9ob3N0czogXywKICAgICAgICBtYXhpbXVtX2JpdHJhdGVfa2JwcywKICAgICAgICBhbGxvd19jb2RlY19oMjY0LAogICAgICAgIGFsbG93X2NvZGVjX2gyNjUsCiAgICAgICAgYWxsb3dfY29kZWNfYXYxLAogICAgICAgIGFsbG93X2hkciwKICAgICAgICBhbGxvd190cmFuc3BvcnRfd2VicnRjOiBfLAogICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJzb2NrZXRzOiBfLAogICAgfSA9IHBlcm1pc3Npb25zOwoKICAgIGlmIGxldCBTb21lKG1heGltdW1fYml0cmF0ZSkgPSBtYXhpbXVtX2JpdHJhdGVfa2JwcwogICAgICAgICYmIHNldHRpbmdzLmJpdHJhdGVfa2JwcyA+ICptYXhpbXVtX2JpdHJhdGUKICAgIHsKICAgICAgICBzZXR0aW5ncy5iaXRyYXRlX2ticHMgPSAqbWF4aW11bV9iaXRyYXRlOwogICAgfQoKICAgIGxldCBtdXQgc3VwcG9ydGVkX2NvZGVjcyA9IFZpZGVvRm9ybWF0czo6ZnJvbV9iaXRzX3RydW5jYXRlKHNldHRpbmdzLnN1cHBvcnRlZF9jb2RlY3MpOwogICAgaWYgIWFsbG93X2NvZGVjX2gyNjQgewogICAgICAgIHN1cHBvcnRlZF9jb2RlY3MgJj0gIVZpZGVvRm9ybWF0czo6TUFTS19IMjY0OwogICAgfQogICAgaWYgIWFsbG93X2NvZGVjX2gyNjUgewogICAgICAgIHN1cHBvcnRlZF9jb2RlY3MgJj0gIVZpZGVvRm9ybWF0czo6TUFTS19IMjY1OwogICAgfQogICAgaWYgIWFsbG93X2NvZGVjX2F2MSB7CiAgICAgICAgc3VwcG9ydGVkX2NvZGVjcyAmPSAhVmlkZW9Gb3JtYXRzOjpNQVNLX0FWMTsKICAgIH0KICAgIHNldHRpbmdzLnN1cHBvcnRlZF9jb2RlY3MgPSBzdXBwb3J0ZWRfY29kZWNzLmJpdHMoKTsKCiAgICBpZiAhYWxsb3dfaGRyIHsKICAgICAgICBzZXR0aW5ncy5oZHIgPSBmYWxzZTsKICAgIH0KCiAgICAvLyBUcmFuc3BvcnQgcmVzdHJpY3Rpb25zIGFyZSBoYW5kbGVkIGluIHRoZSBzdHJlYW1lcgp9CgpwdWIgZm4gc2VyaWFsaXplX2pzb248VD4obWVzc2FnZTogJlQpIC0+IE9wdGlvbjxTdHJpbmc+CndoZXJlCiAgICBUOiBTZXJpYWxpemUsCnsKICAgIGxldCBPayhqc29uKSA9IHNlcmRlX2pzb246OnRvX3N0cmluZygmbWVzc2FnZSkgZWxzZSB7CiAgICAgICAgd2FybiEoIltTdHJlYW1dOiBmYWlsZWQgdG8gc2VyaWFsaXplIHRvIGpzb24iKTsKICAgICAgICByZXR1cm4gTm9uZTsKICAgIH07CgogICAgU29tZShqc29uKQp9Cg=="},{"path":"docker/.gitattributes","sha256":"68696393d19edc4d8e90a08494d79b2010ed7ad9ab1958bc67241285266d53b9","contentBase64":"ZW50cnlwb2ludC5zaCB0ZXh0IGVvbD1sZg=="},{"path":"docker/.gitignore","sha256":"9f4a9be176292ee612f2f12bee35be0e8fa4dd0de617cdb1675b562e9ca6045e","contentBase64":"Ci5lbnY="},{"path":"docker/Dockerfile","sha256":"554ad552ced2f3b57eb634955cdb0bb241ee377c8b9f46a13b7b2a976839e010","contentBase64":"RlJPTSB1YnVudHU6MjQuMDQKCkVOViBNT09OTElHSFRfV0VCX1BBVEg9L21vb25saWdodC13ZWIKCkFSRyBHSUQ9OTk5CkFSRyBVSUQ9OTk5CgojIENyZWF0ZSBhIG5vbi1yb290IHVzZXIKUlVOIGdyb3VwYWRkIC1nICR7R0lEfSAtciBtb29ubGlnaHQgJiYgdXNlcmFkZCAtdSAke1VJRH0gLXIgLWcgbW9vbmxpZ2h0IC1kICR7TU9PTkxJR0hUX1dFQl9QQVRIfSAtcyAvc2Jpbi9ub2xvZ2luIG1vb25saWdodAoKIyBDcmVhdGUgLyBHbyB0byBhcHAgZGlyZWN0b3J5CldPUktESVIgJHtNT09OTElHSFRfV0VCX1BBVEh9CgojIERvd25sb2FkIHRoZSByZWxlYXNlIGJpbmFyeQpBREQgaHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvbW9vbmxpZ2h0LXdlYi1zdHJlYW0vcmVsZWFzZXMvbGF0ZXN0L2Rvd25sb2FkL21vb25saWdodC13ZWIteDg2XzY0LXVua25vd24tbGludXgtZ251LnRhci5neiAvdG1wL2FwcC50YXIuZ3oKCiMgRXh0cmFjdCBpdCwgY3JlYXRlIHNlcnZlciBkaXJlY3RvcnksIGFuZCBjaGFuZ2Ugb3duZXJzaGlwClJVTiB0YXIgLXh2emYgL3RtcC9hcHAudGFyLmd6IC0tc3RyaXAtY29tcG9uZW50cz0xIC1DICR7TU9PTkxJR0hUX1dFQl9QQVRIfS8gJiYgXAogICAgcm0gL3RtcC9hcHAudGFyLmd6ICYmIFwKICAgIG1rZGlyIC1wICR7TU9PTkxJR0hUX1dFQl9QQVRIfS9zZXJ2ZXIgJiYgXAogICAgY2hvd24gLVIgbW9vbmxpZ2h0Om1vb25saWdodCAke01PT05MSUdIVF9XRUJfUEFUSH0gJiYgXAogICAgY2htb2QgK3ggJHtNT09OTElHSFRfV0VCX1BBVEh9L3dlYi1zZXJ2ZXIgJiYgXAogICAgY2htb2QgK3ggJHtNT09OTElHSFRfV0VCX1BBVEh9L3N0cmVhbWVyCgojIENyZWF0ZSBhIHZvbHVtZSB3aXRoIHRoZSBjb25maWcuanNvbiBhbmQgZGF0YS5qc29uClZPTFVNRSAke01PT05MSUdIVF9XRUJfUEFUSH0vc2VydmVyCgojIEV4cG9zZSB0aGUgcG9ydCAoYWRqdXN0IGlmIHlvdSBjaGFuZ2VkIGl0KQpFTlYgV0VCUlRDX1BPUlRfUkFOR0U9NDAwMDA6NDAxMDAKRVhQT1NFIDgwODAgNDAwMDAtNDAxMDAvdWRwCgojIENyZWF0ZSBhbiBlbnRyeXBvaW50CkNPUFkgZW50cnlwb2ludC5zaCAvZW50cnlwb2ludC5zaApSVU4gY2hvd24gbW9vbmxpZ2h0Om1vb25saWdodCAvZW50cnlwb2ludC5zaCAmJiBcCiAgICBjaG1vZCAreCAvZW50cnlwb2ludC5zaAoKIyBTd2l0Y2ggdG8gdGhlIG5vbi1yb290IHVzZXIKVVNFUiBtb29ubGlnaHQKCiMgUnVuIHRoZSBiaW5hcnkKRU5UUllQT0lOVCBbIi9lbnRyeXBvaW50LnNoIl0K"},{"path":"docker/Dockerfile.action","sha256":"4e0c715bbaa785c4badc98607856d8dcdd219f55ef7f65b9cf2c48cfecc5a29d","contentBase64":"RlJPTSB1YnVudHU6MjQuMDQKCkVOViBNT09OTElHSFRfV0VCX1BBVEg9L21vb25saWdodC13ZWIKCiMgQ3JlYXRlIGEgbm9uLXJvb3QgdXNlcgpSVU4gZ3JvdXBhZGQgLXIgbW9vbmxpZ2h0ICYmIHVzZXJhZGQgLXIgLWcgbW9vbmxpZ2h0IC1kICR7TU9PTkxJR0hUX1dFQl9QQVRIfSAtcyAvc2Jpbi9ub2xvZ2luIG1vb25saWdodAoKIyBDcmVhdGUgLyBHbyB0byBhcHAgZGlyZWN0b3J5CldPUktESVIgJHtNT09OTElHSFRfV0VCX1BBVEh9CgojIENvcHkgcHJlYnVpbHQgYXJ0aWZhY3RzCkNPUFkgbW9vbmxpZ2h0LXdlYi8gJHtNT09OTElHSFRfV0VCX1BBVEh9LwoKIyBNYXJrIGV4ZWN1dGFibGVzIGFzIGV4ZWN1dGFibGUsIGNyZWF0ZSBzZXJ2ZXIgZGlyZWN0b3J5LCBhbmQgY2hhbmdlIG93bmVyc2hpcApSVU4gY2htb2QgK3ggJHtNT09OTElHSFRfV0VCX1BBVEh9L3N0cmVhbWVyICR7TU9PTkxJR0hUX1dFQl9QQVRIfS93ZWItc2VydmVyICYmIFwKICAgIG1rZGlyIC1wICR7TU9PTkxJR0hUX1dFQl9QQVRIfS9zZXJ2ZXIgJiYgXAogICAgY2hvd24gLVIgbW9vbmxpZ2h0Om1vb25saWdodCAke01PT05MSUdIVF9XRUJfUEFUSH0KCiMgQ3JlYXRlIGEgdm9sdW1lIHdpdGggdGhlIGNvbmZpZy5qc29uIGFuZCBkYXRhLmpzb24KVk9MVU1FICR7TU9PTkxJR0hUX1dFQl9QQVRIfS9zZXJ2ZXIKCiMgRXhwb3NlIHRoZSBwb3J0IChhZGp1c3QgaWYgeW91IGNoYW5nZWQgaXQpCkVOViBXRUJSVENfUE9SVF9SQU5HRT00MDAwMDo0MDEwMApFWFBPU0UgODA4MCA0MDAwMC00MDEwMC91ZHAKCiMgQ3JlYXRlIGFuIGVudHJ5cG9pbnQKQ09QWSBlbnRyeXBvaW50LnNoIC9lbnRyeXBvaW50LnNoClJVTiBjaG1vZCAreCAvZW50cnlwb2ludC5zaAoKIyBTd2l0Y2ggdG8gdGhlIG5vbi1yb290IHVzZXIKVVNFUiBtb29ubGlnaHQKCiMgUnVuIHRoZSBiaW5hcnkKRU5UUllQT0lOVCBbIi9lbnRyeXBvaW50LnNoIl0K"},{"path":"docker/Dockerfile.prerelease","sha256":"6e610b651c90b01f834c3ebb2e60e21757dabb7e44b218840ed8b8f6e3516081","contentBase64":"RlJPTSB1YnVudHU6MjQuMDQKCkVOViBNT09OTElHSFRfV0VCX1BBVEg9L21vb25saWdodC13ZWIKCiMgQ3JlYXRlIGEgbm9uLXJvb3QgdXNlcgpSVU4gZ3JvdXBhZGQgLXIgbW9vbmxpZ2h0ICYmIHVzZXJhZGQgLXIgLWcgbW9vbmxpZ2h0IC1kICR7TU9PTkxJR0hUX1dFQl9QQVRIfSAtcyAvc2Jpbi9ub2xvZ2luIG1vb25saWdodAoKIyBDcmVhdGUgLyBHbyB0byBhcHAgZGlyZWN0b3J5CldPUktESVIgJHtNT09OTElHSFRfV0VCX1BBVEh9CgojIERvd25sb2FkIHRoZSByZWxlYXNlIGJpbmFyeQpBREQgaHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvbW9vbmxpZ2h0LXdlYi1zdHJlYW0vcmVsZWFzZXMvZG93bmxvYWQvdjIuMS1wcmVyZWxlYXNlLjEvbW9vbmxpZ2h0LXdlYi14ODZfNjQtdW5rbm93bi1saW51eC1nbnUudGFyLmd6IC90bXAvYXBwLnRhci5negoKIyBFeHRyYWN0IGl0LCBjcmVhdGUgc2VydmVyIGRpcmVjdG9yeSwgYW5kIGNoYW5nZSBvd25lcnNoaXAKUlVOIHRhciAteHZ6ZiAvdG1wL2FwcC50YXIuZ3ogLS1zdHJpcC1jb21wb25lbnRzPTEgLUMgJHtNT09OTElHSFRfV0VCX1BBVEh9LyAmJiBcCiAgICBybSAvdG1wL2FwcC50YXIuZ3ogJiYgXAogICAgbWtkaXIgLXAgJHtNT09OTElHSFRfV0VCX1BBVEh9L3NlcnZlciAmJiBcCiAgICBjaG93biAtUiBtb29ubGlnaHQ6bW9vbmxpZ2h0ICR7TU9PTkxJR0hUX1dFQl9QQVRIfQoKIyBDcmVhdGUgYSB2b2x1bWUgd2l0aCB0aGUgY29uZmlnLmpzb24gYW5kIGRhdGEuanNvbgpWT0xVTUUgJHtNT09OTElHSFRfV0VCX1BBVEh9L3NlcnZlcgoKIyBFeHBvc2UgdGhlIHBvcnQgKGFkanVzdCBpZiB5b3UgY2hhbmdlZCBpdCkKRU5WIFdFQlJUQ19QT1JUX1JBTkdFPTQwMDAwOjQwMTAwCkVYUE9TRSA4MDgwIDQwMDAwLTQwMTAwL3VkcAoKIyBDcmVhdGUgYW4gZW50cnlwb2ludApDT1BZIGVudHJ5cG9pbnQuc2ggL2VudHJ5cG9pbnQuc2gKUlVOIGNobW9kICt4IC9lbnRyeXBvaW50LnNoCgojIFN3aXRjaCB0byB0aGUgbm9uLXJvb3QgdXNlcgpVU0VSIG1vb25saWdodAoKIyBSdW4gdGhlIGJpbmFyeQpFTlRSWVBPSU5UIFsiL2VudHJ5cG9pbnQuc2giXQo="},{"path":"docker/README.md","sha256":"af8f852a002a2ee5cc2e48741077c50db410948e730304dbfc2c7dd61441fc4f","contentBase64":"CiMgRG9ja2VyIGZvciBNb29ubGlnaHQtV2ViCgpSdW4gd2l0aApgYGBzaApkb2NrZXIgcnVuIC1kIC1wIDgwODA6ODA4MCAtcCA0MDAwMC00MDEwMDo0MDAwMC00MDEwMC91ZHAgLWUgV0VCUlRDX05BVF8xVE8xX0hPU1Q9WU9VUl9MQU5fSVAgbXJjcmVhdGl2MzAwMS9tb29ubGlnaHQtd2ViLXN0cmVhbTpsYXRlc3QKYGBgCmFuZCByZXBsYWNlIGBZT1VSX0xBTl9JUGAgd2l0aCB0aGUgZGV2aWNlIGlwIGFkZHJlc3Mgb2YgdGhlIGxvY2FsIG5ldHdvcmsuCgojIFJ1bm5pbmcgd2l0aCBhIFRVUk4gc2VydmVyCgoxLiBDb3B5IHRoZSBbZG9ja2VyLWNvbXBvc2Uud2l0aC10dXJuLnlhbWxdKC4vZG9ja2VyLWNvbXBvc2Uud2l0aC10dXJuLnlhbWwpIGludG8geW91ciBvd24gYGRvY2tlci1jb21wb3NlLnlhbWxgLgoKMi4gQ3JlYXRlIGEgbmV3IGAuZW52YCBmaWxlIHdpdGg6CmBgYGRvdGVudgpNTF9XRUJfVkVSU0lPTj1sYXRlc3QKCkxBTl9BRERSRVNTPTEyNy4wLjAuMSAjIENoYW5nZSB0aGlzIHRvIHRoZSBkZXZpY2UgaXAgYWRkcmVzcyBvZiB0aGUgbG9jYWwgbmV0d29yay4KClRVUk5fVVJMPW15dHVybi5jb20KVFVSTl9VU0VSTkFNRT1teXJhbmRvbXVzZXIKVFVSTl9DUkVERU5USUFMPW15cmFuZG9tcGFzcwpgYGAKCjMuIFJ1biB3aXRoIGRvY2tlci1jb21wb3NlCmBgYHNoCmRvY2tlciBjb21wb3NlIHVwCmBgYA=="},{"path":"docker/docker-compose.with-turn.yaml","sha256":"1dab5fcdd433c0c83d29eb870aa1cecef86a82f0fde6f485d0b1165d39325640","contentBase64":"dmVyc2lvbjogIjMuOSIKCnNlcnZpY2VzOgogIG1vb25saWdodC13ZWI6CiAgICBpbWFnZTogbXJjcmVhdGl2MzAwMS9tb29ubGlnaHQtd2ViLXN0cmVhbToke01MX1dFQl9WRVJTSU9OfQogICAgY29udGFpbmVyX25hbWU6IG1vb25saWdodC13ZWIKICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkCiAgICBkZXBlbmRzX29uOgogICAgICAtIHR1cm4KICAgIHBvcnRzOgogICAgICAtICI4MDgwOjgwODAiCiAgICAgIC0gIjQwMDAwLTQwMTAwOjQwMDAwLTQwMTAwL3VkcCIKICAgIGVudmlyb25tZW50OgogICAgICAtIFdFQlJUQ19OQVRfMVRPMV9IT1NUPSR7TEFOX0FERFJFU1N9CiAgICAgIC0gV0VCUlRDX0lDRV9TRVJWRVJfMF9VUkw9dHVybjoxMjcuMC4wLjE6MzQ3OD90cmFuc3BvcnQ9dWRwICMgbG9jYWxob3N0LCBiZWNhdXNlIHdlJ3JlIGhvc3RpbmcgdGhlIHR1cm4KICAgICAgLSBXRUJSVENfSUNFX1NFUlZFUl8wX1VTRVJOQU1FPSR7VFVSTl9VU0VSTkFNRX0KICAgICAgLSBXRUJSVENfSUNFX1NFUlZFUl8wX0NSRURFTlRJQUw9JHtUVVJOX0NSRURFTlRJQUx9CiAgICAgIC0gV0VCUlRDX0lDRV9TRVJWRVJfMV9VUkw9dHVybjoke1RVUk5fVVJMfTozNDc4P3RyYW5zcG9ydD11ZHAgIyAzNDc4IHVkcAogICAgICAtIFdFQlJUQ19JQ0VfU0VSVkVSXzFfVVNFUk5BTUU9JHtUVVJOX1VTRVJOQU1FfQogICAgICAtIFdFQlJUQ19JQ0VfU0VSVkVSXzFfQ1JFREVOVElBTD0ke1RVUk5fQ1JFREVOVElBTH0KICAgICAgLSBXRUJSVENfSUNFX1NFUlZFUl8yX1VSTD10dXJuOiR7VFVSTl9VUkx9OjM0Nzg/dHJhbnNwb3J0PXRjcCAjIDM0NzggdGNwCiAgICAgIC0gV0VCUlRDX0lDRV9TRVJWRVJfMl9VU0VSTkFNRT0ke1RVUk5fVVNFUk5BTUV9CiAgICAgIC0gV0VCUlRDX0lDRV9TRVJWRVJfMl9DUkVERU5USUFMPSR7VFVSTl9DUkVERU5USUFMfQogICAgICAtIFdFQlJUQ19JQ0VfU0VSVkVSXzNfVVJMPXR1cm46JHtUVVJOX1VSTH06NTM0OT90cmFuc3BvcnQ9dGNwICMgNTM0OSB0Y3AKICAgICAgLSBXRUJSVENfSUNFX1NFUlZFUl8zX1VTRVJOQU1FPSR7VFVSTl9VU0VSTkFNRX0KICAgICAgLSBXRUJSVENfSUNFX1NFUlZFUl8zX0NSRURFTlRJQUw9JHtUVVJOX0NSRURFTlRJQUx9CiAgICAgIC0gV0VCUlRDX0lDRV9TRVJWRVJfNF9VUkw9dHVybjoke1RVUk5fVVJMfTo0NDM/dHJhbnNwb3J0PXRjcCAjIDQ0MyB0Y3AKICAgICAgLSBXRUJSVENfSUNFX1NFUlZFUl80X1VTRVJOQU1FPSR7VFVSTl9VU0VSTkFNRX0KICAgICAgLSBXRUJSVENfSUNFX1NFUlZFUl80X0NSRURFTlRJQUw9JHtUVVJOX0NSRURFTlRJQUx9CiAgICB2b2x1bWVzOgogICAgICAtIG1vb25saWdodC1zZXJ2ZXI6L21vb25saWdodC13ZWIvc2VydmVyCgogIHR1cm46CiAgICBpbWFnZTogY290dXJuL2NvdHVybjpsYXRlc3QKICAgIGNvbnRhaW5lcl9uYW1lOiB0dXJuCiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZAogICAgY29tbWFuZDogPgogICAgICAtLWxvZy1maWxlPXN0ZG91dCAtLWV4dGVybmFsLWlwPSQoZGV0ZWN0LWV4dGVybmFsLWlwKSAtLXJlYWxtPW15cmVhbG0gIC0tbHQtY3JlZC1tZWNoIC0tdXNlcj0ke1RVUk5fVVNFUk5BTUV9OiR7VFVSTl9DUkVERU5USUFMfSAtLXZlcmJvc2UgLS1taW4tcG9ydD01NTAwMCAtLW1heC1wb3J0PTU1MTAwCiAgICBwb3J0czoKICAgICAgLSAiMzQ3ODozNDc4L3VkcCIKICAgICAgLSAiMzQ3ODozNDc4L3RjcCIKICAgICAgLSAiNTM0OTo1MzQ5L3RjcCIKICAgICAgLSAiNDQzOjUzNDkvdGNwIiAjIGFsbG93IFRVUk4tVExTIG92ZXIgSFRUUFMgcG9ydAogICAgICAtICI1NTAwMC01NTEwMDo1NTAwMC01NTEwMC91ZHAiCiAgICAgIC0gIjU1MDAwLTU1MTAwOjU1MDAwLTU1MTAwL3RjcCIKCnZvbHVtZXM6CiAgbW9vbmxpZ2h0LXNlcnZlcjoKICAgIG5hbWU6IG1vb25saWdodC1zZXJ2ZXIK"},{"path":"docker/docker-compose.yaml","sha256":"951ea0119b9b6d720f68716a90dd3d2d49d0f2a6001d7ce93b95cfca9dc3ebee","contentBase64":"dmVyc2lvbjogIjMuOSIKCnNlcnZpY2VzOgogIG1vb25saWdodC13ZWI6CiAgICBpbWFnZTogbXJjcmVhdGl2MzAwMS9tb29ubGlnaHQtd2ViLXN0cmVhbTpsYXRlc3QKICAgIGNvbnRhaW5lcl9uYW1lOiBtb29ubGlnaHQtd2ViCiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZAogICAgcG9ydHM6CiAgICAgIC0gIjgwODA6ODA4MCIKICAgICAgLSAiNDAwMDAtNDAxMDA6NDAwMDAtNDAxMDAvdWRwIgogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gV0VCUlRDX05BVF8xVE8xX0hPU1Q9MTI3LjAuMC4xICMgU2V0IHRoaXMgdG8geW91ciBMQU4gaXAgb3IgcHVibGljIGlwCiAgICB2b2x1bWVzOgogICAgICAtIG1vb25saWdodC1zZXJ2ZXI6L21vb25saWdodC13ZWIvc2VydmVyCgp2b2x1bWVzOgogIG1vb25saWdodC1zZXJ2ZXI6CiAgICBuYW1lOiBtb29ubGlnaHQtc2VydmVyCg=="},{"path":"docker/entrypoint.sh","sha256":"868fba0f9be931622175b09a389d237738625e149fbe8ff6313200a493fe2d88","contentBase64":"IyEvYmluL3NoCnNldCAtZQoKIyBNYWtlIHN1cmUgdGhlIHNlcnZlciBmb2xkZXIgZXhpc3RzCm1rZGlyIC1wICR7TU9PTkxJR0hUX1dFQl9QQVRIfS9zZXJ2ZXIKCiMgUnVuIG1haW4gYXBwbGljYXRpb24KZXhlYyAke01PT05MSUdIVF9XRUJfUEFUSH0vd2ViLXNlcnZlciAiJEAi"},{"path":"generate_certificate.py","sha256":"014672ccd45b52ef8261ebe375e2979db4259693f61da48d4109bc23924d1883","contentBase64":"ZnJvbSBPcGVuU1NMIGltcG9ydCBjcnlwdG8sIFNTTApmcm9tIHNvY2tldCBpbXBvcnQgZ2V0aG9zdG5hbWUKZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludApmcm9tIHRpbWUgaW1wb3J0IGdtdGltZSwgbWt0aW1lCmltcG9ydCBvcwoKZGVmIGNyZWF0ZV9zZWxmX3NpZ25lZF9jZXJ0KGtleV9wYXRoLCBjZXJ0X3BhdGgpOgogICAgICAgICAKICAgICMgY3JlYXRlIGEga2V5IHBhaXIKICAgIGsgPSBjcnlwdG8uUEtleSgpCiAgICBrLmdlbmVyYXRlX2tleShjcnlwdG8uVFlQRV9SU0EsIDIwNDgpCgogICAgIyBjcmVhdGUgYSBzZWxmLXNpZ25lZCBjZXJ0CiAgICBjZXJ0ID0gY3J5cHRvLlg1MDkoKQogICAgY2VydC5nZXRfc3ViamVjdCgpLkMgPSAiVUsiCiAgICBjZXJ0LmdldF9zdWJqZWN0KCkuU1QgPSAiTG9uZG9uIgogICAgY2VydC5nZXRfc3ViamVjdCgpLkwgPSAiTG9uZG9uIgogICAgY2VydC5nZXRfc3ViamVjdCgpLk8gPSAiRHVtbXkgQ29tcGFueSBMdGQiCiAgICBjZXJ0LmdldF9zdWJqZWN0KCkuT1UgPSAiRHVtbXkgQ29tcGFueSBMdGQiCiAgICBjZXJ0LmdldF9zdWJqZWN0KCkuQ04gPSBnZXRob3N0bmFtZSgpCiAgICBjZXJ0LnNldF9zZXJpYWxfbnVtYmVyKDEwMDApCiAgICBjZXJ0LmdtdGltZV9hZGpfbm90QmVmb3JlKDApCiAgICBjZXJ0LmdtdGltZV9hZGpfbm90QWZ0ZXIoMTAqMzY1KjI0KjYwKjYwKQogICAgY2VydC5zZXRfaXNzdWVyKGNlcnQuZ2V0X3N1YmplY3QoKSkKICAgIGNlcnQuc2V0X3B1YmtleShrKQogICAgY2VydC5zaWduKGssICdzaGExJykKCiAgICBvcGVuKGNlcnRfcGF0aCwgIndiIikud3JpdGUoY3J5cHRvLmR1bXBfY2VydGlmaWNhdGUoY3J5cHRvLkZJTEVUWVBFX1BFTSwgY2VydCkpCiAgICBvcGVuKGtleV9wYXRoLCAid2IiKS53cml0ZShjcnlwdG8uZHVtcF9wcml2YXRla2V5KGNyeXB0by5GSUxFVFlQRV9QRU0sIGspKQoKb3MubWFrZWRpcnMoIi4vc2VydmVyIiwgZXhpc3Rfb2s9VHJ1ZSkKCmNyZWF0ZV9zZWxmX3NpZ25lZF9jZXJ0KCIuL3NlcnZlci9rZXkucGVtIiwgIi4vc2VydmVyL2NlcnQucGVtIik="},{"path":"package-lock.json","sha256":"efb0f4ff8b8b6b6b71eb2573d6a25f6976d6f25121cb13fdecf290e984bffa11","contentBase64":"ewogICJuYW1lIjogIm1vb25saWdodC13ZWIiLAogICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAibG9ja2ZpbGVWZXJzaW9uIjogMywKICAicmVxdWlyZXMiOiB0cnVlLAogICJwYWNrYWdlcyI6IHsKICAgICIiOiB7CiAgICAgICJuYW1lIjogIm1vb25saWdodC13ZWIiLAogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJsaWNlbnNlIjogIkdQTC0zLjAtb3ItbGF0ZXIiLAogICAgICAiZGV2RGVwZW5kZW5jaWVzIjogewogICAgICAgICJjcHgiOiAiMS4yLjEiLAogICAgICAgICJucG0td2F0Y2giOiAiMC4xMy4wIiwKICAgICAgICAidHlwZXNjcmlwdCI6ICI1LjkuMyIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvYW55bWF0Y2giOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMy4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2FueW1hdGNoLy0vYW55bWF0Y2gtMS4zLjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItMFhOYXlDOGxUSFEyT0k4YWxqTkNOM3NTeDZoc3IvMStybGNEQW90WEpSN0Mxb1paSENOc2ZwYkt3TWpSQTNVcWI1dEYxUmFlMm9sb1RyNHhwcStXakE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJtaWNyb21hdGNoIjogIl4yLjEuNSIsCiAgICAgICAgIm5vcm1hbGl6ZS1wYXRoIjogIl4yLjAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvYXJyLWRpZmYiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Fyci1kaWZmLy0vYXJyLWRpZmYtMi4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItZHRYVFZNa2g2VmtFRUE3T2hYbk4xRWNiOGFBR0ZkWjFMRnh0T0NvcWo0cWt5T0pNdDcrcXM2QWhkeTZwL05RQ1BZc1JTWFhpdmhTQi9KNUU5am1ZS0E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJhcnItZmxhdHRlbiI6ICJeMS4wLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9hcnItZmxhdHRlbiI6IHsKICAgICAgInZlcnNpb24iOiAiMS4xLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYXJyLWZsYXR0ZW4vLS9hcnItZmxhdHRlbi0xLjEuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1MM2hLVjVSL3A1bzgxUjdPMDJJR253cERta3A2RTk4MlhodGJ1d1NlM080cU90TU1NdG9kaWNBU0ExQ255MlUrYUNYY05wbWwrbTRkUHN2c0ozamF0Zz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9hcnItdW5pb24iOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMS4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Fyci11bmlvbi8tL2Fyci11bmlvbi0zLjEuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1zS3B5ZUVSWjAydjFGZUNaVDhscmZKcTV1NmdvSEN0cFRBelB3SlllN2M4U1BGT2JvTmpOZzF2ejJMNFZUbjlUNFBReEV4MTNUYlhMbVlVY1M2VWc3UT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9hcnJheS11bmlxdWUiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjAuMi4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2FycmF5LXVuaXF1ZS8tL2FycmF5LXVuaXF1ZS0wLjIuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1HMm41Ykc1ZlNVQ3Buc1h6NCs4RlVrWXNHUGtOZkxuOVl2UzY2VTVxYlRJWEkyWW5ubG80Qmk0MmJXditvbUtVQ3F6K2VqemZDbHduZTBhbEpXSlBoZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9hc3NpZ24tc3ltYm9scyI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYXNzaWduLXN5bWJvbHMvLS9hc3NpZ24tc3ltYm9scy0xLjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1RK0pDN1dodThIaG1UZEJwaC9UcTU5SW9SdG95NktBbTV6elB2MDBXZHVqWDgybGJBTDhLN1dWam5lN3ZkQ3NBbWJGNEFZYURPUHlPM2swa2w4cUlydz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9hc3luYy1lYWNoIjogewogICAgICAidmVyc2lvbiI6ICIxLjAuNiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9hc3luYy1lYWNoLy0vYXN5bmMtZWFjaC0xLjAuNi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1jNjQ2akgxYXZ4cithVnBuZFZNZUFmWXc3d0FhNmlkdWZybE4zTFBBNFBtS1MwUUVHcDZQSUM5bnd6MFdRa2t2QkdBTUVraTNwRmR0eGFGMzlKOXZ2Zz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJmdW5kaW5nIjogWwogICAgICAgIHsKICAgICAgICAgICJ0eXBlIjogImluZGl2aWR1YWwiLAogICAgICAgICAgInVybCI6ICJodHRwczovL3BhdWxtaWxsci5jb20vZnVuZGluZy8iCiAgICAgICAgfQogICAgICBdCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9hdG9iIjogewogICAgICAidmVyc2lvbiI6ICIyLjEuMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9hdG9iLy0vYXRvYi0yLjEuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1XbTZ1a29hT0dKaS83M3AvY2wyR3ZMalRJNUpNMWsvTzE0aXNENzNZTUw4U3RySC83L2xSRmdtZzhuSUNaZ0QzYlpadmp3Q0d4dE1PRDN3V05BdThjZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJiaW4iOiB7CiAgICAgICAgImF0b2IiOiAiYmluL2F0b2IuanMiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49IDQuNS4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9iYWJlbC1ydW50aW1lIjogewogICAgICAidmVyc2lvbiI6ICI1LjguMzgiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYmFiZWwtcnVudGltZS8tL2JhYmVsLXJ1bnRpbWUtNS44LjM4LnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUtwZ29BOFZFL3BNbU5Dcm5FZWVYcUZHMjRUSUgxMVozWmFpbUloSldzaW44RWJmWnkzV3pGS1VUSWFuMTBaSURnUlZ2aTlFa0xicnVKRWxKQzlkUmxnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiY29yZS1qcyI6ICJeMS4wLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2JhbGFuY2VkLW1hdGNoIjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9iYWxhbmNlZC1tYXRjaC8tL2JhbGFuY2VkLW1hdGNoLTEuMC4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTNvU2VVTzBUTVY2N2hOMUFtYlhzSzR5YXFVN3RqaUhsYnhSRFpPcEgwS1c5K0NlWDRiUkFhWDBBbnh0MHR4Mk1ycFJwV3dRYVB3SWxJU0VKaFlVNVB3PT0iLAogICAgICAiZGV2IjogdHJ1ZQogICAgfSwKICAgICJub2RlX21vZHVsZXMvYmFzZSI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xMS4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Jhc2UvLS9iYXNlLTAuMTEuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi01VDZQNHhQZ3BwMFlERnZTV3dFWjROb0UzYU00UUJRWER6bVZicmFDa0ZqOHpITSttYmE4U3lxQjVEYlpXeVI3bVlIbzZZN0JkUW8zTW9BNG0wVGVRZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImNhY2hlLWJhc2UiOiAiXjEuMC4xIiwKICAgICAgICAiY2xhc3MtdXRpbHMiOiAiXjAuMy41IiwKICAgICAgICAiY29tcG9uZW50LWVtaXR0ZXIiOiAiXjEuMi4xIiwKICAgICAgICAiZGVmaW5lLXByb3BlcnR5IjogIl4xLjAuMCIsCiAgICAgICAgImlzb2JqZWN0IjogIl4zLjAuMSIsCiAgICAgICAgIm1peGluLWRlZXAiOiAiXjEuMi4wIiwKICAgICAgICAicGFzY2FsY2FzZSI6ICJeMC4xLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9iYXNlL25vZGVfbW9kdWxlcy9kZWZpbmUtcHJvcGVydHkiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2RlZmluZS1wcm9wZXJ0eS8tL2RlZmluZS1wcm9wZXJ0eS0xLjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1jWlRZS0ZXc3B0OWpac01zY1dvOHNjLzVsYlBDOVEwTjVuQkxnYitZZDkxNWlMM3VkQjF1RmdTM0I4WUN4NjZVVkhxMDE4REFWRm9lZTd4K2d4Z2dlQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWRlc2NyaXB0b3IiOiAiXjEuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvYmFzZS9ub2RlX21vZHVsZXMvaXNvYmplY3QiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzb2JqZWN0Ly0vaXNvYmplY3QtMy4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItV2hCOXpDa3U3RUdUai9IUVFSejVhVVFFVWVvUVpIMmJXY2x0UkVyT3B5bUo0Ym9ZRTZ3TDlUYnIyM2tyUlBTWitDNXpxTlNyU3crQ2M3c1paNGI3dmc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvYmluYXJ5LWV4dGVuc2lvbnMiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMTMuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9iaW5hcnktZXh0ZW5zaW9ucy8tL2JpbmFyeS1leHRlbnNpb25zLTEuMTMuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1VbjdNSUVEZFVDNWdOcGNHRFY5N29wMVl3azc0OE1wSGNGVEhvWXM2cW5qMVozajdJNTNWRzNud1poS3pvQlptYmRSTm5iNldSZEZsd2w3dFNEdVpHdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9iaW5kaW5ncyI6IHsKICAgICAgInZlcnNpb24iOiAiMS41LjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYmluZGluZ3MvLS9iaW5kaW5ncy0xLjUuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1wMnEvdC9taHZ1T2ovVWVMbFY2NTY2R0QvZ3Vvd2xyMGhIeENsSTBXOW03TVdZa0wxRjBoTG8rMEFleHM5SFNQQ3RSMVNYUTBURDNNTUtyWFphamJpUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJvcHRpb25hbCI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImZpbGUtdXJpLXRvLXBhdGgiOiAiMS4wLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2JyYWNlLWV4cGFuc2lvbiI6IHsKICAgICAgInZlcnNpb24iOiAiMS4xLjEyIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2JyYWNlLWV4cGFuc2lvbi8tL2JyYWNlLWV4cGFuc2lvbi0xLjEuMTIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItOVQ5VWpXM3IwVVc1YzFRN0dUd2xscHRYd2h2WW1FekZoek1mWjlIN0ZRV3QrdVplUGpaUGpCUC9XMVpFeVoxdHdHV29tNS81NlRGNGxQY3FqbkRIY2c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJiYWxhbmNlZC1tYXRjaCI6ICJeMS4wLjAiLAogICAgICAgICJjb25jYXQtbWFwIjogIjAuMC4xIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9icmFjZXMiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuOC41IiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2JyYWNlcy8tL2JyYWNlcy0xLjguNS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi14VTdicHoyeXRKbDFiSDljZ0l1cmpwZy9uOEdvaHk5R1R3ODFoZURZTEpRNFJVNjBkbHlKc2ErYXRWRjJwSTB5TU12S3hJOUhrS3dqZVBDajVYSTFodz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImV4cGFuZC1yYW5nZSI6ICJeMS44LjEiLAogICAgICAgICJwcmVzZXJ2ZSI6ICJeMC4yLjAiLAogICAgICAgICJyZXBlYXQtZWxlbWVudCI6ICJeMS4xLjIiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9jYWNoZS1iYXNlIjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9jYWNoZS1iYXNlLy0vY2FjaGUtYmFzZS0xLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1BS2NkVG5GU1dBVGQ1L0dDUFJ4cjJDaHdJSjg1Q2V5ckV5alJIbEt4UTU2ZDRYSk1HeW0wdUFpS24weGJMT0dPbDMreVJwT1RpNDg0ZFZDRWM1QVV6UT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImNvbGxlY3Rpb24tdmlzaXQiOiAiXjEuMC4wIiwKICAgICAgICAiY29tcG9uZW50LWVtaXR0ZXIiOiAiXjEuMi4xIiwKICAgICAgICAiZ2V0LXZhbHVlIjogIl4yLjAuNiIsCiAgICAgICAgImhhcy12YWx1ZSI6ICJeMS4wLjAiLAogICAgICAgICJpc29iamVjdCI6ICJeMy4wLjEiLAogICAgICAgICJzZXQtdmFsdWUiOiAiXjIuMC4wIiwKICAgICAgICAidG8tb2JqZWN0LXBhdGgiOiAiXjAuMy4wIiwKICAgICAgICAidW5pb24tdmFsdWUiOiAiXjEuMC4wIiwKICAgICAgICAidW5zZXQtdmFsdWUiOiAiXjEuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvY2FjaGUtYmFzZS9ub2RlX21vZHVsZXMvaXNvYmplY3QiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzb2JqZWN0Ly0vaXNvYmplY3QtMy4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItV2hCOXpDa3U3RUdUai9IUVFSejVhVVFFVWVvUVpIMmJXY2x0UkVyT3B5bUo0Ym9ZRTZ3TDlUYnIyM2tyUlBTWitDNXpxTlNyU3crQ2M3c1paNGI3dmc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvY2hva2lkYXIiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuNy4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Nob2tpZGFyLy0vY2hva2lkYXItMS43LjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItbWs4ZkFXY1JVT3hZN2J0bEx0aXRqM0E0NWpPd1NBeEg0dE9GT29FR2JWc2w2Y0w2cFBNV1V5N2R3Wi9jYW5majNRRWRQNkZIU25mL2wxYzYvV2t6Vmc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJhbnltYXRjaCI6ICJeMS4zLjAiLAogICAgICAgICJhc3luYy1lYWNoIjogIl4xLjAuMCIsCiAgICAgICAgImdsb2ItcGFyZW50IjogIl4yLjAuMCIsCiAgICAgICAgImluaGVyaXRzIjogIl4yLjAuMSIsCiAgICAgICAgImlzLWJpbmFyeS1wYXRoIjogIl4xLjAuMCIsCiAgICAgICAgImlzLWdsb2IiOiAiXjIuMC4wIiwKICAgICAgICAicGF0aC1pcy1hYnNvbHV0ZSI6ICJeMS4wLjAiLAogICAgICAgICJyZWFkZGlycCI6ICJeMi4wLjAiCiAgICAgIH0sCiAgICAgICJvcHRpb25hbERlcGVuZGVuY2llcyI6IHsKICAgICAgICAiZnNldmVudHMiOiAiXjEuMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9jbGFzcy11dGlscyI6IHsKICAgICAgInZlcnNpb24iOiAiMC4zLjYiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvY2xhc3MtdXRpbHMvLS9jbGFzcy11dGlscy0wLjMuNi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1xT2hQYS9GajdzNlRZOEg4ZXNHdTVRTnBNTVF4ejc5aCt1cnpyTllONm1uKzlCbnhsREdmNVFaK1hlQ0RzeFNqUHFzU1I1NlhPWk9KbXBldXJuTE1lZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImFyci11bmlvbiI6ICJeMy4xLjAiLAogICAgICAgICJkZWZpbmUtcHJvcGVydHkiOiAiXjAuMi41IiwKICAgICAgICAiaXNvYmplY3QiOiAiXjMuMC4wIiwKICAgICAgICAic3RhdGljLWV4dGVuZCI6ICJeMC4xLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9jbGFzcy11dGlscy9ub2RlX21vZHVsZXMvZGVmaW5lLXByb3BlcnR5IjogewogICAgICAidmVyc2lvbiI6ICIwLjIuNSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9kZWZpbmUtcHJvcGVydHkvLS9kZWZpbmUtcHJvcGVydHktMC4yLjUudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItUnI3QURqUVplbmNlVk9BS29wNkFMa2tSQW1IMUE0R3g5aFYvN1p1alBVTjJya0FUcUZPMEpaTFpJbmJBanBaWW9KMWdVeDhNUk1RVmtZZW1jYk1TVEE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1kZXNjcmlwdG9yIjogIl4wLjEuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2NsYXNzLXV0aWxzL25vZGVfbW9kdWxlcy9pcy1kZXNjcmlwdG9yIjogewogICAgICAidmVyc2lvbiI6ICIwLjEuNyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1kZXNjcmlwdG9yLy0vaXMtZGVzY3JpcHRvci0wLjEuNy50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1DM2dyWlR2T2JlTjF4dWQ0Y1JXbDM2Nk9NWFpUajArSEd5azRodmZweDRaSHQxUGI2MEFOU1hxQ0s3cGRPVGVVUXBSekVDQlNUcGhxdkQ3VStsMjJFZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWFjY2Vzc29yLWRlc2NyaXB0b3IiOiAiXjEuMC4xIiwKICAgICAgICAiaXMtZGF0YS1kZXNjcmlwdG9yIjogIl4xLjAuMSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0gMC40IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9jbGFzcy11dGlscy9ub2RlX21vZHVsZXMvaXNvYmplY3QiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzb2JqZWN0Ly0vaXNvYmplY3QtMy4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItV2hCOXpDa3U3RUdUai9IUVFSejVhVVFFVWVvUVpIMmJXY2x0UkVyT3B5bUo0Ym9ZRTZ3TDlUYnIyM2tyUlBTWitDNXpxTlNyU3crQ2M3c1paNGI3dmc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvY29sbGVjdGlvbi12aXNpdCI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvY29sbGVjdGlvbi12aXNpdC8tL2NvbGxlY3Rpb24tdmlzaXQtMS4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItbE5rS3Z6RWVNQkJqVUdIWitxNno5cFNKbGEwS1dBUVB2dHpoRVY5K2lHeVFZRytwQnBsN3hLRGh4b05TT1pIMmhodjB2NWsweTJ5QU00bzRTam9Ta3c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJtYXAtdmlzaXQiOiAiXjEuMC4wIiwKICAgICAgICAib2JqZWN0LXZpc2l0IjogIl4xLjAuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2NvbXBvbmVudC1lbWl0dGVyIjogewogICAgICAidmVyc2lvbiI6ICIxLjMuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9jb21wb25lbnQtZW1pdHRlci8tL2NvbXBvbmVudC1lbWl0dGVyLTEuMy4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVQwK2JhclVTUVJUVVFBU2g4YngwMmRsK0RoRjU0R3RJRFkxM1kzbTlvV1RrbEtiYjNXdjk3NG1lUnBlWjNscDFKcExWRUNXV05IQzR2YUcyWEhYb3VRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImZ1bmRpbmciOiB7CiAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvc2luZHJlc29yaHVzIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9jb25jYXQtbWFwIjogewogICAgICAidmVyc2lvbiI6ICIwLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9jb25jYXQtbWFwLy0vY29uY2F0LW1hcC0wLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi0vU3J2NGRzd3lRTkJmb2hHcHo5bzZZYjNHejNTclVEcUJINXJUdWhHUjdhaHRsYllLblZ4dzJiQ0ZNUmxqYUE3RVhIYVhaOHdzSGRvZEZ2YmtoS21xZz09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2NvcHktZGVzY3JpcHRvciI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvY29weS1kZXNjcmlwdG9yLy0vY29weS1kZXNjcmlwdG9yLTAuMS4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVhnWjBwRmNha0VVbGJ3UUVWTmczK1FBaXMxRnlUTDNRZWw5Rll5OHBTa1Fxb0czUE5vVDBiT0NRdE9YY09rdXIyMXIyRXEya0krSUUrZ3NtQUVWbFl3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2NvcmUtanMiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMi43IiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2NvcmUtanMvLS9jb3JlLWpzLTEuMi43LnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVppUHA5cFpsZ3hwV1J1ME0rWVdibTYrYVE4NFhFZkgxSlJYdmZPYy9mSUxXSTBWS2hMQzJMWDEzWDFOWXE0ZlVMekxNcTdIZmg0M0NTbzIvYUlhVVBBPT0iLAogICAgICAiZGVwcmVjYXRlZCI6ICJjb3JlLWpzQDwzLjIzLjMgaXMgbm8gbG9uZ2VyIG1haW50YWluZWQgYW5kIG5vdCByZWNvbW1lbmRlZCBmb3IgdXNhZ2UgZHVlIHRvIHRoZSBudW1iZXIgb2YgaXNzdWVzLiBCZWNhdXNlIG9mIHRoZSBWOCBlbmdpbmUgd2hpbXMsIGZlYXR1cmUgZGV0ZWN0aW9uIGluIG9sZCBjb3JlLWpzIHZlcnNpb25zIGNvdWxkIGNhdXNlIGEgc2xvd2Rvd24gdXAgdG8gMTAweCBldmVuIGlmIG5vdGhpbmcgaXMgcG9seWZpbGxlZC4gU29tZSB2ZXJzaW9ucyBoYXZlIHdlYiBjb21wYXRpYmlsaXR5IGlzc3Vlcy4gUGxlYXNlLCB1cGdyYWRlIHlvdXIgZGVwZW5kZW5jaWVzIHRvIHRoZSBhY3R1YWwgdmVyc2lvbiBvZiBjb3JlLWpzLiIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9jb3JlLXV0aWwtaXMiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4zIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2NvcmUtdXRpbC1pcy8tL2NvcmUtdXRpbC1pcy0xLjAuMy50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1aUUJ2aTFEY3BKNEdEcWFuanVjWjJIajN3RU81cFpEUzg5Qldia2NydmR4a3NKb3J3VUREWmFtWDlsZEZrcDlhdzJsbUJETGdrT2JFQTREV05KOUZZUT09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2NweCI6IHsKICAgICAgInZlcnNpb24iOiAiMS4yLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvY3B4Ly0vY3B4LTEuMi4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUxDNFM3SmJjaVpQdnV2Yk42Q0NHNk9lUmwveVdGc3YvcmNMdHBOUzMzeWRicmY2SWpWSjU3ZkxyMDNsSFJKMWhjckpaMWZCLzB2UGpUOVliMGltZnRnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiYmFiZWwtcnVudGltZSI6ICJeNS43LjAiLAogICAgICAgICJjaG9raWRhciI6ICJeMS4wLjQiLAogICAgICAgICJkdXBsZXhlciI6ICJeMC4xLjEiLAogICAgICAgICJnbG9iIjogIl41LjAuMTQiLAogICAgICAgICJnbG9iMmJhc2UiOiAiMC4wLjEyIiwKICAgICAgICAibWluaW1hdGNoIjogIl4yLjAuOCIsCiAgICAgICAgIm1rZGlycCI6ICJeMC41LjEiLAogICAgICAgICJyZXNvbHZlIjogIl4xLjEuNiIsCiAgICAgICAgInNoZWxsLXF1b3RlIjogIl4xLjQuMyIsCiAgICAgICAgInN1YmFyZyI6ICJeMS4wLjAiCiAgICAgIH0sCiAgICAgICJiaW4iOiB7CiAgICAgICAgImNweCI6ICJsaWIvY29tbWFuZC5qcyIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvY3B4L25vZGVfbW9kdWxlcy9taW5pbWF0Y2giOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMC4xMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9taW5pbWF0Y2gvLS9taW5pbWF0Y2gtMi4wLjEwLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWpRbzZvMXFTVkxFV2F3M2wrYndZQTJYMHVMdUsyS2pOaDJ3amdPN1EvOVVKblhyMVEzeVFLUjhCSTAvQnQvclBnNzVlNlNNVzRoVy82Y0JIVlRaVWpBPT0iLAogICAgICAiZGVwcmVjYXRlZCI6ICJQbGVhc2UgdXBkYXRlIHRvIG1pbmltYXRjaCAzLjAuMiBvciBoaWdoZXIgdG8gYXZvaWQgYSBSZWdFeHAgRG9TIGlzc3VlIiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImJyYWNlLWV4cGFuc2lvbiI6ICJeMS4wLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIioiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2RlYnVnIjogewogICAgICAidmVyc2lvbiI6ICIyLjYuOSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9kZWJ1Zy8tL2RlYnVnLTIuNi45LnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWJDN0VscmRKYUpuUGJBUCsxRW90WXZxWnNiM2VjbDV3aTZCZmk2QkpUVWNOb3dwNmN2c3BnMGpYem5SVEtEam0vRTdBZGdGQlZlQVBWTU5jS0dzSE1BPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAibXMiOiAiMi4wLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2RlY29kZS11cmktY29tcG9uZW50IjogewogICAgICAidmVyc2lvbiI6ICIwLjIuMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9kZWNvZGUtdXJpLWNvbXBvbmVudC8tL2RlY29kZS11cmktY29tcG9uZW50LTAuMi4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUZxVVlRKzhvMTU4R3lHVHJNRkptczlxaDNDcVRLdkFxZ3FzVG5rTEk4c0t1MDAyOG9ycUJoeE5NRmtGZW4wekd5ZzZlcEFDRDMycGpWazU4bmdJRXJRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9kZWZpbmUtcHJvcGVydHkiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMC4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2RlZmluZS1wcm9wZXJ0eS8tL2RlZmluZS1wcm9wZXJ0eS0yLjAuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1qd0syVVY0Y25QcGJjRzcrVlJBUktUWlBVV293d1hBOGJ6SDVOUDZ1ZDBvZUF4eVlQdUdaVUFDN2hNdWdwQ2R6NEJlU1psMkRsOWs2NkNISi80NlpZUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWRlc2NyaXB0b3IiOiAiXjEuMC4yIiwKICAgICAgICAiaXNvYmplY3QiOiAiXjMuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvZGVmaW5lLXByb3BlcnR5L25vZGVfbW9kdWxlcy9pc29iamVjdCI6IHsKICAgICAgInZlcnNpb24iOiAiMy4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXNvYmplY3QvLS9pc29iamVjdC0zLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1XaEI5ekNrdTdFR1RqL0hRUVJ6NWFVUUVVZW9RWkgyYldjbHRSRXJPcHltSjRib1lFNndMOVRicjIza3JSUFNaK0M1enFOU3JTdytDYzdzWlo0Yjd2Zz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9kdXBsZXhlciI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZHVwbGV4ZXIvLS9kdXBsZXhlci0wLjEuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1qdEQ2WUczNzBaQ0lpLzlHVGFKS1F4V1RaRDA0NSs0UjRoVGsveDFVeW9xYWR5Sjl4OUNnU2kxUmxWRFFGOFUyc3hMTFNuRmtDYU1paHFsakhJV2dNZz09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2V4cGFuZC1icmFja2V0cyI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xLjUiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXhwYW5kLWJyYWNrZXRzLy0vZXhwYW5kLWJyYWNrZXRzLTAuMS41LnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWh4eDAzUDJkSnhzczZjZUllcmk5Y21ZT1Q0U1JzM1prM2FmWndXcE9zUnFMcXByaFRSOHUrK1NsQytzRkdzUXI3V0dGUGRNRjdHamMxbmpETERLNlVBPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtcG9zaXgtYnJhY2tldCI6ICJeMC4xLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9leHBhbmQtcmFuZ2UiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuOC4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2V4cGFuZC1yYW5nZS8tL2V4cGFuZC1yYW5nZS0xLjguMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1BRkFTR2ZJbG5JYmtLUFF3WDF5SGFEakZ2aC8xZ3lLSk9EbWU1MlY2SU9SaDY5dUVZZ1pwMG85Qytxc0lHTlZFaXV1aFFVMENTU2wrK1JsZWdnMXF2QT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImZpbGwtcmFuZ2UiOiAiXjIuMS4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvZXh0ZW5kLXNoYWxsb3ciOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMC4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2V4dGVuZC1zaGFsbG93Ly0vZXh0ZW5kLXNoYWxsb3ctMy4wLjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItQndZNWI1UWw0K3Fab2VmZ01qMk5VbXgrdGVoVlRIL0tmNGsxWkV0T0hORmNtMndTeE1Sbzk5Mmw2WDNUSWduaTJlWlZUWjg1eE1PakYzMWZ3WkFqNlE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJhc3NpZ24tc3ltYm9scyI6ICJeMS4wLjAiLAogICAgICAgICJpcy1leHRlbmRhYmxlIjogIl4xLjAuMSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2V4dGVuZC1zaGFsbG93L25vZGVfbW9kdWxlcy9pcy1leHRlbmRhYmxlIjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1leHRlbmRhYmxlLy0vaXMtZXh0ZW5kYWJsZS0xLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1hcm5YTXhUMWhob0tvOWsxTFpkbWxOeUpkRERmeTJ2MGZYakZsbW9rNCtpOHVsLzZXbGJWZ2U5YmhNNzRPcE5QUVBNR1VUb0R0eitLWGExUG5lSnhPQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLXBsYWluLW9iamVjdCI6ICJeMi4wLjQiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9leHRnbG9iIjogewogICAgICAidmVyc2lvbiI6ICIwLjMuMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9leHRnbG9iLy0vZXh0Z2xvYi0wLjMuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi0xRk9qMUxPd240MlRNcnJ1T0hHdDE4SGVtVm5id0FtQWFrN2tyV2srd2E5M0tYeEdiSysyanBlem0reXRKWURhQlgwL1NQTFpGSEtNN20rdEtvYldHZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWV4dGdsb2IiOiAiXjEuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvZmlsZS11cmktdG8tcGF0aCI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZmlsZS11cmktdG8tcGF0aC8tL2ZpbGUtdXJpLXRvLXBhdGgtMS4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItMFp0K3MzTDdWZjFiaXdXWjI5YUFSaVZZTHg3aU1HbkVVbDl4MzNmYkIvajNqUjgxdS9PMkxicUsrQm0xQ0RTTkRLVnRKL1lqd1k3VFVkNVNrZUxRTHc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAib3B0aW9uYWwiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9maWxlbmFtZS1yZWdleCI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZmlsZW5hbWUtcmVnZXgvLS9maWxlbmFtZS1yZWdleC0yLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1CVENxeUJhV0JUc2F1dm5IaUU4aTU2MitFZEpqK29VcGtxV3AyUjFpQ29SOGY2b284U1RSdTNvZjdXSkowVHFXdHhONTBhNVlGcHpZSzRKajllc1lmUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9maWxsLXJhbmdlIjogewogICAgICAidmVyc2lvbiI6ICIyLjIuNCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9maWxsLXJhbmdlLy0vZmlsbC1yYW5nZS0yLjIuNC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1jbnJjQ2JqMDErajJnVEc5MjFWWlBuSGJqbWRBZjhvUVYvaUdlVjJrWnhHU3lmWWpqVHlZNzlFcnNLMVdKV01wdzZEYUFwRVg3MmJpbnFKRSsvZCs1UT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLW51bWJlciI6ICJeMi4xLjAiLAogICAgICAgICJpc29iamVjdCI6ICJeMi4wLjAiLAogICAgICAgICJyYW5kb21hdGljIjogIl4zLjAuMCIsCiAgICAgICAgInJlcGVhdC1lbGVtZW50IjogIl4xLjEuMiIsCiAgICAgICAgInJlcGVhdC1zdHJpbmciOiAiXjEuNS4yIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvZmluZC1pbmRleCI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZmluZC1pbmRleC8tL2ZpbmQtaW5kZXgtMC4xLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItdUo1dldyZkJLTWNFNnkyWjg4MzRkd0VaajltTkd4WWEzdDNJNTNPd0ZldVo4RDlvYzJFNXpjc3JrdWhYNmg0aVlyamhpdjBUM3N6UW14bEFWOXV4RGc9PSIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9mb3ItaW4iOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2Zvci1pbi8tL2Zvci1pbi0xLjAuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi03RXdtWHJPanlMK0NoeE1obUc1bG5XOU1QdDFhSWVaRXdLaFF6b0JVZFRWME4zenV3V0RaWVZKYXREdloyT3l6UFV2ZElBWkRzQ2V0azNjb3lNZmNuUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9mb3Itb3duIjogewogICAgICAidmVyc2lvbiI6ICIwLjEuNSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9mb3Itb3duLy0vZm9yLW93bi0wLjEuNS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1TS21vd3FHVEpvUHpMTzFUMEJCSnBrZnAzRU1hY0NNT3VINDBoT1VicmJ6RWxWa3RrNERpb1hWTTk5UWtMQ3lLb2l1T215amdjV01wVnoyeGpFN0xadz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImZvci1pbiI6ICJeMS4wLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9mcmFnbWVudC1jYWNoZSI6IHsKICAgICAgInZlcnNpb24iOiAiMC4yLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZnJhZ21lbnQtY2FjaGUvLS9mcmFnbWVudC1jYWNoZS0wLjIuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1HTUJBYlc5YW50QjhpWlJITG9HdzBiM0hBTnQ1N2RpWllGTy9ITDFKR0lDMU1qS3JkbWh4dnJKYnVwblZ2cHlzMHpzejd5QkFwWGRReWZlcEtseTJrQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgIm1hcC1jYWNoZSI6ICJeMC4yLjIiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9mc2V2ZW50cyI6IHsKICAgICAgInZlcnNpb24iOiAiMS4yLjEzIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2ZzZXZlbnRzLy0vZnNldmVudHMtMS4yLjEzLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLW9XYjFaNm1rSElza0x6RUovWFdYMHNya3BrVFE3dmFvcE1Ra3lhRUlvcTBmbXRGVnhPdGhiOGNDeGVUK3AzeW5UZGtrL1Jad2JnRzRiclI1QmVXRUN3PT0iLAogICAgICAiZGVwcmVjYXRlZCI6ICJVcGdyYWRlIHRvIGZzZXZlbnRzIHYyIHRvIG1pdGlnYXRlIHBvdGVudGlhbCBzZWN1cml0eSBpc3N1ZXMiLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImhhc0luc3RhbGxTY3JpcHQiOiB0cnVlLAogICAgICAib3B0aW9uYWwiOiB0cnVlLAogICAgICAib3MiOiBbCiAgICAgICAgImRhcndpbiIKICAgICAgXSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiYmluZGluZ3MiOiAiXjEuNS4wIiwKICAgICAgICAibmFuIjogIl4yLjEyLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49IDQuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvZnVuY3Rpb24tYmluZCI6IHsKICAgICAgInZlcnNpb24iOiAiMS4xLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZnVuY3Rpb24tYmluZC8tL2Z1bmN0aW9uLWJpbmQtMS4xLjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItN1hITnhIN3FYOXhHNW1Jd3hraHVtVG94L01JUk5jT2dEcnhXc010MnBBcjIzV0hwNk1yUmxON0ZCU0ZwQ3ByK29WTzBGNzQ0aVVnUjgybkpNZkcyU0E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZnVuZGluZyI6IHsKICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9samhhcmIiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2dldC12YWx1ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjYiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZ2V0LXZhbHVlLy0vZ2V0LXZhbHVlLTIuMC42LnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUxuMFVRRGx4SDFCYXBNdTNHUHRmN0N1WU53UlpmMmd3Q3VQcWJ5RzZwQjhXZm1GcHpxY3k0eHRBYUFNVWhuTnFqTUtUaUNQWkcyb01UM1lTeDhVMk5BPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2dsb2IiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjUuMC4xNSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9nbG9iLy0vZ2xvYi01LjAuMTUudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItYzlJUE1hemZSSVRwbUFBS2kyMmRLMVZLeEdEWDllaGhxZkFCRHJpTC9sek85MnhjVUtFSlBRSHJWQS8yWUhTTkZCNGlGbHlrVm1XdndvNDhucjNPeEE9PSIsCiAgICAgICJkZXByZWNhdGVkIjogIk9sZCB2ZXJzaW9ucyBvZiBnbG9iIGFyZSBub3Qgc3VwcG9ydGVkLCBhbmQgY29udGFpbiB3aWRlbHkgcHVibGljaXplZCBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMsIHdoaWNoIGhhdmUgYmVlbiBmaXhlZCBpbiB0aGUgY3VycmVudCB2ZXJzaW9uLiBQbGVhc2UgdXBkYXRlLiBTdXBwb3J0IGZvciBvbGQgdmVyc2lvbnMgbWF5IGJlIHB1cmNoYXNlZCAoYXQgZXhvcmJpdGFudCByYXRlcykgYnkgY29udGFjdGluZyBpQGl6cy5tZSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpbmZsaWdodCI6ICJeMS4wLjQiLAogICAgICAgICJpbmhlcml0cyI6ICIyIiwKICAgICAgICAibWluaW1hdGNoIjogIjIgfHwgMyIsCiAgICAgICAgIm9uY2UiOiAiXjEuMy4wIiwKICAgICAgICAicGF0aC1pcy1hYnNvbHV0ZSI6ICJeMS4wLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIioiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2dsb2ItYmFzZSI6IHsKICAgICAgInZlcnNpb24iOiAiMC4zLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZ2xvYi1iYXNlLy0vZ2xvYi1iYXNlLTAuMy4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWFiMVMxZzFFYk83WXphdWFKTGtnTHA3RFpWQXFqOU0vZHZLbFR0OERrWEEydGlPSWNTTXJsVkkySjFSWnlCNWlKVmNjRXNjakduK2twT0c5Nzg4TUhBPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiZ2xvYi1wYXJlbnQiOiAiXjIuMC4wIiwKICAgICAgICAiaXMtZ2xvYiI6ICJeMi4wLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9nbG9iLXBhcmVudCI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZ2xvYi1wYXJlbnQvLS9nbG9iLXBhcmVudC0yLjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1KRFlPdmZ4aW8vdDQySEtkeGtBWWFDaUJON29ZaXV4eWtPeEt4ZGFVVzVRbjB6YVlOM2dSUVdvbHJ3ZG5mMHNoTTkvRVAwZWJ1dVRteW9YTnIxY0M1dz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWdsb2IiOiAiXjIuMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9nbG9iMmJhc2UiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjAuMC4xMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9nbG9iMmJhc2UvLS9nbG9iMmJhc2UtMC4wLjEyLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVp5cWxnb3dNYmZqMk5QanhhWlovRXRzWGxPY2gyOEZSWGdNZDY0dnFaV2sxYlQ5K3d2U1JMWUQxb205TTdRZlFydTUxekpQQVQxN3FYbTQvemQrOVFBPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiZmluZC1pbmRleCI6ICJeMC4xLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49IDAuMTAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2dyYWNlZnVsLWZzIjogewogICAgICAidmVyc2lvbiI6ICI0LjIuMTEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZ3JhY2VmdWwtZnMvLS9ncmFjZWZ1bC1mcy00LjIuMTEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItUmJKNS9qbUZjTk5DY0RWNW85ZVRuQkxKL0hzeldWMFA3M2JjK0ZmNG5TL3JKaitZYVM2SUd5aU9MMFZvQllYK2wxV3JsM2s2M2gvS3JIK25oSjBYdlE9PSIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9oYXMtZmxhZyI6IHsKICAgICAgInZlcnNpb24iOiAiMy4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaGFzLWZsYWcvLS9oYXMtZmxhZy0zLjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1zS0pmMStjZVFCcjRTTWt2UW5CRE5EdGY0VFhwVmhWR2F0ZXUwdDkxOGJsMzBGbmJFMm00dk5MWCtWV2UvZHBqbGIrSHVnR1l6Vzd1UVhIOThIUEVZdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49NCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvaGFzLXZhbHVlIjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9oYXMtdmFsdWUvLS9oYXMtdmFsdWUtMS4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItSUJYazRHVHNMWWRRN1J2dCtHUkJyRlNWRWttdU9VeTRyZTBYamQ5a0pTVVFwblRyV1I0L3k5UnBmZXhOOXZrQVBNRnVRb2VXS3dxelBvelJUbGFzR3c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJnZXQtdmFsdWUiOiAiXjIuMC42IiwKICAgICAgICAiaGFzLXZhbHVlcyI6ICJeMS4wLjAiLAogICAgICAgICJpc29iamVjdCI6ICJeMy4wLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9oYXMtdmFsdWUvbm9kZV9tb2R1bGVzL2lzb2JqZWN0IjogewogICAgICAidmVyc2lvbiI6ICIzLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pc29iamVjdC8tL2lzb2JqZWN0LTMuMC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVdoQjl6Q2t1N0VHVGovSFFRUno1YVVRRVVlb1FaSDJiV2NsdFJFck9weW1KNGJvWUU2d0w5VGJyMjNrclJQU1orQzV6cU5TclN3K0NjN3NaWjRiN3ZnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2hhcy12YWx1ZXMiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2hhcy12YWx1ZXMvLS9oYXMtdmFsdWVzLTEuMC4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLU9EWVpDNjR1cXptdGZHTUVBWC9GdlppUnlXTHBBQzN2WW5OdW5VUlVua0dWVFMrbUkwc21Wc1dhUHlkUkJzRTNnK29rN2g5NjBqQ2hPOG1GY1dsSGFRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtbnVtYmVyIjogIl4zLjAuMCIsCiAgICAgICAgImtpbmQtb2YiOiAiXjQuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvaGFzLXZhbHVlcy9ub2RlX21vZHVsZXMvaXMtbnVtYmVyIjogewogICAgICAidmVyc2lvbiI6ICIzLjAuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1udW1iZXIvLS9pcy1udW1iZXItMy4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItNGNib0NxSXBsaUgrbUF2Rk5lZ2paUTRrZ0tjM1pVaFFWcjNIdldiU2g1cTNXSDJ2ODJjdCtUMlkxaGRVNUdkdG9yeC9jTGlmUWpxQ2JMN2Jwem5MVGc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJraW5kLW9mIjogIl4zLjAuMiIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2hhcy12YWx1ZXMvbm9kZV9tb2R1bGVzL2lzLW51bWJlci9ub2RlX21vZHVsZXMva2luZC1vZiI6IHsKICAgICAgInZlcnNpb24iOiAiMy4yLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcva2luZC1vZi8tL2tpbmQtb2YtMy4yLjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItTk9XOVFRWE1vWkdnL29xblZOb05UVElGRUlpZDE2MjdXQ2ZmVUJKRWRNeFlBcHE3bU5FN0NwenVjSVBjK1pRZzI1UGhlajdJSlNtWDNoTytvYmxPdFE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1idWZmZXIiOiAiXjEuMS41IgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvaGFzLXZhbHVlcy9ub2RlX21vZHVsZXMva2luZC1vZiI6IHsKICAgICAgInZlcnNpb24iOiAiNC4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcva2luZC1vZi8tL2tpbmQtb2YtNC4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItMjRYc0N4bUViUndFRGJ6L3F6M3N0Z2luOFRUeloxRVNSNTZPTUNOMHVqWWcrdlJ1dE5TaU9qOWJISDl1ODVES2dYZ3VyYXVnVjVzRnV2YkQ0RlcvaHc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1idWZmZXIiOiAiXjEuMS41IgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvaGFzb3duIjogewogICAgICAidmVyc2lvbiI6ICIyLjAuMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9oYXNvd24vLS9oYXNvd24tMi4wLjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItMGhKVTlTQ1B2bU16SUJkWkZxTlBYV2E2ZHFoN1dkSDBjSUk5eStDeVM4ckczbkw0OEJjbHJhOUhtS2hWVlVIeVBXTkg1WTd4RHdBQjdiZmdTamtVTVE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJmdW5jdGlvbi1iaW5kIjogIl4xLjEuMiIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0gMC40IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9pZ25vcmUtYnktZGVmYXVsdCI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaWdub3JlLWJ5LWRlZmF1bHQvLS9pZ25vcmUtYnktZGVmYXVsdC0xLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1JdXMyVlljR05rN1Q5MENwcEpxY0lrUzVvb0hVWnlJUUsrQ2xaZk1mTU5GRUY5VlNFNzNGcSs5MDZ1L0NXdTkyeDRnelpNV093ZkZZY2tQT2J6ZEViQT09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2luZmxpZ2h0IjogewogICAgICAidmVyc2lvbiI6ICIxLjAuNiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pbmZsaWdodC8tL2luZmxpZ2h0LTEuMC42LnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWs5MkkvYjA4cTR3dkZzY1hDTHZxZnNIQ3JqckY3eWlYc1F1SVZ2VkU3TjgyVzMrYXFwenVVZEJiZmhXY3kvRlpSMy80SWdmbE1nS0xPc3ZQRHJHQ0pBPT0iLAogICAgICAiZGVwcmVjYXRlZCI6ICJUaGlzIG1vZHVsZSBpcyBub3Qgc3VwcG9ydGVkLCBhbmQgbGVha3MgbWVtb3J5LiBEbyBub3QgdXNlIGl0LiBDaGVjayBvdXQgbHJ1LWNhY2hlIGlmIHlvdSB3YW50IGEgZ29vZCBhbmQgdGVzdGVkIHdheSB0byBjb2FsZXNjZSBhc3luYyByZXF1ZXN0cyBieSBhIGtleSB2YWx1ZSwgd2hpY2ggaXMgbXVjaCBtb3JlIGNvbXByZWhlbnNpdmUgYW5kIHBvd2VyZnVsLiIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJvbmNlIjogIl4xLjMuMCIsCiAgICAgICAgIndyYXBweSI6ICIxIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9pbmhlcml0cyI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjQiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaW5oZXJpdHMvLS9pbmhlcml0cy0yLjAuNC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1rL3ZHYVg0L1lsYTNXenlNQ3ZUUU9YWWVJSHZxT0t0bnFCZHV6VEhwenBRWnpBc2tLTWhaMksrRW5CaVNNOXpHU29JRmVNcFhLeGE0ZFllWklRcWV3UT09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLWFjY2Vzc29yLWRlc2NyaXB0b3IiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWFjY2Vzc29yLWRlc2NyaXB0b3IvLS9pcy1hY2Nlc3Nvci1kZXNjcmlwdG9yLTEuMC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVlCVWFuTEk4WW9paHc5MjNZZUZVUzVmczBmRjJmNVRTRlROaVlBQXpoaERzY0RhM2xFcVl1ejFwRE9FUDVLdlg5NEk5ZXkzdnNxakpjTFZGVlUrM1FBPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaGFzb3duIjogIl4yLjAuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0gMC4xMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvaXMtYmluYXJ5LXBhdGgiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWJpbmFyeS1wYXRoLy0vaXMtYmluYXJ5LXBhdGgtMS4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItOWZSVmxYYzB1Q3hFRGoxblF6YVdPTlNwYlRmeDBGbUpmekhGN3B3bEk4RGtXR29IQkJlYTRQZzVLeTBvand3eFFtblNpZmdiS2tJMDZRdjBMamdqK1E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJiaW5hcnktZXh0ZW5zaW9ucyI6ICJeMS4wLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9pcy1idWZmZXIiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMS42IiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWJ1ZmZlci8tL2lzLWJ1ZmZlci0xLjEuNi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1OY2RBTHdwWGtUbTVadnZiazdvd09VU3ZWdkJLRGdLUDUvZXdmWEV6bm1RRmZzNFpSbWFuT2VLQlRqUlZqa2EzUUZvTjZYSis5RjNVU3FmSHFUYVU1dz09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLWNvcmUtbW9kdWxlIjogewogICAgICAidmVyc2lvbiI6ICIyLjE2LjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXMtY29yZS1tb2R1bGUvLS9pcy1jb3JlLW1vZHVsZS0yLjE2LjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItVWZvZU1BNmZJSjh3VFlGRVVqZWxuYUdJNjd2NitON3FYSkV2UXVJR2E5OWw0eHNDcnVTWU9WU1EwdVBBTm40ZEF6bThsa1lQYUtMcnJpakxxN3gyM3c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJoYXNvd24iOiAiXjIuMC4yIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PSAwLjQiCiAgICAgIH0sCiAgICAgICJmdW5kaW5nIjogewogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL2xqaGFyYiIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvaXMtZGF0YS1kZXNjcmlwdG9yIjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1kYXRhLWRlc2NyaXB0b3IvLS9pcy1kYXRhLWRlc2NyaXB0b3ItMS4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItYmM0TmxDRGlDcjI4VTRhRXNRM1FzMjQ5MWdWcTRWOEc3TVF5d3M5NjhJbXFqS3VZdFRKWHJsN1ZxN2pzTjdMeS9DM3hqNUtXRnJZN3NITmVEa0F6WHc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJoYXNvd24iOiAiXjIuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PSAwLjQiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLWRlc2NyaXB0b3IiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4zIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWRlc2NyaXB0b3IvLS9pcy1kZXNjcmlwdG9yLTEuMC4zLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUpDTk5HYndXWkVWYVNQdFM0NW1kdHJuZVJXSkZwMDdMTG15a3hlRlY1RjZvQnZORjh2SFNmSnVKZ29UNDcycFNmaytNZjhWbmxyc3BhRkJIV004SkF3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtYWNjZXNzb3ItZGVzY3JpcHRvciI6ICJeMS4wLjEiLAogICAgICAgICJpcy1kYXRhLWRlc2NyaXB0b3IiOiAiXjEuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PSAwLjQiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLWRvdGZpbGUiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4zIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWRvdGZpbGUvLS9pcy1kb3RmaWxlLTEuMC4zLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTlZY2xnT0d0Ti9mOHp4MFByNEZRWU1kaWJCaVRhSDNzbjUydmpZaXA0WlNmNkM0LzZSZlRFWitNUjRHdktoQ3hkUGgyMUJnNDIvV0w1NWY2S1NuS3BnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLWVxdWFsLXNoYWxsb3ciOiB7CiAgICAgICJ2ZXJzaW9uIjogIjAuMS4zIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWVxdWFsLXNoYWxsb3cvLS9pcy1lcXVhbC1zaGFsbG93LTAuMS4zLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTBFeWdWQzVxUHZJeWIrZ1N6N3pkRDUvQUFvUzZRcngxZS8vNk40eXY0b05tMzBrcXZkbUc2Nm9aRldWbFFIVVdlNU9qUDA4RnVUdzJJZFQwRU9UY1lBPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtcHJpbWl0aXZlIjogIl4yLjAuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLWV4dGVuZGFibGUiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjAuMS4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWV4dGVuZGFibGUvLS9pcy1leHRlbmRhYmxlLTAuMS4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTVCTVVMTm9iMXZnRlg2RWpRdzVpeldEeHJlY1dLOUFNNzJydWdOcjBURmxkTU9pMGZqNkprK3plS0l0MHhHajRjRWZRSUp0aDR3M09LV09KNGYrQUZ3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLWV4dGdsb2IiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWV4dGdsb2IvLS9pcy1leHRnbG9iLTEuMC4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTdRK1ZiVmFmZTZ4MlQrVHU2TmNPZjZzUmtsYXpFUG1Cb0IzSVdrM1dkR1pNMmlHVXdVL09lM1d0cTVsU0VrRFRUbHBwOHl4KzV0NHB6Ty9pOVR5MXd3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLWdsb2IiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLWdsb2IvLS9pcy1nbG9iLTIuMC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWExZEJlQjE5TlhzZi9FMCtGSHFrYWdpemVsL0xRdzJEalNRcHZRcmozelQrallQcGFVQ3J5UG5yUWFqWEtGTENNdWY0STZGaFJwYUd0dzRsUHJHNkVnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtZXh0Z2xvYiI6ICJeMS4wLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9pcy1udW1iZXIiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMS4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLW51bWJlci8tL2lzLW51bWJlci0yLjEuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1RVXpINDNHZmI5KzV5Y2tjclNBMFZCRHdFdERVY2hyazRGNnRmSlpRdU56REpiRURCOWNaTnpTZlhHUTFqcW1kRFkva2w0MWxVT1dNOXN5QTh6OGpsZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImtpbmQtb2YiOiAiXjMuMC4yIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvaXMtcGxhaW4tb2JqZWN0IjogewogICAgICAidmVyc2lvbiI6ICIyLjAuNCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1wbGFpbi1vYmplY3QvLS9pcy1wbGFpbi1vYmplY3QtMi4wLjQudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItaDVQcGdYa1dpdGMzOEJCTVlhd1RZTVdKSEZaSlZuQnF1RkU1N3hGcGpCOHBKRmlGNmdaK2JVK1d5SS95cVhpRlI1bWRMc2dZTmFQZTh1YW82VXY5T2c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpc29iamVjdCI6ICJeMy4wLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9pcy1wbGFpbi1vYmplY3Qvbm9kZV9tb2R1bGVzL2lzb2JqZWN0IjogewogICAgICAidmVyc2lvbiI6ICIzLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pc29iamVjdC8tL2lzb2JqZWN0LTMuMC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVdoQjl6Q2t1N0VHVGovSFFRUno1YVVRRVVlb1FaSDJiV2NsdFJFck9weW1KNGJvWUU2d0w5VGJyMjNrclJQU1orQzV6cU5TclN3K0NjN3NaWjRiN3ZnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLXBvc2l4LWJyYWNrZXQiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjAuMS4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLXBvc2l4LWJyYWNrZXQvLS9pcy1wb3NpeC1icmFja2V0LTAuMS4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVl1NjhvZVhKN0xlV05tWjNab3YveGcvb0RCbkJLMlJOeHdZWTFpbE5KWCt0S0tacWdQSytxT24vR3M5akV1NjZLRFk5TmV0ZjVYTEtOR3phcy92UGZRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLXByaW1pdGl2ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXMtcHJpbWl0aXZlLy0vaXMtcHJpbWl0aXZlLTIuMC4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLU4zdzF0RmFSZmszVXJQZnFlUnlEK0dZREFTVTNXNVZpbktobE9SeThFV1ZmL3NJZERMOUdBY2V3ODVYbWt0Q2ZIK25nRzdTUlhFVkRvTzE4V01kQi9RPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzLXdpbmRvd3MiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLXdpbmRvd3MvLS9pcy13aW5kb3dzLTEuMC4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWVYSzFVSW5xMmJQbWp5WDZlM1ZISXpNTG9iYzRKOTRpNEFXbitIcHEzT1U1S2tyUkM5Nk9BY1IzUFJKL3BHdTZtOFRSbkJIUDlka1hRVnNUL0NPVklBPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL2lzYXJyYXkiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzYXJyYXkvLS9pc2FycmF5LTEuMC4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVZMZ2hJV05NNkVMUXpvN3p3bWNnME5tVFZ5V0tZanZJZU04M3lqcDB3UkRUbVVuck02NzhmUWJjS0JvNm4yQ0pFRjBzem9HLy95dGcrVEtsYTg5QUxRPT0iLAogICAgICAiZGV2IjogdHJ1ZQogICAgfSwKICAgICJub2RlX21vZHVsZXMvaXNvYmplY3QiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMS4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzb2JqZWN0Ly0vaXNvYmplY3QtMi4xLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItK09VZEdKbGdqT0JaRGZ4bkRqWVlHNnpwNDg3ejBKR05RcTNjWVFZZzVmNWhLUitzeUhNc2F6dHpHZW1sLzRrR0c1NUNTcEtTcFdUWStqWUdnc0hMZ0E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpc2FycmF5IjogIjEuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMva2luZC1vZiI6IHsKICAgICAgInZlcnNpb24iOiAiMy4yLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcva2luZC1vZi8tL2tpbmQtb2YtMy4yLjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItTk9XOVFRWE1vWkdnL29xblZOb05UVElGRUlpZDE2MjdXQ2ZmVUJKRWRNeFlBcHE3bU5FN0NwenVjSVBjK1pRZzI1UGhlajdJSlNtWDNoTytvYmxPdFE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1idWZmZXIiOiAiXjEuMS41IgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbWFwLWNhY2hlIjogewogICAgICAidmVyc2lvbiI6ICIwLjIuMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9tYXAtY2FjaGUvLS9tYXAtY2FjaGUtMC4yLjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItOHkvZVY5UVFaQ2l5bjFTcHJYU3JDbXFKTjB5TlJBVGUrUE84enR3cXJ2cmJkUkxBM2VZSkYweWFSMFlheUxXa01ic1FTS1dTOU4yZ1BjR0VjNFVzWmc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbWFwLXZpc2l0IjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9tYXAtdmlzaXQvLS9tYXAtdmlzaXQtMS4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItNHk3dUd2OGJkMldkTTl2cFFzaVFObzQxTG4xTnZodkRSdVZ0MGsySlpRK2V6TjJ1YVFlczdsWmVaK1FRVUhPTFFBdERhQkorN3dDYmkrYWIvS0ZzK3c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJvYmplY3QtdmlzaXQiOiAiXjEuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbWF0aC1yYW5kb20iOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC40IiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL21hdGgtcmFuZG9tLy0vbWF0aC1yYW5kb20tMS4wLjQudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItclV4anlzcWlmL0JaUUgyeWhkNUFhcTd2WE1TeDlOZEVzUWN5QTA3dUV6SXZ4Z0k3eklyMzNnR3NoK1JVMC9Yam1RcENXN1JzVm9mMXZsa3ZRVkNLNUE9PSIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9taWNyb21hdGNoIjogewogICAgICAidmVyc2lvbiI6ICIyLjMuMTEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbWljcm9tYXRjaC8tL21pY3JvbWF0Y2gtMi4zLjExLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUxuVTJYRkVrOXh4U0o2cmZnQXJ5L3R5NXF3VVR5SFlPQlUwZzRSNnRJdzVsandnR0lCbWlLaFJXTHc1TnBNT25yZ1VOY0RKNFdNcDhybDNzWVZITE5BPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiYXJyLWRpZmYiOiAiXjIuMC4wIiwKICAgICAgICAiYXJyYXktdW5pcXVlIjogIl4wLjIuMSIsCiAgICAgICAgImJyYWNlcyI6ICJeMS44LjIiLAogICAgICAgICJleHBhbmQtYnJhY2tldHMiOiAiXjAuMS40IiwKICAgICAgICAiZXh0Z2xvYiI6ICJeMC4zLjEiLAogICAgICAgICJmaWxlbmFtZS1yZWdleCI6ICJeMi4wLjAiLAogICAgICAgICJpcy1leHRnbG9iIjogIl4xLjAuMCIsCiAgICAgICAgImlzLWdsb2IiOiAiXjIuMC4xIiwKICAgICAgICAia2luZC1vZiI6ICJeMy4wLjIiLAogICAgICAgICJub3JtYWxpemUtcGF0aCI6ICJeMi4wLjEiLAogICAgICAgICJvYmplY3Qub21pdCI6ICJeMi4wLjAiLAogICAgICAgICJwYXJzZS1nbG9iIjogIl4zLjAuNCIsCiAgICAgICAgInJlZ2V4LWNhY2hlIjogIl4wLjQuMiIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL21pbmltYXRjaCI6IHsKICAgICAgInZlcnNpb24iOiAiMy4xLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbWluaW1hdGNoLy0vbWluaW1hdGNoLTMuMS4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUo3cDYzaFJpQWp3MU5ERXd3MVc3aTM3K0J5SXJPV081WFFRQXpaM1ZPY0wwUE55YndwZm1WL04wNXpGQXp3UTlVU3lFY1g2dDNVTytLNWFxQlFPSUh3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiYnJhY2UtZXhwYW5zaW9uIjogIl4xLjEuNyIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiKiIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbWluaW1pc3QiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMi44IiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL21pbmltaXN0Ly0vbWluaW1pc3QtMS4yLjgudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItMnl5QVI4cUJrTjNZdWhlSmFuVXBXQzVVM2JiNW9zRHl3TkI4UnpEVmxEd0RIYm9jQUp2ZXFxajF1OCtTVkQ3amtXVDR5dnNIQ3BXcXFXcUF4YjB6Q0E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZnVuZGluZyI6IHsKICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9samhhcmIiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL21peGluLWRlZXAiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMy4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL21peGluLWRlZXAvLS9taXhpbi1kZWVwLTEuMy4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVdSb0RuLy9tWEJpSjFINDBycWEzdkgwdG9lUHdTc0diNDVpSW5XbFR5U2ErVXU0azN0WVVTeGEydjFLcUFpTHR2bHJTemFFeHFTMWd0azk2QTl6dkVBPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiZm9yLWluIjogIl4xLjAuMiIsCiAgICAgICAgImlzLWV4dGVuZGFibGUiOiAiXjEuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbWl4aW4tZGVlcC9ub2RlX21vZHVsZXMvaXMtZXh0ZW5kYWJsZSI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXMtZXh0ZW5kYWJsZS8tL2lzLWV4dGVuZGFibGUtMS4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItYXJuWE14VDFoaG9LbzlrMUxaZG1sTnlKZEREZnkydjBmWGpGbG1vazQraTh1bC82V2xiVmdlOWJoTTc0T3BOUFFQTUdVVG9EdHorS1hhMVBuZUp4T0E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1wbGFpbi1vYmplY3QiOiAiXjIuMC40IgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbWtkaXJwIjogewogICAgICAidmVyc2lvbiI6ICIwLjUuNiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9ta2RpcnAvLS9ta2RpcnAtMC41LjYudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItRlArcDhSQjhPV3BGM1laQkNyUDVndEFEbXRYQXBCNUFNTG4rdmR5QStQeXhDanJDczAwbWp5VW96c3NPMzNjd0RlVDN3TkdkTHhKNU0vL1lxdEhBSnc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJtaW5pbWlzdCI6ICJeMS4yLjYiCiAgICAgIH0sCiAgICAgICJiaW4iOiB7CiAgICAgICAgIm1rZGlycCI6ICJiaW4vY21kLmpzIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9tcyI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbXMvLS9tcy0yLjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1UcHA2MFA2SVVKRFR1T3EvNVo4Y2Rza3pKdWpmd3FmT1RrcndJd2o3SVJJU3Bua0puVDZTeUo0UENQbkdNb0ZqQzlkZGhhbDVLVklZdEF0OTdpeDA1QT09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL25hbiI6IHsKICAgICAgInZlcnNpb24iOiAiMi4yMy4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL25hbi8tL25hbi0yLjIzLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItMVV4dXlZR2RvUUhjR2c4N0xrcW0zRnplZnVjVGEwTkFpT2N1UnNEbXlzZXAzYzFMVkNSSzJrcnJVRGFmTVd0alNHMDRodHZBbXZnOTYrU0Rrbk9tZ1E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAib3B0aW9uYWwiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9uYW5vbWF0Y2giOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMi4xMyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9uYW5vbWF0Y2gvLS9uYW5vbWF0Y2gtMS4yLjEzLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWZwb2UyVDBSYkh3QlRCVU9mdEFmQlBhREVpMDZ1ZmFVYWkwbUU2WW4xa2FjYzNTblRFcmZiL2grWDk0Vlh6STY0cktGSFlJbVhTdmR3R0dDbXdPcUNBPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiYXJyLWRpZmYiOiAiXjQuMC4wIiwKICAgICAgICAiYXJyYXktdW5pcXVlIjogIl4wLjMuMiIsCiAgICAgICAgImRlZmluZS1wcm9wZXJ0eSI6ICJeMi4wLjIiLAogICAgICAgICJleHRlbmQtc2hhbGxvdyI6ICJeMy4wLjIiLAogICAgICAgICJmcmFnbWVudC1jYWNoZSI6ICJeMC4yLjEiLAogICAgICAgICJpcy13aW5kb3dzIjogIl4xLjAuMiIsCiAgICAgICAgImtpbmQtb2YiOiAiXjYuMC4yIiwKICAgICAgICAib2JqZWN0LnBpY2siOiAiXjEuMy4wIiwKICAgICAgICAicmVnZXgtbm90IjogIl4xLjAuMCIsCiAgICAgICAgInNuYXBkcmFnb24iOiAiXjAuOC4xIiwKICAgICAgICAidG8tcmVnZXgiOiAiXjMuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbmFub21hdGNoL25vZGVfbW9kdWxlcy9hcnItZGlmZiI6IHsKICAgICAgInZlcnNpb24iOiAiNC4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYXJyLWRpZmYvLS9hcnItZGlmZi00LjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1ZVklRODJnWlBHQmViUVYvYThkYXI0QWl0ekNRczBqalh3TVBabGxwWE1hR2pYUFlWVWF3U3hRclJzamhqdXB5VnhFdmJIZ1VtSWhLVmxORCtqMDJrQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9uYW5vbWF0Y2gvbm9kZV9tb2R1bGVzL2FycmF5LXVuaXF1ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMC4zLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYXJyYXktdW5pcXVlLy0vYXJyYXktdW5pcXVlLTAuMy4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVNsZVJXamg5SlV1ZDJ3SDFoUHM5clpCWjMzSDZUOUhPaUwwdXdHbkd4OUZwRTZ3S0d5Zld1Z21ia0VPSXM2cVdyWmhnMExXZUx6aUxyRXdRSmhzNW1RPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL25hbm9tYXRjaC9ub2RlX21vZHVsZXMva2luZC1vZiI6IHsKICAgICAgInZlcnNpb24iOiAiNi4wLjMiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcva2luZC1vZi8tL2tpbmQtb2YtNi4wLjMudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItZGNTMXVsKzl0bWVEOTVUK3gyOC9laExnZDltRU5hM0xzdkRUdHptM3Z5QkVPN1JQcHR2QUQrdDQ0V1ZYYVVqVEJSY3JwRmVGbEM4V0NydVVSNDU2aHc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbm9kZW1vbiI6IHsKICAgICAgInZlcnNpb24iOiAiMy4xLjEwIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL25vZGVtb24vLS9ub2RlbW9uLTMuMS4xMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1XRGp3M3BKMC8wak1GbXlORHAzZ3ZZMllpempMbW1PVVFvNkRFQlkrSmdkdlcveVE5bUVlU3c2SDV5dGhsNU55Mnl0YjdmOUMybklialN4TU56YkpYdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImNob2tpZGFyIjogIl4zLjUuMiIsCiAgICAgICAgImRlYnVnIjogIl40IiwKICAgICAgICAiaWdub3JlLWJ5LWRlZmF1bHQiOiAiXjEuMC4xIiwKICAgICAgICAibWluaW1hdGNoIjogIl4zLjEuMiIsCiAgICAgICAgInBzdHJlZS5yZW15IjogIl4xLjEuOCIsCiAgICAgICAgInNlbXZlciI6ICJeNy41LjMiLAogICAgICAgICJzaW1wbGUtdXBkYXRlLW5vdGlmaWVyIjogIl4yLjAuMCIsCiAgICAgICAgInN1cHBvcnRzLWNvbG9yIjogIl41LjUuMCIsCiAgICAgICAgInRvdWNoIjogIl4zLjEuMCIsCiAgICAgICAgInVuZGVmc2FmZSI6ICJeMi4wLjUiCiAgICAgIH0sCiAgICAgICJiaW4iOiB7CiAgICAgICAgIm5vZGVtb24iOiAiYmluL25vZGVtb24uanMiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MTAiCiAgICAgIH0sCiAgICAgICJmdW5kaW5nIjogewogICAgICAgICJ0eXBlIjogIm9wZW5jb2xsZWN0aXZlIiwKICAgICAgICAidXJsIjogImh0dHBzOi8vb3BlbmNvbGxlY3RpdmUuY29tL25vZGVtb24iCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL25vZGVtb24vbm9kZV9tb2R1bGVzL2FueW1hdGNoIjogewogICAgICAidmVyc2lvbiI6ICIzLjEuMyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9hbnltYXRjaC8tL2FueW1hdGNoLTMuMS4zLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUtNUmVGVXIwQjR0K0QrT0JralIzS1lxdm9jcDJYYVN6TzU1VWNCNm1nUU1kM0tiY0UrbVdUeXZWVjdEL3pzZEViTm5WNmFjWlV1dGtpSFFYdlRyMVJ3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAibm9ybWFsaXplLXBhdGgiOiAiXjMuMC4wIiwKICAgICAgICAicGljb21hdGNoIjogIl4yLjAuNCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0gOCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbm9kZW1vbi9ub2RlX21vZHVsZXMvYmluYXJ5LWV4dGVuc2lvbnMiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMy4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2JpbmFyeS1leHRlbnNpb25zLy0vYmluYXJ5LWV4dGVuc2lvbnMtMi4zLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItQ2VoKzdveDVxZTdMSnVMSG9ZMGZlaDNwSHVVREhBY1JVZXlMMlZZZ2had2Zwa05JeS8rOE9jZzBhM1V1U29ZemF2bXlsd3VMV1FPZjNobDBqak1NSXc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTgiCiAgICAgIH0sCiAgICAgICJmdW5kaW5nIjogewogICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL3NpbmRyZXNvcmh1cyIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbm9kZW1vbi9ub2RlX21vZHVsZXMvYnJhY2VzIjogewogICAgICAidmVyc2lvbiI6ICIzLjAuMyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9icmFjZXMvLS9icmFjZXMtMy4wLjMudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTIteVFiWGdPL09TWlZEMklzaUxscm8rN0hmNlExOEVKcktTRXNkb016S2VQS1hjdDNndkQ4b0xjT1FkSXpHdXByNUZqK0VEZThnTy9seGMxQnpmTXB4dkE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJmaWxsLXJhbmdlIjogIl43LjEuMSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj04IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9ub2RlbW9uL25vZGVfbW9kdWxlcy9jaG9raWRhciI6IHsKICAgICAgInZlcnNpb24iOiAiMy42LjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvY2hva2lkYXIvLS9jaG9raWRhci0zLjYuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi03VlQxM2Ztam90S3BHaXBDVzlKRVFBdXNFUEUrRWk4bmw2L2c0RkJBbUltMEdPT0xNdWE5TkREby9EV3AwWkF4Q3IzY1BxNVpwQnFtUEFRZ0RkYTJQdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImFueW1hdGNoIjogIn4zLjEuMiIsCiAgICAgICAgImJyYWNlcyI6ICJ+My4wLjIiLAogICAgICAgICJnbG9iLXBhcmVudCI6ICJ+NS4xLjIiLAogICAgICAgICJpcy1iaW5hcnktcGF0aCI6ICJ+Mi4xLjAiLAogICAgICAgICJpcy1nbG9iIjogIn40LjAuMSIsCiAgICAgICAgIm5vcm1hbGl6ZS1wYXRoIjogIn4zLjAuMCIsCiAgICAgICAgInJlYWRkaXJwIjogIn4zLjYuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0gOC4xMC4wIgogICAgICB9LAogICAgICAiZnVuZGluZyI6IHsKICAgICAgICAidXJsIjogImh0dHBzOi8vcGF1bG1pbGxyLmNvbS9mdW5kaW5nLyIKICAgICAgfSwKICAgICAgIm9wdGlvbmFsRGVwZW5kZW5jaWVzIjogewogICAgICAgICJmc2V2ZW50cyI6ICJ+Mi4zLjIiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL25vZGVtb24vbm9kZV9tb2R1bGVzL2RlYnVnIjogewogICAgICAidmVyc2lvbiI6ICI0LjQuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9kZWJ1Zy8tL2RlYnVnLTQuNC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUtjS0NxaWZ0QkpjWnIrKzd5a29ESUV3U2EzWFdvd1RmTlBvOTJCWXhqWGl5WUVWclVRaDJhTHloeEJDd3d3K2hlb3J0VUZ4RUpZY1J6b3NzdFRFQllRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAibXMiOiAiXjIuMS4zIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTYuMCIKICAgICAgfSwKICAgICAgInBlZXJEZXBlbmRlbmNpZXNNZXRhIjogewogICAgICAgICJzdXBwb3J0cy1jb2xvciI6IHsKICAgICAgICAgICJvcHRpb25hbCI6IHRydWUKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL25vZGVtb24vbm9kZV9tb2R1bGVzL2ZpbGwtcmFuZ2UiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjcuMS4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2ZpbGwtcmFuZ2UvLS9maWxsLXJhbmdlLTcuMS4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVlzR3BlM1dITEs4WllpNHRXRGcySnkzZWJSejJyWG93RHhubGQ0YmtRQjAwY2MvMVp3OUFXbkMwaTl6dERKaXRpdnRRdmFJOUthTHlLcmMraEJXMHlnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAidG8tcmVnZXgtcmFuZ2UiOiAiXjUuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTgiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL25vZGVtb24vbm9kZV9tb2R1bGVzL2ZzZXZlbnRzIjogewogICAgICAidmVyc2lvbiI6ICIyLjMuMyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9mc2V2ZW50cy8tL2ZzZXZlbnRzLTIuMy4zLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTV4b0RmWCtmTDdmYUFUbmFnbVdQcGJGdHdoL1I3N1dtTU1xcUhHUzY1QzN2dkIwWUhyZ0YrQjFZbVozNDQxdE1qNW42M2swMjEyWE5vSnd6bGhmZlF3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImhhc0luc3RhbGxTY3JpcHQiOiB0cnVlLAogICAgICAib3B0aW9uYWwiOiB0cnVlLAogICAgICAib3MiOiBbCiAgICAgICAgImRhcndpbiIKICAgICAgXSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiXjguMTYuMCB8fCBeMTAuNi4wIHx8ID49MTEuMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9ub2RlbW9uL25vZGVfbW9kdWxlcy9nbG9iLXBhcmVudCI6IHsKICAgICAgInZlcnNpb24iOiAiNS4xLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZ2xvYi1wYXJlbnQvLS9nbG9iLXBhcmVudC01LjEuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1BT0lnU1FDZXBpSll3UDNBUm5HeCs1Vm5UdTJIQllkemJHUDQ1ZUx3MXZyM3pCM3ZaTGV5ZWQxc0M5aG5iY09jOS9Tck15TTVSUFFya0d6NGFTOVpvdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWdsb2IiOiAiXjQuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PSA2IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9ub2RlbW9uL25vZGVfbW9kdWxlcy9pcy1iaW5hcnktcGF0aCI6IHsKICAgICAgInZlcnNpb24iOiAiMi4xLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXMtYmluYXJ5LXBhdGgvLS9pcy1iaW5hcnktcGF0aC0yLjEuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1aTUVSWWVzNnBEeWR5dUdpZHNlN09zSHh0Ykk3V1ZlVUVvemdSL2c3cmQweFVpbVlObHZaUkUvSzJNZ1pUald5NzI1SWZlbExlVmNFTTk3bW10UkdYdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImJpbmFyeS1leHRlbnNpb25zIjogIl4yLjAuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj04IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9ub2RlbW9uL25vZGVfbW9kdWxlcy9pcy1leHRnbG9iIjogewogICAgICAidmVyc2lvbiI6ICIyLjEuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1leHRnbG9iLy0vaXMtZXh0Z2xvYi0yLjEuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1TYktiQU5rTjYwM1ZpNGpFWnY0OUxlVkpNbjR5R3dzYnpad29yRW95RWl1dHNOM25KWWRiTzM2emZoR0o2UUVEcE9aSUZrRHRucTVKUnhtdmwzanNvUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9ub2RlbW9uL25vZGVfbW9kdWxlcy9pcy1nbG9iIjogewogICAgICAidmVyc2lvbiI6ICI0LjAuMyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1nbG9iLy0vaXMtZ2xvYi00LjAuMy50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi14ZWxTYXlISDM2WmdFN1pXaGxpN3BXMzRoTmJObDhPanY1S1Zta0pENGhCZEQzdGg4VGZrOXZZYXNMTSttWFdPWmhGa2daZnhoTFNucndScjRlbFNTZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWV4dGdsb2IiOiAiXjIuMS4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbm9kZW1vbi9ub2RlX21vZHVsZXMvaXMtbnVtYmVyIjogewogICAgICAidmVyc2lvbiI6ICI3LjAuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1udW1iZXIvLS9pcy1udW1iZXItNy4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItNDFDaWZrZzZlOFR5bFNwZHRUcGVMVk1xdlNCRVZ6VHR0SHZFUkQ3NDErcG5aOEFOdjAwMDRNUkw0M1FLUERsSzljR3ZOcDZOWldaVUJsYkdYWXh4bmc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTIuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbm9kZW1vbi9ub2RlX21vZHVsZXMvbXMiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMS4zIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL21zLy0vbXMtMi4xLjMudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItNkZsenViVExaRzNKMmEvTlZDQWxlRWhqenE1b3hnSHlhQ1U5eVlYdmNMc3ZvVmFISnEvczV4WEk2L1hYUDZ0ejdSOXhBT3RIblNPL3RYdEYzV1JUbEE9PSIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9ub2RlbW9uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUtcGF0aCI6IHsKICAgICAgInZlcnNpb24iOiAiMy4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbm9ybWFsaXplLXBhdGgvLS9ub3JtYWxpemUtcGF0aC0zLjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi02ZVpzNUxzM1d0Q2lzSFdwOVMyR1V5OGRxa3BHaTRCVlN6M0dhcWlFNmV6dWIwNTEyRVN6dFhVd1VCNkM2SUtiUWtZMlBuYi9tRDRXWW9qQ1J3Y3dMQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9ub2RlbW9uL25vZGVfbW9kdWxlcy9yZWFkZGlycCI6IHsKICAgICAgInZlcnNpb24iOiAiMy42LjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcmVhZGRpcnAvLS9yZWFkZGlycC0zLjYuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1oT1MwODlvbjhSZHVxZGJodlE1WjM3QTBFU2pzcXo2cW5SY2Zmc01VMzQ5NUZ1VGRxU20rN2JoSjI5SnZJT3NCREVFbmFuNURQdTl0M1RvOVZSbE16QT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgInBpY29tYXRjaCI6ICJeMi4yLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49OC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9ub2RlbW9uL25vZGVfbW9kdWxlcy90by1yZWdleC1yYW5nZSI6IHsKICAgICAgInZlcnNpb24iOiAiNS4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvdG8tcmVnZXgtcmFuZ2UvLS90by1yZWdleC1yYW5nZS01LjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi02NVA3aXo2WDV5RXIxY3djZ3ZReGJiSXc3VWszZ095NWRJZHRaNHJEdmVMcWhyZEpQK0xpL0h4NnR5SzBORWIrMkdDeW5lQ01KaUdxckFEQ1NOazhzUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLW51bWJlciI6ICJeNy4wLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49OC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9ub3JtYWxpemUtcGF0aCI6IHsKICAgICAgInZlcnNpb24iOiAiMi4xLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbm9ybWFsaXplLXBhdGgvLS9ub3JtYWxpemUtcGF0aC0yLjEuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi0zcEtKd0gxODRYby9sbkg2b3lQMXEycE1kN0hjeXBxcW1SczkxLzYvaTJDR3RXd0lLR0NrT09NVG0velhiZ1RFV0h3MXVOcE5pL2lnYzNlUE9ZSGI2dz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgInJlbW92ZS10cmFpbGluZy1zZXBhcmF0b3IiOiAiXjEuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvbnBtLXdhdGNoIjogewogICAgICAidmVyc2lvbiI6ICIwLjEzLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvbnBtLXdhdGNoLy0vbnBtLXdhdGNoLTAuMTMuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1NWWNnb2NxQ3pZQTQ0ZmVaaEZvWWo2OUZmU2FPMEVlUkUxZ2NSY21QYVhJcE5oVU1BaE5KMXB3aWMyQzRIbjBPUE9RbVpLU2w5MENQZ213dk9zVmhUZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgIm5vZGVtb24iOiAiXjMuMC4xIiwKICAgICAgICAidGhyb3VnaDIiOiAiXjQuMC4yIgogICAgICB9LAogICAgICAiYmluIjogewogICAgICAgICJucG0td2F0Y2giOiAiY2xpLmpzIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9vYmplY3QtY29weSI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvb2JqZWN0LWNvcHkvLS9vYmplY3QtY29weS0wLjEuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi03OUxZbjZWQWI2M3pndG1BdGVWT1dvOVZkajcxWlZCeTNQYnNlK1ZxeERwRVA4M1h1dWpNckdxSEl3QVhKNUkvYU0welU3ZEl5SUFoaWZWVFByTkl0UT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImNvcHktZGVzY3JpcHRvciI6ICJeMC4xLjAiLAogICAgICAgICJkZWZpbmUtcHJvcGVydHkiOiAiXjAuMi41IiwKICAgICAgICAia2luZC1vZiI6ICJeMy4wLjMiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9vYmplY3QtY29weS9ub2RlX21vZHVsZXMvZGVmaW5lLXByb3BlcnR5IjogewogICAgICAidmVyc2lvbiI6ICIwLjIuNSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9kZWZpbmUtcHJvcGVydHkvLS9kZWZpbmUtcHJvcGVydHktMC4yLjUudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItUnI3QURqUVplbmNlVk9BS29wNkFMa2tSQW1IMUE0R3g5aFYvN1p1alBVTjJya0FUcUZPMEpaTFpJbmJBanBaWW9KMWdVeDhNUk1RVmtZZW1jYk1TVEE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1kZXNjcmlwdG9yIjogIl4wLjEuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL29iamVjdC1jb3B5L25vZGVfbW9kdWxlcy9pcy1kZXNjcmlwdG9yIjogewogICAgICAidmVyc2lvbiI6ICIwLjEuNyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1kZXNjcmlwdG9yLy0vaXMtZGVzY3JpcHRvci0wLjEuNy50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1DM2dyWlR2T2JlTjF4dWQ0Y1JXbDM2Nk9NWFpUajArSEd5azRodmZweDRaSHQxUGI2MEFOU1hxQ0s3cGRPVGVVUXBSekVDQlNUcGhxdkQ3VStsMjJFZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWFjY2Vzc29yLWRlc2NyaXB0b3IiOiAiXjEuMC4xIiwKICAgICAgICAiaXMtZGF0YS1kZXNjcmlwdG9yIjogIl4xLjAuMSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0gMC40IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9vYmplY3QtdmlzaXQiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL29iamVjdC12aXNpdC8tL29iamVjdC12aXNpdC0xLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1HQmFNd3dBVks5cWJRTjNTY2RvME95dmdQVzdsM2xuYVZNajg0dVRPWmxzd2tYMEtwRjZmeURCSmh0VHRoZjdweW16dG9OMzYvS0VyMUR5aEY5NnpFQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzb2JqZWN0IjogIl4zLjAuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL29iamVjdC12aXNpdC9ub2RlX21vZHVsZXMvaXNvYmplY3QiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzb2JqZWN0Ly0vaXNvYmplY3QtMy4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItV2hCOXpDa3U3RUdUai9IUVFSejVhVVFFVWVvUVpIMmJXY2x0UkVyT3B5bUo0Ym9ZRTZ3TDlUYnIyM2tyUlBTWitDNXpxTlNyU3crQ2M3c1paNGI3dmc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvb2JqZWN0Lm9taXQiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL29iamVjdC5vbWl0Ly0vb2JqZWN0Lm9taXQtMi4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItVWlBTTVtaG1JdUtMc092ckwrQjBVMmQxaFhIRjNiRllXSXVIMUxNcHVWMkVKRUhHMU50ejA2UGdMRUhqbTZWRmQ4N05wSDhyYXN0dlBveXY2VVcyZkE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJmb3Itb3duIjogIl4wLjEuNCIsCiAgICAgICAgImlzLWV4dGVuZGFibGUiOiAiXjAuMS4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvb2JqZWN0LnBpY2siOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMy4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL29iamVjdC5waWNrLy0vb2JqZWN0LnBpY2stMS4zLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItdHFhL1VNeS9DQ29ZbWorSDVxYzA3cXZTTDlkcWNzL1daRU5aMUpidFdCbEFUUCtpVk9lNzc4Z0U2TVNpam55Q25PUnpEdVg2aFUrTEE0U1owOVlqRlE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpc29iamVjdCI6ICJeMy4wLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9vYmplY3QucGljay9ub2RlX21vZHVsZXMvaXNvYmplY3QiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzb2JqZWN0Ly0vaXNvYmplY3QtMy4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItV2hCOXpDa3U3RUdUai9IUVFSejVhVVFFVWVvUVpIMmJXY2x0UkVyT3B5bUo0Ym9ZRTZ3TDlUYnIyM2tyUlBTWitDNXpxTlNyU3crQ2M3c1paNGI3dmc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvb25jZSI6IHsKICAgICAgInZlcnNpb24iOiAiMS40LjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvb25jZS8tL29uY2UtMS40LjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItbE5hSmdJKzJRNVVSUUJrY2NFS0hUUU9QYVhkVXhuWlpFbFFUWlkwTUZVQXVhRXFlMUUrTnl2Z2R6L2FJeU5pNlo5TXpPNWR2MUg4bjU4L0dFTHAzK3c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJ3cmFwcHkiOiAiMSIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcGFyc2UtZ2xvYiI6IHsKICAgICAgInZlcnNpb24iOiAiMy4wLjQiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcGFyc2UtZ2xvYi8tL3BhcnNlLWdsb2ItMy4wLjQudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItRkM1VGVLMEF3WHpxM3RVQkZ0SDc0bmFXa1BRQ0VXczRLK3hNeFdaQmxLRFd1MGJWSFhHWmErS0txeEtpZGQ3eHdoZFoxOVpOdUYydU8xTS9yMTk2SEE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJnbG9iLWJhc2UiOiAiXjAuMy4wIiwKICAgICAgICAiaXMtZG90ZmlsZSI6ICJeMS4wLjAiLAogICAgICAgICJpcy1leHRnbG9iIjogIl4xLjAuMCIsCiAgICAgICAgImlzLWdsb2IiOiAiXjIuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcGFzY2FsY2FzZSI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcGFzY2FsY2FzZS8tL3Bhc2NhbGNhc2UtMC4xLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItWEhYZnUveU9RUnk5dllPdFVEVk1ONjBPRUpqVzAxM0dvT2JHMW8reHdRVHBCOWVZSlgvQmpYTXNkVzEzWkRQcnVGaFlZbjBBRzIydzB4Z1FNd2wzTnc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcGF0aC1pcy1hYnNvbHV0ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcGF0aC1pcy1hYnNvbHV0ZS8tL3BhdGgtaXMtYWJzb2x1dGUtMS4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItQVZidzNVSjJlOWJxNjR2U2FTOUFtMGZqZTFQYThwYkdxVFRzbVhmYUlpTXBucjVEbERoZkpPdUxqOVNmOTVaUFZEQVVlckRmRWs4OE1QbVBlN1VDUWc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcGF0aC1wYXJzZSI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjciLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcGF0aC1wYXJzZS8tL3BhdGgtcGFyc2UtMS4wLjcudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItTERKelBWRUVFUFIreTQ4ejkzQTBFZDB5WGI4cEFCeUdXby9rNVlZZFlncFkyLzJFc09za3NKcnE3bE9IeHJ5clZPbjFlakc2b0FwOGFodk9JUUQ4c3c9PSIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9waWNvbWF0Y2giOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMy4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3BpY29tYXRjaC8tL3BpY29tYXRjaC0yLjMuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1KVTN0ZUhUTmptRTJWQ0dGenVZOEVYekNEVndFcUIyYThmc0l2d2FTdEhoQVdKRWVWZDFvMVFEODBDVTYrWmRFWFhTTGJTc3VMd0pqa0NCV3FSUVVWQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49OC42IgogICAgICB9LAogICAgICAiZnVuZGluZyI6IHsKICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9qb25zY2hsaW5rZXJ0IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9wb3NpeC1jaGFyYWN0ZXItY2xhc3NlcyI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcG9zaXgtY2hhcmFjdGVyLWNsYXNzZXMvLS9wb3NpeC1jaGFyYWN0ZXItY2xhc3Nlcy0wLjEuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi14VGdZQmMzZnVvN1l0N0piaXVGeFNZR1RvTW96OGZMb0U2VEM5V3gxUC91K0xmZVRoTU9BcW11eUVDbmxCYWFKYit1MW05aEhpWFVFdHdXNE96ZlVKZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9wcmVzZXJ2ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMC4yLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcHJlc2VydmUvLS9wcmVzZXJ2ZS0wLjIuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1zLzQ2c1lleWxVZkhOakkrc0EvNzhGQUhsbUl1S3FJOXdObnpFT0dlaEFsVVVZZU9idjVDMm1PaW5YQmp5VXlXbUoyU2ZjUzIveWRBcEg0aFRGNFdYUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9wcm9jZXNzLW5leHRpY2stYXJncyI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcHJvY2Vzcy1uZXh0aWNrLWFyZ3MvLS9wcm9jZXNzLW5leHRpY2stYXJncy0yLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi0zb3VVT3BRaHRncmJPYTE3SjcrdXhPVHBJVFlXYUdQNy9BaG9SMytBKy8xZTlza3J6ZWxHaS9kWHpFWXl2Ynh1YkVGNlduMnlwc2NUS2lLSkZGbjFhZz09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3BzdHJlZS5yZW15IjogewogICAgICAidmVyc2lvbiI6ICIxLjEuOCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9wc3RyZWUucmVteS8tL3BzdHJlZS5yZW15LTEuMS44LnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTc3RFp3eFFteEtudTNhUjU0MlUrWDhGeXBOemJmSitDNVhRRGszdVdqV3huNjE1MWFJTUd0aFdZUlhUcVQxRTVvSnZnK2xqYWEyT0ppK1ZmdkNPUTh3PT0iLAogICAgICAiZGV2IjogdHJ1ZQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmFuZG9tYXRpYyI6IHsKICAgICAgInZlcnNpb24iOiAiMy4xLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcmFuZG9tYXRpYy8tL3JhbmRvbWF0aWMtMy4xLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItVHVERTVLeFowSjQ2MVJWanJKWkNKYytKK3pDa1RiMU1iSDlBUVVxNjhzTWhPTWN5OWpMY2IzQnJaS2dwOXE5TmNsdGRnNFFWcVdySDAyVzJFRkZWWXc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1udW1iZXIiOiAiXjQuMC4wIiwKICAgICAgICAia2luZC1vZiI6ICJeNi4wLjAiLAogICAgICAgICJtYXRoLXJhbmRvbSI6ICJeMS4wLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49IDAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmFuZG9tYXRpYy9ub2RlX21vZHVsZXMvaXMtbnVtYmVyIjogewogICAgICAidmVyc2lvbiI6ICI0LjAuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1udW1iZXIvLS9pcy1udW1iZXItNC4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItclNrbGNBSWxmMU9tRmR5QXFibldUTFZlbHNRNTh1dlo2NlMvWnlhd2pXcUl2aVRXQ2pnMlB6Vkd3OFdVQStuTnVQVHFiNHdnQStOc3pySiswOExsZ1E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmFuZG9tYXRpYy9ub2RlX21vZHVsZXMva2luZC1vZiI6IHsKICAgICAgInZlcnNpb24iOiAiNi4wLjMiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcva2luZC1vZi8tL2tpbmQtb2YtNi4wLjMudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItZGNTMXVsKzl0bWVEOTVUK3gyOC9laExnZDltRU5hM0xzdkRUdHptM3Z5QkVPN1JQcHR2QUQrdDQ0V1ZYYVVqVEJSY3JwRmVGbEM4V0NydVVSNDU2aHc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtIjogewogICAgICAidmVyc2lvbiI6ICIyLjMuOCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9yZWFkYWJsZS1zdHJlYW0vLS9yZWFkYWJsZS1zdHJlYW0tMi4zLjgudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItOHAwQVVrNFhPRGdJZXdTaTBsOEVwanMrRVZuV2lLN05vRElFR1UwSGhFNytaeVk4RDFJTVk3b2R1NWxSckZYR2c3MUwxNUtHOFFyUG11bTQ1UlR0ZEE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJjb3JlLXV0aWwtaXMiOiAifjEuMC4wIiwKICAgICAgICAiaW5oZXJpdHMiOiAifjIuMC4zIiwKICAgICAgICAiaXNhcnJheSI6ICJ+MS4wLjAiLAogICAgICAgICJwcm9jZXNzLW5leHRpY2stYXJncyI6ICJ+Mi4wLjAiLAogICAgICAgICJzYWZlLWJ1ZmZlciI6ICJ+NS4xLjEiLAogICAgICAgICJzdHJpbmdfZGVjb2RlciI6ICJ+MS4xLjEiLAogICAgICAgICJ1dGlsLWRlcHJlY2F0ZSI6ICJ+MS4wLjEiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3JlYWRhYmxlLXN0cmVhbS9ub2RlX21vZHVsZXMvc2FmZS1idWZmZXIiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjUuMS4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3NhZmUtYnVmZmVyLy0vc2FmZS1idWZmZXItNS4xLjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItR2QyVVpCSkRrWGxZN0diSnhmc0U4L252S2tVRVUxRzM4YzFzaU42UVA2YTlQVDlNbUhCOEducHNjU21NSlNvRjhMT0lydDh1ZC93UHRvanlzNEc2K2c9PSIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZWFkZGlycCI6IHsKICAgICAgInZlcnNpb24iOiAiMi4yLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcmVhZGRpcnAvLS9yZWFkZGlycC0yLjIuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi0xSlUvOHErVmdGWnl4d3JKK1NWSU9zaCtLeXdXR3BkczNOVHFpa2lLcERNWldTY21BWXlLSWdxa08rQVJ2TldKZlhlWFIxenh6N2FIRjR1NEN5SDZ2UT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImdyYWNlZnVsLWZzIjogIl40LjEuMTEiLAogICAgICAgICJtaWNyb21hdGNoIjogIl4zLjEuMTAiLAogICAgICAgICJyZWFkYWJsZS1zdHJlYW0iOiAiXjIuMC4yIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3JlYWRkaXJwL25vZGVfbW9kdWxlcy9hcnItZGlmZiI6IHsKICAgICAgInZlcnNpb24iOiAiNC4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYXJyLWRpZmYvLS9hcnItZGlmZi00LjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1ZVklRODJnWlBHQmViUVYvYThkYXI0QWl0ekNRczBqalh3TVBabGxwWE1hR2pYUFlWVWF3U3hRclJzamhqdXB5VnhFdmJIZ1VtSWhLVmxORCtqMDJrQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZWFkZGlycC9ub2RlX21vZHVsZXMvYXJyYXktdW5pcXVlIjogewogICAgICAidmVyc2lvbiI6ICIwLjMuMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9hcnJheS11bmlxdWUvLS9hcnJheS11bmlxdWUtMC4zLjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItU2xlUldqaDlKVXVkMndIMWhQczlyWkJaMzNINlQ5SE9pTDB1d0duR3g5RnBFNndLR3lmV3VnbWJrRU9JczZxV3JaaGcwTFdlTHppTHJFd1FKaHM1bVE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmVhZGRpcnAvbm9kZV9tb2R1bGVzL2JyYWNlcyI6IHsKICAgICAgInZlcnNpb24iOiAiMi4zLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvYnJhY2VzLy0vYnJhY2VzLTIuMy4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWFOZGJuajlQOFBqZFhVNHliYVdMSzJJRjNqYy9Fb0RZYkM3QWF6VzZ0bzNUUnNmWHhzY0M5VVhPQjVpRGlFUXJreUliV3AyU0xRZGE0K1FBYTduYzN3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiYXJyLWZsYXR0ZW4iOiAiXjEuMS4wIiwKICAgICAgICAiYXJyYXktdW5pcXVlIjogIl4wLjMuMiIsCiAgICAgICAgImV4dGVuZC1zaGFsbG93IjogIl4yLjAuMSIsCiAgICAgICAgImZpbGwtcmFuZ2UiOiAiXjQuMC4wIiwKICAgICAgICAiaXNvYmplY3QiOiAiXjMuMC4xIiwKICAgICAgICAicmVwZWF0LWVsZW1lbnQiOiAiXjEuMS4yIiwKICAgICAgICAic25hcGRyYWdvbiI6ICJeMC44LjEiLAogICAgICAgICJzbmFwZHJhZ29uLW5vZGUiOiAiXjIuMC4xIiwKICAgICAgICAic3BsaXQtc3RyaW5nIjogIl4zLjAuMiIsCiAgICAgICAgInRvLXJlZ2V4IjogIl4zLjAuMSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3JlYWRkaXJwL25vZGVfbW9kdWxlcy9icmFjZXMvbm9kZV9tb2R1bGVzL2V4dGVuZC1zaGFsbG93IjogewogICAgICAidmVyc2lvbiI6ICIyLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9leHRlbmQtc2hhbGxvdy8tL2V4dGVuZC1zaGFsbG93LTIuMC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLXpDblR0bHhOb0FpRGMzZ3FZMmFZQVdGeDdYV1dpYXN1RjJLOE1lNVdiTjhvdEhLVFVLQndqUHROcFJzL3JiVVptN0t4V0FhTmo3UDFhL3A1MkdiVnVnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtZXh0ZW5kYWJsZSI6ICJeMC4xLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZWFkZGlycC9ub2RlX21vZHVsZXMvZXhwYW5kLWJyYWNrZXRzIjogewogICAgICAidmVyc2lvbiI6ICIyLjEuNCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9leHBhbmQtYnJhY2tldHMvLS9leHBhbmQtYnJhY2tldHMtMi4xLjQudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItdy9vek9LUjlPYmszcW9XZVkvV0RpNk1GdGE5QW9NUit6dWQ2MG1kbmJuaU1jQnhSdUZKeUR0MkxkWC8xNEExVUFCZXFrK1VrK0xEZlVwdm9HS3BwWkE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJkZWJ1ZyI6ICJeMi4zLjMiLAogICAgICAgICJkZWZpbmUtcHJvcGVydHkiOiAiXjAuMi41IiwKICAgICAgICAiZXh0ZW5kLXNoYWxsb3ciOiAiXjIuMC4xIiwKICAgICAgICAicG9zaXgtY2hhcmFjdGVyLWNsYXNzZXMiOiAiXjAuMS4wIiwKICAgICAgICAicmVnZXgtbm90IjogIl4xLjAuMCIsCiAgICAgICAgInNuYXBkcmFnb24iOiAiXjAuOC4xIiwKICAgICAgICAidG8tcmVnZXgiOiAiXjMuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmVhZGRpcnAvbm9kZV9tb2R1bGVzL2V4cGFuZC1icmFja2V0cy9ub2RlX21vZHVsZXMvZGVmaW5lLXByb3BlcnR5IjogewogICAgICAidmVyc2lvbiI6ICIwLjIuNSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9kZWZpbmUtcHJvcGVydHkvLS9kZWZpbmUtcHJvcGVydHktMC4yLjUudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItUnI3QURqUVplbmNlVk9BS29wNkFMa2tSQW1IMUE0R3g5aFYvN1p1alBVTjJya0FUcUZPMEpaTFpJbmJBanBaWW9KMWdVeDhNUk1RVmtZZW1jYk1TVEE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1kZXNjcmlwdG9yIjogIl4wLjEuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3JlYWRkaXJwL25vZGVfbW9kdWxlcy9leHBhbmQtYnJhY2tldHMvbm9kZV9tb2R1bGVzL2V4dGVuZC1zaGFsbG93IjogewogICAgICAidmVyc2lvbiI6ICIyLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9leHRlbmQtc2hhbGxvdy8tL2V4dGVuZC1zaGFsbG93LTIuMC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLXpDblR0bHhOb0FpRGMzZ3FZMmFZQVdGeDdYV1dpYXN1RjJLOE1lNVdiTjhvdEhLVFVLQndqUHROcFJzL3JiVVptN0t4V0FhTmo3UDFhL3A1MkdiVnVnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtZXh0ZW5kYWJsZSI6ICJeMC4xLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZWFkZGlycC9ub2RlX21vZHVsZXMvZXhwYW5kLWJyYWNrZXRzL25vZGVfbW9kdWxlcy9pcy1kZXNjcmlwdG9yIjogewogICAgICAidmVyc2lvbiI6ICIwLjEuNyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1kZXNjcmlwdG9yLy0vaXMtZGVzY3JpcHRvci0wLjEuNy50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1DM2dyWlR2T2JlTjF4dWQ0Y1JXbDM2Nk9NWFpUajArSEd5azRodmZweDRaSHQxUGI2MEFOU1hxQ0s3cGRPVGVVUXBSekVDQlNUcGhxdkQ3VStsMjJFZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWFjY2Vzc29yLWRlc2NyaXB0b3IiOiAiXjEuMC4xIiwKICAgICAgICAiaXMtZGF0YS1kZXNjcmlwdG9yIjogIl4xLjAuMSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0gMC40IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZWFkZGlycC9ub2RlX21vZHVsZXMvZXh0Z2xvYiI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjQiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXh0Z2xvYi8tL2V4dGdsb2ItMi4wLjQudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItTm1iNlFYa0VMc3VCcjI0Q0pTa2lsbzZVSEhnYmVrSzVVaVpnZkU2VUhEM0ViMjdZQzZvRCtiaGNUK3RKNmNsOGRtc2dkUXhuV2xjcnk4a3NCSUJMcHc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJhcnJheS11bmlxdWUiOiAiXjAuMy4yIiwKICAgICAgICAiZGVmaW5lLXByb3BlcnR5IjogIl4xLjAuMCIsCiAgICAgICAgImV4cGFuZC1icmFja2V0cyI6ICJeMi4xLjQiLAogICAgICAgICJleHRlbmQtc2hhbGxvdyI6ICJeMi4wLjEiLAogICAgICAgICJmcmFnbWVudC1jYWNoZSI6ICJeMC4yLjEiLAogICAgICAgICJyZWdleC1ub3QiOiAiXjEuMC4wIiwKICAgICAgICAic25hcGRyYWdvbiI6ICJeMC44LjEiLAogICAgICAgICJ0by1yZWdleCI6ICJeMy4wLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZWFkZGlycC9ub2RlX21vZHVsZXMvZXh0Z2xvYi9ub2RlX21vZHVsZXMvZGVmaW5lLXByb3BlcnR5IjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9kZWZpbmUtcHJvcGVydHkvLS9kZWZpbmUtcHJvcGVydHktMS4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItY1pUWUtGV3NwdDlqWnNNc2NXbzhzYy81bGJQQzlRME41bkJMZ2IrWWQ5MTVpTDN1ZEIxdUZnUzNCOFlDeDY2VVZIcTAxOERBVkZvZWU3eCtneGdnZUE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1kZXNjcmlwdG9yIjogIl4xLjAuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3JlYWRkaXJwL25vZGVfbW9kdWxlcy9leHRnbG9iL25vZGVfbW9kdWxlcy9leHRlbmQtc2hhbGxvdyI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvZXh0ZW5kLXNoYWxsb3cvLS9leHRlbmQtc2hhbGxvdy0yLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi16Q25UdGx4Tm9BaURjM2dxWTJhWUFXRng3WFdXaWFzdUYySzhNZTVXYk44b3RIS1RVS0J3alB0TnBScy9yYlVabTdLeFdBYU5qN1AxYS9wNTJHYlZ1Zz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWV4dGVuZGFibGUiOiAiXjAuMS4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmVhZGRpcnAvbm9kZV9tb2R1bGVzL2ZpbGwtcmFuZ2UiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjQuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2ZpbGwtcmFuZ2UvLS9maWxsLXJhbmdlLTQuMC4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVZjcExUV3FXRGlUZXJ1Z2pqOGUzK2VzYmcrc2tTM005ZTU0VXVSM2lDZUlETVhDTFRzQUg4aFRTekRRVS9YNi82dDNlWWtPS29aU2VmMlBsVTZVMVhRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiZXh0ZW5kLXNoYWxsb3ciOiAiXjIuMC4xIiwKICAgICAgICAiaXMtbnVtYmVyIjogIl4zLjAuMCIsCiAgICAgICAgInJlcGVhdC1zdHJpbmciOiAiXjEuNi4xIiwKICAgICAgICAidG8tcmVnZXgtcmFuZ2UiOiAiXjIuMS4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmVhZGRpcnAvbm9kZV9tb2R1bGVzL2ZpbGwtcmFuZ2Uvbm9kZV9tb2R1bGVzL2V4dGVuZC1zaGFsbG93IjogewogICAgICAidmVyc2lvbiI6ICIyLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9leHRlbmQtc2hhbGxvdy8tL2V4dGVuZC1zaGFsbG93LTIuMC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLXpDblR0bHhOb0FpRGMzZ3FZMmFZQVdGeDdYV1dpYXN1RjJLOE1lNVdiTjhvdEhLVFVLQndqUHROcFJzL3JiVVptN0t4V0FhTmo3UDFhL3A1MkdiVnVnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtZXh0ZW5kYWJsZSI6ICJeMC4xLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZWFkZGlycC9ub2RlX21vZHVsZXMvaXMtbnVtYmVyIjogewogICAgICAidmVyc2lvbiI6ICIzLjAuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1udW1iZXIvLS9pcy1udW1iZXItMy4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItNGNib0NxSXBsaUgrbUF2Rk5lZ2paUTRrZ0tjM1pVaFFWcjNIdldiU2g1cTNXSDJ2ODJjdCtUMlkxaGRVNUdkdG9yeC9jTGlmUWpxQ2JMN2Jwem5MVGc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJraW5kLW9mIjogIl4zLjAuMiIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3JlYWRkaXJwL25vZGVfbW9kdWxlcy9pcy1udW1iZXIvbm9kZV9tb2R1bGVzL2tpbmQtb2YiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMi4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2tpbmQtb2YvLS9raW5kLW9mLTMuMi4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLU5PVzlRUVhNb1pHZy9vcW5WTm9OVFRJRkVJaWQxNjI3V0NmZlVCSkVkTXhZQXBxN21ORTdDcHp1Y0lQYytaUWcyNVBoZWo3SUpTbVgzaE8rb2JsT3RRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtYnVmZmVyIjogIl4xLjEuNSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3JlYWRkaXJwL25vZGVfbW9kdWxlcy9pc29iamVjdCI6IHsKICAgICAgInZlcnNpb24iOiAiMy4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXNvYmplY3QvLS9pc29iamVjdC0zLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1XaEI5ekNrdTdFR1RqL0hRUVJ6NWFVUUVVZW9RWkgyYldjbHRSRXJPcHltSjRib1lFNndMOVRicjIza3JSUFNaK0M1enFOU3JTdytDYzdzWlo0Yjd2Zz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZWFkZGlycC9ub2RlX21vZHVsZXMva2luZC1vZiI6IHsKICAgICAgInZlcnNpb24iOiAiNi4wLjMiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcva2luZC1vZi8tL2tpbmQtb2YtNi4wLjMudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItZGNTMXVsKzl0bWVEOTVUK3gyOC9laExnZDltRU5hM0xzdkRUdHptM3Z5QkVPN1JQcHR2QUQrdDQ0V1ZYYVVqVEJSY3JwRmVGbEM4V0NydVVSNDU2aHc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmVhZGRpcnAvbm9kZV9tb2R1bGVzL21pY3JvbWF0Y2giOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMS4xMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9taWNyb21hdGNoLy0vbWljcm9tYXRjaC0zLjEuMTAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItTVdpa2dsOW45TTN3K2Jwc1kzSGU4TCt3OWVGOTMzOHhSbDhJQU81dmlEaXp3U3p6aUZFeVV6bzJ4cnJsb0I2NEFEYlRmOHVBOHZScXF0dERUT21jY2c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJhcnItZGlmZiI6ICJeNC4wLjAiLAogICAgICAgICJhcnJheS11bmlxdWUiOiAiXjAuMy4yIiwKICAgICAgICAiYnJhY2VzIjogIl4yLjMuMSIsCiAgICAgICAgImRlZmluZS1wcm9wZXJ0eSI6ICJeMi4wLjIiLAogICAgICAgICJleHRlbmQtc2hhbGxvdyI6ICJeMy4wLjIiLAogICAgICAgICJleHRnbG9iIjogIl4yLjAuNCIsCiAgICAgICAgImZyYWdtZW50LWNhY2hlIjogIl4wLjIuMSIsCiAgICAgICAgImtpbmQtb2YiOiAiXjYuMC4yIiwKICAgICAgICAibmFub21hdGNoIjogIl4xLjIuOSIsCiAgICAgICAgIm9iamVjdC5waWNrIjogIl4xLjMuMCIsCiAgICAgICAgInJlZ2V4LW5vdCI6ICJeMS4wLjAiLAogICAgICAgICJzbmFwZHJhZ29uIjogIl4wLjguMSIsCiAgICAgICAgInRvLXJlZ2V4IjogIl4zLjAuMiIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3JlZ2V4LWNhY2hlIjogewogICAgICAidmVyc2lvbiI6ICIwLjQuNCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9yZWdleC1jYWNoZS8tL3JlZ2V4LWNhY2hlLTAuNC40LnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLW5WSVp3dENqa0M5WWd2V2twTTU1QjVyQmhCWVJaaEFhSmJnY0ZZWFhzSG5iWjlVWkk5bm5WV1lacEJsQ3F2OWhvMmVacnlQbldyWkdzT2RQd1ZXWFdRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtZXF1YWwtc2hhbGxvdyI6ICJeMC4xLjMiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZWdleC1ub3QiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4yIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3JlZ2V4LW5vdC8tL3JlZ2V4LW5vdC0xLjAuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1KNlNEalVnRHhRajVOdXNuT3RkRnhEd04vK0hXeWtSOEdFTHdjdEo3bWRxaGN5eTF4RWM0U1JGSFVYdnhUcDY2MVlhVktBamZSTFo5Y0NxUzZ0bjMyQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImV4dGVuZC1zaGFsbG93IjogIl4zLjAuMiIsCiAgICAgICAgInNhZmUtcmVnZXgiOiAiXjEuMS4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmVtb3ZlLXRyYWlsaW5nLXNlcGFyYXRvciI6IHsKICAgICAgInZlcnNpb24iOiAiMS4xLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcmVtb3ZlLXRyYWlsaW5nLXNlcGFyYXRvci8tL3JlbW92ZS10cmFpbGluZy1zZXBhcmF0b3ItMS4xLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItL2hTK1kwdTNhT2ZJRVRpYWlpclVGd0RCRHptWFB2TytqQWZLVGl0VW5nSVB6ZEtjNlowTG9Gak0vQ0s1UEw0QytlS3dIb2hsSEFiNkgwVkZmbW1Vc3c9PSIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZXBlYXQtZWxlbWVudCI6IHsKICAgICAgInZlcnNpb24iOiAiMS4xLjQiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcmVwZWF0LWVsZW1lbnQvLS9yZXBlYXQtZWxlbWVudC0xLjEuNC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1MRmlOZlJjU3U3S0szZXZNeVlPdUN6djNMMTBUVzd5QzFHMi8rU3RNaks4WTZWcWQyTUc3ci9Ranc0Z2h0dUNPakZ2bG5tcy9pTW1McXB2Vy9FUy9XUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZXBlYXQtc3RyaW5nIjogewogICAgICAidmVyc2lvbiI6ICIxLjYuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9yZXBlYXQtc3RyaW5nLy0vcmVwZWF0LXN0cmluZy0xLjYuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1QVjBkekNZRE5mUmkxakNEYkp6cFc3ak5ORFJ1Q09HL2pJNWN0UWNHS3QvY2xaRCtZY1BTM3lJbFd1VEpNbUVTQzhhZXZDRm1XSnk1d2pBRmdOcU42dz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvcmVzb2x2ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMS4yMi4xMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9yZXNvbHZlLy0vcmVzb2x2ZS0xLjIyLjEwLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLU5QUnkrL25jSU1lRGxUQXN1cXdLSWlmZXJpYXdoZWZGSnRrTlNXMHFaSkVxTUViK3FCdC83N0IvakdlZWVrK0YwdU9lTjA1Q0RhNkhYYmJJZ3RWWDR3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtY29yZS1tb2R1bGUiOiAiXjIuMTYuMCIsCiAgICAgICAgInBhdGgtcGFyc2UiOiAiXjEuMC43IiwKICAgICAgICAic3VwcG9ydHMtcHJlc2VydmUtc3ltbGlua3MtZmxhZyI6ICJeMS4wLjAiCiAgICAgIH0sCiAgICAgICJiaW4iOiB7CiAgICAgICAgInJlc29sdmUiOiAiYmluL3Jlc29sdmUiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49IDAuNCIKICAgICAgfSwKICAgICAgImZ1bmRpbmciOiB7CiAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvbGpoYXJiIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9yZXNvbHZlLXVybCI6IHsKICAgICAgInZlcnNpb24iOiAiMC4yLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvcmVzb2x2ZS11cmwvLS9yZXNvbHZlLXVybC0wLjIuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1adUY1NWhWVVFhYWN6Z09Jd3FXemtFY0VpZG1sRC94bDQ0eDFVWm5oT1hjWXVGTjJTNityY3hwRytDMU4zU28wd3ZOSTNEbUpJQ1VGZnUyU3hoQm12Zz09IiwKICAgICAgImRlcHJlY2F0ZWQiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5ZGVsbC9yZXNvbHZlLXVybCNkZXByZWNhdGVkIiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3JldCI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xLjE1IiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3JldC8tL3JldC0wLjEuMTUudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItVFRsWXBhK09MK3ZNTU5HMjR4U2xRR0VKM0IvUnpFZlVsTGN0N2I1Ry95dGF2K3dQcnBsQ3BWTUZ1d3pYYmtlY0pyYjZJWW8xaUZiMFM5djM3NzU0bWc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTIiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3NhZmUtcmVnZXgiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMS4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3NhZmUtcmVnZXgvLS9zYWZlLXJlZ2V4LTEuMS4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWFKWGNpZjR4bmFOVXp2VXVDNWdjYjQ2b1RTN3p2ZzRqcE1UbnVxdHJFUGxSM3ZGcjRweHRkVHdhRjFRczNFbmpuOUhLK1psd1F1aSthN3owU3l3SXpnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAicmV0IjogIn4wLjEuMTAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3NlbXZlciI6IHsKICAgICAgInZlcnNpb24iOiAiNy43LjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2VtdmVyLy0vc2VtdmVyLTcuNy4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVJGMEZ3K3JPNUFNZjlNQXlhUlhJNEFWMFVsajVsTUhxVnh4ZFNnaVZiaXhTQ1hvRW1tWC9qazBDdUp3NCszU3Fyb1lPOVZvVWgrSGN1Sml2dnRKZW1BPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImJpbiI6IHsKICAgICAgICAic2VtdmVyIjogImJpbi9zZW12ZXIuanMiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MTAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3NldC12YWx1ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMi4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2V0LXZhbHVlLy0vc2V0LXZhbHVlLTIuMC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUp4SGMxd2VDTjY4d1JZMGZoQ29YcHlLNTVtL1hQSGFmT21LNFVXRDdtMkNJMTRHTWNGeXB0NHcvMCtOVjVmL1pNYnkyRjZTMnd3QTdmZ3luaDlnV1N3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiZXh0ZW5kLXNoYWxsb3ciOiAiXjIuMC4xIiwKICAgICAgICAiaXMtZXh0ZW5kYWJsZSI6ICJeMC4xLjEiLAogICAgICAgICJpcy1wbGFpbi1vYmplY3QiOiAiXjIuMC4zIiwKICAgICAgICAic3BsaXQtc3RyaW5nIjogIl4zLjAuMSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3NldC12YWx1ZS9ub2RlX21vZHVsZXMvZXh0ZW5kLXNoYWxsb3ciOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2V4dGVuZC1zaGFsbG93Ly0vZXh0ZW5kLXNoYWxsb3ctMi4wLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItekNuVHRseE5vQWlEYzNncVkyYVlBV0Z4N1hXV2lhc3VGMks4TWU1V2JOOG90SEtUVUtCd2pQdE5wUnMvcmJVWm03S3hXQWFOajdQMWEvcDUyR2JWdWc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1leHRlbmRhYmxlIjogIl4wLjEuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3NoZWxsLXF1b3RlIjogewogICAgICAidmVyc2lvbiI6ICIxLjguMyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zaGVsbC1xdW90ZS8tL3NoZWxsLXF1b3RlLTEuOC4zLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLU9ibW5JRjRoWE5nMUJxaG5IbWdiREVURjhkTFBDZ2daV0Jqa1FmaFpwYnN6Wm5ZdXI1RFVsalRjQ0hpaTVMQzNKNUUweWVPLzFMSU15SCtVdkhRZ3l3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0gMC40IgogICAgICB9LAogICAgICAiZnVuZGluZyI6IHsKICAgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9samhhcmIiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3NpbXBsZS11cGRhdGUtbm90aWZpZXIiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3NpbXBsZS11cGRhdGUtbm90aWZpZXIvLS9zaW1wbGUtdXBkYXRlLW5vdGlmaWVyLTIuMC4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWEyQjlZMEtsTlhsOXUvdnNXNnNUSXU5dkdFcGZLdTJ3UlY2bDFIM1hFYXMvMGdVSXpHekJvUC9Jb3VUY1VRYm05SldaTEgzQ094eW4wM1RZbEZheDZ3PT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAic2VtdmVyIjogIl43LjUuMyIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0xMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvc25hcGRyYWdvbiI6IHsKICAgICAgInZlcnNpb24iOiAiMC44LjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc25hcGRyYWdvbi8tL3NuYXBkcmFnb24tMC44LjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItRnR5T25XTi93Q0hUVlhPTXd2U3YyNmQra281dldsSURENnpvVUo3TFc4dmgrWkJDOFFkbGp2ZVJQK2NyTnJ0Qndpb0VVV3kvNGRNdGJCakE0aW9ObGc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJiYXNlIjogIl4wLjExLjEiLAogICAgICAgICJkZWJ1ZyI6ICJeMi4yLjAiLAogICAgICAgICJkZWZpbmUtcHJvcGVydHkiOiAiXjAuMi41IiwKICAgICAgICAiZXh0ZW5kLXNoYWxsb3ciOiAiXjIuMC4xIiwKICAgICAgICAibWFwLWNhY2hlIjogIl4wLjIuMiIsCiAgICAgICAgInNvdXJjZS1tYXAiOiAiXjAuNS42IiwKICAgICAgICAic291cmNlLW1hcC1yZXNvbHZlIjogIl4wLjUuMCIsCiAgICAgICAgInVzZSI6ICJeMy4xLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9zbmFwZHJhZ29uLW5vZGUiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMS4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3NuYXBkcmFnb24tbm9kZS8tL3NuYXBkcmFnb24tbm9kZS0yLjEuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1PMjdsNHhhTVl0L1JTUTVUUjN2cFdDQUI1S2IvY3pJY3FVRk9NL0M0ZlljTG5iWlVjMVBralRBTWpvZjJwQldhU1R3T1VkNnFVSGNGR1ZHajdhSXdudz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImRlZmluZS1wcm9wZXJ0eSI6ICJeMS4wLjAiLAogICAgICAgICJpc29iamVjdCI6ICJeMy4wLjAiLAogICAgICAgICJzbmFwZHJhZ29uLXV0aWwiOiAiXjMuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvc25hcGRyYWdvbi1ub2RlL25vZGVfbW9kdWxlcy9kZWZpbmUtcHJvcGVydHkiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2RlZmluZS1wcm9wZXJ0eS8tL2RlZmluZS1wcm9wZXJ0eS0xLjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1jWlRZS0ZXc3B0OWpac01zY1dvOHNjLzVsYlBDOVEwTjVuQkxnYitZZDkxNWlMM3VkQjF1RmdTM0I4WUN4NjZVVkhxMDE4REFWRm9lZTd4K2d4Z2dlQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWRlc2NyaXB0b3IiOiAiXjEuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvc25hcGRyYWdvbi1ub2RlL25vZGVfbW9kdWxlcy9pc29iamVjdCI6IHsKICAgICAgInZlcnNpb24iOiAiMy4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXNvYmplY3QvLS9pc29iamVjdC0zLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1XaEI5ekNrdTdFR1RqL0hRUVJ6NWFVUUVVZW9RWkgyYldjbHRSRXJPcHltSjRib1lFNndMOVRicjIza3JSUFNaK0M1enFOU3JTdytDYzdzWlo0Yjd2Zz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9zbmFwZHJhZ29uLXV0aWwiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3NuYXBkcmFnb24tdXRpbC8tL3NuYXBkcmFnb24tdXRpbC0zLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1tYktrTWRRS3NqWDRCQUw0YlJZVGoyMWVkT2Y4Y043WEhkWVVKRWUrWm45OWhWRVljTXZLUGN0MUlxTmU3K0FaUGlybjhCQ0RPUUJIUVprbnFtS2xaUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImtpbmQtb2YiOiAiXjMuMi4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvc25hcGRyYWdvbi9ub2RlX21vZHVsZXMvZGVmaW5lLXByb3BlcnR5IjogewogICAgICAidmVyc2lvbiI6ICIwLjIuNSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9kZWZpbmUtcHJvcGVydHkvLS9kZWZpbmUtcHJvcGVydHktMC4yLjUudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItUnI3QURqUVplbmNlVk9BS29wNkFMa2tSQW1IMUE0R3g5aFYvN1p1alBVTjJya0FUcUZPMEpaTFpJbmJBanBaWW9KMWdVeDhNUk1RVmtZZW1jYk1TVEE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1kZXNjcmlwdG9yIjogIl4wLjEuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3NuYXBkcmFnb24vbm9kZV9tb2R1bGVzL2V4dGVuZC1zaGFsbG93IjogewogICAgICAidmVyc2lvbiI6ICIyLjAuMSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9leHRlbmQtc2hhbGxvdy8tL2V4dGVuZC1zaGFsbG93LTIuMC4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLXpDblR0bHhOb0FpRGMzZ3FZMmFZQVdGeDdYV1dpYXN1RjJLOE1lNVdiTjhvdEhLVFVLQndqUHROcFJzL3JiVVptN0t4V0FhTmo3UDFhL3A1MkdiVnVnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiaXMtZXh0ZW5kYWJsZSI6ICJeMC4xLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9zbmFwZHJhZ29uL25vZGVfbW9kdWxlcy9pcy1kZXNjcmlwdG9yIjogewogICAgICAidmVyc2lvbiI6ICIwLjEuNyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9pcy1kZXNjcmlwdG9yLy0vaXMtZGVzY3JpcHRvci0wLjEuNy50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1DM2dyWlR2T2JlTjF4dWQ0Y1JXbDM2Nk9NWFpUajArSEd5azRodmZweDRaSHQxUGI2MEFOU1hxQ0s3cGRPVGVVUXBSekVDQlNUcGhxdkQ3VStsMjJFZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWFjY2Vzc29yLWRlc2NyaXB0b3IiOiAiXjEuMC4xIiwKICAgICAgICAiaXMtZGF0YS1kZXNjcmlwdG9yIjogIl4xLjAuMSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0gMC40IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9zb3VyY2UtbWFwIjogewogICAgICAidmVyc2lvbiI6ICIwLjUuNyIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zb3VyY2UtbWFwLy0vc291cmNlLW1hcC0wLjUuNy50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1MYnJtSk9NVVNkRVZ4SUt2ZGNKelFDK25RaGU4RlVaUVRYUXk2K0k3NXNrTmduM09vUTBEWkE4WW5GYTdncDh0cXRMM0tQZjFrbW8wUjVEb0FwZVNHUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9zb3VyY2UtbWFwLXJlc29sdmUiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjAuNS4zIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3NvdXJjZS1tYXAtcmVzb2x2ZS8tL3NvdXJjZS1tYXAtcmVzb2x2ZS0wLjUuMy50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1IdHorUm5zWFdrNStQMnNseDVKaDNRNjZ2aFFqMUNsbG0wenZuYVk5OCtORngrRHYyQ0YvZjVPL3Q4eCtLYU5kcmRJQXNydU56b2gvS3BpYWxicUFudz09IiwKICAgICAgImRlcHJlY2F0ZWQiOiAiU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9seWRlbGwvc291cmNlLW1hcC1yZXNvbHZlI2RlcHJlY2F0ZWQiLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiYXRvYiI6ICJeMi4xLjIiLAogICAgICAgICJkZWNvZGUtdXJpLWNvbXBvbmVudCI6ICJeMC4yLjAiLAogICAgICAgICJyZXNvbHZlLXVybCI6ICJeMC4yLjEiLAogICAgICAgICJzb3VyY2UtbWFwLXVybCI6ICJeMC40LjAiLAogICAgICAgICJ1cml4IjogIl4wLjEuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvc291cmNlLW1hcC11cmwiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjAuNC4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3NvdXJjZS1tYXAtdXJsLy0vc291cmNlLW1hcC11cmwtMC40LjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItY1BpRk9UTFVLdkpGSWc0U0tWU2N5NGlsUFBXNnJGZ01nZnVaSlBOb0R1TXMzbkMxSGJNVXljQm9Kdzc3eEZJcDZ6MVVKUUpPZng2QzlHTUg4MERpVHc9PSIsCiAgICAgICJkZXByZWNhdGVkIjogIlNlZSBodHRwczovL2dpdGh1Yi5jb20vbHlkZWxsL3NvdXJjZS1tYXAtdXJsI2RlcHJlY2F0ZWQiLAogICAgICAiZGV2IjogdHJ1ZQogICAgfSwKICAgICJub2RlX21vZHVsZXMvc3BsaXQtc3RyaW5nIjogewogICAgICAidmVyc2lvbiI6ICIzLjEuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zcGxpdC1zdHJpbmcvLS9zcGxpdC1zdHJpbmctMy4xLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItTnpOVmhKRFlwd2NlVlZpaTgvSHU2REtmRDJHK05yUUhsUy9WL3Fndjc2M0VZdWRWd0VjTVFOeGQybGgrMFZyVUJ5WE4vb0prbDVnck9oWVd2UVVZaXc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJleHRlbmQtc2hhbGxvdyI6ICJeMy4wLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9zdGF0aWMtZXh0ZW5kIjogewogICAgICAidmVyc2lvbiI6ICIwLjEuMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zdGF0aWMtZXh0ZW5kLy0vc3RhdGljLWV4dGVuZC0wLjEuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi03MkU5K3VMYzI3TXQ3MThwTUh0OVZNTmlBTDRMTXNtRGJCdmE4bXhXVUNrVDA3ZlN6RUdNWVVDazBYV1k2bHAwajZSQkFHNGNKM21XdVp2Mk9FM3MwZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImRlZmluZS1wcm9wZXJ0eSI6ICJeMC4yLjUiLAogICAgICAgICJvYmplY3QtY29weSI6ICJeMC4xLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9zdGF0aWMtZXh0ZW5kL25vZGVfbW9kdWxlcy9kZWZpbmUtcHJvcGVydHkiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjAuMi41IiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2RlZmluZS1wcm9wZXJ0eS8tL2RlZmluZS1wcm9wZXJ0eS0wLjIuNS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1ScjdBRGpRWmVuY2VWT0FLb3A2QUxra1JBbUgxQTRHeDloVi83WnVqUFVOMnJrQVRxRk8wSlpMWkluYkFqcFpZb0oxZ1V4OE1STVFWa1llbWNiTVNUQT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLWRlc2NyaXB0b3IiOiAiXjAuMS4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvc3RhdGljLWV4dGVuZC9ub2RlX21vZHVsZXMvaXMtZGVzY3JpcHRvciI6IHsKICAgICAgInZlcnNpb24iOiAiMC4xLjciLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXMtZGVzY3JpcHRvci8tL2lzLWRlc2NyaXB0b3ItMC4xLjcudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItQzNnclpUdk9iZU4xeHVkNGNSV2wzNjZPTVhaVGowK0hHeWs0aHZmcHg0Wkh0MVBiNjBBTlNYcUNLN3BkT1RlVVFwUnpFQ0JTVHBocXZEN1UrbDIyRWc9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpcy1hY2Nlc3Nvci1kZXNjcmlwdG9yIjogIl4xLjAuMSIsCiAgICAgICAgImlzLWRhdGEtZGVzY3JpcHRvciI6ICJeMS4wLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49IDAuNCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvc3RyaW5nX2RlY29kZXIiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMS4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3N0cmluZ19kZWNvZGVyLy0vc3RyaW5nX2RlY29kZXItMS4xLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItbi9TaG52RGk2RkhiYlZmdmlybytXb2ppRnp2K3M4TVBNSEJjelZlUGZVcERKTHdvTFQwaHQxbDRZd0JDYmk4cEpBdmVFRWRua0h5UHlUUC9telJmd2c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJzYWZlLWJ1ZmZlciI6ICJ+NS4xLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3N0cmluZ19kZWNvZGVyL25vZGVfbW9kdWxlcy9zYWZlLWJ1ZmZlciI6IHsKICAgICAgInZlcnNpb24iOiAiNS4xLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc2FmZS1idWZmZXIvLS9zYWZlLWJ1ZmZlci01LjEuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1HZDJVWkJKRGtYbFk3R2JKeGZzRTgvbnZLa1VFVTFHMzhjMXNpTjZRUDZhOVBUOU1tSEI4R25wc2NTbU1KU29GOExPSXJ0OHVkL3dQdG9qeXM0RzYrZz09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3N1YmFyZyI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc3ViYXJnLy0vc3ViYXJnLTEuMC4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLVJJcklkUlkwWDF4b2p0aE5jVnRnVDlzanBPR2FnRVVLcFpkZ0JVaTA1NE9FUEZvMjgyeWcrekUrdDFSajMrUnFLcTJ4U3RMN3VVSGhZK0FqYkM0QlhnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAibWluaW1pc3QiOiAiXjEuMS4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9zdXBwb3J0cy1jb2xvciI6IHsKICAgICAgInZlcnNpb24iOiAiNS41LjAiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvc3VwcG9ydHMtY29sb3IvLS9zdXBwb3J0cy1jb2xvci01LjUuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1RalZqd2RYSXQ0MDhNSWlBcUNYNG9VS3NnVTJFcUFHenMyUHBrbTRhUVliam0rWkVXRWNXNFNmRk5UcjR1TU5abWEwZXk0ZjVsZ0xya0IwYVgwUU1vdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImhhcy1mbGFnIjogIl4zLjAuMCIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj00IgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy9zdXBwb3J0cy1wcmVzZXJ2ZS1zeW1saW5rcy1mbGFnIjogewogICAgICAidmVyc2lvbiI6ICIxLjAuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9zdXBwb3J0cy1wcmVzZXJ2ZS1zeW1saW5rcy1mbGFnLy0vc3VwcG9ydHMtcHJlc2VydmUtc3ltbGlua3MtZmxhZy0xLjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1vdDBXblhTOWZnZGtnSWNlUGU2UkhOazFXQTgrbXVQYTZjU2plUjNWOEsyN3E5QkIxclRFM1IxcDdIdjB6MVp5QWM4czZWdnY4REl5V2Y2ODFNQXQwdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49IDAuNCIKICAgICAgfSwKICAgICAgImZ1bmRpbmciOiB7CiAgICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3BvbnNvcnMvbGpoYXJiIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy90aHJvdWdoMiI6IHsKICAgICAgInZlcnNpb24iOiAiNC4wLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvdGhyb3VnaDIvLS90aHJvdWdoMi00LjAuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1pT3FTYXYwMGNWeEVFSUNlRDdUakxCMXN1ZUVMKzgxV3B6cDJiWTE3dVpqWk4wcFdaUHVvNHN1Wi82MVZ1anhtcVNHRmZnT2NOdVRaODVRSndOWlFwdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgInJlYWRhYmxlLXN0cmVhbSI6ICIzIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy90aHJvdWdoMi9ub2RlX21vZHVsZXMvcmVhZGFibGUtc3RyZWFtIjogewogICAgICAidmVyc2lvbiI6ICIzLjYuMiIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy9yZWFkYWJsZS1zdHJlYW0vLS9yZWFkYWJsZS1zdHJlYW0tMy42LjIudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItOXUvc25pQ3JZM0Q1V2RzRVJIekhFNEcyWUNYcW9HNUZUSFVpQ0M0U0licjZYY0xaQlkwNXlhOUVLalllazlPNXhPQXdqR3ErMUpkR0JBUzdROVNjb0E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpbmhlcml0cyI6ICJeMi4wLjMiLAogICAgICAgICJzdHJpbmdfZGVjb2RlciI6ICJeMS4xLjEiLAogICAgICAgICJ1dGlsLWRlcHJlY2F0ZSI6ICJeMS4wLjEiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49IDYiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3RvLW9iamVjdC1wYXRoIjogewogICAgICAidmVyc2lvbiI6ICIwLjMuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy90by1vYmplY3QtcGF0aC8tL3RvLW9iamVjdC1wYXRoLTAuMy4wLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLTltV0hkbkdSdWgzb25vY2FIenVreXZDWmh6dnI2dGlmbEF5L0pSRlhjSlgwVGpnZldBOXBrOXQ4Q01iem1CRTRKZnc1OHBYYmtuZ3RCdHFZeHpORXlnPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAia2luZC1vZiI6ICJeMy4wLjIiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy90by1yZWdleCI6IHsKICAgICAgInZlcnNpb24iOiAiMy4wLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvdG8tcmVnZXgvLS90by1yZWdleC0zLjAuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1GV3RsZU5BdFovS2kycXRxZWoyQ1hUT2F5T0g5YkhEUUYrUTQ4VnBXeURYamJZeEE0WXo4aURCMzF6WE9CVWxPSEhLaWREYnFHVnJUVXZRTVBtQkdCdz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImRlZmluZS1wcm9wZXJ0eSI6ICJeMi4wLjIiLAogICAgICAgICJleHRlbmQtc2hhbGxvdyI6ICJeMy4wLjIiLAogICAgICAgICJyZWdleC1ub3QiOiAiXjEuMC4yIiwKICAgICAgICAic2FmZS1yZWdleCI6ICJeMS4xLjAiCiAgICAgIH0sCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy90by1yZWdleC1yYW5nZSI6IHsKICAgICAgInZlcnNpb24iOiAiMi4xLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvdG8tcmVnZXgtcmFuZ2UvLS90by1yZWdleC1yYW5nZS0yLjEuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1aWldOZkNqVW9rWFhER1hGcFplaEpJa1pxcTkxQmNVTEZxL1BpN001aTRKbnhYZGhNS0FLNjgyejhiQ1czbzhIajF3dXV6b0tjVzNEZlZ6YVA2VnVOZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImlzLW51bWJlciI6ICJeMy4wLjAiLAogICAgICAgICJyZXBlYXQtc3RyaW5nIjogIl4xLjYuMSIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3RvLXJlZ2V4LXJhbmdlL25vZGVfbW9kdWxlcy9pcy1udW1iZXIiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzLW51bWJlci8tL2lzLW51bWJlci0zLjAuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi00Y2JvQ3FJcGxpSCttQXZGTmVnalpRNGtnS2MzWlVoUVZyM0h2V2JTaDVxM1dIMnY4MmN0K1QyWTFoZFU1R2R0b3J4L2NMaWZRanFDYkw3YnB6bkxUZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImtpbmQtb2YiOiAiXjMuMC4yIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvdG91Y2giOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMS4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3RvdWNoLy0vdG91Y2gtMy4xLjEudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItcjBlb2pVNGJJOE1uSHI4YzViTm83bEpEZEkycVhsV1dKazZhOUVBRkc3dmJoVGpFbFloQlZTMy9taXVFMHVPdW9MZGI4TWMvclZmc21tNmVvNW85R0E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiYmluIjogewogICAgICAgICJub2RldG91Y2giOiAiYmluL25vZGV0b3VjaC5qcyIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvdHlwZXNjcmlwdCI6IHsKICAgICAgInZlcnNpb24iOiAiNS45LjMiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvdHlwZXNjcmlwdC8tL3R5cGVzY3JpcHQtNS45LjMudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItamwxdlp6UERpbkxyOWVVdDNKL3Q3VjZGZ05FdzlRanZCUGR5c3o5S2ZRREQ0MWZRckMyWTR2S1FkaWFVcEZUNGJYbGIxUkhoTHBwOHd0bTZNNVRnU3c9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiYmluIjogewogICAgICAgICJ0c2MiOiAiYmluL3RzYyIsCiAgICAgICAgInRzc2VydmVyIjogImJpbi90c3NlcnZlciIKICAgICAgfSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0xNC4xNyIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvdW5kZWZzYWZlIjogewogICAgICAidmVyc2lvbiI6ICIyLjAuNSIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy91bmRlZnNhZmUvLS91bmRlZnNhZmUtMi4wLjUudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItV3hPTkNyc3NCTThUU1BScU41RW1zalZyc3Y0QThYMTJKNEFyQmlpYXl2M0R5eUczWmxJZzZ5eXN1dVNZZFpzVnozVEtjVGcyZmQvL1VqZDRDSFYxaUE9PSIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy91bmlvbi12YWx1ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvdW5pb24tdmFsdWUvLS91bmlvbi12YWx1ZS0xLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi10SmZYbXhNZVdZbmN6Q1ZzN1hBRXZJVjdpZXBwQUxkeWVwV01rSGt3Y2lScFpyYUcveHdUK3MySk44K3ByMSs4akNSZjgwRkZ6dnIrTXBRZWVvRjRYZz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJkZXBlbmRlbmNpZXMiOiB7CiAgICAgICAgImFyci11bmlvbiI6ICJeMy4xLjAiLAogICAgICAgICJnZXQtdmFsdWUiOiAiXjIuMC42IiwKICAgICAgICAiaXMtZXh0ZW5kYWJsZSI6ICJeMC4xLjEiLAogICAgICAgICJzZXQtdmFsdWUiOiAiXjIuMC4xIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvdW5zZXQtdmFsdWUiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3Vuc2V0LXZhbHVlLy0vdW5zZXQtdmFsdWUtMS4wLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItUGNBMnRzdUdTRjljbnlTTEhUTFNoMnFyUWlKNzBtbityK0dsenh2MlRXWmJseHN4Q0M1MkJEbFpvUENzejdTVGQ5cE43RVpldGtXWkJBdms0Y2daZFE9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJoYXMtdmFsdWUiOiAiXjAuMy4xIiwKICAgICAgICAiaXNvYmplY3QiOiAiXjMuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvdW5zZXQtdmFsdWUvbm9kZV9tb2R1bGVzL2hhcy12YWx1ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMC4zLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaGFzLXZhbHVlLy0vaGFzLXZhbHVlLTAuMy4xLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWdwRzkzNmo4L016YWVJRDVZaWYrNTc3YzE3VHhhRG1odXlWZ1N3dG5ML3E4VVVUeVNnOE1lY2IrOENmMW90Z0xvRDdEREg3NWF4cDg2RVI3TEZzZjNRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImRlcGVuZGVuY2llcyI6IHsKICAgICAgICAiZ2V0LXZhbHVlIjogIl4yLjAuMyIsCiAgICAgICAgImhhcy12YWx1ZXMiOiAiXjAuMS40IiwKICAgICAgICAiaXNvYmplY3QiOiAiXjIuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvdW5zZXQtdmFsdWUvbm9kZV9tb2R1bGVzL2hhcy12YWx1ZS9ub2RlX21vZHVsZXMvaXNvYmplY3QiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjIuMS4wIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2lzb2JqZWN0Ly0vaXNvYmplY3QtMi4xLjAudGd6IiwKICAgICAgImludGVncml0eSI6ICJzaGE1MTItK09VZEdKbGdqT0JaRGZ4bkRqWVlHNnpwNDg3ejBKR05RcTNjWVFZZzVmNWhLUitzeUhNc2F6dHpHZW1sLzRrR0c1NUNTcEtTcFdUWStqWUdnc0hMZ0E9PSIsCiAgICAgICJkZXYiOiB0cnVlLAogICAgICAiZGVwZW5kZW5jaWVzIjogewogICAgICAgICJpc2FycmF5IjogIjEuMC4wIgogICAgICB9LAogICAgICAiZW5naW5lcyI6IHsKICAgICAgICAibm9kZSI6ICI+PTAuMTAuMCIKICAgICAgfQogICAgfSwKICAgICJub2RlX21vZHVsZXMvdW5zZXQtdmFsdWUvbm9kZV9tb2R1bGVzL2hhcy12YWx1ZXMiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjAuMS40IiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL2hhcy12YWx1ZXMvLS9oYXMtdmFsdWVzLTAuMS40LnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLUo4UzBjRWRXdVFicUQ5Ly90bFp4aU11TU5teEI4UGxFd3ZZd3V4c1RtUjFHNVJYVWVQRVgvU0puN2FEMEdNTGlldVpZU3dOSDBjUXVKR3duWXVuWFJRPT0iLAogICAgICAiZGV2IjogdHJ1ZSwKICAgICAgImVuZ2luZXMiOiB7CiAgICAgICAgIm5vZGUiOiAiPj0wLjEwLjAiCiAgICAgIH0KICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3Vuc2V0LXZhbHVlL25vZGVfbW9kdWxlcy9pc29iamVjdCI6IHsKICAgICAgInZlcnNpb24iOiAiMy4wLjEiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvaXNvYmplY3QvLS9pc29iamVjdC0zLjAuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1XaEI5ekNrdTdFR1RqL0hRUVJ6NWFVUUVVZW9RWkgyYldjbHRSRXJPcHltSjRib1lFNndMOVRicjIza3JSUFNaK0M1enFOU3JTdytDYzdzWlo0Yjd2Zz09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy91cml4IjogewogICAgICAidmVyc2lvbiI6ICIwLjEuMCIsCiAgICAgICJyZXNvbHZlZCI6ICJodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy91cml4Ly0vdXJpeC0wLjEuMC50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1BbTFvdXNBaFNMQmVCOWNHLzdrN3IyUjB6ajUwdURSbFpIUEdiYXppZDVzOXJsRjFGL1FLWU9iRUtTSXVuU2pJT2tKWnF3UlJMcHZld2pFa003cFNxZz09IiwKICAgICAgImRlcHJlY2F0ZWQiOiAiUGxlYXNlIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHlkZWxsL3VyaXgjZGVwcmVjYXRlZCIsCiAgICAgICJkZXYiOiB0cnVlCiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy91c2UiOiB7CiAgICAgICJ2ZXJzaW9uIjogIjMuMS4xIiwKICAgICAgInJlc29sdmVkIjogImh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnL3VzZS8tL3VzZS0zLjEuMS50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1jd0VTVlhsTzN1cmw5WVdsRlcvVEE5Y3NoQ0VodHU3SUtKL3A1c29KL2dHcGo3dmJ2RnJBWS9lSWlvUTZEdzIzS2paaFlnaUlvOEhPczFuUTJ2ci9vUT09IiwKICAgICAgImRldiI6IHRydWUsCiAgICAgICJlbmdpbmVzIjogewogICAgICAgICJub2RlIjogIj49MC4xMC4wIgogICAgICB9CiAgICB9LAogICAgIm5vZGVfbW9kdWxlcy91dGlsLWRlcHJlY2F0ZSI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvdXRpbC1kZXByZWNhdGUvLS91dGlsLWRlcHJlY2F0ZS0xLjAuMi50Z3oiLAogICAgICAiaW50ZWdyaXR5IjogInNoYTUxMi1FUEQ1cTF1WHlGeEpwQ3JMbkNjMW5IbnEzZ09hNkRaQm9jQUlpSTJUYVNDQTdWQ0oxVUpETWFnQ3pJa1hOc1VZZkQxZGFLLy9MVEVROHhpSWJySHRjdz09IiwKICAgICAgImRldiI6IHRydWUKICAgIH0sCiAgICAibm9kZV9tb2R1bGVzL3dyYXBweSI6IHsKICAgICAgInZlcnNpb24iOiAiMS4wLjIiLAogICAgICAicmVzb2x2ZWQiOiAiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvd3JhcHB5Ly0vd3JhcHB5LTEuMC4yLnRneiIsCiAgICAgICJpbnRlZ3JpdHkiOiAic2hhNTEyLWw0U3AvRFJzZW9yOXdMNkV2VjIrVHVRbjYzZE1rUGpaL3NwOVhrZ2hURWJWOUtsUFMxeFVzWjN1Ny9JUU80d3h0Y0ZCNGJncFFQUmNSM1FDdmV6UGNRPT0iLAogICAgICAiZGV2IjogdHJ1ZQogICAgfQogIH0KfQo="},{"path":"package.json","sha256":"f0f4d3e41b028d708c64e65e7db4a821da08239d9f4d9d4a4ea35b929dbf747f","contentBase64":"ewogICJuYW1lIjogIm1vb25saWdodC13ZWIiLAogICJ2ZXJzaW9uIjogIjEuMC4wIiwKICAiZGVzY3JpcHRpb24iOiAiIiwKICAibWFpbiI6ICJ3ZWIvaW5kZXgudHMiLAogICJ3YXRjaCI6IHsKICAgICJidWlsZC1saWdodCI6IHsKICAgICAgInBhdHRlcm5zIjogWwogICAgICAgICJzcmMiLAogICAgICAgICJ3ZWIiCiAgICAgIF0sCiAgICAgICJleHRlbnNpb25zIjogInRzLGh0bWwsY3NzLHN2ZyxwbmcscnMiLAogICAgICAiaWdub3JlIjogIndlYi9hcGlfYmluZGluZ3MuZC50cyIsCiAgICAgICJydW5PbkNoYW5nZU9ubHkiOiBmYWxzZQogICAgfQogIH0sCiAgInNjcmlwdHMiOiB7CiAgICAiZGV2IjogIm5wbSBydW4gZ2VuZXJhdGUtYmluZGluZ3MgJiYgbnBtLXdhdGNoIGJ1aWxkLWxpZ2h0IiwKICAgICJidWlsZCI6ICJucG0gcnVuIGdlbmVyYXRlLWJpbmRpbmdzICYmIG5wbSBydW4gYnVpbGQtbGlnaHQiLAogICAgImJ1aWxkLWxpZ2h0IjogInRzYyAmJiBucG0gcnVuIGNvcHktc3RhdGljIiwKICAgICJnZW5lcmF0ZS1iaW5kaW5ncyI6ICJjYXJnbyB0ZXN0IGV4cG9ydF9iaW5kaW5ncyAtLXBhY2thZ2UgY29tbW9uIiwKICAgICJjb3B5LXN0YXRpYyI6ICJjcHggXCJ3ZWIvKiovKi57aHRtbCxqc29uLGNzcyxzdmcscG5nLGpzLHdhc219XCIgZGlzdC8iCiAgfSwKICAibGljZW5zZSI6ICJHUEwtMy4wLW9yLWxhdGVyIiwKICAicHJpdmF0ZSI6ICJ0cnVlIiwKICAiZGV2RGVwZW5kZW5jaWVzIjogewogICAgImNweCI6ICIxLjIuMSIsCiAgICAibnBtLXdhdGNoIjogIjAuMTMuMCIsCiAgICAidHlwZXNjcmlwdCI6ICI1LjkuMyIKICB9Cn0="},{"path":"readme/gamesView.jpg","sha256":"bfed061bbb5e715f5adb3d7b8388dec449854f1cc8ab5715ec770826c2f2be49","contentBase64":"/9j/4AAQSkZJRgABAQEAeAB4AAD/4QJmRXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAEAAIdpAAQAAAABAAABPuocAAcAAAEMAAAAMgAAAAAc6gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHqHAAHAAABDAAAAVAAAAAAHOoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+EDP2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIvPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIi8+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9J3cnPz7/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAQyBhIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8f6dbWr3VxHDEnmSSfcSm13Hwg0pP9Kv2/wBZ/qEoAj0v4QTS2++8ufIk/uInmVa/4U3bf8/tx/3xXaWts9/cRwxJ5kkj+WiJX1D+z7/wSd+KH7QPw0n8X6Xosn/CO2/yfb7m6js7eR/M8vYjv/rP3n/POPy609mB8Vf8Kbtv+f24/wC+KP8AhTdt/wA/tx/3xX1P+1t/wT5+IP7G2vx2Pi7RLzTZJI3kgd3SdLtE++8EyfI//oyvCqzA43/hTdt/z+3H/fFH/Cm7b/n9uP8AviuyooA43/hTdt/z+3H/AHxR/wAKbtv+f24/74rsqKAON/4U3bf8/tx/3xR/wpu2/wCf24/74rsqKAON/wCFN23/AD+3H/fFH/Cm7b/n9uP++K7KigDjf+FN23/P7cf98Uf8Kbtv+f24/wC+K7KigDjf+FN23/P7cf8AfFH/AApu2/5/bj/viuyooA43/hTdt/z+3H/fFH/Cm7b/AJ/bj/viuyooA43/AIU3bf8AP7cf98Uf8Kbtv+f24/74rsqKAON/4U3bf8/tx/3xR/wpu2/5/bj/AL4rsqKAON/4U3bf8/tx/wB8Uf8ACm7b/n9uP++K7KigDjf+FN23/P7cf98Uf8Kbtv8An9uP++K7KigDjf8AhTdt/wA/tx/3xR/wpu2/5/bj/viuyooA43/hTdt/z+3H/fFH/Cm7b/n9uP8AviuyooA43/hTdt/z+3H/AHxR/wAKbtv+f24/74rsqKAON/4U3bf8/tx/3xR/wpu2/wCf24/74rsqKAOG1T4QPFb77O88yT+5Mlcdf2E2l3EkNwnlyR/wPXtVcj8WtLSXTILxU/fxvsf/AHKAPPaKKKACitv4ffDnXvi14wtfD3hnR9Q1zXNQ3/ZbCzg+0XFxsTzH2J/1zR3rEoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiuo+EPwN8bftAeJJtH8B+D/FHjjWLe1e+msNB0ifU7iOBHjTz3SBJJPL8x0Tf/ANNI6AOXor27/h2Z+0l/0b38b/8Awg9V/wDjFeWfEb4aeJPg340vvDfjDw9rnhXxHp+z7VpWsWT2F5b70jkTfBJ5cieZG6P/ANtKAMSiiigAooooAKKtaDoN54o1ux03S7O81LUtQnS0tbO2ge4uLid38tERE+/JJJVWgAorQ1DwbrGjeHNN1i60rULXStYeePTr+a1eO31B4P8AX7H/ANW/l708zy/9X5lZ9ABRRRQAV6L8Iv8AkWpv+vp//RcdedV6L8Iv+Ram/wCvp/8A0XHQB7F+zxpdtrPxU022vP8AUSTpG/z+X8jvHG/z/wDXN3r+gn9prVPEHwZ+HrW/g3wCltcXVvDZjw9b6rC0F/BA8caTbE/1Lx/Inmf8tPMEb/8ALMp/OZoOszaBqkFzF/rI/wCD/npX6U/s4/8ABc638PfBK+8M+N9Bk8RaxJFbW8eui/jg1DyYXQJDP5g2Oke08x4P+xvy9bUzM+yP+ChOlt8Rf+CeXjzXte8Ox317IkGpNrs2ow+ZZXqTJGkCQ/fgSPfJB5P3/wB4+/8AeF6/AvXoltdcvki/1cc7xx/9919y/wDBSj/gr9c/tapdaT4Z0iPwt4cvpo7q6sYbrz/7Unj+5PdP/q/Mj/6Z/wCxvkfy46+EP9ZUVNgPtz/glF4j8N6D8E/jvD4y/d+EfECaBoWqTO/l/Y4L6ee08/f/AAeXJOj7/wDpnXff8E9vgFN+yhb/ABCtvFtnbx+NPFll4l8Pacmz/V2OlWM/266R/wDnnJdvaxx/c/1ElfDPgj43ar4D+EfjjwZZ22nyaV48+w/2jNMj/aLf7LP56bPn8v8A1j/vPMjevTNU/wCClHxI8R/FPTfGGqf2PqWq6X4Un8HwJNA/2f7LPBJG8+xH/wBfJvd9/wDq/M/5Z1Bobnhz9ln4aeHPEHwr8G+LbzxxdeLvixp1jqUGq6VPa2+n+G/7R/d2KPaukkl95cnzz+XPB+7k2JUOs/s3fDf9nPwn4Of4pTeMNY1jxZqmowT/APCN6jBaW+h2tjqMli8/7+1nkupPMgneNP3H7uuY8Jft1694c0fwj9o8K+B9c8R/D+1+yeGvEmpWU8mqaOn/ACw2bJ44J/Ik+eDz4H8uoPBv7bet6D4T8P6V4g8MeD/H/wDwieqT6tol54kgupLzT555/Pf54LqDz45J/n2XG+PzKAPUPG/7Fvw3/Zk+G/irVfiNc+OPEd94f+Ib+C4E8N3trYR3lr9lgu/tX7+CfZJ5bv8AJ/1zTzI/9ZXoHiP9nOH4GfD/AFX4b2et6xHa6f8AtBeHbSy1W2f7PqFvBPp128c6P/BPHG6fP/z0r5P+IP7VXi34q/C/UvDHiCaz1KPWPFc/jO91KZH+2XF88HkP/H5fl+X/AAeXXZePP+Ch3jb4g+IbrUrzTfC8c154y07xvIkNrP5f26xtfskCf6//AFHl/wCs/wCWn/TSgDsPjn+zx4A+Bmqar4h+I1/8RPFUnizxzrem6W+m6pBHeW9jp19JBdX19PPBJ9qu5JHT5I/I/wBXI7yfvP3fofij4K+Bv2ZPh3+1f4Puv+Eo1zwj4X8Q+E4IIYdRgtNQ1Df9v/5evIkjT7+//UP/AKvZ/H5kfAfCD9qWH4l291eePvEPwfsYP+E1uvFFlbeIdE1+/wBQ8Pz3Txzzz2KWKeQ8Ekn/AC63c/lySQfP/wA9JOL/AGlv23Lz4yeOPjM+l6bb2vhz4sa3Y6m/2xP+JhbpY+Z9l+4/lp5kc/7z79AHuF/+zn8Jfgt8F/jhNL4e8QeLtH/4R7wt4o8PalNqlrb6pb2OozwSIiO9lJ5E/mO/mPH/AKyP5PLj/wBZXwrXt8X7dfiS60+6sNW8PeE9c0PUPCml+D73SrxLqO3uLXTvLktZ98E8c/nx+R/yzk8v95J+7rxCgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD6P/wCCZV1qXiP48T+BovBOn+PPDPjy1+weKLC5RI/sdij+ZJfJdf8ALr5Enz7/APrn/wAtPLr0X/goJ8PtB/Zf/Z38P+D/AIT2Gn+I/hl40uvt+o/EJ3gv7jxBfQPJGlj56J/ovkR/wR7PM/ef7fmfKPgj4veJ/hx4X8R6PoOt6hpWl+MLVLDV7a2fy/7QgjfzNj/5/wCWkif8tKNL+L/ifQfhfqvgy11vUIPCuuXUF/e6Uj/6PcTwfcfZ/n/Vx/8APOOgDma5v4qf8inJ/vpXSVzfxU/5FOT/AH0oA8zooooA/RT/AIJJfAz4M+HP2wPhrr2g/Hj/AISPxx9lup/+EV/4Qq+tP376dP58H2138v8Ad73+f/lp5f8A00r5b/aC+BnwZ+HPgNL/AMB/Hj/hY2ufakgfSv8AhCr7SfLg/eb5/Pnfy/8Ann8n/TSuU/ZQ/aR1X9kb4+eH/iFo1hp+pal4f8/yLa83/Z5PPgkg+fZ/0znrzqgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA6n4S+DdB8b+IJ7bxB4w0/wXax2vmJeX9ldXcckm+P5Nlqkkn+3/ANs67/8A4Z5+GP8A0cF4P/8ACb1z/wCRa8XooA3PiN4c0rwn4wurDRvENn4q0232eRqttaz28dx8n9ydI5P3f3P9X/yzrDoooAKKKKACvb/2UP8Akg/7TX/ZNrL/ANTHw1XiFepfsw/HLw38HLX4h6V4u8Ma34q8O/ETw0nh65i0jXU0W8ttmq2GpRzpM9rdR/6zT0j2eR/y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hj+1fqmm/wDCu9W+JljBHqMEeop4k0uCCO4tUeP7V9luoEkg8/y33xpJ/wA86+a/jx4Ds/hf8cPGvhiwe4nsfD+vX2m2r3L+ZJIkE8kab/8App8leufsFX/xI8R+KI9E0bxh4w8I/DnS3fVvEt/pt09vb6Xaom+d9/8Aq0k8tP8A7XXiXxQ1mHxH8SPEF/a3moala6hql1PBeX8/mXFwjvJJvd9ke+ST/lp+7SgDEooooA5H4g3/AJuoR2//ACzjTzK6L4VeA7zXtQ03TdNtpLrWNcnSC1hT/WSO7+WiVyPjf/kZJ/8AgH/oFdzpd08UcE1u8kckeyRHT/lnQB9Q/G7/AIJu/wDCG6XdR+CfGH/Ccax4f8X2vgTW7CbR30n7Hqk/mRpsnnfy3g8xETf5n/LTf+7j8uuH+Mn/AAT1+LX7Pvw/u/E/i3w3p+m6HZukc8yeIdOu5N7v5afJBPJJ/wCQ69m/al+AX7ZnxQ+F91c/FDSvFGpeFfC8D61dfab2x+z2/kQSb53RH+eSODf8/wA8lef+N/8AgnjN4N+GWpX8Xj/wvqXjHw/4XtfGmr+GEgn8yz06fyNjpdbPInkj8+DzE/6af6ySgD5J8eaMgj+2Rf6z/VvXL13XjH/kW5/+Af8AodcLQAUUHr/9eigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvqr/gjz8DPB/x9/bA/s3xvpVvrGj6Xol1q32a5f8A0fejx7N/9+P5/uV8q19Tf8El/hfc/G740eP/AAfZ38elXXijwBrGmpcun7uPz/Ij+f8A6Z0AfZf7XP7LX7OX7Tf7P/iqw+Eeq/CPw54q8Homuz6lZulvbx2qP5c7vPAkm+Dy9/8A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ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8J8d/GXxHo3jLVLS21Ly7eC5dI08iP8Ad/8Ajle7V8w/FT/kpOtf9fT0AepfAf4maj4v1G+s9UuvtckapPAPLSPH9/7n/AK9D1nVE0bSLq8l/wBXbwPO/wDwCvBvBX/Fu/jalm7bY1uXtW90fhP/AGQ16b8f9d/sf4c3Ua/e1CRIF+n+UoA8n/4X94s/6Cn/AJKwf/EV6/8ABXxNfeL/AAd9r1Gf7RN9qdPM2JH/AOgV4DeaP9m8PWN2yn/TJZwuO6Js/qXr2v8AZp/5JxJ/19Sf+06APQaK4f4rfGWHwDL9jtVjutRkTlH+5b/79efr8W/HWp273lsbk2qf8tItPDx/997KAPeKK8v+GP7Qf9u36WOsJHDPP8kNyn+rd/8AppXp0sqRRyO37uOP770AOorx7xp+0ZcS38lr4fhj8nfsFw6b5JP9xO1ZH/C4fG3heaOTUllCyfcW8s/LV/y2UAe8UVy/wx+Jtp8Q7CRlTyL635mi9apfGX4k33w7tLF7GGzb7Y8iP5sb0AdrRXkX/DQ2pX2g2sNjYxXWtTby6RQu6IN/9yufb46+LvDmpbb5z5n8dvc22ygD32vC/iJ8YvEeh+NtSs7XUjb21vOURPIj/d/+OV674J8WQ+NvDEGpW6eX5n30/wCeclfPnxf/AOSk6x/13NAH0B4w1i40zwDe3kL+Xc29k8iPs/j2V5v8Gfinr3i7xtHa6jfCa38l32CBI/8A0BK9L8RazN4c8EXV/AsbzWdr5ib/APV/crhfhP8AGzVPHfi+OxvLfT0h8mR98Mcnmf8AodAHqNFc/wDEj4h2/wAPdF+0SJ589x8kMP8AfevJbT4z+MvEN876f5j7eWitrPzPL/SgD3qivGZv2lNSt9JjQ2NvHqVu+yfzUYrIPpkbK7/4SeNbnx94V+3XiQxzee6fuo8R0AeZfET4xeI9D8balZ2upG3trecoieRH+7/8cr260l82zjdv7lfNfxf/AOSk6x/13NdlqPxs8Sa8n/EgsbiCxt/k85LXz5P+B/wfpQB7RUN/dJYWk80v7uO3TzHrx34eftD3/wDa8NprXlz2877DcbdkkddT8efH134L0+1trWGB01SOeObzo3/d/wCr+5/33QBU8PfHSTxr8RtN02xt/I06QyB3f/WSfu3/AO+K9Kr5X8J+KLjwj4gt9St1hkmtg4RZRlOU2f1r6E+FHjG48d+ElvrxYEmkkeMJFH+7oA6SvCfG3xe8UeGPGGo2a6jiG3uX2L9lg+5n5P4PSvdq8H/aQ0X7B46jukH7u/tkckf30+T+i0Ae5WF0l/ZwTRf6u4j8xK8l+L/xg1bw944uLHSr37Pb20aI/wC5ST5/v/xiu1+D2upqXwx06Vn/AOPeDyH/ANgJ8leI2NhN8UviK0aN5cmqXMknP/LNOXoA9R+A/wAR77xncahbandfaJ7cJJD+7SP5M/P9yur+J3iJ/CfgTUb6N/LnjT9y/wDtv8leKfBDVJPDvxOs0lzGLjfaSZ7Z/wDswK779p3WPs3hOxs/47y5L/8AAE//AG0oApfA/wAf+IPGviqaG+v/AD7O3hMjp5MafN/3x9a9Xry/9l/Rxa+HdRvinz3kwRP91Bz/AOh1X+Jf7Qk2n6m1joKRyeS+x7l08z5/9igD1iivBx8ZfGnhiWOTUlk8uT7i3lnsV/y2V6x8PPiFb/ELRftEP7ieP5Jof7j0AcL8b/ifrng7xpHaaff+TB9ljkKGBJMP8/8AfSvQPh3rFzrvgjTry6bzp7iHfI+z/WV47+0x/wAlCj/68k/9DerGh/FvXD4ZstI8P2M7SWcOyaWOHz5D9EoA90orw3w9+0Jrmhav5OsL9qh3/v0eHy50r2nS9Uh1nT4Ly1ffBcJ5iPQBZooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK+Yfip/wAlJ1r/AK+nr6er5k+IkX2n4n6srf8ALS9cf+P0AdF+0TpL6T8QUvIwV+1wJJv/ANtPk/olS/H/AMar4ns9BWJjtktftbp7v/8AsV037TujC68M6dfL/wAucxjf/cfp/wCgV5H4dsH8S+INOsWd3+0Spb/7iF6AOs+LGj/2H8P/AAXb7CsnkTPJ/vv5cn/s9d7+zT/yTiT/AK+pP/adYH7VEX+j6Bt+5H58f/out/8AZp/5JxJ/19Sf+06APJNPP/Ce/EqH7Rny9Uvvn9ld/wD69fTVrapY28cMSRxwRp5aIn/LOvme4ib4cfErDJxpd5v2/wB9A/8AVK+jtM8T2Or6Sl9DcW7W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UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFCV3YAor2Dwl8EdNtdHjfVEkurqRPMf948ccdav/CmvDf8A0Df/ACM//wAXX6Th/C7Nq9CFTnhD+v8ACePUzujCZ4VRXuv/AAprw3/0Df8AyM//AMXR/wAKa8N/9A3/AMjP/wDF1v8A8QpzX+eH/k3/AMiH9uUTwqivdf8AhTXhv/oG/wDkZ/8A4uj/AIU14b/6Bv8A5Gf/AOLo/wCIU5t/PD/yb/5EP7conhVFe6/8Ka8N/wDQN/8AIz//ABdQX/wR8PXUEiRW0kEn99J3/d/991nU8Ks2Svzw/wDJv/kQ/tuieI0VoeI9Bfwvrl1YS/vHt3+//wA9Kz6/N8Rhp0ak6dT44HsL3wooorMAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK0pfGvUUtj6cry1f20/hmx48Sf8AlPuv/iK9Sr5n/ZU+N3/CGfBiy07/AIRDx1q/lvM32nStK8+3ky7nG/f1GeeOxr+ps3zivh61CjTnCHOpfFGUvh5f70f5j4zC4WnOM5tH0B4L8e6T8QtE/tHRdRg1C137N8T/AOrf+4/9ytivEf2WdSt/EHivx9rlrbx6bPql5CRoPMdxZbEk/eOn99/v/UGrOtJ8Q18NXWtat400XwjefO8OkGzgmgSPPyI87/f/AOAZrTCcQzlg41qkef4vg/u/4v8A0n4iamF9/kR7LRXi6/tIapq/wN8I6pptpaf8JJ4xu002BJRiCCbzJI3nx/c+St7S9C+I/hDxNpMlxr1r4u0i8m8jUoWsYLF7FMj98mz7/Gfk/wD1jaPENKqouhCc/h/8mM/qs4fxDs/CvjjTPGdxqiabdG5k0m8eyvP3Dx+RMn30+etevmXwH8ZP+ED8Q+PND0lYL/xX4g8Y3cGmW7S7Y4vn/wBc5/ue38fTtX0N4M0jUdD8NW9vq+qSa1qCJma7eFIN7/7if8s6rJc7+vRsvj+3/KPE4VUTx/4yf8lG1L/gH/oEdcvXUfGT/ko2pf8AAP8A0COuXr+ZeJP+RtiP8cv/AEo+zwf8GAUUUV4ZsFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRWlL416ilsfTlfO37N/xRvvhF8J9P0PVPAfxFkubOSZ2kt9DeSPDvv/AInSvomKVLq3jdf3kcn7xKK/rTGZdLFTp4qjPl5FL/ybl/8AkT4inW9nB06iPEvh74X8S+MPiZ4u8bnS7zwu2oaQdO0y3vB/pEj/APPZ0/g/1dcl4F8G29l4Wazvvhbr2seOrjzEub3VLfzLOWb/AJ7G5eTZs/3K+mqK4qnC8ZqC5/5v5ftFfXpdj5x8F/DXxJa/s2eBbiy0u7TxF4L1ae9k065j+zyXCfaHLp8/+w1d8fiV4p+I3iXRLTQfD/iLw1ZQXIuNZu9WsI4f3Cf8sU3/AH5H/vpg8ivUKKujw99XhGnQrT+z/wCShUx3PrOB88eHf2em8b2nxKafT5tJ1qbxPc3OjajLA8ckexy8TI+PucnlK9b+C/jDU/GfgO1uNc0y80nWrf8AcXkVzBJb+Y6fxp/fSSusorowGRwwM/aUZ/8A2xFXFe00meF/GT/ko2pf8A/9Ajrl66T4vypJ8SNS2/vP9XH/AOQ465uv5h4jd82xH+OX/pR9ng/4MAooorxzYKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDqPC/xf1jwvp0drF9nngj+4kyf6utP/hoLWP+fbS/++H/APi64Sivo8PxZmtGHsIVpnJUwFGf2Du/+GgtY/59tL/74f8A+Lo/4aC1j/n20v8A74f/AOLrhKKv/XLOf+giZH9n4b+Q7v8A4aC1j/n20v8A74f/AOLo/wCGgtY/59tL/wC+H/8Ai64Sij/XPOf+giYf2fhv5Du/+GgtY/59tL/74f8A+LqK/wDjxrV1byIqafB/toj+Z/6HXE0UVOLs4nD/AHiZf9n4b+QdLK8skjs/mSSffd6bRRXzTbbuzrCiiikAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRXPeLb+a11CPyppI/k/ges3+07j/n5uP++6AOzorjP7TuP+fm4/77o/tO4/5+bj/vugDs6K4z+07j/n5uP++6P7TuP+fm4/77oA7OiuM/tO4/5+bj/vuj+07j/n5uP++6AOzorjP7TuP+fm4/77o/tO4/5+bj/vugDs6K4z+07j/n5uP++6P7TuP+fm4/77oA7OiuM/tO4/5+bj/vup/t1z/z83H/AH3QB1lFct9vuP8Antcf9/Kkiv5v+e1x/wB90AdLRXOxXU3/AD2k/wC+6khupv8AntJ/33QBvUVkRSzD+OT/AL7p8Ur/AN+T/vugDUoqnFK/9+Snxb6ALNFNjqeKLNAEVFXIoqkitU/uUAZ9Fa0Vsn9yP/virEVhD/cj/wC+KAMGiuki0uH/AJ4x/wDfFWItLhP/ACxj/wC+KAOTorsotGth/wAu1v8A98VR8W2ENrpcbxQxx/P/AAJQBzdFFFABRRRQAUV3Xg3Rra68NwPLbW8knz/O6f7dXv7Cs/8Anzt/+/CV1fUzhqZhCE+Q83or0T/hH7P/AJ87f/vxUf8AY1n/AM+1v/37rT6nMz/tCB5/RXe/2LZf8+9v/wB8UyXRrb/n2t/++Kz+pzNP7QgcLRXbf2Vbf8+tv/37pn9mW/8Az7W//fFH1OYf2hA4yius/s22/wCeNv8A98VH/ZcP/PGP/vij6mw/tCBy9FdJ/Z8P/PGP/v3R/Z8P/PGP/v3R9TD+0IHN0V0P9nQ/88Y/++KZ/Z8P/PGP/vij6mH9oQMGitr7LD/dj/791H9lT+5H/wB8UfUw+uQMmitL7Kn9yOm/Y0/uUfVw+uQM+itDyl/551H5Kf3P0o+rmn1wp0VY8mjyaPq4fXCvRUvlfSoqPq4fXAoopPm9qPq4fXBaKT5vaj5vaj6uH1wWik+b2o+b2o+rh9cFopPm9qSOoqYfkLp4jnmOooorA3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOa8Y/8hRP+uFZFa/jH/kKJ/wBcKyKACiiigAooooAKKKKACiin/N7UAHze1Hze1Hze1TRRZoAIos0+ipIoqACKKp4osURRYp8UVABFFViKKiKKnxRZoAIos1PFFRFFU8UWKACKLFTxRURRVPFFmgAiizU8UVEUVTxRYoAIosVPFFRFFU8UWaACKLNW4osURRYqaKKgAiiqxFFRFFU0UVABFFWd48i/4k6f9d63IosVjfEGL/iRx/8AXf8A9kkoA42iiigAooooA9E8D/8AIp2v/A//AEZWrLFis7wF/wAinaf9tP8A0ZWpLFXsUf4Z85iP4kyrLFTasyxYqCWKtDIglizUFXKilizQaFSWKo6sVHLFQBVliptWKhlioAgl/rTKsVF5X1rM0IKjqxUdAFeo6sVHQBF83tTKkpPm9qAIKjqxUdZmhHUdSUUAV6jqxUdAFeipKjoAT5vamVJSfN7UGgyiiigAp0dNp0dY4j4DbDfGOooorhPSCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOa8Y/wDIUT/rhWRWv4x/5Cif9cKyKACiiigAooooAKKKf83tQAfN7UfN7UfN7VNFFmgAiizT6KkiioAIoqniixRFFinxRUAEUVWIoqIoqfFFmgAiizU8UVEUVTxRYoAIosVPFFRFFU8UWaACKLNTxRURRVPFFigAiixU8UVEUVTxRZoAIos1biixRFFipooqACKKrEUVEUVTRRUAEUVW4osURRYqeKKgAiirD+JcX/FPwf8AXf8A9kkro4os1h/FCL/in4P+vr/2SSgDgqKKKACiiigD0v4e/wDIoWv/AAP/ANGVq1m/D7/kULX/AIH/AOh1rV7dP+GfOYj+JMryxUyWLFT1HLFTMirLFTasyxYqCWKgCCWLNQVcqKWLNBoVJYqZL/Sp6jlioAqyU2rPlfSoJYqzAg8r60yrFR0GhXqOrFR0AV6jqxUdAEXze1MqSk+b2oAgqOrFR1maEdR1JRQBXqOrFR0AV6KkqOgBPm9qZUlJ83tQaDKdHTadHWOI+A2w3xjqKKK4T0gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDmvGP/ACFE/wCuFZFa/jH/AJCif9cKyKACiiigAoop/wA3tQAfN7UfN7UfN7VNFFmgAiizT6KkiioAIoqniixRFFinxRUAEUVWIoqIoqfFFmgAiizU8UVEUVTxRYoAIosVPFFRFFU8UWaACKLNTxRURRVPFFigAiixU8UVEUVTxRZoAIos1biixRFFipooqACKKrEUVEUVTRRUAEUVW4osURRYqeKKgAiiqeKLNEUWatxRYoAIosVzfxViz4bg/wCvpP8A0CSuqiirnfi/F/xS8H/X0n/oElAHm9FFFABRRRQB6l8Of+RLtf8Atp/6HJWtWb8O/wDkS7H/AIH/AOhyVrV7dP8AhnzmI/iTK9R1YqOtTIryxUyWLFT1HLFWYFWWKm1ZlixUEsVAEEsWagq5UUsWaDQqSxUyX+lT1HLFQBVliptWZYsVBJWYENR1YqKX+tBoQVHVio6AK9R1YqOgCL5vamVJSfN7UAQVHVio6zNCOo6kooAr1HVio6AK9FSVHQAnze1JHTqT5vascR8B1Yb4xaKKK4T0gooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDmvGP/IUT/rhWRWv4x/5Cif9cKyKACiin/N7UAHze1Hze1Hze1TRRZoAIos0+ipIoqACKKp4osURRYp8UVABFFViKKvpH4Hf8Efv2lP2j/Blv4g8J/CTxFe6PeJvgvL2SDTI7hP78f2p4/MT/bjruf8AiH5/a8/6I5ef+D7Sv/kqgD44iizU8UVfY8X/AAb/AH7Xg/5o7d/+D7Sv/kqpI/8AggD+11/0R+8/8H2lf/JVAHx3FFip4oq+xI/+CAf7XI/5pBef+D7Sv/kqpIv+CA/7Ww/5o/ef+D7Sv/kqgD4+iizU8UVfYEf/AAQM/a0H/NH7z/wfaV/8lVJF/wAEEP2tB/zSK8/8H2lf/JVAHyFFFip4oq+vYv8Aggr+1j/0SK8/8H2lf/JVTxf8EGv2sAP+SR3n/g+0r/5KoA+Qoos1biixX1tF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cfCrxZqXw++Cos7rVtPf7PqHiaZPtFvbzfxpap0kKd5H/d/WvzkktP2of295n1RI/i38SI3f/XJ9qu7OP/rn/wAs4/8AtnW0MOcssXD7J/T43zDisjxb4S03x94avtI1ixtNU0vUIWgurS4TzIp0PVGU9a/me0v4mftRf8E8tXguW1D4qfDn5/3dtqSXUen3H+/DP+4ev1M/4JPf8F2bD9rXxBY/D34oQ2Xh/wAfTKF0vU7f5NP11/8Annj/AJYz+33JO2D8lFShOGwU8VCb5T4j/wCCz/8AwRwl/Y01ef4ifD2G7vvhjqE2bq2f55PDsz/wb+rwP/A/UH936Z/PGv6/PGfgvSviP4P1Pw/rtjb6pousW0lle2lwnmR3MEibHR/qCa/mZ/4Ko/sHXf8AwT//AGq9S8KxpcT+FdTT+0vD15J/y8Wr/wDLP/rpHJ8ldGHqc+jOXEYfk/eQPmWo6sVHXUcZF83tTKkpPm9qAIKjqxUdZmhHUdSUUAV6hkq1UN11qcT8B0Yf4yGiiivNPUCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOa8Y/8hRP+uFZfze1a/iz/AJCkf+5WdFFmgAiizT6KkiioAIoqniixRFFinxRUAEUVWIoqIoqfFFmgAiizX62f8GlX/J0vxQ/7FeD/ANK6/JqKKv1o/wCDS/8A5Of+KH/YtQf+lVAH6If8HBv/ACin+JX/AG5f+lUdfzKxRV/TZ/wcD/8AKKr4k/8Abl/6VR1/M1FFmgAiizU8UVEUVTxRYoAIosVPFFRFFU8UWaACKLNW4osURRYqaKKgAiiqxFFRFFU0UVABFFX9Hn/BCX/lGN8PP+33/wBKpK/nOiixX9Gn/BCr/lGV8PP+33/0qkoA+EP+Dn//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G7PxN+GIuL/4ealp/j7TYzvS2J+yah/3w/7t/wDv5XPTxMJbnZUwc46n52xSvFJvVvLkj+46V6T+zD+0Npv7PXi6S+1b4feB/iFY3H+us/ENl9o8pP8Apm/8FcP4y8G6r8PvFF9omvabeaPrGlzvBdWd5A9vcW7/ANx0esuug5NT9MPBn7Pf7Nn/AAVx+H2sW/wr0Fvgv8aNLtnuk0XzvM0+/wD9z/lm8f8A1z2PH/cr81fGXhK/8B+LNS0TVraSx1XR7p7S6tn/ANZbzo/lulfQn/BJD+2v+Hjvwp/sLzPtX9tJ5+3p9k8uTz//ACBvr6+1r9iXwV+2z/wXl+LGharHdS+FdDS31bUYbKXyxd3KWtn5kDyfwI8zyb/L+cnuOo47+zmdfs/bQPij9hj/AIJr/Ej9vbxnHb+GtPk0/wAO27+XqHiC7T/Q7RP/AGeT/Yjr93P2FP8Agmt8OP2A/Cfk+F9P+3eIryHZqHiC8jBvLzvt/wCmaf7CV7b8O/h7onwq8KWeheHdLsdF0bT08u1s7SLy44k9AK3iM1xVsROR6WHw8IBiiiisDqGv0qlqmpw6NYTXd1IkNrbo80sjdEReSavBeK+OP+C3/wC1fB+zB+wt4kht7hY/EPjnPh7S0V8SfvU/fyf8Ag3/AIslVT97QzqVOWNz+fz9qT4qP8dv2kPHfjJvM/4qjXr3Uo0f/lnHPPJJGn/fuuCqzLFioq9Y+fK9R1NLFTaDQr1HVio6AK9R1YqOgCL5vaqGpf8ALOtCqes9Y6xxPwHRh/jM+iiivNPYCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAMvWP+P2P/cqGKKreqf8AHz/wCq8UWaACKLNTxRURRVPFFigAiixU8UVEUVTxRZoAIos1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sjg0e51SeTT7fy/ubIN/l/u6zqU5zh75dPEQhPngfuZ+zN8Vvgz+33+yF8TPh38IdHbw1oCafPpM9lLp6WMdvNewSbJkRGfjfk/VK+R/+DeCwm0v4eftHW06yW81vp9jHIj/APLN/Lv6/OT4ffGTxh8IJLt/CXirxJ4Z/tDZ9q/sfVJ7D7Rs+5v2P8/33o8L/G7xn8PrjVX0Hxh4o0eTxB+81R7DVJ7f+0P9Z/r9j/P99/8AWf8APSs1h/sFvGXnCZ9D/sdftW+IPHvxV/Zn+E983/Ei8EfEyG+tn3/6zz76B0j/AO2cnn/9/K2f+DgQ5/4KTa9/2B9O/wDRFfHmjazf+F9ctdS028vNN1LT50ntby2neO4t3T/Vujp9ySp/HnjzXvih4gk1XxNreseINVkRI3vNSvXu7iSNPufO/wC8rf2Vp85j9Y9zkMCo6sVHWpiV5YqZLFip6jlirMCrLFTasyxYqCWKgCCWLNQS1cqOg0KcsVc7426Wv/bSum8muc8edLX/AIHXPiPgOjB/xjnqKKK8s9wKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA1tBi/0eT/AH61oosVm+F4v9Dk/wB+tiKKgAiiqxFFRFFVqKKgAiiqeKLFEUWKniioAIoqniizRFFmrcUWKACKLFTRRURRVbiizQARRZqeKKiKKrUUVABFFViKKiKKpooqACKKrcUWKIosVPFFQARRVPFFmiKLNTxRUAEUVWooqIoqsRRUAEUVTRRURRVYiixQARRYqaKKiKKrEUVABFFU0UVEUVSRRUAEUVTxRYoiixU8UVABFFUkUVEUVTRRUAEUVeQ/tuf8km03/sLp/wCiJ69iiirx39uD/kk+nf8AYXT/ANET0AfLNFFFABRRRQB9KfAL/kkek/8Abf8A9HyV1/ze1cr+z7/ySDR/+2//AKPkrq6+iw38OB8jiP40iOo6n+b2plbGJXqOrFR0AV6jqxUdZmhXpPm9qlqOgCOo6n+b2plAFeWLNV6uVHLFmg0KksWKiqxTJYsUAQSxVBLFmrNNlioAqyxZqvLFVuWLNMlizWZepUlixTJYqmlipksWKA1K1R1aliqGgZXqOrFR0AV5YqZLFip6jlirMCrLFTasyxYqCWKgCCWLNcx8Qf8Al1/7aV1lcn8Rv+XX/tpXPiPgOzB/xjm6KKK8s9wKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA6Hwj/AMeEn+/WzFFWT4Nixp8n+/XQRRUAEUVTxRYoiixU8UVABFFU8UWaIos1biixQARRYqaKKiKKrcUWaACKLNTxRURRVaiioAIoqsRRURRVNFFQARRVbiixRFFip4oqACKKp4os0RRZqeKKgAiiq1FFRFFViKKgAiiqaKKiKKrEUWKACKLFTRRURRVYiioAIoqmiioiiqSKKgAiiqeKLFEUWKniioAIoqkiioiiqaKKgAiiqSKKiKKpKACvHf24v+ST6b/2GI//AERPXs1eOftz/wDJItN/7C6f+iJ6APlKiiigAooooA+mf2ff+SQaP/23/wDR8ldfXJfs8/8AJINH/wC2/wD6Pkrsa+iw38OB8jiP40ivSfN7VLUdbGJHUdT/ADe1MoAr1HVio6AK9R1YqOszQr0nze1S1HQBHUdT/N7UygCvLFmo6sVHLFmg0KksWKiqxTJYsUAQSxVBLFmrNNlioAqyxZqvLFVuWLNMlizWZepUlixTJYqmlipksWKA1K1R1aliqGgZXqOrFR0AV5YqZLFip6jlirMCrLFXK/Eb/ly/4H/7TrsZYsVyXxM/5cf+B/8AtOufEfAdmD/jHJ0UUV5Z7gUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB1ngT/kFyf9dq34osVh/D6LGjyf9d66OKKgAiiqeKLNEUWatxRYoAIosVNFFRFFVuKLNABFFmp4oqIoqtRRUAEUVWIoqIoqmiioAIoqtxRYoiixU8UVABFFU8UWaIos1PFFQARRVaiioiiqxFFQARRVNFFRFFViKLFABFFipooqIoqsRRUAEUVTRRURRVJFFQARRVPFFiiKLFTxRUAEUVSRRURRVNFFQARRVJFFRFFUlABUlFSUAFeMfty/8ko07/sLp/6Inr2evGP25f8AklGnf9hdP/RE9AHylRRRQAUUUUAfT/7PP/JINH/7b/8Ao+Suxrjv2ef+SQaP/wBt/wD0fJXa19Fhv4cD5HEfxpleo6sVHWxiV6T5vapajoAjqOp/m9qZQBXqOrFR0AV6jqxUdZmhXpPm9qlqOgCOo6n+b2plAFeWLNR1YqOWLNBoVJYsVFVimSxYoAgliqCWLNWabLFQBVlizVeWKrcsWaZLFmsy9SpLFimSxVNLFTJYsUBqVqjq1LFUNAyvUdWKjoAryxVxvxP62P8A20/9p121cd8Vf+XH6P8A+0648R8B2YP+MchRRRXlnuBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHbfDmL/iTyf9d//ZI66OKLNYHwvi/4kc//AF3/APZI66qKLFABFFipooqIoqtxRZoAIos1PFFRFFVqKKgAiiqxFFRFFU0UVABFFVuKLFEUWKniioAIoqniizRFFmp4oqACKKrUUVEUVWIoqACKKpooqIoqsRRYoAIosVNFFRFFViKKgAiiqaKKiKKpIoqACKKp4osURRYqeKKgAiiqSKKiKKpooqACKKpIoqIoqkoAKkoqSgAooooAK8Y/bl/5JRp3/YXT/wBET17PXjH7cv8AySjTv+wun/oiegD5SooooAKKKKAPqL9nc/8AFnNH/wC2/wD6Pkrsq439nL/kjGj/APbf/wBHyV21fRYb+HA+OxH8aRHUdSUVsQV6jqxUdAFek+b2qWo6AI6jqf5vamUAV6jqxUdAFeo6sVHWZoV6T5vapajoAjqOp/m9qZQBXlizVerlRyxZoNCpLFioquVBLFigCCWKoJYs1ZpssVAFWWLNV5YqtyxZpksWazL1KksWKZLFU0sVMlixQGpWqOrUsVQ0DK9cV8W+lj/wP/2nXc1xPxa66d/wP/2nWGM+A6MH/HONooorxj6AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA9A+FUX/FPz/9fX/skddVFFXM/CCL/in5/wDr6f8A9AjrsYos0AEUWaniioiiq1FFQARRVYiioiiqaKKgAiiq3FFiiKLFTxRUAEUVTxRZoiizU8UVABFFVqKKiKKrEUVABFFU0UVEUVWIosUAEUWKmiioiiqxFFQARRVNFFRFFUkUVABFFU8UWKIosVPFFQARRVJFFRFFU0UVABFFUkUVEUVSUAFSUVJQAUUUUAFFFFABXjH7cv8AySjTv+wun/oievZ68Y/bl/5JRp3/AGF0/wDRE9AHylRRRQAUUUUAfU37OX/JGNH/AO2//o+Su2rif2b/APki+jfSf/0fJXc/N7V9Fhv4cD43EfxpEFR1YqOtjEjqOpKKDQr1HVio6AK9J83tUtR0AR1HU/ze1MoAr1HVio6AK9R1YqOszQr0nze1S1HQBHUdT/N7UygCvLFmo5YqsVHLFmg0KksWKiq5UEsWKAIJYqglizVmmyxUAVZYs1Xliq3LFmmSxZrMvUqSxYpksVTSxUyWLFAalauJ+MH/ADDv+2n/ALJXeSxVwfxi/wCYb/wP/wBp1z4v+CdOD/jnE0UUV459AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAel/BuP/AIpuf/r6f/0COuxiirkfgtD/AMUvP/19P/6BHXcRRUAEUVWIoqIoqmiioAIoqtxRYoiixU8UVABFFU8UWaIos1PFFQARRVaiioiiqxFFQARRVNFFRFFViKLFABFFipooqIoqsRRUAEUVTRRURRVJFFQARRVPFFiiKLFTxRUAEUVSRRURRVNFFQARRVJFFRFFUlABUlFSUAFFFFABRRRQAUUUUAFeMfty/wDJKNO/7C6f+iJ69nrxj9uX/klGnf8AYXT/ANET0AfKVFFFABRRRQB9Vfs3f8kW0b/tv/6Pkrtfm9q4r9m7/ki2jf8Abf8A9HyV21fRYb+HA+NxH8aQnze1Mp/ze1Hze1bGJBUdWKjoAjqOpKKDQr1HVio6AK9J83tUtR0AR1HU/wA3tTKAK9R1YqOgCvUdWKjrM0K9J83tUtR0AR1HU/ze1MoAryxZqOrFRyxZoNCpLFioquVBLFigCCWKoJYs1ZpssVAFWWLNV5YqtyxZpksWazL1KksWK4T409dN/wCB/wDtOu+lirgfjT103/gf/tOufF/wTqy/+OcLRRRXjnvhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHq3wMi/4pef8A6+n/APQI67iKKuK+A8X/ABSU/wD1+v8A+gR13cUVABFFVuKLFEUWKniioAIoqniizRFFmp4oqACKKrUUVEUVWIoqACKKpooqIoqsRRYoAIosVNFFRFFViKKgAiiqaKKiKKpIoqACKKp4osURRYqeKKgAiiqSKKiKKpooqACKKpIoqIoqkoAKkoqSgAooooAKKKKACiiigAooooAK8Y/bl/5JRp3/AGF0/wDRE9ez14x+3L/ySjTv+wun/oiegD5SooooAKKKKAPqr9m7/ki2jf8Abf8A9HyV21cT+zd/yRbRv+2//o+Su2r6LDfw4HxuI/jSCk+b2paK2MRPm9qZT/m9qPm9qAIKjqxUdAEdR1JRQaFeo6sVHQBXpPm9qlqOgCOo6n+b2plAFeo6sVHQBXqOrFR1maFek+b2qWo6AI6jqf5vamUAV5Ys1HVio5Ys0GhUlixUVXKglixQBBLFUEsWas02WKgCrLFmvPPjd/zDvrP/AO069GlizXnnxy6aT/23/wDadceL/gnbl/8AGPP6KKK8c98KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA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BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAf/9k="},{"path":"readme/hostView.jpg","sha256":"2f587757283b2a318c6676d6e735d3e3fcc90df1cd1a778ceb95b8f0dc6fcf9a","contentBase64":"/9j/4AAQSkZJRgABAQEAeAB4AAD/4QJmRXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAEAAIdpAAQAAAABAAABPuocAAcAAAEMAAAAMgAAAAAc6gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHqHAAHAAABDAAAAVAAAAAAHOoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+EDP2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIvPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIi8+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9J3cnPz7/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAQwBhQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8fU6VJHukkVVXLN93/a/2ajTpXZfCfQ0vLq4vnXe9uu2If3W/iagCnpfwr1K+hEj+XbI33Uf+7Vz/AIU3cP8AdvLf/vndXoUcbNIqIu/c21f9r/Zr2L4Q/sL/ABF+OOh3moeH/DGuapZ2Ozz5LOweWCHd91Xfcse7/Z3bvm+781VHUD5b/wCFNXP/AD+W/wD3xR/wpq5/5/Lf/vivoL43fsz+MP2f9euNN8T6JqmlXluqs8GoWb20se77rbX+8v8AtLuX/arz3/Of71Eo2A8//wCFNXP/AD+W/wD3xR/wpq5/5/Lf/vivQKKkDz//AIU1c/8AP5b/APfFH/Cmrn/n8t/++K9AooA8/wD+FNXP/P5b/wDfFH/Cmrn/AJ/Lf/vivQKKAPP/APhTVz/z+W//AHxR/wAKauf+fy3/AO+K9AooA8//AOFNXP8Az+W//fFH/Cmrn/n8t/8AvivQKKAPP/8AhTVz/wA/lv8A98Uf8Kauf+fy3/74r0CigDz/AP4U1c/8/lv/AN8Uf8Kauf8An8t/++K9AooA8/8A+FNXP/P5b/8AfFH/AApq5/5/Lf8A74r0CigDz/8A4U1c/wDP5b/98Uf8Kauf+fy3/wC+K9AooA8//wCFNXP/AD+W/wD3xR/wpq5/5/Lf/vivQKKAPP8A/hTVz/z+W/8A3xR/wpq5/wCfy3/74r0CigDz/wD4U1c/8/lv/wB8Uf8ACmrn/n8t/wDvivQKKAPP/wDhTVz/AM/lv/3xR/wpq5/5/Lf/AL4r0CigDz//AIU1c/8AP5b/APfFH/Cmrn/n8t/++K9AooA8/wD+FNXP/P5b/wDfFH/Cmrn/AJ/Lf/vivQKKAPNtT+E2oafbs8Lx3W37yIu2ubmR7eRkdWV1+Vg38Ne2/wB1t3zK25RXEfFzQY1t0v0XbIzbH/z/AMCoA4aij5f4elFABRU1jYzahdLDbW8lzcN92KNdzN/eqH7vy/e/4DtagAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAGp0r0j4Q/wDIt3H/AF9N/wCgJXm6dK9I+EP/ACLdx/19N/6AlAHr3wD8Ox+KvihpdnMzJ5k6IjovzRs8sabvvLuZd6sq/wB5Vr9/fi74i0z9kb9nldJ8L+EfGEfhEJb6f/YRsEVzOjK3nWr7m/eN5ZMqNuX5dy7WDb/54PB/iR/CfiC3vEXd5LKzgP5bMu7btVv73zN838Lbf71frr+zv/wWo8F+OPg3dR/EddcvPHy2sNlDq1rarPbT26vG5Cw790Ej7FZ9qfvH2tu2rtXWOxlqe0f8FPPC+k/H79hzxL4w8TaPrlz4i0+1h1fSdRfTQNP02FnXNvE33mieJ2V3b5mZt3yrtVfwa1yz/svXLy2XzGS3neJd6/N8rN95v4vmr9Jf+Cof/BXTQfi94T1fwb8MLfVNK8K6xKl7qKX7LE2oXSsz7kRHdYYmdVldfl81k3bfmbd+aVxJ51w77t3mNu67qcthU/iPsj/gln8LvAfxS+F/xmsPHOm6bMmpQaToem6rPZJPc6LdX8tzbQzwvsaSJvPa33Mm35Vbc1b/APwTv/ZP0nw3ofxIv/iZ4b0m+1y6tdd8NaDp2qQRXiw3VhZTz311Ejoyt5UiW0W9d/7yV/ustfLHw5+O3/CB/AP4leBv7L+1N8Qv7MVb03Xlrp/2W4ac/Jtbzd+7bt3Jt2/eb7te3eIP+CrGteMPjRpXi7UvCdmsen+EL7w42nWmo/Zo5L2/ilS51FpfKb940ku/bt+6i/NWJscl4T/Yn0GS48B6H4m+IH/CP+OvidZRX/h7T4NGbUNPhS52rY/brzzl8lp5dytsin8qNldv+edRWP7G/h34f+F/DN58TvHl54Jv/FmrXWm6dYWGhrrDWaW141nNdXrtcwRwxpPFKq7PNbajN/D81jw3+2p4fb/hXut698O5tb8ffC/TodN0HU4tbaz026Frt/s9ru0W3ZpWgk+bassHmqu1qrW/7ZHh3x54T8NWfxM8C3njTVPB+qXup6dqGn65Fpn2xLq8a8mt72J7a4jmjaeWVlZPKb9667vm3KAbN9+wDpPwq8B+Ita+KHj+48Jv4d8by+CHtNK0H+2pLiZIEnW6i3XMG6Jo3L/MqfKqsq/NtXutQ/ZAj+D/AMN9Q8GXjeH5PE+l/HPRPDMHiGTRoLxfslzYXTK7RTffib91M1q/yyMrK3yqrV4z8aP22NY+PHwn1zQde0u1XV9e8dTeN7jULe48uKNpbNbZbVLfZ91V2srb32rtXa23c3cfFD/gpIvxI8WX2of8IX9jN58RNJ8erB/a+7b9gs/sv2Xd9nX7zOv73a3l7vuNQBmfEj9j/Q/h/rGtat8S/HUnhm31jxhqvh/RH0jwpFdf2ktrdNFe3sttFNBFZWyyeUqwp5sjbm2RMqKregyfsj+DfgX8O/2lPC/i7Wo77/hX+ueGYLfxJaeGlvNSVJ/tjOlvDNcLGu9mi3brlVZYNzbmXy6h8H/GCw/a0tHuPF3hjwXc6Vp/jvUvEGiS6r8S9N8P/wBkrfypc3Fnd29wjXOoWqysj74IFZts6o+7cqcj+1t+2to/xM8dftAWPh+wkvtE+KXiDTL+w1R52ga1h0xpVR/JZNzLKsqsqs6NGqqrbt3ygHXf8MN/DX4T/C/40TeKPEmvaw/h3SfDut+GvEGmaJ5/maffy2zJdRRNqMW+Rlle3dJWZV2+ajuvyt8aLF5Y2t12r/Fu/h/vfxNX0heft4WHiTwvq3h/XPBd9c+HdY8C+H/B91b6friWd8sujtA0Nwkz2zxqsjRNuiaJ9u75Xbbur5w/2dyt8zfcG3+L+7/e/wDZt33aACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPdP2A7Xwr44+MH/AAr3xb4JuPFlh8RlTRoLzTomk1fw7Nv3JeW/zbdqsu6Xcv8Aq0bcyruV/Rf29P2b/Cv7A/wr0v4c2+j/APCZeMPFhXVrrx7cQPFbLDFK6rZacqs6+Z8v7/c7N83zbv8Alh4F8E/2lPFn7O+m+Ko/CNzZ6XfeLNN/smfVPIX7dZws251trj71uzr8rMv3l27drKrLJb/tMeKrf9nm8+F9xc2t/wCEZNSTVrWC5tUnn0eZNzN9ilb5rdZd/wC9Vfl/u7d22gDz/wCU7tu3bu+XZ93/AID/ALP8P/Aa5v4qf8im3/XVK6T5vut8x/i/z/n7tc38VP8AkU2/66pQB5inSneZsX/gXf5l+6zf7W37v3ttNTpTqAP0W/4JJ/sT/wDCv/2wPhr46/4W78E9Y/0W7vP+Ee0rxR9q15fP02ddn2byV/eJ5u913fcVm/hr5Y/aE/Yn/wCGf/Aqa9/wtz4H+OPMvEs/7O8KeKP7Tvo9+752i+zr8vyf3v4ayv2Gf2lIf2RP2pfC/wARLnSZNet/D7Xe6wjn8hpvPs57Zfn2tt2+bu/2tleS7t21t275f8/wrQAeZ5m1v9lW/wA/3aKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKANr4deB5viR4wsdFt9Q0fS5LxnX7Tqt/FY2cO2J33SzPtWJfk+9u+avT/8Ahh/W8Kq+PPgv/wCHD0n/ANluK8WooA634sfB+6+D+qWtnfax4T1trxN6voWuW+rxx/My/M0Lsqt8v3d277v96uS/3fm9zRRQAUUUUAFe3f8ABM7/AJSP/s+5XcG+JPh1f7u7/iaW3/fTfLu+98vzV4jXon7IXxb034AftZ/C3x5rFvqF3o/gnxdpPiC/gsIlluZoLO9guHSJWZVaRlibYrMisy/eoA6j/h5j+0gPmX9oP42sv/Y96p/ulm23G35m+b5fl+auq/ab+Ofjb4//APBP74Raz498Y+KvG+sWvxA8Z2MN9r2r3Gp3MMC6b4WdYllmdmWNWd227tu52b+Jq5g+A/2b/wDorHxuZfvKU+FOk7W/3f8AioV/8dpn7QvxG+HP/DNngX4e/DzWvHXiQ+HfEmveIb298QeHLPQf+P8AtdHt44Ykt7+9ZmX+zHbd8n39v8NAHiZ/i/3m/wDQqKOG+ZW37mbn+Fvmbb/47RQAUUUUAN/2l3bv4cfd+X5t391vm2//ALW2vur4SfBCT/gtrcTNprWfhn49eHIYrrxRqRtJZNJ8Zae00UDak6wo/lamjyJvRV/0zcGX/SVeN/hdv9Wy/Nt3bWwyrt3K2373/oXyt/db71e+fHL9r3TbPwHpfw1+DlvrHhH4c6LdW+qXN/cqltrHi7VYtrLqWoeVK6xKnz+Rbxs6wbt/zuzSOAR/tYftAeHY/CVr8I/hjp82l/DPwzqP224vdTtfI1fxhqqI8C6jfL9+FfLeVILVflgid2Zmd3kbwdvvN97723ldv3flH+98q/e/ir2z9p39o3w3+1P4F0vxNrej6jYfGqO6Fp4h1O1igTTPF1r5T41C5XcskWoblRJWRGWdZGlZUlWXzfE/MaTc7f8ALRt2du3d/wCPNQAUUUUAEf3V3fMv+dtepfDfS30vwvH5seyS4bzX/wDHV/8AZaw/CfwuZZo7jUmXbH8yxBt3zV3Kqscaqq7F29KAFooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACsnxxpb6x4XuoY/8AWY3J/wCzVrUfxf3l9KAPD/8Ad+72orvvGXwzkvrhrrTfL3yNueJ22q3+1XK3HgzVLWTa1jdN9EaRf+A7aAMuir8nhfUm/wCXC+/CF6T/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/AM+Gof8Afh6P+EW1H/nw1D/vw9AFGir3/CLaj/z4ah/34ej/AIRbUf8Anw1D/vw9AFGir3/CLaj/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PE1/caX4buL+GDVLuFPMktbV32vKq7W3Mq/723+7/C+HW58M7zQ9O+I2g3PiizutS8N2+owvqlpbttluLXevmxJ8y/M0e7+Nfm2/Mn3qAN/9pbw34J8KfGrWrH4d63eeIfCMbRPYXt2m2Vt8SO6t8q7tsjOu7b/Dt/h3Vwld3+0tr/gXxR8atavvhro99ofg2ZovsVndy+ZLG3lJ5rfff5Wl3v8Afb738P3E4SgAooooART936D/ANBpaRT936D/ANBpaAO2+Af7QXiL9m/xymveHbiNXkRrW9tLtPNs9Qt3Xa0E0X8cbfxL/D8v8W2uR1bUG1TVLm6aGG3N1O8vlRLtjj3MzbUX+6v3V/2VWq9FABRRRQAUUUUAaml+MNQ0Xw/f6XZvHbw6oyLdSBNssifwpv8A7v8As/7VZWf8Np/hpaKACiiigArvPgH+0h4q/Zz8QXN54bv1S31BPKv9OuYvtNjqSKrbPOt2+WVkZ22f7TNXB0UAe3eNv28vF3izwPf+HtE0XwX4B0vWoPsuqReE9Dg0yXVEZVRkmlX5m3fPuX/bavEfl+XbtZcL9z7v3fm/8eoooAKPmx/s0UUAcp8QNL8uSG5X5kZdj/7P91qv+C9cXUNPW2kk/fRrtf7/AMyr8ysu1l3N/Cv93dWxdW6Xlu0ci7o5PlauM1jwrc6HcNJbrI8K/deP70dAH0Dr/wC2Z8YPFGi3+nal8VPiVqVhqCPBe2d54oup7a6R96vFKjS7Wjbeysu37rLXWeM/+CgHirxp8H7rwvNoPg+31DUtJtPDl74ks9Na11q80q18jybN5UdV8pmhRm3KzSKqru+WvlWHx5fRxqjNHNt/jcbmqO+8bX15FsVo419VXbQBoePNcWSP7HC6ysrMzkfd+Zt1cq5VFwAD0IJzgc9icj8qf94s33m/ipKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACrnh/wARXng/XrHVdPuPsuoaXcJe2twPma3lRtyuqtuX5f4v96qdFAH3Va/8HBnxqs7NbeTQfhvcSRxLF5smnXqtIzLy/wAt5t3feb7m3c9etftnftj237Vnh74b+IfA3jD4f6Tcf2RMviTQPEviG3j02+ivIovNsri2aVmbY0Xyt8skbbGRtyqyfl3RQB7R+0pcaX4T+C/w38F23iDQ/EWteG31W9v5NEuPtlrCt1LE8K+coVWbbFu+Xcq71X+FlXxfy/L+VfmX1/n/AOPUUUAFfQv7HP7a1h+x38M/HEdj4VsfFHi3xk9ra2/9qfNpun29szSs8sSjdMzyN8qbl2+V975trfPVFAH2J4T/AOCvHiTxt4M8aeHvivpNv4wTxhol1o1vrlnaw6fqejpOrt8m1F82LzGRliZomVkVv4tq/Hff/Dbt2/wsu1m+Vl2t/wACoo/2vvL6UAFbngbTftWqfaG+5b/NVXR/C91q8u5Y/Jj/AIpP9n+7XbaXpsek2aQwr8v3v96gCxt2s2Pu/eooooA9f/Yx/aM0r9m/4ia5ea9o95rWh+KPD174c1GK0mSOeOGfY7Om7+L9zUvxX8SfBD/hE1k+Hel/EzT/ABRDdJPby6zeWctmyq/3XVfm+7t/z8y+N0UAfaWh/wDBQD4N618ZNH+KXiL4a+KP+FkWawrO+manFFp9xMqKi3S/Pu81Y1baqr82373/AC0X5p/aYstDt/jh4gufDfiS38VaPq1w2pW97HA8DKs7eb5To6rtkXd8235f/QV4OigAoXbxu/3s7d23bt3NRRQBtfEDVLfWPF11c2r+ZDIqbX27f4FrFoooAP8AZ2/K3evoT9if9vjWP2UZL/RLyG81TwjrDM88dncLa6hpcrJsa6tJmRvKlZdi7v4ljWvnuigD7I0f48fBzwb4gh8WWvxk/aUv9QhZJ10xNlrdM6/dV73zm3R/e3N5S/K1eM/tmftka3+2J47jvry1t9E0HS1aLS9KtJVaK1V/vzyuv+tlfZuZ/wD4mvHaKAE8zzPmb73X/wBm/wDQaWiigArd+F/iy3+H/wASNB1y60qz1610fUre8l0673eRfKj7mifau7y2/i+8v95awqKAO6/aS+Kml/Gz40a34m0Xwzp/g/TdSdPK0uy2+XDsRU3NtVY/MfZvbYqruZv4t1cLRRQAUUUUAIp+79B/6DS1z/8AwlF8vy74/wDvwn96j/hKL7/npH/35SgDoKK5/wD4Si+/56R/9+Uo/wCEovv+ekf/AH5SgDoKK5//AISi+/56R/8AflKP+Eovv+ekf/flKAOgorn/APhKL7/npH/35Sj/AISi+/56R/8AflKAOgorn/8AhKL7/npH/wB+Uo/4Si+/56R/9+UoA6Ciuf8A+Eovv+ekf/flKP8AhKL7/npH/wB+UoA6Ciuf/wCEovv+ekf/AH5Sj/hKL7/npH/35SgDoKK5/wD4Si+/56R/9+Uo/wCEovv+ekf/AH5SgDoKK5//AISi+/56R/8AflKP+Eovv+ekf/flKAOgo+Zht/hrn/8AhKL7/npH/wB+Uo/4Si+/56R/9+UoA2ZNLtrht0lvDIfV4t1MfQ7P/nzt/wDvwv8A7NWT/wAJRff89I/+/KUf8JRff89I/wDvylAGr/Ydn/z6W/8A35Sj+w7P/n0t/wDvylZX/CUX3/PSP/vylH/CUX3/AD0j/wC/KUAav9h2f/Ppb/8AflKP7Ds/+fS3/wC/KVlf8JRff89I/wDvylH/AAlF9/z0j/78pQBq/wBh2f8Az6W//flKP7Ds/wDn0t/+/KVlf8JRff8APSP/AL8pR/wlF9/z0j/78pQBq/2HZ/8APpb/APflKP7Ds/8An0t/+/KVlf8ACUX3/PSP/vylH/CUX3/PSP8A78pQBq/2HZ/8+lv/AN+Uo/sOz/59Lf8A78pWV/wlF9/z0j/78pR/wlF9/wA9I/8AvylAGr/Ydn/z6W//AH5Sj+w7P/n0t/8AvylZX/CUX3/PSP8A78pR/wAJRff89I/+/KUAav8AYdn/AM+lv/35Sj+w7P8A59Lf/vylZX/CUX3/AD0j/wC/KUf8JRff89I/+/KUAav9h2f/AD6W/wD35Sj+w7P/AJ9Lf/vylZX/AAlF9/z0j/78pR/wlF9/z0j/AO/KUAav9h2f/Ppb/wDflKP7Ds/+fS3/AO/KVlf8JRff89I/+/KUf8JRff8APSP/AL8pQBq/2HZ/8+lv/wB+Uo/sOz/59Lf/AL8pWV/wlF9/z0j/AO/KUf8ACUX3/PSP/vylAGr/AGHZ/wDPpb/9+Uo/sOz/AOfS3/78pWV/wlF9/wA9I/8AvylH/CUX3/PSP/vylAGr/Ydn/wA+lv8A9+Uo/sOz/wCfS3/78pWV/wAJRff89I/+/KUf8JRff89I/wDvylAGr/Ydn/z6W/8A35Sj+w7P/n0t/wDvylZX/CUX3/PSP/vylH/CUX3/AD0j/wC/KUAav9h2f/Ppb/8AflKP7Ds/+fS3/wC/KVlf8JRff89I/wDvylH/AAlF9/z0j/78pQBq/wBh2f8Az6W//flKP7Ds/wDn0t/+/KVlf8JRff8APSP/AL8pR/wlF9/z0j/78pQBq/2HZ/8APpb/APflKP7Ds/8An0t/+/KVlf8ACUX3/PSP/vylH/CUX3/PSP8A78pQBq/2HZ/8+lv/AN+Uo/sOz/59Lf8A78pWV/wlF9/z0j/78pR/wlF9/wA9I/8AvylAGr/Ydn/z6W//AH5Sj+w7P/n0t/8AvylZX/CUX3/PSP8A78pR/wAJRff89I/+/KUAav8AYdn/AM+lv/35Sj+w7P8A59Lf/vylZX/CUX3/AD0j/wC/KUf8JRff89I/+/KUAav9h2f/AD6W/wD35Sj+w7P/AJ9Lf/vylZX/AAlF9/z0j/78pR/wlF9/z0j/AO/KUAav9h2f/Ppb/wDflKP7Ds/+fS3/AO/KVlf8JRff89I/+/KUf8JRff8APSP/AL8pQBq/2HZ/8+lv/wB+Uo/sOz/59Lf/AL8pWV/wlF9/z0j/AO/KUf8ACUX3/PSP/vylAGr/AGHZ/wDPpb/9+Uo/sOz/AOfS3/78pWV/wlF9/wA9I/8AvylH/CUX3/PSP/vylAGr/Ydn/wA+lv8A9+Uo/sOz/wCfS3/78pWV/wAJRff89I/+/KUf8JRff89I/wDvylAGr/Ydn/z6W/8A35Sj+w7P/n0t/wDvylZX/CUX3/PSP/vylH/CUX3/AD0j/wC/KUAav9h2f/Ppb/8AflKP7Ds/+fS3/wC/KVlf8JRff89I/wDvylH/AAlF9/z0j/78pQBq/wBh2f8Az6W//flKP7Ds/wDn0t/+/KVlf8JRff8APSP/AL8pR/wlF9/z0j/78pQBq/2HZ/8APpb/APflKP7Ds/8An0t/+/KVlf8ACUX3/PSP/vylH/CUX3/PSP8A78pQBq/2HZ/8+lv/AN+Uo/sOz/59Lf8A78pWV/wlF9/z0j/78pR/wlF9/wA9I/8AvylAGr/Ydn/z6W//AH5Sj+w7P/n0t/8AvylZX/CUX3/PSP8A78pR/wAJRff89I/+/KUAav8AYdn/AM+lv/35Sj+w7P8A59Lf/vylZX/CUX3/AD0j/wC/KUf8JRff89I/+/KUAav9h2f/AD6W/wD35Sj+w7P/AJ9Lf/vylZX/AAlF9/z0j/78pR/wlF9/z0j/AO/KUAav9h2f/Ppb/wDflKP7Ds/+fS3/AO/KVlf8JRff89I/+/KUf8JRff8APSP/AL8pQBq/2HZ/8+lv/wB+Uo/sOz/59Lf/AL8pWV/wlF9/z0j/AO/KUf8ACUX3/PSP/vylAGr/AGHZ/wDPpb/9+Uo/sOz/AOfS3/78pWV/wlF9/wA9I/8AvylH/CUX3/PSP/vylAGr/Ydn/wA+lv8A9+Uo/sOz/wCfS3/78pWV/wAJRff89I/+/KUf8JRff89I/wDvylAGr/Ydn/z6W/8A35Sj+w7P/n0t/wDvylZX/CUX3/PSP/vylH/CUX3/AD0j/wC/KUAav9h2f/Ppb/8AflKP7Ds/+fS3/wC/KVlf8JRff89I/wDvylH/AAlF9/z0j/78pQBq/wBh2f8Az6W//flKP7Ds/wDn0t/+/KVlf8JRff8APSP/AL8pR/wlF9/z0j/78pQBq/2HZ/8APpb/APflKP7Ds/8An0t/+/KVlf8ACUX3/PSP/vylH/CUX3/PSP8A78pQBq/2HZ/8+lv/AN+Uo/sOz/59Lf8A78pWV/wlF9/z0j/78pR/wlF9/wA9I/8AvylAGr/Ydn/z6W//AH5Sj+w7P/n0t/8AvylZX/CUX3/PSP8A78pR/wAJRff89I/+/KUAav8AYdn/AM+lv/35Sj+w7P8A59Lf/vylZX/CUX3/AD0j/wC/KUf8JRff89I/+/KUAav9h2f/AD6W/wD35Sj+w7P/AJ9Lf/vylZX/AAlF9/z0j/78pR/wlF9/z0j/AO/KUAav9h2f/Ppb/wDflKP7Ds/+fS3/AO/KVlf8JRff89I/+/KUf8JRff8APSP/AL8pQBq/2HZ/8+lv/wB+Uo/sOz/59Lf/AL8pWV/wlF9/z0j/AO/KUf8ACUX3/PSP/vylAGr/AGHZ/wDPpb/9+Uo/sOz/AOfS3/78pWV/wlF9/wA9I/8AvylH/CUX3/PSP/vylAGr/Ydn/wA+lv8A9+Uo/sOz/wCfS3/78pWV/wAJRff89I/+/KUf8JRff89I/wDvylAGr/Ydn/z6W/8A35Sj+w7P/n0t/wDvylZX/CUX3/PSP/vylH/CUX3/AD0j/wC/KUAav9h2f/Ppb/8AflKP7Ds/+fS3/wC/KVlf8JRff89I/wDvylH/AAlF9/z0j/78pQBq/wBh2f8Az6W//flKP7Ds/wDn0t/+/KVlf8JRff8APSP/AL8pR/wlF9/z0j/78pQBq/2HZ/8APpb/APflKP7Ds/8An0t/+/KVlf8ACUX3/PSP/vylH/CUX3/PSP8A78pQBq/2HZ/8+lv/AN+Uo/sOz/59Lf8A78pWV/wlF9/z0j/78pR/wlF9/wA9I/8AvylAGr/Ydn/z6W//AH5Sj+w7P/n0t/8AvylZX/CUX3/PSP8A78pR/wAJRff89I/+/KUAav8AYdn/AM+lv/35Sj+w7P8A59Lf/vylZX/CUX3/AD0j/wC/KUf8JRff89I/+/KUAav9h2f/AD6W/wD35Sj+w7P/AJ9Lf/vylZX/AAlF9/z0j/78pR/wlF9/z0j/AO/KUAav9h2f/Ppb/wDflKP7Ds/+fS3/AO/KVlf8JRff89I/+/KUf8JRff8APSP/AL8pQBq/2HZ/8+lv/wB+Uo/sOz/59Lf/AL8pWV/wlF9/z0j/AO/KUf8ACUX3/PSP/vylAGr/AGHZ/wDPpb/9+Uo/sOz/AOfS3/78pWV/wlF9/wA9I/8AvylH/CUX3/PSP/vylAGr/Ydn/wA+lv8A9+Uo/sOz/wCfS3/78pWV/wAJRff89I/+/KUf8JRff89I/wDvylAGr/Ydn/z6W/8A35Sj+w7P/n0t/wDvylZX/CUX3/PSP/vylH/CUX3/AD0j/wC/KUAav9h2f/Ppb/8AflKP7Ds/+fS3/wC/KVlf8JRff89I/wDvylH/AAlF9/z0j/78pQBq/wBh2f8Az6W//flKP7Ds/wDn0t/+/KVlf8JRff8APSP/AL8pR/wlF9/z0j/78pQBq/2HZ/8APpb/APflKP7Ds/8An0t/+/KVlf8ACUX3/PSP/vylH/CUX3/PSP8A78pQBq/2HZ/8+lv/AN+Uo/sOz/59Lf8A78pWV/wlF9/z0j/78pR/wlF9/wA9I/8AvylAGr/Ydn/z6W//AH5Sj+w7P/n0t/8AvylZX/CUX3/PSP8A78pR/wAJRff89I/+/KUAav8AYdn/AM+lv/35Sj+w7P8A59Lf/vylZX/CUX3/AD0j/wC/KUf8JRff89I/+/KUAav9h2f/AD6W/wD35Sj+w7P/AJ9Lf/vylZX/AAlF9/z0j/78pR/wlF9/z0j/AO/KUAav9h2f/Ppb/wDflKP7Ds/+fS3/AO/KVlf8JRff89I/+/KUf8JRff8APSP/AL8pQBq/2HZ/8+lv/wB+Uo/sOz/59Lf/AL8pWV/wlF9/z0j/AO/KUf8ACUX3/PSP/vylAGr/AGHZ/wDPpb/9+Uo/sOz/AOfS3/78pWV/wlF9/wA9I/8AvylH/CUX3/PSP/vylAGr/Ydn/wA+lv8A9+Uo/sOz/wCfS3/78pWV/wAJRff89I/+/KUf8JRff89I/wDvylAGr/Ydn/z6W/8A35Sj+w7P/n0t/wDvylZX/CUX3/PSP/vylH/CUX3/AD0j/wC/KUAav9h2f/Ppb/8AflKP7Ds/+fS3/wC/KVlf8JRff89I/wDvylH/AAlF9/z0j/78pQBq/wBh2f8Az6W//flKfDpNrb/NHbW6N7RBf/Qax/8AhKL7/npH/wB+Uo/4Si+/56R/9+UoA31/75/4Dtpa5/8A4Si+/wCekf8A35Sj/hKL7/npH/35SgDoKK5//hKL7/npH/35Sj/hKL7/AJ6R/wDflKAOgorn/wDhKL7/AJ6R/wDflKP+Eovv+ekf/flKAOgorn/+Eovv+ekf/flKP+Eovv8AnpH/AN+UoA6Ciuf/AOEovv8AnpH/AN+Uo/4Si+/56R/9+UoA6Ciuf/4Si+/56R/9+Uo/4Si+/wCekf8A35SgDoKK5/8A4Si+/wCekf8A35Sj/hKL7/npH/35SgDoKK5//hKL7/npH/35Sj/hKL7/AJ6R/wDflKAOgorn/wDhKL7/AJ6R/wDflKP+Eovv+ekf/flKAOgorn/+Eovv+ekf/flKP+Eovv8AnpH/AN+UoA6Ciuf/AOEovv8AnpH/AN+Uo/4Si+/56R/9+UoA6Ciuf/4Si+/56R/9+UooAz6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAE+8zfwqq/MR977y14741/aD1fQPFl/YwWultDazsimSJmbr/ssteyj/Wx/wC8v/oS18u/FA/8XD1hv+np/wCdAHsHwZ+LF58Q7i+hvYrOGe1VJIhArLuXLb/vFq7rULyHTdPuLmb5I4UeR9/3fZf++d1eBfCy6k8A/GRbOX/nu9g/+9u2j/x4LXqvxz13+wvhpeqrbXvP9FX/AHW+X/0WtAHnUn7Tevf8+ulMsjFsvEWb/wAdYV6X8I/G114+8KtqF5Hbxyee0WIFZV2qq/3mb+9Xzveaa0Oi2t1t2/aJXQD12hOfzzXt37Ngb/hXb/Lt/wBMf/0FaAPQ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FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACKvl/LS0Rf6tf92igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAIv9Wv8Au0URf6tf92l+WTam1m+b/gLf3aqPvS5YrcmQlFeneE/gPDf6TDcaldTRzTfO0cLKu3/vpWrU/wCGfdH/AOfjVP8AvtP/AIivuMH4d5vVpKryrXvoedLNsPzanjtFewf8M96P/wA/Wqf99p/8RR/wz3o//P1qn/faf/EV0f8AEM82/lh94f2vhzx+ivYP+Ge9H/5+tU/77T/4ij/hnvR/+frVP++0/wDiKP8AiGebfyx+8P7Xw54/RXsH/DPej/8AP1qn/faf/EUf8M96P/z9ap/32n/xFH/EM82/lj94f2vhzx+ivYP+Ge9H/wCfrVP++0/+Io/4Z70f/n61T/vtP/iKP+Ia5v8Ayr5MX9sYY8for0zxd8A4bHR5LnTbm4aa3Xc0dwysrL/wFVrzLru3fK38Q/u/7NfK5xkGMyqr7HGI7MPiIVo80BaKKK8c6AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKTdt/i+X+IUc0lqkH+IWivQfh78E08SaOl/qFxdQw3C7okgVdzL/e3NXQ/8M+6P8u651Td/vp/g1fb4Hw/zTFUYYilHSfc8+pmmHhKzPHaK9g/4Z70f/n61T/vtP/iKP+Ge9H/5+tU/77T/AOIrr/4hnm/8sPvM/wC2MOeP0V7B/wAM96P/AM/Wqf8Afaf/ABFH/DPej/8AP1qn/faf/EUf8Qzzf+WH3h/a+HPH6K9g/wCGe9H/AOfrVP8AvtP/AIij/hnvR/8An61T/vtP/iKr/iGeb/yr7w/tfDnj9Fewf8M96P8A8/Wqf99p/wDEUf8ADPej/wDP1qn/AH2n/wARR/xDPN9uVfJh/bGGPH6K9M8XfAOGx0eS5025uGmt13NHcMrKy/8AAVWvMuu7d8rfxD+7/s18nnGQYzKqnscYjsw+IhWjeAtFFFeOdAZ5/wA/3qR/u0L1+Vdq/wD2VD/drown8SJNT4WfTtFHmbZP4dqsrNvbau35V+9/e+b7v8Vfdn/BPj/ginqH7V/w1sfHXizxHceG/DWr+abG0tbX/iYXKI7Jvcv8kK7gf4WZtv3a/q7HZ5gsswVOpinZaefQ+Hp4edeq4QPhOiv2J/4hy/hiw3N42+IDO33v3lmv8rf+lO/4hxfhiP8Amd/H/wD3+tf/AIzXza8TMmX2n/4AdX9j4k/HSiv2L/4hxfhj/wBDv4//AO/1r/8AGaX/AIhxfhj/ANDv8QP+/wBa/wDxmj/iJuTfzP8A8AD+x8SfjnRX7Gf8Q4vwx/6Hf4gf9/rX/wCM0n/EON8MP+h48f8A/f61/wDjNH/ETcm/mf8A4AH9kYk/HSiv2GuP+Dcb4ZvEwi8ceOlk2HY8jWrqv/AREv8A6FXxj/wUj/4JV6t+wVZaZ4gsdc/4Sjwpq119iWaS1+zy2MzBnWJwrNuWRUPzf3kr0Ms4/wApxmJhh6ctZeVjOpltanHnmfI9fMKdK+nflHTd91V5+9935f8Ax3/0KvmJOlfD+LnxUZPzPTyGWkojqKKK/FT6EKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAClT734f+zLSUqfe/D/ANmWqp/HEUtmfRHgj/kStI/69Iv/AEBa06zPBH/IlaR/16Rf+gLWnX9hZT/uNL/CvyPgsR8bCiiivQ+0tDEKK+0v+CJX7KnhP9qH9oDxMnjbS7XW9G0DRfOSwuGbbJcSzIqS4Ur9xVl/7+V+oyf8Euf2f3/5pZ4X3f8AXJ//AIuvz3P/ABFwmWY6eGqUpS5ex6mFyupWhzo/nnor9FP+C6v7E/gf9nTS/AfiDwJ4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7vflZ0RweFlL4z8g/wDhiP41RDd/wqH4pKysrfL4Uvd3y/d/5ZK3y12GrfCX9qrWPD8mk3nhn9oC6024RYntX0/V5IJEX+Eps2qv+zX9DMZzTtmf4Qa8Gr4pY2rJc9GHu+R1RyaC+CR/Np/ww98af4Pg/wDE9Y17Dwpf7V/8hNR/ww/8av8Aoj/xR/8ACWvf/jNf0iXj+TCxC/Nt4wu6vhtP+Dgv4FxgqLLx03zNgrpcPr/12r0sJ4jZ3i244XDxl6IwqZXh6ek5H5i/Bf8AYv8AjHpXxi8J3Fz8J/iXbwW+r2ru0nhm7jSNVmTczu0K7VX+9ur9Yv8AguIMf8E3vFy9/tenfxf9PkNcwP8Ag4K+BhPy2PjpW/vf2ZD/APHua+Lf+CpH/BWyH9tDQrTwb4L0zUNH8FRS/ar+XUURbrUXX7m1FZvJRPlbdu+ZiaIwz3PM1w9bE4fkVPrawv8AZ8PQcaTuz4el++3+9/7NXzGnSvp1uvzNub7zH+9/tV8xJ0rq8WbfuGvMMh2Y6iiivxU+iCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApU+9+H/sy0lKn3vw/9mWqp/HEUtmfRHgj/kStI/69Iv8A0Ba3dH1i48P6pbX9rJJDdWc6TwSRf6yN0O5WX/a+X5f95qwvBH/IlaR/16Rf+gLWnX9gZdGM8DTpyWjgvyPgsR/FZ/Rb+wB+1lpn7Y37Nuh+K7We1bVliWz1q2iP/HnfRhRMv+6eHX/Zda9v9vyr+fP/AIJyf8FEdU/YE8eaxdHS5PEXh3xB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T/wfv/8AEV+g1FAH58/8Qz37L/8A0C/Gn/g/f/4ij/iGe/Zf/wCgX40/8H7/APxFfoNRQB+fP/EM9+y//wBAvxp/4P3/APiKP+IZ79l//oF+NP8Awfv/APEV+g1FAH58/wDEM9+y/wD9Avxp/wCD9/8A4ij/AIhnv2X/APoF+NP/AAfv/wDEV+g1FAH58/8AEM9+y/8A9Avxp/4P3/8AiKP+IZ79l/8A6BfjT/wfv/8AEV+g1FAH58/8Qz37L/8A0C/Gn/g/f/4ij/iGe/Zf/wCgX40/8H7/APxFfoNRQB+fP/EM9+y//wBAvxp/4P3/APiKP+IZ79l//oF+NP8Awfv/APEV+g1FAH58/wDEM9+y/wD9Avxp/wCD9/8A4ij/AIhnv2X/APoF+NP/AAfv/wDEV+g1FAH58/8AEM9+y/8A9Avxp/4P3/8AiKP+IZ79l/8A6BfjT/wfv/8AEV+g1FAH58/8Qz37L/8A0C/Gn/g/f/4ij/iGe/Zf/wCgX40/8H7/APxFfoNRQB+fP/EM9+y//wBAvxp/4P3/APiKP+IZ79l//oF+NP8Awfv/APEV+g1FAH58/wDEM9+y/wD9Avxp/wCD9/8A4isHxf8A8GvP7N/iAxfYtQ+JmgtH0ex1q3fe3zfe863kz9FxX6SUUAfgL+2j/wAGwvxM+Demya18Jddg+KGlwxs8mkzwjTdYhGP+WStL5FwyqP70T/NhInavzF1TS7nQ9QuLG8gmtbqzdreeCVPLlhdG2urLtVlbcrfe+av7LrmvzL/4OAv+CUml/tHfBTUvi54I0mG3+Ifg+E3WpRWFnmXxHYjd5m8J96eJWeVX+8yqy/3aAP5/aKSNvMVW27fYMzKv975v4vm3fN935qWgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC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BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUf7S/Mv8ACf8Ad+WigAooooAK+6P+DcT/AJSxeBf+wdq3/pBPXwvX3R/wbif8pYvAv/YO1b/0gnoA/pUooooA/Pv/AIOZP+UXmqf9jHpf/o1q/nGj/wBWtf0c/wDBzJ/yi81T/sY9L/8ARrV/ONH/AKtaAFooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAfr/n1r+jj/AINnf+UXml/9jHqf/o1a/nHfr/n1r+jj/g2d/wCUXml/9jHqf/o1aAP0EpH+7S0j/doA/ms/4OOP+UsXjj/sH6T/AOkEFfC9fdH/AAccf8pYvHH/AGD9J/8ASCCvhegAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBXbc1JSv96koAKKKKACvuj/g3E/5SxeBf+wdq3/pBPXwvX3R/wbif8pYvAv8A2DtW/wDSCegD+lSiiigD8+/+DmT/AJReap/2Mel/+jWr+caP/VrX9HP/AAcyf8ovNU/7GPS//RrV/ONH/q1oAWiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAB+v+fWv6OP+DZ3/AJReaX/2Mep/+jVr+cd+v+fWv6OP+DZ3/lF5pf8A2Mep/wDo1aAP0EpH+7S0j/doA/ms/wCDjj/lLF44/wCwfpP/AKQQV8L190f8HHH/ACli8cf9g/Sf/SCCvhegAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAj3eXzuz7/e/4FRR/G1FABRRRQAV90f8G4n/ACli8C/9g7Vv/SCevhevuj/g3E/5SxeBf+wdq3/pBPQB/SpRRRQB+ff/AAcyf8ovNU/7GPS//RrV/ONH/q1r+jn/AIOZP+UXmqf9jHpf/o1q/nGj/wBWtAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAP1/z61/Rx/wAGzv8Ayi80v/sY9T/9GrX8479f8+tf0cf8Gzv/ACi80v8A7GPU/wD0atAH6CUj/dpaR/u0AfzWf8HHH/KWLxx/2D9J/wDSCCvhevuj/g44/wCUsXjj/sH6T/6QQV8L0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV90f8G4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H/gC9f2RUUAfxu/8K28Qf9AHWP8AwBej/hW3iD/oA6x/4AvX9kVFAH8bv/CtvEH/AEAdY/8AAF6P+FbeIP8AoA6x/wCAL1/ZFRQB/G7/AMK28Qf9AHWP/AF6P+FbeIP+gDrH/gC9f2RUUAfxv/8ACt/EXysuga1uXdt/0J9rfLX9EX/BtbplxpH/AATF0y1ure4tp4/EOoho5YmjZfmTs1ff1FABSP8AdparXH+sX734Hb/n/PvQB/Np/wAHHH/KWLxx/wBg/Sf/AEggr4Xr6c/4LLfFyx+OH/BTj4veINMuILyxOrppkVxC+6KX7FawWTOG/wBprdj/AOg/Ltr5joAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqS1uHs7hJoZJIZoWVopEfypFfdwyt/D838X8NR0UAf0+f8Eev+Cjmj/wDBQb9lnSbqa+hb4heGbWHT/FViy+VN9oVFUXaxf88pdpb/AGW3p/DX19H/ABfWv5Bf2aP2pPHP7IfxY0/xj4C8QXmg61p7qzGKVvKuk3fNBNFu8uaNv7jL/u7fvL+5H7H3/Bzd8GfjNo9rY/FC11D4W+JvkildopNR0mZ2+Xck8SF03Nu+WRNq9PMf71AH6aUV4n4Q/wCCiPwJ8dacLnS/jN8L7hcZKHxRZI8Xb5lZ9yt7NW5/w2t8G/8AorPwz/8ACosv/jtAHqFFeX/8NrfBv/orPwz/APCosv8A47R/w2t8G/8AorPwz/8ACosv/jtAHqFFeX/8NrfBv/orPwz/APCosv8A47R/w2t8G/8AorPwz/8ACosv/jtAHqFFeX/8NrfBv/orPwz/APCosv8A47R/w2t8G/8AorPwz/8ACosv/jtAHqFFeX/8NrfBv/orPwz/APCosv8A47R/w2t8G/8AorPwz/8ACosv/jtAHqFFeVj9tb4NmRf+LsfDNm3KOfE1luy3C4/ed69J06+j1G0WeCSOWGYB4pEYMkinoQQeVoAt0UUUAFFFFABRVHUb2LT4JJJpI44Y03SO7BUjQdWbJ+7Xna/tpfBtM7vix8M15xg+JrIdOOnm0AepUV5f/wANrfBv/orPwz/8Kiy/+O0f8NrfBv8A6Kz8M/8AwqLL/wCO0AeoUV5f/wANrfBv/orPwz/8Kiy/+O0f8NrfBv8A6Kz8M/8AwqLL/wCO0AeoUV5f/wANrfBv/orPwz/8Kiy/+O0f8NrfBv8A6Kz8M/8AwqLL/wCO0AeoUV5f/wANrfBv/orPwz/8Kiy/+O0f8NrfBv8A6Kz8M/8AwqLL/wCO0AeoUV5f/wANrfBv/orPwz/8Kiy/+O1i+Kv+CgXwI8H2Sz6t8Zvhfaxt9xf+Eosnkl9QqB9zdf4RuoA9qr5L/wCCtn/BSzw//wAE6P2e7zUGukl+IHiK0ubTwlpqDzWkutn/AB9SoflEELFGZm+9naOtfOX7Zf8Awc4/Cf4T6JcWPwhsbz4neImKxw3s8Uun6LBu35ZndfPl27VO2NFVty/vVr8Sv2nP2rPHP7YnxYvvGnxC8QXWvaxqDbl+ZY7a1RV2pFDEq/uol/uf3mZtzbqAPP8AVNQuNW1K5ury4uLq6upXlnnndpJZnZmZndm+Zmb725qho+6Nv/s27dRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAfwNX9kXw3/5J5oH/YOt/wD0Utfxu/wNX9kXw3/5J5oH/YOt/wD0UtAG1RRRQAUUUUAYnxG/5ELXP+wdcf8Aotq/jei/1a/7tf2Q/Eb/AJELXP8AsHXH/otq/jei/wBWv+7QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR83zbV3N91fl/wBlt2Nvzbtu6ij/AJaL/vL/ADWgD3bw3/wTI/aF8YeH7DVtK+DPxGv9M1S3S8tLmLQ7hkuIJUV0YNtbcu0irv8Aw6i/aW/6Ib8TP/BFP/8AEV/TT+xN/wAma/CT/sTNH/8ASGGvUKAP5RB/wSo/aUSVf+LH/Ezd0X/iRzbfvL97cqr8rfNX9T/w9ge18DaNDJFJDJDZQxtHKu14yqKCGHY1uUUAFFFFABRRRQBg/EG2a58D6zDHDJM81hPGsca73kJRvlVe7Gv5ZP8Ah1J+0t/0Q/4lbvutjQbj73dvutX9XNFAH8o3/DqL9pb/AKIb8TP/AART/wDxFUPE/wDwTI/aF8IeHr7VdW+DHxEstL0u3lvL25uNDmjitYYkZ3d2ZVXbtBr+sivL/wBtv/kzb4t/9iVrP/pDNQB/In/wLc25txX+9uooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKP+Wi/wC8v81opJP9W7N+Z/h/i+9/vbaAP67f2Jv+TNfhJ/2Jmj/+kMNeoV8R/sqf8FbP2b/Af7L/AMOdE1j4xeD7HVtH8L6ZZXtvJcN5kM0VrEjq21T/ABKa9A/4fMfsu/8ARbPBf/f+T/4igD6cor5j/wCHzH7Lv/RbPBf/AH/k/wDiKP8Ah8x+y7/0WzwX/wB/5P8A4igD6cor5j/4fMfsu/8ARbPBf/f+T/4ij/h8x+y7/wBFs8F/9/5P/iKAPpyivmP/AIfMfsu/9Fs8F/8Af+T/AOIo/wCHzH7Lv/RbPBf/AH/k/wDiKAPpyivmP/h8x+y7/wBFs8F/9/5P/iKP+HzH7Lv/AEWzwX/3/k/+IoA+nK8v/bb/AOTNvi3/ANiVrP8A6QzV5n/w+Y/Zd/6LZ4L/AO/8n/xFec/tcf8ABXP9m7xl+yv8StJ0n4xeE7zVNU8KapZ2ltDM7SXE0tnKiIvyfe3MKAP5paKP4mbG3c27BVt3zfN/Eq0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR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KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAr9/v+DVY4/4J5+MW+6q/ES952/d/4lumc/5/vV+ANf0Cf8Gpn/KPHxj/ANlGvf8A026ZQB+WP7bv7ffx28I/to/F7SdK+NXxc0vS9N8a61Z2dnaeML+GC1hiv50SJESVVRVVVXateXt/wUc/aGddrfHj40bf+x01Rt3t/rttU/2+f+T7fjX/ANj5rv8A6cZ68loA6L4gfFrxZ8XNYS/8VeJte8T30P3LjV9UlvJF/wCBO7N/F93d/FXO7vKXciMy/eX/AGtrL/4796iigD+lT/ggB8WbP46/8EqPBulzXNveXXhdr3wxfxQt/q1jld4UP91vs0sNfzr/AB3+EN/8APjX4r8Dar5jah4R1e50iZ3i8rzvIlZFfb/tKqt/wKvtz/g34/4KV6P+xF8d9V8JeN9Qk03wF8RDDC9/NKy22j3yMyxXD/wrG6vsd/4P3TN8q195f8Fn/wDghxJ+2/4jPxU+E82m2XxCmt1/tLT7kiK38RIg2xOJNrRpL5e1fnXbIqIGZWXdQB+AtLu/3lZfnXC/M23+7/31/tfKzV7n4w/4Jj/tEeA/FU+jX/wR+KD3sL+UxtPD15eQSN/sTQq8Dr/usy/7X8K/bn/BLb/g3Z8eeN/ihovjH466KnhPwTo91Fdf8I3e7ZtQ8QbcMsUsSOy28HmEb9/zMqsuxdyyKAcTc/8ABuV43/4Yw0f4vQ/ELwxp8knhqLxTq2j67YS6f/ZMP2f7QyecrSr5kUTfe2RbmWvzkX5f93au3H+6v+033vvf8Cr95P8Ag45/4KTaV8G/gJd/AvwveW9x4v8AG0ITXxbShxpGmcM0T7fuvcfKu35f3bO3evwc/wB5t38Of935f/sf+A0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV9gfsAf8ABar4p/8ABOD4Nan4I8D6D8PtT0rVNak1yWbXbK8uLhZpIIIGRfJuYlVNtvF/C3zM1fH9FAHR/GD4mX/xo+LHifxlqsdrb6r4s1a71m9itEeOCOa5neVxErMzKu52+8zVzlFFABRRRQAdY2Vl3Ky7eW2q3/2VfaH7C/8AwXY+N/7EOhWPh2C9sfHPgvT4lgh0fXVZmso1/wCeEyMsiN/vbl/2a+L6KAP2U07/AIO4rj7MPtPwBjmmP3jF41MSqP8AgVi2f++q8j/ac/4OifjB8W/Dk2leAfDHh34Zx3QeKXUPtX9qagu4bV8l3VI0bn73ls3ptr8x6KAL3iTxNqnjTX7rVda1C+1bVNQlae6vL2d57m4dm+Znd2aRm3f3maqNFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUr/epKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBX+9SUr/epKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigBX+9SUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAEn3vvblooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACM/u9v92iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9k="},{"path":"readme/stream.jpg","sha256":"ed88a3bb59746b5b48ebbd98ad8426ef5ef9f59589303f6879eb334fd7543d09","contentBase64":"/9j/4AAQSkZJRgABAQEAeAB4AAD/4QJmRXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAEAAIdpAAQAAAABAAABPuocAAcAAAEMAAAAMgAAAAAc6gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHqHAAHAAABDAAAAVAAAAAAHOoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+EDP2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIvPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIi8+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9J3cnPz7/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAXwCIsDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8f6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooprNjd/F/eoAdu/dt/Dt+ZiK1NH8I6lrUavb2snlt913bbW/wDDfwOlwq6hdJvRW/dRf3f9v/P92u9oA8xHwt1VvvJCv/A6X/hVmqf3Lf8A77r02igDzL/hVmqf3Lf/AL7o/wCFWap/ct/++69NooA8y/4VZqn9y3/77o/4VZqn9y3/AO+69NooA8y/4VZqn9y3/wC+6P8AhVmqf3Lf/vuvTaKAPMv+FWap/ct/++6P+FWap/ct/wDvuvTaKAPMv+FWap/ct/8Avuj/AIVZqn9y3/77r02igDzL/hVmqf3Lf/vuj/hVmqf3Lf8A77r02igDzL/hVmqf3Lf/AL7o/wCFWap/ct/++69NooA8y/4VZqn9y3/77o/4VZqn9y3/AO+69NooA8y/4VZqn9y3/wC+6P8AhVmqf3Lf/vuvTaKAPMv+FWap/ct/++6P+FWap/ct/wDvuvTaKAPMv+FWap/ct/8Avuj/AIVZqn9y3/77r02igDzL/hVmqf3Lf/vuj/hVmqf3Lf8A77r02igDzL/hVmqf3Lf/AL7o/wCFWap/ct/++69NooA8y/4VZqn9y3/77o/4VZqn9y3/AO+69NooA8y/4VZqn9y3/wC+6P8AhVmqf3Lf/vuvTaKAPMv+FWap/ct/++6P+FWap/ct/wDvuvTaKAPMv+FWap/ct/8Avuj/AIVZqn9y3/77r02igDzL/hVmqf3Lf/vuj/hVmqf3Lf8A77r02igDzL/hVmqf3Lf/AL7o/wCFWap/ct/++69NooA8y/4VZqn9y3/77o/4VZqn9y3/AO+69NooA8y/4VZqn9y3/wC+6P8AhVmqf3Lf/vuvTaKAPMv+FWap/ct/++6P+FWap/ct/wDvuvTaKAPL5Phfq0f3Y43X/ZesnUNFvNHk2XVs0f1bdXs1R32nw6tatDcRq8LfezQB4nRWx4y8Nv4b1Rk+VreT5osfw/7NY/zKzKzbmoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACrGk6TN4g1S2sbWPzrm6lWBEX7zO/wB1dv8AtbW/75qvXpf7Ktmlx8TJLh1+fT7Ca4i+X7rfKm5f9pd+7/gNXTjeRMpWifbP/BMr/gjhqn7T+uQQx3Gk2Kxh5bjWNVj3RsybVeKyt/uy7N6b2/g+X+9X3BL/AMG+mn+K9c8XeG7H4gNNfeH0slB1DRIGtbwzws7h1X5vvKu2vrP4J6XoXh/9kbwF4PtfBfxMh/4R3S7e403VdO0RfPt7vZv+2QuzbdzM7N8ylXVnV1ZWZa80+Fn7WmtfGP4/eOPBt5o/iK13/ZU1y60SwZrjVobRfs7xWkfm7rXzd/71t26JdyIzMyyrfNYx5ftH4g/t5f8ABO/Vv2bPFOoQ/Y4ba801pW/4l7tcabqEUTMks9o7f3WVty/wtuX+GvlFSuxdvyrjco/3vm/+y/4FX9H/APwWvi0TxZ+x/wCHXt/Bfijw63g3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+DfxT8M/tkfHb9sbW9K1qPQ/C/ibwfb6dBrGoh/KhiigWziupUb7i/ut/wA3zKv92vDNE0fwz+wr+yP8WtNuviF8P/HXjL4qW9poel6f4W1ddTjsbVHaWW4uJV+7uVvufw7a8S/Zr/ao/wCGe/hv8VvD3/CP/wBtf8LO8PNoPm/b/s39m/ebzdvlNv8Avfd3L92vId3mMzbs984/4F/eb/0JqAD/ADx/d7f+O0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAXvDfizVfBOrJqGjapqGk38IZVubK6e2nj3fL95Pm219Ufsh/8ABRy68I6Hf+E/iVJceINKuLK7i0nV7t/PvNHuJbd4trP837hty7ty/u2ZW/ir5JooA+uvg74w0X9nvwn4V+J3xA8aWfjTxJoekqvgbwZYXTyNpbfMqS3u1EWFVkbcy/8ALTd96vlHxJ4iv/F3iLUNV1S4mvNU1S6luryeRtzTTO7M7t/tMzMzf7TNVOigAo/u/wAPpj/4qiigD6P/AGR/26NN/Y3+BfixPCfhFV+LniSVbW38V3cqTx6Xp7Ku8RRN92VZF3q3+rZmXfu2IrXP2T/+Cik3wz8D+KPh/wDFTSrz4ofDHxgk11eaZe3TfbLfUGVn+1Q3D/MkjztudvvKzu6Mzttl+ZKKAHSMjSN5asibtyh2VnXd83zMvys3zfeptFFAHN/FT/kU2/66pXmKdK9Q+KEefB83++n/AKFXmbLtoAbRRRQB0nwf1S20P4seF7y8kjt7az1e0nlldtiwos6Mzbm+Xaq/er6N/wCC0XxW8N/Gb9ty81zwnrml+IdFm0aySK8064SeBmVW3KrJ93/dr5OooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD27/AIJm8f8ABR79n3d93/hZPhxm/wDBpbLj/a3bvur/AHK+wf24v+CCH7Wfxi/bW+MPi3wz8Kf7S8O+KfG+tavpd3/wkmkQfarW4v554n2S3iuu5XVtrqrV+aFFAH6W/sRf8EFv2sPgt+2n8H/GHib4U/2b4f8AC3jfRtY1W7HijRpPstpbX8Es0uxLtnfbGrthF3fLXyD/AMFNP+UkH7QS/wDVSfEf/p0ua8QooAKKKKACiiigAooooA3/AIT/AA01j41/FPw34N8PQQ3OveLtUtdE02CWVYI5rm6lWCFGlb5VVpH/AIvlb+Kv0p+Pvx48G/8ABC74Lat8E/gpqtj4l/aO8SWotfiJ8QrQs3/COglc6Rpzn5klX7u/cjIwR2Xzdi2/5b0UAfoX+zJ+034P/wCCn/wZ0P8AZ8/aE1u30fx5ocX2H4Y/E+7G6W1dvuaVqL/eeB9oVZW+ZGU18LfF/wCGGrfBD4t+KPBOvJbx654P1e70PUfs8vmwfabWd4JfKf8AiTzEZd3+zXO0UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFa3gfR31rxBbhf9VC2+X/d/hqHw/4XvvElxstYfl+60r/djr07wn4Vh8L2Plx7nkm/1sv/AMTQBptu3fN96kpNyyfd+7S0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAUvEmmf2xodzbfxSL8tePSQvBI0b/fjba1e2/wB1vu7ehrlfHHw//tr/AEqz/d3X8SH7slAHnVFTahp82m3DRzQyW8n9x/8A2X/ZqGgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPVtL+H+k6fCi/Z1uW/56S/xf8AAauf8I3prf8ALhp//fgf+zVe3Mx+aigCj/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVeooAo/wDCL6b/AM+On/8AfhKP+EX03/nx0/8A78JV6igCj/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVeooAo/wDCL6b/AM+On/8AfhKP+EX03/nx0/8A78JV6igCj/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVeooAo/wDCL6b/AM+On/8AfhKP+EX03/nx0/8A78JV6igCj/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVeooAo/wDCL6b/AM+On/8AfhKP+EX03/nx0/8A78JV6igCj/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVeooAo/wDCL6b/AM+On/8AfhKP+EX03/nx0/8A78JV6igCj/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVeooAo/wDCL6b/AM+On/8AfhKP+EX03/nx0/8A78JV6igCj/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVeqvqGq2+l/PPIqf8AoVAEP/CL6b/z46f/AN+Eo/4RfTf+fHT/APvwlZd58RLeOT5LZpF9S22oV+JG3/lz/wDIu2gDa/4RfTf+fHT/APvwlH/CL6b/AM+On/8AfhKx/wDhZrf8+f8A5Ho/4Wa3/Pn/AOR6ANj/AIRfTf8Anx0//vwlH/CL6b/z46f/AN+ErH/4Wa3/AD5/+R6P+Fmt/wA+f/kegDY/4RfTf+fHT/8AvwlH/CL6b/z46f8A9+ErH/4Wa3/Pn/5Ho/4Wa3/Pn/5HoA2P+EX03/nx0/8A78JR/wAIvpv/AD46f/34Ssf/AIWa3/Pn/wCR6P8AhZrf8+f/AJHoA2P+EX03/nx0/wD78JR/wi+m/wDPjp//AH4Ssf8A4Wa3/Pn/AOR6P+Fmt/z5/wDkegDY/wCEX03/AJ8dP/78JR/wi+m/8+On/wDfhKx/+Fmt/wA+f/kej/hZrf8APn/5HoA2P+EX03/nx0//AL8JR/wi+m/8+On/APfhKx/+Fmt/z5/+R6P+Fmt/z5/+R6ANj/hF9N/58dP/AO/CUf8ACL6b/wA+On/9+ErH/wCFmt/z5/8Akej/AIWa3/Pn/wCR6ANj/hF9N/58dP8A+/CUf8Ivpv8Az46f/wB+ErH/AOFmt/z5/wDkej/hZrf8+f8A5HoA2P8AhF9N/wCfHT/+/CUf8Ivpv/Pjp/8A34Ssf/hZrf8APn/5Ho/4Wa3/AD5/+R6ANj/hF9N/58dP/wC/CUsfhvTV/wCYfZ7v7yW6/wDoS1jf8LNb/nz/API9H/CzW/58/wDyPQB0yr5aqqjaq9KK5n/hZrf8+f8A5Ho/4Wa3/Pn/AOR6AOmormf+Fmt/z5/+R6P+Fmt/z5/+R6AOmormf+Fmt/z5/wDkej/hZrf8+f8A5HoA6aiuZ/4Wa3/Pn/5Ho/4Wa3/Pn/5HoA6aiuZ/4Wa3/Pn/AOR6P+Fmt/z5/wDkegDpqK5n/hZrf8+f/kej/hZrf8+f/kegDpqK5n/hZrf8+f8A5Ho/4Wa3/Pn/AOR6AOmormf+Fmt/z5/+R6P+Fmt/z5/+R6AOmormf+Fmt/z5/wDkej/hZrf8+f8A5HoA6aiuZ/4Wa3/Pn/5Ho/4Wa3/Pn/5HoA6aiuZ/4Wa3/Pn/AOR6P+Fmt/z5/wDkegDpqK5n/hZrf8+f/kej/hZrf8+f/kegDpqK5n/hZrf8+f8A5Ho/4Wa3/Pn/AOR6AOmormf+Fmt/z5/+R6P+Fmt/z5/+R6AOmormf+Fmt/z5/wDkej/hZrf8+f8A5HoA6aiuZ/4Wa3/Pn/5Ho/4Wa3/Pn/5HoA6aiuZ/4Wa3/Pn/AOR6P+Fmt/z5/wDkegDpqK5n/hZrf8+f/kej/hZrf8+f/kegDpqK5n/hZrf8+f8A5Ho/4Wa3/Pn/AOR6AOmormf+Fmt/z5/+R6P+Fmt/z5/+R6AOmormf+Fmt/z5/wDkej/hZrf8+f8A5HoA6aiuZ/4Wa3/Pn/5Ho/4Wa3/Pn/5HoA6aiuZ/4Wa3/Pn/AOR6P+Fmt/z5/wDkegDpqK5n/hZrf8+f/kej/hZrf8+f/kegDpqK5n/hZrf8+f8A5Ho/4Wa3/Pn/AOR6AOmormf+Fmt/z5/+R6P+Fmt/z5/+R6AOmormf+Fmt/z5/wDkej/hZrf8+f8A5HoA6C80+HUI9s1vDcJ6PErf+hVX/wCEX03/AJ8dP/78JWP/AMLNb/nz/wDI9H/CzW/58/8AyPQBsf8ACL6b/wA+On/9+Eo/4RfTf+fHT/8AvwlY/wDws1v+fP8A8j0f8LNb/nz/API9AGx/wi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVj/8LNb/AJ8//I9H/CzW/wCfP/yPQBsf8Ivpv/Pjp/8A34Sj/hF9N/58dP8A+/CVj/8ACzW/58//ACPR/wALNb/nz/8AI9AGx/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVj/wDCzW/58/8AyPR/ws1v+fP/AMj0AbH/AAi+m/8APjp//fhKP+EX03/nx0//AL8JWP8A8LNb/nz/API9H/CzW/58/wDyPQBsf8Ivpv8Az46f/wB+Eo/4RfTf+fHT/wDvwlY//CzW/wCfP/yPR/ws1v8Anz/8j0AbH/CL6b/z46f/AN+Eo/4RfTf+fHT/APvwlY//AAs1v+fP/wAj0f8ACzW/58//ACPQBsf8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlY/8Aws1v+fP/AMj0f8LNb/nz/wDI9AGx/wAIvpv/AD46f/34Sj/hF9N/58dP/wC/CVj/APCzW/58/wDyPR/ws1v+fP8A8j0AbH/CL6b/AM+On/8AfhKP+EX03/nx0/8A78JWP/ws1v8Anz/8j0f8LNb/AJ8//I9AGx/wi+m/8+On/wDfhKP+EX03/nx0/wD78JWP/wALNb/nz/8AI9H/AAs1v+fP/wAj0AbH/CL6b/z46f8A9+Eo/wCEX03/AJ8dP/78JWP/AMLNb/nz/wDI9H/CzW/58/8AyPQBsf8ACL6b/wA+On/9+Eo/4RfTf+fHT/8AvwlY/wDws1v+fP8A8j0f8LNb/nz/API9AGx/wi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVj/8LNb/AJ8//I9H/CzW/wCfP/yPQBsf8Ivpv/Pjp/8A34Sj/hF9N/58dP8A+/CVj/8ACzW/58//ACPR/wALNb/nz/8AI9AGx/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVj/wDCzW/58/8AyPR/ws1v+fP/AMj0AbH/AAi+m/8APjp//fhKP+EX03/nx0//AL8JWP8A8LNb/nz/API9H/CzW/58/wDyPQBsf8Ivpv8Az46f/wB+Eo/4RfTf+fHT/wDvwlY//CzW/wCfP/yPR/ws1v8Anz/8j0AbH/CL6b/z46f/AN+Eo/4RfTf+fHT/APvwlY//AAs1v+fP/wAj0f8ACzW/58//ACPQBsf8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlY/8Aws1v+fP/AMj0f8LNb/nz/wDI9AGx/wAIvpv/AD46f/34Sj/hF9N/58dP/wC/CVj/APCzW/58/wDyPR/ws1v+fP8A8j0AbH/CL6b/AM+On/8AfhKP+EX03/nx0/8A78JWP/ws1v8Anz/8j0f8LNb/AJ8//I9AGx/wi+m/8+On/wDfhKP+EX03/nx0/wD78JWP/wALNb/nz/8AI9H/AAs1v+fP/wAj0AbH/CL6b/z46f8A9+Eo/wCEX03/AJ8dP/78JWP/AMLNb/nz/wDI9H/CzW/58/8AyPQBsf8ACL6b/wA+On/9+Eo/4RfTf+fHT/8AvwlY/wDws1v+fP8A8j0f8LNb/nz/API9AGx/wi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVj/8LNb/AJ8//I9H/CzW/wCfP/yPQBsf8Ivpv/Pjp/8A34Sj/hF9N/58dP8A+/CVj/8ACzW/58//ACPR/wALNb/nz/8AI9AGx/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVj/wDCzW/58/8AyPR/ws1v+fP/AMj0AbH/AAi+m/8APjp//fhKP+EX03/nx0//AL8JWP8A8LNb/nz/API9H/CzW/58/wDyPQBsf8Ivpv8Az46f/wB+Eo/4RfTf+fHT/wDvwlY//CzW/wCfP/yPR/ws1v8Anz/8j0AbH/CL6b/z46f/AN+Eo/4RfTf+fHT/APvwlY//AAs1v+fP/wAj0f8ACzW/58//ACPQBsf8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlY/8Aws1v+fP/AMj0f8LNb/nz/wDI9AGx/wAIvpv/AD46f/34Sj/hF9N/58dP/wC/CVj/APCzW/58/wDyPR/ws1v+fP8A8j0AbH/CL6b/AM+On/8AfhKP+EX03/nx0/8A78JWP/ws1v8Anz/8j0f8LNb/AJ8//I9AGx/wi+m/8+On/wDfhKP+EX03/nx0/wD78JWP/wALNb/nz/8AI9H/AAs1v+fP/wAj0AbH/CL6b/z46f8A9+Eo/wCEX03/AJ8dP/78JWP/AMLNb/nz/wDI9H/CzW/58/8AyPQBsf8ACL6b/wA+On/9+Eo/4RfTf+fHT/8AvwlY/wDws1v+fP8A8j0f8LNb/nz/API9AGx/wi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVj/8LNb/AJ8//I9H/CzW/wCfP/yPQBsf8Ivpv/Pjp/8A34Sj/hF9N/58dP8A+/CVj/8ACzW/58//ACPR/wALNb/nz/8AI9AGx/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVj/wDCzW/58/8AyPR/ws1v+fP/AMj0AbH/AAi+m/8APjp//fhKP+EX03/nx0//AL8JWP8A8LNb/nz/API9H/CzW/58/wDyPQBsf8Ivpv8Az46f/wB+Eo/4RfTf+fHT/wDvwlY//CzW/wCfP/yPR/ws1v8Anz/8j0AbH/CL6b/z46f/AN+Eo/4RfTf+fHT/APvwlY//AAs1v+fP/wAj0f8ACzW/58//ACPQBsf8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlY/8Aws1v+fP/AMj0f8LNb/nz/wDI9AGx/wAIvpv/AD46f/34Sj/hF9N/58dP/wC/CVj/APCzW/58/wDyPR/ws1v+fP8A8j0AbH/CL6b/AM+On/8AfhKP+EX03/nx0/8A78JWP/ws1v8Anz/8j0f8LNb/AJ8//I9AGx/wi+m/8+On/wDfhKP+EX03/nx0/wD78JWP/wALNb/nz/8AI9H/AAs1v+fP/wAj0AbH/CL6b/z46f8A9+Eo/wCEX03/AJ8dP/78JWP/AMLNb/nz/wDI9H/CzW/58/8AyPQBsf8ACL6b/wA+On/9+Eo/4RfTf+fHT/8AvwlY/wDws1v+fP8A8j0f8LNb/nz/API9AGx/wi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVj/8LNb/AJ8//I9H/CzW/wCfP/yPQBsf8Ivpv/Pjp/8A34Sj/hF9N/58dP8A+/CVj/8ACzW/58//ACPR/wALNb/nz/8AI9AGx/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVj/wDCzW/58/8AyPR/ws1v+fP/AMj0AbH/AAi+m/8APjp//fhKP+EX03/nx0//AL8JWP8A8LNb/nz/API9H/CzW/58/wDyPQBsf8Ivpv8Az46f/wB+Eo/4RfTf+fHT/wDvwlY//CzW/wCfP/yPR/ws1v8Anz/8j0AbH/CL6b/z46f/AN+Eo/4RfTf+fHT/APvwlY//AAs1v+fP/wAj0f8ACzW/58//ACPQBsf8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlY/8Aws1v+fP/AMj0f8LNb/nz/wDI9AGx/wAIvpv/AD46f/34Sj/hF9N/58dP/wC/CVj/APCzW/58/wDyPR/ws1v+fP8A8j0AbH/CL6b/AM+On/8AfhKP+EX03/nx0/8A78JWP/ws1v8Anz/8j0f8LNb/AJ8//I9AGx/wi+m/8+On/wDfhKP+EX03/nx0/wD78JWP/wALNb/nz/8AI9H/AAs1v+fP/wAj0AbH/CL6b/z46f8A9+Eo/wCEX03/AJ8dP/78JWP/AMLNb/nz/wDI9H/CzW/58/8AyPQBsf8ACL6b/wA+On/9+Eo/4RfTf+fHT/8AvwlY/wDws1v+fP8A8j0f8LNb/nz/API9AGx/wi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVj/8LNb/AJ8//I9H/CzW/wCfP/yPQBsf8Ivpv/Pjp/8A34Sj/hF9N/58dP8A+/CVj/8ACzW/58//ACPR/wALNb/nz/8AI9AGx/wi+m/8+On/APfhKP8AhF9N/wCfHT/+/CVj/wDCzW/58/8AyPR/ws1v+fP/AMj0AbH/AAi+m/8APjp//fhKP+EX03/nx0//AL8JWP8A8LNb/nz/API9H/CzW/58/wDyPQBsf8Ivpv8Az46f/wB+Eo/4RfTf+fHT/wDvwlY//CzW/wCfP/yPR/ws1v8Anz/8j0AbH/CL6b/z46f/AN+Eo/4RfTf+fHT/APvwlY//AAs1v+fP/wAj0sXxLV5Nr2u1faXdQBr/APCL6b/z46f/AN+Eo/4RfTf+fHT/APvwlR6f4wsdQk2+ZJHJ/cZdtaI/vfeoApf8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlXqKAKP8Awi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVeooAo/8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlXqKAKP8Awi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVeooAo/8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlXqKAKP8Awi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVeooAo/8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlXqKAKP8Awi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVeooAo/8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlXqKAKP8Awi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVeooAo/8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlXqKAKP8Awi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVeooAo/8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlXqKAKP8Awi+m/wDPjp//AH4Sj/hF9N/58dP/AO/CVeooAo/8Ivpv/Pjp/wD34Sj/AIRfTf8Anx0//vwlXqKACiiigAooojjeSZVVdzyfKqBd26gAop0kL28jRyJIjxttZHXbtptABRRRQAUUUUAFFFSW9vNeXCx26SPM33RGu5v9qgCOijr/ALP/AAHa1FABRRRQAUUUUAFFH/LJl+X5vvH+Ja6PwX8H/F3xM+Xw94V8SeIPu5/szTZbptrK3zFolZl+7QBzlFbVt8NvEWoeM18Nw6DrE3iSR1hXTI7KWS8klZGfb5KqsjbVVm+b+7WfrGj3Xh/WLqwvra6sb6zne3uLe5i8qW3ljZldHT+BlZW+VqAKtFFFABQu77q/eoqvqmpLpOnzXDfejX5f96gDL8VeLF0tVjhXM7d/7v8AtVxtxM97dMz7pHkbqP4qJJnvLhm27nkb/wAertvC/hmPR7dJnXfcSfMzf3f9mgDn9P8ABd/eJu2Rxq33d7bWqaT4f30O5vMt3b0D12R2/wANFAHm99pdxpjN9oh8tfruqv8AN/e3V6ZcWcd5bskib0/irhfEuhtod4uxt1vJ8yn+7/s0AZtFL0LfNu20lABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFWvD+g3XizxBYaVp9vJdahqk6WdrEG2+ZK7rGiL/tMzKv/AAJK/Ryz/wCDc3xDJpsb3PxS0eG42b5YotGaRVdV+VF2yrvVfu/8CoA/NmivYP23/wBj/Vv2IfjzceCdVv49WT7FDf2WoJA0S3kLqy7tjO23bIksW3d/yyrx+gAooooAKKKKACiiu0+GfwB8RfGDwX401zRbWS4sPAempqWpOn3o0edIvl/2trSu3/TOB6AOLoo+XbuRdqN8ygfd27v4f9migA+X+L5fetzwz4um0+RYbh/Mt2b/AL5rDprPtLfL8rfLmgD1GORZEVk+ZZPmz/epa5v4f6w1xH9ldtzR/Mv+7XSHd/FQAUUUUAFFaXg3wfq3xB8VWGh6JYyalq2rTpa2dpF80lxKzfKv3lVV/wBpvlr6Jj/4JB/HiaNX/wCEVsY938D6za7l/hZW+f727d92gD5kor6c/wCHP/x4/wChX0//AMG9n/8AF0f8Ogfjsp+bwxprf7J1u0/4DtXftX/eagD5jorpvi18H/E3wL8bXPh7xbpN5ousW/zvFcf8tF+ZVdGVmV1+Vl3J8vytXM0AFFFHtt/iVs0AFFbi+Df+KH/tv7R/Ft8vZu/i+9urDb73/wBlQAUUUUAFFOjH3Rt3fNu+9t+7/eb+7Xvn7Mf/AAT38TfHrwbL4w1rVdJ8C+ALdWd9f1t1ijuF3f8ALFfvP/vN8tAHgNFfYUf7G/7NuqbdPs/2jY01uT5VludGeOxV2+X5pflVl/2lbb/s15R+1Z+wv4y/ZT+y3+oLa694V1Jv9A8QaQ7SWd1/s7m+43/fX3l+agDxSij/AD9zy/8Ax3+GigAooooAKKKdH975d3+1hlZv7y7Vb+L5Wb/gNADaK9a+On7D/wARv2afh7onibxdosen6XrTpaoUuVllt5XTzVgZF+6zxpL/AN8V5Lx/C25dq8n733VoAKKKKACiiigAWNppVRFZmZtvH3v9lV/2q9i8L+E9P/Z/8Pw+JPEVtHdeJLxd2k6X/Fbt/fP+1Xl/g/xRceC/E1lqttDb3FxYyb1jlTdHJ/eVv7v+y1fRXiL4tal408Cr4i8JRafdNYrt1KwubfzJ7f8Ai3bty7l+agD5z8UeJrrxhr1zql9Is11ePvdx/FWfXqH/AA1d4k/58/D6/wDbl/8AZ1xvxE+IF98SNajvr+OzjmhgWBRbxeWu1WZvu7m+b5jQBg0UUUAFFFFABWj4T8UX3gvxJZ6ppsn2e8tX3RSN91f7yt/st92rnw/+IF/8OdYuL6wjs5pJrd7VkuU8xdrsrf8Astdi37WPiRtzrY6G25ty4sfu7m+795aAJvF3hOx+NGhzeJ/DFt5GtW436po38X+1LDXlQ+X5a+l9L+NGq/D/AMDtrnii30u1ur5P+JXpltB5EsjbfvM+5tsf/oXzV86+INck8Sa7dX8ywrNeO0riOLylVv8AdoAp0UUUAFFFFAH0B/wTr/Zz0P47fGDUtS8XPCvgfwLps2t65G8vlfaERW2Irf7TK27d8u1WX+Oug+Jn/BVr4jXl/wDYfh/cWPw58G6amzSdK06wt/3MSr8m53iZd3zfMqt8v3f4avf8Ev8AULHxhZ/Fr4YzXNvZ6p8SvC8tlpDyv5fnXSK7LErbW+b59/8AuxtXzF4s8I6p4B8UX+i61Z3Fhq2mztb3dvcJtkjdfvfwru3fe3f7VAH7D/s7+CPEniTUtF8RfGq++GfiLxD4b2XXhzxBo17LFfW++LynimRUij27X/vt8zN8v978q/2vJluP2sPig8bRvG3i3VWUx/NH/wAfkv3fm+7Xf/8ABPj9lew/aE+JF/q3i6G4t/hr4PsLjUdevctBBtSJmVDLu+8rbX2qrNtVvl/iXwzxVcWF54o1SbSraSx0ua8mazt3LN5MO9tibmZmbau35mZv96gDPooooAK534i3Hl2VtH/z0kroq5n4kx7o7Nv9/wD9BWgDO8EWf9oeIEZvuxrvr03wH/ZVx440b/hIGZdDkv4f7RdFZmW13r5rLt+bcse77nzfNt+XcrL5r4Dk260//Xu3/stdt/rJG+X+P/d3fNt2/wC0zLu+WgD9vPjB4L1qP/hPtF8VaD8Obb9j3SfBX2jw1LBLBGsM3ko0MsLK25p/NeVk2qsfzpsdn+/+b/7P/gv9knUvhHpVx8S/Fnxe03xpI0y6jbaNFbtYx7Z3WLyi9uzbWiWJvmZvvfLtXaq5Wn/8E7/2lNc8J2Fsnw/8cXOj7FeC2+9Btfa+1Ity7dzbW/4DV39mf/gm/q3xG+KHjnR/iVqcnwt0X4X6TFqPia/1Cya5axWWJZYU2btu51Xft3eYyq2xWZWoA4P9rbQ/gvofiTSR8FdY8ca1pclq/wDaT+I0RZ45t3yeVsRF+7u/h/irw3xxp63Wguy/N5LblP8As7vl/wDHa+qP22P2HdD/AGffh/4P+Inw78bR/ET4aeNt9vZanJZtbXNndIqq0FwrqrfdV2+ZVb91t2/Lub5h8USeX4fum3M3ydT95qAPPfm+Zm/ioIPXjHrxk9+e/Qj29O9Ebbo1agkkdvXpz+ffjFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAd5+yz/AMnO/DkfL83ijTF+f5fvXSfxV+1nxE/bI8deKvjF4q8J/CPwboevR/D9Ei8Qaz4k1RtKtY7t23JZQ7V+eRo037vu/Mu9l2pu/FH9l12X9pz4c7W2t/wlGmN97av/AB+Rfeb/AL621+v3jj9nf4jfAvxp8UbLwx4C0n4wfDH4vak2rXGh3msxaRdaPqE6Ktw7rMvlzRNIkX3W8z5W+X7qsAcd/wAFMPHmk+Hv2a/A3xS8bfBzwT4n8TSSw6Jqlleaktyuis6NP5SXMOyOXZKn3UXb83ysy7Wr4s8cftaeDfhv4mk0XXv2WfhvpWpRwRSvbzz3iyKssCSxP9/5f3bq3/A6/RL9jP8AYn8Rfs//ALO3xITVJJvB/iLx5qk2rppng+6i/wCJDCqq1vaW0ssLq0ibXi3tu27/AJWavkj9u74+fF39jv4Tw+A9V+JniLxF4s8YalNqTamkTeQuiRb7aK13yqirO8jPLOiqrKqou5FVd4B85ftneDvDOqfDf4T/ABL8M+GbHwWnxI07Uvtmh6czy2tjNY37WrSozszKrrs+X/Zr598zf/DtX+H/ANCr6L/ae2r+wX+zAq/d+xeJduFZV2/2vLt27v4du2vnSgAo/wB5dy+hbarL/d+bav8AEv8AFRR/wFWb5uD8ytu/vLQB9IeEf+CR/wC0F44s7O8sfh7J9hvIkliupNWsol2S7WR1VpmZ1Vd38Py7q+4P2U9I0P8A4Jh/CnwB8LviJa2d14y+PHiCaz1yy+0LcWul2jI1tFvZFaNomka3+Xb8yzytu/cV8xf8Et/24vFmn+PND+C/iKO68Z/D3xtcRaMNPuJWafSd7f6+0dfuRo212Vfm+XcjIy/P5d+1j+yfrFj+1R8SvD3w70nxh408PeB7jZPdxWr6lJp8SpFvildE2tGkjuqv/wBMt9AHefFf/gif8ePB/jLWIfD3hWHxBodrcTfYr2LWbLzJrdW/dO6PKsm5l2/w/e3V83fGb4F+Kv2f/GK6D4z0WTQdW2K7Wl1cI0qq33WbY7L/AHv4q+67n4+D/gnz/wAE7/h14m+Hsmqa544+MllcRXHiDVrp5P7FZFRZoIYWK7WWVvkb/VsyO7/eSvz18UeKNS8ceIr7WNYv7jVdV1KVri6vLiUyy3UrfM7u7MzMzNub/gVAFHd5iqy/d/3aKKKANDwnefY9ftm/56Ntr0CvO9Bj36xbD/pqleiY+8v+1QAUUUUAfRX/AASbXd/wUC8AKv3mXUui7m+XTbr+781cx+0R+0J4+sP2gPHNvbeOPGFvbQ+IL5Ioo9ZulWNftEnyqu5dtdP/AMEm/wDk/wD8Af72of8AptvK8p/aR/5OJ+IH/Yx6h/6VPQB7F+wD+1hrHhf9rjwlfeOfiBryeFYftv2/+1NXuJLP/jwufK3qzN/y12V+ln/DxT4J/wDRSPD+7+Le7bt38W7arV+af/BLf4CeHvjV8dtVv/Fln/avh/wXo02s3GmbfM/tJ1ZURCm5d6ruZvmbb5ixLtbdXt3wG/4KIaP+1d8ZLD4Y+MvhR4RbwN4kn/svSbeyt9tzpK/LsZ2+Xf8A6mJWeJYGj3O7bqAPI/8Agr18aPC/x0/aU0TVvCWt2Ovabb+GbezluLRmaNZVurp2T5lX5tro3/Aq+V67r9pj4Vx/BH9oDxd4Tt3aS20PVJre3d/vNFvZkZv9ray1wtABS/3f8/xLSUv93/P8S0Ad0P8Akgzf9d//AGo1cNL9+u5H/JBm/wCu/wD7UauGl+/QA2iiigD1j9iP4Bx/tKftQeEvCV15i6bqF55t+6N/y6xKzyr/AMCX5f8AeZW/hr2D4ufEC/8A+Ch/7bGg/DPSr+PQ/AOn6ouh6HYQfu7a3tYldZbhk/56MqPt/wBllX+Gub/4JL/EC1+H/wC3J4Ve8kjhh1RLjTfNk/1cbyxMqM3/AG02qv8Av1zOn/s9/FD4d/tc6rong3QdevvFvg/W5fI+yWplZdr7ldm+6quu1v8AdagD6a8P/DH9mf4wfHTVPgJovgbxBouu273dhYeLzfs1zcXtqj71dW+VI12P/tNtrz3/AIJ+/Eybwv8AGzWv2ePHUketeB/GF5caHLbSMzRaffI7rFLFu+4rSLs2r8vmbHr6O8Q3Xx80/TdQ8XaP+y34f0X4katatBe+JbbUoJZ23JtZ4rf73mNXyB+w/wDATxlqH/BQjwjp+vaTq2l6touqL4g1b7fb+RLClu7Ss7r/AHWbau7/AGqAPDvjF8Obn4R/FTxD4Yum3XGh381mz7drSbXbaxX+9txXN16Z+2Z48tvih+1V4/8AEFmyva6lrl08Tp91kWVlVl/3lVWrzOgAooooAKP7vzMv8K7G2t/vL97/AGf4aKP+Wbtt3/L8y/3l/iX/AHfm+b+9QB7N+0J+0R8ZPiZ8M/Cug/ESTWv+Ees9lxpf23Sfscd18jQRSrLsTzlWPzV3f7X3q8YX7q/xNtXcf+A/d/2dv3f+A19H/tgf8FFNW/a8+E3hrwlc+GNL0OPw/cLdSy2j/wDH5KkTxRbU/gXazfL/AHtzfxV84s275t27dub/AMe+WgAooooAKKKKACtz4f8AxD1L4aeJIdU02ZkkVtssf/LOZP4kb/ZrDooA1PG3iKHxZ4svtSt7C10uO8l3raW/+rh/2ay6KKACiiigAooooAK1PBfiJPCXiiz1J7C11RbVt32e4/1bN/C3/Aay6KANbxp40v8Ax54guNS1CZpppG2r/djT+FF/2VrJoooAKKKKACiiigDQ8L+LL/wH4is9a0u6msNS0udLq1uYm/eRujeYrL/d+7/F8rV9SW//AAVK/wCEy0uxj+KXwo8C/EvVNNR0/ta5gS1vJm/vM3lOqN/e2rtavkuigD379pD/AIKD+J/jh4NXwfpOlaH4A8DRhVfQNAgSCK4/66sqqzfw/Lt/h3fxV4Bt8v5fur/CNrKy/wC8rUtFABRRRQAVmeMNNbVNBmVP9ZD86f8As1adO/2fuq33v9pf7tAHmul6g+n6hHcQ/wALbV/9mr0S3u47q3WaH7kmx0/ebV3L8y7trK3yt92uO8YeG30u4e4jj/0eT/x3/Zqt4f8AEk2hyKm5Xh+8yfxUAfR1r+3B8abO3htrf4vfFCG2jCokaeK72NVVVZVTar7V3Kzbf92uq/Zl/wCCgfiz4J/FLxNrfiaOT4naX48sF0fxXp3iC9eWXXLdUVIt1w7MyypGrKsu1lVWb5d21l+cbTxpYXEe7zPLb0epLjxRYRpukuo1H+xQB9Fftg/t0SftMeE/CXhHQfB+j/D/AOHvgdHl0jQLKV7lo5ZWZ3la4dEZpG3/ADfL8zbmZmZmZvlvx5rS7fsMbKzbtz4Xbto1rx55kZjs1ZNy/fP8Vc1IzSSMzfMzfM1ACfL/AA/doz8uPl4J6E5x+JPHp0OKKKACiiigAooooAKKTd93/aOPp9fT8aEbcOV2t0K5DFTxwcE4znvQAtFFFABRRRQAUUUUAFFB9gzHsMYz9CeD9KHIVcq2704K5+hOAfoKACijPH8x3H1ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKUDcD147bTn8sZoASig8Pj8iDnIxnP8AP8jRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUKQz7SwX3PSheVyQV9j164wfTPvigAooGD35PQYP+fx6c0A8fmc5yD9D0P4UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBpeDfFl94D8WaVrmmvHHf6Lew39s7/ADLHLFKrr8q/Mytt+av0Asf+DiTxzb2cKXXgDwjcXMcSLLLFcXEUcjKqqzKn8P8Au1+dtFAH7Zf8Ez/+Cplz+3N4s8YaHreh6X4f1TQ9Oi1Kzgs3ln+1W+9kuH+b+JGNvtVFZm8z7tfEP7UPw7+LFx4w+K/g7Q/hX8SPGnw68QeIJtZ8P3eoeD9SWfRbqWfz5Z7bdCrKrxtNE0W3bIqq38NfH/hHxtrXw/1hdS0HVtS0S/VdjXGn3j2s7D+7uUrXTR/tSfE7yQv/AAsTx9s3bvk8Q3m5m/2vnoA9e/bU8L3/AMPf2Uf2c/CPiCzvNE8UaXpOvXF7pl7E1tfWcNzq8rW8rxMqsu9U/i/h+b+KvmiRlkkZl+63zLlt3+fmrR8U+MNY8caxJqGuarqGtalJ8r3d5cPPLJ/wJ2ZqzaACiiigD37/AIJo/FTwT8B/2qLDx148vJLXR/B9hd39vBFA08uoXbRNBDEiKu3zF815VZmRV8pvnr2L4vf8F0PiNqHj5bn4c6VofgHwxb3U10tillBcy6lLKrK09w+1f3jM7y/ulVt27cz18P0UAfdH7Xn7f3w5/bN/YXTwzD4Yh+HfjLwfqn9r2ulWUSf2Zdb5WS5a2dPK2s/2mWZl8r7yt8zbq+GJPvNt+VfvcLtX/gP96kooAKKKn0/T31K4SGNN7Mf++f8AaoA2Ph/p/wBo1Jrh/uW6/L/vV2O7cf8Aa/iqro+lpo9msKL/ALTH+81WqACiiigD0f8AZH+Pifsw/tFeGfHMmntq1vobzLPaJP5EkkU9vLA+x/l2ttdv4vmr6Y8SfF79jHxx4gvtb1Lwf8Rl1LVrpr26wzKzPK7O+3bc/wC1/dr4gooA96+Ef7Wmn/slftaap4t+G+n3V14LuPNt4tKvbhopLq0ZVbY7tu2srLu3fNtZV/vV9AfDH9uz9lv4P/EyHxl4Y+FPirR/E8m6N5titZ6asnyyvDE1w2793uVf3SMy7trJvff8C0UAfR//AAUq+EOm+E/i1D480HxhY+LvDfxS87xBZSvcLJdWu5/mV0X7sSMxRPlVl8vYy7kavnD+JvlZW3MNr/e6/wDj1FFABSfN8yqv3h1/4EtLRQB2y6hH/wAKT8vzI9y3G3B+999q4miigAooooAm0/ULjR9Qtrq1mktrq3lWeCWP/WLKnzKy/wC1/d/4FX6MfCX/AIKMab+1J8E38GeJvH918HPHkipE/iWygVrPWNqqq73+8rfwt935lb5q/OGnR0Afedn+w/440PWBrl1+1L4RsdNV/M/tO38Rzy3P3vvrDuVf/H2q/wDtdf8ABTex8J/Cdfh74D8T33jrxJJZNpupeObu3SCWSFt2+KHb+8bf/f8AmVf71fn/AOZspjNmgAZmk2s3zf8AAv8AP/2X3v4qSiigAooooAKPmbd/rF9Ni7mZm+X+L5V+83/fVFFAH1V+35+0d8EfjP8ADHwlYfDPwZH4e1rT5d15cJYQWvl2qwMrW7Mn7yZlkVG3f8s/L/2q+Vf4m3fe/wA//tf8CoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA2edGyMm9G7f3q5vWPh6k0jSWskaM3/LKRflX/gVdJRQBwNx4Xv7VtrW0knun7xar/wBh3z/es7j/AL9M3/oNejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/sK7/587j/AL8PXo1FAHnP9hXf/Pncf9+Ho/sK7/587j/vw9ejUUAec/2Fd/8APncf9+Ho/sK7/wCfO4/78PXo1FAHnP8AYV3/AM+dx/34ej+wrv8A587j/vw9ejUUAec/2Fd/8+dx/wB+Ho/s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f8JlN/z72f8A4/8A/F1kUUAa/wDwmU3/AD72f/j/AP8AF0f8JlN/z72f/j//AMXWRRQBr/8ACZTf8+9n/wCP/wDxdH/CZTf8+9n/AOP/APxdZFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRXg/wDw09r3/Pno/wD35f8A+Lo/4ae17/nz0f8A78v/APF0Ae8UV4P/AMNPa9/z56P/AN+X/wDi6P8Ahp7Xv+fPR/8Avy//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FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFBUQooooJCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKlEfmUARUU6RNhptABRRRQAUUUUAFFFSRReZQBHRUnk0vl7f4d1AEVFTW8H2iXbtxQ6LGWVqAIaKVsZ4pKACiiigAooooAKKKKACitA26Lb7mXc1V7eNXlZSvy0bAV6K6yw0G3a3TfGrM3rWDrkcdveOkaqqr8vFL2nMBRooopgFFFSRLgbqAI6dHQo8xqm+z7V2/xUAR02Stjw/oi3lwvmL8lO8S6fb2H+rXa+6gDDop/ze1LJjb8tAEdFFOddooAbRUip5tG3y6AI6KkpslADaKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACirujabJqVzsVfl+859q09Wis4FWGG3VnX+M0Ac/RWxb2tvbx+ZMqsfQVn3VwskjbE8tfSgCFmzTalFvupUjWN8Mu6gNiMgntTaueSnl0eQvls38VBPtLlOipY4muG/2amxGnG3e1BRV2GjYa0LfR5r5tyx7Fqe9023t7fZG2+agn2hkbDRsNbOn+H5rqPd5aqvvVa60/7Ncbdu76UC9oZ+w0KcGr9nbRzXQWT5I1b5qdqk1vNIyW0Kqi/dP8VBXNczaKtW8wtz+8h8xf8AaokVDJuX7v3sCgZW2GjYa2Ly3gl0+OeGPb/C9QW+myXcn7uPcn8NBPtDPIJHSm1rtZpD8txbSR+4qC+t4Uj3I7N7GgPaXM+nR1J5e6P7u2kjX+FqChKbJVz7Oqx7tu6mLCknzbcUAVKKtyWw/hqCSDbQAxjk0lKoya07dLe4gUbdr0BzWM0gntTa1reOGO82yJ8m2o9Xs0gl/drhcZoF7S5m0UUUDCiiigAooooAKKKKACiiigAooooAKKKd5dADaKKKACipI46bImw0ANooooAKKKKACiir2i20d7drDI23zPun3o2Ao0V02p+FEs7FsJ+8Wsez8uO+jWRN0at8wpe0uBRoq7rdmtnfssf+rblaitoFkTc3rTAr0VamgWKPpn5qstpbLZrJ5O5fWjmsBmUVbWwZlyw+WhrdVX5anmAqUU6RdrU2qAKKKKACiirVrbpPu3feoAq0U6ZPLkK02gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiinIm+gAjp1OK7Y6bGv3qAF8v5d1Ak8ul/1a7aa/8ADQAbt1I/3al2/KrU2Rty0AQ0UUUAFFFFAEkUXmUeXtFNjqby/MoAaslEj7qHTYaI2/hrMzHRyeWuaZ83vSumw0Im+gBystPjjEnzLSxxt5n+zSXH7uZWWgAa1/d7qrS/fqzJeNIu2q0lVEqI6GNpD7VYkt1t1Vv4d1Q2cixyfNTry4WZvlqiiO4x5rbelJB/rBTKms18y4VaAJtRk+WNf9mnabHvmWor0eZcNV/S49skLVEvhJkdD5f2eFP9ld1cdqknm38jf3mrsNWuPLs3b/YriZfv0qYRG0UUVoUOjokojp2G37R/F8tAElgg+d2+6oq1p9u1xMG/vUXm2G3SNf8AgVamk2yiNFP/AC0rGoTItW9jJDH5i9I13NXO6vefbrxn/h6Cui8W3i6fpaWqffm+9/u1ydVH4SQp0dJuNJQA5+tNpz9aP+WdVEqIf8s6j8ym0VRQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFOjoAI6dRRQAj/dplPf7tMoAKlSNm2r/FnimR/rWhptm0a/aW6RtQBtW0a6Dozf8APxMu41jvceWu5vvVYuL59SkV5P7u1aJIIV2tM38XSpjIzM6eRriT+Ld6UklnJHjdGy/Wr9nH5mpoIV2fNW5qmlx28KvNcfL6VPtLyA5L54/lxtp0c+OKtXF/HFcSeWu9cbaoM241UQLL9Kj8xvur8xarmj6PPqh+X93Ev33qxHGmj3n7tvO/u1Qc1jNudPmtEDSLt3fNitK3ktbCCNlXzJPvbqi1O3mvdrt87bv++fambVj+XbtagiUrxJrjUJLxGV32rt+UVPbRw6ZYLc3C+Y33UT/2aorO38zdI/yxR/e/2v8AZqneXv8AaF5lvljxtQf3RQTEbeanPfFmeRv90fw0zT5JIpN0bfN6Uvl+WGVvu/w022mms5f3bbWoNYhqELxybmXbuqWOBkgV0+7UM8klxJvmbdVnSdVk0d22qskbfeU0AQ2dv51wV27vlpqR5vNm3G5sVof8JQ0cMkdvbxx+Z3H3qoR7rOTc6sr/AMOaAJVkFvG8bfdV6U6hc/Z/kaRUVu1QRzMs+9l3t/Fmp7zVHvI1jVY419FoAktvEFxEu2Zmkjb7wNOvrVPLWRP9S3zVU8vy49tS6RdLbyNG/wAyTfL/ALvvQQMmuP8AR9q/dpllAt3cbN+33qXWLNrORV+8v8J/vVDZxtPNtVct6VUR9C1c6fNpf31+XsaptJ/Fu3VtQ3Uun7UuVWSGTt/FVS/0+O43yWu4qrbWQ0SCJnG4Y0RySSfdqOr2l6gllHsdN25vv1JsU3Vg3I5oQsh3CugWzttQi/dTbm3bsVlx27R6g6Ku72qeYzGx34k27/vU5l86Ramms4Wk+X923pUFxb/Z2X5t1EdxSKl2nlyMPeoQM1dnCz7h/FVR9ytzVGkdhta+n+GX1C33q22sitS08STW9v5a9KBlO4ha3mZG+bbUMlSTSNNIzt95qjkoAbRRRQAUUUUAFOjptOjoAkdtxptFFBMQooooKCmyU6igCOpKbJRHQA6kf7tLRQBHU1pN9nmR/wC62ajkpYv60Ad7qF5HdaGj/wAUi7a43UV2Oq/3a3vDMjaxZpb946oa3p8kM0iFfut1rn+0ZjLu2+2aSsy9Yazbf79aOjyNcW80LHd8u6szG162iBYZVkjb+9Wr/wAJhcL4fazX/V7tzVkSSbY6RZPM+Wq5efSQD5NQ2blX+KoZJWf5mqT+z9q7qhk/dyKtGi+EqJDRTpPvmm0FBRRRQBbt7XzLff8A8Bpluf8ATFrQtzv0Tb/tVRuE8u6b/eWpAjvU2XDVDVjUv+PtvpVeqAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKCohRRRQSFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFORN9AD/ALR+720sXSnbdtNZc0AD9abRS7jWZmJRTk6VJ/yzoAhprLUvl85po3Y+WqiVEiop0m7d81NqiixH/FRbybZWqvRQBNeNuanQHBxUKsMVY8xRCu371TImRJt2/wDfNQFtsjUv2h8badu/d7W+9Uki+Y0n3etMhtWuGap45PLXa33mqORXt9zVUSolaVGicqabTpJGkbcabVFBRuoooAd5dWLCPfcKtWI/Jhstrff+9Ve0fE9TImQXb77lvrVzS/8Aj8j3dKoz/fb/AHq1tDj3eW3+1UyJNHxJcfZ9Lb/po22uSl+/XUeM5P8ARo1/2q5Z/vUqOxURKdHTadHWpQs/+sqzpFv5khdvux1X3fNWhIfsmlon/PSiWwBbx/aL3c33N1b3he18zUpJG+5CtY2j2/mXCr/dFast9/Zel3P96Rdtc4GD4l1E6lq8j/3flFZ9OkbdIxptdABTofv02igCZv4qhp0j7qbQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFO8ugBtG6iigCSOSmu+TTaKACnR02nxf1oAsabZtqF7HCv8Ay0bFbHiRY9Pjjs4/+Wf3v96q3huVbBpJm+9jC1DJvvrxW2/Ozdf9qszMVS7bVRd1asOhrYxrNdfLH97FOk8nw/IkkjeZNt3YrF1vW5tYnZ3b/dHtVRDluS61rS3F4rWy7Fj+7VC5vZryRmdtzUiW7NjK7alZRb/N/FVFc1vdK7x1taP4c8u3W6umWOH+FD/y0qrHZrb26zO275vlSrUlw94qJI+44+QUGdSpoS3mtNcR+SirHH/CgqC3tXuJF2Qs/wD6DV2z0uHT4/Ovn2r/AM8/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xyDy1p8ce35q2jG5z/aJNG1yTS0ktz80Nx99a6I6LHqWhrNG3y/w1yeofvF/2lrX8F+KW06RreT/AI95vlrGpTNvskEkbRnav8NbGr2TXHg93b/ln81UdUVP7YkWP7u6tzRJF1Dwvc2/8W1mrnCJ53RT5Q0cjKf4TTK7CgooooAKKKKAHR06o6kjbC0AFFFFBMRslOg+8PrTZKI6Ci1dK3yt/DUguljVdv8AdqnTo93mfLU8pPKWPsv7ze/3Khkj/efL0qzJGzL81VphtzUkiBWk+lHl/vAoqzH/AMew+lV/m7UASSW/kioV++akMjyj5qj27ZKAHTfcWtTwPJt8S23+9WW33x9K0vCny+JLNvej7JUTu/iA26zhrjNNj8zVG2/errPiBcebZrXK6PefZdQ37d3ystciKMK+j8u6kX/ap9t/q/8AgVR3k32i7Z9u35qsR/cFd5NTYdTJvu0+igxKMlNp8v8AWmUHQFFFFABTv8abRQBYf/j3qGOpbj7q/Soo6KY+g2iiigcgooooJCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKdHTaKAPaPhJ4rXWvC7We7FxZjp/sf53V0lvcN86su5JPvCvBfDev3HhrVY7m3fDx9v73tXtHhXxhZ+M7PzIWVbrb88X8VYVD2cLiOaPKUdY8OrJHIGVZIW/gP8A8VWl8M/ix4/+Cbv/AMIV448WeFRcfejsr1o1/wDHatMrL/Cwb3pPm9qiOhcsOpblW+uNW+J3iT+2vF2vax4kvI23+ZqF00jbv73zVtyXjTbYYV+X7rH/AGaz6tW9w1ujbfl+Xcz/AN3/AGqr2lzenTjDYv8Ay2sfl7t7Ku5f9n+9Xd/sh/tIeA/gT4m8efEXXNU/4qbw3oz6b4N05ItzTX0u7/SGb+FU3fK3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b3m+aP5uW3V1vhuzj8fafcWGsWMfmWq7UuU/9CrzXwr4sm07UFdppFT/AJaA/wAVdtpviDVviNdLYaUkdjZ/8tbgVlKEupqec+K9BXw/4guLNJPOWFtoas3ZXu2seBdE+G+hvdPZ/wBrXn3vNf8Airl5tN0n4p+HLiaytY9P1Sxy8iJ/En+d1aU8RcDy+inTRtHIVbrTa6ulwCiiipAKnsriS1lEkbYdeagoo3A6NdUl1eHznbMsPzLWv4ms/wDhJPC8d0n/AB8W67n/AN2uRspGG5V/irtvh7MkkjW0jf65dmK56nu+8TE4qz+4v+9V22f+Go/EFidE8QXEO3b5b/LSw8MrV1R1jzGNQi1SP93VKND8zfw1d1D5yn+9RHBt3bvu1JpH4SaztnvLPf8A3eK6zwDcfY7iRHXd5kVcbpdw1vebP4ZGro7W6/s+8R1+7t21z1ConMeI42h1idSu35qo12HxI0fbFa3i/dkXbXJ1003oUR0U6Sm0gCiiigAooooAKKKdHQASU6myUR0AElSW0nlyqzUx/u0kdAFy4vt3yr92mw27Sbmb7tNs9slwit92rX2cSXjFfur8tZmZV2NF/u0XE3mKuKmuI/3m1qrzxqn3aAHQtmPbTfufNTrWRVb5qN/7wbf71AEZO181qeE5PO8SW3+9VGSP/SVWtfwPZtJ4shT+HdQB1fjy326AzVyPh9POlda7b4vyLY2CQr/y24ridEk8sbvxrn+yVExtQ4vJP96pLN9u6o9Qm+030j/3mp9v9xq7I7BPYdb/ADSNRIP3m6lt/wDWGo5P9a1BOpDL/WmU6Sm0GgUUUUAFFFO/xoAsT/8AHuKq1Yf/AI96r0obAFFFFMAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigqIUUUUEhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACs2an0/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ivtnjZWx0NR7Wnflvqb+xqcvN0KD/dplFFWYEyPtqVm3R1FHUipuoMyGmyU9/vU1/u0GgyiiigB0dOqOpKOaxMi1peoNYzbvvLT9Q1V9R+VI9i1Rl/rRF/Wjl+0UOX5Y6iqSmyUACMVz/tV2Pw18QLM50u5/1NwNqf71cZUkEzQSK6naynIqalPnVgOu8eeFmtdzr95R+lZfgTUo9P12NLgbreb924P+1XeaDfQ+NvC6/wDPzbr89ed+INIbR9QZFXjd8tc9GX2JAN8XafHpfiC4hhZWjVvkxWXUlzcNcS7mbc1R11AFFFFABTo6bUoj8ygBklNp0ibDTaACiiigAo3UUUAWrDU5NPkR0b7rZxW5b6hZ+ILpPO/dyN8u+uZpR19KXLcDqdf8L/2Tbtcbt8PrXLykM/y1Yn1S4nt1heTdH6VVpRjYAoooqgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoop0lADaKKKACinR0SUAEZycVNHHUMfX2qw0ix7GWgCGcbXqOppzuZqhoAKKKd/yzoAbuqRWzUdOjoAuR2++PdUMPyy4ot7hreTdTZpPMk3VmZlpoc7lqjL9+tDT7lPut1qvqKbZKqJUSrRRRVFDkGw5q5bx/ao938VUSc1c0y6W3bLLUyFLYbcWrR9abaOEkwy/I3Wr2pXSSW/ytuasv5qIhH4S1f2a25+Rt0bLuWqjNmn+Yzf7tSeSp+7VDK9SQnnaadJDSf6ugDvvhB+0B42+AesJqHhPxBqWi3Ctu3W8+0N9RX0voH/Bcj40afp6xX02i6syj/W3dnuZq+MROskDbvvV0nhX4a3Pinw3fahBNbxpZruZHbazVx1qNG16iPUwuaY2iuSnUPoD4r/8FgvjZ8VNGm03/hIxo1pN8rJpkX2dm9t1fNd9ql14l1SS6vria4urj53llbczN9apwBvMZf8Aa9d1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+GrO/wDy2b/4mpxseeNiqdTllcW81BrHwjqUzf8ALT5Vrynzf3m6vQPiH/oXhGFP+ezV57JzzWmH0iKWvvFiNHnZVVd1Xn8P3C2+4p8tR+G9v29d1dsu2ONX7V0HNI87mhaJtrLioa1vEW03sm37tZNBpEKKKdHQUN3VJH95d1FFAH09+w54q8H6D4ghfxIkb2f3pd67qr/t3eK/B/i3x29z4XjWKz+6oVdv96vnC2vZrZsxyMn+61Ld6jLcPuZ2b6ndXz3+r/Lj/rnP8j3/AO3H9R+p8nzIZG/u/d/hptI/3aIv619CeAPjkxUwbdVenp92pkZyHyVFsNWP9ZHUWz+KpJiNaMrUclTbt1RT/wCsqomkRlOjptFUUOkojptFAEz9aY/3aZRQAUUUUAb/AMP/ABI3h7XI2/gkO1q7X4keF11jR/t1t9379eWx16t8G/E6a5ZzaVdN95NqCscRTtLnA8pl+/Ta6L4keHG8O+I5ImG3d81c7WsZXQBRRRTAdHVj/lnVWrb/AOrWgmRBTZKdTZKAiNooooKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKkpIP9ZUsq/wAVAELLTakEn8NHk0ANjqwqbqryJsNNoAdINj0Rxs/3abUkMjRnd2oAJ1ZW+ao6uzIrw7lplnaeY+6gCrRWhqlrsVTWfQAVNaSKDtb7tQ1Nabhz/DQASfe+XpUclWriPy5FdP8AeqS4t/tFuskf3v4qmJMSjHTxH5lMWTBp7tvqihkibDTadJTaALVmnmVJNp7Rx7lqvby7G3Vu6f5d1GhqZS5VczluYFErZFXNRhWC8kUelQ+Yi2+1vvU46q5USvHVmGTb96oYf9Ztq5cW/wDo+6lIJEV2ysV202OPzKLZfMfZVqNhBJ81SSU5ofLk21b068ks42VXZUbnFRX9x5zL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W2p+JIQv/LNt1e0ePtWS38J6bZxttaRl31WM3RFH4TzP4qXSrp9jbq27y/vVxNdl8YNN/svUrdd25WXdXG11UPgMia3kaP51qxJr8jR7W6VRpRH5laE9QuLjzaiqSSPbUdBQU5N38NEdSP1oAibOeaSpv+WdQ0AFFFSRReZQBHUkcm2jyaNvl0ANkfdRHTqKAJIJNvFOdPMqGnI+2gzE+6aY61YZlb71N47UFRK9FTP1ptBRHRTpKbQAUU6Olf7tADKKKKACtLwxrUnh/WIbqNtvluN30rNpU+9RuB6P8cIYtRhsNSjbctwvzV5vXVXmt/2v4AS3k+9Zv8tcvL9+s6cbKwDaKKK0AKueXujqnVvzNu1aCZDJV2io6mfpUNARGyU2nSU2goKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigByfL81PaTzKZH83y1J9n8td1ADvk8unnb5I21FHH5lO8v56zMyOmy/fqzGNslMni8yTdVRKiRwp5gxUdTLD5fzU24TynH0qihsdWredreTetU6dHQBblma7kZ2/3aqS/fqzYwNcSbVqC5jaOYhqmJMSOpLeXymqOiqKNOO/W4t3VvvVBb6g8cPlj7tU6dHJtPtQASHc9EdPkZTUW6gB0lN3UU6PrmgB6WzOmVqe1mktE3K23tUMl40ke3tVuO2aS33J/wKpkKWxDtaTc7Nuoki3R7qsyXUa2aKn+s/ip630f2Nlb/Wbakz1KdnAzyKy065kaM7T92n6fefZ5Pm+7Rf3P2w/Ivy0DIrW5+zyK6tUk1x9rk3bdvanWbI0ex12tT5IFj27Pu0SFIbY2wklKv93bUPmNZ3BZK1Psf2i32r9+qdvb/fR/71T6iiWI9ZjWBvm5btWb5mZC5XCsakuNPkt5N23inMnlx/N92q93oUQ3CIEDLVjT8yrtaqb9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o9rbx/fkG5qkmJh6FF5txI38UfSu68aaSvhv4cR+Z/r7xqwfhlpI1XxDaw7W2yPlz/DXR/tH6pDJrFvY27KyW0fb/gVYTqXqpHR0PL3be1OjkMZU/wB05plFdZJp6p4outUsY7eRv3cf3azWOT60lFABRRRQA75qv6pcedb2yf3Vqgi7pB9asXkm6Tb/AM8/loAq0U6Sm0AFOjptOjoAsWdy1ndpIvzNG26tDxN4jGumJlj2+WOayaKCeox23tSx06j+LNBQUUrtvpKAGyU2pKbJQA6imx06gApdxpU61JLGzKrfw0GY1Lhkj2/w1JHcBY3/AL1Itusi/LQ9vtXdWYCx3E3l7V+7UlnGZW2N/e3UulozblH3t1OuAWuv3fVetHoKRLq2m+VbrJ+FR2MCmBnP3l5qS8vpn08o397mrUen/aLZ9npuX/dqdftES2HaNANTLL/EtQWd4tvcTRyNs+9zVe1DiUrG+1vu5qS3VLSSZbr5vMT5frUkxMmb+H6UypJjzio66DqCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqVBg1FUlApbFiT7gqFfvmpE6Uyf/WGggeyeYtRfdNPTqv0pr9aAG0UU11oKiOO1Rn+KpGuGaNd33ar06Ojco1NMjR4/u/xdafJ9nhk3SNvrLT71O+bf/s1n7O0jPluaHlyaoreTHtjWp7eNPsvks0efes4X0ltHtjbavemAb+rbmagJRJLuLyHZdyt9Kksr9raNlCbg3eoxB5cbM1WfKhTTdxfDN/DRqZlZYGndjUken+ZJt/i27qm0yOOS3fc21qbcX7W9y3ltS1AZa3rWIdNu75utQPunkZqtWsbTRt/tfNUcM4t52Gdq0agOtL9baxZf493FTf2uptPm/wBZt5qOO1W6kby23NRLbwx2b/8APbdUgV4I/P3bhuq3qUCJYQskftmn6VF58G5V3eX96m6jcfY0a2VML2NHUAks2jt1enXEltPp/wArfP6Uy01fyrPZIm/b8qmqEjbpGb3oAmt5mspFbbgVPeakszRui/vI+aWz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GhRUdmzyW6s67X/iFSUGY5OtTVX/AOWtO/5aUAWo+rVXuP4qkpr9KColKX7zVWkfa1XJ03rUe3atVEoqu241Xvv+Pd/92rM/+sNVtQj3W7f7rVRUfiODl+/SN2+lLN9+kbt9KD1hKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAsWcLXEiqtSTxvHJtf71R2bbZlqxdT+YNlTIxluQp0pwkWM/7VIv7zataFrp8Mke52+b0oiTzWKzXxZdrU2O421qfYbf+FdrU17GGNfmqifaXKYul/i+9TmvxLGyt9zbTZEg3fJ92rFvpccnzVMiSlawrIy7/ALtW1t7b7tObR13fK22o5tFZfmV91SMZeWcca/JS2qvjdu21VmRo5NrLtqbT4/MuNrfdoH0G3UzP8hbdUclaraXHH92opLNB/DuoFcz0fbTX+fNXpoY1+8u2ofs8Mi7Q21qCy/oj+bLC3935a63yxcaei/xVyfhTb9s8uRt392up0/dHcMn8NKRy1tDitcsW0/UGVv4vmrQ8Fr5s0i/3lrU8eaP9os1uE+9H97/drm/D+ofY9SUj7rNWkfhNo+9AkilbRtcZt20K2K2PEV4mr6Ojp8wVvmqj4wtlGrM6/wDLRd1M8OssvmW7N8snamG/vGZRUl3D5EzJt27WqvQafZJNm806Ndq0kH+rFSpbvdyKqLvb+5UyJ2JtPs3vJ2VG2N6102jxtGV+1fdXauaz7PwVqUMSyIux/wC5Vq30PV7x/LClP71Sc9SS6ieLNShs7lvL+9S+BPDTeJNSWab5oY+1JqngN9P2vPNukk+7WvperL4d0/YnySL99/8AZo+Iz05fdND4gXa6PovlI/y/wivN4V88tznc26tDxP4mfW7gKrb19aoKrR/KKzpxsbU6fKI8bbvloSNt3zVJHub5WouLfy9tbRNCPG1TTreHzG3VJHD8tHl+W26qKiXtPiaGRm/hrf0++jkt2X+LbWBDeeYq1Yjufs6saqJlLcq29u02oXCqv+1mmW8cl3eLDv3bWqbS5lbVPm/5aVo6Tar/AG1Iyfw/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hWfLYCnrXhy68J3DyW7/AGi13fNVHxBGup6SsyfM0dbmqaw2n3Fx8u5ZPvCsdrV9LZXX/j3vK3j8I1ucietXtEtGutRj/ur81Q6pbi1vXRei1oeEpNuqhfaridcvhOjkt1X7tReX8tWpo23s3asvWdQddsMPyySUSPPjG5LPfx20e5mXd6fxVFbz3uofLb2skn907d1XpNFtfC2kpeXLLcXMnKo67qitPjRqen/Jbrb26L0CJUmkacvsiyeF/ETW7uunybNvzPsrjbpGjuHDja2eRXZ3Xxi1u+t5Fe+kVWXb021xlxI88rM33n5OaDpp3+0b3w71pND8SQTP/eVa1fjFrC3GtPDH93hqwvC1rbXZmS4Zo22bkcf3qzLx2kkLMzN83U0D+0MX7+BXUWtilnpas33mXdXOWKebcqB97dXX6ekf2hFm+7/F/u0GWI3GWdn52kzSf8813VyVzN58m6uu1S8js9Pv0h/1ci/LXG0Cw/wl7SNPS8kdpW2Qxjc1TQ6e2pz7YV8uD1/vVN4X8P8A9sb3kk2QQ/erQvNQhSHy7f7n8NYykbRLmlyW2hJthgWSb3qO88UXF7NsZlVm7CsyS4a3hZv4ttU45pLe389v4qziEitrEfl3z/NuZvmaqNWryZriTe1Va6Y7FE1lcfZ5M0lzctcSbqiopgFFFFADl+Za1dJVbe1lZf8AWbaylbC1as7xY7hN/wDq/utRuBYt9U8yPa33quR640e5G/utWbrNrHBcbo/uMMrVdbj5dtT7OwEb/wB7+9TaKKoAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKkhGajq5bY8v5aAJFXatRzR7mqVU30Mu2gzEWP7v+7RHH81Ku3/AIFUsMbN96pkAsf775a2fC8i/aHT+Jl21mxx1LC8lrdI6feqJFRKGqRtDqEyt/ep2lybZttT61G0l1ub7zLVaH93cK3+zVfZM+pZuY927/eplt+7uFb+781TeXvqFV2u1TIo6D7U11Ejbdy1VjkVLiRVXa1S6d/qF+lUtYuHtbyN0+9tpRAh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TUs2l/8ACP26xq+12+9WR4rk8vR2Tdu+6zVly3Lp7mPH4svI7jzPM/CvQ/hv4/jv7hVmVcx/eBrykkE1b0bU20vUI5FbbtaipT902lFuOh638SPh3DqGltq2moquvzygV5fr2si4tY7by9nk9a7NfivHp9jIsbb3kTayV51O7XEjSN/Gd1On8NjLD05faGdV/wB6u78J3mj6fpaR3luzSfxOK5PQ9Hmvn3om9V+WtHULhtL+WRdjelWFTX3YnX/8I54f1j5rW5+zu3d6x/GHwtvLOz+028kd1GvdKxbXUPtHzJ8taVn4oudOk2pMzL6fw0GUeaPvM4+WJkcqeGXrTrK8azk3LXQarFDq8m7cqTf3hXP3cflzMu7dt70HXGpzEcsjTOzGiNNxoX5lq5Z26rGzNQUWrxUXRlz96setq8jD6WqrWLQTR2NjwfI/9qJGv/LT5a0dQjfUNTazt/kRW2ua56wuntZdyttbpXY6PYro+ltcu+15F3ZqZc1tCZU/e5jO1CRdP22sP3lasXWNPezkDN/FzVyTXFF4023e33ah1nXG1KPa1THm6lRM12+birU+qPNarCPu1TorQok2Y2/LmrFvaTXH+rjZvpTdMg8+6Td8y7uldVJ4kj0m32rHtZaWvQDBj8K30239ywX3qnqenvps5if73WtmbxtNcMy/crDvLuS4uCzNuNKPP1JiNtbf7RJtoni8klaZ5lNqigooooAdHt/irQ0/S4bhWZ5dlZ8dSI21qALVxpbRyYRty1H/AGXJJ/u06O98uOrUeufuXT/ZqYkxMg8cUlOl+/TaooKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACrGmvsuMVXp0X36ANqjy9wqGxvPMTafvVaG75t392g5vtF/wzpaXmoKX+7H81dVeSJb27s3+r21z3h+ZYbfdu2tTr7UJLiRV3bl3VUTGW5Ja/PN8v975a0LhZre33f7NY6ah9nuFb+61WNS8SNdRsqrmqIlG5n3l5JcSMr1XXdu+T7tWdPt2urpWkXbHuqXWrNLORdn96g0jL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FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUFRCiiigkKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKCohRRRQSFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFBUT2H/hlL/qPD/wC/8As6P+GUv+o8P/AAC/+zr1+igk8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igDyD/hlL/qPD/wC/wDs6P8AhlL/AKjw/wDAL/7OvX6KAPIP+GUv+o8P/AL/AOzo/wCGUv8AqPD/AMAv/s69fooA8g/4ZS/6jw/8Av8A7Oj/AIZS/wCo8P8AwC/+zr1+igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigD/2Q=="},{"path":"readme/streamExtended.jpg","sha256":"160adc496d0d590ad73f4aa1e909bd56148f975dd4ab83c0175e8161d61849b9","contentBase64":"/9j/4AAQSkZJRgABAQEAeAB4AAD/4QJmRXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAEAAIdpAAQAAAABAAABPuocAAcAAAEMAAAAMgAAAAAc6gAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHqHAAHAAABDAAAAVAAAAAAHOoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+EDP2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4NCjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+PHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9InV1aWQ6ZmFmNWJkZDUtYmEzZC0xMWRhLWFkMzEtZDMzZDc1MTgyZjFiIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLz48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIvPjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIi8+PC9yZGY6UkRGPjwveDp4bXBtZXRhPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9J3cnPz7/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAX7CI4DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2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erUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQB5T/wAK31v/AJ8//I6Uf8K31v8A58//ACOlerUUAeU/8K31v/nz/wDI6Uf8K31v/nz/API6V6tRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFUda1220eP94/z/wIlN8Sa8mg6fv/AOXiT7iVwskj6hcb3/ePJQBqah48vLj/AFflwr/sVSk168k/5fLj/vutjRfh+7x77x9n+wlav/CIab/z6/8AkR6AOO/t+8/5+rj/AL/vR/b95/z9XH/f966nUPAdndRf6P5lvJ/38rmtY0ebR7jy5E/3H/56UAR/2/ef8/Vx/wB/3o/t+8/5+rj/AL/vVaigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1VooAtf29ef8/Vx/wB/no/t68/5+rj/AL/PVWigC1/b15/z9XH/AH+ej+3rz/n6uP8Av89VaKALX9vXn/P1cf8Af56P7evP+fq4/wC/z1Vo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rxDrD+Rp8ez+Df8Ax141X2N/wVE8UTfB/wAP/Dn4LaH/AMS3wx4f8PQ6le21tP5keoXU7vvd/wC/+8R3/wCujvQBVk/4Jf8Ah7xdZ3Fv4D+PHw78ZeJ4/wDmFeekH2j59nyOkz7/APvj+5Xnvxo/YL174B/st6P4/wDEVzeabrGoeIX0Gfw9c6d5cln/AK/9/wCdv+eP9z/c/j+/WH+yX8RvhX8O9c1W5+KHg/XPFX+pk0h9M1F7WTT3R33v8kyf7H/fuvfv+Ch37eGlftYfsv8Ah/TdE8H+ONK02z16GdNV1WDzLO42QTps87e++T5//HHoA+I6KKKACiiigDg/GWof2hrj/wBy3+RK1PAeg/u/tkn/AACuZkk8yR3/AOelehaDH5Wh2uz/AJ4JQB7h+yX+wz42/bEuNYfw8+j6Hofh+Dz9U13Xbp7XTNP/ANh5tj/vKx/2pP2S/GH7IPxAt9B8Ww2bf2hapf6dqVhP5+n6pD/z3hf+OP8A8iV69+wf+1V8N/BvwL+IXwf+L1n4gTwP8QJ7W/TVdC2fbNPuoPn+f+/H8ibPv+XIn3Pn+TV/aC/4KUWeh/Gj4V6l8EbPUNN0P4L6I+k6Dc+IUSe5vPPg2TPMn/XN9n/xH+roA+QKr6ppaapZPDL/APu6+zPEn/Bcv49+LNAvtKvL/wAL/ZdQtXs59mkJ9x02PXx3QB5rdW72Fw8LffjfZUNbHj2Py/EEn/TREesegAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii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2Cb/AJ4yf9+64qigDtfsE3/PGT/v3R9gm/54yf8AfuuKooA7X7BN/wA8ZP8Av3R9gm/54yf9+64qigDtfsE3/PGT/v3R9gm/54yf9+64qigDtfsE3/PGT/v3R9gm/wCeMn/fuuKooA7X7BN/zxk/790fYJv+eMn/AH7riqKAO1+wTf8APGT/AL90fYJv+eMn/fuuKooA7X7BN/zxk/790fYJv+eMn/fuuKooA7X7BN/zxk/790fYJv8AnjJ/37riqKAO1+wTf88ZP+/dH2Cb/njJ/wB+64qigDtfsE3/ADxk/wC/dH2Cb/njJ/37riqKAO1+wTf88ZP+/dH2Cb/njJ/37riqKAO1+wTf88ZP+/dH2Cb/AJ4yf9+64qigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAPj+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKd5dADaKd5belNoAKKdJG0Z+am0AFFFFABRRRQAUUUUAFFOjjaQ/LRJG0Z+agBtFSw27yfdTfUsmlXMab3hk20AVaKKKACiiigAooooAKKd5dTJps0ke9YZNlAFeinSRtGfmo8ugBtFFFABRRRQAUU7y6PLoAbRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVPb2c11/q0kf6UAQUVPJYzRybXRqd/Zc3l7vJkoArUUUUAFFO8tvSjy29KAG0U549lCR76AG0VL9kk/u0wIz0ANoqbyHT+Ck+ySf3aAIqKm8t/wDnnUlvpk15/q4ZHoAq0U6SJo5NrfeqSSxkj6rQBDRViCxmuo3eNHdY/v03y3/550AQ0VNHYySdFokt3j+8slAENFFFABRTvLb0o8tvSgBtFO8tvSjy6AG0UVLDbvJ91N9AEVFS/ZJP7tSyaZNHFv8AJk2f3qAKtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFTR27yfdWSke3eH7yUARUVPJYzJD5mxtn96oKACineW3pUkcbyH5EoAhop0kLR/eXbR5belADaKd5dNoAKKKKACiil++aAEop0kLR/eXbTaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACneXRHTqAI6kh6UeTRN0oAJulFEPSigCOinSU2gAooooAKd5dNqSHpQA5OtO8io6d81ZmY2rEgRLf8A26r05+tAAztI1L9nb0pf92pPKegCv5T0zYav2kfmUy7RElquYftClTvLptaFrH/o9UWVPIfZUVWJLqq9AFzS4/3m+o7iTzJKksP3cDvUEZ8ySgDb8Nx+ZJVzxFJ5el03wvH/AKO71U8Vyfu4UrH7ZmYFFFFbGgVJD0qOpKACbpUkcflwbmptrH9onRauTfvLnYn/ACzoANP0/wC1f7ldB5kNro//AFzqDR9P8z5Kp+K5Etbj7PH8v9+sN2ZmPLJ5sjNTKKKsB2ym07fTaACiinO+6gBtHnVHRWhoFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRTvLp1ABTZKdTZKAG0UVJQA+GFriVVX7zV0s0aeHbNIV/1n8dVfC9vDbxPcSff/gqvqF091cPI9ZmYwfu/30lVr7UXvf8AZSnSb5P4Pkqxp+h/aoN7zeXQBmom804oqVZk0po0+9UV1YPZ7N//AC0rQB8X9aV/9bUUcn7v5qZJJ5n3aBahPUlvz8sab3q9a6IiW/nXD/8AAKg0y6+y3D+XQMsx+HpnG6c+SnvU3n22l/8AHum9/wC81U5JHk+8+6rWmRp5nnT/AOojrQwux39l/a/9JuHjt0qvfXdj5eyL7Q/+2ah1fUX1efzn+RP4Fqn/AMt6zNvZlueNBbo6vuo/tNxZfZ4/kz9/3o+ywpBuM0f+5Vaz2G4VX+41A9Rs0Pl0/wAx0j+f50rTvvDtzGkezy5Ek+46VDremf2UI4WfzH/2aCvaEWkXn2C8jf8Agk4enyRpJqD/AMCb/v1D/q9L/wBvfU1nYTX3zp9ygnUuJp1hI+1bza9R3H2nT/vfOn9+s2SHy7zZ9+p7G9+zjyZPngkoDUg+y+Zcf3EqOaHy6v3Vr9lk/wDQKpv+8koJVTmEt5Pm+anTdavafHb3Vv5MnyP/AAPTNT0ubT4/76f31oK1KnnUkmyot9Ojh8+TatADZE8ukt7p7WTclaP/AAjbw/eqjeWX2ag0L3mf2hb/AO3Vi11Dy7d4ZPuVmxW80ce5Kkjkd/v1mZlWRPLqGtCSPfZt/frPrQ0CiiigAp0dNooAdJTaKKACiiigAooooAljjpPJoooAKjqSigAooooMyOipKKDQjp3l06igCOiiigDsPBscd/p/zffjrP8AFGn/AGW8fZTvAd99l1Nk/hkSpvEEb3Uju9YVPjMyjpcv2rTJrZv+AVlxny5KtafJ9lv/AJ6NbjWDUX2VrEAqKOSSGT5KI5KXyaoNQt4/tEm56kli8uq8n7v7tH+9WYBJJVepf+We6oq0NAooooAKljHlyU/S4/OvUWrGq2vl3D0AR3X7yzRxVOrkf7yweqdTEAoooqgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAkh6Usn+spkdOoAkqvUnnUUAOTrR/y0o2UIm+szMjkptWKjrQ0I6Klk2VFQA6OnU1H207zqAJ/L/d1EnWjzmoj++KzMx1Nkj8unRyUS96ACLtViSREjqv5T+ZsqS6tvKoAgEnl0ySrVxHD9n+X/AFlU60NAqX7RJs2VFRQAUU6OPzDT5rd7f71AFuD/AJBslNstvm/P/cps3/HjHTbcbzWZmdJ4b/48XrI8WSf6fsrb8Nx/8S+ua1x/N1N6dP4wplKiiirNB0dElOpY4PMuNlAFvT/9Ft3ep7CPyd7PUWobI/LhT/gdXoo/Mt0rGoBtWsn9n6O9y/8AwCuNuLhri4eRurV0njPUPsun2tmn9z565erpkxI6KKKsokpz9abRWZmNd91NoorQ0CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAkopvmU2gCSo6KKAHR1e0fT/7SvNv8H8dZ9dRZRpo/h/5v9dcUTAo3T/6Y6J92iORP7m+qtr+8ketrS9HSPT3ubl9iVmZlX7Lc6hbvs+RI6saPf2emaf+++d6p6n4maaPyYPkjrF3M1V7PmA1tY8Rfbfkjh8tKzHkeQ/NSeU9amg6ZDdXG+4fZbx/+RKo0G6Roc2p/wCxD/fq/dG3sU8m3TzH/vvSahrH2o7I0+z2/wDcSo9P0ebUPufIn9560OXmZD5if8tPMdKZHbr9ne4jf+P7lT6wLfT49qTfaJv/AEXWTHcNGWx/FWZpyl61j8x/nfYn8dJqOofa/wB3GNkMdUiWk+81Sf6ugfsyT/WR06TyZLP/AKaVAknlx0zf70D1COOpKIg8v3VkepP7Pus7/JkoAZG80Z2xzSVb/sp0g864m2Ulrod7dR70WiTw1f8A8UMj0e0Aof6ynp+76SbKWS1mtfvxyJUcclAFiOPyajm60RyUZ/e0EFy1njurfyJvvR/cas9/+WlSSJ5kdV6CqZrRx21rbp5jyO8n9ygXrwW/l/fT+5WZHcN9oR3+atqPS1vrPfbzbv8AYegVSmUtR05PL86D7n930qiib6uSGbT7j56hkkSS4+RaCia116a2+9+8/wB+rGoajb6nZ/Km2eqtQyW/92gDW0/S5v7PSaOoZJPL+8nlvTNH8STaPJt+/H/caquqXn9oXjSVmA2STZ9yluIN8fmL92pLq2eKNK1PDcaXVncQv/y0oA5uipry3NncNGahrQ0CiiigAooooAKKKKACiipIelABUiJlKPIqOszMKKKX75oASiiitACiiigAooooNAqOpKjoAtWcxt7lGWuy1CwX+x/+ulcPXcaQ/wDamgJ/H5dY1DM5fUo/LkTy6NVj8yzhm/vVZ8RW3kyVDcfvNEj/AOmdFMChBT3/AHclRQ/fp3l+ZWwFq2gSS33VDI6Y2rR5NJaf8fFZgRSRPHH81Q1c1COqdaGgUUUUAW9P/wCP+P8A3qtap956owcTLWhqn+sd6zMyrY/vLeaqVW9O/wCWn+5VStDQKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAljjp9Q+ZUnlvJ92gBv8Ay1om6Uz7hqd/9VQBHUkfz01OtDpsoMx0kdEkdN8v93up0cvrWYEdFSb/AHpsknmUAQ07y6dRWhoR0VYfZ9nqvQBJTkbaadHHViPZ5dZmZCnWrEcf2r79V492eKe/mR0GZXn/AHclRVYktfLj3NVetDoCinRx+Yaf5fHzUAPsJPJk3UahdfaJKZJIv8NRUAW5f+PRaXTf+PkVJ/y7pvp2nx+ZJ8lZmZ0el/8AHo9cldS+ZM5/2q6e6lfT9LeuUp0yokdOjptSQ9KsojrR0OP948x/5Z1nVriP+z9H/wBuSlUAgj/0q4/66PW/Ha+Xp/z1laPa+ZKldB4n/wBA0Dd/HJWBmcjrl7/aGoPJVOiiug0CiiigAooooAKKKKACiiigAooooAKdJTad/vUANooooAKKKKACiineXQA2ineXTqAG+XTakooAjooooAKKKKALVmnmXC7q0NQuvtVV7GPy7ffV60tV+xz3En/LOgxkS6OIdM0t7mf7/wDAlZV9q81+MM3yf3arvcNJUlqUT79ZlEfkVYjjRI6jFz/dWpLGJ9TvEh/56VoTqPsY/n86T7sf8NP8zzpHepNet/7Pk8lH/wBXVrQbVJJPOn/1Fv8AO9BI+10tLXT/ALZdfd/gT/npVLV/FEmqJ5MaeTD/AHFqHV9Vk1u4aRvkj/gSq8PWgv2YR2/7upPLSOo5Ljy6uaX4fuNYG/dsh/vvQMz/ADP7lXdI0C81yT/R493+1V/VNLsNL0/ZH5lxcf3/APlnVvwnfahZ6e6WsO95KipUAfH8MUs4t9/fR2/+zTPs+j2H/LSN2q3H8Nta8ST+deP5af33qPUPDug+HRsuLz7U/wD0xqYVB1CO21BJvkt7m3t/+AU/UNC1LULd9j7/APcqhea3pclu8NvpvzfwPvqnpfii+8OXH7h9n+w1VPnHTNCPQbmPZvuLhP8AZqwPO0e386Sa4dK6fSPFmh+IbdZrx/st1H99XrmPiJ4wTULj7HYJstI/uN/z0rD35TKNKTUIdQ0dLmea3t/M/ges2ObQZP8Aj4+f/crHtfJsI/8AiZWdw/mfcffXQeH08L6k+2Z5LX/fqvZ8oGVqOlaPJ/x63kiN/desaSxmj+dPnT+/Xfah8JYbq3eawuY5k/grnYfCepaPG7smyqp1AOf8/cnNR1ufYUnj/wBIj+zv/fSqOoaO9n8y/PH/AH629oZkEOn+YaEje1k+V/LetfwZPbwXX+kVN4sktvtf+j+X/wAAoJ9p0HWOt2uvR/Z79dk38EtYv/IP1H+95dEkfnVHD8/y/wAf8FBWppaxFCYI7iH7sn36o1NHJn9y/wByq95DJYztC1BAy6SonTYak+0f3lps8m80FnQaPJDrOn+S/wAlxH9yq5tZtLvErJt5nt5PlbZXQWuof29pz7/vx1mBj+KE/wCJoz/89Kza0NRjkvrj5Pm8us+tDQKKKKACiiigAooooAKdHRHH5hqz5f7ugBnzUz75p8vejf8Au6zMyOpKP9XR/rKAG7KH602pPIrQBqJvND9aI/vinTQ+XWYDUTeaNlCbv4aH60AQ1JTY6dWhoFdh8N7jzLW4hrj66D4dz+TrW3/nolRU+AzLfi2Ly6xLf57WZK6Lx1Y+Z9ysDTd/zrWMdgMr/lpVq1+5Vd/+PirEPWukqoPl/rUFPl/1lLQZ7DbiR5F+eoakn/hqOg0iR0UUUFElaV/J5mnpWbV9I3eyVqCZFfT4/wB5VSr1tVOT75qUUNoooqgCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig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fPXDaRZNc3CfL8m+u78d3nl29vbR/wDLNKDGo/eOLH39if6yStzwbInhuS6d/v7KPAeg/wBsa47unyW/z1R1STy9YuE/26xqe97hsTXWqf2hcO8j/PWh8JdR/wCLqWLJ/frkLqT/AEit34ZyfZvGFq/3/npVKdqZdL+Ie0fHz954gtYa8x+NeoYuLWxT7kab67b4ga8/iTxgn/TOvLPidqf9oeKLg/8APP5K48HT+EvEVPfMKOOjyKjor0zn5Qm6VHRRQUFFFOi+/QBseE/C9z4ov1htU3vXVeM/gBrfhTS/tlxayIlbv7KnifTfDfjq3fUvLVN/36+g/wBpD4qeG/8AhXdxbQ3NvdXFwn7tEr5fMM2xFLGRo046HtYLAUamHlWnM+IJI8VFVi+k8y8dx/fqvX1B4o7y6bUlNkoAdUkfz1HUkclBMgdMJTd9TVC6bKzJI5KbViOOmSR1oaEVOjptFAEk3So6KKAJKKKKAI6KdJTaANXwn4ifw5q6XCfjXonijR4fFGhx3lv/AMtE+evJq9A+EXifEn9n3D/JJ9yufEU/tgcPdRNbXDo1Q/8ALSu1+L3hN9H1Xzl/1clcRW1CpzQAKKKKoAqaNPMqGpbb71ACumym1JL3qOgzI6KKKDQKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAp0dNqSgBslNqTyabJ980ANqxHH5kdV6dHJ5ZoAJI/LNSRyeXTppvMqvQBL5n7uoqsJbgx0ySOgCKirCWvm1XoAKKKKAJZI3jpnmVM++SCj7L5lvvWgBscjRn5atfbfMt9jrVOigzGyU2pZf9XUVBoFS+W8dRVrafH5kdAEVvrDxj5l3VWkPmPuqxqFl5I3VX2fvKzMyGSpoP3lMkjp9rHn7taGg+SOmQw+ZUn2j+DZSRx1mZkXzJ7USSNIfmq4LXzI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l/8ALSs+tDQKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDXsP+PdKf5dQadJvTbVmg5ag3y60dH8Nvqab2+RKqRx+dIiV2WnyJbWaJ9ytDOoY914bh0+RP46u6XFn+PYlQahqH9oXHy/cq7pduklvvkegz9oWbrUIbX71cxr2of2pJ8v3I6t+JJPLk2VkxxvJH8iUBTL2g3X9lyb6NY1D+1byOqtSeZ+830Gmpqx6o+l2fk7PLqLQbr7LePM/wA1VdQ1SbUCm6i11D7LbumzfQSWvFGqf2hIlGj+F/7Qt98j7Eqrpcqf2hvkTfXQf2wlrH8n7ygCvdeDLXy9/nSVDHpdzpfzx/6QlXbrUEk2bK09H/26DL2hzenx3OoSP/pP2f8A2Hq9deFLy6j/AOPnf/v1ra/o8MlnvT92/wDfrJ0HxQ9rJ5Nx9z+/QMy5NBfT59lz5iJ/sVX8Z29npekx/Z5vMmuK9C8u21TT/n8uvI/F4RPEEyR/cjNBph/enqY9TWcP2i4Rahqxp8byT7FfZWZ6B3Ca8mh6ekMckafJVWT4jcbH8yaqdt4ds4497zb2/wBuiSOztf4N9Bx8sDO1vULXUPmhg8t6x3+9Wzqt2l2my3ttv/AKxn+9QdVMSiiigoM4q7Bqbw27w/wVSq1p832e+R6AK6rVy3kuBb/I21K0fF+mwwTRzQfcuKwMmgXxFqz86S43qu9qu3OpzSSR/aI9yRvWr4D+zeXO8n362NQjtrvT7jZ5e/ZQZe0985PxXry+IdX85E2R7NiCs6ytvtV0se7Z5lRSU2g2OquPAPkxO8dzu+SsAyPb1PH4guSV3TSNHHTdUkSST5KmHP1AoyU2iiqAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKADOaKKKANjwfp41PX4Vf7vWvRNetWkto9leW6Zfvpd4kyfej6V0OsfEOa6t08j93/fqDlxFOcpnYvpXl6en7z546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mTpXSR6omlxbI02VytTyXbzffkkegCzrGoPqFxveqPmU2igAqaCD7Rcbahp0cnlmgCzqEaRybEqpRRQAUUUUAFFFFAEsaf3qZ5dNooAd5dNoooAd5lNoooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAozRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU7zKbRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQB8r0V9Uf8K/0H/oB6P/AOAKUf8ACv8AQf8AoB6P/wCAKUAfK9FfVH/Cv9B/6Aej/wDgClH/AAr/AEH/AKAej/8AgClAHyvRX1R/wr/Qf+gHo/8A4ApR/wAK/wBB/wCgHo//AIApQBsUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//2Q=="},{"path":"readme/structure.png","sha256":"36ff2d6eefd0d4137e29eda24e08acdb9b161bcfce5ef58996329002befe7906","contentBase64":"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ERERERERERERERERhQkGgImIiIiIiIiIiIgoaNhsNtUjIiIibzAATEREREREREREREREREQUJhgAJiIiIiIiIiIiIiIiIiIKEwwAExERERERERERERERERGFCQaAiYiIiIiIiIiIiIiIiIjCBAPARERERERERERERERERERhggFgIiIiIiIiIiIiIiIiIqIwwQAwEREREREREREREREREVGYYACYiIiIiIiIiIiIiIiIiChMMABMRERERERERERERERERBQmGAAmIiIiIiIiIiIiIiIiIgoTDAATEREREREREREREREREYUJBoCJiIiIiIiIiIiIiIiIiMIEA8BERERERERERERERERERGGCAWAiH1m9ejUsFkuOtm3bNnUNIiIqCH///bfT9+cNGzaoaxA/wyiccHsmIiIiIiIiokjHALCDCxcuYPv27fj1118xadIkPProoxg0aBA6d+6M2rVr49JLL8Xtt9+O+++/H2PHjsUHH3xgXlcOLh89ehS6rqtbIiIiIiIiIiIiIiIiIiIKLAaADTabDTt27MC0adPQqFEj1K1bF7169cJ9992Hl156CbNmzcIff/yBnTt34pdffsFHH32Et956C8888wzuuusu87ryc+XLl0ePHj0wefJkLFu2DMeOHVO/gahgyTbpLBPmzTffVNcg8g05ScbZtpbRFi1apK7pexs3bnT6O7O2Q4cOqWsTeYbvo+SO8+fPO91OqlatipSUFHWt/FmzZo3T33HllVeqa+TfwoULnf6OtWvXqmsQEREREREREVEwi/gA8P79+/HII4+gTp06GDp0qBnkzY/ff/8dI0eORMeOHXHRRRfhoYcewuLFi3HmzBl1DSKiyCVBtPT0dDXyrU8//VT1iCicyEl6zoKRUuY32MTGxprf/RzJ9829e/eqUf5s2rRJ9bKbO3cujhw5okb5I0FmZ6QaDhERERFRIMh3fknaISIiIu9EbABYAhBfffUVGjRogFdffVXN+t5rr72GLl26mAFmIqJIJ++7rgIL+SEn77zwwgtqRERUcGTZEGe2bNmievkjS4+4IsHy/JLlTL7++ms1ynTPPfcgLi5OjYiIiIiI/E+CwEREROSdiAwAS3k+Wb93wIABAcvM9VVGBhFRqHvvvfd8vl767NmzVY+IqGDJyYXOLF++XPW8l5SUZC5F4sqGDRtUz3sHDx7E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pK+C+PKYuTpJTr5b+uOkpmD8DJa/8+6778bixYsxd+5cM4jrLnk9yckHkrkvr0siIiIiIiIiomBnkTrQql/gnJ1JH4i7p+s6jh49iiNHjiAxMRG7d+/G/v37cfLkSRw/fhyHDh0yD7rKgdrKlSubB4HkYFpGkwysChUqqFvzn9TUVPz777/mQf61a9diz5495r9ly5Y1DxI2bdrUbE2aNDGzZCLZ2bNnzQC4BIXluZPH6tixY+acjCUbpkqVKqhYsSIaNmxoPofyvAbieaSCcerUKWzfvh07d+40y7Pv2LHD7Ms2IidJSAaUZNPJCQWyfVSvXh3VqlVDqVKl1C0QZXf48GH8888/+Pvvv7FlyxZs3rzZfH+Ji4sztyd5X5ZSvw0aNDD/LVq0qPpJ/wrW+0X+8+STT2LixIlqZCfZxTfddJMahSf57rZx40bzu5Bs8/K+Lu/z8t1M3sfls1368l4u7+nyGc+szYIRjJ/B8v1fqr3I++OmTZvM79jy/V/eO+X3y/dpaVIiW943ixUrpn4yOBXUfhQRERERERERBScGgImIiIhClNVqNYNUEujPasWKFWjbtq0aEVG4434UEREREREREWXFWo9EREREIUqyKR2Dv6JOnTqqR0RERERERERERJGGAWAiIiKiECQlbD///HM1yiTrpsryEERERERERERERBSZWAKaiIiIKATNnj0b11xzjRplWrJkCTp27KhGRBQJuB9FRERERERERFkxA5iIiIgoQI4cOYKhQ4fihx9+wM6dO5Genq4ucd+pU6cwZcoUp8Hfa6+9Fm3atFEjIiIiIiIiIiIiikTMACYiIiIKEAkAV6hQQY2ABg0a4JZbbjH/rV69OipWrIjY2FgUKVLEbGlpaUhJScHZs2exZ88erF+/Hs8++yz279+vbiG7TZs2oWHDhmpERJGC+1FERERERERElBUDwEREREQB4hgA9qVvvvkG/fv3VyMiiiTcjyIiIiIiIiKirFgCmoiIiCjEffXVV05LQhMREREREREREVHkYQCYiIiIKET17dvXLAt93XXXOc0AJCIiIiIiIiIiosjDADARERFRgBQtWhQTJ05EkyZN1Ix37rzzTixYsABff/11vm+LiIiIiIiIiIiIwgvXACYiIiIKMKvVikOHDiExMRF79+7FgQMHzLZr1y5znWCZO3v2LKpXr466deuidu3a/zUZ+2sdYSIKTdyPIiIiIiIiIqKsGAAmIiIiIiIKYdyPIiIiIiIiIqKsWAKaiIiIiIiIiIiIiIiIiChMMABMRERERERERERERERERBQmGAAmIiIiIiIiIiIiIiIiIgoTDAATEREREREREREREREREYWJ/7dv7zYAAjEUBHH/RcMFVwEBn9VM9FqwVhaAAQAAAAAAACIEYAAAAAAAAIAIARgAAAAAAAAgQgAGAAAAAAAAiBCAAQAAAAAAACIEYAAAAAAAAIAIARgAAAAAAAAgYs5l79fNzF4AAADc9aEzDwAAAHiYD2AAAAAAAACACAEYAAAAAAAAIEIABgAAAAAAAIgQgAEAAAAAAAAi5lz2BgAAAAAAAODHfAADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAAAQIQADAAAAAAAARAjAAAAAAAAAABECMAAAAAAAAECEAAwAAAAAAACQcBwXQRnb5x4XZZAAAAAASUVORK5CYII="},{"path":"rust-toolchain.toml","sha256":"9587b77a8bfec554c0d4787be625a74c815d11b8e97f187eaba72142578e1da0","contentBase64":"IyBNYWtlIHN1cmUgdG8gYWxzbyB1cGRhdGUgdGhlIGNpIHRvb2xjaGFpbiBpZiB0aGlzIGlzIHVwZGF0ZWQKW3Rvb2xjaGFpbl0KY2hhbm5lbCA9ICJuaWdodGx5LTIwMjYtMDItMTMiCmNvbXBvbmVudHMgPSBbImNsaXBweSJdCg=="},{"path":"src/api/app.rs","sha256":"561306e9cce8ba92c3f56e9407837219a8f9788b8ed34df2f66be17f92a5d5e9","contentBase64":"dXNlIGFjdGl4X3dlYjo6ewogICAgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSwgZ2V0LAogICAgaHR0cDo6aGVhZGVyLAogICAgd2ViOjp7SnNvbiwgUXVlcnl9LAp9Owp1c2UgY29tbW9uOjphcGlfYmluZGluZ3M6OntzZWxmLCBHZXRBcHBJbWFnZVF1ZXJ5LCBHZXRBcHBzUXVlcnksIEdldEFwcHNSZXNwb25zZX07CnVzZSBzaGEyOjp7RGlnZXN0LCBTaGEyNTZ9OwoKdXNlIGNyYXRlOjphcHA6OnsKICAgIEFwcEVycm9yLAogICAgaG9zdDo6e0FwcElkLCBIb3N0SWR9LAogICAgdXNlcjo6QXV0aGVudGljYXRlZFVzZXIsCn07CgojW2dldCgiL2FwcHMiKV0KYXN5bmMgZm4gZ2V0X2FwcHMoCiAgICBtdXQgdXNlcjogQXV0aGVudGljYXRlZFVzZXIsCiAgICBRdWVyeShxdWVyeSk6IFF1ZXJ5PEdldEFwcHNRdWVyeT4sCikgLT4gUmVzdWx0PEpzb248R2V0QXBwc1Jlc3BvbnNlPiwgQXBwRXJyb3I+IHsKICAgIGxldCBob3N0X2lkID0gSG9zdElkKHF1ZXJ5Lmhvc3RfaWQpOwoKICAgIGxldCBtdXQgaG9zdCA9IHVzZXIuaG9zdChob3N0X2lkKS5hd2FpdD87CgogICAgbGV0IGFwcHMgPSBob3N0Lmxpc3RfYXBwcygmbXV0IHVzZXIpLmF3YWl0PzsKCiAgICBPayhKc29uKEdldEFwcHNSZXNwb25zZSB7CiAgICAgICAgYXBwczogYXBwcwogICAgICAgICAgICAuaW50b19pdGVyKCkKICAgICAgICAgICAgLm1hcCh8YXBwfCBhcGlfYmluZGluZ3M6OkFwcCB7CiAgICAgICAgICAgICAgICBhcHBfaWQ6IGFwcC5pZC4wLAogICAgICAgICAgICAgICAgdGl0bGU6IGFwcC50aXRsZSwKICAgICAgICAgICAgICAgIGlzX2hkcl9zdXBwb3J0ZWQ6IGFwcC5pc19oZHJfc3VwcG9ydGVkLAogICAgICAgICAgICB9KQogICAgICAgICAgICAuY29sbGVjdCgpLAogICAgfSkpCn0KCiNbZ2V0KCIvYXBwL2ltYWdlIildCmFzeW5jIGZuIGdldF9hcHBfaW1hZ2UoCiAgICBtdXQgdXNlcjogQXV0aGVudGljYXRlZFVzZXIsCiAgICBRdWVyeShxdWVyeSk6IFF1ZXJ5PEdldEFwcEltYWdlUXVlcnk+LAogICAgcmVxOiBIdHRwUmVxdWVzdCwKKSAtPiBSZXN1bHQ8SHR0cFJlc3BvbnNlLCBBcHBFcnJvcj4gewogICAgbGV0IGhvc3RfaWQgPSBIb3N0SWQocXVlcnkuaG9zdF9pZCk7CiAgICBsZXQgYXBwX2lkID0gQXBwSWQocXVlcnkuYXBwX2lkKTsKCiAgICBsZXQgbXV0IGhvc3QgPSB1c2VyLmhvc3QoaG9zdF9pZCkuYXdhaXQ/OwoKICAgIGxldCBpbWFnZSA9IGhvc3QKICAgICAgICAuYXBwX2ltYWdlKCZtdXQgdXNlciwgYXBwX2lkLCBxdWVyeS5mb3JjZV9yZWZyZXNoKQogICAgICAgIC5hd2FpdD87CgogICAgbGV0IG11dCBoYXNoZXIgPSBTaGEyNTY6Om5ldygpOwogICAgaGFzaGVyLnVwZGF0ZSgmaW1hZ2UpOwogICAgbGV0IGV0YWcgPSBmb3JtYXQhKCJcIns6eH1cIiIsIGhhc2hlci5maW5hbGl6ZSgpKTsKCiAgICBsZXQgY2FjaGVfY29udHJvbCA9ICJwcml2YXRlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlIjsKCiAgICBpZiBsZXQgU29tZShpZl9ub25lX21hdGNoKSA9IHJlcS5oZWFkZXJzKCkuZ2V0KGhlYWRlcjo6SUZfTk9ORV9NQVRDSCkKICAgICAgICAmJiBpZl9ub25lX21hdGNoLnRvX3N0cigpLm9rKCkgPT0gU29tZSgmZXRhZykKICAgICAgICAmJiAhcXVlcnkuZm9yY2VfcmVmcmVzaAogICAgewogICAgICAgIHJldHVybiBPayhIdHRwUmVzcG9uc2U6Ok5vdE1vZGlmaWVkKCkKICAgICAgICAgICAgLmluc2VydF9oZWFkZXIoKGhlYWRlcjo6RVRBRywgZXRhZykpCiAgICAgICAgICAgIC5maW5pc2goKSk7CiAgICB9CgogICAgT2soSHR0cFJlc3BvbnNlOjpPaygpCiAgICAgICAgLmluc2VydF9oZWFkZXIoKGhlYWRlcjo6RVRBRywgZXRhZykpCiAgICAgICAgLmluc2VydF9oZWFkZXIoKGhlYWRlcjo6Q0FDSEVfQ09OVFJPTCwgY2FjaGVfY29udHJvbCkpCiAgICAgICAgLmJvZHkoaW1hZ2UpKQp9Cg=="},{"path":"src/api/auth.rs","sha256":"14a065e64b950cf53088871d360ac3cc828c0d7ce4474dc5b2b5b6a5438e8f4c","contentBase64":"dXNlIGFjdGl4X3dlYjo6ewogICAgRXJyb3IsIEZyb21SZXF1ZXN0LCBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlLAogICAgYm9keTo6TWVzc2FnZUJvZHksCiAgICBjb29raWU6OntDb29raWUsIEV4cGlyYXRpb24sIFNhbWVTaXRlLCB0aW1lOjpPZmZzZXREYXRlVGltZX0sCiAgICBkZXY6OntQYXlsb2FkLCBTZXJ2aWNlUmVxdWVzdCwgU2VydmljZVJlc3BvbnNlfSwKICAgIGdldCwKICAgIG1pZGRsZXdhcmU6Ok5leHQsCiAgICBwb3N0LAogICAgd2ViOjp7RGF0YSwgSnNvbn0sCn07CnVzZSBjb21tb246OmFwaV9iaW5kaW5nczo6UG9zdExvZ2luUmVxdWVzdDsKdXNlIGZ1dHVyZXM6OmZ1dHVyZTo6e1JlYWR5LCByZWFkeX07CnVzZSBzdGQ6OntwaW46OlBpbiwgdGltZTo6RHVyYXRpb259OwoKdXNlIGNyYXRlOjphcHA6OnsKICAgIEFwcCwgQXBwRXJyb3IsCiAgICBhdXRoOjp7U2Vzc2lvblRva2VuLCBVc2VyQXV0aH0sCiAgICB1c2VyOjp7QWRtaW4sIEF1dGhlbnRpY2F0ZWRVc2VyfSwKfTsKCnB1YiBjb25zdCBDT09LSUVfU0VTU0lPTl9UT0tFTl9OQU1FOiAmc3RyID0gIm1sU2Vzc2lvbiI7CgppbXBsIEZyb21SZXF1ZXN0IGZvciBVc2VyQXV0aCB7CiAgICB0eXBlIEVycm9yID0gQXBwRXJyb3I7CgogICAgdHlwZSBGdXR1cmUgPSBSZWFkeTxSZXN1bHQ8U2VsZiwgU2VsZjo6RXJyb3I+PjsKCiAgICBmbiBmcm9tX3JlcXVlc3QocmVxOiAmSHR0cFJlcXVlc3QsIF9wYXlsb2FkOiAmbXV0IFBheWxvYWQpIC0+IFNlbGY6OkZ1dHVyZSB7CiAgICAgICAgcmVhZHkoZXh0cmFjdF91c2VyX2F1dGgocmVxKSkKICAgIH0KfQpmbiBleHRyYWN0X3VzZXJfYXV0aChyZXE6ICZIdHRwUmVxdWVzdCkgLT4gUmVzdWx0PFVzZXJBdXRoLCBBcHBFcnJvcj4gewogICAgbGV0IGFwcCA9IG1hdGNoIHJlcS5hcHBfZGF0YTo6PERhdGE8QXBwPj4oKSB7CiAgICAgICAgTm9uZSA9PiByZXR1cm4gRXJyKEFwcEVycm9yOjpBcHBEZXN0cm95ZWQpLAogICAgICAgIFNvbWUodmFsdWUpID0+IHZhbHVlLAogICAgfTsKCiAgICBpZiBsZXQgU29tZShoZWFkZXJfYXV0aCkgPSAmYXBwLmNvbmZpZygpLndlYl9zZXJ2ZXIuZm9yd2FyZGVkX2hlYWRlcgogICAgICAgICYmIGxldCBTb21lKHVzZXJuYW1lKSA9IHJlcS5oZWFkZXJzKCkuZ2V0KCZoZWFkZXJfYXV0aC51c2VybmFtZV9oZWFkZXIpCiAgICB7CiAgICAgICAgbGV0IE9rKHVzZXJuYW1lKSA9IHVzZXJuYW1lLnRvX3N0cigpIGVsc2UgewogICAgICAgICAgICByZXR1cm4gRXJyKEFwcEVycm9yOjpIZWFkZXJBdXRoTWFsZm9ybWVkKTsKICAgICAgICB9OwoKICAgICAgICBPayhVc2VyQXV0aDo6Rm9yd2FyZGVkSGVhZGVycyB7CiAgICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZS50b19zdHJpbmcoKSwKICAgICAgICB9KQogICAgfSBlbHNlIGlmIGxldCBTb21lKGJlYXJlcikgPSByZXEuaGVhZGVycygpLmdldCgiQXV0aG9yaXphdGlvbiIpIHsKICAgICAgICAvLyBMb29rIGZvciBiZWFyZXIKICAgICAgICBsZXQgT2soYmVhcmVyKSA9IGJlYXJlci50b19zdHIoKSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIEVycihBcHBFcnJvcjo6QmVhcmVyTWFsZm9ybWVkKTsKICAgICAgICB9OwoKICAgICAgICBsZXQgdG9rZW5fc3RyID0gYmVhcmVyCiAgICAgICAgICAgIC5zdHJpcF9wcmVmaXgoIkJlYXJlciIpCiAgICAgICAgICAgIC5va19vcihBcHBFcnJvcjo6QXV0aG9yaXphdGlvbk5vdEJlYXJlcik/CiAgICAgICAgICAgIC50cmltKCk7CgogICAgICAgIGxldCB0b2tlbiA9IFNlc3Npb25Ub2tlbjo6ZGVjb2RlKHRva2VuX3N0cik/OwoKICAgICAgICBPayhVc2VyQXV0aDo6U2Vzc2lvbih0b2tlbikpCiAgICB9IGVsc2UgaWYgbGV0IFNvbWUoY29va2llKSA9IHJlcS5jb29raWUoQ09PS0lFX1NFU1NJT05fVE9LRU5fTkFNRSkgewogICAgICAgIC8vIExvb2sgZm9yIGNvb2tpZQogICAgICAgIGxldCB0b2tlbiA9IFNlc3Npb25Ub2tlbjo6ZGVjb2RlKGNvb2tpZS52YWx1ZSgpKT87CgogICAgICAgIE9rKFVzZXJBdXRoOjpTZXNzaW9uKHRva2VuKSkKICAgIH0gZWxzZSB7CiAgICAgICAgT2soVXNlckF1dGg6Ok5vbmUpCiAgICB9Cn0KCmltcGwgRnJvbVJlcXVlc3QgZm9yIEF1dGhlbnRpY2F0ZWRVc2VyIHsKICAgIHR5cGUgRXJyb3IgPSBBcHBFcnJvcjsKCiAgICB0eXBlIEZ1dHVyZSA9IFBpbjxCb3g8ZHluIEZ1dHVyZTxPdXRwdXQgPSBSZXN1bHQ8U2VsZiwgU2VsZjo6RXJyb3I+Pj4+OwoKICAgIGZuIGZyb21fcmVxdWVzdChyZXE6ICZIdHRwUmVxdWVzdCwgcGF5bG9hZDogJm11dCBQYXlsb2FkKSAtPiBTZWxmOjpGdXR1cmUgewogICAgICAgIGxldCBhcHAgPSBtYXRjaCByZXEuYXBwX2RhdGE6OjxEYXRhPEFwcD4+KCkgewogICAgICAgICAgICBOb25lID0+IHJldHVybiBCb3g6OnBpbihyZWFkeShFcnIoQXBwRXJyb3I6OkFwcERlc3Ryb3llZCkpKSwKICAgICAgICAgICAgU29tZSh2YWx1ZSkgPT4gdmFsdWUsCiAgICAgICAgfTsKCiAgICAgICAgbGV0IGF1dGhfZnV0dXJlID0gVXNlckF1dGg6OmZyb21fcmVxdWVzdChyZXEsIHBheWxvYWQpOwoKICAgICAgICBsZXQgYXBwID0gYXBwLmNsb25lKCk7CiAgICAgICAgQm94OjpwaW4oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgIGxldCBhdXRoID0gYXV0aF9mdXR1cmUuYXdhaXQ/OwoKICAgICAgICAgICAgbGV0IHVzZXIgPSBhcHAudXNlcl9ieV9hdXRoKGF1dGgpLmF3YWl0PzsKCiAgICAgICAgICAgIE9rKHVzZXIpCiAgICAgICAgfSkKICAgIH0KfQoKaW1wbCBGcm9tUmVxdWVzdCBmb3IgQWRtaW4gewogICAgdHlwZSBFcnJvciA9IEFwcEVycm9yOwoKICAgIHR5cGUgRnV0dXJlID0gUGluPEJveDxkeW4gRnV0dXJlPE91dHB1dCA9IFJlc3VsdDxTZWxmLCBTZWxmOjpFcnJvcj4+Pj47CgogICAgZm4gZnJvbV9yZXF1ZXN0KHJlcTogJkh0dHBSZXF1ZXN0LCBwYXlsb2FkOiAmbXV0IFBheWxvYWQpIC0+IFNlbGY6OkZ1dHVyZSB7CiAgICAgICAgbGV0IGZ1dHVyZSA9IEF1dGhlbnRpY2F0ZWRVc2VyOjpmcm9tX3JlcXVlc3QocmVxLCBwYXlsb2FkKTsKCiAgICAgICAgQm94OjpwaW4oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgIGxldCB1c2VyID0gZnV0dXJlLmF3YWl0PzsKCiAgICAgICAgICAgIHVzZXIuaW50b19hZG1pbigpLmF3YWl0CiAgICAgICAgfSkKICAgIH0KfQoKI1twb3N0KCIvbG9naW4iKV0KYXN5bmMgZm4gbG9naW4oCiAgICBhcHA6IERhdGE8QXBwPiwKICAgIEpzb24ocmVxdWVzdCk6IEpzb248UG9zdExvZ2luUmVxdWVzdD4sCikgLT4gUmVzdWx0PEh0dHBSZXNwb25zZSwgRXJyb3I+IHsKICAgIGxldCB1c2VyID0gaWYgYXBwLmNvbmZpZygpLndlYl9zZXJ2ZXIuZmlyc3RfbG9naW5fY3JlYXRlX2FkbWluIHsKICAgICAgICBtYXRjaCBhcHAKICAgICAgICAgICAgLnRyeV9hZGRfZmlyc3RfbG9naW4ocmVxdWVzdC5uYW1lLmNsb25lKCksIHJlcXVlc3QucGFzc3dvcmQuY2xvbmUoKSkKICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgewogICAgICAgICAgICBPayh1c2VyKSA9PiB1c2VyLAogICAgICAgICAgICBFcnIoQXBwRXJyb3I6OkZpcnN0VXNlckFscmVhZHlFeGlzdHMpID0+IHsKICAgICAgICAgICAgICAgIGFwcC51c2VyX2J5X2F1dGgoVXNlckF1dGg6OlVzZXJQYXNzd29yZCB7CiAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU6IHJlcXVlc3QubmFtZSwKICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogcmVxdWVzdC5wYXNzd29yZCwKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAuYXdhaXQ/CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRXJyKGVycikgPT4gcmV0dXJuIEVycihlcnIuaW50bygpKSwKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGFwcC51c2VyX2J5X2F1dGgoVXNlckF1dGg6OlVzZXJQYXNzd29yZCB7CiAgICAgICAgICAgIHVzZXJuYW1lOiByZXF1ZXN0Lm5hbWUsCiAgICAgICAgICAgIHBhc3N3b3JkOiByZXF1ZXN0LnBhc3N3b3JkLAogICAgICAgIH0pCiAgICAgICAgLmF3YWl0PwogICAgfTsKCiAgICBsZXQgc2Vzc2lvbl9leHBpcmF0aW9uID0gYXBwLmNvbmZpZygpLndlYl9zZXJ2ZXIuc2Vzc2lvbl9jb29raWVfZXhwaXJhdGlvbjsKCiAgICBsZXQgc2Vzc2lvbiA9IHVzZXIubmV3X3Nlc3Npb24oc2Vzc2lvbl9leHBpcmF0aW9uKS5hd2FpdD87CiAgICBsZXQgbXV0IHNlc3Npb25fYnl0ZXMgPSBbMDsgX107CiAgICBsZXQgc2Vzc2lvbl9zdHIgPSBzZXNzaW9uLmVuY29kZSgmbXV0IHNlc3Npb25fYnl0ZXMpOwoKICAgIE9rKEh0dHBSZXNwb25zZTo6T2soKQogICAgICAgIC5jb29raWUoYnVpbGRfY29va2llKCZhcHAsIHNlc3Npb25fZXhwaXJhdGlvbiwgc2Vzc2lvbl9zdHIpKQogICAgICAgIC5maW5pc2goKSkKfQoKI1twb3N0KCIvbG9nb3V0IildCmFzeW5jIGZuIGxvZ291dChhcHA6IERhdGE8QXBwPiwgYXV0aDogVXNlckF1dGgsIHJlcTogSHR0cFJlcXVlc3QpIC0+IFJlc3VsdDxIdHRwUmVzcG9uc2UsIEVycm9yPiB7CiAgICBsZXQgc2Vzc2lvbiA9IG1hdGNoIGF1dGggewogICAgICAgIFVzZXJBdXRoOjpTZXNzaW9uKHNlc3Npb24pID0+IHNlc3Npb24sCiAgICAgICAgXyA9PiByZXR1cm4gT2soSHR0cFJlc3BvbnNlOjpCYWRSZXF1ZXN0KCkuZmluaXNoKCkpLAogICAgfTsKCiAgICBhcHAuZGVsZXRlX3Nlc3Npb24oc2Vzc2lvbikuYXdhaXQ/OwoKICAgIGxldCBtdXQgcmVzcG9uc2UgPSBIdHRwUmVzcG9uc2U6Ok9rKCkuZmluaXNoKCk7CgogICAgaWYgcmVxLmNvb2tpZShDT09LSUVfU0VTU0lPTl9UT0tFTl9OQU1FKS5pc19zb21lKCkgewogICAgICAgIHJlc3BvbnNlLmFkZF9yZW1vdmFsX2Nvb2tpZSgmYnVpbGRfY29va2llKCZhcHAsIER1cmF0aW9uOjpaRVJPLCAiIikpPzsKICAgIH0KCiAgICBPayhyZXNwb25zZSkKfQoKcHViIGFzeW5jIGZuIGF1dGhfbWlkZGxld2FyZSgKICAgIHJlcTogU2VydmljZVJlcXVlc3QsCiAgICBuZXh0OiBOZXh0PGltcGwgTWVzc2FnZUJvZHk+LAopIC0+IFJlc3VsdDxTZXJ2aWNlUmVzcG9uc2U8aW1wbCBNZXNzYWdlQm9keT4sIEVycm9yPiB7CiAgICBsZXQgU29tZShhcHApID0gcmVxLmFwcF9kYXRhOjo8RGF0YTxBcHA+PigpLmNsb25lZCgpIGVsc2UgewogICAgICAgIHJldHVybiBFcnIoQXBwRXJyb3I6OkFwcERlc3Ryb3llZC5pbnRvKCkpOwogICAgfTsKCiAgICBsZXQgbXV0IHJlc3BvbnNlID0gbmV4dC5jYWxsKHJlcSkuYXdhaXQ/OwogICAgaWYgbGV0IFNvbWUoZXJyKSA9IHJlc3BvbnNlLnJlc3BvbnNlKCkuZXJyb3IoKQogICAgICAgICYmIGxldCBTb21lKEFwcEVycm9yOjpTZXNzaW9uVG9rZW5Ob3RGb3VuZCkgPSBlcnIuYXNfZXJyb3I6OjxBcHBFcnJvcj4oKQogICAgewogICAgICAgIHJlc3BvbnNlCiAgICAgICAgICAgIC5yZXNwb25zZV9tdXQoKQogICAgICAgICAgICAuYWRkX3JlbW92YWxfY29va2llKCZidWlsZF9jb29raWUoJmFwcCwgRHVyYXRpb246OlpFUk8sICIiKSk/OwogICAgfQoKICAgIE9rKHJlc3BvbnNlKQp9CgpwdWIgZm4gYnVpbGRfY29va2llPCdhPihhcHA6ICYnYSBBcHAsIGV4cGlyYXRpb246IER1cmF0aW9uLCBzZXNzaW9uX3N0cjogJidhIHN0cikgLT4gQ29va2llPCdhPiB7CiAgICBDb29raWU6OmJ1aWxkKENPT0tJRV9TRVNTSU9OX1RPS0VOX05BTUUsIHNlc3Npb25fc3RyKQogICAgICAgIC5wYXRoKCZhcHAuY29uZmlnKCkud2ViX3NlcnZlci51cmxfcGF0aF9wcmVmaXgpCiAgICAgICAgLnNhbWVfc2l0ZShTYW1lU2l0ZTo6U3RyaWN0KQogICAgICAgIC5odHRwX29ubHkodHJ1ZSkgLy8gbm90IGFjY2Vzc2libGUgdmlhIGpzCiAgICAgICAgLnNlY3VyZShhcHAuY29uZmlnKCkud2ViX3NlcnZlci5zZXNzaW9uX2Nvb2tpZV9zZWN1cmUpCiAgICAgICAgLmV4cGlyZXMoRXhwaXJhdGlvbjo6RGF0ZVRpbWUoT2Zmc2V0RGF0ZVRpbWU6Om5vd191dGMoKSArIGV4cGlyYXRpb24pKQogICAgICAgIC5maW5pc2goKQp9CgojW2dldCgiL2F1dGhlbnRpY2F0ZSIpXQphc3luYyBmbiBhdXRoZW50aWNhdGUoX3VzZXI6IEF1dGhlbnRpY2F0ZWRVc2VyKSAtPiBIdHRwUmVzcG9uc2UgewogICAgSHR0cFJlc3BvbnNlOjpPaygpLmZpbmlzaCgpCn0K"},{"path":"src/api/host.rs","sha256":"aa8b6303d5113dbaa3ba17cec7ea296569fd727ce95e27dc47b26108bec2bb5e","contentBase64":"dXNlIGFjdGl4X3dlYjo6ewogICAgSHR0cFJlc3BvbnNlLCBkZWxldGUsIGdldCwgcGF0Y2gsIHBvc3QsCiAgICBydDo6c3Bhd24sCiAgICB3ZWI6OntEYXRhLCBKc29uLCBRdWVyeX0sCn07CnVzZSBjb21tb246OmFwaV9iaW5kaW5nczo6ewogICAgRGVsZXRlSG9zdFF1ZXJ5LCBHZXRIb3N0UXVlcnksIEdldEhvc3RSZXNwb25zZSwgR2V0SG9zdHNSZXNwb25zZSwgUGF0Y2hIb3N0UmVxdWVzdCwKICAgIFBvc3RIb3N0UmVxdWVzdCwgUG9zdEhvc3RSZXNwb25zZSwgUG9zdFBhaXJSZXF1ZXN0LCBQb3N0UGFpclJlc3BvbnNlMSwgUG9zdFBhaXJSZXNwb25zZTIsCiAgICBQb3N0V2FrZVVwUmVxdWVzdCwgVW5kZXRhaWxlZEhvc3QsCn07CnVzZSBmdXR1cmVzOjpmdXR1cmU6OnRyeV9qb2luX2FsbDsKdXNlIG1vb25saWdodF9jb21tb246OntjcnlwdG86Om9wZW5zc2w6Ok9wZW5TU0xDcnlwdG9CYWNrZW5kLCBodHRwOjpwYWlyOjpQYWlyUGlufTsKdXNlIHRyYWNpbmc6Ondhcm47Cgp1c2UgY3JhdGU6OnsKICAgIGFwaTo6cmVzcG9uc2Vfc3RyZWFtaW5nOjpTdHJlYW1lZFJlc3BvbnNlLAogICAgYXBwOjp7CiAgICAgICAgQXBwLCBBcHBFcnJvciwKICAgICAgICBob3N0OjpIb3N0SWQsCiAgICAgICAgc3RvcmFnZTo6U3RvcmFnZUhvc3RNb2RpZnksCiAgICAgICAgdXNlcjo6e0F1dGhlbnRpY2F0ZWRVc2VyLCBSb2xlVHlwZSwgVXNlcklkfSwKICAgIH0sCn07CgojW2dldCgiL2hvc3RzIildCmFzeW5jIGZuIGxpc3RfaG9zdHMoCiAgICBtdXQgdXNlcjogQXV0aGVudGljYXRlZFVzZXIsCikgLT4gUmVzdWx0PFN0cmVhbWVkUmVzcG9uc2U8R2V0SG9zdHNSZXNwb25zZSwgVW5kZXRhaWxlZEhvc3Q+LCBBcHBFcnJvcj4gewogICAgbGV0IChtdXQgc3RyZWFtX3Jlc3BvbnNlLCBzdHJlYW1fc2VuZGVyKSA9CiAgICAgICAgU3RyZWFtZWRSZXNwb25zZTo6bmV3KEdldEhvc3RzUmVzcG9uc2UgeyBob3N0czogVmVjOjpuZXcoKSB9KTsKCiAgICBsZXQgaG9zdHMgPSB1c2VyLmhvc3RzKCkuYXdhaXQ/OwoKICAgIC8vIFRyeSBqb2luIGFsbCBiZWNhdXNlIHN0b3JhZ2Ugc2hvdWxkIGFsd2F5cyB3b3JrLCB0aGUgYWN0dWFsIGhvc3QgaW5mbyB3aWxsIGJlIHNlbmQgdXNpbmcgcmVzcG9uc2Ugc3RyZWFtaW5nCiAgICBsZXQgdW5kZXRhaWxlZF9ob3N0cyA9IHRyeV9qb2luX2FsbChob3N0cy5pbnRvX2l0ZXIoKS5tYXAobW92ZSB8bXV0IGhvc3R8IHsKICAgICAgICBsZXQgbXV0IHVzZXIgPSB1c2VyLmNsb25lKCk7CiAgICAgICAgbGV0IHN0cmVhbV9zZW5kZXIgPSBzdHJlYW1fc2VuZGVyLmNsb25lKCk7CgogICAgICAgIGFzeW5jIG1vdmUgewogICAgICAgICAgICAvLyBGaXJzdCBxdWVyeSBkYgogICAgICAgICAgICBsZXQgdW5kZXRhaWxlZF9jYWNoZSA9IGhvc3QudW5kZXRhaWxlZF9ob3N0X2NhY2hlZCgmbXV0IHVzZXIpLmF3YWl0OwoKICAgICAgICAgICAgLy8gVGhlbiBzZW5kIGh0dHAgcmVxdWVzdCBub3cKICAgICAgICAgICAgbGV0IG11dCB1c2VyID0gdXNlci5jbG9uZSgpOwoKICAgICAgICAgICAgc3Bhd24oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgICAgICBsZXQgdW5kZXRhaWxlZCA9IG1hdGNoIGhvc3QudW5kZXRhaWxlZF9ob3N0KCZtdXQgdXNlcikuYXdhaXQgewogICAgICAgICAgICAgICAgICAgIE9rKHZhbHVlKSA9PiB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gZ2V0IHVuZGV0YWlsZWQgaG9zdCBvZiB7aG9zdDo/fToge2Vycn0iKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgaWYgbGV0IEVycihlcnIpID0gc3RyZWFtX3NlbmRlci5zZW5kKHVuZGV0YWlsZWQpLmF3YWl0IHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBzZW5kIGJhY2sgdW5kZXRhaWxlZCBob3N0IGRhdGEgdXNpbmcgcmVzcG9uc2Ugc3RyZWFtaW5nOiB7ZXJyfSIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIHVuZGV0YWlsZWRfY2FjaGUKICAgICAgICB9CiAgICB9KSkKICAgIC5hd2FpdD87CgogICAgc3RyZWFtX3Jlc3BvbnNlLnNldF9pbml0aWFsKEdldEhvc3RzUmVzcG9uc2UgewogICAgICAgIGhvc3RzOiB1bmRldGFpbGVkX2hvc3RzLAogICAgfSk7CgogICAgT2soc3RyZWFtX3Jlc3BvbnNlKQp9CgojW2dldCgiL2hvc3QiKV0KYXN5bmMgZm4gZ2V0X2hvc3QoCiAgICBtdXQgdXNlcjogQXV0aGVudGljYXRlZFVzZXIsCiAgICBRdWVyeShxdWVyeSk6IFF1ZXJ5PEdldEhvc3RRdWVyeT4sCikgLT4gUmVzdWx0PEpzb248R2V0SG9zdFJlc3BvbnNlPiwgQXBwRXJyb3I+IHsKICAgIGxldCBob3N0X2lkID0gSG9zdElkKHF1ZXJ5Lmhvc3RfaWQpOwoKICAgIGxldCBtdXQgaG9zdCA9IHVzZXIuaG9zdChob3N0X2lkKS5hd2FpdD87CgogICAgbGV0IGRldGFpbGVkID0gaG9zdC5kZXRhaWxlZF9ob3N0KCZtdXQgdXNlcikuYXdhaXQ/OwoKICAgIE9rKEpzb24oR2V0SG9zdFJlc3BvbnNlIHsgaG9zdDogZGV0YWlsZWQgfSkpCn0KCiNbcG9zdCgiL2hvc3QiKV0KYXN5bmMgZm4gcG9zdF9ob3N0KAogICAgYXBwOiBEYXRhPEFwcD4sCiAgICBtdXQgdXNlcjogQXV0aGVudGljYXRlZFVzZXIsCiAgICBKc29uKHJlcXVlc3QpOiBKc29uPFBvc3RIb3N0UmVxdWVzdD4sCikgLT4gUmVzdWx0PEpzb248UG9zdEhvc3RSZXNwb25zZT4sIEFwcEVycm9yPiB7CiAgICBsZXQgbXV0IGhvc3QgPSB1c2VyCiAgICAgICAgLmhvc3RfYWRkKAogICAgICAgICAgICByZXF1ZXN0LmFkZHJlc3MsCiAgICAgICAgICAgIHJlcXVlc3QKICAgICAgICAgICAgICAgIC5odHRwX3BvcnQKICAgICAgICAgICAgICAgIC51bndyYXBfb3IoYXBwLmNvbmZpZygpLm1vb25saWdodC5kZWZhdWx0X2h0dHBfcG9ydCksCiAgICAgICAgKQogICAgICAgIC5hd2FpdD87CgogICAgT2soSnNvbihQb3N0SG9zdFJlc3BvbnNlIHsKICAgICAgICBob3N0OiBob3N0LmRldGFpbGVkX2hvc3QoJm11dCB1c2VyKS5hd2FpdD8sCiAgICB9KSkKfQoKI1twYXRjaCgiL2hvc3QiKV0KYXN5bmMgZm4gcGF0Y2hfaG9zdCgKICAgIG11dCB1c2VyOiBBdXRoZW50aWNhdGVkVXNlciwKICAgIEpzb24ocmVxdWVzdCk6IEpzb248UGF0Y2hIb3N0UmVxdWVzdD4sCikgLT4gUmVzdWx0PEh0dHBSZXNwb25zZSwgQXBwRXJyb3I+IHsKICAgIGxldCBob3N0X2lkID0gSG9zdElkKHJlcXVlc3QuaG9zdF9pZCk7CgogICAgbGV0IG11dCBob3N0ID0gdXNlci5ob3N0KGhvc3RfaWQpLmF3YWl0PzsKCiAgICBsZXQgbXV0IG1vZGlmeSA9IFN0b3JhZ2VIb3N0TW9kaWZ5OjpkZWZhdWx0KCk7CgogICAgbGV0IG11dCByb2xlID0gdXNlci5yb2xlKCkuYXdhaXQ/OwogICAgaWYgcmVxdWVzdC5jaGFuZ2Vfb3duZXIgewogICAgICAgIG1hdGNoIHJvbGUudHkoKS5hd2FpdD8gewogICAgICAgICAgICBSb2xlVHlwZTo6QWRtaW4gPT4gewogICAgICAgICAgICAgICAgbW9kaWZ5Lm93bmVyID0gU29tZShyZXF1ZXN0Lm93bmVyLm1hcChVc2VySWQpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBSb2xlVHlwZTo6VXNlciA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gRXJyKEFwcEVycm9yOjpGb3JiaWRkZW4pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGhvc3QubW9kaWZ5KCZtdXQgdXNlciwgbW9kaWZ5KS5hd2FpdD87CgogICAgT2soSHR0cFJlc3BvbnNlOjpPaygpLmZpbmlzaCgpKQp9CgojW2RlbGV0ZSgiL2hvc3QiKV0KYXN5bmMgZm4gZGVsZXRlX2hvc3QoCiAgICBtdXQgdXNlcjogQXV0aGVudGljYXRlZFVzZXIsCiAgICBRdWVyeShxdWVyeSk6IFF1ZXJ5PERlbGV0ZUhvc3RRdWVyeT4sCikgLT4gUmVzdWx0PEh0dHBSZXNwb25zZSwgQXBwRXJyb3I+IHsKICAgIGxldCBob3N0X2lkID0gSG9zdElkKHF1ZXJ5Lmhvc3RfaWQpOwoKICAgIHVzZXIuaG9zdF9kZWxldGUoaG9zdF9pZCkuYXdhaXQ/OwoKICAgIE9rKEh0dHBSZXNwb25zZTo6T2soKS5maW5pc2goKSkKfQoKI1twb3N0KCIvcGFpciIpXQphc3luYyBmbiBwYWlyX2hvc3QoCiAgICBtdXQgdXNlcjogQXV0aGVudGljYXRlZFVzZXIsCiAgICBKc29uKHJlcXVlc3QpOiBKc29uPFBvc3RQYWlyUmVxdWVzdD4sCikgLT4gUmVzdWx0PFN0cmVhbWVkUmVzcG9uc2U8UG9zdFBhaXJSZXNwb25zZTEsIFBvc3RQYWlyUmVzcG9uc2UyPiwgQXBwRXJyb3I+IHsKICAgIGxldCBob3N0X2lkID0gSG9zdElkKHJlcXVlc3QuaG9zdF9pZCk7CgogICAgbGV0IG11dCBob3N0ID0gdXNlci5ob3N0KGhvc3RfaWQpLmF3YWl0PzsKCiAgICBsZXQgcGluID0gUGFpclBpbjo6bmV3X3JhbmRvbSgmT3BlblNTTENyeXB0b0JhY2tlbmQpPzsKCiAgICBsZXQgKHN0cmVhbV9yZXNwb25zZSwgc3RyZWFtX3NlbmRlcikgPQogICAgICAgIFN0cmVhbWVkUmVzcG9uc2U6Om5ldyhQb3N0UGFpclJlc3BvbnNlMTo6UGluKHBpbi50b19zdHJpbmcoKSkpOwoKICAgIHNwYXduKGFzeW5jIG1vdmUgewogICAgICAgIGxldCByZXN1bHQgPSBob3N0LnBhaXIoJm11dCB1c2VyLCBwaW4pLmF3YWl0OwoKICAgICAgICBsZXQgcmVzdWx0ID0gbWF0Y2ggcmVzdWx0IHsKICAgICAgICAgICAgT2soKCkpID0+IGhvc3QuZGV0YWlsZWRfaG9zdCgmbXV0IHVzZXIpLmF3YWl0LAogICAgICAgICAgICBFcnIoZXJyKSA9PiBFcnIoZXJyKSwKICAgICAgICB9OwoKICAgICAgICBtYXRjaCByZXN1bHQgewogICAgICAgICAgICBPayhkZXRhaWxlZF9ob3N0KSA9PiB7CiAgICAgICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBzdHJlYW1fc2VuZGVyCiAgICAgICAgICAgICAgICAgICAgLnNlbmQoUG9zdFBhaXJSZXNwb25zZTI6OlBhaXJlZChkZXRhaWxlZF9ob3N0KSkKICAgICAgICAgICAgICAgICAgICAuYXdhaXQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgcGFpciBzdWNjZXNzOiB7ZXJyfSIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVycihlcnIpID0+IHsKICAgICAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gcGFpciBob3N0OiB7ZXJyfSIpOwogICAgICAgICAgICAgICAgaWYgbGV0IEVycihlcnIpID0gc3RyZWFtX3NlbmRlci5zZW5kKFBvc3RQYWlyUmVzcG9uc2UyOjpQYWlyRXJyb3IpLmF3YWl0IHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgcGFpciBmYWlsdXJlOiB7ZXJyfSIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSk7CgogICAgT2soc3RyZWFtX3Jlc3BvbnNlKQp9CgojW3Bvc3QoIi9ob3N0L3dha2UiKV0KYXN5bmMgZm4gd2FrZV9ob3N0KAogICAgbXV0IHVzZXI6IEF1dGhlbnRpY2F0ZWRVc2VyLAogICAgSnNvbihyZXF1ZXN0KTogSnNvbjxQb3N0V2FrZVVwUmVxdWVzdD4sCikgLT4gUmVzdWx0PEh0dHBSZXNwb25zZSwgQXBwRXJyb3I+IHsKICAgIGxldCBob3N0X2lkID0gSG9zdElkKHJlcXVlc3QuaG9zdF9pZCk7CgogICAgbGV0IGhvc3QgPSB1c2VyLmhvc3QoaG9zdF9pZCkuYXdhaXQ/OwoKICAgIGhvc3Qud2FrZSgmbXV0IHVzZXIpLmF3YWl0PzsKCiAgICBPayhIdHRwUmVzcG9uc2U6Ok9rKCkuZmluaXNoKCkpCn0K"},{"path":"src/api/mod.rs","sha256":"109e6a2a0d53651e15424226d28dded2f87341ebf8f5305ae2d53feb95707ab7","contentBase64":"dXNlIGFjdGl4X3dlYjo6ewogICAgZGV2OjpIdHRwU2VydmljZUZhY3RvcnksCiAgICBtaWRkbGV3YXJlOjpmcm9tX2ZuLAogICAgc2VydmljZXMsCiAgICB3ZWI6OntzZWxmfSwKfTsKCnVzZSBjcmF0ZTo6YXBpOjp7CiAgICBhcHA6OntnZXRfYXBwX2ltYWdlLCBnZXRfYXBwc30sCiAgICBhdXRoOjphdXRoX21pZGRsZXdhcmUsCiAgICBob3N0Ojp7ZGVsZXRlX2hvc3QsIGdldF9ob3N0LCBsaXN0X2hvc3RzLCBwYWlyX2hvc3QsIHBhdGNoX2hvc3QsIHBvc3RfaG9zdCwgd2FrZV9ob3N0fSwKICAgIHJvbGU6OnthZGRfcm9sZSwgZGVsZXRlX3JvbGUsIGdldF9yb2xlLCBsaXN0X3JvbGVzLCBwYXRjaF9yb2xlfSwKICAgIHNldHRpbmdzOjp7Z2V0X2RlZmF1bHRfc2V0dGluZ3MsIGdldF9wZXJtaXNzaW9uc30sCiAgICB1c2VyOjp7YWRkX3VzZXIsIGRlbGV0ZV91c2VyLCBnZXRfdXNlciwgbGlzdF91c2VycywgcGF0Y2hfdXNlcn0sCn07CgpwdWIgbW9kIGFwcDsKcHViIG1vZCBhdXRoOwpwdWIgbW9kIGhvc3Q7CnB1YiBtb2Qgcm9sZTsKcHViIG1vZCBzZXR0aW5nczsKcHViIG1vZCBzdHJlYW07CnB1YiBtb2QgdXNlcjsKCnB1YiBtb2QgcmVzcG9uc2Vfc3RyZWFtaW5nOwoKcHViIGZuIGFwaV9zZXJ2aWNlKCkgLT4gaW1wbCBIdHRwU2VydmljZUZhY3RvcnkgewogICAgd2ViOjpzY29wZSgiL2FwaSIpCiAgICAgICAgLndyYXAoZnJvbV9mbihhdXRoX21pZGRsZXdhcmUpKQogICAgICAgIC5zZXJ2aWNlKHNlcnZpY2VzIVsKICAgICAgICAgICAgLy8gLS0gQXV0aAogICAgICAgICAgICBhdXRoOjpsb2dpbiwKICAgICAgICAgICAgYXV0aDo6bG9nb3V0LAogICAgICAgICAgICBhdXRoOjphdXRoZW50aWNhdGUKICAgICAgICBdKQogICAgICAgIC5zZXJ2aWNlKHNlcnZpY2VzIVsKICAgICAgICAgICAgLy8gLS0gSG9zdAogICAgICAgICAgICBsaXN0X2hvc3RzLAogICAgICAgICAgICBnZXRfaG9zdCwKICAgICAgICAgICAgcG9zdF9ob3N0LAogICAgICAgICAgICBwYXRjaF9ob3N0LAogICAgICAgICAgICB3YWtlX2hvc3QsCiAgICAgICAgICAgIGRlbGV0ZV9ob3N0LAogICAgICAgICAgICBwYWlyX2hvc3QsCiAgICAgICAgXSkKICAgICAgICAuc2VydmljZShzZXJ2aWNlcyFbCiAgICAgICAgICAgIC8vIC0tIEFwcHMKICAgICAgICAgICAgZ2V0X2FwcHMsCiAgICAgICAgICAgIGdldF9hcHBfaW1hZ2UsCiAgICAgICAgXSkKICAgICAgICAuc2VydmljZShzZXJ2aWNlcyFbCiAgICAgICAgICAgIC8vIC0tIFVzZXJzCiAgICAgICAgICAgIGdldF91c2VyLAogICAgICAgICAgICBhZGRfdXNlciwKICAgICAgICAgICAgcGF0Y2hfdXNlciwKICAgICAgICAgICAgZGVsZXRlX3VzZXIsCiAgICAgICAgICAgIGxpc3RfdXNlcnMsCiAgICAgICAgXSkKICAgICAgICAuc2VydmljZShzZXJ2aWNlcyFbCiAgICAgICAgICAgIC8vIC0tIFJvbGVzCiAgICAgICAgICAgIGdldF9yb2xlLAogICAgICAgICAgICBhZGRfcm9sZSwKICAgICAgICAgICAgcGF0Y2hfcm9sZSwKICAgICAgICAgICAgZGVsZXRlX3JvbGUsCiAgICAgICAgICAgIGxpc3Rfcm9sZXMsCiAgICAgICAgXSkKICAgICAgICAuc2VydmljZShzZXJ2aWNlcyFbCiAgICAgICAgICAgIC8vIC0tIFNldHRpbmdzCiAgICAgICAgICAgIGdldF9kZWZhdWx0X3NldHRpbmdzLAogICAgICAgICAgICBnZXRfcGVybWlzc2lvbnMKICAgICAgICBdKQogICAgICAgIC5zZXJ2aWNlKHNlcnZpY2VzIVsKICAgICAgICAgICAgLy8gLS0gU3RyZWFtCiAgICAgICAgICAgIHN0cmVhbTo6c3RhcnRfaG9zdCwKICAgICAgICAgICAgc3RyZWFtOjpjYW5jZWxfaG9zdCwKICAgICAgICBdKQp9Cg=="},{"path":"src/api/response_streaming.rs","sha256":"a13b20225daead274a632a4a9175d6a99092eff15b0a70edf77f6c3ec2fe738c","contentBase64":"dXNlIHN0ZDo6ewogICAgZm10OjpEZWJ1ZywKICAgIHBpbjo6UGluLAogICAgdGFzazo6e0NvbnRleHQsIFBvbGx9LAp9OwoKdXNlIGFjdGl4X3dlYjo6e0h0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UsIFJlc3BvbmRlciwgYm9keTo6Qm94Qm9keSwgd2ViOjpCeXRlc307CnVzZSBmdXR1cmVzOjpTdHJlYW07CnVzZSBzZXJkZTo6U2VyaWFsaXplOwp1c2UgdGhpc2Vycm9yOjpFcnJvcjsKdXNlIHRva2lvOjpzeW5jOjptcHNjOjp7UmVjZWl2ZXIsIFNlbmRlciwgY2hhbm5lbH07CgpwdWIgc3RydWN0IFN0cmVhbWVkUmVzcG9uc2U8SW5pdGlhbCwgT3RoZXI+IHsKICAgIHJlY2VpdmVyOiBSZWNlaXZlcjxPdGhlcj4sCiAgICBpbml0aWFsOiBJbml0aWFsLAp9CgppbXBsPEluaXRpYWwsIE90aGVyPiBTdHJlYW1lZFJlc3BvbnNlPEluaXRpYWwsIE90aGVyPiB7CiAgICBwdWIgZm4gbmV3KGluaXRpYWw6IEluaXRpYWwpIC0+IChTZWxmLCBTdHJlYW1lZFJlc3BvbnNlU2VuZGVyPE90aGVyPikgewogICAgICAgIGxldCAoc2VuZGVyLCByZWNlaXZlcikgPSBjaGFubmVsKDEpOwoKICAgICAgICBsZXQgc3RyZWFtX3NlbmRlciA9IFN0cmVhbWVkUmVzcG9uc2VTZW5kZXIgeyBzZW5kZXIgfTsKCiAgICAgICAgKFNlbGYgeyBpbml0aWFsLCByZWNlaXZlciB9LCBzdHJlYW1fc2VuZGVyKQogICAgfQoKICAgIHB1YiBmbiBzZXRfaW5pdGlhbCgmbXV0IHNlbGYsIGluaXRpYWw6IEluaXRpYWwpIHsKICAgICAgICBzZWxmLmluaXRpYWwgPSBpbml0aWFsOwogICAgfQp9CgppbXBsPEluaXRpYWwsIE90aGVyPiBSZXNwb25kZXIgZm9yIFN0cmVhbWVkUmVzcG9uc2U8SW5pdGlhbCwgT3RoZXI+CndoZXJlCiAgICBJbml0aWFsOiBTZXJpYWxpemUgKyBVbnBpbiArICdzdGF0aWMsCiAgICBPdGhlcjogU2VyaWFsaXplICsgVW5waW4gKyAnc3RhdGljLAp7CiAgICB0eXBlIEJvZHkgPSBCb3hCb2R5OwoKICAgIGZuIHJlc3BvbmRfdG8oc2VsZiwgX3JlcTogJkh0dHBSZXF1ZXN0KSAtPiBIdHRwUmVzcG9uc2U8U2VsZjo6Qm9keT4gewogICAgICAgIGxldCBzdHJlYW0gPSBTdHJlYW1lZFJlc3BvbnNlUmVjZWl2ZXIgewogICAgICAgICAgICBpbml0aWFsOiBTb21lKHNlbGYuaW5pdGlhbCksCiAgICAgICAgICAgIHJlY2VpdmVyOiBzZWxmLnJlY2VpdmVyLAogICAgICAgIH07CgogICAgICAgIEh0dHBSZXNwb25zZTo6T2soKQogICAgICAgICAgICAuaW5zZXJ0X2hlYWRlcigoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi94LW5kanNvbiIpKQogICAgICAgICAgICAuc3RyZWFtaW5nKHN0cmVhbSkKICAgIH0KfQoKc3RydWN0IFN0cmVhbWVkUmVzcG9uc2VSZWNlaXZlcjxJbml0aWFsLCBPdGhlcj4gewogICAgaW5pdGlhbDogT3B0aW9uPEluaXRpYWw+LAogICAgcmVjZWl2ZXI6IFJlY2VpdmVyPE90aGVyPiwKfQoKaW1wbDxJbml0aWFsLCBPdGhlcj4gU3RyZWFtIGZvciBTdHJlYW1lZFJlc3BvbnNlUmVjZWl2ZXI8SW5pdGlhbCwgT3RoZXI+CndoZXJlCiAgICBJbml0aWFsOiBTZXJpYWxpemUgKyBVbnBpbiwKICAgIE90aGVyOiBTZXJpYWxpemUsCnsKICAgIHR5cGUgSXRlbSA9IFJlc3VsdDxCeXRlcywgc2VyZGVfanNvbjo6RXJyb3I+OwoKICAgIGZuIHBvbGxfbmV4dChzZWxmOiBQaW48Jm11dCBTZWxmPiwgY3g6ICZtdXQgQ29udGV4dDwnXz4pIC0+IFBvbGw8T3B0aW9uPFNlbGY6Okl0ZW0+PiB7CiAgICAgICAgbGV0IHRoaXMgPSBzZWxmLmdldF9tdXQoKTsKCiAgICAgICAgbGV0IGluaXRpYWwgPSAmbXV0IHRoaXMuaW5pdGlhbDsKCiAgICAgICAgaWYgbGV0IFNvbWUoaW5pdGlhbCkgPSBpbml0aWFsLnRha2UoKSB7CiAgICAgICAgICAgIGxldCBtdXQgcmVzdWx0ID0gc2VyZGVfanNvbjo6dG9fc3RyaW5nKCZpbml0aWFsKTsKICAgICAgICAgICAgaWYgbGV0IE9rKHRleHQpID0gcmVzdWx0LmFzX211dCgpIHsKICAgICAgICAgICAgICAgIHRleHQucHVzaCgnXG4nKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIFBvbGw6OlJlYWR5KFNvbWUocmVzdWx0Lm1hcChCeXRlczo6ZnJvbSkpKTsKICAgICAgICB9CgogICAgICAgIHRoaXMucmVjZWl2ZXIucG9sbF9yZWN2KGN4KS5tYXAofG9wdGlvbnwgewogICAgICAgICAgICBvcHRpb24ubWFwKHx2YWx1ZXwgewogICAgICAgICAgICAgICAgbGV0IG11dCByZXN1bHQgPSBzZXJkZV9qc29uOjp0b19zdHJpbmcoJnZhbHVlKTsKICAgICAgICAgICAgICAgIGlmIGxldCBPayh0ZXh0KSA9IHJlc3VsdC5hc19tdXQoKSB7CiAgICAgICAgICAgICAgICAgICAgdGV4dC5wdXNoKCdcbicpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHJlc3VsdC5tYXAoQnl0ZXM6OmZyb20pCiAgICAgICAgICAgIH0pCiAgICAgICAgfSkKICAgIH0KfQoKcHViIHN0cnVjdCBTdHJlYW1lZFJlc3BvbnNlU2VuZGVyPFQ+IHsKICAgIHNlbmRlcjogU2VuZGVyPFQ+LAp9CgppbXBsPFQ+IENsb25lIGZvciBTdHJlYW1lZFJlc3BvbnNlU2VuZGVyPFQ+IHsKICAgIGZuIGNsb25lKCZzZWxmKSAtPiBTZWxmIHsKICAgICAgICBTZWxmIHsKICAgICAgICAgICAgc2VuZGVyOiBzZWxmLnNlbmRlci5jbG9uZSgpLAogICAgICAgIH0KICAgIH0KfQoKI1tkZXJpdmUoRGVidWcsIEVycm9yKV0KcHViIGVudW0gU3RyZWFtZWRSZXNwb25zZUVycm9yIHsKICAgICNbZXJyb3IoImZhaWxlZCB0byBzZW5kIHZhbHVlIHdoaWxzdCByZXNwb25zZSBzdHJlYW1pbmc6IHswfSIpXQogICAgU2VuZChhbnlob3c6OkVycm9yKSwKfQoKaW1wbDxUPiBTdHJlYW1lZFJlc3BvbnNlU2VuZGVyPFQ+CndoZXJlCiAgICBUOiBEZWJ1ZyArIFNlbmQgKyBTeW5jICsgJ3N0YXRpYywKewogICAgcHViIGFzeW5jIGZuIHNlbmQoJnNlbGYsIHZhbHVlOiBUKSAtPiBSZXN1bHQ8KCksIFN0cmVhbWVkUmVzcG9uc2VFcnJvcj4gewogICAgICAgIHNlbGYuc2VuZGVyCiAgICAgICAgICAgIC5zZW5kKHZhbHVlKQogICAgICAgICAgICAuYXdhaXQKICAgICAgICAgICAgLm1hcF9lcnIofGVycnwgU3RyZWFtZWRSZXNwb25zZUVycm9yOjpTZW5kKGVyci5pbnRvKCkpKT87CgogICAgICAgIE9rKCgpKQogICAgfQp9Cg=="},{"path":"src/api/role.rs","sha256":"f02c47b4295a2c2d9e23a405ae12c18f151ee019cf8a1b5ecd388798336866e4","contentBase64":"dXNlIGFjdGl4X3dlYjo6ewogICAgSHR0cFJlc3BvbnNlLCBkZWxldGUsIGdldCwgcGF0Y2gsIHBvc3QsCiAgICB3ZWI6OntEYXRhLCBKc29uLCBRdWVyeX0sCn07CnVzZSBjb21tb246OnsKICAgIGFwaV9iaW5kaW5nczo6ewogICAgICAgIERlbGV0ZVJvbGVRdWVyeSwgR2V0Um9sZVF1ZXJ5LCBHZXRSb2xlUmVzcG9uc2UsIEdldFJvbGVzUmVzcG9uc2UsIFBhdGNoUm9sZVJlcXVlc3QsCiAgICAgICAgUG9zdFJvbGVSZXF1ZXN0LCBQb3N0Um9sZVJlc3BvbnNlLCBTdHJlYW1QZXJtaXNzaW9ucywKICAgIH0sCiAgICBhcGlfYmluZGluZ3NfZXh0OjpUc0FueSwKfTsKCnVzZSBmdXR1cmVzOjpmdXR1cmU6OmpvaW5fYWxsOwp1c2UgdHJhY2luZzo6d2FybjsKCnVzZSBjcmF0ZTo6YXBwOjp7CiAgICBBcHAsIEFwcEVycm9yLAogICAgcm9sZTo6Um9sZUlkLAogICAgc3RvcmFnZTo6ewogICAgICAgIFN0b3JhZ2VSb2xlQWRkLCBTdG9yYWdlUm9sZURlZmF1bHRTZXR0aW5ncywgU3RvcmFnZVJvbGVNb2RpZnksIFN0b3JhZ2VSb2xlUGVybWlzc2lvbnMsCiAgICB9LAogICAgdXNlcjo6e0FkbWluLCBBdXRoZW50aWNhdGVkVXNlcn0sCn07CgpmbiBjb252ZXJ0X3NldHRpbmdzKHNldHRpbmdzOiBUc0FueSkgLT4gU3RvcmFnZVJvbGVEZWZhdWx0U2V0dGluZ3MgewogICAgU3RvcmFnZVJvbGVEZWZhdWx0U2V0dGluZ3MgewogICAgICAgIHZhbHVlOiBzZXR0aW5ncy5pbnRvKCksCiAgICB9Cn0KZm4gY29udmVydF9wZXJtaXNzaW9ucyhwZXJtaXNzaW9uczogU3RyZWFtUGVybWlzc2lvbnMpIC0+IFN0b3JhZ2VSb2xlUGVybWlzc2lvbnMgewogICAgU3RvcmFnZVJvbGVQZXJtaXNzaW9ucyB7CiAgICAgICAgYWxsb3dfYWRkX2hvc3RzOiBwZXJtaXNzaW9ucy5hbGxvd19hZGRfaG9zdHMsCiAgICAgICAgbWF4aW11bV9iaXRyYXRlX2ticHM6IHBlcm1pc3Npb25zLm1heGltdW1fYml0cmF0ZV9rYnBzLAogICAgICAgIGFsbG93X2NvZGVjX2gyNjQ6IHBlcm1pc3Npb25zLmFsbG93X2NvZGVjX2gyNjQsCiAgICAgICAgYWxsb3dfY29kZWNfaDI2NTogcGVybWlzc2lvbnMuYWxsb3dfY29kZWNfaDI2NSwKICAgICAgICBhbGxvd19jb2RlY19hdjE6IHBlcm1pc3Npb25zLmFsbG93X2NvZGVjX2F2MSwKICAgICAgICBhbGxvd19oZHI6IHBlcm1pc3Npb25zLmFsbG93X2hkciwKICAgICAgICBhbGxvd190cmFuc3BvcnRfd2VicnRjOiBwZXJtaXNzaW9ucy5hbGxvd190cmFuc3BvcnRfd2VicnRjLAogICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJzb2NrZXRzOiBwZXJtaXNzaW9ucy5hbGxvd190cmFuc3BvcnRfd2Vic29ja2V0cywKICAgIH0KfQoKI1twb3N0KCIvcm9sZSIpXQpwdWIgYXN5bmMgZm4gYWRkX3JvbGUoCiAgICBhcHA6IERhdGE8QXBwPiwKICAgIGFkbWluOiBBZG1pbiwKICAgIEpzb24ocmVxdWVzdCk6IEpzb248UG9zdFJvbGVSZXF1ZXN0PiwKKSAtPiBSZXN1bHQ8SnNvbjxQb3N0Um9sZVJlc3BvbnNlPiwgQXBwRXJyb3I+IHsKICAgIGxldCBQb3N0Um9sZVJlcXVlc3QgewogICAgICAgIG5hbWUsCiAgICAgICAgdHksCiAgICAgICAgZGVmYXVsdF9zZXR0aW5ncywKICAgICAgICBwZXJtaXNzaW9ucywKICAgIH0gPSByZXF1ZXN0OwoKICAgIGxldCBtdXQgcm9sZSA9IGFwcAogICAgICAgIC5hZGRfcm9sZSgKICAgICAgICAgICAgJmFkbWluLAogICAgICAgICAgICBTdG9yYWdlUm9sZUFkZCB7CiAgICAgICAgICAgICAgICBuYW1lLAogICAgICAgICAgICAgICAgdHk6IHR5LmludG8oKSwKICAgICAgICAgICAgICAgIGRlZmF1bHRfc2V0dGluZ3M6IGNvbnZlcnRfc2V0dGluZ3MoZGVmYXVsdF9zZXR0aW5ncyksCiAgICAgICAgICAgICAgICBwZXJtaXNzaW9uczogY29udmVydF9wZXJtaXNzaW9ucyhwZXJtaXNzaW9ucyksCiAgICAgICAgICAgIH0sCiAgICAgICAgKQogICAgICAgIC5hd2FpdD87CgogICAgT2soSnNvbihQb3N0Um9sZVJlc3BvbnNlIHsKICAgICAgICByb2xlOiByb2xlLmRldGFpbGVkX3JvbGUoKS5hd2FpdD8sCiAgICB9KSkKfQoKI1tnZXQoIi9yb2xlIildCnB1YiBhc3luYyBmbiBnZXRfcm9sZSgKICAgIGFwcDogRGF0YTxBcHA+LAogICAgbXV0IHVzZXI6IEF1dGhlbnRpY2F0ZWRVc2VyLAogICAgUXVlcnkocXVlcnkpOiBRdWVyeTxHZXRSb2xlUXVlcnk+LAopIC0+IFJlc3VsdDxKc29uPEdldFJvbGVSZXNwb25zZT4sIEFwcEVycm9yPiB7CiAgICBsZXQgcm9sZV9pZCA9IG1hdGNoIHF1ZXJ5LmlkIHsKICAgICAgICBTb21lKGlkKSA9PiBSb2xlSWQoaWQpLAogICAgICAgIE5vbmUgPT4gdXNlci5yb2xlX2lkKCkuYXdhaXQ/LAogICAgfTsKCiAgICBsZXQgbXV0IHJvbGUgPSBhcHAucm9sZV9ieV9pZChyb2xlX2lkKS5hd2FpdD87CgogICAgT2soSnNvbihHZXRSb2xlUmVzcG9uc2UgewogICAgICAgIHJvbGU6IHJvbGUuZGV0YWlsZWRfcm9sZSgpLmF3YWl0PywKICAgIH0pKQp9CgojW3BhdGNoKCIvcm9sZSIpXQpwdWIgYXN5bmMgZm4gcGF0Y2hfcm9sZSgKICAgIGFwcDogRGF0YTxBcHA+LAogICAgYWRtaW46IEFkbWluLAogICAgSnNvbihyZXF1ZXN0KTogSnNvbjxQYXRjaFJvbGVSZXF1ZXN0PiwKKSAtPiBSZXN1bHQ8SHR0cFJlc3BvbnNlLCBBcHBFcnJvcj4gewogICAgbGV0IHJvbGVfaWQgPSBSb2xlSWQocmVxdWVzdC5pZCk7CgogICAgbGV0IHJvbGUgPSBhcHAucm9sZV9ieV9pZChyb2xlX2lkKS5hd2FpdD87CgogICAgcm9sZS5tb2RpZnkoCiAgICAgICAgJmFkbWluLAogICAgICAgIFN0b3JhZ2VSb2xlTW9kaWZ5IHsKICAgICAgICAgICAgbmFtZTogcmVxdWVzdC5uYW1lLAogICAgICAgICAgICB0eTogTm9uZSwKICAgICAgICAgICAgcGVybWlzc2lvbnM6IHJlcXVlc3QKICAgICAgICAgICAgICAgIC5wZXJtaXNzaW9ucwogICAgICAgICAgICAgICAgLm1hcCh8cGVybWlzc2lvbnN8IFN0b3JhZ2VSb2xlUGVybWlzc2lvbnMgewogICAgICAgICAgICAgICAgICAgIGFsbG93X2FkZF9ob3N0czogcGVybWlzc2lvbnMuYWxsb3dfYWRkX2hvc3RzLAogICAgICAgICAgICAgICAgICAgIG1heGltdW1fYml0cmF0ZV9rYnBzOiBwZXJtaXNzaW9ucy5tYXhpbXVtX2JpdHJhdGVfa2JwcywKICAgICAgICAgICAgICAgICAgICBhbGxvd19jb2RlY19oMjY0OiBwZXJtaXNzaW9ucy5hbGxvd19jb2RlY19oMjY0LAogICAgICAgICAgICAgICAgICAgIGFsbG93X2NvZGVjX2gyNjU6IHBlcm1pc3Npb25zLmFsbG93X2NvZGVjX2gyNjUsCiAgICAgICAgICAgICAgICAgICAgYWxsb3dfY29kZWNfYXYxOiBwZXJtaXNzaW9ucy5hbGxvd19jb2RlY19hdjEsCiAgICAgICAgICAgICAgICAgICAgYWxsb3dfaGRyOiBwZXJtaXNzaW9ucy5hbGxvd19oZHIsCiAgICAgICAgICAgICAgICAgICAgYWxsb3dfdHJhbnNwb3J0X3dlYnJ0YzogcGVybWlzc2lvbnMuYWxsb3dfdHJhbnNwb3J0X3dlYnJ0YywKICAgICAgICAgICAgICAgICAgICBhbGxvd190cmFuc3BvcnRfd2Vic29ja2V0czogcGVybWlzc2lvbnMuYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHMsCiAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgZGVmYXVsdF9zZXR0aW5nczogcmVxdWVzdAogICAgICAgICAgICAgICAgLmRlZmF1bHRfc2V0dGluZ3MKICAgICAgICAgICAgICAgIC5tYXAofHNldHRpbmdzfCBTdG9yYWdlUm9sZURlZmF1bHRTZXR0aW5ncyB7CiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNldHRpbmdzLmludG8oKSwKICAgICAgICAgICAgICAgIH0pLAogICAgICAgIH0sCiAgICApCiAgICAuYXdhaXQ/OwoKICAgIE9rKEh0dHBSZXNwb25zZTo6T2soKS5maW5pc2goKSkKfQoKI1tkZWxldGUoIi9yb2xlIildCnB1YiBhc3luYyBmbiBkZWxldGVfcm9sZSgKICAgIGFwcDogRGF0YTxBcHA+LAogICAgYWRtaW46IEFkbWluLAogICAgUXVlcnkocXVlcnkpOiBRdWVyeTxEZWxldGVSb2xlUXVlcnk+LAopIC0+IFJlc3VsdDxIdHRwUmVzcG9uc2UsIEFwcEVycm9yPiB7CiAgICBsZXQgcm9sZV9pZCA9IFJvbGVJZChxdWVyeS5pZCk7CgogICAgbGV0IHJvbGUgPSBhcHAucm9sZV9ieV9pZChyb2xlX2lkKS5hd2FpdD87CgogICAgcm9sZS5kZWxldGUoJmFkbWluKS5hd2FpdD87CgogICAgT2soSHR0cFJlc3BvbnNlOjpPaygpLmZpbmlzaCgpKQp9CgojW2dldCgiL3JvbGVzIildCnB1YiBhc3luYyBmbiBsaXN0X3JvbGVzKGFwcDogRGF0YTxBcHA+LCBhZG1pbjogQWRtaW4pIC0+IFJlc3VsdDxKc29uPEdldFJvbGVzUmVzcG9uc2U+LCBBcHBFcnJvcj4gewogICAgbGV0IG11dCByb2xlcyA9IGFwcC5hbGxfcm9sZXMoJmFkbWluKS5hd2FpdD87CgogICAgbGV0IHJvbGVfcmVzdWx0cyA9IGpvaW5fYWxsKHJvbGVzLml0ZXJfbXV0KCkubWFwKHxyb2xlfCByb2xlLnVuZGV0YWlsZWRfcm9sZSgpKSkuYXdhaXQ7CgogICAgbGV0IG11dCBvdXRfcm9sZXMgPSBWZWM6OndpdGhfY2FwYWNpdHkocm9sZV9yZXN1bHRzLmxlbigpKTsKICAgIGZvciAocmVzdWx0LCByb2xlKSBpbiByb2xlX3Jlc3VsdHMuaW50b19pdGVyKCkuemlwKHJvbGVzKSB7CiAgICAgICAgbWF0Y2ggcmVzdWx0IHsKICAgICAgICAgICAgT2socm9sZSkgPT4gewogICAgICAgICAgICAgICAgb3V0X3JvbGVzLnB1c2gocm9sZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBxdWVyeSBkZXRhaWxlZCByb2xlIG9mIHtyb2xlOj99OiB7ZXJyfSIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIE9rKEpzb24oR2V0Um9sZXNSZXNwb25zZSB7IHJvbGVzOiBvdXRfcm9sZXMgfSkpCn0K"},{"path":"src/api/settings.rs","sha256":"846160c0d53c73e3b5008c723b48168ceb7da82f06ee711b683bb25cd59f8b76","contentBase64":"dXNlIGFjdGl4X3dlYjo6e2dldCwgd2ViOjpKc29ufTsKdXNlIGNvbW1vbjo6e2FwaV9iaW5kaW5nczo6U3RyZWFtUGVybWlzc2lvbnMsIGFwaV9iaW5kaW5nc19leHQ6OlRzQW55fTsKCnVzZSBjcmF0ZTo6YXBwOjp7QXBwRXJyb3IsIHVzZXI6OkF1dGhlbnRpY2F0ZWRVc2VyfTsKCiNbZ2V0KCIvc2V0dGluZ3MvZGVmYXVsdCIpXQpwdWIgYXN5bmMgZm4gZ2V0X2RlZmF1bHRfc2V0dGluZ3MobXV0IHVzZXI6IEF1dGhlbnRpY2F0ZWRVc2VyKSAtPiBSZXN1bHQ8SnNvbjxUc0FueT4sIEFwcEVycm9yPiB7CiAgICBsZXQgbXV0IHJvbGUgPSB1c2VyLnJvbGUoKS5hd2FpdD87CgogICAgbGV0IGRlZmF1bHRfc2V0dGluZ3MgPSByb2xlLmRlZmF1bHRfc2V0dGluZ3MoKS5hd2FpdD87CgogICAgT2soSnNvbihkZWZhdWx0X3NldHRpbmdzKSkKfQoKI1tnZXQoIi9zZXR0aW5ncy9wZXJtaXNzaW9ucyIpXQpwdWIgYXN5bmMgZm4gZ2V0X3Blcm1pc3Npb25zKAogICAgbXV0IHVzZXI6IEF1dGhlbnRpY2F0ZWRVc2VyLAopIC0+IFJlc3VsdDxKc29uPFN0cmVhbVBlcm1pc3Npb25zPiwgQXBwRXJyb3I+IHsKICAgIGxldCBtdXQgcm9sZSA9IHVzZXIucm9sZSgpLmF3YWl0PzsKCiAgICBsZXQgcGVybWlzc2lvbnMgPSByb2xlLnBlcm1pc3Npb25zKCkuYXdhaXQ/OwoKICAgIE9rKEpzb24ocGVybWlzc2lvbnMpKQp9Cg=="},{"path":"src/api/stream.rs","sha256":"82e2db0e85401c84272685afff0155e7df72d89d27960ce751cafe397168fe1b","contentBase64":"dXNlIHN0ZDo6ewogICAgcHJvY2Vzczo6U3RkaW8sCiAgICBzeW5jOjphdG9taWM6OntBdG9taWNVc2l6ZSwgT3JkZXJpbmd9LAogICAgdGltZTo6RHVyYXRpb24sCn07Cgp1c2UgYWN0aXhfd2ViOjp7CiAgICBFcnJvciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSwgZ2V0LCBwb3N0LCBydCBhcyBhY3RpeF9ydCwKICAgIHdlYjo6e0RhdGEsIEpzb24sIFBheWxvYWR9LAp9Owp1c2UgYWN0aXhfd3M6OntDbG9zZWQsIE1lc3NhZ2UsIFNlc3Npb259Owp1c2UgY29tbW9uOjp7CiAgICBhcGlfYmluZGluZ3M6OnsKICAgICAgICBMb2dNZXNzYWdlVHlwZSwgUG9zdENhbmNlbFJlcXVlc3QsIFBvc3RDYW5jZWxSZXNwb25zZSwgU3RyZWFtQ2xpZW50TWVzc2FnZSwKICAgICAgICBTdHJlYW1TZXJ2ZXJNZXNzYWdlLAogICAgfSwKICAgIGlwYzo6e1NlcnZlcklwY01lc3NhZ2UsIFN0cmVhbWVyQ29uZmlnLCBTdHJlYW1lcklwY01lc3NhZ2UsIGNyZWF0ZV9jaGlsZF9pcGN9LAogICAgc2VyaWFsaXplX2pzb24sCn07CnVzZSBsb2c6OntkZWJ1ZywgZXJyb3IsIGluZm8sIHdhcm59Owp1c2UgdG9raW86Ontwcm9jZXNzOjpDb21tYW5kLCBzcGF3biwgdGltZTo6c2xlZXB9Owp1c2UgdHJhY2luZzo6e0xldmVsLCBpbnN0cnVtZW50LCBzcGFufTsKCnVzZSBjcmF0ZTo6YXBwOjp7CiAgICBBcHAsIEFwcEVycm9yLAogICAgaG9zdDo6e0FwcElkLCBIb3N0SWR9LAogICAgdXNlcjo6QXV0aGVudGljYXRlZFVzZXIsCn07CgojW2dldCgiL2hvc3Qvc3RyZWFtIildCiNbaW5zdHJ1bWVudChuYW1lID0gInN0YXJ0X2hvc3QiLCBza2lwKHdlYl9hcHAsIHVzZXIsIHBheWxvYWQpLCBmaWVsZHModXNlcl9pZCA9ICV1c2VyLmlkKCkpKV0KcHViIGFzeW5jIGZuIHN0YXJ0X2hvc3QoCiAgICB3ZWJfYXBwOiBEYXRhPEFwcD4sCiAgICBtdXQgdXNlcjogQXV0aGVudGljYXRlZFVzZXIsCiAgICByZXF1ZXN0OiBIdHRwUmVxdWVzdCwKICAgIHBheWxvYWQ6IFBheWxvYWQsCikgLT4gUmVzdWx0PEh0dHBSZXNwb25zZSwgRXJyb3I+IHsKICAgIGxldCAocmVzcG9uc2UsIG11dCBzZXNzaW9uLCBtdXQgc3RyZWFtKSA9IGFjdGl4X3dzOjpoYW5kbGUoJnJlcXVlc3QsIHBheWxvYWQpPzsKCiAgICBsZXQgY2xpZW50X3VuaXF1ZV9pZCA9IHVzZXIuaG9zdF91bmlxdWVfaWQoKS5hd2FpdD87CgogICAgbGV0IHBlcm1pc3Npb25zID0gdXNlci5yb2xlKCkuYXdhaXQ/LnBlcm1pc3Npb25zKCkuYXdhaXQ/OwoKICAgIGxldCB3ZWJfYXBwID0gd2ViX2FwcC5jbG9uZSgpOwogICAgYWN0aXhfcnQ6OnNwYXduKGFzeW5jIG1vdmUgewogICAgICAgIC8vIC0tIEluaXQgYW5kIENvbmZpZ3VyZQogICAgICAgIGxldCBtZXNzYWdlOwogICAgICAgIGxvb3AgewogICAgICAgICAgICBtZXNzYWdlID0gbWF0Y2ggc3RyZWFtLnJlY3YoKS5hd2FpdCB7CiAgICAgICAgICAgICAgICBTb21lKE9rKE1lc3NhZ2U6OlRleHQodGV4dCkpKSA9PiB0ZXh0LAogICAgICAgICAgICAgICAgU29tZShPayhNZXNzYWdlOjpCaW5hcnkoXykpKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgU29tZShPayhfKSkgPT4gY29udGludWUsCiAgICAgICAgICAgICAgICBTb21lKEVycihfKSkgPT4gewogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIE5vbmUgPT4gewogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQoKICAgICAgICBsZXQgbWVzc2FnZSA9IG1hdGNoIHNlcmRlX2pzb246OmZyb21fc3RyOjo8U3RyZWFtQ2xpZW50TWVzc2FnZT4oJm1lc3NhZ2UpIHsKICAgICAgICAgICAgT2sodmFsdWUpID0+IHZhbHVlLAogICAgICAgICAgICBFcnIoXykgPT4gewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgbGV0IFN0cmVhbUNsaWVudE1lc3NhZ2U6OkluaXQgewogICAgICAgICAgICBob3N0X2lkLAogICAgICAgICAgICBhcHBfaWQsCiAgICAgICAgICAgIHZpZGVvX2ZyYW1lX3F1ZXVlX3NpemUsCiAgICAgICAgICAgIGF1ZGlvX3NhbXBsZV9xdWV1ZV9zaXplLAogICAgICAgIH0gPSBtZXNzYWdlCiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGxldCBfID0gc2Vzc2lvbi5jbG9zZShOb25lKS5hd2FpdDsKCiAgICAgICAgICAgIHdhcm4hKCJXZWJTb2NrZXQgZGlkbid0IHNlbmQgaW5pdCBhcyBmaXJzdCBtZXNzYWdlLCBjbG9zaW5nIGl0Iik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9OwoKICAgICAgICBsZXQgaG9zdF9pZCA9IEhvc3RJZChob3N0X2lkKTsKICAgICAgICBsZXQgYXBwX2lkID0gQXBwSWQoYXBwX2lkKTsKCiAgICAgICAgLy8gLS0gQ29sbGVjdCBob3N0IGRhdGEKICAgICAgICBsZXQgbXV0IGhvc3QgPSBtYXRjaCB1c2VyLmhvc3QoaG9zdF9pZCkuYXdhaXQgewogICAgICAgICAgICBPayhob3N0KSA9PiBob3N0LAogICAgICAgICAgICBFcnIoQXBwRXJyb3I6Okhvc3ROb3RGb3VuZCkgPT4gewogICAgICAgICAgICAgICAgbGV0IF8gPSBzZW5kX3dzX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgJm11dCBzZXNzaW9uLAogICAgICAgICAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OkRlYnVnTG9nIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIkZhaWxlZCB0byBzdGFydCBzdHJlYW0gYmVjYXVzZSB0aGUgaG9zdCB3YXMgbm90IGZvdW5kIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvX3N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICB0eTogU29tZShMb2dNZXNzYWdlVHlwZTo6RmF0YWxEZXNjcmlwdGlvbiksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hd2FpdDsKICAgICAgICAgICAgICAgIGxldCBfID0gc2Vzc2lvbi5jbG9zZShOb25lKS5hd2FpdDsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICB3YXJuISgiZmFpbGVkIHRvIHN0YXJ0IHN0cmVhbSBmb3IgaG9zdCB7aG9zdF9pZDo/fSAoYXQgaG9zdCk6IHtlcnJ9Iik7CgogICAgICAgICAgICAgICAgbGV0IF8gPSBzZW5kX3dzX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgJm11dCBzZXNzaW9uLAogICAgICAgICAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OkRlYnVnTG9nIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIkZhaWxlZCB0byBzdGFydCBzdHJlYW0gYmVjYXVzZSBvZiBhIHNlcnZlciBlcnJvciIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHR5OiBTb21lKExvZ01lc3NhZ2VUeXBlOjpGYXRhbERlc2NyaXB0aW9uKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmF3YWl0OwogICAgICAgICAgICAgICAgbGV0IF8gPSBzZXNzaW9uLmNsb3NlKE5vbmUpLmF3YWl0OwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgbGV0IGFwcHMgPSBtYXRjaCBob3N0Lmxpc3RfYXBwcygmbXV0IHVzZXIpLmF3YWl0IHsKICAgICAgICAgICAgT2soYXBwcykgPT4gYXBwcywKICAgICAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgd2FybiEoImZhaWxlZCB0byBzdGFydCBzdHJlYW0gZm9yIGhvc3Qge2hvc3RfaWQ6P30gKGF0IGxpc3RfYXBwcyk6IHtlcnJ9Iik7CgogICAgICAgICAgICAgICAgbGV0IF8gPSBzZW5kX3dzX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgJm11dCBzZXNzaW9uLAogICAgICAgICAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OkRlYnVnTG9nIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIkZhaWxlZCB0byBzdGFydCBzdHJlYW0gYmVjYXVzZSBvZiBhIHNlcnZlciBlcnJvciIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHR5OiBTb21lKExvZ01lc3NhZ2VUeXBlOjpGYXRhbERlc2NyaXB0aW9uKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmF3YWl0OwogICAgICAgICAgICAgICAgbGV0IF8gPSBzZXNzaW9uLmNsb3NlKE5vbmUpLmF3YWl0OwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgbGV0IFNvbWUoYXBwKSA9IGFwcHMuaW50b19pdGVyKCkuZmluZCh8YXBwfCBhcHAuaWQgPT0gYXBwX2lkKSBlbHNlIHsKICAgICAgICAgICAgd2FybiEoImZhaWxlZCB0byBzdGFydCBzdHJlYW0gZm9yIGhvc3Qge2hvc3RfaWQ6P30gYmVjYXVzZSB0aGUgYXBwIGNvdWxkbid0IGJlIGZvdW5kISIpOwoKICAgICAgICAgICAgbGV0IF8gPSBzZW5kX3dzX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAmbXV0IHNlc3Npb24sCiAgICAgICAgICAgICAgICBTdHJlYW1TZXJ2ZXJNZXNzYWdlOjpEZWJ1Z0xvZyB7CiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIkZhaWxlZCB0byBzdGFydCBzdHJlYW0gYmVjYXVzZSB0aGUgYXBwIHdhcyBub3QgZm91bmQiLnRvX3N0cmluZygpLAogICAgICAgICAgICAgICAgICAgIHR5OiBTb21lKExvZ01lc3NhZ2VUeXBlOjpGYXRhbERlc2NyaXB0aW9uKSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICkKICAgICAgICAgICAgLmF3YWl0OwogICAgICAgICAgICBsZXQgXyA9IHNlc3Npb24uY2xvc2UoTm9uZSkuYXdhaXQ7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9OwoKICAgICAgICBsZXQgKGFkZHJlc3MsIGh0dHBfcG9ydCkgPSBtYXRjaCBob3N0LmFkZHJlc3NfcG9ydCgmbXV0IHVzZXIpLmF3YWl0IHsKICAgICAgICAgICAgT2soYWRkcmVzc19wb3J0KSA9PiBhZGRyZXNzX3BvcnQsCiAgICAgICAgICAgIEVycihlcnIpID0+IHsKICAgICAgICAgICAgICAgIHdhcm4hKCJmYWlsZWQgdG8gc3RhcnQgc3RyZWFtIGZvciBob3N0IHtob3N0X2lkOj99IChhdCBnZXQgYWRkcmVzc19wb3J0KToge2Vycn0iKTsKCiAgICAgICAgICAgICAgICBsZXQgXyA9IHNlbmRfd3NfbWVzc2FnZSgKICAgICAgICAgICAgICAgICAgICAmbXV0IHNlc3Npb24sCiAgICAgICAgICAgICAgICAgICAgU3RyZWFtU2VydmVyTWVzc2FnZTo6RGVidWdMb2cgewogICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAiRmFpbGVkIHRvIHN0YXJ0IHN0cmVhbSBiZWNhdXNlIG9mIGEgc2VydmVyIGVycm9yIi50b19zdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgdHk6IFNvbWUoTG9nTWVzc2FnZVR5cGU6OkZhdGFsRGVzY3JpcHRpb24pLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYXdhaXQ7CiAgICAgICAgICAgICAgICBsZXQgXyA9IHNlc3Npb24uY2xvc2UoTm9uZSkuYXdhaXQ7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBsZXQgcGFpcl9pbmZvID0gbWF0Y2ggaG9zdC5wYWlyX2luZm8oJm11dCB1c2VyKS5hd2FpdCB7CiAgICAgICAgICAgIE9rKHBhaXJfaW5mbykgPT4gcGFpcl9pbmZvLAogICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICB3YXJuISgiZmFpbGVkIHRvIHN0YXJ0IHN0cmVhbSBmb3IgaG9zdCB7aG9zdF9pZDo/fSAoYXQgZ2V0IHBhaXJfaW5mbyk6IHtlcnJ9Iik7CgogICAgICAgICAgICAgICAgbGV0IF8gPSBzZW5kX3dzX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgJm11dCBzZXNzaW9uLAogICAgICAgICAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OkRlYnVnTG9nIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIkZhaWxlZCB0byBzdGFydCBzdHJlYW0gYmVjYXVzZSB0aGUgaG9zdCBpcyBub3QgcGFpcmVkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvX3N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICB0eTogU29tZShMb2dNZXNzYWdlVHlwZTo6RmF0YWxEZXNjcmlwdGlvbiksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hd2FpdDsKICAgICAgICAgICAgICAgIGxldCBfID0gc2Vzc2lvbi5jbG9zZShOb25lKS5hd2FpdDsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH07CgogICAgICAgIC8vIC0tIFNlbmQgQXBwIGluZm8KICAgICAgICBsZXQgXyA9IHNlbmRfd3NfbWVzc2FnZSgKICAgICAgICAgICAgJm11dCBzZXNzaW9uLAogICAgICAgICAgICBTdHJlYW1TZXJ2ZXJNZXNzYWdlOjpVcGRhdGVBcHAgeyBhcHA6IGFwcC5pbnRvKCkgfSwKICAgICAgICApCiAgICAgICAgLmF3YWl0OwoKICAgICAgICAvLyAtLSBTdGFydGluZyBzdGFnZTogbGF1bmNoIHN0cmVhbWVyCiAgICAgICAgbGV0IF8gPSBzZW5kX3dzX21lc3NhZ2UoCiAgICAgICAgICAgICZtdXQgc2Vzc2lvbiwKICAgICAgICAgICAgU3RyZWFtU2VydmVyTWVzc2FnZTo6RGVidWdMb2cgewogICAgICAgICAgICAgICAgbWVzc2FnZTogIkxhdW5jaGluZyBzdHJlYW1lciIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICB0eTogTm9uZSwKICAgICAgICAgICAgfSwKICAgICAgICApCiAgICAgICAgLmF3YWl0OwoKICAgICAgICAvLyBTcGF3biBjaGlsZAogICAgICAgIGxldCAobXV0IGNoaWxkLCBzdGRpbiwgc3Rkb3V0KSA9IG1hdGNoIENvbW1hbmQ6Om5ldygmd2ViX2FwcC5jb25maWcoKS5zdHJlYW1lcl9wYXRoKQogICAgICAgICAgICAuc3RkaW4oU3RkaW86OnBpcGVkKCkpCiAgICAgICAgICAgIC5zdGRvdXQoU3RkaW86OnBpcGVkKCkpCiAgICAgICAgICAgIC5zdGRlcnIoU3RkaW86OnBpcGVkKCkpCiAgICAgICAgICAgIC5raWxsX29uX2Ryb3AodHJ1ZSkKICAgICAgICAgICAgLnNwYXduKCkKICAgICAgICB7CiAgICAgICAgICAgIE9rKG11dCBjaGlsZCkgPT4gewogICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUoc3RkaW4pID0gY2hpbGQuc3RkaW4udGFrZSgpCiAgICAgICAgICAgICAgICAgICAgJiYgbGV0IFNvbWUoc3Rkb3V0KSA9IGNoaWxkLnN0ZG91dC50YWtlKCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAoY2hpbGQsIHN0ZGluLCBzdGRvdXQpCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGVycm9yISgiW1N0cmVhbV06IHN0cmVhbWVyIHByb2Nlc3MgZGlkbid0IGluY2x1ZGUgYSBzdGRpbiBvciBzdGRvdXQiKTsKCiAgICAgICAgICAgICAgICAgICAgbGV0IF8gPSBzZW5kX3dzX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICZtdXQgc2Vzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtU2VydmVyTWVzc2FnZTo6RGVidWdMb2cgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIkZhaWxlZCB0byBzdGFydCBzdHJlYW0gYmVjYXVzZSBvZiBhIHNlcnZlciBlcnJvciIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eTogU29tZShMb2dNZXNzYWdlVHlwZTo6RmF0YWxEZXNjcmlwdGlvbiksCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIC5hd2FpdDsKICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IHNlc3Npb24uY2xvc2UoTm9uZSkuYXdhaXQ7CgogICAgICAgICAgICAgICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IGNoaWxkLmtpbGwoKS5hd2FpdCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbU3RyZWFtXTogZmFpbGVkIHRvIGtpbGwgY2hpbGQ6IHtlcnJ9Iik7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgZXJyb3IhKCJbU3RyZWFtXTogZmFpbGVkIHRvIHNwYXduIHN0cmVhbWVyIHByb2Nlc3M6IHtlcnJ9Iik7CgogICAgICAgICAgICAgICAgbGV0IF8gPSBzZW5kX3dzX21lc3NhZ2UoCiAgICAgICAgICAgICAgICAgICAgJm11dCBzZXNzaW9uLAogICAgICAgICAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OkRlYnVnTG9nIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIkZhaWxlZCB0byBzdGFydCBzdHJlYW0gYmVjYXVzZSBvZiBhIHNlcnZlciBlcnJvciIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgIHR5OiBTb21lKExvZ01lc3NhZ2VUeXBlOjpGYXRhbERlc2NyaXB0aW9uKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmF3YWl0OwogICAgICAgICAgICAgICAgbGV0IF8gPSBzZXNzaW9uLmNsb3NlKE5vbmUpLmF3YWl0OwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgLy8gQ3JlYXRlIGlwYwogICAgICAgIHN0YXRpYyBDSElMRF9DT1VOVEVSOiBBdG9taWNVc2l6ZSA9IEF0b21pY1VzaXplOjpuZXcoMCk7CiAgICAgICAgbGV0IGlkID0gQ0hJTERfQ09VTlRFUi5mZXRjaF9hZGQoMSwgT3JkZXJpbmc6OlJlbGF4ZWQpOwogICAgICAgIGxldCBzcGFuID0gc3BhbiEoTGV2ZWw6OklORk8sICJpcGMiLCBjaGlsZF9pZCA9IGlkKTsKCiAgICAgICAgbGV0IChtdXQgaXBjX3NlbmRlciwgbXV0IGlwY19yZWNlaXZlcikgPSBjcmVhdGVfY2hpbGRfaXBjOjo8CiAgICAgICAgICAgIFNlcnZlcklwY01lc3NhZ2UsCiAgICAgICAgICAgIFN0cmVhbWVySXBjTWVzc2FnZSwKICAgICAgICA+KHNwYW4sIHN0ZGluLCBzdGRvdXQsIGNoaWxkLnN0ZGVyci50YWtlKCkpCiAgICAgICAgLmF3YWl0OwoKICAgICAgICAvLyBSZWRpcmVjdCBpcGMgbWVzc2FnZSBpbnRvIHdzCiAgICAgICAgc3Bhd24oewogICAgICAgICAgICBsZXQgbXV0IGlwY19zZW5kZXIgPSBpcGNfc2VuZGVyLmNsb25lKCk7CiAgICAgICAgICAgIGFzeW5jIG1vdmUgewogICAgICAgICAgICAgICAgbGV0IG11dCB3YXJuZWRfY2xvc2VkID0gZmFsc2U7CiAgICAgICAgICAgICAgICB3aGlsZSBsZXQgU29tZShtZXNzYWdlKSA9IGlwY19yZWNlaXZlci5yZWN2KCkuYXdhaXQgewogICAgICAgICAgICAgICAgICAgIG1hdGNoIG1lc3NhZ2UgewogICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1lcklwY01lc3NhZ2U6OldlYlNvY2tldChtZXNzYWdlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZXQgRXJyKENsb3NlZCkgPSBzZW5kX3dzX21lc3NhZ2UoJm11dCBzZXNzaW9uLCBtZXNzYWdlKS5hd2FpdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmICF3YXJuZWRfY2xvc2VkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FybiEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbSXBjXTogVHJpZWQgdG8gc2VuZCBhIHdzIG1lc3NhZ2UgKHRleHQpIGJ1dCB0aGUgc29ja2V0IGlzIGFscmVhZHkgY2xvc2VkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBjX3NlbmRlci5zZW5kKFNlcnZlcklwY01lc3NhZ2U6OlN0b3ApLmF3YWl0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm5lZF9jbG9zZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbWVySXBjTWVzc2FnZTo6V2ViU29ja2V0VHJhbnNwb3J0KGRhdGEpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBFcnIoQ2xvc2VkKSA9IHNlc3Npb24uYmluYXJ5KGRhdGEpLmF3YWl0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgIXdhcm5lZF9jbG9zZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIltJcGNdOiBUcmllZCB0byBzZW5kIGEgd3MgbWVzc2FnZSAoYmluYXJ5KSBidXQgdGhlIHNvY2tldCBpcyBhbHJlYWR5IGNsb3NlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwY19zZW5kZXIuc2VuZChTZXJ2ZXJJcGNNZXNzYWdlOjpTdG9wKS5hd2FpdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuZWRfY2xvc2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW1lcklwY01lc3NhZ2U6OlN0b3AgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWchKCJbSXBjXTogaXBjIHJlY2VpdmVyIHN0b3BwZWQgYnkgc3RyZWFtZXIiKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaW5mbyEoIltJcGNdOiBpcGMgcmVjZWl2ZXIgaXMgY2xvc2VkIik7CgogICAgICAgICAgICAgICAgLy8gV2FpdCBmb3IgdGhlIGNoaWxkIHRvIHNodXRkb3duCiAgICAgICAgICAgICAgICBzbGVlcChEdXJhdGlvbjo6ZnJvbV9zZWNzKDEwKSkuYXdhaXQ7CgogICAgICAgICAgICAgICAgLy8gY2xvc2UgdGhlIHdlYnNvY2tldCB3aGVuIHRoZSBzdHJlYW1lciBjcmFzaGVkIC8gZGlzY29ubmVjdGVkIC8gd2hhdGV2ZXIKICAgICAgICAgICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IHNlc3Npb24uY2xvc2UoTm9uZSkuYXdhaXQgewogICAgICAgICAgICAgICAgICAgIHdhcm4hKCJmYWlsZWQgdG8gY2xvc2Ugc3RyZWFtZXIgd2ViIHNvY2tldDoge2Vycn0iKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBraWxsIHRoZSBzdHJlYW1lcgogICAgICAgICAgICAgICAgaWYgbGV0IEVycihlcnIpID0gY2hpbGQua2lsbCgpLmF3YWl0IHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgiZmFpbGVkIHRvIGtpbGwgc3RyZWFtZXIgY2hpbGQ6IHtlcnJ9Iik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgLy8gU2VuZCBpbml0IGludG8gaXBjCiAgICAgICAgaXBjX3NlbmRlcgogICAgICAgICAgICAuc2VuZChTZXJ2ZXJJcGNNZXNzYWdlOjpJbml0IHsKICAgICAgICAgICAgICAgIGNvbmZpZzogU3RyZWFtZXJDb25maWcgewogICAgICAgICAgICAgICAgICAgIHdlYnJ0Yzogd2ViX2FwcC5jb25maWcoKS53ZWJydGMuY2xvbmUoKSwKICAgICAgICAgICAgICAgICAgICBsb2dfbGV2ZWw6IHdlYl9hcHAuY29uZmlnKCkubG9nLmxldmVsX2ZpbHRlciwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBob3N0X2FkZHJlc3M6IGFkZHJlc3MsCiAgICAgICAgICAgICAgICBob3N0X2h0dHBfcG9ydDogaHR0cF9wb3J0LAogICAgICAgICAgICAgICAgY2xpZW50X3VuaXF1ZV9pZDogU29tZShjbGllbnRfdW5pcXVlX2lkKSwKICAgICAgICAgICAgICAgIGNsaWVudF9wcml2YXRlX2tleTogcGFpcl9pbmZvLmNsaWVudF9wcml2YXRlX2tleSwKICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0aWZpY2F0ZTogcGFpcl9pbmZvLmNsaWVudF9jZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgICAgIHNlcnZlcl9jZXJ0aWZpY2F0ZTogcGFpcl9pbmZvLnNlcnZlcl9jZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgICAgIGFwcF9pZDogYXBwX2lkLjAsCiAgICAgICAgICAgICAgICB2aWRlb19mcmFtZV9xdWV1ZV9zaXplLAogICAgICAgICAgICAgICAgYXVkaW9fc2FtcGxlX3F1ZXVlX3NpemUsCiAgICAgICAgICAgICAgICBwZXJtaXNzaW9ucywKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLmF3YWl0OwoKICAgICAgICAvLyBSZWRpcmVjdCB3cyBtZXNzYWdlIGludG8gaXBjCiAgICAgICAgd2hpbGUgbGV0IFNvbWUoT2sobWVzc2FnZSkpID0gc3RyZWFtLnJlY3YoKS5hd2FpdCB7CiAgICAgICAgICAgIG1hdGNoIG1lc3NhZ2UgewogICAgICAgICAgICAgICAgTWVzc2FnZTo6VGV4dCh0ZXh0KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgbGV0IE9rKG1lc3NhZ2UpID0gc2VyZGVfanNvbjo6ZnJvbV9zdHI6OjxTdHJlYW1DbGllbnRNZXNzYWdlPigmdGV4dCkgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbU3RyZWFtXTogZmFpbGVkIHRvIGRlc2VyaWFsaXplIGZyb20ganNvbiIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAgICAgaXBjX3NlbmRlci5zZW5kKFNlcnZlcklwY01lc3NhZ2U6OldlYlNvY2tldChtZXNzYWdlKSkuYXdhaXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBNZXNzYWdlOjpCaW5hcnkoYmluYXJ5KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgaXBjX3NlbmRlcgogICAgICAgICAgICAgICAgICAgICAgICAuc2VuZChTZXJ2ZXJJcGNNZXNzYWdlOjpXZWJTb2NrZXRUcmFuc3BvcnQoYmluYXJ5KSkKICAgICAgICAgICAgICAgICAgICAgICAgLmF3YWl0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXyA9PiB7fQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSk7CgogICAgT2socmVzcG9uc2UpCn0KCmFzeW5jIGZuIHNlbmRfd3NfbWVzc2FnZShzZW5kZXI6ICZtdXQgU2Vzc2lvbiwgbWVzc2FnZTogU3RyZWFtU2VydmVyTWVzc2FnZSkgLT4gUmVzdWx0PCgpLCBDbG9zZWQ+IHsKICAgIGxldCBTb21lKGpzb24pID0gc2VyaWFsaXplX2pzb24oJm1lc3NhZ2UpIGVsc2UgewogICAgICAgIHJldHVybiBPaygoKSk7CiAgICB9OwoKICAgIHNlbmRlci50ZXh0KGpzb24pLmF3YWl0Cn0KCiNbcG9zdCgiL2hvc3QvY2FuY2VsIildCnB1YiBhc3luYyBmbiBjYW5jZWxfaG9zdCgKICAgIG11dCB1c2VyOiBBdXRoZW50aWNhdGVkVXNlciwKICAgIEpzb24ocmVxdWVzdCk6IEpzb248UG9zdENhbmNlbFJlcXVlc3Q+LAopIC0+IFJlc3VsdDxKc29uPFBvc3RDYW5jZWxSZXNwb25zZT4sIEFwcEVycm9yPiB7CiAgICBsZXQgaG9zdF9pZCA9IEhvc3RJZChyZXF1ZXN0Lmhvc3RfaWQpOwoKICAgIGxldCBtdXQgaG9zdCA9IHVzZXIuaG9zdChob3N0X2lkKS5hd2FpdD87CgogICAgaG9zdC5jYW5jZWxfYXBwKCZtdXQgdXNlcikuYXdhaXQ/OwoKICAgIE9rKEpzb24oUG9zdENhbmNlbFJlc3BvbnNlIHsgc3VjY2VzczogdHJ1ZSB9KSkKfQo="},{"path":"src/api/user.rs","sha256":"eef9f4b5a69c8a6782507a5b2fe0033169ee21133a4147aa7c5fb66ecec48c07","contentBase64":"dXNlIGFjdGl4X3dlYjo6ewogICAgSHR0cFJlc3BvbnNlLCBkZWxldGUsIGdldCwgcGF0Y2gsIHBvc3QsCiAgICB3ZWI6OntEYXRhLCBKc29uLCBRdWVyeX0sCn07CnVzZSBjb21tb246OmFwaV9iaW5kaW5nczo6ewogICAgRGVsZXRlVXNlclJlcXVlc3QsIERldGFpbGVkVXNlciwgR2V0VXNlclF1ZXJ5LCBHZXRVc2Vyc1Jlc3BvbnNlLCBQYXRjaFVzZXJSZXF1ZXN0LAogICAgUG9zdFVzZXJSZXF1ZXN0LAp9Owp1c2UgZnV0dXJlczo6ZnV0dXJlOjpqb2luX2FsbDsKdXNlIHRyYWNpbmc6Ondhcm47Cgp1c2UgY3JhdGU6OmFwcDo6ewogICAgQXBwLCBBcHBFcnJvciwKICAgIHBhc3N3b3JkOjpTdG9yYWdlUGFzc3dvcmQsCiAgICByb2xlOjpSb2xlSWQsCiAgICBzdG9yYWdlOjp7U3RvcmFnZVVzZXJBZGQsIFN0b3JhZ2VVc2VyTW9kaWZ5fSwKICAgIHVzZXI6OntBZG1pbiwgQXV0aGVudGljYXRlZFVzZXIsIFVzZXJJZH0sCn07CgojW2dldCgiL3VzZXIiKV0KYXN5bmMgZm4gZ2V0X3VzZXIoCiAgICBhcHA6IERhdGE8QXBwPiwKICAgIG11dCB1c2VyOiBBdXRoZW50aWNhdGVkVXNlciwKICAgIFF1ZXJ5KHF1ZXJ5KTogUXVlcnk8R2V0VXNlclF1ZXJ5PiwKKSAtPiBSZXN1bHQ8SnNvbjxEZXRhaWxlZFVzZXI+LCBBcHBFcnJvcj4gewogICAgbWF0Y2ggKHF1ZXJ5Lm5hbWUsIHF1ZXJ5LnVzZXJfaWQpIHsKICAgICAgICAoTm9uZSwgTm9uZSkgPT4gewogICAgICAgICAgICBsZXQgZGV0YWlsZWRfdXNlciA9IHVzZXIuZGV0YWlsZWRfdXNlcigpLmF3YWl0PzsKCiAgICAgICAgICAgIE9rKEpzb24oZGV0YWlsZWRfdXNlcikpCiAgICAgICAgfQogICAgICAgIChOb25lLCBTb21lKHVzZXJfaWQpKSA9PiB7CiAgICAgICAgICAgIGxldCB0YXJnZXRfdXNlcl9pZCA9IFVzZXJJZCh1c2VyX2lkKTsKCiAgICAgICAgICAgIGxldCBtdXQgdGFyZ2V0X3VzZXIgPSBhcHAudXNlcl9ieV9pZCh0YXJnZXRfdXNlcl9pZCkuYXdhaXQ/OwoKICAgICAgICAgICAgbGV0IGRldGFpbGVkX3VzZXIgPSB0YXJnZXRfdXNlci5kZXRhaWxlZF91c2VyKCZtdXQgdXNlcikuYXdhaXQ/OwoKICAgICAgICAgICAgT2soSnNvbihkZXRhaWxlZF91c2VyKSkKICAgICAgICB9CiAgICAgICAgKFNvbWUobmFtZSksIE5vbmUpID0+IHsKICAgICAgICAgICAgbGV0IG11dCB0YXJnZXRfdXNlciA9IGFwcC51c2VyX2J5X25hbWUoJm5hbWUpLmF3YWl0PzsKCiAgICAgICAgICAgIGxldCBkZXRhaWxlZF91c2VyID0gdGFyZ2V0X3VzZXIuZGV0YWlsZWRfdXNlcigmbXV0IHVzZXIpLmF3YWl0PzsKCiAgICAgICAgICAgIE9rKEpzb24oZGV0YWlsZWRfdXNlcikpCiAgICAgICAgfQogICAgICAgIChTb21lKF8pLCBTb21lKF8pKSA9PiBFcnIoQXBwRXJyb3I6OkJhZFJlcXVlc3QpLAogICAgfQp9CgojW3Bvc3QoIi91c2VyIildCnB1YiBhc3luYyBmbiBhZGRfdXNlcigKICAgIGFwcDogRGF0YTxBcHA+LAogICAgYWRtaW46IEFkbWluLAogICAgSnNvbihyZXF1ZXN0KTogSnNvbjxQb3N0VXNlclJlcXVlc3Q+LAopIC0+IFJlc3VsdDxKc29uPERldGFpbGVkVXNlcj4sIEFwcEVycm9yPiB7CiAgICBsZXQgbXV0IHVzZXIgPSBhcHAKICAgICAgICAuYWRkX3VzZXIoCiAgICAgICAgICAgICZhZG1pbiwKICAgICAgICAgICAgU3RvcmFnZVVzZXJBZGQgewogICAgICAgICAgICAgICAgbmFtZTogcmVxdWVzdC5uYW1lLmNsb25lKCksCiAgICAgICAgICAgICAgICBwYXNzd29yZDogU29tZShTdG9yYWdlUGFzc3dvcmQ6Om5ldygmcmVxdWVzdC5wYXNzd29yZCk/KSwKICAgICAgICAgICAgICAgIHJvbGVfaWQ6IFJvbGVJZChyZXF1ZXN0LnJvbGVfaWQpLAogICAgICAgICAgICAgICAgY2xpZW50X3VuaXF1ZV9pZDogcmVxdWVzdC5jbGllbnRfdW5pcXVlX2lkLAogICAgICAgICAgICB9LAogICAgICAgICkKICAgICAgICAuYXdhaXQ/OwoKICAgIGxldCBkZXRhaWxlZF91c2VyID0gdXNlci5kZXRhaWxlZF91c2VyKCkuYXdhaXQ/OwoKICAgIE9rKEpzb24oZGV0YWlsZWRfdXNlcikpCn0KCiNbcGF0Y2goIi91c2VyIildCnB1YiBhc3luYyBmbiBwYXRjaF91c2VyKAogICAgYXBwOiBEYXRhPEFwcD4sCiAgICB1c2VyOiBBdXRoZW50aWNhdGVkVXNlciwKICAgIEpzb24ocmVxdWVzdCk6IEpzb248UGF0Y2hVc2VyUmVxdWVzdD4sCikgLT4gUmVzdWx0PEh0dHBSZXNwb25zZSwgQXBwRXJyb3I+IHsKICAgIGxldCB0YXJnZXRfdXNlcl9pZCA9IFVzZXJJZChyZXF1ZXN0LmlkKTsKCiAgICBtYXRjaCBBZG1pbjo6dHJ5X2Zyb20odXNlcikuYXdhaXQ/IHsKICAgICAgICBPayhhZG1pbikgPT4gewogICAgICAgICAgICBsZXQgbXV0IHRhcmdldF91c2VyID0gYXBwLnVzZXJfYnlfaWQodGFyZ2V0X3VzZXJfaWQpLmF3YWl0PzsKCiAgICAgICAgICAgIGxldCBuZXdfcGFzc3dvcmQgPSBpZiBsZXQgU29tZShuZXdfcGFzc3dvcmQpID0gcmVxdWVzdC5wYXNzd29yZCB7CiAgICAgICAgICAgICAgICBTb21lKFN0b3JhZ2VQYXNzd29yZDo6bmV3KCZuZXdfcGFzc3dvcmQpPykKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIE5vbmUKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIHRhcmdldF91c2VyCiAgICAgICAgICAgICAgICAubW9kaWZ5KAogICAgICAgICAgICAgICAgICAgICZhZG1pbiwKICAgICAgICAgICAgICAgICAgICBTdG9yYWdlVXNlck1vZGlmeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBuZXdfcGFzc3dvcmQubWFwKFNvbWUpLAogICAgICAgICAgICAgICAgICAgICAgICByb2xlX2lkOiByZXF1ZXN0LnJvbGVfaWQubWFwKFJvbGVJZCksCiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF91bmlxdWVfaWQ6IHJlcXVlc3QuY2xpZW50X3VuaXF1ZV9pZCwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmF3YWl0PzsKICAgICAgICB9CiAgICAgICAgRXJyKG11dCB1c2VyKSA9PiB7CiAgICAgICAgICAgIGlmIHVzZXIuaWQoKSAhPSB0YXJnZXRfdXNlcl9pZCB7CiAgICAgICAgICAgICAgICByZXR1cm4gRXJyKEFwcEVycm9yOjpGb3JiaWRkZW4pOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBPbmx5IGFsbG93IGNoYW5naW5nIHRoZSBwYXNzd29yZAogICAgICAgICAgICBsZXQgUGF0Y2hVc2VyUmVxdWVzdCB7CiAgICAgICAgICAgICAgICBpZDogXywKICAgICAgICAgICAgICAgIHBhc3N3b3JkOiBfLAogICAgICAgICAgICAgICAgcm9sZV9pZCwKICAgICAgICAgICAgICAgIGNsaWVudF91bmlxdWVfaWQsCiAgICAgICAgICAgIH0gPSAmcmVxdWVzdDsKICAgICAgICAgICAgaWYgcm9sZV9pZC5pc19zb21lKCkgfHwgY2xpZW50X3VuaXF1ZV9pZC5pc19zb21lKCkgewogICAgICAgICAgICAgICAgcmV0dXJuIEVycihBcHBFcnJvcjo6Rm9yYmlkZGVuKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgbGV0IFNvbWUobmV3X3Bhc3N3b3JkKSA9IHJlcXVlc3QucGFzc3dvcmQgewogICAgICAgICAgICAgICAgdXNlci5zZXRfcGFzc3dvcmQoU3RvcmFnZVBhc3N3b3JkOjpuZXcoJm5ld19wYXNzd29yZCk/KQogICAgICAgICAgICAgICAgICAgIC5hd2FpdD87CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgT2soSHR0cFJlc3BvbnNlOjpPaygpLmZpbmlzaCgpKQp9CgojW2RlbGV0ZSgiL3VzZXIiKV0KcHViIGFzeW5jIGZuIGRlbGV0ZV91c2VyKAogICAgYXBwOiBEYXRhPEFwcD4sCiAgICBhZG1pbjogQWRtaW4sCiAgICBKc29uKHJlcXVlc3QpOiBKc29uPERlbGV0ZVVzZXJSZXF1ZXN0PiwKKSAtPiBSZXN1bHQ8SHR0cFJlc3BvbnNlLCBBcHBFcnJvcj4gewogICAgbGV0IHVzZXJfaWQgPSBVc2VySWQocmVxdWVzdC5pZCk7CgogICAgbGV0IHVzZXIgPSBhcHAudXNlcl9ieV9pZCh1c2VyX2lkKS5hd2FpdD87CgogICAgdXNlci5kZWxldGUoJmFkbWluKS5hd2FpdD87CgogICAgT2soSHR0cFJlc3BvbnNlOjpPaygpLmZpbmlzaCgpKQp9CgojW2dldCgiL3VzZXJzIildCnB1YiBhc3luYyBmbiBsaXN0X3VzZXJzKGFwcDogRGF0YTxBcHA+LCBhZG1pbjogQWRtaW4pIC0+IFJlc3VsdDxKc29uPEdldFVzZXJzUmVzcG9uc2U+LCBBcHBFcnJvcj4gewogICAgbGV0IG11dCB1c2VycyA9IGFwcC5hbGxfdXNlcnMoYWRtaW4pLmF3YWl0PzsKCiAgICBsZXQgdXNlcl9yZXN1bHRzID0gam9pbl9hbGwodXNlcnMuaXRlcl9tdXQoKS5tYXAofHVzZXJ8IHVzZXIuZGV0YWlsZWRfdXNlcl9ub19hdXRoKCkpKS5hd2FpdDsKCiAgICBsZXQgbXV0IG91dF91c2VycyA9IFZlYzo6d2l0aF9jYXBhY2l0eSh1c2VyX3Jlc3VsdHMubGVuKCkpOwogICAgZm9yIChyZXN1bHQsIHVzZXIpIGluIHVzZXJfcmVzdWx0cy5pbnRvX2l0ZXIoKS56aXAodXNlcnMpIHsKICAgICAgICBtYXRjaCByZXN1bHQgewogICAgICAgICAgICBPayh1c2VyKSA9PiB7CiAgICAgICAgICAgICAgICBvdXRfdXNlcnMucHVzaCh1c2VyKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHF1ZXJ5IGRldGFpbGVkIHVzZXIgb2Yge3VzZXI6P306IHtlcnJ9Iik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgT2soSnNvbihHZXRVc2Vyc1Jlc3BvbnNlIHsgdXNlcnM6IG91dF91c2VycyB9KSkKfQo="},{"path":"src/app/auth.rs","sha256":"090c3f28d10dbb583aa1f55d3af39e3a8e2bfa6d6e5250d05e6eb77159c8a8bb","contentBase64":"dXNlIHN0ZDo6Zm10OwoKdXNlIGhleDo6RnJvbUhleEVycm9yOwp1c2Ugb3BlbnNzbDo6cmFuZDo6cmFuZF9ieXRlczsKdXNlIHNlcmRlOjp7CiAgICBEZXNlcmlhbGl6ZSwgRGVzZXJpYWxpemVyLCBTZXJpYWxpemUsIFNlcmlhbGl6ZXIsCiAgICBkZTo6e3NlbGYsIFZpc2l0b3J9LAp9OwoKdXNlIGNyYXRlOjphcHA6OkFwcEVycm9yOwoKcHViIGVudW0gVXNlckF1dGggewogICAgTm9uZSwKICAgIFVzZXJQYXNzd29yZCB7IHVzZXJuYW1lOiBTdHJpbmcsIHBhc3N3b3JkOiBTdHJpbmcgfSwKICAgIFNlc3Npb24oU2Vzc2lvblRva2VuKSwKICAgIEZvcndhcmRlZEhlYWRlcnMgeyB1c2VybmFtZTogU3RyaW5nIH0sCn0KCmNvbnN0IFNFU1NJT05fVE9LRU5fU0laRTogdXNpemUgPSAzMjsKI1tkZXJpdmUoRGVidWcsIENsb25lLCBDb3B5LCBQYXJ0aWFsRXEsIEVxLCBIYXNoKV0KcHViIHN0cnVjdCBTZXNzaW9uVG9rZW4oW3U4OyBTRVNTSU9OX1RPS0VOX1NJWkVdKTsKCmltcGwgU2Vzc2lvblRva2VuIHsKICAgIHB1YiBmbiBuZXcoKSAtPiBSZXN1bHQ8U2VsZiwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgbXV0IGJ5dGVzID0gWzA7IFNFU1NJT05fVE9LRU5fU0laRV07CgogICAgICAgIHJhbmRfYnl0ZXMoJm11dCBieXRlcyk/OwoKICAgICAgICBPayhTZWxmKGJ5dGVzKSkKICAgIH0KCiAgICBwdWIgZm4gZW5jb2RlPCdhPigmc2VsZiwgYnl0ZXM6ICYnYSBtdXQgW3U4OyBTRVNTSU9OX1RPS0VOX1NJWkUgKiAyXSkgLT4gJidhIHN0ciB7CiAgICAgICAgaGV4OjplbmNvZGVfdG9fc2xpY2Uoc2VsZi4wLmFzX3NsaWNlKCksIGJ5dGVzKS5leHBlY3QoImZhaWxlZCB0byBoZXggZW5jb2RlIGJ5dGVzIik7CgogICAgICAgIHN0cjo6ZnJvbV91dGY4KGJ5dGVzKS5leHBlY3QoImhleCBlbmNvZGUgcHJvZHVjZXMgaW52YWxpZCB1dGYtOCIpCiAgICB9CgogICAgcHViIGZuIGRlY29kZShzdHI6ICZzdHIpIC0+IFJlc3VsdDxTZWxmLCBGcm9tSGV4RXJyb3I+IHsKICAgICAgICBsZXQgbXV0IGFyciA9IFswdTg7IFNFU1NJT05fVE9LRU5fU0laRV07CiAgICAgICAgaGV4OjpkZWNvZGVfdG9fc2xpY2Uoc3RyLmFzX2J5dGVzKCksICZtdXQgYXJyKT87CiAgICAgICAgT2soU2Vzc2lvblRva2VuKGFycikpCiAgICB9Cn0KCmltcGwgU2VyaWFsaXplIGZvciBTZXNzaW9uVG9rZW4gewogICAgZm4gc2VyaWFsaXplPFM+KCZzZWxmLCBzZXJpYWxpemVyOiBTKSAtPiBSZXN1bHQ8Uzo6T2ssIFM6OkVycm9yPgogICAgd2hlcmUKICAgICAgICBTOiBTZXJpYWxpemVyLAogICAgewogICAgICAgIGxldCBtdXQgYnl0ZXMgPSBbMDsgX107CiAgICAgICAgc2VyaWFsaXplci5zZXJpYWxpemVfc3RyKHNlbGYuZW5jb2RlKCZtdXQgYnl0ZXMpKQogICAgfQp9CgppbXBsPCdkZT4gRGVzZXJpYWxpemU8J2RlPiBmb3IgU2Vzc2lvblRva2VuIHsKICAgIGZuIGRlc2VyaWFsaXplPEQ+KGRlc2VyaWFsaXplcjogRCkgLT4gUmVzdWx0PFNlbGYsIEQ6OkVycm9yPgogICAgd2hlcmUKICAgICAgICBEOiBEZXNlcmlhbGl6ZXI8J2RlPiwKICAgIHsKICAgICAgICBzdHJ1Y3QgU2Vzc2lvblRva2VuVmlzaXRvcjsKCiAgICAgICAgaW1wbDwnZGU+IFZpc2l0b3I8J2RlPiBmb3IgU2Vzc2lvblRva2VuVmlzaXRvciB7CiAgICAgICAgICAgIHR5cGUgVmFsdWUgPSBTZXNzaW9uVG9rZW47CgogICAgICAgICAgICBmbiBleHBlY3RpbmcoJnNlbGYsIGZvcm1hdHRlcjogJm11dCBmbXQ6OkZvcm1hdHRlcikgLT4gZm10OjpSZXN1bHQgewogICAgICAgICAgICAgICAgZm9ybWF0dGVyLndyaXRlX3N0cigmZm9ybWF0ISgiYSB7fS1ieXRlIGhleCBzdHJpbmciLCBTRVNTSU9OX1RPS0VOX1NJWkUgKiAyKSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm4gdmlzaXRfc3RyPEU+KHNlbGYsIHY6ICZzdHIpIC0+IFJlc3VsdDxTZWxmOjpWYWx1ZSwgRT4KICAgICAgICAgICAgd2hlcmUKICAgICAgICAgICAgICAgIEU6IGRlOjpFcnJvciwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU2Vzc2lvblRva2VuOjpkZWNvZGUodikubWFwX2Vycih8X3wgRTo6Y3VzdG9tKCJmYWlsZWQgdG8gZGVjb2RlIGhleCIpKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBkZXNlcmlhbGl6ZXIuZGVzZXJpYWxpemVfc3RyKFNlc3Npb25Ub2tlblZpc2l0b3IpCiAgICB9Cn0K"},{"path":"src/app/host.rs","sha256":"bc7b2ec8e8d2b62d1fe800c76cdbe7aa616685add31fe2fa13b04d0df0732ae1","contentBase64":"dXNlIHN0ZDo6Zm10Ojp7RGVidWcsIEZvcm1hdHRlcn07Cgp1c2UgYWN0aXhfd2ViOjp3ZWI6OkJ5dGVzOwp1c2UgY29tbW9uOjphcGlfYmluZGluZ3M6OntzZWxmLCBEZXRhaWxlZEhvc3QsIEhvc3RPd25lciwgSG9zdFN0YXRlLCBQYWlyU3RhdHVzLCBVbmRldGFpbGVkSG9zdH07CnVzZSBtb29ubGlnaHRfY29tbW9uOjp7CiAgICBjcnlwdG86Om9wZW5zc2w6Ok9wZW5TU0xDcnlwdG9CYWNrZW5kLAogICAgaGlnaDo6ewogICAgICAgIE1vb25saWdodENsaWVudEVycm9yLAogICAgICAgIHRva2lvOjp7TW9vbmxpZ2h0SG9zdCwgYnJvYWRjYXN0X21hZ2ljX3BhY2tldH0sCiAgICB9LAogICAgaHR0cDo6ewogICAgICAgIENsaWVudElkZW50aWZpZXIsIENsaWVudFNlY3JldCwgU2VydmVySWRlbnRpZmllciwKICAgICAgICBwYWlyOjp7UGFpclBpbiwgUGFpcmluZ0NyeXB0b0JhY2tlbmQsIGNsaWVudDo6Q2xpZW50UGFpcmluZ0Vycm9yfSwKICAgICAgICBzZXJ2ZXJfaW5mbzo6U2VydmVySW5mb1Jlc3BvbnNlLAogICAgfSwKfTsKCnVzZSBjcmF0ZTo6YXBwOjp7CiAgICBBcHBFcnJvciwgQXBwSW5uZXIsIEFwcFJlZiwgTW9vbmxpZ2h0Q2xpZW50LAogICAgc3RvcmFnZTo6e1N0b3JhZ2VIb3N0LCBTdG9yYWdlSG9zdE1vZGlmeSwgU3RvcmFnZUhvc3RQYWlySW5mb30sCiAgICB1c2VyOjp7QXV0aGVudGljYXRlZFVzZXIsIFJvbGVUeXBlLCBVc2VySWR9LAp9OwoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBDb3B5LCBQYXJ0aWFsRXEsIEVxLCBIYXNoKV0KcHViIHN0cnVjdCBIb3N0SWQocHViIHUzMik7CgpwdWIgc3RydWN0IEhvc3QgewogICAgcHViKHN1cGVyKSBhcHA6IEFwcFJlZiwKICAgIHB1YihzdXBlcikgaWQ6IEhvc3RJZCwKICAgIHB1YihzdXBlcikgY2FjaGVfc3RvcmFnZTogT3B0aW9uPFN0b3JhZ2VIb3N0PiwKICAgIHB1YihzdXBlcikgY2FjaGVfaG9zdF9pbmZvOiBPcHRpb248KFVzZXJJZCwgU2VydmVySW5mb1Jlc3BvbnNlKT4sCn0KCmltcGwgRGVidWcgZm9yIEhvc3QgewogICAgZm4gZm10KCZzZWxmLCBmOiAmbXV0IEZvcm1hdHRlcjwnXz4pIC0+IHN0ZDo6Zm10OjpSZXN1bHQgewogICAgICAgIHdyaXRlIShmLCAiezo/fSIsIHNlbGYuaWQpCiAgICB9Cn0KCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgQ29weSwgUGFydGlhbEVxLCBFcSwgSGFzaCldCnB1YiBzdHJ1Y3QgQXBwSWQocHViIHUzMik7CgpwdWIgc3RydWN0IEFwcCB7CiAgICBwdWIgaWQ6IEFwcElkLAogICAgcHViIHRpdGxlOiBTdHJpbmcsCiAgICBwdWIgaXNfaGRyX3N1cHBvcnRlZDogYm9vbCwKfQoKaW1wbCBGcm9tPG1vb25saWdodF9jb21tb246Omh0dHA6OmFwcF9saXN0OjpBcHA+IGZvciBBcHAgewogICAgZm4gZnJvbSh2YWx1ZTogbW9vbmxpZ2h0X2NvbW1vbjo6aHR0cDo6YXBwX2xpc3Q6OkFwcCkgLT4gU2VsZiB7CiAgICAgICAgU2VsZiB7CiAgICAgICAgICAgIGlkOiBBcHBJZCh2YWx1ZS5pZCksCiAgICAgICAgICAgIHRpdGxlOiB2YWx1ZS50aXRsZSwKICAgICAgICAgICAgaXNfaGRyX3N1cHBvcnRlZDogdmFsdWUuaXNfaGRyX3N1cHBvcnRlZCwKICAgICAgICB9CiAgICB9Cn0KaW1wbCBGcm9tPEFwcD4gZm9yIGFwaV9iaW5kaW5nczo6QXBwIHsKICAgIGZuIGZyb20odmFsdWU6IEFwcCkgLT4gU2VsZiB7CiAgICAgICAgU2VsZiB7CiAgICAgICAgICAgIGFwcF9pZDogdmFsdWUuaWQuMCwKICAgICAgICAgICAgdGl0bGU6IHZhbHVlLnRpdGxlLAogICAgICAgICAgICBpc19oZHJfc3VwcG9ydGVkOiB2YWx1ZS5pc19oZHJfc3VwcG9ydGVkLAogICAgICAgIH0KICAgIH0KfQoKaW1wbCBIb3N0IHsKICAgICNbYWxsb3coZGVhZF9jb2RlKV0KICAgIHB1YiBmbiBpZCgmc2VsZikgLT4gSG9zdElkIHsKICAgICAgICBzZWxmLmlkCiAgICB9CgogICAgYXN5bmMgZm4gY2FuX3VzZSgmc2VsZiwgdXNlcjogJm11dCBBdXRoZW50aWNhdGVkVXNlcikgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj4gewogICAgICAgIGxldCBvd25lciA9IHNlbGYub3duZXIoKS5hd2FpdD87CiAgICAgICAgaWYgb3duZXIuaXNfbm9uZSgpCiAgICAgICAgICAgIHx8IG93bmVyID09IFNvbWUodXNlci5pZCgpKQogICAgICAgICAgICB8fCBtYXRjaGVzISh1c2VyLnJvbGUoKS5hd2FpdD8udHkoKS5hd2FpdD8sIFJvbGVUeXBlOjpBZG1pbikKICAgICAgICB7CiAgICAgICAgICAgIE9rKCgpKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIEVycihBcHBFcnJvcjo6Rm9yYmlkZGVuKQogICAgICAgIH0KICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gbW9kaWZ5KAogICAgICAgICZtdXQgc2VsZiwKICAgICAgICB1c2VyOiAmbXV0IEF1dGhlbnRpY2F0ZWRVc2VyLAogICAgICAgIG1vZGlmeTogU3RvcmFnZUhvc3RNb2RpZnksCiAgICApIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+IHsKICAgICAgICBzZWxmLmNhbl91c2UodXNlcikuYXdhaXQ/OwoKICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICBzZWxmLmNhY2hlX3N0b3JhZ2UgPSBOb25lOwoKICAgICAgICBhcHAuc3RvcmFnZS5tb2RpZnlfaG9zdChzZWxmLmlkLCBtb2RpZnkpLmF3YWl0PzsKCiAgICAgICAgT2soKCkpCiAgICB9CgogICAgcHViIGFzeW5jIGZuIG93bmVyKCZzZWxmKSAtPiBSZXN1bHQ8T3B0aW9uPFVzZXJJZD4sIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgbGV0IGhvc3QgPSBzZWxmLnN0b3JhZ2VfaG9zdCgmYXBwKS5hd2FpdD87CgogICAgICAgIE9rKGhvc3Qub3duZXIpCiAgICB9CiAgICBhc3luYyBmbiBvd25lcl9pbmZvKAogICAgICAgICZzZWxmLAogICAgICAgIHVzZXI6ICZBdXRoZW50aWNhdGVkVXNlciwKICAgICAgICB0aGlzOiAmU3RvcmFnZUhvc3QsCiAgICApIC0+IFJlc3VsdDxIb3N0T3duZXIsIEFwcEVycm9yPiB7CiAgICAgICAgT2sobWF0Y2ggdGhpcy5vd25lciB7CiAgICAgICAgICAgIE5vbmUgPT4gSG9zdE93bmVyOjpHbG9iYWwsCiAgICAgICAgICAgIFNvbWUodXNlcl9pZCkgaWYgdXNlci5pZCgpID09IHVzZXJfaWQgPT4gSG9zdE93bmVyOjpUaGlzVXNlciwKICAgICAgICAgICAgXyA9PiB1bnJlYWNoYWJsZSEoKSwKICAgICAgICB9KQogICAgfQoKICAgIHB1YiBhc3luYyBmbiB1bmRldGFpbGVkX2hvc3RfY2FjaGVkKAogICAgICAgICZzZWxmLAogICAgICAgIHVzZXI6ICZtdXQgQXV0aGVudGljYXRlZFVzZXIsCiAgICApIC0+IFJlc3VsdDxVbmRldGFpbGVkSG9zdCwgQXBwRXJyb3I+IHsKICAgICAgICBzZWxmLmNhbl91c2UodXNlcikuYXdhaXQ/OwoKICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICBsZXQgc3RvcmFnZSA9IHNlbGYuc3RvcmFnZV9ob3N0KCZhcHApLmF3YWl0PzsKICAgICAgICBsZXQgb3duZXIgPSBzZWxmLm93bmVyX2luZm8odXNlciwgJnN0b3JhZ2UpLmF3YWl0PzsKCiAgICAgICAgT2soVW5kZXRhaWxlZEhvc3QgewogICAgICAgICAgICBob3N0X2lkOiBzdG9yYWdlLmlkLjAsCiAgICAgICAgICAgIG5hbWU6IHN0b3JhZ2UuY2FjaGUubmFtZSwKICAgICAgICAgICAgb3duZXIsCiAgICAgICAgICAgIHBhaXJlZDogaWYgc3RvcmFnZS5wYWlyX2luZm8uaXNfc29tZSgpIHsKICAgICAgICAgICAgICAgIFBhaXJTdGF0dXM6OlBhaXJlZAogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgUGFpclN0YXR1czo6Tm90UGFpcmVkCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHNlcnZlcl9zdGF0ZTogTm9uZSwKICAgICAgICB9KQogICAgfQoKICAgIGFzeW5jIGZuIHVzZV9jbGllbnQ8Uj4oCiAgICAgICAgJm11dCBzZWxmLAogICAgICAgIGFwcDogJkFwcElubmVyLAogICAgICAgIHVzZXI6ICZtdXQgQXV0aGVudGljYXRlZFVzZXIsCiAgICAgICAgLy8gYXBwLCBodHRwc19jYXBhYmxlLCBjbGllbnQsIGhvc3QsIHBvcnQsIGNsaWVudF9pbmZvCiAgICAgICAgZjogaW1wbCBBc3luY0ZuT25jZSgmbXV0IFNlbGYsICZNb29ubGlnaHRIb3N0PE1vb25saWdodENsaWVudD4pIC0+IFIsCiAgICApIC0+IFJlc3VsdDxSLCBBcHBFcnJvcj4gewogICAgICAgIGxldCB1c2VyX3VuaXF1ZV9pZCA9IHVzZXIuaG9zdF91bmlxdWVfaWQoKS5hd2FpdD87CiAgICAgICAgbGV0IGhvc3RfZGF0YSA9IHNlbGYuc3RvcmFnZV9ob3N0KGFwcCkuYXdhaXQ/OwoKICAgICAgICAvLyBUT0RPOiBwdXQgdGhpcyBnbG9iYWxseSBzb21ld2hlcmUgYW5kIHJldHJpZXZlIGl0PwogICAgICAgIGxldCBob3N0ID0gTW9vbmxpZ2h0SG9zdDo6PE1vb25saWdodENsaWVudD46Om5ldygKICAgICAgICAgICAgaG9zdF9kYXRhLmFkZHJlc3MuY2xvbmUoKSwKICAgICAgICAgICAgaG9zdF9kYXRhLmh0dHBfcG9ydCwKICAgICAgICAgICAgU29tZSh1c2VyX3VuaXF1ZV9pZCksCiAgICAgICAgKT87CgogICAgICAgIGlmIGxldCBTb21lKHBhaXJfaW5mbykgPSBob3N0X2RhdGEucGFpcl9pbmZvIHsKICAgICAgICAgICAgaG9zdC5zZXRfaWRlbnRpdHkoCiAgICAgICAgICAgICAgICBDbGllbnRJZGVudGlmaWVyOjpmcm9tX3BlbShwYWlyX2luZm8uY2xpZW50X2NlcnRpZmljYXRlKSwKICAgICAgICAgICAgICAgIENsaWVudFNlY3JldDo6ZnJvbV9wZW0ocGFpcl9pbmZvLmNsaWVudF9wcml2YXRlX2tleSksCiAgICAgICAgICAgICAgICBTZXJ2ZXJJZGVudGlmaWVyOjpmcm9tX3BlbShwYWlyX2luZm8uc2VydmVyX2NlcnRpZmljYXRlKSwKICAgICAgICAgICAgKQogICAgICAgICAgICAuYXdhaXQ/OwogICAgICAgIH0KCiAgICAgICAgT2soZihzZWxmLCAmaG9zdCkuYXdhaXQpCiAgICB9CgogICAgYXN5bmMgZm4gc3RvcmFnZV9ob3N0KCZzZWxmLCBhcHA6ICZBcHBJbm5lcikgLT4gUmVzdWx0PFN0b3JhZ2VIb3N0LCBBcHBFcnJvcj4gewogICAgICAgIGlmIGxldCBTb21lKGhvc3QpID0gc2VsZi5jYWNoZV9zdG9yYWdlLmFzX3JlZigpIHsKICAgICAgICAgICAgcmV0dXJuIE9rKGhvc3QuY2xvbmUoKSk7CiAgICAgICAgfQoKICAgICAgICBhcHAuc3RvcmFnZS5nZXRfaG9zdChzZWxmLmlkKS5hd2FpdAogICAgfQoKICAgIHB1YiBhc3luYyBmbiBhZGRyZXNzX3BvcnQoCiAgICAgICAgJnNlbGYsCiAgICAgICAgdXNlcjogJm11dCBBdXRoZW50aWNhdGVkVXNlciwKICAgICkgLT4gUmVzdWx0PChTdHJpbmcsIHUxNiksIEFwcEVycm9yPiB7CiAgICAgICAgc2VsZi5jYW5fdXNlKHVzZXIpLmF3YWl0PzsKCiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgbGV0IGhvc3QgPSBhcHAuc3RvcmFnZS5nZXRfaG9zdChzZWxmLmlkKS5hd2FpdD87CgogICAgICAgIE9rKChob3N0LmFkZHJlc3MsIGhvc3QuaHR0cF9wb3J0KSkKICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gcGFpcl9pbmZvKAogICAgICAgICZzZWxmLAogICAgICAgIHVzZXI6ICZtdXQgQXV0aGVudGljYXRlZFVzZXIsCiAgICApIC0+IFJlc3VsdDxTdG9yYWdlSG9zdFBhaXJJbmZvLCBBcHBFcnJvcj4gewogICAgICAgIHNlbGYuY2FuX3VzZSh1c2VyKS5hd2FpdD87CgogICAgICAgIGxldCBhcHAgPSBzZWxmLmFwcC5hY2Nlc3MoKT87CgogICAgICAgIGxldCBob3N0ID0gYXBwLnN0b3JhZ2UuZ2V0X2hvc3Qoc2VsZi5pZCkuYXdhaXQ/OwoKICAgICAgICBob3N0LnBhaXJfaW5mby5va19vcihBcHBFcnJvcjo6SG9zdE5vdFBhaXJlZCkKICAgIH0KCiAgICBmbiBpc19vZmZsaW5lPFQ+KAogICAgICAgICZzZWxmLAogICAgICAgIHJlc3VsdDogUmVzdWx0PFQsIE1vb25saWdodENsaWVudEVycm9yPiwKICAgICkgLT4gUmVzdWx0PE9wdGlvbjxUPiwgQXBwRXJyb3I+IHsKICAgICAgICBtYXRjaCByZXN1bHQgewogICAgICAgICAgICBPayh2YWx1ZSkgPT4gT2soU29tZSh2YWx1ZSkpLAogICAgICAgICAgICBFcnIoTW9vbmxpZ2h0Q2xpZW50RXJyb3I6Ok9mZmxpbmUpID0+IE9rKE5vbmUpLAogICAgICAgICAgICBFcnIoZXJyKSA9PiBFcnIoZXJyLmludG8oKSksCiAgICAgICAgfQogICAgfQogICAgLy8gTm9uZSA9IE9mZmxpbmUKICAgIGFzeW5jIGZuIGhvc3RfaW5mbygKICAgICAgICAmbXV0IHNlbGYsCiAgICAgICAgYXBwOiAmQXBwSW5uZXIsCiAgICAgICAgdXNlcjogJm11dCBBdXRoZW50aWNhdGVkVXNlciwKICAgICkgLT4gUmVzdWx0PE9wdGlvbjxTZXJ2ZXJJbmZvUmVzcG9uc2U+LCBBcHBFcnJvcj4gewogICAgICAgIGxldCB1c2VyX2lkID0gdXNlci5pZCgpOwoKICAgICAgICBpZiBsZXQgU29tZSgoY2FjaGVfdXNlcl9pZCwgY2FjaGUpKSA9IHNlbGYuY2FjaGVfaG9zdF9pbmZvLmFzX3JlZigpCiAgICAgICAgICAgICYmICpjYWNoZV91c2VyX2lkID09IHVzZXJfaWQKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBPayhTb21lKGNhY2hlLmNsb25lKCkpKTsKICAgICAgICB9CgogICAgICAgIHNlbGYudXNlX2NsaWVudChhcHAsIHVzZXIsIGFzeW5jIHx0aGlzLCBob3N0fCB7CiAgICAgICAgICAgIGxldCBpbmZvID0gbWF0Y2ggdGhpcy5pc19vZmZsaW5lKGhvc3Quc2VydmVyX2luZm8oKS5hd2FpdCkgewogICAgICAgICAgICAgICAgT2soU29tZSh2YWx1ZSkpID0+IHZhbHVlLAogICAgICAgICAgICAgICAgZXJyID0+IHJldHVybiBlcnIsCiAgICAgICAgICAgIH07CgogICAgICAgICAgICB0aGlzLmNhY2hlX2hvc3RfaW5mbyA9IFNvbWUoKHVzZXJfaWQsIGluZm8uY2xvbmUoKSkpOwoKICAgICAgICAgICAgT2soU29tZShpbmZvKSkKICAgICAgICB9KQogICAgICAgIC5hd2FpdD8KICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gdW5kZXRhaWxlZF9ob3N0KAogICAgICAgICZtdXQgc2VsZiwKICAgICAgICB1c2VyOiAmbXV0IEF1dGhlbnRpY2F0ZWRVc2VyLAogICAgKSAtPiBSZXN1bHQ8VW5kZXRhaWxlZEhvc3QsIEFwcEVycm9yPiB7CiAgICAgICAgc2VsZi5jYW5fdXNlKHVzZXIpLmF3YWl0PzsKCiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZWxmLnN0b3JhZ2VfaG9zdCgmYXBwKS5hd2FpdD87CiAgICAgICAgbGV0IG93bmVyID0gc2VsZi5vd25lcl9pbmZvKHVzZXIsICZzdG9yYWdlKS5hd2FpdD87CgogICAgICAgIG1hdGNoIHNlbGYuaG9zdF9pbmZvKCZhcHAsIHVzZXIpLmF3YWl0IHsKICAgICAgICAgICAgT2soU29tZShpbmZvKSkgPT4gT2soVW5kZXRhaWxlZEhvc3QgewogICAgICAgICAgICAgICAgaG9zdF9pZDogc2VsZi5pZC4wLAogICAgICAgICAgICAgICAgbmFtZTogaW5mby5ob3N0X25hbWUsCiAgICAgICAgICAgICAgICBvd25lciwKICAgICAgICAgICAgICAgIHBhaXJlZDogUGFpclN0YXR1czo6ZnJvbV9wYWlyZWQoaW5mby5wYWlyZWQpLAogICAgICAgICAgICAgICAgc2VydmVyX3N0YXRlOiBTb21lKEhvc3RTdGF0ZTo6ZnJvbShpbmZvLnN0YXRlKSksCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBPayhOb25lKSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgaG9zdCA9IHNlbGYuc3RvcmFnZV9ob3N0KCZhcHApLmF3YWl0PzsKCiAgICAgICAgICAgICAgICBsZXQgcGFpcmVkID0gaWYgaG9zdC5wYWlyX2luZm8uaXNfc29tZSgpIHsKICAgICAgICAgICAgICAgICAgICBQYWlyU3RhdHVzOjpQYWlyZWQKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgUGFpclN0YXR1czo6Tm90UGFpcmVkCiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIE9rKFVuZGV0YWlsZWRIb3N0IHsKICAgICAgICAgICAgICAgICAgICBob3N0X2lkOiBzZWxmLmlkLjAsCiAgICAgICAgICAgICAgICAgICAgbmFtZTogaG9zdC5jYWNoZS5uYW1lLAogICAgICAgICAgICAgICAgICAgIG93bmVyLAogICAgICAgICAgICAgICAgICAgIHBhaXJlZCwKICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfc3RhdGU6IE5vbmUsCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVycihlcnIpID0+IEVycihlcnIpLAogICAgICAgIH0KICAgIH0KICAgIHB1YiBhc3luYyBmbiBkZXRhaWxlZF9ob3N0KAogICAgICAgICZtdXQgc2VsZiwKICAgICAgICB1c2VyOiAmbXV0IEF1dGhlbnRpY2F0ZWRVc2VyLAogICAgKSAtPiBSZXN1bHQ8RGV0YWlsZWRIb3N0LCBBcHBFcnJvcj4gewogICAgICAgIHNlbGYuY2FuX3VzZSh1c2VyKS5hd2FpdD87CgogICAgICAgIGxldCBhcHAgPSBzZWxmLmFwcC5hY2Nlc3MoKT87CgogICAgICAgIGxldCBzdG9yYWdlID0gc2VsZi5zdG9yYWdlX2hvc3QoJmFwcCkuYXdhaXQ/OwoKICAgICAgICBsZXQgb3duZXIgPSBzZWxmLm93bmVyX2luZm8odXNlciwgJnN0b3JhZ2UpLmF3YWl0PzsKCiAgICAgICAgbWF0Y2ggc2VsZi5ob3N0X2luZm8oJmFwcCwgdXNlcikuYXdhaXQgewogICAgICAgICAgICBPayhTb21lKGluZm8pKSA9PiBPayhEZXRhaWxlZEhvc3QgewogICAgICAgICAgICAgICAgaG9zdF9pZDogc2VsZi5pZC4wLAogICAgICAgICAgICAgICAgb3duZXIsCiAgICAgICAgICAgICAgICBuYW1lOiBpbmZvLmhvc3RfbmFtZSwKICAgICAgICAgICAgICAgIHBhaXJlZDogUGFpclN0YXR1czo6ZnJvbV9wYWlyZWQoaW5mby5wYWlyZWQpLAogICAgICAgICAgICAgICAgc2VydmVyX3N0YXRlOiBTb21lKEhvc3RTdGF0ZTo6ZnJvbShpbmZvLnN0YXRlKSksCiAgICAgICAgICAgICAgICBhZGRyZXNzOiBzdG9yYWdlLmFkZHJlc3MsCiAgICAgICAgICAgICAgICBodHRwX3BvcnQ6IHN0b3JhZ2UuaHR0cF9wb3J0LAogICAgICAgICAgICAgICAgaHR0cHNfcG9ydDogaW5mby5odHRwc19wb3J0LAogICAgICAgICAgICAgICAgZXh0ZXJuYWxfcG9ydDogaW5mby5leHRlcm5hbF9wb3J0LAogICAgICAgICAgICAgICAgdmVyc2lvbjogaW5mby5hcHBfdmVyc2lvbi50b19zdHJpbmcoKSwKICAgICAgICAgICAgICAgIGdmZV92ZXJzaW9uOiBpbmZvLmdmZV92ZXJzaW9uLAogICAgICAgICAgICAgICAgdW5pcXVlX2lkOiBpbmZvLnVuaXF1ZV9pZC50b19zdHJpbmcoKSwKICAgICAgICAgICAgICAgIG1hYzogaW5mby5tYWMubWFwKHxtYWN8IG1hYy50b19zdHJpbmcoKSksCiAgICAgICAgICAgICAgICBsb2NhbF9pcDogaW5mby5sb2NhbF9pcC50b19zdHJpbmcoKSwKICAgICAgICAgICAgICAgIGN1cnJlbnRfZ2FtZTogaW5mby5jdXJyZW50X2dhbWUsCiAgICAgICAgICAgICAgICBtYXhfbHVtYV9waXhlbHNfaGV2YzogaW5mby5tYXhfbHVtYV9waXhlbHNfaGV2YywKICAgICAgICAgICAgICAgIHNlcnZlcl9jb2RlY19tb2RlX3N1cHBvcnQ6IGluZm8uc2VydmVyX2NvZGVjX21vZGVfc3VwcG9ydC5iaXRzKCksCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICBPayhOb25lKSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgcGFpcmVkID0gaWYgc3RvcmFnZS5wYWlyX2luZm8uaXNfc29tZSgpIHsKICAgICAgICAgICAgICAgICAgICBQYWlyU3RhdHVzOjpQYWlyZWQKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgUGFpclN0YXR1czo6Tm90UGFpcmVkCiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIE9rKERldGFpbGVkSG9zdCB7CiAgICAgICAgICAgICAgICAgICAgaG9zdF9pZDogc2VsZi5pZC4wLAogICAgICAgICAgICAgICAgICAgIG93bmVyLAogICAgICAgICAgICAgICAgICAgIG5hbWU6IHN0b3JhZ2UuY2FjaGUubmFtZSwKICAgICAgICAgICAgICAgICAgICBwYWlyZWQsCiAgICAgICAgICAgICAgICAgICAgc2VydmVyX3N0YXRlOiBOb25lLAogICAgICAgICAgICAgICAgICAgIGFkZHJlc3M6IHN0b3JhZ2UuYWRkcmVzcywKICAgICAgICAgICAgICAgICAgICBodHRwX3BvcnQ6IHN0b3JhZ2UuaHR0cF9wb3J0LAogICAgICAgICAgICAgICAgICAgIGh0dHBzX3BvcnQ6IDAsCiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfcG9ydDogMCwKICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOiAiT2ZmbGluZSIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgZ2ZlX3ZlcnNpb246ICJPZmZsaW5lIi50b19zdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICB1bmlxdWVfaWQ6ICJPZmZsaW5lIi50b19zdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICBtYWM6IHN0b3JhZ2UuY2FjaGUubWFjLm1hcCh8bWFjfCBtYWMudG9fc3RyaW5nKCkpLAogICAgICAgICAgICAgICAgICAgIGxvY2FsX2lwOiAiT2ZmbGluZSIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgY3VycmVudF9nYW1lOiAwLAogICAgICAgICAgICAgICAgICAgIG1heF9sdW1hX3BpeGVsc19oZXZjOiAwLAogICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jb2RlY19tb2RlX3N1cHBvcnQ6IDAsCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVycihlcnIpID0+IEVycihlcnIpLAogICAgICAgIH0KICAgIH0KCiAgICAjW2FsbG93KGRlYWRfY29kZSldCiAgICBwdWIgYXN5bmMgZm4gaXNfcGFpcmVkKAogICAgICAgICZtdXQgc2VsZiwKICAgICAgICB1c2VyOiAmbXV0IEF1dGhlbnRpY2F0ZWRVc2VyLAogICAgKSAtPiBSZXN1bHQ8UGFpclN0YXR1cywgQXBwRXJyb3I+IHsKICAgICAgICBzZWxmLmNhbl91c2UodXNlcikuYXdhaXQ/OwoKICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICBtYXRjaCBzZWxmLmhvc3RfaW5mbygmYXBwLCB1c2VyKS5hd2FpdD8gewogICAgICAgICAgICBTb21lKGluZm8pID0+IE9rKFBhaXJTdGF0dXM6OmZyb21fcGFpcmVkKGluZm8ucGFpcmVkKSksCiAgICAgICAgICAgIE5vbmUgPT4gT2soUGFpclN0YXR1czo6Tm90UGFpcmVkKSwKICAgICAgICB9CiAgICB9CgogICAgcHViIGFzeW5jIGZuIHBhaXIoCiAgICAgICAgJm11dCBzZWxmLAogICAgICAgIHVzZXI6ICZtdXQgQXV0aGVudGljYXRlZFVzZXIsCiAgICAgICAgcGluOiBQYWlyUGluLAogICAgKSAtPiBSZXN1bHQ8KCksIEFwcEVycm9yPiB7CiAgICAgICAgc2VsZi5jYW5fdXNlKHVzZXIpLmF3YWl0PzsKCiAgICAgICAgbGV0IHVzZXJfaWQgPSB1c2VyLmlkKCk7CiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgbGV0IGluZm8gPSBzZWxmCiAgICAgICAgICAgIC5ob3N0X2luZm8oJmFwcCwgdXNlcikKICAgICAgICAgICAgLmF3YWl0PwogICAgICAgICAgICAub2tfb3IoQXBwRXJyb3I6Okhvc3ROb3RGb3VuZCk/OwoKICAgICAgICBpZiBpbmZvLnBhaXJlZCB7CiAgICAgICAgICAgIHJldHVybiBFcnIoQXBwRXJyb3I6Okhvc3RQYWlyZWQpOwogICAgICAgIH0KCiAgICAgICAgbGV0IG1vZGlmeSA9IHNlbGYKICAgICAgICAgICAgLnVzZV9jbGllbnQoJmFwcCwgdXNlciwgYXN5bmMgfHRoaXMsIGhvc3R8IHsKICAgICAgICAgICAgICAgIGxldCAoY2xpZW50X2lkZW50aWZpZXIsIGNsaWVudF9zZWNyZXQpID0gT3BlblNTTENyeXB0b0JhY2tlbmQKICAgICAgICAgICAgICAgICAgICAuZ2VuZXJhdGVfY2xpZW50X2lkZW50aXR5KCkKICAgICAgICAgICAgICAgICAgICAubWFwX2Vycih8ZXJyfCB7CiAgICAgICAgICAgICAgICAgICAgICAgIE1vb25saWdodENsaWVudEVycm9yOjpQYWlyaW5nKENsaWVudFBhaXJpbmdFcnJvcjo6Q3J5cHRvKEJveDo6bmV3KGVycikpKQogICAgICAgICAgICAgICAgICAgIH0pPzsKCiAgICAgICAgICAgICAgICAvLyBTdG9yZSBwYWlyIGluZm8KICAgICAgICAgICAgICAgIGhvc3QucGFpcigKICAgICAgICAgICAgICAgICAgICAmY2xpZW50X2lkZW50aWZpZXIsCiAgICAgICAgICAgICAgICAgICAgJmNsaWVudF9zZWNyZXQsCiAgICAgICAgICAgICAgICAgICAgInJvdGgiLnRvX3N0cmluZygpLAogICAgICAgICAgICAgICAgICAgIHBpbiwKICAgICAgICAgICAgICAgICAgICBPcGVuU1NMQ3J5cHRvQmFja2VuZCwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hd2FpdD87CiAgICAgICAgICAgICAgICBsZXQgaW5mbyA9IGhvc3Quc2VydmVyX2luZm8oKS5hd2FpdD87CgogICAgICAgICAgICAgICAgbGV0IGhvc3RfbmFtZSA9IGluZm8uaG9zdF9uYW1lLmNsb25lKCk7CiAgICAgICAgICAgICAgICBsZXQgbWFjID0gaW5mby5tYWM7CgogICAgICAgICAgICAgICAgdGhpcy5jYWNoZV9ob3N0X2luZm8gPSBTb21lKCh1c2VyX2lkLCBpbmZvLmNsb25lKCkpKTsKCiAgICAgICAgICAgICAgICBsZXQgU29tZSgoXywgXywgc2VydmVyX2lkZW50aWZpZXIpKSA9IGhvc3QuaWRlbnRpdHkoKS5hd2FpdCBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB1bnJlYWNoYWJsZSEoKQogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICBPazo6PF8sIEFwcEVycm9yPihTdG9yYWdlSG9zdE1vZGlmeSB7CiAgICAgICAgICAgICAgICAgICAgcGFpcl9pbmZvOiBTb21lKFNvbWUoU3RvcmFnZUhvc3RQYWlySW5mbyB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0aWZpY2F0ZTogY2xpZW50X2lkZW50aWZpZXIudG9fcGVtKCksCiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9wcml2YXRlX2tleTogY2xpZW50X3NlY3JldC50b19wZW0oKSwKICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2NlcnRpZmljYXRlOiBzZXJ2ZXJfaWRlbnRpZmllci50b19wZW0oKSwKICAgICAgICAgICAgICAgICAgICB9KSksCiAgICAgICAgICAgICAgICAgICAgY2FjaGVfbmFtZTogU29tZShob3N0X25hbWUpLAogICAgICAgICAgICAgICAgICAgIGNhY2hlX21hYzogU29tZShtYWMpLAogICAgICAgICAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9KQogICAgICAgICAgICAuYXdhaXQ/PzsKCiAgICAgICAgc2VsZi5tb2RpZnkodXNlciwgbW9kaWZ5KS5hd2FpdAogICAgfQoKICAgIHB1YiBhc3luYyBmbiB3YWtlKCZzZWxmLCB1c2VyOiAmbXV0IEF1dGhlbnRpY2F0ZWRVc2VyKSAtPiBSZXN1bHQ8KCksIEFwcEVycm9yPiB7CiAgICAgICAgc2VsZi5jYW5fdXNlKHVzZXIpLmF3YWl0PzsKCiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZWxmLnN0b3JhZ2VfaG9zdCgmYXBwKS5hd2FpdD87CgogICAgICAgIGlmIGxldCBTb21lKG1hYykgPSBzdG9yYWdlLmNhY2hlLm1hYyB7CiAgICAgICAgICAgIGJyb2FkY2FzdF9tYWdpY19wYWNrZXQobWFjKS5hd2FpdD87CiAgICAgICAgICAgIE9rKCgpKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIEVycihBcHBFcnJvcjo6SG9zdE5vdEZvdW5kKQogICAgICAgIH0KICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gbGlzdF9hcHBzKCZtdXQgc2VsZiwgdXNlcjogJm11dCBBdXRoZW50aWNhdGVkVXNlcikgLT4gUmVzdWx0PFZlYzxBcHA+LCBBcHBFcnJvcj4gewogICAgICAgIHNlbGYuY2FuX3VzZSh1c2VyKS5hd2FpdD87CgogICAgICAgIGxldCBhcHAgPSBzZWxmLmFwcC5hY2Nlc3MoKT87CgogICAgICAgIHNlbGYudXNlX2NsaWVudCgmYXBwLCB1c2VyLCBhc3luYyB8X3RoaXMsIGhvc3R8IHsKICAgICAgICAgICAgbGV0IGFwcHMgPSBob3N0LmFwcF9saXN0KCkuYXdhaXQ/OwoKICAgICAgICAgICAgbGV0IGFwcHMgPSBhcHBzLmludG9faXRlcigpLm1hcChBcHA6OmZyb20pLmNvbGxlY3Q6OjxWZWM8Xz4+KCk7CgogICAgICAgICAgICBPayhhcHBzKQogICAgICAgIH0pCiAgICAgICAgLmF3YWl0PwogICAgfQogICAgcHViIGFzeW5jIGZuIGFwcF9pbWFnZSgKICAgICAgICAmbXV0IHNlbGYsCiAgICAgICAgdXNlcjogJm11dCBBdXRoZW50aWNhdGVkVXNlciwKICAgICAgICBhcHBfaWQ6IEFwcElkLAogICAgICAgIGZvcmNlX3JlZnJlc2g6IGJvb2wsCiAgICApIC0+IFJlc3VsdDxCeXRlcywgQXBwRXJyb3I+IHsKICAgICAgICBzZWxmLmNhbl91c2UodXNlcikuYXdhaXQ/OwoKICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICBsZXQgY2FjaGVfa2V5ID0gKHVzZXIuaWQoKSwgc2VsZi5pZCwgYXBwX2lkKTsKICAgICAgICBpZiAhZm9yY2VfcmVmcmVzaCB7CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxldCBhcHBfaW1hZ2VzID0gYXBwLmFwcF9pbWFnZV9jYWNoZS5yZWFkKCkuYXdhaXQ7CiAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShhcHBfaW1hZ2UpID0gYXBwX2ltYWdlcy5nZXQoJmNhY2hlX2tleSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBPayhhcHBfaW1hZ2UuY2xvbmUoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxldCBhcHBfaW1hZ2UgPSBzZWxmCiAgICAgICAgICAgIC51c2VfY2xpZW50KCZhcHAsIHVzZXIsIGFzeW5jIHxfdGhpcywgaG9zdHwgewogICAgICAgICAgICAgICAgbGV0IGltYWdlID0gaG9zdC5yZXF1ZXN0X2FwcF9pbWFnZShhcHBfaWQuMCkuYXdhaXQ/OwoKICAgICAgICAgICAgICAgIE9rOjo8XywgQXBwRXJyb3I+KGltYWdlKQogICAgICAgICAgICB9KQogICAgICAgICAgICAuYXdhaXQ/PzsKICAgICAgICBsZXQgYXBwX2ltYWdlID0gQnl0ZXM6OmZyb21fb3duZXIoYXBwX2ltYWdlKTsKCiAgICAgICAgewogICAgICAgICAgICBsZXQgbXV0IGFwcF9pbWFnZXMgPSBhcHAuYXBwX2ltYWdlX2NhY2hlLndyaXRlKCkuYXdhaXQ7CiAgICAgICAgICAgIGFwcF9pbWFnZXMuaW5zZXJ0KGNhY2hlX2tleSwgYXBwX2ltYWdlLmNsb25lKCkpOwogICAgICAgIH0KCiAgICAgICAgT2soYXBwX2ltYWdlKQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBjYW5jZWxfYXBwKCZtdXQgc2VsZiwgdXNlcjogJm11dCBBdXRoZW50aWNhdGVkVXNlcikgLT4gUmVzdWx0PGJvb2wsIEFwcEVycm9yPiB7CiAgICAgICAgc2VsZi5jYW5fdXNlKHVzZXIpLmF3YWl0PzsKCiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgc2VsZi51c2VfY2xpZW50KCZhcHAsIHVzZXIsIGFzeW5jIHxfdGhpcywgaG9zdHwgewogICAgICAgICAgICBsZXQgc3VjY2VzcyA9IGhvc3QuY2FuY2VsKCkuYXdhaXQ/OwoKICAgICAgICAgICAgT2soc3VjY2VzcykKICAgICAgICB9KQogICAgICAgIC5hd2FpdD8KICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gZGVsZXRlKHNlbGYsIHVzZXI6ICZtdXQgQXV0aGVudGljYXRlZFVzZXIpIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICBsZXQgaG9zdCA9IGFwcC5zdG9yYWdlLmdldF9ob3N0KHNlbGYuaWQpLmF3YWl0PzsKCiAgICAgICAgaWYgaG9zdC5vd25lciA9PSBTb21lKHVzZXIuaWQoKSkKICAgICAgICAgICAgfHwgbWF0Y2hlcyEodXNlci5yb2xlKCkuYXdhaXQ/LnR5KCkuYXdhaXQ/LCBSb2xlVHlwZTo6QWRtaW4pCiAgICAgICAgewogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBsZXQgbXV0IGFwcF9pbWFnZXMgPSBhcHAuYXBwX2ltYWdlX2NhY2hlLndyaXRlKCkuYXdhaXQ7CiAgICAgICAgICAgICAgICBhcHBfaW1hZ2VzLnJldGFpbih8KF8sIGhvc3RfaWQsIF8pLCBffCAqaG9zdF9pZCAhPSBzZWxmLmlkKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZHJvcChhcHApOwogICAgICAgICAgICBzZWxmLmRlbGV0ZV9ub19hdXRoKCkuYXdhaXQKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBFcnIoQXBwRXJyb3I6OkZvcmJpZGRlbikKICAgICAgICB9CiAgICB9CiAgICBwdWIgYXN5bmMgZm4gZGVsZXRlX25vX2F1dGgoc2VsZikgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj4gewogICAgICAgIGxldCBhcHAgPSBzZWxmLmFwcC5hY2Nlc3MoKT87CgogICAgICAgIGFwcC5zdG9yYWdlLnJlbW92ZV9ob3N0KHNlbGYuaWQpLmF3YWl0PzsKCiAgICAgICAgT2soKCkpCiAgICB9Cn0K"},{"path":"src/app/mod.rs","sha256":"5fec4accf81e0233e487555a176b432708000893352bf51e3f53ba60ce9fe9c3","contentBase64":"dXNlIHN0ZDo6ewogICAgY29sbGVjdGlvbnM6Okhhc2hNYXAsCiAgICBpbywgbWVtLAogICAgb3BzOjpEZXJlZiwKICAgIHN5bmM6OntBcmMsIFdlYWt9LAp9OwoKdXNlIGFjdGl4X3dlYjo6e1Jlc3BvbnNlRXJyb3IsIGh0dHA6OlN0YXR1c0NvZGUsIHdlYjo6Qnl0ZXN9Owp1c2UgY29tbW9uOjpjb25maWc6OkNvbmZpZzsKdXNlIGZ1dHVyZXNfY29uY3VycmVuY3k6OmZ1dHVyZTo6UmFjZU9rOwp1c2UgaGV4OjpGcm9tSGV4RXJyb3I7CnVzZSBtb29ubGlnaHRfY29tbW9uOjp7aGlnaDo6TW9vbmxpZ2h0Q2xpZW50RXJyb3IsIGh0dHA6OmNsaWVudDo6dG9raW9faHlwZXI6OlRva2lvSHlwZXJDbGllbnR9Owp1c2Ugb3BlbnNzbDo6ZXJyb3I6OkVycm9yU3RhY2s7CnVzZSB0aGlzZXJyb3I6OkVycm9yOwp1c2UgdG9raW86OnN5bmM6OlJ3TG9jazsKdXNlIHRyYWNpbmc6OntlcnJvciwgaW5mbywgd2Fybn07Cgp1c2UgY3JhdGU6OmFwcDo6ewogICAgYXV0aDo6e1Nlc3Npb25Ub2tlbiwgVXNlckF1dGh9LAogICAgaG9zdDo6e0FwcElkLCBIb3N0SWR9LAogICAgcGFzc3dvcmQ6OlN0b3JhZ2VQYXNzd29yZCwKICAgIHJvbGU6OntSb2xlLCBSb2xlSWR9LAogICAgc3RvcmFnZTo6ewogICAgICAgIEVpdGhlciwgU3RvcmFnZSwgU3RvcmFnZUhvc3RNb2RpZnksIFN0b3JhZ2VSb2xlQWRkLCBTdG9yYWdlUm9sZURlZmF1bHRTZXR0aW5ncywKICAgICAgICBTdG9yYWdlUm9sZVBlcm1pc3Npb25zLCBTdG9yYWdlVXNlckFkZCwgY3JlYXRlX3N0b3JhZ2UsCiAgICB9LAogICAgdXNlcjo6e0FkbWluLCBBdXRoZW50aWNhdGVkVXNlciwgUm9sZVR5cGUsIFVzZXIsIFVzZXJJZH0sCn07CgpwdWIgbW9kIGF1dGg7CnB1YiBtb2QgaG9zdDsKcHViIG1vZCBwYXNzd29yZDsKcHViIG1vZCByb2xlOwpwdWIgbW9kIHN0b3JhZ2U7CnB1YiBtb2QgdXNlcjsKCiNbZGVyaXZlKERlYnVnLCBFcnJvcildCnB1YiBlbnVtIEFwcEVycm9yIHsKICAgICNbZXJyb3IoInRoZSBhcHAgZ290IGRlc3Ryb3llZCIpXQogICAgQXBwRGVzdHJveWVkLAogICAgI1tlcnJvcigidGhlIHVzZXIgd2FzIG5vdCBmb3VuZCIpXQogICAgVXNlck5vdEZvdW5kLAogICAgI1tlcnJvcigidGhlIHJvbGUgd2FzIG5vdCBmb3VuZCIpXQogICAgUm9sZU5vdEZvdW5kLAogICAgI1tlcnJvcigibW9yZSB0aGFuIG9uZSB1c2VyIGFscmVhZHkgZXhpc3RzIildCiAgICBGaXJzdFVzZXJBbHJlYWR5RXhpc3RzLAogICAgI1tlcnJvcigidGhlIGNvbmZpZyBvcHRpb24gZmlyc3RfbG9naW5fY3JlYXRlX2FkbWluIGlzIG5vdCB0cnVlIildCiAgICBGaXJzdExvZ2luQ3JlYXRlQWRtaW5Ob3RTZXQsCiAgICAjW2Vycm9yKCJ0aGUgdXNlciBhbHJlYWR5IGV4aXN0cyIpXQogICAgVXNlckFscmVhZHlFeGlzdHMsCiAgICAjW2Vycm9yKCJ0aGUgaG9zdCB3YXMgbm90IGZvdW5kIildCiAgICBIb3N0Tm90Rm91bmQsCiAgICAjW2Vycm9yKCJ0aGUgaG9zdCB3YXMgYWxyZWFkeSBwYWlyZWQiKV0KICAgIEhvc3RQYWlyZWQsCiAgICAjW2Vycm9yKCJ0aGUgaG9zdCBtdXN0IGJlIHBhaXJlZCBmb3IgdGhpcyBhY3Rpb24iKV0KICAgIEhvc3ROb3RQYWlyZWQsCiAgICAvLyAtLSBVbmF1dGhvcml6ZWQKICAgICNbZXJyb3IoInRoZSBjcmVkZW50aWFscyBkb24ndCBleGlzdHMiKV0KICAgIENyZWRlbnRpYWxzV3JvbmcsCiAgICAjW2Vycm9yKCJ0aGUgaG9zdCB3YXMgbm90IGZvdW5kIildCiAgICBTZXNzaW9uVG9rZW5Ob3RGb3VuZCwKICAgICNbZXJyb3IoInRoZSBhY3Rpb24gaXMgbm90IGFsbG93ZWQgYmVjYXVzZSB0aGUgdXNlciBpcyBub3QgYXV0aG9yaXplZCwgNDAxIildCiAgICBVbmF1dGhvcml6ZWQsCiAgICAjW2Vycm9yKCJ1c2luZyBhIGN1c3RvbSBoZWFkZXIgZm9yIGF1dGhvcml6YXRpb24gaXMgZGlzYWJsZWQiKV0KICAgIEhlYWRlckF1dGhEaXNhYmxlZCwKICAgIC8vIC0tCiAgICAjW2Vycm9yKCJ0aGUgYWN0aW9uIGlzIG5vdCBhbGxvd2VkIHdpdGggdGhlIGN1cnJlbnQgcHJpdmlsZWdlcywgNDAzIildCiAgICBGb3JiaWRkZW4sCiAgICAvLyAtLSBCYWQgUmVxdWVzdAogICAgI1tlcnJvcigidGhlIGF1dGhvcml6YXRpb24gaGVhZGVyIGlzIG5vdCBhIGJlYXJlciIpXQogICAgQXV0aG9yaXphdGlvbk5vdEJlYXJlciwKICAgICNbZXJyb3IoInRoZSBjdXN0b20gaGVhZGVyIHVzZWQgdG8gYXV0aG9yaXplIGlzIG1hbGZvcm1lZCIpXQogICAgSGVhZGVyQXV0aE1hbGZvcm1lZCwKICAgICNbZXJyb3IoInRoZSBhdXRob3JpemF0aW9uIGhlYWRlciBpcyBub3QgYSBiZWFyZXIiKV0KICAgIEJlYXJlck1hbGZvcm1lZCwKICAgICNbZXJyb3IoInRoZSBwYXNzd29yZCBpcyBlbXB0eSIpXQogICAgUGFzc3dvcmRFbXB0eSwKICAgICNbZXJyb3IoInRoZSBwYXNzd29yZCBpcyBlbXB0eSIpXQogICAgVXNlck5hbWVFbXB0eSwKICAgICNbZXJyb3IoInRoZSBhdXRob3JpemF0aW9uIGhlYWRlciBpcyBub3QgYSBiZWFyZXIiKV0KICAgIEJhZFJlcXVlc3QsCiAgICAvLyAtLQogICAgI1tlcnJvcigib3BlbnNzbCBlcnJvciBvY2N1cmVkOiB7MH0iKV0KICAgIE9wZW5TU0woI1tmcm9tXSBFcnJvclN0YWNrKSwKICAgICNbZXJyb3IoImhleCBlcnJvciBvY2N1cmVkOiB7MH0iKV0KICAgIEhleCgjW2Zyb21dIEZyb21IZXhFcnJvciksCiAgICAjW2Vycm9yKCJpbyBlcnJvcjogezB9IildCiAgICBJbygjW2Zyb21dIGlvOjpFcnJvciksCiAgICAjW2Vycm9yKCJtb29ubGlnaHQgZXJyb3I6IHswfSIpXQogICAgTW9vbmxpZ2h0KCNbZnJvbV0gTW9vbmxpZ2h0Q2xpZW50RXJyb3IpLAp9CgppbXBsIFJlc3BvbnNlRXJyb3IgZm9yIEFwcEVycm9yIHsKICAgIGZuIHN0YXR1c19jb2RlKCZzZWxmKSAtPiBTdGF0dXNDb2RlIHsKICAgICAgICBtYXRjaCBzZWxmIHsKICAgICAgICAgICAgU2VsZjo6QXBwRGVzdHJveWVkID0+IFN0YXR1c0NvZGU6OklOVEVSTkFMX1NFUlZFUl9FUlJPUiwKICAgICAgICAgICAgU2VsZjo6Rmlyc3RVc2VyQWxyZWFkeUV4aXN0cyA9PiBTdGF0dXNDb2RlOjpJTlRFUk5BTF9TRVJWRVJfRVJST1IsCiAgICAgICAgICAgIFNlbGY6OkZpcnN0TG9naW5DcmVhdGVBZG1pbk5vdFNldCA9PiBTdGF0dXNDb2RlOjpJTlRFUk5BTF9TRVJWRVJfRVJST1IsCiAgICAgICAgICAgIFNlbGY6Okhvc3ROb3RGb3VuZCA9PiBTdGF0dXNDb2RlOjpOT1RfRk9VTkQsCiAgICAgICAgICAgIFNlbGY6Okhvc3ROb3RQYWlyZWQgPT4gU3RhdHVzQ29kZTo6Rk9SQklEREVOLAogICAgICAgICAgICBTZWxmOjpIb3N0UGFpcmVkID0+IFN0YXR1c0NvZGU6Ok5PVF9NT0RJRklFRCwKICAgICAgICAgICAgU2VsZjo6VXNlck5vdEZvdW5kID0+IFN0YXR1c0NvZGU6Ok5PVF9GT1VORCwKICAgICAgICAgICAgU2VsZjo6Um9sZU5vdEZvdW5kID0+IFN0YXR1c0NvZGU6Ok5PVF9GT1VORCwKICAgICAgICAgICAgU2VsZjo6VXNlckFscmVhZHlFeGlzdHMgPT4gU3RhdHVzQ29kZTo6Q09ORkxJQ1QsCiAgICAgICAgICAgIFNlbGY6OkNyZWRlbnRpYWxzV3JvbmcgPT4gU3RhdHVzQ29kZTo6VU5BVVRIT1JJWkVELAogICAgICAgICAgICBTZWxmOjpTZXNzaW9uVG9rZW5Ob3RGb3VuZCA9PiBTdGF0dXNDb2RlOjpVTkFVVEhPUklaRUQsCiAgICAgICAgICAgIFNlbGY6OlVuYXV0aG9yaXplZCA9PiBTdGF0dXNDb2RlOjpVTkFVVEhPUklaRUQsCiAgICAgICAgICAgIFNlbGY6OkZvcmJpZGRlbiA9PiBTdGF0dXNDb2RlOjpGT1JCSURERU4sCiAgICAgICAgICAgIFNlbGY6Ok9wZW5TU0woXykgPT4gU3RhdHVzQ29kZTo6SU5URVJOQUxfU0VSVkVSX0VSUk9SLAogICAgICAgICAgICBTZWxmOjpIZWFkZXJBdXRoRGlzYWJsZWQgPT4gU3RhdHVzQ29kZTo6VU5BVVRIT1JJWkVELAogICAgICAgICAgICBTZWxmOjpIZXgoXykgPT4gU3RhdHVzQ29kZTo6QkFEX1JFUVVFU1QsCiAgICAgICAgICAgIFNlbGY6OkF1dGhvcml6YXRpb25Ob3RCZWFyZXIgPT4gU3RhdHVzQ29kZTo6QkFEX1JFUVVFU1QsCiAgICAgICAgICAgIFNlbGY6OkhlYWRlckF1dGhNYWxmb3JtZWQgPT4gU3RhdHVzQ29kZTo6QkFEX1JFUVVFU1QsCiAgICAgICAgICAgIFNlbGY6OkJlYXJlck1hbGZvcm1lZCA9PiBTdGF0dXNDb2RlOjpCQURfUkVRVUVTVCwKICAgICAgICAgICAgU2VsZjo6UGFzc3dvcmRFbXB0eSA9PiBTdGF0dXNDb2RlOjpCQURfUkVRVUVTVCwKICAgICAgICAgICAgU2VsZjo6VXNlck5hbWVFbXB0eSA9PiBTdGF0dXNDb2RlOjpCQURfUkVRVUVTVCwKICAgICAgICAgICAgU2VsZjo6QmFkUmVxdWVzdCA9PiBTdGF0dXNDb2RlOjpCQURfUkVRVUVTVCwKICAgICAgICAgICAgU2VsZjo6TW9vbmxpZ2h0KF8pID0+IFN0YXR1c0NvZGU6OklOVEVSTkFMX1NFUlZFUl9FUlJPUiwKICAgICAgICAgICAgU2VsZjo6SW8oXykgPT4gU3RhdHVzQ29kZTo6SU5URVJOQUxfU0VSVkVSX0VSUk9SLAogICAgICAgIH0KICAgIH0KfQoKI1tkZXJpdmUoQ2xvbmUpXQpzdHJ1Y3QgQXBwUmVmIHsKICAgIGlubmVyOiBXZWFrPEFwcElubmVyPiwKfQoKaW1wbCBBcHBSZWYgewogICAgZm4gYWNjZXNzKCZzZWxmKSAtPiBSZXN1bHQ8aW1wbCBEZXJlZjxUYXJnZXQgPSBBcHBJbm5lcj4gKyAnc3RhdGljLCBBcHBFcnJvcj4gewogICAgICAgIFdlYWs6OnVwZ3JhZGUoJnNlbGYuaW5uZXIpLm9rX29yKEFwcEVycm9yOjpBcHBEZXN0cm95ZWQpCiAgICB9Cn0KCnN0cnVjdCBBcHBJbm5lciB7CiAgICBjb25maWc6IENvbmZpZywKICAgIHN0b3JhZ2U6IEFyYzxkeW4gU3RvcmFnZSArIFNlbmQgKyBTeW5jPiwKICAgIGFwcF9pbWFnZV9jYWNoZTogUndMb2NrPEhhc2hNYXA8KFVzZXJJZCwgSG9zdElkLCBBcHBJZCksIEJ5dGVzPj4sCn0KCnB1YiB0eXBlIE1vb25saWdodENsaWVudCA9IFRva2lvSHlwZXJDbGllbnQ7CgpwdWIgc3RydWN0IEFwcCB7CiAgICBpbm5lcjogQXJjPEFwcElubmVyPiwKfQoKaW1wbCBBcHAgewogICAgcHViIGFzeW5jIGZuIG5ldyhjb25maWc6IENvbmZpZykgLT4gUmVzdWx0PFNlbGYsIGFueWhvdzo6RXJyb3I+IHsKICAgICAgICBsZXQgYXBwID0gQXBwSW5uZXIgewogICAgICAgICAgICBzdG9yYWdlOiBjcmVhdGVfc3RvcmFnZShjb25maWcuZGF0YV9zdG9yYWdlLmNsb25lKCkpLmF3YWl0PywKICAgICAgICAgICAgY29uZmlnLAogICAgICAgICAgICBhcHBfaW1hZ2VfY2FjaGU6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICB9OwoKICAgICAgICBPayhTZWxmIHsKICAgICAgICAgICAgaW5uZXI6IEFyYzo6bmV3KGFwcCksCiAgICAgICAgfSkKICAgIH0KCiAgICBmbiBuZXdfcmVmKCZzZWxmKSAtPiBBcHBSZWYgewogICAgICAgIEFwcFJlZiB7CiAgICAgICAgICAgIGlubmVyOiBBcmM6OmRvd25ncmFkZSgmc2VsZi5pbm5lciksCiAgICAgICAgfQogICAgfQoKICAgIHB1YiBmbiBjb25maWcoJnNlbGYpIC0+ICZDb25maWcgewogICAgICAgICZzZWxmLmlubmVyLmNvbmZpZwogICAgfQoKICAgIC8vLyBIYW5kbGVzIGFsbCBsb2dpYyByZWxhdGVkIHRvIGFkZGluZyB0aGUgZmlyc3QgdXNlcjoKICAgIC8vLyAtIElzIHRoaXMgZXZlbiBjdXJyZW50bHkgYWxsb3dlZD8KICAgIC8vLyAtIE1vdmluZyBob3N0cyBmcm9tIGdsb2JhbCB0byBmaXJzdCB1c2VyCiAgICBwdWIgYXN5bmMgZm4gdHJ5X2FkZF9maXJzdF9sb2dpbigKICAgICAgICAmc2VsZiwKICAgICAgICB1c2VybmFtZTogU3RyaW5nLAogICAgICAgIHBhc3N3b3JkOiBTdHJpbmcsCiAgICApIC0+IFJlc3VsdDxBdXRoZW50aWNhdGVkVXNlciwgQXBwRXJyb3I+IHsKICAgICAgICBpZiAhc2VsZi5jb25maWcoKS53ZWJfc2VydmVyLmZpcnN0X2xvZ2luX2NyZWF0ZV9hZG1pbiB7CiAgICAgICAgICAgIHJldHVybiBFcnIoQXBwRXJyb3I6OkZpcnN0TG9naW5DcmVhdGVBZG1pbk5vdFNldCk7CiAgICAgICAgfQoKICAgICAgICBsZXQgYW55X3VzZXJfZXhpc3RzID0gc2VsZi5pbm5lci5zdG9yYWdlLmFueV91c2VyX2V4aXN0cygpLmF3YWl0PzsKICAgICAgICBpZiBhbnlfdXNlcl9leGlzdHMgewogICAgICAgICAgICByZXR1cm4gRXJyKEFwcEVycm9yOjpGaXJzdFVzZXJBbHJlYWR5RXhpc3RzKTsKICAgICAgICB9CgogICAgICAgIGxldCBhZG1pbl9yb2xlID0gc2VsZi5hZG1pbl9yb2xlKCkuYXdhaXQ/OwoKICAgICAgICBsZXQgbXV0IHVzZXIgPSBzZWxmCiAgICAgICAgICAgIC5hZGRfdXNlcl9ub19hdXRoKFN0b3JhZ2VVc2VyQWRkIHsKICAgICAgICAgICAgICAgIG5hbWU6IHVzZXJuYW1lLmNsb25lKCksCiAgICAgICAgICAgICAgICBwYXNzd29yZDogU29tZShTdG9yYWdlUGFzc3dvcmQ6Om5ldygmcGFzc3dvcmQpPyksCiAgICAgICAgICAgICAgICByb2xlX2lkOiBhZG1pbl9yb2xlLmlkKCksCiAgICAgICAgICAgICAgICBjbGllbnRfdW5pcXVlX2lkOiB1c2VybmFtZSwKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLmF3YWl0PzsKCiAgICAgICAgaWYgc2VsZi5jb25maWcoKS53ZWJfc2VydmVyLmZpcnN0X2xvZ2luX2Fzc2lnbl9nbG9iYWxfaG9zdHMgewogICAgICAgICAgICAvLyBOb3RlOiBvbmx5IHRoaXMgdXNlciBleGlzdHMgYW5kIGFsbCBob3N0cyBhcmUgZ2xvYmFsLCBpZiBtaWdyYXRlZCBmcm9tIHYxIHRvIHYyCiAgICAgICAgICAgIC8vIC0+IGxpc3RfaG9zdHMgd2lsbCBzaG93IGp1c3QgZ2xvYmFsIGhvc3RzCgogICAgICAgICAgICBsZXQgaG9zdHMgPSB1c2VyLmhvc3RzKCkuYXdhaXQ/OwoKICAgICAgICAgICAgbGV0IHVzZXJfaWQgPSB1c2VyLmlkKCk7CiAgICAgICAgICAgIGZvciBtdXQgaG9zdCBpbiBob3N0cyB7CiAgICAgICAgICAgICAgICBtYXRjaCBob3N0CiAgICAgICAgICAgICAgICAgICAgLm1vZGlmeSgKICAgICAgICAgICAgICAgICAgICAgICAgJm11dCB1c2VyLAogICAgICAgICAgICAgICAgICAgICAgICBTdG9yYWdlSG9zdE1vZGlmeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvd25lcjogU29tZShTb21lKHVzZXJfaWQpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIC5hd2FpdAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIE9rKF8pID0+IHt9CiAgICAgICAgICAgICAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgiZmFpbGVkIHRvIG1vdmUgZ2xvYmFsIGhvc3QgdG8gbmV3IHVzZXIge3VzZXJfaWQ6P306IHtlcnJ9Iik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBPayh1c2VyKQogICAgfQoKICAgIC8vLyBhZG1pbjogVGhlIGFkbWluIHRoYXQgdHJpZXMgdG8gZG8gdGhpcyBhY3Rpb24KICAgIHB1YiBhc3luYyBmbiBhZGRfdXNlcigKICAgICAgICAmc2VsZiwKICAgICAgICBfOiAmQWRtaW4sCiAgICAgICAgdXNlcjogU3RvcmFnZVVzZXJBZGQsCiAgICApIC0+IFJlc3VsdDxBdXRoZW50aWNhdGVkVXNlciwgQXBwRXJyb3I+IHsKICAgICAgICBzZWxmLmFkZF91c2VyX25vX2F1dGgodXNlcikuYXdhaXQKICAgIH0KCiAgICBhc3luYyBmbiBhZGRfdXNlcl9ub19hdXRoKCZzZWxmLCB1c2VyOiBTdG9yYWdlVXNlckFkZCkgLT4gUmVzdWx0PEF1dGhlbnRpY2F0ZWRVc2VyLCBBcHBFcnJvcj4gewogICAgICAgIGlmIHVzZXIubmFtZS5pc19lbXB0eSgpIHsKICAgICAgICAgICAgcmV0dXJuIEVycihBcHBFcnJvcjo6VXNlck5hbWVFbXB0eSk7CiAgICAgICAgfQoKICAgICAgICBsZXQgdXNlciA9IHNlbGYuaW5uZXIuc3RvcmFnZS5hZGRfdXNlcih1c2VyKS5hd2FpdD87CgogICAgICAgIE9rKEF1dGhlbnRpY2F0ZWRVc2VyIHsKICAgICAgICAgICAgaW5uZXI6IFVzZXIgewogICAgICAgICAgICAgICAgYXBwOiBzZWxmLm5ld19yZWYoKSwKICAgICAgICAgICAgICAgIGlkOiB1c2VyLmlkLAogICAgICAgICAgICAgICAgY2FjaGVfc3RvcmFnZTogU29tZSh1c2VyLmludG8oKSksCiAgICAgICAgICAgIH0sCiAgICAgICAgfSkKICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gdXNlcl9ieV9hdXRoKCZzZWxmLCBhdXRoOiBVc2VyQXV0aCkgLT4gUmVzdWx0PEF1dGhlbnRpY2F0ZWRVc2VyLCBBcHBFcnJvcj4gewogICAgICAgIG1hdGNoIGF1dGggewogICAgICAgICAgICBVc2VyQXV0aDo6Tm9uZSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgdXNlcl9pZCA9IHNlbGYuY29uZmlnKCkud2ViX3NlcnZlci5kZWZhdWx0X3VzZXJfaWQubWFwKFVzZXJJZCk7CiAgICAgICAgICAgICAgICBpZiBsZXQgU29tZSh1c2VyX2lkKSA9IHVzZXJfaWQgewogICAgICAgICAgICAgICAgICAgIGxldCB1c2VyID0gbWF0Y2ggc2VsZi51c2VyX2J5X2lkKHVzZXJfaWQpLmF3YWl0IHsKICAgICAgICAgICAgICAgICAgICAgICAgT2sodXNlcikgPT4gdXNlciwKICAgICAgICAgICAgICAgICAgICAgICAgRXJyKEFwcEVycm9yOjpVc2VyTm90Rm91bmQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yISgidGhlIGRlZmF1bHQgdXNlciB7dXNlcl9pZDo/fSB3YXMgbm90IGZvdW5kISIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVycihBcHBFcnJvcjo6VXNlck5vdEZvdW5kKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFcnIoZXJyKSA9PiByZXR1cm4gRXJyKGVyciksCiAgICAgICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICAgICAgdXNlci5hdXRoZW50aWNhdGUoJlVzZXJBdXRoOjpOb25lKS5hd2FpdAogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBFcnIoQXBwRXJyb3I6OlVuYXV0aG9yaXplZCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBVc2VyQXV0aDo6VXNlclBhc3N3b3JkIHsgcmVmIHVzZXJuYW1lLCAuLiB9ID0+IHsKICAgICAgICAgICAgICAgIGxldCB1c2VyID0gc2VsZi51c2VyX2J5X25hbWUodXNlcm5hbWUpLmF3YWl0PzsKCiAgICAgICAgICAgICAgICB1c2VyLmF1dGhlbnRpY2F0ZSgmYXV0aCkuYXdhaXQKICAgICAgICAgICAgfQogICAgICAgICAgICBVc2VyQXV0aDo6U2Vzc2lvbihzZXNzaW9uKSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgdXNlciA9IHNlbGYudXNlcl9ieV9zZXNzaW9uKHNlc3Npb24pLmF3YWl0PzsKCiAgICAgICAgICAgICAgICBPayh1c2VyKQogICAgICAgICAgICB9CiAgICAgICAgICAgIFVzZXJBdXRoOjpGb3J3YXJkZWRIZWFkZXJzIHsgcmVmIHVzZXJuYW1lIH0gPT4gewogICAgICAgICAgICAgICAgbGV0IHVzZXIgPSBtYXRjaCBzZWxmLnVzZXJfYnlfbmFtZSh1c2VybmFtZSkuYXdhaXQgewogICAgICAgICAgICAgICAgICAgIE9rKHVzZXIpID0+IHVzZXIsCiAgICAgICAgICAgICAgICAgICAgRXJyKEFwcEVycm9yOjpVc2VyTm90Rm91bmQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFNvbWUoY29uZmlnX2ZvcndhcmRlZF9oZWFkZXJzKSA9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2VsZi5jb25maWcoKS53ZWJfc2VydmVyLmZvcndhcmRlZF9oZWFkZXIKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXJyKEFwcEVycm9yOjpVbmF1dGhvcml6ZWQpOwogICAgICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgIWNvbmZpZ19mb3J3YXJkZWRfaGVhZGVycy5hdXRvX2NyZWF0ZV9taXNzaW5nX3VzZXIgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVycihBcHBFcnJvcjo6VW5hdXRob3JpemVkKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJvbGUgPSBzZWxmLmRlZmF1bHRfcm9sZSgpLmF3YWl0PzsKCiAgICAgICAgICAgICAgICAgICAgICAgIGluZm8hKCJBZGRpbmcgbmV3IHVzZXIge3VzZXJuYW1lOj99IGZyb20gcHJveHkuIik7CgogICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXNlciA9IHNlbGYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRfdXNlcl9ub19hdXRoKFN0b3JhZ2VVc2VyQWRkIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlX2lkOiByb2xlLmlkKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdXNlcm5hbWUuY2xvbmUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRfdW5pcXVlX2lkOiB1c2VybmFtZS5jbG9uZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hd2FpdD87CgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2sodXNlcik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIEVycihlcnIpID0+IHJldHVybiBFcnIoZXJyKSwKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgdXNlci5hdXRoZW50aWNhdGUoJmF1dGgpLmF3YWl0CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHViIGFzeW5jIGZuIHVzZXJfYnlfaWQoJnNlbGYsIHVzZXJfaWQ6IFVzZXJJZCkgLT4gUmVzdWx0PFVzZXIsIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IHVzZXIgPSBzZWxmLmlubmVyLnN0b3JhZ2UuZ2V0X3VzZXIodXNlcl9pZCkuYXdhaXQ/OwoKICAgICAgICBPayhVc2VyIHsKICAgICAgICAgICAgYXBwOiBzZWxmLm5ld19yZWYoKSwKICAgICAgICAgICAgaWQ6IHVzZXJfaWQsCiAgICAgICAgICAgIGNhY2hlX3N0b3JhZ2U6IFNvbWUodXNlci5pbnRvKCkpLAogICAgICAgIH0pCiAgICB9CiAgICBwdWIgYXN5bmMgZm4gdXNlcl9ieV9uYW1lKCZzZWxmLCBuYW1lOiAmc3RyKSAtPiBSZXN1bHQ8VXNlciwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgKHVzZXJfaWQsIHVzZXIpID0gc2VsZi5pbm5lci5zdG9yYWdlLmdldF91c2VyX2J5X25hbWUobmFtZSkuYXdhaXQ/OwoKICAgICAgICBPayhVc2VyIHsKICAgICAgICAgICAgYXBwOiBzZWxmLm5ld19yZWYoKSwKICAgICAgICAgICAgaWQ6IHVzZXJfaWQsCiAgICAgICAgICAgIGNhY2hlX3N0b3JhZ2U6IHVzZXIubWFwKEludG86OmludG8pLAogICAgICAgIH0pCiAgICB9CiAgICBwdWIgYXN5bmMgZm4gdXNlcl9ieV9zZXNzaW9uKAogICAgICAgICZzZWxmLAogICAgICAgIHNlc3Npb246IFNlc3Npb25Ub2tlbiwKICAgICkgLT4gUmVzdWx0PEF1dGhlbnRpY2F0ZWRVc2VyLCBBcHBFcnJvcj4gewogICAgICAgIGxldCAodXNlcl9pZCwgdXNlcikgPSBzZWxmCiAgICAgICAgICAgIC5pbm5lcgogICAgICAgICAgICAuc3RvcmFnZQogICAgICAgICAgICAuZ2V0X3VzZXJfYnlfc2Vzc2lvbl90b2tlbihzZXNzaW9uKQogICAgICAgICAgICAuYXdhaXQ/OwoKICAgICAgICBPayhBdXRoZW50aWNhdGVkVXNlciB7CiAgICAgICAgICAgIGlubmVyOiBVc2VyIHsKICAgICAgICAgICAgICAgIGFwcDogc2VsZi5uZXdfcmVmKCksCiAgICAgICAgICAgICAgICBpZDogdXNlcl9pZCwKICAgICAgICAgICAgICAgIGNhY2hlX3N0b3JhZ2U6IHVzZXIubWFwKEludG86OmludG8pLAogICAgICAgICAgICB9LAogICAgICAgIH0pCiAgICB9CgogICAgcHViIGFzeW5jIGZuIGFsbF91c2Vycygmc2VsZiwgXzogQWRtaW4pIC0+IFJlc3VsdDxWZWM8VXNlcj4sIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IHVzZXJzID0gc2VsZi5pbm5lci5zdG9yYWdlLmxpc3RfdXNlcnMoKS5hd2FpdD87CgogICAgICAgIGxldCB1c2VycyA9IG1hdGNoIHVzZXJzIHsKICAgICAgICAgICAgRWl0aGVyOjpMZWZ0KHVzZXJfaWRzKSA9PiB1c2VyX2lkcwogICAgICAgICAgICAgICAgLmludG9faXRlcigpCiAgICAgICAgICAgICAgICAubWFwKHxpZHwgVXNlciB7CiAgICAgICAgICAgICAgICAgICAgYXBwOiBzZWxmLm5ld19yZWYoKSwKICAgICAgICAgICAgICAgICAgICBpZCwKICAgICAgICAgICAgICAgICAgICBjYWNoZV9zdG9yYWdlOiBOb25lLAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jb2xsZWN0Ojo8VmVjPF8+PigpLAogICAgICAgICAgICBFaXRoZXI6OlJpZ2h0KHVzZXJzKSA9PiB1c2VycwogICAgICAgICAgICAgICAgLmludG9faXRlcigpCiAgICAgICAgICAgICAgICAubWFwKHx1c2VyfCBVc2VyIHsKICAgICAgICAgICAgICAgICAgICBhcHA6IHNlbGYubmV3X3JlZigpLAogICAgICAgICAgICAgICAgICAgIGlkOiB1c2VyLmlkLAogICAgICAgICAgICAgICAgICAgIGNhY2hlX3N0b3JhZ2U6IFNvbWUodXNlci5pbnRvKCkpLAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jb2xsZWN0Ojo8VmVjPF8+PigpLAogICAgICAgIH07CgogICAgICAgIE9rKHVzZXJzKQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBkZWxldGVfc2Vzc2lvbigmc2VsZiwgc2Vzc2lvbjogU2Vzc2lvblRva2VuKSAtPiBSZXN1bHQ8KCksIEFwcEVycm9yPiB7CiAgICAgICAgc2VsZi5pbm5lci5zdG9yYWdlLnJlbW92ZV9zZXNzaW9uX3Rva2VuKHNlc3Npb24pLmF3YWl0CiAgICB9CgogICAgYXN5bmMgZm4gZmluZF9yb2xlKAogICAgICAgICZzZWxmLAogICAgICAgIGZpbHRlcjogaW1wbCBBc3luY0ZuKCZtdXQgUm9sZSkgLT4gUmVzdWx0PGJvb2wsIEFwcEVycm9yPiwKICAgICkgLT4gUmVzdWx0PFJvbGUsIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IHJvbGVzID0gc2VsZi5hbGxfcm9sZXNfbm9fYXV0aCgpLmF3YWl0PzsKCiAgICAgICAgbGV0IHJvbGUgPSByb2xlcwogICAgICAgICAgICAuaW50b19pdGVyKCkKICAgICAgICAgICAgLm1hcCh8bXV0IHJvbGV8IGFzeW5jIHsKICAgICAgICAgICAgICAgIGlmIGZpbHRlcigmbXV0IHJvbGUpLmF3YWl0PyB7CiAgICAgICAgICAgICAgICAgICAgT2socm9sZSkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgRXJyKEFwcEVycm9yOjpSb2xlTm90Rm91bmQpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5jb2xsZWN0Ojo8VmVjPF8+PigpCiAgICAgICAgICAgIC5yYWNlX29rKCkKICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgICAgIC5tYXBfZXJyKHxtdXQgZXJyfCB7CiAgICAgICAgICAgICAgICBsZXQgZXJyID0gbWVtOjp0YWtlKCZtdXQgKmVycik7CiAgICAgICAgICAgICAgICBlcnIuaW50b19pdGVyKCkKICAgICAgICAgICAgICAgICAgICAuZmluZCh8eHwgIW1hdGNoZXMhKHgsIEFwcEVycm9yOjpSb2xlTm90Rm91bmQpKQogICAgICAgICAgICAgICAgICAgIC51bndyYXBfb3IoQXBwRXJyb3I6OlJvbGVOb3RGb3VuZCkKICAgICAgICAgICAgfSk/OwoKICAgICAgICBPayhyb2xlKQogICAgfQoKICAgIC8vLyBSZXR1cm5zIGFueSByb2xlIHRoYXQgaXMgYW4gQWRtaW4KICAgIHB1YiBhc3luYyBmbiBhZG1pbl9yb2xlKCZzZWxmKSAtPiBSZXN1bHQ8Um9sZSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgcmVzdWx0ID0gc2VsZgogICAgICAgICAgICAuZmluZF9yb2xlKGFzeW5jIHxyb2xlfCB7CiAgICAgICAgICAgICAgICBsZXQgdHkgPSByb2xlLnR5KCkuYXdhaXQ/OwoKICAgICAgICAgICAgICAgIE9rKG1hdGNoZXMhKHR5LCBSb2xlVHlwZTo6QWRtaW4pKQogICAgICAgICAgICB9KQogICAgICAgICAgICAuYXdhaXQ7CgogICAgICAgIG1hdGNoIHJlc3VsdCB7CiAgICAgICAgICAgIE9rKHZhbHVlKSA9PiBPayh2YWx1ZSksCiAgICAgICAgICAgIEVycihBcHBFcnJvcjo6Um9sZU5vdEZvdW5kKSA9PiB7CiAgICAgICAgICAgICAgICAvLyBXZSd2ZSBnb3Qgbm8gYWRtaW4gcm9sZSAtPiBhZGQgYW4gYWRtaW4gcm9sZQoKICAgICAgICAgICAgICAgIGluZm8hKCJUaGVyZSB3YXMgbm8gYWRtaW4gcm9sZSBmb3VuZC4gQWRkaW5nIGFuIEFkbWluIHJvbGUiKTsKCiAgICAgICAgICAgICAgICBsZXQgcm9sZSA9IHNlbGYKICAgICAgICAgICAgICAgICAgICAuYWRkX3JvbGVfbm9fYXV0aChTdG9yYWdlUm9sZUFkZCB7CiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJBZG1pbiIudG9fb3duZWQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgdHk6IFJvbGVUeXBlOjpBZG1pbiwKICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF9zZXR0aW5nczogU3RvcmFnZVJvbGVEZWZhdWx0U2V0dGluZ3M6OmRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnM6IFN0b3JhZ2VSb2xlUGVybWlzc2lvbnM6OmRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgIC5hd2FpdD87CgogICAgICAgICAgICAgICAgaW5mbyEoIkFkZGVkIGFkbWluIHJvbGU6IHtyb2xlOj99Iik7CgogICAgICAgICAgICAgICAgT2socm9sZSkKICAgICAgICAgICAgfQogICAgICAgICAgICBFcnIoZXJyKSA9PiBFcnIoZXJyKSwKICAgICAgICB9CiAgICB9CiAgICAvLy8gUmV0dXJucyB0aGUgZmlyc3QgdXNlciByb2xlIGl0IGZpbmRzCiAgICBwdWIgYXN5bmMgZm4gZGVmYXVsdF9yb2xlKCZzZWxmKSAtPiBSZXN1bHQ8Um9sZSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgZGVmYXVsdF9yb2xlX2lkID0gc2VsZi5jb25maWcoKS53ZWJfc2VydmVyLmRlZmF1bHRfcm9sZV9pZC5tYXAoUm9sZUlkKTsKCiAgICAgICAgbWF0Y2ggZGVmYXVsdF9yb2xlX2lkIHsKICAgICAgICAgICAgTm9uZSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gc2VsZgogICAgICAgICAgICAgICAgICAgIC5maW5kX3JvbGUoYXN5bmMgfHJvbGV8IHsKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5ID0gcm9sZS50eSgpLmF3YWl0PzsKCiAgICAgICAgICAgICAgICAgICAgICAgIE9rKG1hdGNoZXMhKHR5LCBSb2xlVHlwZTo6VXNlcikpCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAuYXdhaXQ7CgogICAgICAgICAgICAgICAgbWF0Y2ggcmVzdWx0IHsKICAgICAgICAgICAgICAgICAgICBPayh2YWx1ZSkgPT4gT2sodmFsdWUpLAogICAgICAgICAgICAgICAgICAgIEVycihBcHBFcnJvcjo6Um9sZU5vdEZvdW5kKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlJ3ZlIGdvdCBubyBhZG1pbiByb2xlIC0+IGFkZCBhbiBhZG1pbiByb2xlCgogICAgICAgICAgICAgICAgICAgICAgICBpbmZvISgiVGhlcmUgd2FzIG5vIGRlZmF1bHQgcm9sZSBmb3VuZC4gQWRkaW5nIGEgbmV3IGRlZmF1bHQgdXNlciByb2xlIik7CgogICAgICAgICAgICAgICAgICAgICAgICBsZXQgcm9sZSA9IHNlbGYKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRfcm9sZV9ub19hdXRoKFN0b3JhZ2VSb2xlQWRkIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAiVXNlciIudG9fb3duZWQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eTogUm9sZVR5cGU6OlVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdF9zZXR0aW5nczogU3RvcmFnZVJvbGVEZWZhdWx0U2V0dGluZ3M6OmRlZmF1bHQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXNzaW9uczogU3RvcmFnZVJvbGVQZXJtaXNzaW9uczo6ZGVmYXVsdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hd2FpdD87CgogICAgICAgICAgICAgICAgICAgICAgICBpbmZvISgiQWRkZWQgdXNlciByb2xlOiB7cm9sZTo/fSIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgT2socm9sZSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgRXJyKGVycikgPT4gRXJyKGVyciksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU29tZShpZCkgPT4gc2VsZi5yb2xlX2J5X2lkKGlkKS5hd2FpdCwKICAgICAgICB9CiAgICB9CgogICAgcHViIGFzeW5jIGZuIGFkZF9yb2xlKCZzZWxmLCBfYWRtaW46ICZBZG1pbiwgcm9sZTogU3RvcmFnZVJvbGVBZGQpIC0+IFJlc3VsdDxSb2xlLCBBcHBFcnJvcj4gewogICAgICAgIHNlbGYuYWRkX3JvbGVfbm9fYXV0aChyb2xlKS5hd2FpdAogICAgfQogICAgcHViIGFzeW5jIGZuIGFkZF9yb2xlX25vX2F1dGgoJnNlbGYsIHJvbGU6IFN0b3JhZ2VSb2xlQWRkKSAtPiBSZXN1bHQ8Um9sZSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgcm9sZSA9IHNlbGYuaW5uZXIuc3RvcmFnZS5hZGRfcm9sZShyb2xlKS5hd2FpdD87CgogICAgICAgIE9rKFJvbGUgewogICAgICAgICAgICBhcHA6IHNlbGYubmV3X3JlZigpLAogICAgICAgICAgICBpZDogcm9sZS5pZCwKICAgICAgICAgICAgY2FjaGVfc3RvcmFnZTogU29tZShyb2xlLmludG8oKSksCiAgICAgICAgfSkKICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gcm9sZV9ieV9pZCgmc2VsZiwgaWQ6IFJvbGVJZCkgLT4gUmVzdWx0PFJvbGUsIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IHJvbGUgPSBzZWxmLmlubmVyLnN0b3JhZ2UuZ2V0X3JvbGUoaWQpLmF3YWl0PzsKCiAgICAgICAgT2soUm9sZSB7CiAgICAgICAgICAgIGFwcDogc2VsZi5uZXdfcmVmKCksCiAgICAgICAgICAgIGlkOiByb2xlLmlkLAogICAgICAgICAgICBjYWNoZV9zdG9yYWdlOiBTb21lKHJvbGUuaW50bygpKSwKICAgICAgICB9KQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBhbGxfcm9sZXMoJnNlbGYsIF9hZG1pbjogJkFkbWluKSAtPiBSZXN1bHQ8VmVjPFJvbGU+LCBBcHBFcnJvcj4gewogICAgICAgIHNlbGYuYWxsX3JvbGVzX25vX2F1dGgoKS5hd2FpdAogICAgfQoKICAgIHB1YiBhc3luYyBmbiBhbGxfcm9sZXNfbm9fYXV0aCgmc2VsZikgLT4gUmVzdWx0PFZlYzxSb2xlPiwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgcm9sZXMgPSBzZWxmLmlubmVyLnN0b3JhZ2UubGlzdF9yb2xlcygpLmF3YWl0PzsKCiAgICAgICAgbGV0IHJvbGVzID0gbWF0Y2ggcm9sZXMgewogICAgICAgICAgICBFaXRoZXI6OkxlZnQocm9sZV9pZHMpID0+IHJvbGVfaWRzCiAgICAgICAgICAgICAgICAuaW50b19pdGVyKCkKICAgICAgICAgICAgICAgIC5tYXAofGlkfCBSb2xlIHsKICAgICAgICAgICAgICAgICAgICBhcHA6IHNlbGYubmV3X3JlZigpLAogICAgICAgICAgICAgICAgICAgIGlkLAogICAgICAgICAgICAgICAgICAgIGNhY2hlX3N0b3JhZ2U6IE5vbmUsCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNvbGxlY3Q6OjxWZWM8Xz4+KCksCiAgICAgICAgICAgIEVpdGhlcjo6UmlnaHQocm9sZXMpID0+IHJvbGVzCiAgICAgICAgICAgICAgICAuaW50b19pdGVyKCkKICAgICAgICAgICAgICAgIC5tYXAofHJvbGV8IFJvbGUgewogICAgICAgICAgICAgICAgICAgIGFwcDogc2VsZi5uZXdfcmVmKCksCiAgICAgICAgICAgICAgICAgICAgaWQ6IHJvbGUuaWQsCiAgICAgICAgICAgICAgICAgICAgY2FjaGVfc3RvcmFnZTogU29tZShyb2xlLmludG8oKSksCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNvbGxlY3Q6OjxWZWM8Xz4+KCksCiAgICAgICAgfTsKCiAgICAgICAgT2socm9sZXMpCiAgICB9Cn0K"},{"path":"src/app/password.rs","sha256":"88f7a7465b911a3b533110f3bcc74b06f92570626ee83c89cc4edd63edd85f16","contentBase64":"dXNlIG9wZW5zc2w6OntoYXNoOjpNZXNzYWdlRGlnZXN0LCBwa2NzNSwgcmFuZDo6cmFuZF9ieXRlc307Cgp1c2UgY3JhdGU6OmFwcDo6QXBwRXJyb3I7CgpwdWIgY29uc3QgSEFTSF9JVEVSQVRJT05TOiB1MzIgPSA2MDBfMDAwOwoKI1tkZXJpdmUoQ2xvbmUpXQpwdWIgc3RydWN0IFN0b3JhZ2VQYXNzd29yZCB7CiAgICBwdWIgc2FsdDogW3U4OyAxNl0sCiAgICBwdWIgaGFzaDogW3U4OyAzMl0sCiAgICBwdWIgaXRlcmF0aW9uczogdTMyLAp9CgppbXBsIFN0b3JhZ2VQYXNzd29yZCB7CiAgICBmbiBoYXNoKAogICAgICAgIHNhbHQ6ICZbdTg7IDE2XSwKICAgICAgICBpdGVyYXRpb25zOiB1MzIsCiAgICAgICAgcGFzc3dvcmQ6ICZzdHIsCiAgICAgICAgb3V0OiAmbXV0IFt1ODsgMzJdLAogICAgKSAtPiBSZXN1bHQ8KCksIEFwcEVycm9yPiB7CiAgICAgICAgaWYgcGFzc3dvcmQuaXNfZW1wdHkoKSB7CiAgICAgICAgICAgIHJldHVybiBFcnIoQXBwRXJyb3I6OlBhc3N3b3JkRW1wdHkpOwogICAgICAgIH0KCiAgICAgICAgcGtjczU6OnBia2RmMl9obWFjKAogICAgICAgICAgICBwYXNzd29yZC5hc19ieXRlcygpLAogICAgICAgICAgICBzYWx0LAogICAgICAgICAgICBpdGVyYXRpb25zIGFzIHVzaXplLAogICAgICAgICAgICBNZXNzYWdlRGlnZXN0OjpzaGEyNTYoKSwKICAgICAgICAgICAgb3V0LAogICAgICAgICk/OwoKICAgICAgICBPaygoKSkKICAgIH0KCiAgICBwdWIgZm4gbmV3KHBhc3N3b3JkOiAmc3RyKSAtPiBSZXN1bHQ8U2VsZiwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgbXV0IHNhbHQgPSBbMHU4OyAxNl07CgogICAgICAgIHJhbmRfYnl0ZXMoJm11dCBzYWx0KT87CgogICAgICAgIGxldCBtdXQgaGFzaCA9IFswdTg7IDMyXTsKCiAgICAgICAgU2VsZjo6aGFzaCgmc2FsdCwgSEFTSF9JVEVSQVRJT05TLCBwYXNzd29yZCwgJm11dCBoYXNoKT87CgogICAgICAgIE9rKFNlbGYgewogICAgICAgICAgICBzYWx0LAogICAgICAgICAgICBoYXNoLAogICAgICAgICAgICBpdGVyYXRpb25zOiBIQVNIX0lURVJBVElPTlMsCiAgICAgICAgfSkKICAgIH0KCiAgICBwdWIgZm4gdmVyaWZ5KCZzZWxmLCBwYXNzd29yZDogJnN0cikgLT4gUmVzdWx0PGJvb2wsIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IG11dCBoYXNoID0gWzB1ODsgMzJdOwogICAgICAgIFNlbGY6Omhhc2goJnNlbGYuc2FsdCwgc2VsZi5pdGVyYXRpb25zLCBwYXNzd29yZCwgJm11dCBoYXNoKT87CgogICAgICAgIE9rKHNlbGYuaGFzaCA9PSBoYXNoKQogICAgfQoKICAgIHB1YiBmbiBuZWVkc19yZWhhc2goJnNlbGYpIC0+IGJvb2wgewogICAgICAgIHNlbGYuaXRlcmF0aW9ucyA8IEhBU0hfSVRFUkFUSU9OUwogICAgfQp9Cg=="},{"path":"src/app/role.rs","sha256":"fa0c619f4309007be3388ee2f7b0f51618ad61b6122fbe086f62876c1c1c9908","contentBase64":"dXNlIGNvbW1vbjo6YXBpX2JpbmRpbmdzOjp7RGV0YWlsZWRSb2xlLCBTdHJlYW1QZXJtaXNzaW9ucywgVW5kZXRhaWxlZFJvbGV9Owp1c2UgY29tbW9uOjphcGlfYmluZGluZ3NfZXh0OjpUc0FueTsKCnVzZSBjcmF0ZTo6YXBwOjpzdG9yYWdlOjpTdG9yYWdlUm9sZU1vZGlmeTsKdXNlIGNyYXRlOjphcHA6OnVzZXI6OkFkbWluOwp1c2UgY3JhdGU6OmFwcDo6e0FwcEVycm9yLCBBcHBSZWYsIHN0b3JhZ2U6OlN0b3JhZ2VSb2xlLCB1c2VyOjpSb2xlVHlwZX07CnVzZSBzdGQ6OmZtdDo6e3NlbGYsIERlYnVnLCBEaXNwbGF5fTsKdXNlIHN0ZDo6c3luYzo6QXJjOwoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBDb3B5LCBQYXJ0aWFsRXEsIEVxLCBIYXNoKV0KcHViIHN0cnVjdCBSb2xlSWQocHViIHUzMik7CgppbXBsIERpc3BsYXkgZm9yIFJvbGVJZCB7CiAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgZm10OjpGb3JtYXR0ZXI8J18+KSAtPiBmbXQ6OlJlc3VsdCB7CiAgICAgICAgd3JpdGUhKGYsICJ7fSIsIHNlbGYuMCkKICAgIH0KfQoKI1tkZXJpdmUoQ2xvbmUpXQpwdWIgc3RydWN0IFJvbGUgewogICAgcHViKHN1cGVyKSBhcHA6IEFwcFJlZiwKICAgIHB1YihzdXBlcikgaWQ6IFJvbGVJZCwKICAgIHB1YihzdXBlcikgY2FjaGVfc3RvcmFnZTogT3B0aW9uPEFyYzxTdG9yYWdlUm9sZT4+LAp9CgppbXBsIERlYnVnIGZvciBSb2xlIHsKICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBmbXQ6OkZvcm1hdHRlcjwnXz4pIC0+IGZtdDo6UmVzdWx0IHsKICAgICAgICB3cml0ZSEoZiwgIns6P30iLCBzZWxmLmlkKQogICAgfQp9CgppbXBsIFJvbGUgewogICAgcHViIGZuIGlkKCZzZWxmKSAtPiBSb2xlSWQgewogICAgICAgIHNlbGYuaWQKICAgIH0KCiAgICBhc3luYyBmbiBzdG9yYWdlX3JvbGUoJm11dCBzZWxmKSAtPiBSZXN1bHQ8QXJjPFN0b3JhZ2VSb2xlPiwgQXBwRXJyb3I+IHsKICAgICAgICBpZiBsZXQgU29tZShzdG9yYWdlKSA9IHNlbGYuY2FjaGVfc3RvcmFnZS5hc19yZWYoKSB7CiAgICAgICAgICAgIHJldHVybiBPayhzdG9yYWdlLmNsb25lKCkpOwogICAgICAgIH0KCiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgbGV0IHJvbGUgPSBhcHAuc3RvcmFnZS5nZXRfcm9sZShzZWxmLmlkKS5hd2FpdD87CiAgICAgICAgbGV0IHJvbGUgPSBBcmM6Om5ldyhyb2xlKTsKCiAgICAgICAgc2VsZi5jYWNoZV9zdG9yYWdlID0gU29tZShyb2xlLmNsb25lKCkpOwoKICAgICAgICBPayhyb2xlKQogICAgfQoKICAgIHB1YiBhc3luYyBmbiB0eSgmbXV0IHNlbGYpIC0+IFJlc3VsdDxSb2xlVHlwZSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgc3RvcmFnZSA9IHNlbGYuc3RvcmFnZV9yb2xlKCkuYXdhaXQ/OwoKICAgICAgICBPayhzdG9yYWdlLnR5KQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBuYW1lKCZtdXQgc2VsZikgLT4gUmVzdWx0PFN0cmluZywgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgc3RvcmFnZSA9IHNlbGYuc3RvcmFnZV9yb2xlKCkuYXdhaXQ/OwoKICAgICAgICBPayhzdG9yYWdlLm5hbWUuY2xvbmUoKSkKICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gcGVybWlzc2lvbnMoJm11dCBzZWxmKSAtPiBSZXN1bHQ8U3RyZWFtUGVybWlzc2lvbnMsIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZWxmLnN0b3JhZ2Vfcm9sZSgpLmF3YWl0PzsKICAgICAgICBsZXQgcGVybWlzc2lvbnMgPSAmc3RvcmFnZS5wZXJtaXNzaW9uczsKCiAgICAgICAgT2soU3RyZWFtUGVybWlzc2lvbnMgewogICAgICAgICAgICBhbGxvd19hZGRfaG9zdHM6IHBlcm1pc3Npb25zLmFsbG93X2FkZF9ob3N0cywKICAgICAgICAgICAgbWF4aW11bV9iaXRyYXRlX2ticHM6IHBlcm1pc3Npb25zLm1heGltdW1fYml0cmF0ZV9rYnBzLAogICAgICAgICAgICBhbGxvd19jb2RlY19oMjY0OiBwZXJtaXNzaW9ucy5hbGxvd19jb2RlY19oMjY0LAogICAgICAgICAgICBhbGxvd19jb2RlY19oMjY1OiBwZXJtaXNzaW9ucy5hbGxvd19jb2RlY19oMjY1LAogICAgICAgICAgICBhbGxvd19jb2RlY19hdjE6IHBlcm1pc3Npb25zLmFsbG93X2NvZGVjX2F2MSwKICAgICAgICAgICAgYWxsb3dfaGRyOiBwZXJtaXNzaW9ucy5hbGxvd19oZHIsCiAgICAgICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJydGM6IHBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJydGMsCiAgICAgICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJzb2NrZXRzOiBwZXJtaXNzaW9ucy5hbGxvd190cmFuc3BvcnRfd2Vic29ja2V0cywKICAgICAgICB9KQogICAgfQogICAgcHViIGFzeW5jIGZuIGRlZmF1bHRfc2V0dGluZ3MoJm11dCBzZWxmKSAtPiBSZXN1bHQ8VHNBbnksIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZWxmLnN0b3JhZ2Vfcm9sZSgpLmF3YWl0PzsKICAgICAgICBsZXQgZGVmYXVsdF9zZXR0aW5ncyA9ICZzdG9yYWdlLmRlZmF1bHRfc2V0dGluZ3M7CgogICAgICAgIE9rKGRlZmF1bHRfc2V0dGluZ3MudmFsdWUuY2xvbmUoKS5pbnRvKCkpCiAgICB9CgogICAgcHViIGFzeW5jIGZuIG1vZGlmeSgmc2VsZiwgX2FkbWluOiAmQWRtaW4sIG1vZGlmeTogU3RvcmFnZVJvbGVNb2RpZnkpIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICBhcHAuc3RvcmFnZS5tb2RpZnlfcm9sZShzZWxmLmlkLCBtb2RpZnkpLmF3YWl0PzsKCiAgICAgICAgT2soKCkpCiAgICB9CgogICAgcHViIGFzeW5jIGZuIGRlbGV0ZShzZWxmLCBfYWRtaW46ICZBZG1pbikgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj4gewogICAgICAgIGxldCBhcHAgPSBzZWxmLmFwcC5hY2Nlc3MoKT87CgogICAgICAgIGFwcC5zdG9yYWdlLnJlbW92ZV9yb2xlKHNlbGYuaWQpLmF3YWl0PzsKCiAgICAgICAgT2soKCkpCiAgICB9CgogICAgcHViIGFzeW5jIGZuIHVuZGV0YWlsZWRfcm9sZSgmbXV0IHNlbGYpIC0+IFJlc3VsdDxVbmRldGFpbGVkUm9sZSwgQXBwRXJyb3I+IHsKICAgICAgICBPayhVbmRldGFpbGVkUm9sZSB7CiAgICAgICAgICAgIGlkOiBzZWxmLmlkKCkuMCwKICAgICAgICAgICAgbmFtZTogc2VsZi5uYW1lKCkuYXdhaXQ/LAogICAgICAgIH0pCiAgICB9CiAgICBwdWIgYXN5bmMgZm4gZGV0YWlsZWRfcm9sZSgmbXV0IHNlbGYpIC0+IFJlc3VsdDxEZXRhaWxlZFJvbGUsIEFwcEVycm9yPiB7CiAgICAgICAgT2soRGV0YWlsZWRSb2xlIHsKICAgICAgICAgICAgaWQ6IHNlbGYuaWQoKS4wLAogICAgICAgICAgICBuYW1lOiBzZWxmLm5hbWUoKS5hd2FpdD8sCiAgICAgICAgICAgIHR5OiBzZWxmLnR5KCkuYXdhaXQ/LmludG8oKSwKICAgICAgICAgICAgZGVmYXVsdF9zZXR0aW5nczogc2VsZi5kZWZhdWx0X3NldHRpbmdzKCkuYXdhaXQ/LAogICAgICAgICAgICBwZXJtaXNzaW9uczogc2VsZi5wZXJtaXNzaW9ucygpLmF3YWl0PywKICAgICAgICB9KQogICAgfQp9Cg=="},{"path":"src/app/storage/json/mod.rs","sha256":"21191a60d106661285bffdee315f8b562f8fee32dd65e8a0332ab6e65a2a01f8","contentBase64":"dXNlIHN0ZDo6ewogICAgY29sbGVjdGlvbnM6Okhhc2hNYXAsCiAgICBpbzo6RXJyb3JLaW5kLAogICAgcGF0aDo6UGF0aEJ1ZiwKICAgIHN5bmM6OkFyYywKICAgIHRpbWU6OntEdXJhdGlvbiwgSW5zdGFudH0sCn07Cgp1c2UgYW55aG93Ojphbnlob3c7CnVzZSBhc3luY190cmFpdDo6YXN5bmNfdHJhaXQ7CnVzZSBmdXR1cmVzOjpmdXR1cmU6OmpvaW5fYWxsOwp1c2Ugb3BlbnNzbDo6cmFuZDo6cmFuZF9ieXRlczsKdXNlIHRva2lvOjp7CiAgICBmcywgc3Bhd24sCiAgICBzeW5jOjp7CiAgICAgICAgUndMb2NrLAogICAgICAgIG1wc2M6OntzZWxmLCBSZWNlaXZlciwgU2VuZGVyLCBlcnJvcjo6VHJ5U2VuZEVycm9yfSwKICAgICAgICBvbmVzaG90LAogICAgfSwKICAgIHRhc2s6OkpvaW5IYW5kbGUsCiAgICB0aW1lOjpzbGVlcCwKfTsKdXNlIHRyYWNpbmc6OntkZWJ1ZywgZXJyb3J9OwoKdXNlIGNyYXRlOjphcHA6OnsKICAgIEFwcEVycm9yLAogICAgYXV0aDo6U2Vzc2lvblRva2VuLAogICAgaG9zdDo6SG9zdElkLAogICAgcGFzc3dvcmQ6OlN0b3JhZ2VQYXNzd29yZCwKICAgIHJvbGU6OlJvbGVJZCwKICAgIHN0b3JhZ2U6OnsKICAgICAgICBFaXRoZXIsIFN0b3JhZ2UsIFN0b3JhZ2VIb3N0LCBTdG9yYWdlSG9zdEFkZCwgU3RvcmFnZUhvc3RDYWNoZSwgU3RvcmFnZUhvc3RNb2RpZnksCiAgICAgICAgU3RvcmFnZUhvc3RQYWlySW5mbywgU3RvcmFnZVF1ZXJ5SG9zdHMsIFN0b3JhZ2VSb2xlLCBTdG9yYWdlUm9sZUFkZCwKICAgICAgICBTdG9yYWdlUm9sZURlZmF1bHRTZXR0aW5ncywgU3RvcmFnZVJvbGVNb2RpZnksIFN0b3JhZ2VSb2xlUGVybWlzc2lvbnMsIFN0b3JhZ2VVc2VyLAogICAgICAgIFN0b3JhZ2VVc2VyQWRkLCBTdG9yYWdlVXNlck1vZGlmeSwKICAgICAgICBqc29uOjp2ZXJzaW9uczo6ewogICAgICAgICAgICBKc29uLCBWMiwgVjJIb3N0LCBWMkhvc3RDYWNoZSwgVjJIb3N0UGFpckluZm8sIFYyVXNlclBhc3N3b3JkLCBWMywgVjNSb2xlLAogICAgICAgICAgICBWM1JvbGVQZXJtaXNzaW9ucywgVjNSb2xlVHlwZSwgVjNVc2VyLCBtaWdyYXRlX3RvX2xhdGVzdCwKICAgICAgICB9LAogICAgfSwKICAgIHVzZXI6OntSb2xlVHlwZSwgVXNlcklkfSwKfTsKCm1vZCBzZXJkZV9oZWxwZXJzOwptb2QgdmVyc2lvbnM7CgpwdWIgc3RydWN0IEpzb25TdG9yYWdlIHsKICAgIGZpbGU6IFBhdGhCdWYsCiAgICBzdG9yZV9zZW5kZXI6IFNlbmRlcjwoKT4sCiAgICBzZXNzaW9uX2V4cGlyYXRpb25fY2hlY2tlcjogSm9pbkhhbmRsZTwoKT4sCiAgICAvLyBJTVBPUlRBTlQ6IG9ubHkgbG9jayB0aG9zZSBtdXRleGVzIGluIGRlc2NlbmRpbmcgb3JkZXIgdG8gcHJldmVudCBkZWFkbG9ja3MKICAgIHVzZXJzOiBSd0xvY2s8SGFzaE1hcDx1MzIsIFJ3TG9jazxWM1VzZXI+Pj4sCiAgICBob3N0czogUndMb2NrPEhhc2hNYXA8dTMyLCBSd0xvY2s8VjJIb3N0Pj4+LAogICAgcm9sZXM6IFJ3TG9jazxIYXNoTWFwPHUzMiwgUndMb2NrPFYzUm9sZT4+PiwKICAgIHNlc3Npb25zOiBSd0xvY2s8SGFzaE1hcDxTZXNzaW9uVG9rZW4sIFNlc3Npb24+PiwKfQoKaW1wbCBEcm9wIGZvciBKc29uU3RvcmFnZSB7CiAgICBmbiBkcm9wKCZtdXQgc2VsZikgewogICAgICAgIHNlbGYuc2Vzc2lvbl9leHBpcmF0aW9uX2NoZWNrZXIuYWJvcnQoKTsKICAgIH0KfQoKc3RydWN0IFNlc3Npb24gewogICAgY3JlYXRlZF9hdDogSW5zdGFudCwKICAgIGV4cGlyYXRpb246IER1cmF0aW9uLAogICAgdXNlcl9pZDogdTMyLAp9CgppbXBsIEpzb25TdG9yYWdlIHsKICAgIHB1YiBhc3luYyBmbiBsb2FkKAogICAgICAgIGZpbGU6IFBhdGhCdWYsCiAgICAgICAgc2Vzc2lvbl9leHBpcmF0aW9uX2NoZWNrX2ludGVydmFsOiBEdXJhdGlvbiwKICAgICkgLT4gUmVzdWx0PEFyYzxTZWxmPiwgYW55aG93OjpFcnJvcj4gewogICAgICAgIGxldCAoc3RvcmVfc2VuZGVyLCBzdG9yZV9yZWNlaXZlcikgPSBtcHNjOjpjaGFubmVsKDEpOwoKICAgICAgICBsZXQgKHRoaXNfc2VuZGVyLCB0aGlzX3JlY2VpdmVyKSA9IG9uZXNob3Q6OmNoYW5uZWw6OjxBcmM8U2VsZj4+KCk7CgogICAgICAgIGxldCBzZXNzaW9uX2V4cGlyYXRpb25fY2hlY2tlciA9IHNwYXduKGFzeW5jIG1vdmUgewogICAgICAgICAgICBsZXQgdGhpcyA9IG1hdGNoIHRoaXNfcmVjZWl2ZXIuYXdhaXQgewogICAgICAgICAgICAgICAgT2sodmFsdWUpID0+IHZhbHVlLAogICAgICAgICAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgICAgIGVycm9yISgKICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBpbml0aWFsaXplIHNlc3Npb24gZXhwaXJhdGlvbiBjaGVja2VyOiB7ZXJyOj99LiBBbGwgc2Vzc2lvbnMgd2lsbCBsYXN0IGZvcmV2ZXIhIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgbG9vcCB7CiAgICAgICAgICAgICAgICBzbGVlcChzZXNzaW9uX2V4cGlyYXRpb25fY2hlY2tfaW50ZXJ2YWwpLmF3YWl0OwogICAgICAgICAgICAgICAgZGVidWchKCJDbGVhcmluZyBhbGwgZXhwaXJlZCBzZXNzaW9ucyEiKTsKCiAgICAgICAgICAgICAgICBsZXQgbXV0IHNlc3Npb25zID0gdGhpcy5zZXNzaW9ucy53cml0ZSgpLmF3YWl0OwoKICAgICAgICAgICAgICAgIGxldCBub3cgPSBJbnN0YW50Ojpub3coKTsKICAgICAgICAgICAgICAgIHNlc3Npb25zLnJldGFpbih8Xywgc2Vzc2lvbnwgewogICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50X3Nlc3Npb25fbGVuZ3RoID0gbm93IC0gc2Vzc2lvbi5jcmVhdGVkX2F0OwoKICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3Nlc3Npb25fbGVuZ3RoIDwgc2Vzc2lvbi5leHBpcmF0aW9uCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICBsZXQgdGhpcyA9IFNlbGYgewogICAgICAgICAgICBmaWxlLAogICAgICAgICAgICBzdG9yZV9zZW5kZXIsCiAgICAgICAgICAgIHNlc3Npb25fZXhwaXJhdGlvbl9jaGVja2VyLAogICAgICAgICAgICBob3N0czogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgICAgICB1c2VyczogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgICAgICByb2xlczogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgICAgICBzZXNzaW9uczogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgIH07CiAgICAgICAgbGV0IHRoaXMgPSBBcmM6Om5ldyh0aGlzKTsKCiAgICAgICAgaWYgdGhpc19zZW5kZXIuc2VuZCh0aGlzLmNsb25lKCkpLmlzX2VycigpIHsKICAgICAgICAgICAgZXJyb3IhKAogICAgICAgICAgICAgICAgIkZhaWxlZCB0byBzZW5kIHZhbHVlcyB0byBzZXNzaW9uIGV4cGlyYXRpb24gY2hlY2tlci4gQWxsIHNlc3Npb25zIHdpbGwgbGFzdCBmb3JldmVyISIKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHRoaXMubG9hZF9pbnRlcm5hbCgpLmF3YWl0PzsKCiAgICAgICAgc3Bhd24oewogICAgICAgICAgICBsZXQgdGhpcyA9IHRoaXMuY2xvbmUoKTsKCiAgICAgICAgICAgIGFzeW5jIG1vdmUgeyBmaWxlX3dyaXRlcihzdG9yZV9yZWNlaXZlciwgdGhpcykuYXdhaXQgfQogICAgICAgIH0pOwoKICAgICAgICBPayh0aGlzKQogICAgfQoKICAgIHB1YiBmbiBmb3JjZV93cml0ZSgmc2VsZikgewogICAgICAgIGlmIGxldCBFcnIoVHJ5U2VuZEVycm9yOjpDbG9zZWQoXykpID0gc2VsZi5zdG9yZV9zZW5kZXIudHJ5X3NlbmQoKCkpIHsKICAgICAgICAgICAgZXJyb3IhKCJGYWlsZWQgdG8gc2F2ZSBkYXRhIGJlY2F1c2UgdGhlIHdyaXRlciB0YXNrIGNsb3NlZCEiKTsKICAgICAgICB9CiAgICB9CgogICAgYXN5bmMgZm4gbG9hZF9pbnRlcm5hbCgmc2VsZikgLT4gUmVzdWx0PCgpLCBhbnlob3c6OkVycm9yPiB7CiAgICAgICAgbGV0IHRleHQgPSBtYXRjaCBmczo6cmVhZF90b19zdHJpbmcoJnNlbGYuZmlsZSkuYXdhaXQgewogICAgICAgICAgICBPayh0ZXh0KSA9PiB0ZXh0LAogICAgICAgICAgICBFcnIoZXJyKSBpZiBlcnIua2luZCgpID09IEVycm9yS2luZDo6Tm90Rm91bmQgPT4gewogICAgICAgICAgICAgICAgcmV0dXJuIE9rKCgpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gRXJyKGFueWhvdyEoIkZhaWxlZCB0byByZWFkIGRhdGE6IHtlcnI6P30iKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBsZXQganNvbiA9IG1hdGNoIHNlcmRlX2pzb246OmZyb21fc3RyOjo8SnNvbj4oJnRleHQpIHsKICAgICAgICAgICAgT2sodmFsdWUpID0+IHZhbHVlLAogICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSBzZXJkZV9qc29uOjpmcm9tX3N0cjo6PFYyPigmdGV4dCkKICAgICAgICAgICAgICAgICAgICAuZXJyKCkKICAgICAgICAgICAgICAgICAgICAubWFwKHx4fCB4LnRvX3N0cmluZygpKQogICAgICAgICAgICAgICAgICAgIC51bndyYXBfb3IoIm5vbmUiLnRvX3N0cmluZygpKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gRXJyKGFueWhvdyEoCiAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBkZXNlcmlhbGl6ZSBkYXRhIGFzIGpzb246IHtlcnJ9LCBWZXJzaW9uIHNwZWNpZmljIGVycm9yOiB7ZXJyb3J9IgogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBsZXQgZGF0YSA9IG1pZ3JhdGVfdG9fbGF0ZXN0KGpzb24pPzsKCiAgICAgICAgewogICAgICAgICAgICBsZXQgbXV0IHVzZXJzID0gc2VsZi51c2Vycy53cml0ZSgpLmF3YWl0OwogICAgICAgICAgICBsZXQgbXV0IGhvc3RzID0gc2VsZi5ob3N0cy53cml0ZSgpLmF3YWl0OwogICAgICAgICAgICBsZXQgbXV0IHJvbGVzID0gc2VsZi5yb2xlcy53cml0ZSgpLmF3YWl0OwoKICAgICAgICAgICAgKnVzZXJzID0gZGF0YQogICAgICAgICAgICAgICAgLnVzZXJzCiAgICAgICAgICAgICAgICAuaW50b19pdGVyKCkKICAgICAgICAgICAgICAgIC5tYXAofChpZCwgdXNlcil8IChpZCwgUndMb2NrOjpuZXcodXNlcikpKQogICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKICAgICAgICAgICAgKmhvc3RzID0gZGF0YQogICAgICAgICAgICAgICAgLmhvc3RzCiAgICAgICAgICAgICAgICAuaW50b19pdGVyKCkKICAgICAgICAgICAgICAgIC5tYXAofChpZCwgaG9zdCl8IChpZCwgUndMb2NrOjpuZXcoaG9zdCkpKQogICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKICAgICAgICAgICAgKnJvbGVzID0gZGF0YQogICAgICAgICAgICAgICAgLnJvbGVzCiAgICAgICAgICAgICAgICAuaW50b19pdGVyKCkKICAgICAgICAgICAgICAgIC5tYXAofChpZCwgcm9sZSl8IChpZCwgUndMb2NrOjpuZXcocm9sZSkpKQogICAgICAgICAgICAgICAgLmNvbGxlY3QoKTsKICAgICAgICB9CgogICAgICAgIE9rKCgpKQogICAgfQogICAgYXN5bmMgZm4gc3RvcmUoJnNlbGYpIHsKICAgICAgICBsZXQganNvbiA9IHsKICAgICAgICAgICAgbGV0IHVzZXJzID0gc2VsZi51c2Vycy5yZWFkKCkuYXdhaXQ7CiAgICAgICAgICAgIGxldCBob3N0cyA9IHNlbGYuaG9zdHMucmVhZCgpLmF3YWl0OwogICAgICAgICAgICBsZXQgcm9sZXMgPSBzZWxmLnJvbGVzLnJlYWQoKS5hd2FpdDsKCiAgICAgICAgICAgIGxldCBtdXQgdXNlcnNfanNvbiA9IEhhc2hNYXA6Om5ldygpOwogICAgICAgICAgICBmb3IgKGtleSwgdmFsdWUpIGluIHVzZXJzLml0ZXIoKSB7CiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB2YWx1ZS5yZWFkKCkuYXdhaXQ7CgogICAgICAgICAgICAgICAgdXNlcnNfanNvbi5pbnNlcnQoKmtleSwgKCp2YWx1ZSkuY2xvbmUoKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxldCBtdXQgaG9zdHNfanNvbiA9IEhhc2hNYXA6Om5ldygpOwogICAgICAgICAgICBmb3IgKGtleSwgdmFsdWUpIGluIGhvc3RzLml0ZXIoKSB7CiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB2YWx1ZS5yZWFkKCkuYXdhaXQ7CgogICAgICAgICAgICAgICAgaG9zdHNfanNvbi5pbnNlcnQoKmtleSwgKCp2YWx1ZSkuY2xvbmUoKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxldCBtdXQgcm9sZXNfanNvbiA9IEhhc2hNYXA6Om5ldygpOwogICAgICAgICAgICBmb3IgKGtleSwgdmFsdWUpIGluIHJvbGVzLml0ZXIoKSB7CiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB2YWx1ZS5yZWFkKCkuYXdhaXQ7CgogICAgICAgICAgICAgICAgcm9sZXNfanNvbi5pbnNlcnQoKmtleSwgKCp2YWx1ZSkuY2xvbmUoKSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEpzb246OlYzKFYzIHsKICAgICAgICAgICAgICAgIHVzZXJzOiB1c2Vyc19qc29uLAogICAgICAgICAgICAgICAgaG9zdHM6IGhvc3RzX2pzb24sCiAgICAgICAgICAgICAgICByb2xlczogcm9sZXNfanNvbiwKICAgICAgICAgICAgfSkKICAgICAgICB9OwoKICAgICAgICBsZXQgdGV4dCA9IG1hdGNoIHNlcmRlX2pzb246OnRvX3N0cmluZ19wcmV0dHkoJmpzb24pIHsKICAgICAgICAgICAgT2sodGV4dCkgPT4gdGV4dCwKICAgICAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgZXJyb3IhKCJGYWlsZWQgdG8gc2VyaWFsaXplIGRhdGEgdG8ganNvbjoge2Vycjo/fSIpOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgaWYgbGV0IEVycihlcnIpID0gZnM6OndyaXRlKCZzZWxmLmZpbGUsIHRleHQpLmF3YWl0IHsKICAgICAgICAgICAgZXJyb3IhKCJGYWlsZWQgdG8gd3JpdGUgZGF0YSB0byBmaWxlOiB7ZXJyOj99Iik7CiAgICAgICAgfQogICAgfQp9Cgphc3luYyBmbiBmaWxlX3dyaXRlcihtdXQgc3RvcmVfcmVjZWl2ZXI6IFJlY2VpdmVyPCgpPiwganNvbjogQXJjPEpzb25TdG9yYWdlPikgewogICAgbG9vcCB7CiAgICAgICAgaWYgc3RvcmVfcmVjZWl2ZXIucmVjdigpLmF3YWl0LmlzX25vbmUoKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGpzb24uc3RvcmUoKS5hd2FpdDsKICAgIH0KfQoKZm4gcGVybWlzc2lvbnNfZnJvbV9qc29uKHBlcm1pc3Npb25zOiBWM1JvbGVQZXJtaXNzaW9ucykgLT4gU3RvcmFnZVJvbGVQZXJtaXNzaW9ucyB7CiAgICBTdG9yYWdlUm9sZVBlcm1pc3Npb25zIHsKICAgICAgICBhbGxvd19hZGRfaG9zdHM6IHBlcm1pc3Npb25zLmFsbG93X2FkZF9ob3N0cywKICAgICAgICBtYXhpbXVtX2JpdHJhdGVfa2JwczogcGVybWlzc2lvbnMubWF4aW11bV9iaXRyYXRlX2ticHMsCiAgICAgICAgYWxsb3dfY29kZWNfaDI2NDogcGVybWlzc2lvbnMuYWxsb3dfY29kZWNfaDI2NCwKICAgICAgICBhbGxvd19jb2RlY19oMjY1OiBwZXJtaXNzaW9ucy5hbGxvd19jb2RlY19oMjY1LAogICAgICAgIGFsbG93X2NvZGVjX2F2MTogcGVybWlzc2lvbnMuYWxsb3dfY29kZWNfYXYxLAogICAgICAgIGFsbG93X2hkcjogcGVybWlzc2lvbnMuYWxsb3dfaGRyLAogICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJydGM6IHBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJydGMsCiAgICAgICAgYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHM6IHBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJzb2NrZXRzLAogICAgfQp9CmZuIHBlcm1pc3Npb25zX3RvX2pzb24ocGVybWlzc2lvbnM6IFN0b3JhZ2VSb2xlUGVybWlzc2lvbnMpIC0+IFYzUm9sZVBlcm1pc3Npb25zIHsKICAgIFYzUm9sZVBlcm1pc3Npb25zIHsKICAgICAgICBhbGxvd19hZGRfaG9zdHM6IHBlcm1pc3Npb25zLmFsbG93X2FkZF9ob3N0cywKICAgICAgICBtYXhpbXVtX2JpdHJhdGVfa2JwczogcGVybWlzc2lvbnMubWF4aW11bV9iaXRyYXRlX2ticHMsCiAgICAgICAgYWxsb3dfY29kZWNfaDI2NDogcGVybWlzc2lvbnMuYWxsb3dfY29kZWNfaDI2NCwKICAgICAgICBhbGxvd19jb2RlY19oMjY1OiBwZXJtaXNzaW9ucy5hbGxvd19jb2RlY19oMjY1LAogICAgICAgIGFsbG93X2NvZGVjX2F2MTogcGVybWlzc2lvbnMuYWxsb3dfY29kZWNfYXYxLAogICAgICAgIGFsbG93X2hkcjogcGVybWlzc2lvbnMuYWxsb3dfaGRyLAogICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJydGM6IHBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJydGMsCiAgICAgICAgYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHM6IHBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJzb2NrZXRzLAogICAgfQp9CgpmbiByb2xlX2Zyb21fanNvbihyb2xlX2lkOiBSb2xlSWQsIHJvbGU6ICZWM1JvbGUpIC0+IFN0b3JhZ2VSb2xlIHsKICAgIFN0b3JhZ2VSb2xlIHsKICAgICAgICBpZDogcm9sZV9pZCwKICAgICAgICBuYW1lOiByb2xlLm5hbWUuY2xvbmUoKSwKICAgICAgICB0eTogbWF0Y2ggcm9sZS50eSB7CiAgICAgICAgICAgIFYzUm9sZVR5cGU6OkFkbWluID0+IFJvbGVUeXBlOjpBZG1pbiwKICAgICAgICAgICAgVjNSb2xlVHlwZTo6VXNlciA9PiBSb2xlVHlwZTo6VXNlciwKICAgICAgICB9LAogICAgICAgIGRlZmF1bHRfc2V0dGluZ3M6IFN0b3JhZ2VSb2xlRGVmYXVsdFNldHRpbmdzIHsKICAgICAgICAgICAgdmFsdWU6IHJvbGUuZGVmYXVsdF9zZXR0aW5ncy5jbG9uZSgpLAogICAgICAgIH0sCiAgICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zX2Zyb21fanNvbihyb2xlLnBlcm1pc3Npb25zLmNsb25lKCkpLAogICAgfQp9CgpmbiB1c2VyX2Zyb21fanNvbih1c2VyX2lkOiBVc2VySWQsIHVzZXI6ICZWM1VzZXIpIC0+IFN0b3JhZ2VVc2VyIHsKICAgIFN0b3JhZ2VVc2VyIHsKICAgICAgICBpZDogdXNlcl9pZCwKICAgICAgICBuYW1lOiB1c2VyLm5hbWUuY2xvbmUoKSwKICAgICAgICBwYXNzd29yZDogdXNlci5wYXNzd29yZC5hc19yZWYoKS5tYXAofHBhc3N3b3JkfCBTdG9yYWdlUGFzc3dvcmQgewogICAgICAgICAgICBzYWx0OiBwYXNzd29yZC5zYWx0LAogICAgICAgICAgICBoYXNoOiBwYXNzd29yZC5oYXNoLAogICAgICAgICAgICBpdGVyYXRpb25zOiBwYXNzd29yZC5pdGVyYXRpb25zLAogICAgICAgIH0pLAogICAgICAgIHJvbGVfaWQ6IFJvbGVJZCh1c2VyLnJvbGVfaWQpLAogICAgICAgIGNsaWVudF91bmlxdWVfaWQ6IHVzZXIuY2xpZW50X3VuaXF1ZV9pZC5jbG9uZSgpLAogICAgfQp9CgpmbiBob3N0X2Zyb21fanNvbihob3N0X2lkOiBIb3N0SWQsIGhvc3Q6ICZWMkhvc3QpIC0+IFN0b3JhZ2VIb3N0IHsKICAgIFN0b3JhZ2VIb3N0IHsKICAgICAgICBpZDogaG9zdF9pZCwKICAgICAgICBvd25lcjogaG9zdC5vd25lci5tYXAoVXNlcklkKSwKICAgICAgICBhZGRyZXNzOiBob3N0LmFkZHJlc3MuY2xvbmUoKSwKICAgICAgICBodHRwX3BvcnQ6IGhvc3QuaHR0cF9wb3J0LAogICAgICAgIHBhaXJfaW5mbzogaG9zdC5wYWlyX2luZm8uY2xvbmUoKS5tYXAofHBhaXJfaW5mb3wgU3RvcmFnZUhvc3RQYWlySW5mbyB7CiAgICAgICAgICAgIGNsaWVudF9jZXJ0aWZpY2F0ZTogcGFpcl9pbmZvLmNsaWVudF9jZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgY2xpZW50X3ByaXZhdGVfa2V5OiBwYWlyX2luZm8uY2xpZW50X3ByaXZhdGVfa2V5LAogICAgICAgICAgICBzZXJ2ZXJfY2VydGlmaWNhdGU6IHBhaXJfaW5mby5zZXJ2ZXJfY2VydGlmaWNhdGUsCiAgICAgICAgfSksCiAgICAgICAgY2FjaGU6IFN0b3JhZ2VIb3N0Q2FjaGUgewogICAgICAgICAgICBuYW1lOiBob3N0LmNhY2hlLm5hbWUuY2xvbmUoKSwKICAgICAgICAgICAgbWFjOiBob3N0LmNhY2hlLm1hYywKICAgICAgICB9LAogICAgfQp9CgpmbiByYW5kb21fbnVtYmVyKCkgLT4gUmVzdWx0PHUzMiwgQXBwRXJyb3I+IHsKICAgIGxldCBtdXQgaWRfYnl0ZXMgPSBbMHU4OyA0XTsKICAgIHJhbmRfYnl0ZXMoJm11dCBpZF9ieXRlcyk/OwogICAgT2sodTMyOjpmcm9tX2JlX2J5dGVzKGlkX2J5dGVzKSkKfQoKI1thc3luY190cmFpdF0KaW1wbCBTdG9yYWdlIGZvciBKc29uU3RvcmFnZSB7CiAgICBhc3luYyBmbiBhZGRfcm9sZSgmc2VsZiwgcm9sZTogU3RvcmFnZVJvbGVBZGQpIC0+IFJlc3VsdDxTdG9yYWdlUm9sZSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgcm9sZSA9IFYzUm9sZSB7CiAgICAgICAgICAgIHR5OiBtYXRjaCByb2xlLnR5IHsKICAgICAgICAgICAgICAgIFJvbGVUeXBlOjpBZG1pbiA9PiBWM1JvbGVUeXBlOjpBZG1pbiwKICAgICAgICAgICAgICAgIFJvbGVUeXBlOjpVc2VyID0+IFYzUm9sZVR5cGU6OlVzZXIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIG5hbWU6IHJvbGUubmFtZSwKICAgICAgICAgICAgZGVmYXVsdF9zZXR0aW5nczogcm9sZS5kZWZhdWx0X3NldHRpbmdzLnZhbHVlLAogICAgICAgICAgICBwZXJtaXNzaW9uczogcGVybWlzc2lvbnNfdG9fanNvbihyb2xlLnBlcm1pc3Npb25zKSwKICAgICAgICB9OwoKICAgICAgICBsZXQgbXV0IHJvbGVzID0gc2VsZi5yb2xlcy53cml0ZSgpLmF3YWl0OwoKICAgICAgICBsZXQgbXV0IGlkOwogICAgICAgIGxvb3AgewogICAgICAgICAgICBpZCA9IHJhbmRvbV9udW1iZXIoKT87CgogICAgICAgICAgICBpZiAhcm9sZXMuY29udGFpbnNfa2V5KCZpZCkgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcm9sZXMuaW5zZXJ0KGlkLCBSd0xvY2s6Om5ldyhyb2xlLmNsb25lKCkpKTsKCiAgICAgICAgZHJvcChyb2xlcyk7CgogICAgICAgIHNlbGYuZm9yY2Vfd3JpdGUoKTsKCiAgICAgICAgT2soU3RvcmFnZVJvbGUgewogICAgICAgICAgICB0eTogbWF0Y2ggcm9sZS50eSB7CiAgICAgICAgICAgICAgICBWM1JvbGVUeXBlOjpBZG1pbiA9PiBSb2xlVHlwZTo6QWRtaW4sCiAgICAgICAgICAgICAgICBWM1JvbGVUeXBlOjpVc2VyID0+IFJvbGVUeXBlOjpVc2VyLAogICAgICAgICAgICB9LAogICAgICAgICAgICBpZDogUm9sZUlkKGlkKSwKICAgICAgICAgICAgbmFtZTogcm9sZS5uYW1lLAogICAgICAgICAgICBkZWZhdWx0X3NldHRpbmdzOiBTdG9yYWdlUm9sZURlZmF1bHRTZXR0aW5ncyB7CiAgICAgICAgICAgICAgICB2YWx1ZTogcm9sZS5kZWZhdWx0X3NldHRpbmdzLAogICAgICAgICAgICB9LAogICAgICAgICAgICBwZXJtaXNzaW9uczogcGVybWlzc2lvbnNfZnJvbV9qc29uKHJvbGUucGVybWlzc2lvbnMpLAogICAgICAgIH0pCiAgICB9CiAgICBhc3luYyBmbiBtb2RpZnlfcm9sZSgKICAgICAgICAmc2VsZiwKICAgICAgICByb2xlX2lkOiBSb2xlSWQsCiAgICAgICAgbW9kaWZ5OiBTdG9yYWdlUm9sZU1vZGlmeSwKICAgICkgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj4gewogICAgICAgIGxldCByb2xlcyA9IHNlbGYucm9sZXMucmVhZCgpLmF3YWl0OwoKICAgICAgICBsZXQgcm9sZV9sb2NrID0gcm9sZXMuZ2V0KCZyb2xlX2lkLjApLm9rX29yKEFwcEVycm9yOjpSb2xlTm90Rm91bmQpPzsKICAgICAgICBsZXQgbXV0IHJvbGUgPSByb2xlX2xvY2sud3JpdGUoKS5hd2FpdDsKCiAgICAgICAgaWYgbGV0IFNvbWUobmFtZSkgPSBtb2RpZnkubmFtZSB7CiAgICAgICAgICAgIHJvbGUubmFtZSA9IG5hbWU7CiAgICAgICAgfQogICAgICAgIGlmIGxldCBTb21lKHR5KSA9IG1vZGlmeS50eSB7CiAgICAgICAgICAgIHJvbGUudHkgPSBtYXRjaCB0eSB7CiAgICAgICAgICAgICAgICBSb2xlVHlwZTo6QWRtaW4gPT4gVjNSb2xlVHlwZTo6QWRtaW4sCiAgICAgICAgICAgICAgICBSb2xlVHlwZTo6VXNlciA9PiBWM1JvbGVUeXBlOjpVc2VyLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICBpZiBsZXQgU29tZShTdG9yYWdlUm9sZURlZmF1bHRTZXR0aW5ncyB7IHZhbHVlIH0pID0gbW9kaWZ5LmRlZmF1bHRfc2V0dGluZ3MgewogICAgICAgICAgICByb2xlLmRlZmF1bHRfc2V0dGluZ3MgPSB2YWx1ZTsKICAgICAgICB9CiAgICAgICAgaWYgbGV0IFNvbWUoU3RvcmFnZVJvbGVQZXJtaXNzaW9ucyB7CiAgICAgICAgICAgIGFsbG93X2FkZF9ob3N0cywKICAgICAgICAgICAgbWF4aW11bV9iaXRyYXRlX2ticHMsCiAgICAgICAgICAgIGFsbG93X2NvZGVjX2gyNjQsCiAgICAgICAgICAgIGFsbG93X2NvZGVjX2gyNjUsCiAgICAgICAgICAgIGFsbG93X2NvZGVjX2F2MSwKICAgICAgICAgICAgYWxsb3dfaGRyLAogICAgICAgICAgICBhbGxvd190cmFuc3BvcnRfd2VicnRjLAogICAgICAgICAgICBhbGxvd190cmFuc3BvcnRfd2Vic29ja2V0cywKICAgICAgICB9KSA9IG1vZGlmeS5wZXJtaXNzaW9ucwogICAgICAgIHsKICAgICAgICAgICAgcm9sZS5wZXJtaXNzaW9ucy5hbGxvd19hZGRfaG9zdHMgPSBhbGxvd19hZGRfaG9zdHM7CiAgICAgICAgICAgIHJvbGUucGVybWlzc2lvbnMubWF4aW11bV9iaXRyYXRlX2ticHMgPSBtYXhpbXVtX2JpdHJhdGVfa2JwczsKICAgICAgICAgICAgcm9sZS5wZXJtaXNzaW9ucy5hbGxvd19jb2RlY19oMjY0ID0gYWxsb3dfY29kZWNfaDI2NDsKICAgICAgICAgICAgcm9sZS5wZXJtaXNzaW9ucy5hbGxvd19jb2RlY19oMjY1ID0gYWxsb3dfY29kZWNfaDI2NTsKICAgICAgICAgICAgcm9sZS5wZXJtaXNzaW9ucy5hbGxvd19jb2RlY19hdjEgPSBhbGxvd19jb2RlY19hdjE7CiAgICAgICAgICAgIHJvbGUucGVybWlzc2lvbnMuYWxsb3dfaGRyID0gYWxsb3dfaGRyOwogICAgICAgICAgICByb2xlLnBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJydGMgPSBhbGxvd190cmFuc3BvcnRfd2VicnRjOwogICAgICAgICAgICByb2xlLnBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJzb2NrZXRzID0gYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHM7CiAgICAgICAgfQoKICAgICAgICBkcm9wKHJvbGUpOwogICAgICAgIGRyb3Aocm9sZXMpOwoKICAgICAgICBzZWxmLmZvcmNlX3dyaXRlKCk7CgogICAgICAgIE9rKCgpKQogICAgfQogICAgYXN5bmMgZm4gZ2V0X3JvbGUoJnNlbGYsIHJvbGVfaWQ6IFJvbGVJZCkgLT4gUmVzdWx0PFN0b3JhZ2VSb2xlLCBBcHBFcnJvcj4gewogICAgICAgIGxldCByb2xlcyA9IHNlbGYucm9sZXMucmVhZCgpLmF3YWl0OwoKICAgICAgICBsZXQgcm9sZV9sb2NrID0gcm9sZXMuZ2V0KCZyb2xlX2lkLjApLm9rX29yKEFwcEVycm9yOjpSb2xlTm90Rm91bmQpPzsKICAgICAgICBsZXQgcm9sZSA9IHJvbGVfbG9jay5yZWFkKCkuYXdhaXQ7CgogICAgICAgIE9rKHJvbGVfZnJvbV9qc29uKHJvbGVfaWQsICZyb2xlKSkKICAgIH0KICAgIGFzeW5jIGZuIHJlbW92ZV9yb2xlKCZzZWxmLCByb2xlX2lkOiBSb2xlSWQpIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+IHsKICAgICAgICAvLyBEZWxldGUgYWxsIHVzZXJzIHdpdGggdGhhdCByb2xlCiAgICAgICAgewogICAgICAgICAgICBsZXQgbXV0IHVzZXJzID0gc2VsZi51c2Vycy53cml0ZSgpLmF3YWl0OwoKICAgICAgICAgICAgbGV0IG11dCB1c2Vyc190b19yZW1vdmUgPSB2ZWMhW107CgogICAgICAgICAgICAvLyBGaW5kIGFsbCB1c2VycyB3aXRoIHRoYXQgcm9sZQogICAgICAgICAgICBmb3IgKHVzZXJfaWQsIHVzZXIpIGluIHVzZXJzLml0ZXIoKSB7CiAgICAgICAgICAgICAgICBsZXQgdXNlciA9IHVzZXIucmVhZCgpLmF3YWl0OwoKICAgICAgICAgICAgICAgIGlmIHVzZXIucm9sZV9pZCA9PSByb2xlX2lkLjAgewogICAgICAgICAgICAgICAgICAgIHVzZXJzX3RvX3JlbW92ZS5wdXNoKCp1c2VyX2lkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gUmVtb3ZlIGFsbCB1c2VyIGlkJ3MgaW4gdGhhdCBsaXN0CiAgICAgICAgICAgIGZvciB1c2VyX2lkIGluIHVzZXJzX3RvX3JlbW92ZSB7CiAgICAgICAgICAgICAgICB1c2Vycy5yZW1vdmUoJnVzZXJfaWQpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBEZWxldGUgdGhhdCByb2xlCiAgICAgICAgbGV0IHJlc3VsdCA9IHsKICAgICAgICAgICAgbGV0IG11dCByb2xlcyA9IHNlbGYucm9sZXMud3JpdGUoKS5hd2FpdDsKCiAgICAgICAgICAgIGxldCByZXN1bHQgPSBtYXRjaCByb2xlcy5yZW1vdmUoJnJvbGVfaWQuMCkgewogICAgICAgICAgICAgICAgTm9uZSA9PiBFcnIoQXBwRXJyb3I6OlJvbGVOb3RGb3VuZCksCiAgICAgICAgICAgICAgICBTb21lKF8pID0+IE9rKCgpKSwKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGRyb3Aocm9sZXMpOwoKICAgICAgICAgICAgcmVzdWx0CiAgICAgICAgfTsKCiAgICAgICAgc2VsZi5mb3JjZV93cml0ZSgpOwoKICAgICAgICByZXN1bHQKICAgIH0KICAgIGFzeW5jIGZuIGxpc3Rfcm9sZXMoJnNlbGYpIC0+IFJlc3VsdDxFaXRoZXI8VmVjPFJvbGVJZD4sIFZlYzxTdG9yYWdlUm9sZT4+LCBBcHBFcnJvcj4gewogICAgICAgIGxldCByb2xlcyA9IHNlbGYucm9sZXMucmVhZCgpLmF3YWl0OwoKICAgICAgICBsZXQgZnV0dXJlcyA9IHJvbGVzLml0ZXIoKS5tYXAofChpZCwgdmFsdWUpfCB7CiAgICAgICAgICAgIGxldCBpZCA9ICppZDsKICAgICAgICAgICAgYXN5bmMgbW92ZSB7CiAgICAgICAgICAgICAgICBsZXQgcm9sZSA9IHZhbHVlLnJlYWQoKS5hd2FpdC5jbG9uZSgpOwogICAgICAgICAgICAgICAgcm9sZV9mcm9tX2pzb24oUm9sZUlkKGlkKSwgJnJvbGUpCiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgbGV0IG91dCA9IGpvaW5fYWxsKGZ1dHVyZXMpLmF3YWl0OwogICAgICAgIE9rKEVpdGhlcjo6UmlnaHQob3V0KSkKICAgIH0KCiAgICBhc3luYyBmbiBhZGRfdXNlcigmc2VsZiwgdXNlcjogU3RvcmFnZVVzZXJBZGQpIC0+IFJlc3VsdDxTdG9yYWdlVXNlciwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgdXNlciA9IFYzVXNlciB7CiAgICAgICAgICAgIHJvbGVfaWQ6IHVzZXIucm9sZV9pZC4wLAogICAgICAgICAgICBuYW1lOiB1c2VyLm5hbWUsCiAgICAgICAgICAgIHBhc3N3b3JkOiB1c2VyLnBhc3N3b3JkLm1hcCh8cGFzc3dvcmR8IFYyVXNlclBhc3N3b3JkIHsKICAgICAgICAgICAgICAgIHNhbHQ6IHBhc3N3b3JkLnNhbHQsCiAgICAgICAgICAgICAgICBoYXNoOiBwYXNzd29yZC5oYXNoLAogICAgICAgICAgICAgICAgaXRlcmF0aW9uczogcGFzc3dvcmQuaXRlcmF0aW9ucywKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGNsaWVudF91bmlxdWVfaWQ6IHVzZXIuY2xpZW50X3VuaXF1ZV9pZCwKICAgICAgICB9OwoKICAgICAgICB7CiAgICAgICAgICAgIG1hdGNoIHNlbGYuZ2V0X3VzZXJfYnlfbmFtZSgmdXNlci5uYW1lKS5hd2FpdCB7CiAgICAgICAgICAgICAgICBFcnIoQXBwRXJyb3I6OlVzZXJOb3RGb3VuZCkgPT4gewogICAgICAgICAgICAgICAgICAgIC8vIEZhbGx0aHJvdWdoCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBPayhfKSA9PiByZXR1cm4gRXJyKEFwcEVycm9yOjpVc2VyQWxyZWFkeUV4aXN0cyksCiAgICAgICAgICAgICAgICBFcnIoZXJyKSA9PiByZXR1cm4gRXJyKGVyciksCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGxldCBtdXQgdXNlcnMgPSBzZWxmLnVzZXJzLndyaXRlKCkuYXdhaXQ7CgogICAgICAgIGxldCBtdXQgaWQ7CiAgICAgICAgbG9vcCB7CiAgICAgICAgICAgIGlkID0gcmFuZG9tX251bWJlcigpPzsKCiAgICAgICAgICAgIGlmICF1c2Vycy5jb250YWluc19rZXkoJmlkKSB7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICB1c2Vycy5pbnNlcnQoaWQsIFJ3TG9jazo6bmV3KHVzZXIuY2xvbmUoKSkpOwoKICAgICAgICBkcm9wKHVzZXJzKTsKCiAgICAgICAgc2VsZi5mb3JjZV93cml0ZSgpOwoKICAgICAgICBPayhTdG9yYWdlVXNlciB7CiAgICAgICAgICAgIGlkOiBVc2VySWQoaWQpLAogICAgICAgICAgICBuYW1lOiB1c2VyLm5hbWUsCiAgICAgICAgICAgIHBhc3N3b3JkOiB1c2VyLnBhc3N3b3JkLm1hcCh8cGFzc3dvcmR8IFN0b3JhZ2VQYXNzd29yZCB7CiAgICAgICAgICAgICAgICBzYWx0OiBwYXNzd29yZC5zYWx0LAogICAgICAgICAgICAgICAgaGFzaDogcGFzc3dvcmQuaGFzaCwKICAgICAgICAgICAgICAgIGl0ZXJhdGlvbnM6IHBhc3N3b3JkLml0ZXJhdGlvbnMsCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICByb2xlX2lkOiBSb2xlSWQodXNlci5yb2xlX2lkKSwKICAgICAgICAgICAgY2xpZW50X3VuaXF1ZV9pZDogdXNlci5jbGllbnRfdW5pcXVlX2lkLAogICAgICAgIH0pCiAgICB9CiAgICBhc3luYyBmbiBtb2RpZnlfdXNlcigKICAgICAgICAmc2VsZiwKICAgICAgICB1c2VyX2lkOiBVc2VySWQsCiAgICAgICAgbW9kaWZ5OiBTdG9yYWdlVXNlck1vZGlmeSwKICAgICkgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj4gewogICAgICAgIGxldCB1c2VycyA9IHNlbGYudXNlcnMucmVhZCgpLmF3YWl0OwoKICAgICAgICBsZXQgdXNlcl9sb2NrID0gdXNlcnMuZ2V0KCZ1c2VyX2lkLjApLm9rX29yKEFwcEVycm9yOjpVc2VyTm90Rm91bmQpPzsKICAgICAgICBsZXQgbXV0IHVzZXIgPSB1c2VyX2xvY2sud3JpdGUoKS5hd2FpdDsKCiAgICAgICAgaWYgbGV0IFNvbWUocGFzc3dvcmQpID0gbW9kaWZ5LnBhc3N3b3JkIHsKICAgICAgICAgICAgdXNlci5wYXNzd29yZCA9IHBhc3N3b3JkLm1hcCh8cGFzc3dvcmR8IFYyVXNlclBhc3N3b3JkIHsKICAgICAgICAgICAgICAgIHNhbHQ6IHBhc3N3b3JkLnNhbHQsCiAgICAgICAgICAgICAgICBoYXNoOiBwYXNzd29yZC5oYXNoLAogICAgICAgICAgICAgICAgaXRlcmF0aW9uczogcGFzc3dvcmQuaXRlcmF0aW9ucywKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGlmIGxldCBTb21lKHJvbGVfaWQpID0gbW9kaWZ5LnJvbGVfaWQgewogICAgICAgICAgICB1c2VyLnJvbGVfaWQgPSByb2xlX2lkLjA7CiAgICAgICAgfQogICAgICAgIGlmIGxldCBTb21lKGNsaWVudF91bmlxdWVfaWQpID0gbW9kaWZ5LmNsaWVudF91bmlxdWVfaWQgewogICAgICAgICAgICB1c2VyLmNsaWVudF91bmlxdWVfaWQgPSBjbGllbnRfdW5pcXVlX2lkOwogICAgICAgIH0KCiAgICAgICAgZHJvcCh1c2VyKTsKICAgICAgICBkcm9wKHVzZXJzKTsKCiAgICAgICAgc2VsZi5mb3JjZV93cml0ZSgpOwoKICAgICAgICBPaygoKSkKICAgIH0KICAgIGFzeW5jIGZuIGdldF91c2VyKCZzZWxmLCB1c2VyX2lkOiBVc2VySWQpIC0+IFJlc3VsdDxTdG9yYWdlVXNlciwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgdXNlcnMgPSBzZWxmLnVzZXJzLnJlYWQoKS5hd2FpdDsKCiAgICAgICAgbGV0IHVzZXJfbG9jayA9IHVzZXJzLmdldCgmdXNlcl9pZC4wKS5va19vcihBcHBFcnJvcjo6VXNlck5vdEZvdW5kKT87CiAgICAgICAgbGV0IHVzZXIgPSB1c2VyX2xvY2sucmVhZCgpLmF3YWl0OwoKICAgICAgICBPayh1c2VyX2Zyb21fanNvbih1c2VyX2lkLCAmdXNlcikpCiAgICB9CiAgICBhc3luYyBmbiBnZXRfdXNlcl9ieV9uYW1lKAogICAgICAgICZzZWxmLAogICAgICAgIG5hbWU6ICZzdHIsCiAgICApIC0+IFJlc3VsdDwoVXNlcklkLCBPcHRpb248U3RvcmFnZVVzZXI+KSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgdXNlcnMgPSBzZWxmLnVzZXJzLnJlYWQoKS5hd2FpdDsKCiAgICAgICAgbGV0IHJlc3VsdHMgPSBqb2luX2FsbCh1c2Vycy5pdGVyKCkubWFwKHwodXNlcl9pZCwgdXNlcil8IGFzeW5jIG1vdmUgewogICAgICAgICAgICBsZXQgdXNlciA9IHVzZXIucmVhZCgpLmF3YWl0OwoKICAgICAgICAgICAgbGV0IHVzZXJfaWQgPSBVc2VySWQoKnVzZXJfaWQpOwogICAgICAgICAgICBsZXQgdXNlciA9ICh1c2VyLm5hbWUgPT0gbmFtZSkudGhlbih8fCB1c2VyX2Zyb21fanNvbih1c2VyX2lkLCAmdXNlcikpOwoKICAgICAgICAgICAgKHVzZXJfaWQsIHVzZXIpCiAgICAgICAgfSkpCiAgICAgICAgLmF3YWl0OwoKICAgICAgICBsZXQgdXNlciA9IHJlc3VsdHMuaW50b19pdGVyKCkuZmluZCh8KF8sIHVzZXIpfCB1c2VyLmlzX3NvbWUoKSk7CgogICAgICAgIHVzZXIub2tfb3IoQXBwRXJyb3I6OlVzZXJOb3RGb3VuZCkKICAgIH0KICAgIGFzeW5jIGZuIHJlbW92ZV91c2VyKCZzZWxmLCB1c2VyX2lkOiBVc2VySWQpIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgbXV0IHVzZXJzID0gc2VsZi51c2Vycy53cml0ZSgpLmF3YWl0OwoKICAgICAgICBsZXQgcmVzdWx0ID0gbWF0Y2ggdXNlcnMucmVtb3ZlKCZ1c2VyX2lkLjApIHsKICAgICAgICAgICAgTm9uZSA9PiBFcnIoQXBwRXJyb3I6OlVzZXJOb3RGb3VuZCksCiAgICAgICAgICAgIFNvbWUoXykgPT4gT2soKCkpLAogICAgICAgIH07CgogICAgICAgIGRyb3AodXNlcnMpOwoKICAgICAgICBzZWxmLmZvcmNlX3dyaXRlKCk7CgogICAgICAgIHJlc3VsdAogICAgfQogICAgYXN5bmMgZm4gbGlzdF91c2Vycygmc2VsZikgLT4gUmVzdWx0PEVpdGhlcjxWZWM8VXNlcklkPiwgVmVjPFN0b3JhZ2VVc2VyPj4sIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IHVzZXJzID0gc2VsZi51c2Vycy5yZWFkKCkuYXdhaXQ7CgogICAgICAgIGxldCBmdXR1cmVzID0gdXNlcnMuaXRlcigpLm1hcCh8KGlkLCB2YWx1ZSl8IHsKICAgICAgICAgICAgbGV0IGlkID0gKmlkOwogICAgICAgICAgICBhc3luYyBtb3ZlIHsKICAgICAgICAgICAgICAgIGxldCB1c2VyID0gdmFsdWUucmVhZCgpLmF3YWl0LmNsb25lKCk7CiAgICAgICAgICAgICAgICB1c2VyX2Zyb21fanNvbihVc2VySWQoaWQpLCAmdXNlcikKICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICBsZXQgb3V0ID0gam9pbl9hbGwoZnV0dXJlcykuYXdhaXQ7CiAgICAgICAgT2soRWl0aGVyOjpSaWdodChvdXQpKQogICAgfQogICAgYXN5bmMgZm4gYW55X3VzZXJfZXhpc3RzKCZzZWxmKSAtPiBSZXN1bHQ8Ym9vbCwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgdXNlcnMgPSBzZWxmLnVzZXJzLnJlYWQoKS5hd2FpdDsKCiAgICAgICAgT2soIXVzZXJzLmlzX2VtcHR5KCkpCiAgICB9CgogICAgYXN5bmMgZm4gY3JlYXRlX3Nlc3Npb25fdG9rZW4oCiAgICAgICAgJnNlbGYsCiAgICAgICAgdXNlcl9pZDogVXNlcklkLAogICAgICAgIGV4cGlyYXRpb246IER1cmF0aW9uLAogICAgKSAtPiBSZXN1bHQ8U2Vzc2lvblRva2VuLCBBcHBFcnJvcj4gewogICAgICAgIGxldCBtdXQgdG9rZW47CiAgICAgICAgewogICAgICAgICAgICBsZXQgc2Vzc2lvbnMgPSBzZWxmLnNlc3Npb25zLnJlYWQoKS5hd2FpdDsKCiAgICAgICAgICAgIGxvb3AgewogICAgICAgICAgICAgICAgdG9rZW4gPSBTZXNzaW9uVG9rZW46Om5ldygpPzsKICAgICAgICAgICAgICAgIGlmICFzZXNzaW9ucy5jb250YWluc19rZXkoJnRva2VuKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBsZXQgbXV0IHNlc3Npb25zID0gc2VsZi5zZXNzaW9ucy53cml0ZSgpLmF3YWl0OwoKICAgICAgICBzZXNzaW9ucy5pbnNlcnQoCiAgICAgICAgICAgIHRva2VuLAogICAgICAgICAgICBTZXNzaW9uIHsKICAgICAgICAgICAgICAgIGNyZWF0ZWRfYXQ6IEluc3RhbnQ6Om5vdygpLAogICAgICAgICAgICAgICAgZXhwaXJhdGlvbiwKICAgICAgICAgICAgICAgIHVzZXJfaWQ6IHVzZXJfaWQuMCwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBPayh0b2tlbikKICAgIH0KICAgIGFzeW5jIGZuIHJlbW92ZV9zZXNzaW9uX3Rva2VuKCZzZWxmLCBzZXNzaW9uOiBTZXNzaW9uVG9rZW4pIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgbXV0IHNlc3Npb25zID0gc2VsZi5zZXNzaW9ucy53cml0ZSgpLmF3YWl0OwoKICAgICAgICBzZXNzaW9ucy5yZW1vdmUoJnNlc3Npb24pOwoKICAgICAgICBPaygoKSkKICAgIH0KICAgIGFzeW5jIGZuIHJlbW92ZV9hbGxfdXNlcl9zZXNzaW9uX3Rva2Vucygmc2VsZiwgdXNlcl9pZDogVXNlcklkKSAtPiBSZXN1bHQ8KCksIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IG11dCBzZXNzaW9ucyA9IHNlbGYuc2Vzc2lvbnMud3JpdGUoKS5hd2FpdDsKCiAgICAgICAgc2Vzc2lvbnMucmV0YWluKHxfLCBzZXNzaW9ufCBVc2VySWQoc2Vzc2lvbi51c2VyX2lkKSAhPSB1c2VyX2lkKTsKCiAgICAgICAgT2soKCkpCiAgICB9CiAgICBhc3luYyBmbiBnZXRfdXNlcl9ieV9zZXNzaW9uX3Rva2VuKAogICAgICAgICZzZWxmLAogICAgICAgIHNlc3Npb246IFNlc3Npb25Ub2tlbiwKICAgICkgLT4gUmVzdWx0PChVc2VySWQsIE9wdGlvbjxTdG9yYWdlVXNlcj4pLCBBcHBFcnJvcj4gewogICAgICAgIGxldCBzZXNzaW9ucyA9IHNlbGYuc2Vzc2lvbnMucmVhZCgpLmF3YWl0OwoKICAgICAgICBzZXNzaW9ucwogICAgICAgICAgICAuZ2V0KCZzZXNzaW9uKQogICAgICAgICAgICAubWFwKHxzZXNzaW9ufCAoVXNlcklkKHNlc3Npb24udXNlcl9pZCksIE5vbmUpKQogICAgICAgICAgICAub2tfb3IoQXBwRXJyb3I6OlNlc3Npb25Ub2tlbk5vdEZvdW5kKQogICAgfQoKICAgIGFzeW5jIGZuIGFkZF9ob3N0KCZzZWxmLCBob3N0OiBTdG9yYWdlSG9zdEFkZCkgLT4gUmVzdWx0PFN0b3JhZ2VIb3N0LCBBcHBFcnJvcj4gewogICAgICAgIGxldCBob3N0ID0gVjJIb3N0IHsKICAgICAgICAgICAgb3duZXI6IGhvc3Qub3duZXIubWFwKHx1c2VyX2lkfCB1c2VyX2lkLjApLAogICAgICAgICAgICBhZGRyZXNzOiBob3N0LmFkZHJlc3MsCiAgICAgICAgICAgIGh0dHBfcG9ydDogaG9zdC5odHRwX3BvcnQsCiAgICAgICAgICAgIHBhaXJfaW5mbzogaG9zdC5wYWlyX2luZm8ubWFwKHxwYWlyX2luZm98IFYySG9zdFBhaXJJbmZvIHsKICAgICAgICAgICAgICAgIGNsaWVudF9wcml2YXRlX2tleTogcGFpcl9pbmZvLmNsaWVudF9wcml2YXRlX2tleSwKICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0aWZpY2F0ZTogcGFpcl9pbmZvLmNsaWVudF9jZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgICAgIHNlcnZlcl9jZXJ0aWZpY2F0ZTogcGFpcl9pbmZvLnNlcnZlcl9jZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGNhY2hlOiBWMkhvc3RDYWNoZSB7CiAgICAgICAgICAgICAgICBuYW1lOiBob3N0LmNhY2hlLm5hbWUsCiAgICAgICAgICAgICAgICBtYWM6IGhvc3QuY2FjaGUubWFjLAogICAgICAgICAgICB9LAogICAgICAgIH07CgogICAgICAgIGxldCBtdXQgaG9zdHMgPSBzZWxmLmhvc3RzLndyaXRlKCkuYXdhaXQ7CgogICAgICAgIGxldCBtdXQgaWQ7CiAgICAgICAgbG9vcCB7CiAgICAgICAgICAgIGlkID0gcmFuZG9tX251bWJlcigpPzsKCiAgICAgICAgICAgIGlmICFob3N0cy5jb250YWluc19rZXkoJmlkKSB7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBob3N0cy5pbnNlcnQoaWQsIFJ3TG9jazo6bmV3KGhvc3QuY2xvbmUoKSkpOwoKICAgICAgICBzZWxmLmZvcmNlX3dyaXRlKCk7CgogICAgICAgIE9rKFN0b3JhZ2VIb3N0IHsKICAgICAgICAgICAgaWQ6IEhvc3RJZChpZCksCiAgICAgICAgICAgIG93bmVyOiBob3N0Lm93bmVyLm1hcChVc2VySWQpLAogICAgICAgICAgICBhZGRyZXNzOiBob3N0LmFkZHJlc3MsCiAgICAgICAgICAgIGh0dHBfcG9ydDogaG9zdC5odHRwX3BvcnQsCiAgICAgICAgICAgIHBhaXJfaW5mbzogaG9zdC5wYWlyX2luZm8ubWFwKHxwYWlyX2luZm98IFN0b3JhZ2VIb3N0UGFpckluZm8gewogICAgICAgICAgICAgICAgY2xpZW50X3ByaXZhdGVfa2V5OiBwYWlyX2luZm8uY2xpZW50X3ByaXZhdGVfa2V5LAogICAgICAgICAgICAgICAgY2xpZW50X2NlcnRpZmljYXRlOiBwYWlyX2luZm8uY2xpZW50X2NlcnRpZmljYXRlLAogICAgICAgICAgICAgICAgc2VydmVyX2NlcnRpZmljYXRlOiBwYWlyX2luZm8uc2VydmVyX2NlcnRpZmljYXRlLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgY2FjaGU6IFN0b3JhZ2VIb3N0Q2FjaGUgewogICAgICAgICAgICAgICAgbmFtZTogaG9zdC5jYWNoZS5uYW1lLAogICAgICAgICAgICAgICAgbWFjOiBob3N0LmNhY2hlLm1hYywKICAgICAgICAgICAgfSwKICAgICAgICB9KQogICAgfQogICAgYXN5bmMgZm4gbW9kaWZ5X2hvc3QoCiAgICAgICAgJnNlbGYsCiAgICAgICAgaG9zdF9pZDogSG9zdElkLAogICAgICAgIG1vZGlmeTogU3RvcmFnZUhvc3RNb2RpZnksCiAgICApIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgaG9zdHMgPSBzZWxmLmhvc3RzLnJlYWQoKS5hd2FpdDsKCiAgICAgICAgbGV0IGhvc3QgPSBob3N0cy5nZXQoJmhvc3RfaWQuMCkub2tfb3IoQXBwRXJyb3I6Okhvc3ROb3RGb3VuZCk/OwogICAgICAgIGxldCBtdXQgaG9zdCA9IGhvc3Qud3JpdGUoKS5hd2FpdDsKCiAgICAgICAgaWYgbGV0IFNvbWUobmV3X293bmVyKSA9IG1vZGlmeS5vd25lciB7CiAgICAgICAgICAgIGhvc3Qub3duZXIgPSBuZXdfb3duZXIubWFwKHx1c2VyX2lkfCB1c2VyX2lkLjApOwogICAgICAgIH0KICAgICAgICBpZiBsZXQgU29tZShuZXdfYWRkcmVzcykgPSBtb2RpZnkuYWRkcmVzcyB7CiAgICAgICAgICAgIGhvc3QuYWRkcmVzcyA9IG5ld19hZGRyZXNzOwogICAgICAgIH0KICAgICAgICBpZiBsZXQgU29tZShuZXdfaHR0cF9wb3J0KSA9IG1vZGlmeS5odHRwX3BvcnQgewogICAgICAgICAgICBob3N0Lmh0dHBfcG9ydCA9IG5ld19odHRwX3BvcnQ7CiAgICAgICAgfQogICAgICAgIGlmIGxldCBTb21lKG5ld19wYWlyX2luZm8pID0gbW9kaWZ5LnBhaXJfaW5mbyB7CiAgICAgICAgICAgIGhvc3QucGFpcl9pbmZvID0gbmV3X3BhaXJfaW5mby5tYXAofG5ld19wYWlyX2luZm98IFYySG9zdFBhaXJJbmZvIHsKICAgICAgICAgICAgICAgIGNsaWVudF9wcml2YXRlX2tleTogbmV3X3BhaXJfaW5mby5jbGllbnRfcHJpdmF0ZV9rZXksCiAgICAgICAgICAgICAgICBjbGllbnRfY2VydGlmaWNhdGU6IG5ld19wYWlyX2luZm8uY2xpZW50X2NlcnRpZmljYXRlLAogICAgICAgICAgICAgICAgc2VydmVyX2NlcnRpZmljYXRlOiBuZXdfcGFpcl9pbmZvLnNlcnZlcl9jZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGlmIGxldCBTb21lKG5ld19jYWNoZV9uYW1lKSA9IG1vZGlmeS5jYWNoZV9uYW1lIHsKICAgICAgICAgICAgaG9zdC5jYWNoZS5uYW1lID0gbmV3X2NhY2hlX25hbWU7CiAgICAgICAgfQogICAgICAgIGlmIGxldCBTb21lKG5ld19jYWNoZV9tYWMpID0gbW9kaWZ5LmNhY2hlX21hYyB7CiAgICAgICAgICAgIGhvc3QuY2FjaGUubWFjID0gbmV3X2NhY2hlX21hYzsKICAgICAgICB9CgogICAgICAgIHNlbGYuZm9yY2Vfd3JpdGUoKTsKCiAgICAgICAgT2soKCkpCiAgICB9CiAgICBhc3luYyBmbiBnZXRfaG9zdCgmc2VsZiwgaG9zdF9pZDogSG9zdElkKSAtPiBSZXN1bHQ8U3RvcmFnZUhvc3QsIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IGhvc3RzID0gc2VsZi5ob3N0cy5yZWFkKCkuYXdhaXQ7CgogICAgICAgIGxldCBob3N0ID0gaG9zdHMuZ2V0KCZob3N0X2lkLjApLm9rX29yKEFwcEVycm9yOjpIb3N0Tm90Rm91bmQpPzsKICAgICAgICBsZXQgaG9zdCA9IGhvc3QucmVhZCgpLmF3YWl0OwoKICAgICAgICBPayhob3N0X2Zyb21fanNvbihob3N0X2lkLCAmaG9zdCkpCiAgICB9CiAgICBhc3luYyBmbiByZW1vdmVfaG9zdCgmc2VsZiwgaG9zdF9pZDogSG9zdElkKSAtPiBSZXN1bHQ8KCksIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IG11dCBob3N0cyA9IHNlbGYuaG9zdHMud3JpdGUoKS5hd2FpdDsKCiAgICAgICAgaWYgaG9zdHMucmVtb3ZlKCZob3N0X2lkLjApLmlzX25vbmUoKSB7CiAgICAgICAgICAgIHJldHVybiBFcnIoQXBwRXJyb3I6Okhvc3ROb3RGb3VuZCk7CiAgICAgICAgfQoKICAgICAgICBzZWxmLmZvcmNlX3dyaXRlKCk7CgogICAgICAgIE9rKCgpKQogICAgfQoKICAgIGFzeW5jIGZuIGxpc3RfdXNlcl9ob3N0cygKICAgICAgICAmc2VsZiwKICAgICAgICBxdWVyeTogU3RvcmFnZVF1ZXJ5SG9zdHMsCiAgICApIC0+IFJlc3VsdDxWZWM8KEhvc3RJZCwgT3B0aW9uPFN0b3JhZ2VIb3N0Pik+LCBBcHBFcnJvcj4gewogICAgICAgIGxldCBob3N0cyA9IHNlbGYuaG9zdHMucmVhZCgpLmF3YWl0OwoKICAgICAgICBsZXQgbXV0IHVzZXJfaG9zdHMgPSBWZWM6Om5ldygpOwogICAgICAgIGZvciAoaG9zdF9pZCwgaG9zdCkgaW4gJipob3N0cyB7CiAgICAgICAgICAgIGxldCBob3N0X2lkID0gSG9zdElkKCpob3N0X2lkKTsKICAgICAgICAgICAgbGV0IGhvc3QgPSBob3N0LnJlYWQoKS5hd2FpdDsKCiAgICAgICAgICAgIGlmIGhvc3Qub3duZXIuaXNfbm9uZSgpIHx8IGhvc3Qub3duZXIubWFwKFVzZXJJZCkgPT0gU29tZShxdWVyeS51c2VyX2lkKSB7CiAgICAgICAgICAgICAgICB1c2VyX2hvc3RzLnB1c2goKGhvc3RfaWQsIFNvbWUoaG9zdF9mcm9tX2pzb24oaG9zdF9pZCwgJmhvc3QpKSkpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBPayh1c2VyX2hvc3RzKQogICAgfQp9Cg=="},{"path":"src/app/storage/json/serde_helpers.rs","sha256":"be446af4ee59925359f6ad0986eb661e4a25a9ae3c8ca0d57021f47b970629f1","contentBase64":"dXNlIHN0ZDo6ewogICAgY29sbGVjdGlvbnM6Okhhc2hNYXAsCiAgICBmbXQ6OntzZWxmLCBEaXNwbGF5fSwKICAgIGhhc2g6Okhhc2gsCiAgICBtYXJrZXI6OlBoYW50b21EYXRhLAogICAgc3RyOjpGcm9tU3RyLAp9OwoKdXNlIHNlcmRlOjp7CiAgICBEZXNlcmlhbGl6ZSwgRGVzZXJpYWxpemVyLAogICAgZGU6OntzZWxmLCBEZXNlcmlhbGl6ZVNlZWQsIE1hcEFjY2VzcywgVmlzaXRvcn0sCn07CgovLy8gVGhpcyBmaXhlcyB0aGUgaXNzdWUgdGhhdCBudW1iZXIga2V5cyBpbiBhIGhhc2htYXAgYXJlIHNlcmlhbGl6ZWQgd2l0aCBzdHJpbmcsIGJ1dCB0aGV5J3JlIHRyaWVkIHRvIGJlIGRlc2VyaWFsaXplZCBhcyBudW1iZXJzCnB1YiBmbiBkZV9pbnRfa2V5PCdkZSwgRCwgSywgVj4oZGVzZXJpYWxpemVyOiBEKSAtPiBSZXN1bHQ8SGFzaE1hcDxLLCBWPiwgRDo6RXJyb3I+CndoZXJlCiAgICBEOiBEZXNlcmlhbGl6ZXI8J2RlPiwKICAgIEs6IEVxICsgSGFzaCArIEZyb21TdHIsCiAgICBLOjpFcnI6IERpc3BsYXksCiAgICBWOiBEZXNlcmlhbGl6ZTwnZGU+LAp7CiAgICBzdHJ1Y3QgS2V5U2VlZDxLPiB7CiAgICAgICAgazogUGhhbnRvbURhdGE8Sz4sCiAgICB9CgogICAgaW1wbDwnZGUsIEs+IERlc2VyaWFsaXplU2VlZDwnZGU+IGZvciBLZXlTZWVkPEs+CiAgICB3aGVyZQogICAgICAgIEs6IEZyb21TdHIsCiAgICAgICAgSzo6RXJyOiBEaXNwbGF5LAogICAgewogICAgICAgIHR5cGUgVmFsdWUgPSBLOwoKICAgICAgICBmbiBkZXNlcmlhbGl6ZTxEPihzZWxmLCBkZXNlcmlhbGl6ZXI6IEQpIC0+IFJlc3VsdDxTZWxmOjpWYWx1ZSwgRDo6RXJyb3I+CiAgICAgICAgd2hlcmUKICAgICAgICAgICAgRDogRGVzZXJpYWxpemVyPCdkZT4sCiAgICAgICAgewogICAgICAgICAgICBkZXNlcmlhbGl6ZXIuZGVzZXJpYWxpemVfc3RyKHNlbGYpCiAgICAgICAgfQogICAgfQoKICAgIGltcGw8J2RlLCBLPiBWaXNpdG9yPCdkZT4gZm9yIEtleVNlZWQ8Sz4KICAgIHdoZXJlCiAgICAgICAgSzogRnJvbVN0ciwKICAgICAgICBLOjpFcnI6IERpc3BsYXksCiAgICB7CiAgICAgICAgdHlwZSBWYWx1ZSA9IEs7CgogICAgICAgIGZuIGV4cGVjdGluZygmc2VsZiwgZm9ybWF0dGVyOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7CiAgICAgICAgICAgIGZvcm1hdHRlci53cml0ZV9zdHIoImEgc3RyaW5nIikKICAgICAgICB9CgogICAgICAgIGZuIHZpc2l0X3N0cjxFPihzZWxmLCBzdHJpbmc6ICZzdHIpIC0+IFJlc3VsdDxTZWxmOjpWYWx1ZSwgRT4KICAgICAgICB3aGVyZQogICAgICAgICAgICBFOiBkZTo6RXJyb3IsCiAgICAgICAgewogICAgICAgICAgICBLOjpmcm9tX3N0cihzdHJpbmcpLm1hcF9lcnIoZGU6OkVycm9yOjpjdXN0b20pCiAgICAgICAgfQogICAgfQoKICAgIHN0cnVjdCBNYXBWaXNpdG9yPEssIFY+IHsKICAgICAgICBrOiBQaGFudG9tRGF0YTxLPiwKICAgICAgICB2OiBQaGFudG9tRGF0YTxWPiwKICAgIH0KCiAgICBpbXBsPCdkZSwgSywgVj4gVmlzaXRvcjwnZGU+IGZvciBNYXBWaXNpdG9yPEssIFY+CiAgICB3aGVyZQogICAgICAgIEs6IEVxICsgSGFzaCArIEZyb21TdHIsCiAgICAgICAgSzo6RXJyOiBEaXNwbGF5LAogICAgICAgIFY6IERlc2VyaWFsaXplPCdkZT4sCiAgICB7CiAgICAgICAgdHlwZSBWYWx1ZSA9IEhhc2hNYXA8SywgVj47CgogICAgICAgIGZuIGV4cGVjdGluZygmc2VsZiwgZm9ybWF0dGVyOiAmbXV0IGZtdDo6Rm9ybWF0dGVyKSAtPiBmbXQ6OlJlc3VsdCB7CiAgICAgICAgICAgIGZvcm1hdHRlci53cml0ZV9zdHIoImEgbWFwIikKICAgICAgICB9CgogICAgICAgIGZuIHZpc2l0X21hcDxBPihzZWxmLCBtdXQgaW5wdXQ6IEEpIC0+IFJlc3VsdDxTZWxmOjpWYWx1ZSwgQTo6RXJyb3I+CiAgICAgICAgd2hlcmUKICAgICAgICAgICAgQTogTWFwQWNjZXNzPCdkZT4sCiAgICAgICAgewogICAgICAgICAgICBsZXQgbXV0IG1hcCA9IEhhc2hNYXA6Om5ldygpOwogICAgICAgICAgICB3aGlsZSBsZXQgU29tZSgoaywgdikpID0KICAgICAgICAgICAgICAgIGlucHV0Lm5leHRfZW50cnlfc2VlZChLZXlTZWVkIHsgazogUGhhbnRvbURhdGEgfSwgUGhhbnRvbURhdGEpPwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBtYXAuaW5zZXJ0KGssIHYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIE9rKG1hcCkKICAgICAgICB9CiAgICB9CgogICAgZGVzZXJpYWxpemVyLmRlc2VyaWFsaXplX21hcChNYXBWaXNpdG9yIHsKICAgICAgICBrOiBQaGFudG9tRGF0YSwKICAgICAgICB2OiBQaGFudG9tRGF0YSwKICAgIH0pCn0KCnB1YiBtb2QgaGV4X2FycmF5IHsKICAgIHVzZSBzZXJkZTo6e0Rlc2VyaWFsaXplLCBEZXNlcmlhbGl6ZXIsIFNlcmlhbGl6ZXIsIGRlfTsKCiAgICBwdWIgZm4gc2VyaWFsaXplPFMsIGNvbnN0IE46IHVzaXplPihieXRlczogJlt1ODsgTl0sIHNlcmlhbGl6ZXI6IFMpIC0+IFJlc3VsdDxTOjpPaywgUzo6RXJyb3I+CiAgICB3aGVyZQogICAgICAgIFM6IFNlcmlhbGl6ZXIsCiAgICB7CiAgICAgICAgbGV0IGVuY29kZWQgPSBoZXg6OmVuY29kZShieXRlcyk7CiAgICAgICAgc2VyaWFsaXplci5zZXJpYWxpemVfc3RyKCZlbmNvZGVkKQogICAgfQoKICAgIHB1YiBmbiBkZXNlcmlhbGl6ZTwnZGUsIEQsIGNvbnN0IE46IHVzaXplPihkZXNlcmlhbGl6ZXI6IEQpIC0+IFJlc3VsdDxbdTg7IE5dLCBEOjpFcnJvcj4KICAgIHdoZXJlCiAgICAgICAgRDogRGVzZXJpYWxpemVyPCdkZT4sCiAgICB7CiAgICAgICAgbGV0IHMgPSBTdHJpbmc6OmRlc2VyaWFsaXplKGRlc2VyaWFsaXplcik/OwogICAgICAgIGxldCBkZWNvZGVkID0gaGV4OjpkZWNvZGUoJnMpLm1hcF9lcnIoZGU6OkVycm9yOjpjdXN0b20pPzsKICAgICAgICBkZWNvZGVkCiAgICAgICAgICAgIC50cnlfaW50bygpCiAgICAgICAgICAgIC5tYXBfZXJyKHxffCBkZTo6RXJyb3I6OmN1c3RvbShmb3JtYXQhKCJpbnZhbGlkIGxlbmd0aDogZXhwZWN0ZWQge059IGJ5dGVzIikpKQogICAgfQp9Cg=="},{"path":"src/app/storage/json/versions.rs","sha256":"64dde2c20c4d05e23d4445483cc356ebf98e7de1ecac86537678e755e0926f77","contentBase64":"dXNlIHN0ZDo6Y29sbGVjdGlvbnM6Okhhc2hNYXA7Cgp1c2UgbG9nOjplcnJvcjsKdXNlIG1vb25saWdodF9jb21tb246Om1hYzo6TWFjQWRkcmVzczsKdXNlIHBlbTo6UGVtOwp1c2Ugc2VyZGU6OntEZXNlcmlhbGl6ZSwgU2VyaWFsaXplfTsKdXNlIHNlcmRlX2pzb246OlZhbHVlOwoKdXNlIGNyYXRlOjphcHA6OnVzZXI6OlJvbGVUeXBlOwoKLy8gVGhvc2UgdmVyc2lvbiBkb24ndCBmb2xsb3cgdGhlIHJlbGVhc2UgdGFncyBhbmQgYXJlIGp1c3QgYXJiaXRyYXJ5CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KI1tzZXJkZSh0YWcgPSAidmVyc2lvbiIpXQpwdWIgZW51bSBKc29uIHsKICAgICNbc2VyZGUocmVuYW1lID0gIjMiKV0KICAgIFYzKFYzKSwKICAgICNbc2VyZGUocmVuYW1lID0gIjIiKV0KICAgIFYyKFYyKSwKICAgICNbc2VyZGUodW50YWdnZWQpXQogICAgVjEoVjEpLAp9CgovLyAtLSBWMQoKI1tkZXJpdmUoU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBzdHJ1Y3QgVjEgewogICAgaG9zdHM6IFZlYzxWMUhvc3Q+LAp9CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KcHViIHN0cnVjdCBWMUhvc3QgewogICAgYWRkcmVzczogU3RyaW5nLAogICAgaHR0cF9wb3J0OiB1MTYsCiAgICAjW3NlcmRlKGRlZmF1bHQpXQogICAgY2FjaGU6IFYxSG9zdENhY2hlLAogICAgcGFpcmVkOiBPcHRpb248VjFIb3N0UGFpckluZm8+LAp9CgojW2Rlcml2ZShEZWZhdWx0LCBDbG9uZSwgRGVidWcsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgc3RydWN0IFYxSG9zdENhY2hlIHsKICAgIHB1YiBuYW1lOiBPcHRpb248U3RyaW5nPiwKICAgIHB1YiBtYWM6IE9wdGlvbjxNYWNBZGRyZXNzPiwKfQoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KcHViIHN0cnVjdCBWMUhvc3RQYWlySW5mbyB7CiAgICBwdWIgY2xpZW50X3ByaXZhdGVfa2V5OiBTdHJpbmcsCiAgICBwdWIgY2xpZW50X2NlcnRpZmljYXRlOiBTdHJpbmcsCiAgICBwdWIgc2VydmVyX2NlcnRpZmljYXRlOiBTdHJpbmcsCn0KCmZuIG1pZ3JhdGVfY2VydGlmaWNhdGVzX3YxX3RvX3YyKHYxOiBWMUhvc3RQYWlySW5mbykgLT4gT3B0aW9uPFYySG9zdFBhaXJJbmZvPiB7CiAgICBTb21lKFYySG9zdFBhaXJJbmZvIHsKICAgICAgICBjbGllbnRfcHJpdmF0ZV9rZXk6IHYxLmNsaWVudF9wcml2YXRlX2tleS5wYXJzZSgpLm9rKCk/LAogICAgICAgIGNsaWVudF9jZXJ0aWZpY2F0ZTogdjEuY2xpZW50X2NlcnRpZmljYXRlLnBhcnNlKCkub2soKT8sCiAgICAgICAgc2VydmVyX2NlcnRpZmljYXRlOiB2MS5zZXJ2ZXJfY2VydGlmaWNhdGUucGFyc2UoKS5vaygpPywKICAgIH0pCn0KCnB1YiBmbiBtaWdyYXRlX3YxX3RvX3YyKG9sZDogVjEpIC0+IFYyIHsKICAgIGxldCBtdXQgdjJfaG9zdHMgPSBIYXNoTWFwOjpuZXcoKTsKCiAgICBmb3IgKGlkLCBvbGRfaG9zdCkgaW4gb2xkLmhvc3RzLmludG9faXRlcigpLmVudW1lcmF0ZSgpIHsKICAgICAgICBsZXQgdjJfaG9zdCA9IFYySG9zdCB7CiAgICAgICAgICAgIG93bmVyOiBOb25lLAogICAgICAgICAgICBhZGRyZXNzOiBvbGRfaG9zdC5hZGRyZXNzLAogICAgICAgICAgICBodHRwX3BvcnQ6IG9sZF9ob3N0Lmh0dHBfcG9ydCwKICAgICAgICAgICAgcGFpcl9pbmZvOiBvbGRfaG9zdAogICAgICAgICAgICAgICAgLnBhaXJlZAogICAgICAgICAgICAgICAgLmFuZF90aGVuKHx2MXwgbWF0Y2ggbWlncmF0ZV9jZXJ0aWZpY2F0ZXNfdjFfdG9fdjIodjEpIHsKICAgICAgICAgICAgICAgICAgICBTb21lKHZhbHVlKSA9PiBTb21lKHZhbHVlKSwKICAgICAgICAgICAgICAgICAgICBOb25lID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IhKCJNaWdyYXRpbmcgb2xkIHBhaXIgZGF0YSBmYWlsZWQhIERpc2NhcmRpbmcgdGhpcyBkYXRhISIpOwogICAgICAgICAgICAgICAgICAgICAgICBOb25lCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgIGNhY2hlOiBWMkhvc3RDYWNoZSB7CiAgICAgICAgICAgICAgICBuYW1lOiBvbGRfaG9zdC5jYWNoZS5uYW1lLnVud3JhcF9vcl9lbHNlKHx8ICJVbmtub3duIi50b19zdHJpbmcoKSksCiAgICAgICAgICAgICAgICBtYWM6IG9sZF9ob3N0LmNhY2hlLm1hYywKICAgICAgICAgICAgfSwKICAgICAgICB9OwoKICAgICAgICB2Ml9ob3N0cy5pbnNlcnQoaWQgYXMgdTMyLCB2Ml9ob3N0KTsKICAgIH0KCiAgICBWMiB7CiAgICAgICAgdXNlcnM6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICBob3N0czogdjJfaG9zdHMsCiAgICB9Cn0KCi8vIC0tIFYyCgp1c2UgY3JhdGU6OmFwcDo6c3RvcmFnZTo6anNvbjo6c2VyZGVfaGVscGVyczo6e2RlX2ludF9rZXksIGhleF9hcnJheX07CgojW2Rlcml2ZShTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KcHViIHN0cnVjdCBWMiB7CiAgICAjW3NlcmRlKGRlc2VyaWFsaXplX3dpdGggPSAiZGVfaW50X2tleSIpXQogICAgcHViIHVzZXJzOiBIYXNoTWFwPHUzMiwgVjJVc2VyPiwKICAgICNbc2VyZGUoZGVzZXJpYWxpemVfd2l0aCA9ICJkZV9pbnRfa2V5IildCiAgICBwdWIgaG9zdHM6IEhhc2hNYXA8dTMyLCBWMkhvc3Q+LAp9CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgc3RydWN0IFYyVXNlciB7CiAgICBwdWIgcm9sZTogUm9sZVR5cGUsCiAgICBwdWIgbmFtZTogU3RyaW5nLAogICAgcHViIHBhc3N3b3JkOiBPcHRpb248VjJVc2VyUGFzc3dvcmQ+LAogICAgcHViIGNsaWVudF91bmlxdWVfaWQ6IFN0cmluZywKfQoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KcHViIHN0cnVjdCBWMlVzZXJQYXNzd29yZCB7CiAgICAjW3NlcmRlKHdpdGggPSAiaGV4X2FycmF5IildCiAgICBwdWIgc2FsdDogW3U4OyAxNl0sCiAgICAjW3NlcmRlKHdpdGggPSAiaGV4X2FycmF5IildCiAgICBwdWIgaGFzaDogW3U4OyAzMl0sCiAgICAvLyBPbGRlciBzdG9yYWdlIGZpbGVzIHByZWRhdGUgcGVyLWhhc2ggaXRlcmF0aW9uIHRyYWNraW5nOyBkZWZhdWx0IHRvIHRoZQogICAgLy8gdmFsdWUgdGhhdCB3YXMgdXNlZCBhdCB0aGUgdGltZSB0aG9zZSBoYXNoZXMgd2VyZSBjcmVhdGVkIHNvIHRoZXkga2VlcAogICAgLy8gdmVyaWZ5aW5nIGFmdGVyIHRoZSBnbG9iYWwgaXRlcmF0aW9uIGNvdW50IGlzIGluY3JlYXNlZC4KICAgICNbc2VyZGUoZGVmYXVsdCA9ICJkZWZhdWx0X2xlZ2FjeV9pdGVyYXRpb25zIildCiAgICBwdWIgaXRlcmF0aW9uczogdTMyLAp9CgpmbiBkZWZhdWx0X2xlZ2FjeV9pdGVyYXRpb25zKCkgLT4gdTMyIHsKICAgIDE1MF8wMDAKfQoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KcHViIHN0cnVjdCBWMkhvc3QgewogICAgcHViIG93bmVyOiBPcHRpb248dTMyPiwKICAgIHB1YiBhZGRyZXNzOiBTdHJpbmcsCiAgICBwdWIgaHR0cF9wb3J0OiB1MTYsCiAgICBwdWIgcGFpcl9pbmZvOiBPcHRpb248VjJIb3N0UGFpckluZm8+LAogICAgcHViIGNhY2hlOiBWMkhvc3RDYWNoZSwKfQoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KcHViIHN0cnVjdCBWMkhvc3RQYWlySW5mbyB7CiAgICBwdWIgY2xpZW50X3ByaXZhdGVfa2V5OiBQZW0sCiAgICBwdWIgY2xpZW50X2NlcnRpZmljYXRlOiBQZW0sCiAgICBwdWIgc2VydmVyX2NlcnRpZmljYXRlOiBQZW0sCn0KCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBzdHJ1Y3QgVjJIb3N0Q2FjaGUgewogICAgcHViIG5hbWU6IFN0cmluZywKICAgIHB1YiBtYWM6IE9wdGlvbjxNYWNBZGRyZXNzPiwKfQoKZm4gbWlncmF0ZV92Ml90b192MyhvbGQ6IFYyKSAtPiBWMyB7CiAgICBjb25zdCBBRE1JTl9JRDogdTMyID0gMDsKICAgIGNvbnN0IFVTRVJfSUQ6IHUzMiA9IDE7CgogICAgbGV0IG11dCByb2xlcyA9IEhhc2hNYXA6Om5ldygpOwoKICAgIHJvbGVzLmluc2VydCgKICAgICAgICBBRE1JTl9JRCwKICAgICAgICBWM1JvbGUgewogICAgICAgICAgICBuYW1lOiAiQWRtaW4iLnRvX3N0cmluZygpLAogICAgICAgICAgICB0eTogVjNSb2xlVHlwZTo6QWRtaW4sCiAgICAgICAgICAgIGRlZmF1bHRfc2V0dGluZ3M6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICAgICAgcGVybWlzc2lvbnM6IFYzUm9sZVBlcm1pc3Npb25zOjpkZWZhdWx0KCksCiAgICAgICAgfSwKICAgICk7CiAgICByb2xlcy5pbnNlcnQoCiAgICAgICAgVVNFUl9JRCwKICAgICAgICBWM1JvbGUgewogICAgICAgICAgICBuYW1lOiAiVXNlciIudG9fc3RyaW5nKCksCiAgICAgICAgICAgIHR5OiBWM1JvbGVUeXBlOjpVc2VyLAogICAgICAgICAgICBkZWZhdWx0X3NldHRpbmdzOiBEZWZhdWx0OjpkZWZhdWx0KCksCiAgICAgICAgICAgIHBlcm1pc3Npb25zOiBWM1JvbGVQZXJtaXNzaW9uczo6ZGVmYXVsdCgpLAogICAgICAgIH0sCiAgICApOwoKICAgIFYzIHsKICAgICAgICB1c2Vyczogb2xkCiAgICAgICAgICAgIC51c2VycwogICAgICAgICAgICAuaW50b19pdGVyKCkKICAgICAgICAgICAgLm1hcCh8KGlkLCB1c2VyKXwgewogICAgICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgICAgIGlkLAogICAgICAgICAgICAgICAgICAgIFYzVXNlciB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF91bmlxdWVfaWQ6IHVzZXIuY2xpZW50X3VuaXF1ZV9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogdXNlci5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogdXNlci5wYXNzd29yZCwKICAgICAgICAgICAgICAgICAgICAgICAgcm9sZV9pZDogbWF0Y2ggdXNlci5yb2xlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvbGVUeXBlOjpBZG1pbiA9PiBBRE1JTl9JRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJvbGVUeXBlOjpVc2VyID0+IFVTRVJfSUQsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLmNvbGxlY3QoKSwKICAgICAgICBob3N0czogb2xkLmhvc3RzLAogICAgICAgIHJvbGVzLAogICAgfQp9CgovLyBWMwoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KcHViIHN0cnVjdCBWMyB7CiAgICAjW3NlcmRlKGRlc2VyaWFsaXplX3dpdGggPSAiZGVfaW50X2tleSIpXQogICAgcHViIHVzZXJzOiBIYXNoTWFwPHUzMiwgVjNVc2VyPiwKICAgICNbc2VyZGUoZGVzZXJpYWxpemVfd2l0aCA9ICJkZV9pbnRfa2V5IildCiAgICBwdWIgaG9zdHM6IEhhc2hNYXA8dTMyLCBWMkhvc3Q+LAogICAgI1tzZXJkZShkZXNlcmlhbGl6ZV93aXRoID0gImRlX2ludF9rZXkiKV0KICAgIHB1YiByb2xlczogSGFzaE1hcDx1MzIsIFYzUm9sZT4sCn0KCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBzdHJ1Y3QgVjNVc2VyIHsKICAgIHB1YiByb2xlX2lkOiB1MzIsCiAgICBwdWIgbmFtZTogU3RyaW5nLAogICAgcHViIHBhc3N3b3JkOiBPcHRpb248VjJVc2VyUGFzc3dvcmQ+LAogICAgcHViIGNsaWVudF91bmlxdWVfaWQ6IFN0cmluZywKfQoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBTZXJpYWxpemUsIERlc2VyaWFsaXplKV0KcHViIGVudW0gVjNSb2xlVHlwZSB7CiAgICBVc2VyLAogICAgQWRtaW4sCn0KCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgU2VyaWFsaXplLCBEZXNlcmlhbGl6ZSldCnB1YiBzdHJ1Y3QgVjNSb2xlIHsKICAgIHB1YiBuYW1lOiBTdHJpbmcsCiAgICBwdWIgdHk6IFYzUm9sZVR5cGUsCiAgICBwdWIgZGVmYXVsdF9zZXR0aW5nczogVmFsdWUsCiAgICBwdWIgcGVybWlzc2lvbnM6IFYzUm9sZVBlcm1pc3Npb25zLAp9CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUpXQpwdWIgc3RydWN0IFYzUm9sZVBlcm1pc3Npb25zIHsKICAgIHB1YiBhbGxvd19hZGRfaG9zdHM6IGJvb2wsCiAgICBwdWIgbWF4aW11bV9iaXRyYXRlX2ticHM6IE9wdGlvbjx1MzI+LAogICAgcHViIGFsbG93X2NvZGVjX2gyNjQ6IGJvb2wsCiAgICBwdWIgYWxsb3dfY29kZWNfaDI2NTogYm9vbCwKICAgIHB1YiBhbGxvd19jb2RlY19hdjE6IGJvb2wsCiAgICBwdWIgYWxsb3dfaGRyOiBib29sLAogICAgcHViIGFsbG93X3RyYW5zcG9ydF93ZWJydGM6IGJvb2wsCiAgICBwdWIgYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHM6IGJvb2wsCn0KCmltcGwgRGVmYXVsdCBmb3IgVjNSb2xlUGVybWlzc2lvbnMgewogICAgZm4gZGVmYXVsdCgpIC0+IFNlbGYgewogICAgICAgIFYzUm9sZVBlcm1pc3Npb25zIHsKICAgICAgICAgICAgYWxsb3dfYWRkX2hvc3RzOiB0cnVlLAogICAgICAgICAgICBtYXhpbXVtX2JpdHJhdGVfa2JwczogTm9uZSwKICAgICAgICAgICAgYWxsb3dfY29kZWNfaDI2NDogdHJ1ZSwKICAgICAgICAgICAgYWxsb3dfY29kZWNfaDI2NTogdHJ1ZSwKICAgICAgICAgICAgYWxsb3dfY29kZWNfYXYxOiB0cnVlLAogICAgICAgICAgICBhbGxvd19oZHI6IHRydWUsCiAgICAgICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJydGM6IHRydWUsCiAgICAgICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJzb2NrZXRzOiB0cnVlLAogICAgICAgIH0KICAgIH0KfQoKcHViIGZuIG1pZ3JhdGVfdG9fbGF0ZXN0KGpzb246IEpzb24pIC0+IFJlc3VsdDxWMywgYW55aG93OjpFcnJvcj4gewogICAgbWF0Y2gganNvbiB7CiAgICAgICAgSnNvbjo6VjEodjEpID0+IE9rKG1pZ3JhdGVfdjJfdG9fdjMobWlncmF0ZV92MV90b192Mih2MSkpKSwKICAgICAgICBKc29uOjpWMih2MikgPT4gT2sobWlncmF0ZV92Ml90b192Myh2MikpLAogICAgICAgIEpzb246OlYzKHYzKSA9PiBPayh2MyksCiAgICB9Cn0K"},{"path":"src/app/storage/mod.rs","sha256":"4e4805150039ade70838e97049102f0e414a559ac9cb55a1d4e9a508ec5f542b","contentBase64":"dXNlIHN0ZDo6e3N5bmM6OkFyYywgdGltZTo6RHVyYXRpb259OwoKdXNlIGFzeW5jX3RyYWl0Ojphc3luY190cmFpdDsKdXNlIGNvbW1vbjo6Y29uZmlnOjpTdG9yYWdlQ29uZmlnOwp1c2UgbW9vbmxpZ2h0X2NvbW1vbjo6bWFjOjpNYWNBZGRyZXNzOwp1c2UgcGVtOjpQZW07CnVzZSBzZXJkZV9qc29uOjpWYWx1ZTsKCnVzZSBjcmF0ZTo6YXBwOjp7CiAgICBBcHBFcnJvciwKICAgIGF1dGg6OlNlc3Npb25Ub2tlbiwKICAgIGhvc3Q6Okhvc3RJZCwKICAgIHBhc3N3b3JkOjpTdG9yYWdlUGFzc3dvcmQsCiAgICByb2xlOjpSb2xlSWQsCiAgICBzdG9yYWdlOjpqc29uOjpKc29uU3RvcmFnZSwKICAgIHVzZXI6OntSb2xlVHlwZSwgVXNlcklkfSwKfTsKCnB1YiBtb2QganNvbjsKCnB1YiBhc3luYyBmbiBjcmVhdGVfc3RvcmFnZSgKICAgIGNvbmZpZzogU3RvcmFnZUNvbmZpZywKKSAtPiBSZXN1bHQ8QXJjPGR5biBTdG9yYWdlICsgU2VuZCArIFN5bmM+LCBhbnlob3c6OkVycm9yPiB7CiAgICBtYXRjaCBjb25maWcgewogICAgICAgIFN0b3JhZ2VDb25maWc6Okpzb24gewogICAgICAgICAgICBwYXRoLAogICAgICAgICAgICBzZXNzaW9uX2V4cGlyYXRpb25fY2hlY2tfaW50ZXJ2YWwsCiAgICAgICAgfSA9PiB7CiAgICAgICAgICAgIGxldCBzdG9yYWdlID0gSnNvblN0b3JhZ2U6OmxvYWQocGF0aC5pbnRvKCksIHNlc3Npb25fZXhwaXJhdGlvbl9jaGVja19pbnRlcnZhbCkuYXdhaXQ/OwoKICAgICAgICAgICAgT2soc3RvcmFnZSkKICAgICAgICB9CiAgICB9Cn0KCi8vIFN0b3JhZ2VzOgovLyAtIElmIHR3byBvcHRpb25zIGFyZSBpbiBhIE1vZGlmeSBzdHJ1Y3QgaXQgbWVhbnM6IEZpcnN0IG9wdGlvbiA9IGNoYW5nZSB0aGUgZmllbGQsIHNlY29uZCBvcHRpb24gPSBpcyB0aGlzIHZhbHVlIG51bGwKCi8vIC0tLSBVc2VyIC0tLQojW2Rlcml2ZShDbG9uZSldCnB1YiBzdHJ1Y3QgU3RvcmFnZVVzZXIgewogICAgcHViIGlkOiBVc2VySWQsCiAgICBwdWIgbmFtZTogU3RyaW5nLAogICAgcHViIHBhc3N3b3JkOiBPcHRpb248U3RvcmFnZVBhc3N3b3JkPiwKICAgIHB1YiByb2xlX2lkOiBSb2xlSWQsCiAgICBwdWIgY2xpZW50X3VuaXF1ZV9pZDogU3RyaW5nLAp9CiNbZGVyaXZlKENsb25lKV0KcHViIHN0cnVjdCBTdG9yYWdlVXNlckFkZCB7CiAgICBwdWIgcm9sZV9pZDogUm9sZUlkLAogICAgcHViIG5hbWU6IFN0cmluZywKICAgIHB1YiBwYXNzd29yZDogT3B0aW9uPFN0b3JhZ2VQYXNzd29yZD4sCiAgICBwdWIgY2xpZW50X3VuaXF1ZV9pZDogU3RyaW5nLAp9CiNbZGVyaXZlKERlZmF1bHQsIENsb25lKV0KcHViIHN0cnVjdCBTdG9yYWdlVXNlck1vZGlmeSB7CiAgICBwdWIgcm9sZV9pZDogT3B0aW9uPFJvbGVJZD4sCiAgICBwdWIgcGFzc3dvcmQ6IE9wdGlvbjxPcHRpb248U3RvcmFnZVBhc3N3b3JkPj4sCiAgICBwdWIgY2xpZW50X3VuaXF1ZV9pZDogT3B0aW9uPFN0cmluZz4sCn0KCi8vIC0tLSBSb2xlcyAtLS0KI1tkZXJpdmUoQ2xvbmUsIERlZmF1bHQpXQpwdWIgc3RydWN0IFN0b3JhZ2VSb2xlRGVmYXVsdFNldHRpbmdzIHsKICAgIHB1YiB2YWx1ZTogVmFsdWUsCn0KCiNbZGVyaXZlKENsb25lKV0KcHViIHN0cnVjdCBTdG9yYWdlUm9sZVBlcm1pc3Npb25zIHsKICAgIHB1YiBhbGxvd19hZGRfaG9zdHM6IGJvb2wsCiAgICBwdWIgbWF4aW11bV9iaXRyYXRlX2ticHM6IE9wdGlvbjx1MzI+LAogICAgcHViIGFsbG93X2NvZGVjX2gyNjQ6IGJvb2wsCiAgICBwdWIgYWxsb3dfY29kZWNfaDI2NTogYm9vbCwKICAgIHB1YiBhbGxvd19jb2RlY19hdjE6IGJvb2wsCiAgICBwdWIgYWxsb3dfaGRyOiBib29sLAogICAgcHViIGFsbG93X3RyYW5zcG9ydF93ZWJydGM6IGJvb2wsCiAgICBwdWIgYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHM6IGJvb2wsCn0KCmltcGwgRGVmYXVsdCBmb3IgU3RvcmFnZVJvbGVQZXJtaXNzaW9ucyB7CiAgICBmbiBkZWZhdWx0KCkgLT4gU2VsZiB7CiAgICAgICAgU2VsZiB7CiAgICAgICAgICAgIGFsbG93X2FkZF9ob3N0czogdHJ1ZSwKICAgICAgICAgICAgbWF4aW11bV9iaXRyYXRlX2ticHM6IE5vbmUsCiAgICAgICAgICAgIGFsbG93X2NvZGVjX2gyNjQ6IHRydWUsCiAgICAgICAgICAgIGFsbG93X2NvZGVjX2gyNjU6IHRydWUsCiAgICAgICAgICAgIGFsbG93X2NvZGVjX2F2MTogdHJ1ZSwKICAgICAgICAgICAgYWxsb3dfaGRyOiB0cnVlLAogICAgICAgICAgICBhbGxvd190cmFuc3BvcnRfd2VicnRjOiB0cnVlLAogICAgICAgICAgICBhbGxvd190cmFuc3BvcnRfd2Vic29ja2V0czogdHJ1ZSwKICAgICAgICB9CiAgICB9Cn0KCiNbZGVyaXZlKENsb25lKV0KcHViIHN0cnVjdCBTdG9yYWdlUm9sZSB7CiAgICBwdWIgaWQ6IFJvbGVJZCwKICAgIHB1YiBuYW1lOiBTdHJpbmcsCiAgICBwdWIgdHk6IFJvbGVUeXBlLAogICAgcHViIGRlZmF1bHRfc2V0dGluZ3M6IFN0b3JhZ2VSb2xlRGVmYXVsdFNldHRpbmdzLAogICAgcHViIHBlcm1pc3Npb25zOiBTdG9yYWdlUm9sZVBlcm1pc3Npb25zLAp9CgojW2Rlcml2ZShDbG9uZSldCnB1YiBzdHJ1Y3QgU3RvcmFnZVJvbGVBZGQgewogICAgcHViIG5hbWU6IFN0cmluZywKICAgIHB1YiB0eTogUm9sZVR5cGUsCiAgICBwdWIgZGVmYXVsdF9zZXR0aW5nczogU3RvcmFnZVJvbGVEZWZhdWx0U2V0dGluZ3MsCiAgICBwdWIgcGVybWlzc2lvbnM6IFN0b3JhZ2VSb2xlUGVybWlzc2lvbnMsCn0KCiNbZGVyaXZlKENsb25lKV0KcHViIHN0cnVjdCBTdG9yYWdlUm9sZU1vZGlmeSB7CiAgICBwdWIgbmFtZTogT3B0aW9uPFN0cmluZz4sCiAgICBwdWIgdHk6IE9wdGlvbjxSb2xlVHlwZT4sCiAgICBwdWIgZGVmYXVsdF9zZXR0aW5nczogT3B0aW9uPFN0b3JhZ2VSb2xlRGVmYXVsdFNldHRpbmdzPiwKICAgIHB1YiBwZXJtaXNzaW9uczogT3B0aW9uPFN0b3JhZ2VSb2xlUGVybWlzc2lvbnM+LAp9CgovLyAtLS0gSG9zdHMgLS0tCiNbZGVyaXZlKENsb25lKV0KcHViIHN0cnVjdCBTdG9yYWdlSG9zdCB7CiAgICBwdWIgaWQ6IEhvc3RJZCwKICAgIC8vIElmIHRoaXMgaXMgbm9uZSBpdCBtZWFucyB0aGUgaG9zdCBpcyBhY2Nlc3NpYmxlIGJ5IGV2ZXJ5b25lCiAgICBwdWIgb3duZXI6IE9wdGlvbjxVc2VySWQ+LAogICAgcHViIGFkZHJlc3M6IFN0cmluZywKICAgIHB1YiBodHRwX3BvcnQ6IHUxNiwKICAgIHB1YiBwYWlyX2luZm86IE9wdGlvbjxTdG9yYWdlSG9zdFBhaXJJbmZvPiwKICAgIHB1YiBjYWNoZTogU3RvcmFnZUhvc3RDYWNoZSwKfQojW2Rlcml2ZShDbG9uZSldCnB1YiBzdHJ1Y3QgU3RvcmFnZUhvc3RBZGQgewogICAgcHViIG93bmVyOiBPcHRpb248VXNlcklkPiwKICAgIHB1YiBhZGRyZXNzOiBTdHJpbmcsCiAgICBwdWIgaHR0cF9wb3J0OiB1MTYsCiAgICBwdWIgcGFpcl9pbmZvOiBPcHRpb248U3RvcmFnZUhvc3RQYWlySW5mbz4sCiAgICBwdWIgY2FjaGU6IFN0b3JhZ2VIb3N0Q2FjaGUsCn0KI1tkZXJpdmUoQ2xvbmUpXQpwdWIgc3RydWN0IFN0b3JhZ2VIb3N0Q2FjaGUgewogICAgcHViIG5hbWU6IFN0cmluZywKICAgIHB1YiBtYWM6IE9wdGlvbjxNYWNBZGRyZXNzPiwKfQojW2Rlcml2ZShDbG9uZSldCnB1YiBzdHJ1Y3QgU3RvcmFnZUhvc3RQYWlySW5mbyB7CiAgICBwdWIgY2xpZW50X3ByaXZhdGVfa2V5OiBQZW0sCiAgICBwdWIgY2xpZW50X2NlcnRpZmljYXRlOiBQZW0sCiAgICBwdWIgc2VydmVyX2NlcnRpZmljYXRlOiBQZW0sCn0KI1tkZXJpdmUoRGVmYXVsdCwgQ2xvbmUpXQpwdWIgc3RydWN0IFN0b3JhZ2VIb3N0TW9kaWZ5IHsKICAgIHB1YiBvd25lcjogT3B0aW9uPE9wdGlvbjxVc2VySWQ+PiwKICAgIHB1YiBhZGRyZXNzOiBPcHRpb248U3RyaW5nPiwKICAgIHB1YiBodHRwX3BvcnQ6IE9wdGlvbjx1MTY+LAogICAgcHViIHBhaXJfaW5mbzogT3B0aW9uPE9wdGlvbjxTdG9yYWdlSG9zdFBhaXJJbmZvPj4sCiAgICBwdWIgY2FjaGVfbmFtZTogT3B0aW9uPFN0cmluZz4sCiAgICBwdWIgY2FjaGVfbWFjOiBPcHRpb248T3B0aW9uPE1hY0FkZHJlc3M+PiwKfQoKI1tkZXJpdmUoQ2xvbmUpXQpwdWIgc3RydWN0IFN0b3JhZ2VRdWVyeUhvc3RzIHsKICAgIHB1YiB1c2VyX2lkOiBVc2VySWQsCn0KCnB1YiBlbnVtIEVpdGhlcjxMLCBSPiB7CiAgICAjW2FsbG93KGRlYWRfY29kZSldCiAgICBMZWZ0KEwpLAogICAgUmlnaHQoUiksCn0KCiNbYXN5bmNfdHJhaXRdCnB1YiB0cmFpdCBTdG9yYWdlIHsKICAgIC8vIC0tIFJvbGVzIC0tCiAgICBhc3luYyBmbiBhZGRfcm9sZSgmc2VsZiwgcm9sZTogU3RvcmFnZVJvbGVBZGQpIC0+IFJlc3VsdDxTdG9yYWdlUm9sZSwgQXBwRXJyb3I+OwogICAgYXN5bmMgZm4gbW9kaWZ5X3JvbGUoJnNlbGYsIHJvbGVfaWQ6IFJvbGVJZCwgaG9zdDogU3RvcmFnZVJvbGVNb2RpZnkpIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+OwogICAgYXN5bmMgZm4gZ2V0X3JvbGUoJnNlbGYsIHJvbGVfaWQ6IFJvbGVJZCkgLT4gUmVzdWx0PFN0b3JhZ2VSb2xlLCBBcHBFcnJvcj47CiAgICAvLy8gRGVsZXRlcyBhIHJvbGUuCiAgICAvLy8KICAgIC8vLyBBbGwgdXNlcnMgdGhhdCBhcmUgaW4gdGhhdCByb2xlIHNob3VsZCBhbHNvIGJlIGRlbGV0ZS4KICAgIGFzeW5jIGZuIHJlbW92ZV9yb2xlKCZzZWxmLCByb2xlX2lkOiBSb2xlSWQpIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+OwogICAgLy8vIFRoZSByZXR1cm5lZCB0dXBsZSBjYW4gY29udGFpbiBhIFZlYzxSb2xlSWQ+IG9yIFZlYzxTdG9yYWdlUm9sZT4gaWYgdGhlIFN0b3JhZ2UgdGhpbmtzIGl0J3MgbW9yZSBlZmZpY2llbnQgdG8gcXVlcnkgYWxsIGRhdGEgZGlyZWN0bHkKICAgIGFzeW5jIGZuIGxpc3Rfcm9sZXMoJnNlbGYpIC0+IFJlc3VsdDxFaXRoZXI8VmVjPFJvbGVJZD4sIFZlYzxTdG9yYWdlUm9sZT4+LCBBcHBFcnJvcj47CgogICAgLy8gLS0gVXNlcnMgLS0KICAgIC8vLyBObyBkdXBsaWNhdGUgbmFtZXMgYXJlIGFsbG93ZWQhCiAgICBhc3luYyBmbiBhZGRfdXNlcigmc2VsZiwgdXNlcjogU3RvcmFnZVVzZXJBZGQpIC0+IFJlc3VsdDxTdG9yYWdlVXNlciwgQXBwRXJyb3I+OwogICAgYXN5bmMgZm4gbW9kaWZ5X3VzZXIoJnNlbGYsIHVzZXJfaWQ6IFVzZXJJZCwgdXNlcjogU3RvcmFnZVVzZXJNb2RpZnkpIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+OwogICAgYXN5bmMgZm4gZ2V0X3VzZXIoJnNlbGYsIHVzZXJfaWQ6IFVzZXJJZCkgLT4gUmVzdWx0PFN0b3JhZ2VVc2VyLCBBcHBFcnJvcj47CiAgICAvLy8gVGhlIHJldHVybmVkIHR1cGxlIGNhbiBjb250YWluIGEgU3RvcmFnZVVzZXIgaWYgdGhlIFN0b3JhZ2UgdGhpbmtzIGl0J3MgbW9yZSBlZmZpY2llbnQgdG8gcXVlcnkgYWxsIGRhdGEgZGlyZWN0bHkKICAgIGFzeW5jIGZuIGdldF91c2VyX2J5X25hbWUoJnNlbGYsIG5hbWU6ICZzdHIpCiAgICAtPiBSZXN1bHQ8KFVzZXJJZCwgT3B0aW9uPFN0b3JhZ2VVc2VyPiksIEFwcEVycm9yPjsKICAgIGFzeW5jIGZuIHJlbW92ZV91c2VyKCZzZWxmLCB1c2VyX2lkOiBVc2VySWQpIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+OwogICAgLy8vIFRoZSByZXR1cm5lZCB0dXBsZSBjYW4gY29udGFpbiBhIFZlYzxVc2VySWQ+IG9yIFZlYzxTdG9yYWdlVXNlcj4gaWYgdGhlIFN0b3JhZ2UgdGhpbmtzIGl0J3MgbW9yZSBlZmZpY2llbnQgdG8gcXVlcnkgYWxsIGRhdGEgZGlyZWN0bHkKICAgIGFzeW5jIGZuIGxpc3RfdXNlcnMoJnNlbGYpIC0+IFJlc3VsdDxFaXRoZXI8VmVjPFVzZXJJZD4sIFZlYzxTdG9yYWdlVXNlcj4+LCBBcHBFcnJvcj47CiAgICBhc3luYyBmbiBhbnlfdXNlcl9leGlzdHMoJnNlbGYpIC0+IFJlc3VsdDxib29sLCBBcHBFcnJvcj47CgogICAgLy8gLS0gU2Vzc2lvbiBUb2tlbnMgLS0KICAgIGFzeW5jIGZuIGNyZWF0ZV9zZXNzaW9uX3Rva2VuKAogICAgICAgICZzZWxmLAogICAgICAgIHVzZXJfaWQ6IFVzZXJJZCwKICAgICAgICBleHBpcmVzX2FmdGVyOiBEdXJhdGlvbiwKICAgICkgLT4gUmVzdWx0PFNlc3Npb25Ub2tlbiwgQXBwRXJyb3I+OwogICAgYXN5bmMgZm4gcmVtb3ZlX3Nlc3Npb25fdG9rZW4oJnNlbGYsIHNlc3Npb246IFNlc3Npb25Ub2tlbikgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj47CiAgICAjW2FsbG93KGRlYWRfY29kZSldCiAgICBhc3luYyBmbiByZW1vdmVfYWxsX3VzZXJfc2Vzc2lvbl90b2tlbnMoJnNlbGYsIHVzZXJfaWQ6IFVzZXJJZCkgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj47CiAgICAvLy8gVGhlIHJldHVybmVkIHR1cGxlIGNhbiBjb250YWluIGEgU3RvcmFnZVVzZXIgaWYgdGhlIFN0b3JhZ2UgdGhpbmtzIGl0J3MgbW9yZSBlZmZpY2llbnQgdG8gcXVlcnkgYWxsIGRhdGEgZGlyZWN0bHkKICAgIGFzeW5jIGZuIGdldF91c2VyX2J5X3Nlc3Npb25fdG9rZW4oCiAgICAgICAgJnNlbGYsCiAgICAgICAgc2Vzc2lvbjogU2Vzc2lvblRva2VuLAogICAgKSAtPiBSZXN1bHQ8KFVzZXJJZCwgT3B0aW9uPFN0b3JhZ2VVc2VyPiksIEFwcEVycm9yPjsKCiAgICAvLyAtLSBIb3N0cyAtLQogICAgYXN5bmMgZm4gYWRkX2hvc3QoJnNlbGYsIGhvc3Q6IFN0b3JhZ2VIb3N0QWRkKSAtPiBSZXN1bHQ8U3RvcmFnZUhvc3QsIEFwcEVycm9yPjsKICAgIGFzeW5jIGZuIG1vZGlmeV9ob3N0KCZzZWxmLCBob3N0X2lkOiBIb3N0SWQsIGhvc3Q6IFN0b3JhZ2VIb3N0TW9kaWZ5KSAtPiBSZXN1bHQ8KCksIEFwcEVycm9yPjsKICAgIGFzeW5jIGZuIGdldF9ob3N0KCZzZWxmLCBob3N0X2lkOiBIb3N0SWQpIC0+IFJlc3VsdDxTdG9yYWdlSG9zdCwgQXBwRXJyb3I+OwogICAgYXN5bmMgZm4gcmVtb3ZlX2hvc3QoJnNlbGYsIGhvc3RfaWQ6IEhvc3RJZCkgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj47CgogICAgLy8vIFJldHVybnMgYWxsIGhvc3RzIHRoYXQgZWl0aGVyIGhhdmUgbm8gb3duZXIgKGdsb2JhbCkgb3IgaGF2ZSB0aGUgc3BlY2lmaWVkIHVzZXJfaWQgYXMgYW4gb3duZXIKICAgIC8vLwogICAgLy8vIFRoZSByZXR1cm5lZCB0dXBsZSBpbiB0aGUgVmVjIGNhbiBjb250YWluIGEgU3RvcmFnZUhvc3QgaWYgdGhlIFN0b3JhZ2UgdGhpbmtzIGl0J3MgbW9yZSBlZmZpY2llbnQgdG8gcXVlcnkgYWxsIGRhdGEgZGlyZWN0bHkKICAgIGFzeW5jIGZuIGxpc3RfdXNlcl9ob3N0cygKICAgICAgICAmc2VsZiwKICAgICAgICBxdWVyeTogU3RvcmFnZVF1ZXJ5SG9zdHMsCiAgICApIC0+IFJlc3VsdDxWZWM8KEhvc3RJZCwgT3B0aW9uPFN0b3JhZ2VIb3N0Pik+LCBBcHBFcnJvcj47Cn0K"},{"path":"src/app/user.rs","sha256":"d144acf74d2ce9f392c3ff5b42adf2dc67b4f801f857492b481ae975177b07d2","contentBase64":"dXNlIHN0ZDo6ewogICAgZm10Ojp7RGVidWcsIERpc3BsYXksIEZvcm1hdHRlcn0sCiAgICBvcHM6OntEZXJlZiwgRGVyZWZNdXR9LAogICAgc3luYzo6QXJjLAogICAgdGltZTo6RHVyYXRpb24sCn07Cgp1c2UgY29tbW9uOjphcGlfYmluZGluZ3M6OntzZWxmLCBEZXRhaWxlZFVzZXJ9Owp1c2UgbW9vbmxpZ2h0X2NvbW1vbjo6ewogICAgaGlnaDo6TW9vbmxpZ2h0Q2xpZW50RXJyb3IsCiAgICBodHRwOjp7CiAgICAgICAgQ2xpZW50SW5mbywKICAgICAgICBjbGllbnQ6OntSZXF1ZXN0RXJyb3IsIGFzeW5jX2NsaWVudDo6UmVxdWVzdENsaWVudH0sCiAgICAgICAgc2VydmVyX2luZm86OntTZXJ2ZXJJbmZvRW5kcG9pbnQsIFNlcnZlckluZm9SZXF1ZXN0fSwKICAgIH0sCn07CnVzZSBzZXJkZTo6e0Rlc2VyaWFsaXplLCBTZXJpYWxpemV9Owp1c2UgdXVpZDo6VXVpZDsKCnVzZSBjcmF0ZTo6YXBwOjp7CiAgICBBcHBFcnJvciwgQXBwUmVmLCBNb29ubGlnaHRDbGllbnQsCiAgICBhdXRoOjp7U2Vzc2lvblRva2VuLCBVc2VyQXV0aH0sCiAgICBob3N0Ojp7SG9zdCwgSG9zdElkfSwKICAgIHBhc3N3b3JkOjpTdG9yYWdlUGFzc3dvcmQsCiAgICByb2xlOjp7Um9sZSwgUm9sZUlkfSwKICAgIHN0b3JhZ2U6OnsKICAgICAgICBTdG9yYWdlSG9zdEFkZCwgU3RvcmFnZUhvc3RDYWNoZSwgU3RvcmFnZVF1ZXJ5SG9zdHMsIFN0b3JhZ2VVc2VyLCBTdG9yYWdlVXNlck1vZGlmeSwKICAgIH0sCn07CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIENvcHksIFNlcmlhbGl6ZSwgRGVzZXJpYWxpemUsIFBhcnRpYWxFcSwgRXEpXQpwdWIgZW51bSBSb2xlVHlwZSB7CiAgICBVc2VyLAogICAgQWRtaW4sCn0KCmltcGwgRnJvbTxSb2xlVHlwZT4gZm9yIGFwaV9iaW5kaW5nczo6Um9sZVR5cGUgewogICAgZm4gZnJvbSh2YWx1ZTogUm9sZVR5cGUpIC0+IFNlbGYgewogICAgICAgIG1hdGNoIHZhbHVlIHsKICAgICAgICAgICAgUm9sZVR5cGU6OlVzZXIgPT4gU2VsZjo6VXNlciwKICAgICAgICAgICAgUm9sZVR5cGU6OkFkbWluID0+IFNlbGY6OkFkbWluLAogICAgICAgIH0KICAgIH0KfQoKaW1wbCBGcm9tPGFwaV9iaW5kaW5nczo6Um9sZVR5cGU+IGZvciBSb2xlVHlwZSB7CiAgICBmbiBmcm9tKHZhbHVlOiBjb21tb246OmFwaV9iaW5kaW5nczo6Um9sZVR5cGUpIC0+IFNlbGYgewogICAgICAgIHVzZSBjb21tb246OmFwaV9iaW5kaW5nczo6Um9sZVR5cGU7CgogICAgICAgIG1hdGNoIHZhbHVlIHsKICAgICAgICAgICAgUm9sZVR5cGU6OlVzZXIgPT4gU2VsZjo6VXNlciwKICAgICAgICAgICAgUm9sZVR5cGU6OkFkbWluID0+IFNlbGY6OkFkbWluLAogICAgICAgIH0KICAgIH0KfQoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBDb3B5LCBQYXJ0aWFsRXEsIEVxLCBIYXNoKV0KcHViIHN0cnVjdCBVc2VySWQocHViIHUzMik7CgppbXBsIERpc3BsYXkgZm9yIFVzZXJJZCB7CiAgICBmbiBmbXQoJnNlbGYsIGY6ICZtdXQgRm9ybWF0dGVyPCdfPikgLT4gc3RkOjpmbXQ6OlJlc3VsdCB7CiAgICAgICAgd3JpdGUhKGYsICJ7fSIsIHNlbGYuMCkKICAgIH0KfQoKI1tkZXJpdmUoQ2xvbmUpXQpwdWIgc3RydWN0IFVzZXIgewogICAgcHViKHN1cGVyKSBhcHA6IEFwcFJlZiwKICAgIHB1YihzdXBlcikgaWQ6IFVzZXJJZCwKICAgIHB1YihzdXBlcikgY2FjaGVfc3RvcmFnZTogT3B0aW9uPEFyYzxTdG9yYWdlVXNlcj4+LAp9CgppbXBsIERlYnVnIGZvciBVc2VyIHsKICAgIGZuIGZtdCgmc2VsZiwgZjogJm11dCBGb3JtYXR0ZXI8J18+KSAtPiBzdGQ6OmZtdDo6UmVzdWx0IHsKICAgICAgICB3cml0ZSEoZiwgIns6P30iLCBzZWxmLmlkKQogICAgfQp9CgppbXBsIFVzZXIgewogICAgcHViIGZuIGlkKCZzZWxmKSAtPiBVc2VySWQgewogICAgICAgIHNlbGYuaWQKICAgIH0KCiAgICBhc3luYyBmbiBzdG9yYWdlX3VzZXIoJm11dCBzZWxmKSAtPiBSZXN1bHQ8QXJjPFN0b3JhZ2VVc2VyPiwgQXBwRXJyb3I+IHsKICAgICAgICBpZiBsZXQgU29tZShzdG9yYWdlKSA9IHNlbGYuY2FjaGVfc3RvcmFnZS5hc19yZWYoKSB7CiAgICAgICAgICAgIHJldHVybiBPayhzdG9yYWdlLmNsb25lKCkpOwogICAgICAgIH0KCiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgbGV0IHVzZXIgPSBhcHAuc3RvcmFnZS5nZXRfdXNlcihzZWxmLmlkKS5hd2FpdD87CiAgICAgICAgbGV0IHVzZXIgPSBBcmM6Om5ldyh1c2VyKTsKCiAgICAgICAgc2VsZi5jYWNoZV9zdG9yYWdlID0gU29tZSh1c2VyLmNsb25lKCkpOwoKICAgICAgICBPayh1c2VyKQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBpc19kZWZhdWx0X3VzZXIoJnNlbGYpIC0+IFJlc3VsdDxib29sLCBBcHBFcnJvcj4gewogICAgICAgIGxldCBhcHAgPSBzZWxmLmFwcC5hY2Nlc3MoKT87CgogICAgICAgIE9rKGFwcC5jb25maWcud2ViX3NlcnZlci5kZWZhdWx0X3VzZXJfaWQubWFwKFVzZXJJZCkgPT0gU29tZShzZWxmLmlkKSkKICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gcm9sZV9pZCgmbXV0IHNlbGYpIC0+IFJlc3VsdDxSb2xlSWQsIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZWxmLnN0b3JhZ2VfdXNlcigpLmF3YWl0PzsKCiAgICAgICAgT2soc3RvcmFnZS5yb2xlX2lkKQogICAgfQogICAgcHViIGFzeW5jIGZuIHJvbGUoJm11dCBzZWxmKSAtPiBSZXN1bHQ8Um9sZSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgcm9sZSA9IFJvbGUgewogICAgICAgICAgICBhcHA6IHNlbGYuYXBwLmNsb25lKCksCiAgICAgICAgICAgIGlkOiBzZWxmLnJvbGVfaWQoKS5hd2FpdD8sCiAgICAgICAgICAgIGNhY2hlX3N0b3JhZ2U6IE5vbmUsCiAgICAgICAgfTsKCiAgICAgICAgT2socm9sZSkKICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gZGV0YWlsZWRfdXNlcigKICAgICAgICAmbXV0IHNlbGYsCiAgICAgICAgcmVxdWVzdGluZ191c2VyOiAmbXV0IEF1dGhlbnRpY2F0ZWRVc2VyLAogICAgKSAtPiBSZXN1bHQ8RGV0YWlsZWRVc2VyLCBBcHBFcnJvcj4gewogICAgICAgIGlmIHJlcXVlc3RpbmdfdXNlci5yb2xlKCkuYXdhaXQ/LnR5KCkuYXdhaXQ/ID09IFJvbGVUeXBlOjpBZG1pbgogICAgICAgICAgICB8fCBzZWxmLmlkKCkgPT0gcmVxdWVzdGluZ191c2VyLmlkKCkKICAgICAgICB7CiAgICAgICAgICAgIHNlbGYuZGV0YWlsZWRfdXNlcl9ub19hdXRoKCkuYXdhaXQKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBFcnIoQXBwRXJyb3I6OkZvcmJpZGRlbikKICAgICAgICB9CiAgICB9CiAgICBwdWIgYXN5bmMgZm4gZGV0YWlsZWRfdXNlcl9ub19hdXRoKCZtdXQgc2VsZikgLT4gUmVzdWx0PERldGFpbGVkVXNlciwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgc3RvcmFnZSA9IHNlbGYuc3RvcmFnZV91c2VyKCkuYXdhaXQ/OwogICAgICAgIGxldCByb2xlID0gc2VsZi5yb2xlKCkuYXdhaXQ/LnR5KCkuYXdhaXQ/OwoKICAgICAgICBPayhEZXRhaWxlZFVzZXIgewogICAgICAgICAgICBpZDogc2VsZi5pZC4wLAogICAgICAgICAgICBpc19kZWZhdWx0X3VzZXI6IHNlbGYuaXNfZGVmYXVsdF91c2VyKCkuYXdhaXQ/LAogICAgICAgICAgICBuYW1lOiBzdG9yYWdlLm5hbWUuY2xvbmUoKSwKICAgICAgICAgICAgcm9sZV9pZDogc3RvcmFnZS5yb2xlX2lkLjAsCiAgICAgICAgICAgIHJvbGU6IHJvbGUuaW50bygpLAogICAgICAgICAgICBjbGllbnRfdW5pcXVlX2lkOiBzdG9yYWdlLmNsaWVudF91bmlxdWVfaWQuY2xvbmUoKSwKICAgICAgICB9KQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBtb2RpZnkoJm11dCBzZWxmLCBfOiAmQWRtaW4sIG1vZGlmeTogU3RvcmFnZVVzZXJNb2RpZnkpIC0+IFJlc3VsdDwoKSwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICBzZWxmLmNhY2hlX3N0b3JhZ2UgPSBOb25lOwoKICAgICAgICBhcHAuc3RvcmFnZS5tb2RpZnlfdXNlcihzZWxmLmlkLCBtb2RpZnkpLmF3YWl0PzsKCiAgICAgICAgT2soKCkpCiAgICB9CiAgICBwdWIgYXN5bmMgZm4gZGVsZXRlKHNlbGYsIF86ICZBZG1pbikgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj4gewogICAgICAgIGxldCBhcHAgPSBzZWxmLmFwcC5hY2Nlc3MoKT87CgogICAgICAgIGFwcC5zdG9yYWdlLnJlbW92ZV91c2VyKHNlbGYuaWQpLmF3YWl0PzsKCiAgICAgICAgT2soKCkpCiAgICB9CgogICAgcHViIGFzeW5jIGZuIGF1dGhlbnRpY2F0ZShtdXQgc2VsZiwgYXV0aDogJlVzZXJBdXRoKSAtPiBSZXN1bHQ8QXV0aGVudGljYXRlZFVzZXIsIEFwcEVycm9yPiB7CiAgICAgICAgbWF0Y2ggYXV0aCB7CiAgICAgICAgICAgIFVzZXJBdXRoOjpOb25lIGlmIHNlbGYuaXNfZGVmYXVsdF91c2VyKCkuYXdhaXQ/ID0+IHsKICAgICAgICAgICAgICAgIE9rKEF1dGhlbnRpY2F0ZWRVc2VyIHsgaW5uZXI6IHNlbGYgfSkKICAgICAgICAgICAgfQogICAgICAgICAgICBVc2VyQXV0aDo6VXNlclBhc3N3b3JkIHsgdXNlcm5hbWUsIHBhc3N3b3JkIH0gPT4gewogICAgICAgICAgICAgICAgbGV0IHN0b3JhZ2UgPSBzZWxmLnN0b3JhZ2VfdXNlcigpLmF3YWl0PzsKCiAgICAgICAgICAgICAgICBpZiB1c2VybmFtZS5hc19zdHIoKSAhPSBzdG9yYWdlLm5hbWUuYXNfc3RyKCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBFcnIoQXBwRXJyb3I6OlVuYXV0aG9yaXplZCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUoc3RvcmFnZV9wYXNzd29yZCkgPSBzdG9yYWdlLnBhc3N3b3JkLmFzX3JlZigpCiAgICAgICAgICAgICAgICAgICAgJiYgc3RvcmFnZV9wYXNzd29yZC52ZXJpZnkocGFzc3dvcmQpPwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGxldCBuZWVkc19yZWhhc2ggPSBzdG9yYWdlX3Bhc3N3b3JkLm5lZWRzX3JlaGFzaCgpOwogICAgICAgICAgICAgICAgICAgIGxldCBtdXQgYXV0aGVudGljYXRlZCA9IEF1dGhlbnRpY2F0ZWRVc2VyIHsgaW5uZXI6IHNlbGYgfTsKICAgICAgICAgICAgICAgICAgICBpZiBuZWVkc19yZWhhc2ggewogICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVoYXNoZWQgPSBTdG9yYWdlUGFzc3dvcmQ6Om5ldyhwYXNzd29yZCk/OwogICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGVkLnNldF9wYXNzd29yZChyZWhhc2hlZCkuYXdhaXQ/OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBPayhhdXRoZW50aWNhdGVkKQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBFcnIoQXBwRXJyb3I6OkNyZWRlbnRpYWxzV3JvbmcpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgVXNlckF1dGg6OlNlc3Npb24oc2Vzc2lvbikgPT4gewogICAgICAgICAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgICAgICAgICBsZXQgKGlkLCB1c2VyKSA9IGFwcC5zdG9yYWdlLmdldF91c2VyX2J5X3Nlc3Npb25fdG9rZW4oKnNlc3Npb24pLmF3YWl0PzsKCiAgICAgICAgICAgICAgICBpZiBzZWxmLmlkICE9IGlkIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXJyKEFwcEVycm9yOjpTZXNzaW9uVG9rZW5Ob3RGb3VuZCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZi5jYWNoZV9zdG9yYWdlID0gc2VsZi5jYWNoZV9zdG9yYWdlLm9yKHVzZXIubWFwKEFyYzo6bmV3KSk7CgogICAgICAgICAgICAgICAgT2soQXV0aGVudGljYXRlZFVzZXIgeyBpbm5lcjogc2VsZiB9KQogICAgICAgICAgICB9CiAgICAgICAgICAgIFVzZXJBdXRoOjpGb3J3YXJkZWRIZWFkZXJzIHsgdXNlcm5hbWUgfSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICAgICAgICAgIGlmIGFwcC5jb25maWcud2ViX3NlcnZlci5mb3J3YXJkZWRfaGVhZGVyLmlzX25vbmUoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVycihBcHBFcnJvcjo6SGVhZGVyQXV0aERpc2FibGVkKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBsZXQgc3RvcmFnZSA9IHNlbGYuc3RvcmFnZV91c2VyKCkuYXdhaXQ/OwogICAgICAgICAgICAgICAgaWYgc3RvcmFnZS5uYW1lLmFzX3N0cigpID09IHVzZXJuYW1lLmFzX3N0cigpIHsKICAgICAgICAgICAgICAgICAgICBPayhBdXRoZW50aWNhdGVkVXNlciB7IGlubmVyOiBzZWxmIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIEVycihBcHBFcnJvcjo6Rm9yYmlkZGVuKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIF8gPT4gRXJyKEFwcEVycm9yOjpVbmF1dGhvcml6ZWQpLAogICAgICAgIH0KICAgIH0KfQoKI1tkZXJpdmUoQ2xvbmUpXQpwdWIgc3RydWN0IEF1dGhlbnRpY2F0ZWRVc2VyIHsKICAgIHB1YihzdXBlcikgaW5uZXI6IFVzZXIsCn0KCmltcGwgRGVyZWYgZm9yIEF1dGhlbnRpY2F0ZWRVc2VyIHsKICAgIHR5cGUgVGFyZ2V0ID0gVXNlcjsKCiAgICBmbiBkZXJlZigmc2VsZikgLT4gJlNlbGY6OlRhcmdldCB7CiAgICAgICAgJnNlbGYuaW5uZXIKICAgIH0KfQppbXBsIERlcmVmTXV0IGZvciBBdXRoZW50aWNhdGVkVXNlciB7CiAgICBmbiBkZXJlZl9tdXQoJm11dCBzZWxmKSAtPiAmbXV0IFNlbGY6OlRhcmdldCB7CiAgICAgICAgJm11dCBzZWxmLmlubmVyCiAgICB9Cn0KCmltcGwgQXV0aGVudGljYXRlZFVzZXIgewogICAgcHViIGFzeW5jIGZuIGRldGFpbGVkX3VzZXIoJm11dCBzZWxmKSAtPiBSZXN1bHQ8RGV0YWlsZWRVc2VyLCBBcHBFcnJvcj4gewogICAgICAgIHNlbGYuZGV0YWlsZWRfdXNlcl9ub19hdXRoKCkuYXdhaXQKICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gc2V0X3Bhc3N3b3JkKCZtdXQgc2VsZiwgcGFzc3dvcmQ6IFN0b3JhZ2VQYXNzd29yZCkgLT4gUmVzdWx0PCgpLCBBcHBFcnJvcj4gewogICAgICAgIGxldCBhcHAgPSBzZWxmLmFwcC5hY2Nlc3MoKT87CgogICAgICAgIHNlbGYuY2FjaGVfc3RvcmFnZSA9IE5vbmU7CgogICAgICAgIGFwcC5zdG9yYWdlCiAgICAgICAgICAgIC5tb2RpZnlfdXNlcigKICAgICAgICAgICAgICAgIHNlbGYuaWQsCiAgICAgICAgICAgICAgICBTdG9yYWdlVXNlck1vZGlmeSB7CiAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6IFNvbWUoU29tZShwYXNzd29yZCkpLAogICAgICAgICAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApCiAgICAgICAgICAgIC5hd2FpdD87CgogICAgICAgIE9rKCgpKQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBuZXdfc2Vzc2lvbigmc2VsZiwgZXhwaXJhdGlvbjogRHVyYXRpb24pIC0+IFJlc3VsdDxTZXNzaW9uVG9rZW4sIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgbGV0IHRva2VuID0gYXBwCiAgICAgICAgICAgIC5zdG9yYWdlCiAgICAgICAgICAgIC5jcmVhdGVfc2Vzc2lvbl90b2tlbihzZWxmLmlkLCBleHBpcmF0aW9uKQogICAgICAgICAgICAuYXdhaXQ/OwoKICAgICAgICBPayh0b2tlbikKICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gaG9zdF91bmlxdWVfaWQoJm11dCBzZWxmKSAtPiBSZXN1bHQ8U3RyaW5nLCBBcHBFcnJvcj4gewogICAgICAgIGxldCB1c2VyID0gc2VsZi5zdG9yYWdlX3VzZXIoKS5hd2FpdD87CgogICAgICAgIE9rKHVzZXIuY2xpZW50X3VuaXF1ZV9pZC5jbG9uZSgpKQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBob3N0cygmbXV0IHNlbGYpIC0+IFJlc3VsdDxWZWM8SG9zdD4sIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IGFwcCA9IHNlbGYuYXBwLmFjY2VzcygpPzsKCiAgICAgICAgbGV0IGhvc3RzID0gYXBwCiAgICAgICAgICAgIC5zdG9yYWdlCiAgICAgICAgICAgIC5saXN0X3VzZXJfaG9zdHMoU3RvcmFnZVF1ZXJ5SG9zdHMgeyB1c2VyX2lkOiBzZWxmLmlkIH0pCiAgICAgICAgICAgIC5hd2FpdD8KICAgICAgICAgICAgLmludG9faXRlcigpCiAgICAgICAgICAgIC5tYXAofChob3N0X2lkLCBob3N0KXwgSG9zdCB7CiAgICAgICAgICAgICAgICBhcHA6IHNlbGYuYXBwLmNsb25lKCksCiAgICAgICAgICAgICAgICBpZDogaG9zdF9pZCwKICAgICAgICAgICAgICAgIGNhY2hlX3N0b3JhZ2U6IGhvc3QsCiAgICAgICAgICAgICAgICBjYWNoZV9ob3N0X2luZm86IE5vbmUsCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5jb2xsZWN0KCk7CgogICAgICAgIE9rKGhvc3RzKQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBob3N0KCZtdXQgc2VsZiwgaG9zdF9pZDogSG9zdElkKSAtPiBSZXN1bHQ8SG9zdCwgQXBwRXJyb3I+IHsKICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICBsZXQgaG9zdCA9IGFwcC5zdG9yYWdlLmdldF9ob3N0KGhvc3RfaWQpLmF3YWl0PzsKCiAgICAgICAgaWYgaG9zdC5vd25lci5pc19ub25lKCkgfHwgaG9zdC5vd25lciA9PSBTb21lKHNlbGYuaWQpIHsKICAgICAgICAgICAgT2soSG9zdCB7CiAgICAgICAgICAgICAgICBhcHA6IHNlbGYuYXBwLmNsb25lKCksCiAgICAgICAgICAgICAgICBpZDogaG9zdC5pZCwKICAgICAgICAgICAgICAgIGNhY2hlX3N0b3JhZ2U6IFNvbWUoaG9zdCksCiAgICAgICAgICAgICAgICBjYWNoZV9ob3N0X2luZm86IE5vbmUsCiAgICAgICAgICAgIH0pCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgRXJyKEFwcEVycm9yOjpGb3JiaWRkZW4pCiAgICAgICAgfQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBob3N0X2FkZCgmbXV0IHNlbGYsIGFkZHJlc3M6IFN0cmluZywgaHR0cF9wb3J0OiB1MTYpIC0+IFJlc3VsdDxIb3N0LCBBcHBFcnJvcj4gewogICAgICAgIGxldCBtdXQgcm9sZSA9IHNlbGYucm9sZSgpLmF3YWl0PzsKICAgICAgICBpZiAhcm9sZS5wZXJtaXNzaW9ucygpLmF3YWl0Py5hbGxvd19hZGRfaG9zdHMgewogICAgICAgICAgICByZXR1cm4gRXJyKEFwcEVycm9yOjpGb3JiaWRkZW4pOwogICAgICAgIH0KCiAgICAgICAgbGV0IHVuaXF1ZV9pZCA9IHNlbGYuaG9zdF91bmlxdWVfaWQoKS5hd2FpdD87CgogICAgICAgIGxldCBjbGllbnQgPSBNb29ubGlnaHRDbGllbnQ6OndpdGhfZGVmYXVsdHMoKQogICAgICAgICAgICAubWFwX2Vycih8ZXJyfCBNb29ubGlnaHRDbGllbnRFcnJvcjo6QmFja2VuZChCb3g6Om5ldyhlcnIpKSk/OwoKICAgICAgICBsZXQgaW5mbyA9IG1hdGNoIGNsaWVudAogICAgICAgICAgICAuc2VuZF9odHRwOjo8U2VydmVySW5mb0VuZHBvaW50PigKICAgICAgICAgICAgICAgIENsaWVudEluZm8gewogICAgICAgICAgICAgICAgICAgIHV1aWQ6IFV1aWQ6Om5ld192NCgpLAogICAgICAgICAgICAgICAgICAgIHVuaXF1ZV9pZCwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAmZm9ybWF0ISgie306e30iLCBhZGRyZXNzLCBodHRwX3BvcnQpLAogICAgICAgICAgICAgICAgJlNlcnZlckluZm9SZXF1ZXN0IHt9LAogICAgICAgICAgICApCiAgICAgICAgICAgIC5hd2FpdAogICAgICAgIHsKICAgICAgICAgICAgT2soaW5mbykgPT4gaW5mbywKICAgICAgICAgICAgRXJyKGVycikgaWYgZXJyLmlzX2Nvbm5lY3QoKSA9PiB7CiAgICAgICAgICAgICAgICByZXR1cm4gRXJyKEFwcEVycm9yOjpIb3N0Tm90Rm91bmQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIEVycihlcnIpID0+IHJldHVybiBFcnIoTW9vbmxpZ2h0Q2xpZW50RXJyb3I6OkJhY2tlbmQoQm94OjpuZXcoZXJyKSkuaW50bygpKSwKICAgICAgICB9OwoKICAgICAgICBsZXQgYXBwID0gc2VsZi5hcHAuYWNjZXNzKCk/OwoKICAgICAgICBsZXQgaG9zdCA9IGFwcAogICAgICAgICAgICAuc3RvcmFnZQogICAgICAgICAgICAuYWRkX2hvc3QoU3RvcmFnZUhvc3RBZGQgewogICAgICAgICAgICAgICAgb3duZXI6IFNvbWUoc2VsZi5pZCksCiAgICAgICAgICAgICAgICBhZGRyZXNzLAogICAgICAgICAgICAgICAgaHR0cF9wb3J0LAogICAgICAgICAgICAgICAgcGFpcl9pbmZvOiBOb25lLAogICAgICAgICAgICAgICAgY2FjaGU6IFN0b3JhZ2VIb3N0Q2FjaGUgewogICAgICAgICAgICAgICAgICAgIG5hbWU6IGluZm8uaG9zdF9uYW1lLAogICAgICAgICAgICAgICAgICAgIG1hYzogaW5mby5tYWMsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9KQogICAgICAgICAgICAuYXdhaXQ/OwoKICAgICAgICBPayhIb3N0IHsKICAgICAgICAgICAgYXBwOiBzZWxmLmFwcC5jbG9uZSgpLAogICAgICAgICAgICBpZDogaG9zdC5pZCwKICAgICAgICAgICAgY2FjaGVfc3RvcmFnZTogU29tZShob3N0KSwKICAgICAgICAgICAgY2FjaGVfaG9zdF9pbmZvOiBOb25lLAogICAgICAgIH0pCiAgICB9CgogICAgcHViIGFzeW5jIGZuIGhvc3RfZGVsZXRlKCZtdXQgc2VsZiwgaG9zdF9pZDogSG9zdElkKSAtPiBSZXN1bHQ8KCksIEFwcEVycm9yPiB7CiAgICAgICAgbGV0IGhvc3QgPSBzZWxmLmhvc3QoaG9zdF9pZCkuYXdhaXQ/OwoKICAgICAgICBob3N0LmRlbGV0ZShzZWxmKS5hd2FpdD87CgogICAgICAgIE9rKCgpKQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBpbnRvX2FkbWluKHNlbGYpIC0+IFJlc3VsdDxBZG1pbiwgQXBwRXJyb3I+IHsKICAgICAgICBtYXRjaCBBZG1pbjo6dHJ5X2Zyb20oc2VsZikuYXdhaXQgewogICAgICAgICAgICBPayhPayh2YWx1ZSkpID0+IE9rKHZhbHVlKSwKICAgICAgICAgICAgT2soRXJyKF8pKSA9PiBFcnIoQXBwRXJyb3I6OkZvcmJpZGRlbiksCiAgICAgICAgICAgIEVycihlcnIpID0+IEVycihlcnIpLAogICAgICAgIH0KICAgIH0KfQoKcHViIHN0cnVjdCBBZG1pbihBdXRoZW50aWNhdGVkVXNlcik7CgppbXBsIEFkbWluIHsKICAgIHB1YiBhc3luYyBmbiB0cnlfZnJvbSgKICAgICAgICBtdXQgdXNlcjogQXV0aGVudGljYXRlZFVzZXIsCiAgICApIC0+IFJlc3VsdDxSZXN1bHQ8QWRtaW4sIEF1dGhlbnRpY2F0ZWRVc2VyPiwgQXBwRXJyb3I+IHsKICAgICAgICBtYXRjaCB1c2VyLnJvbGUoKS5hd2FpdD8udHkoKS5hd2FpdD8gewogICAgICAgICAgICBSb2xlVHlwZTo6QWRtaW4gPT4gT2soT2soU2VsZih1c2VyKSkpLAogICAgICAgICAgICBfID0+IE9rKEVycih1c2VyKSksCiAgICAgICAgfQogICAgfQp9CgppbXBsIERlcmVmIGZvciBBZG1pbiB7CiAgICB0eXBlIFRhcmdldCA9IEF1dGhlbnRpY2F0ZWRVc2VyOwoKICAgIGZuIGRlcmVmKCZzZWxmKSAtPiAmU2VsZjo6VGFyZ2V0IHsKICAgICAgICAmc2VsZi4wCiAgICB9Cn0K"},{"path":"src/cli.rs","sha256":"a94dfabc6ed32b2cbef5ccadff2dff6bcf78e55da029830ea19a19d5a045481c","contentBase64":"dXNlIHN0ZDo6ewogICAgZW52LAogICAgbmV0Ojp7SXBBZGRyLCBTb2NrZXRBZGRyfSwKfTsKCnVzZSBjbGFwOjp7QXJncywgUGFyc2VyLCBTdWJjb21tYW5kfTsKdXNlIGNvbW1vbjo6ewogICAgYXBpX2JpbmRpbmdzOjpSdGNJY2VTZXJ2ZXIsCiAgICBjb25maWc6OnsKICAgICAgICBDb25maWcsIENvbmZpZ1NzbCwgRm9yd2FyZGVkSGVhZGVycywgUG9ydFJhbmdlLCBXZWJSdGNOYXQxVG8xSWNlQ2FuZGlkYXRlVHlwZSwKICAgICAgICBXZWJSdGNOYXQxVG8xTWFwcGluZywgV2ViUnRjTmV0d29ya1R5cGUsCiAgICB9LAp9Owp1c2UgbG9nOjpMZXZlbEZpbHRlcjsKCmltcGwgQ2xpIHsKICAgIHB1YiBmbiBsb2FkKCkgLT4gU2VsZiB7CiAgICAgICAgbGV0IG11dCBjbGkgPSBDbGk6OnBhcnNlKCk7CiAgICAgICAgY2xpLmxvYWRfaWNlX3NlcnZlcnMoKTsKICAgICAgICBjbGkKICAgIH0KCiAgICBmbiBsb2FkX2ljZV9zZXJ2ZXJzKCZtdXQgc2VsZikgewogICAgICAgIGxldCBpY2Vfc2VydmVyX2NvdW50OiB1c2l6ZSA9IGVudjo6dmFyKCJXRUJSVENfSUNFX1NFUlZFUl9DT1VOVCIpCiAgICAgICAgICAgIC5hc19kZXJlZigpCiAgICAgICAgICAgIC51bndyYXBfb3IoIjUwIikKICAgICAgICAgICAgLnBhcnNlKCkKICAgICAgICAgICAgLmV4cGVjdCgiaW52YWxpZCBpY2Ugc2VydmVyIGNvdW50Iik7CgogICAgICAgIGZvciBpIGluIDAuLmljZV9zZXJ2ZXJfY291bnQgewogICAgICAgICAgICBsZXQgT2sodXJsKSA9IGVudjo6dmFyKGZvcm1hdCEoIldFQlJUQ19JQ0VfU0VSVkVSX3tpfV9VUkwiKSkgZWxzZSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIGxldCB1c2VybmFtZSA9IGVudjo6dmFyKGZvcm1hdCEoIldFQlJUQ19JQ0VfU0VSVkVSX3tpfV9VU0VSTkFNRSIpKS51bndyYXBfb3JfZGVmYXVsdCgpOwogICAgICAgICAgICBsZXQgY3JlZGVudGlhbCA9CiAgICAgICAgICAgICAgICBlbnY6OnZhcihmb3JtYXQhKCJXRUJSVENfSUNFX1NFUlZFUl97aX1fQ1JFREVOVElBTCIpKS51bndyYXBfb3JfZGVmYXVsdCgpOwoKICAgICAgICAgICAgc2VsZi5vcHRpb25zLndlYnJ0Y19pY2Vfc2VydmVycy5wdXNoKFJ0Y0ljZVNlcnZlciB7CiAgICAgICAgICAgICAgICBpc19kZWZhdWx0OiBmYWxzZSwKICAgICAgICAgICAgICAgIHVybHM6IHZlYyFbdXJsXSwKICAgICAgICAgICAgICAgIHVzZXJuYW1lLAogICAgICAgICAgICAgICAgY3JlZGVudGlhbCwKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfQp9CgojW2Rlcml2ZShQYXJzZXIpXQojW2NvbW1hbmQodmVyc2lvbixhYm91dCwgbG9uZ19hYm91dCA9IE5vbmUpXQpwdWIgc3RydWN0IENsaSB7CiAgICAjW2FyZyhzaG9ydCwgbG9uZywgZGVmYXVsdF92YWx1ZSA9ICIuL3NlcnZlci9jb25maWcuanNvbiIpXQogICAgcHViIGNvbmZpZ19wYXRoOiBTdHJpbmcsCgogICAgI1tjb21tYW5kKGZsYXR0ZW4pXQogICAgcHViIG9wdGlvbnM6IENsaUNvbmZpZywKCiAgICAjW2NvbW1hbmQoc3ViY29tbWFuZCldCiAgICBwdWIgY29tbWFuZDogT3B0aW9uPENvbW1hbmQ+LAp9CgojW2Rlcml2ZShTdWJjb21tYW5kKV0KcHViIGVudW0gQ29tbWFuZCB7CiAgICAvLy8gUnVucyB0aGUgc2VydmVyIChkZWZhdWx0IGlmIG5vIGNvbW1hbmQgc3BlY2lmaWVkKQogICAgUnVuLAogICAgLy8vIFByaW50cyB0aGUgY29uZmlnIGludG8gc3Rkb3V0IGluIGpzb24gZm9ybWF0CiAgICBQcmludENvbmZpZywKfQoKI1tkZXJpdmUoQXJncyldCnB1YiBzdHJ1Y3QgQ2xpQ29uZmlnIHsKICAgIC8vLyBPdmVyd3JpdGVzIGB3ZWJydGMucG9ydF9yYW5nZWAuIFNwZWNpZnkgbGlrZSB0aGlzOiAiTUlOOk1BWCIuCiAgICAjW2FyZyhsb25nLCBlbnYgPSAiV0VCUlRDX1BPUlRfUkFOR0UiKV0KICAgIHB1YiB3ZWJydGNfcG9ydF9yYW5nZTogT3B0aW9uPFBvcnRSYW5nZT4sCiAgICAvLy8gT3ZlcndyaXRlcyBgd2VicnRjLm5hdF8xdG8xLmljZV9jYW5kaWRhdGVfdHlwZWAgdG8gYGhvc3RgIGFuZCB1c2VzIHRoZSBpcCBhZGRyZXNzIGFzIHRoZSBgd2VicnRjLm5hdF8xdG8xLmlwc2AuCiAgICAjW2FyZyhsb25nLCBlbnYgPSAiV0VCUlRDX05BVF8xVE8xX0hPU1QiKV0KICAgIHB1YiB3ZWJydGNfbmF0XzF0bzFfaG9zdDogT3B0aW9uPElwQWRkcj4sCiAgICAvLy8gT3ZlcndyaXRlcyBgd2VicnRjLmljZV9zZXJ2ZXJfc2NyaXB0YC4KICAgICNbYXJnKGxvbmcsIGVudiA9ICJXRUJSVENfSUNFX1NFUlZFUl9TQ1JJUFQiKV0KICAgIHB1YiB3ZWJydGNfaWNlX3NlcnZlcl9zY3JpcHQ6IE9wdGlvbjxTdHJpbmc+LAogICAgLy8vIE92ZXJ3cml0ZXMgYHdlYnJ0Yy5uZXR3b3JrX3R5cGVzYC4gRXhhbXBsZTogInVkcDQsdWRwNiIKICAgICNbYXJnKGxvbmcsIGVudiA9ICJXRUJSVENfTkVUV09SS19UWVBFUyIsIHZhbHVlX2RlbGltaXRlciA9ICcsJyldCiAgICBwdWIgd2VicnRjX25ldHdvcmtfdHlwZXM6IE9wdGlvbjxWZWM8V2ViUnRjTmV0d29ya1R5cGU+PiwKICAgIC8vLyBPdmVyd3JpdGVzIGB3ZWJydGMuaW5jbHVkZV9sb29wYmFja19jYW5kaWRhdGVzYC4KICAgICNbYXJnKGxvbmcsIGVudiA9ICJXRUJSVENfSU5DTFVERV9MT09QQkFDS19DQU5ESURBVEVTIildCiAgICBwdWIgd2VicnRjX2luY2x1ZGVfbG9vcGJhY2tfY2FuZGlkYXRlczogT3B0aW9uPGJvb2w+LAogICAgLy8vIE92ZXJ3cml0ZXMgYHdlYl9zZXJ2ZXIuYmluZF9hZGRyZXNzYC4KICAgICNbYXJnKGxvbmcsIGVudiA9ICJCSU5EX0FERFJFU1MiKV0KICAgIHB1YiBiaW5kX2FkZHJlc3M6IE9wdGlvbjxTb2NrZXRBZGRyPiwKICAgIC8vLyBPdmVyd3JpdGVzIGB3ZWJfc2VydmVyLmNlcnRpZmljYXRlLmNlcnRpZmljYXRlX3BlbWAuCiAgICAjW2FyZyhsb25nLCBlbnYgPSAiU1NMX0NFUlRJRklDQVRFIildCiAgICBwdWIgc3NsX2NlcnRpZmljYXRlOiBPcHRpb248U3RyaW5nPiwKICAgIC8vLyBPdmVyd3JpdGVzIGB3ZWJfc2VydmVyLmNlcnRpZmljYXRlLnByaXZhdGVfa2V5X3BlbWAuCiAgICAjW2FyZyhsb25nLCBlbnYgPSAiU1NMX1BSSVZBVEVfS0VZIildCiAgICBwdWIgc3NsX3ByaXZhdGVfa2V5OiBPcHRpb248U3RyaW5nPiwKICAgIC8vLyBPdmVyd3JpdGVzIGB3ZWJfc2VydmVyLnVybF9wYXRoX3ByZWZpeGAuCiAgICAjW2FyZyhsb25nLCBlbnYgPSAiUEFUSF9QUkVGSVgiKV0KICAgIHB1YiBwYXRoX3ByZWZpeDogT3B0aW9uPFN0cmluZz4sCiAgICAvLy8gT3ZlcndyaXRlcyBgd2ViX3NlcnZlci5mb3J3YXJkZWRfaGVhZGVyLnVzZXJuYW1lX2hlYWRlcmAuCiAgICAjW2FyZyhsb25nLCBlbnYgPSAiRk9SV0FSREVEX0hFQURFUiIpXQogICAgcHViIGZvcndhcmRlZF9oZWFkZXI6IE9wdGlvbjxTdHJpbmc+LAogICAgLy8vIE92ZXJ3cml0ZXMgYGxvZy5sZXZlbF9maWx0ZXJgLgogICAgI1thcmcobG9uZywgZW52ID0gIkxPR19MRVZFTCIpXQogICAgcHViIGxvZ19sZXZlbF9maWx0ZXI6IE9wdGlvbjxMZXZlbEZpbHRlcj4sCiAgICAvLy8gT3ZlcndyaXRlcyBgbG9nLmxvZ19maWxlX3BhdGhgLgogICAgI1thcmcobG9uZywgZW52ID0gIkxPR19GSUxFIildCiAgICBwdWIgbG9nX2ZpbGU6IE9wdGlvbjxTdHJpbmc+LAogICAgI1thcmcobG9uZywgZW52ID0gIlNUUkVBTUVSX1BBVEgiKV0KICAgIHB1YiBzdHJlYW1lcl9wYXRoOiBPcHRpb248U3RyaW5nPiwKICAgIC8vLyBEaXNhYmxlcyB0aGUgU1RVTiBpY2Ugc2VydmVyIHdoaWNoIGFyZSBidW5kbGVkIGJ5IGRlZmF1bHQuCiAgICAvLy8gVGhpcyBvbmx5IGRpc2FibGVzIHRoZSBnZW5lcmF0aW9uIG9mIHRoZW0gaW4gdGhlIGZpcnN0IGNvbmZpZy4KICAgIC8vLyBBZnRlciB0aGUgY29uZmlnLmpzb24gaGFzIGJlZW4gZ2VuZXJhdGVkIHRoZSBpY2Ugc2VydmVycyBpbiB0aGUgY29uZmlnIHdpbGwgYmUgdXNlZCByZWdhcmRsZXNzIGlmIHRoaXMgaXMgc2V0LgogICAgI1thcmcoCiAgICAgICAgbG9uZywKICAgICAgICBlbnYgPSAiRElTQUJMRV9ERUZBVUxUX1dFQlJUQ19JQ0VfU0VSVkVSUyIsCiAgICAgICAgZGVmYXVsdF92YWx1ZV90ID0gZmFsc2UKICAgICldCiAgICBwdWIgZGlzYWJsZV9kZWZhdWx0X3dlYnJ0Y19pY2Vfc2VydmVyczogYm9vbCwKICAgICNbYXJnKHNraXApXQogICAgcHViIHdlYnJ0Y19pY2Vfc2VydmVyczogVmVjPFJ0Y0ljZVNlcnZlcj4sCn0KCmltcGwgQ2xpQ29uZmlnIHsKICAgIHB1YiBmbiBhcHBseShzZWxmLCBjb25maWc6ICZtdXQgQ29uZmlnKSB7CiAgICAgICAgaWYgbGV0IFNvbWUod2VicnRjX3BvcnRfcmFuZ2UpID0gc2VsZi53ZWJydGNfcG9ydF9yYW5nZSB7CiAgICAgICAgICAgIGNvbmZpZy53ZWJydGMucG9ydF9yYW5nZSA9IFNvbWUod2VicnRjX3BvcnRfcmFuZ2UpOwogICAgICAgIH0KICAgICAgICBpZiBsZXQgU29tZSh3ZWJydGNfbmF0XzF0bzFfaG9zdCkgPSBzZWxmLndlYnJ0Y19uYXRfMXRvMV9ob3N0IHsKICAgICAgICAgICAgY29uZmlnLndlYnJ0Yy5uYXRfMXRvMSA9IFNvbWUoV2ViUnRjTmF0MVRvMU1hcHBpbmcgewogICAgICAgICAgICAgICAgaXBzOiB2ZWMhW3dlYnJ0Y19uYXRfMXRvMV9ob3N0LnRvX3N0cmluZygpXSwKICAgICAgICAgICAgICAgIGljZV9jYW5kaWRhdGVfdHlwZTogV2ViUnRjTmF0MVRvMUljZUNhbmRpZGF0ZVR5cGU6Okhvc3QsCiAgICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICBpZiBsZXQgU29tZSh3ZWJydGNfaWNlX3NlcnZlcl9zY3JpcHQpID0gc2VsZi53ZWJydGNfaWNlX3NlcnZlcl9zY3JpcHQgewogICAgICAgICAgICBjb25maWcud2VicnRjLmljZV9zZXJ2ZXJfc2NyaXB0ID0gU29tZSh3ZWJydGNfaWNlX3NlcnZlcl9zY3JpcHQpOwogICAgICAgIH0KICAgICAgICBpZiBsZXQgU29tZSh3ZWJydGNfbmV0d29ya190eXBlcykgPSBzZWxmLndlYnJ0Y19uZXR3b3JrX3R5cGVzIHsKICAgICAgICAgICAgY29uZmlnLndlYnJ0Yy5uZXR3b3JrX3R5cGVzID0gd2VicnRjX25ldHdvcmtfdHlwZXM7CiAgICAgICAgfQogICAgICAgIGlmIGxldCBTb21lKHdlYnJ0Y19pbmNsdWRlX2xvb3BiYWNrX2NhbmRpZGF0ZXMpID0gc2VsZi53ZWJydGNfaW5jbHVkZV9sb29wYmFja19jYW5kaWRhdGVzIHsKICAgICAgICAgICAgY29uZmlnLndlYnJ0Yy5pbmNsdWRlX2xvb3BiYWNrX2NhbmRpZGF0ZXMgPSB3ZWJydGNfaW5jbHVkZV9sb29wYmFja19jYW5kaWRhdGVzOwogICAgICAgIH0KICAgICAgICBpZiBsZXQgU29tZShiaW5kX2FkZHJlc3MpID0gc2VsZi5iaW5kX2FkZHJlc3MgewogICAgICAgICAgICBjb25maWcud2ViX3NlcnZlci5iaW5kX2FkZHJlc3MgPSBiaW5kX2FkZHJlc3M7CiAgICAgICAgfQogICAgICAgIG1hdGNoIChzZWxmLnNzbF9jZXJ0aWZpY2F0ZSwgc2VsZi5zc2xfcHJpdmF0ZV9rZXkpIHsKICAgICAgICAgICAgKFNvbWUoY2VydGlmaWNhdGUpLCBTb21lKHByaXZhdGVfa2V5KSkgPT4gewogICAgICAgICAgICAgICAgY29uZmlnLndlYl9zZXJ2ZXIuY2VydGlmaWNhdGUgPSBTb21lKENvbmZpZ1NzbCB7CiAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGVfcGVtOiBjZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgICAgICAgICBwcml2YXRlX2tleV9wZW06IHByaXZhdGVfa2V5LAogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgICAgICAoTm9uZSwgTm9uZSkgPT4ge30KICAgICAgICAgICAgXyA9PiB7CiAgICAgICAgICAgICAgICBwYW5pYyEoIlRvIGVuYWJsZSBodHRwcyB5b3UgbmVlZCB0byBzZXQgLS1zc2wtY2VydGlmaWNhdGUgYW5kIC0tc3NsLXByaXZhdGUta2V5Iik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgbGV0IFNvbWUodXJsX3BhdGhfcHJlZml4KSA9IHNlbGYucGF0aF9wcmVmaXggewogICAgICAgICAgICBjb25maWcud2ViX3NlcnZlci51cmxfcGF0aF9wcmVmaXggPSB1cmxfcGF0aF9wcmVmaXg7CiAgICAgICAgfQogICAgICAgIGlmIGxldCBTb21lKGZvcndhcmRlZF9oZWFkZXIpID0gc2VsZi5mb3J3YXJkZWRfaGVhZGVyIHsKICAgICAgICAgICAgY29uZmlnLndlYl9zZXJ2ZXIuZm9yd2FyZGVkX2hlYWRlciA9IFNvbWUoRm9yd2FyZGVkSGVhZGVycyB7CiAgICAgICAgICAgICAgICB1c2VybmFtZV9oZWFkZXI6IGZvcndhcmRlZF9oZWFkZXIsCiAgICAgICAgICAgICAgICBhdXRvX2NyZWF0ZV9taXNzaW5nX3VzZXI6IGNvbmZpZwogICAgICAgICAgICAgICAgICAgIC53ZWJfc2VydmVyCiAgICAgICAgICAgICAgICAgICAgLmZvcndhcmRlZF9oZWFkZXIKICAgICAgICAgICAgICAgICAgICAuY2xvbmUoKQogICAgICAgICAgICAgICAgICAgIC51bndyYXBfb3JfZGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgLmF1dG9fY3JlYXRlX21pc3NpbmdfdXNlciwKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGlmIGxldCBTb21lKGxvZ19sZXZlbF9maWx0ZXIpID0gc2VsZi5sb2dfbGV2ZWxfZmlsdGVyIHsKICAgICAgICAgICAgY29uZmlnLmxvZy5sZXZlbF9maWx0ZXIgPSBsb2dfbGV2ZWxfZmlsdGVyOwogICAgICAgIH0KICAgICAgICBpZiBsZXQgU29tZShsb2dfZmlsZSkgPSBzZWxmLmxvZ19maWxlIHsKICAgICAgICAgICAgY29uZmlnLmxvZy5maWxlX3BhdGggPSBTb21lKGxvZ19maWxlKTsKICAgICAgICB9CiAgICAgICAgaWYgbGV0IFNvbWUoc3RyZWFtZXJfcGF0aCkgPSBzZWxmLnN0cmVhbWVyX3BhdGggewogICAgICAgICAgICBjb25maWcuc3RyZWFtZXJfcGF0aCA9IHN0cmVhbWVyX3BhdGg7CiAgICAgICAgfQogICAgICAgIGlmIHNlbGYuZGlzYWJsZV9kZWZhdWx0X3dlYnJ0Y19pY2Vfc2VydmVycyB7CiAgICAgICAgICAgIGNvbmZpZwogICAgICAgICAgICAgICAgLndlYnJ0YwogICAgICAgICAgICAgICAgLmljZV9zZXJ2ZXJzCiAgICAgICAgICAgICAgICAucmV0YWluKHxzZXJ2ZXJ8ICFzZXJ2ZXIuaXNfZGVmYXVsdCk7CiAgICAgICAgfQogICAgICAgIGNvbmZpZy53ZWJydGMuaWNlX3NlcnZlcnMuZXh0ZW5kKHNlbGYud2VicnRjX2ljZV9zZXJ2ZXJzKTsKICAgIH0KfQo="},{"path":"src/human_json.rs","sha256":"17b6f2e91a9c4d235b981161c55eaa9727ae49d787aa9464b625d2cf52016f0a","contentBase64":"Ly8hIEh1bWFuIEpzb246IHN0cmlwIGNvbW1lbnRzIGFuZCByZW1vdmUgdHJhaWxpbmcgY29tbWEncwoKdXNlIHN0ZDo6c3RyOjpDaGFyczsKCnVzZSBsb2c6Ondhcm47CgpwdWIgZm4gcHJlcHJvY2Vzc19odW1hbl9qc29uKGpzb246IFN0cmluZykgLT4gU3RyaW5nIHsKICAgIGxldCBwcmVwcm9jZXNzb3IgPSBKc29uUHJlcHJvY2Vzc29yOjpuZXcoJmpzb24pOwoKICAgIG1hdGNoIHByZXByb2Nlc3Nvci5wcmVwcm9jZXNzKCkgewogICAgICAgIE9rKHZhbHVlKSA9PiB2YWx1ZSwKICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgIHdhcm4hKAogICAgICAgICAgICAgICAgImZhaWxlZCB0byBwcmVwcm9jZXNzIGpzb24gKGUuZy4gcmVtb3ZlIGNvbW1lbnRzLCB0cmFpbGluZyBjb21tYXMpLCBqc29uIG1pZ2h0IGJlIGludmFsaWQ6IHtlcnJ9IgogICAgICAgICAgICApOwogICAgICAgICAgICBqc29uCiAgICAgICAgfQogICAgfQp9CgpzdHJ1Y3QgSnNvblByZXByb2Nlc3NvcjwnYT4gewogICAgaXRlcjogQ2hhcnM8J2E+LAogICAgcGVla19sZW46IHVzaXplLAogICAgcGVlazogW2NoYXI7IDJdLAogICAgbmV3X3N0cmluZzogU3RyaW5nLAp9CgplbnVtIENvbW1lbnRTdGF0ZSB7CiAgICBOb25lLAogICAgLy8vIGAjIENvbW1lbnRgIG9yIGAvLyBDb21tZW50YAogICAgU2luZ2xlTGluZSwKICAgIC8vLyBgLyogQ29tbWVudCAqL2AKICAgIE11bHRpTGluZSwKfQoKaW1wbDwnYT4gSnNvblByZXByb2Nlc3NvcjwnYT4gewogICAgcHViIGZuIG5ldyh0ZXh0OiAmJ2Egc3RyKSAtPiBTZWxmIHsKICAgICAgICBTZWxmIHsKICAgICAgICAgICAgaXRlcjogdGV4dC5jaGFycygpLAogICAgICAgICAgICBwZWVrX2xlbjogMCwKICAgICAgICAgICAgcGVlazogWycgJywgJyAnXSwKICAgICAgICAgICAgbmV3X3N0cmluZzogU3RyaW5nOjpuZXcoKSwKICAgICAgICB9CiAgICB9CgogICAgcHViIGZuIHByZXByb2Nlc3MobXV0IHNlbGYpIC0+IFJlc3VsdDxTdHJpbmcsIGFueWhvdzo6RXJyb3I+IHsKICAgICAgICB3aGlsZSBzZWxmLnZhbGlkYXRlX25leHQoKT8ge30KCiAgICAgICAgT2soc2VsZi5uZXdfc3RyaW5nKQogICAgfQoKICAgIC8vLyBCb29sIHNheXMgaWYgaXQgc2hvdWxkIGNvbnRpbnVlCiAgICBmbiB2YWxpZGF0ZV9uZXh0KCZtdXQgc2VsZikgLT4gUmVzdWx0PGJvb2wsIGFueWhvdzo6RXJyb3I+IHsKICAgICAgICBzZWxmLnZhbGlkYXRlX2VtcHR5KCk/OwoKICAgICAgICBsZXQgU29tZShbbmV4dF9jaGFyXSkgPSBzZWxmLnBlZWsoKT8gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBPayhmYWxzZSk7CiAgICAgICAgfTsKCiAgICAgICAgbWF0Y2ggbmV4dF9jaGFyIHsKICAgICAgICAgICAgJyInID0+IHsKICAgICAgICAgICAgICAgIHNlbGYubmV4dDo6PDE+KE5vbmUpPzsKCiAgICAgICAgICAgICAgICBsZXQgbXV0IGVzY2FwZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGxvb3AgewogICAgICAgICAgICAgICAgICAgIGxldCBTb21lKFtuZXh0X2NoYXJdKSA9IHNlbGYucGVlaygpPyBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9rKGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICBpZiAhZXNjYXBlZCB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5leHRfY2hhciA9PSAnXFwnIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVzY2FwZWQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5leHRfY2hhciA9PSAnIicgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXh0Ojo8MT4oTm9uZSk/OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBlc2NhcGVkID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBzZWxmLm5leHQ6OjwxPihOb25lKT87CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJywnID0+IHsKICAgICAgICAgICAgICAgIGxldCBtYXliZV9jb21tYV9pbmRleCA9IHNlbGYubmV3X3N0cmluZy5sZW4oKTsKICAgICAgICAgICAgICAgIHNlbGYubmV4dDo6PDE+KFNvbWUoWycgJ10pKT87IC8vIDwtLSBSZW1vdmUgY29tbWEKCiAgICAgICAgICAgICAgICBzZWxmLnZhbGlkYXRlX2VtcHR5KCk/OwoKICAgICAgICAgICAgICAgIGxldCBTb21lKFtuZXh0X2NoYXJdKSA9IHNlbGYucGVlaygpPyBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2soZmFsc2UpOwogICAgICAgICAgICAgICAgfTsKCiAgICAgICAgICAgICAgICBtYXRjaCBuZXh0X2NoYXIgewogICAgICAgICAgICAgICAgICAgICd9JyB8ICddJyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZhbGx0aHJvdWdoOiBDb21tYSBpcyBhbHJlYWR5IHJlbW92ZWQKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgXyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubmV3X3N0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2VfcmFuZ2UobWF5YmVfY29tbWFfaW5kZXguLihtYXliZV9jb21tYV9pbmRleCArIDEpLCAiLCIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBCeSBkZWZhdWx0IGp1c3QgZ28gb24KICAgICAgICAgICAgXyA9PiB7CiAgICAgICAgICAgICAgICBzZWxmLm5leHQ6OjwxPihOb25lKT87CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIE9rKHRydWUpCiAgICB9CgogICAgZm4gdmFsaWRhdGVfZW1wdHkoJm11dCBzZWxmKSAtPiBSZXN1bHQ8KCksIGFueWhvdzo6RXJyb3I+IHsKICAgICAgICBsZXQgbXV0IHN0YXRlID0gQ29tbWVudFN0YXRlOjpOb25lOwoKICAgICAgICBsb29wIHsKICAgICAgICAgICAgbWF0Y2ggc3RhdGUgewogICAgICAgICAgICAgICAgQ29tbWVudFN0YXRlOjpOb25lID0+IHsKICAgICAgICAgICAgICAgICAgICBsZXQgU29tZShuZXh0X2NoYXJzKSA9IHNlbGYucGVlazo6PDI+KCk/IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2soKCkpOwogICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgIG1hdGNoIG5leHRfY2hhcnMgewogICAgICAgICAgICAgICAgICAgICAgICBbJyMnLCBfXSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IENvbW1lbnRTdGF0ZTo6U2luZ2xlTGluZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5leHQ6OjwxPihTb21lKFsnICddKSk/OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIFsnLycsICcvJ10gPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBDb21tZW50U3RhdGU6OlNpbmdsZUxpbmU7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXh0Ojo8Mj4oU29tZShbJyAnLCAnICddKSk/OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIFsnLycsICcqJ10gPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUgPSBDb21tZW50U3RhdGU6Ok11bHRpTGluZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5leHQ6OjwyPihTb21lKFsnICcsICcgJ10pKT87CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgWycgJywgX10gfCBbJ1xuJywgX10gfCBbJ1xyJywgX10gPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXh0Ojo8MT4oTm9uZSk/OwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIF8gPT4gcmV0dXJuIE9rKCgpKSwKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBDb21tZW50U3RhdGU6OlNpbmdsZUxpbmUgPT4gewogICAgICAgICAgICAgICAgICAgIGxldCBTb21lKFtuZXh0X2NoYXJdKSA9IHNlbGYucGVlaygpPyBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9rKCgpKTsKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICBpZiBtYXRjaGVzIShuZXh0X2NoYXIsICdcbicgfCAnXHInKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlID0gQ29tbWVudFN0YXRlOjpOb25lOwoKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXh0Ojo8MT4oTm9uZSk/OwogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHNlbGYubmV4dDo6PDE+KFNvbWUoWycgJ10pKT87CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBDb21tZW50U3RhdGU6Ok11bHRpTGluZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgbGV0IFNvbWUobmV4dF9jaGFycykgPSBzZWxmLnBlZWs6OjwyPigpPyBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9rKCgpKTsKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICBpZiBuZXh0X2NoYXJzID09IFsnKicsICcvJ10gewogICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZSA9IENvbW1lbnRTdGF0ZTo6Tm9uZTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubmV4dChTb21lKFsnICcsICcgJ10pKT87CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgbWF0Y2hlcyEobmV4dF9jaGFyc1swXSwgJ1xuJyB8ICdccicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXh0Ojo8MT4oTm9uZSk/OwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubmV4dDo6PDE+KFNvbWUoWycgJ10pKT87CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZuIHBlZWs8Y29uc3QgTjogdXNpemU+KCZtdXQgc2VsZikgLT4gUmVzdWx0PE9wdGlvbjxbY2hhcjsgTl0+LCBhbnlob3c6OkVycm9yPiB7CiAgICAgICAgbGV0IG11dCBjaGFycyA9IFsnICc7IE5dOwoKICAgICAgICB3aGlsZSBzZWxmLnBlZWtfbGVuIDwgTiB7CiAgICAgICAgICAgIGxldCBTb21lKHBlZWspID0gc2VsZi5pdGVyLm5leHQoKSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBPayhOb25lKTsKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIHNlbGYucGVla1tzZWxmLnBlZWtfbGVuXSA9IHBlZWs7CiAgICAgICAgICAgIHNlbGYucGVla19sZW4gKz0gMTsKICAgICAgICB9CgogICAgICAgIGNoYXJzLmNvcHlfZnJvbV9zbGljZSgmc2VsZi5wZWVrWzAuLk5dKTsKCiAgICAgICAgT2soU29tZShjaGFycykpCiAgICB9CiAgICBmbiBuZXh0PGNvbnN0IE46IHVzaXplPigKICAgICAgICAmbXV0IHNlbGYsCiAgICAgICAgaW5zZXJ0X2luc3RlYWQ6IE9wdGlvbjxbY2hhcjsgTl0+LAogICAgKSAtPiBSZXN1bHQ8T3B0aW9uPFtjaGFyOyBOXT4sIGFueWhvdzo6RXJyb3I+IHsKICAgICAgICBsZXQgcmVzdWx0ID0gc2VsZi5wZWVrKCk/OwoKICAgICAgICBpZiBsZXQgU29tZShhY3R1YWwpID0gcmVzdWx0IHsKICAgICAgICAgICAgbWF0Y2ggaW5zZXJ0X2luc3RlYWQgewogICAgICAgICAgICAgICAgU29tZShpbnNlcnRfaW5zdGVhZCkgPT4gewogICAgICAgICAgICAgICAgICAgIHNlbGYubmV3X3N0cmluZy5leHRlbmQoaW5zZXJ0X2luc3RlYWQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgTm9uZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXdfc3RyaW5nLmV4dGVuZChhY3R1YWwpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBzZWxmLnBlZWtfbGVuIC09IE47CiAgICAgICAgc2VsZi5wZWVrLmNvcHlfd2l0aGluKE4uLiwgMCk7CgogICAgICAgIE9rKHJlc3VsdCkKICAgIH0KfQoKI1tjZmcodGVzdCldCm1vZCB0ZXN0IHsKICAgIHVzZSBjcmF0ZTo6aHVtYW5fanNvbjo6cHJlcHJvY2Vzc19odW1hbl9qc29uOwoKICAgICNbdGVzdF0KICAgIGZuIHRlc3RfZW1wdHlfanNvbigpIHsKICAgICAgICBsZXQgaHVtYW4gPSByIyJ7fSIjLnRvX3N0cmluZygpOwogICAgICAgIGxldCBleHBlY3RlZCA9IHIjInt9IiM7CgogICAgICAgIGFzc2VydF9lcSEocHJlcHJvY2Vzc19odW1hbl9qc29uKGh1bWFuKS5hc19zdHIoKSwgZXhwZWN0ZWQpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3Rfd2hpdGVzcGFjZV9oYW5kbGluZygpIHsKICAgICAgICBsZXQgaHVtYW4gPSByIyIgICB7ICAgImtleSIgIDogICJ2YWx1ZSIgICB9ICAgIiMudG9fc3RyaW5nKCk7CiAgICAgICAgbGV0IGV4cGVjdGVkID0gciMiICAgeyAgICJrZXkiICA6ICAidmFsdWUiICAgfSAgICIjOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X211bHRpcGxlX2NvbW1lbnRzX2luX29uZV9saW5lKCkgewogICAgICAgIGxldCBodW1hbiA9IHIjImtleTogdmFsdWUgIyBjb21tZW50MSBoZXJlIC8vIGNvbW1lbnQyIGhlcmUiIy50b19zdHJpbmcoKTsKICAgICAgICBsZXQgZXhwZWN0ZWQgPSByIyJrZXk6IHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiM7CgogICAgICAgIGFzc2VydF9lcSEocHJlcHJvY2Vzc19odW1hbl9qc29uKGh1bWFuKS5hc19zdHIoKSwgZXhwZWN0ZWQpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3Rfa2V5X3ZhbHVlKCkgewogICAgICAgIGxldCBodW1hbiA9IHIjInsidGVzdCI6InRlc3QifSIjLnRvX3N0cmluZygpOwogICAgICAgIGxldCBleHBlY3RlZCA9IHIjInsidGVzdCI6InRlc3QifSIjOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X2VzY2FwZV9xdW90ZXMoKSB7CiAgICAgICAgbGV0IGh1bWFuID0gciMidGVzdFwiInRlc3QiIy50b19zdHJpbmcoKTsKICAgICAgICBsZXQgZXhwZWN0ZWQgPSByIyJ0ZXN0XCIidGVzdCIjOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X25ld19saW5lcygpIHsKICAgICAgICBsZXQgaHVtYW4gPSByIyJ7CiJ0ZXN0Igo6CiJ0ZXN0Igp9IiMKICAgICAgICAudG9fc3RyaW5nKCk7CiAgICAgICAgbGV0IGV4cGVjdGVkID0gciMiewoidGVzdCIKOgoidGVzdCIKfSIjOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X3RleHRfZXNjYXBlKCkgewogICAgICAgIGxldCBodW1hbiA9IHIjIiJcdFxlXHNcdCIiIy50b19zdHJpbmcoKTsKICAgICAgICBsZXQgZXhwZWN0ZWQgPSByIyIiXHRcZVxzXHQiIiM7CgogICAgICAgIGFzc2VydF9lcSEocHJlcHJvY2Vzc19odW1hbl9qc29uKGh1bWFuKS5hc19zdHIoKSwgZXhwZWN0ZWQpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3RfY29tbWVudF9oYXNodGFnKCkgewogICAgICAgIGxldCBodW1hbiA9ICJoZWxsbyNjb21tZW50XG53b3JsZCIudG9fc3RyaW5nKCk7CiAgICAgICAgbGV0IGV4cGVjdGVkID0gImhlbGxvICAgICAgICBcbndvcmxkIjsKCiAgICAgICAgYXNzZXJ0X2VxIShwcmVwcm9jZXNzX2h1bWFuX2pzb24oaHVtYW4pLmFzX3N0cigpLCBleHBlY3RlZCk7CiAgICB9CgogICAgI1t0ZXN0XQogICAgZm4gdGVzdF9jb21tZW50X3NsYXNoKCkgewogICAgICAgIGxldCBodW1hbiA9ICJoZWxsby8vY29tbWVudFxud29ybGQiLnRvX3N0cmluZygpOwogICAgICAgIGxldCBleHBlY3RlZCA9ICJoZWxsbyAgICAgICAgIFxud29ybGQiOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X2NvbW1lbnRfbXVsdGlsaW5lKCkgewogICAgICAgIGxldCBodW1hbiA9ICJoZWxsby8qY29tXG5ccm1lbnQqL3dvcmxkIi50b19zdHJpbmcoKTsKICAgICAgICBsZXQgZXhwZWN0ZWQgPSAiaGVsbG8gICAgIFxuXHIgICAgICB3b3JsZCI7CgogICAgICAgIGFzc2VydF9lcSEocHJlcHJvY2Vzc19odW1hbl9qc29uKGh1bWFuKS5hc19zdHIoKSwgZXhwZWN0ZWQpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3RfbXVsdGlsaW5lX2NvbW1lbnRzKCkgewogICAgICAgIGxldCBodW1hbiA9IHIjImtleTogdmFsdWUgLy8gY29tbWVudCBsaW5lIDEKICAgICAgICAgICAgICAgICAgLy8gY29tbWVudCBsaW5lIDIKICAgICAgICAgICAgICAgICAgLy8gY29tbWVudCBsaW5lIDMiIwogICAgICAgICAgICAudG9fc3RyaW5nKCk7CiAgICAgICAgbGV0IGV4cGVjdGVkID0gciMia2V5OiB2YWx1ZSAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIjOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X2pzb25fYXJyYXlfd2l0aF9jb21tZW50cygpIHsKICAgICAgICBsZXQgaHVtYW4gPSByIyJbMSwgMiwgMywgLy8gY29tbWVudAo0LCA1LCA2XSIjCiAgICAgICAgICAgIC50b19zdHJpbmcoKTsKICAgICAgICBsZXQgZXhwZWN0ZWQgPSByIyJbMSwgMiwgMywgICAgICAgICAgIAo0LCA1LCA2XSIjOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X2pzb25fYXJyYXlfcmVtb3ZlX3RyYWlsaW5nX2NvbW1hKCkgewogICAgICAgIGxldCBodW1hbiA9ICJbMSwgMiwgMywgNCwgNSwgNiwgICBcbiBdIi50b19zdHJpbmcoKTsKICAgICAgICBsZXQgZXhwZWN0ZWQgPSAiWzEsIDIsIDMsIDQsIDUsIDYgICAgXG4gXSIudG9fc3RyaW5nKCk7CgogICAgICAgIGFzc2VydF9lcSEocHJlcHJvY2Vzc19odW1hbl9qc29uKGh1bWFuKS5hc19zdHIoKSwgZXhwZWN0ZWQpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3RfanNvbl9hcnJheV9wYWNrZWQoKSB7CiAgICAgICAgbGV0IGh1bWFuID0gIlsxLDIsMyw0LDUsNixdIi50b19zdHJpbmcoKTsKICAgICAgICBsZXQgZXhwZWN0ZWQgPSAiWzEsMiwzLDQsNSw2IF0iLnRvX3N0cmluZygpOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X2pzb25fYXJyYXlfcmVtb3ZlX3RyYWlsaW5nX2NvbW1hMigpIHsKICAgICAgICBsZXQgaHVtYW4gPSByIyJ7CjEgLAoyLAp9IiMKICAgICAgICAudG9fc3RyaW5nKCk7CiAgICAgICAgbGV0IGV4cGVjdGVkID0gciMiewoxICwKMiAKfSIjOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X2pzb25fb2JqZWN0X3BhY2tlZCgpIHsKICAgICAgICBsZXQgaHVtYW4gPSByIyJ7ImtleSI6InZhbHVlIiwia2V5IjoidmFsdWUiLH0iIy50b19zdHJpbmcoKTsKICAgICAgICBsZXQgZXhwZWN0ZWQgPSByIyJ7ImtleSI6InZhbHVlIiwia2V5IjoidmFsdWUiIH0iIzsKCiAgICAgICAgYXNzZXJ0X2VxIShwcmVwcm9jZXNzX2h1bWFuX2pzb24oaHVtYW4pLmFzX3N0cigpLCBleHBlY3RlZCk7CiAgICB9CgogICAgI1t0ZXN0XQogICAgZm4gdGVzdF9qc29uX29iamVjdF9yZW1vdmVfdHJhaWxpbmdfY29tbWEoKSB7CiAgICAgICAgbGV0IGh1bWFuID0gciMiewoia2V5IjogInZhbHVlIiAsCiJrZXkiOiAidmFsdWUiLAp9IiMKICAgICAgICAudG9fc3RyaW5nKCk7CiAgICAgICAgbGV0IGV4cGVjdGVkID0gciMiewoia2V5IjogInZhbHVlIiAsCiJrZXkiOiAidmFsdWUiIAp9IiM7CgogICAgICAgIGFzc2VydF9lcSEocHJlcHJvY2Vzc19odW1hbl9qc29uKGh1bWFuKS5hc19zdHIoKSwgZXhwZWN0ZWQpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3Rfc2luZ2xlX2xpbmVfY29tbWVudF9pbl9vYmplY3QoKSB7CiAgICAgICAgbGV0IGh1bWFuID0gciMiewogICAgICAgICJrZXkxIjogInZhbHVlMSIsIC8vIHRoaXMgaXMgYSBjb21tZW50CiAgICAgICAgImtleTIiOiAidmFsdWUyIgogICAgfSIjCiAgICAgICAgLnRvX3N0cmluZygpOwogICAgICAgIGxldCBleHBlY3RlZCA9IHIjInsKICAgICAgICAia2V5MSI6ICJ2YWx1ZTEiLCAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICJrZXkyIjogInZhbHVlMiIKICAgIH0iIzsKCiAgICAgICAgYXNzZXJ0X2VxIShwcmVwcm9jZXNzX2h1bWFuX2pzb24oaHVtYW4pLmFzX3N0cigpLCBleHBlY3RlZCk7CiAgICB9CgogICAgI1t0ZXN0XQogICAgZm4gdGVzdF9tdWx0aXBsZV90cmFpbGluZ19jb21tYXNfaW5fb2JqZWN0KCkgewogICAgICAgIGxldCBodW1hbiA9IHIjInsKICAgICAgICAia2V5MSI6ICJ2YWx1ZTEiLAogICAgICAgICJrZXkyIjogInZhbHVlMiIsCiAgICAgICAgImtleTMiOiAidmFsdWUzIiwKICAgIH0iIwogICAgICAgIC50b19zdHJpbmcoKTsKICAgICAgICBsZXQgZXhwZWN0ZWQgPSByIyJ7CiAgICAgICAgImtleTEiOiAidmFsdWUxIiwKICAgICAgICAia2V5MiI6ICJ2YWx1ZTIiLAogICAgICAgICJrZXkzIjogInZhbHVlMyIgCiAgICB9IiM7CgogICAgICAgIGFzc2VydF9lcSEocHJlcHJvY2Vzc19odW1hbl9qc29uKGh1bWFuKS5hc19zdHIoKSwgZXhwZWN0ZWQpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3RfY29tbWVudF9pbnNpZGVfc3RyaW5nX3ZhbHVlKCkgewogICAgICAgIGxldCBodW1hbiA9IHIjInsKICAgICAgICAibWVzc2FnZSI6ICJ0aGlzIGlzIGEgY29tbWVudDogLy8gbm90IGEgcmVhbCBjb21tZW50IgogICAgfSIjCiAgICAgICAgLnRvX3N0cmluZygpOwogICAgICAgIGxldCBleHBlY3RlZCA9IHIjInsKICAgICAgICAibWVzc2FnZSI6ICJ0aGlzIGlzIGEgY29tbWVudDogLy8gbm90IGEgcmVhbCBjb21tZW50IgogICAgfSIjOwoKICAgICAgICBhc3NlcnRfZXEhKHByZXByb2Nlc3NfaHVtYW5fanNvbihodW1hbikuYXNfc3RyKCksIGV4cGVjdGVkKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X3RyYWlsaW5nX2NvbW1hX3dpdGhfY29tbWVudCgpIHsKICAgICAgICBsZXQgaHVtYW4gPSByIyJ7CiAgICAgICAgImtleTEiOiAidmFsdWUxIiwgLy8gdGhpcyBpcyBhIGNvbW1lbnQKICAgICAgICAia2V5MiI6ICJ2YWx1ZTIiLAogICAgfSIjCiAgICAgICAgLnRvX3N0cmluZygpOwogICAgICAgIGxldCBleHBlY3RlZCA9IHIjInsKICAgICAgICAia2V5MSI6ICJ2YWx1ZTEiLCAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICJrZXkyIjogInZhbHVlMiIgCiAgICB9IiM7CgogICAgICAgIGFzc2VydF9lcSEocHJlcHJvY2Vzc19odW1hbl9qc29uKGh1bWFuKS5hc19zdHIoKSwgZXhwZWN0ZWQpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3RfY29tcGxleF9qc29uX3dpdGhfY29tbWVudHNfYW5kX2NvbW1hcygpIHsKICAgICAgICBsZXQgaHVtYW4gPSByIyIKICAgIHsKICAgICAgICAia2V5MSI6ICJ2YWx1ZTEiLCAvLyBjb21tZW50IGFmdGVyIGtleTEKICAgICAgICAia2V5MiI6ICJ2YWx1ZTIiLCAvKiBtdWx0aS1saW5lIAogICAgICAgIGNvbW1lbnQgCiAgICAgICAgYWZ0ZXIga2V5MiAqLwogICAgICAgICJrZXkzIjogInZhbHVlMyIsIAogICAgfSIjCiAgICAgICAgLnRvX3N0cmluZygpOwogICAgICAgIGxldCBleHBlY3RlZCA9IHIjIgogICAgewogICAgICAgICJrZXkxIjogInZhbHVlMSIsICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICJrZXkyIjogInZhbHVlMiIsICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgImtleTMiOiAidmFsdWUzIiAgCiAgICB9IiM7CgogICAgICAgIGFzc2VydF9lcSEocHJlcHJvY2Vzc19odW1hbl9qc29uKGh1bWFuKS5hc19zdHIoKSwgZXhwZWN0ZWQpOwogICAgfQp9Cg=="},{"path":"src/main.rs","sha256":"03cbc05de85c2da2ee66b49a8c7ffa5962f0c3da44c4e47ca24f8ec3e5d1187e","contentBase64":"dXNlIGNvbW1vbjo6Y29uZmlnOjpDb25maWc7CnVzZSBvcGVuc3NsOjpzc2w6OntTc2xBY2NlcHRvciwgU3NsRmlsZXR5cGUsIFNzbE1ldGhvZH07CnVzZSBzdGQ6OnsKICAgIGZzOjpPcGVuT3B0aW9ucywKICAgIGlvOjp7c2VsZiwgRXJyb3JLaW5kLCBJc1Rlcm1pbmFsfSwKICAgIHBhdGg6OlBhdGhCdWYsCiAgICBzdHI6OkZyb21TdHIsCn07CnVzZSB0b2tpbzo6ZnM6OntzZWxmfTsKdXNlIHRyYWNpbmc6OntMZXZlbCwgU3BhbiwgbGV2ZWxfZmlsdGVyczo6TGV2ZWxGaWx0ZXIsIHNwYW4sIHdhcm59Owp1c2UgdHJhY2luZ19hY3RpeF93ZWI6OntSb290U3BhbkJ1aWxkZXIsIFRyYWNpbmdMb2dnZXJ9Owp1c2UgdHJhY2luZ19hcHBlbmRlcjo6bm9uX2Jsb2NraW5nOwp1c2UgdHJhY2luZ19zdWJzY3JpYmVyOjp7CiAgICBFbnZGaWx0ZXIsIFJlZ2lzdHJ5LAogICAgZm10Ojp7c2VsZiwgZm9ybWF0OjpGbXRTcGFufSwKICAgIGxheWVyOjpTdWJzY3JpYmVyRXh0LAogICAgdXRpbDo6U3Vic2NyaWJlckluaXRFeHQsCn07CnVzZSB2ZW5hdG9yOjpWZW5hdG9yOwoKdXNlIGFjdGl4X3dlYjo6ewogICAgQXBwIGFzIEFjdGl4QXBwLCBIdHRwU2VydmVyLAogICAgYm9keTo6TWVzc2FnZUJvZHksCiAgICBkZXY6OntTZXJ2aWNlUmVxdWVzdCwgU2VydmljZVJlc3BvbnNlfSwKICAgIGh0dHA6OmhlYWRlcjo6SGVhZGVyTWFwLAogICAgbWlkZGxld2FyZTo6e3NlbGZ9LAogICAgd2ViOjp7RGF0YSwgc2NvcGV9LAp9Owp1c2UgdHJhY2luZzo6e2Vycm9yLCBpbmZvLCB0cmFjZX07Cgp1c2UgY3JhdGU6OnsKICAgIGFwaTo6YXBpX3NlcnZpY2UsCiAgICBhcHA6OkFwcCwKICAgIGNsaTo6e0NsaSwgQ29tbWFuZH0sCiAgICBodW1hbl9qc29uOjpwcmVwcm9jZXNzX2h1bWFuX2pzb24sCiAgICB3ZWI6Ont3ZWJfY29uZmlnX2pzX3NlcnZpY2UsIHdlYl9zZXJ2aWNlfSwKfTsKCm1vZCBhcGk7Cm1vZCBhcHA7Cm1vZCB3ZWI7Cgptb2QgY2xpOwptb2QgaHVtYW5fanNvbjsKCiNbYWN0aXhfd2ViOjptYWluXQphc3luYyBmbiBtYWluKCkgewogICAgbGV0IGNsaSA9IENsaTo6bG9hZCgpOwoKICAgIC8vIExvYWQgQ29uZmlnCiAgICBsZXQgY29uZmlnX3BhdGggPSBQYXRoQnVmOjpmcm9tX3N0cigmY2xpLmNvbmZpZ19wYXRoKS5leHBlY3QoImludmFsaWQgY29uZmlnIGZpbGUgcGF0aCIpOwogICAgbGV0IGNvbmZpZyA9IG1hdGNoIGZzOjpyZWFkX3RvX3N0cmluZygmY29uZmlnX3BhdGgpLmF3YWl0IHsKICAgICAgICBPayhtdXQgdmFsdWUpID0+IHsKICAgICAgICAgICAgdmFsdWUgPSBwcmVwcm9jZXNzX2h1bWFuX2pzb24odmFsdWUpOwoKICAgICAgICAgICAgbGV0IG11dCBjb25maWcgPSBzZXJkZV9qc29uOjpmcm9tX3N0cigmdmFsdWUpLmV4cGVjdCgiaW52YWxpZCBmaWxlIik7CiAgICAgICAgICAgIGNsaS5vcHRpb25zLmFwcGx5KCZtdXQgY29uZmlnKTsKICAgICAgICAgICAgY29uZmlnCiAgICAgICAgfQogICAgICAgIEVycihlcnIpIGlmIGVyci5raW5kKCkgPT0gRXJyb3JLaW5kOjpOb3RGb3VuZCA9PiB7CiAgICAgICAgICAgIGxldCBtdXQgbmV3X2NvbmZpZyA9IENvbmZpZzo6ZGVmYXVsdCgpOwogICAgICAgICAgICBjbGkub3B0aW9ucy5hcHBseSgmbXV0IG5ld19jb25maWcpOwoKICAgICAgICAgICAgbGV0IHZhbHVlX3N0ciA9CiAgICAgICAgICAgICAgICBzZXJkZV9qc29uOjp0b19zdHJpbmdfcHJldHR5KCZuZXdfY29uZmlnKS5leHBlY3QoImZhaWxlZCB0byBzZXJpYWxpemUgZmlsZSIpOwoKICAgICAgICAgICAgaWYgbGV0IFNvbWUocGFyZW50KSA9IGNvbmZpZ19wYXRoLnBhcmVudCgpIHsKICAgICAgICAgICAgICAgIGZzOjpjcmVhdGVfZGlyX2FsbChwYXJlbnQpCiAgICAgICAgICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgICAgICAgICAgICAgLmV4cGVjdCgiZmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcmllcyB0byBmaWxlIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZnM6OndyaXRlKGNvbmZpZ19wYXRoLCB2YWx1ZV9zdHIpCiAgICAgICAgICAgICAgICAuYXdhaXQKICAgICAgICAgICAgICAgIC5leHBlY3QoImZhaWxlZCB0byB3cml0ZSBkZWZhdWx0IGZpbGUiKTsKCiAgICAgICAgICAgIG5ld19jb25maWcKICAgICAgICB9CiAgICAgICAgRXJyKGVycikgPT4gcGFuaWMhKCJmYWlsZWQgdG8gcmVhZCBmaWxlOiB7ZXJyfSIpLAogICAgfTsKCiAgICBtYXRjaCBjbGkuY29tbWFuZCB7CiAgICAgICAgU29tZShDb21tYW5kOjpQcmludENvbmZpZykgPT4gewogICAgICAgICAgICBsZXQganNvbiA9CiAgICAgICAgICAgICAgICBzZXJkZV9qc29uOjp0b19zdHJpbmdfcHJldHR5KCZjb25maWcpLmV4cGVjdCgiZmFpbGVkIHRvIHNlcmlhbGl6ZSBjb25maWcgdG8ganNvbiIpOwogICAgICAgICAgICBwcmludGxuISgie2pzb259Iik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgTm9uZSB8IFNvbWUoQ29tbWFuZDo6UnVuKSA9PiB7CiAgICAgICAgICAgIC8vIEZhbGx0aHJvdWdoCiAgICAgICAgfQogICAgfQoKICAgIGxldCBndWFyZCA9IGluaXRfbG9nKCZjb25maWcpOwoKICAgICNbYWxsb3coZGVwcmVjYXRlZCldCiAgICBpZiBjb25maWcuZGVmYXVsdF9zZXR0aW5ncy5pc19zb21lKCkgewogICAgICAgIHdhcm4hKAogICAgICAgICAgICAiWW91J3JlIGN1cnJlbnRseSB1c2luZyB0aGUgXCJkZWZhdWx0X3NldHRpbmdzXCIgY29uZmlnIG9wdGlvbi4gUGxlYXNlIHJlbW92ZSB0aGlzIG9wdGlvbi4gRGVmYXVsdCBTZXR0aW5ncyBoYXZlIGJlZW4gbW92ZWQgaW50byByb2xlcy4gWW91IGNhbiBlZGl0IHRoZW0gaW4gdGhlIEFkbWluIFVJIgogICAgICAgICk7CiAgICB9CgogICAgaWYgbGV0IEVycihlcnIpID0gc3RhcnQoY29uZmlnKS5hd2FpdCB7CiAgICAgICAgZXJyb3IhKCJ7ZXJyOj99Iik7CiAgICB9CgogICAgZHJvcChndWFyZCk7Cn0KCmZuIGluaXRfbG9nKGNvbmZpZzogJkNvbmZpZykgLT4gT3B0aW9uPG5vbl9ibG9ja2luZzo6V29ya2VyR3VhcmQ+IHsKICAgIGxldCBjb25maWdfbGV2ZWxfZmlsdGVyID0gbWF0Y2ggY29uZmlnLmxvZy5sZXZlbF9maWx0ZXIgewogICAgICAgIGxvZzo6TGV2ZWxGaWx0ZXI6Ok9mZiA9PiBMZXZlbEZpbHRlcjo6T0ZGLAogICAgICAgIGxvZzo6TGV2ZWxGaWx0ZXI6OkVycm9yID0+IExldmVsRmlsdGVyOjpFUlJPUiwKICAgICAgICBsb2c6OkxldmVsRmlsdGVyOjpJbmZvID0+IExldmVsRmlsdGVyOjpJTkZPLAogICAgICAgIGxvZzo6TGV2ZWxGaWx0ZXI6Oldhcm4gPT4gTGV2ZWxGaWx0ZXI6OldBUk4sCiAgICAgICAgbG9nOjpMZXZlbEZpbHRlcjo6RGVidWcgPT4gTGV2ZWxGaWx0ZXI6OkRFQlVHLAogICAgICAgIGxvZzo6TGV2ZWxGaWx0ZXI6OlRyYWNlID0+IExldmVsRmlsdGVyOjpUUkFDRSwKICAgIH07CgogICAgbGV0IGVudl9maWx0ZXIgPSBFbnZGaWx0ZXI6OmJ1aWxkZXIoKQogICAgICAgIC53aXRoX2RlZmF1bHRfZGlyZWN0aXZlKGNvbmZpZ19sZXZlbF9maWx0ZXIuaW50bygpKQogICAgICAgIC5mcm9tX2Vudl9sb3NzeSgpCiAgICAgICAgLy8gQWRkIGRlZmF1bHQgZGlyZWN0aXZlcwogICAgICAgIC5hZGRfZGlyZWN0aXZlKAogICAgICAgICAgICAiYWN0aXhfaHR0cDo6aDE9b2ZmIgogICAgICAgICAgICAgICAgLnBhcnNlKCkKICAgICAgICAgICAgICAgIC5leHBlY3QoImZhaWxlZCB0byBhZGQgYWN0aXgtd2ViIHRyYWNpbmcgZGlyZWN0aXZlIiksCiAgICAgICAgKQogICAgICAgIC5hZGRfZGlyZWN0aXZlKAogICAgICAgICAgICAibWlvOjpwb2xsPW9mZiIKICAgICAgICAgICAgICAgIC5wYXJzZSgpCiAgICAgICAgICAgICAgICAuZXhwZWN0KCJmYWlsZWQgdG8gYWRkIG1pbyB0cmFjaW5nIGRpcmVjdGl2ZSIpLAogICAgICAgICk7CgogICAgI1tjZmcod2luZG93cyldCiAgICBlbmFibGVfYW5zaV93aW5kb3dzKCk7CgogICAgbGV0IHN0ZG91dF9sYXllciA9IGZtdDo6bGF5ZXIoKQogICAgICAgIC53aXRoX3NwYW5fZXZlbnRzKEZtdFNwYW46OkNMT1NFKQogICAgICAgIC53aXRoX2Fuc2koaW86OnN0ZG91dCgpLmlzX3Rlcm1pbmFsKCkpOwoKICAgIGxldCAoZmlsZV9sYXllciwgZ3VhcmQpID0gaWYgbGV0IFNvbWUobG9nX2ZpbGUpID0gJmNvbmZpZy5sb2cuZmlsZV9wYXRoIHsKICAgICAgICBsZXQgZmlsZSA9IE9wZW5PcHRpb25zOjpuZXcoKQogICAgICAgICAgICAuY3JlYXRlKHRydWUpCiAgICAgICAgICAgIC53cml0ZSh0cnVlKQogICAgICAgICAgICAudHJ1bmNhdGUodHJ1ZSkKICAgICAgICAgICAgLm9wZW4obG9nX2ZpbGUpCiAgICAgICAgICAgIC5leHBlY3QoImZhaWxlZCB0byBvcGVuIGxvZyBmaWxlIik7CgogICAgICAgIGxldCAod3JpdGVyLCBndWFyZCkgPSBub25fYmxvY2tpbmcoZmlsZSk7CgogICAgICAgIGxldCBmbXRfbGF5ZXIgPSBmbXQ6OmxheWVyKCkKICAgICAgICAgICAgLndpdGhfc3Bhbl9ldmVudHMoRm10U3Bhbjo6RlVMTCkKICAgICAgICAgICAgLndpdGhfd3JpdGVyKHdyaXRlcikKICAgICAgICAgICAgLndpdGhfYW5zaShmYWxzZSk7CgogICAgICAgIChTb21lKGZtdF9sYXllciksIFNvbWUoZ3VhcmQpKQogICAgfSBlbHNlIHsKICAgICAgICAoTm9uZSwgTm9uZSkKICAgIH07CgogICAgbGV0IHZlbmF0b3IgPSBjb25maWcubG9nLmRldl92ZW5hdG9yLnRoZW4oVmVuYXRvcjo6ZGVmYXVsdCk7CgogICAgUmVnaXN0cnk6OmRlZmF1bHQoKQogICAgICAgIC53aXRoKHZlbmF0b3IpCiAgICAgICAgLndpdGgoZW52X2ZpbHRlci5jbG9uZSgpKQogICAgICAgIC53aXRoKGZpbGVfbGF5ZXIpCiAgICAgICAgLndpdGgoc3Rkb3V0X2xheWVyKQogICAgICAgIC5pbml0KCk7CgogICAgdHJhY2UhKCJVc2luZyBlbnZfZmlsdGVyOiB7ZW52X2ZpbHRlcn0iKTsKCiAgICBndWFyZAp9CgojW2NmZyh3aW5kb3dzKV0KZm4gZW5hYmxlX2Fuc2lfd2luZG93cygpIHsKICAgIHVzZSBzdGQ6OmlvOwogICAgdXNlIHN0ZDo6b3M6OndpbmRvd3M6OmlvOjpBc1Jhd0hhbmRsZTsKICAgIHVzZSB3aW5kb3dzX3N5czo6V2luMzI6OlN5c3RlbTo6Q29uc29sZTo6ewogICAgICAgIEVOQUJMRV9WSVJUVUFMX1RFUk1JTkFMX1BST0NFU1NJTkcsIEdldENvbnNvbGVNb2RlLCBTZXRDb25zb2xlTW9kZSwKICAgIH07CgogICAgdW5zYWZlIHsKICAgICAgICBsZXQgaGFuZGxlID0gaW86OnN0ZG91dCgpLmFzX3Jhd19oYW5kbGUoKTsKICAgICAgICBsZXQgbXV0IG1vZGUgPSAwOwogICAgICAgIGlmIEdldENvbnNvbGVNb2RlKGhhbmRsZSBhcyBfLCAmbXV0IG1vZGUpICE9IDAgewogICAgICAgICAgICBTZXRDb25zb2xlTW9kZShoYW5kbGUgYXMgXywgbW9kZSB8IEVOQUJMRV9WSVJUVUFMX1RFUk1JTkFMX1BST0NFU1NJTkcpOwogICAgICAgIH0KICAgIH0KfQoKc3RydWN0IEFjdGl4RGVidWdTcGFuOwoKaW1wbCBBY3RpeERlYnVnU3BhbiB7CiAgICBmbiBzYW5pdGl6ZV9oZWFkZXJzKGhlYWRlcnM6ICZIZWFkZXJNYXApIC0+IFZlYzwoU3RyaW5nLCBTdHJpbmcpPiB7CiAgICAgICAgY29uc3QgU0VOU0lUSVZFOiAmWyZzdHJdID0gJlsiYXV0aG9yaXphdGlvbiIsICJjb29raWUiLCAic2V0LWNvb2tpZSJdOwoKICAgICAgICBoZWFkZXJzCiAgICAgICAgICAgIC5pdGVyKCkKICAgICAgICAgICAgLm1hcCh8KG5hbWUsIHZhbHVlKXwgewogICAgICAgICAgICAgICAgbGV0IG5hbWVfc3RyID0gbmFtZS5hc19zdHIoKS50b19zdHJpbmcoKTsKCiAgICAgICAgICAgICAgICBsZXQgdmFsdWVfc3RyID0gaWYgU0VOU0lUSVZFLmNvbnRhaW5zKCZuYW1lX3N0ci50b19hc2NpaV9sb3dlcmNhc2UoKS5hc19zdHIoKSkgewogICAgICAgICAgICAgICAgICAgICI8cmVkYWN0ZWQ+Ii50b19zdHJpbmcoKQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB2YWx1ZS50b19zdHIoKS51bndyYXBfb3IoIjxiaW5hcnk+IikudG9fc3RyaW5nKCkKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgKG5hbWVfc3RyLCB2YWx1ZV9zdHIpCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC5jb2xsZWN0KCkKICAgIH0KfQoKaW1wbCBSb290U3BhbkJ1aWxkZXIgZm9yIEFjdGl4RGVidWdTcGFuIHsKICAgIGZuIG9uX3JlcXVlc3Rfc3RhcnQocmVxdWVzdDogJlNlcnZpY2VSZXF1ZXN0KSAtPiBTcGFuIHsKICAgICAgICBpZiB0cmFjaW5nOjplbmFibGVkIShMZXZlbDo6VFJBQ0UpIHsKICAgICAgICAgICAgc3BhbiEoCiAgICAgICAgICAgICAgICBMZXZlbDo6VFJBQ0UsCiAgICAgICAgICAgICAgICAiaHR0cF9yZXF1ZXN0IiwKICAgICAgICAgICAgICAgIG1ldGhvZCA9ICVyZXF1ZXN0Lm1ldGhvZCgpLAogICAgICAgICAgICAgICAgdXJpID0gJXJlcXVlc3QudXJpKCksCiAgICAgICAgICAgICAgICBoZWFkZXJzID0gP1NlbGY6OnNhbml0aXplX2hlYWRlcnMocmVxdWVzdC5oZWFkZXJzKCkpLAogICAgICAgICAgICAgICAgcGVlcl9hZGRyID0gP3JlcXVlc3QucGVlcl9hZGRyKCksCiAgICAgICAgICAgICkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzcGFuISgKICAgICAgICAgICAgICAgIExldmVsOjpERUJVRywKICAgICAgICAgICAgICAgICJodHRwX3JlcXVlc3QiLAogICAgICAgICAgICAgICAgbWV0aG9kID0gJXJlcXVlc3QubWV0aG9kKCksCiAgICAgICAgICAgICAgICB1cmkgPSAlcmVxdWVzdC51cmkoKSwKICAgICAgICAgICAgKQogICAgICAgIH0KICAgIH0KICAgIGZuIG9uX3JlcXVlc3RfZW5kPEI6IE1lc3NhZ2VCb2R5PigKICAgICAgICBfc3BhbjogU3BhbiwKICAgICAgICBfb3V0Y29tZTogJlJlc3VsdDxTZXJ2aWNlUmVzcG9uc2U8Qj4sIGFjdGl4X3dlYjo6RXJyb3I+LAogICAgKSB7CiAgICB9Cn0KCmFzeW5jIGZuIHN0YXJ0KGNvbmZpZzogQ29uZmlnKSAtPiBSZXN1bHQ8KCksIGFueWhvdzo6RXJyb3I+IHsKICAgIGxldCBhcHAgPSBBcHA6Om5ldyhjb25maWcuY2xvbmUoKSkuYXdhaXQ/OwogICAgbGV0IGFwcCA9IERhdGE6Om5ldyhhcHApOwoKICAgIGxldCBiaW5kX2FkZHJlc3MgPSBhcHAuY29uZmlnKCkud2ViX3NlcnZlci5iaW5kX2FkZHJlc3M7CiAgICBsZXQgc2VydmVyID0gSHR0cFNlcnZlcjo6bmV3KHsKICAgICAgICBsZXQgdXJsX3BhdGhfcHJlZml4ID0gY29uZmlnLndlYl9zZXJ2ZXIudXJsX3BhdGhfcHJlZml4LmNsb25lKCk7CiAgICAgICAgbGV0IGFwcCA9IGFwcC5jbG9uZSgpOwoKICAgICAgICBtb3ZlIHx8IHsKICAgICAgICAgICAgQWN0aXhBcHA6Om5ldygpCiAgICAgICAgICAgICAgICAud3JhcChUcmFjaW5nTG9nZ2VyOjo8QWN0aXhEZWJ1Z1NwYW4+OjpuZXcoKSkKICAgICAgICAgICAgICAgIC5zZXJ2aWNlKAogICAgICAgICAgICAgICAgICAgIHNjb3BlKCZ1cmxfcGF0aF9wcmVmaXgpCiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBfZGF0YShhcHAuY2xvbmUoKSkKICAgICAgICAgICAgICAgICAgICAgICAgLndyYXAoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWRkbGV3YXJlOjpEZWZhdWx0SGVhZGVyczo6bmV3KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWRkKCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhY2hlLUNvbnRyb2wiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm8tc3RvcmUsIG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUsIHByaXZhdGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFkZCgoIlByYWdtYSIsICJuby1jYWNoZSIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGQoKCJFeHBpcmVzIiwgIjAiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAgICAgLnNlcnZpY2UoYXBpX3NlcnZpY2UoKSkKICAgICAgICAgICAgICAgICAgICAgICAgLnNlcnZpY2Uod2ViX2NvbmZpZ19qc19zZXJ2aWNlKCkpCiAgICAgICAgICAgICAgICAgICAgICAgIC5zZXJ2aWNlKHdlYl9zZXJ2aWNlKCkpLAogICAgICAgICAgICAgICAgKQogICAgICAgIH0KICAgIH0pOwoKICAgIGlmIGxldCBTb21lKGNlcnRpZmljYXRlKSA9IGFwcC5jb25maWcoKS53ZWJfc2VydmVyLmNlcnRpZmljYXRlLmFzX3JlZigpIHsKICAgICAgICBpbmZvISgiW1NlcnZlcl06IFJ1bm5pbmcgSHR0cHMgU2VydmVyIHdpdGggc3NsIHRscyIpOwoKICAgICAgICBsZXQgbXV0IGJ1aWxkZXIgPSBTc2xBY2NlcHRvcjo6bW96aWxsYV9pbnRlcm1lZGlhdGUoU3NsTWV0aG9kOjp0bHMoKSkKICAgICAgICAgICAgLmV4cGVjdCgiZmFpbGVkIHRvIGNyZWF0ZSBzc2wgdGxzIGFjY2VwdG9yIik7CiAgICAgICAgYnVpbGRlcgogICAgICAgICAgICAuc2V0X3ByaXZhdGVfa2V5X2ZpbGUoJmNlcnRpZmljYXRlLnByaXZhdGVfa2V5X3BlbSwgU3NsRmlsZXR5cGU6OlBFTSkKICAgICAgICAgICAgLmV4cGVjdCgiZmFpbGVkIHRvIHNldCBwcml2YXRlIGtleSIpOwogICAgICAgIGJ1aWxkZXIKICAgICAgICAgICAgLnNldF9jZXJ0aWZpY2F0ZV9jaGFpbl9maWxlKCZjZXJ0aWZpY2F0ZS5jZXJ0aWZpY2F0ZV9wZW0pCiAgICAgICAgICAgIC5leHBlY3QoImZhaWxlZCB0byBzZXQgY2VydGlmaWNhdGUiKTsKCiAgICAgICAgc2VydmVyLmJpbmRfb3BlbnNzbChiaW5kX2FkZHJlc3MsIGJ1aWxkZXIpPy5ydW4oKS5hd2FpdD87CiAgICB9IGVsc2UgewogICAgICAgIHNlcnZlci5iaW5kKGJpbmRfYWRkcmVzcyk/LnJ1bigpLmF3YWl0PzsKICAgIH0KCiAgICBPaygoKSkKfQo="},{"path":"src/web.rs","sha256":"b37e64d293f950a76053e560e9ca6740263269c672bbc893346dd760cbd0c3c4","contentBase64":"dXNlIGFjdGl4X2ZpbGVzOjpGaWxlczsKdXNlIGFjdGl4X3dlYjo6e0h0dHBSZXNwb25zZSwgZGV2OjpIdHRwU2VydmljZUZhY3RvcnksIGdldCwgc2VydmljZXMsIHdlYjo6RGF0YX07CnVzZSBjb21tb246OmFwaV9iaW5kaW5nczo6Q29uZmlnSnM7CnVzZSBsb2c6Ondhcm47Cgp1c2UgY3JhdGU6OmFwcDo6QXBwOwoKcHViIGZuIHdlYl9zZXJ2aWNlKCkgLT4gaW1wbCBIdHRwU2VydmljZUZhY3RvcnkgewogICAgI1tjZmcoZGVidWdfYXNzZXJ0aW9ucyldCiAgICBsZXQgZmlsZXMgPSBGaWxlczo6bmV3KCIvIiwgImRpc3QiKS5pbmRleF9maWxlKCJpbmRleC5odG1sIik7CgogICAgI1tjZmcobm90KGRlYnVnX2Fzc2VydGlvbnMpKV0KICAgIGxldCBmaWxlcyA9IEZpbGVzOjpuZXcoIi8iLCAic3RhdGljIikuaW5kZXhfZmlsZSgiaW5kZXguaHRtbCIpOwoKICAgIGZpbGVzCn0KCnB1YiBmbiB3ZWJfY29uZmlnX2pzX3NlcnZpY2UoKSAtPiBpbXBsIEh0dHBTZXJ2aWNlRmFjdG9yeSB7CiAgICBzZXJ2aWNlcyFbY29uZmlnX2pzXQp9CiNbZ2V0KCIvY29uZmlnLmpzIildCmFzeW5jIGZuIGNvbmZpZ19qcyhhcHA6IERhdGE8QXBwPikgLT4gSHR0cFJlc3BvbnNlIHsKICAgIGxldCBjb25maWdfanNvbiA9IG1hdGNoIHNlcmRlX2pzb246OnRvX3N0cmluZygmQ29uZmlnSnMgewogICAgICAgIHBhdGhfcHJlZml4OiBhcHAuY29uZmlnKCkud2ViX3NlcnZlci51cmxfcGF0aF9wcmVmaXguY2xvbmUoKSwKICAgIH0pIHsKICAgICAgICBPayh2YWx1ZSkgPT4gdmFsdWUsCiAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gY3JlYXRlIHRoZSB3ZWIgY29uZmlnLmpzLiBUaGUgV2ViIEludGVyZmFjZSBtaWdodCBmYWlsIHRvIGxvYWQhIHtlcnI6P30iCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gSHR0cFJlc3BvbnNlOjpJbnRlcm5hbFNlcnZlckVycm9yKCkuZmluaXNoKCk7CiAgICAgICAgfQogICAgfTsKICAgIGxldCBjb25maWdfanMgPSBmb3JtYXQhKCJleHBvcnQgZGVmYXVsdCB7Y29uZmlnX2pzb259Iik7CgogICAgSHR0cFJlc3BvbnNlOjpPaygpCiAgICAgICAgLmFwcGVuZF9oZWFkZXIoKCJDb250ZW50LVR5cGUiLCAidGV4dC9qYXZhc2NyaXB0IikpCiAgICAgICAgLmJvZHkoY29uZmlnX2pzKQp9Cg=="},{"path":"streamer/Cargo.toml","sha256":"13ad635f96fada3cb8c662c7108c74ff391da17dfc56b0f8b9753958cb602291","contentBase64":"W3BhY2thZ2VdCm5hbWUgPSAic3RyZWFtZXIiCnZlcnNpb24ud29ya3NwYWNlID0gdHJ1ZQplZGl0aW9uID0gIjIwMjQiCmxpY2Vuc2Uud29ya3NwYWNlID0gdHJ1ZQoKW2RlcGVuZGVuY2llc10KbW9vbmxpZ2h0LWNvbW1vbiA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CmNvbW1vbiA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9Cgp0b2tpbyA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbInJ0LW11bHRpLXRocmVhZCJdIH0Kd2VicnRjID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KYnl0ZXMgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQphc3luYy10cmFpdCA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CnNlcmRlX2pzb24gPSB7IHdvcmtzcGFjZSA9IHRydWUgfQoKYW55aG93ID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KdGhpc2Vycm9yID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KCm51bSA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9Cm51bS1kZXJpdmUgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQpudW0tdHJhaXRzID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KCmxvZyA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CnRyYWNpbmcgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQp0cmFjaW5nLXN1YnNjcmliZXIgPSB7IHdvcmtzcGFjZSA9IHRydWUsIGZlYXR1cmVzID0gWyJlbnYtZmlsdGVyIl0gfQoKW2xpbnRzXQp3b3Jrc3BhY2UgPSB0cnVlCg=="},{"path":"streamer/src/audio.rs","sha256":"bdae6932420df8a50f8c0c9868bf8caa57c92ff0a75fbfac446e2e7e31910361","contentBase64":"dXNlIHN0ZDo6c3luYzo6V2VhazsKCnVzZSBsb2c6OntkZWJ1ZywgZXJyb3IsIHdhcm59Owp1c2UgbW9vbmxpZ2h0X2NvbW1vbjo6c3RyZWFtOjphdWRpbzo6ewogICAgQXVkaW9Db25maWcsIEF1ZGlvRGVjb2RlciwgQXVkaW9GcmFtZSwgT3B1c011bHRpc3RyZWFtQ29uZmlnLAp9OwoKdXNlIGNyYXRlOjpTdHJlYW1Db25uZWN0aW9uOwoKcHViKGNyYXRlKSBzdHJ1Y3QgU3RyZWFtQXVkaW9EZWNvZGVyIHsKICAgIHB1YihjcmF0ZSkgc3RyZWFtOiBXZWFrPFN0cmVhbUNvbm5lY3Rpb24+LAp9CgppbXBsIEF1ZGlvRGVjb2RlciBmb3IgU3RyZWFtQXVkaW9EZWNvZGVyIHsKICAgIGZuIHNldHVwKCZtdXQgc2VsZiwgYXVkaW9fY29uZmlnOiBBdWRpb0NvbmZpZywgc3RyZWFtX2NvbmZpZzogT3B1c011bHRpc3RyZWFtQ29uZmlnKSAtPiBpMzIgewogICAgICAgIGxldCBTb21lKHN0cmVhbSkgPSBzZWxmLnN0cmVhbS51cGdyYWRlKCkgZWxzZSB7CiAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gc2V0dXAgYXVkaW8gYmVjYXVzZSBzdHJlYW0gaXMgZGVhbGxvY2F0ZWQiKTsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH07CgogICAgICAgIHsKICAgICAgICAgICAgbGV0IG11dCBzdHJlYW1faW5mbyA9IHN0cmVhbS5zdHJlYW1fc2V0dXAuYmxvY2tpbmdfbG9jaygpOwogICAgICAgICAgICBzdHJlYW1faW5mby5hdWRpbyA9IFNvbWUoc3RyZWFtX2NvbmZpZy5jbG9uZSgpKTsKICAgICAgICB9CgogICAgICAgIHN0cmVhbS5ydW50aW1lLmNsb25lKCkuYmxvY2tfb24oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgIGxldCBtdXQgc2VuZGVyID0gc3RyZWFtLnRyYW5zcG9ydF9zZW5kZXIubG9jaygpLmF3YWl0OwogICAgICAgICAgICBpZiBsZXQgU29tZShzZW5kZXIpID0gc2VuZGVyLmFzX211dCgpIHsKICAgICAgICAgICAgICAgIHNlbmRlci5zZXR1cF9hdWRpbyhhdWRpb19jb25maWcsIHN0cmVhbV9jb25maWcpLmF3YWl0CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBlcnJvciEoIkZhaWxlZCB0byBzZXR1cCBhdWRpbyBiZWNhdXNlIG9mIG1pc3NpbmcgdHJhbnNwb3J0ISIpOwogICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICB9CgogICAgZm4gc3RhcnQoJm11dCBzZWxmKSB7fQogICAgZm4gc3RvcCgmbXV0IHNlbGYpIHt9CgogICAgZm4gZGVjb2RlX2FuZF9wbGF5X3NhbXBsZSgmbXV0IHNlbGYsIHNhbXBsZTogQXVkaW9GcmFtZTwmW3U4XT4pIHsKICAgICAgICBsZXQgU29tZShzdHJlYW0pID0gc2VsZi5zdHJlYW0udXBncmFkZSgpIGVsc2UgewogICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgYXVkaW8gc2FtcGxlIGJlY2F1c2Ugc3RyZWFtIGlzIGRlYWxsb2NhdGVkIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9OwoKICAgICAgICBzdHJlYW0ucnVudGltZS5jbG9uZSgpLmJsb2NrX29uKGFzeW5jIG1vdmUgewogICAgICAgICAgICBsZXQgbXV0IHN0cmVhbSA9IHN0cmVhbS50cmFuc3BvcnRfc2VuZGVyLmxvY2soKS5hd2FpdDsKCiAgICAgICAgICAgIGlmIGxldCBTb21lKHN0cmVhbSkgPSBzdHJlYW0uYXNfbXV0KCkgewogICAgICAgICAgICAgICAgaWYgbGV0IEVycihlcnIpID0gc3RyZWFtLnNlbmRfYXVkaW9fc2FtcGxlKHNhbXBsZS5idWZmZXIpLmF3YWl0IHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgYXVkaW8gc2FtcGxlOiB7ZXJyfSIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZGVidWchKCJEcm9wcGluZyBhdWRpbyBwYWNrZXQgYmVjYXVzZSBvZiBtaXNzaW5nIHRyYW5zcG9ydCIpOwogICAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICB9CgogICAgZm4gY29uZmlnKCZzZWxmKSAtPiBBdWRpb0NvbmZpZyB7CiAgICAgICAgQXVkaW9Db25maWc6OlNURVJFTwogICAgfQp9Cg=="},{"path":"streamer/src/buffer.rs","sha256":"1683a105c79d1fce98152b15d4c3c2b21062976840bd65d2033d7a823f3a6aa5","contentBase64":"dXNlIHN0ZDo6b3BzOjpSYW5nZTsKCnVzZSB0aGlzZXJyb3I6OkVycm9yOwoKI1tkZXJpdmUoRGVidWcsIEVycm9yKV0KcHViIGVudW0gVXRmOEVycm9yIHsKICAgICNbZXJyb3IoImJ1ZmZlciBkb2Vzbid0IGNvbnRhaW4gdmFsaWQgdXRmOCBjaHVua3MiKV0KICAgIEludmFsaWRDaHVua3MsCiAgICAjW2Vycm9yKCJidWZmZXIgaXMgdG9vIHNtYWxsIildCiAgICBCdWZmZXJUb29TbWFsbCwKfQoKcHViIHN0cnVjdCBCeXRlQnVmZmVyPFQ+IHsKICAgIHBvc2l0aW9uOiB1c2l6ZSwKICAgIGxpbWl0OiB1c2l6ZSwKICAgIGxpdHRsZV9lbmRpYW46IGJvb2wsCiAgICBidWZmZXI6IFQsCn0KCmltcGw8VD4gQnl0ZUJ1ZmZlcjxUPiB7CiAgICAvLy8gSU1QT1JUQU5UOiBubyBsaW1pdCBjaGVja3MgYXJlIG1hZGUKICAgIC8vLyBUaGUgbGltaXQgaXMgdXNlZCwgaWYgdGhpcyBidWZmZXIgd2FzIHdyaXR0ZW4gYmVmb3JlIHVzZSBmbGlwIHRvIHNldCBpdCBpbnRvIHJlYWQgbW9kZQogICAgcHViIGZuIGludG9fcmF3KHNlbGYpIC0+IChULCBSYW5nZTx1c2l6ZT4pIHsKICAgICAgICAoc2VsZi5idWZmZXIsIDAuLnNlbGYubGltaXQpCiAgICB9Cn0KCiNbYWxsb3codW51c2VkKV0KaW1wbDxUPiBCeXRlQnVmZmVyPFQ+CndoZXJlCiAgICBUOiBBc1JlZjxbdThdPiwKewogICAgcHViIGZuIG5ldyhidWZmZXI6IFQpIC0+IFNlbGYgewogICAgICAgIFNlbGYgewogICAgICAgICAgICBwb3NpdGlvbjogMCwKICAgICAgICAgICAgbGltaXQ6IGJ1ZmZlci5hc19yZWYoKS5sZW4oKSwKICAgICAgICAgICAgbGl0dGxlX2VuZGlhbjogZmFsc2UsCiAgICAgICAgICAgIGJ1ZmZlciwKICAgICAgICB9CiAgICB9CgogICAgcHViIGZuIGdldF91OF9hcnJheSgmbXV0IHNlbGYsIGFycmF5OiAmbXV0IFt1OF0pIHsKICAgICAgICBhcnJheS5jb3B5X2Zyb21fc2xpY2UoJnNlbGYuYnVmZmVyLmFzX3JlZigpW3NlbGYucG9zaXRpb24uLihzZWxmLnBvc2l0aW9uICsgYXJyYXkubGVuKCkpXSk7CiAgICAgICAgc2VsZi5wb3NpdGlvbiArPSBhcnJheS5sZW4oKTsKICAgIH0KICAgIHB1YiBmbiBnZXRfdTgoJm11dCBzZWxmKSAtPiB1OCB7CiAgICAgICAgbGV0IG11dCBidWZmZXIgPSBbMHU4OyAxXTsKICAgICAgICBzZWxmLmdldF91OF9hcnJheSgmbXV0IGJ1ZmZlcik7CiAgICAgICAgYnVmZmVyWzBdCiAgICB9CiAgICBwdWIgZm4gZ2V0X2Jvb2woJm11dCBzZWxmKSAtPiBib29sIHsKICAgICAgICBzZWxmLmdldF91OCgpICE9IDAKICAgIH0KCiAgICBwdWIgZm4gZ2V0X2k4KCZtdXQgc2VsZikgLT4gaTggewogICAgICAgIGxldCBieXRlID0gc2VsZi5nZXRfdTgoKTsKICAgICAgICBpZiBzZWxmLmxpdHRsZV9lbmRpYW4gewogICAgICAgICAgICBpODo6ZnJvbV9sZV9ieXRlcyhbYnl0ZV0pCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaTg6OmZyb21fYmVfYnl0ZXMoW2J5dGVdKQogICAgICAgIH0KICAgIH0KCiAgICBwdWIgZm4gZ2V0X3UxNigmbXV0IHNlbGYpIC0+IHUxNiB7CiAgICAgICAgbGV0IG11dCBidWZmZXIgPSBbMHU4OyAyXTsKICAgICAgICBzZWxmLmdldF91OF9hcnJheSgmbXV0IGJ1ZmZlcik7CgogICAgICAgIGlmIHNlbGYubGl0dGxlX2VuZGlhbiB7CiAgICAgICAgICAgIHUxNjo6ZnJvbV9sZV9ieXRlcyhidWZmZXIpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdTE2Ojpmcm9tX2JlX2J5dGVzKGJ1ZmZlcikKICAgICAgICB9CiAgICB9CiAgICBwdWIgZm4gZ2V0X2kxNigmbXV0IHNlbGYpIC0+IGkxNiB7CiAgICAgICAgbGV0IG11dCBidWZmZXIgPSBbMHU4OyAyXTsKICAgICAgICBzZWxmLmdldF91OF9hcnJheSgmbXV0IGJ1ZmZlcik7CgogICAgICAgIGlmIHNlbGYubGl0dGxlX2VuZGlhbiB7CiAgICAgICAgICAgIGkxNjo6ZnJvbV9sZV9ieXRlcyhidWZmZXIpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaTE2Ojpmcm9tX2JlX2J5dGVzKGJ1ZmZlcikKICAgICAgICB9CiAgICB9CgogICAgcHViIGZuIGdldF91dGY4X3JhdygmbXV0IHNlbGYsIGNoYXJhY3RlcnM6IHVzaXplKSAtPiBSZXN1bHQ8JnN0ciwgVXRmOEVycm9yPiB7CiAgICAgICAgaWYgY2hhcmFjdGVycyA9PSAwIHsKICAgICAgICAgICAgcmV0dXJuIE9rKCIiKTsKICAgICAgICB9CgogICAgICAgIGxldCBTb21lKGNodW5rKSA9ICZzZWxmLmJ1ZmZlci5hc19yZWYoKVtzZWxmLnBvc2l0aW9uLi5dLnV0ZjhfY2h1bmtzKCkubmV4dCgpIGVsc2UgewogICAgICAgICAgICByZXR1cm4gRXJyKFV0ZjhFcnJvcjo6SW52YWxpZENodW5rcyk7CiAgICAgICAgfTsKICAgICAgICBsZXQgU29tZSgoZW5kX2NoYXJfaW5kZXgsIGVuZF9jaGFyKSkgPSBjaHVuay52YWxpZCgpLmNoYXJfaW5kaWNlcygpLm50aChjaGFyYWN0ZXJzIC0gMSkKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIEVycihVdGY4RXJyb3I6OkJ1ZmZlclRvb1NtYWxsKTsKICAgICAgICB9OwogICAgICAgIGxldCBvdXRwdXQgPSAmY2h1bmsudmFsaWQoKVswLi5lbmRfY2hhcl9pbmRleCArIChlbmRfY2hhci5sZW5fdXRmOCgpKV07CgogICAgICAgIE9rKG91dHB1dCkKICAgIH0KCiAgICBwdWIgZm4gZ2V0X3UzMigmbXV0IHNlbGYpIC0+IHUzMiB7CiAgICAgICAgbGV0IG11dCBidWZmZXIgPSBbMHU4OyA0XTsKICAgICAgICBzZWxmLmdldF91OF9hcnJheSgmbXV0IGJ1ZmZlcik7CgogICAgICAgIGlmIHNlbGYubGl0dGxlX2VuZGlhbiB7CiAgICAgICAgICAgIHUzMjo6ZnJvbV9sZV9ieXRlcyhidWZmZXIpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdTMyOjpmcm9tX2JlX2J5dGVzKGJ1ZmZlcikKICAgICAgICB9CiAgICB9CgogICAgcHViIGZuIGdldF9mMzIoJm11dCBzZWxmKSAtPiBmMzIgewogICAgICAgIGxldCBtdXQgYnVmZmVyID0gWzB1ODsgNF07CiAgICAgICAgc2VsZi5nZXRfdThfYXJyYXkoJm11dCBidWZmZXIpOwoKICAgICAgICBpZiBzZWxmLmxpdHRsZV9lbmRpYW4gewogICAgICAgICAgICBmMzI6OmZyb21fbGVfYnl0ZXMoYnVmZmVyKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGYzMjo6ZnJvbV9iZV9ieXRlcyhidWZmZXIpCiAgICAgICAgfQogICAgfQoKICAgIHB1YiBmbiByZXNldCgmbXV0IHNlbGYpIHsKICAgICAgICBzZWxmLnBvc2l0aW9uID0gMDsKICAgICAgICBzZWxmLmxpbWl0ID0gMDsKICAgIH0KICAgIHB1YiBmbiBmbGlwKCZtdXQgc2VsZikgewogICAgICAgIHNlbGYubGltaXQgPSBzZWxmLnBvc2l0aW9uOwogICAgICAgIHNlbGYucG9zaXRpb24gPSAwOwogICAgfQogICAgcHViIGZuIHJlbWFpbmluZygmc2VsZikgLT4gdXNpemUgewogICAgICAgIHNlbGYubGltaXQgLSBzZWxmLnBvc2l0aW9uCiAgICB9Cn0KCiNbYWxsb3codW51c2VkKV0KaW1wbDxUPiBCeXRlQnVmZmVyPFQ+CndoZXJlCiAgICBUOiBBc011dDxbdThdPiwKewogICAgcHViIGZuIHB1dF91OF9hcnJheSgmbXV0IHNlbGYsIGFycmF5OiAmW3U4XSkgLT4gYm9vbCB7CiAgICAgICAgaWYgc2VsZi5idWZmZXIuYXNfbXV0KCkubGVuKCkgLSBzZWxmLnBvc2l0aW9uIDwgYXJyYXkubGVuKCkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIHNlbGYuYnVmZmVyLmFzX211dCgpW3NlbGYucG9zaXRpb24uLihzZWxmLnBvc2l0aW9uICsgYXJyYXkubGVuKCkpXS5jb3B5X2Zyb21fc2xpY2UoYXJyYXkpOwoKICAgICAgICBzZWxmLnBvc2l0aW9uICs9IGFycmF5LmxlbigpOwoKICAgICAgICB0cnVlCiAgICB9CiAgICBwdWIgZm4gcHV0X3U4KCZtdXQgc2VsZiwgZGF0YTogdTgpIC0+IGJvb2wgewogICAgICAgIHNlbGYucHV0X3U4X2FycmF5KCZbZGF0YV0pCiAgICB9CiAgICBwdWIgZm4gcHV0X3UxNigmbXV0IHNlbGYsIGRhdGE6IHUxNikgLT4gYm9vbCB7CiAgICAgICAgbGV0IGJ5dGVzOiBbdTg7IDJdID0gaWYgc2VsZi5saXR0bGVfZW5kaWFuIHsKICAgICAgICAgICAgdTE2Ojp0b19sZV9ieXRlcyhkYXRhKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHUxNjo6dG9fYmVfYnl0ZXMoZGF0YSkKICAgICAgICB9OwoKICAgICAgICBzZWxmLnB1dF91OF9hcnJheSgmYnl0ZXMpCiAgICB9CiAgICBwdWIgZm4gcHV0X3UzMigmbXV0IHNlbGYsIGRhdGE6IHUzMikgLT4gYm9vbCB7CiAgICAgICAgbGV0IGJ5dGVzOiBbdTg7IDRdID0gaWYgc2VsZi5saXR0bGVfZW5kaWFuIHsKICAgICAgICAgICAgdTMyOjp0b19sZV9ieXRlcyhkYXRhKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHUzMjo6dG9fYmVfYnl0ZXMoZGF0YSkKICAgICAgICB9OwoKICAgICAgICBzZWxmLnB1dF91OF9hcnJheSgmYnl0ZXMpCiAgICB9CgogICAgcHViIGZuIHB1dF91dGY4X3JhdygmbXV0IHNlbGYsIHRleHQ6ICZzdHIpIC0+IGJvb2wgewogICAgICAgIHNlbGYucHV0X3U4X2FycmF5KHRleHQuYXNfYnl0ZXMoKSkKICAgIH0KfQo="},{"path":"streamer/src/convert.rs","sha256":"9e0f82a4181b4ae556fd43cddc55f7f5a28027e83153395f26d5ab68944cb32c","contentBase64":"dXNlIGNvbW1vbjo6ewogICAgYXBpX2JpbmRpbmdzOjp7UnRjSWNlU2VydmVyLCBSdGNTZHBUeXBlfSwKICAgIGNvbmZpZzo6e1dlYlJ0Y05hdDFUbzFJY2VDYW5kaWRhdGVUeXBlLCBXZWJSdGNOZXR3b3JrVHlwZX0sCn07CnVzZSB3ZWJydGM6OnsKICAgIGljZTo6bmV0d29ya190eXBlOjpOZXR3b3JrVHlwZSwKICAgIGljZV90cmFuc3BvcnQ6OntpY2VfY2FuZGlkYXRlX3R5cGU6OlJUQ0ljZUNhbmRpZGF0ZVR5cGUsIGljZV9zZXJ2ZXI6OlJUQ0ljZVNlcnZlcn0sCiAgICBwZWVyX2Nvbm5lY3Rpb246OnNkcDo6c2RwX3R5cGU6OlJUQ1NkcFR5cGUsCn07CgpwdWIgZm4gZnJvbV93ZWJydGNfc2RwKHZhbHVlOiBSVENTZHBUeXBlKSAtPiBSdGNTZHBUeXBlIHsKICAgIG1hdGNoIHZhbHVlIHsKICAgICAgICBSVENTZHBUeXBlOjpPZmZlciA9PiBSdGNTZHBUeXBlOjpPZmZlciwKICAgICAgICBSVENTZHBUeXBlOjpBbnN3ZXIgPT4gUnRjU2RwVHlwZTo6QW5zd2VyLAogICAgICAgIFJUQ1NkcFR5cGU6OlByYW5zd2VyID0+IFJ0Y1NkcFR5cGU6OlByYW5zd2VyLAogICAgICAgIFJUQ1NkcFR5cGU6OlJvbGxiYWNrID0+IFJ0Y1NkcFR5cGU6OlJvbGxiYWNrLAogICAgICAgIFJUQ1NkcFR5cGU6OlVuc3BlY2lmaWVkID0+IFJ0Y1NkcFR5cGU6OlVuc3BlY2lmaWVkLAogICAgfQp9CgpwdWIgZm4gaW50b193ZWJydGNfaWNlKHZhbHVlOiBSdGNJY2VTZXJ2ZXIpIC0+IFJUQ0ljZVNlcnZlciB7CiAgICBSVENJY2VTZXJ2ZXIgewogICAgICAgIHVybHM6IHZhbHVlLnVybHMsCiAgICAgICAgdXNlcm5hbWU6IHZhbHVlLnVzZXJuYW1lLAogICAgICAgIGNyZWRlbnRpYWw6IHZhbHVlLmNyZWRlbnRpYWwsCiAgICB9Cn0KCnB1YiBmbiBpbnRvX3dlYnJ0Y19pY2VfY2FuZGlkYXRlKHZhbHVlOiBXZWJSdGNOYXQxVG8xSWNlQ2FuZGlkYXRlVHlwZSkgLT4gUlRDSWNlQ2FuZGlkYXRlVHlwZSB7CiAgICBtYXRjaCB2YWx1ZSB7CiAgICAgICAgV2ViUnRjTmF0MVRvMUljZUNhbmRpZGF0ZVR5cGU6Okhvc3QgPT4gUlRDSWNlQ2FuZGlkYXRlVHlwZTo6SG9zdCwKICAgICAgICBXZWJSdGNOYXQxVG8xSWNlQ2FuZGlkYXRlVHlwZTo6U3JmbHggPT4gUlRDSWNlQ2FuZGlkYXRlVHlwZTo6U3JmbHgsCiAgICB9Cn0KCnB1YiBmbiBpbnRvX3dlYnJ0Y19uZXR3b3JrX3R5cGUodmFsdWU6IFdlYlJ0Y05ldHdvcmtUeXBlKSAtPiBOZXR3b3JrVHlwZSB7CiAgICBtYXRjaCB2YWx1ZSB7CiAgICAgICAgV2ViUnRjTmV0d29ya1R5cGU6OlVkcDQgPT4gTmV0d29ya1R5cGU6OlVkcDQsCiAgICAgICAgV2ViUnRjTmV0d29ya1R5cGU6OlVkcDYgPT4gTmV0d29ya1R5cGU6OlVkcDYsCiAgICAgICAgV2ViUnRjTmV0d29ya1R5cGU6OlRjcDQgPT4gTmV0d29ya1R5cGU6OlRjcDQsCiAgICAgICAgV2ViUnRjTmV0d29ya1R5cGU6OlRjcDYgPT4gTmV0d29ya1R5cGU6OlRjcDYsCiAgICB9Cn0K"},{"path":"streamer/src/dynamic_ice_servers.rs","sha256":"96f2011a62f9d58857241917d5acf86a5e2b72ef15f9e2bfb85fef09dc279faf","contentBase64":"dXNlIGNvbW1vbjo6e2FwaV9iaW5kaW5nczo6UnRjSWNlU2VydmVyLCBjb25maWc6OldlYlJ0Y0NvbmZpZ307CnVzZSBsb2c6OmVycm9yOwp1c2UgdG9raW86OnByb2Nlc3M6OkNvbW1hbmQ7CnVzZSB0cmFjaW5nOjpkZWJ1ZzsKCnB1YiBhc3luYyBmbiBsb2FkX2R5bmFtaWNfaWNlX3NlcnZlcnMoY29uZmlnOiAmV2ViUnRjQ29uZmlnKSAtPiBWZWM8UnRjSWNlU2VydmVyPiB7CiAgICBsZXQgU29tZShzY3JpcHRfY29tbWFuZCkgPSBjb25maWcuaWNlX3NlcnZlcl9zY3JpcHQuYXNfcmVmKCkgZWxzZSB7CiAgICAgICAgZGVidWchKCJObyBXZWJSVEMgaWNlIHNlcnZlciBzY3JpcHQgZm91bmQiKTsKICAgICAgICByZXR1cm4gdmVjIVtdOwogICAgfTsKCiAgICBkZWJ1ZyEoc2NyaXB0ID0gc2NyaXB0X2NvbW1hbmQsICJSdW5uaW5nIFdlYlJUQyBpY2Ugc2VydmVyIHNjcmlwdCIpOwoKICAgIGxldCBtdXQgc2NyaXB0ID0gQ29tbWFuZDo6bmV3KHNjcmlwdF9jb21tYW5kKTsKCiAgICBsZXQgb3V0cHV0ID0gbWF0Y2ggc2NyaXB0Lm91dHB1dCgpLmF3YWl0IHsKICAgICAgICBPayh2YWx1ZSkgPT4gdmFsdWUsCiAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICBlcnJvciEoIkZhaWxlZCB0byBydW4gV2ViUlRDIGljZSBzZXJ2ZXIgc2NyaXB0OiB7ZXJyfSIpOwogICAgICAgICAgICByZXR1cm4gdmVjIVtdOwogICAgICAgIH0KICAgIH07CgogICAgaWYgIW1hdGNoZXMhKG91dHB1dC5zdGF0dXMuY29kZSgpLCBOb25lIHwgU29tZSgwKSkgewogICAgICAgIGVycm9yISgKICAgICAgICAgICAgIldlYlJUQyBpY2Ugc2VydmVyIHNjcmlwdCBoYXMgYSBub24gemVybyBleGl0IGNvZGU6IHt9IiwKICAgICAgICAgICAgb3V0cHV0LnN0YXR1cwogICAgICAgICk7CgogICAgICAgIGlmIGxldCBPayhlcnJvcikgPSBTdHJpbmc6OmZyb21fdXRmOChvdXRwdXQuc3Rkb3V0KSB7CiAgICAgICAgICAgIGVycm9yISgiV2ViUlRDIGljZSBzZXJ2ZXIgc2NyaXB0IGVycm9yOlxue2Vycm9yfSIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdmVjIVtdOwogICAgfQoKICAgIGxldCBqc29uOiBWZWM8UnRjSWNlU2VydmVyPiA9IG1hdGNoIHNlcmRlX2pzb246OmZyb21fc2xpY2UoJm91dHB1dC5zdGRvdXQpIHsKICAgICAgICBPayh2YWx1ZSkgPT4gdmFsdWUsCiAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICBlcnJvciEoIkZhaWxlZCB0byBkZXNlcmlhbGl6ZSBXZWJSVEMgaWNlIHNlcnZlciBzY3JpcHQgb3V0cHV0OiB7ZXJyfSIpOwogICAgICAgICAgICByZXR1cm4gdmVjIVtdOwogICAgICAgIH0KICAgIH07CgogICAganNvbgp9Cg=="},{"path":"streamer/src/main.rs","sha256":"174ddab5070837db0b72026d12f4cf468d844724de3be791f92dae6cb622a7b6","contentBase64":"IyFbZmVhdHVyZShhc3luY19mbl90cmFpdHMpXQoKdXNlIHN0ZDo6ewogICAgaW8sIHBhbmljLAogICAgcHJvY2Vzczo6ZXhpdCwKICAgIHN5bmM6OnsKICAgICAgICBBcmMsIFdlYWssCiAgICAgICAgYXRvbWljOjp7QXRvbWljQm9vbCwgT3JkZXJpbmd9LAogICAgfSwKICAgIHRpbWU6OntEdXJhdGlvbiwgSW5zdGFudH0sCn07Cgp1c2UgY29tbW9uOjp7CiAgICBhcGlfYmluZGluZ3M6OnsKICAgICAgICBHZW5lcmFsQ2xpZW50TWVzc2FnZSwgR2VuZXJhbFNlcnZlck1lc3NhZ2UsIExvZ01lc3NhZ2VUeXBlLCBTdHJlYW1DbGllbnRNZXNzYWdlLAogICAgICAgIFN0cmVhbVBlcm1pc3Npb25zLCBTdHJlYW1TZXR0aW5ncywgVHJhbnNwb3J0VHlwZSwKICAgIH0sCiAgICBhcHBseV9wZXJtaXNzaW9uc190b19zZXR0aW5ncywKICAgIGlwYzo6ewogICAgICAgIElwY1JlY2VpdmVyLCBJcGNTZW5kZXIsIFNlcnZlcklwY01lc3NhZ2UsIFN0cmVhbWVyQ29uZmlnLCBTdHJlYW1lcklwY01lc3NhZ2UsCiAgICAgICAgY3JlYXRlX3Byb2Nlc3NfaXBjLAogICAgfSwKfTsKdXNlIG1vb25saWdodF9jb21tb246OnsKICAgIE1vb25saWdodEVycm9yLAogICAgY3J5cHRvOjpvcGVuc3NsOjpPcGVuU1NMQ3J5cHRvQmFja2VuZCwKICAgIGhpZ2g6OntNb29ubGlnaHRDbGllbnRFcnJvciwgU3RyZWFtQ29uZmlnRXJyb3IsIHRva2lvOjpNb29ubGlnaHRIb3N0fSwKICAgIGh0dHA6OnsKICAgICAgICBDbGllbnRJZGVudGlmaWVyLCBDbGllbnRTZWNyZXQsIFNlcnZlcklkZW50aWZpZXIsIGNsaWVudDo6dG9raW9faHlwZXI6OlRva2lvSHlwZXJDbGllbnQsCiAgICB9LAogICAgc3RyZWFtOjp7CiAgICAgICAgQWVzSXYsIEFlc0tleSwgRW5jcnlwdGlvbkZsYWdzLCBIb3N0RmVhdHVyZXMsIE1vb25saWdodFN0cmVhbVNldHRpbmdzLCBTdHJlYW1pbmdDb25maWcsCiAgICAgICAgYXVkaW86OntBdWRpb0NvbmZpZywgT3B1c011bHRpc3RyZWFtQ29uZmlnfSwKICAgICAgICBjOjp7CiAgICAgICAgICAgIE1vb25saWdodEluc3RhbmNlLCBNb29ubGlnaHRTdHJlYW0sCiAgICAgICAgICAgIGJpbmRpbmdzOjp7Q29ubmVjdGlvblN0YXR1cywgU3RhZ2V9LAogICAgICAgICAgICBjb25uZWN0aW9uOjpDb25uZWN0aW9uTGlzdGVuZXJDLAogICAgICAgIH0sCiAgICAgICAgY29ubmVjdGlvbjo6Q29ubmVjdGlvbkxpc3RlbmVyLAogICAgICAgIGNvbnRyb2w6OntBY3RpdmVHYW1lcGFkcywgQ29udHJvbGxlckJ1dHRvbnN9LAogICAgICAgIHZpZGVvOjp7CiAgICAgICAgICAgIENvbG9yUmFuZ2UsIENvbG9yU3BhY2UsIFN1bnNoaW5lSGRyTWV0YWRhdGEsIFZpZGVvRm9ybWF0LCBWaWRlb0Zvcm1hdHMsIFZpZGVvU2V0dXAsCiAgICAgICAgfSwKICAgIH0sCn07CnVzZSB0b2tpbzo6ewogICAgaW86OntzdGRpbiwgc3Rkb3V0fSwKICAgIHJ1bnRpbWU6OkhhbmRsZSwKICAgIHNwYXduLAogICAgc3luYzo6e011dGV4LCBOb3RpZnksIFJ3TG9ja30sCiAgICB0YXNrOjpzcGF3bl9ibG9ja2luZywKICAgIHRpbWU6OnNsZWVwLAp9Owp1c2UgdHJhY2luZzo6e0xldmVsLCBsZXZlbF9maWx0ZXJzOjpMZXZlbEZpbHRlciwgc3Bhbn07CnVzZSB0cmFjaW5nOjp7ZGVidWcsIGVycm9yLCBpbmZvLCB0cmFjZSwgd2Fybn07Cgp1c2UgY29tbW9uOjphcGlfYmluZGluZ3M6OntTdHJlYW1DYXBhYmlsaXRpZXMsIFN0cmVhbVNlcnZlck1lc3NhZ2V9Owp1c2UgdHJhY2luZ19zdWJzY3JpYmVyOjp7RW52RmlsdGVyLCBSZWdpc3RyeSwgZm10LCBsYXllcjo6U3Vic2NyaWJlckV4dCwgdXRpbDo6U3Vic2NyaWJlckluaXRFeHR9OwoKdXNlIGNyYXRlOjp7CiAgICBhdWRpbzo6U3RyZWFtQXVkaW9EZWNvZGVyLAogICAgZHluYW1pY19pY2Vfc2VydmVyczo6bG9hZF9keW5hbWljX2ljZV9zZXJ2ZXJzLAogICAgdHJhbnNwb3J0Ojp7CiAgICAgICAgSW5ib3VuZFBhY2tldCwgT3V0Ym91bmRQYWNrZXQsIFRyYW5zcG9ydEVycm9yLCBUcmFuc3BvcnRFdmVudCwgVHJhbnNwb3J0RXZlbnRzLAogICAgICAgIFRyYW5zcG9ydFNlbmRlciwgd2ViX3NvY2tldCwKICAgICAgICB3ZWJydGM6OntzZWxmfSwKICAgIH0sCiAgICB2aWRlbzo6U3RyZWFtVmlkZW9EZWNvZGVyLAp9OwoKcHViIHR5cGUgUmVxdWVzdENsaWVudCA9IFRva2lvSHlwZXJDbGllbnQ7CgpwdWIgY29uc3QgVElNRU9VVF9EVVJBVElPTjogRHVyYXRpb24gPSBEdXJhdGlvbjo6ZnJvbV9zZWNzKDEwKTsKCm1vZCBhdWRpbzsKbW9kIGJ1ZmZlcjsKbW9kIGNvbnZlcnQ7Cm1vZCBkeW5hbWljX2ljZV9zZXJ2ZXJzOwptb2QgdHJhbnNwb3J0Owptb2QgdmlkZW87CgojW3Rva2lvOjptYWluXQphc3luYyBmbiBtYWluKCkgewogICAgbGV0IGRlZmF1bHRfcGFuaWMgPSBwYW5pYzo6dGFrZV9ob29rKCk7CiAgICBwYW5pYzo6c2V0X2hvb2soQm94OjpuZXcobW92ZSB8aW5mb3wgewogICAgICAgIGRlZmF1bHRfcGFuaWMoaW5mbyk7CiAgICAgICAgZXhpdCgwKTsKICAgIH0pKTsKCiAgICAvLyBBdCB0aGlzIHBvaW50IHdlJ3JlIGF1dGhlbnRpY2F0ZWQKICAgIGxldCBzcGFuID0gc3BhbiEoTGV2ZWw6OlRSQUNFLCAiaXBjIik7CiAgICBsZXQgKG11dCBpcGNfc2VuZGVyLCBtdXQgaXBjX3JlY2VpdmVyKSA9CiAgICAgICAgY3JlYXRlX3Byb2Nlc3NfaXBjOjo8U2VydmVySXBjTWVzc2FnZSwgU3RyZWFtZXJJcGNNZXNzYWdlPihzcGFuLCBzdGRpbigpLCBzdGRvdXQoKSkuYXdhaXQ7CgogICAgLy8gU2VuZCBzdGFnZQogICAgaXBjX3NlbmRlcgogICAgICAgIC5zZW5kKFN0cmVhbWVySXBjTWVzc2FnZTo6V2ViU29ja2V0KAogICAgICAgICAgICBTdHJlYW1TZXJ2ZXJNZXNzYWdlOjpEZWJ1Z0xvZyB7CiAgICAgICAgICAgICAgICBtZXNzYWdlOiAiQ29tcGxldGVkIFN0YWdlOiBMYXVuY2ggU3RyZWFtZXIiLnRvX3N0cmluZygpLAogICAgICAgICAgICAgICAgdHk6IE5vbmUsCiAgICAgICAgICAgIH0sCiAgICAgICAgKSkKICAgICAgICAuYXdhaXQ7CgogICAgbGV0ICgKICAgICAgICBtdXQgY29uZmlnLAogICAgICAgIGhvc3RfYWRkcmVzcywKICAgICAgICBob3N0X2h0dHBfcG9ydCwKICAgICAgICBjbGllbnRfdW5pcXVlX2lkLAogICAgICAgIGNsaWVudF9wcml2YXRlX2tleSwKICAgICAgICBjbGllbnRfY2VydGlmaWNhdGUsCiAgICAgICAgc2VydmVyX2NlcnRpZmljYXRlLAogICAgICAgIGFwcF9pZCwKICAgICAgICB2aWRlb19mcmFtZV9xdWV1ZV9zaXplLAogICAgICAgIGF1ZGlvX3NhbXBsZV9xdWV1ZV9zaXplLAogICAgICAgIHBlcm1pc3Npb25zLAogICAgKSA9IGxvb3AgewogICAgICAgIG1hdGNoIGlwY19yZWNlaXZlci5yZWN2KCkuYXdhaXQgewogICAgICAgICAgICBTb21lKFNlcnZlcklwY01lc3NhZ2U6OkluaXQgewogICAgICAgICAgICAgICAgY29uZmlnLAogICAgICAgICAgICAgICAgaG9zdF9hZGRyZXNzLAogICAgICAgICAgICAgICAgaG9zdF9odHRwX3BvcnQsCiAgICAgICAgICAgICAgICBjbGllbnRfdW5pcXVlX2lkLAogICAgICAgICAgICAgICAgY2xpZW50X3ByaXZhdGVfa2V5LAogICAgICAgICAgICAgICAgY2xpZW50X2NlcnRpZmljYXRlLAogICAgICAgICAgICAgICAgc2VydmVyX2NlcnRpZmljYXRlLAogICAgICAgICAgICAgICAgYXBwX2lkLAogICAgICAgICAgICAgICAgdmlkZW9fZnJhbWVfcXVldWVfc2l6ZSwKICAgICAgICAgICAgICAgIGF1ZGlvX3NhbXBsZV9xdWV1ZV9zaXplLAogICAgICAgICAgICAgICAgcGVybWlzc2lvbnMsCiAgICAgICAgICAgIH0pID0+IHsKICAgICAgICAgICAgICAgIGJyZWFrICgKICAgICAgICAgICAgICAgICAgICBjb25maWcsCiAgICAgICAgICAgICAgICAgICAgaG9zdF9hZGRyZXNzLAogICAgICAgICAgICAgICAgICAgIGhvc3RfaHR0cF9wb3J0LAogICAgICAgICAgICAgICAgICAgIGNsaWVudF91bmlxdWVfaWQsCiAgICAgICAgICAgICAgICAgICAgY2xpZW50X3ByaXZhdGVfa2V5LAogICAgICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0aWZpY2F0ZSwKICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfY2VydGlmaWNhdGUsCiAgICAgICAgICAgICAgICAgICAgYXBwX2lkLAogICAgICAgICAgICAgICAgICAgIHZpZGVvX2ZyYW1lX3F1ZXVlX3NpemUsCiAgICAgICAgICAgICAgICAgICAgYXVkaW9fc2FtcGxlX3F1ZXVlX3NpemUsCiAgICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnMsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIF8gPT4gY29udGludWUsCiAgICAgICAgfQogICAgfTsKCiAgICAvLyAtLSBJbml0IGxvZ2dlcgogICAgbGV0IGNvbmZpZ19sZXZlbF9maWx0ZXIgPSBtYXRjaCBjb25maWcubG9nX2xldmVsIHsKICAgICAgICBsb2c6OkxldmVsRmlsdGVyOjpPZmYgPT4gTGV2ZWxGaWx0ZXI6Ok9GRiwKICAgICAgICBsb2c6OkxldmVsRmlsdGVyOjpFcnJvciA9PiBMZXZlbEZpbHRlcjo6RVJST1IsCiAgICAgICAgbG9nOjpMZXZlbEZpbHRlcjo6SW5mbyA9PiBMZXZlbEZpbHRlcjo6SU5GTywKICAgICAgICBsb2c6OkxldmVsRmlsdGVyOjpXYXJuID0+IExldmVsRmlsdGVyOjpXQVJOLAogICAgICAgIGxvZzo6TGV2ZWxGaWx0ZXI6OkRlYnVnID0+IExldmVsRmlsdGVyOjpERUJVRywKICAgICAgICBsb2c6OkxldmVsRmlsdGVyOjpUcmFjZSA9PiBMZXZlbEZpbHRlcjo6VFJBQ0UsCiAgICB9OwoKICAgIGxldCBlbnZfZmlsdGVyID0gRW52RmlsdGVyOjpidWlsZGVyKCkKICAgICAgICAud2l0aF9kZWZhdWx0X2RpcmVjdGl2ZShjb25maWdfbGV2ZWxfZmlsdGVyLmludG8oKSkKICAgICAgICAuZnJvbV9lbnZfbG9zc3koKQogICAgICAgIC5hZGRfZGlyZWN0aXZlKAogICAgICAgICAgICAid2VicnRjX3NjdHA9b2ZmIgogICAgICAgICAgICAgICAgLnBhcnNlKCkKICAgICAgICAgICAgICAgIC5leHBlY3QoImZhaWxlZCB0byBwYXJzZSB3ZWJydGMgZGlyZWN0aXZlIiksCiAgICAgICAgKTsKCiAgICBsZXQgc3RkZXJyX291dHB1dCA9IGZtdDo6bGF5ZXIoKS53aXRoX3dyaXRlcihpbzo6c3RkZXJyKS53aXRoX2Fuc2koZmFsc2UpOwoKICAgIFJlZ2lzdHJ5OjpkZWZhdWx0KCkKICAgICAgICAud2l0aChlbnZfZmlsdGVyKQogICAgICAgIC53aXRoKHN0ZGVycl9vdXRwdXQpCiAgICAgICAgLmluaXQoKTsKCiAgICAvLyBwcmludCBwZXJtaXNzaW9ucwogICAgaW5mbyEoIkdvdCBQZXJtaXNzaW9uczoge3Blcm1pc3Npb25zOj99Iik7CgogICAgLy8gU2VuZCBzdGFnZQogICAgaXBjX3NlbmRlcgogICAgICAgIC5zZW5kKFN0cmVhbWVySXBjTWVzc2FnZTo6V2ViU29ja2V0KAogICAgICAgICAgICBTdHJlYW1TZXJ2ZXJNZXNzYWdlOjpEZWJ1Z0xvZyB7CiAgICAgICAgICAgICAgICBtZXNzYWdlOiAiV2FpdGluZyBmb3IgVHJhbnNwb3J0IHRvIG5lZ290aWF0ZSIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICB0eTogTm9uZSwKICAgICAgICAgICAgfSwKICAgICAgICApKQogICAgICAgIC5hd2FpdDsKCiAgICAvLyAtLSBDcmVhdGUgdGhlIGhvc3QgYW5kIHBhaXIgaXQKICAgIGxldCBob3N0ID0gTW9vbmxpZ2h0SG9zdDo6bmV3KGhvc3RfYWRkcmVzcywgaG9zdF9odHRwX3BvcnQsIGNsaWVudF91bmlxdWVfaWQpCiAgICAgICAgLmV4cGVjdCgiZmFpbGVkIHRvIGNyZWF0ZSBob3N0Iik7CgogICAgaG9zdC5zZXRfaWRlbnRpdHkoCiAgICAgICAgQ2xpZW50SWRlbnRpZmllcjo6ZnJvbV9wZW0oY2xpZW50X2NlcnRpZmljYXRlKSwKICAgICAgICBDbGllbnRTZWNyZXQ6OmZyb21fcGVtKGNsaWVudF9wcml2YXRlX2tleSksCiAgICAgICAgU2VydmVySWRlbnRpZmllcjo6ZnJvbV9wZW0oc2VydmVyX2NlcnRpZmljYXRlKSwKICAgICkKICAgIC5hd2FpdAogICAgLmV4cGVjdCgiZmFpbGVkIHRvIHNldCBwYWlyaW5nIGluZm8iKTsKCiAgICAvLyAtLSBDb25maWd1cmUgbW9vbmxpZ2h0CiAgICBsZXQgbW9vbmxpZ2h0ID0gTW9vbmxpZ2h0SW5zdGFuY2U6Omdsb2JhbCgpLmV4cGVjdCgiZmFpbGVkIHRvIGZpbmQgbW9vbmxpZ2h0Iik7CgogICAgLy8gTG9hZCBkeW5hbWljIGljZSBzZXJ2ZXJzIGFuZCBhcHBlbmQgdGhlbSB0byB0aGUgY3VycmVudCBpY2Ugc2VydmVycwogICAgbGV0IGR5bmFtaWNfaWNlX3NlcnZlcnMgPSBsb2FkX2R5bmFtaWNfaWNlX3NlcnZlcnMoJmNvbmZpZy53ZWJydGMpLmF3YWl0OwogICAgY29uZmlnCiAgICAgICAgLndlYnJ0YwogICAgICAgIC5pY2Vfc2VydmVycwogICAgICAgIC5leHRlbmRfZnJvbV9zbGljZSgmZHluYW1pY19pY2Vfc2VydmVycyk7CgogICAgLy8gLS0gQ3JlYXRlIGFuZCBDb25maWd1cmUgUGVlcgogICAgbGV0IGljZV9zZXJ2ZXJzID0gY29uZmlnLndlYnJ0Yy5pY2Vfc2VydmVycy5jbG9uZSgpOwoKICAgIGxldCBjb25uZWN0aW9uID0gU3RyZWFtQ29ubmVjdGlvbjo6bmV3KAogICAgICAgIG1vb25saWdodCwKICAgICAgICBTdHJlYW1JbmZvIHsgaG9zdCwgYXBwX2lkIH0sCiAgICAgICAgaXBjX3NlbmRlci5jbG9uZSgpLAogICAgICAgIGlwY19yZWNlaXZlciwKICAgICAgICBjb25maWcsCiAgICAgICAgdmlkZW9fZnJhbWVfcXVldWVfc2l6ZSwKICAgICAgICBhdWRpb19zYW1wbGVfcXVldWVfc2l6ZSwKICAgICAgICBwZXJtaXNzaW9ucywKICAgICkKICAgIC5hd2FpdAogICAgLmV4cGVjdCgiZmFpbGVkIHRvIGNyZWF0ZSBjb25uZWN0aW9uIik7CgogICAgLy8gU2VuZCBJbmZvIGZvciBzdHJlYW1lcgogICAgaXBjX3NlbmRlcgogICAgICAgIC5zZW5kKFN0cmVhbWVySXBjTWVzc2FnZTo6V2ViU29ja2V0KFN0cmVhbVNlcnZlck1lc3NhZ2U6OlNldHVwIHsKICAgICAgICAgICAgaWNlX3NlcnZlcnMsCiAgICAgICAgfSkpCiAgICAgICAgLmF3YWl0OwoKICAgIC8vIFdhaXQgZm9yIHRlcm1pbmF0aW9uCiAgICBjb25uZWN0aW9uLnRlcm1pbmF0ZS5ub3RpZmllZCgpLmF3YWl0OwoKICAgIC8vIFdhaXQgZm9yIGV2ZXJ5dGhpbmcgdG8gc2h1dGRvd24gKGUuZy4gTW9vbmxpZ2h0IENsaWVudCwgSVBDIG1lc3NhZ2VzKQogICAgc2xlZXAoRHVyYXRpb246OmZyb21fc2VjcygxMCkpLmF3YWl0OwoKICAgIGluZm8hKCJUZXJtaW5hdGluZyBTZWxmIik7CiAgICAvLyBFeGl0IHN0cmVhbWVyCiAgICBleGl0KDApOwp9CgpzdHJ1Y3QgU3RyZWFtSW5mbyB7CiAgICBob3N0OiBNb29ubGlnaHRIb3N0PFJlcXVlc3RDbGllbnQ+LAogICAgYXBwX2lkOiB1MzIsCn0KCnN0cnVjdCBTdHJlYW1TZXR1cCB7CiAgICB2aWRlbzogT3B0aW9uPFZpZGVvU2V0dXA+LAogICAgYXVkaW86IE9wdGlvbjxPcHVzTXVsdGlzdHJlYW1Db25maWc+LAp9CgpzdHJ1Y3QgU3RyZWFtQ29ubmVjdGlvbiB7CiAgICBwdWIgcnVudGltZTogSGFuZGxlLAogICAgcHViIG1vb25saWdodDogTW9vbmxpZ2h0SW5zdGFuY2UsCiAgICBwdWIgY29uZmlnOiBTdHJlYW1lckNvbmZpZywKICAgIHB1YiBpbmZvOiBTdHJlYW1JbmZvLAogICAgcHViIGlwY19zZW5kZXI6IElwY1NlbmRlcjxTdHJlYW1lcklwY01lc3NhZ2U+LAogICAgcHViIHBlcm1pc3Npb25zOiBTdHJlYW1QZXJtaXNzaW9ucywKICAgIC8vIFZpZGVvCiAgICBwdWIgdmlkZW9fZnJhbWVfcXVldWVfc2l6ZTogdXNpemUsCiAgICBwdWIgYXVkaW9fc2FtcGxlX3F1ZXVlX3NpemU6IHVzaXplLAogICAgcHViIHN0cmVhbV9zZXR1cDogTXV0ZXg8U3RyZWFtU2V0dXA+LAogICAgLy8gU3RyZWFtCiAgICBwdWIgc3RyZWFtOiBSd0xvY2s8T3B0aW9uPE1vb25saWdodFN0cmVhbT4+LAogICAgcHViIGFjdGl2ZV9nYW1lcGFkczogUndMb2NrPEFjdGl2ZUdhbWVwYWRzPiwKICAgIHB1YiB0cmFuc3BvcnRfc2VuZGVyOiBNdXRleDxPcHRpb248Qm94PGR5biBUcmFuc3BvcnRTZW5kZXIgKyBTZW5kICsgU3luYyArICdzdGF0aWM+Pj4sCiAgICAvLyBUaW1lb3V0IC8gVGVybWluYXRlCiAgICBwdWIgdGltZW91dF90ZXJtaW5hdGVfcmVxdWVzdDogTXV0ZXg8T3B0aW9uPEluc3RhbnQ+PiwKICAgIHB1YiB0ZXJtaW5hdGU6IE5vdGlmeSwKICAgIGlzX3Rlcm1pbmF0aW5nOiBBdG9taWNCb29sLAp9CgppbXBsIFN0cmVhbUNvbm5lY3Rpb24gewogICAgcHViIGFzeW5jIGZuIG5ldygKICAgICAgICBtb29ubGlnaHQ6IE1vb25saWdodEluc3RhbmNlLAogICAgICAgIGluZm86IFN0cmVhbUluZm8sCiAgICAgICAgaXBjX3NlbmRlcjogSXBjU2VuZGVyPFN0cmVhbWVySXBjTWVzc2FnZT4sCiAgICAgICAgbXV0IGlwY19yZWNlaXZlcjogSXBjUmVjZWl2ZXI8U2VydmVySXBjTWVzc2FnZT4sCiAgICAgICAgY29uZmlnOiBTdHJlYW1lckNvbmZpZywKICAgICAgICB2aWRlb19mcmFtZV9xdWV1ZV9zaXplOiB1c2l6ZSwKICAgICAgICBhdWRpb19zYW1wbGVfcXVldWVfc2l6ZTogdXNpemUsCiAgICAgICAgcGVybWlzc2lvbnM6IFN0cmVhbVBlcm1pc3Npb25zLAogICAgKSAtPiBSZXN1bHQ8QXJjPFNlbGY+LCBhbnlob3c6OkVycm9yPiB7CiAgICAgICAgbGV0IHRoaXMgPSBBcmM6Om5ldyhTZWxmIHsKICAgICAgICAgICAgcnVudGltZTogSGFuZGxlOjpjdXJyZW50KCksCiAgICAgICAgICAgIG1vb25saWdodCwKICAgICAgICAgICAgY29uZmlnLAogICAgICAgICAgICBpbmZvLAogICAgICAgICAgICBpcGNfc2VuZGVyLAogICAgICAgICAgICBwZXJtaXNzaW9ucywKICAgICAgICAgICAgc3RyZWFtX3NldHVwOiBNdXRleDo6bmV3KFN0cmVhbVNldHVwIHsKICAgICAgICAgICAgICAgIHZpZGVvOiBOb25lLAogICAgICAgICAgICAgICAgYXVkaW86IE5vbmUsCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICB2aWRlb19mcmFtZV9xdWV1ZV9zaXplLAogICAgICAgICAgICBhdWRpb19zYW1wbGVfcXVldWVfc2l6ZSwKICAgICAgICAgICAgc3RyZWFtOiBSd0xvY2s6Om5ldyhOb25lKSwKICAgICAgICAgICAgYWN0aXZlX2dhbWVwYWRzOiBSd0xvY2s6Om5ldyhBY3RpdmVHYW1lcGFkczo6ZW1wdHkoKSksCiAgICAgICAgICAgIHRyYW5zcG9ydF9zZW5kZXI6IE11dGV4OjpuZXcoTm9uZSksCiAgICAgICAgICAgIHRpbWVvdXRfdGVybWluYXRlX3JlcXVlc3Q6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICAgICAgdGVybWluYXRlOiBOb3RpZnk6OmRlZmF1bHQoKSwKICAgICAgICAgICAgaXNfdGVybWluYXRpbmc6IEF0b21pY0Jvb2w6Om5ldyhmYWxzZSksCiAgICAgICAgfSk7CgogICAgICAgIHNwYXduKHsKICAgICAgICAgICAgbGV0IHRoaXMgPSBBcmM6OmRvd25ncmFkZSgmdGhpcyk7CgogICAgICAgICAgICBhc3luYyBtb3ZlIHsKICAgICAgICAgICAgICAgIHdoaWxlIGxldCBTb21lKG1lc3NhZ2UpID0gaXBjX3JlY2VpdmVyLnJlY3YoKS5hd2FpdCB7CiAgICAgICAgICAgICAgICAgICAgbGV0IFNvbWUodGhpcykgPSB0aGlzLnVwZ3JhZGUoKSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGVidWchKCJSZWNlaXZlZCBpcGMgbWVzc2FnZSB3aGlsZSB0aGUgbWFpbiB0eXBlIGlzIGFscmVhZHkgZGVhbGxvY2F0ZWQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgIGlmIGxldCBTZXJ2ZXJJcGNNZXNzYWdlOjpTdG9wID0gJm1lc3NhZ2UgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uX2lwY19tZXNzYWdlKFNlcnZlcklwY01lc3NhZ2U6OlN0b3ApLmF3YWl0OwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB0aGlzLm9uX2lwY19tZXNzYWdlKG1lc3NhZ2UpLmF3YWl0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIE9rKHRoaXMpCiAgICB9CgogICAgYXN5bmMgZm4gc2V0X3RyYW5zcG9ydCgKICAgICAgICBzZWxmOiAmQXJjPFNlbGY+LAogICAgICAgIG5ld19zZW5kZXI6IEJveDxkeW4gVHJhbnNwb3J0U2VuZGVyICsgU2VuZCArIFN5bmMgKyAnc3RhdGljPiwKICAgICAgICBtdXQgZXZlbnRzOiBCb3g8ZHluIFRyYW5zcG9ydEV2ZW50cyArIFNlbmQgKyBTeW5jICsgJ3N0YXRpYz4sCiAgICApIHsKICAgICAgICBsZXQgdGhpcyA9IHNlbGYuY2xvbmUoKTsKCiAgICAgICAgbGV0IG9sZF90cmFuc3BvcnQgPSB7CiAgICAgICAgICAgIGxldCBtdXQgc2VuZGVyID0gdGhpcy50cmFuc3BvcnRfc2VuZGVyLmxvY2soKS5hd2FpdDsKICAgICAgICAgICAgc2VuZGVyLnJlcGxhY2UobmV3X3NlbmRlcikKICAgICAgICB9OwoKICAgICAgICBzcGF3bih7CiAgICAgICAgICAgIGxldCBtdXQgaXBjX3NlbmRlciA9IHRoaXMuaXBjX3NlbmRlci5jbG9uZSgpOwogICAgICAgICAgICBsZXQgdGhpcyA9IEFyYzo6ZG93bmdyYWRlKCZ0aGlzKTsKCiAgICAgICAgICAgIGFzeW5jIG1vdmUgewogICAgICAgICAgICAgICAgbG9vcCB7CiAgICAgICAgICAgICAgICAgICAgdHJhY2UhKCJQb2xsaW5nIG5ldyB0cmFuc3BvcnQgZXZlbnQiKTsKICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBldmVudHMucG9sbF9ldmVudCgpLmF3YWl0OwogICAgICAgICAgICAgICAgICAgIHRyYWNlISgiUG9sbGVkIHRyYW5zcG9ydCBldmVudDoge2V2ZW50Oj99Iik7CgogICAgICAgICAgICAgICAgICAgIG1hdGNoIGV2ZW50IHsKICAgICAgICAgICAgICAgICAgICAgICAgT2soVHJhbnNwb3J0RXZlbnQ6OlNlbmRJcGMobWVzc2FnZSkpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwY19zZW5kZXIuc2VuZChtZXNzYWdlKS5hd2FpdDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBPayhUcmFuc3BvcnRFdmVudDo6U3RhcnRTdHJlYW0geyBzZXR0aW5ncyB9KSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgU29tZSh0aGlzKSA9IHRoaXMudXBncmFkZSgpIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGdldCBzdHJlYW0gY29ubmVjdGlvbiwgc3RvcHBpbmcgbGlzdGVuaW5nIHRvIGV2ZW50cyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRoaXMgPSB0aGlzLmNsb25lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGF3bihhc3luYyBtb3ZlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyX3Rlcm1pbmF0ZV9yZXF1ZXN0KCkuYXdhaXQ7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IHRoaXMuc3RhcnRfc3RyZWFtKHNldHRpbmdzKS5hd2FpdCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yISgiRmFpbGVkIHRvIHN0YXJ0IHN0cmVhbSwgc3RvcHBpbmc6IHtlcnJ9Iik7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3AoKS5hd2FpdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBPayhUcmFuc3BvcnRFdmVudDo6UmVjdlBhY2tldChwYWNrZXQpKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgU29tZSh0aGlzKSA9IHRoaXMudXBncmFkZSgpIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGdldCBzdHJlYW0gY29ubmVjdGlvbiwgc3RvcHBpbmcgbGlzdGVuaW5nIHRvIGV2ZW50cyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbl9wYWNrZXQocGFja2V0KS5hd2FpdDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFcnIoVHJhbnNwb3J0RXJyb3I6OkNsb3NlZCkgfCBPayhUcmFuc3BvcnRFdmVudDo6Q2xvc2VkKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgU29tZSh0aGlzKSA9IHRoaXMudXBncmFkZSgpIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHJlcXVlc3Qgc2Vzc2lvbiB0ZXJtaW5hdGlvbiBiZWNhdXNlIG9mIG1pc3Npbmcgc3RyZWFtIChtYXliZSBpdCB3YXMgYWxyZWFkeSB0ZXJtaW5hdGVkKSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0X3Rlcm1pbmF0ZSgpLmF3YWl0OwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEl0IHdvdWxkbid0IG1ha2Ugc2Vuc2UgdG8gcmV0dXJuIHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgRXJyKFRyYW5zcG9ydEVycm9yOjpDaGFubmVsQ2xvc2VkKSA9PiB1bnJlYWNoYWJsZSEoKSwKICAgICAgICAgICAgICAgICAgICAgICAgRXJyKFRyYW5zcG9ydEVycm9yOjpJbXBsZW1lbnRhdGlvbihlcnIpKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgU29tZSh0aGlzKSA9IHRoaXMudXBncmFkZSgpIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGdldCBzdHJlYW0gY29ubmVjdGlvbiwgc3RvcHBpbmcgbGlzdGVuaW5nIHRvIGV2ZW50cyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mbyEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN0b3BwaW5nIHN0cmVhbSBiZWNhdXNlIG9mIHRyYW5zcG9ydCBpbXBsZW1lbnRhdGlvbiBlcnJvcjoge2Vycn0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcCgpLmF3YWl0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgaWYgbGV0IFNvbWUob2xkX3RyYW5zcG9ydCkgPSBvbGRfdHJhbnNwb3J0IHsKICAgICAgICAgICAgc3Bhd24oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBvbGRfdHJhbnNwb3J0LmNsb3NlKCkuYXdhaXQgewogICAgICAgICAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gY2xvc2Ugb2xkIHRyYW5zcG9ydDoge2Vycjo/fSIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9CiAgICBhc3luYyBmbiB0cnlfc2VuZF9wYWNrZXQoJnNlbGYsIHBhY2tldDogT3V0Ym91bmRQYWNrZXQsIHBhY2tldF90eTogJnN0ciwgc2hvdWxkX3dhcm46IGJvb2wpIHsKICAgICAgICBsZXQgbXV0IHNlbmRlciA9IHNlbGYudHJhbnNwb3J0X3NlbmRlci5sb2NrKCkuYXdhaXQ7CgogICAgICAgIGlmIGxldCBTb21lKHNlbmRlcikgPSBzZW5kZXIuYXNfbXV0KCkgewogICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBzZW5kZXIuc2VuZChwYWNrZXQpLmF3YWl0IHsKICAgICAgICAgICAgICAgIGlmIHNob3VsZF93YXJuIHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgb3V0Ym91bmQgcGFja2V0OiB7cGFja2V0X3R5fSwge2Vycjo/fSIpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBkZWJ1ZyEoIkZhaWxlZCB0byBzZW5kIG91dGJvdW5kIHBhY2tldDoge3BhY2tldF90eX0sIHtlcnI6P30iKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGRlYnVnISgiRHJvcHBpbmcgcGFja2V0IHtwYWNrZXQ6P30gYmVjYXVzZSBubyB0cmFuc3BvcnQgaXMgc2VsZWN0ZWQhIik7CiAgICAgICAgfQogICAgfQoKICAgIGFzeW5jIGZuIG9uX3BhY2tldCgmc2VsZiwgcGFja2V0OiBJbmJvdW5kUGFja2V0KSB7CiAgICAgICAgdHJhY2UhKHBhY2tldCA9ID9wYWNrZXQsICJyZWNlaXZlZCBwYWNrZXQgZnJvbSBjbGllbnQiKTsKCiAgICAgICAgbGV0IHN0cmVhbV9sb2NrID0gc2VsZi5zdHJlYW0ucmVhZCgpLmF3YWl0OwogICAgICAgIGxldCBTb21lKHN0cmVhbSkgPSBzdHJlYW1fbG9jay5hc19yZWYoKSBlbHNlIHsKICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBzZW5kIHBhY2tldCB7cGFja2V0Oj99IGJlY2F1c2Ugb2YgbWlzc2luZyBzdHJlYW0iKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH07CgogICAgICAgIGxldCBlcnIgPSBtYXRjaCBwYWNrZXQgewogICAgICAgICAgICBJbmJvdW5kUGFja2V0OjpHZW5lcmFsIHsgbWVzc2FnZSB9ID0+IHsKICAgICAgICAgICAgICAgIGRlYnVnISgiR2VuZXJhbCBtZXNzYWdlOiB7bWVzc2FnZTo/fSIpOwoKICAgICAgICAgICAgICAgIC8vIGN1cnJlbnRseSB0aGVyZSBhcmUgbm8gcGFja2V0cyBhc3NvY2lhdGVkIHdpdGggdGhhdAogICAgICAgICAgICAgICAgbWF0Y2ggbWVzc2FnZSB7CiAgICAgICAgICAgICAgICAgICAgR2VuZXJhbENsaWVudE1lc3NhZ2U6OlN0b3AgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyEoIlJlY2VpdmVkIHN0b3AgZnJvbSBjbGllbnQuIFN0b3BwaW5nIHN0cmVhbSBub3chIik7CgogICAgICAgICAgICAgICAgICAgICAgICBkcm9wKHN0cmVhbV9sb2NrKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RvcCgpLmF3YWl0OwoKICAgICAgICAgICAgICAgICAgICAgICAgTm9uZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBJbmJvdW5kUGFja2V0OjpNb3VzZVBvc2l0aW9uIHsKICAgICAgICAgICAgICAgIHgsCiAgICAgICAgICAgICAgICB5LAogICAgICAgICAgICAgICAgcmVmZXJlbmNlX3dpZHRoLAogICAgICAgICAgICAgICAgcmVmZXJlbmNlX2hlaWdodCwKICAgICAgICAgICAgfSA9PiBzdHJlYW0KICAgICAgICAgICAgICAgIC5zZW5kX21vdXNlX3Bvc2l0aW9uKHgsIHksIHJlZmVyZW5jZV93aWR0aCwgcmVmZXJlbmNlX2hlaWdodCkKICAgICAgICAgICAgICAgIC5lcnIoKSwKICAgICAgICAgICAgSW5ib3VuZFBhY2tldDo6TW91c2VCdXR0b24geyBhY3Rpb24sIGJ1dHRvbiB9ID0+IHsKICAgICAgICAgICAgICAgIHN0cmVhbS5zZW5kX21vdXNlX2J1dHRvbihhY3Rpb24sIGJ1dHRvbikuZXJyKCkKICAgICAgICAgICAgfQogICAgICAgICAgICBJbmJvdW5kUGFja2V0OjpNb3VzZU1vdmUgeyBkZWx0YV94LCBkZWx0YV95IH0gPT4gewogICAgICAgICAgICAgICAgc3RyZWFtLnNlbmRfbW91c2VfbW92ZShkZWx0YV94LCBkZWx0YV95KS5lcnIoKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEluYm91bmRQYWNrZXQ6OkhpZ2hSZXNTY3JvbGwgeyBkZWx0YV94LCBkZWx0YV95IH0gPT4gewogICAgICAgICAgICAgICAgbGV0IG11dCBlcnIgPSBOb25lOwogICAgICAgICAgICAgICAgaWYgZGVsdGFfeSAhPSAwIHsKICAgICAgICAgICAgICAgICAgICBlcnIgPSBzdHJlYW0uc2VuZF9oaWdoX3Jlc19zY3JvbGwoZGVsdGFfeSkuZXJyKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIGRlbHRhX3ggIT0gMCB7CiAgICAgICAgICAgICAgICAgICAgZXJyID0gc3RyZWFtLnNlbmRfaGlnaF9yZXNfaG9yaXpvbnRhbF9zY3JvbGwoZGVsdGFfeCkuZXJyKCkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVycgogICAgICAgICAgICB9CiAgICAgICAgICAgIEluYm91bmRQYWNrZXQ6OlNjcm9sbCB7IGRlbHRhX3gsIGRlbHRhX3kgfSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgbXV0IGVyciA9IE5vbmU7CiAgICAgICAgICAgICAgICBpZiBkZWx0YV95ICE9IDAgewogICAgICAgICAgICAgICAgICAgIGVyciA9IHN0cmVhbS5zZW5kX3Njcm9sbChkZWx0YV95KS5lcnIoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIGRlbHRhX3ggIT0gMCB7CiAgICAgICAgICAgICAgICAgICAgZXJyID0gc3RyZWFtLnNlbmRfaG9yaXpvbnRhbF9zY3JvbGwoZGVsdGFfeCkuZXJyKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlcnIKICAgICAgICAgICAgfQogICAgICAgICAgICBJbmJvdW5kUGFja2V0OjpLZXkgewogICAgICAgICAgICAgICAgYWN0aW9uLAogICAgICAgICAgICAgICAgbW9kaWZpZXJzLAogICAgICAgICAgICAgICAga2V5LAogICAgICAgICAgICAgICAgZmxhZ3MsCiAgICAgICAgICAgIH0gPT4gc3RyZWFtCiAgICAgICAgICAgICAgICAuc2VuZF9rZXlib2FyZF9ldmVudF9ub25fc3RhbmRhcmQoa2V5IGFzIGkxNiwgYWN0aW9uLCBtb2RpZmllcnMsIGZsYWdzKQogICAgICAgICAgICAgICAgLmVycigpLAogICAgICAgICAgICBJbmJvdW5kUGFja2V0OjpUZXh0IHsgdGV4dCB9ID0+IHN0cmVhbS5zZW5kX3RleHQoJnRleHQpLmVycigpLAogICAgICAgICAgICBJbmJvdW5kUGFja2V0OjpUb3VjaCB7CiAgICAgICAgICAgICAgICBwb2ludGVyX2lkLAogICAgICAgICAgICAgICAgeCwKICAgICAgICAgICAgICAgIHksCiAgICAgICAgICAgICAgICBwcmVzc3VyZV9vcl9kaXN0YW5jZSwKICAgICAgICAgICAgICAgIGNvbnRhY3RfYXJlYV9tYWpvciwKICAgICAgICAgICAgICAgIGNvbnRhY3RfYXJlYV9taW5vciwKICAgICAgICAgICAgICAgIHJvdGF0aW9uLAogICAgICAgICAgICAgICAgZXZlbnRfdHlwZSwKICAgICAgICAgICAgfSA9PiBzdHJlYW0KICAgICAgICAgICAgICAgIC5zZW5kX3RvdWNoKAogICAgICAgICAgICAgICAgICAgIHBvaW50ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgeCwKICAgICAgICAgICAgICAgICAgICB5LAogICAgICAgICAgICAgICAgICAgIHByZXNzdXJlX29yX2Rpc3RhbmNlLAogICAgICAgICAgICAgICAgICAgIGNvbnRhY3RfYXJlYV9tYWpvciwKICAgICAgICAgICAgICAgICAgICBjb250YWN0X2FyZWFfbWlub3IsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb24sCiAgICAgICAgICAgICAgICAgICAgZXZlbnRfdHlwZSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5lcnIoKSwKICAgICAgICAgICAgSW5ib3VuZFBhY2tldDo6Q29udHJvbGxlckNvbm5lY3RlZCB7CiAgICAgICAgICAgICAgICBpZCwKICAgICAgICAgICAgICAgIHR5LAogICAgICAgICAgICAgICAgc3VwcG9ydGVkX2J1dHRvbnMsCiAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMsCiAgICAgICAgICAgIH0gPT4gewogICAgICAgICAgICAgICAgbGV0IFNvbWUoZ2FtZXBhZCkgPSBBY3RpdmVHYW1lcGFkczo6ZnJvbV9pZChpZCkgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBhZGQgZ2FtZXBhZCBiZWNhdXNlIGl0IGlzIG91dCBvZiByYW5nZToge2lkfSIpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgbGV0IG11dCBhY3RpdmVfZ2FtZXBhZHMgPSBzZWxmLmFjdGl2ZV9nYW1lcGFkcy53cml0ZSgpLmF3YWl0OwoKICAgICAgICAgICAgICAgIGFjdGl2ZV9nYW1lcGFkcy5pbnNlcnQoZ2FtZXBhZCk7CgogICAgICAgICAgICAgICAgc3RyZWFtCiAgICAgICAgICAgICAgICAgICAgLnNlbmRfY29udHJvbGxlcl9hcnJpdmFsKAogICAgICAgICAgICAgICAgICAgICAgICBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgKmFjdGl2ZV9nYW1lcGFkcywKICAgICAgICAgICAgICAgICAgICAgICAgdHksCiAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZF9idXR0b25zLAogICAgICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIC5lcnIoKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEluYm91bmRQYWNrZXQ6OkNvbnRyb2xsZXJEaXNjb25uZWN0ZWQgeyBpZCB9ID0+IHsKICAgICAgICAgICAgICAgIGxldCBTb21lKGdhbWVwYWQpID0gQWN0aXZlR2FtZXBhZHM6OmZyb21faWQoaWQpIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gcmVtb3ZlIGdhbWVwYWQgYmVjYXVzZSBpdCBpcyBvdXQgb2YgcmFuZ2U6IHtpZH0iKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIGxldCBtdXQgYWN0aXZlX2dhbWVwYWRzID0gc2VsZi5hY3RpdmVfZ2FtZXBhZHMud3JpdGUoKS5hd2FpdDsKICAgICAgICAgICAgICAgIGFjdGl2ZV9nYW1lcGFkcy5yZW1vdmUoZ2FtZXBhZCk7CgogICAgICAgICAgICAgICAgc3RyZWFtCiAgICAgICAgICAgICAgICAgICAgLnNlbmRfbXVsdGlfY29udHJvbGxlcigKICAgICAgICAgICAgICAgICAgICAgICAgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICphY3RpdmVfZ2FtZXBhZHMsCiAgICAgICAgICAgICAgICAgICAgICAgIENvbnRyb2xsZXJCdXR0b25zOjplbXB0eSgpLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICAuZXJyKCkKICAgICAgICAgICAgfQogICAgICAgICAgICBJbmJvdW5kUGFja2V0OjpDb250cm9sbGVyU3RhdGUgewogICAgICAgICAgICAgICAgaWQsCiAgICAgICAgICAgICAgICBidXR0b25zLAogICAgICAgICAgICAgICAgbGVmdF90cmlnZ2VyLAogICAgICAgICAgICAgICAgcmlnaHRfdHJpZ2dlciwKICAgICAgICAgICAgICAgIGxlZnRfc3RpY2tfeCwKICAgICAgICAgICAgICAgIGxlZnRfc3RpY2tfeSwKICAgICAgICAgICAgICAgIHJpZ2h0X3N0aWNrX3gsCiAgICAgICAgICAgICAgICByaWdodF9zdGlja195LAogICAgICAgICAgICB9ID0+IHsKICAgICAgICAgICAgICAgIGxldCBTb21lKGdhbWVwYWQpID0gQWN0aXZlR2FtZXBhZHM6OmZyb21faWQoaWQpIGVsc2UgewogICAgICAgICAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gdXBkYXRlIGdhbWVwYWQgc3RhdGUgYmVjYXVzZSBpdCBpcyBvdXQgb2YgcmFuZ2U6IHtpZH0iKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIGxldCBhY3RpdmVfZ2FtZXBhZHMgPSBzZWxmLmFjdGl2ZV9nYW1lcGFkcy5yZWFkKCkuYXdhaXQ7CiAgICAgICAgICAgICAgICBpZiAhYWN0aXZlX2dhbWVwYWRzLmNvbnRhaW5zKGdhbWVwYWQpIHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBzZW5kIGdhbWVwYWQgZXZlbnQgZm9yIG5vdCByZWdpc3RlcmVkIGdhbWVwYWQsIGdhbWVwYWQ6IHtpZH0sIGN1cnJlbnRseSBhY3RpdmU6IHs6P30iLAogICAgICAgICAgICAgICAgICAgICAgICAqYWN0aXZlX2dhbWVwYWRzCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc3RyZWFtCiAgICAgICAgICAgICAgICAgICAgLnNlbmRfbXVsdGlfY29udHJvbGxlcigKICAgICAgICAgICAgICAgICAgICAgICAgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICphY3RpdmVfZ2FtZXBhZHMsCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRfdHJpZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRfdHJpZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAgbGVmdF9zdGlja194LAogICAgICAgICAgICAgICAgICAgICAgICBsZWZ0X3N0aWNrX3ksCiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0X3N0aWNrX3gsCiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0X3N0aWNrX3ksCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIC5lcnIoKQogICAgICAgICAgICB9CiAgICAgICAgICAgIF8gPT4gTm9uZSwKICAgICAgICB9OwoKICAgICAgICBpZiBsZXQgU29tZShlcnIpID0gZXJyIHsKICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBoYW5kbGUgcGFja2V0OiB7ZXJyOj99Iik7CiAgICAgICAgfQogICAgfQoKICAgIGFzeW5jIGZuIG9uX2lwY19tZXNzYWdlKHNlbGY6ICZBcmM8U3RyZWFtQ29ubmVjdGlvbj4sIG11dCBtZXNzYWdlOiBTZXJ2ZXJJcGNNZXNzYWdlKSB7CiAgICAgICAgbWF0Y2ggJm11dCBtZXNzYWdlIHsKICAgICAgICAgICAgU2VydmVySXBjTWVzc2FnZTo6V2ViU29ja2V0KFN0cmVhbUNsaWVudE1lc3NhZ2U6OlN0YXJ0U3RyZWFtIHsgc2V0dGluZ3MgfSkgPT4gewogICAgICAgICAgICAgICAgLy8gQXBwbHkgcmVzdHJpY3Rpb25zCiAgICAgICAgICAgICAgICBhcHBseV9wZXJtaXNzaW9uc190b19zZXR0aW5ncygmc2VsZi5wZXJtaXNzaW9ucywgc2V0dGluZ3MpOwoKICAgICAgICAgICAgICAgIGluZm8hKCJBcHBsaWVkIHBlcm1pc3Npb25zIHRvIHNldHRpbmdzIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU2VydmVySXBjTWVzc2FnZTo6V2ViU29ja2V0KFN0cmVhbUNsaWVudE1lc3NhZ2U6OlNldFRyYW5zcG9ydCh0cmFuc3BvcnRfdHlwZSkpID0+IHsKICAgICAgICAgICAgICAgIHNlbGYuY2xlYXJfdGVybWluYXRlX3JlcXVlc3QoKS5hd2FpdDsKCiAgICAgICAgICAgICAgICBtYXRjaCB0cmFuc3BvcnRfdHlwZSB7CiAgICAgICAgICAgICAgICAgICAgVHJhbnNwb3J0VHlwZTo6V2ViUlRDIGlmIHNlbGYucGVybWlzc2lvbnMuYWxsb3dfdHJhbnNwb3J0X3dlYnJ0YyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGluZm8hKCJUcnlpbmcgV2ViUlRDIHRyYW5zcG9ydCIpOwoKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IChzZW5kZXIsIGV2ZW50cykgPSBtYXRjaCB3ZWJydGM6Om5ldygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzZWxmLmNvbmZpZy53ZWJydGMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZpZGVvX2ZyYW1lX3F1ZXVlX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmF1ZGlvX3NhbXBsZV9xdWV1ZV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgIC5hd2FpdAogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPayh2YWx1ZSkgPT4gdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IhKCJGYWlsZWQgdG8gc3RhcnQgd2VicnRjIHRyYW5zcG9ydDoge2Vycn0iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0X3RyYW5zcG9ydChCb3g6Om5ldyhzZW5kZXIpLCBCb3g6Om5ldyhldmVudHMpKS5hd2FpdDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgVHJhbnNwb3J0VHlwZTo6V2ViU29ja2V0IGlmIHNlbGYucGVybWlzc2lvbnMuYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBpbmZvISgiVHJ5aW5nIFdlYiBTb2NrZXQgdHJhbnNwb3J0Iik7CgogICAgICAgICAgICAgICAgICAgICAgICBsZXQgKHNlbmRlciwgZXZlbnRzKSA9IG1hdGNoIHdlYl9zb2NrZXQ6Om5ldygpLmF3YWl0IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9rKHZhbHVlKSA9PiB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycihlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciEoIkZhaWxlZCB0byBzdGFydCB3ZWIgc29ja2V0IHRyYW5zcG9ydDoge2Vycn0iKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0X3RyYW5zcG9ydChCb3g6Om5ldyhzZW5kZXIpLCBCb3g6Om5ldyhldmVudHMpKS5hd2FpdDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdHJhbnNwb3J0ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgd2FybiEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2xpZW50IHRyaWVkIHRvIHNlbGVjdCB7dHJhbnNwb3J0Oj99LCBidXQgaXQgd2FzIHNwZWNpZmljYWxseSBkaXNhYmxlZCBpbiB0aGUgcGVybWlzc2lvbnMgLT4gaWdub3JpbmcgcmVxdWVzdC4iCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIFNlcnZlcklwY01lc3NhZ2U6OlN0b3AgPT4gewogICAgICAgICAgICAgICAgc2VsZi5zdG9wKCkuYXdhaXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgXyA9PiB7fQogICAgICAgIH0KCiAgICAgICAgbGV0IG11dCBzZW5kZXIgPSBzZWxmLnRyYW5zcG9ydF9zZW5kZXIubG9jaygpLmF3YWl0OwogICAgICAgIGlmIGxldCBTb21lKHNlbmRlcikgPSBzZW5kZXIuYXNfbXV0KCkgewogICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBzZW5kZXIub25faXBjX21lc3NhZ2UobWVzc2FnZSkuYXdhaXQgewogICAgICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBzZW5kIGlwYyBtZXNzYWdlOiB7ZXJyfSIpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBwcm9jZXNzIGlwYyBtZXNzYWdlIGJlY2F1c2Ugb2YgbWlzc2luZyB0cmFuc3BvcnQ6IHttZXNzYWdlOj99Iik7CiAgICAgICAgfQogICAgfQoKICAgIC8vIFN0YXJ0IE1vb25saWdodCBTdHJlYW0KICAgIGFzeW5jIGZuIHN0YXJ0X3N0cmVhbShzZWxmOiAmQXJjPFNlbGY+LCBzZXR0aW5nczogU3RyZWFtU2V0dGluZ3MpIC0+IFJlc3VsdDwoKSwgYW55aG93OjpFcnJvcj4gewogICAgICAgIC8vIFdlIG1pZ2h0IGFscmVhZHkgYmUgc3RyZWFtaW5nIC0+IHJlbW92ZSBhbmQgd2FpdCBmb3IgY29ubmVjdGlvbiBjbG9zZSBmaXJzdGx5CiAgICAgICAgewogICAgICAgICAgICBsZXQgbXV0IHN0cmVhbSA9IHNlbGYuc3RyZWFtLndyaXRlKCkuYXdhaXQ7CiAgICAgICAgICAgIGlmIGxldCBTb21lKHN0cmVhbSkgPSBzdHJlYW0udGFrZSgpIHsKICAgICAgICAgICAgICAgIHNwYXduX2Jsb2NraW5nKG1vdmUgfHwgewogICAgICAgICAgICAgICAgICAgIHN0cmVhbS5zdG9wKCk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpbmZvISgiU3RhcnRpbmcgTW9vbmxpZ2h0IHN0cmVhbSB3aXRoIHNldHRpbmdzOiB7c2V0dGluZ3M6P30iKTsKCiAgICAgICAgLy8gU2VuZCBzdGFnZQogICAgICAgIGxldCBtdXQgaXBjX3NlbmRlciA9IHNlbGYuaXBjX3NlbmRlci5jbG9uZSgpOwogICAgICAgIGlwY19zZW5kZXIKICAgICAgICAgICAgLnNlbmQoU3RyZWFtZXJJcGNNZXNzYWdlOjpXZWJTb2NrZXQoCiAgICAgICAgICAgICAgICBTdHJlYW1TZXJ2ZXJNZXNzYWdlOjpEZWJ1Z0xvZyB7CiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogIk1vb25saWdodCBTdHJlYW0iLnRvX3N0cmluZygpLAogICAgICAgICAgICAgICAgICAgIHR5OiBOb25lLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKSkKICAgICAgICAgICAgLmF3YWl0OwoKICAgICAgICBsZXQgaG9zdCA9ICZzZWxmLmluZm8uaG9zdDsKCiAgICAgICAgbGV0IHZpZGVvX2RlY29kZXIgPSBTdHJlYW1WaWRlb0RlY29kZXIgewogICAgICAgICAgICBzdHJlYW06IEFyYzo6ZG93bmdyYWRlKHNlbGYpLAogICAgICAgICAgICBzdXBwb3J0ZWRfZm9ybWF0czogVmlkZW9Gb3JtYXRzOjpmcm9tX2JpdHNfcmV0YWluKHNldHRpbmdzLnN1cHBvcnRlZF9jb2RlY3MpLAogICAgICAgICAgICBzdGF0czogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgIH07CgogICAgICAgIGxldCBhdWRpb19kZWNvZGVyID0gU3RyZWFtQXVkaW9EZWNvZGVyIHsKICAgICAgICAgICAgc3RyZWFtOiBBcmM6OmRvd25ncmFkZShzZWxmKSwKICAgICAgICB9OwoKICAgICAgICBsZXQgY29ubmVjdGlvbl9saXN0ZW5lciA9IFN0cmVhbUNvbm5lY3Rpb25MaXN0ZW5lciB7CiAgICAgICAgICAgIHN0cmVhbTogQXJjOjpkb3duZ3JhZGUoc2VsZiksCiAgICAgICAgfTsKICAgICAgICBsZXQgY29ubmVjdGlvbl9saXN0ZW5lcl9jID0gU3RyZWFtQ29ubmVjdGlvbkxpc3RlbmVyIHsKICAgICAgICAgICAgc3RyZWFtOiBBcmM6OmRvd25ncmFkZShzZWxmKSwKICAgICAgICB9OwoKICAgICAgICBsZXQgbXV0IHNldHRpbmdzID0gTW9vbmxpZ2h0U3RyZWFtU2V0dGluZ3MgewogICAgICAgICAgICB3aWR0aDogc2V0dGluZ3Mud2lkdGgsCiAgICAgICAgICAgIGhlaWdodDogc2V0dGluZ3MuaGVpZ2h0LAogICAgICAgICAgICBmcHM6IHNldHRpbmdzLmZwcywKICAgICAgICAgICAgZnBzX3gxMDA6IHNldHRpbmdzLmZwcyAqIDEwMCwKICAgICAgICAgICAgaGRyOiBzZXR0aW5ncy5oZHIsCiAgICAgICAgICAgIGJpdHJhdGU6IHNldHRpbmdzLmJpdHJhdGVfa2JwcywKICAgICAgICAgICAgcGFja2V0X3NpemU6IDEwMjQsCiAgICAgICAgICAgIGVuY3J5cHRpb25fZmxhZ3M6IEVuY3J5cHRpb25GbGFnczo6QUxMLAogICAgICAgICAgICBzdHJlYW1pbmdfcmVtb3RlbHk6IFN0cmVhbWluZ0NvbmZpZzo6QXV0bywKICAgICAgICAgICAgc29wczogdHJ1ZSwKICAgICAgICAgICAgc3VwcG9ydGVkX3ZpZGVvX2Zvcm1hdHM6IFZpZGVvRm9ybWF0czo6ZnJvbV9iaXRzX3RydW5jYXRlKHNldHRpbmdzLnN1cHBvcnRlZF9jb2RlY3MpLAogICAgICAgICAgICBjb2xvcl9zcGFjZTogQ29sb3JTcGFjZTo6UmVjNzA5LAogICAgICAgICAgICBjb2xvcl9yYW5nZTogQ29sb3JSYW5nZTo6TGltaXRlZCwKICAgICAgICAgICAgbG9jYWxfYXVkaW9fcGxheV9tb2RlOiBzZXR0aW5ncy5wbGF5X2F1ZGlvX2xvY2FsLAogICAgICAgICAgICBhdWRpb19jb25maWc6IEF1ZGlvQ29uZmlnOjpTVEVSRU8sCiAgICAgICAgICAgIGdhbWVwYWRzX2F0dGFjaGVkOiBBY3RpdmVHYW1lcGFkczo6ZW1wdHkoKSwKICAgICAgICAgICAgZ2FtZXBhZHNfcGVyc2lzdF9hZnRlcl9kaXNjb25uZWN0OiBmYWxzZSwKICAgICAgICAgICAgZW5hYmxlX21pYzogZmFsc2UsCiAgICAgICAgfTsKCiAgICAgICAgbGV0IHNlcnZlcl92ZXJzaW9uID0gaG9zdC52ZXJzaW9uKCkuYXdhaXQ/OwogICAgICAgIGxldCBzZXJ2ZXJfZ2ZlX3ZlcnNpb24gPSBob3N0LmdmZV92ZXJzaW9uKCkuYXdhaXQ/OwogICAgICAgIGxldCBzZXJ2ZXJfY29kZWNfbW9kZV9zdXBwb3J0ID0gaG9zdC5zZXJ2ZXJfY29kZWNfbW9kZV9zdXBwb3J0KCkuYXdhaXQ/OwoKICAgICAgICBtYXRjaCBzZXR0aW5ncy5hZGp1c3RfZm9yX3NlcnZlcigKICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24sCiAgICAgICAgICAgICZzZXJ2ZXJfZ2ZlX3ZlcnNpb24sCiAgICAgICAgICAgIHNlcnZlcl9jb2RlY19tb2RlX3N1cHBvcnQsCiAgICAgICAgKSB7CiAgICAgICAgICAgIE9rKF8pID0+IHt9CiAgICAgICAgICAgIEVycihTdHJlYW1Db25maWdFcnJvcjo6Tm90U3VwcG9ydGVkSGRyKSA9PiB7CiAgICAgICAgICAgICAgICBpcGNfc2VuZGVyCiAgICAgICAgICAgICAgICAgICAgLnNlbmQoU3RyZWFtZXJJcGNNZXNzYWdlOjpXZWJTb2NrZXQoCiAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OkRlYnVnTG9nIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICJGYWlsZWQgdG8gc3RhcnQgc3RyZWFtIGJlY2F1c2UgdGhpcyBhcHAgZG9lc24ndCBzdXBwb3J0IEhEUiEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvX3N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdHk6IFNvbWUoTG9nTWVzc2FnZVR5cGU6OkZhdGFsRGVzY3JpcHRpb24pLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgLmF3YWl0OwogICAgICAgICAgICAgICAgcmV0dXJuIEVycihTdHJlYW1Db25maWdFcnJvcjo6Tm90U3VwcG9ydGVkSGRyLmludG8oKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgRXJyKGVycikgPT4gcmV0dXJuIEVycihlcnIuaW50bygpKSwKICAgICAgICB9CgogICAgICAgIGxldCBhZXNfa2V5ID0gQWVzS2V5OjpuZXdfcmFuZG9tKCZPcGVuU1NMQ3J5cHRvQmFja2VuZCk/OwogICAgICAgIGxldCBhZXNfaXYgPSBBZXNJdjo6bmV3X3JhbmRvbSgmT3BlblNTTENyeXB0b0JhY2tlbmQpPzsKCiAgICAgICAgbGV0IHN0cmVhbV9jb25maWcgPSBtYXRjaCBob3N0CiAgICAgICAgICAgIC5zdGFydF9zdHJlYW0oCiAgICAgICAgICAgICAgICBzZWxmLmluZm8uYXBwX2lkLAogICAgICAgICAgICAgICAgJnNldHRpbmdzLAogICAgICAgICAgICAgICAgYWVzX2tleSwKICAgICAgICAgICAgICAgIGFlc19pdiwKICAgICAgICAgICAgICAgIHNlbGYubW9vbmxpZ2h0LmxhdW5jaF9xdWVyeV9wYXJhbWV0ZXJzKCksCiAgICAgICAgICAgICkKICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgewogICAgICAgICAgICBPayh2YWx1ZSkgPT4gdmFsdWUsCiAgICAgICAgICAgIEVycihlcnIpID0+IHsKICAgICAgICAgICAgICAgIHdhcm4hKCJbU3RyZWFtXTogZmFpbGVkIHRvIHN0YXJ0IG1vb25saWdodCBzdHJlYW06IHtlcnJ9Iik7CgogICAgICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnNpbmdsZV9tYXRjaCldCiAgICAgICAgICAgICAgICBtYXRjaCBlcnIgewogICAgICAgICAgICAgICAgICAgIE1vb25saWdodENsaWVudEVycm9yOjpNb29ubGlnaHQoTW9vbmxpZ2h0RXJyb3I6OkNvbm5lY3Rpb25BbHJlYWR5RXhpc3RzKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlwY19zZW5kZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZW5kKFN0cmVhbWVySXBjTWVzc2FnZTo6V2ViU29ja2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OkRlYnVnTG9nIHsgbWVzc2FnZTogIkZhaWxlZCB0byBzdGFydCBzdHJlYW0gYmVjYXVzZSB0aGlzIHN0cmVhbWVyIGlzIGFscmVhZHkgc3RyZWFtaW5nIi50b19zdHJpbmcoKSwgdHk6IE5vbmUgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXdhaXQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIF8gPT4ge30KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICByZXR1cm4gRXJyKGVyci5pbnRvKCkpOwogICAgICAgICAgICB9CiAgICAgICAgfTsKCiAgICAgICAgbGV0IHNldHRpbmdzX2Nsb25lID0gc2V0dGluZ3MuY2xvbmUoKTsKICAgICAgICBsZXQgbW9vbmxpZ2h0X2luc3RhbmNlID0gc2VsZi5tb29ubGlnaHQuY2xvbmUoKTsKICAgICAgICBsZXQgc3RyZWFtID0gc3Bhd25fYmxvY2tpbmcobW92ZSB8fCB7CiAgICAgICAgICAgIG1vb25saWdodF9pbnN0YW5jZS5zdGFydF9jb25uZWN0aW9uKAogICAgICAgICAgICAgICAgc3RyZWFtX2NvbmZpZywKICAgICAgICAgICAgICAgIHNldHRpbmdzX2Nsb25lLAogICAgICAgICAgICAgICAgY29ubmVjdGlvbl9saXN0ZW5lciwKICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25fbGlzdGVuZXJfYywKICAgICAgICAgICAgICAgIHZpZGVvX2RlY29kZXIsCiAgICAgICAgICAgICAgICBhdWRpb19kZWNvZGVyLAogICAgICAgICAgICApCiAgICAgICAgfSkKICAgICAgICAuYXdhaXQ/PzsKCiAgICAgICAgbGV0IGhvc3RfZmVhdHVyZXMgPSBzdHJlYW0uaG9zdF9mZWF0dXJlcygpLnVud3JhcF9vcl9lbHNlKHxlcnJ8IHsKICAgICAgICAgICAgd2FybiEoIltTdHJlYW1dOiBmYWlsZWQgdG8gZ2V0IGhvc3QgZmVhdHVyZXM6IHtlcnI6P30iKTsKICAgICAgICAgICAgSG9zdEZlYXR1cmVzOjpkZWZhdWx0KCkKICAgICAgICB9KTsKCiAgICAgICAgbGV0IGNhcGFiaWxpdGllcyA9IFN0cmVhbUNhcGFiaWxpdGllcyB7CiAgICAgICAgICAgIHRvdWNoOiBob3N0X2ZlYXR1cmVzLmNvbnRyb2xsZXJfdG91Y2gsCiAgICAgICAgfTsKCiAgICAgICAgbGV0ICh2aWRlb19zZXR1cCwgYXVkaW9fc2V0dXApID0gewogICAgICAgICAgICBsZXQgc2V0dXAgPSBzZWxmLnN0cmVhbV9zZXR1cC5sb2NrKCkuYXdhaXQ7CgogICAgICAgICAgICBsZXQgdmlkZW8gPSBzZXR1cC52aWRlby51bndyYXBfb3JfZWxzZSh8fCB7CiAgICAgICAgICAgICAgICB3YXJuISgiZmFpbGVkIHRvIHF1ZXJ5IHZpZGVvIHNldHVwIGluZm9ybWF0aW9uLiBHaXZpbmcgdGhlIGJyb3dzZXIgZ3Vlc3NlZCBpbmZvcm1hdGlvbiIpOwogICAgICAgICAgICAgICAgVmlkZW9TZXR1cCB7IGZvcm1hdDogVmlkZW9Gb3JtYXQ6OkgyNjQsIHdpZHRoOiBzZXR0aW5ncy53aWR0aCwgaGVpZ2h0OiBzZXR0aW5ncy5oZWlnaHQsIHJlZHJhd19yYXRlOiBzZXR0aW5ncy5mcHMgfQogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIGxldCBhdWRpbyA9IHNldHVwLmF1ZGlvLmNsb25lKCkudW53cmFwX29yKE9wdXNNdWx0aXN0cmVhbUNvbmZpZzo6U1RFUkVPKTsKCiAgICAgICAgICAgICh2aWRlbywgYXVkaW8pCiAgICAgICAgfTsKCiAgICAgICAgaW5mbyEoCiAgICAgICAgICAgICJTdHJlYW0gdXNlcyB0aGVzZSBzZXR0aW5nczogezo/fSB3aXRoIHt9eHt9eHt9IiwKICAgICAgICAgICAgdmlkZW9fc2V0dXAuZm9ybWF0LCB2aWRlb19zZXR1cC53aWR0aCwgdmlkZW9fc2V0dXAuaGVpZ2h0LCB2aWRlb19zZXR1cC5yZWRyYXdfcmF0ZQogICAgICAgICk7CgogICAgICAgIHNwYXduKGFzeW5jIG1vdmUgewogICAgICAgICAgICBpcGNfc2VuZGVyCiAgICAgICAgICAgICAgICAuc2VuZChTdHJlYW1lcklwY01lc3NhZ2U6OldlYlNvY2tldCgKICAgICAgICAgICAgICAgICAgICBTdHJlYW1TZXJ2ZXJNZXNzYWdlOjpDb25uZWN0aW9uQ29tcGxldGUgewogICAgICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMsCiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdDogdmlkZW9fc2V0dXAuZm9ybWF0IGFzIHUzMiwKICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHZpZGVvX3NldHVwLndpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHZpZGVvX3NldHVwLmhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgZnBzOiB2aWRlb19zZXR1cC5yZWRyYXdfcmF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fc2FtcGxlX3JhdGU6IGF1ZGlvX3NldHVwLnNhbXBsZV9yYXRlLAogICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19jaGFubmVsX2NvdW50OiBhdWRpb19zZXR1cC5jaGFubmVsX2NvdW50LAogICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19zdHJlYW1zOiBhdWRpb19zZXR1cC5zdHJlYW1zLAogICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19jb3VwbGVkX3N0cmVhbXM6IGF1ZGlvX3NldHVwLmNvdXBsZWRfc3RyZWFtcywKICAgICAgICAgICAgICAgICAgICAgICAgYXVkaW9fc2FtcGxlc19wZXJfZnJhbWU6IGF1ZGlvX3NldHVwLnNhbXBsZXNfcGVyX2ZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICBhdWRpb19tYXBwaW5nOiBhdWRpb19zZXR1cC5tYXBwaW5nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICApKQogICAgICAgICAgICAgICAgLmF3YWl0OwogICAgICAgIH0pOwoKICAgICAgICBsZXQgbXV0IHN0cmVhbV9ndWFyZCA9IHNlbGYuc3RyZWFtLndyaXRlKCkuYXdhaXQ7CiAgICAgICAgc3RyZWFtX2d1YXJkLnJlcGxhY2Uoc3RyZWFtKTsKCiAgICAgICAgewogICAgICAgICAgICBsZXQgbXV0IHNlbmRlciA9IHNlbGYudHJhbnNwb3J0X3NlbmRlci5sb2NrKCkuYXdhaXQ7CiAgICAgICAgICAgIG1hdGNoIHNlbmRlci5hc19tdXQoKSB7CiAgICAgICAgICAgICAgICBTb21lKHNlbmRlcikgPT4gewogICAgICAgICAgICAgICAgICAgIHNlbmRlci5vbl9zZXR1cF9jb21wbGV0ZSgpLmF3YWl0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgTm9uZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIk5vIHRyYW5zcG9ydCBmb3VuZCBhZnRlciBzdGFydGluZyBzdHJlYW0uIFJlcXVlc3RpbmcgVGVybWluYXRpb24iKTsKICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3RfdGVybWluYXRlKCkuYXdhaXQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIE9rKCgpKQogICAgfQoKICAgIC8vIC0tIFRlcm1pbmF0aW9uCiAgICBhc3luYyBmbiByZXF1ZXN0X3Rlcm1pbmF0ZShzZWxmOiAmQXJjPFNlbGY+KSB7CiAgICAgICAgZGVidWchKCJNYXJraW5nIGZvciB0ZXJtaW5hdGlvbiIpOwoKICAgICAgICBsZXQgdGhpcyA9IHNlbGYuY2xvbmUoKTsKCiAgICAgICAgbGV0IG11dCB0ZXJtaW5hdGVfcmVxdWVzdCA9IHNlbGYudGltZW91dF90ZXJtaW5hdGVfcmVxdWVzdC5sb2NrKCkuYXdhaXQ7CiAgICAgICAgKnRlcm1pbmF0ZV9yZXF1ZXN0ID0gU29tZShJbnN0YW50Ojpub3coKSk7CiAgICAgICAgZHJvcCh0ZXJtaW5hdGVfcmVxdWVzdCk7CgogICAgICAgIHNwYXduKGFzeW5jIG1vdmUgewogICAgICAgICAgICBzbGVlcChUSU1FT1VUX0RVUkFUSU9OICsgRHVyYXRpb246OmZyb21fbWlsbGlzKDIwMCkpLmF3YWl0OwoKICAgICAgICAgICAgbGV0IG5vdyA9IEluc3RhbnQ6Om5vdygpOwoKICAgICAgICAgICAgbGV0IHRlcm1pbmF0ZV9yZXF1ZXN0ID0gdGhpcy50aW1lb3V0X3Rlcm1pbmF0ZV9yZXF1ZXN0LmxvY2soKS5hd2FpdDsKICAgICAgICAgICAgaWYgbGV0IFNvbWUodGVybWluYXRlX3JlcXVlc3QpID0gKnRlcm1pbmF0ZV9yZXF1ZXN0CiAgICAgICAgICAgICAgICAmJiAobm93IC0gdGVybWluYXRlX3JlcXVlc3QpID4gVElNRU9VVF9EVVJBVElPTgogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbmZvISgiU3RvcHBpbmcgYmVjYXVzZSBvZiB0aW1lb3V0Iik7CgogICAgICAgICAgICAgICAgdGhpcy5zdG9wKCkuYXdhaXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKICAgIH0KICAgIGFzeW5jIGZuIGNsZWFyX3Rlcm1pbmF0ZV9yZXF1ZXN0KCZzZWxmKSB7CiAgICAgICAgZGVidWchKCJDbGVhcmluZyB0ZXJtaW5hdGlvbiB0aW1lb3V0Iik7CgogICAgICAgIGxldCBtdXQgcmVxdWVzdCA9IHNlbGYudGltZW91dF90ZXJtaW5hdGVfcmVxdWVzdC5sb2NrKCkuYXdhaXQ7CgogICAgICAgICpyZXF1ZXN0ID0gTm9uZTsKICAgIH0KCiAgICBhc3luYyBmbiBzdG9wKCZzZWxmKSB7CiAgICAgICAgaWYgc2VsZgogICAgICAgICAgICAuaXNfdGVybWluYXRpbmcKICAgICAgICAgICAgLmNvbXBhcmVfZXhjaGFuZ2UoZmFsc2UsIHRydWUsIE9yZGVyaW5nOjpBY3F1aXJlLCBPcmRlcmluZzo6UmVsYXhlZCkKICAgICAgICAgICAgLmlzX2VycigpCiAgICAgICAgewogICAgICAgICAgICBkZWJ1ZyEoIltTdHJlYW1dOiBzdHJlYW0gaXMgYWxyZWFkeSB0ZXJtaW5hdGluZywgd29uJ3Qgc3RvcCB0d2ljZSIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBkZWJ1ZyEoIltTdHJlYW1dOiBTdG9wcGluZy4uLiIpOwoKICAgICAgICB7CiAgICAgICAgICAgIGxldCBtdXQgc3RyZWFtID0gc2VsZi5zdHJlYW0ud3JpdGUoKS5hd2FpdDsKICAgICAgICAgICAgaWYgbGV0IFNvbWUoc3RyZWFtKSA9IHN0cmVhbS50YWtlKCkgewogICAgICAgICAgICAgICAgc3Bhd25fYmxvY2tpbmcobW92ZSB8fCB7CiAgICAgICAgICAgICAgICAgICAgc3RyZWFtLnN0b3AoKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBsZXQgbXV0IHRyYW5zcG9ydCA9IHNlbGYudHJhbnNwb3J0X3NlbmRlci5sb2NrKCkuYXdhaXQ7CiAgICAgICAgaWYgbGV0IFNvbWUodHJhbnNwb3J0KSA9IHRyYW5zcG9ydC50YWtlKCkgewogICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSB0cmFuc3BvcnQuY2xvc2UoKS5hd2FpdCB7CiAgICAgICAgICAgICAgICB3YXJuISgiRXJyb3Igd2hpbHN0IGNsb3NpbmcgdHJhbnNwb3J0OiB7ZXJyfSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRyb3AodHJhbnNwb3J0KTsKICAgICAgICB9CgogICAgICAgIGxldCBtdXQgaXBjX3NlbmRlciA9IHNlbGYuaXBjX3NlbmRlci5jbG9uZSgpOwogICAgICAgIGlwY19zZW5kZXIuc2VuZChTdHJlYW1lcklwY01lc3NhZ2U6OlN0b3ApLmF3YWl0OwoKICAgICAgICBkZWJ1ZyEoIk5vdGlmeWluZyB0ZXJtaW5hdGlvbiIpOwogICAgICAgIHNlbGYudGVybWluYXRlLm5vdGlmeV93YWl0ZXJzKCk7CiAgICB9Cn0KCnN0cnVjdCBTdHJlYW1Db25uZWN0aW9uTGlzdGVuZXIgewogICAgc3RyZWFtOiBXZWFrPFN0cmVhbUNvbm5lY3Rpb24+LAp9CgppbXBsIENvbm5lY3Rpb25MaXN0ZW5lciBmb3IgU3RyZWFtQ29ubmVjdGlvbkxpc3RlbmVyIHsKICAgIGZuIHNldF9oZHJfbW9kZSgmbXV0IHNlbGYsIGhkcl9lbmFibGVkOiBib29sLCBfc3Vuc2hpbmU6IE9wdGlvbjxTdW5zaGluZUhkck1ldGFkYXRhPikgewogICAgICAgIGluZm8hKAogICAgICAgICAgICAiW0hEUl0gSG9zdCBjYWxsZWQgc2V0X2hkcl9tb2RlIHdpdGggZW5hYmxlZD17fSIsCiAgICAgICAgICAgIGhkcl9lbmFibGVkCiAgICAgICAgKTsKCiAgICAgICAgbGV0IFNvbWUoc3RyZWFtKSA9IHNlbGYuc3RyZWFtLnVwZ3JhZGUoKSBlbHNlIHsKICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBnZXQgc3RyZWFtIGJlY2F1c2UgaXQgaXMgYWxyZWFkeSBkZWFsbG9jYXRlZCIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfTsKCiAgICAgICAgc3RyZWFtLmNsb25lKCkucnVudGltZS5ibG9ja19vbihhc3luYyBtb3ZlIHsKICAgICAgICAgICAgaW5mbyEoIltIRFJdIFNlbmRpbmcgSGRyTW9kZVVwZGF0ZSB0byBjbGllbnQiKTsKICAgICAgICAgICAgc3RyZWFtCiAgICAgICAgICAgICAgICAudHJ5X3NlbmRfcGFja2V0KAogICAgICAgICAgICAgICAgICAgIE91dGJvdW5kUGFja2V0OjpHZW5lcmFsIHsKICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogR2VuZXJhbFNlcnZlck1lc3NhZ2U6Okhkck1vZGVVcGRhdGUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogaGRyX2VuYWJsZWQsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiaGRyIG1vZGUgdXBkYXRlIiwKICAgICAgICAgICAgICAgICAgICB0cnVlLAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgfSkKICAgIH0KCiAgICBmbiBjb250cm9sbGVyX3J1bWJsZSgKICAgICAgICAmbXV0IHNlbGYsCiAgICAgICAgY29udHJvbGxlcl9udW1iZXI6IHUxNiwKICAgICAgICBsb3dfZnJlcXVlbmN5X21vdG9yOiB1MTYsCiAgICAgICAgaGlnaF9mcmVxdWVuY3lfbW90b3I6IHUxNiwKICAgICkgewogICAgICAgIGxldCBTb21lKHN0cmVhbSkgPSBzZWxmLnN0cmVhbS51cGdyYWRlKCkgZWxzZSB7CiAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gZ2V0IHN0cmVhbSBiZWNhdXNlIGl0IGlzIGFscmVhZHkgZGVhbGxvY2F0ZWQiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH07CgogICAgICAgIHN0cmVhbS5ydW50aW1lLmNsb25lKCkuYmxvY2tfb24oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgIHN0cmVhbQogICAgICAgICAgICAgICAgLnRyeV9zZW5kX3BhY2tldCgKICAgICAgICAgICAgICAgICAgICBPdXRib3VuZFBhY2tldDo6Q29udHJvbGxlclJ1bWJsZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJfbnVtYmVyOiBjb250cm9sbGVyX251bWJlciBhcyB1OCwKICAgICAgICAgICAgICAgICAgICAgICAgbG93X2ZyZXF1ZW5jeV9tb3RvciwKICAgICAgICAgICAgICAgICAgICAgICAgaGlnaF9mcmVxdWVuY3lfbW90b3IsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiY29udHJvbGxlciBydW1ibGUiLAogICAgICAgICAgICAgICAgICAgIHRydWUsCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYXdhaXQ7CiAgICAgICAgfSk7CiAgICB9CgogICAgZm4gY29udHJvbGxlcl9ydW1ibGVfdHJpZ2dlcnMoCiAgICAgICAgJm11dCBzZWxmLAogICAgICAgIGNvbnRyb2xsZXJfbnVtYmVyOiB1MTYsCiAgICAgICAgbGVmdF90cmlnZ2VyX21vdG9yOiB1MTYsCiAgICAgICAgcmlnaHRfdHJpZ2dlcl9tb3RvcjogdTE2LAogICAgKSB7CiAgICAgICAgbGV0IFNvbWUoc3RyZWFtKSA9IHNlbGYuc3RyZWFtLnVwZ3JhZGUoKSBlbHNlIHsKICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBnZXQgc3RyZWFtIGJlY2F1c2UgaXQgaXMgYWxyZWFkeSBkZWFsbG9jYXRlZCIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfTsKCiAgICAgICAgc3RyZWFtLnJ1bnRpbWUuY2xvbmUoKS5ibG9ja19vbihhc3luYyBtb3ZlIHsKICAgICAgICAgICAgc3RyZWFtCiAgICAgICAgICAgICAgICAudHJ5X3NlbmRfcGFja2V0KAogICAgICAgICAgICAgICAgICAgIE91dGJvdW5kUGFja2V0OjpDb250cm9sbGVyVHJpZ2dlclJ1bWJsZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJfbnVtYmVyOiBjb250cm9sbGVyX251bWJlciBhcyB1OCwKICAgICAgICAgICAgICAgICAgICAgICAgbGVmdF90cmlnZ2VyX21vdG9yLAogICAgICAgICAgICAgICAgICAgICAgICByaWdodF90cmlnZ2VyX21vdG9yLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImNvbnRyb2xsZXIgcnVtYmxlIHRyaWdnZXJzIiwKICAgICAgICAgICAgICAgICAgICB0cnVlLAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmF3YWl0OwogICAgICAgIH0pOwogICAgfQoKICAgIGZuIGNvbnRyb2xsZXJfc2V0X21vdGlvbl9ldmVudF9zdGF0ZSgKICAgICAgICAmbXV0IHNlbGYsCiAgICAgICAgX2NvbnRyb2xsZXJfbnVtYmVyOiB1MTYsCiAgICAgICAgX21vdGlvbl90eXBlOiB1OCwKICAgICAgICBfcmVwb3J0X3JhdGVfaHo6IHUxNiwKICAgICkgewogICAgICAgIC8vIHVuc3VwcG9ydGVkOiBodHRwczovL2dpdGh1Yi5jb20vdzNjL2dhbWVwYWQvaXNzdWVzLzIxMQogICAgfQoKICAgIGZuIGNvbnRyb2xsZXJfc2V0X2FkYXB0aXZlX3RyaWdnZXJzKAogICAgICAgICZtdXQgc2VsZiwKICAgICAgICBfY29udHJvbGxlcl9udW1iZXI6IHUxNiwKICAgICAgICBfZXZlbnRfZmxhZ3M6IHU4LAogICAgICAgIF90eXBlX2xlZnQ6IHU4LAogICAgICAgIF90eXBlX3JpZ2h0OiB1OCwKICAgICAgICBfbGVmdDogJm11dCB1OCwKICAgICAgICBfcmlnaHQ6ICZtdXQgdTgsCiAgICApIHsKICAgICAgICAvLyB1bnN1cHBvcnRlZAogICAgfQoKICAgIGZuIGNvbnRyb2xsZXJfc2V0X2xlZCgmbXV0IHNlbGYsIF9jb250cm9sbGVyX251bWJlcjogdTE2LCBfcjogdTgsIF9nOiB1OCwgX2I6IHU4KSB7CiAgICAgICAgLy8gdW5zdXBwb3J0ZWQKICAgIH0KfQoKaW1wbCBDb25uZWN0aW9uTGlzdGVuZXJDIGZvciBTdHJlYW1Db25uZWN0aW9uTGlzdGVuZXIgewogICAgZm4gc3RhZ2Vfc3RhcnRpbmcoJm11dCBzZWxmLCBzdGFnZTogU3RhZ2UpIHsKICAgICAgICBsZXQgU29tZShzdHJlYW0pID0gc2VsZi5zdHJlYW0udXBncmFkZSgpIGVsc2UgewogICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIGdldCBzdHJlYW0gYmVjYXVzZSBpdCBpcyBhbHJlYWR5IGRlYWxsb2NhdGVkIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9OwoKICAgICAgICBsZXQgbXV0IGlwY19zZW5kZXIgPSBzdHJlYW0uaXBjX3NlbmRlci5jbG9uZSgpOwoKICAgICAgICBzdHJlYW0ucnVudGltZS5zcGF3bihhc3luYyBtb3ZlIHsKICAgICAgICAgICAgaXBjX3NlbmRlcgogICAgICAgICAgICAgICAgLnNlbmQoU3RyZWFtZXJJcGNNZXNzYWdlOjpXZWJTb2NrZXQoCiAgICAgICAgICAgICAgICAgICAgU3RyZWFtU2VydmVyTWVzc2FnZTo6RGVidWdMb2cgewogICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBmb3JtYXQhKCJTdGFydGluZyBTdGFnZToge30iLCBzdGFnZS5uYW1lKCkpLAogICAgICAgICAgICAgICAgICAgICAgICB0eTogTm9uZSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgICAgIC5hd2FpdDsKICAgICAgICB9KTsKICAgIH0KCiAgICBmbiBzdGFnZV9jb21wbGV0ZSgmbXV0IHNlbGYsIHN0YWdlOiBTdGFnZSkgewogICAgICAgIGxldCBTb21lKHN0cmVhbSkgPSBzZWxmLnN0cmVhbS51cGdyYWRlKCkgZWxzZSB7CiAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gZ2V0IHN0cmVhbSBiZWNhdXNlIGl0IGlzIGFscmVhZHkgZGVhbGxvY2F0ZWQiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH07CgogICAgICAgIGxldCBtdXQgaXBjX3NlbmRlciA9IHN0cmVhbS5pcGNfc2VuZGVyLmNsb25lKCk7CiAgICAgICAgaXBjX3NlbmRlci5ibG9ja2luZ19zZW5kKFN0cmVhbWVySXBjTWVzc2FnZTo6V2ViU29ja2V0KAogICAgICAgICAgICBTdHJlYW1TZXJ2ZXJNZXNzYWdlOjpEZWJ1Z0xvZyB7CiAgICAgICAgICAgICAgICBtZXNzYWdlOiBmb3JtYXQhKCJDb21wbGV0ZWQgU3RhZ2U6IHt9Iiwgc3RhZ2UubmFtZSgpKSwKICAgICAgICAgICAgICAgIHR5OiBOb25lLAogICAgICAgICAgICB9LAogICAgICAgICkpOwogICAgfQoKICAgIGZuIHN0YWdlX2ZhaWxlZCgmbXV0IHNlbGYsIHN0YWdlOiBTdGFnZSwgZXJyb3JfY29kZTogaTMyKSB7CiAgICAgICAgbGV0IFNvbWUoc3RyZWFtKSA9IHNlbGYuc3RyZWFtLnVwZ3JhZGUoKSBlbHNlIHsKICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBnZXQgc3RyZWFtIGJlY2F1c2UgaXQgaXMgYWxyZWFkeSBkZWFsbG9jYXRlZCIpOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfTsKCiAgICAgICAgbGV0IG11dCBpcGNfc2VuZGVyID0gc3RyZWFtLmlwY19zZW5kZXIuY2xvbmUoKTsKICAgICAgICBpcGNfc2VuZGVyLmJsb2NraW5nX3NlbmQoU3RyZWFtZXJJcGNNZXNzYWdlOjpXZWJTb2NrZXQoCiAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OkRlYnVnTG9nIHsKICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGZvcm1hdCEoCiAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCBTdGFnZToge30gd2l0aCBlcnJvciBjb2RlIHt9IiwKICAgICAgICAgICAgICAgICAgICBzdGFnZS5uYW1lKCksCiAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29kZQogICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgIHR5OiBTb21lKExvZ01lc3NhZ2VUeXBlOjpGYXRhbCksCiAgICAgICAgICAgIH0sCiAgICAgICAgKSk7CiAgICB9CgogICAgZm4gY29ubmVjdGlvbl9zdGFydGVkKCZtdXQgc2VsZikge30KCiAgICBmbiBjb25uZWN0aW9uX3Rlcm1pbmF0ZWQoJm11dCBzZWxmLCBlcnJvcl9jb2RlOiBpMzIpIHsKICAgICAgICBsZXQgU29tZShzdHJlYW0pID0gc2VsZi5zdHJlYW0udXBncmFkZSgpIGVsc2UgewogICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIGdldCBzdHJlYW0gYmVjYXVzZSBpdCBpcyBhbHJlYWR5IGRlYWxsb2NhdGVkIik7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9OwoKICAgICAgICBsZXQgbXV0IGlwY19zZW5kZXIgPSBzdHJlYW0uaXBjX3NlbmRlci5jbG9uZSgpOwogICAgICAgIGlwY19zZW5kZXIuYmxvY2tpbmdfc2VuZChTdHJlYW1lcklwY01lc3NhZ2U6OldlYlNvY2tldCgKICAgICAgICAgICAgU3RyZWFtU2VydmVyTWVzc2FnZTo6Q29ubmVjdGlvblRlcm1pbmF0ZWQgeyBlcnJvcl9jb2RlIH0sCiAgICAgICAgKSk7CgogICAgICAgIHN0cmVhbS5ydW50aW1lLmNsb25lKCkuYmxvY2tfb24oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgIHN0cmVhbS5zdG9wKCkuYXdhaXQ7CiAgICAgICAgfSk7CiAgICB9CgogICAgZm4gbG9nX21lc3NhZ2UoJm11dCBzZWxmLCBtZXNzYWdlOiAmc3RyKSB7CiAgICAgICAgaW5mbyEodGFyZ2V0OiAibW9vbmxpZ2h0IiwgInt9IiwgbWVzc2FnZS50cmltKCkpOwogICAgfQoKICAgIGZuIGNvbm5lY3Rpb25fc3RhdHVzX3VwZGF0ZSgmbXV0IHNlbGYsIHN0YXR1czogQ29ubmVjdGlvblN0YXR1cykgewogICAgICAgIGxldCBTb21lKHN0cmVhbSkgPSBzZWxmLnN0cmVhbS51cGdyYWRlKCkgZWxzZSB7CiAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gZ2V0IHN0cmVhbSBiZWNhdXNlIGl0IGlzIGFscmVhZHkgZGVhbGxvY2F0ZWQiKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH07CgogICAgICAgIHN0cmVhbS5jbG9uZSgpLnJ1bnRpbWUuYmxvY2tfb24oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgIHN0cmVhbQogICAgICAgICAgICAgICAgLnRyeV9zZW5kX3BhY2tldCgKICAgICAgICAgICAgICAgICAgICBPdXRib3VuZFBhY2tldDo6R2VuZXJhbCB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IEdlbmVyYWxTZXJ2ZXJNZXNzYWdlOjpDb25uZWN0aW9uU3RhdHVzVXBkYXRlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogc3RhdHVzLmludG8oKSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJjb25uZWN0aW9uIHN0YXR1cyB1cGRhdGUiLAogICAgICAgICAgICAgICAgICAgIHRydWUsCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYXdhaXQKICAgICAgICB9KQogICAgfQp9Cg=="},{"path":"streamer/src/transport/mod.rs","sha256":"4537b868d01cfb6d15308825a79a9750708d1e439e03a854ba6bfc6eb48c8585","contentBase64":"dXNlIHN0ZDo6b3BzOjpSYW5nZTsKCnVzZSBhc3luY190cmFpdDo6YXN5bmNfdHJhaXQ7CnVzZSBjb21tb246OnsKICAgIGFwaV9iaW5kaW5nczo6ewogICAgICAgIEdlbmVyYWxDbGllbnRNZXNzYWdlLCBHZW5lcmFsU2VydmVyTWVzc2FnZSwgU3RyZWFtU2V0dGluZ3MsIFN0cmVhbWVyU3RhdHNVcGRhdGUsCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkLAogICAgfSwKICAgIGlwYzo6e1NlcnZlcklwY01lc3NhZ2UsIFN0cmVhbWVySXBjTWVzc2FnZX0sCn07CnVzZSBsb2c6Ondhcm47CnVzZSBtb29ubGlnaHRfY29tbW9uOjpzdHJlYW06OnsKICAgIGF1ZGlvOjp7QXVkaW9Db25maWcsIE9wdXNNdWx0aXN0cmVhbUNvbmZpZ30sCiAgICBjb250cm9sOjp7CiAgICAgICAgQ29udHJvbGxlckJ1dHRvbnMsIENvbnRyb2xsZXJDYXBhYmlsaXRpZXMsIENvbnRyb2xsZXJUeXBlLCBLZXlBY3Rpb24sIEtleUZsYWdzLAogICAgICAgIEtleU1vZGlmaWVycywgTW91c2VCdXR0b24sIE1vdXNlQnV0dG9uQWN0aW9uLCBUb3VjaEV2ZW50VHlwZSwKICAgIH0sCiAgICB2aWRlbzo6e0RlY29kZVJlc3VsdCwgVmlkZW9EZWNvZGVVbml0LCBWaWRlb1NldHVwfSwKfTsKdXNlIG51bTo6RnJvbVByaW1pdGl2ZTsKdXNlIHRoaXNlcnJvcjo6RXJyb3I7Cgp1c2UgY3JhdGU6OmJ1ZmZlcjo6Qnl0ZUJ1ZmZlcjsKCnB1YiBtb2Qgd2ViX3NvY2tldDsKcHViIG1vZCB3ZWJydGM7CgovLy8gTG9vayBhdCBUcmFuc3BvcnRDaGFubmVsSWQKI1tkZXJpdmUoRGVidWcsIENsb25lLCBDb3B5KV0KcHViIHN0cnVjdCBUcmFuc3BvcnRDaGFubmVsKHB1YiB1OCk7CgojW2Rlcml2ZShEZWJ1ZywgRXJyb3IpXQpwdWIgZW51bSBUcmFuc3BvcnRFcnJvciB7CiAgICAjW2Vycm9yKCJ0aGUgY2hhbm5lbCB3YXMgY2xvc2VkIildCiAgICBDaGFubmVsQ2xvc2VkLAogICAgI1tlcnJvcigidGhlIHRyYW5zcG9ydCB3YXMgY2xvc2VkIildCiAgICBDbG9zZWQsCiAgICAjW2Vycm9yKCJpbXBsZW1lbnRhdGlvbjogezB9IildCiAgICBJbXBsZW1lbnRhdGlvbihhbnlob3c6OkVycm9yKSwKfQoKI1tkZXJpdmUoRGVidWcpXQpwdWIgZW51bSBJbmJvdW5kUGFja2V0IHsKICAgIEdlbmVyYWwgewogICAgICAgIG1lc3NhZ2U6IEdlbmVyYWxDbGllbnRNZXNzYWdlLAogICAgfSwKICAgIE1vdXNlTW92ZSB7CiAgICAgICAgZGVsdGFfeDogaTE2LAogICAgICAgIGRlbHRhX3k6IGkxNiwKICAgIH0sCiAgICBNb3VzZVBvc2l0aW9uIHsKICAgICAgICB4OiBpMTYsCiAgICAgICAgeTogaTE2LAogICAgICAgIHJlZmVyZW5jZV93aWR0aDogaTE2LAogICAgICAgIHJlZmVyZW5jZV9oZWlnaHQ6IGkxNiwKICAgIH0sCiAgICBNb3VzZUJ1dHRvbiB7CiAgICAgICAgYWN0aW9uOiBNb3VzZUJ1dHRvbkFjdGlvbiwKICAgICAgICBidXR0b246IE1vdXNlQnV0dG9uLAogICAgfSwKICAgIEhpZ2hSZXNTY3JvbGwgewogICAgICAgIGRlbHRhX3g6IGkxNiwKICAgICAgICBkZWx0YV95OiBpMTYsCiAgICB9LAogICAgU2Nyb2xsIHsKICAgICAgICBkZWx0YV94OiBpOCwKICAgICAgICBkZWx0YV95OiBpOCwKICAgIH0sCiAgICBLZXkgewogICAgICAgIGFjdGlvbjogS2V5QWN0aW9uLAogICAgICAgIG1vZGlmaWVyczogS2V5TW9kaWZpZXJzLAogICAgICAgIGtleTogdTE2LAogICAgICAgIGZsYWdzOiBLZXlGbGFncywKICAgIH0sCiAgICBUZXh0IHsKICAgICAgICB0ZXh0OiBTdHJpbmcsCiAgICB9LAogICAgQ29udHJvbGxlckNvbm5lY3RlZCB7CiAgICAgICAgaWQ6IHU4LAogICAgICAgIHR5OiBDb250cm9sbGVyVHlwZSwKICAgICAgICBzdXBwb3J0ZWRfYnV0dG9uczogQ29udHJvbGxlckJ1dHRvbnMsCiAgICAgICAgY2FwYWJpbGl0aWVzOiBDb250cm9sbGVyQ2FwYWJpbGl0aWVzLAogICAgfSwKICAgIENvbnRyb2xsZXJEaXNjb25uZWN0ZWQgewogICAgICAgIGlkOiB1OCwKICAgIH0sCiAgICBDb250cm9sbGVyU3RhdGUgewogICAgICAgIGlkOiB1OCwKICAgICAgICBidXR0b25zOiBDb250cm9sbGVyQnV0dG9ucywKICAgICAgICBsZWZ0X3RyaWdnZXI6IHU4LAogICAgICAgIHJpZ2h0X3RyaWdnZXI6IHU4LAogICAgICAgIGxlZnRfc3RpY2tfeDogaTE2LAogICAgICAgIGxlZnRfc3RpY2tfeTogaTE2LAogICAgICAgIHJpZ2h0X3N0aWNrX3g6IGkxNiwKICAgICAgICByaWdodF9zdGlja195OiBpMTYsCiAgICB9LAogICAgVG91Y2ggewogICAgICAgIHBvaW50ZXJfaWQ6IHUzMiwKICAgICAgICB4OiBmMzIsCiAgICAgICAgeTogZjMyLAogICAgICAgIHByZXNzdXJlX29yX2Rpc3RhbmNlOiBmMzIsCiAgICAgICAgY29udGFjdF9hcmVhX21ham9yOiBmMzIsCiAgICAgICAgY29udGFjdF9hcmVhX21pbm9yOiBmMzIsCiAgICAgICAgcm90YXRpb246IE9wdGlvbjx1MTY+LAogICAgICAgIGV2ZW50X3R5cGU6IFRvdWNoRXZlbnRUeXBlLAogICAgfSwKICAgIFJ0dCB7CiAgICAgICAgc2VxdWVuY2VfbnVtYmVyOiB1MTYsCiAgICB9LAogICAgUmVxdWVzdFZpZGVvSWRyLAp9CgppbXBsIEluYm91bmRQYWNrZXQgewogICAgY29uc3QgREVGQVVMVF9DT05UUk9MTEVSX0JVVFRPTlM6IENvbnRyb2xsZXJCdXR0b25zID0gQ29udHJvbGxlckJ1dHRvbnM6OmFsbCgpOwogICAgY29uc3QgREVGQVVMVF9DT05UUk9MTEVSX0NBUEFCSUxJVElFUzogQ29udHJvbGxlckNhcGFiaWxpdGllcyA9IENvbnRyb2xsZXJDYXBhYmlsaXRpZXM6OmVtcHR5KCk7CgogICAgcHViIGNvbnN0IENPTlRST0xMRVJfQ0hBTk5FTFM6IFt1ODsgMTZdID0gWwogICAgICAgIFRyYW5zcG9ydENoYW5uZWxJZDo6Q09OVFJPTExFUjAsCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSMSwKICAgICAgICBUcmFuc3BvcnRDaGFubmVsSWQ6OkNPTlRST0xMRVIyLAogICAgICAgIFRyYW5zcG9ydENoYW5uZWxJZDo6Q09OVFJPTExFUjMsCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSNCwKICAgICAgICBUcmFuc3BvcnRDaGFubmVsSWQ6OkNPTlRST0xMRVI1LAogICAgICAgIFRyYW5zcG9ydENoYW5uZWxJZDo6Q09OVFJPTExFUjYsCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSNywKICAgICAgICBUcmFuc3BvcnRDaGFubmVsSWQ6OkNPTlRST0xMRVI4LAogICAgICAgIFRyYW5zcG9ydENoYW5uZWxJZDo6Q09OVFJPTExFUjksCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSMTAsCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSMTEsCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSMTIsCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSMTMsCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSMTQsCiAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSMTUsCiAgICBdOwoKICAgIHB1YiBmbiBkZXNlcmlhbGl6ZShjaGFubmVsOiBUcmFuc3BvcnRDaGFubmVsLCBieXRlczogJlt1OF0pIC0+IE9wdGlvbjxTZWxmPiB7CiAgICAgICAgbGV0IG11dCBidWZmZXIgPSBCeXRlQnVmZmVyOjpuZXcoYnl0ZXMpOwoKICAgICAgICBtYXRjaCBjaGFubmVsIHsKICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6OkdFTkVSQUwpID0+IHsKICAgICAgICAgICAgICAgIGlmIGJ1ZmZlci5yZW1haW5pbmcoKSA8IDIgewogICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VkUGFja2V0XTogZmFpbGVkIHRvIHJlYWQgZ2VuZXJhbCBtZXNzYWdlIik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbGV0IGxlbiA9IGJ1ZmZlci5nZXRfdTE2KCk7CiAgICAgICAgICAgICAgICBsZXQgdGV4dCA9IG1hdGNoIGJ1ZmZlci5nZXRfdXRmOF9yYXcobGVuIGFzIHVzaXplKSB7CiAgICAgICAgICAgICAgICAgICAgT2sodGV4dCkgPT4gdGV4dCwKICAgICAgICAgICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VkUGFja2V0XTogZmFpbGVkIHRvIHJlYWQgYSBnZW5lcmFsIG1lc3NhZ2U6IHtlcnJ9Iik7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9IG1hdGNoIHNlcmRlX2pzb246OmZyb21fc3RyKHRleHQpIHsKICAgICAgICAgICAgICAgICAgICBPayhtZXNzYWdlKSA9PiBtZXNzYWdlLAogICAgICAgICAgICAgICAgICAgIEVycihlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgd2FybiEoIltJbmJvdWRQYWNrZXRdOiBmYWlsZWQgdG8gZGVzZXJpYWxpemUgZ2VuZXJhbCBtZXNzYWdlOiB7ZXJyfSIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIFNvbWUoU2VsZjo6R2VuZXJhbCB7IG1lc3NhZ2UgfSkKICAgICAgICAgICAgfQogICAgICAgICAgICBUcmFuc3BvcnRDaGFubmVsKFRyYW5zcG9ydENoYW5uZWxJZDo6U1RBVFMpID0+IHsKICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VuZFBhY2tldF06IHRyaWVkIHRvIGRlc2VyaWFsaXplIHN0YXRzIHBhY2tldCwgdGhpcyBzaG91bGRuJ3QgaGFwcGVuIik7CiAgICAgICAgICAgICAgICBOb25lCiAgICAgICAgICAgIH0KICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6OkhPU1RfVklERU8pID0+IHsKICAgICAgICAgICAgICAgIGlmIGJ1ZmZlci5yZW1haW5pbmcoKSA8IDEgewogICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VkUGFja2V0XTogZmFpbGVkIHRvIHZpZGVvIG1lc3NhZ2UiKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBsZXQgdHkgPSBidWZmZXIuZ2V0X3U4KCk7CiAgICAgICAgICAgICAgICBpZiB0eSA9PSAwIHsKICAgICAgICAgICAgICAgICAgICBTb21lKEluYm91bmRQYWNrZXQ6OlJlcXVlc3RWaWRlb0lkcikKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIltJbmJvdW5kUGFja2V0XTogZmFpbGVkIHRvIGRlc2VyaWFsaXplIGhvc3QgdmlkZW8gcGFja2V0Iik7CiAgICAgICAgICAgICAgICAgICAgTm9uZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIFRyYW5zcG9ydENoYW5uZWwoVHJhbnNwb3J0Q2hhbm5lbElkOjpIT1NUX0FVRElPKSA9PiB7CiAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAiW0luYm91bmRQYWNrZXRdOiB0cmllZCB0byBkZXNlcmlhbGl6ZSBob3N0IGF1ZGlvIHBhY2tldCwgdGhpcyBzaG91bGRuJ3QgaGFwcGVuIgogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIE5vbmUKICAgICAgICAgICAgfQogICAgICAgICAgICBUcmFuc3BvcnRDaGFubmVsKAogICAgICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpNT1VTRV9BQlNPTFVURQogICAgICAgICAgICAgICAgfCBUcmFuc3BvcnRDaGFubmVsSWQ6Ok1PVVNFX1JFTElBQkxFCiAgICAgICAgICAgICAgICB8IFRyYW5zcG9ydENoYW5uZWxJZDo6TU9VU0VfUkVMQVRJVkUsCiAgICAgICAgICAgICkgPT4gewogICAgICAgICAgICAgICAgaWYgYnVmZmVyLnJlbWFpbmluZygpIDwgMSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIltJbmJvdWRQYWNrZXRdOiBmYWlsZWQgdG8gcmVhZCBtb3VzZSBtZXNzYWdlIik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbGV0IHR5ID0gYnVmZmVyLmdldF91OCgpOwogICAgICAgICAgICAgICAgaWYgdHkgPT0gMCB7CiAgICAgICAgICAgICAgICAgICAgLy8gTW92ZQogICAgICAgICAgICAgICAgICAgIGlmIGJ1ZmZlci5yZW1haW5pbmcoKSA8IDQgewogICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgiW0luYm91ZFBhY2tldF06IGZhaWxlZCB0byByZWFkIG1vdXNlIG1vdmUgbWVzc2FnZSIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YV94ID0gYnVmZmVyLmdldF9pMTYoKTsKICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFfeSA9IGJ1ZmZlci5nZXRfaTE2KCk7CgogICAgICAgICAgICAgICAgICAgIFNvbWUoSW5ib3VuZFBhY2tldDo6TW91c2VNb3ZlIHsgZGVsdGFfeCwgZGVsdGFfeSB9KQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIHR5ID09IDEgewogICAgICAgICAgICAgICAgICAgIC8vIFBvc2l0aW9uCiAgICAgICAgICAgICAgICAgICAgaWYgYnVmZmVyLnJlbWFpbmluZygpIDwgOCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VkUGFja2V0XTogZmFpbGVkIHRvIHJlYWQgbW91c2UgcG9zaXRpb24gbWVzc2FnZSIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGxldCB4ID0gYnVmZmVyLmdldF9pMTYoKTsKICAgICAgICAgICAgICAgICAgICBsZXQgeSA9IGJ1ZmZlci5nZXRfaTE2KCk7CiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZmVyZW5jZV93aWR0aCA9IGJ1ZmZlci5nZXRfaTE2KCk7CiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZmVyZW5jZV9oZWlnaHQgPSBidWZmZXIuZ2V0X2kxNigpOwoKICAgICAgICAgICAgICAgICAgICBTb21lKEluYm91bmRQYWNrZXQ6Ok1vdXNlUG9zaXRpb24gewogICAgICAgICAgICAgICAgICAgICAgICB4LAogICAgICAgICAgICAgICAgICAgICAgICB5LAogICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2Vfd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZV9oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiB0eSA9PSAyIHsKICAgICAgICAgICAgICAgICAgICAvLyBCdXR0b24gUHJlc3MgLyBSZWxlYXNlCiAgICAgICAgICAgICAgICAgICAgaWYgYnVmZmVyLnJlbWFpbmluZygpIDwgMiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VkUGFja2V0XTogZmFpbGVkIHRvIHJlYWQgbW91c2UgcHJlc3MgLyByZWxlYXNlIG1lc3NhZ2UiKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBsZXQgYWN0aW9uID0gaWYgYnVmZmVyLmdldF9ib29sKCkgewogICAgICAgICAgICAgICAgICAgICAgICBNb3VzZUJ1dHRvbkFjdGlvbjo6UHJlc3MKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBNb3VzZUJ1dHRvbkFjdGlvbjo6UmVsZWFzZQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgbGV0IFNvbWUoYnV0dG9uKSA9IE1vdXNlQnV0dG9uOjpmcm9tX3U4KGJ1ZmZlci5nZXRfdTgoKSkgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VuZFBhY2tldF06IHJlY2VpdmVkIGludmFsaWQgbW91c2UgYnV0dG9uIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lOwogICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgIFNvbWUoSW5ib3VuZFBhY2tldDo6TW91c2VCdXR0b24geyBhY3Rpb24sIGJ1dHRvbiB9KQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIHR5ID09IDMgewogICAgICAgICAgICAgICAgICAgIC8vIE1vdXNlIFdoZWVsIEhpZ2ggUmVzCiAgICAgICAgICAgICAgICAgICAgaWYgYnVmZmVyLnJlbWFpbmluZygpIDwgNCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VkUGFja2V0XTogZmFpbGVkIHRvIHJlYWQgbW91c2Ugd2hlZWwgaGlnaCByZXMgbWVzc2FnZSIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YV94ID0gYnVmZmVyLmdldF9pMTYoKTsKICAgICAgICAgICAgICAgICAgICBsZXQgZGVsdGFfeSA9IGJ1ZmZlci5nZXRfaTE2KCk7CgogICAgICAgICAgICAgICAgICAgIFNvbWUoSW5ib3VuZFBhY2tldDo6SGlnaFJlc1Njcm9sbCB7IGRlbHRhX3gsIGRlbHRhX3kgfSkKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiB0eSA9PSA0IHsKICAgICAgICAgICAgICAgICAgICAvLyBNb3VzZSBXaGVlbCBOb3JtYWwKICAgICAgICAgICAgICAgICAgICBpZiBidWZmZXIucmVtYWluaW5nKCkgPCAyIHsKICAgICAgICAgICAgICAgICAgICAgICAgd2FybiEoIltJbmJvdWRQYWNrZXRdOiBmYWlsZWQgdG8gcmVhZCBtb3VzZSB3aGVlbCBub3JtYWwgbWVzc2FnZSIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YV94ID0gYnVmZmVyLmdldF9pOCgpOwogICAgICAgICAgICAgICAgICAgIGxldCBkZWx0YV95ID0gYnVmZmVyLmdldF9pOCgpOwoKICAgICAgICAgICAgICAgICAgICBTb21lKEluYm91bmRQYWNrZXQ6OlNjcm9sbCB7IGRlbHRhX3gsIGRlbHRhX3kgfSkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoCiAgICAgICAgICAgICAgICAgICAgICAgICJbSW5ib3VuZFBhY2tldF06IHRyaWVkIHRvIGRlc2VyaWFsaXplIG1vdXNlIHBhY2tldCB3aXRoIHR5cGUge3R5fSwgdGhpcyBzaG91bGRuJ3QgaGFwcGVuIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgTm9uZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIFRyYW5zcG9ydENoYW5uZWwoVHJhbnNwb3J0Q2hhbm5lbElkOjpLRVlCT0FSRCkgPT4gewogICAgICAgICAgICAgICAgaWYgYnVmZmVyLnJlbWFpbmluZygpIDwgMSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIltJbmJvdWRQYWNrZXRdOiBmYWlsZWQgdG8gcmVhZCBrZXlib2FyZCBtZXNzYWdlIik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbGV0IHR5ID0gYnVmZmVyLmdldF91OCgpOwogICAgICAgICAgICAgICAgaWYgdHkgPT0gMCB7CiAgICAgICAgICAgICAgICAgICAgLy8gS2V5IHByZXNzIC8gcmVsZWFzZQogICAgICAgICAgICAgICAgICAgIGlmIGJ1ZmZlci5yZW1haW5pbmcoKSA8IDQgewogICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgiW0luYm91ZFBhY2tldF06IGZhaWxlZCB0byByZWFkIGtleSBwcmVzcyAvIHJlbGVhc2UgbWVzc2FnZSIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGxldCBhY3Rpb24gPSBpZiBidWZmZXIuZ2V0X2Jvb2woKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEtleUFjdGlvbjo6RG93bgogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIEtleUFjdGlvbjo6VXAKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllcnMgPQogICAgICAgICAgICAgICAgICAgICAgICBLZXlNb2RpZmllcnM6OmZyb21fYml0cyhidWZmZXIuZ2V0X3U4KCkgYXMgaTgpLnVud3JhcF9vcl9lbHNlKHx8IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VuZFBhY2tldF06IHJlY2VpdmVkIGludmFsaWQga2V5IG1vZGlmaWVycyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgS2V5TW9kaWZpZXJzOjplbXB0eSgpCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIGxldCBrZXkgPSBidWZmZXIuZ2V0X3UxNigpOwoKICAgICAgICAgICAgICAgICAgICBTb21lKEluYm91bmRQYWNrZXQ6OktleSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzLAogICAgICAgICAgICAgICAgICAgICAgICBrZXksCiAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzOiBLZXlGbGFnczo6ZW1wdHkoKSwKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIHR5ID09IDEgewogICAgICAgICAgICAgICAgICAgIGlmIGJ1ZmZlci5yZW1haW5pbmcoKSA8IDEgewogICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgiW0luYm91ZFBhY2tldF06IGZhaWxlZCB0byByZWFkIGtleSBhcyB0ZXh0IG1lc3NhZ2UiKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBsZXQgbGVuID0gYnVmZmVyLmdldF91OCgpOwogICAgICAgICAgICAgICAgICAgIGxldCBPayhrZXkpID0gYnVmZmVyLmdldF91dGY4X3JhdyhsZW4gYXMgdXNpemUpIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgiW0luYm91bmRQYWNrZXRdOiByZWNlaXZlZCBpbnZhbGlkIGtleWJvYXJkIHRleHQgbWVzc2FnZSIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgICAgICBTb21lKEluYm91bmRQYWNrZXQ6OlRleHQgewogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiBrZXkudG9fb3duZWQoKSwKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAgICAgIltJbmJvdW5kUGFja2V0XTogdHJpZWQgdG8gZGVzZXJpYWxpemUga2V5Ym9hcmQgcGFja2V0IHdpdGggdHlwZSB7dHl9LCB0aGlzIHNob3VsZG4ndCBoYXBwZW4iCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBOb25lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6OlRPVUNIKSA9PiB7CiAgICAgICAgICAgICAgICBpZiBidWZmZXIucmVtYWluaW5nKCkgPCAyNyB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIltJbmJvdWRQYWNrZXRdOiBmYWlsZWQgdG8gcmVhZCB0b3VjaCBtZXNzYWdlIik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgbGV0IGV2ZW50X3R5cGUgPSBtYXRjaCBidWZmZXIuZ2V0X3U4KCkgewogICAgICAgICAgICAgICAgICAgIDAgPT4gVG91Y2hFdmVudFR5cGU6OkRvd24sCiAgICAgICAgICAgICAgICAgICAgMSA9PiBUb3VjaEV2ZW50VHlwZTo6TW92ZSwKICAgICAgICAgICAgICAgICAgICAyID0+IFRvdWNoRXZlbnRUeXBlOjpDYW5jZWwsCiAgICAgICAgICAgICAgICAgICAgXyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKCJbSW5ib3VuZFBhY2tldF06IHJlY2VpdmVkIGludmFsaWQgdG91Y2ggZXZlbnQgdHlwZSIpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgbGV0IHBvaW50ZXJfaWQgPSBidWZmZXIuZ2V0X3UzMigpOwogICAgICAgICAgICAgICAgbGV0IHggPSBidWZmZXIuZ2V0X2YzMigpOwogICAgICAgICAgICAgICAgbGV0IHkgPSBidWZmZXIuZ2V0X2YzMigpOwogICAgICAgICAgICAgICAgbGV0IHByZXNzdXJlX29yX2Rpc3RhbmNlID0gYnVmZmVyLmdldF9mMzIoKTsKICAgICAgICAgICAgICAgIGxldCBjb250YWN0X2FyZWFfbWFqb3IgPSBidWZmZXIuZ2V0X2YzMigpOwogICAgICAgICAgICAgICAgbGV0IGNvbnRhY3RfYXJlYV9taW5vciA9IGJ1ZmZlci5nZXRfZjMyKCk7CiAgICAgICAgICAgICAgICBsZXQgcm90YXRpb24gPSBidWZmZXIuZ2V0X3UxNigpOwoKICAgICAgICAgICAgICAgIFNvbWUoSW5ib3VuZFBhY2tldDo6VG91Y2ggewogICAgICAgICAgICAgICAgICAgIHBvaW50ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgeCwKICAgICAgICAgICAgICAgICAgICB5LAogICAgICAgICAgICAgICAgICAgIHByZXNzdXJlX29yX2Rpc3RhbmNlLAogICAgICAgICAgICAgICAgICAgIGNvbnRhY3RfYXJlYV9tYWpvciwKICAgICAgICAgICAgICAgICAgICBjb250YWN0X2FyZWFfbWlub3IsCiAgICAgICAgICAgICAgICAgICAgcm90YXRpb246IFNvbWUocm90YXRpb24pLAogICAgICAgICAgICAgICAgICAgIGV2ZW50X3R5cGUsCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9CiAgICAgICAgICAgIFRyYW5zcG9ydENoYW5uZWwoVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSUykgPT4gewogICAgICAgICAgICAgICAgaWYgYnVmZmVyLnJlbWFpbmluZygpIDwgMSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIltJbmJvdWRQYWNrZXRdOiBmYWlsZWQgdG8gcmVhZCBjb250cm9sbGVyIG1lc3NhZ2UiKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBsZXQgdHkgPSBidWZmZXIuZ2V0X3U4KCk7CiAgICAgICAgICAgICAgICBpZiB0eSA9PSAwIHsKICAgICAgICAgICAgICAgICAgICAvLyBhZGQgY29udHJvbGxlcgogICAgICAgICAgICAgICAgICAgIGlmIGJ1ZmZlci5yZW1haW5pbmcoKSA8IDcgewogICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgiW0luYm91ZFBhY2tldF06IGZhaWxlZCB0byBjb250cm9sbGVyIGFkZCBtZXNzYWdlIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbGV0IGlkID0gYnVmZmVyLmdldF91OCgpOwogICAgICAgICAgICAgICAgICAgIGxldCBzdXBwb3J0ZWRfYnV0dG9ucyA9IENvbnRyb2xsZXJCdXR0b25zOjpmcm9tX2JpdHMoYnVmZmVyLmdldF91MzIoKSkKICAgICAgICAgICAgICAgICAgICAgICAgLnVud3JhcF9vcl9lbHNlKHx8IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcm4hKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbSW5ib3VuZFBhY2tldF06IHJlY2VpdmVkIGEgY29udHJvbGxlciB3aXRoIGludmFsaWQgYnV0dG9uIGxheW91dCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxmOjpERUZBVUxUX0NPTlRST0xMRVJfQlVUVE9OUwogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICBsZXQgY2FwYWJpbGl0aWVzID0gQ29udHJvbGxlckNhcGFiaWxpdGllczo6ZnJvbV9iaXRzKGJ1ZmZlci5nZXRfdTE2KCkpCiAgICAgICAgICAgICAgICAgICAgICAgIC51bndyYXBfb3JfZWxzZSh8fCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0luYm91bmRQYWNrZXRdOiByZWNlaXZlZCBhIGNvbnRyb2xsZXIgd2l0aCBpbnZhbGlkIGNhcGFiaWxpdGllcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxmOjpERUZBVUxUX0NPTlRST0xMRVJfQ0FQQUJJTElUSUVTCiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgICAgICAgICBTb21lKEluYm91bmRQYWNrZXQ6OkNvbnRyb2xsZXJDb25uZWN0ZWQgewogICAgICAgICAgICAgICAgICAgICAgICBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgdHk6IENvbnRyb2xsZXJUeXBlOjpVbmtub3duLAogICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfYnV0dG9ucywKICAgICAgICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzLAogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgdHkgPT0gMSB7CiAgICAgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGNvbnRyb2xsZXIKICAgICAgICAgICAgICAgICAgICBpZiBidWZmZXIucmVtYWluaW5nKCkgPCAxIHsKICAgICAgICAgICAgICAgICAgICAgICAgd2FybiEoIltJbmJvdWRQYWNrZXRdOiBmYWlsZWQgdG8gcmVhZCBjb250cm9sbGVyIHJlbW92ZSBtZXNzYWdlIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbGV0IGlkID0gYnVmZmVyLmdldF91OCgpOwoKICAgICAgICAgICAgICAgICAgICBTb21lKEluYm91bmRQYWNrZXQ6OkNvbnRyb2xsZXJEaXNjb25uZWN0ZWQgeyBpZCB9KQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAgICAgIltJbmJvdW5kUGFja2V0XTogdHJpZWQgdG8gZGVzZXJpYWxpemUgY29udHJvbGxlcnMgcGFja2V0IHdpdGggdHlwZSB7dHl9LCB0aGlzIHNob3VsZG4ndCBoYXBwZW4iCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBOb25lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChjaGFubmVsX2lkKSBpZiBTZWxmOjpDT05UUk9MTEVSX0NIQU5ORUxTLmNvbnRhaW5zKCZjaGFubmVsX2lkKSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgU29tZSgoZ2FtZXBhZF9pZCwgXykpID0gU2VsZjo6Q09OVFJPTExFUl9DSEFOTkVMUwogICAgICAgICAgICAgICAgICAgIC5pdGVyKCkKICAgICAgICAgICAgICAgICAgICAuZW51bWVyYXRlKCkKICAgICAgICAgICAgICAgICAgICAuZmluZCh8KF8sIGNtcF9jaGFubmVsX2lkKXwgKipjbXBfY2hhbm5lbF9pZCA9PSBjaGFubmVsX2lkKQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIltJbmJvdW5kUGFja2V0XTogdW5rbm93biB0cmFuc3BvcnQgY2hhbm5lbDoge2NoYW5uZWxfaWR9Iik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIGlmIGJ1ZmZlci5yZW1haW5pbmcoKSA8IDEgewogICAgICAgICAgICAgICAgICAgIHdhcm4hKAogICAgICAgICAgICAgICAgICAgICAgICAiW0luYm91ZFBhY2tldF06IGZhaWxlZCB0byByZWFkIGNvbnRyb2xsZXIgc3RhdGUgbWVzc2FnZSB7Y2hhbm5lbF9pZH0sIGdhbWVwYWQ6IHtnYW1lcGFkX2lkfSIKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGxldCB0eSA9IGJ1ZmZlci5nZXRfdTgoKTsKICAgICAgICAgICAgICAgIGlmIHR5ID09IDAgewogICAgICAgICAgICAgICAgICAgIC8vIFN0YXRlCiAgICAgICAgICAgICAgICAgICAgaWYgYnVmZmVyLnJlbWFpbmluZygpIDwgMTQgewogICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbSW5ib3VkUGFja2V0XTogZmFpbGVkIHRvIHJlYWQgY29udHJvbGxlciBzdGF0ZSBtZXNzYWdlIHtjaGFubmVsX2lkfSwgZ2FtZXBhZDoge2dhbWVwYWRfaWR9IgogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGxldCBTb21lKGJ1dHRvbnMpID0gQ29udHJvbGxlckJ1dHRvbnM6OmZyb21fYml0cyhidWZmZXIuZ2V0X3UzMigpKSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgd2FybiEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0luYm91bmRQYWNrZXRdOiByZWNlaXZlZCBpbnZhbGlkIGNvbnRyb2xsZXIgYnV0dG9ucyBmb3IgY29udHJvbGxlciB7Z2FtZXBhZF9pZH0iCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lOwogICAgICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgICAgIGxldCBsZWZ0X3RyaWdnZXIgPSBidWZmZXIuZ2V0X3U4KCk7CiAgICAgICAgICAgICAgICAgICAgbGV0IHJpZ2h0X3RyaWdnZXIgPSBidWZmZXIuZ2V0X3U4KCk7CiAgICAgICAgICAgICAgICAgICAgbGV0IGxlZnRfc3RpY2tfeCA9IGJ1ZmZlci5nZXRfaTE2KCk7CiAgICAgICAgICAgICAgICAgICAgbGV0IGxlZnRfc3RpY2tfeSA9IGJ1ZmZlci5nZXRfaTE2KCk7CiAgICAgICAgICAgICAgICAgICAgbGV0IHJpZ2h0X3N0aWNrX3ggPSBidWZmZXIuZ2V0X2kxNigpOwogICAgICAgICAgICAgICAgICAgIGxldCByaWdodF9zdGlja195ID0gYnVmZmVyLmdldF9pMTYoKTsKCiAgICAgICAgICAgICAgICAgICAgU29tZShJbmJvdW5kUGFja2V0OjpDb250cm9sbGVyU3RhdGUgewogICAgICAgICAgICAgICAgICAgICAgICBpZDogZ2FtZXBhZF9pZCBhcyB1OCwKICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9ucywKICAgICAgICAgICAgICAgICAgICAgICAgbGVmdF90cmlnZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICByaWdodF90cmlnZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICBsZWZ0X3N0aWNrX3gsCiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRfc3RpY2tfeSwKICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRfc3RpY2tfeCwKICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHRfc3RpY2tfeSwKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAgICAgIltJbmJvdW5kUGFja2V0XTogdHJpZWQgdG8gZGVzZXJpYWxpemUgY29udHJvbGxlciB7Z2FtZXBhZF9pZH0gcGFja2V0IHdpdGggdHlwZSB7dHl9LCB0aGlzIHNob3VsZG4ndCBoYXBwZW4iCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBOb25lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6OlJUVCkgPT4gewogICAgICAgICAgICAgICAgbGV0IHR5ID0gYnVmZmVyLmdldF91OCgpOwoKICAgICAgICAgICAgICAgIGlmIHR5ID09IDAgewogICAgICAgICAgICAgICAgICAgIGlmIGJ1ZmZlci5yZW1haW5pbmcoKSA8IDIgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgbGV0IHNlcXVlbmNlX251bWJlciA9IGJ1ZmZlci5nZXRfdTE2KCk7CgogICAgICAgICAgICAgICAgICAgIFNvbWUoSW5ib3VuZFBhY2tldDo6UnR0IHsgc2VxdWVuY2VfbnVtYmVyIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHdhcm4hKAogICAgICAgICAgICAgICAgICAgICAgICAiW0luYm91bmRQYWNrZXRdOiB0cmllZCB0byBkZXNlcmlhbGl6ZSBydHQgcGFja2V0IHdpdGggdHlwZSB7dHl9LCB0aGlzIHNob3VsZG4ndCBoYXBwZW4iCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBOb25lCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgXyA9PiBOb25lLAogICAgICAgIH0KICAgIH0KfQoKI1tkZXJpdmUoRGVidWcpXQpwdWIgZW51bSBPdXRib3VuZFBhY2tldCB7CiAgICBHZW5lcmFsIHsKICAgICAgICBtZXNzYWdlOiBHZW5lcmFsU2VydmVyTWVzc2FnZSwKICAgIH0sCiAgICBTdGF0cyhTdHJlYW1lclN0YXRzVXBkYXRlKSwKICAgIENvbnRyb2xsZXJSdW1ibGUgewogICAgICAgIGNvbnRyb2xsZXJfbnVtYmVyOiB1OCwKICAgICAgICBsb3dfZnJlcXVlbmN5X21vdG9yOiB1MTYsCiAgICAgICAgaGlnaF9mcmVxdWVuY3lfbW90b3I6IHUxNiwKICAgIH0sCiAgICBDb250cm9sbGVyVHJpZ2dlclJ1bWJsZSB7CiAgICAgICAgY29udHJvbGxlcl9udW1iZXI6IHU4LAogICAgICAgIGxlZnRfdHJpZ2dlcl9tb3RvcjogdTE2LAogICAgICAgIHJpZ2h0X3RyaWdnZXJfbW90b3I6IHUxNiwKICAgIH0sCiAgICBSdHQgewogICAgICAgIHNlcXVlbmNlX251bWJlcjogdTE2LAogICAgfSwKfQoKaW1wbCBPdXRib3VuZFBhY2tldCB7CiAgICBwdWIgZm4gc2VyaWFsaXplKCZzZWxmLCByYXdfYnVmZmVyOiAmbXV0IFZlYzx1OD4pIC0+IE9wdGlvbjwoVHJhbnNwb3J0Q2hhbm5lbCwgUmFuZ2U8dXNpemU+KT4gewogICAgICAgIG1hdGNoIHNlbGYgewogICAgICAgICAgICBTZWxmOjpHZW5lcmFsIHsgbWVzc2FnZSB9ID0+IHsKICAgICAgICAgICAgICAgIGxldCBPayh0ZXh0KSA9IHNlcmRlX2pzb246OnRvX3N0cmluZygmbWVzc2FnZSkgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBzZW5kIGdlbmVyYWwgbWVzc2FnZToge21lc3NhZ2U6P30iKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZTsKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICByYXdfYnVmZmVyLnJlc2l6ZSh0ZXh0LmxlbigpICsgMiwgMHU4KTsKICAgICAgICAgICAgICAgIGxldCBtdXQgYnVmZmVyID0gQnl0ZUJ1ZmZlcjo6bmV3KHJhd19idWZmZXIgYXMgJm11dCBbdThdKTsKCiAgICAgICAgICAgICAgICBidWZmZXIucHV0X3UxNih0ZXh0LmxlbigpIGFzIHUxNik7CiAgICAgICAgICAgICAgICBidWZmZXIucHV0X3V0ZjhfcmF3KCZ0ZXh0KTsKCiAgICAgICAgICAgICAgICBidWZmZXIuZmxpcCgpOwogICAgICAgICAgICAgICAgU29tZSgoCiAgICAgICAgICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6OkdFTkVSQUwpLAogICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5pbnRvX3JhdygpLjEsCiAgICAgICAgICAgICAgICApKQogICAgICAgICAgICB9CiAgICAgICAgICAgIFNlbGY6OlN0YXRzKHN0YXRzKSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgT2sodGV4dCkgPSBzZXJkZV9qc29uOjp0b19zdHJpbmcoJnN0YXRzKSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgc3RhdHMgbWVzc2FnZToge3N0YXRzOj99Iik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmU7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgcmF3X2J1ZmZlci5yZXNpemUodGV4dC5sZW4oKSArIDIsIDB1OCk7CiAgICAgICAgICAgICAgICBsZXQgbXV0IGJ1ZmZlciA9IEJ5dGVCdWZmZXI6Om5ldyhyYXdfYnVmZmVyIGFzICZtdXQgW3U4XSk7CgogICAgICAgICAgICAgICAgYnVmZmVyLnB1dF91MTYodGV4dC5sZW4oKSBhcyB1MTYpOwogICAgICAgICAgICAgICAgYnVmZmVyLnB1dF91dGY4X3JhdygmdGV4dCk7CgogICAgICAgICAgICAgICAgYnVmZmVyLmZsaXAoKTsKICAgICAgICAgICAgICAgIFNvbWUoKAogICAgICAgICAgICAgICAgICAgIFRyYW5zcG9ydENoYW5uZWwoVHJhbnNwb3J0Q2hhbm5lbElkOjpTVEFUUyksCiAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmludG9fcmF3KCkuMSwKICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgU2VsZjo6Q29udHJvbGxlclJ1bWJsZSB7CiAgICAgICAgICAgICAgICBjb250cm9sbGVyX251bWJlciwKICAgICAgICAgICAgICAgIGxvd19mcmVxdWVuY3lfbW90b3IsCiAgICAgICAgICAgICAgICBoaWdoX2ZyZXF1ZW5jeV9tb3RvciwKICAgICAgICAgICAgfSA9PiB7CiAgICAgICAgICAgICAgICByYXdfYnVmZmVyLnJlc2l6ZSg2LCAwKTsKICAgICAgICAgICAgICAgIGxldCBtdXQgYnVmZmVyID0gQnl0ZUJ1ZmZlcjo6bmV3KHJhd19idWZmZXIgYXMgJm11dCBbdThdKTsKCiAgICAgICAgICAgICAgICAvLyBSZXF1aXJlcyA2IGJ5dGVzCiAgICAgICAgICAgICAgICBidWZmZXIucHV0X3U4KDApOwogICAgICAgICAgICAgICAgYnVmZmVyLnB1dF91OCgqY29udHJvbGxlcl9udW1iZXIpOwogICAgICAgICAgICAgICAgYnVmZmVyLnB1dF91MTYoKmxvd19mcmVxdWVuY3lfbW90b3IpOwogICAgICAgICAgICAgICAgYnVmZmVyLnB1dF91MTYoKmhpZ2hfZnJlcXVlbmN5X21vdG9yKTsKCiAgICAgICAgICAgICAgICBidWZmZXIuZmxpcCgpOwogICAgICAgICAgICAgICAgU29tZSgoCiAgICAgICAgICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6OkNPTlRST0xMRVIwICsgY29udHJvbGxlcl9udW1iZXIpLAogICAgICAgICAgICAgICAgICAgIGJ1ZmZlci5pbnRvX3JhdygpLjEsCiAgICAgICAgICAgICAgICApKQogICAgICAgICAgICB9CiAgICAgICAgICAgIFNlbGY6OkNvbnRyb2xsZXJUcmlnZ2VyUnVtYmxlIHsKICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJfbnVtYmVyLAogICAgICAgICAgICAgICAgbGVmdF90cmlnZ2VyX21vdG9yLAogICAgICAgICAgICAgICAgcmlnaHRfdHJpZ2dlcl9tb3RvciwKICAgICAgICAgICAgfSA9PiB7CiAgICAgICAgICAgICAgICByYXdfYnVmZmVyLnJlc2l6ZSg2LCAwKTsKICAgICAgICAgICAgICAgIGxldCBtdXQgYnVmZmVyID0gQnl0ZUJ1ZmZlcjo6bmV3KHJhd19idWZmZXIgYXMgJm11dCBbdThdKTsKCiAgICAgICAgICAgICAgICAvLyBSZXF1aXJlcyA2IGJ5dGVzCiAgICAgICAgICAgICAgICBidWZmZXIucHV0X3U4KDApOwogICAgICAgICAgICAgICAgYnVmZmVyLnB1dF91OCgqY29udHJvbGxlcl9udW1iZXIpOwogICAgICAgICAgICAgICAgYnVmZmVyLnB1dF91MTYoKmxlZnRfdHJpZ2dlcl9tb3Rvcik7CiAgICAgICAgICAgICAgICBidWZmZXIucHV0X3UxNigqcmlnaHRfdHJpZ2dlcl9tb3Rvcik7CgogICAgICAgICAgICAgICAgYnVmZmVyLmZsaXAoKTsKICAgICAgICAgICAgICAgIFNvbWUoKAogICAgICAgICAgICAgICAgICAgIFRyYW5zcG9ydENoYW5uZWwoVHJhbnNwb3J0Q2hhbm5lbElkOjpDT05UUk9MTEVSMCArIGNvbnRyb2xsZXJfbnVtYmVyKSwKICAgICAgICAgICAgICAgICAgICBidWZmZXIuaW50b19yYXcoKS4xLAogICAgICAgICAgICAgICAgKSkKICAgICAgICAgICAgfQogICAgICAgICAgICBTZWxmOjpSdHQgeyBzZXF1ZW5jZV9udW1iZXIgfSA9PiB7CiAgICAgICAgICAgICAgICByYXdfYnVmZmVyLnJlc2l6ZSgzLCAwKTsKICAgICAgICAgICAgICAgIGxldCBtdXQgYnVmZmVyID0gQnl0ZUJ1ZmZlcjo6bmV3KHJhd19idWZmZXIgYXMgJm11dCBbdThdKTsKCiAgICAgICAgICAgICAgICBidWZmZXIucHV0X3U4KDApOwogICAgICAgICAgICAgICAgYnVmZmVyLnB1dF91MTYoKnNlcXVlbmNlX251bWJlcik7CgogICAgICAgICAgICAgICAgU29tZSgoCiAgICAgICAgICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6OlJUVCksCiAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmludG9fcmF3KCkuMSwKICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCiNbZGVyaXZlKERlYnVnKV0KcHViIGVudW0gVHJhbnNwb3J0RXZlbnQgewogICAgU3RhcnRTdHJlYW0geyBzZXR0aW5nczogU3RyZWFtU2V0dGluZ3MgfSwKICAgIFJlY3ZQYWNrZXQoSW5ib3VuZFBhY2tldCksCiAgICBTZW5kSXBjKFN0cmVhbWVySXBjTWVzc2FnZSksCiAgICBDbG9zZWQsCn0KCiNbYXN5bmNfdHJhaXRdCnB1YiB0cmFpdCBUcmFuc3BvcnRFdmVudHMgewogICAgLy8vIFNvbWUgSW5ib3VuZFBhY2tldHMgYXJlIG5vdCBoYW5kbGVkIGJ5IHRoZSBjb25zdW1lciBvZiB0aGlzIGludGVyZmFjZSAtPiB0aGV5IG11c3QgYmUgaGFuZGxlZCBieSB0aGlzIFRyYW5zcG9ydCBpbXBsOgogICAgLy8vIC0gUmVxdWVzdElkciAtPiB5b3Ugc2hvdWxkIHJlcXVlc3QgYW4gaWRyIHZpYSB0aGUgc2VuZF92aWRlb191bml0IGZuCiAgICBhc3luYyBmbiBwb2xsX2V2ZW50KCZtdXQgc2VsZikgLT4gUmVzdWx0PFRyYW5zcG9ydEV2ZW50LCBUcmFuc3BvcnRFcnJvcj47Cn0KI1thc3luY190cmFpdF0KcHViIHRyYWl0IFRyYW5zcG9ydFNlbmRlciB7CiAgICBhc3luYyBmbiBzZXR1cF92aWRlbygmc2VsZiwgc2V0dXA6IFZpZGVvU2V0dXApIC0+IGkzMjsKICAgIGFzeW5jIGZuIHNlbmRfdmlkZW9fdW5pdDwnYT4oCiAgICAgICAgJidhIHNlbGYsCiAgICAgICAgdW5pdDogVmlkZW9EZWNvZGVVbml0PCYnYSBbdThdPiwKICAgICkgLT4gUmVzdWx0PERlY29kZVJlc3VsdCwgVHJhbnNwb3J0RXJyb3I+OwoKICAgIGFzeW5jIGZuIHNldHVwX2F1ZGlvKAogICAgICAgICZzZWxmLAogICAgICAgIGF1ZGlvX2NvbmZpZzogQXVkaW9Db25maWcsCiAgICAgICAgc3RyZWFtX2NvbmZpZzogT3B1c011bHRpc3RyZWFtQ29uZmlnLAogICAgKSAtPiBpMzI7CiAgICBhc3luYyBmbiBzZW5kX2F1ZGlvX3NhbXBsZSgmc2VsZiwgZGF0YTogJlt1OF0pIC0+IFJlc3VsdDwoKSwgVHJhbnNwb3J0RXJyb3I+OwoKICAgIGFzeW5jIGZuIG9uX3NldHVwX2NvbXBsZXRlKCZzZWxmKTsKCiAgICBhc3luYyBmbiBzZW5kKCZzZWxmLCBwYWNrZXQ6IE91dGJvdW5kUGFja2V0KSAtPiBSZXN1bHQ8KCksIFRyYW5zcG9ydEVycm9yPjsKCiAgICBhc3luYyBmbiBvbl9pcGNfbWVzc2FnZSgmc2VsZiwgbWVzc2FnZTogU2VydmVySXBjTWVzc2FnZSkgLT4gUmVzdWx0PCgpLCBUcmFuc3BvcnRFcnJvcj47CgogICAgYXN5bmMgZm4gY2xvc2UoJnNlbGYpIC0+IFJlc3VsdDwoKSwgVHJhbnNwb3J0RXJyb3I+Owp9Cg=="},{"path":"streamer/src/transport/web_socket/mod.rs","sha256":"34ad9159593cca12346d1978b6754a8583ca61652ff7f6e29a527e4858228ca9","contentBase64":"dXNlIHN0ZDo6ewogICAgc3luYzo6ewogICAgICAgIEFyYywKICAgICAgICBhdG9taWM6OntBdG9taWNCb29sLCBPcmRlcmluZ30sCiAgICB9LAogICAgdGltZTo6e0R1cmF0aW9uLCBJbnN0YW50fSwKfTsKCnVzZSBhc3luY190cmFpdDo6YXN5bmNfdHJhaXQ7CnVzZSBieXRlczo6Qnl0ZXM7CnVzZSBjb21tb246OnsKICAgIGFwaV9iaW5kaW5nczo6e1N0cmVhbUNsaWVudE1lc3NhZ2UsIFN0cmVhbWVyU3RhdHNVcGRhdGUsIFRyYW5zcG9ydENoYW5uZWxJZH0sCiAgICBpcGM6OntTZXJ2ZXJJcGNNZXNzYWdlLCBTdHJlYW1lcklwY01lc3NhZ2V9LAp9Owp1c2UgbG9nOjp7dHJhY2UsIHdhcm59Owp1c2UgbW9vbmxpZ2h0X2NvbW1vbjo6c3RyZWFtOjp7CiAgICBhdWRpbzo6e0F1ZGlvQ29uZmlnLCBPcHVzTXVsdGlzdHJlYW1Db25maWd9LAogICAgdmlkZW86OntEZWNvZGVSZXN1bHQsIEZyYW1lVHlwZSwgVmlkZW9EZWNvZGVVbml0LCBWaWRlb1NldHVwfSwKfTsKdXNlIHRva2lvOjp7CiAgICBzcGF3biwKICAgIHN5bmM6OnsKICAgICAgICBNdXRleCwKICAgICAgICBtcHNjOjp7UmVjZWl2ZXIsIFNlbmRlciwgY2hhbm5lbH0sCiAgICB9LAogICAgdGltZTo6c2xlZXAsCn07Cgp1c2UgY3JhdGU6OnsKICAgIGJ1ZmZlcjo6Qnl0ZUJ1ZmZlciwKICAgIHRyYW5zcG9ydDo6ewogICAgICAgIEluYm91bmRQYWNrZXQsIE91dGJvdW5kUGFja2V0LCBUcmFuc3BvcnRDaGFubmVsLCBUcmFuc3BvcnRFcnJvciwgVHJhbnNwb3J0RXZlbnQsCiAgICAgICAgVHJhbnNwb3J0RXZlbnRzLCBUcmFuc3BvcnRTZW5kZXIsCiAgICB9LAp9OwoKcHViIGFzeW5jIGZuIG5ldygpIC0+IFJlc3VsdDwoV2ViU29ja2V0VHJhbnNwb3J0U2VuZGVyLCBXZWJTb2NrZXRUcmFuc3BvcnRFdmVudHMpLCBhbnlob3c6OkVycm9yPiB7CiAgICBsZXQgKGV2ZW50X3NlbmRlciwgZXZlbnRfcmVjZWl2ZXIpID0gY2hhbm5lbDo6PFRyYW5zcG9ydEV2ZW50PigyMCk7CgogICAgLy8gVE9ETzogdXNlIHRoZSB2aWRlb19mcmFtZV9xdWV1ZV9zaXplIHdpdGggcGFja2V0IHJ0dCBpbmZvIHRvIGVzdGltYXRlIGxhdGVuY3kgb2YgcGljdHVyZXMgYW5kIHJlcXVlc3QgaWRyIGlmIHRvbyBiaWcKCiAgICBsZXQgc2VuZGVyID0gV2ViU29ja2V0VHJhbnNwb3J0U2VuZGVyIHsKICAgICAgICBldmVudF9zZW5kZXIsCiAgICAgICAgcnR0OiBBcmM6Om5ldyhNdXRleDo6bmV3KChJbnN0YW50Ojpub3coKSwgMCkpKSwKICAgICAgICBuZWVkc19pZHI6IEF0b21pY0Jvb2w6Om5ldyhmYWxzZSksCiAgICB9OwoKICAgIC8vIFRoaXMgd2lsbCBzdGFydCB0aGUgbG9vcCBvZiBzZW5kaW5nIC8gcmVjZWl2aW5nCiAgICByZWN2X3J0dChzZW5kZXIucnR0LmNsb25lKCksIHNlbmRlci5ldmVudF9zZW5kZXIuY2xvbmUoKSwgMCkuYXdhaXQ7CgogICAgT2soKHNlbmRlciwgV2ViU29ja2V0VHJhbnNwb3J0RXZlbnRzIHsgZXZlbnRfcmVjZWl2ZXIgfSkpCn0KCnB1YiBzdHJ1Y3QgV2ViU29ja2V0VHJhbnNwb3J0RXZlbnRzIHsKICAgIGV2ZW50X3JlY2VpdmVyOiBSZWNlaXZlcjxUcmFuc3BvcnRFdmVudD4sCn0KCiNbYXN5bmNfdHJhaXRdCmltcGwgVHJhbnNwb3J0RXZlbnRzIGZvciBXZWJTb2NrZXRUcmFuc3BvcnRFdmVudHMgewogICAgYXN5bmMgZm4gcG9sbF9ldmVudCgmbXV0IHNlbGYpIC0+IFJlc3VsdDxUcmFuc3BvcnRFdmVudCwgVHJhbnNwb3J0RXJyb3I+IHsKICAgICAgICB0cmFjZSEoIlBvbGxpbmcgV2ViU29ja2V0RXZlbnRzIik7CiAgICAgICAgc2VsZi5ldmVudF9yZWNlaXZlcgogICAgICAgICAgICAucmVjdigpCiAgICAgICAgICAgIC5hd2FpdAogICAgICAgICAgICAub2tfb3IoVHJhbnNwb3J0RXJyb3I6OkNsb3NlZCkKICAgIH0KfQoKcHViIHN0cnVjdCBXZWJTb2NrZXRUcmFuc3BvcnRTZW5kZXIgewogICAgZXZlbnRfc2VuZGVyOiBTZW5kZXI8VHJhbnNwb3J0RXZlbnQ+LAogICAgLy8vIFRpbWUgd2hlbiBpdCB3YXMgc2VudCwgc2VxdWVuY2VfbnVtYmVyCiAgICBydHQ6IEFyYzxNdXRleDwoSW5zdGFudCwgdTE2KT4+LAogICAgbmVlZHNfaWRyOiBBdG9taWNCb29sLAp9Cgphc3luYyBmbiBzZW5kX3BhY2tldCgKICAgIGV2ZW50X3NlbmRlcjogJlNlbmRlcjxUcmFuc3BvcnRFdmVudD4sCiAgICBwYWNrZXQ6IE91dGJvdW5kUGFja2V0LAopIC0+IFJlc3VsdDwoKSwgVHJhbnNwb3J0RXJyb3I+IHsKICAgIGxldCBtdXQgbmV3X2J1ZmZlciA9IFZlYzo6bmV3KCk7CgogICAgbGV0IChpZCwgbXV0IHJhbmdlKSA9IG1hdGNoIHBhY2tldC5zZXJpYWxpemUoJm11dCBuZXdfYnVmZmVyKSB7CiAgICAgICAgU29tZShwYWNrZXQpID0+IHBhY2tldCwKICAgICAgICBOb25lID0+IHsKICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBzZXJpYWxpemUgcGFja2V0OiB7cGFja2V0Oj99Iik7CiAgICAgICAgICAgIHJldHVybiBPaygoKSk7CiAgICAgICAgfQogICAgfTsKCiAgICBpZiByYW5nZS5zdGFydCA9PSAwIHsKICAgICAgICBuZXdfYnVmZmVyLnJlc2l6ZShyYW5nZS5lbmQgLSByYW5nZS5zdGFydCArIDEsIDApOwogICAgICAgIG5ld19idWZmZXIuY29weV93aXRoaW4ocmFuZ2UuY2xvbmUoKSwgcmFuZ2Uuc3RhcnQgKyAxKTsKICAgICAgICByYW5nZS5zdGFydCArPSAxOwogICAgfQogICAgbmV3X2J1ZmZlcltyYW5nZS5zdGFydCAtIDFdID0gaWQuMDsKCiAgICBpZiBldmVudF9zZW5kZXIKICAgICAgICAuc2VuZChUcmFuc3BvcnRFdmVudDo6U2VuZElwYygKICAgICAgICAgICAgU3RyZWFtZXJJcGNNZXNzYWdlOjpXZWJTb2NrZXRUcmFuc3BvcnQoQnl0ZXM6OmZyb20obmV3X2J1ZmZlcikpLAogICAgICAgICkpCiAgICAgICAgLmF3YWl0CiAgICAgICAgLmlzX2VycigpCiAgICB7CiAgICAgICAgcmV0dXJuIEVycihUcmFuc3BvcnRFcnJvcjo6Q2xvc2VkKTsKICAgIH0KCiAgICBPaygoKSkKfQoKYXN5bmMgZm4gcmVjdl9ydHQoCiAgICBydHRfbXV0ZXg6IEFyYzxNdXRleDwoSW5zdGFudCwgdTE2KT4+LAogICAgZXZlbnRfc2VuZGVyOiBTZW5kZXI8VHJhbnNwb3J0RXZlbnQ+LAogICAgcmVjdl9zZXF1ZW5jZV9udW1iZXI6IHUxNiwKKSB7CiAgICBsZXQgKHNlbmQsIG11dCBzZXF1ZW5jZV9udW1iZXIpID0gewogICAgICAgIGxldCBydHQgPSBydHRfbXV0ZXgubG9jaygpLmF3YWl0OwogICAgICAgICpydHQKICAgIH07CgogICAgbGV0IG5vdyA9IEluc3RhbnQ6Om5vdygpOwogICAgaWYgcmVjdl9zZXF1ZW5jZV9udW1iZXIgIT0gc2VxdWVuY2VfbnVtYmVyIHsKICAgICAgICB3YXJuISgKICAgICAgICAgICAgIkV4cGVjdGVkIHJ0dCBwYWNrZXQgd2l0aCBzZXF1ZW5jZV9udW1iZXIge3NlcXVlbmNlX251bWJlcn0gYnV0IGdvdCB7cmVjdl9zZXF1ZW5jZV9udW1iZXJ9IgogICAgICAgICk7CiAgICB9CgogICAgLy8gQ2FsYyBydHQKICAgIGxldCBydHQgPSBub3cgLSBzZW5kOwoKICAgIC8vIFNlbmQgcnR0IHZpYSBzdGF0cwogICAgaWYgbGV0IEVycihlcnIpID0gc2VuZF9wYWNrZXQoCiAgICAgICAgJmV2ZW50X3NlbmRlciwKICAgICAgICBPdXRib3VuZFBhY2tldDo6U3RhdHMoU3RyZWFtZXJTdGF0c1VwZGF0ZTo6QnJvd3NlclJ0dCB7CiAgICAgICAgICAgIHJ0dF9tczogcnR0LmFzX3NlY3NfZjY0KCkgKiAxMDAwLjAsCiAgICAgICAgfSksCiAgICApCiAgICAuYXdhaXQKICAgIHsKICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgcnR0IHN0YXRzIHVwZGF0ZSBmb3Igd2ViIHNvY2tldDoge2Vycn0iKTsKICAgIH0KCiAgICAvLyBXYWl0IGEgZmV3IG1zCiAgICBzbGVlcChEdXJhdGlvbjo6ZnJvbV9taWxsaXMoMjAwKSkuYXdhaXQ7CgogICAgc2VxdWVuY2VfbnVtYmVyICs9IDE7CiAgICB7CiAgICAgICAgbGV0IG11dCBydHQgPSBydHRfbXV0ZXgubG9jaygpLmF3YWl0OwogICAgICAgICpydHQgPSAoSW5zdGFudDo6bm93KCksIHNlcXVlbmNlX251bWJlcik7CiAgICB9CgogICAgLy8gU2VuZCBuZXcgcnR0IHBhY2tldAogICAgaWYgbGV0IEVycihlcnIpID0gc2VuZF9wYWNrZXQoJmV2ZW50X3NlbmRlciwgT3V0Ym91bmRQYWNrZXQ6OlJ0dCB7IHNlcXVlbmNlX251bWJlciB9KS5hd2FpdCB7CiAgICAgICAgd2FybiEoIkZhaWxlZCB0byBzZW5kIHdlYiBzb2NrZXQgcnR0IHBhY2tldCB3aXRoIHNlcXVlbmNlIG51bWJlciB7c2VxdWVuY2VfbnVtYmVyfToge2Vycn0iKTsKICAgIH0KfQoKI1thc3luY190cmFpdF0KaW1wbCBUcmFuc3BvcnRTZW5kZXIgZm9yIFdlYlNvY2tldFRyYW5zcG9ydFNlbmRlciB7CiAgICBhc3luYyBmbiBzZXR1cF92aWRlbygmc2VsZiwgX3NldHVwOiBWaWRlb1NldHVwKSAtPiBpMzIgewogICAgICAgIC8vIGVtcHR5CiAgICAgICAgMAogICAgfQogICAgYXN5bmMgZm4gc2VuZF92aWRlb191bml0PCdhPigKICAgICAgICAmJ2Egc2VsZiwKICAgICAgICB1bml0OiBWaWRlb0RlY29kZVVuaXQ8JidhIFt1OF0+LAogICAgKSAtPiBSZXN1bHQ8RGVjb2RlUmVzdWx0LCBUcmFuc3BvcnRFcnJvcj4gewogICAgICAgIGxldCBtdXQgbmV3X2J1ZmZlciA9IHZlYyFbMDsgNV07CgogICAgICAgIGxldCBtdXQgYnl0ZV9idWZmZXIgPSBCeXRlQnVmZmVyOjpuZXcobmV3X2J1ZmZlci5hc19tdXRfc2xpY2UoKSk7CiAgICAgICAgYnl0ZV9idWZmZXIucHV0X3U4KFRyYW5zcG9ydENoYW5uZWxJZDo6SE9TVF9WSURFTyk7CiAgICAgICAgYnl0ZV9idWZmZXIucHV0X3U4KG1hdGNoIHVuaXQuZnJhbWVfdHlwZSB7CiAgICAgICAgICAgIEZyYW1lVHlwZTo6SWRyID0+IDEsCiAgICAgICAgICAgIEZyYW1lVHlwZTo6UEZyYW1lID0+IDAsCiAgICAgICAgfSk7CiAgICAgICAgYnl0ZV9idWZmZXIucHV0X3U4KDApOwogICAgICAgIGJ5dGVfYnVmZmVyLnB1dF91MzIodW5pdC50aW1lc3RhbXAuYXNfbWljcm9zKCkgYXMgdTMyKTsKCiAgICAgICAgZm9yIGJ1ZmZlciBpbiAmdW5pdC5idWZmZXJzIHsKICAgICAgICAgICAgbmV3X2J1ZmZlci5leHRlbmRfZnJvbV9zbGljZShidWZmZXIuZGF0YSk7CiAgICAgICAgfQogICAgICAgIC8vIFRPRE86IGlnbm9yZSBoMjY0L2gyNjUgZmlsbGVyZGF0YT8KICAgICAgICBpZiBzZWxmCiAgICAgICAgICAgIC5ldmVudF9zZW5kZXIKICAgICAgICAgICAgLnNlbmQoVHJhbnNwb3J0RXZlbnQ6OlNlbmRJcGMoCiAgICAgICAgICAgICAgICBTdHJlYW1lcklwY01lc3NhZ2U6OldlYlNvY2tldFRyYW5zcG9ydChCeXRlczo6ZnJvbShuZXdfYnVmZmVyKSksCiAgICAgICAgICAgICkpCiAgICAgICAgICAgIC5hd2FpdAogICAgICAgICAgICAuaXNfZXJyKCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBFcnIoVHJhbnNwb3J0RXJyb3I6OkNsb3NlZCk7CiAgICAgICAgfQoKICAgICAgICBpZiBzZWxmCiAgICAgICAgICAgIC5uZWVkc19pZHIKICAgICAgICAgICAgLmNvbXBhcmVfZXhjaGFuZ2UodHJ1ZSwgZmFsc2UsIE9yZGVyaW5nOjpTZXFDc3QsIE9yZGVyaW5nOjpSZWxheGVkKQogICAgICAgICAgICAuaXNfb2soKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIE9rKERlY29kZVJlc3VsdDo6TmVlZElkcik7CiAgICAgICAgfQoKICAgICAgICBPayhEZWNvZGVSZXN1bHQ6Ok9rKQogICAgfQoKICAgIGFzeW5jIGZuIHNldHVwX2F1ZGlvKAogICAgICAgICZzZWxmLAogICAgICAgIF9hdWRpb19jb25maWc6IEF1ZGlvQ29uZmlnLAogICAgICAgIF9zdHJlYW1fY29uZmlnOiBPcHVzTXVsdGlzdHJlYW1Db25maWcsCiAgICApIC0+IGkzMiB7CiAgICAgICAgLy8gZW1wdHkKICAgICAgICAwCiAgICB9CiAgICBhc3luYyBmbiBzZW5kX2F1ZGlvX3NhbXBsZSgmc2VsZiwgZGF0YTogJlt1OF0pIC0+IFJlc3VsdDwoKSwgVHJhbnNwb3J0RXJyb3I+IHsKICAgICAgICBsZXQgbXV0IG5ld19idWZmZXIgPSB2ZWMhWzBdOwoKICAgICAgICBsZXQgbXV0IGJ5dGVfYnVmZmVyID0gQnl0ZUJ1ZmZlcjo6bmV3KG5ld19idWZmZXIuYXNfbXV0X3NsaWNlKCkpOwogICAgICAgIGJ5dGVfYnVmZmVyLnB1dF91OChUcmFuc3BvcnRDaGFubmVsSWQ6OkhPU1RfQVVESU8pOwoKICAgICAgICBuZXdfYnVmZmVyLmV4dGVuZF9mcm9tX3NsaWNlKGRhdGEpOwoKICAgICAgICBpZiBzZWxmCiAgICAgICAgICAgIC5ldmVudF9zZW5kZXIKICAgICAgICAgICAgLnNlbmQoVHJhbnNwb3J0RXZlbnQ6OlNlbmRJcGMoCiAgICAgICAgICAgICAgICBTdHJlYW1lcklwY01lc3NhZ2U6OldlYlNvY2tldFRyYW5zcG9ydChCeXRlczo6ZnJvbShuZXdfYnVmZmVyKSksCiAgICAgICAgICAgICkpCiAgICAgICAgICAgIC5hd2FpdAogICAgICAgICAgICAuaXNfZXJyKCkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBFcnIoVHJhbnNwb3J0RXJyb3I6OkNsb3NlZCk7CiAgICAgICAgfQoKICAgICAgICBPaygoKSkKICAgIH0KCiAgICBhc3luYyBmbiBzZW5kKCZzZWxmLCBwYWNrZXQ6IE91dGJvdW5kUGFja2V0KSAtPiBSZXN1bHQ8KCksIFRyYW5zcG9ydEVycm9yPiB7CiAgICAgICAgc2VuZF9wYWNrZXQoJnNlbGYuZXZlbnRfc2VuZGVyLCBwYWNrZXQpLmF3YWl0CiAgICB9CgogICAgYXN5bmMgZm4gb25faXBjX21lc3NhZ2UoJnNlbGYsIG1lc3NhZ2U6IFNlcnZlcklwY01lc3NhZ2UpIC0+IFJlc3VsdDwoKSwgVHJhbnNwb3J0RXJyb3I+IHsKICAgICAgICBtYXRjaCBtZXNzYWdlIHsKICAgICAgICAgICAgU2VydmVySXBjTWVzc2FnZTo6V2ViU29ja2V0VHJhbnNwb3J0KG1lc3NhZ2UpID0+IHsKICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2UuaXNfZW1wdHkoKSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIkVtcHR5IHBhY2tldCByZWNlaXZlZCEiKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2soKCkpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGxldCBjaGFubmVsX2lkID0gbWVzc2FnZVswXTsKCiAgICAgICAgICAgICAgICBsZXQgU29tZShwYWNrZXQpID0KICAgICAgICAgICAgICAgICAgICBJbmJvdW5kUGFja2V0OjpkZXNlcmlhbGl6ZShUcmFuc3BvcnRDaGFubmVsKGNoYW5uZWxfaWQpLCAmbWVzc2FnZVsxLi5dKQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byByZWNlaXZlIHBhY2tldCBvbiBjaGFubmVsIHtjaGFubmVsX2lkfSIpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBPaygoKSk7CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIGlmIGxldCBJbmJvdW5kUGFja2V0OjpSZXF1ZXN0VmlkZW9JZHIgPSBwYWNrZXQgewogICAgICAgICAgICAgICAgICAgIHNlbGYubmVlZHNfaWRyLnN0b3JlKHRydWUsIE9yZGVyaW5nOjpSZWxlYXNlKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiBsZXQgSW5ib3VuZFBhY2tldDo6UnR0IHsgc2VxdWVuY2VfbnVtYmVyIH0gPSBwYWNrZXQgewogICAgICAgICAgICAgICAgICAgIHNwYXduKHJlY3ZfcnR0KAogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJ0dC5jbG9uZSgpLAogICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV2ZW50X3NlbmRlci5jbG9uZSgpLAogICAgICAgICAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1iZXIsCiAgICAgICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgc2VsZgogICAgICAgICAgICAgICAgICAgIC5ldmVudF9zZW5kZXIKICAgICAgICAgICAgICAgICAgICAuc2VuZChUcmFuc3BvcnRFdmVudDo6UmVjdlBhY2tldChwYWNrZXQpKQogICAgICAgICAgICAgICAgICAgIC5hd2FpdAogICAgICAgICAgICAgICAgICAgIC5pc19lcnIoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBFcnIoVHJhbnNwb3J0RXJyb3I6OkNsb3NlZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OmNvbGxhcHNpYmxlX21hdGNoKV0KICAgICAgICAgICAgU2VydmVySXBjTWVzc2FnZTo6V2ViU29ja2V0KFN0cmVhbUNsaWVudE1lc3NhZ2U6OlN0YXJ0U3RyZWFtIHsgc2V0dGluZ3MgfSkgPT4gewogICAgICAgICAgICAgICAgaWYgc2VsZgogICAgICAgICAgICAgICAgICAgIC5ldmVudF9zZW5kZXIKICAgICAgICAgICAgICAgICAgICAuc2VuZChUcmFuc3BvcnRFdmVudDo6U3RhcnRTdHJlYW0geyBzZXR0aW5ncyB9KQogICAgICAgICAgICAgICAgICAgIC5hd2FpdAogICAgICAgICAgICAgICAgICAgIC5pc19lcnIoKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gc2VuZCBzdGFydCBzdHJlYW0gZXZlbnQiKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXJyKFRyYW5zcG9ydEVycm9yOjpDbG9zZWQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIF8gPT4ge30KICAgICAgICB9CiAgICAgICAgT2soKCkpCiAgICB9CgogICAgYXN5bmMgZm4gb25fc2V0dXBfY29tcGxldGUoJnNlbGYpIHsKICAgICAgICAvLyBlbXB0eQogICAgfQoKICAgIGFzeW5jIGZuIGNsb3NlKCZzZWxmKSAtPiBSZXN1bHQ8KCksIFRyYW5zcG9ydEVycm9yPiB7CiAgICAgICAgLy8gZW10cHkKICAgICAgICBPaygoKSkKICAgIH0KfQo="},{"path":"streamer/src/transport/webrtc/audio.rs","sha256":"9f56bd6a13bfaffb029de65fcc59b439b23213d4e83d2e65d333b9c407df4d0e","contentBase64":"dXNlIHN0ZDo6e3N5bmM6OldlYWssIHRpbWU6OkR1cmF0aW9ufTsKCnVzZSBieXRlczo6Qnl0ZXM7CnVzZSBsb2c6OntlcnJvciwgd2Fybn07CnVzZSBtb29ubGlnaHRfY29tbW9uOjpzdHJlYW06OmF1ZGlvOjp7QXVkaW9Db25maWcsIE9wdXNNdWx0aXN0cmVhbUNvbmZpZ307CnVzZSB0b2tpbzo6cnVudGltZTo6SGFuZGxlOwp1c2Ugd2VicnRjOjp7CiAgICBhcGk6Om1lZGlhX2VuZ2luZTo6e01JTUVfVFlQRV9PUFVTLCBNZWRpYUVuZ2luZX0sCiAgICBtZWRpYTo6U2FtcGxlLAogICAgcGVlcl9jb25uZWN0aW9uOjpSVENQZWVyQ29ubmVjdGlvbiwKICAgIHJ0cF90cmFuc2NlaXZlcjo6cnRwX2NvZGVjOjp7UlRDUnRwQ29kZWNDYXBhYmlsaXR5LCBSVENSdHBDb2RlY1BhcmFtZXRlcnMsIFJUUENvZGVjVHlwZX0sCiAgICB0cmFjazo6dHJhY2tfbG9jYWw6OnRyYWNrX2xvY2FsX3N0YXRpY19zYW1wbGU6OlRyYWNrTG9jYWxTdGF0aWNTYW1wbGUsCn07Cgp1c2UgY3JhdGU6OnRyYW5zcG9ydDo6d2VicnRjOjp7V2ViUnRjSW5uZXIsIHNlbmRlcjo6VHJhY2tMb2NhbFNlbmRlcn07CgpwdWIgZm4gcmVnaXN0ZXJfYXVkaW9fY29kZWNzKG1lZGlhX2VuZ2luZTogJm11dCBNZWRpYUVuZ2luZSkgLT4gUmVzdWx0PCgpLCB3ZWJydGM6OkVycm9yPiB7CiAgICBtZWRpYV9lbmdpbmUucmVnaXN0ZXJfY29kZWMoCiAgICAgICAgUlRDUnRwQ29kZWNQYXJhbWV0ZXJzIHsKICAgICAgICAgICAgY2FwYWJpbGl0eTogUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHsKICAgICAgICAgICAgICAgIG1pbWVfdHlwZTogTUlNRV9UWVBFX09QVVMudG9fb3duZWQoKSwKICAgICAgICAgICAgICAgIGNsb2NrX3JhdGU6IDQ4MDAwLAogICAgICAgICAgICAgICAgY2hhbm5lbHM6IDIsCiAgICAgICAgICAgICAgICBzZHBfZm10cF9saW5lOiAibWlucHRpbWU9MTA7dXNlaW5iYW5kZmVjPTEiLnRvX293bmVkKCksCiAgICAgICAgICAgICAgICBydGNwX2ZlZWRiYWNrOiB2ZWMhW10sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHBheWxvYWRfdHlwZTogMTExLAogICAgICAgICAgICAuLkRlZmF1bHQ6OmRlZmF1bHQoKQogICAgICAgIH0sCiAgICAgICAgUlRQQ29kZWNUeXBlOjpBdWRpbywKICAgICk/OwoKICAgIE9rKCgpKQp9CgpwdWIgc3RydWN0IFdlYlJ0Y0F1ZGlvIHsKICAgIHNlbmRlcjogVHJhY2tMb2NhbFNlbmRlcjxUcmFja0xvY2FsU3RhdGljU2FtcGxlPiwKICAgIGNvbmZpZzogT3B0aW9uPE9wdXNNdWx0aXN0cmVhbUNvbmZpZz4sCn0KCmltcGwgV2ViUnRjQXVkaW8gewogICAgcHViIGZuIG5ldyhydW50aW1lOiBIYW5kbGUsIHBlZXI6IFdlYWs8UlRDUGVlckNvbm5lY3Rpb24+LCBjaGFubmVsX3F1ZXVlX3NpemU6IHVzaXplKSAtPiBTZWxmIHsKICAgICAgICBTZWxmIHsKICAgICAgICAgICAgc2VuZGVyOiBUcmFja0xvY2FsU2VuZGVyOjpuZXcocnVudGltZSwgcGVlciwgY2hhbm5lbF9xdWV1ZV9zaXplKSwKICAgICAgICAgICAgY29uZmlnOiBOb25lLAogICAgICAgIH0KICAgIH0KfQoKaW1wbCBXZWJSdGNBdWRpbyB7CiAgICBwdWIgYXN5bmMgZm4gc2V0dXAoCiAgICAgICAgJm11dCBzZWxmLAogICAgICAgIF9pbm5lcjogJldlYlJ0Y0lubmVyLAogICAgICAgIGF1ZGlvX2NvbmZpZzogQXVkaW9Db25maWcsCiAgICAgICAgc3RyZWFtX2NvbmZpZzogT3B1c011bHRpc3RyZWFtQ29uZmlnLAogICAgKSAtPiBpMzIgewogICAgICAgIGNvbnN0IFNVUFBPUlRFRF9TQU1QTEVfUkFURVM6ICZbdTMyXSA9ICZbODAwMDAsIDEyMDAwLCAxNjAwMCwgMjQwMDAsIDQ4MDAwXTsKICAgICAgICBpZiAhU1VQUE9SVEVEX1NBTVBMRV9SQVRFUy5jb250YWlucygmc3RyZWFtX2NvbmZpZy5zYW1wbGVfcmF0ZSkgewogICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICJbU3RyZWFtXSBBdWRpbyBjb3VsZCBoYXZlIHByb2JsZW1zIGJlY2F1c2Ugb2YgdGhlIHNhbXBsZSByYXRlLCBTZWxlY3RlZDoge30sIEV4cGVjdGVkIG9uZSBvZjoge1NVUFBPUlRFRF9TQU1QTEVfUkFURVM6P30iLAogICAgICAgICAgICAgICAgc3RyZWFtX2NvbmZpZy5zYW1wbGVfcmF0ZQogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBpZiBhdWRpb19jb25maWcgIT0gc2VsZi5jb25maWcoKSB7CiAgICAgICAgICAgIHdhcm4hKAogICAgICAgICAgICAgICAgIltTdHJlYW1dIEEgZGlmZmVyZW50IGF1ZGlvIGNvbmZpZ3VyYXRpb24gdGhhbiByZXF1ZXN0ZWQgd2FzIHNlbGVjdGVkLCBFeHBlY3RlZDogezo/fSwgRm91bmQ6IHthdWRpb19jb25maWc6P30iLAogICAgICAgICAgICAgICAgc2VsZi5jb25maWcoKQogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgaWYgbGV0IEVycihlcnIpID0gc2VsZgogICAgICAgICAgICAuc2VuZGVyCiAgICAgICAgICAgIC5jcmVhdGVfdHJhY2soCiAgICAgICAgICAgICAgICBUcmFja0xvY2FsU3RhdGljU2FtcGxlOjpuZXcoCiAgICAgICAgICAgICAgICAgICAgUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHsKICAgICAgICAgICAgICAgICAgICAgICAgbWltZV90eXBlOiBNSU1FX1RZUEVfT1BVUy50b19zdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgLi5EZWZhdWx0OjpkZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhdWRpbyIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgIm1vb25saWdodCIudG9fc3RyaW5nKCksCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgICAgfF98IHt9LAogICAgICAgICAgICApCiAgICAgICAgICAgIC5hd2FpdAogICAgICAgIHsKICAgICAgICAgICAgZXJyb3IhKCJGYWlsZWQgdG8gY3JlYXRlIG9wdXMgdHJhY2s6IHtlcnI6P30iKTsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH07CgogICAgICAgIHNlbGYuY29uZmlnID0gU29tZShzdHJlYW1fY29uZmlnKTsKCiAgICAgICAgMAogICAgfQoKICAgIHB1YiBhc3luYyBmbiBzZW5kX2F1ZGlvX3NhbXBsZSgmbXV0IHNlbGYsIGRhdGE6ICZbdThdKSB7CiAgICAgICAgbGV0IFNvbWUoY29uZmlnKSA9IHNlbGYuY29uZmlnLmFzX3JlZigpIGVsc2UgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfTsKCiAgICAgICAgbGV0IGR1cmF0aW9uID0KICAgICAgICAgICAgRHVyYXRpb246OmZyb21fc2Vjc19mNjQoY29uZmlnLnNhbXBsZXNfcGVyX2ZyYW1lIGFzIGY2NCAvIGNvbmZpZy5zYW1wbGVfcmF0ZSBhcyBmNjQpOwoKICAgICAgICBsZXQgZGF0YSA9IEJ5dGVzOjpjb3B5X2Zyb21fc2xpY2UoZGF0YSk7CgogICAgICAgIGxldCBzYW1wbGUgPSBTYW1wbGUgewogICAgICAgICAgICBkYXRhLAogICAgICAgICAgICBkdXJhdGlvbiwKICAgICAgICAgICAgLy8gVGltZSBzaG91bGQgYmUgc2V0IGlmIHlvdSB3YW50IGZpbmUtZ3JhaW5lZCBzeW5jCiAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgfTsKCiAgICAgICAgc2VsZi5zZW5kZXIuc2VuZF9zYW1wbGVzKHZlYyFbc2FtcGxlXSwgZmFsc2UpLmF3YWl0OwogICAgfQoKICAgIGZuIGNvbmZpZygmc2VsZikgLT4gQXVkaW9Db25maWcgewogICAgICAgIEF1ZGlvQ29uZmlnOjpTVEVSRU8KICAgIH0KfQo="},{"path":"streamer/src/transport/webrtc/mod.rs","sha256":"e6e31e5f5104308fa74cbe563bc98136faa0425a2c9e8ffe2b40b5280c306a18","contentBase64":"dXNlIHN0ZDo6ewogICAgZnV0dXJlOjpyZWFkeSwKICAgIHBpbjo6UGluLAogICAgc3luYzo6e0FyYywgV2Vha30sCiAgICB0aW1lOjp7RHVyYXRpb24sIEluc3RhbnR9LAp9OwoKdXNlIGFzeW5jX3RyYWl0Ojphc3luY190cmFpdDsKdXNlIGJ5dGVzOjpCeXRlczsKdXNlIGNvbW1vbjo6ewogICAgYXBpX2JpbmRpbmdzOjp7CiAgICAgICAgUnRjSWNlQ2FuZGlkYXRlLCBSdGNTZHBUeXBlLCBSdGNTZXNzaW9uRGVzY3JpcHRpb24sIFN0cmVhbUNsaWVudE1lc3NhZ2UsCiAgICAgICAgU3RyZWFtU2VydmVyTWVzc2FnZSwgU3RyZWFtU2lnbmFsaW5nTWVzc2FnZSwgVHJhbnNwb3J0Q2hhbm5lbElkLAogICAgfSwKICAgIGNvbmZpZzo6e1BvcnRSYW5nZSwgV2ViUnRjQ29uZmlnfSwKICAgIGlwYzo6e1NlcnZlcklwY01lc3NhZ2UsIFN0cmVhbWVySXBjTWVzc2FnZX0sCn07CnVzZSBtb29ubGlnaHRfY29tbW9uOjpzdHJlYW06OnsKICAgIGF1ZGlvOjp7QXVkaW9Db25maWcsIE9wdXNNdWx0aXN0cmVhbUNvbmZpZ30sCiAgICB2aWRlbzo6e0RlY29kZVJlc3VsdCwgVmlkZW9EZWNvZGVVbml0LCBWaWRlb0Zvcm1hdHMsIFZpZGVvU2V0dXB9LAp9Owp1c2UgdG9raW86OnsKICAgIHJ1bnRpbWU6OkhhbmRsZSwKICAgIHNwYXduLAogICAgc3luYzo6ewogICAgICAgIE11dGV4LAogICAgICAgIG1wc2M6OntSZWNlaXZlciwgU2VuZGVyLCBjaGFubmVsfSwKICAgIH0sCiAgICB0aW1lOjpzbGVlcCwKfTsKdXNlIHRyYWNpbmc6OntkZWJ1ZywgZXJyb3IsIHRyYWNlLCB3YXJufTsKdXNlIHdlYnJ0Yzo6ewogICAgYXBpOjp7CiAgICAgICAgQVBJQnVpbGRlciwgaW50ZXJjZXB0b3JfcmVnaXN0cnk6OnJlZ2lzdGVyX2RlZmF1bHRfaW50ZXJjZXB0b3JzLCBtZWRpYV9lbmdpbmU6Ok1lZGlhRW5naW5lLAogICAgICAgIHNldHRpbmdfZW5naW5lOjpTZXR0aW5nRW5naW5lLAogICAgfSwKICAgIGRhdGFfY2hhbm5lbDo6ewogICAgICAgIFJUQ0RhdGFDaGFubmVsLCBkYXRhX2NoYW5uZWxfaW5pdDo6UlRDRGF0YUNoYW5uZWxJbml0LAogICAgICAgIGRhdGFfY2hhbm5lbF9tZXNzYWdlOjpEYXRhQ2hhbm5lbE1lc3NhZ2UsCiAgICB9LAogICAgaWNlOjp1ZHBfbmV0d29yazo6e0VwaGVtZXJhbFVEUCwgVURQTmV0d29ya30sCiAgICBpY2VfdHJhbnNwb3J0Ojp7CiAgICAgICAgaWNlX2NhbmRpZGF0ZTo6e1JUQ0ljZUNhbmRpZGF0ZSwgUlRDSWNlQ2FuZGlkYXRlSW5pdH0sCiAgICAgICAgaWNlX2Nvbm5lY3Rpb25fc3RhdGU6OlJUQ0ljZUNvbm5lY3Rpb25TdGF0ZSwKICAgIH0sCiAgICBpbnRlcmNlcHRvcjo6cmVnaXN0cnk6OlJlZ2lzdHJ5LAogICAgcGVlcl9jb25uZWN0aW9uOjp7CiAgICAgICAgUlRDUGVlckNvbm5lY3Rpb24sCiAgICAgICAgY29uZmlndXJhdGlvbjo6UlRDQ29uZmlndXJhdGlvbiwKICAgICAgICBwZWVyX2Nvbm5lY3Rpb25fc3RhdGU6OlJUQ1BlZXJDb25uZWN0aW9uU3RhdGUsCiAgICAgICAgc2RwOjp7c2RwX3R5cGU6OlJUQ1NkcFR5cGUsIHNlc3Npb25fZGVzY3JpcHRpb246OlJUQ1Nlc3Npb25EZXNjcmlwdGlvbn0sCiAgICB9LAp9OwoKdXNlIGNyYXRlOjp7CiAgICBUSU1FT1VUX0RVUkFUSU9OLAogICAgY29udmVydDo6ewogICAgICAgIGZyb21fd2VicnRjX3NkcCwgaW50b193ZWJydGNfaWNlLCBpbnRvX3dlYnJ0Y19pY2VfY2FuZGlkYXRlLCBpbnRvX3dlYnJ0Y19uZXR3b3JrX3R5cGUsCiAgICB9LAogICAgdHJhbnNwb3J0Ojp7CiAgICAgICAgSW5ib3VuZFBhY2tldCwgT3V0Ym91bmRQYWNrZXQsIFRyYW5zcG9ydENoYW5uZWwsIFRyYW5zcG9ydEVycm9yLCBUcmFuc3BvcnRFdmVudCwKICAgICAgICBUcmFuc3BvcnRFdmVudHMsIFRyYW5zcG9ydFNlbmRlciwKICAgICAgICB3ZWJydGM6OnsKICAgICAgICAgICAgYXVkaW86OntXZWJSdGNBdWRpbywgcmVnaXN0ZXJfYXVkaW9fY29kZWNzfSwKICAgICAgICAgICAgc2VuZGVyOjpyZWdpc3Rlcl9oZWFkZXJfZXh0ZW5zaW9ucywKICAgICAgICAgICAgdmlkZW86OntXZWJSdGNWaWRlbywgcmVnaXN0ZXJfdmlkZW9fY29kZWNzfSwKICAgICAgICB9LAogICAgfSwKfTsKCm1vZCBhdWRpbzsKbW9kIHNlbmRlcjsKbW9kIHZpZGVvOwoKc3RydWN0IFdlYlJ0Y0lubmVyIHsKICAgIHBlZXI6IEFyYzxSVENQZWVyQ29ubmVjdGlvbj4sCiAgICBldmVudF9zZW5kZXI6IFNlbmRlcjxUcmFuc3BvcnRFdmVudD4sCiAgICBnZW5lcmFsX2NoYW5uZWw6IEFyYzxSVENEYXRhQ2hhbm5lbD4sCiAgICBzdGF0c19jaGFubmVsOiBBcmM8UlRDRGF0YUNoYW5uZWw+LAogICAgaW5wdXRfY2hhbm5lbHM6IE11dGV4PFZlYzxBcmM8UlRDRGF0YUNoYW5uZWw+Pj4sCiAgICB2aWRlbzogTXV0ZXg8V2ViUnRjVmlkZW8+LAogICAgYXVkaW86IE11dGV4PFdlYlJ0Y0F1ZGlvPiwKICAgIC8vIFRpbWVvdXQgLyBUZXJtaW5hdGUKICAgIHB1YiB0aW1lb3V0X3Rlcm1pbmF0ZV9yZXF1ZXN0OiBNdXRleDxPcHRpb248SW5zdGFudD4+LAp9CgpwdWIgYXN5bmMgZm4gbmV3KAogICAgY29uZmlnOiAmV2ViUnRjQ29uZmlnLAogICAgdmlkZW9fZnJhbWVfcXVldWVfc2l6ZTogdXNpemUsCiAgICBhdWRpb19zYW1wbGVfcXVldWVfc2l6ZTogdXNpemUsCikgLT4gUmVzdWx0PChXZWJSVENUcmFuc3BvcnRTZW5kZXIsIFdlYlJUQ1RyYW5zcG9ydEV2ZW50cyksIGFueWhvdzo6RXJyb3I+IHsKICAgIC8vIC0tIENvbmZpZ3VyZSBXZWJSVEMKICAgIGxldCBydGNfY29uZmlnID0gUlRDQ29uZmlndXJhdGlvbiB7CiAgICAgICAgaWNlX3NlcnZlcnM6IGNvbmZpZwogICAgICAgICAgICAuaWNlX3NlcnZlcnMKICAgICAgICAgICAgLmNsb25lKCkKICAgICAgICAgICAgLmludG9faXRlcigpCiAgICAgICAgICAgIC5tYXAoaW50b193ZWJydGNfaWNlKQogICAgICAgICAgICAuY29sbGVjdCgpLAogICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICB9OwogICAgbGV0IG11dCBhcGlfc2V0dGluZ3MgPSBTZXR0aW5nRW5naW5lOjpkZWZhdWx0KCk7CgogICAgaWYgbGV0IFNvbWUoUG9ydFJhbmdlIHsgbWluLCBtYXggfSkgPSBjb25maWcucG9ydF9yYW5nZSB7CiAgICAgICAgbWF0Y2ggRXBoZW1lcmFsVURQOjpuZXcobWluLCBtYXgpIHsKICAgICAgICAgICAgT2sodWRwKSA9PiB7CiAgICAgICAgICAgICAgICBhcGlfc2V0dGluZ3Muc2V0X3VkcF9uZXR3b3JrKFVEUE5ldHdvcms6OkVwaGVtZXJhbCh1ZHApKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICB3YXJuISgiW1N0cmVhbV06IEludmFsaWQgcG9ydCByYW5nZSBpbiBjb25maWc6IHtlcnI6P30iKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGlmIGxldCBTb21lKG1hcHBpbmcpID0gY29uZmlnLm5hdF8xdG8xLmFzX3JlZigpIHsKICAgICAgICBhcGlfc2V0dGluZ3Muc2V0X25hdF8xdG8xX2lwcygKICAgICAgICAgICAgbWFwcGluZy5pcHMuY2xvbmUoKSwKICAgICAgICAgICAgaW50b193ZWJydGNfaWNlX2NhbmRpZGF0ZShtYXBwaW5nLmljZV9jYW5kaWRhdGVfdHlwZSksCiAgICAgICAgKTsKICAgIH0KICAgIGFwaV9zZXR0aW5ncy5zZXRfbmV0d29ya190eXBlcygKICAgICAgICBjb25maWcKICAgICAgICAgICAgLm5ldHdvcmtfdHlwZXMKICAgICAgICAgICAgLml0ZXIoKQogICAgICAgICAgICAuY29waWVkKCkKICAgICAgICAgICAgLm1hcChpbnRvX3dlYnJ0Y19uZXR3b3JrX3R5cGUpCiAgICAgICAgICAgIC5jb2xsZWN0KCksCiAgICApOwoKICAgIGFwaV9zZXR0aW5ncy5zZXRfaW5jbHVkZV9sb29wYmFja19jYW5kaWRhdGUoY29uZmlnLmluY2x1ZGVfbG9vcGJhY2tfY2FuZGlkYXRlcyk7CgogICAgLy8gLS0gUmVnaXN0ZXIgbWVkaWEgY29kZWNzCiAgICAvLyBUT0RPOiByZWdpc3RlciB0aGVtIGJhc2VkIG9uIHRoZSBzZHAKICAgIGxldCBtdXQgYXBpX21lZGlhID0gTWVkaWFFbmdpbmU6OmRlZmF1bHQoKTsKICAgIHJlZ2lzdGVyX2F1ZGlvX2NvZGVjcygmbXV0IGFwaV9tZWRpYSkuZXhwZWN0KCJmYWlsZWQgdG8gcmVnaXN0ZXIgYXVkaW8gY29kZWNzIik7CiAgICByZWdpc3Rlcl92aWRlb19jb2RlY3MoJm11dCBhcGlfbWVkaWEpLmV4cGVjdCgiZmFpbGVkIHRvIHJlZ2lzdGVyIHZpZGVvIGNvZGVjcyIpOwogICAgcmVnaXN0ZXJfaGVhZGVyX2V4dGVuc2lvbnMoJm11dCBhcGlfbWVkaWEpLmV4cGVjdCgiZmFpbGVkIHRvIHJlZ2lzdGVyIGhlYWRlciBleHRlbnNpb25zIik7CgogICAgLy8gLS0gQnVpbGQgQXBpCiAgICBsZXQgbXV0IGFwaV9yZWdpc3RyeSA9IFJlZ2lzdHJ5OjpuZXcoKTsKCiAgICAvLyBVc2UgdGhlIGRlZmF1bHQgc2V0IG9mIEludGVyY2VwdG9ycwogICAgYXBpX3JlZ2lzdHJ5ID0gcmVnaXN0ZXJfZGVmYXVsdF9pbnRlcmNlcHRvcnMoYXBpX3JlZ2lzdHJ5LCAmbXV0IGFwaV9tZWRpYSkKICAgICAgICAuZXhwZWN0KCJmYWlsZWQgdG8gcmVnaXN0ZXIgd2VicnRjIGRlZmF1bHQgaW50ZXJjZXB0b3JzIik7CgogICAgbGV0IGFwaSA9IEFQSUJ1aWxkZXI6Om5ldygpCiAgICAgICAgLndpdGhfc2V0dGluZ19lbmdpbmUoYXBpX3NldHRpbmdzKQogICAgICAgIC53aXRoX21lZGlhX2VuZ2luZShhcGlfbWVkaWEpCiAgICAgICAgLndpdGhfaW50ZXJjZXB0b3JfcmVnaXN0cnkoYXBpX3JlZ2lzdHJ5KQogICAgICAgIC5idWlsZCgpOwoKICAgIGxldCAoZXZlbnRfc2VuZGVyLCBldmVudF9yZWNlaXZlcikgPSBjaGFubmVsOjo8VHJhbnNwb3J0RXZlbnQ+KDIwKTsKCiAgICBsZXQgcGVlciA9IEFyYzo6bmV3KGFwaS5uZXdfcGVlcl9jb25uZWN0aW9uKHJ0Y19jb25maWcpLmF3YWl0Pyk7CgogICAgbGV0IGdlbmVyYWxfY2hhbm5lbCA9IHBlZXIuY3JlYXRlX2RhdGFfY2hhbm5lbCgiZ2VuZXJhbCIsIE5vbmUpLmF3YWl0PzsKICAgIGxldCBzdGF0c19jaGFubmVsID0gcGVlci5jcmVhdGVfZGF0YV9jaGFubmVsKCJzdGF0cyIsIE5vbmUpLmF3YWl0PzsKCiAgICBsZXQgcnVudGltZSA9IEhhbmRsZTo6Y3VycmVudCgpOwogICAgbGV0IHRoaXNfb3duZWQgPSBBcmM6Om5ldyhXZWJSdGNJbm5lciB7CiAgICAgICAgcGVlcjogcGVlci5jbG9uZSgpLAogICAgICAgIGV2ZW50X3NlbmRlciwKICAgICAgICBnZW5lcmFsX2NoYW5uZWw6IGdlbmVyYWxfY2hhbm5lbC5jbG9uZSgpLAogICAgICAgIHN0YXRzX2NoYW5uZWwsCiAgICAgICAgaW5wdXRfY2hhbm5lbHM6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICB2aWRlbzogTXV0ZXg6Om5ldyhXZWJSdGNWaWRlbzo6bmV3KAogICAgICAgICAgICBydW50aW1lLmNsb25lKCksCiAgICAgICAgICAgIEFyYzo6ZG93bmdyYWRlKCZwZWVyKSwKICAgICAgICAgICAgdmlkZW9fZnJhbWVfcXVldWVfc2l6ZSwKICAgICAgICApKSwKICAgICAgICBhdWRpbzogTXV0ZXg6Om5ldyhXZWJSdGNBdWRpbzo6bmV3KAogICAgICAgICAgICBydW50aW1lLAogICAgICAgICAgICBBcmM6OmRvd25ncmFkZSgmcGVlciksCiAgICAgICAgICAgIGF1ZGlvX3NhbXBsZV9xdWV1ZV9zaXplLAogICAgICAgICkpLAogICAgICAgIHRpbWVvdXRfdGVybWluYXRlX3JlcXVlc3Q6IE11dGV4OjpuZXcoTm9uZSksCiAgICB9KTsKCiAgICAvLyBBZGQgYWxsIGRhdGEgY2hhbm5lbHMuIFRoZSBzZXJ2ZXIgY3JlYXRlcyBhbGwgZGF0YSBjaGFubmVscwogICAgewogICAgICAgIGxldCB0aGlzID0gdGhpc19vd25lZC5jbG9uZSgpOwogICAgICAgIHRoaXMuY2xvbmUoKS5vbl9kYXRhX2NoYW5uZWwoZ2VuZXJhbF9jaGFubmVsKS5hd2FpdDsKCiAgICAgICAgc3RydWN0IE9wdGlvbnMgewogICAgICAgICAgICByZWxpYWJsZTogYm9vbCwKICAgICAgICAgICAgb3JkZXJlZDogYm9vbCwKICAgICAgICB9CiAgICAgICAgI1tydXN0Zm10Ojpza2lwXQogICAgICAgIGNvbnN0IElOUFVUX0NIQU5ORUxTOiAmWygmc3RyLCBPcHRpb25zKV0gPSAmWwogICAgICAgICAgICAoIm1vdXNlX3JlbGlhYmxlIiwgT3B0aW9ucyB7IHJlbGlhYmxlOiB0cnVlICwgb3JkZXJlZDogdHJ1ZSAgfSksCiAgICAgICAgICAgICgibW91c2VfYWJzb2x1dGUiLCBPcHRpb25zIHsgcmVsaWFibGU6IGZhbHNlLCBvcmRlcmVkOiBmYWxzZSB9KSwKICAgICAgICAgICAgKCJtb3VzZV9yZWxhdGl2ZSIsIE9wdGlvbnMgeyByZWxpYWJsZTogdHJ1ZSAsIG9yZGVyZWQ6IGZhbHNlIH0pLAogICAgICAgICAgICAoImtleWJvYXJkIiwgICAgICAgT3B0aW9ucyB7IHJlbGlhYmxlOiB0cnVlICwgb3JkZXJlZDogdHJ1ZSAgfSksCiAgICAgICAgICAgICgidG91Y2giLCAgICAgICAgICBPcHRpb25zIHsgcmVsaWFibGU6IHRydWUgLCBvcmRlcmVkOiB0cnVlICB9KSwKICAgICAgICAgICAgKCJjb250cm9sbGVycyIsICAgIE9wdGlvbnMgeyByZWxpYWJsZTogdHJ1ZSAsIG9yZGVyZWQ6IHRydWUgIH0pLAogICAgICAgICAgICAoImNvbnRyb2xsZXIwIiwgICAgT3B0aW9ucyB7IHJlbGlhYmxlOiBmYWxzZSwgb3JkZXJlZDogZmFsc2UgfSksCiAgICAgICAgICAgICgiY29udHJvbGxlcjEiLCAgICBPcHRpb25zIHsgcmVsaWFibGU6IGZhbHNlLCBvcmRlcmVkOiBmYWxzZSB9KSwKICAgICAgICAgICAgKCJjb250cm9sbGVyMiIsICAgIE9wdGlvbnMgeyByZWxpYWJsZTogZmFsc2UsIG9yZGVyZWQ6IGZhbHNlIH0pLAogICAgICAgICAgICAoImNvbnRyb2xsZXIzIiwgICAgT3B0aW9ucyB7IHJlbGlhYmxlOiBmYWxzZSwgb3JkZXJlZDogZmFsc2UgfSksCiAgICAgICAgICAgICgiY29udHJvbGxlcjQiLCAgICBPcHRpb25zIHsgcmVsaWFibGU6IGZhbHNlLCBvcmRlcmVkOiBmYWxzZSB9KSwKICAgICAgICAgICAgKCJjb250cm9sbGVyNSIsICAgIE9wdGlvbnMgeyByZWxpYWJsZTogZmFsc2UsIG9yZGVyZWQ6IGZhbHNlIH0pLAogICAgICAgICAgICAoImNvbnRyb2xsZXI2IiwgICAgT3B0aW9ucyB7IHJlbGlhYmxlOiBmYWxzZSwgb3JkZXJlZDogZmFsc2UgfSksCiAgICAgICAgICAgICgiY29udHJvbGxlcjciLCAgICBPcHRpb25zIHsgcmVsaWFibGU6IGZhbHNlLCBvcmRlcmVkOiBmYWxzZSB9KSwKICAgICAgICAgICAgKCJjb250cm9sbGVyOCIsICAgIE9wdGlvbnMgeyByZWxpYWJsZTogZmFsc2UsIG9yZGVyZWQ6IGZhbHNlIH0pLAogICAgICAgICAgICAoImNvbnRyb2xsZXI5IiwgICAgT3B0aW9ucyB7IHJlbGlhYmxlOiBmYWxzZSwgb3JkZXJlZDogZmFsc2UgfSksCiAgICAgICAgICAgICgiY29udHJvbGxlcjEwIiwgICBPcHRpb25zIHsgcmVsaWFibGU6IGZhbHNlLCBvcmRlcmVkOiBmYWxzZSB9KSwKICAgICAgICAgICAgKCJjb250cm9sbGVyMTEiLCAgIE9wdGlvbnMgeyByZWxpYWJsZTogZmFsc2UsIG9yZGVyZWQ6IGZhbHNlIH0pLAogICAgICAgICAgICAoImNvbnRyb2xsZXIxMiIsICAgT3B0aW9ucyB7IHJlbGlhYmxlOiBmYWxzZSwgb3JkZXJlZDogZmFsc2UgfSksCiAgICAgICAgICAgICgiY29udHJvbGxlcjEzIiwgICBPcHRpb25zIHsgcmVsaWFibGU6IGZhbHNlLCBvcmRlcmVkOiBmYWxzZSB9KSwKICAgICAgICAgICAgKCJjb250cm9sbGVyMTQiLCAgIE9wdGlvbnMgeyByZWxpYWJsZTogZmFsc2UsIG9yZGVyZWQ6IGZhbHNlIH0pLAogICAgICAgICAgICAoImNvbnRyb2xsZXIxNSIsICAgT3B0aW9ucyB7IHJlbGlhYmxlOiBmYWxzZSwgb3JkZXJlZDogZmFsc2UgfSksCiAgICAgICAgXTsKCiAgICAgICAgbGV0IG11dCBpbnB1dF9jaGFubmVscyA9IHRoaXMuaW5wdXRfY2hhbm5lbHMubG9jaygpLmF3YWl0OwogICAgICAgIGZvciAoY2hhbm5lbCwgb3B0aW9ucykgaW4gSU5QVVRfQ0hBTk5FTFMgewogICAgICAgICAgICBsZXQgZGF0YV9jaGFubmVsID0gdGhpcwogICAgICAgICAgICAgICAgLnBlZXIKICAgICAgICAgICAgICAgIC5jcmVhdGVfZGF0YV9jaGFubmVsKAogICAgICAgICAgICAgICAgICAgIGNoYW5uZWwsCiAgICAgICAgICAgICAgICAgICAgU29tZShSVENEYXRhQ2hhbm5lbEluaXQgewogICAgICAgICAgICAgICAgICAgICAgICBvcmRlcmVkOiBTb21lKG9wdGlvbnMub3JkZXJlZCksCiAgICAgICAgICAgICAgICAgICAgICAgIG1heF9yZXRyYW5zbWl0czogKCFvcHRpb25zLnJlbGlhYmxlKS50aGVuX3NvbWUoMCksCiAgICAgICAgICAgICAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYXdhaXQ/OwoKICAgICAgICAgICAgdGhpcy5jbG9uZSgpLm9uX2RhdGFfY2hhbm5lbChkYXRhX2NoYW5uZWwuY2xvbmUoKSkuYXdhaXQ7CgogICAgICAgICAgICBpbnB1dF9jaGFubmVscy5wdXNoKGRhdGFfY2hhbm5lbCk7CiAgICAgICAgfQogICAgfQoKICAgIGxldCB0aGlzID0gQXJjOjpkb3duZ3JhZGUoJnRoaXNfb3duZWQpOwoKICAgIC8vIC0tIENvbm5lY3Rpb24gc3RhdGUKICAgIHBlZXIub25faWNlX2Nvbm5lY3Rpb25fc3RhdGVfY2hhbmdlKGNyZWF0ZV9ldmVudF9oYW5kbGVyKAogICAgICAgIHRoaXMuY2xvbmUoKSwKICAgICAgICBhc3luYyBtb3ZlIHx0aGlzLCBzdGF0ZXwgewogICAgICAgICAgICB0aGlzLm9uX2ljZV9jb25uZWN0aW9uX3N0YXRlX2NoYW5nZShzdGF0ZSkuYXdhaXQ7CiAgICAgICAgfSwKICAgICkpOwogICAgcGVlci5vbl9wZWVyX2Nvbm5lY3Rpb25fc3RhdGVfY2hhbmdlKGNyZWF0ZV9ldmVudF9oYW5kbGVyKAogICAgICAgIHRoaXMuY2xvbmUoKSwKICAgICAgICBhc3luYyBtb3ZlIHx0aGlzLCBzdGF0ZXwgewogICAgICAgICAgICB0aGlzLm9uX3BlZXJfY29ubmVjdGlvbl9zdGF0ZV9jaGFuZ2Uoc3RhdGUpLmF3YWl0OwogICAgICAgIH0sCiAgICApKTsKCiAgICAvLyAtLSBTaWduYWxpbmcKICAgIHBlZXIub25faWNlX2NhbmRpZGF0ZShjcmVhdGVfZXZlbnRfaGFuZGxlcigKICAgICAgICB0aGlzLmNsb25lKCksCiAgICAgICAgYXN5bmMgbW92ZSB8dGhpcywgY2FuZGlkYXRlfCB7CiAgICAgICAgICAgIHRoaXMub25faWNlX2NhbmRpZGF0ZShjYW5kaWRhdGUpLmF3YWl0OwogICAgICAgIH0sCiAgICApKTsKCiAgICBkcm9wKHBlZXIpOwoKICAgIE9rKCgKICAgICAgICBXZWJSVENUcmFuc3BvcnRTZW5kZXIgewogICAgICAgICAgICBpbm5lcjogdGhpc19vd25lZC5jbG9uZSgpLAogICAgICAgIH0sCiAgICAgICAgV2ViUlRDVHJhbnNwb3J0RXZlbnRzIHsgZXZlbnRfcmVjZWl2ZXIgfSwKICAgICkpCn0KCi8vIEl0IGNvbXBpbGluZy4uLgojW2FsbG93KGNsaXBweTo6Y29tcGxleGl0eSldCmZuIGNyZWF0ZV9ldmVudF9oYW5kbGVyPEYsIEFyZ3M+KAogICAgaW5uZXI6IFdlYWs8V2ViUnRjSW5uZXI+LAogICAgZjogRiwKKSAtPiBCb3g8CiAgICBkeW4gRm5NdXQoQXJncykgLT4gUGluPEJveDxkeW4gRnV0dXJlPE91dHB1dCA9ICgpPiArIFNlbmQgKyAnc3RhdGljPj4gKyBTZW5kICsgU3luYyArICdzdGF0aWMsCj4Kd2hlcmUKICAgIEFyZ3M6IFNlbmQgKyAnc3RhdGljLAogICAgRjogQXN5bmNGbihBcmM8V2ViUnRjSW5uZXI+LCBBcmdzKSArIFNlbmQgKyBTeW5jICsgQ2xvbmUgKyAnc3RhdGljLAogICAgZm9yPCdhPiBGOjpDYWxsUmVmRnV0dXJlPCdhPjogU2VuZCwKewogICAgQm94OjpuZXcobW92ZSB8YXJnczogQXJnc3wgewogICAgICAgIGxldCBpbm5lciA9IGlubmVyLmNsb25lKCk7CiAgICAgICAgbGV0IFNvbWUoaW5uZXIpID0gaW5uZXIudXBncmFkZSgpIGVsc2UgewogICAgICAgICAgICBkZWJ1ZyEoIkNhbGxlZCB3ZWJydGMgZXZlbnQgaGFuZGxlciB3aGlsZSB0aGUgbWFpbiB0eXBlIGlzIGFscmVhZHkgZGVhbGxvY2F0ZWQiKTsKICAgICAgICAgICAgcmV0dXJuIEJveDo6cGluKHJlYWR5KCgpKSkgYXMgUGluPEJveDxkeW4gRnV0dXJlPE91dHB1dCA9ICgpPiArIFNlbmQgKyAnc3RhdGljPj47CiAgICAgICAgfTsKCiAgICAgICAgbGV0IGZ1dHVyZSA9IGYuY2xvbmUoKTsKICAgICAgICBCb3g6OnBpbihhc3luYyBtb3ZlIHsKICAgICAgICAgICAgZnV0dXJlKGlubmVyLCBhcmdzKS5hd2FpdDsKICAgICAgICB9KSBhcyBQaW48Qm94PGR5biBGdXR1cmU8T3V0cHV0ID0gKCk+ICsgU2VuZCArICdzdGF0aWM+PgogICAgfSkKICAgICAgICBhcyBCb3g8CiAgICAgICAgICAgIGR5biBGbk11dChBcmdzKSAtPiBQaW48Qm94PGR5biBGdXR1cmU8T3V0cHV0ID0gKCk+ICsgU2VuZCArICdzdGF0aWM+PgogICAgICAgICAgICAgICAgKyBTZW5kCiAgICAgICAgICAgICAgICArIFN5bmMKICAgICAgICAgICAgICAgICsgJ3N0YXRpYywKICAgICAgICA+Cn0KI1thbGxvdyhjbGlwcHk6OmNvbXBsZXhpdHkpXQpmbiBjcmVhdGVfY2hhbm5lbF9tZXNzYWdlX2hhbmRsZXIoCiAgICBpbm5lcjogV2VhazxXZWJSdGNJbm5lcj4sCiAgICBjaGFubmVsOiBUcmFuc3BvcnRDaGFubmVsLAopIC0+IEJveDwKICAgIGR5biBGbk11dChEYXRhQ2hhbm5lbE1lc3NhZ2UpIC0+IFBpbjxCb3g8ZHluIEZ1dHVyZTxPdXRwdXQgPSAoKT4gKyBTZW5kICsgJ3N0YXRpYz4+CiAgICAgICAgKyBTZW5kCiAgICAgICAgKyBTeW5jCiAgICAgICAgKyAnc3RhdGljLAo+IHsKICAgIGRlYnVnISgic2V0dGluZyB1cCBjaGFubmVsIHs6P30iLCBjaGFubmVsKTsKICAgIGNyZWF0ZV9ldmVudF9oYW5kbGVyKGlubmVyLCBhc3luYyBtb3ZlIHxpbm5lciwgbWVzc2FnZTogRGF0YUNoYW5uZWxNZXNzYWdlfCB7CiAgICAgICAgbGV0IFNvbWUocGFja2V0KSA9IEluYm91bmRQYWNrZXQ6OmRlc2VyaWFsaXplKGNoYW5uZWwsICZtZXNzYWdlLmRhdGEpIGVsc2UgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfTsKCiAgICAgICAgaWYgbGV0IEVycihlcnIpID0gaW5uZXIKICAgICAgICAgICAgLmV2ZW50X3NlbmRlcgogICAgICAgICAgICAuc2VuZChUcmFuc3BvcnRFdmVudDo6UmVjdlBhY2tldChwYWNrZXQpKQogICAgICAgICAgICAuYXdhaXQKICAgICAgICB7CiAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gZGlzcGF0Y2ggUmVjdlBhY2tldCBldmVudDoge2Vycjo/fSIpOwogICAgICAgIH07CiAgICB9KQp9CgppbXBsIFdlYlJ0Y0lubmVyIHsKICAgIC8vIC0tIEhhbmRsZSBDb25uZWN0aW9uIFN0YXRlCiAgICBhc3luYyBmbiBvbl9pY2VfY29ubmVjdGlvbl9zdGF0ZV9jaGFuZ2Uoc2VsZjogJkFyYzxTZWxmPiwgX3N0YXRlOiBSVENJY2VDb25uZWN0aW9uU3RhdGUpIHt9CiAgICBhc3luYyBmbiBvbl9wZWVyX2Nvbm5lY3Rpb25fc3RhdGVfY2hhbmdlKHNlbGY6IEFyYzxTZWxmPiwgc3RhdGU6IFJUQ1BlZXJDb25uZWN0aW9uU3RhdGUpIHsKICAgICAgICAjW2FsbG93KGNsaXBweTo6Y29sbGFwc2libGVfaWYpXQogICAgICAgIGlmIG1hdGNoZXMhKHN0YXRlLCBSVENQZWVyQ29ubmVjdGlvblN0YXRlOjpDbG9zZWQpIHsKICAgICAgICAgICAgaWYgbGV0IEVycihlcnIpID0gc2VsZi5ldmVudF9zZW5kZXIuc2VuZChUcmFuc3BvcnRFdmVudDo6Q2xvc2VkKS5hd2FpdCB7CiAgICAgICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgcGVlciBjbG9zZWQgZXZlbnQgdG8gc3RyZWFtOiB7ZXJyOj99Iik7CiAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3RfdGVybWluYXRlKCkuYXdhaXQ7CiAgICAgICAgICAgIH07CiAgICAgICAgfSBlbHNlIGlmIG1hdGNoZXMhKAogICAgICAgICAgICBzdGF0ZSwKICAgICAgICAgICAgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZTo6RmFpbGVkIHwgUlRDUGVlckNvbm5lY3Rpb25TdGF0ZTo6RGlzY29ubmVjdGVkCiAgICAgICAgKSB7CiAgICAgICAgICAgIHNlbGYucmVxdWVzdF90ZXJtaW5hdGUoKS5hd2FpdDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzZWxmLmNsZWFyX3Rlcm1pbmF0ZV9yZXF1ZXN0KCkuYXdhaXQ7CiAgICAgICAgfQogICAgfQoKICAgIC8vIC0tIEhhbmRsZSBTaWduYWxpbmcKICAgIGFzeW5jIGZuIHNlbmRfb2ZmZXIoJnNlbGYpIC0+IGJvb2wgewogICAgICAgIGxldCBsb2NhbF9kZXNjcmlwdGlvbiA9IG1hdGNoIHNlbGYucGVlci5jcmVhdGVfb2ZmZXIoTm9uZSkuYXdhaXQgewogICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICBlcnJvciEoIltTaWduYWxpbmddOiBmYWlsZWQgdG8gY3JlYXRlIG9mZmVyOiB7ZXJyOj99Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgT2sodmFsdWUpID0+IHZhbHVlLAogICAgICAgIH07CgogICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IHNlbGYKICAgICAgICAgICAgLnBlZXIKICAgICAgICAgICAgLnNldF9sb2NhbF9kZXNjcmlwdGlvbihsb2NhbF9kZXNjcmlwdGlvbi5jbG9uZSgpKQogICAgICAgICAgICAuYXdhaXQKICAgICAgICB7CiAgICAgICAgICAgIGVycm9yISgiW1NpZ25hbGluZ106IGZhaWxlZCB0byBzZXQgbG9jYWwgZGVzY3JpcHRpb246IHtlcnI6P30iKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgZGVidWchKAogICAgICAgICAgICAiW1NpZ25hbGluZ10gU2VuZGluZyBMb2NhbCBEZXNjcmlwdGlvbiBhcyBPZmZlcjogezo/fSIsCiAgICAgICAgICAgIGxvY2FsX2Rlc2NyaXB0aW9uLnNkcAogICAgICAgICk7CgogICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IHNlbGYKICAgICAgICAgICAgLmV2ZW50X3NlbmRlcgogICAgICAgICAgICAuc2VuZChUcmFuc3BvcnRFdmVudDo6U2VuZElwYyhTdHJlYW1lcklwY01lc3NhZ2U6OldlYlNvY2tldCgKICAgICAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OldlYlJ0YyhTdHJlYW1TaWduYWxpbmdNZXNzYWdlOjpEZXNjcmlwdGlvbigKICAgICAgICAgICAgICAgICAgICBSdGNTZXNzaW9uRGVzY3JpcHRpb24gewogICAgICAgICAgICAgICAgICAgICAgICB0eTogZnJvbV93ZWJydGNfc2RwKGxvY2FsX2Rlc2NyaXB0aW9uLnNkcF90eXBlKSwKICAgICAgICAgICAgICAgICAgICAgICAgc2RwOiBsb2NhbF9kZXNjcmlwdGlvbi5zZHAsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICkpLAogICAgICAgICAgICApKSkKICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgewogICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgbG9jYWwgZGVzY3JpcHRpb24gKG9mZmVyKSB2aWEgd2ViIHNvY2tldCBmcm9tIHBlZXI6IHtlcnI6P30iKTsKICAgICAgICB9OwoKICAgICAgICB0cnVlCiAgICB9CgogICAgYXN5bmMgZm4gb25fd3NfbWVzc2FnZSgmc2VsZiwgbWVzc2FnZTogU3RyZWFtQ2xpZW50TWVzc2FnZSkgewogICAgICAgIG1hdGNoIG1lc3NhZ2UgewogICAgICAgICAgICBTdHJlYW1DbGllbnRNZXNzYWdlOjpTdGFydFN0cmVhbSB7IHNldHRpbmdzIH0gPT4gewogICAgICAgICAgICAgICAgbGV0IHZpZGVvX3N1cHBvcnRlZF9mb3JtYXRzID0gVmlkZW9Gb3JtYXRzOjpmcm9tX2JpdHMoc2V0dGluZ3Muc3VwcG9ydGVkX2NvZGVjcykKICAgICAgICAgICAgICAgICAgICAudW53cmFwX29yX2Vsc2UofHwgewogICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gZGVzZXJpYWxpemUgVmlkZW9Gb3JtYXRzOiB7fSwgZmFsbGluZyBiYWNrIHRvIG9ubHkgSDI2NCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBWaWRlb0Zvcm1hdHM6OmZyb21fYml0c19yZXRhaW4oc2V0dGluZ3Muc3VwcG9ydGVkX2NvZGVjcykKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgVmlkZW9Gb3JtYXRzOjpIMjY0CiAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbGV0IG11dCB2aWRlbyA9IHNlbGYudmlkZW8ubG9jaygpLmF3YWl0OwogICAgICAgICAgICAgICAgICAgIHZpZGVvLnNldF9jb2RlY3ModmlkZW9fc3VwcG9ydGVkX2Zvcm1hdHMpLmF3YWl0OwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIFRPRE86IGNoZWNrIHBlZXIgZm9yIHN1cHBvcnRlZCBmb3JtYXRzIHZpYSBzZHAKCiAgICAgICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBzZWxmCiAgICAgICAgICAgICAgICAgICAgLmV2ZW50X3NlbmRlcgogICAgICAgICAgICAgICAgICAgIC5zZW5kKFRyYW5zcG9ydEV2ZW50OjpTdGFydFN0cmVhbSB7IHNldHRpbmdzIH0pCiAgICAgICAgICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgZXJyb3IhKCJGYWlsZWQgdG8gc2VuZCBzdGFydCBzdHJlYW06IHtlcnJ9Iik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU3RyZWFtQ2xpZW50TWVzc2FnZTo6V2ViUnRjKFN0cmVhbVNpZ25hbGluZ01lc3NhZ2U6OkRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSkgPT4gewogICAgICAgICAgICAgICAgZGVidWchKCJbU2lnbmFsaW5nXSBSZWNlaXZlZCBSZW1vdGUgRGVzY3JpcHRpb246IHs6P30iLCBkZXNjcmlwdGlvbik7CgogICAgICAgICAgICAgICAgbGV0IGRlc2NyaXB0aW9uID0gbWF0Y2ggJmRlc2NyaXB0aW9uLnR5IHsKICAgICAgICAgICAgICAgICAgICBSdGNTZHBUeXBlOjpPZmZlciA9PiBSVENTZXNzaW9uRGVzY3JpcHRpb246Om9mZmVyKGRlc2NyaXB0aW9uLnNkcCksCiAgICAgICAgICAgICAgICAgICAgUnRjU2RwVHlwZTo6QW5zd2VyID0+IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbjo6YW5zd2VyKGRlc2NyaXB0aW9uLnNkcCksCiAgICAgICAgICAgICAgICAgICAgUnRjU2RwVHlwZTo6UHJhbnN3ZXIgPT4gUlRDU2Vzc2lvbkRlc2NyaXB0aW9uOjpwcmFuc3dlcihkZXNjcmlwdGlvbi5zZHApLAogICAgICAgICAgICAgICAgICAgIF8gPT4gewogICAgICAgICAgICAgICAgICAgICAgICBlcnJvciEoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW1NpZ25hbGluZ106IGZhaWxlZCB0byBoYW5kbGUgUlRDU2RwVHlwZSB7Oj99IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLnR5CiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9OwoKICAgICAgICAgICAgICAgIGxldCBPayhkZXNjcmlwdGlvbikgPSBkZXNjcmlwdGlvbiBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBlcnJvciEoIltTaWduYWxpbmddOiBSZWNlaXZlZCBpbnZhbGlkIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbiIpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH07CgogICAgICAgICAgICAgICAgbGV0IHJlbW90ZV90eSA9IGRlc2NyaXB0aW9uLnNkcF90eXBlOwoKICAgICAgICAgICAgICAgIGlmIHJlbW90ZV90eSA9PSBSVENTZHBUeXBlOjpPZmZlciB7CiAgICAgICAgICAgICAgICAgICAgd2FybiEoCiAgICAgICAgICAgICAgICAgICAgICAgICJSZWNlaXZlZCBhbiBvZmZlciBmcm9tIHRoZSBjbGllbnQuIFRoaXMgc2hvdWxkbid0IGJlIHBvc3NpYmxlLiBEcm9wcGluZyB0aGUgb2ZmZXIiCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBzZWxmLnBlZXIuc2V0X3JlbW90ZV9kZXNjcmlwdGlvbihkZXNjcmlwdGlvbikuYXdhaXQgewogICAgICAgICAgICAgICAgICAgIGVycm9yISgiW1NpZ25hbGluZ106IGZhaWxlZCB0byBzZXQgcmVtb3RlIGRlc2NyaXB0aW9uOiB7ZXJyOj99Iik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU3RyZWFtQ2xpZW50TWVzc2FnZTo6V2ViUnRjKFN0cmVhbVNpZ25hbGluZ01lc3NhZ2U6OkFkZEljZUNhbmRpZGF0ZShkZXNjcmlwdGlvbikpID0+IHsKICAgICAgICAgICAgICAgIGRlYnVnISgiW1NpZ25hbGluZ10gUmVjZWl2ZWQgSWNlIENhbmRpZGF0ZSIpOwoKICAgICAgICAgICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IHNlbGYKICAgICAgICAgICAgICAgICAgICAucGVlcgogICAgICAgICAgICAgICAgICAgIC5hZGRfaWNlX2NhbmRpZGF0ZShSVENJY2VDYW5kaWRhdGVJbml0IHsKICAgICAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlOiBkZXNjcmlwdGlvbi5jYW5kaWRhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIHNkcF9taWQ6IGRlc2NyaXB0aW9uLnNkcF9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgIHNkcF9tbGluZV9pbmRleDogZGVzY3JpcHRpb24uc2RwX21saW5lX2luZGV4LAogICAgICAgICAgICAgICAgICAgICAgICB1c2VybmFtZV9mcmFnbWVudDogZGVzY3JpcHRpb24udXNlcm5hbWVfZnJhZ21lbnQsCiAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICAuYXdhaXQKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB3YXJuISgiW1NpZ25hbGluZ106IGZhaWxlZCB0byBhZGQgaWNlIGNhbmRpZGF0ZToge2Vycjo/fSIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIF8gPT4ge30KICAgICAgICB9CiAgICB9CgogICAgYXN5bmMgZm4gb25faWNlX2NhbmRpZGF0ZSgmc2VsZiwgY2FuZGlkYXRlOiBPcHRpb248UlRDSWNlQ2FuZGlkYXRlPikgewogICAgICAgIGxldCBTb21lKGNhbmRpZGF0ZSkgPSBjYW5kaWRhdGUgZWxzZSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9OwoKICAgICAgICBsZXQgT2soY2FuZGlkYXRlX2pzb24pID0gY2FuZGlkYXRlLnRvX2pzb24oKSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH07CgogICAgICAgIGRlYnVnISgKICAgICAgICAgICAgIltTaWduYWxpbmddIFNlbmRpbmcgSWNlIENhbmRpZGF0ZToge30iLAogICAgICAgICAgICBjYW5kaWRhdGVfanNvbi5jYW5kaWRhdGUKICAgICAgICApOwoKICAgICAgICBsZXQgbWVzc2FnZSA9CiAgICAgICAgICAgIFN0cmVhbVNlcnZlck1lc3NhZ2U6OldlYlJ0YyhTdHJlYW1TaWduYWxpbmdNZXNzYWdlOjpBZGRJY2VDYW5kaWRhdGUoUnRjSWNlQ2FuZGlkYXRlIHsKICAgICAgICAgICAgICAgIGNhbmRpZGF0ZTogY2FuZGlkYXRlX2pzb24uY2FuZGlkYXRlLAogICAgICAgICAgICAgICAgc2RwX21pZDogY2FuZGlkYXRlX2pzb24uc2RwX21pZCwKICAgICAgICAgICAgICAgIHNkcF9tbGluZV9pbmRleDogY2FuZGlkYXRlX2pzb24uc2RwX21saW5lX2luZGV4LAogICAgICAgICAgICAgICAgdXNlcm5hbWVfZnJhZ21lbnQ6IGNhbmRpZGF0ZV9qc29uLnVzZXJuYW1lX2ZyYWdtZW50LAogICAgICAgICAgICB9KSk7CgogICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IHNlbGYKICAgICAgICAgICAgLmV2ZW50X3NlbmRlcgogICAgICAgICAgICAuc2VuZChUcmFuc3BvcnRFdmVudDo6U2VuZElwYyhTdHJlYW1lcklwY01lc3NhZ2U6OldlYlNvY2tldCgKICAgICAgICAgICAgICAgIG1lc3NhZ2UsCiAgICAgICAgICAgICkpKQogICAgICAgICAgICAuYXdhaXQKICAgICAgICB7CiAgICAgICAgICAgIGVycm9yISgiRmFpbGVkIHRvIHNlbmQgd2ViIHNvY2tldCBtZXNzYWdlIGZyb20gcGVlcjoge2Vycjo/fSIpOwogICAgICAgIH07CiAgICB9CgogICAgYXN5bmMgZm4gb25fZGF0YV9jaGFubmVsKHNlbGY6IEFyYzxTZWxmPiwgY2hhbm5lbDogQXJjPFJUQ0RhdGFDaGFubmVsPikgewogICAgICAgIGxldCBsYWJlbCA9IGNoYW5uZWwubGFiZWwoKTsKICAgICAgICBkZWJ1ZyEoImFkZGluZyBkYXRhIGNoYW5uZWw6IFwie2xhYmVsfVwiIik7CgogICAgICAgIGxldCBpbm5lciA9IEFyYzo6ZG93bmdyYWRlKCZzZWxmKTsKCiAgICAgICAgbWF0Y2ggbGFiZWwgewogICAgICAgICAgICAiZ2VuZXJhbCIgPT4gewogICAgICAgICAgICAgICAgZGVidWchKCJzZXR0aW5nIHVwIGdlbmVyYWwgY2hhbm5lbCBtZXNzYWdlIGhhbmRsZXIiKTsKICAgICAgICAgICAgICAgIGNoYW5uZWwub25fbWVzc2FnZShjcmVhdGVfY2hhbm5lbF9tZXNzYWdlX2hhbmRsZXIoCiAgICAgICAgICAgICAgICAgICAgaW5uZXIsCiAgICAgICAgICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6OkdFTkVSQUwpLAogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgIm1vdXNlX3JlbGlhYmxlIiB8ICJtb3VzZV9hYnNvbHV0ZSIgfCAibW91c2VfcmVsYXRpdmUiID0+IHsKICAgICAgICAgICAgICAgIGNoYW5uZWwub25fbWVzc2FnZShjcmVhdGVfY2hhbm5lbF9tZXNzYWdlX2hhbmRsZXIoCiAgICAgICAgICAgICAgICAgICAgaW5uZXIsCiAgICAgICAgICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6Ok1PVVNFX0FCU09MVVRFKSwKICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICJ0b3VjaCIgPT4gewogICAgICAgICAgICAgICAgY2hhbm5lbC5vbl9tZXNzYWdlKGNyZWF0ZV9jaGFubmVsX21lc3NhZ2VfaGFuZGxlcigKICAgICAgICAgICAgICAgICAgICBpbm5lciwKICAgICAgICAgICAgICAgICAgICBUcmFuc3BvcnRDaGFubmVsKFRyYW5zcG9ydENoYW5uZWxJZDo6VE9VQ0gpLAogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgImtleWJvYXJkIiA9PiB7CiAgICAgICAgICAgICAgICBjaGFubmVsLm9uX21lc3NhZ2UoY3JlYXRlX2NoYW5uZWxfbWVzc2FnZV9oYW5kbGVyKAogICAgICAgICAgICAgICAgICAgIGlubmVyLAogICAgICAgICAgICAgICAgICAgIFRyYW5zcG9ydENoYW5uZWwoVHJhbnNwb3J0Q2hhbm5lbElkOjpLRVlCT0FSRCksCiAgICAgICAgICAgICAgICApKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAiY29udHJvbGxlcnMiID0+IHsKICAgICAgICAgICAgICAgIGNoYW5uZWwub25fbWVzc2FnZShjcmVhdGVfY2hhbm5lbF9tZXNzYWdlX2hhbmRsZXIoCiAgICAgICAgICAgICAgICAgICAgaW5uZXIsCiAgICAgICAgICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQ6OkNPTlRST0xMRVJTKSwKICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIF8gPT4gewogICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUobnVtYmVyKSA9IGxhYmVsLnN0cmlwX3ByZWZpeCgiY29udHJvbGxlciIpCiAgICAgICAgICAgICAgICAgICAgJiYgbGV0IE9rKGlkKSA9IG51bWJlci5wYXJzZTo6PHVzaXplPigpCiAgICAgICAgICAgICAgICAgICAgJiYgaWQgPCBJbmJvdW5kUGFja2V0OjpDT05UUk9MTEVSX0NIQU5ORUxTLmxlbigpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbC5vbl9tZXNzYWdlKGNyZWF0ZV9jaGFubmVsX21lc3NhZ2VfaGFuZGxlcigKICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXIsCiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zcG9ydENoYW5uZWwoSW5ib3VuZFBhY2tldDo6Q09OVFJPTExFUl9DSEFOTkVMU1tpZF0pLAogICAgICAgICAgICAgICAgICAgICkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfTsKICAgIH0KCiAgICAvLyAtLSBUZXJtaW5hdGlvbgogICAgYXN5bmMgZm4gcmVxdWVzdF90ZXJtaW5hdGUoc2VsZjogJkFyYzxTZWxmPikgewogICAgICAgIGxldCB0aGlzID0gc2VsZi5jbG9uZSgpOwoKICAgICAgICBsZXQgbXV0IHRlcm1pbmF0ZV9yZXF1ZXN0ID0gc2VsZi50aW1lb3V0X3Rlcm1pbmF0ZV9yZXF1ZXN0LmxvY2soKS5hd2FpdDsKICAgICAgICAqdGVybWluYXRlX3JlcXVlc3QgPSBTb21lKEluc3RhbnQ6Om5vdygpKTsKICAgICAgICBkcm9wKHRlcm1pbmF0ZV9yZXF1ZXN0KTsKCiAgICAgICAgc3Bhd24oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgIHNsZWVwKFRJTUVPVVRfRFVSQVRJT04gKyBEdXJhdGlvbjo6ZnJvbV9taWxsaXMoMjAwKSkuYXdhaXQ7CgogICAgICAgICAgICBsZXQgbm93ID0gSW5zdGFudDo6bm93KCk7CgogICAgICAgICAgICBsZXQgdGVybWluYXRlX3JlcXVlc3QgPSB0aGlzLnRpbWVvdXRfdGVybWluYXRlX3JlcXVlc3QubG9jaygpLmF3YWl0OwogICAgICAgICAgICBpZiBsZXQgU29tZSh0ZXJtaW5hdGVfcmVxdWVzdCkgPSAqdGVybWluYXRlX3JlcXVlc3QKICAgICAgICAgICAgICAgICYmIChub3cgLSB0ZXJtaW5hdGVfcmVxdWVzdCkgPiBUSU1FT1VUX0RVUkFUSU9OCiAgICAgICAgICAgICAgICAmJiBsZXQgRXJyKGVycikgPSB0aGlzLmV2ZW50X3NlbmRlci5zZW5kKFRyYW5zcG9ydEV2ZW50OjpDbG9zZWQpLmF3YWl0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gc2VuZCB0aGF0IHRoZSBwZWVyIGlzIGNsb3NlZDoge2Vycjo/fSIpOwogICAgICAgICAgICB9OwogICAgICAgIH0pOwogICAgfQogICAgYXN5bmMgZm4gY2xlYXJfdGVybWluYXRlX3JlcXVlc3QoJnNlbGYpIHsKICAgICAgICBsZXQgbXV0IHJlcXVlc3QgPSBzZWxmLnRpbWVvdXRfdGVybWluYXRlX3JlcXVlc3QubG9jaygpLmF3YWl0OwoKICAgICAgICAqcmVxdWVzdCA9IE5vbmU7CiAgICB9Cn0KCnB1YiBzdHJ1Y3QgV2ViUlRDVHJhbnNwb3J0RXZlbnRzIHsKICAgIGV2ZW50X3JlY2VpdmVyOiBSZWNlaXZlcjxUcmFuc3BvcnRFdmVudD4sCn0KCiNbYXN5bmNfdHJhaXRdCmltcGwgVHJhbnNwb3J0RXZlbnRzIGZvciBXZWJSVENUcmFuc3BvcnRFdmVudHMgewogICAgYXN5bmMgZm4gcG9sbF9ldmVudCgmbXV0IHNlbGYpIC0+IFJlc3VsdDxUcmFuc3BvcnRFdmVudCwgVHJhbnNwb3J0RXJyb3I+IHsKICAgICAgICB0cmFjZSEoIlBvbGxpbmcgV2ViUlRDRXZlbnRzIik7CiAgICAgICAgc2VsZi5ldmVudF9yZWNlaXZlcgogICAgICAgICAgICAucmVjdigpCiAgICAgICAgICAgIC5hd2FpdAogICAgICAgICAgICAub2tfb3IoVHJhbnNwb3J0RXJyb3I6OkNsb3NlZCkKICAgIH0KfQoKcHViIHN0cnVjdCBXZWJSVENUcmFuc3BvcnRTZW5kZXIgewogICAgaW5uZXI6IEFyYzxXZWJSdGNJbm5lcj4sCn0KCiNbYXN5bmNfdHJhaXRdCmltcGwgVHJhbnNwb3J0U2VuZGVyIGZvciBXZWJSVENUcmFuc3BvcnRTZW5kZXIgewogICAgYXN5bmMgZm4gc2V0dXBfdmlkZW8oJnNlbGYsIHNldHVwOiBWaWRlb1NldHVwKSAtPiBpMzIgewogICAgICAgIGxldCBtdXQgdmlkZW8gPSBzZWxmLmlubmVyLnZpZGVvLmxvY2soKS5hd2FpdDsKICAgICAgICBpZiB2aWRlby5zZXR1cCgmc2VsZi5pbm5lciwgc2V0dXApLmF3YWl0IHsKICAgICAgICAgICAgMAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC0xCiAgICAgICAgfQogICAgfQogICAgYXN5bmMgZm4gc2VuZF92aWRlb191bml0PCdhPigKICAgICAgICAmJ2Egc2VsZiwKICAgICAgICB1bml0OiBWaWRlb0RlY29kZVVuaXQ8JidhIFt1OF0+LAogICAgKSAtPiBSZXN1bHQ8RGVjb2RlUmVzdWx0LCBUcmFuc3BvcnRFcnJvcj4gewogICAgICAgIGxldCBtdXQgdmlkZW8gPSBzZWxmLmlubmVyLnZpZGVvLmxvY2soKS5hd2FpdDsKICAgICAgICBPayh2aWRlby5zZW5kX2RlY29kZV91bml0KCZ1bml0KS5hd2FpdCkKICAgIH0KCiAgICBhc3luYyBmbiBzZXR1cF9hdWRpbygKICAgICAgICAmc2VsZiwKICAgICAgICBhdWRpb19jb25maWc6IEF1ZGlvQ29uZmlnLAogICAgICAgIHN0cmVhbV9jb25maWc6IE9wdXNNdWx0aXN0cmVhbUNvbmZpZywKICAgICkgLT4gaTMyIHsKICAgICAgICBsZXQgbXV0IGF1ZGlvID0gc2VsZi5pbm5lci5hdWRpby5sb2NrKCkuYXdhaXQ7CgogICAgICAgIGF1ZGlvLnNldHVwKCZzZWxmLmlubmVyLCBhdWRpb19jb25maWcsIHN0cmVhbV9jb25maWcpLmF3YWl0CiAgICB9CiAgICBhc3luYyBmbiBzZW5kX2F1ZGlvX3NhbXBsZSgmc2VsZiwgZGF0YTogJlt1OF0pIC0+IFJlc3VsdDwoKSwgVHJhbnNwb3J0RXJyb3I+IHsKICAgICAgICBsZXQgbXV0IGF1ZGlvID0gc2VsZi5pbm5lci5hdWRpby5sb2NrKCkuYXdhaXQ7CgogICAgICAgIGF1ZGlvLnNlbmRfYXVkaW9fc2FtcGxlKGRhdGEpLmF3YWl0OwoKICAgICAgICBPaygoKSkKICAgIH0KCiAgICBhc3luYyBmbiBvbl9zZXR1cF9jb21wbGV0ZSgmc2VsZikgewogICAgICAgIGlmICFzZWxmLmlubmVyLnNlbmRfb2ZmZXIoKS5hd2FpdCB7CiAgICAgICAgICAgIGVycm9yISgiRmFpbGVkIHRvIHNlbmQgb2ZmZXIgdG8gY2xpZW50LiBSZXF1ZXN0aW5nIFRlcm1pbmF0aW9uIik7CiAgICAgICAgICAgIHNlbGYuaW5uZXIucmVxdWVzdF90ZXJtaW5hdGUoKS5hd2FpdDsKICAgICAgICB9CiAgICB9CgogICAgYXN5bmMgZm4gc2VuZCgmc2VsZiwgcGFja2V0OiBPdXRib3VuZFBhY2tldCkgLT4gUmVzdWx0PCgpLCBUcmFuc3BvcnRFcnJvcj4gewogICAgICAgIGxldCBtdXQgYnVmZmVyID0gVmVjOjpuZXcoKTsKCiAgICAgICAgbGV0IFNvbWUoKGNoYW5uZWwsIHJhbmdlKSkgPSBwYWNrZXQuc2VyaWFsaXplKCZtdXQgYnVmZmVyKSBlbHNlIHsKICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBzZXJpYWxpemUgcGFja2V0OiB7cGFja2V0Oj99Iik7CiAgICAgICAgICAgIHJldHVybiBPaygoKSk7CiAgICAgICAgfTsKCiAgICAgICAgbGV0IGJ5dGVzID0gQnl0ZXM6OmZyb20oYnVmZmVyKTsKICAgICAgICBsZXQgYnl0ZXMgPSBieXRlcy5zbGljZShyYW5nZSk7CgogICAgICAgIG1hdGNoIGNoYW5uZWwuMCB7CiAgICAgICAgICAgIFRyYW5zcG9ydENoYW5uZWxJZDo6R0VORVJBTCA9PiBtYXRjaCBzZWxmLmlubmVyLmdlbmVyYWxfY2hhbm5lbC5zZW5kKCZieXRlcykuYXdhaXQgewogICAgICAgICAgICAgICAgT2soXykgPT4ge30KICAgICAgICAgICAgICAgIEVycih3ZWJydGM6OkVycm9yOjpFcnJEYXRhQ2hhbm5lbE5vdE9wZW4pID0+IHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXJyKFRyYW5zcG9ydEVycm9yOjpDaGFubmVsQ2xvc2VkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF8gPT4ge30KICAgICAgICAgICAgfSwKICAgICAgICAgICAgVHJhbnNwb3J0Q2hhbm5lbElkOjpTVEFUUyA9PiB7CiAgICAgICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBzZWxmLmlubmVyLnN0YXRzX2NoYW5uZWwuc2VuZCgmYnl0ZXMpLmF3YWl0IHsKICAgICAgICAgICAgICAgICAgICBkZWJ1ZyEoZXJyb3IgPSA/ZXJyLCAiRmFpbGVkIHRvIHNlbmQgc3RhdCBtZXNzYWdlIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgXyA9PiB7CiAgICAgICAgICAgICAgICB3YXJuISgiQ2Fubm90IHNlbmQgZGF0YSBvbiBjaGFubmVsIHtjaGFubmVsOj99Iik7CiAgICAgICAgICAgICAgICByZXR1cm4gRXJyKFRyYW5zcG9ydEVycm9yOjpDaGFubmVsQ2xvc2VkKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBPaygoKSkKICAgIH0KCiAgICBhc3luYyBmbiBvbl9pcGNfbWVzc2FnZSgmc2VsZiwgbWVzc2FnZTogU2VydmVySXBjTWVzc2FnZSkgLT4gUmVzdWx0PCgpLCBUcmFuc3BvcnRFcnJvcj4gewogICAgICAgIGlmIGxldCBTZXJ2ZXJJcGNNZXNzYWdlOjpXZWJTb2NrZXQobWVzc2FnZSkgPSBtZXNzYWdlIHsKICAgICAgICAgICAgc2VsZi5pbm5lci5vbl93c19tZXNzYWdlKG1lc3NhZ2UpLmF3YWl0OwogICAgICAgIH0KICAgICAgICBPaygoKSkKICAgIH0KCiAgICBhc3luYyBmbiBjbG9zZSgmc2VsZikgLT4gUmVzdWx0PCgpLCBUcmFuc3BvcnRFcnJvcj4gewogICAgICAgIHNlbGYuaW5uZXIKICAgICAgICAgICAgLnBlZXIKICAgICAgICAgICAgLmNsb3NlKCkKICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgICAgIC5tYXBfZXJyKHxlcnJ8IFRyYW5zcG9ydEVycm9yOjpJbXBsZW1lbnRhdGlvbihlcnIuaW50bygpKSk/OwoKICAgICAgICBPaygoKSkKICAgIH0KfQo="},{"path":"streamer/src/transport/webrtc/sender.rs","sha256":"1fb17dda2001a59e4076b044382ed141a20a0dae6ad037d87392ddf9af1c2ead","contentBase64":"dXNlIHN0ZDo6ewogICAgY29sbGVjdGlvbnM6OlZlY0RlcXVlLAogICAgc3luYzo6e0FyYywgV2Vha30sCiAgICB0aW1lOjp7U3lzdGVtVGltZSwgVU5JWF9FUE9DSH0sCn07Cgp1c2UgYW55aG93Ojphbnlob3c7CnVzZSBsb2c6OntkZWJ1Zywgd2Fybn07CnVzZSB0b2tpbzo6ewogICAgcnVudGltZTo6SGFuZGxlLAogICAgc3luYzo6e011dGV4LCBOb3RpZnl9LAp9Owp1c2Ugd2VicnRjOjp7CiAgICBhcGk6Om1lZGlhX2VuZ2luZTo6TWVkaWFFbmdpbmUsCiAgICBtZWRpYTo6U2FtcGxlLAogICAgcGVlcl9jb25uZWN0aW9uOjpSVENQZWVyQ29ubmVjdGlvbiwKICAgIHJ0Y3A6OnBhY2tldDo6UGFja2V0LAogICAgcnRwOjp7CiAgICAgICAgc2VsZiwKICAgICAgICBleHRlbnNpb246OnsKICAgICAgICAgICAgSGVhZGVyRXh0ZW5zaW9uLCBhYnNfc2VuZF90aW1lX2V4dGVuc2lvbjo6QWJzU2VuZFRpbWVFeHRlbnNpb24sCiAgICAgICAgICAgIHBsYXlvdXRfZGVsYXlfZXh0ZW5zaW9uOjpQbGF5b3V0RGVsYXlFeHRlbnNpb24sCiAgICAgICAgfSwKICAgIH0sCiAgICBydHBfdHJhbnNjZWl2ZXI6OnJ0cF9jb2RlYzo6e1JUQ1J0cEhlYWRlckV4dGVuc2lvbkNhcGFiaWxpdHksIFJUUENvZGVjVHlwZX0sCiAgICBzZHA6OmV4dG1hcDo6QUJTX1NFTkRfVElNRV9VUkksCiAgICB0cmFjazo6dHJhY2tfbG9jYWw6OnsKICAgICAgICBUcmFja0xvY2FsLCB0cmFja19sb2NhbF9zdGF0aWNfcnRwOjpUcmFja0xvY2FsU3RhdGljUlRQLAogICAgICAgIHRyYWNrX2xvY2FsX3N0YXRpY19zYW1wbGU6OlRyYWNrTG9jYWxTdGF0aWNTYW1wbGUsCiAgICB9LAp9OwoKY29uc3QgUExBWU9VVF9ERUxBWV9VUkk6ICZzdHIgPSAiaHR0cDovL3d3dy53ZWJydGMub3JnL2V4cGVyaW1lbnRzL3J0cC1oZHJleHQvcGxheW91dC1kZWxheSI7CgpwdWIgZm4gcmVnaXN0ZXJfaGVhZGVyX2V4dGVuc2lvbnMoYXBpX21lZGlhOiAmbXV0IE1lZGlhRW5naW5lKSAtPiBSZXN1bHQ8KCksIHdlYnJ0Yzo6RXJyb3I+IHsKICAgIGFwaV9tZWRpYS5yZWdpc3Rlcl9oZWFkZXJfZXh0ZW5zaW9uKAogICAgICAgIFJUQ1J0cEhlYWRlckV4dGVuc2lvbkNhcGFiaWxpdHkgewogICAgICAgICAgICB1cmk6IFBMQVlPVVRfREVMQVlfVVJJLnRvX3N0cmluZygpLAogICAgICAgIH0sCiAgICAgICAgUlRQQ29kZWNUeXBlOjpWaWRlbywKICAgICAgICBOb25lLAogICAgKT87CiAgICBhcGlfbWVkaWEucmVnaXN0ZXJfaGVhZGVyX2V4dGVuc2lvbigKICAgICAgICBSVENSdHBIZWFkZXJFeHRlbnNpb25DYXBhYmlsaXR5IHsKICAgICAgICAgICAgdXJpOiBQTEFZT1VUX0RFTEFZX1VSSS50b19zdHJpbmcoKSwKICAgICAgICB9LAogICAgICAgIFJUUENvZGVjVHlwZTo6QXVkaW8sCiAgICAgICAgTm9uZSwKICAgICk/OwoKICAgIGFwaV9tZWRpYS5yZWdpc3Rlcl9oZWFkZXJfZXh0ZW5zaW9uKAogICAgICAgIFJUQ1J0cEhlYWRlckV4dGVuc2lvbkNhcGFiaWxpdHkgewogICAgICAgICAgICB1cmk6IEFCU19TRU5EX1RJTUVfVVJJLnRvX3N0cmluZygpLAogICAgICAgIH0sCiAgICAgICAgUlRQQ29kZWNUeXBlOjpWaWRlbywKICAgICAgICBOb25lLAogICAgKT87CiAgICBhcGlfbWVkaWEucmVnaXN0ZXJfaGVhZGVyX2V4dGVuc2lvbigKICAgICAgICBSVENSdHBIZWFkZXJFeHRlbnNpb25DYXBhYmlsaXR5IHsKICAgICAgICAgICAgdXJpOiBBQlNfU0VORF9USU1FX1VSSS50b19zdHJpbmcoKSwKICAgICAgICB9LAogICAgICAgIFJUUENvZGVjVHlwZTo6QXVkaW8sCiAgICAgICAgTm9uZSwKICAgICk/OwoKICAgIE9rKCgpKQp9CgpwdWIgc3RydWN0IFRyYWNrTG9jYWxTZW5kZXI8VHJhY2s+CndoZXJlCiAgICBUcmFjazogVHJhY2tMaWtlLAp7CiAgICBydW50aW1lOiBIYW5kbGUsCiAgICBwZWVyOiBXZWFrPFJUQ1BlZXJDb25uZWN0aW9uPiwKICAgIGNoYW5uZWxfcXVldWVfc2l6ZTogdXNpemUsCiAgICBuZXdfc2FtcGxlc19ub3RpZnk6IEFyYzxOb3RpZnk+LAogICAgcXVldWU6IEFyYzxNdXRleDxWZWNEZXF1ZTxGcmFtZVNhbXBsZXM8VHJhY2s+Pj4+LAp9CgpzdHJ1Y3QgRnJhbWVTYW1wbGVzPFRyYWNrPgp3aGVyZQogICAgVHJhY2s6IFRyYWNrTGlrZSwKewogICAgaW1wb3J0YW50OiBib29sLAogICAgc2FtcGxlczogVmVjPFRyYWNrOjpTYW1wbGU+LAp9CgppbXBsPFRyYWNrPiBUcmFja0xvY2FsU2VuZGVyPFRyYWNrPgp3aGVyZQogICAgVHJhY2s6IFRyYWNrTGlrZSwKewogICAgcHViIGZuIG5ldyhydW50aW1lOiBIYW5kbGUsIHBlZXI6IFdlYWs8UlRDUGVlckNvbm5lY3Rpb24+LCBjaGFubmVsX3F1ZXVlX3NpemU6IHVzaXplKSAtPiBTZWxmIHsKICAgICAgICBTZWxmIHsKICAgICAgICAgICAgcnVudGltZSwKICAgICAgICAgICAgcGVlciwKICAgICAgICAgICAgY2hhbm5lbF9xdWV1ZV9zaXplLAogICAgICAgICAgICBuZXdfc2FtcGxlc19ub3RpZnk6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICAgICAgcXVldWU6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICB9CiAgICB9CgogICAgcHViIGFzeW5jIGZuIGNyZWF0ZV90cmFjaygKICAgICAgICAmbXV0IHNlbGYsCiAgICAgICAgdHJhY2s6IFRyYWNrLAogICAgICAgIG11dCBvbl9wYWNrZXQ6IGltcGwgRm5NdXQoQm94PGR5biBQYWNrZXQgKyBTZW5kICsgU3luYz4pICsgU2VuZCArICdzdGF0aWMsCiAgICApIC0+IFJlc3VsdDwoKSwgYW55aG93OjpFcnJvcj4gewogICAgICAgIGxldCBTb21lKHBlZXIpID0gc2VsZi5wZWVyLnVwZ3JhZGUoKSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIEVycihhbnlob3chKAogICAgICAgICAgICAgICAgIkZhaWxlZCB0byBjcmVhdGUgdHJhY2sgYmVjYXVzZSBvZiBtaXNzaW5nIHdlYnJ0YyBwZWVyISIKICAgICAgICAgICAgKSk7CiAgICAgICAgfTsKCiAgICAgICAgbGV0IHRyYWNrID0gQXJjOjpuZXcodHJhY2spOwoKICAgICAgICBsZXQgbmV3X3NhbXBsZXNfbm90aWZ5ID0gc2VsZi5uZXdfc2FtcGxlc19ub3RpZnkuY2xvbmUoKTsKICAgICAgICBsZXQgcXVldWUgPSBBcmM6OmRvd25ncmFkZSgmc2VsZi5xdWV1ZSk7CiAgICAgICAgc2VsZi5ydW50aW1lLnNwYXduKHsKICAgICAgICAgICAgbGV0IHRyYWNrID0gdHJhY2suY2xvbmUoKTsKICAgICAgICAgICAgYXN5bmMgbW92ZSB7CiAgICAgICAgICAgICAgICBzYW1wbGVfc2VuZGVyKHRyYWNrLCAmbmV3X3NhbXBsZXNfbm90aWZ5LCBxdWV1ZSkuYXdhaXQ7CiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgbGV0IHRyYWNrX3NlbmRlciA9IHBlZXIuYWRkX3RyYWNrKHRyYWNrLnRyYWNrKCkpLmF3YWl0PzsKCiAgICAgICAgLy8gUmVhZCBpbmNvbWluZyBSVENQIHBhY2tldHMKICAgICAgICAvLyBCZWZvcmUgdGhlc2UgcGFja2V0cyBhcmUgcmV0dXJuZWQgdGhleSBhcmUgcHJvY2Vzc2VkIGJ5IGludGVyY2VwdG9ycy4gRm9yIHRoaW5ncwogICAgICAgIC8vIGxpa2UgTkFDSyB0aGlzIG5lZWRzIHRvIGJlIGNhbGxlZC4KICAgICAgICBzZWxmLnJ1bnRpbWUuc3Bhd24oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgIGxldCBtdXQgcnRjcF9idWYgPSB2ZWMhWzB1ODsgMTUwMF07CiAgICAgICAgICAgIHdoaWxlIGxldCBPaygocGFja2V0cywgXykpID0gdHJhY2tfc2VuZGVyLnJlYWQoJm11dCBydGNwX2J1ZikuYXdhaXQgewogICAgICAgICAgICAgICAgZm9yIHBhY2tldCBpbiBwYWNrZXRzIHsKICAgICAgICAgICAgICAgICAgICBvbl9wYWNrZXQocGFja2V0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pOwoKICAgICAgICBPaygoKSkKICAgIH0KCiAgICAvLy8gUmV0dXJucyBpZiB0aGUgZnJhbWUgd2lsbCBiZSBkZWxpdmVyZWQKICAgIHB1YiBhc3luYyBmbiBzZW5kX3NhbXBsZXMoJnNlbGYsIHNhbXBsZXM6IFZlYzxUcmFjazo6U2FtcGxlPiwgaW1wb3J0YW50OiBib29sKSAtPiBib29sIHsKICAgICAgICBsZXQgbXV0IHF1ZXVlID0gc2VsZi5xdWV1ZS5sb2NrKCkuYXdhaXQ7CgogICAgICAgIGxldCByZXN1bHQgPSBpZiBpbXBvcnRhbnQgewogICAgICAgICAgICBxdWV1ZS5wdXNoX2Zyb250KEZyYW1lU2FtcGxlcyB7IGltcG9ydGFudCwgc2FtcGxlcyB9KTsKICAgICAgICAgICAgdHJ1ZQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmIHF1ZXVlLmxlbigpID4gc2VsZi5jaGFubmVsX3F1ZXVlX3NpemUgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBxdWV1ZS5wdXNoX2Zyb250KEZyYW1lU2FtcGxlcyB7IGltcG9ydGFudCwgc2FtcGxlcyB9KTsKICAgICAgICAgICAgdHJ1ZQogICAgICAgIH07CgogICAgICAgIHNlbGYubmV3X3NhbXBsZXNfbm90aWZ5Lm5vdGlmeV93YWl0ZXJzKCk7CgogICAgICAgIHJlc3VsdAogICAgfQoKICAgIC8vLyBSZXR1cm5zIGlmIHRoZSBmcmFtZSB3aWxsIGJlIGRlbGl2ZXJlZAogICAgcHViIGFzeW5jIGZuIGNsZWFyX3F1ZXVlKCZzZWxmLCBjbGVhcl9pbXBvcnRhbnQ6IGJvb2wpIHsKICAgICAgICBsZXQgbXV0IHF1ZXVlID0gc2VsZi5xdWV1ZS5sb2NrKCkuYXdhaXQ7CgogICAgICAgIGlmIGNsZWFyX2ltcG9ydGFudCB7CiAgICAgICAgICAgIHF1ZXVlLmNsZWFyKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcXVldWUucmV0YWluKHxmcmFtZXwgZnJhbWUuaW1wb3J0YW50KTsKICAgICAgICB9CiAgICB9Cn0KCmFzeW5jIGZuIHNhbXBsZV9zZW5kZXI8VHJhY2s+KAogICAgdHJhY2s6IEFyYzxUcmFjaz4sCiAgICBuZXdfc2FtcGxlc19ub3RpZnk6ICZOb3RpZnksCiAgICBxdWV1ZTogV2VhazxNdXRleDxWZWNEZXF1ZTxGcmFtZVNhbXBsZXM8VHJhY2s+Pj4+LAopIHdoZXJlCiAgICBUcmFjazogVHJhY2tMaWtlLAp7CiAgICBsb29wIHsKICAgICAgICBsZXQgZnJhbWUgPSB7CiAgICAgICAgICAgIGxldCBTb21lKHF1ZXVlKSA9IHF1ZXVlLnVwZ3JhZGUoKSBlbHNlIHsKICAgICAgICAgICAgICAgIGRlYnVnISgibm8gc2FtcGxlIHF1ZXVlIGF2YWlsYWJsZTogc3RvcHBpbmcgdG8gc3VibWl0IHNhbXBsZXMiKTsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgbGV0IG11dCBxdWV1ZSA9IHF1ZXVlLmxvY2soKS5hd2FpdDsKICAgICAgICAgICAgbGV0IFNvbWUobmV3X2ZyYW1lKSA9IHF1ZXVlLnBvcF9iYWNrKCkgZWxzZSB7CiAgICAgICAgICAgICAgICBkcm9wKHF1ZXVlKTsgLy8gSW1wb3J0YW50OiBkcm9wIHRoZSBtdXRleAoKICAgICAgICAgICAgICAgIG5ld19zYW1wbGVzX25vdGlmeS5ub3RpZmllZCgpLmF3YWl0OwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBuZXdfZnJhbWUKICAgICAgICB9OwoKICAgICAgICBsZXQgbm93ID0gU3lzdGVtVGltZTo6bm93KCkKICAgICAgICAgICAgLmR1cmF0aW9uX3NpbmNlKFVOSVhfRVBPQ0gpCiAgICAgICAgICAgIC5leHBlY3QoImNsb2NrIHdlbnQgYmFja3dhcmRzIik7CiAgICAgICAgbGV0IG5vd19zZWNzID0gbm93LmFzX3NlY3MoKSBhcyBmNjQgKyBub3cuc3Vic2VjX25hbm9zKCkgYXMgZjY0ICogMWUtOTsKICAgICAgICBsZXQgYWJzX3NlbmRfdGltZTogdTY0ID0gKG5vd19zZWNzICogMjYyXzE0NC4wKSBhcyB1NjQ7CgogICAgICAgIGZvciBzYW1wbGUgaW4gZnJhbWUuc2FtcGxlcyB7CiAgICAgICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IHRyYWNrCiAgICAgICAgICAgICAgICAud3JpdGVfd2l0aF9leHRlbnNpb25zKAogICAgICAgICAgICAgICAgICAgIHNhbXBsZSwKICAgICAgICAgICAgICAgICAgICAmWwogICAgICAgICAgICAgICAgICAgICAgICBIZWFkZXJFeHRlbnNpb246OlBsYXlvdXREZWxheShQbGF5b3V0RGVsYXlFeHRlbnNpb246Om5ldygwLCAwKSksCiAgICAgICAgICAgICAgICAgICAgICAgIEhlYWRlckV4dGVuc2lvbjo6QWJzU2VuZFRpbWUoQWJzU2VuZFRpbWVFeHRlbnNpb24gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBhYnNfc2VuZF90aW1lLAogICAgICAgICAgICAgICAgICAgICAgICB9KSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHdhcm4hKCJbU3RyZWFtXTogdHJhY2sud3JpdGVfc2FtcGxlIGZhaWxlZDoge2Vycn0iKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKcHViIHRyYWl0IFRyYWNrTGlrZTogU2VuZCArIFN5bmMgKyAnc3RhdGljIHsKICAgIHR5cGUgU2FtcGxlOiBTZW5kICsgJ3N0YXRpYzsKCiAgICBmbiB3cml0ZV93aXRoX2V4dGVuc2lvbnMoCiAgICAgICAgJnNlbGYsCiAgICAgICAgc2FtcGxlOiBTZWxmOjpTYW1wbGUsCiAgICAgICAgZXh0ZW5zaW9uczogJltIZWFkZXJFeHRlbnNpb25dLAogICAgKSAtPiBpbXBsIEZ1dHVyZTxPdXRwdXQgPSBSZXN1bHQ8KCksIGFueWhvdzo6RXJyb3I+PiArIFNlbmQ7CgogICAgZm4gdHJhY2soc2VsZjogQXJjPFNlbGY+KSAtPiBBcmM8ZHluIFRyYWNrTG9jYWwgKyBTZW5kICsgU3luYyArICdzdGF0aWM+Owp9CgppbXBsIFRyYWNrTGlrZSBmb3IgVHJhY2tMb2NhbFN0YXRpY1NhbXBsZSB7CiAgICB0eXBlIFNhbXBsZSA9IFNhbXBsZTsKCiAgICBhc3luYyBmbiB3cml0ZV93aXRoX2V4dGVuc2lvbnMoCiAgICAgICAgJnNlbGYsCiAgICAgICAgc2FtcGxlOiBTZWxmOjpTYW1wbGUsCiAgICAgICAgZXh0ZW5zaW9uczogJltIZWFkZXJFeHRlbnNpb25dLAogICAgKSAtPiBSZXN1bHQ8KCksIGFueWhvdzo6RXJyb3I+IHsKICAgICAgICBzZWxmLndyaXRlX3NhbXBsZV93aXRoX2V4dGVuc2lvbnMoJnNhbXBsZSwgZXh0ZW5zaW9ucykKICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgICAgIC5tYXBfZXJyKGFueWhvdzo6RXJyb3I6OmZyb20pCiAgICB9CgogICAgZm4gdHJhY2soc2VsZjogQXJjPFNlbGY+KSAtPiBBcmM8ZHluIFRyYWNrTG9jYWwgKyBTZW5kICsgU3luYyArICdzdGF0aWM+IHsKICAgICAgICBzZWxmCiAgICB9Cn0KCnB1YiBzdHJ1Y3QgU2VxdWVuY2VkVHJhY2tMb2NhbFN0YXRpY1JUUCB7CiAgICB0cmFjazogQXJjPFRyYWNrTG9jYWxTdGF0aWNSVFA+LAogICAgc2VxdWVuY2VfbnVtYmVyOiBNdXRleDx1MTY+LAp9CgppbXBsIEZyb208VHJhY2tMb2NhbFN0YXRpY1JUUD4gZm9yIFNlcXVlbmNlZFRyYWNrTG9jYWxTdGF0aWNSVFAgewogICAgZm4gZnJvbSh2YWx1ZTogVHJhY2tMb2NhbFN0YXRpY1JUUCkgLT4gU2VsZiB7CiAgICAgICAgU2VsZiB7CiAgICAgICAgICAgIHRyYWNrOiBBcmM6Om5ldyh2YWx1ZSksCiAgICAgICAgICAgIHNlcXVlbmNlX251bWJlcjogTXV0ZXg6Om5ldygwKSwKICAgICAgICB9CiAgICB9Cn0KCmltcGwgVHJhY2tMaWtlIGZvciBTZXF1ZW5jZWRUcmFja0xvY2FsU3RhdGljUlRQIHsKICAgIHR5cGUgU2FtcGxlID0gcnRwOjpwYWNrZXQ6OlBhY2tldDsKCiAgICBhc3luYyBmbiB3cml0ZV93aXRoX2V4dGVuc2lvbnMoCiAgICAgICAgJnNlbGYsCiAgICAgICAgbXV0IHNhbXBsZTogU2VsZjo6U2FtcGxlLAogICAgICAgIGV4dGVuc2lvbnM6ICZbSGVhZGVyRXh0ZW5zaW9uXSwKICAgICkgLT4gUmVzdWx0PCgpLCBhbnlob3c6OkVycm9yPiB7CiAgICAgICAgbGV0IChhbnlfcGF1c2VkLCBhbGxfcGF1c2VkKSA9ICgKICAgICAgICAgICAgc2VsZi50cmFjay5hbnlfYmluZGluZ19wYXVzZWQoKS5hd2FpdCwKICAgICAgICAgICAgc2VsZi50cmFjay5hbGxfYmluZGluZ19wYXVzZWQoKS5hd2FpdCwKICAgICAgICApOwoKICAgICAgICBpZiBhbGxfcGF1c2VkIHsKICAgICAgICAgICAgLy8gQWJvcnQgYWxyZWFkeSBoZXJlIHRvIG5vdCBpbmNyZW1lbnQgc2VxdWVuY2UgbnVtYmVycy4KICAgICAgICAgICAgcmV0dXJuIE9rKCgpKTsKICAgICAgICB9CiAgICAgICAgaWYgYW55X3BhdXNlZCB7CiAgICAgICAgICAgIHdhcm4hKCJXZWJSVEM6IG5vdCBhbGwgcGF1c2VkIGJ1dCBhbnkgcGF1c2VkIik7CiAgICAgICAgfQoKICAgICAgICBsZXQgbXV0IHNlcXVlbmNlX251bWJlciA9IHNlbGYuc2VxdWVuY2VfbnVtYmVyLmxvY2soKS5hd2FpdDsKICAgICAgICBzYW1wbGUuaGVhZGVyLnNlcXVlbmNlX251bWJlciA9ICpzZXF1ZW5jZV9udW1iZXI7CiAgICAgICAgKnNlcXVlbmNlX251bWJlciA9IHNlcXVlbmNlX251bWJlci53cmFwcGluZ19hZGQoMSk7CgogICAgICAgIHNlbGYudHJhY2sKICAgICAgICAgICAgLndyaXRlX3J0cF93aXRoX2V4dGVuc2lvbnMoJnNhbXBsZSwgZXh0ZW5zaW9ucykKICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgICAgIC5tYXBfZXJyKGFueWhvdzo6RXJyb3I6OmZyb20pCiAgICAgICAgICAgIC5tYXAofF98ICgpKQogICAgfQoKICAgIGZuIHRyYWNrKHNlbGY6IEFyYzxTZWxmPikgLT4gQXJjPGR5biBUcmFja0xvY2FsICsgU2VuZCArIFN5bmMgKyAnc3RhdGljPiB7CiAgICAgICAgc2VsZi50cmFjay5jbG9uZSgpCiAgICB9Cn0K"},{"path":"streamer/src/transport/webrtc/video.rs","sha256":"3546c204d0e97df178287b6a4ad276da67ff5ff6435915a10b3751ff4166c0ba","contentBase64":"dXNlIHN0ZDo6ewogICAgaW86OkN1cnNvciwKICAgIG9wczo6UmFuZ2UsCiAgICBzeW5jOjp7CiAgICAgICAgQXJjLCBXZWFrLAogICAgICAgIGF0b21pYzo6e0F0b21pY0Jvb2wsIE9yZGVyaW5nfSwKICAgIH0sCn07Cgp1c2UgYnl0ZXM6OntCeXRlcywgQnl0ZXNNdXR9Owp1c2UgY29tbW9uOjp7CiAgICBhcGlfYmluZGluZ3M6OntMb2dNZXNzYWdlVHlwZSwgU3RyZWFtU2VydmVyTWVzc2FnZX0sCiAgICBpcGM6OlN0cmVhbWVySXBjTWVzc2FnZSwKfTsKdXNlIG1vb25saWdodF9jb21tb246OnN0cmVhbTo6dmlkZW86OnsKICAgIERlY29kZVJlc3VsdCwgRnJhbWVUeXBlLCBWaWRlb0RlY29kZVVuaXQsIFZpZGVvRm9ybWF0LCBWaWRlb0Zvcm1hdHMsIFZpZGVvU2V0dXAsCn07CnVzZSB0b2tpbzo6cnVudGltZTo6SGFuZGxlOwp1c2UgdHJhY2luZzo6e2RlYnVnLCBlcnJvciwgaW5mbywgdHJhY2UsIHdhcm59Owp1c2Ugd2VicnRjOjp7CiAgICBhcGk6Om1lZGlhX2VuZ2luZTo6e01JTUVfVFlQRV9BVjEsIE1JTUVfVFlQRV9IMjY0LCBNSU1FX1RZUEVfSEVWQywgTWVkaWFFbmdpbmV9LAogICAgcGVlcl9jb25uZWN0aW9uOjpSVENQZWVyQ29ubmVjdGlvbiwKICAgIHJ0Y3A6OnBheWxvYWRfZmVlZGJhY2tzOjp7CiAgICAgICAgcGljdHVyZV9sb3NzX2luZGljYXRpb246OlBpY3R1cmVMb3NzSW5kaWNhdGlvbiwKICAgICAgICByZWNlaXZlcl9lc3RpbWF0ZWRfbWF4aW11bV9iaXRyYXRlOjpSZWNlaXZlckVzdGltYXRlZE1heGltdW1CaXRyYXRlLAogICAgfSwKICAgIHJ0cDo6ewogICAgICAgIGNvZGVjczo6e2F2MTo6QXYxUGF5bG9hZGVyLCBoMjY1OjpSVFBfT1VUQk9VTkRfTVRVfSwKICAgICAgICBoZWFkZXI6OkhlYWRlciwKICAgICAgICBwYWNrZXQ6OlBhY2tldCwKICAgICAgICBwYWNrZXRpemVyOjpQYXlsb2FkZXIsCiAgICB9LAogICAgcnRwX3RyYW5zY2VpdmVyOjp7CiAgICAgICAgUlRDUEZlZWRiYWNrLAogICAgICAgIHJ0cF9jb2RlYzo6e1JUQ1J0cENvZGVjQ2FwYWJpbGl0eSwgUlRDUnRwQ29kZWNQYXJhbWV0ZXJzLCBSVFBDb2RlY1R5cGV9LAogICAgfSwKICAgIHRyYWNrOjp0cmFja19sb2NhbDo6dHJhY2tfbG9jYWxfc3RhdGljX3J0cDo6VHJhY2tMb2NhbFN0YXRpY1JUUCwKfTsKCnVzZSBjcmF0ZTo6dHJhbnNwb3J0Ojp7CiAgICBUcmFuc3BvcnRFdmVudCwKICAgIHdlYnJ0Yzo6ewogICAgICAgIFdlYlJ0Y0lubmVyLAogICAgICAgIHNlbmRlcjo6e1NlcXVlbmNlZFRyYWNrTG9jYWxTdGF0aWNSVFAsIFRyYWNrTG9jYWxTZW5kZXJ9LAogICAgICAgIHZpZGVvOjp7CiAgICAgICAgICAgIGgyNjQ6OntwYXlsb2FkZXI6OkgyNjRQYXlsb2FkZXIsIHJlYWRlcjo6SDI2NFJlYWRlcn0sCiAgICAgICAgICAgIGgyNjU6OntwYXlsb2FkZXI6OkgyNjVQYXlsb2FkZXIsIHJlYWRlcjo6SDI2NVJlYWRlcn0sCiAgICAgICAgfSwKICAgIH0sCn07Cgptb2QgYW5uZXhiOwptb2QgaDI2NDsKbW9kIGgyNjU7CgovLyBBdjEgc3BlY2lmaWNhdGlvbjoKLy8gLSBodHRwczovL2FvbWVkaWFjb2RlYy5naXRodWIuaW8vYXYxLXJ0cC1zcGVjL3YxLjAuMC5odG1sCgplbnVtIFZpZGVvQ29kZWMgewogICAgSDI2NCB7CiAgICAgICAgbmFsX3JlYWRlcjogSDI2NFJlYWRlcjxDdXJzb3I8VmVjPHU4Pj4+LAogICAgICAgIHBheWxvYWRlcjogSDI2NFBheWxvYWRlciwKICAgIH0sCiAgICBIMjY1IHsKICAgICAgICBuYWxfcmVhZGVyOiBIMjY1UmVhZGVyPEN1cnNvcjxWZWM8dTg+Pj4sCiAgICAgICAgcGF5bG9hZGVyOiBIMjY1UGF5bG9hZGVyLAogICAgfSwKICAgIEF2MSB7CiAgICAgICAgcGF5bG9hZGVyOiBBdjFQYXlsb2FkZXIsCiAgICB9LAp9CgpwdWIgc3RydWN0IFdlYlJ0Y1ZpZGVvIHsKICAgIHN1cHBvcnRlZF92aWRlb19mb3JtYXRzOiBWaWRlb0Zvcm1hdHMsCiAgICBzZW5kZXI6IFRyYWNrTG9jYWxTZW5kZXI8U2VxdWVuY2VkVHJhY2tMb2NhbFN0YXRpY1JUUD4sCiAgICBuZWVkc19pZHI6IEFyYzxBdG9taWNCb29sPiwKICAgIGNsb2NrX3JhdGU6IHUzMiwKICAgIGNvZGVjOiBPcHRpb248VmlkZW9Db2RlYz4sCiAgICBzYW1wbGVzOiBWZWM8Qnl0ZXNNdXQ+LAp9CgppbXBsIFdlYlJ0Y1ZpZGVvIHsKICAgIHB1YiBmbiBuZXcocnVudGltZTogSGFuZGxlLCBwZWVyOiBXZWFrPFJUQ1BlZXJDb25uZWN0aW9uPiwgZnJhbWVfcXVldWVfc2l6ZTogdXNpemUpIC0+IFNlbGYgewogICAgICAgIFNlbGYgewogICAgICAgICAgICBjbG9ja19yYXRlOiAwLAogICAgICAgICAgICBuZWVkc19pZHI6IERlZmF1bHQ6OmRlZmF1bHQoKSwKICAgICAgICAgICAgc2VuZGVyOiBUcmFja0xvY2FsU2VuZGVyOjpuZXcocnVudGltZSwgcGVlciwgZnJhbWVfcXVldWVfc2l6ZSksCiAgICAgICAgICAgIGNvZGVjOiBOb25lLAogICAgICAgICAgICBzdXBwb3J0ZWRfdmlkZW9fZm9ybWF0czogVmlkZW9Gb3JtYXRzOjplbXB0eSgpLAogICAgICAgICAgICBzYW1wbGVzOiBEZWZhdWx0OjpkZWZhdWx0KCksCiAgICAgICAgfQogICAgfQoKICAgIHB1YiBhc3luYyBmbiBzZXRfY29kZWNzKCZtdXQgc2VsZiwgc3VwcG9ydGVkX2NvZGVjczogVmlkZW9Gb3JtYXRzKSB7CiAgICAgICAgc2VsZi5zdXBwb3J0ZWRfdmlkZW9fZm9ybWF0cyA9IHN1cHBvcnRlZF9jb2RlY3M7CiAgICB9CgogICAgcHViIGFzeW5jIGZuIHNldHVwKAogICAgICAgICZtdXQgc2VsZiwKICAgICAgICBpbm5lcjogJkFyYzxXZWJSdGNJbm5lcj4sCiAgICAgICAgVmlkZW9TZXR1cCB7CiAgICAgICAgICAgIGZvcm1hdCwKICAgICAgICAgICAgd2lkdGgsCiAgICAgICAgICAgIGhlaWdodCwKICAgICAgICAgICAgcmVkcmF3X3JhdGUsCiAgICAgICAgfTogVmlkZW9TZXR1cCwKICAgICkgLT4gYm9vbCB7CiAgICAgICAgaW5mbyEoIltTdHJlYW1dIFN0cmVhbSBzZXR1cDoge3dpZHRofXh7aGVpZ2h0fXh7cmVkcmF3X3JhdGV9IGFuZCB7Zm9ybWF0Oj99Iik7CgogICAgICAgIGlmICFmb3JtYXQuY29udGFpbmVkX2luKHNlbGYuc3VwcG9ydGVkX3ZpZGVvX2Zvcm1hdHMpIHsKICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSBmb3JtYXQhKAogICAgICAgICAgICAgICAgIlRoZSBob3N0IHRyaWVkIHRvIHNldHVwIGEgdmlkZW8gc3RyZWFtIHdpdGggYSBub24gc3VwcG9ydGVkIHZpZGVvIGZvcm1hdDoge2Zvcm1hdDo/fSwgc3VwcG9ydGVkIGZvcm1hdHM6IHt9IiwKICAgICAgICAgICAgICAgIHNlbGYuc3VwcG9ydGVkX3ZpZGVvX2Zvcm1hdHMKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGVycm9yISgie30iLCBtZXNzYWdlKTsKCiAgICAgICAgICAgIGlmIGxldCBFcnIoZXJyKSA9IGlubmVyCiAgICAgICAgICAgICAgICAuZXZlbnRfc2VuZGVyCiAgICAgICAgICAgICAgICAuc2VuZChUcmFuc3BvcnRFdmVudDo6U2VuZElwYyhTdHJlYW1lcklwY01lc3NhZ2U6OldlYlNvY2tldCgKICAgICAgICAgICAgICAgICAgICBTdHJlYW1TZXJ2ZXJNZXNzYWdlOjpEZWJ1Z0xvZyB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5OiBTb21lKExvZ01lc3NhZ2VUeXBlOjpGYXRhbERlc2NyaXB0aW9uKSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgKSkpCiAgICAgICAgICAgICAgICAuYXdhaXQKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBzZW5kIGVycm9yIHRvIGNsaWVudDoge2Vycn0iKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgbGV0IFNvbWUoY29kZWMpID0gdmlkZW9fZm9ybWF0X3RvX2NvZGVjKGZvcm1hdCkgZWxzZSB7CiAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkbid0IGhhcHBlbgogICAgICAgICAgICBlcnJvciEoIkZhaWxlZCB0byBnZXQgdmlkZW8gY29kZWMgd2l0aCBmb3JtYXQgezo/fSIsIGZvcm1hdCk7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9OwoKICAgICAgICBsZXQgbmVlZHNfaWRyID0gc2VsZi5uZWVkc19pZHIuY2xvbmUoKTsKICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBzZWxmCiAgICAgICAgICAgIC5zZW5kZXIKICAgICAgICAgICAgLmNyZWF0ZV90cmFjaygKICAgICAgICAgICAgICAgIFRyYWNrTG9jYWxTdGF0aWNSVFA6Om5ldygKICAgICAgICAgICAgICAgICAgICBjb2RlYy5jYXBhYmlsaXR5LmNsb25lKCksCiAgICAgICAgICAgICAgICAgICAgInZpZGVvIi50b19zdHJpbmcoKSwKICAgICAgICAgICAgICAgICAgICAibW9vbmxpZ2h0Ii50b19zdHJpbmcoKSwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5pbnRvKCksCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRzX2lkciA9IG5lZWRzX2lkci5jbG9uZSgpOwoKICAgICAgICAgICAgICAgICAgICBtb3ZlIHxwYWNrZXR8IHsKICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhY2tldCA9IHBhY2tldC5hc19hbnkoKTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBhY2tldC5pczo6PFBpY3R1cmVMb3NzSW5kaWNhdGlvbj4oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkc19pZHIuc3RvcmUodHJ1ZSwgT3JkZXJpbmc6OlJlbGVhc2UpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxldCBTb21lKF9tYXhfYml0cmF0ZSkgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2V0LmRvd25jYXN0X3JlZjo6PFJlY2VpdmVyRXN0aW1hdGVkTWF4aW11bUJpdHJhdGU+KCkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW9vbmxpZ2h0IGRvZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGJpdHJhdGUgY2hhbmdpbmcgOigKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICkKICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgewogICAgICAgICAgICBsZXQgbWVzc2FnZSA9IGZvcm1hdCEoCiAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIGNyZWF0ZSB2aWRlbyB0cmFjayB3aXRoIGZvcm1hdCB7Zm9ybWF0Oj99IGFuZCBjb2RlYyBcIntjb2RlYzo/fVwiOiB7ZXJyOj99IgogICAgICAgICAgICApOwogICAgICAgICAgICBlcnJvciEoInt9IiwgbWVzc2FnZSk7CgogICAgICAgICAgICBpZiBsZXQgRXJyKGVycikgPSBpbm5lcgogICAgICAgICAgICAgICAgLmV2ZW50X3NlbmRlcgogICAgICAgICAgICAgICAgLnNlbmQoVHJhbnNwb3J0RXZlbnQ6OlNlbmRJcGMoU3RyZWFtZXJJcGNNZXNzYWdlOjpXZWJTb2NrZXQoCiAgICAgICAgICAgICAgICAgICAgU3RyZWFtU2VydmVyTWVzc2FnZTo6RGVidWdMb2cgewogICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICB0eTogU29tZShMb2dNZXNzYWdlVHlwZTo6RmF0YWxEZXNjcmlwdGlvbiksCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICkpKQogICAgICAgICAgICAgICAgLmF3YWl0CiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHdhcm4hKCJGYWlsZWQgdG8gc2VuZCBlcnJvciB0byBjbGllbnQ6IHtlcnJ9Iik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgc2VsZi5jbG9ja19yYXRlID0gY29kZWMuY2FwYWJpbGl0eS5jbG9ja19yYXRlOwoKICAgICAgICBzZWxmLmNvZGVjID0gbWF0Y2ggZm9ybWF0IHsKICAgICAgICAgICAgLy8gLS0gSDI2NAogICAgICAgICAgICBWaWRlb0Zvcm1hdDo6SDI2NCB8IFZpZGVvRm9ybWF0OjpIMjY0SGlnaDhfNDQ0ID0+IFNvbWUoVmlkZW9Db2RlYzo6SDI2NCB7CiAgICAgICAgICAgICAgICBuYWxfcmVhZGVyOiBIMjY0UmVhZGVyOjpuZXcoQ3Vyc29yOjpuZXcoVmVjOjpuZXcoKSksIDApLAogICAgICAgICAgICAgICAgcGF5bG9hZGVyOiBEZWZhdWx0OjpkZWZhdWx0KCksCiAgICAgICAgICAgIH0pLAogICAgICAgICAgICAvLyAtLSBIMjY1CiAgICAgICAgICAgIFZpZGVvRm9ybWF0OjpIMjY1CiAgICAgICAgICAgIHwgVmlkZW9Gb3JtYXQ6OkgyNjVNYWluMTAKICAgICAgICAgICAgfCBWaWRlb0Zvcm1hdDo6SDI2NVJleHQ4XzQ0NAogICAgICAgICAgICB8IFZpZGVvRm9ybWF0OjpIMjY1UmV4dDEwXzQ0NCA9PiBTb21lKFZpZGVvQ29kZWM6OkgyNjUgewogICAgICAgICAgICAgICAgbmFsX3JlYWRlcjogSDI2NVJlYWRlcjo6bmV3KEN1cnNvcjo6bmV3KFZlYzo6bmV3KCkpLCAwKSwKICAgICAgICAgICAgICAgIHBheWxvYWRlcjogRGVmYXVsdDo6ZGVmYXVsdCgpLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgLy8gLS0gQVYxCiAgICAgICAgICAgIFZpZGVvRm9ybWF0OjpBdjFNYWluOAogICAgICAgICAgICB8IFZpZGVvRm9ybWF0OjpBdjFNYWluMTAKICAgICAgICAgICAgfCBWaWRlb0Zvcm1hdDo6QXYxSGlnaDhfNDQ0CiAgICAgICAgICAgIHwgVmlkZW9Gb3JtYXQ6OkF2MUhpZ2gxMF80NDQgPT4gU29tZShWaWRlb0NvZGVjOjpBdjEgewogICAgICAgICAgICAgICAgcGF5bG9hZGVyOiBEZWZhdWx0OjpkZWZhdWx0KCksCiAgICAgICAgICAgIH0pLAogICAgICAgIH07CgogICAgICAgIHRydWUKICAgIH0KCiAgICBwdWIgYXN5bmMgZm4gc2VuZF9kZWNvZGVfdW5pdCgmbXV0IHNlbGYsIHVuaXQ6ICZWaWRlb0RlY29kZVVuaXQ8Jlt1OF0+KSAtPiBEZWNvZGVSZXN1bHQgewogICAgICAgIGxldCB0aW1lc3RhbXAgPSAodW5pdC50aW1lc3RhbXAuYXNfbmFub3MoKSAqIDkwMDAwIC8gMV8wMDBfMDAwXzAwMCkgYXMgdTMyOwoKICAgICAgICBsZXQgbXV0IGZ1bGxfZnJhbWUgPSBWZWM6Om5ldygpOwogICAgICAgIGZvciBidWZmZXIgaW4gJnVuaXQuYnVmZmVycyB7CiAgICAgICAgICAgIGZ1bGxfZnJhbWUuZXh0ZW5kX2Zyb21fc2xpY2UoYnVmZmVyLmRhdGEpOwogICAgICAgIH0KCiAgICAgICAgbGV0IGltcG9ydGFudCA9IG1hdGNoZXMhKHVuaXQuZnJhbWVfdHlwZSwgRnJhbWVUeXBlOjpJZHIpOwoKICAgICAgICBtYXRjaCAmbXV0IHNlbGYuY29kZWMgewogICAgICAgICAgICAvLyAtLSBIMjY0CiAgICAgICAgICAgIFNvbWUoVmlkZW9Db2RlYzo6SDI2NCB7CiAgICAgICAgICAgICAgICBuYWxfcmVhZGVyLAogICAgICAgICAgICAgICAgcGF5bG9hZGVyLAogICAgICAgICAgICB9KSA9PiB7CiAgICAgICAgICAgICAgICBuYWxfcmVhZGVyLnJlc2V0KEN1cnNvcjo6bmV3KGZ1bGxfZnJhbWUpKTsKCiAgICAgICAgICAgICAgICB3aGlsZSBsZXQgT2soU29tZShuYWwpKSA9IG5hbF9yZWFkZXIubmV4dF9uYWwoKSB7CiAgICAgICAgICAgICAgICAgICAgdHJhY2UhKAogICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6ICJ2aWRlbzo6aGVhZGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgbmFsX3N0YXJ0X2NvZGUgPSA/bmFsLnN0YXJ0X2NvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbF9oZWFkZXIgPSA/bmFsLmhlYWRlciwKICAgICAgICAgICAgICAgICAgICAgICAgImgyNjQgaGVhZGVyIgogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgdHJhY2UhKAogICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6ICJ2aWRlbzo6bmFsdSIsCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbF9kYXRhID0gPyZuYWwuZnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgImgyNjQgbmFsdSIKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBpZiBuYWwuaGVhZGVyLm5hbF91bml0X3R5cGUgPT0gaDI2NDo6TmFsVW5pdFR5cGU6OkZpbGxlckRhdGEgewogICAgICAgICAgICAgICAgICAgICAgICB0cmFjZSEodGFyZ2V0OiAidmlkZW8iLCJJZ25vcmluZyBuYWwgYmVjYXVzZSBpdCdzIGZpbGxlciBkYXRhOiB7Oj99IiwgbmFsLmhlYWRlcik7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSB0cmltX2J5dGVzX3RvX3JhbmdlKAogICAgICAgICAgICAgICAgICAgICAgICBuYWwuZnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgbmFsLmhlYWRlcl9yYW5nZS5zdGFydC4ubmFsLnBheWxvYWRfcmFuZ2UuZW5kLAogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIHNlbGYuc2FtcGxlcy5wdXNoKGRhdGEpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHNlbmRfc2luZ2xlX2ZyYW1lKAogICAgICAgICAgICAgICAgICAgICZtdXQgc2VsZi5zYW1wbGVzLAogICAgICAgICAgICAgICAgICAgICZtdXQgc2VsZi5zZW5kZXIsCiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZGVyLAogICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCwKICAgICAgICAgICAgICAgICAgICBpbXBvcnRhbnQsCiAgICAgICAgICAgICAgICAgICAgJnNlbGYubmVlZHNfaWRyLAogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmF3YWl0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIC0tIEgyNjUKICAgICAgICAgICAgU29tZShWaWRlb0NvZGVjOjpIMjY1IHsKICAgICAgICAgICAgICAgIG5hbF9yZWFkZXIsCiAgICAgICAgICAgICAgICBwYXlsb2FkZXIsCiAgICAgICAgICAgIH0pID0+IHsKICAgICAgICAgICAgICAgIG5hbF9yZWFkZXIucmVzZXQoQ3Vyc29yOjpuZXcoZnVsbF9mcmFtZSkpOwoKICAgICAgICAgICAgICAgIHdoaWxlIGxldCBPayhTb21lKG5hbCkpID0gbmFsX3JlYWRlci5uZXh0X25hbCgpIHsKICAgICAgICAgICAgICAgICAgICB0cmFjZSEoCiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogInZpZGVvOjpoZWFkZXIiLAogICAgICAgICAgICAgICAgICAgICAgICBuYWxfc3RhcnRfY29kZSA9ID9uYWwuc3RhcnRfY29kZSwKICAgICAgICAgICAgICAgICAgICAgICAgbmFsX2hlYWRlciA9ID9uYWwuaGVhZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAiaDI2NSBoZWFkZXIiCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB0cmFjZSEoCiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldDogInZpZGVvOjpuYWx1IiwKICAgICAgICAgICAgICAgICAgICAgICAgbmFsX2RhdGEgPSA/Jm5hbC5mdWxsLAogICAgICAgICAgICAgICAgICAgICAgICAiaDI2NSBuYWx1IgogICAgICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgICAgIGxldCBkYXRhID0gdHJpbV9ieXRlc190b19yYW5nZSgKICAgICAgICAgICAgICAgICAgICAgICAgbmFsLmZ1bGwsCiAgICAgICAgICAgICAgICAgICAgICAgIG5hbC5oZWFkZXJfcmFuZ2Uuc3RhcnQuLm5hbC5wYXlsb2FkX3JhbmdlLmVuZCwKICAgICAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICAgICBzZWxmLnNhbXBsZXMucHVzaChkYXRhKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBzZW5kX3NpbmdsZV9mcmFtZSgKICAgICAgICAgICAgICAgICAgICAmbXV0IHNlbGYuc2FtcGxlcywKICAgICAgICAgICAgICAgICAgICAmbXV0IHNlbGYuc2VuZGVyLAogICAgICAgICAgICAgICAgICAgIHBheWxvYWRlciwKICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAsCiAgICAgICAgICAgICAgICAgICAgaW1wb3J0YW50LAogICAgICAgICAgICAgICAgICAgICZzZWxmLm5lZWRzX2lkciwKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hd2FpdDsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyAtLSBBVjEKICAgICAgICAgICAgU29tZShWaWRlb0NvZGVjOjpBdjEgeyBwYXlsb2FkZXIgfSkgPT4gewogICAgICAgICAgICAgICAgc2VsZi5zYW1wbGVzLnB1c2goQnl0ZXNNdXQ6OmZyb20oZnVsbF9mcmFtZS5hc19zbGljZSgpKSk7CgogICAgICAgICAgICAgICAgc2VuZF9zaW5nbGVfZnJhbWUoCiAgICAgICAgICAgICAgICAgICAgJm11dCBzZWxmLnNhbXBsZXMsCiAgICAgICAgICAgICAgICAgICAgJm11dCBzZWxmLnNlbmRlciwKICAgICAgICAgICAgICAgICAgICBwYXlsb2FkZXIsCiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wLAogICAgICAgICAgICAgICAgICAgIGltcG9ydGFudCwKICAgICAgICAgICAgICAgICAgICAmc2VsZi5uZWVkc19pZHIsCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYXdhaXQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgTm9uZSA9PiB7CiAgICAgICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgZGVjb2RlIHVuaXQgYmVjYXVzZSBvZiBtaXNzaW5nIGNvZGVjISIpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiBzZWxmCiAgICAgICAgICAgIC5uZWVkc19pZHIKICAgICAgICAgICAgLmNvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh0cnVlLCBmYWxzZSwgT3JkZXJpbmc6OlNlcUNzdCwgT3JkZXJpbmc6OlJlbGF4ZWQpCiAgICAgICAgICAgIC5pc19vaygpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gRGVjb2RlUmVzdWx0OjpOZWVkSWRyOwogICAgICAgIH0KCiAgICAgICAgRGVjb2RlUmVzdWx0OjpPawogICAgfQp9CgpwdWIgZm4gcmVnaXN0ZXJfdmlkZW9fY29kZWNzKG1lZGlhX2VuZ2luZTogJm11dCBNZWRpYUVuZ2luZSkgLT4gUmVzdWx0PCgpLCB3ZWJydGM6OkVycm9yPiB7CiAgICBmb3IgZm9ybWF0IGluIFZpZGVvRm9ybWF0OjphbGwoKSB7CiAgICAgICAgbGV0IFNvbWUoY29kZWMpID0gdmlkZW9fZm9ybWF0X3RvX2NvZGVjKGZvcm1hdCkgZWxzZSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH07CiAgICAgICAgZGVidWchKAogICAgICAgICAgICAiUmVnaXN0ZXJpbmcgVmlkZW8gRm9ybWF0IHtmb3JtYXQ6P30sIENvZGVjOiB7Oj99IiwKICAgICAgICAgICAgY29kZWMuY2FwYWJpbGl0eQogICAgICAgICk7CgogICAgICAgIG1lZGlhX2VuZ2luZS5yZWdpc3Rlcl9jb2RlYyhjb2RlYywgUlRQQ29kZWNUeXBlOjpWaWRlbyk/OwogICAgfQoKICAgIE9rKCgpKQp9Cgphc3luYyBmbiBzZW5kX3NpbmdsZV9mcmFtZSgKICAgIHNhbXBsZXM6ICZtdXQgVmVjPEJ5dGVzTXV0PiwKICAgIHNlbmRlcjogJm11dCBUcmFja0xvY2FsU2VuZGVyPFNlcXVlbmNlZFRyYWNrTG9jYWxTdGF0aWNSVFA+LAogICAgcGF5bG9hZGVyOiAmbXV0IGltcGwgUGF5bG9hZGVyLAogICAgdGltZXN0YW1wOiB1MzIsCiAgICBpbXBvcnRhbnQ6IGJvb2wsCiAgICBuZWVkc19pZHI6ICZBdG9taWNCb29sLAopIHsKICAgIGlmIGltcG9ydGFudCB7CiAgICAgICAgc2VuZGVyLmNsZWFyX3F1ZXVlKGZhbHNlKS5hd2FpdDsKICAgIH0KCiAgICBsZXQgbXV0IHBlZWthYmxlID0gc2FtcGxlcy5kcmFpbiguLikucGVla2FibGUoKTsKCiAgICBsZXQgbXV0IGZyYW1lX3NhbXBsZXMgPSBWZWM6Om5ldygpOwogICAgd2hpbGUgbGV0IFNvbWUoc2FtcGxlKSA9IHBlZWthYmxlLm5leHQoKSB7CiAgICAgICAgbGV0IHBhY2tldHMgPSBtYXRjaCBwYWNrZXRpemUoCiAgICAgICAgICAgIHBheWxvYWRlciwKICAgICAgICAgICAgUlRQX09VVEJPVU5EX01UVSwKICAgICAgICAgICAgMCwgLy8gaXMgc2V0IGluIHRoZSB3cml0ZSBmbgogICAgICAgICAgICB0aW1lc3RhbXAsCiAgICAgICAgICAgICZzYW1wbGUuZnJlZXplKCksCiAgICAgICAgICAgIHBlZWthYmxlLnBlZWsoKS5pc19ub25lKCksCiAgICAgICAgKSB7CiAgICAgICAgICAgIE9rKHZhbHVlKSA9PiB2YWx1ZSwKICAgICAgICAgICAgRXJyKGVycikgPT4gewogICAgICAgICAgICAgICAgd2FybiEoImZhaWxlZCB0byBwYWNrZXRpemUgcGFja2V0OiB7ZXJyfSIpOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBmcmFtZV9zYW1wbGVzLmV4dGVuZChwYWNrZXRzKTsKICAgIH0KCiAgICBpZiAhc2VuZGVyLnNlbmRfc2FtcGxlcyhmcmFtZV9zYW1wbGVzLCBpbXBvcnRhbnQpLmF3YWl0IHsKICAgICAgICBzZW5kZXIuY2xlYXJfcXVldWUodHJ1ZSkuYXdhaXQ7CgogICAgICAgIC8vIFdlJ3ZlIGRyb3BwZWQgYSBmcmFtZSAobGlrZWx5IGR1ZSB0byBidWZmZXJpbmcpCiAgICAgICAgbmVlZHNfaWRyLnN0b3JlKHRydWUsIE9yZGVyaW5nOjpSZWxlYXNlKTsKICAgIH0KfQoKZm4gcGFja2V0aXplKAogICAgcGF5bG9hZGVyOiAmbXV0IGltcGwgUGF5bG9hZGVyLAogICAgbXR1OiB1c2l6ZSwKICAgIHNlcXVlbmNlX251bWJlcjogdTE2LAogICAgdGltZXN0YW1wOiB1MzIsCiAgICBwYXlsb2FkOiAmQnl0ZXMsCiAgICBlbmRfaGFzX21hcmtlcjogYm9vbCwKKSAtPiBSZXN1bHQ8VmVjPFBhY2tldD4sIGFueWhvdzo6RXJyb3I+IHsKICAgIGxldCBwYXlsb2FkcyA9IHBheWxvYWRlci5wYXlsb2FkKG10dSAtIDEyLCBwYXlsb2FkKT87CiAgICBsZXQgcGF5bG9hZHNfbGVuID0gcGF5bG9hZHMubGVuKCk7CiAgICBsZXQgbXV0IHBhY2tldHMgPSBWZWM6OndpdGhfY2FwYWNpdHkocGF5bG9hZHNfbGVuKTsKICAgIGZvciAoaSwgcGF5bG9hZCkgaW4gcGF5bG9hZHMuaW50b19pdGVyKCkuZW51bWVyYXRlKCkgewogICAgICAgIHBhY2tldHMucHVzaChQYWNrZXQgewogICAgICAgICAgICBoZWFkZXI6IEhlYWRlciB7CiAgICAgICAgICAgICAgICB2ZXJzaW9uOiAyLAogICAgICAgICAgICAgICAgcGFkZGluZzogZmFsc2UsCiAgICAgICAgICAgICAgICBleHRlbnNpb246IGZhbHNlLAogICAgICAgICAgICAgICAgbWFya2VyOiBlbmRfaGFzX21hcmtlciAmJiBpID09IHBheWxvYWRzX2xlbiAtIDEsCiAgICAgICAgICAgICAgICBzZXF1ZW5jZV9udW1iZXIsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXAsCiAgICAgICAgICAgICAgICBwYXlsb2FkX3R5cGU6IDAsIC8vIFZhbHVlIGlzIGhhbmRsZWQgd2hlbiB3cml0aW5nCiAgICAgICAgICAgICAgICBzc3JjOiAwLCAgICAgICAgIC8vIFZhbHVlIGlzIGhhbmRsZWQgd2hlbiB3cml0aW5nCiAgICAgICAgICAgICAgICAuLkRlZmF1bHQ6OmRlZmF1bHQoKQogICAgICAgICAgICB9LAogICAgICAgICAgICBwYXlsb2FkLAogICAgICAgIH0pOwogICAgfQoKICAgIE9rKHBhY2tldHMpCn0KCmZuIHZpZGVvX2Zvcm1hdF90b19jb2RlYyhmb3JtYXQ6IFZpZGVvRm9ybWF0KSAtPiBPcHRpb248UlRDUnRwQ29kZWNQYXJhbWV0ZXJzPiB7CiAgICBsZXQgcnRjcF9mZWVkYmFjayA9IHZlYyFbCiAgICAgICAgUlRDUEZlZWRiYWNrIHsKICAgICAgICAgICAgdHlwOiAibmFjayIudG9fc3RyaW5nKCksCiAgICAgICAgICAgIHBhcmFtZXRlcjogIiIudG9fc3RyaW5nKCksCiAgICAgICAgfSwKICAgICAgICBSVENQRmVlZGJhY2sgewogICAgICAgICAgICB0eXA6ICJuYWNrIi50b19zdHJpbmcoKSwKICAgICAgICAgICAgcGFyYW1ldGVyOiAicGxpIi50b19zdHJpbmcoKSwKICAgICAgICB9LAogICAgICAgIFJUQ1BGZWVkYmFjayB7CiAgICAgICAgICAgIHR5cDogImdvb2ctcmVtYiIudG9fc3RyaW5nKCksCiAgICAgICAgICAgIHBhcmFtZXRlcjogIiIudG9fc3RyaW5nKCksCiAgICAgICAgfSwKICAgIF07CgogICAgbWF0Y2ggZm9ybWF0IHsKICAgICAgICAvLyAtLSBIMjY0IENvbnN0cmFpbmVkIEJhc2VsaW5lIFByb2ZpbGUKICAgICAgICBWaWRlb0Zvcm1hdDo6SDI2NCA9PiBTb21lKFJUQ1J0cENvZGVjUGFyYW1ldGVycyB7CiAgICAgICAgICAgIGNhcGFiaWxpdHk6IFJUQ1J0cENvZGVjQ2FwYWJpbGl0eSB7CiAgICAgICAgICAgICAgICBtaW1lX3R5cGU6IE1JTUVfVFlQRV9IMjY0LnRvX293bmVkKCksCiAgICAgICAgICAgICAgICBjbG9ja19yYXRlOiA5MDAwMCwKICAgICAgICAgICAgICAgIGNoYW5uZWxzOiAwLAogICAgICAgICAgICAgICAgc2RwX2ZtdHBfbGluZToKICAgICAgICAgICAgICAgICAgICAibGV2ZWwtYXN5bW1ldHJ5LWFsbG93ZWQ9MTtwYWNrZXRpemF0aW9uLW1vZGU9MTtwcm9maWxlLWxldmVsLWlkPTQyZTAxZiIKICAgICAgICAgICAgICAgICAgICAgICAgLnRvX293bmVkKCksCiAgICAgICAgICAgICAgICBydGNwX2ZlZWRiYWNrOiBydGNwX2ZlZWRiYWNrLmNsb25lKCksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHBheWxvYWRfdHlwZTogOTYsCiAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgfSksCiAgICAgICAgLy8gLS0gSDI2NCBIaWdoIFByb2ZpbGUKICAgICAgICBWaWRlb0Zvcm1hdDo6SDI2NEhpZ2g4XzQ0NCA9PiBTb21lKFJUQ1J0cENvZGVjUGFyYW1ldGVycyB7CiAgICAgICAgICAgIGNhcGFiaWxpdHk6IFJUQ1J0cENvZGVjQ2FwYWJpbGl0eSB7CiAgICAgICAgICAgICAgICBtaW1lX3R5cGU6IE1JTUVfVFlQRV9IMjY0LnRvX293bmVkKCksCiAgICAgICAgICAgICAgICBjbG9ja19yYXRlOiA5MDAwMCwKICAgICAgICAgICAgICAgIGNoYW5uZWxzOiAwLAogICAgICAgICAgICAgICAgc2RwX2ZtdHBfbGluZToKICAgICAgICAgICAgICAgICAgICAibGV2ZWwtYXN5bW1ldHJ5LWFsbG93ZWQ9MTtwYWNrZXRpemF0aW9uLW1vZGU9MTtwcm9maWxlLWxldmVsLWlkPTY0MDAzMiIKICAgICAgICAgICAgICAgICAgICAgICAgLnRvX293bmVkKCksCiAgICAgICAgICAgICAgICBydGNwX2ZlZWRiYWNrOiBydGNwX2ZlZWRiYWNrLmNsb25lKCksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHBheWxvYWRfdHlwZTogOTcsCiAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgfSksCgogICAgICAgIC8vIC0tIEgyNjUgTWFpbiBQcm9maWxlCiAgICAgICAgVmlkZW9Gb3JtYXQ6OkgyNjUgPT4gU29tZShSVENSdHBDb2RlY1BhcmFtZXRlcnMgewogICAgICAgICAgICBjYXBhYmlsaXR5OiBSVENSdHBDb2RlY0NhcGFiaWxpdHkgewogICAgICAgICAgICAgICAgbWltZV90eXBlOiBNSU1FX1RZUEVfSEVWQy50b19vd25lZCgpLAogICAgICAgICAgICAgICAgY2xvY2tfcmF0ZTogOTAwMDAsCiAgICAgICAgICAgICAgICBjaGFubmVsczogMCwKICAgICAgICAgICAgICAgIHNkcF9mbXRwX2xpbmU6ICIiLnRvX293bmVkKCksCiAgICAgICAgICAgICAgICBydGNwX2ZlZWRiYWNrOiBydGNwX2ZlZWRiYWNrLmNsb25lKCksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHBheWxvYWRfdHlwZTogOTgsCiAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgfSksCiAgICAgICAgLy8gLS0gSDI2NSBNYWluMTAgUHJvZmlsZQogICAgICAgIFZpZGVvRm9ybWF0OjpIMjY1TWFpbjEwID0+IFNvbWUoUlRDUnRwQ29kZWNQYXJhbWV0ZXJzIHsKICAgICAgICAgICAgY2FwYWJpbGl0eTogUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHsKICAgICAgICAgICAgICAgIG1pbWVfdHlwZTogTUlNRV9UWVBFX0hFVkMudG9fb3duZWQoKSwKICAgICAgICAgICAgICAgIGNsb2NrX3JhdGU6IDkwMDAwLAogICAgICAgICAgICAgICAgY2hhbm5lbHM6IDAsCiAgICAgICAgICAgICAgICBzZHBfZm10cF9saW5lOiAicHJvZmlsZS1pZD0yO3RpZXItZmxhZz0wO2xldmVsLWlkPTkzO3R4LW1vZGU9U1JTVCIudG9fb3duZWQoKSwKICAgICAgICAgICAgICAgIHJ0Y3BfZmVlZGJhY2s6IHJ0Y3BfZmVlZGJhY2suY2xvbmUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcGF5bG9hZF90eXBlOiA5OSwKICAgICAgICAgICAgLi5EZWZhdWx0OjpkZWZhdWx0KCkKICAgICAgICB9KSwKICAgICAgICAvLyAtLSBIMjY1IFJFeHQgNDo0OjQgOC1iaXQKICAgICAgICBWaWRlb0Zvcm1hdDo6SDI2NVJleHQ4XzQ0NCA9PiBTb21lKFJUQ1J0cENvZGVjUGFyYW1ldGVycyB7CiAgICAgICAgICAgIGNhcGFiaWxpdHk6IFJUQ1J0cENvZGVjQ2FwYWJpbGl0eSB7CiAgICAgICAgICAgICAgICBtaW1lX3R5cGU6IE1JTUVfVFlQRV9IRVZDLnRvX293bmVkKCksCiAgICAgICAgICAgICAgICBjbG9ja19yYXRlOiA5MDAwMCwKICAgICAgICAgICAgICAgIGNoYW5uZWxzOiAwLAogICAgICAgICAgICAgICAgc2RwX2ZtdHBfbGluZTogInByb2ZpbGUtaWQ9NDt0aWVyLWZsYWc9MDtsZXZlbC1pZD0xMjA7dHgtbW9kZT1TUlNUIi50b19vd25lZCgpLAogICAgICAgICAgICAgICAgcnRjcF9mZWVkYmFjazogcnRjcF9mZWVkYmFjay5jbG9uZSgpLAogICAgICAgICAgICB9LAogICAgICAgICAgICBwYXlsb2FkX3R5cGU6IDEwMCwKICAgICAgICAgICAgLi5EZWZhdWx0OjpkZWZhdWx0KCkKICAgICAgICB9KSwKICAgICAgICAvLyAtLSBIMjY1IFJFeHQgNDo0OjQgMTAtYml0CiAgICAgICAgVmlkZW9Gb3JtYXQ6OkgyNjVSZXh0MTBfNDQ0ID0+IFNvbWUoUlRDUnRwQ29kZWNQYXJhbWV0ZXJzIHsKICAgICAgICAgICAgY2FwYWJpbGl0eTogUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHsKICAgICAgICAgICAgICAgIG1pbWVfdHlwZTogTUlNRV9UWVBFX0hFVkMudG9fb3duZWQoKSwKICAgICAgICAgICAgICAgIGNsb2NrX3JhdGU6IDkwMDAwLAogICAgICAgICAgICAgICAgY2hhbm5lbHM6IDAsCiAgICAgICAgICAgICAgICBzZHBfZm10cF9saW5lOiAicHJvZmlsZS1pZD01O3RpZXItZmxhZz0wO2xldmVsLWlkPTkzO3R4LW1vZGU9U1JTVCIudG9fb3duZWQoKSwKICAgICAgICAgICAgICAgIHJ0Y3BfZmVlZGJhY2s6IHJ0Y3BfZmVlZGJhY2suY2xvbmUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcGF5bG9hZF90eXBlOiAxMDEsCiAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgfSksCgogICAgICAgIC8vIC0tIEF2MQogICAgICAgIFZpZGVvRm9ybWF0OjpBdjFNYWluOCB8IFZpZGVvRm9ybWF0OjpBdjFNYWluMTAgPT4gU29tZShSVENSdHBDb2RlY1BhcmFtZXRlcnMgewogICAgICAgICAgICBjYXBhYmlsaXR5OiBSVENSdHBDb2RlY0NhcGFiaWxpdHkgewogICAgICAgICAgICAgICAgbWltZV90eXBlOiBNSU1FX1RZUEVfQVYxLnRvX293bmVkKCksCiAgICAgICAgICAgICAgICBjbG9ja19yYXRlOiA5MDAwMCwKICAgICAgICAgICAgICAgIGNoYW5uZWxzOiAwLAogICAgICAgICAgICAgICAgc2RwX2ZtdHBfbGluZTogInByb2ZpbGU9MCIudG9fb3duZWQoKSwKICAgICAgICAgICAgICAgIHJ0Y3BfZmVlZGJhY2s6IHJ0Y3BfZmVlZGJhY2suY2xvbmUoKSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgcGF5bG9hZF90eXBlOiAxMDIsCiAgICAgICAgICAgIC4uRGVmYXVsdDo6ZGVmYXVsdCgpCiAgICAgICAgfSksCiAgICAgICAgVmlkZW9Gb3JtYXQ6OkF2MUhpZ2g4XzQ0NCB8IFZpZGVvRm9ybWF0OjpBdjFIaWdoMTBfNDQ0ID0+IFNvbWUoUlRDUnRwQ29kZWNQYXJhbWV0ZXJzIHsKICAgICAgICAgICAgY2FwYWJpbGl0eTogUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHsKICAgICAgICAgICAgICAgIG1pbWVfdHlwZTogTUlNRV9UWVBFX0FWMS50b19vd25lZCgpLAogICAgICAgICAgICAgICAgY2xvY2tfcmF0ZTogOTAwMDAsCiAgICAgICAgICAgICAgICBjaGFubmVsczogMCwKICAgICAgICAgICAgICAgIHNkcF9mbXRwX2xpbmU6ICJwcm9maWxlPTEiLnRvX293bmVkKCksCiAgICAgICAgICAgICAgICBydGNwX2ZlZWRiYWNrOiBydGNwX2ZlZWRiYWNrLmNsb25lKCksCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHBheWxvYWRfdHlwZTogMTAzLAogICAgICAgICAgICAuLkRlZmF1bHQ6OmRlZmF1bHQoKQogICAgICAgIH0pLAogICAgfQp9CgpmbiB0cmltX2J5dGVzX3RvX3JhbmdlKG11dCBidWY6IEJ5dGVzTXV0LCByYW5nZTogUmFuZ2U8dXNpemU+KSAtPiBCeXRlc011dCB7CiAgICBpZiByYW5nZS5zdGFydCA+IDAgewogICAgICAgIGxldCBfID0gYnVmLnNwbGl0X3RvKHJhbmdlLnN0YXJ0KTsKICAgIH0KCiAgICBpZiByYW5nZS5lbmQgLSByYW5nZS5zdGFydCA8IGJ1Zi5sZW4oKSB7CiAgICAgICAgbGV0IF8gPSBidWYuc3BsaXRfb2ZmKHJhbmdlLmVuZCAtIHJhbmdlLnN0YXJ0KTsKICAgIH0KCiAgICBidWYKfQo="},{"path":"streamer/src/transport/webrtc/video/annexb.rs","sha256":"09b6b78ee9b56ac2d5eb6b219389ff447fea05202ddab604a55745b87e9ef703","contentBase64":"dXNlIHN0ZDo6ewogICAgaW86OntzZWxmLCBFcnJvcktpbmQsIFJlYWR9LAogICAgb3BzOjpSYW5nZSwKfTsKCnVzZSBieXRlczo6e0J1Zk11dCwgQnl0ZXNNdXR9OwoKI1tkZXJpdmUoRGVidWcsIENsb25lLCBDb3B5LCBQYXJ0aWFsRXEsIEVxKV0KcHViIGVudW0gQW5uZXhCU3RhcnRDb2RlIHsKICAgIEIzLAogICAgQjQsCn0KCmltcGwgQW5uZXhCU3RhcnRDb2RlIHsKICAgIHB1YiBmbiBjb2RlKCZzZWxmKSAtPiAmJ3N0YXRpYyBbdThdIHsKICAgICAgICBtYXRjaCBzZWxmIHsKICAgICAgICAgICAgU2VsZjo6QjMgPT4gJlswLCAwLCAxXSwKICAgICAgICAgICAgU2VsZjo6QjQgPT4gJlswLCAwLCAwLCAxXSwKICAgICAgICB9CiAgICB9CiAgICBwdWIgZm4gbGVuKCZzZWxmKSAtPiB1c2l6ZSB7CiAgICAgICAgbWF0Y2ggc2VsZiB7CiAgICAgICAgICAgIFNlbGY6OkIzID0+IHNlbGYuY29kZSgpLmxlbigpLAogICAgICAgICAgICBTZWxmOjpCNCA9PiBzZWxmLmNvZGUoKS5sZW4oKSwKICAgICAgICB9CiAgICB9Cn0KCnB1YiBzdHJ1Y3QgQW5uZXhCRGF0YSB7CiAgICBwdWIgcGF5bG9hZF9yYW5nZTogUmFuZ2U8dXNpemU+LAogICAgcHViIHN0YXJ0X2NvZGU6IEFubmV4QlN0YXJ0Q29kZSwKICAgIHB1YiBzdGFydF9jb2RlX3JhbmdlOiBSYW5nZTx1c2l6ZT4sCiAgICBwdWIgZnVsbDogQnl0ZXNNdXQsCn0KCnB1YiBzdHJ1Y3QgQW5uZXhCU3BsaXR0ZXI8UjogUmVhZD4gewogICAgcmVhZGVyOiBSLAogICAgc3RhcnRfY29kZV9idWZmZXI6IFt1ODsgNF0sCiAgICBjdXJyZW50X3N0YXJ0X2NvZGU6IE9wdGlvbjxBbm5leEJTdGFydENvZGU+LAogICAgYnVmZmVyOiBCeXRlc011dCwKfQoKaW1wbDxSPiBBbm5leEJTcGxpdHRlcjxSPgp3aGVyZQogICAgUjogUmVhZCwKewogICAgcHViIGZuIG5ldyhyZWFkZXI6IFIsIGNhcGFjaXR5OiB1c2l6ZSkgLT4gU2VsZiB7CiAgICAgICAgU2VsZiB7CiAgICAgICAgICAgIHJlYWRlciwKICAgICAgICAgICAgc3RhcnRfY29kZV9idWZmZXI6IFsydTg7IDRdLAogICAgICAgICAgICBjdXJyZW50X3N0YXJ0X2NvZGU6IE5vbmUsCiAgICAgICAgICAgIGJ1ZmZlcjogQnl0ZXNNdXQ6OndpdGhfY2FwYWNpdHkoY2FwYWNpdHkpLAogICAgICAgIH0KICAgIH0KCiAgICBwdWIgZm4gbmV4dCgmbXV0IHNlbGYpIC0+IFJlc3VsdDxPcHRpb248QW5uZXhCRGF0YT4sIGlvOjpFcnJvcj4gewogICAgICAgIGlmIHNlbGYuY3VycmVudF9zdGFydF9jb2RlLmlzX25vbmUoKSB7CiAgICAgICAgICAgIGlmIGxldCBTb21lKHN0YXJ0X2NvZGUpID0gc2VsZi5uZXh0X2FubmV4X2Jfc3RhcnRfY29kZShmYWxzZSk/IHsKICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudF9zdGFydF9jb2RlID0gU29tZShzdGFydF9jb2RlKTsKICAgICAgICAgICAgICAgIHNlbGYucmVzZXRfc3RhcnRfY29kZV9idWZmZXIoKTsKCiAgICAgICAgICAgICAgICBzZWxmLmJ1ZmZlci5wdXQoc3RhcnRfY29kZS5jb2RlKCkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIE9rKE5vbmUpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjW2FsbG93KGNsaXBweTo6dW53cmFwX3VzZWQpXQogICAgICAgIGxldCBjdXJyZW50X3N0YXJ0X2NvZGUgPSBzZWxmLmN1cnJlbnRfc3RhcnRfY29kZS51bndyYXAoKTsKCiAgICAgICAgbGV0IHJlc3VsdCA9IHNlbGYubmV4dF9hbm5leF9iX3N0YXJ0X2NvZGUodHJ1ZSk7CgogICAgICAgIG1hdGNoIHJlc3VsdCB7CiAgICAgICAgICAgIE9rKE5vbmUpID0+IHsKICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudF9zdGFydF9jb2RlID0gTm9uZTsKCiAgICAgICAgICAgICAgICBPayhTb21lKEFubmV4QkRhdGEgewogICAgICAgICAgICAgICAgICAgIHBheWxvYWRfcmFuZ2U6IGN1cnJlbnRfc3RhcnRfY29kZS5sZW4oKS4uc2VsZi5idWZmZXIubGVuKCksCiAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29kZTogY3VycmVudF9zdGFydF9jb2RlLAogICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvZGVfcmFuZ2U6IDAuLmN1cnJlbnRfc3RhcnRfY29kZS5sZW4oKSwKICAgICAgICAgICAgICAgICAgICBmdWxsOiBzZWxmLmJ1ZmZlci5zcGxpdCgpLAogICAgICAgICAgICAgICAgfSkpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgRXJyKGVycikgaWYgZXJyLmtpbmQoKSA9PSBFcnJvcktpbmQ6OlVuZXhwZWN0ZWRFb2YgPT4gewogICAgICAgICAgICAgICAgc2VsZi5jdXJyZW50X3N0YXJ0X2NvZGUgPSBOb25lOwoKICAgICAgICAgICAgICAgIE9rKFNvbWUoQW5uZXhCRGF0YSB7CiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZF9yYW5nZTogY3VycmVudF9zdGFydF9jb2RlLmxlbigpLi5zZWxmLmJ1ZmZlci5sZW4oKSwKICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2RlOiBjdXJyZW50X3N0YXJ0X2NvZGUsCiAgICAgICAgICAgICAgICAgICAgc3RhcnRfY29kZV9yYW5nZTogMC4uY3VycmVudF9zdGFydF9jb2RlLmxlbigpLAogICAgICAgICAgICAgICAgICAgIGZ1bGw6IHNlbGYuYnVmZmVyLnNwbGl0KCksCiAgICAgICAgICAgICAgICB9KSkKICAgICAgICAgICAgfQogICAgICAgICAgICBPayhTb21lKG5leHRfc3RhcnRfY29kZSkpID0+IHsKICAgICAgICAgICAgICAgIGxldCBtdXQgZnVsbCA9IHNlbGYuYnVmZmVyLnNwbGl0KCk7CiAgICAgICAgICAgICAgICBmdWxsLnRydW5jYXRlKGZ1bGwubGVuKCkgLSBuZXh0X3N0YXJ0X2NvZGUubGVuKCkpOwoKICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudF9zdGFydF9jb2RlID0gU29tZShuZXh0X3N0YXJ0X2NvZGUpOwogICAgICAgICAgICAgICAgc2VsZi5idWZmZXIucHV0KG5leHRfc3RhcnRfY29kZS5jb2RlKCkpOwogICAgICAgICAgICAgICAgc2VsZi5yZXNldF9zdGFydF9jb2RlX2J1ZmZlcigpOwoKICAgICAgICAgICAgICAgIE9rKFNvbWUoQW5uZXhCRGF0YSB7CiAgICAgICAgICAgICAgICAgICAgcGF5bG9hZF9yYW5nZTogY3VycmVudF9zdGFydF9jb2RlLmxlbigpLi5mdWxsLmxlbigpLAogICAgICAgICAgICAgICAgICAgIHN0YXJ0X2NvZGU6IGN1cnJlbnRfc3RhcnRfY29kZSwKICAgICAgICAgICAgICAgICAgICBzdGFydF9jb2RlX3JhbmdlOiAwLi5jdXJyZW50X3N0YXJ0X2NvZGUubGVuKCksCiAgICAgICAgICAgICAgICAgICAgZnVsbCwKICAgICAgICAgICAgICAgIH0pKQogICAgICAgICAgICB9CiAgICAgICAgICAgIEVycihlcnIpID0+IEVycihlcnIpLAogICAgICAgIH0KICAgIH0KCiAgICBwdWIgZm4gcmVzZXQoJm11dCBzZWxmLCBuZXdfcmVhZGVyOiBSKSB7CiAgICAgICAgLy8gUmVhZCB0byBlbmQKICAgICAgICB3aGlsZSBsZXQgT2soU29tZShfKSkgPSBzZWxmLm5leHQoKSB7fQoKICAgICAgICBzZWxmLnJlYWRlciA9IG5ld19yZWFkZXI7CiAgICB9CgogICAgZm4gbmV4dF9hbm5leF9iX3N0YXJ0X2NvZGUoCiAgICAgICAgJm11dCBzZWxmLAogICAgICAgIGJ1ZmZlcl9ieXRlczogYm9vbCwKICAgICkgLT4gUmVzdWx0PE9wdGlvbjxBbm5leEJTdGFydENvZGU+LCBpbzo6RXJyb3I+IHsKICAgICAgICBsb29wIHsKICAgICAgICAgICAgbWF0Y2ggJnNlbGYuc3RhcnRfY29kZV9idWZmZXIgewogICAgICAgICAgICAgICAgWzAsIDAsIDAsIDFdID0+IHJldHVybiBPayhTb21lKEFubmV4QlN0YXJ0Q29kZTo6QjQpKSwKICAgICAgICAgICAgICAgIFtfLCAwLCAwLCAxXSA9PiByZXR1cm4gT2soU29tZShBbm5leEJTdGFydENvZGU6OkIzKSksCiAgICAgICAgICAgICAgICBfID0+IHt9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxldCBtdXQgYnl0ZSA9IFswdTg7IDFdOwogICAgICAgICAgICBpZiBzZWxmLnJlYWRlci5yZWFkKCZtdXQgYnl0ZSk/ID09IDAgewogICAgICAgICAgICAgICAgcmV0dXJuIE9rKE5vbmUpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCBieXRlID0gYnl0ZVswXTsKCiAgICAgICAgICAgIGlmIGJ1ZmZlcl9ieXRlcyB7CiAgICAgICAgICAgICAgICBzZWxmLmJ1ZmZlci5wdXRfdTgoYnl0ZSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNlbGYuc3RhcnRfY29kZV9idWZmZXIucm90YXRlX2xlZnQoMSk7CiAgICAgICAgICAgIHNlbGYuc3RhcnRfY29kZV9idWZmZXJbM10gPSBieXRlOwogICAgICAgIH0KICAgIH0KICAgIGZuIHJlc2V0X3N0YXJ0X2NvZGVfYnVmZmVyKCZtdXQgc2VsZikgewogICAgICAgIHNlbGYuc3RhcnRfY29kZV9idWZmZXIuY29weV9mcm9tX3NsaWNlKCZbMnU4OyA0XSk7CiAgICB9Cn0KCiNbY2ZnKHRlc3QpXQojW2FsbG93KGNsaXBweTo6dW53cmFwX3VzZWQpXQptb2QgdGVzdHMgewogICAgdXNlIHN1cGVyOjoqOwogICAgdXNlIHN0ZDo6aW86OkN1cnNvcjsKCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X3NwbGl0dGVyX3NpbmdsZV9iMygpIHsKICAgICAgICBsZXQgZGF0YSA9IHZlYyFbMCwgMCwgMSwgMHg0MiwgMHgwMSwgMHgwMl07CiAgICAgICAgbGV0IG11dCBzcGxpdHRlciA9IEFubmV4QlNwbGl0dGVyOjpuZXcoQ3Vyc29yOjpuZXcoZGF0YS5jbG9uZSgpKSwgMTYpOwoKICAgICAgICBsZXQgbmFsID0gc3BsaXR0ZXIubmV4dCgpLnVud3JhcCgpLnVud3JhcCgpOwogICAgICAgIGFzc2VydF9lcSEobmFsLnN0YXJ0X2NvZGUsIEFubmV4QlN0YXJ0Q29kZTo6QjMpOwogICAgICAgIGFzc2VydF9lcSEoJm5hbC5mdWxsW25hbC5wYXlsb2FkX3JhbmdlLmNsb25lKCldLCAmWzB4NDIsIDB4MDEsIDB4MDJdKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X3NwbGl0dGVyX3NpbmdsZV9iNCgpIHsKICAgICAgICBsZXQgZGF0YSA9IHZlYyFbMCwgMCwgMCwgMSwgMHg0NCwgMHgwNV07CiAgICAgICAgbGV0IG11dCBzcGxpdHRlciA9IEFubmV4QlNwbGl0dGVyOjpuZXcoQ3Vyc29yOjpuZXcoZGF0YS5jbG9uZSgpKSwgMTYpOwoKICAgICAgICBsZXQgbmFsID0gc3BsaXR0ZXIubmV4dCgpLnVud3JhcCgpLnVud3JhcCgpOwogICAgICAgIGFzc2VydF9lcSEobmFsLnN0YXJ0X2NvZGUsIEFubmV4QlN0YXJ0Q29kZTo6QjQpOwogICAgICAgIGFzc2VydF9lcSEoJm5hbC5mdWxsW25hbC5wYXlsb2FkX3JhbmdlLmNsb25lKCldLCAmWzB4NDQsIDB4MDVdKTsKICAgIH0KCiAgICAjW3Rlc3RdCiAgICBmbiB0ZXN0X3NwbGl0dGVyX211bHRpcGxlX25hbHVzKCkgewogICAgICAgIGxldCBkYXRhID0gdmVjIVswLCAwLCAwLCAxLCAweDQyLCAweDAxLCAweDAyLCAwLCAwLCAxLCAweDQ0LCAweDAzLCAweDA0XTsKICAgICAgICBsZXQgbXV0IHNwbGl0dGVyID0gQW5uZXhCU3BsaXR0ZXI6Om5ldyhDdXJzb3I6Om5ldyhkYXRhLmNsb25lKCkpLCAzMik7CgogICAgICAgIGxldCBuYWwxID0gc3BsaXR0ZXIubmV4dCgpLnVud3JhcCgpLnVud3JhcCgpOwogICAgICAgIGFzc2VydF9lcSEobmFsMS5zdGFydF9jb2RlLCBBbm5leEJTdGFydENvZGU6OkI0KTsKICAgICAgICBhc3NlcnRfZXEhKCZuYWwxLmZ1bGxbbmFsMS5wYXlsb2FkX3JhbmdlLmNsb25lKCldLCAmWzB4NDIsIDB4MDEsIDB4MDJdKTsKCiAgICAgICAgbGV0IG5hbDIgPSBzcGxpdHRlci5uZXh0KCkudW53cmFwKCkudW53cmFwKCk7CiAgICAgICAgYXNzZXJ0X2VxIShuYWwyLnN0YXJ0X2NvZGUsIEFubmV4QlN0YXJ0Q29kZTo6QjMpOwogICAgICAgIGFzc2VydF9lcSEoJm5hbDIuZnVsbFtuYWwyLnBheWxvYWRfcmFuZ2UuY2xvbmUoKV0sICZbMHg0NCwgMHgwMywgMHgwNF0pOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3Rfc3BsaXR0ZXJfbm9fbmFsdXMoKSB7CiAgICAgICAgbGV0IGRhdGEgPSB2ZWMhWzB4MDEsIDB4MDIsIDB4MDNdOwogICAgICAgIGxldCBtdXQgc3BsaXR0ZXIgPSBBbm5leEJTcGxpdHRlcjo6bmV3KEN1cnNvcjo6bmV3KGRhdGEuY2xvbmUoKSksIDE2KTsKCiAgICAgICAgbGV0IG5hbCA9IHNwbGl0dGVyLm5leHQoKS51bndyYXAoKTsKICAgICAgICBhc3NlcnQhKG5hbC5pc19ub25lKCkpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3Rfc3BsaXR0ZXJfZWRnZV9jYXNlX3N0YXJ0X29mX3N0cmVhbSgpIHsKICAgICAgICBsZXQgZGF0YSA9IHZlYyFbMCwgMCwgMCwgMSwgMHg0Ml07CiAgICAgICAgbGV0IG11dCBzcGxpdHRlciA9IEFubmV4QlNwbGl0dGVyOjpuZXcoQ3Vyc29yOjpuZXcoZGF0YS5jbG9uZSgpKSwgMTYpOwoKICAgICAgICBsZXQgbmFsID0gc3BsaXR0ZXIubmV4dCgpLnVud3JhcCgpLnVud3JhcCgpOwogICAgICAgIGFzc2VydF9lcSEobmFsLnN0YXJ0X2NvZGUsIEFubmV4QlN0YXJ0Q29kZTo6QjQpOwogICAgICAgIGFzc2VydF9lcSEoJm5hbC5mdWxsW25hbC5wYXlsb2FkX3JhbmdlLmNsb25lKCldLCAmWzB4NDJdKTsKICAgIH0KfQo="},{"path":"streamer/src/transport/webrtc/video/h264/mod.rs","sha256":"80d34b031b4cd2348c08d6e1a07e3519f5cf9f2638bdf5816d4cc3528a1286fb","contentBase64":"Ly8hIFNwZWNpZmljYXRpb25zOgovLyEgLSBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODQKCnVzZSBzdGQ6Om9wczo6UmFuZ2U7Cgp1c2UgYnl0ZXM6OkJ5dGVzTXV0Owp1c2UgbnVtOjpGcm9tUHJpbWl0aXZlOwp1c2UgbnVtX2Rlcml2ZTo6RnJvbVByaW1pdGl2ZTsKCnVzZSBjcmF0ZTo6dHJhbnNwb3J0Ojp3ZWJydGM6OnZpZGVvOjphbm5leGI6OkFubmV4QlN0YXJ0Q29kZTsKCnB1YiBtb2QgcGF5bG9hZGVyOwoKcHViIG1vZCByZWFkZXI7CgojW2FsbG93KHVudXNlZCldCnB1YiBzdHJ1Y3QgTmFsIHsKICAgIHB1YiBwYXlsb2FkX3JhbmdlOiBSYW5nZTx1c2l6ZT4sCiAgICBwdWIgaGVhZGVyOiBOYWxIZWFkZXIsCiAgICBwdWIgaGVhZGVyX3JhbmdlOiBSYW5nZTx1c2l6ZT4sCiAgICBwdWIgc3RhcnRfY29kZTogQW5uZXhCU3RhcnRDb2RlLAogICAgcHViIHN0YXJ0X2NvZGVfcmFuZ2U6IFJhbmdlPHVzaXplPiwKICAgIHB1YiBmdWxsOiBCeXRlc011dCwKfQoKI1tyZXByKHU4KV0KI1tkZXJpdmUoRGVidWcsIENsb25lLCBDb3B5LCBQYXJ0aWFsRXEsIEVxLCBGcm9tUHJpbWl0aXZlKV0KcHViIGVudW0gTmFsVW5pdFR5cGUgewogICAgLy8gVkNMIE5BTCB1bml0cwogICAgVW5zcGVjaWZpZWQgPSAwLAogICAgQ29kZWRTbGljZU5vbklEUiA9IDEsCiAgICBDb2RlZFNsaWNlRGF0YVBhcnRpdGlvbkEgPSAyLAogICAgQ29kZWRTbGljZURhdGFQYXJ0aXRpb25CID0gMywKICAgIENvZGVkU2xpY2VEYXRhUGFydGl0aW9uQyA9IDQsCiAgICBDb2RlZFNsaWNlSURSID0gNSwKICAgIFNlaSA9IDYsCiAgICBTcHMgPSA3LAogICAgUHBzID0gOCwKICAgIEFjY2Vzc1VuaXREZWxpbWl0ZXIgPSA5LAogICAgRW5kT2ZTZXF1ZW5jZSA9IDEwLAogICAgRW5kT2ZTdHJlYW0gPSAxMSwKICAgIEZpbGxlckRhdGEgPSAxMiwKICAgIFNQU0V4ID0gMTMsCiAgICBQcmVmaXhOQUxVbml0ID0gMTQsCiAgICBTdWJzZXRTUFMgPSAxNSwKICAgIERlcHRoUGFyYW1ldGVyU2V0ID0gMTYsCiAgICBSZXNlcnZlZDE3ID0gMTcsCiAgICBSZXNlcnZlZDE4ID0gMTgsCiAgICBDb2RlZFNsaWNlQXV4ID0gMTksCiAgICBDb2RlZFNsaWNlRXh0ID0gMjAsCiAgICBDb2RlZFNsaWNlRXh0RGVwdGggPSAyMSwKICAgIFJlc2VydmVkMjIgPSAyMiwKICAgIFJlc2VydmVkMjMgPSAyMywKICAgIFN0YXBBID0gMjQsCiAgICBVbnNwZWNpZmllZDI1ID0gMjUsCiAgICBVbnNwZWNpZmllZDI2ID0gMjYsCiAgICBVbnNwZWNpZmllZDI3ID0gMjcsCiAgICBGcmFnbWVudGF0aW9uVW5pdCA9IDI4LAogICAgVW5zcGVjaWZpZWQyOSA9IDI5LAogICAgVW5zcGVjaWZpZWQzMCA9IDMwLAogICAgVW5zcGVjaWZpZWQzMSA9IDMxLAp9CgovLyBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzM5ODQjc2VjdGlvbi0xLjMKI1thbGxvdyh1bnVzZWQpXQojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIENvcHkpXQpwdWIgc3RydWN0IE5hbEhlYWRlciB7CiAgICBwdWIgZm9yYmlkZGVuX3plcm9fYml0OiBib29sLAogICAgcHViIG5hbF9yZWZfaWRjOiB1OCwKICAgIHB1YiBuYWxfdW5pdF90eXBlOiBOYWxVbml0VHlwZSwKfQoKaW1wbCBOYWxIZWFkZXIgewogICAgcHViIGNvbnN0IFNJWkU6IHVzaXplID0gMTsKCiAgICBwdWIgZm4gcGFyc2UoaGVhZGVyOiBbdTg7IDFdKSAtPiBTZWxmIHsKICAgICAgICAvLyBGOiAxIGJpdAogICAgICAgIGxldCBmb3JiaWRkZW5femVyb19iaXQgPSAoKGhlYWRlclswXSAmIDBiMTAwMDAwMDApID4+IDcpID09IDE7CgogICAgICAgIC8vIE5SSTogMiBiaXRzCiAgICAgICAgbGV0IG5hbF9yZWZfaWRjID0gKGhlYWRlclswXSAmIDBiMDExMDAwMDApID4+IDU7CgogICAgICAgIC8vIFR5cGU6IDUgYml0cwogICAgICAgIGxldCBuYWxfdW5pdF90eXBlID0gaGVhZGVyWzBdICYgMGIwMDAxMTExMTsKCiAgICAgICAgU2VsZiB7CiAgICAgICAgICAgIGZvcmJpZGRlbl96ZXJvX2JpdCwKICAgICAgICAgICAgbmFsX3JlZl9pZGMsCiAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojp1bndyYXBfdXNlZCldCiAgICAgICAgICAgIG5hbF91bml0X3R5cGU6IE5hbFVuaXRUeXBlOjpmcm9tX3U4KG5hbF91bml0X3R5cGUpLnVud3JhcCgpLAogICAgICAgIH0KICAgIH0KCiAgICBwdWIgZm4gc2VyaWFsaXplKCZzZWxmKSAtPiBbdTg7IDFdIHsKICAgICAgICBsZXQgbXV0IGhlYWRlciA9IFswdTg7IDFdOwoKICAgICAgICAvLyBGOiBGb3JiaWRkZW4gemVybyBiaXQgKGJpdCA3KQogICAgICAgIGlmIHNlbGYuZm9yYmlkZGVuX3plcm9fYml0IHsKICAgICAgICAgICAgaGVhZGVyWzBdIHw9IDBiMTAwMF8wMDAwOwogICAgICAgIH0KCiAgICAgICAgLy8gTlJJOiAyIGJpdHMgKGJpdHMgNuKAkzUpCiAgICAgICAgaGVhZGVyWzBdIHw9IChzZWxmLm5hbF9yZWZfaWRjICYgMGIxMSkgPDwgNTsKCiAgICAgICAgLy8gVHlwZTogNSBiaXRzIChiaXRzIDTigJMwKQogICAgICAgIGhlYWRlclswXSB8PSAoc2VsZi5uYWxfdW5pdF90eXBlIGFzIHU4KSAmIDBiMDAwMV8xMTExOwoKICAgICAgICBoZWFkZXIKICAgIH0KfQo="},{"path":"streamer/src/transport/webrtc/video/h264/payloader.rs","sha256":"e1165f7a3caffb17fc0b7a6e965e677e3ba965abfdd20a3d8868839bae7e8847","contentBase64":"dXNlIGJ5dGVzOjp7QnVmTXV0LCBCeXRlcywgQnl0ZXNNdXR9Owp1c2UgbnVtOjpGcm9tUHJpbWl0aXZlOwp1c2Ugd2VicnRjOjpydHA6OntzZWxmLCBwYWNrZXRpemVyOjpQYXlsb2FkZXJ9OwoKdXNlIGNyYXRlOjp0cmFuc3BvcnQ6OndlYnJ0Yzo6dmlkZW86OmgyNjQ6OntOYWxIZWFkZXIsIE5hbFVuaXRUeXBlfTsKCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgRGVmYXVsdCldCnB1YiBzdHJ1Y3QgSDI2NFBheWxvYWRlciB7CiAgICBzcHNfbmFsdTogT3B0aW9uPEJ5dGVzPiwKICAgIHBwc19uYWx1OiBPcHRpb248Qnl0ZXM+LAp9CgojW2FsbG93KHVudXNlZCldCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgQ29weSldCnN0cnVjdCBGdUhlYWRlciB7CiAgICBwdWIgc3RhcnQ6IGJvb2wsCiAgICBwdWIgZW5kOiBib29sLAogICAgcHViIHJlc2VydmVkX2JpdDogYm9vbCwgLy8gYWx3YXlzIDAKICAgIHB1YiBuYWxfdW5pdF90eXBlOiBOYWxVbml0VHlwZSwKfQoKaW1wbCBGdUhlYWRlciB7CiAgICBjb25zdCBTSVpFOiB1c2l6ZSA9IDE7CgogICAgI1thbGxvdyh1bnVzZWQpXQogICAgcHViIGZuIHBhcnNlKGhlYWRlcjogW3U4OyAxXSkgLT4gU2VsZiB7CiAgICAgICAgbGV0IHN0YXJ0X2JpdCA9IChoZWFkZXJbMF0gJiAwYjEwMDBfMDAwMCkgIT0gMDsKICAgICAgICBsZXQgZW5kX2JpdCA9IChoZWFkZXJbMF0gJiAwYjAxMDBfMDAwMCkgIT0gMDsKICAgICAgICBsZXQgcmVzZXJ2ZWRfYml0ID0gKGhlYWRlclswXSAmIDBiMDAxMF8wMDAwKSAhPSAwOwogICAgICAgIGxldCBuYWxfdW5pdF90eXBlID0gaGVhZGVyWzBdICYgMGIwMDAxXzExMTE7CgogICAgICAgIFNlbGYgewogICAgICAgICAgICBzdGFydDogc3RhcnRfYml0LAogICAgICAgICAgICBlbmQ6IGVuZF9iaXQsCiAgICAgICAgICAgIHJlc2VydmVkX2JpdCwKICAgICAgICAgICAgI1thbGxvdyhjbGlwcHk6OnVud3JhcF91c2VkKV0KICAgICAgICAgICAgbmFsX3VuaXRfdHlwZTogTmFsVW5pdFR5cGU6OmZyb21fdTgobmFsX3VuaXRfdHlwZSkudW53cmFwKCksCiAgICAgICAgfQogICAgfQoKICAgIHB1YiBmbiBzZXJpYWxpemUoJnNlbGYpIC0+IFt1ODsgMV0gewogICAgICAgIGxldCBtdXQgaGVhZGVyID0gWzB1ODsgMV07CgogICAgICAgIGlmIHNlbGYuc3RhcnQgewogICAgICAgICAgICBoZWFkZXJbMF0gfD0gMGIxMDAwXzAwMDA7CiAgICAgICAgfQogICAgICAgIGlmIHNlbGYuZW5kIHsKICAgICAgICAgICAgaGVhZGVyWzBdIHw9IDBiMDEwMF8wMDAwOwogICAgICAgIH0KICAgICAgICBpZiBzZWxmLnJlc2VydmVkX2JpdCB7CiAgICAgICAgICAgIGhlYWRlclswXSB8PSAwYjAwMTBfMDAwMDsKICAgICAgICB9CgogICAgICAgIGhlYWRlclswXSB8PSBzZWxmLm5hbF91bml0X3R5cGUgYXMgdTggJiAwYjAwMDFfMTExMTsKCiAgICAgICAgaGVhZGVyCiAgICB9Cn0KCi8vIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NCNzZWN0aW9uLTUuNgovLyBXZSdyZSB1c2luZyBOb24tSW50ZXJsZWF2ZWQ6Ci8vIC0gT25seSBzaW5nbGUgTkFMIHVuaXQgcGFja2V0cywgU1RBUC1BcywgYW5kIEZVLUFzIE1BWSBiZSB1c2VkIGluIHRoaXMgbW9kZS4KLy8gLSBTVEFQLUJzLCBNVEFQcywgYW5kIEZVLUJzIE1VU1QgTk9UIGJlIHVzZWQuCmltcGwgSDI2NFBheWxvYWRlciB7CiAgICBmbiBidWlsZF9zaW5nbGVfbmFsKG5hbHU6IEJ5dGVzKSAtPiBCeXRlcyB7CiAgICAgICAgbmFsdQogICAgfQoKICAgIC8vIGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMzk4NCNzZWN0aW9uLTUuNy4xCiAgICBmbiBidWlsZF9zdGFwX2FfcGFja2V0KG5hbHVzOiAmWyZCeXRlc10pIC0+IEJ5dGVzTXV0IHsKICAgICAgICBsZXQgbXV0IHN0YXBfbGVuID0gMTsKICAgICAgICBsZXQgbXV0IG5hbF9yZWZfaWRjID0gMDsKICAgICAgICBmb3IgbmFsdSBpbiBuYWx1cyB7CiAgICAgICAgICAgIGxldCBuYWxfaGVhZGVyID0gTmFsSGVhZGVyOjpwYXJzZShbbmFsdVswXV0pOwoKICAgICAgICAgICAgaWYgbmFsX2hlYWRlci5uYWxfcmVmX2lkYyA+IG5hbF9yZWZfaWRjIHsKICAgICAgICAgICAgICAgIG5hbF9yZWZfaWRjID0gbmFsX2hlYWRlci5uYWxfcmVmX2lkYzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc3RhcF9sZW4gKz0gMiArIG5hbHUubGVuKCk7CiAgICAgICAgfQoKICAgICAgICBsZXQgc3RhcF9hX2hlYWRlciA9IE5hbEhlYWRlciB7CiAgICAgICAgICAgIGZvcmJpZGRlbl96ZXJvX2JpdDogZmFsc2UsCiAgICAgICAgICAgIG5hbF9yZWZfaWRjLAogICAgICAgICAgICBuYWxfdW5pdF90eXBlOiBOYWxVbml0VHlwZTo6U3RhcEEsCiAgICAgICAgfTsKCiAgICAgICAgbGV0IG11dCBieXRlcyA9IEJ5dGVzTXV0Ojp3aXRoX2NhcGFjaXR5KHN0YXBfbGVuKTsKCiAgICAgICAgYnl0ZXMuZXh0ZW5kX2Zyb21fc2xpY2UoJnN0YXBfYV9oZWFkZXIuc2VyaWFsaXplKCkpOwogICAgICAgIGZvciBuYWx1IGluIG5hbHVzIHsKICAgICAgICAgICAgYnl0ZXMucHV0X3UxNihuYWx1LmxlbigpIGFzIHUxNik7CiAgICAgICAgICAgIGJ5dGVzLmV4dGVuZF9mcm9tX3NsaWNlKG5hbHUpOwogICAgICAgIH0KCiAgICAgICAgYnl0ZXMKICAgIH0KCiAgICBmbiBidWlsZF9mcmFnbWVudGVkX3BhY2tldHMobmFsdTogJkJ5dGVzLCBtdXQgbmFsX2hlYWRlcjogTmFsSGVhZGVyLCBtdHU6IHVzaXplKSAtPiBWZWM8Qnl0ZXM+IHsKICAgICAgICBsZXQgbmFsX3VuaXRfdHlwZSA9IG5hbF9oZWFkZXIubmFsX3VuaXRfdHlwZTsKICAgICAgICBuYWxfaGVhZGVyLm5hbF91bml0X3R5cGUgPSBOYWxVbml0VHlwZTo6RnJhZ21lbnRhdGlvblVuaXQ7CiAgICAgICAgbGV0IG5hbF9oZWFkZXIgPSBuYWxfaGVhZGVyLnNlcmlhbGl6ZSgpOwoKICAgICAgICBsZXQgbmFsX3BheWxvYWQgPSAmbmFsdVsxLi5dOwoKICAgICAgICBsZXQgbXV0IG5hbF9mcmFnbWVudHMgPSBuYWxfcGF5bG9hZAogICAgICAgICAgICAuY2h1bmtzKG10dSAtIE5hbEhlYWRlcjo6U0laRSAtIEZ1SGVhZGVyOjpTSVpFKQogICAgICAgICAgICAucGVla2FibGUoKTsKCiAgICAgICAgbGV0IG11dCBwYWNrZXRzID0gVmVjOjp3aXRoX2NhcGFjaXR5KG5hbHUubGVuKCkgLyBtdHUpOwogICAgICAgIGxldCBtdXQgaXNfZmlyc3QgPSB0cnVlOwogICAgICAgIHdoaWxlIGxldCBTb21lKG5hbF9mcmFnbWVudCkgPSBuYWxfZnJhZ21lbnRzLm5leHQoKSB7CiAgICAgICAgICAgIGxldCBtdXQgZnVfaGVhZGVyID0gRnVIZWFkZXIgewogICAgICAgICAgICAgICAgc3RhcnQ6IGZhbHNlLAogICAgICAgICAgICAgICAgZW5kOiBmYWxzZSwKICAgICAgICAgICAgICAgIHJlc2VydmVkX2JpdDogZmFsc2UsCiAgICAgICAgICAgICAgICBuYWxfdW5pdF90eXBlLAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgaWYgaXNfZmlyc3QgewogICAgICAgICAgICAgICAgZnVfaGVhZGVyLnN0YXJ0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlzX2ZpcnN0ID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgbmFsX2ZyYWdtZW50cy5wZWVrKCkuaXNfbm9uZSgpIHsKICAgICAgICAgICAgICAgIGZ1X2hlYWRlci5lbmQgPSB0cnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZXQgbXV0IHBhY2tldCA9CiAgICAgICAgICAgICAgICBCeXRlc011dDo6d2l0aF9jYXBhY2l0eShOYWxIZWFkZXI6OlNJWkUgKyBGdUhlYWRlcjo6U0laRSArIG5hbF9mcmFnbWVudC5sZW4oKSk7CgogICAgICAgICAgICBwYWNrZXQuZXh0ZW5kX2Zyb21fc2xpY2UobmFsX2hlYWRlci5hc19zbGljZSgpKTsKICAgICAgICAgICAgcGFja2V0LmV4dGVuZF9mcm9tX3NsaWNlKCZmdV9oZWFkZXIuc2VyaWFsaXplKCkpOwogICAgICAgICAgICBwYWNrZXQuZXh0ZW5kX2Zyb21fc2xpY2UobmFsX2ZyYWdtZW50KTsKCiAgICAgICAgICAgIHBhY2tldHMucHVzaChwYWNrZXQuZnJlZXplKCkpOwogICAgICAgIH0KCiAgICAgICAgcGFja2V0cwogICAgfQp9CgppbXBsIFBheWxvYWRlciBmb3IgSDI2NFBheWxvYWRlciB7CiAgICBmbiBwYXlsb2FkKCZtdXQgc2VsZiwgbXR1OiB1c2l6ZSwgYjogJkJ5dGVzKSAtPiBSZXN1bHQ8VmVjPEJ5dGVzPiwgcnRwOjpFcnJvcj4gewogICAgICAgIGlmIGIubGVuKCkgPCBOYWxIZWFkZXI6OlNJWkUgewogICAgICAgICAgICByZXR1cm4gRXJyKHJ0cDo6RXJyb3I6OkVyckJ1ZmZlclRvb1NtYWxsKTsKICAgICAgICB9CgogICAgICAgIGxldCBuYWxfaGVhZGVyID0gTmFsSGVhZGVyOjpwYXJzZShbYlswXV0pOwoKICAgICAgICBtYXRjaCBuYWxfaGVhZGVyLm5hbF91bml0X3R5cGUgewogICAgICAgICAgICBOYWxVbml0VHlwZTo6QWNjZXNzVW5pdERlbGltaXRlciB8IE5hbFVuaXRUeXBlOjpGaWxsZXJEYXRhID0+IHsKICAgICAgICAgICAgICAgIHJldHVybiBPayh2ZWMhW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIE5hbFVuaXRUeXBlOjpQcHMgPT4gewogICAgICAgICAgICAgICAgc2VsZi5wcHNfbmFsdSA9IFNvbWUoYi5jbG9uZSgpKTsKICAgICAgICAgICAgICAgIHJldHVybiBPayh2ZWMhW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIE5hbFVuaXRUeXBlOjpTcHMgPT4gewogICAgICAgICAgICAgICAgc2VsZi5zcHNfbmFsdSA9IFNvbWUoYi5jbG9uZSgpKTsKICAgICAgICAgICAgICAgIHJldHVybiBPayh2ZWMhW10pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIF8gPT4ge30KICAgICAgICB9CgogICAgICAgIGxldCBtdXQgcGFja2V0cyA9IHZlYyFbXTsKCiAgICAgICAgaWYgbGV0IChTb21lKHBwcyksIFNvbWUoc3BzKSkgPSAoc2VsZi5wcHNfbmFsdS5hc19yZWYoKSwgc2VsZi5zcHNfbmFsdS5hc19yZWYoKSkgewogICAgICAgICAgICBsZXQgc3RhcF9hID0gU2VsZjo6YnVpbGRfc3RhcF9hX3BhY2tldCgmW3NwcywgcHBzXSk7CgogICAgICAgICAgICBpZiBzdGFwX2EubGVuKCkgPj0gbXR1IHsKICAgICAgICAgICAgICAgIHJldHVybiBPayh2ZWMhW10pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBzZWxmLnBwc19uYWx1LnRha2UoKTsKICAgICAgICAgICAgc2VsZi5zcHNfbmFsdS50YWtlKCk7CgogICAgICAgICAgICBwYWNrZXRzLnB1c2goc3RhcF9hLmZyZWV6ZSgpKTsKICAgICAgICB9CgogICAgICAgIGlmIGIubGVuKCkgPD0gbXR1IHsKICAgICAgICAgICAgcGFja2V0cy5wdXNoKFNlbGY6OmJ1aWxkX3NpbmdsZV9uYWwoYi5jbG9uZSgpKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcGFja2V0cy5leHRlbmQoU2VsZjo6YnVpbGRfZnJhZ21lbnRlZF9wYWNrZXRzKGIsIG5hbF9oZWFkZXIsIG10dSkpOwogICAgICAgIH0KCiAgICAgICAgT2socGFja2V0cykKICAgIH0KCiAgICBmbiBjbG9uZV90bygmc2VsZikgLT4gQm94PGR5biBQYXlsb2FkZXIgKyBTZW5kICsgU3luYz4gewogICAgICAgIEJveDo6bmV3KHNlbGYuY2xvbmUoKSkKICAgIH0KfQo="},{"path":"streamer/src/transport/webrtc/video/h264/reader.rs","sha256":"eed8dba8311c801303b1a71230710d59e637a6510092123676f8722724cab27f","contentBase64":"dXNlIHN0ZDo6aW86OntzZWxmLCBSZWFkfTsKCnVzZSBjcmF0ZTo6dHJhbnNwb3J0Ojp3ZWJydGM6OnZpZGVvOjp7CiAgICBhbm5leGI6OkFubmV4QlNwbGl0dGVyLAogICAgaDI2NDo6e05hbCwgTmFsSGVhZGVyfSwKfTsKCnB1YiBzdHJ1Y3QgSDI2NFJlYWRlcjxSOiBSZWFkPiB7CiAgICBhbm5leF9iOiBBbm5leEJTcGxpdHRlcjxSPiwKfQoKaW1wbDxSPiBIMjY0UmVhZGVyPFI+CndoZXJlCiAgICBSOiBSZWFkLAp7CiAgICBwdWIgZm4gbmV3KHJlYWRlcjogUiwgY2FwYWNpdHk6IHVzaXplKSAtPiBTZWxmIHsKICAgICAgICBTZWxmIHsKICAgICAgICAgICAgYW5uZXhfYjogQW5uZXhCU3BsaXR0ZXI6Om5ldyhyZWFkZXIsIGNhcGFjaXR5KSwKICAgICAgICB9CiAgICB9CgogICAgcHViIGZuIG5leHRfbmFsKCZtdXQgc2VsZikgLT4gUmVzdWx0PE9wdGlvbjxOYWw+LCBpbzo6RXJyb3I+IHsKICAgICAgICBpZiBsZXQgU29tZShhbm5leF9iKSA9IHNlbGYuYW5uZXhfYi5uZXh0KCk/IHsKICAgICAgICAgICAgbGV0IGhlYWRlcl9yYW5nZSA9IGFubmV4X2IucGF5bG9hZF9yYW5nZS5zdGFydC4uKGFubmV4X2IucGF5bG9hZF9yYW5nZS5zdGFydCArIDEpOwoKICAgICAgICAgICAgbGV0IG11dCBoZWFkZXIgPSBbMHU4OyAxXTsKICAgICAgICAgICAgaGVhZGVyLmNvcHlfZnJvbV9zbGljZSgmYW5uZXhfYi5mdWxsW2hlYWRlcl9yYW5nZS5jbG9uZSgpXSk7CiAgICAgICAgICAgIGxldCBoZWFkZXIgPSBOYWxIZWFkZXI6OnBhcnNlKGhlYWRlcik7CgogICAgICAgICAgICBsZXQgcGF5bG9hZF9yYW5nZSA9IGhlYWRlcl9yYW5nZS5lbmQuLmFubmV4X2IucGF5bG9hZF9yYW5nZS5lbmQ7CgogICAgICAgICAgICBPayhTb21lKE5hbCB7CiAgICAgICAgICAgICAgICBwYXlsb2FkX3JhbmdlLAogICAgICAgICAgICAgICAgaGVhZGVyLAogICAgICAgICAgICAgICAgaGVhZGVyX3JhbmdlLAogICAgICAgICAgICAgICAgc3RhcnRfY29kZTogYW5uZXhfYi5zdGFydF9jb2RlLAogICAgICAgICAgICAgICAgc3RhcnRfY29kZV9yYW5nZTogYW5uZXhfYi5zdGFydF9jb2RlX3JhbmdlLAogICAgICAgICAgICAgICAgZnVsbDogYW5uZXhfYi5mdWxsLAogICAgICAgICAgICB9KSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBPayhOb25lKQogICAgICAgIH0KICAgIH0KCiAgICBwdWIgZm4gcmVzZXQoJm11dCBzZWxmLCBuZXdfcmVhZGVyOiBSKSB7CiAgICAgICAgc2VsZi5hbm5leF9iLnJlc2V0KG5ld19yZWFkZXIpOwogICAgfQp9Cg=="},{"path":"streamer/src/transport/webrtc/video/h265/mod.rs","sha256":"3b1ea6b17154ca785119969c9a495ef1efbcfeebf79c4cbce5aa85e9df97404a","contentBase64":"Ly8hIFNwZWNpZmljYXRpb25zOgovLyEgLSBSVFAgUGF5bG9hZHMgd2l0aCBILjI2NTogaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM3Nzk4I3BhZ2UtMTMKLy8hIC0gSEVWQyAvIEguMjY1IHNwZWM6IGh0dHBzOi8vd3d3Lml0dS5pbnQvcmVjL1QtUkVDLUguMjY1LTIwMjMwOS1TL2VuCi8vISAtIEhFVkMgaW4gV2ViUlRDOiBodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LWlldGYtYXZ0Y29yZS1oZXZjLXdlYnJ0Yy0wNiNwYWdlLTQKLy8hIC0gUGlvbiBpc3N1ZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9waW9uL3dlYnJ0Yy9pc3N1ZXMvMzEzNwoKcHViIG1vZCBwYXlsb2FkZXI7CgpwdWIgbW9kIHJlYWRlcjsK"},{"path":"streamer/src/transport/webrtc/video/h265/payloader.rs","sha256":"edd48b8b02a8ce97ef5f589298855dba970cea675fa0e468d6e7a7a414a1a35e","contentBase64":"dXNlIGJ5dGVzOjp7Qnl0ZXMsIEJ5dGVzTXV0fTsKdXNlIHdlYnJ0Yzo6cnRwOjp7c2VsZiwgcGFja2V0aXplcjo6UGF5bG9hZGVyfTsKCnVzZSBjcmF0ZTo6dHJhbnNwb3J0Ojp3ZWJydGM6OnZpZGVvOjpoMjY1OjpyZWFkZXI6OntOYWxIZWFkZXIsIE5hbFVuaXRUeXBlfTsKCiNbZGVyaXZlKERlYnVnLCBDbG9uZSwgQ29weSldCnB1YiBzdHJ1Y3QgRnVIZWFkZXIgewogICAgc3RhcnQ6IGJvb2wsCiAgICBlbmQ6IGJvb2wsCiAgICBuYWxfdW5pdF90eXBlOiBOYWxVbml0VHlwZSwKfQoKaW1wbCBGdUhlYWRlciB7CiAgICBwdWIgY29uc3QgU0laRTogdXNpemUgPSAxOwoKICAgIHB1YiBmbiBzZXJpYWxpemUoJnNlbGYpIC0+IHU4IHsKICAgICAgICBsZXQgbXV0IGhlYWRlciA9IDA7CgogICAgICAgIGlmIHNlbGYuc3RhcnQgewogICAgICAgICAgICBoZWFkZXIgfD0gMGIxMDAwXzAwMDA7CiAgICAgICAgfQogICAgICAgIGlmIHNlbGYuZW5kIHsKICAgICAgICAgICAgaGVhZGVyIHw9IDBiMDEwMF8wMDAwOwogICAgICAgIH0KCiAgICAgICAgaGVhZGVyIHw9IChzZWxmLm5hbF91bml0X3R5cGUgYXMgdTgpICYgMGIwMDExXzExMTE7CgogICAgICAgIGhlYWRlcgogICAgfQp9CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIERlZmF1bHQpXQpwdWIgc3RydWN0IEgyNjVQYXlsb2FkZXIgewogICAgdnBzX25hbHU6IE9wdGlvbjxCeXRlcz4sCiAgICBzcHNfbmFsdTogT3B0aW9uPEJ5dGVzPiwKICAgIHBwc19uYWx1OiBPcHRpb248Qnl0ZXM+LAp9CgppbXBsIEgyNjVQYXlsb2FkZXIgewogICAgZm4gYnVpbGRfc2luZ2xlX3BhY2tldChuYWx1OiBCeXRlcykgLT4gQnl0ZXMgewogICAgICAgIG5hbHUKICAgIH0KCiAgICBmbiBidWlsZF9mcmFnbWVudGVkX3BhY2tldHMobXV0IG5hbF9oZWFkZXI6IE5hbEhlYWRlciwgbmFsdTogJkJ5dGVzLCBtdHU6IHVzaXplKSAtPiBWZWM8Qnl0ZXM+IHsKICAgICAgICBsZXQgbmFsX3VuaXRfdHlwZSA9IG5hbF9oZWFkZXIubmFsX3VuaXRfdHlwZTsKICAgICAgICBuYWxfaGVhZGVyLm5hbF91bml0X3R5cGUgPSBOYWxVbml0VHlwZTo6RnJhZ21lbnRhdGlvblVuaXQ7CiAgICAgICAgbGV0IG5hbF9oZWFkZXIgPSBuYWxfaGVhZGVyLnNlcmlhbGl6ZSgpOwoKICAgICAgICBsZXQgbmFsX3BheWxvYWQgPSAmbmFsdVsyLi5dOwoKICAgICAgICBsZXQgbXV0IG5hbF9mcmFnbWVudHMgPSBuYWxfcGF5bG9hZAogICAgICAgICAgICAuY2h1bmtzKG10dSAtIE5hbEhlYWRlcjo6U0laRSAtIEZ1SGVhZGVyOjpTSVpFKQogICAgICAgICAgICAucGVla2FibGUoKTsKCiAgICAgICAgbGV0IG11dCBwYWNrZXRzID0gVmVjOjp3aXRoX2NhcGFjaXR5KChuYWxfcGF5bG9hZC5sZW4oKSAvIG10dSkgKyAxKTsKICAgICAgICBsZXQgbXV0IGlzX2ZpcnN0ID0gdHJ1ZTsKICAgICAgICB3aGlsZSBsZXQgU29tZShuYWxfZnJhZ21lbnQpID0gbmFsX2ZyYWdtZW50cy5uZXh0KCkgewogICAgICAgICAgICBsZXQgbXV0IGZ1X2hlYWRlciA9IEZ1SGVhZGVyIHsKICAgICAgICAgICAgICAgIHN0YXJ0OiBmYWxzZSwKICAgICAgICAgICAgICAgIGVuZDogZmFsc2UsCiAgICAgICAgICAgICAgICBuYWxfdW5pdF90eXBlLAogICAgICAgICAgICB9OwoKICAgICAgICAgICAgaWYgaXNfZmlyc3QgewogICAgICAgICAgICAgICAgZnVfaGVhZGVyLnN0YXJ0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlzX2ZpcnN0ID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgbmFsX2ZyYWdtZW50cy5wZWVrKCkuaXNfbm9uZSgpIHsKICAgICAgICAgICAgICAgIGZ1X2hlYWRlci5lbmQgPSB0cnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsZXQgbXV0IHBhY2tldCA9CiAgICAgICAgICAgICAgICBCeXRlc011dDo6d2l0aF9jYXBhY2l0eShOYWxIZWFkZXI6OlNJWkUgKyBGdUhlYWRlcjo6U0laRSArIG5hbF9mcmFnbWVudC5sZW4oKSk7CgogICAgICAgICAgICBwYWNrZXQuZXh0ZW5kX2Zyb21fc2xpY2UobmFsX2hlYWRlci5hc19zbGljZSgpKTsKICAgICAgICAgICAgcGFja2V0LmV4dGVuZF9mcm9tX3NsaWNlKCZbZnVfaGVhZGVyLnNlcmlhbGl6ZSgpXSk7CiAgICAgICAgICAgIHBhY2tldC5leHRlbmRfZnJvbV9zbGljZShuYWxfZnJhZ21lbnQpOwoKICAgICAgICAgICAgcGFja2V0cy5wdXNoKHBhY2tldC5mcmVlemUoKSk7CiAgICAgICAgfQoKICAgICAgICBwYWNrZXRzCiAgICB9CgogICAgZm4gYnVpbGRfYWdncmVnYXRpb25fcGFja2V0KG5hbHVzOiAmWyZCeXRlc10sIG10dTogdXNpemUpIC0+IEJ5dGVzIHsKICAgICAgICBsZXQgbXV0IGFnZ3JfbmFsX2hlYWRlciA9IE5hbEhlYWRlciB7CiAgICAgICAgICAgIGZvcmJpZGRlbl96ZXJvX2JpdDogZmFsc2UsCiAgICAgICAgICAgIG51aF9sYXllcl9pZDogdTg6Ok1BWCwKICAgICAgICAgICAgbnVoX3RlbXBvcmFsX2lkX3BsdXMxOiB1ODo6TUFYLAogICAgICAgICAgICBuYWxfdW5pdF90eXBlOiBOYWxVbml0VHlwZTo6QWdncmVnYXRpb25Vbml0LAogICAgICAgIH07CgogICAgICAgIGZvciBuYWx1IGluIG5hbHVzIHsKICAgICAgICAgICAgbGV0IG11dCBuYWxfaGVhZGVyID0gWzB1ODsgMl07CiAgICAgICAgICAgIG5hbF9oZWFkZXIuY29weV9mcm9tX3NsaWNlKCZuYWx1WzAuLjJdKTsKICAgICAgICAgICAgbGV0IGhlYWRlciA9IE5hbEhlYWRlcjo6cGFyc2UobmFsX2hlYWRlcik7CgogICAgICAgICAgICBpZiBoZWFkZXIuZm9yYmlkZGVuX3plcm9fYml0IHsKICAgICAgICAgICAgICAgIGFnZ3JfbmFsX2hlYWRlci5mb3JiaWRkZW5femVyb19iaXQgPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIGhlYWRlci5udWhfbGF5ZXJfaWQgPCBhZ2dyX25hbF9oZWFkZXIubnVoX2xheWVyX2lkIHsKICAgICAgICAgICAgICAgIGFnZ3JfbmFsX2hlYWRlci5udWhfbGF5ZXJfaWQgPSBoZWFkZXIubnVoX2xheWVyX2lkOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIGhlYWRlci5udWhfdGVtcG9yYWxfaWRfcGx1czEgPCBhZ2dyX25hbF9oZWFkZXIubnVoX3RlbXBvcmFsX2lkX3BsdXMxIHsKICAgICAgICAgICAgICAgIGFnZ3JfbmFsX2hlYWRlci5udWhfdGVtcG9yYWxfaWRfcGx1czEgPSBoZWFkZXIubnVoX3RlbXBvcmFsX2lkX3BsdXMxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBsZXQgbXV0IGFnZ3JfcGFja2V0ID0gQnl0ZXNNdXQ6OndpdGhfY2FwYWNpdHkobXR1KTsKCiAgICAgICAgbGV0IGFnZ3JfbmFsX2hlYWRlciA9IGFnZ3JfbmFsX2hlYWRlci5zZXJpYWxpemUoKTsKICAgICAgICBhZ2dyX3BhY2tldC5leHRlbmRfZnJvbV9zbGljZShhZ2dyX25hbF9oZWFkZXIuYXNfc2xpY2UoKSk7CgogICAgICAgIGZvciBuYWx1IGluIG5hbHVzIHsKICAgICAgICAgICAgYWdncl9wYWNrZXQuZXh0ZW5kX2Zyb21fc2xpY2UodTE2Ojp0b19iZV9ieXRlcyhuYWx1LmxlbigpIGFzIHUxNikuYXNfc2xpY2UoKSk7CiAgICAgICAgICAgIGFnZ3JfcGFja2V0LmV4dGVuZF9mcm9tX3NsaWNlKG5hbHUpOwogICAgICAgIH0KCiAgICAgICAgYWdncl9wYWNrZXQuZnJlZXplKCkKICAgIH0KfQoKaW1wbCBQYXlsb2FkZXIgZm9yIEgyNjVQYXlsb2FkZXIgewogICAgZm4gcGF5bG9hZCgmbXV0IHNlbGYsIG10dTogdXNpemUsIGI6ICZCeXRlcykgLT4gUmVzdWx0PFZlYzxCeXRlcz4sIHJ0cDo6RXJyb3I+IHsKICAgICAgICBpZiBiLmxlbigpIDwgMiB7CiAgICAgICAgICAgIHJldHVybiBFcnIocnRwOjpFcnJvcjo6RXJyQnVmZmVyVG9vU21hbGwpOwogICAgICAgIH0KCiAgICAgICAgLy8gUGFyc2UgaGVhZGVyCiAgICAgICAgbGV0IG11dCBoZWFkZXIgPSBbMHU4OyAyXTsKICAgICAgICBoZWFkZXIuY29weV9mcm9tX3NsaWNlKCZiWzAuLjJdKTsKICAgICAgICBsZXQgaGVhZGVyID0gTmFsSGVhZGVyOjpwYXJzZShoZWFkZXIpOwoKICAgICAgICBpZiBoZWFkZXIubmFsX3VuaXRfdHlwZSA9PSBOYWxVbml0VHlwZTo6VnBzTnV0IHsKICAgICAgICAgICAgc2VsZi52cHNfbmFsdS5yZXBsYWNlKGIuY2xvbmUoKSk7CiAgICAgICAgfSBlbHNlIGlmIGhlYWRlci5uYWxfdW5pdF90eXBlID09IE5hbFVuaXRUeXBlOjpTcHNOdXQgewogICAgICAgICAgICBzZWxmLnNwc19uYWx1LnJlcGxhY2UoYi5jbG9uZSgpKTsKICAgICAgICB9IGVsc2UgaWYgaGVhZGVyLm5hbF91bml0X3R5cGUgPT0gTmFsVW5pdFR5cGU6OlBwc051dCB7CiAgICAgICAgICAgIHNlbGYucHBzX25hbHUucmVwbGFjZShiLmNsb25lKCkpOwogICAgICAgIH0KCiAgICAgICAgaWYgbGV0IChTb21lKHZwc19uYWx1KSwgU29tZShzcHNfbmFsdSksIFNvbWUocHBzX25hbHUpKSA9CiAgICAgICAgICAgICgmc2VsZi52cHNfbmFsdSwgJnNlbGYuc3BzX25hbHUsICZzZWxmLnBwc19uYWx1KQogICAgICAgIHsKICAgICAgICAgICAgbGV0IHBhY2tldCA9IFNlbGY6OmJ1aWxkX2FnZ3JlZ2F0aW9uX3BhY2tldCgmW3Zwc19uYWx1LCBzcHNfbmFsdSwgcHBzX25hbHVdLCBtdHUpOwoKICAgICAgICAgICAgaWYgcGFja2V0LmxlbigpIDw9IG10dSB7CiAgICAgICAgICAgICAgICBzZWxmLnZwc19uYWx1LnRha2UoKTsKICAgICAgICAgICAgICAgIHNlbGYuc3BzX25hbHUudGFrZSgpOwogICAgICAgICAgICAgICAgc2VsZi5wcHNfbmFsdS50YWtlKCk7CgogICAgICAgICAgICAgICAgcmV0dXJuIE9rKHZlYyFbcGFja2V0XSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBsZXQgcGFja2V0cyA9IHZlYyFbCiAgICAgICAgICAgICAgICAgICAgU2VsZjo6YnVpbGRfc2luZ2xlX3BhY2tldCh2cHNfbmFsdS5jbG9uZSgpKSwKICAgICAgICAgICAgICAgICAgICBTZWxmOjpidWlsZF9zaW5nbGVfcGFja2V0KHNwc19uYWx1LmNsb25lKCkpLAogICAgICAgICAgICAgICAgICAgIFNlbGY6OmJ1aWxkX3NpbmdsZV9wYWNrZXQocHBzX25hbHUuY2xvbmUoKSksCiAgICAgICAgICAgICAgICBdOwoKICAgICAgICAgICAgICAgIHNlbGYudnBzX25hbHUudGFrZSgpOwogICAgICAgICAgICAgICAgc2VsZi5zcHNfbmFsdS50YWtlKCk7CiAgICAgICAgICAgICAgICBzZWxmLnBwc19uYWx1LnRha2UoKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gT2socGFja2V0cyk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgbWF0Y2hlcyEoCiAgICAgICAgICAgIGhlYWRlci5uYWxfdW5pdF90eXBlLAogICAgICAgICAgICBOYWxVbml0VHlwZTo6VnBzTnV0IHwgTmFsVW5pdFR5cGU6OlNwc051dCB8IE5hbFVuaXRUeXBlOjpQcHNOdXQKICAgICAgICApIHsKICAgICAgICAgICAgcmV0dXJuIE9rKHZlYyFbXSk7CiAgICAgICAgfQoKICAgICAgICBpZiBiLmxlbigpIDw9IG10dSB7CiAgICAgICAgICAgIE9rKHZlYyFbU2VsZjo6YnVpbGRfc2luZ2xlX3BhY2tldChiLmNsb25lKCkpXSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBPayhTZWxmOjpidWlsZF9mcmFnbWVudGVkX3BhY2tldHMoaGVhZGVyLCBiLCBtdHUpKQogICAgICAgIH0KICAgIH0KCiAgICBmbiBjbG9uZV90bygmc2VsZikgLT4gQm94PGR5biBQYXlsb2FkZXIgKyBTZW5kICsgU3luYz4gewogICAgICAgIEJveDo6bmV3KHNlbGYuY2xvbmUoKSkKICAgIH0KfQo="},{"path":"streamer/src/transport/webrtc/video/h265/reader.rs","sha256":"785f70ac8a666e3b77bc09fcbd31103cca4e692015dec26476264379f494e5b3","contentBase64":"dXNlIHN0ZDo6ewogICAgaW86OntzZWxmLCBSZWFkfSwKICAgIG9wczo6UmFuZ2UsCn07Cgp1c2UgYnl0ZXM6OkJ5dGVzTXV0Owp1c2UgbnVtOjpGcm9tUHJpbWl0aXZlOwp1c2UgbnVtX2Rlcml2ZTo6RnJvbVByaW1pdGl2ZTsKCnVzZSBjcmF0ZTo6dHJhbnNwb3J0Ojp3ZWJydGM6OnZpZGVvOjphbm5leGI6OntBbm5leEJTcGxpdHRlciwgQW5uZXhCU3RhcnRDb2RlfTsKCiNbYWxsb3codW51c2VkKV0KcHViIHN0cnVjdCBOYWwgewogICAgcHViIHBheWxvYWRfcmFuZ2U6IFJhbmdlPHVzaXplPiwKICAgIHB1YiBoZWFkZXI6IE5hbEhlYWRlciwKICAgIHB1YiBoZWFkZXJfcmFuZ2U6IFJhbmdlPHVzaXplPiwKICAgIHB1YiBzdGFydF9jb2RlOiBBbm5leEJTdGFydENvZGUsCiAgICBwdWIgc3RhcnRfY29kZV9yYW5nZTogUmFuZ2U8dXNpemU+LAogICAgcHViIGZ1bGw6IEJ5dGVzTXV0LAp9CgojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIENvcHkpXQpwdWIgc3RydWN0IE5hbEhlYWRlciB7CiAgICBwdWIgZm9yYmlkZGVuX3plcm9fYml0OiBib29sLAogICAgcHViIG5hbF91bml0X3R5cGU6IE5hbFVuaXRUeXBlLAogICAgcHViIG51aF9sYXllcl9pZDogdTgsCiAgICBwdWIgbnVoX3RlbXBvcmFsX2lkX3BsdXMxOiB1OCwKfQoKaW1wbCBOYWxIZWFkZXIgewogICAgcHViIGNvbnN0IFNJWkU6IHVzaXplID0gMjsKCiAgICBwdWIgZm4gcGFyc2UoaGVhZGVyOiBbdTg7IDJdKSAtPiBTZWxmIHsKICAgICAgICAvLyBGOiAxIGJpdAogICAgICAgIGxldCBmb3JiaWRkZW5femVyb19iaXQgPSAoaGVhZGVyWzBdICYgMGIxMDAwXzAwMDApICE9IDA7CgogICAgICAgIC8vIFR5cGU6IDYgYml0cwogICAgICAgIGxldCBuYWxfdW5pdF90eXBlID0gKGhlYWRlclswXSAmIDBiMDExMV8xMTEwKSA+PiAxOwoKICAgICAgICAvLyBMYXllcklkOiA2IGJpdHMKICAgICAgICBsZXQgbnVoX2xheWVyX2lkID0gKChoZWFkZXJbMF0gJiAwYjAwMDBfMDAwMSkgPDwgNSkgfCAoKGhlYWRlclsxXSAmIDBiMTExMV8xMDAwKSA+PiAzKTsKCiAgICAgICAgLy8gVElEOiAzIGJpdHMKICAgICAgICBsZXQgbnVoX3RlbXBvcmFsX2lkX3BsdXMxID0gaGVhZGVyWzFdICYgMGIwMDAwXzAxMTE7CgogICAgICAgIFNlbGYgewogICAgICAgICAgICBmb3JiaWRkZW5femVyb19iaXQsCiAgICAgICAgICAgIC8vIEl0J3MgaW1wb3NzaWJsZSBmb3IgdGhpcyB0byBmYWlsIGJlY2F1c2Ugd2Ugb25seSBoYXZlIDYgYml0cyBsaWtlIHRoZSBlbnVtCiAgICAgICAgICAgICNbYWxsb3coY2xpcHB5Ojp1bndyYXBfdXNlZCldCiAgICAgICAgICAgIG5hbF91bml0X3R5cGU6IE5hbFVuaXRUeXBlOjpmcm9tX3U4KG5hbF91bml0X3R5cGUpLnVud3JhcCgpLAogICAgICAgICAgICBudWhfbGF5ZXJfaWQsCiAgICAgICAgICAgIG51aF90ZW1wb3JhbF9pZF9wbHVzMSwKICAgICAgICB9CiAgICB9CgogICAgI1thbGxvdyh1bnVzZWQpXQogICAgcHViIGZuIHNlcmlhbGl6ZSgmc2VsZikgLT4gW3U4OyAyXSB7CiAgICAgICAgbGV0IG11dCBoZWFkZXIgPSBbMHU4OyAyXTsKCiAgICAgICAgaWYgc2VsZi5mb3JiaWRkZW5femVyb19iaXQgewogICAgICAgICAgICBoZWFkZXJbMF0gfD0gMGIxMDAwXzAwMDA7CiAgICAgICAgfQoKICAgICAgICAvLyBUeXBlOiA2IGJpdHMKICAgICAgICBoZWFkZXJbMF0gfD0gKHNlbGYubmFsX3VuaXRfdHlwZSBhcyB1OCAmIDBiMDAxMV8xMTExKSA8PCAxOwoKICAgICAgICAvLyBMYXllcklkOiA2IGJpdHMKICAgICAgICBoZWFkZXJbMF0gfD0gKHNlbGYubnVoX2xheWVyX2lkID4+IDUpICYgMGIwMDAwXzAwMDE7CiAgICAgICAgaGVhZGVyWzFdIHw9IChzZWxmLm51aF9sYXllcl9pZCAmIDBiMDAwMV8xMTExKSA8PCAzOwoKICAgICAgICAvLyBUSUQ6IDMgYml0cwogICAgICAgIGhlYWRlclsxXSB8PSBzZWxmLm51aF90ZW1wb3JhbF9pZF9wbHVzMSAmIDBiMDAwMF8wMTExOwoKICAgICAgICBoZWFkZXIKICAgIH0KfQoKLy8vIFNlY3Rpb24gNy40LjIgaW4gSEVWQy9ILjI2NSBzcGVjaWZpY2F0aW9uIChUYWJsZSA3LTEpLgojW3JlcHIodTgpXQojW2Rlcml2ZShEZWJ1ZywgQ2xvbmUsIENvcHksIFBhcnRpYWxFcSwgRXEsIEZyb21QcmltaXRpdmUpXQpwdWIgZW51bSBOYWxVbml0VHlwZSB7CiAgICAvLyBWQ0wgTkFMIHVuaXRzCiAgICBUcmFpbE4gPSAwLAogICAgVHJhaWxSID0gMSwKICAgIFRzYU4gPSAyLAogICAgVHNhUiA9IDMsCiAgICBTdHNhTiA9IDQsCiAgICBTdHNhUiA9IDUsCiAgICBSYWRsTiA9IDYsCiAgICBSYWRsUiA9IDcsCiAgICBSYXNsTiA9IDgsCiAgICBSYXNsUiA9IDksCgogICAgUnN2VmNsTjEwID0gMTAsCiAgICBSc3ZWY2xSMTEgPSAxMSwKICAgIFJzdlZjbE4xMiA9IDEyLAogICAgUnN2VmNsUjEzID0gMTMsCiAgICBSc3ZWY2xOMTQgPSAxNCwKICAgIFJzdlZjbFIxNSA9IDE1LAoKICAgIEJsYVdMcCA9IDE2LAogICAgQmxhV1JhZGwgPSAxNywKICAgIEJsYU5McCA9IDE4LAogICAgSWRyV1JhZGwgPSAxOSwKICAgIElkck5McCA9IDIwLAogICAgQ3JhTnV0ID0gMjEsCgogICAgUnN2SXJhcFZjbDIyID0gMjIsCiAgICBSc3ZJcmFwVmNsMjMgPSAyMywKCiAgICBSc3ZWY2wyNCA9IDI0LAogICAgUnN2VmNsMjUgPSAyNSwKICAgIFJzdlZjbDI2ID0gMjYsCiAgICBSc3ZWY2wyNyA9IDI3LAogICAgUnN2VmNsMjggPSAyOCwKICAgIFJzdlZjbDI5ID0gMjksCiAgICBSc3ZWY2wzMCA9IDMwLAogICAgUnN2VmNsMzEgPSAzMSwKCiAgICAvLyBOb24tVkNMIE5BTCB1bml0cwogICAgVnBzTnV0ID0gMzIsCiAgICBTcHNOdXQgPSAzMywKICAgIFBwc051dCA9IDM0LAogICAgQXVkTnV0ID0gMzUsCiAgICBFb3NOdXQgPSAzNiwKICAgIEVvYk51dCA9IDM3LAogICAgRmROdXQgPSAzOCwKICAgIFByZWZpeFNlaU51dCA9IDM5LAogICAgU3VmZml4U2VpTnV0ID0gNDAsCgogICAgUnN2TnZjbDQxID0gNDEsCiAgICBSc3ZOdmNsNDIgPSA0MiwKICAgIFJzdk52Y2w0MyA9IDQzLAogICAgUnN2TnZjbDQ0ID0gNDQsCiAgICBSc3ZOdmNsNDUgPSA0NSwKICAgIFJzdk52Y2w0NiA9IDQ2LAogICAgUnN2TnZjbDQ3ID0gNDcsCgogICAgQWdncmVnYXRpb25Vbml0ID0gNDgsCiAgICBGcmFnbWVudGF0aW9uVW5pdCA9IDQ5LAogICAgVW5zcGVjNTAgPSA1MCwKICAgIFVuc3BlYzUxID0gNTEsCiAgICBVbnNwZWM1MiA9IDUyLAogICAgVW5zcGVjNTMgPSA1MywKICAgIFVuc3BlYzU0ID0gNTQsCiAgICBVbnNwZWM1NSA9IDU1LAogICAgVW5zcGVjNTYgPSA1NiwKICAgIFVuc3BlYzU3ID0gNTcsCiAgICBVbnNwZWM1OCA9IDU4LAogICAgVW5zcGVjNTkgPSA1OSwKICAgIFVuc3BlYzYwID0gNjAsCiAgICBVbnNwZWM2MSA9IDYxLAogICAgVW5zcGVjNjIgPSA2MiwKICAgIFVuc3BlYzYzID0gNjMsCn0KCnB1YiBzdHJ1Y3QgSDI2NVJlYWRlcjxSOiBSZWFkPiB7CiAgICBhbm5leF9iOiBBbm5leEJTcGxpdHRlcjxSPiwKfQoKaW1wbDxSPiBIMjY1UmVhZGVyPFI+CndoZXJlCiAgICBSOiBSZWFkLAp7CiAgICBwdWIgZm4gbmV3KHJlYWRlcjogUiwgY2FwYWNpdHk6IHVzaXplKSAtPiBTZWxmIHsKICAgICAgICBTZWxmIHsKICAgICAgICAgICAgYW5uZXhfYjogQW5uZXhCU3BsaXR0ZXI6Om5ldyhyZWFkZXIsIGNhcGFjaXR5KSwKICAgICAgICB9CiAgICB9CgogICAgLy8vIFJlYWQgdGhlIG5leHQgTkFMIHVuaXQgZnJvbSB0aGUgQW5uZXgtQiBzdHJlYW0uLgogICAgLy8vIFRoZSBCeXRlc011dCBjb250YWlucyB0aGUgYW5uZXgtYiBzdGFydCBjb2RlCiAgICBwdWIgZm4gbmV4dF9uYWwoJm11dCBzZWxmKSAtPiBSZXN1bHQ8T3B0aW9uPE5hbD4sIGlvOjpFcnJvcj4gewogICAgICAgIGlmIGxldCBTb21lKGFubmV4X2IpID0gc2VsZi5hbm5leF9iLm5leHQoKT8gewogICAgICAgICAgICBsZXQgaGVhZGVyX3JhbmdlID0gYW5uZXhfYi5wYXlsb2FkX3JhbmdlLnN0YXJ0Li4oYW5uZXhfYi5wYXlsb2FkX3JhbmdlLnN0YXJ0ICsgMik7CgogICAgICAgICAgICBsZXQgbXV0IGhlYWRlciA9IFswdTg7IDJdOwogICAgICAgICAgICBoZWFkZXIuY29weV9mcm9tX3NsaWNlKCZhbm5leF9iLmZ1bGxbaGVhZGVyX3JhbmdlLmNsb25lKCldKTsKICAgICAgICAgICAgbGV0IGhlYWRlciA9IE5hbEhlYWRlcjo6cGFyc2UoaGVhZGVyKTsKCiAgICAgICAgICAgIGxldCBwYXlsb2FkX3JhbmdlID0gaGVhZGVyX3JhbmdlLmVuZC4uYW5uZXhfYi5wYXlsb2FkX3JhbmdlLmVuZDsKCiAgICAgICAgICAgIE9rKFNvbWUoTmFsIHsKICAgICAgICAgICAgICAgIHBheWxvYWRfcmFuZ2UsCiAgICAgICAgICAgICAgICBoZWFkZXIsCiAgICAgICAgICAgICAgICBoZWFkZXJfcmFuZ2UsCiAgICAgICAgICAgICAgICBzdGFydF9jb2RlOiBhbm5leF9iLnN0YXJ0X2NvZGUsCiAgICAgICAgICAgICAgICBzdGFydF9jb2RlX3JhbmdlOiBhbm5leF9iLnN0YXJ0X2NvZGVfcmFuZ2UsCiAgICAgICAgICAgICAgICBmdWxsOiBhbm5leF9iLmZ1bGwsCiAgICAgICAgICAgIH0pKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIE9rKE5vbmUpCiAgICAgICAgfQogICAgfQoKICAgIHB1YiBmbiByZXNldCgmbXV0IHNlbGYsIG5ld19yZWFkZXI6IFIpIHsKICAgICAgICBzZWxmLmFubmV4X2IucmVzZXQobmV3X3JlYWRlcik7CiAgICB9Cn0KCiNbY2ZnKHRlc3QpXQptb2QgdGVzdHMgewogICAgdXNlIHN1cGVyOjoqOwoKICAgICNbdGVzdF0KICAgIGZuIHRlc3RfcGFyc2VfZm9yYmlkZGVuX3plcm9fYml0KCkgewogICAgICAgIGxldCBoZWFkZXJfYnl0ZXMgPSBbMGIxMDAwMDAwMCwgMGIwMDAwMDAwMF07IC8vIGZvcmJpZGRlbl96ZXJvX2JpdCA9IDEKICAgICAgICBsZXQgbmFsID0gTmFsSGVhZGVyOjpwYXJzZShoZWFkZXJfYnl0ZXMpOwogICAgICAgIGFzc2VydCEobmFsLmZvcmJpZGRlbl96ZXJvX2JpdCk7CgogICAgICAgIGxldCBoZWFkZXJfYnl0ZXMgPSBbMGIwMDAwMDAwMCwgMGIwMDAwMDAwMF07IC8vIGZvcmJpZGRlbl96ZXJvX2JpdCA9IDAKICAgICAgICBsZXQgbmFsID0gTmFsSGVhZGVyOjpwYXJzZShoZWFkZXJfYnl0ZXMpOwogICAgICAgIGFzc2VydCEoIW5hbC5mb3JiaWRkZW5femVyb19iaXQpOwogICAgfQoKICAgICNbdGVzdF0KICAgIGZuIHRlc3RfcGFyc2VfbmFsX3VuaXRfdHlwZSgpIHsKICAgICAgICBmb3IgaSBpbiAwLi42NCB7CiAgICAgICAgICAgIGxldCBoZWFkZXJfYnl0ZXMgPSBbKGkgPDwgMSksIDBdOwogICAgICAgICAgICBsZXQgbmFsID0gTmFsSGVhZGVyOjpwYXJzZShoZWFkZXJfYnl0ZXMpOwogICAgICAgICAgICBhc3NlcnRfZXEhKG5hbC5uYWxfdW5pdF90eXBlIGFzIHU4LCBpKTsKICAgICAgICB9CiAgICB9CgogICAgI1t0ZXN0XQogICAgZm4gdGVzdF9wYXJzZV9sYXllcl9pZF9hbmRfdGlkKCkgewogICAgICAgIGxldCBoZWFkZXJfYnl0ZXMgPSBbMGIxMDAwMDAxMCwgMGIxMDEwMTEwMF07CiAgICAgICAgbGV0IG5hbCA9IE5hbEhlYWRlcjo6cGFyc2UoaGVhZGVyX2J5dGVzKTsKICAgICAgICBsZXQgZXhwZWN0ZWRfbGF5ZXJfaWQgPQogICAgICAgICAgICAoKGhlYWRlcl9ieXRlc1swXSAmIDBiMDAwMF8wMDAxKSA8PCA1KSB8ICgoaGVhZGVyX2J5dGVzWzFdICYgMGIxMTExXzEwMDApID4+IDMpOwogICAgICAgIGFzc2VydF9lcSEobmFsLm51aF9sYXllcl9pZCwgZXhwZWN0ZWRfbGF5ZXJfaWQpOwogICAgICAgIGxldCBleHBlY3RlZF90aWQgPSBoZWFkZXJfYnl0ZXNbMV0gJiAwYjAwMDBfMDExMTsKICAgICAgICBhc3NlcnRfZXEhKG5hbC5udWhfdGVtcG9yYWxfaWRfcGx1czEsIGV4cGVjdGVkX3RpZCk7CiAgICB9CgogICAgI1t0ZXN0XQogICAgZm4gdGVzdF9zZXJpYWxpemVfcm91bmRfdHJpcCgpIHsKICAgICAgICBsZXQgb3JpZ2luYWwgPSBOYWxIZWFkZXIgewogICAgICAgICAgICBmb3JiaWRkZW5femVyb19iaXQ6IHRydWUsCiAgICAgICAgICAgIG5hbF91bml0X3R5cGU6IE5hbFVuaXRUeXBlOjpUcmFpbE4sIC8vIGV4YW1wbGUgdmFyaWFudAogICAgICAgICAgICBudWhfbGF5ZXJfaWQ6IDB4MkEsCiAgICAgICAgICAgIG51aF90ZW1wb3JhbF9pZF9wbHVzMTogMHgwNSwKICAgICAgICB9OwogICAgICAgIGxldCBzZXJpYWxpemVkID0gb3JpZ2luYWwuc2VyaWFsaXplKCk7CiAgICAgICAgbGV0IHBhcnNlZCA9IE5hbEhlYWRlcjo6cGFyc2Uoc2VyaWFsaXplZCk7CiAgICAgICAgYXNzZXJ0X2VxIShwYXJzZWQuZm9yYmlkZGVuX3plcm9fYml0LCBvcmlnaW5hbC5mb3JiaWRkZW5femVyb19iaXQpOwogICAgICAgIGFzc2VydF9lcSEocGFyc2VkLm5hbF91bml0X3R5cGUgYXMgdTgsIG9yaWdpbmFsLm5hbF91bml0X3R5cGUgYXMgdTgpOwogICAgICAgIGFzc2VydF9lcSEocGFyc2VkLm51aF9sYXllcl9pZCwgb3JpZ2luYWwubnVoX2xheWVyX2lkKTsKICAgICAgICBhc3NlcnRfZXEhKHBhcnNlZC5udWhfdGVtcG9yYWxfaWRfcGx1czEsIG9yaWdpbmFsLm51aF90ZW1wb3JhbF9pZF9wbHVzMSk7CiAgICB9CgogICAgI1t0ZXN0XQogICAgZm4gdGVzdF9zZXJpYWxpemVfa25vd25fdmFsdWVzKCkgewogICAgICAgIGxldCBuYWwgPSBOYWxIZWFkZXIgewogICAgICAgICAgICBmb3JiaWRkZW5femVyb19iaXQ6IGZhbHNlLAogICAgICAgICAgICBuYWxfdW5pdF90eXBlOiBOYWxVbml0VHlwZTo6VHJhaWxSLAogICAgICAgICAgICBudWhfbGF5ZXJfaWQ6IDBiMDEwMTAxLAogICAgICAgICAgICBudWhfdGVtcG9yYWxfaWRfcGx1czE6IDBiMDExLAogICAgICAgIH07CiAgICAgICAgbGV0IGJ5dGVzID0gbmFsLnNlcmlhbGl6ZSgpOwogICAgICAgIGxldCBwYXJzZWQgPSBOYWxIZWFkZXI6OnBhcnNlKGJ5dGVzKTsKICAgICAgICBhc3NlcnRfZXEhKHBhcnNlZC5mb3JiaWRkZW5femVyb19iaXQsIG5hbC5mb3JiaWRkZW5femVyb19iaXQpOwogICAgICAgIGFzc2VydF9lcSEocGFyc2VkLm5hbF91bml0X3R5cGUgYXMgdTgsIG5hbC5uYWxfdW5pdF90eXBlIGFzIHU4KTsKICAgICAgICBhc3NlcnRfZXEhKHBhcnNlZC5udWhfbGF5ZXJfaWQsIG5hbC5udWhfbGF5ZXJfaWQpOwogICAgICAgIGFzc2VydF9lcSEocGFyc2VkLm51aF90ZW1wb3JhbF9pZF9wbHVzMSwgbmFsLm51aF90ZW1wb3JhbF9pZF9wbHVzMSk7CiAgICB9Cn0K"},{"path":"streamer/src/video.rs","sha256":"2cdaf29b2acbf65fa61e05f85621b36bb2adfce4b9029a208f7c9c80d908f879","contentBase64":"dXNlIHN0ZDo6ewogICAgc3luYzo6e0FyYywgV2Vha30sCiAgICB0aW1lOjp7RHVyYXRpb24sIEluc3RhbnR9LAp9OwoKdXNlIGNvbW1vbjo6YXBpX2JpbmRpbmdzOjp7U3RhdHNIb3N0UHJvY2Vzc2luZ0xhdGVuY3ksIFN0cmVhbWVyU3RhdHNVcGRhdGV9Owp1c2UgbG9nOjp7ZGVidWcsIGVycm9yLCB3YXJufTsKdXNlIG1vb25saWdodF9jb21tb246OnN0cmVhbTo6ewogICAgYzo6YmluZGluZ3M6OkVzdGltYXRlZFJ0dEluZm8sCiAgICB2aWRlbzo6ewogICAgICAgIERlY29kZVJlc3VsdCwgVmlkZW9DYXBhYmlsaXRpZXMsIFZpZGVvRGVjb2RlVW5pdCwgVmlkZW9EZWNvZGVyLCBWaWRlb0Zvcm1hdHMsIFZpZGVvU2V0dXAsCiAgICB9LAp9OwoKdXNlIGNyYXRlOjp7U3RyZWFtQ29ubmVjdGlvbiwgdHJhbnNwb3J0OjpPdXRib3VuZFBhY2tldH07CgpwdWIoY3JhdGUpIHN0cnVjdCBTdHJlYW1WaWRlb0RlY29kZXIgewogICAgcHViKGNyYXRlKSBzdHJlYW06IFdlYWs8U3RyZWFtQ29ubmVjdGlvbj4sCiAgICBwdWIoY3JhdGUpIHN1cHBvcnRlZF9mb3JtYXRzOiBWaWRlb0Zvcm1hdHMsCiAgICBwdWIoY3JhdGUpIHN0YXRzOiBWaWRlb1N0YXRzLAp9CgppbXBsIFZpZGVvRGVjb2RlciBmb3IgU3RyZWFtVmlkZW9EZWNvZGVyIHsKICAgIGZuIHNldHVwKCZtdXQgc2VsZiwgc2V0dXA6IFZpZGVvU2V0dXApIC0+IGkzMiB7CiAgICAgICAgbGV0IFNvbWUoc3RyZWFtKSA9IHNlbGYuc3RyZWFtLnVwZ3JhZGUoKSBlbHNlIHsKICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBzZXR1cCB2aWRlbyBiZWNhdXNlIHN0cmVhbSBpcyBkZWFsbG9jYXRlZCIpOwogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfTsKCiAgICAgICAgewogICAgICAgICAgICBsZXQgbXV0IHN0cmVhbV9pbmZvID0gc3RyZWFtLnN0cmVhbV9zZXR1cC5ibG9ja2luZ19sb2NrKCk7CiAgICAgICAgICAgIHN0cmVhbV9pbmZvLnZpZGVvID0gU29tZShzZXR1cCk7CiAgICAgICAgfQoKICAgICAgICB7CiAgICAgICAgICAgIHN0cmVhbS5ydW50aW1lLmNsb25lKCkuYmxvY2tfb24oYXN5bmMgbW92ZSB7CiAgICAgICAgICAgICAgICBsZXQgbXV0IHNlbmRlciA9IHN0cmVhbS50cmFuc3BvcnRfc2VuZGVyLmxvY2soKS5hd2FpdDsKCiAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShzZW5kZXIpID0gc2VuZGVyLmFzX211dCgpIHsKICAgICAgICAgICAgICAgICAgICBzZW5kZXIuc2V0dXBfdmlkZW8oc2V0dXApLmF3YWl0CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGVycm9yISgiRmFpbGVkIHRvIHNldHVwIHZpZGVvIGJlY2F1c2Ugb2YgbWlzc2luZyB0cmFuc3BvcnQhIik7CiAgICAgICAgICAgICAgICAgICAgLTEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9CgogICAgZm4gc3RhcnQoJm11dCBzZWxmKSB7fQogICAgZm4gc3RvcCgmbXV0IHNlbGYpIHt9CgogICAgZm4gc3VibWl0X2RlY29kZV91bml0KCZtdXQgc2VsZiwgdW5pdDogVmlkZW9EZWNvZGVVbml0PCZbdThdPikgLT4gRGVjb2RlUmVzdWx0IHsKICAgICAgICBsZXQgU29tZShzdHJlYW0pID0gc2VsZi5zdHJlYW0udXBncmFkZSgpIGVsc2UgewogICAgICAgICAgICB3YXJuISgiRmFpbGVkIHRvIHNlbmQgdmlkZW8gZGVjb2RlIHVuaXQgYmVjYXVzZSBzdHJlYW0gaXMgZGVhbGxvY2F0ZWQiKTsKICAgICAgICAgICAgcmV0dXJuIERlY29kZVJlc3VsdDo6T2s7CiAgICAgICAgfTsKCiAgICAgICAgbGV0IG11dCBzZW5kZXJfZ3VhcmQgPSBzdHJlYW0udHJhbnNwb3J0X3NlbmRlci5ibG9ja2luZ19sb2NrKCk7CgogICAgICAgIGxldCBzdGFydCA9IEluc3RhbnQ6Om5vdygpOwoKICAgICAgICBsZXQgcmVzdWx0ID0gc3RyZWFtLnJ1bnRpbWUuYmxvY2tfb24oYXN5bmMgewogICAgICAgICAgICBpZiBsZXQgU29tZShzZW5kZXIpID0gc2VuZGVyX2d1YXJkLmFzX211dCgpIHsKICAgICAgICAgICAgICAgIG1hdGNoIHNlbmRlci5zZW5kX3ZpZGVvX3VuaXQodW5pdC5hc19yZWYoKSkuYXdhaXQgewogICAgICAgICAgICAgICAgICAgIEVycihlcnIpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgd2FybiEoIkZhaWxlZCB0byBzZW5kIHZpZGVvIGRlY29kZSB1bml0OiB7ZXJyfSIpOwogICAgICAgICAgICAgICAgICAgICAgICBEZWNvZGVSZXN1bHQ6Ok9rCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIE9rKHZhbHVlKSA9PiB2YWx1ZSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGRlYnVnISgiRHJvcHBpbmcgdmlkZW8gcGFja2V0IGJlY2F1c2Ugb2YgbWlzc2luZyB0cmFuc3BvcnQiKTsKCiAgICAgICAgICAgICAgICBEZWNvZGVSZXN1bHQ6Ok9rCiAgICAgICAgICAgIH0KICAgICAgICB9KTsKCiAgICAgICAgbGV0IGZyYW1lX3Byb2Nlc3NpbmdfdGltZSA9IEluc3RhbnQ6Om5vdygpIC0gc3RhcnQ7CiAgICAgICAgc2VsZi5zdGF0cy5hbmFseXplKCZzdHJlYW0sICZ1bml0LCBmcmFtZV9wcm9jZXNzaW5nX3RpbWUpOwoKICAgICAgICByZXN1bHQKICAgIH0KCiAgICBmbiBzdXBwb3J0ZWRfZm9ybWF0cygmc2VsZikgLT4gVmlkZW9Gb3JtYXRzIHsKICAgICAgICBzZWxmLnN1cHBvcnRlZF9mb3JtYXRzCiAgICB9CgogICAgZm4gY2FwYWJpbGl0aWVzKCZzZWxmKSAtPiBWaWRlb0NhcGFiaWxpdGllcyB7CiAgICAgICAgVmlkZW9DYXBhYmlsaXRpZXM6OmRlZmF1bHQoKQogICAgfQp9CgojW2Rlcml2ZShEZWJ1ZywgRGVmYXVsdCldCnB1YihjcmF0ZSkgc3RydWN0IFZpZGVvU3RhdHMgewogICAgbGFzdF9zZW5kOiBPcHRpb248SW5zdGFudD4sCiAgICBtaW5faG9zdF9wcm9jZXNzaW5nX2xhdGVuY3k6IER1cmF0aW9uLAogICAgbWF4X2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5OiBEdXJhdGlvbiwKICAgIHRvdGFsX2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5OiBEdXJhdGlvbiwKICAgIGhvc3RfcHJvY2Vzc2luZ19mcmFtZV9jb3VudDogdXNpemUsCiAgICBtaW5fc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lOiBEdXJhdGlvbiwKICAgIG1heF9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWU6IER1cmF0aW9uLAogICAgdG90YWxfc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lOiBEdXJhdGlvbiwKICAgIHN0cmVhbWVyX3Byb2Nlc3NpbmdfdGltZV9mcmFtZV9jb3VudDogdXNpemUsCn0KCmltcGwgVmlkZW9TdGF0cyB7CiAgICBmbiBhbmFseXplKAogICAgICAgICZtdXQgc2VsZiwKICAgICAgICBzdHJlYW06ICZBcmM8U3RyZWFtQ29ubmVjdGlvbj4sCiAgICAgICAgdW5pdDogJlZpZGVvRGVjb2RlVW5pdDwmW3U4XT4sCiAgICAgICAgZnJhbWVfcHJvY2Vzc2luZ190aW1lOiBEdXJhdGlvbiwKICAgICkgewogICAgICAgIGlmIGxldCBTb21lKGhvc3RfcHJvY2Vzc2luZ19sYXRlbmN5KSA9IHVuaXQuZnJhbWVfcHJvY2Vzc2luZ19sYXRlbmN5IHsKICAgICAgICAgICAgc2VsZi5taW5faG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kgPSBzZWxmCiAgICAgICAgICAgICAgICAubWluX2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5CiAgICAgICAgICAgICAgICAubWluKGhvc3RfcHJvY2Vzc2luZ19sYXRlbmN5KTsKICAgICAgICAgICAgc2VsZi5tYXhfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kgPSBzZWxmCiAgICAgICAgICAgICAgICAubWF4X2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5CiAgICAgICAgICAgICAgICAubWF4KGhvc3RfcHJvY2Vzc2luZ19sYXRlbmN5KTsKICAgICAgICAgICAgc2VsZi50b3RhbF9ob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeSArPSBob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeTsKICAgICAgICAgICAgc2VsZi5ob3N0X3Byb2Nlc3NpbmdfZnJhbWVfY291bnQgKz0gMTsKICAgICAgICB9CgogICAgICAgIHNlbGYubWluX3N0cmVhbWVyX3Byb2Nlc3NpbmdfdGltZSA9CiAgICAgICAgICAgIHNlbGYubWluX3N0cmVhbWVyX3Byb2Nlc3NpbmdfdGltZS5taW4oZnJhbWVfcHJvY2Vzc2luZ190aW1lKTsKICAgICAgICBzZWxmLm1heF9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWUgPQogICAgICAgICAgICBzZWxmLm1heF9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWUubWF4KGZyYW1lX3Byb2Nlc3NpbmdfdGltZSk7CiAgICAgICAgc2VsZi50b3RhbF9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWUgKz0gZnJhbWVfcHJvY2Vzc2luZ190aW1lOwogICAgICAgIHNlbGYuc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lX2ZyYW1lX2NvdW50ICs9IDE7CgogICAgICAgIC8vIFNlbmQgaW4gMSBzZWMgaW50ZXJ2YWxsCiAgICAgICAgaWYgc2VsZgogICAgICAgICAgICAubGFzdF9zZW5kCiAgICAgICAgICAgIC5tYXAofGxhc3Rfc2VuZHwgbGFzdF9zZW5kICsgRHVyYXRpb246OmZyb21fc2VjcygxKSA8IEluc3RhbnQ6Om5vdygpKQogICAgICAgICAgICAudW53cmFwX29yKHRydWUpCiAgICAgICAgewogICAgICAgICAgICAvLyBDb2xsZWN0IGRhdGEKICAgICAgICAgICAgbGV0IGhhc19ob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeSA9IHNlbGYuaG9zdF9wcm9jZXNzaW5nX2ZyYW1lX2NvdW50ID4gMDsKICAgICAgICAgICAgbGV0IG1pbl9ob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeSA9IHNlbGYubWluX2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5OwogICAgICAgICAgICBsZXQgbWF4X2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5ID0gc2VsZi5tYXhfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3k7CiAgICAgICAgICAgIGxldCBhdmdfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kgPSBzZWxmCiAgICAgICAgICAgICAgICAudG90YWxfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kKICAgICAgICAgICAgICAgIC5jaGVja2VkX2RpdihzZWxmLmhvc3RfcHJvY2Vzc2luZ19mcmFtZV9jb3VudCBhcyB1MzIpCiAgICAgICAgICAgICAgICAudW53cmFwX29yKER1cmF0aW9uOjpaRVJPKTsKCiAgICAgICAgICAgIGxldCBtaW5fc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lID0gc2VsZi5taW5fc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lOwogICAgICAgICAgICBsZXQgbWF4X3N0cmVhbWVyX3Byb2Nlc3NpbmdfdGltZSA9IHNlbGYubWF4X3N0cmVhbWVyX3Byb2Nlc3NpbmdfdGltZTsKICAgICAgICAgICAgbGV0IGF2Z19zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWUgPSBzZWxmCiAgICAgICAgICAgICAgICAudG90YWxfc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lCiAgICAgICAgICAgICAgICAuY2hlY2tlZF9kaXYoc2VsZi5zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWVfZnJhbWVfY291bnQgYXMgdTMyKQogICAgICAgICAgICAgICAgLnVud3JhcF9vcihEdXJhdGlvbjo6WkVSTyk7CgogICAgICAgICAgICAvLyBTZW5kIGRhdGEKICAgICAgICAgICAgbGV0IHJ1bnRpbWUgPSBzdHJlYW0ucnVudGltZS5jbG9uZSgpOwoKICAgICAgICAgICAgbGV0IHN0cmVhbSA9IHN0cmVhbS5jbG9uZSgpOwogICAgICAgICAgICBydW50aW1lLnNwYXduKGFzeW5jIG1vdmUgewogICAgICAgICAgICAgICAgc3RyZWFtCiAgICAgICAgICAgICAgICAgICAgLnRyeV9zZW5kX3BhY2tldCgKICAgICAgICAgICAgICAgICAgICAgICAgT3V0Ym91bmRQYWNrZXQ6OlN0YXRzKFN0cmVhbWVyU3RhdHNVcGRhdGU6OlZpZGVvIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RfcHJvY2Vzc2luZ19sYXRlbmN5OiBoYXNfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kudGhlbl9zb21lKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRzSG9zdFByb2Nlc3NpbmdMYXRlbmN5IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluX2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5X21zOiBtaW5faG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hc19zZWNzX2Y2NCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEwMDAuMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5X21zOiBtYXhfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hc19zZWNzX2Y2NCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEwMDAuMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZnX2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5X21zOiBhdmdfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hc19zZWNzX2Y2NCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEwMDAuMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWVfbXM6IG1pbl9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXNfc2Vjc19mNjQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogMTAwMC4wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X3N0cmVhbWVyX3Byb2Nlc3NpbmdfdGltZV9tczogbWF4X3N0cmVhbWVyX3Byb2Nlc3NpbmdfdGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hc19zZWNzX2Y2NCgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAxMDAwLjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmdfc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lX21zOiBhdmdfc3RyZWFtZXJfcHJvY2Vzc2luZ190aW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmFzX3NlY3NfZjY0KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIDEwMDAuMCwKICAgICAgICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgICAgICAgICJob3N0IC8gc3RyZWFtZXIgcHJvY2Vzc2luZyBsYXRlbmN5IiwKICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgIC5hd2FpdDsKCiAgICAgICAgICAgICAgICAvLyBTZW5kIFJUVCBpbmZvCiAgICAgICAgICAgICAgICBsZXQgbWxfc3RyZWFtX2xvY2sgPSBzdHJlYW0uc3RyZWFtLnJlYWQoKS5hd2FpdDsKICAgICAgICAgICAgICAgIGlmIGxldCBTb21lKG1sX3N0cmVhbSkgPSBtbF9zdHJlYW1fbG9jay5hc19yZWYoKSB7CiAgICAgICAgICAgICAgICAgICAgbGV0IHJ0dCA9IG1sX3N0cmVhbS5lc3RpbWF0ZWRfcnR0X2luZm8oKTsKICAgICAgICAgICAgICAgICAgICBkcm9wKG1sX3N0cmVhbV9sb2NrKTsKCiAgICAgICAgICAgICAgICAgICAgbWF0Y2ggcnR0IHsKICAgICAgICAgICAgICAgICAgICAgICAgT2soRXN0aW1hdGVkUnR0SW5mbyB7IHJ0dCwgcnR0X3ZhcmlhbmNlIH0pID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50cnlfc2VuZF9wYWNrZXQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE91dGJvdW5kUGFja2V0OjpTdGF0cyhTdHJlYW1lclN0YXRzVXBkYXRlOjpSdHQgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnR0X21zOiBydHQuYXNfc2Vjc19mNjQoKSAqIDEwMDAuMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0dF92YXJpYW5jZV9tczogcnR0X3ZhcmlhbmNlLmFzX3NlY3NfZjY0KCkgKiAxMDAwLjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXN0aW1hdGVkIHJ0dCBpbmZvIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hd2FpdDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBFcnIoZXJyKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuISgiZmFpbGVkIHRvIGdldCBlc3RpbWF0ZWQgcnR0IGluZm86IHtlcnI6P30iKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgLy8gQ2xlYXIgZGF0YQogICAgICAgICAgICBzZWxmLm1pbl9ob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeSA9IER1cmF0aW9uOjpNQVg7CiAgICAgICAgICAgIHNlbGYubWF4X2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5ID0gRHVyYXRpb246OlpFUk87CiAgICAgICAgICAgIHNlbGYudG90YWxfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kgPSBEdXJhdGlvbjo6WkVSTzsKICAgICAgICAgICAgc2VsZi5ob3N0X3Byb2Nlc3NpbmdfZnJhbWVfY291bnQgPSAwOwogICAgICAgICAgICBzZWxmLm1pbl9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWUgPSBEdXJhdGlvbjo6TUFYOwogICAgICAgICAgICBzZWxmLm1heF9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWUgPSBEdXJhdGlvbjo6WkVSTzsKICAgICAgICAgICAgc2VsZi50b3RhbF9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWUgPSBEdXJhdGlvbjo6WkVSTzsKICAgICAgICAgICAgc2VsZi5zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWVfZnJhbWVfY291bnQgPSAwOwoKICAgICAgICAgICAgc2VsZi5sYXN0X3NlbmQgPSBTb21lKEluc3RhbnQ6Om5vdygpKTsKICAgICAgICB9CiAgICB9Cn0K"},{"path":"tsconfig.json","sha256":"2d955b7cc4e2d42d32d66a366a360109e7a1840ccecb1328b33b66e8276814db","contentBase64":"ewogICJjb21waWxlck9wdGlvbnMiOiB7CiAgICAicm9vdERpciI6ICJ3ZWIiLAogICAgIm91dERpciI6ICIuL2Rpc3QiLAogICAgInRhcmdldCI6ICJFUzYiLAogICAgIm1vZHVsZSI6ICJFU05leHQiLAogICAgIm1vZHVsZVJlc29sdXRpb24iOiAiYnVuZGxlciIsCiAgICAic3RyaWN0IjogdHJ1ZSwKICAgICJlc01vZHVsZUludGVyb3AiOiB0cnVlCiAgfSwKICAiaW5jbHVkZSI6IFsKICAgICJ3ZWIvKiovKiIKICBdLAp9"},{"path":"web/admin.html","sha256":"67404953960c6d9cfcbbe1748bc9c13f8955b4b5eeb8175eed3aeff97c28e1e1","contentBase64":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIiBjbGFzcz0ibm90cmFuc2xhdGUiPgoKPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KICAgIDxtZXRhIG5hbWU9Imdvb2dsZSIgY29udGVudD0ibm90cmFuc2xhdGUiIC8+CiAgICA8dGl0bGU+TW9vbmxpZ2h0PC90aXRsZT4KICAgIDxsaW5rIHJlbD0iaWNvbiIgaHJlZj0icmVzb3VyY2VzL21vb25saWdodC5zdmciIHNpemVzPSJhbnkiIHR5cGU9ImltYWdlL3N2Zyt4bWwiPgoKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVzL3N0YW5kYXJkLmNzcyIgaWQ9InN0eWxlIj4KICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InN0eWxlcy9pbmRleC5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iYWRtaW4uanMiIGRlZmVyPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQ+CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgcmF3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oIm1sU2V0dGluZ3MiKTsKICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gcmF3ID8gSlNPTi5wYXJzZShyYXcpIDogbnVsbDsKICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBwYXJzZWQgJiYgKHBhcnNlZC5sYW5ndWFnZSA9PT0gInpoLUNOIiB8fCBwYXJzZWQubGFuZ3VhZ2UgPT09ICJ6aCIgfHwgcGFyc2VkLmxhbmd1YWdlID09PSAiemhfQ04iKQogICAgICAgICAgICAgICAgPyAiemgtQ04iCiAgICAgICAgICAgICAgICA6ICJlbiI7CiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gbGFuZ3VhZ2U7CiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC50cmFuc2xhdGUgPSBmYWxzZTsKICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm5vdHJhbnNsYXRlIik7CiAgICAgICAgfSBjYXRjaCAoX2VycikgeyB9CiAgICA8L3NjcmlwdD4KPC9oZWFkPgoKPGJvZHk+CiAgICA8IS0tIE1vZGFsIC0tPgogICAgPGRpdiBpZD0ibW9kYWwtb3ZlcmxheSIgY2xhc3M9Im1vZGFsLWJhY2tncm91bmQgbW9kYWwtZGlzYWJsZWQiPgogICAgICAgIDwhLS0gTW9kYWwgQ29udGVudCAtLT4KICAgICAgICA8ZGl2IGlkPSJtb2RhbC1wYXJlbnQiIGNsYXNzPSJtb2RhbC1jb250ZW50Ij4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gQ29udGV4dCBNZW51IC0tPgogICAgPGRpdiBpZD0iY29udGV4dC1tZW51IiBjbGFzcz0iY29udGV4dC1tZW51LWJhY2tncm91bmQgY29udGV4dC1tZW51LWRpc2FibGVkIj4KICAgIDwvZGl2PgoKICAgIDwhLS0gRXJyb3JzIC0tPgogICAgPGRpdiBpZD0iZXJyb3ItbGlzdCI+CiAgICA8L2Rpdj4KCiAgICA8IS0tIE1haW4gQXBwIFZpZXcgLS0+CiAgICA8ZGl2IGlkPSJyb290Ij4KICAgIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPgo="},{"path":"web/admin.ts","sha256":"57858ed655af03b25bc91d156417be622fec937346c1f28b1027052572c46b81","contentBase64":"aW1wb3J0ICIuL3BvbHlmaWxsL2luZGV4LmpzIgppbXBvcnQgIi4vc3R5bGVzL2luZGV4LmpzIgppbXBvcnQgeyBBcGksIGFwaUdldFJvbGUsIGFwaUdldFVzZXIsIGFwaUxvZ291dCwgYXBpUG9zdFJvbGUsIGFwaVBvc3RVc2VyLCBGZXRjaEVycm9yLCBnZXRBcGkgfSBmcm9tICIuL2FwaS5qcyI7CmltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RXZlbnQgfSBmcm9tICIuL2NvbXBvbmVudC9pbmRleC5qcyI7CmltcG9ydCB7IHNob3dOb3RpZmljYXRpb24gfSBmcm9tICIuL2NvbXBvbmVudC9ub3RpZmljYXRpb24uanMiOwppbXBvcnQgeyBzZXRUb3VjaENvbnRleHRNZW51RW5hYmxlZCB9IGZyb20gIi4vcG9seWZpbGwvaW9zX3JpZ2h0X2NsaWNrLmpzIjsKaW1wb3J0IHsgVXNlckxpc3QgfSBmcm9tICIuL2NvbXBvbmVudC91c2VyL2xpc3QuanMiOwppbXBvcnQgeyBBZGRVc2VyTW9kYWwgfSBmcm9tICIuL2NvbXBvbmVudC91c2VyL2FkZF9tb2RhbC5qcyI7CmltcG9ydCB7IHNob3dNZXNzYWdlLCBzaG93TW9kYWwgfSBmcm9tICIuL2NvbXBvbmVudC9tb2RhbC9pbmRleC5qcyI7CmltcG9ydCB7IGJ1aWxkVXJsIH0gZnJvbSAiLi9jb25maWdfLmpzIjsKaW1wb3J0IHsgRGV0YWlsZWRVc2VyUGFnZSB9IGZyb20gIi4vY29tcG9uZW50L3VzZXIvZGV0YWlsZWRfcGFnZS5qcyI7CmltcG9ydCB7IFVzZXIsIFVzZXJFdmVudExpc3RlbmVyIH0gZnJvbSAiLi9jb21wb25lbnQvdXNlci9pbmRleC5qcyI7CmltcG9ydCB7IERldGFpbGVkUm9sZSwgRGV0YWlsZWRVc2VyIH0gZnJvbSAiLi9hcGlfYmluZGluZ3MuanMiOwppbXBvcnQgeyBSb2xlLCBSb2xlRXZlbnRMaXN0ZW5lciB9IGZyb20gIi4vY29tcG9uZW50L3JvbGVzL2luZGV4LmpzIjsKaW1wb3J0IHsgUm9sZUxpc3QgfSBmcm9tICIuL2NvbXBvbmVudC9yb2xlcy9saXN0LmpzIjsKaW1wb3J0IHsgRGV0YWlsZWRSb2xlUGFnZSB9IGZyb20gIi4vY29tcG9uZW50L3JvbGVzL2RldGFpbGVkX3BhZ2UuanMiOwppbXBvcnQgeyBBZGRSb2xlTW9kYWwgfSBmcm9tICIuL2NvbXBvbmVudC9yb2xlcy9hZGRfbW9kYWwuanMiOwppbXBvcnQgeyBhZG9wdFJvbGVEZWZhdWx0TGFuZ3VhZ2UsIGdldEN1cnJlbnRMYW5ndWFnZSwgZ2V0VHJhbnNsYXRpb25zIH0gZnJvbSAiLi9pMThuLmpzIjsKCmxldCBJID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKQoKYXN5bmMgZnVuY3Rpb24gc3RhcnRBcHAoKSB7CiAgICBzZXRUb3VjaENvbnRleHRNZW51RW5hYmxlZCh0cnVlKQoKICAgIGNvbnN0IGFwaSA9IGF3YWl0IGdldEFwaSgpCgogICAgY29uc3QgYm9vdHN0cmFwUm9sZSA9IGF3YWl0IGFwaUdldFJvbGUoYXBpLCB7IGlkOiBudWxsIH0pCiAgICBhZG9wdFJvbGVEZWZhdWx0TGFuZ3VhZ2UoYm9vdHN0cmFwUm9sZS5yb2xlLmRlZmF1bHRfc2V0dGluZ3MpCiAgICBJID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKQoKICAgIGNoZWNrUGVybWlzc2lvbnMoYXBpKQoKICAgIGNvbnN0IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKQogICAgaWYgKHJvb3RFbGVtZW50ID09IG51bGwpIHsKICAgICAgICBzaG93Tm90aWZpY2F0aW9uKEkuYWRtaW4ucm9vdE5vdEZvdW5kLCAiZXJyb3IiKQogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBjb25zdCBhcHAgPSBuZXcgQWRtaW5BcHAoYXBpKQogICAgYXBwLm1vdW50KHJvb3RFbGVtZW50KQoKICAgIGFwcC5mb3JjZUZldGNoKCkKCiAgICAvLyAtLSBBcHAgc3RhdGVzCiAgICBsZXQgbGFzdEFwcFN0YXRlOiBBcHBTdGF0ZSB8IG51bGwgPSBudWxsCiAgICBpZiAoc2Vzc2lvblN0b3JhZ2UpIHsKICAgICAgICBjb25zdCBsYXN0U3RhdGVUZXh0ID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgibWxBZG1pblN0YXRlIikKICAgICAgICBpZiAobGFzdFN0YXRlVGV4dCkgewogICAgICAgICAgICBsYXN0QXBwU3RhdGUgPSBKU09OLnBhcnNlKGxhc3RTdGF0ZVRleHQpCiAgICAgICAgfQogICAgfQoKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsIGV2ZW50ID0+IHsKICAgICAgICBpZiAoZXZlbnQuc3RhdGUpIHsKICAgICAgICAgICAgYXBwLnNldEFwcFN0YXRlKGV2ZW50LnN0YXRlLCBmYWxzZSkKICAgICAgICB9CiAgICB9KQoKICAgIGlmIChsYXN0QXBwU3RhdGUpIHsKICAgICAgICBhcHAuc2V0QXBwU3RhdGUobGFzdEFwcFN0YXRlKQogICAgfSBlbHNlIHsKICAgICAgICAvLyBzZXQgZGVmYXVsdCBzdGF0ZQogICAgICAgIGFwcC5zZXRBcHBTdGF0ZSh7IHRhYjogInVzZXJzIiwgdXNlcl9pZDogbnVsbCB9KQogICAgfQp9Cgphc3luYyBmdW5jdGlvbiBjaGVja1Blcm1pc3Npb25zKGFwaTogQXBpKSB7CiAgICBjb25zdCB1c2VyID0gYXdhaXQgYXBpR2V0VXNlcihhcGkpCgogICAgaWYgKHVzZXIucm9sZSAhPSAiQWRtaW4iKSB7CiAgICAgICAgYXdhaXQgc2hvd01lc3NhZ2UoSS5hZG1pbi51bmF1dGhvcml6ZWQpCgogICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYnVpbGRVcmwoIi8iKQogICAgfQp9Cgp0eXBlIEFwcFN0YXRlID0geyB0YWI6ICJ1c2VycyIsIHVzZXJfaWQ6IG51bWJlciB8IG51bGwgfSB8CnsgdGFiOiAicm9sZXMiLCByb2xlX2lkOiBudW1iZXIgfCBudWxsIH0KZnVuY3Rpb24gcHVzaEFwcFN0YXRlKHN0YXRlOiBBcHBTdGF0ZSwgcHVzaEhpc3Rvcnk6IGJvb2xlYW4pIHsKICAgIGlmIChwdXNoSGlzdG9yeSkgewogICAgICAgIGhpc3RvcnkucHVzaFN0YXRlKHN0YXRlLCAiIikKICAgIH0KCiAgICBpZiAoc2Vzc2lvblN0b3JhZ2UpIHsKICAgICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJtbEFkbWluU3RhdGUiLCBKU09OLnN0cmluZ2lmeShzdGF0ZSkpCiAgICB9Cn0KZnVuY3Rpb24gYmFja0FwcFN0YXRlKCkgewogICAgaGlzdG9yeS5iYWNrKCkKfQoKc3RhcnRBcHAoKQoKY2xhc3MgQWRtaW5BcHAgaW1wbGVtZW50cyBDb21wb25lbnQgewoKICAgIHByaXZhdGUgYXBpOiBBcGkKCiAgICBwcml2YXRlIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQoKICAgIHByaXZhdGUgY3VycmVudFN0YXRlOiBBcHBTdGF0ZSB8IG51bGwgPSBudWxsCgogICAgLy8gVG9wIExpbmUKICAgIHByaXZhdGUgdG9wTGluZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCgogICAgcHJpdmF0ZSBtb29ubGlnaHRUZXh0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgxIikKCiAgICBwcml2YXRlIHRvcExpbmVBY3Rpb25zID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKICAgIHByaXZhdGUgbG9nb3V0QnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIikKICAgIHByaXZhdGUgdXNlckJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCgogICAgLy8gRGlmZmVyZW50IHRhYnMKICAgIHByaXZhdGUgdGFicyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCiAgICBwcml2YXRlIHVzZXJUYWJCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQogICAgcHJpdmF0ZSByb2xlc1RhYkJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCgogICAgLy8gQ29udGVudAogICAgcHJpdmF0ZSBjb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKCiAgICAvLyBUaGUgYWN0dWFsIGNvbnRlbnQgb2YgdGhlIHRhYnMKICAgIHByaXZhdGUgdXNlcnM6IFVzZXJQYW5lbCB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHJvbGVzOiBSb2xlUGFuZWwgfCBudWxsID0gbnVsbAoKICAgIGNvbnN0cnVjdG9yKGFwaTogQXBpKSB7CiAgICAgICAgdGhpcy5hcGkgPSBhcGkKCiAgICAgICAgLy8gVG9wIExpbmUKICAgICAgICB0aGlzLnRvcExpbmUuY2xhc3NMaXN0LmFkZCgidG9wLWxpbmUiKQoKICAgICAgICB0aGlzLm1vb25saWdodFRleHRFbGVtZW50LmlubmVySFRNTCA9CiAgICAgICAgICAgICdNb29ubGlnaHQgV2ViIDxzcGFuIHN0eWxlPSJjb2xvcjpyZWQ7IHRleHQtc2hhZG93OiAtMXB4IC0xcHggMCAjMDAwLCAxcHggLTFweCAwICMwMDAsIC0xcHggMXB4IDAgIzAwMCwgMXB4IDFweCAwICMwMDA7IC13ZWJraXQtdGV4dC1zdHJva2U6IDJweCAjMDAwIj5BZG1pbjwvc3Bhbj4nCgogICAgICAgIHRoaXMudG9wTGluZS5hcHBlbmRDaGlsZCh0aGlzLm1vb25saWdodFRleHRFbGVtZW50KQoKICAgICAgICB0aGlzLnRvcExpbmUuYXBwZW5kQ2hpbGQodGhpcy50b3BMaW5lQWN0aW9ucykKICAgICAgICB0aGlzLnRvcExpbmVBY3Rpb25zLmNsYXNzTGlzdC5hZGQoInRvcC1saW5lLWFjdGlvbnMiKQoKICAgICAgICAvLyBUT0RPOiBsb2dvdXQgYnV0dG9uIGRvZXNuJ3Qgd29yayBvbiBkZWZhdWx0IHVzZXIKICAgICAgICB0aGlzLmxvZ291dEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgYXdhaXQgYXBpTG9nb3V0KHRoaXMuYXBpKQogICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKICAgICAgICB9KQogICAgICAgIHRoaXMubG9nb3V0QnV0dG9uLmNsYXNzTGlzdC5hZGQoImxvZ291dC1idXR0b24iKQogICAgICAgIHRoaXMudG9wTGluZUFjdGlvbnMuYXBwZW5kQ2hpbGQodGhpcy5sb2dvdXRCdXR0b24pCgogICAgICAgIHRoaXMudXNlckJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBidWlsZFVybCgiLyIpCiAgICAgICAgfSkKICAgICAgICB0aGlzLnVzZXJCdXR0b24uY2xhc3NMaXN0LmFkZCgidXNlci1idXR0b24iKQogICAgICAgIHRoaXMudG9wTGluZUFjdGlvbnMuYXBwZW5kQ2hpbGQodGhpcy51c2VyQnV0dG9uKQoKICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy50b3BMaW5lKQoKICAgICAgICAvLyBUYWIgZGl2CiAgICAgICAgdGhpcy50YWJzLmNsYXNzTGlzdC5hZGQoImFkbWluLXBhbmVsLXRhYnMiKQogICAgICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLnRhYnMpCgogICAgICAgIC8vIFVzZXJzIHRhYgogICAgICAgIHRoaXMudXNlclRhYkJ1dHRvbi5pbm5lclRleHQgPSBJLmFkbWluLnVzZXJzCiAgICAgICAgdGhpcy51c2VyVGFiQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICB0aGlzLnNldEFwcFN0YXRlKHsgdGFiOiAidXNlcnMiLCB1c2VyX2lkOiBudWxsIH0pCiAgICAgICAgfSkKICAgICAgICB0aGlzLnRhYnMuYXBwZW5kQ2hpbGQodGhpcy51c2VyVGFiQnV0dG9uKQoKICAgICAgICAvLyBSb2xlcyB0YWIKICAgICAgICB0aGlzLnJvbGVzVGFiQnV0dG9uLmlubmVyVGV4dCA9IEkuYWRtaW4ucm9sZXMKICAgICAgICB0aGlzLnJvbGVzVGFiQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICB0aGlzLnNldEFwcFN0YXRlKHsgdGFiOiAicm9sZXMiLCByb2xlX2lkOiBudWxsIH0pCiAgICAgICAgfSkKICAgICAgICB0aGlzLnRhYnMuYXBwZW5kQ2hpbGQodGhpcy5yb2xlc1RhYkJ1dHRvbikKCiAgICAgICAgLy8gQ29udGVudCBkaXYKICAgICAgICB0aGlzLmNvbnRlbnQuY2xhc3NMaXN0LmFkZCgiYWRtaW4tcGFuZWwtY29udGVudCIpCiAgICAgICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMuY29udGVudCkKICAgIH0KCiAgICBhc3luYyBmb3JjZUZldGNoKCkgewogICAgICAgIGlmICh0aGlzLmN1cnJlbnRTdGF0ZT8udGFiID09ICJ1c2VycyIpIHsKICAgICAgICAgICAgYXdhaXQgdGhpcy51c2Vycz8uZm9yY2VGZXRjaCgpCiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRTdGF0ZT8udGFiID09ICJyb2xlcyIpIHsKICAgICAgICAgICAgYXdhaXQgdGhpcy5yb2xlcz8uZm9yY2VGZXRjaCgpCiAgICAgICAgfQogICAgfQoKICAgIHNldEFwcFN0YXRlKHN0YXRlOiBBcHBTdGF0ZSwgcHVzaEludG9IaXN0b3J5PzogYm9vbGVhbikgewogICAgICAgIC8vIGNoZWNrIGlmIHRhYiBjaGFuZ2VkIGFuZCBtb3VudCBhY2NvcmRpbmdseQogICAgICAgIGlmICh0aGlzLmN1cnJlbnRTdGF0ZT8udGFiICE9IHN0YXRlLnRhYikgewogICAgICAgICAgICAvLyBVbm1vdW50IG9sZCB0YWIKICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFN0YXRlPy50YWIgPT0gInVzZXJzIikgewogICAgICAgICAgICAgICAgdGhpcy51c2Vycz8udW5tb3VudCh0aGlzLmNvbnRlbnQpCiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50U3RhdGU/LnRhYiA9PSAicm9sZXMiKSB7CiAgICAgICAgICAgICAgICB0aGlzLnJvbGVzPy51bm1vdW50KHRoaXMuY29udGVudCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gTW91bnQgYW5kIGNyZWF0ZSAoaWYgbmVjZXNzYXJ5KSBuZXcgdGFiCiAgICAgICAgICAgIGlmIChzdGF0ZS50YWIgPT0gInVzZXJzIikgewogICAgICAgICAgICAgICAgaWYgKCF0aGlzLnVzZXJzKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VycyA9IG5ldyBVc2VyUGFuZWwodGhpcy5hcGkpCiAgICAgICAgICAgICAgICAgICAgdGhpcy51c2Vycy5hZGRVc2VyQ2hhbmdlZExpc3RlbmVyKGV2ZW50ID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcHVzaEFwcFN0YXRlKHsgdGFiOiAidXNlcnMiLCB1c2VyX2lkOiBldmVudC5jb21wb25lbnQuZ2V0VXNlcklkKCkgfSwgdHJ1ZSkKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHRoaXMudXNlcnMubW91bnQodGhpcy5jb250ZW50KQogICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLnRhYiA9PSAicm9sZXMiKSB7CiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucm9sZXMpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnJvbGVzID0gbmV3IFJvbGVQYW5lbCh0aGlzLmFwaSkKICAgICAgICAgICAgICAgICAgICB0aGlzLnJvbGVzLmFkZFJvbGVDaGFuZ2VkTGlzdGVuZXIoZXZlbnQgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBwdXNoQXBwU3RhdGUoeyB0YWI6ICJyb2xlcyIsIHJvbGVfaWQ6IGV2ZW50LmNvbXBvbmVudC5nZXRSb2xlSWQoKSB9LCB0cnVlKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdGhpcy5yb2xlcy5tb3VudCh0aGlzLmNvbnRlbnQpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIFNhdmUgYXBwIHN0YXRlIHRvIGJyb3dzZXIgaGlzdG9yeQogICAgICAgIHB1c2hBcHBTdGF0ZShzdGF0ZSwgcHVzaEludG9IaXN0b3J5ID8/IHRydWUpCgogICAgICAgIC8vIENoYW5nZSB0aGUgY29udGVudCAoZS5nLiB1c2VyIC8gcm9sZSkgb2YgdGhlIHRhYgogICAgICAgIHRoaXMuY3VycmVudFN0YXRlID0gc3RhdGUKICAgICAgICBpZiAoc3RhdGUudGFiID09ICJ1c2VycyIgJiYgc3RhdGUudXNlcl9pZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMudXNlcnM/LnNldFVzZXJJZChzdGF0ZS51c2VyX2lkKQogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUudGFiID09ICJyb2xlcyIgJiYgc3RhdGUucm9sZV9pZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMucm9sZXM/LnNldFJvbGVJZChzdGF0ZS5yb2xlX2lkKQogICAgICAgIH0KCiAgICAgICAgLy8gRm9yY2UgZmV0Y2ggc2VsZiB0byB1cGRhdGUgZGF0YQogICAgICAgIHRoaXMuZm9yY2VGZXRjaCgpCiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLnJvb3QpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5yb290KQogICAgfQp9CgpjbGFzcyBVc2VyUGFuZWwgaW1wbGVtZW50cyBDb21wb25lbnQgewoKICAgIHByaXZhdGUgYXBpOiBBcGkKCiAgICBwcml2YXRlIHJvb3REaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQoKICAgIHByaXZhdGUgdXNlclBhbmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKICAgIHByaXZhdGUgYWRkVXNlckJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCiAgICBwcml2YXRlIHVzZXJTZWFyY2ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpCiAgICBwcml2YXRlIHVzZXJMaXN0OiBVc2VyTGlzdAoKICAgIHByaXZhdGUgdXNlckluZm9QYWdlOiBEZXRhaWxlZFVzZXJQYWdlIHwgbnVsbCA9IG51bGwKCiAgICBjb25zdHJ1Y3RvcihhcGk6IEFwaSkgewogICAgICAgIHRoaXMuYXBpID0gYXBpCgogICAgICAgIHRoaXMucm9vdERpdi5jbGFzc0xpc3QuYWRkKCJhZG1pbi1wYW5lbC11c2VycyIpCgogICAgICAgIC8vIFNlbGVjdCBVc2VyIFBhbmVsCiAgICAgICAgdGhpcy51c2VyUGFuZWwuY2xhc3NMaXN0LmFkZCgidXNlci1wYW5lbCIpCiAgICAgICAgdGhpcy5yb290RGl2LmFwcGVuZENoaWxkKHRoaXMudXNlclBhbmVsKQoKICAgICAgICB0aGlzLmFkZFVzZXJCdXR0b24uaW5uZXJUZXh0ID0gSS5hZG1pbi5hZGRVc2VyCiAgICAgICAgdGhpcy5hZGRVc2VyQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4gewogICAgICAgICAgICBjb25zdCBhZGRVc2VyTW9kYWwgPSBuZXcgQWRkVXNlck1vZGFsKGFwaSkKCiAgICAgICAgICAgIGNvbnN0IHVzZXJSZXF1ZXN0ID0gYXdhaXQgc2hvd01vZGFsKGFkZFVzZXJNb2RhbCkKCiAgICAgICAgICAgIGlmICh1c2VyUmVxdWVzdCkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdVc2VyID0gYXdhaXQgYXBpUG9zdFVzZXIodGhpcy5hcGksIHVzZXJSZXF1ZXN0KQoKICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJMaXN0Lmluc2VydExpc3QobmV3VXNlci5pZCwgbmV3VXNlcikKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAvLyA0MDkgPSBDb25mbGljdAogICAgICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRmV0Y2hFcnJvciAmJiBlLmdldFJlc3BvbnNlKCk/LnN0YXR1cyA9PSA0MDkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmFtZSBhbHJlYWR5IGV4aXN0cwogICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzaG93TWVzc2FnZShJLmFkbWluLnVzZXJFeGlzdHModXNlclJlcXVlc3QubmFtZSkpCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgdGhpcy51c2VyUGFuZWwuYXBwZW5kQ2hpbGQodGhpcy5hZGRVc2VyQnV0dG9uKQoKICAgICAgICB0aGlzLnVzZXJTZWFyY2gucGxhY2Vob2xkZXIgPSBJLmFkbWluLnNlYXJjaFVzZXIKICAgICAgICB0aGlzLnVzZXJTZWFyY2gudHlwZSA9ICJ0ZXh0IgogICAgICAgIHRoaXMudXNlclNlYXJjaC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMub25Vc2VyU2VhcmNoQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy51c2VyUGFuZWwuYXBwZW5kQ2hpbGQodGhpcy51c2VyU2VhcmNoKQoKICAgICAgICB0aGlzLnVzZXJMaXN0ID0gbmV3IFVzZXJMaXN0KGFwaSkKICAgICAgICB0aGlzLnVzZXJMaXN0LmFkZFVzZXJDbGlja2VkTGlzdGVuZXIodGhpcy5vblVzZXJDbGlja2VkLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy51c2VyTGlzdC5hZGRVc2VyRGVsZXRlZExpc3RlbmVyKHRoaXMub25Vc2VyRGVsZXRlZC5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMudXNlckxpc3QubW91bnQodGhpcy51c2VyUGFuZWwpCiAgICB9CgogICAgYWRkVXNlckNoYW5nZWRMaXN0ZW5lcihsaXN0ZW5lcjogVXNlckV2ZW50TGlzdGVuZXIpIHsKICAgICAgICB0aGlzLnVzZXJMaXN0LmFkZFVzZXJDbGlja2VkTGlzdGVuZXIobGlzdGVuZXIpCiAgICB9CgogICAgZ2V0Q3VycmVudFVzZXJJZCgpOiBudW1iZXIgfCBudWxsIHsKICAgICAgICByZXR1cm4gdGhpcy51c2VySW5mb1BhZ2U/LmdldFVzZXJJZCgpID8/IG51bGwKICAgIH0KCiAgICBhc3luYyBmb3JjZUZldGNoKCkgewogICAgICAgIGF3YWl0IHRoaXMudXNlckxpc3QuZm9yY2VGZXRjaCgpCiAgICB9CgogICAgcHJpdmF0ZSBvblVzZXJTZWFyY2hDaGFuZ2UoKSB7CiAgICAgICAgdGhpcy51c2VyTGlzdC5zZXRGaWx0ZXIodGhpcy51c2VyU2VhcmNoLnZhbHVlKQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgb25Vc2VyQ2xpY2tlZChldmVudDogQ29tcG9uZW50RXZlbnQ8VXNlcj4pIHsKICAgICAgICBhd2FpdCB0aGlzLnNldFVzZXJJZChldmVudC5jb21wb25lbnQuZ2V0VXNlcklkKCkpCiAgICB9CiAgICBhc3luYyBzZXRVc2VySWQodXNlcklkOiBudW1iZXIpIHsKICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgYXBpR2V0VXNlcih0aGlzLmFwaSwgewogICAgICAgICAgICB1c2VyX2lkOiB1c2VySWQsCiAgICAgICAgICAgIG5hbWU6IG51bGwKICAgICAgICB9KQoKICAgICAgICB0aGlzLnNldFVzZXJJbmZvKHVzZXIpCiAgICB9CiAgICBwcml2YXRlIHNldFVzZXJJbmZvKHVzZXI6IERldGFpbGVkVXNlciB8IG51bGwpIHsKICAgICAgICBpZiAodGhpcy51c2VySW5mb1BhZ2UpIHsKICAgICAgICAgICAgdGhpcy51c2VySW5mb1BhZ2UudW5tb3VudCh0aGlzLnJvb3REaXYpCiAgICAgICAgICAgIHRoaXMudXNlckluZm9QYWdlLnJlbW92ZURlbGV0ZWRMaXN0ZW5lcih0aGlzLm9uVXNlckRlbGV0ZWQuYmluZCh0aGlzKSkKICAgICAgICB9CgogICAgICAgIHRoaXMudXNlckluZm9QYWdlID0gbnVsbAogICAgICAgIGlmICh1c2VyKSB7CiAgICAgICAgICAgIHRoaXMudXNlckluZm9QYWdlID0gbmV3IERldGFpbGVkVXNlclBhZ2UodGhpcy5hcGksIHVzZXIpCiAgICAgICAgICAgIHRoaXMudXNlckluZm9QYWdlLmFkZERlbGV0ZWRMaXN0ZW5lcih0aGlzLm9uVXNlckRlbGV0ZWQuYmluZCh0aGlzKSkKICAgICAgICAgICAgdGhpcy51c2VySW5mb1BhZ2UubW91bnQodGhpcy5yb290RGl2KQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIG9uVXNlckRlbGV0ZWQoZXZlbnQ6IENvbXBvbmVudEV2ZW50PFVzZXI+KSB7CiAgICAgICAgaWYgKHRoaXMudXNlckluZm9QYWdlPy5nZXRVc2VySWQoKSA9PSBldmVudC5jb21wb25lbnQuZ2V0VXNlcklkKCkpIHsKICAgICAgICAgICAgdGhpcy5zZXRVc2VySW5mbyhudWxsKQogICAgICAgIH0KICAgICAgICB0aGlzLnVzZXJMaXN0LnJlbW92ZVVzZXIoZXZlbnQuY29tcG9uZW50LmdldFVzZXJJZCgpKQogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5yb290RGl2KQogICAgfQogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMucm9vdERpdikKICAgIH0KfQoKY2xhc3MgUm9sZVBhbmVsIGltcGxlbWVudHMgQ29tcG9uZW50IHsKCiAgICBwcml2YXRlIGFwaTogQXBpCgogICAgcHJpdmF0ZSByb290RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKCiAgICBwcml2YXRlIHJvbGVQYW5lbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCiAgICBwcml2YXRlIGFkZFJvbGVCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQogICAgcHJpdmF0ZSByb2xlU2VhcmNoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKQogICAgcHJpdmF0ZSByb2xlTGlzdDogUm9sZUxpc3QKCiAgICBwcml2YXRlIHJvbGVJbmZvUGFnZTogRGV0YWlsZWRSb2xlUGFnZSB8IG51bGwgPSBudWxsCgogICAgY29uc3RydWN0b3IoYXBpOiBBcGkpIHsKICAgICAgICB0aGlzLmFwaSA9IGFwaQoKICAgICAgICB0aGlzLnJvb3REaXYuY2xhc3NMaXN0LmFkZCgiYWRtaW4tcGFuZWwtcm9sZXMiKQoKICAgICAgICAvLyBTZWxlY3QgUm9sZSBQYW5lbAogICAgICAgIHRoaXMucm9sZVBhbmVsLmNsYXNzTGlzdC5hZGQoInJvbGUtcGFuZWwiKQogICAgICAgIHRoaXMucm9vdERpdi5hcHBlbmRDaGlsZCh0aGlzLnJvbGVQYW5lbCkKCiAgICAgICAgdGhpcy5hZGRSb2xlQnV0dG9uLmlubmVyVGV4dCA9IEkuYWRtaW4uYWRkUm9sZQogICAgICAgIHRoaXMuYWRkUm9sZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgY29uc3QgYWRkUm9sZU1vZGFsID0gbmV3IEFkZFJvbGVNb2RhbCgpCgogICAgICAgICAgICBjb25zdCByb2xlUmVxdWVzdCA9IGF3YWl0IHNob3dNb2RhbChhZGRSb2xlTW9kYWwpCgogICAgICAgICAgICBpZiAocm9sZVJlcXVlc3QpIHsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3Um9sZSA9IGF3YWl0IGFwaVBvc3RSb2xlKHRoaXMuYXBpLCByb2xlUmVxdWVzdCkKCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb2xlTGlzdC5pbnNlcnRMaXN0KG5ld1JvbGUucm9sZS5pZCwgbmV3Um9sZS5yb2xlKQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIC8vIDQwOSA9IENvbmZsaWN0CiAgICAgICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBGZXRjaEVycm9yICYmIGUuZ2V0UmVzcG9uc2UoKT8uc3RhdHVzID09IDQwOSkgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBOYW1lIGFscmVhZHkgZXhpc3RzCiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNob3dNZXNzYWdlKEkuYWRtaW4ucm9sZUV4aXN0cyhyb2xlUmVxdWVzdC5uYW1lKSkKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICB0aGlzLnJvbGVQYW5lbC5hcHBlbmRDaGlsZCh0aGlzLmFkZFJvbGVCdXR0b24pCgogICAgICAgIHRoaXMucm9sZVNlYXJjaC5wbGFjZWhvbGRlciA9IEkuYWRtaW4uc2VhcmNoUm9sZQogICAgICAgIHRoaXMucm9sZVNlYXJjaC50eXBlID0gInRleHQiCiAgICAgICAgdGhpcy5yb2xlU2VhcmNoLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IiwgdGhpcy5vblJvbGVTZWFyY2hDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnJvbGVQYW5lbC5hcHBlbmRDaGlsZCh0aGlzLnJvbGVTZWFyY2gpCgogICAgICAgIHRoaXMucm9sZUxpc3QgPSBuZXcgUm9sZUxpc3QoYXBpKQogICAgICAgIHRoaXMucm9sZUxpc3QuYWRkUm9sZUNsaWNrZWRMaXN0ZW5lcih0aGlzLm9uUm9sZUNsaWNrZWQuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnJvbGVMaXN0LmFkZFJvbGVEZWxldGVkTGlzdGVuZXIodGhpcy5vblJvbGVEZWxldGVkLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5yb2xlTGlzdC5tb3VudCh0aGlzLnJvbGVQYW5lbCkKICAgIH0KCiAgICBhZGRSb2xlQ2hhbmdlZExpc3RlbmVyKGxpc3RlbmVyOiBSb2xlRXZlbnRMaXN0ZW5lcikgewogICAgICAgIHRoaXMucm9sZUxpc3QuYWRkUm9sZUNsaWNrZWRMaXN0ZW5lcihsaXN0ZW5lcikKICAgIH0KCiAgICBnZXRDdXJyZW50Um9sZUlkKCk6IG51bWJlciB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLnJvbGVJbmZvUGFnZT8uZ2V0Um9sZUlkKCkgPz8gbnVsbAogICAgfQoKICAgIGFzeW5jIGZvcmNlRmV0Y2goKSB7CiAgICAgICAgYXdhaXQgdGhpcy5yb2xlTGlzdC5mb3JjZUZldGNoKCkKICAgIH0KCiAgICBwcml2YXRlIG9uUm9sZVNlYXJjaENoYW5nZSgpIHsKICAgICAgICB0aGlzLnJvbGVMaXN0LnNldEZpbHRlcih0aGlzLnJvbGVTZWFyY2gudmFsdWUpCiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyBvblJvbGVDbGlja2VkKGV2ZW50OiBDb21wb25lbnRFdmVudDxSb2xlPikgewogICAgICAgIGF3YWl0IHRoaXMuc2V0Um9sZUlkKGV2ZW50LmNvbXBvbmVudC5nZXRSb2xlSWQoKSkKICAgIH0KICAgIGFzeW5jIHNldFJvbGVJZChyb2xlSWQ6IG51bWJlcikgewogICAgICAgIGNvbnN0IHJvbGUgPSBhd2FpdCBhcGlHZXRSb2xlKHRoaXMuYXBpLCB7CiAgICAgICAgICAgIGlkOiByb2xlSWQsCiAgICAgICAgfSkKCiAgICAgICAgdGhpcy5zZXRSb2xlSW5mbyhyb2xlLnJvbGUpCiAgICB9CiAgICBwcml2YXRlIHNldFJvbGVJbmZvKHJvbGU6IERldGFpbGVkUm9sZSB8IG51bGwpIHsKICAgICAgICBpZiAodGhpcy5yb2xlSW5mb1BhZ2UpIHsKICAgICAgICAgICAgdGhpcy5yb2xlSW5mb1BhZ2UudW5tb3VudCh0aGlzLnJvb3REaXYpCiAgICAgICAgICAgIHRoaXMucm9sZUluZm9QYWdlLnJlbW92ZURlbGV0ZWRMaXN0ZW5lcih0aGlzLm9uUm9sZURlbGV0ZWQuYmluZCh0aGlzKSkKICAgICAgICB9CgogICAgICAgIHRoaXMucm9sZUluZm9QYWdlID0gbnVsbAogICAgICAgIGlmIChyb2xlKSB7CiAgICAgICAgICAgIHRoaXMucm9sZUluZm9QYWdlID0gbmV3IERldGFpbGVkUm9sZVBhZ2UodGhpcy5hcGksIHJvbGUpCiAgICAgICAgICAgIHRoaXMucm9sZUluZm9QYWdlLmFkZERlbGV0ZWRMaXN0ZW5lcih0aGlzLm9uUm9sZURlbGV0ZWQuYmluZCh0aGlzKSkKICAgICAgICAgICAgdGhpcy5yb2xlSW5mb1BhZ2UubW91bnQodGhpcy5yb290RGl2KQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIG9uUm9sZURlbGV0ZWQoZXZlbnQ6IENvbXBvbmVudEV2ZW50PFJvbGU+KSB7CiAgICAgICAgaWYgKHRoaXMucm9sZUluZm9QYWdlPy5nZXRSb2xlSWQoKSA9PSBldmVudC5jb21wb25lbnQuZ2V0Um9sZUlkKCkpIHsKICAgICAgICAgICAgdGhpcy5zZXRSb2xlSW5mbyhudWxsKQogICAgICAgIH0KICAgICAgICB0aGlzLnJvbGVMaXN0LnJlbW92ZVJvbGUoZXZlbnQuY29tcG9uZW50LmdldFJvbGVJZCgpKQogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5yb290RGl2KQogICAgfQogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMucm9vdERpdikKICAgIH0KfQo="},{"path":"web/api.ts","sha256":"5f3f3e077d28274b67dfa8412e2d0374695605190a52ab8d50b07c6af7a152c3","contentBase64":"aW1wb3J0IHsgQXBwLCBEZWxldGVIb3N0UXVlcnksIERlbGV0ZVVzZXJSZXF1ZXN0LCBEZXRhaWxlZEhvc3QsIERldGFpbGVkVXNlciwgR2V0QXBwSW1hZ2VRdWVyeSwgR2V0QXBwc1F1ZXJ5LCBHZXRBcHBzUmVzcG9uc2UsIEdldEhvc3RRdWVyeSwgR2V0SG9zdFJlc3BvbnNlLCBHZXRIb3N0c1Jlc3BvbnNlLCBHZXRVc2VyUXVlcnksIEdldFVzZXJzUmVzcG9uc2UsIFBhdGNoVXNlclJlcXVlc3QsIFBvc3RDYW5jZWxSZXF1ZXN0LCBQb3N0Q2FuY2VsUmVzcG9uc2UsIFBvc3RMb2dpblJlcXVlc3QsIFBvc3RQYWlyUmVxdWVzdCwgUG9zdFBhaXJSZXNwb25zZTEsIFBvc3RQYWlyUmVzcG9uc2UyLCBQb3N0VXNlclJlcXVlc3QsIFBvc3RXYWtlVXBSZXF1ZXN0LCBQb3N0SG9zdFJlcXVlc3QsIFBvc3RIb3N0UmVzcG9uc2UsIFVuZGV0YWlsZWRIb3N0LCBQYXRjaEhvc3RSZXF1ZXN0LCBHZXRSb2xlc1Jlc3BvbnNlLCBVbmRldGFpbGVkUm9sZSwgR2V0Um9sZVJlc3BvbnNlLCBHZXRSb2xlUXVlcnksIERlbGV0ZVJvbGVRdWVyeSwgUGF0Y2hSb2xlUmVxdWVzdCwgUG9zdFJvbGVSZXNwb25zZSwgUG9zdFJvbGVSZXF1ZXN0LCBEZXRhaWxlZFJvbGUgfSBmcm9tICIuL2FwaV9iaW5kaW5ncy5qcyI7CmltcG9ydCB7IHNob3dOb3RpZmljYXRpb24gfSBmcm9tICIuL2NvbXBvbmVudC9ub3RpZmljYXRpb24uanMiOwppbXBvcnQgeyBzaG93TWVzc2FnZSwgc2hvd01vZGFsIH0gZnJvbSAiLi9jb21wb25lbnQvbW9kYWwvaW5kZXguanMiOwppbXBvcnQgeyBBcGlVc2VyUGFzc3dvcmRQcm9tcHQgfSBmcm9tICIuL2NvbXBvbmVudC9tb2RhbC9sb2dpbi5qcyI7CmltcG9ydCB7IGJ1aWxkVXJsIH0gZnJvbSAiLi9jb25maWdfLmpzIjsKCi8vIElNUE9SVEFOVDogdGhpcyBzaG91bGQgYmUgYSBiaXQgYmlnZ2VyIHRoYW4gdGhlIG1vb25saWdodC1jb21tb24gcmVxd2VzdCBiYWNrZW5kIHRpbWVvdXQgaWYgc29tZSBob3N0cyBhcmUgb2ZmbGluZSEKY29uc3QgQVBJX1RJTUVPVVQgPSAxMjAwMAoKLy8gLS0gQW55IGVycm9ycyByZWxhdGVkIHRvIGF1dGggd2lsbCByZWxvYWQgcGFnZSAtPiBzaG93IHRoZSBhdXRoIG1vZGFsCmZ1bmN0aW9uIGhhbmRsZUVycm9yKGV2ZW50OiBFcnJvckV2ZW50KSB7CiAgICBvbkVycm9yKGV2ZW50LmVycm9yKQp9CmZ1bmN0aW9uIGhhbmRsZVJlamVjdGlvbihldmVudDogUHJvbWlzZVJlamVjdGlvbkV2ZW50KSB7CiAgICBvbkVycm9yKGV2ZW50LnJlYXNvbikKfQpmdW5jdGlvbiBvbkVycm9yKGVycm9yOiBhbnkpIHsKICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEZldGNoRXJyb3IpIHsKICAgICAgICBjb25zdCByZXNwb25zZSA9IGVycm9yLmdldFJlc3BvbnNlKCkKICAgICAgICAvLyA0MDEgPSBVbmF1dGhvcml6ZWQKICAgICAgICBpZiAocmVzcG9uc2U/LnN0YXR1cyA9PSA0MDEpIHsKICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgICAgfQogICAgfQp9Cgp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBoYW5kbGVFcnJvcikKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInVuaGFuZGxlZHJlamVjdGlvbiIsIGhhbmRsZVJlamVjdGlvbikKCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRBcGkoKTogUHJvbWlzZTxBcGk+IHsKICAgIGNvbnN0IGhvc3RfdXJsID0gYnVpbGRVcmwoIi9hcGkiKQoKICAgIGxldCBhcGkgPSB7IGhvc3RfdXJsLCBiZWFyZXI6IG51bGwsIHVzZXI6IG51bGwsIHJvbGU6IG51bGwgfQoKICAgIGlmIChhd2FpdCBhcGlBdXRoZW50aWNhdGUoYXBpKSkgewogICAgICAgIHJldHVybiBhcGkKICAgIH0KCiAgICBsZXQgbmV3QXBpOiBBcGkKICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgY29uc3QgYXBpID0gYXdhaXQgdHJ5TG9naW4oKQogICAgICAgIGlmIChhcGkpIHsKICAgICAgICAgICAgbmV3QXBpID0gYXBpCiAgICAgICAgICAgIGJyZWFrCiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBuZXdBcGkKfQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gdHJ5TG9naW4oKTogUHJvbWlzZTxBcGkgfCBudWxsPiB7CiAgICBjb25zdCBob3N0X3VybCA9IGJ1aWxkVXJsKCIvYXBpIikKCiAgICBsZXQgYXBpID0geyBob3N0X3VybCwgYmVhcmVyOiBudWxsLCB1c2VyOiBudWxsLCByb2xlOiBudWxsIH0KCiAgICBjb25zdCBwcm9tcHQgPSBuZXcgQXBpVXNlclBhc3N3b3JkUHJvbXB0KCkKICAgIGNvbnN0IHVzZXJBdXRoID0gYXdhaXQgc2hvd01vZGFsKHByb21wdCkKCiAgICBpZiAodXNlckF1dGggPT0gbnVsbCkgewogICAgICAgIHJldHVybiBudWxsCiAgICB9CgogICAgaWYgKGF3YWl0IGFwaUxvZ2luKGFwaSwgdXNlckF1dGgpKSB7CiAgICAgICAgaWYgKCFhd2FpdCBhcGlBdXRoZW50aWNhdGUoYXBpKSkgewogICAgICAgICAgICBzaG93Tm90aWZpY2F0aW9uKCJMb2dpbiB3YXMgc3VjY2Vzc2Z1bCBidXQgYXV0aGVudGljYXRpb24gZG9lc24ndCB3b3JrISIpCiAgICAgICAgfQogICAgICAgIHJldHVybiBhcGkKICAgIH0gZWxzZSB7CiAgICAgICAgYXdhaXQgc2hvd01lc3NhZ2UoIkNyZWRlbnRpYWxzIGFyZSBub3QgVmFsaWQiKQogICAgICAgIHJldHVybiBudWxsCiAgICB9Cn0KCmNvbnN0IEdFVCA9ICJHRVQiCmNvbnN0IFBPU1QgPSAiUE9TVCIKY29uc3QgUEFUQ0ggPSAiUEFUQ0giCmNvbnN0IERFTEVURSA9ICJERUxFVEUiCgpleHBvcnQgdHlwZSBBcGkgPSB7CiAgICBob3N0X3VybDogc3RyaW5nCiAgICBiZWFyZXI6IHN0cmluZyB8IG51bGwsCiAgICAvLyBVc2VyIGNhY2hlCiAgICB1c2VyOiBEZXRhaWxlZFVzZXIgfCBudWxsLAogICAgcm9sZTogRGV0YWlsZWRSb2xlIHwgbnVsbCwKfQoKZXhwb3J0IHR5cGUgQXBpRmV0Y2hJbml0ID0gewogICAganNvbj86IGFueSwKICAgIHF1ZXJ5PzogYW55LAogICAgbm9UaW1lb3V0PzogYm9vbGVhbiwKfQoKZXhwb3J0IGZ1bmN0aW9uIGlzRGV0YWlsZWRIb3N0KGhvc3Q6IFVuZGV0YWlsZWRIb3N0IHwgRGV0YWlsZWRIb3N0KTogaG9zdCBpcyBEZXRhaWxlZEhvc3QgewogICAgcmV0dXJuIChob3N0IGFzIERldGFpbGVkSG9zdCkuaHR0cHNfcG9ydCAhPT0gdW5kZWZpbmVkCn0KCmZ1bmN0aW9uIGJ1aWxkUmVxdWVzdChhcGk6IEFwaSwgZW5kcG9pbnQ6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIGluaXQ/OiBBcGlGZXRjaEluaXQpOiBbc3RyaW5nLCBSZXF1ZXN0SW5pdF0gewogICAgY29uc3QgcXVlcnlPYmogPSBpbml0Py5xdWVyeSB8fCB7fTsKICAgIGNvbnN0IHF1ZXJ5UGFydHMgPSBbXTsKICAgIGZvciAoY29uc3Qga2V5IGluIHF1ZXJ5T2JqKSB7CiAgICAgICAgLy8gUmVtb3ZlIGFsbCBudWxsIHZhbHVlcyBmcm9tIHF1ZXJ5LCB0aGVzZSBjYXVzZSBwcm9ibGVtcyBpbiBydXN0CiAgICAgICAgaWYgKHF1ZXJ5T2JqW2tleV0gIT0gbnVsbCkgewogICAgICAgICAgICBxdWVyeVBhcnRzLnB1c2goCiAgICAgICAgICAgICAgICBlbmNvZGVVUklDb21wb25lbnQoa2V5KSArICI9IiArIGVuY29kZVVSSUNvbXBvbmVudChxdWVyeU9ialtrZXldKQogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KICAgIGNvbnN0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJ0cy5sZW5ndGggPiAwID8gIj8iICsgcXVlcnlQYXJ0cy5qb2luKCImIikgOiAiIjsKCiAgICBjb25zdCB1cmwgPSBgJHthcGkuaG9zdF91cmx9JHtlbmRwb2ludH0ke3F1ZXJ5U3RyaW5nfWAKCiAgICBjb25zdCBoZWFkZXJzOiBhbnkgPSB7CiAgICB9OwoKICAgIGlmIChhcGkuYmVhcmVyKSB7CiAgICAgICAgaGVhZGVyc1siQXV0aG9yaXphdGlvbiJdID0gYEJlYXJlciAke2FwaS5iZWFyZXJ9YDsKICAgIH0KCiAgICBpZiAoaW5pdD8uanNvbikgewogICAgICAgIGhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdID0gImFwcGxpY2F0aW9uL2pzb24iOwogICAgfQoKICAgIGNvbnN0IHJlcXVlc3Q6IFJlcXVlc3RJbml0ID0gewogICAgICAgIG1ldGhvZDogbWV0aG9kLAogICAgICAgIGhlYWRlcnMsCiAgICAgICAgYm9keTogaW5pdD8uanNvbiAmJiBKU09OLnN0cmluZ2lmeShpbml0Lmpzb24pLAogICAgICAgIGNyZWRlbnRpYWxzOiAiaW5jbHVkZSIKICAgIH0KCiAgICByZXR1cm4gW3VybCwgcmVxdWVzdF0KfQoKZXhwb3J0IGNsYXNzIEZldGNoRXJyb3IgZXh0ZW5kcyBFcnJvciB7CiAgICBwcml2YXRlIHJlc3BvbnNlPzogUmVzcG9uc2UKCiAgICBjb25zdHJ1Y3Rvcih0eXBlOiAidGltZW91dCIsIGVuZHBvaW50OiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nKQogICAgY29uc3RydWN0b3IodHlwZTogImZhaWxlZCIsIGVuZHBvaW50OiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCByZXNwb25zZTogUmVzcG9uc2UsIHJlYXNvbj86IHN0cmluZykKICAgIGNvbnN0cnVjdG9yKHR5cGU6ICJ1bmtub3duIiwgZW5kcG9pbnQ6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIGVycm9yOiBFcnJvcikKCiAgICBjb25zdHJ1Y3Rvcih0eXBlOiAidGltZW91dCIgfCAiZmFpbGVkIiB8ICJ1bmtub3duIiwgZW5kcG9pbnQ6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIHJlc3BvbnNlT3JFcnJvcj86IFJlc3BvbnNlIHwgYW55LCByZWFzb24/OiBzdHJpbmcpIHsKICAgICAgICBpZiAodHlwZSA9PSAidGltZW91dCIpIHsKICAgICAgICAgICAgc3VwZXIoYGZhaWxlZCB0byBmZXRjaCAke21ldGhvZH0gYXQgJHtlbmRwb2ludH0gYmVjYXVzZSBvZiB0aW1lb3V0YCkKICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gImZhaWxlZCIpIHsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSByZXNwb25zZU9yRXJyb3IgYXMgUmVzcG9uc2UKICAgICAgICAgICAgc3VwZXIoYGZhaWxlZCB0byBmZXRjaCAke21ldGhvZH0gYXQgJHtlbmRwb2ludH0gd2l0aCBjb2RlICR7cmVzcG9uc2U/LnN0YXR1c30gJHtyZWFzb24gPyBgYmVjYXVzZSBvZiAke3JlYXNvbn1gIDogIiJ9YCkKCiAgICAgICAgICAgIHRoaXMucmVzcG9uc2UgPSByZXNwb25zZQogICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAidW5rbm93biIpIHsKICAgICAgICAgICAgY29uc3QgZXJyb3IgPSByZXNwb25zZU9yRXJyb3IgYXMgRXJyb3IKICAgICAgICAgICAgc3VwZXIoYGZhaWxlZCB0byBmZXRjaCAke21ldGhvZH0gYXQgJHtlbmRwb2ludH0gYmVjYXVzZSBvZiAke2Vycm9yfWApCiAgICAgICAgfQogICAgfQoKICAgIGdldFJlc3BvbnNlKCk6IFJlc3BvbnNlIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2UgPz8gbnVsbAogICAgfQp9CgpjbGFzcyBTdHJlYW1lZEpzb25SZXNwb25zZTxJbml0aWFsLCBPdGhlcj4gewogICAgcmVzcG9uc2U6IEluaXRpYWwKCiAgICBwcml2YXRlIHJlYWRlcgogICAgcHJpdmF0ZSBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCkKICAgIHByaXZhdGUgYnVmZmVyZWRUZXh0ID0gIiIKCiAgICBjb25zdHJ1Y3Rvcihib2R5OiBSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIsIHJlc3BvbnNlOiBJbml0aWFsKSB7CiAgICAgICAgdGhpcy5yZWFkZXIgPSBib2R5CiAgICAgICAgdGhpcy5yZXNwb25zZSA9IHJlc3BvbnNlCiAgICB9CgogICAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPE90aGVyIHwgbnVsbD4gewogICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHRoaXMucmVhZGVyLnJlYWQoKQoKICAgICAgICAgICAgaWYgKGRvbmUpIHsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuYnVmZmVyZWRUZXh0ICs9IHRoaXMuZGVjb2Rlci5kZWNvZGUodmFsdWUpCgogICAgICAgICAgICBjb25zdCBzcGxpdCA9IHRoaXMuYnVmZmVyZWRUZXh0LnNwbGl0KCJcbiIsIDIpCiAgICAgICAgICAgIGlmIChzcGxpdC5sZW5ndGggPT0gMikgewogICAgICAgICAgICAgICAgdGhpcy5idWZmZXJlZFRleHQgPSBzcGxpdFsxXQoKICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSBzcGxpdFswXQogICAgICAgICAgICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UodGV4dCkKCiAgICAgICAgICAgICAgICByZXR1cm4ganNvbgogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hBcGkoYXBpOiBBcGksIGVuZHBvaW50OiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCBpbml0PzogeyByZXNwb25zZT86ICJqc29uIiB9ICYgQXBpRmV0Y2hJbml0LCB0aW1lb3V0PzogbnVtYmVyKTogUHJvbWlzZTxhbnk+CmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaEFwaShhcGk6IEFwaSwgZW5kcG9pbnQ6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIGluaXQ6IHsgcmVzcG9uc2U6ICJpZ25vcmUiIH0gJiBBcGlGZXRjaEluaXQsIHRpbWVvdXQ/OiBudW1iZXIpOiBQcm9taXNlPFJlc3BvbnNlPgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gZmV0Y2hBcGk8SW5pdGlhbCwgT3RoZXI+KGFwaTogQXBpLCBlbmRwb2ludDogc3RyaW5nLCBtZXRob2Q6IHN0cmluZywgaW5pdDogeyByZXNwb25zZTogImpzb25TdHJlYW1pbmciIH0gJiBBcGlGZXRjaEluaXQsIHRpbWVvdXQ/OiBudW1iZXIpOiBQcm9taXNlPFN0cmVhbWVkSnNvblJlc3BvbnNlPEluaXRpYWwsIE90aGVyPj4KCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaEFwaShhcGk6IEFwaSwgZW5kcG9pbnQ6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcgPSBHRVQsIGluaXQ/OiB7IHJlc3BvbnNlPzogImpzb24iIHwgImlnbm9yZSIgfCAianNvblN0cmVhbWluZyIgfSAmIEFwaUZldGNoSW5pdCwgdGltZW91dDogbnVtYmVyID0gQVBJX1RJTUVPVVQpIHsKICAgIGNvbnN0IFt1cmwsIHJlcXVlc3RdID0gYnVpbGRSZXF1ZXN0KGFwaSwgZW5kcG9pbnQsIG1ldGhvZCwgaW5pdCkKCiAgICByZXF1ZXN0LnNpZ25hbCA9IEFib3J0U2lnbmFsLnRpbWVvdXQodGltZW91dCkKCiAgICBsZXQgcmVzcG9uc2UKICAgIHRyeSB7CiAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHJlcXVlc3QpCiAgICB9IGNhdGNoIChlOiBhbnkpIHsKICAgICAgICB0aHJvdyBuZXcgRmV0Y2hFcnJvcigidW5rbm93biIsIGVuZHBvaW50LCBtZXRob2QsIGUpCiAgICB9CgogICAgaWYgKCFyZXNwb25zZS5vaykgewogICAgICAgIHRocm93IG5ldyBGZXRjaEVycm9yKCJmYWlsZWQiLCBlbmRwb2ludCwgbWV0aG9kLCByZXNwb25zZSkKICAgIH0KCiAgICBpZiAoaW5pdD8ucmVzcG9uc2UgPT0gImlnbm9yZSIpIHsKICAgICAgICByZXR1cm4gcmVzcG9uc2UKICAgIH0KCiAgICBpZiAoaW5pdD8ucmVzcG9uc2UgPT0gdW5kZWZpbmVkIHx8IGluaXQucmVzcG9uc2UgPT0gImpzb24iKSB7CiAgICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKQoKICAgICAgICByZXR1cm4ganNvbgogICAgfSBlbHNlIGlmIChpbml0Py5yZXNwb25zZSA9PSAianNvblN0cmVhbWluZyIpIHsKICAgICAgICBpZiAoIXJlc3BvbnNlLmJvZHkpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEZldGNoRXJyb3IoImZhaWxlZCIsIGVuZHBvaW50LCBtZXRob2QsIHJlc3BvbnNlKQogICAgICAgIH0KCiAgICAgICAgLy8gQHRzLWlnbm9yZQogICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBTdHJlYW1lZEpzb25SZXNwb25zZShyZXNwb25zZS5ib2R5Py5nZXRSZWFkZXIoKSkKICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgc3RyZWFtLm5leHQoKQogICAgICAgIHN0cmVhbS5yZXNwb25zZSA9IGRhdGEKCiAgICAgICAgcmV0dXJuIHN0cmVhbQogICAgfQp9CgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpTG9naW4oYXBpOiBBcGksIHJlcXVlc3Q6IFBvc3RMb2dpblJlcXVlc3QpOiBQcm9taXNlPGJvb2xlYW4+IHsKICAgIGxldCByZXNwb25zZQoKICAgIHRyeSB7CiAgICAgICAgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEFwaShhcGksICIvbG9naW4iLCAicG9zdCIsIHsKICAgICAgICAgICAganNvbjogcmVxdWVzdCwKICAgICAgICAgICAgcmVzcG9uc2U6ICJpZ25vcmUiCiAgICAgICAgfSkKICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEZldGNoRXJyb3IpIHsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBlLmdldFJlc3BvbnNlKCkKCiAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiAocmVzcG9uc2Uuc3RhdHVzID09IDQwMSB8fCByZXNwb25zZS5zdGF0dXMgPT0gNDA0KSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBzaG93Tm90aWZpY2F0aW9uKGUubWVzc2FnZSkKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB0cnVlCn0KCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcGlMb2dvdXQoYXBpOiBBcGkpOiBQcm9taXNlPGJvb2xlYW4+IHsKICAgIGxldCByZXNwb25zZQogICAgdHJ5IHsKICAgICAgICByZXNwb25zZSA9IGF3YWl0IGZldGNoQXBpKGFwaSwgIi9sb2dvdXQiLCAicG9zdCIsIHsgcmVzcG9uc2U6ICJpZ25vcmUiIH0pCiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgdGhyb3cgZQogICAgfQoKICAgIHJldHVybiB0cnVlCn0KCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcGlBdXRoZW50aWNhdGUoYXBpOiBBcGksIHJldHJ5T25GYWlsPzogYm9vbGVhbik6IFByb21pc2U8Ym9vbGVhbj4gewogICAgY29uc3QgcmV0cnlPbkZhaWxfID0gcmV0cnlPbkZhaWwgPT09IHVuZGVmaW5lZCA/IHRydWUgOiByZXRyeU9uRmFpbAoKICAgIGxldCByZXNwb25zZQogICAgdHJ5IHsKICAgICAgICByZXNwb25zZSA9IGF3YWl0IGZldGNoQXBpKGFwaSwgIi9hdXRoZW50aWNhdGUiLCBHRVQsIHsgcmVzcG9uc2U6ICJpZ25vcmUiIH0pCiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBGZXRjaEVycm9yKSB7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gZS5nZXRSZXNwb25zZSgpCiAgICAgICAgICAgIGlmIChyZXNwb25zZT8uc3RhdHVzID09IDQwMSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2U/LnN0YXR1cyA9PSA0MDkgJiYgcmV0cnlPbkZhaWxfKSB7CiAgICAgICAgICAgICAgICAvLyA0MDkgPSBDb25mbGljdCwgU2Vzc2lvblRva2VuTm90Rm91bmQgLT4gcmVxdWlyZXMgYSBuZXcgcmVxdWVzdAogICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGFwaUF1dGhlbnRpY2F0ZShhcGksIGZhbHNlKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhyb3cgZQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRocm93IGUKICAgIH0KCiAgICByZXR1cm4gcmVzcG9uc2UgIT0gbnVsbAp9CgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpR2V0VXNlcihhcGk6IEFwaSwgcXVlcnk/OiBHZXRVc2VyUXVlcnkpOiBQcm9taXNlPERldGFpbGVkVXNlcj4gewogICAgaWYgKCFxdWVyeSB8fCAocXVlcnkubmFtZSA9PSBudWxsICYmIHF1ZXJ5LnVzZXJfaWQgPT0gbnVsbCkpIHsKICAgICAgICBpZiAoYXBpLnVzZXIpIHsKICAgICAgICAgICAgcmV0dXJuIGFwaS51c2VyCiAgICAgICAgfQogICAgfQoKICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hBcGkoYXBpLCAiL3VzZXIiLCBHRVQsIHsKICAgICAgICBxdWVyeTogcXVlcnkgPz8geyBuYW1lOiBudWxsLCB1c2VyX2lkOiBudWxsIH0KICAgIH0pCgogICAgcmV0dXJuIHJlc3BvbnNlIGFzIERldGFpbGVkVXNlcgp9CmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcGlHZXRVc2VycyhhcGk6IEFwaSk6IFByb21pc2U8R2V0VXNlcnNSZXNwb25zZT4gewogICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEFwaShhcGksICIvdXNlcnMiLCBHRVQpCgogICAgcmV0dXJuIHJlc3BvbnNlIGFzIEdldFVzZXJzUmVzcG9uc2UKfQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpUG9zdFVzZXIoYXBpOiBBcGksIGRhdGE6IFBvc3RVc2VyUmVxdWVzdCk6IFByb21pc2U8RGV0YWlsZWRVc2VyPiB7CiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoQXBpKGFwaSwgIi91c2VyIiwgUE9TVCwgeyBqc29uOiBkYXRhIH0pCgogICAgcmV0dXJuIHJlc3BvbnNlIGFzIERldGFpbGVkVXNlcgp9CmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcGlQYXRjaFVzZXIoYXBpOiBBcGksIGRhdGE6IFBhdGNoVXNlclJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IGZldGNoQXBpKGFwaSwgIi91c2VyIiwgUEFUQ0gsIHsKICAgICAgICBqc29uOiBkYXRhLAogICAgICAgIHJlc3BvbnNlOiAiaWdub3JlIgogICAgfSkKfQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpRGVsZXRlVXNlcihhcGk6IEFwaSwgZGF0YTogRGVsZXRlVXNlclJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IGZldGNoQXBpKGFwaSwgIi91c2VyIiwgREVMRVRFLCB7CiAgICAgICAganNvbjogZGF0YSwKICAgICAgICByZXNwb25zZTogImlnbm9yZSIKICAgIH0pCn0KCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcGlHZXRSb2xlcyhhcGk6IEFwaSk6IFByb21pc2U8R2V0Um9sZXNSZXNwb25zZT4gewogICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEFwaShhcGksICIvcm9sZXMiLCBHRVQsIHsKICAgICAgICByZXNwb25zZTogImpzb24iCiAgICB9KQoKICAgIHJldHVybiByZXNwb25zZSBhcyBHZXRSb2xlc1Jlc3BvbnNlCn0KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaUdldFJvbGUoYXBpOiBBcGksIHF1ZXJ5OiBHZXRSb2xlUXVlcnkpOiBQcm9taXNlPEdldFJvbGVSZXNwb25zZT4gewogICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEFwaShhcGksICIvcm9sZSIsIEdFVCwgewogICAgICAgIHF1ZXJ5LAogICAgICAgIHJlc3BvbnNlOiAianNvbiIKICAgIH0pCiAgICByZXR1cm4gcmVzcG9uc2UgYXMgR2V0Um9sZVJlc3BvbnNlCn0KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaVBvc3RSb2xlKGFwaTogQXBpLCByZXF1ZXN0OiBQb3N0Um9sZVJlcXVlc3QpOiBQcm9taXNlPFBvc3RSb2xlUmVzcG9uc2U+IHsKICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hBcGkoYXBpLCAiL3JvbGUiLCBQT1NULCB7CiAgICAgICAganNvbjogcmVxdWVzdCwKICAgICAgICByZXNwb25zZTogImpzb24iCiAgICB9KTsKCiAgICByZXR1cm4gcmVzcG9uc2UgYXMgUG9zdFJvbGVSZXNwb25zZQp9CmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcGlQYXRjaFJvbGUoYXBpOiBBcGksIHJlcXVlc3Q6IFBhdGNoUm9sZVJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IGZldGNoQXBpKGFwaSwgIi9yb2xlIiwgUEFUQ0gsIHsKICAgICAgICBqc29uOiByZXF1ZXN0LAogICAgICAgIHJlc3BvbnNlOiAiaWdub3JlIiwKICAgIH0pCn0KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaURlbGV0ZVJvbGUoYXBpOiBBcGksIHF1ZXJ5OiBEZWxldGVSb2xlUXVlcnkpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IGZldGNoQXBpKGFwaSwgIi9yb2xlIiwgREVMRVRFLCB7CiAgICAgICAgcXVlcnksCiAgICAgICAgcmVzcG9uc2U6ICJpZ25vcmUiLAogICAgfSkKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaUdldEhvc3RzKGFwaTogQXBpKTogUHJvbWlzZTxTdHJlYW1lZEpzb25SZXNwb25zZTxHZXRIb3N0c1Jlc3BvbnNlLCBVbmRldGFpbGVkSG9zdD4+IHsKICAgIHJldHVybiBhd2FpdCBmZXRjaEFwaTxHZXRIb3N0c1Jlc3BvbnNlLCBVbmRldGFpbGVkSG9zdD4oYXBpLCAiL2hvc3RzIiwgR0VULCB7IHJlc3BvbnNlOiAianNvblN0cmVhbWluZyIgfSkKfQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpR2V0SG9zdChhcGk6IEFwaSwgcXVlcnk6IEdldEhvc3RRdWVyeSk6IFByb21pc2U8RGV0YWlsZWRIb3N0PiB7CiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoQXBpKGFwaSwgIi9ob3N0IiwgR0VULCB7IHF1ZXJ5IH0pCgogICAgcmV0dXJuIChyZXNwb25zZSBhcyBHZXRIb3N0UmVzcG9uc2UpLmhvc3QKfQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpUG9zdEhvc3QoYXBpOiBBcGksIGRhdGE6IFBvc3RIb3N0UmVxdWVzdCk6IFByb21pc2U8RGV0YWlsZWRIb3N0PiB7CiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoQXBpKGFwaSwgIi9ob3N0IiwgInBvc3QiLCB7IGpzb246IGRhdGEgfSkKCiAgICByZXR1cm4gKHJlc3BvbnNlIGFzIFBvc3RIb3N0UmVzcG9uc2UpLmhvc3QKfQpleHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpUGF0Y2hIb3N0KGFwaTogQXBpLCBkYXRhOiBQYXRjaEhvc3RSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7CiAgICBhd2FpdCBmZXRjaEFwaShhcGksICIvaG9zdCIsIFBBVENILCB7CiAgICAgICAganNvbjogZGF0YSwKICAgICAgICByZXNwb25zZTogImlnbm9yZSIKICAgIH0pCn0KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaURlbGV0ZUhvc3QoYXBpOiBBcGksIHF1ZXJ5OiBEZWxldGVIb3N0UXVlcnkpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IGZldGNoQXBpKGFwaSwgIi9ob3N0IiwgImRlbGV0ZSIsIHsgcXVlcnksIHJlc3BvbnNlOiAiaWdub3JlIiB9KQp9CgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gYXBpUG9zdFBhaXIoYXBpOiBBcGksIHJlcXVlc3Q6IFBvc3RQYWlyUmVxdWVzdCk6IFByb21pc2U8U3RyZWFtZWRKc29uUmVzcG9uc2U8UG9zdFBhaXJSZXNwb25zZTEsIFBvc3RQYWlyUmVzcG9uc2UyPj4gewogICAgcmV0dXJuIGF3YWl0IGZldGNoQXBpKGFwaSwgIi9wYWlyIiwgInBvc3QiLCB7CiAgICAgICAganNvbjogcmVxdWVzdCwKICAgICAgICByZXNwb25zZTogImpzb25TdHJlYW1pbmciLAogICAgICAgIG5vVGltZW91dDogdHJ1ZQogICAgfSkKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaVdha2VVcChhcGk6IEFwaSwgcmVxdWVzdDogUG9zdFdha2VVcFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHsKICAgIGF3YWl0IGZldGNoQXBpKGFwaSwgIi9ob3N0L3dha2UiLCAicG9zdCIsIHsKICAgICAgICBqc29uOiByZXF1ZXN0LAogICAgICAgIHJlc3BvbnNlOiAiaWdub3JlIgogICAgfSkKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaUdldEFwcHMoYXBpOiBBcGksIHF1ZXJ5OiBHZXRBcHBzUXVlcnkpOiBQcm9taXNlPEFycmF5PEFwcD4+IHsKICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hBcGkoYXBpLCAiL2FwcHMiLCBHRVQsIHsgcXVlcnkgfSkgYXMgR2V0QXBwc1Jlc3BvbnNlCgogICAgcmV0dXJuIHJlc3BvbnNlLmFwcHMKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaUdldEFwcEltYWdlKGFwaTogQXBpLCBxdWVyeTogR2V0QXBwSW1hZ2VRdWVyeSk6IFByb21pc2U8QmxvYj4gewogICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaEFwaShhcGksICIvYXBwL2ltYWdlIiwgR0VULCB7CiAgICAgICAgcXVlcnksCiAgICAgICAgcmVzcG9uc2U6ICJpZ25vcmUiCiAgICB9LAogICAgICAgIDYwMDAwKQoKICAgIHJldHVybiBhd2FpdCByZXNwb25zZS5ibG9iKCkKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFwaUhvc3RDYW5jZWwoYXBpOiBBcGksIHJlcXVlc3Q6IFBvc3RDYW5jZWxSZXF1ZXN0KTogUHJvbWlzZTxQb3N0Q2FuY2VsUmVzcG9uc2U+IHsKICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2hBcGkoYXBpLCAiL2hvc3QvY2FuY2VsIiwgUE9TVCwgewogICAgICAgIGpzb246IHJlcXVlc3QKICAgIH0pCgogICAgcmV0dXJuIHJlc3BvbnNlIGFzIFBvc3RDYW5jZWxSZXNwb25zZQp9Cg=="},{"path":"web/component/context_menu.ts","sha256":"446a9f0daeaded99b3aa20fcc83ca995fd994b9484ed63bf193133513c692a74","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAiLi4vY29tcG9uZW50L2luZGV4LmpzIgppbXBvcnQgeyBnZXRDdXJyZW50TGFuZ3VhZ2UsIGdldFRyYW5zbGF0aW9ucyB9IGZyb20gIi4uL2kxOG4uanMiCmltcG9ydCB7IHNob3dOb3RpZmljYXRpb24gfSBmcm9tICIuL25vdGlmaWNhdGlvbi5qcyIKaW1wb3J0IHsgTGlzdENvbXBvbmVudCB9IGZyb20gIi4vbGlzdC5qcyIKCmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gcmVtb3ZlQ29udGV4dE1lbnUoKSkKCmV4cG9ydCB0eXBlIENvbnRleHRNZW51RWxlbWVudCA9IHsKICAgIG5hbWU6IHN0cmluZywKICAgIGNhbGxiYWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZAogICAgY2xhc3Nlcz86IHN0cmluZ1tdCn0KCmV4cG9ydCB0eXBlIENvbnRleHRNZW51SW5pdCA9IHsKICAgIGVsZW1lbnRzPzogQ29udGV4dE1lbnVFbGVtZW50W10KfQoKY29uc3QgY29udGV4dE1lbnVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRleHQtbWVudSIpCmNvbnN0IGNvbnRleHRNZW51TGlzdCA9IG5ldyBMaXN0Q29tcG9uZW50PENvbnRleHRNZW51RWxlbWVudENvbXBvbmVudD4oW10sIHsKICAgIGxpc3RDbGFzc2VzOiBbImNvbnRleHQtbWVudS1saXN0Il0KfSkKCmV4cG9ydCBmdW5jdGlvbiBzZXRDb250ZXh0TWVudShldmVudDogTW91c2VFdmVudCwgaW5pdD86IENvbnRleHRNZW51SW5pdCkgewogICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuY29tbW9uCiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpCiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKQoKICAgIGlmIChjb250ZXh0TWVudUVsZW1lbnQgPT0gbnVsbCkgewogICAgICAgIHNob3dOb3RpZmljYXRpb24oaS5taXNzaW5nQ29udGV4dE1lbnUpCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGNvbnRleHRNZW51RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgibGVmdCIsIGAke2V2ZW50LmNsaWVudFh9cHhgKQogICAgY29udGV4dE1lbnVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCJ0b3AiLCBgJHtldmVudC5jbGllbnRZfXB4YCkKCiAgICBjb250ZXh0TWVudUxpc3QuY2xlYXIoKQoKICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBpbml0Py5lbGVtZW50cyA/PyBbXSkgewogICAgICAgIGNvbnRleHRNZW51TGlzdC5hcHBlbmQobmV3IENvbnRleHRNZW51RWxlbWVudENvbXBvbmVudChlbGVtZW50KSkKICAgIH0KCiAgICBjb250ZXh0TWVudUxpc3QubW91bnQoY29udGV4dE1lbnVFbGVtZW50KQogICAgY29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImNvbnRleHQtbWVudS1kaXNhYmxlZCIpCn0KCmV4cG9ydCBmdW5jdGlvbiByZW1vdmVDb250ZXh0TWVudSgpIHsKICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmNvbW1vbgogICAgaWYgKGNvbnRleHRNZW51RWxlbWVudCA9PSBudWxsKSB7CiAgICAgICAgc2hvd05vdGlmaWNhdGlvbihpLm1pc3NpbmdDb250ZXh0TWVudSkKICAgICAgICByZXR1cm47CiAgICB9CgogICAgY29udGV4dE1lbnVFbGVtZW50LmNsYXNzTGlzdC5hZGQoImNvbnRleHQtbWVudS1kaXNhYmxlZCIpCn0KCmNsYXNzIENvbnRleHRNZW51RWxlbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIENvbXBvbmVudCB7CiAgICBwcml2YXRlIG5hbWVFbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKQoKICAgIGNvbnN0cnVjdG9yKGVsZW1lbnQ6IENvbnRleHRNZW51RWxlbWVudCkgewogICAgICAgIHRoaXMubmFtZUVsZW1lbnQuaW5uZXJUZXh0ID0gZWxlbWVudC5uYW1lCgogICAgICAgIHRoaXMubmFtZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiY29udGV4dC1tZW51LWVsZW1lbnQiKQoKICAgICAgICB0aGlzLm5hbWVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4gewogICAgICAgICAgICBlbGVtZW50LmNhbGxiYWNrKGV2ZW50KQogICAgICAgIH0pCgogICAgICAgIC8vIEFsc28gcmVnaXN0ZXIgcmlnaHQgY2xpY2sgZm9yIGNlcnRhaW4gZGV2aWNlcyB3aGljaCBtYWtlIGxlZnQgY2xpY2sgaGFyZDogaHR0cHM6Ly9naXRodWIuY29tL01yQ3JlYXRpdjMwMDEvbW9vbmxpZ2h0LXdlYi1zdHJlYW0vaXNzdWVzLzU1CiAgICAgICAgdGhpcy5uYW1lRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIGV2ZW50ID0+IHsKICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICByZW1vdmVDb250ZXh0TWVudSgpCgogICAgICAgICAgICBlbGVtZW50LmNhbGxiYWNrKGV2ZW50KQogICAgICAgIH0sIHsgcGFzc2l2ZTogZmFsc2UgfSkKCiAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NlcykgewogICAgICAgICAgICB0aGlzLm5hbWVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4uZWxlbWVudC5jbGFzc2VzKQogICAgICAgIH0KICAgIH0KCiAgICBtb3VudChwYXJlbnQ6IEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5uYW1lRWxlbWVudCkKICAgIH0KICAgIHVubW91bnQocGFyZW50OiBFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMubmFtZUVsZW1lbnQpCiAgICB9Cn0K"},{"path":"web/component/fetch_list.ts","sha256":"ba7156c0cbe60eab86493428da9f329a92f98b9003cadf01ac2591b981e77030","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50LCBGZXRjaENvbXBvbmVudCB9IGZyb20gIi4vaW5kZXguanMiCmltcG9ydCB7IExpc3RDb21wb25lbnQsIExpc3RDb21wb25lbnRJbml0IH0gZnJvbSAiLi9saXN0LmpzIgoKZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZldGNoTGlzdENvbXBvbmVudDxEYXRhLCBUIGV4dGVuZHMgQ29tcG9uZW50PiBpbXBsZW1lbnRzIEZldGNoQ29tcG9uZW50PERhdGE+LCBDb21wb25lbnQgewogICAgcHJvdGVjdGVkIGxpc3Q6IExpc3RDb21wb25lbnQ8VD4KCiAgICBjb25zdHJ1Y3RvcihsaXN0SW5pdD86IExpc3RDb21wb25lbnRJbml0KSB7CiAgICAgICAgdGhpcy5saXN0ID0gbmV3IExpc3RDb21wb25lbnQ8VD4oW10sIGxpc3RJbml0KQogICAgfQoKICAgIHByb3RlY3RlZCBhYnN0cmFjdCB1cGRhdGVDb21wb25lbnREYXRhKGNvbXBvbmVudDogVCwgZGF0YTogRGF0YSk6IHZvaWQKCiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0Q29tcG9uZW50RGF0YUlkKGNvbXBvbmVudDogVCk6IG51bWJlcgogICAgcHJvdGVjdGVkIGFic3RyYWN0IGdldERhdGFJZChkYXRhOiBEYXRhKTogbnVtYmVyCgogICAgYWJzdHJhY3QgZm9yY2VGZXRjaChmb3JjZVNlcnZlclJlZnJlc2g/OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPgoKICAgIHVwZGF0ZUNhY2hlKGNhY2hlOiBBcnJheTxEYXRhPikgewogICAgICAgIC8vIFJlbW92ZSBhbGwgbm9uIGV4aXN0aW5nIG5ldyBkYXRhCiAgICAgICAgLy8gVXBkYXRlIGFsbCBhbHJlYWR5IGV4aXN0aW5nIGNvbXBvbmVudHMKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGlzdC5nZXQoKS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBsZXQgY29tcG9uZW50ID0gdGhpcy5saXN0LmdldCgpW2ldCgogICAgICAgICAgICBjb25zdCBkYXRhSWQgPSB0aGlzLmdldENvbXBvbmVudERhdGFJZChjb21wb25lbnQpCgogICAgICAgICAgICBjb25zdCBjYWNoZUluZGV4ID0gY2FjaGUuZmluZEluZGV4KGRhdGEgPT4gdGhpcy5nZXREYXRhSWQoZGF0YSkgPT0gZGF0YUlkKQogICAgICAgICAgICBpZiAoY2FjaGVJbmRleCA9PSAtMSkgewogICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVMaXN0KGkpCgogICAgICAgICAgICAgICAgLy8gcmVtb3ZpbmcgYW4gZWxlbWVudCB3aWxsIHNoaWZ0IHRoZSBhcnJheSB0byB0aGUgbGVmdAogICAgICAgICAgICAgICAgLy8gLT4gdGhpcyBtZWFucyB0aGF0IHdlIG5lZWQgdG8gZGVjciB0byBnZXQgdGhlIG5leHQgdmFsdWUgYmVjYXVzZSB3ZSBpbmNyIGluIHRoZSBsb29wCiAgICAgICAgICAgICAgICBpLS0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50RGF0YShjb21wb25lbnQsIGNhY2hlW2NhY2hlSW5kZXhdKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBBbGwgYWxsIG5ld2x5IGNyZWF0ZWQgZGF0YQogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2FjaGUubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgbGV0IGRhdGEgPSBjYWNoZVtpXQoKICAgICAgICAgICAgY29uc3QgZGF0YUlkID0gdGhpcy5nZXREYXRhSWQoZGF0YSkKCiAgICAgICAgICAgIGNvbnN0IGxpc3RJbmRleCA9IHRoaXMubGlzdC5nZXQoKS5maW5kSW5kZXgoY29tcG9uZW50ID0+IHRoaXMuZ2V0Q29tcG9uZW50RGF0YUlkKGNvbXBvbmVudCkgPT0gZGF0YUlkKQogICAgICAgICAgICBpZiAobGlzdEluZGV4ID09IC0xKSB7CiAgICAgICAgICAgICAgICB0aGlzLmluc2VydExpc3QoZGF0YUlkLCBkYXRhKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBhYnN0cmFjdCBpbnNlcnRMaXN0KGRhdGFJZDogbnVtYmVyLCBkYXRhOiBEYXRhKTogdm9pZAogICAgcHJvdGVjdGVkIHJlbW92ZUxpc3QobGlzdEluZGV4OiBudW1iZXIpIHsKICAgICAgICB0aGlzLmxpc3QucmVtb3ZlKGxpc3RJbmRleCkKICAgIH0KCiAgICBtb3VudChwYXJlbnQ6IEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICB0aGlzLmxpc3QubW91bnQocGFyZW50KQogICAgfQogICAgdW5tb3VudChwYXJlbnQ6IEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICB0aGlzLmxpc3QudW5tb3VudChwYXJlbnQpCiAgICB9Cn0="},{"path":"web/component/game/index.ts","sha256":"871492ae874e043865273e71e04147d46df655f03b006733864c2b99290d6836","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRFdmVudCB9IGZyb20gIi4uL2luZGV4LmpzIjsKaW1wb3J0IHsgQXBpLCBhcGlHZXRBcHBJbWFnZSwgYXBpSG9zdENhbmNlbCB9IGZyb20gIi4uLy4uL2FwaS5qcyI7CmltcG9ydCB7IEFwcCB9IGZyb20gIi4uLy4uL2FwaV9iaW5kaW5ncy5qcyI7CmltcG9ydCB7IGdldEN1cnJlbnRMYW5ndWFnZSwgZ2V0VHJhbnNsYXRpb25zIH0gZnJvbSAiLi4vLi4vaTE4bi5qcyI7CmltcG9ydCB7IHNldENvbnRleHRNZW51IH0gZnJvbSAiLi4vY29udGV4dF9tZW51LmpzIjsKaW1wb3J0IHsgc2hvd01lc3NhZ2UgfSBmcm9tICIuLi9tb2RhbC9pbmRleC5qcyI7CmltcG9ydCB7IEFQUF9OT19JTUFHRSB9IGZyb20gIi4uLy4uL3Jlc291cmNlcy9pbmRleC5qcyI7CmltcG9ydCB7IGJ1aWxkVXJsIH0gZnJvbSAiLi4vLi4vY29uZmlnXy5qcyI7CgpleHBvcnQgdHlwZSBHYW1lQ2FjaGUgPSBBcHAgJiB7IGFjdGl2ZUFwcDogbnVtYmVyIHwgbnVsbCB9CgpleHBvcnQgdHlwZSBHYW1lRXZlbnRMaXN0ZW5lciA9IChldmVudDogQ29tcG9uZW50RXZlbnQ8R2FtZT4pID0+IHZvaWQKCmV4cG9ydCBjbGFzcyBHYW1lIGltcGxlbWVudHMgQ29tcG9uZW50IHsKICAgIHByaXZhdGUgYXBpOiBBcGkKCiAgICBwcml2YXRlIGhvc3RJZDogbnVtYmVyCiAgICBwcml2YXRlIGFwcElkOiBudW1iZXIKCiAgICBwcml2YXRlIG1vdW50ZWQ6IG51bWJlciA9IDAKICAgIHByaXZhdGUgZGl2RWxlbWVudDogSFRNTERpdkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQoKICAgIHByaXZhdGUgaW1hZ2VCbG9iOiBCbG9iIHwgbnVsbCA9IG51bGwKICAgIHByaXZhdGUgaW1hZ2VCbG9iVXJsOiBzdHJpbmcgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBpbWFnZUVsZW1lbnQ6IEhUTUxJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKQoKICAgIHByaXZhdGUgY2FjaGU6IEdhbWVDYWNoZQoKICAgIGNvbnN0cnVjdG9yKGFwaTogQXBpLCBob3N0SWQ6IG51bWJlciwgYXBwSWQ6IG51bWJlciwgY2FjaGU6IEdhbWVDYWNoZSkgewogICAgICAgIHRoaXMuYXBpID0gYXBpCgogICAgICAgIHRoaXMuaG9zdElkID0gaG9zdElkCiAgICAgICAgdGhpcy5hcHBJZCA9IGFwcElkCgogICAgICAgIHRoaXMuY2FjaGUgPSBjYWNoZQoKICAgICAgICAvLyBDb25maWd1cmUgaW1hZ2UKICAgICAgICB0aGlzLmltYWdlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJhcHAtaW1hZ2UiKQogICAgICAgIHRoaXMuaW1hZ2VFbGVtZW50LnNyYyA9IEFQUF9OT19JTUFHRQoKICAgICAgICB0aGlzLmZvcmNlTG9hZEltYWdlKGZhbHNlKQoKICAgICAgICAvLyBDb25maWd1cmUgZGl2CiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmNsYXNzTGlzdC5hZGQoImFwcCIpCgogICAgICAgIHRoaXMuZGl2RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmltYWdlRWxlbWVudCkKCiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5vbkNsaWNrLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5vbkNvbnRleHRNZW51LmJpbmQodGhpcykpCgogICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoY2FjaGUpCiAgICB9CgogICAgYXN5bmMgZm9yY2VMb2FkSW1hZ2UoZm9yY2VTZXJ2ZXJSZWZyZXNoOiBib29sZWFuKSB7CiAgICAgICAgdGhpcy5pbWFnZUJsb2IgPSBhd2FpdCBhcGlHZXRBcHBJbWFnZSh0aGlzLmFwaSwgewogICAgICAgICAgICBob3N0X2lkOiB0aGlzLmhvc3RJZCwKICAgICAgICAgICAgYXBwX2lkOiB0aGlzLmFwcElkLAogICAgICAgICAgICBmb3JjZV9yZWZyZXNoOiBmb3JjZVNlcnZlclJlZnJlc2gKICAgICAgICB9KQoKICAgICAgICB0aGlzLnVwZGF0ZUltYWdlKCkKICAgIH0KICAgIHByaXZhdGUgdXBkYXRlSW1hZ2UoKSB7CiAgICAgICAgLy8gZ2VuZXJhdGUgYW5kIHNldCB1cmwKICAgICAgICBpZiAodGhpcy5pbWFnZUJsb2IgJiYgIXRoaXMuaW1hZ2VCbG9iVXJsICYmIHRoaXMubW91bnRlZCA+IDApIHsKICAgICAgICAgICAgdGhpcy5pbWFnZUJsb2JVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHRoaXMuaW1hZ2VCbG9iKQoKICAgICAgICAgICAgdGhpcy5pbWFnZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYXBwLWltYWdlLWxvYWRlZCIpCiAgICAgICAgICAgIHRoaXMuaW1hZ2VFbGVtZW50LnNyYyA9IHRoaXMuaW1hZ2VCbG9iVXJsCiAgICAgICAgfQoKICAgICAgICAvLyByZXZva2UgdXJsCiAgICAgICAgaWYgKHRoaXMuaW1hZ2VCbG9iVXJsICYmIHRoaXMubW91bnRlZCA8PSAwKSB7CiAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy5pbWFnZUJsb2JVcmwpCiAgICAgICAgICAgIHRoaXMuaW1hZ2VCbG9iVXJsID0gbnVsbAoKICAgICAgICAgICAgdGhpcy5pbWFnZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgiYXBwLWltYWdlLWxvYWRlZCIpCiAgICAgICAgICAgIHRoaXMuaW1hZ2VFbGVtZW50LnNyYyA9ICIiCiAgICAgICAgfQogICAgfQoKICAgIHVwZGF0ZUNhY2hlKGNhY2hlOiBHYW1lQ2FjaGUpIHsKICAgICAgICB0aGlzLmNhY2hlID0gY2FjaGUKCiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImFwcC1pbmFjdGl2ZSIpCiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoImFwcC1hY3RpdmUiKQoKICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZSgpKSB7CiAgICAgICAgICAgIHRoaXMuZGl2RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJhcHAtYWN0aXZlIikKICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2FjaGUuYWN0aXZlQXBwICE9IG51bGwpIHsKICAgICAgICAgICAgdGhpcy5kaXZFbGVtZW50LmNsYXNzTGlzdC5hZGQoImFwcC1pbmFjdGl2ZSIpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgb25DbGljayhldmVudDogTW91c2VFdmVudCkgewogICAgICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmdhbWUKICAgICAgICBpZiAodGhpcy5jYWNoZS5hY3RpdmVBcHAgIT0gbnVsbCkgewogICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IFtdCgogICAgICAgICAgICBpZiAodGhpcy5pc0FjdGl2ZSgpKSB7CiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKHsKICAgICAgICAgICAgICAgICAgICBuYW1lOiBpLnJlc3VtZVNlc3Npb24sCiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydFN0cmVhbSgpCgogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDb21wb25lbnRFdmVudCgibWwtZ2FtZXJlbG9hZCIsIHRoaXMpCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGl2RWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goewogICAgICAgICAgICAgICAgbmFtZTogaS5zdG9wQ3VycmVudFNlc3Npb24sCiAgICAgICAgICAgICAgICBjYWxsYmFjazogYXN5bmMgKCkgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpSG9zdENhbmNlbCh0aGlzLmFwaSwgeyBob3N0X2lkOiB0aGlzLmhvc3RJZCB9KQogICAgICAgICAgICAgICAgICAgIGlmICghcmVzcG9uc2Uuc3VjY2VzcykgewogICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzaG93TWVzc2FnZShpLmZhaWxlZFRvQ2xvc2VBcHApCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDb21wb25lbnRFdmVudCgibWwtZ2FtZXJlbG9hZCIsIHRoaXMpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXZFbGVtZW50LmRpc3BhdGNoRXZlbnQoZXZlbnQpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCgogICAgICAgICAgICBzZXRDb250ZXh0TWVudShldmVudCwgewogICAgICAgICAgICAgICAgZWxlbWVudHMKICAgICAgICAgICAgfSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLnN0YXJ0U3RyZWFtKCkKCiAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gd2luZG93LnNldFRpbWVvdXQociwgNjAwMCkpCgogICAgICAgICAgICBjb25zdCBldmVudCA9IG5ldyBDb21wb25lbnRFdmVudCgibWwtZ2FtZXJlbG9hZCIsIHRoaXMpCiAgICAgICAgICAgIHRoaXMuZGl2RWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KQogICAgICAgIH0KICAgIH0KICAgIHByaXZhdGUgc3RhcnRTdHJlYW0oKSB7CiAgICAgICAgbGV0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7CiAgICAgICAgICAgIGhvc3RJZDogdGhpcy5nZXRIb3N0SWQoKSwKICAgICAgICAgICAgYXBwSWQ6IHRoaXMuZ2V0QXBwSWQoKSwKICAgICAgICB9IGFzIGFueSkKCiAgICAgICAgaWYgKHdpbmRvdy5tYXRjaE1lZGlhKCcoZGlzcGxheS1tb2RlOiBzdGFuZGFsb25lKScpLm1hdGNoZXMpIHsKICAgICAgICAgICAgLy8gSWYgd2UncmUgaW4gYSBwd2E6IG9wZW4gaW4gdGhlIGN1cnJlbnQgdGFiCiAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGRvIHRoaXMgd2UgbWlnaHQgZ2V0IGEgdXJsIGJhciBhdCB0aGUgdG9wCiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYnVpbGRVcmwoYC9zdHJlYW0uaHRtbD8ke3F1ZXJ5fWApCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgd2luZG93Lm9wZW4oYnVpbGRVcmwoYC9zdHJlYW0uaHRtbD8ke3F1ZXJ5fWApLCAiX2JsYW5rIikKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBvbkNvbnRleHRNZW51KGV2ZW50OiBNb3VzZUV2ZW50KSB7CiAgICAgICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuZ2FtZQogICAgICAgIGNvbnN0IGVsZW1lbnRzID0gW10KCiAgICAgICAgZWxlbWVudHMucHVzaCh7CiAgICAgICAgICAgIG5hbWU6IGkuc2hvd0RldGFpbHMsCiAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLnNob3dEZXRhaWxzLmJpbmQodGhpcyksCiAgICAgICAgfSkKCiAgICAgICAgZWxlbWVudHMucHVzaCh7CiAgICAgICAgICAgIG5hbWU6IGkub3BlbiwKICAgICAgICAgICAgY2FsbGJhY2s6IGFzeW5jICgpID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRTdHJlYW0oKQoKICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IENvbXBvbmVudEV2ZW50KCJtbC1nYW1lcmVsb2FkIiwgdGhpcykKICAgICAgICAgICAgICAgIHRoaXMuZGl2RWxlbWVudC5kaXNwYXRjaEV2ZW50KGV2ZW50KQogICAgICAgICAgICB9CiAgICAgICAgfSkKCiAgICAgICAgc2V0Q29udGV4dE1lbnUoZXZlbnQsIHsKICAgICAgICAgICAgZWxlbWVudHMKICAgICAgICB9KQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgc2hvd0RldGFpbHMoKSB7CiAgICAgICAgY29uc3QgYXBwID0gdGhpcy5jYWNoZQogICAgICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmdhbWUKICAgICAgICBhd2FpdCBzaG93TWVzc2FnZShpLmRldGFpbHMoYXBwKSkKICAgIH0KCiAgICBwcml2YXRlIGlzQWN0aXZlKCk6IGJvb2xlYW4gewogICAgICAgIHJldHVybiB0aGlzLmNhY2hlLmFjdGl2ZUFwcCA9PSB0aGlzLmFwcElkCiAgICB9CgogICAgYWRkRm9yY2VSZWxvYWRMaXN0ZW5lcihsaXN0ZW5lcjogR2FtZUV2ZW50TGlzdGVuZXIpIHsKICAgICAgICB0aGlzLmRpdkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibWwtZ2FtZXJlbG9hZCIsIGxpc3RlbmVyIGFzIGFueSkKICAgIH0KICAgIHJlbW92ZUZvcmNlUmVsb2FkTGlzdGVuZXIobGlzdGVuZXI6IEdhbWVFdmVudExpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5kaXZFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1sLWdhbWVyZWxvYWQiLCBsaXN0ZW5lciBhcyBhbnkpCiAgICB9CgogICAgZ2V0SG9zdElkKCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdElkCiAgICB9CiAgICBnZXRBcHBJZCgpOiBudW1iZXIgewogICAgICAgIHJldHVybiB0aGlzLmFwcElkCiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHRoaXMubW91bnRlZCsrCiAgICAgICAgdGhpcy51cGRhdGVJbWFnZSgpCgogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmRpdkVsZW1lbnQpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKCiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgdGhpcy5tb3VudGVkLS0KICAgICAgICB0aGlzLnVwZGF0ZUltYWdlKCkKICAgIH0KfQo="},{"path":"web/component/game/list.ts","sha256":"f696a8d07960d2b73bb74d8d40bc69903470c0352904483d24115318da9926d0","contentBase64":"aW1wb3J0IHsgQXBpLCBhcGlHZXRBcHBzIH0gZnJvbSAiLi4vLi4vYXBpLmpzIjsKaW1wb3J0IHsgQXBwIH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgc2hvd05vdGlmaWNhdGlvbiB9IGZyb20gIi4uL25vdGlmaWNhdGlvbi5qcyI7CmltcG9ydCB7IEZldGNoTGlzdENvbXBvbmVudCB9IGZyb20gIi4uL2ZldGNoX2xpc3QuanMiOwppbXBvcnQgeyBDb21wb25lbnRFdmVudCB9IGZyb20gIi4uL2luZGV4LmpzIjsKaW1wb3J0IHsgR2FtZSwgR2FtZUNhY2hlLCBHYW1lRXZlbnRMaXN0ZW5lciB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGNsYXNzIEdhbWVMaXN0IGV4dGVuZHMgRmV0Y2hMaXN0Q29tcG9uZW50PEFwcCwgR2FtZT4gewogICAgcHJpdmF0ZSBhcGk6IEFwaQoKICAgIHByaXZhdGUgZXZlbnRUYXJnZXQgPSBuZXcgRXZlbnRUYXJnZXQoKQoKICAgIHByaXZhdGUgaG9zdElkOiBudW1iZXIKICAgIHByaXZhdGUgYWN0aXZlQXBwOiBudW1iZXIgfCBudWxsID0gbnVsbAoKICAgIGNvbnN0cnVjdG9yKGFwaTogQXBpLCBob3N0SWQ6IG51bWJlciwgY2FjaGU6IEFwcFtdIHwgbnVsbCkgewogICAgICAgIHN1cGVyKHsKICAgICAgICAgICAgbGlzdENsYXNzZXM6IFsiYXBwLWxpc3QiXSwKICAgICAgICAgICAgZWxlbWVudExpQ2xhc3NlczogWyJhbmltYXRlZC1saXN0LWVsZW1lbnQiLCAiYXBwLWVsZW1lbnQiXQogICAgICAgIH0pCgogICAgICAgIHRoaXMuYXBpID0gYXBpCgogICAgICAgIHRoaXMuaG9zdElkID0gaG9zdElkCgogICAgICAgIC8vIFVwZGF0ZSBjYWNoZQogICAgICAgIGlmIChjYWNoZSAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoY2FjaGUpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5mb3JjZUZldGNoKCkKICAgICAgICB9CiAgICB9CgogICAgc2V0QWN0aXZlR2FtZShhcHBJZDogbnVtYmVyIHwgbnVsbCkgewogICAgICAgIHRoaXMuYWN0aXZlQXBwID0gYXBwSWQKCiAgICAgICAgdGhpcy5mb3JjZUZldGNoKCkKICAgIH0KCiAgICBhc3luYyBmb3JjZUZldGNoKCkgewogICAgICAgIGNvbnN0IGFwcHMgPSBhd2FpdCBhcGlHZXRBcHBzKHRoaXMuYXBpLCB7CiAgICAgICAgICAgIGhvc3RfaWQ6IHRoaXMuaG9zdElkLAogICAgICAgIH0pCgogICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoYXBwcykKICAgIH0KICAgIHByaXZhdGUgY3JlYXRlQ2FjaGUoZGF0YTogQXBwKTogR2FtZUNhY2hlIHsKICAgICAgICBjb25zdCBjYWNoZSA9IGRhdGEgYXMgR2FtZUNhY2hlCiAgICAgICAgY2FjaGUuYWN0aXZlQXBwID0gdGhpcy5hY3RpdmVBcHAKICAgICAgICByZXR1cm4gY2FjaGUKICAgIH0KCiAgICBwcm90ZWN0ZWQgdXBkYXRlQ29tcG9uZW50RGF0YShjb21wb25lbnQ6IEdhbWUsIGRhdGE6IEFwcCk6IHZvaWQgewogICAgICAgIGNvbnN0IGNhY2hlID0gdGhpcy5jcmVhdGVDYWNoZShkYXRhKQoKICAgICAgICBjb21wb25lbnQudXBkYXRlQ2FjaGUoY2FjaGUpCiAgICB9CiAgICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50RGF0YUlkKGNvbXBvbmVudDogR2FtZSk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIGNvbXBvbmVudC5nZXRBcHBJZCgpCiAgICB9CiAgICBwcm90ZWN0ZWQgZ2V0RGF0YUlkKGRhdGE6IEFwcCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIGRhdGEuYXBwX2lkCiAgICB9CiAgICBwcm90ZWN0ZWQgaW5zZXJ0TGlzdChkYXRhSWQ6IG51bWJlciwgZGF0YTogQXBwKTogdm9pZCB7CiAgICAgICAgY29uc3QgY2FjaGUgPSB0aGlzLmNyZWF0ZUNhY2hlKGRhdGEpCgogICAgICAgIGNvbnN0IGdhbWUgPSBuZXcgR2FtZSh0aGlzLmFwaSwgdGhpcy5ob3N0SWQsIGRhdGFJZCwgY2FjaGUpCiAgICAgICAgZ2FtZS5hZGRGb3JjZVJlbG9hZExpc3RlbmVyKHRoaXMub25Gb3JjZVJlbG9hZC5iaW5kKHRoaXMpKQoKICAgICAgICB0aGlzLmxpc3QuYXBwZW5kKGdhbWUpCiAgICB9CgogICAgcHJpdmF0ZSBvbkZvcmNlUmVsb2FkKGV2ZW50OiBDb21wb25lbnRFdmVudDxHYW1lPikgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChuZXcgQ29tcG9uZW50RXZlbnQoIm1sLWdhbWVyZWxvYWQiLCBldmVudC5jb21wb25lbnQpKQogICAgfQoKICAgIGFkZEZvcmNlUmVsb2FkTGlzdGVuZXIobGlzdGVuZXI6IEdhbWVFdmVudExpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5ldmVudFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtbC1nYW1lcmVsb2FkIiwgbGlzdGVuZXIgYXMgYW55KQogICAgfQogICAgcmVtb3ZlRm9yY2VSZWxvYWRMaXN0ZW5lcihsaXN0ZW5lcjogR2FtZUV2ZW50TGlzdGVuZXIpIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1sLWdhbWVyZWxvYWQiLCBsaXN0ZW5lciBhcyBhbnkpCiAgICB9CgogICAgZ2V0SG9zdElkKCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdElkCiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHRoaXMubGlzdC5tb3VudChwYXJlbnQpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICB0aGlzLmxpc3QudW5tb3VudChwYXJlbnQpCiAgICB9Cn0K"},{"path":"web/component/host/add_modal.ts","sha256":"985e2e327e8eacf1502fbaf0babf398def02f8f4d3b9075b610667e6b3525dba","contentBase64":"aW1wb3J0IHsgUG9zdEhvc3RSZXF1ZXN0IH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIgppbXBvcnQgeyBnZXRDdXJyZW50TGFuZ3VhZ2UsIGdldFRyYW5zbGF0aW9ucyB9IGZyb20gIi4uLy4uL2kxOG4uanMiCmltcG9ydCB7IElucHV0Q29tcG9uZW50IH0gZnJvbSAiLi4vaW5wdXQuanMiCmltcG9ydCB7IEZvcm1Nb2RhbCB9IGZyb20gIi4uL21vZGFsL2Zvcm0uanMiCgpleHBvcnQgY2xhc3MgQWRkSG9zdE1vZGFsIGV4dGVuZHMgRm9ybU1vZGFsPFBvc3RIb3N0UmVxdWVzdD4gewoKICAgIHByaXZhdGUgaGVhZGVyOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgyIikKCiAgICBwcml2YXRlIGFkZHJlc3M6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIGh0dHBQb3J0OiBJbnB1dENvbXBvbmVudAoKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCkKICAgICAgICBjb25zdCBpID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKS5hZGRIb3N0CgogICAgICAgIHRoaXMuaGVhZGVyLmlubmVyVGV4dCA9IGkuaGVhZGVyCgogICAgICAgIHRoaXMuYWRkcmVzcyA9IG5ldyBJbnB1dENvbXBvbmVudCgiYWRkcmVzcyIsICJ0ZXh0IiwgaS5hZGRyZXNzLCB7CiAgICAgICAgICAgIGZvcm1SZXF1aXJlZDogdHJ1ZQogICAgICAgIH0pCgogICAgICAgIHRoaXMuaHR0cFBvcnQgPSBuZXcgSW5wdXRDb21wb25lbnQoImh0dHBQb3J0IiwgInRleHQiLCBpLnBvcnQsIHsKICAgICAgICAgICAgaW5wdXRNb2RlOiAibnVtZXJpYyIKICAgICAgICB9KQogICAgfQoKICAgIHJlc2V0KCk6IHZvaWQgewogICAgICAgIHRoaXMuYWRkcmVzcy5yZXNldCgpCiAgICAgICAgdGhpcy5odHRwUG9ydC5yZXNldCgpCiAgICB9CiAgICBzdWJtaXQoKTogUG9zdEhvc3RSZXF1ZXN0IHwgbnVsbCB7CiAgICAgICAgY29uc3QgYWRkcmVzcyA9IHRoaXMuYWRkcmVzcy5nZXRWYWx1ZSgpCiAgICAgICAgY29uc3QgaHR0cFBvcnQgPSBwYXJzZUludCh0aGlzLmh0dHBQb3J0LmdldFZhbHVlKCkpCgogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGFkZHJlc3MsCiAgICAgICAgICAgIGh0dHBfcG9ydDogaHR0cFBvcnQKICAgICAgICB9CiAgICB9CgogICAgbW91bnRGb3JtKGZvcm06IEhUTUxGb3JtRWxlbWVudCk6IHZvaWQgewogICAgICAgIGZvcm0uYXBwZW5kQ2hpbGQodGhpcy5oZWFkZXIpCiAgICAgICAgdGhpcy5hZGRyZXNzLm1vdW50KGZvcm0pCiAgICAgICAgdGhpcy5odHRwUG9ydC5tb3VudChmb3JtKQogICAgfQp9Cg=="},{"path":"web/component/host/index.ts","sha256":"d6c0c7a1b5c964d5c70f6ba1019db857e3f2e612198098b09ef1e530ca8fe62f","contentBase64":"aW1wb3J0IHsgRGV0YWlsZWRIb3N0LCBEZXRhaWxlZFVzZXIsIFVuZGV0YWlsZWRIb3N0IH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIgppbXBvcnQgeyBBcGksIGFwaURlbGV0ZUhvc3QsIGFwaUdldEhvc3QsIGlzRGV0YWlsZWRIb3N0LCBhcGlQb3N0UGFpciwgYXBpV2FrZVVwLCBhcGlHZXRVc2VyLCBhcGlQYXRjaEhvc3QgfSBmcm9tICIuLi8uLi9hcGkuanMiCmltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RXZlbnQgfSBmcm9tICIuLi9pbmRleC5qcyIKaW1wb3J0IHsgZ2V0Q3VycmVudExhbmd1YWdlLCBnZXRUcmFuc2xhdGlvbnMgfSBmcm9tICIuLi8uLi9pMThuLmpzIgppbXBvcnQgeyBzZXRDb250ZXh0TWVudSB9IGZyb20gIi4uL2NvbnRleHRfbWVudS5qcyIKaW1wb3J0IHsgc2hvd05vdGlmaWNhdGlvbiB9IGZyb20gIi4uL25vdGlmaWNhdGlvbi5qcyIKaW1wb3J0IHsgc2hvd01lc3NhZ2UgfSBmcm9tICIuLi9tb2RhbC9pbmRleC5qcyIKaW1wb3J0IHsgSE9TVF9JTUFHRSwgSE9TVF9PVkVSTEFZX0xPQ0ssIEhPU1RfT1ZFUkxBWV9OT05FLCBIT1NUX09WRVJMQVlfT0ZGTElORSB9IGZyb20gIi4uLy4uL3Jlc291cmNlcy9pbmRleC5qcyIKCmV4cG9ydCB0eXBlIEhvc3RFdmVudExpc3RlbmVyID0gKGV2ZW50OiBDb21wb25lbnRFdmVudDxIb3N0PikgPT4gdm9pZAoKZXhwb3J0IGNsYXNzIEhvc3QgaW1wbGVtZW50cyBDb21wb25lbnQgewogICAgcHJpdmF0ZSBhcGk6IEFwaQoKICAgIHByaXZhdGUgaG9zdElkOiBudW1iZXIKICAgIHByaXZhdGUgdXNlckNhY2hlOiBEZXRhaWxlZFVzZXIgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBjYWNoZTogVW5kZXRhaWxlZEhvc3QgfCBEZXRhaWxlZEhvc3QgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgZGl2RWxlbWVudDogSFRNTERpdkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQoKICAgIHByaXZhdGUgaW1hZ2VFbGVtZW50OiBIVE1MSW1hZ2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIikKICAgIHByaXZhdGUgaW1hZ2VPdmVybGF5RWxlbWVudDogSFRNTEltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpCiAgICBwcml2YXRlIG5hbWVFbGVtZW50OiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKQoKICAgIGNvbnN0cnVjdG9yKGFwaTogQXBpLCBob3N0SWQ6IG51bWJlciwgaG9zdDogVW5kZXRhaWxlZEhvc3QgfCBEZXRhaWxlZEhvc3QgfCBudWxsKSB7CiAgICAgICAgdGhpcy5hcGkgPSBhcGkKCiAgICAgICAgdGhpcy5ob3N0SWQgPSBob3N0SWQKICAgICAgICB0aGlzLmNhY2hlID0gaG9zdAoKICAgICAgICAvLyBDb25maWd1cmUgaW1hZ2UKICAgICAgICB0aGlzLmltYWdlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJob3N0LWltYWdlIikKICAgICAgICB0aGlzLmltYWdlRWxlbWVudC5zcmMgPSBIT1NUX0lNQUdFCgogICAgICAgIC8vIENvbmZpZ3VyZSBpbWFnZSBvdmVybGF5CiAgICAgICAgdGhpcy5pbWFnZU92ZXJsYXlFbGVtZW50LmNsYXNzTGlzdC5hZGQoImhvc3QtaW1hZ2Utb3ZlcmxheSIpCgogICAgICAgIC8vIENvbmZpZ3VyZSBuYW1lCiAgICAgICAgdGhpcy5uYW1lRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJob3N0LW5hbWUiKQoKICAgICAgICAvLyBBcHBlbmQgZWxlbWVudHMKICAgICAgICB0aGlzLmRpdkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5pbWFnZUVsZW1lbnQpCiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaW1hZ2VPdmVybGF5RWxlbWVudCkKICAgICAgICB0aGlzLmRpdkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5uYW1lRWxlbWVudCkKCiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5vbkNsaWNrLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5vbkNvbnRleHRNZW51LmJpbmQodGhpcykpCgogICAgICAgIC8vIFVwZGF0ZSBjYWNoZQogICAgICAgIGlmIChob3N0ICE9IG51bGwpIHsKICAgICAgICAgICAgdGhpcy51cGRhdGVDYWNoZShob3N0LCBudWxsKQoKICAgICAgICAgICAgYXBpR2V0VXNlcihhcGkpLnRoZW4oKHVzZXIpID0+IHRoaXMudXNlckNhY2hlID0gdXNlcikKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmZvcmNlRmV0Y2goKQogICAgICAgIH0KICAgIH0KCiAgICBhc3luYyBmb3JjZUZldGNoKCkgewogICAgICAgIGNvbnN0IFtuZXdDYWNoZSwgdXNlcl0gPSBhd2FpdCBQcm9taXNlLmFsbChbCiAgICAgICAgICAgIGFwaUdldEhvc3QodGhpcy5hcGksIHsKICAgICAgICAgICAgICAgIGhvc3RfaWQ6IHRoaXMuaG9zdElkLAogICAgICAgICAgICB9KSwKICAgICAgICAgICAgYXBpR2V0VXNlcih0aGlzLmFwaSkKICAgICAgICBdKQoKICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKG5ld0NhY2hlLCB1c2VyKQogICAgfQogICAgYXN5bmMgZ2V0Q3VycmVudEdhbWUoKTogUHJvbWlzZTxudW1iZXIgfCBudWxsPiB7CiAgICAgICAgYXdhaXQgdGhpcy5mb3JjZUZldGNoKCkKCiAgICAgICAgaWYgKHRoaXMuY2FjaGUgJiYgaXNEZXRhaWxlZEhvc3QodGhpcy5jYWNoZSkgJiYgdGhpcy5jYWNoZS5jdXJyZW50X2dhbWUgIT0gMCkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5jYWNoZS5jdXJyZW50X2dhbWUKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGFzeW5jIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHsKICAgICAgICBpZiAodGhpcy5jYWNoZT8uc2VydmVyX3N0YXRlID09IG51bGwpIHsKICAgICAgICAgICAgdGhpcy5vbkNvbnRleHRNZW51KGV2ZW50KQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5jYWNoZT8ucGFpcmVkID09ICJQYWlyZWQiKSB7CiAgICAgICAgICAgIHRoaXMuZGl2RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDb21wb25lbnRFdmVudCgibWwtaG9zdG9wZW4iLCB0aGlzKSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhd2FpdCB0aGlzLnBhaXIoKQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIG9uQ29udGV4dE1lbnUoZXZlbnQ6IE1vdXNlRXZlbnQpIHsKICAgICAgICBjb25zdCBpID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKS5ob3N0CiAgICAgICAgY29uc3QgZWxlbWVudHMgPSBbXQoKICAgICAgICBpZiAodGhpcy5jYWNoZT8uc2VydmVyX3N0YXRlICE9IG51bGwpIHsKICAgICAgICAgICAgZWxlbWVudHMucHVzaCh7CiAgICAgICAgICAgICAgICBuYW1lOiBpLnNob3dEZXRhaWxzLAogICAgICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMuc2hvd0RldGFpbHMuYmluZCh0aGlzKSwKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goewogICAgICAgICAgICAgICAgbmFtZTogaS5vcGVuLAogICAgICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMub25DbGljay5iaW5kKHRoaXMpCiAgICAgICAgICAgIH0pCiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNhY2hlPy5wYWlyZWQgPT0gIlBhaXJlZCIpIHsKICAgICAgICAgICAgZWxlbWVudHMucHVzaCh7CiAgICAgICAgICAgICAgICBuYW1lOiBpLnNlbmRXYWtlVXBQYWNrZXQsCiAgICAgICAgICAgICAgICBjYWxsYmFjazogdGhpcy53YWtlVXAuYmluZCh0aGlzKQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgZWxlbWVudHMucHVzaCh7CiAgICAgICAgICAgIG5hbWU6IGkucmVsb2FkLAogICAgICAgICAgICBjYWxsYmFjazogYXN5bmMgKCkgPT4gdGhpcy5mb3JjZUZldGNoKCkKICAgICAgICB9KQoKICAgICAgICBpZiAodGhpcy5jYWNoZT8uc2VydmVyX3N0YXRlICE9IG51bGwgJiYgdGhpcy5jYWNoZT8ucGFpcmVkID09ICJOb3RQYWlyZWQiKSB7CiAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goewogICAgICAgICAgICAgICAgbmFtZTogaS5wYWlyLAogICAgICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMucGFpci5iaW5kKHRoaXMpCiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAgICAgICAvLyBNYWtlIHByaXZhdGUgLyBnbG9iYWwKICAgICAgICBpZiAodGhpcy51c2VyQ2FjaGU/LnJvbGUgPT0gIkFkbWluIikgewogICAgICAgICAgICBpZiAodGhpcy5jYWNoZT8ub3duZXIgPT0gIkdsb2JhbCIpIHsKICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goewogICAgICAgICAgICAgICAgICAgIG5hbWU6IGkubWFrZVByaXZhdGUsCiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6IHRoaXMubWFrZVByaXZhdGUuYmluZCh0aGlzKSwKICAgICAgICAgICAgICAgICAgICBjbGFzc2VzOiBbImNvbnRleHQtbWVudS1lbGVtZW50LXJlZCJdCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2FjaGU/Lm93bmVyID09ICJUaGlzVXNlciIpIHsKICAgICAgICAgICAgICAgIGVsZW1lbnRzLnB1c2goewogICAgICAgICAgICAgICAgICAgIG5hbWU6IGkubWFrZUdsb2JhbCwKICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogdGhpcy5tYWtlR2xvYmFsLmJpbmQodGhpcyksCiAgICAgICAgICAgICAgICAgICAgY2xhc3NlczogWyJjb250ZXh0LW1lbnUtZWxlbWVudC1yZWQiXQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKHRoaXMuY2FjaGU/Lm93bmVyID09ICJUaGlzVXNlciIgfHwgdGhpcy51c2VyQ2FjaGU/LnJvbGUgPT0gIkFkbWluIikgewogICAgICAgICAgICBlbGVtZW50cy5wdXNoKHsKICAgICAgICAgICAgICAgIG5hbWU6IGkucmVtb3ZlSG9zdCwKICAgICAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLnJlbW92ZS5iaW5kKHRoaXMpCiAgICAgICAgICAgIH0pCiAgICAgICAgfQoKICAgICAgICBzZXRDb250ZXh0TWVudShldmVudCwgewogICAgICAgICAgICBlbGVtZW50cwogICAgICAgIH0pCiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyBzaG93RGV0YWlscygpIHsKICAgICAgICBjb25zdCBpID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKS5ob3N0CiAgICAgICAgbGV0IGhvc3QgPSB0aGlzLmNhY2hlOwogICAgICAgIGlmICghaG9zdCB8fCAhaXNEZXRhaWxlZEhvc3QoaG9zdCkpIHsKICAgICAgICAgICAgaG9zdCA9IGF3YWl0IGFwaUdldEhvc3QodGhpcy5hcGksIHsKICAgICAgICAgICAgICAgIGhvc3RfaWQ6IHRoaXMuaG9zdElkLAogICAgICAgICAgICB9KQogICAgICAgIH0KICAgICAgICBpZiAoIWhvc3QgfHwgIWlzRGV0YWlsZWRIb3N0KGhvc3QpKSB7CiAgICAgICAgICAgIHNob3dOb3RpZmljYXRpb24oaS5mYWlsZWRUb0dldERldGFpbHModGhpcy5ob3N0SWQpKQogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoaG9zdCwgdGhpcy51c2VyQ2FjaGUpCgogICAgICAgIGF3YWl0IHNob3dNZXNzYWdlKGkuZGV0YWlscyhob3N0KSkKICAgIH0KCiAgICBhZGRIb3N0UmVtb3ZlTGlzdGVuZXIobGlzdGVuZXI6IEhvc3RFdmVudExpc3RlbmVyLCBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmRpdkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibWwtaG9zdHJlbW92ZSIsIGxpc3RlbmVyIGFzIGFueSwgb3B0aW9ucykKICAgIH0KICAgIHJlbW92ZUhvc3RSZW1vdmVMaXN0ZW5lcihsaXN0ZW5lcjogSG9zdEV2ZW50TGlzdGVuZXIsIG9wdGlvbnM/OiBFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgICAgIHRoaXMuZGl2RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtbC1ob3N0cmVtb3ZlIiwgbGlzdGVuZXIgYXMgYW55LCBvcHRpb25zKQogICAgfQoKICAgIGFkZEhvc3RPcGVuTGlzdGVuZXIobGlzdGVuZXI6IEhvc3RFdmVudExpc3RlbmVyLCBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmRpdkVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibWwtaG9zdG9wZW4iLCBsaXN0ZW5lciBhcyBhbnksIG9wdGlvbnMpCiAgICB9CiAgICByZW1vdmVIb3N0T3Blbkxpc3RlbmVyKGxpc3RlbmVyOiBIb3N0RXZlbnRMaXN0ZW5lciwgb3B0aW9ucz86IEV2ZW50TGlzdGVuZXJPcHRpb25zKSB7CiAgICAgICAgdGhpcy5kaXZFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1sLWhvc3RvcGVuIiwgbGlzdGVuZXIgYXMgYW55LCBvcHRpb25zKQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgbWFrZUdsb2JhbCgpIHsKICAgICAgICBhd2FpdCBhcGlQYXRjaEhvc3QodGhpcy5hcGksIHsKICAgICAgICAgICAgaG9zdF9pZDogdGhpcy5ob3N0SWQsCiAgICAgICAgICAgIGNoYW5nZV9vd25lcjogdHJ1ZSwKICAgICAgICAgICAgb3duZXI6IG51bGwsCiAgICAgICAgfSkKCiAgICAgICAgaWYgKHRoaXMuY2FjaGUpIHsKICAgICAgICAgICAgdGhpcy5jYWNoZS5vd25lciA9ICJHbG9iYWwiCiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSBhc3luYyBtYWtlUHJpdmF0ZSgpIHsKICAgICAgICBjb25zdCB1c2VyID0gdGhpcy51c2VyQ2FjaGUgPz8gYXdhaXQgYXBpR2V0VXNlcih0aGlzLmFwaSkKCiAgICAgICAgYXdhaXQgYXBpUGF0Y2hIb3N0KHRoaXMuYXBpLCB7CiAgICAgICAgICAgIGhvc3RfaWQ6IHRoaXMuaG9zdElkLAogICAgICAgICAgICBjaGFuZ2Vfb3duZXI6IHRydWUsCiAgICAgICAgICAgIG93bmVyOiB1c2VyLmlkLAogICAgICAgIH0pCgogICAgICAgIGlmICh0aGlzLmNhY2hlKSB7CiAgICAgICAgICAgIHRoaXMuY2FjaGUub3duZXIgPSAiVGhpc1VzZXIiCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgcmVtb3ZlKCkgewogICAgICAgIGF3YWl0IGFwaURlbGV0ZUhvc3QodGhpcy5hcGksIHsKICAgICAgICAgICAgaG9zdF9pZDogdGhpcy5nZXRIb3N0SWQoKQogICAgICAgIH0pCgogICAgICAgIHRoaXMuZGl2RWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBDb21wb25lbnRFdmVudCgibWwtaG9zdHJlbW92ZSIsIHRoaXMpKQogICAgfQogICAgcHJpdmF0ZSBhc3luYyB3YWtlVXAoKSB7CiAgICAgICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuaG9zdAogICAgICAgIGF3YWl0IGFwaVdha2VVcCh0aGlzLmFwaSwgewogICAgICAgICAgICBob3N0X2lkOiB0aGlzLmdldEhvc3RJZCgpCiAgICAgICAgfSkKCiAgICAgICAgYXdhaXQgc2hvd01lc3NhZ2UoaS53YWtlVXBTZW50KQogICAgfQogICAgcHJpdmF0ZSBhc3luYyBwYWlyKCkgewogICAgICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmhvc3QKICAgICAgICBpZiAodGhpcy5jYWNoZT8ucGFpcmVkID09ICJQYWlyZWQiKSB7CiAgICAgICAgICAgIGF3YWl0IHRoaXMuZm9yY2VGZXRjaCgpCgogICAgICAgICAgICBpZiAodGhpcy5jYWNoZT8ucGFpcmVkID09ICJQYWlyZWQiKSB7CiAgICAgICAgICAgICAgICBzaG93TWVzc2FnZShpLmFscmVhZHlQYWlyZWQpCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGNvbnN0IHJlc3BvbnNlU3RyZWFtID0gYXdhaXQgYXBpUG9zdFBhaXIodGhpcy5hcGksIHsKICAgICAgICAgICAgaG9zdF9pZDogdGhpcy5nZXRIb3N0SWQoKQogICAgICAgIH0pCgogICAgICAgIGlmICh0eXBlb2YgcmVzcG9uc2VTdHJlYW0ucmVzcG9uc2UgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgdGhyb3cgYGZhaWxlZCB0byBwYWlyIChzdGFnZSAxKTogJHtyZXNwb25zZVN0cmVhbS5yZXNwb25zZX1gCiAgICAgICAgfQoKICAgICAgICBjb25zdCBtZXNzYWdlQWJvcnQgPSBuZXcgQWJvcnRDb250cm9sbGVyKCkKICAgICAgICBzaG93TWVzc2FnZShpLnBhaXJQcm9tcHQodGhpcy5nZXRDYWNoZSgpPy5uYW1lID8/ICIiLCByZXNwb25zZVN0cmVhbS5yZXNwb25zZS5QaW4pLCB7IHNpZ25hbDogbWVzc2FnZUFib3J0LnNpZ25hbCB9KQoKICAgICAgICBjb25zdCByZXN1bHRSZXNwb25zZSA9IGF3YWl0IHJlc3BvbnNlU3RyZWFtLm5leHQoKQogICAgICAgIG1lc3NhZ2VBYm9ydC5hYm9ydCgpCgogICAgICAgIGlmICghcmVzdWx0UmVzcG9uc2UpIHsKICAgICAgICAgICAgdGhyb3cgIm1pc3Npbmcgc3RhZ2UgMiBvZiBwYWlyaW5nIgogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlc3VsdFJlc3BvbnNlID09ICJzdHJpbmciKSB7CiAgICAgICAgICAgIHRocm93IGBmYWlsZWQgdG8gcGFpciAoc3RhZ2UgMik6ICR7cmVzdWx0UmVzcG9uc2V9YAogICAgICAgIH0KCiAgICAgICAgdGhpcy51cGRhdGVDYWNoZShyZXN1bHRSZXNwb25zZS5QYWlyZWQsIG51bGwpCiAgICB9CgogICAgZ2V0SG9zdElkKCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdElkCiAgICB9CgogICAgZ2V0Q2FjaGUoKTogRGV0YWlsZWRIb3N0IHwgVW5kZXRhaWxlZEhvc3QgfCBudWxsIHsKICAgICAgICByZXR1cm4gdGhpcy5jYWNoZQogICAgfQoKICAgIHVwZGF0ZUNhY2hlKGhvc3Q6IFVuZGV0YWlsZWRIb3N0IHwgRGV0YWlsZWRIb3N0LCB1c2VyOiBEZXRhaWxlZFVzZXIgfCBudWxsKSB7CiAgICAgICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuaG9zdAogICAgICAgIGlmICh0aGlzLmdldEhvc3RJZCgpICE9IGhvc3QuaG9zdF9pZCkgewogICAgICAgICAgICBzaG93Tm90aWZpY2F0aW9uKGkub3ZlcndyaXRlTWlzbWF0Y2godGhpcy5nZXRIb3N0SWQoKSwgaG9zdC5ob3N0X2lkKSkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBpZiAodGhpcy5jYWNoZSA9PSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuY2FjaGUgPSBob3N0CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gaWYgc2VydmVyX3N0YXRlID09IG51bGwgaXQgbWVhbnMgdGhpcyBob3N0IGlzIG9mZmxpbmUKICAgICAgICAgICAgLy8gLT4gdXBkYXRpbmcgY2FjaGUgbWVhbnMgc2V0dGluZyBpdCB0byBvZmZsaW5lCiAgICAgICAgICAgIGlmICh0aGlzLmNhY2hlLnNlcnZlcl9zdGF0ZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuY2FjaGUsIGhvc3QpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLmNhY2hlID0gaG9zdAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAodXNlcikgewogICAgICAgICAgICB0aGlzLnVzZXJDYWNoZSA9IHVzZXIKICAgICAgICB9CgogICAgICAgIC8vIFVwZGF0ZSBFbGVtZW50cwogICAgICAgIHRoaXMubmFtZUVsZW1lbnQuaW5uZXJUZXh0ID0gdGhpcy5jYWNoZS5uYW1lCgogICAgICAgIGlmICh0aGlzLmNhY2hlLnNlcnZlcl9zdGF0ZSA9PSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuaW1hZ2VPdmVybGF5RWxlbWVudC5zcmMgPSBIT1NUX09WRVJMQVlfT0ZGTElORQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5jYWNoZS5wYWlyZWQgIT0gIlBhaXJlZCIpIHsKICAgICAgICAgICAgdGhpcy5pbWFnZU92ZXJsYXlFbGVtZW50LnNyYyA9IEhPU1RfT1ZFUkxBWV9MT0NLCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5pbWFnZU92ZXJsYXlFbGVtZW50LnNyYyA9IEhPU1RfT1ZFUkxBWV9OT05FCiAgICAgICAgfQogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5kaXZFbGVtZW50KQogICAgfQogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMuZGl2RWxlbWVudCkKICAgIH0KfQo="},{"path":"web/component/host/list.ts","sha256":"ffaf2f77bf0fd742567622d90b8db38e145164754633f9b28dc657f53951dbde","contentBase64":"aW1wb3J0IHsgRGV0YWlsZWRIb3N0LCBVbmRldGFpbGVkSG9zdCB9IGZyb20gIi4uLy4uL2FwaV9iaW5kaW5ncy5qcyIKaW1wb3J0IHsgQXBpLCBhcGlHZXRIb3N0cyB9IGZyb20gIi4uLy4uL2FwaS5qcyIKaW1wb3J0IHsgQ29tcG9uZW50RXZlbnQgfSBmcm9tICIuLi9pbmRleC5qcyIKaW1wb3J0IHsgSG9zdCwgSG9zdEV2ZW50TGlzdGVuZXIgfSBmcm9tICIuL2luZGV4LmpzIgppbXBvcnQgeyBGZXRjaExpc3RDb21wb25lbnQgfSBmcm9tICIuLi9mZXRjaF9saXN0LmpzIgoKZXhwb3J0IGNsYXNzIEhvc3RMaXN0IGV4dGVuZHMgRmV0Y2hMaXN0Q29tcG9uZW50PERldGFpbGVkSG9zdCB8IFVuZGV0YWlsZWRIb3N0LCBIb3N0PiB7CiAgICBwcml2YXRlIGFwaTogQXBpCgogICAgcHJpdmF0ZSBldmVudFRhcmdldCA9IG5ldyBFdmVudFRhcmdldCgpCgogICAgY29uc3RydWN0b3IoYXBpOiBBcGkpIHsKICAgICAgICBzdXBlcih7CiAgICAgICAgICAgIGxpc3RDbGFzc2VzOiBbImhvc3QtbGlzdCJdLAogICAgICAgICAgICBlbGVtZW50TGlDbGFzc2VzOiBbImFuaW1hdGVkLWxpc3QtZWxlbWVudCIsICJob3N0LWVsZW1lbnQiXQogICAgICAgIH0pCgogICAgICAgIHRoaXMuYXBpID0gYXBpCiAgICB9CgogICAgYXN5bmMgZm9yY2VGZXRjaCgpIHsKICAgICAgICBjb25zdCBob3N0cyA9IGF3YWl0IGFwaUdldEhvc3RzKHRoaXMuYXBpKQoKICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKGhvc3RzLnJlc3BvbnNlLmhvc3RzKQoKICAgICAgICBsZXQgdXBkYXRlCiAgICAgICAgd2hpbGUgKHVwZGF0ZSA9IGF3YWl0IGhvc3RzLm5leHQoKSkgewogICAgICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5nZXRIb3N0KHVwZGF0ZS5ob3N0X2lkKQogICAgICAgICAgICBpZiAoaG9zdCkgewogICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDb21wb25lbnREYXRhKGhvc3QsIHVwZGF0ZSkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgdXBkYXRlQ29tcG9uZW50RGF0YShjb21wb25lbnQ6IEhvc3QsIGRhdGE6IERldGFpbGVkSG9zdCB8IFVuZGV0YWlsZWRIb3N0KTogdm9pZCB7CiAgICAgICAgY29tcG9uZW50LnVwZGF0ZUNhY2hlKGRhdGEsIG51bGwpCiAgICB9CiAgICBwcm90ZWN0ZWQgZ2V0Q29tcG9uZW50RGF0YUlkKGNvbXBvbmVudDogSG9zdCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIGNvbXBvbmVudC5nZXRIb3N0SWQoKQogICAgfQogICAgcHJvdGVjdGVkIGdldERhdGFJZChkYXRhOiBEZXRhaWxlZEhvc3QgfCBVbmRldGFpbGVkSG9zdCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIGRhdGEuaG9zdF9pZAogICAgfQoKICAgIHB1YmxpYyBpbnNlcnRMaXN0KGRhdGFJZDogbnVtYmVyLCBkYXRhOiBEZXRhaWxlZEhvc3QgfCBVbmRldGFpbGVkSG9zdCB8IG51bGwpOiB2b2lkIHsKICAgICAgICBjb25zdCBuZXdIb3N0ID0gbmV3IEhvc3QodGhpcy5hcGksIGRhdGFJZCwgZGF0YSkKCiAgICAgICAgdGhpcy5saXN0LmFwcGVuZChuZXdIb3N0KQoKICAgICAgICBuZXdIb3N0LmFkZEhvc3RSZW1vdmVMaXN0ZW5lcih0aGlzLnJlbW92ZUhvc3RMaXN0ZW5lci5iaW5kKHRoaXMpKQogICAgICAgIG5ld0hvc3QuYWRkSG9zdE9wZW5MaXN0ZW5lcih0aGlzLm9uSG9zdE9wZW5FdmVudC5iaW5kKHRoaXMpKQogICAgfQogICAgcHVibGljIHJlbW92ZUxpc3QobGlzdEluZGV4OiBudW1iZXIpOiB2b2lkIHsKICAgICAgICBjb25zdCBob3N0Q29tcG9uZW50ID0gdGhpcy5saXN0LnJlbW92ZShsaXN0SW5kZXgpCgogICAgICAgIGhvc3RDb21wb25lbnQ/LmFkZEhvc3RPcGVuTGlzdGVuZXIodGhpcy5vbkhvc3RPcGVuRXZlbnQuYmluZCh0aGlzKSkKICAgICAgICBob3N0Q29tcG9uZW50Py5yZW1vdmVIb3N0UmVtb3ZlTGlzdGVuZXIodGhpcy5yZW1vdmVIb3N0TGlzdGVuZXIuYmluZCh0aGlzKSkKICAgIH0KCiAgICBwcml2YXRlIHJlbW92ZUhvc3RMaXN0ZW5lcihldmVudDogQ29tcG9uZW50RXZlbnQ8SG9zdD4pIHsKICAgICAgICBjb25zdCBsaXN0SW5kZXggPSB0aGlzLmxpc3QuZ2V0KCkuZmluZEluZGV4KGNvbXBvbmVudCA9PiBjb21wb25lbnQuZ2V0SG9zdElkKCkgPT0gZXZlbnQuY29tcG9uZW50LmdldEhvc3RJZCgpKQoKICAgICAgICB0aGlzLnJlbW92ZUxpc3QobGlzdEluZGV4KQogICAgfQoKICAgIGdldEhvc3QoaG9zdElkOiBudW1iZXIpOiBIb3N0IHwgdW5kZWZpbmVkIHsKICAgICAgICByZXR1cm4gdGhpcy5saXN0LmdldCgpLmZpbmQoaG9zdCA9PiBob3N0LmdldEhvc3RJZCgpID09IGhvc3RJZCkKICAgIH0KCiAgICBwcml2YXRlIG9uSG9zdE9wZW5FdmVudChldmVudDogQ29tcG9uZW50RXZlbnQ8SG9zdD4pIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IENvbXBvbmVudEV2ZW50KCJtbC1ob3N0b3BlbiIsIGV2ZW50LmNvbXBvbmVudCkpCiAgICB9CgogICAgYWRkSG9zdE9wZW5MaXN0ZW5lcihsaXN0ZW5lcjogSG9zdEV2ZW50TGlzdGVuZXIsIG9wdGlvbnM/OiBFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibWwtaG9zdG9wZW4iLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zKQogICAgfQogICAgcmVtb3ZlSG9zdE9wZW5MaXN0ZW5lcihsaXN0ZW5lcjogSG9zdEV2ZW50TGlzdGVuZXIsIG9wdGlvbnM/OiBFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWwtaG9zdG9wZW4iLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zKQogICAgfQoKICAgIG1vdW50KHBhcmVudDogRWxlbWVudCk6IHZvaWQgewogICAgICAgIHRoaXMubGlzdC5tb3VudChwYXJlbnQpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogRWxlbWVudCk6IHZvaWQgewogICAgICAgIHRoaXMubGlzdC51bm1vdW50KHBhcmVudCkKICAgIH0KfQ=="},{"path":"web/component/index.ts","sha256":"a69d816ea2997347a51f2f2d8b2c0a058c492bb155f7d35f9363bdbd93d33cde","contentBase64":"CmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50IHsKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkCgogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZAp9CgpleHBvcnQgY2xhc3MgQ29tcG9uZW50RXZlbnQ8VCBleHRlbmRzIENvbXBvbmVudD4gZXh0ZW5kcyBFdmVudCB7CiAgICBjb21wb25lbnQ6IFQKCiAgICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcsIGNvbXBvbmVudDogVCkgewogICAgICAgIHN1cGVyKHR5cGUpCgogICAgICAgIHRoaXMuY29tcG9uZW50ID0gY29tcG9uZW50CiAgICB9Cn0KCmV4cG9ydCBpbnRlcmZhY2UgRmV0Y2hDb21wb25lbnQ8RGF0YT4gZXh0ZW5kcyBDb21wb25lbnQgewogICAgZm9yY2VGZXRjaCgpOiBQcm9taXNlPHZvaWQ+CgogICAgdXBkYXRlQ2FjaGUoZGF0YTogQXJyYXk8RGF0YT4pOiB2b2lkCn0K"},{"path":"web/component/input.ts","sha256":"7528167afbd7548c824cbe09fe1f47939f9d2efe5e9f6277a075c03facb7dd1a","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRFdmVudCB9IGZyb20gIi4vaW5kZXguanMiCmltcG9ydCB7IGdldExvY2FsU3RyZWFtU2V0dGluZ3MsIGdsb2JhbERlZmF1bHRTZXR0aW5ncyB9IGZyb20gIi4vc2V0dGluZ3NfbWVudS5qcyIKaW1wb3J0IHsgZ2V0Q3VycmVudExhbmd1YWdlLCBnZXRUcmFuc2xhdGlvbnMgfSBmcm9tICIuLi9pMThuLmpzIgoKZXhwb3J0IGNsYXNzIEVsZW1lbnRXaXRoTGFiZWwgaW1wbGVtZW50cyBDb21wb25lbnQgewogICAgcHJvdGVjdGVkIGRpdjogSFRNTERpdkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQogICAgcHJvdGVjdGVkIGxhYmVsOiBIVE1MTGFiZWxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKQoKICAgIGNvbnN0cnVjdG9yKGludGVybmFsTmFtZTogc3RyaW5nLCBkaXNwbGF5TmFtZT86IHN0cmluZykgewogICAgICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmNvbW1vbgogICAgICAgIGlmIChkaXNwbGF5TmFtZSkgewogICAgICAgICAgICB0aGlzLmxhYmVsLmh0bWxGb3IgPSBpbnRlcm5hbE5hbWUKICAgICAgICAgICAgdGhpcy5sYWJlbC5pbm5lclRleHQgPSBkaXNwbGF5TmFtZQogICAgICAgICAgICB0aGlzLmRpdi5hcHBlbmRDaGlsZCh0aGlzLmxhYmVsKQogICAgICAgIH0KICAgIH0KCiAgICBtb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHRoaXMuZGl2KQogICAgfQogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMuZGl2KQogICAgfQoKICAgIG1vdW50QmVmb3JlKHBhcmVudDogSFRNTEVsZW1lbnQsIGJlZm9yZTogRWxlbWVudFdpdGhMYWJlbCk6IHZvaWQgewogICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUodGhpcy5kaXYsIGJlZm9yZS5kaXYpCiAgICB9Cn0KCmV4cG9ydCB0eXBlIElucHV0SW5pdCA9IHsKICAgIGRlZmF1bHRWYWx1ZT86IHN0cmluZwogICAgdmFsdWU/OiBzdHJpbmcKICAgIGNoZWNrZWQ/OiBib29sZWFuCiAgICBzdGVwPzogc3RyaW5nCiAgICBhY2NlcHQ/OiBzdHJpbmcKICAgIGlucHV0TW9kZT86IHN0cmluZwogICAgaGFzRW5hYmxlQ2hlY2tib3g/OiBib29sZWFuCiAgICBwbGFjZWhvbGVyPzogc3RyaW5nCiAgICBmb3JtUmVxdWlyZWQ/OiBib29sZWFuCiAgICAvLyBPbmx5IGFsbG93ZWQgd2l0aCB0eXBlID09ICJudW1iZXIiCiAgICBudW1iZXJTbGlkZXI/OiB7CiAgICAgICAgcmFuZ2VfbWluOiBudW1iZXIsCiAgICAgICAgcmFuZ2VfbWF4OiBudW1iZXIKICAgICAgICAvLyBVc2Ugc3RlcCB0byBzZXQgdGhlIHN0ZXAKICAgIH0KfQoKZXhwb3J0IHR5cGUgSW5wdXRDaGFuZ2VMaXN0ZW5lciA9IChldmVudDogQ29tcG9uZW50RXZlbnQ8SW5wdXRDb21wb25lbnQ+KSA9PiB2b2lkCgpleHBvcnQgY2xhc3MgSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBFbGVtZW50V2l0aExhYmVsIHsKCiAgICBwcml2YXRlIGZpbGVMYWJlbDogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBudW1iZXJTbGlkZXI6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgaW5wdXRFbmFibGVkOiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCA9IG51bGwKICAgIHByaXZhdGUgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpCgogICAgY29uc3RydWN0b3IoaW50ZXJuYWxOYW1lOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgZGlzcGxheU5hbWU/OiBzdHJpbmcsIGluaXQ/OiBJbnB1dEluaXQpIHsKICAgICAgICBzdXBlcihpbnRlcm5hbE5hbWUsIGRpc3BsYXlOYW1lKQogICAgICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmNvbW1vbgoKICAgICAgICB0aGlzLmRpdi5jbGFzc0xpc3QuYWRkKCJpbnB1dC1kaXYiKQoKICAgICAgICB0aGlzLmlucHV0LmlkID0gaW50ZXJuYWxOYW1lCiAgICAgICAgdGhpcy5pbnB1dC50eXBlID0gdHlwZQogICAgICAgIGlmIChpbml0Py5kZWZhdWx0VmFsdWUgIT0gbnVsbCkgewogICAgICAgICAgICB0aGlzLmlucHV0LmRlZmF1bHRWYWx1ZSA9IGluaXQuZGVmYXVsdFZhbHVlCiAgICAgICAgfQogICAgICAgIGlmIChpbml0Py52YWx1ZSAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSBpbml0LnZhbHVlCiAgICAgICAgfQogICAgICAgIGlmIChpbml0ICYmIGluaXQuY2hlY2tlZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuaW5wdXQuY2hlY2tlZCA9IGluaXQuY2hlY2tlZAogICAgICAgIH0KICAgICAgICBpZiAoaW5pdCAmJiBpbml0LnN0ZXAgIT0gbnVsbCkgewogICAgICAgICAgICB0aGlzLmlucHV0LnN0ZXAgPSBpbml0LnN0ZXAKICAgICAgICB9CiAgICAgICAgaWYgKGluaXQgJiYgaW5pdC5hY2NlcHQgIT0gbnVsbCkgewogICAgICAgICAgICB0aGlzLmlucHV0LmFjY2VwdCA9IGluaXQuYWNjZXB0CiAgICAgICAgfQogICAgICAgIGlmIChpbml0ICYmIGluaXQuaW5wdXRNb2RlICE9IG51bGwpIHsKICAgICAgICAgICAgdGhpcy5pbnB1dC5pbnB1dE1vZGUgPSBpbml0LmlucHV0TW9kZQogICAgICAgIH0KICAgICAgICBpZiAoaW5pdCAmJiBpbml0LmZvcm1SZXF1aXJlZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuaW5wdXQucmVxdWlyZWQgPSBpbml0LmZvcm1SZXF1aXJlZAogICAgICAgIH0KICAgICAgICBpZiAoaW5pdCAmJiBpbml0LnBsYWNlaG9sZXIgIT0gbnVsbCkgewogICAgICAgICAgICB0aGlzLmlucHV0LnBsYWNlaG9sZGVyID0gaW5pdC5wbGFjZWhvbGVyCiAgICAgICAgfQoKICAgICAgICBpZiAodHlwZSA9PSAiZmlsZSIpIHsKICAgICAgICAgICAgdGhpcy5maWxlTGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQogICAgICAgICAgICB0aGlzLmZpbGVMYWJlbC5pbm5lclRleHQgPSB0aGlzLmxhYmVsLmlubmVyVGV4dAogICAgICAgICAgICB0aGlzLmZpbGVMYWJlbC5jbGFzc0xpc3QuYWRkKCJmaWxlLWxhYmVsIikKCiAgICAgICAgICAgIHRoaXMubGFiZWwuaW5uZXJUZXh0ID0gaS5vcGVuRmlsZQogICAgICAgICAgICB0aGlzLmxhYmVsLmNsYXNzTGlzdC5hZGQoImZpbGUtYnV0dG9uIikKCiAgICAgICAgICAgIHRoaXMuZGl2Lmluc2VydEJlZm9yZSh0aGlzLmZpbGVMYWJlbCwgdGhpcy5sYWJlbCkKICAgICAgICB9CgogICAgICAgIGlmIChpbml0Py5oYXNFbmFibGVDaGVja2JveCkgewogICAgICAgICAgICB0aGlzLmlucHV0RW5hYmxlZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikKICAgICAgICAgICAgdGhpcy5pbnB1dEVuYWJsZWQudHlwZSA9ICJjaGVja2JveCIKICAgICAgICAgICAgdGhpcy5pbnB1dEVuYWJsZWQuZGVmYXVsdENoZWNrZWQgPSBmYWxzZQoKICAgICAgICAgICAgdGhpcy5pbnB1dEVuYWJsZWQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwgKCkgPT4gewogICAgICAgICAgICAgICAgdGhpcy5zZXRFbmFibGVkKAogICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbmFibGVkPy5jaGVja2VkID8/ICgoKSA9PiB7IHRocm93ICJpbnB1dEVuYWJsZWQgaXMgbnVsbCIgfSkoKQogICAgICAgICAgICAgICAgKQoKICAgICAgICAgICAgICAgIHRoaXMuZGl2LmRpc3BhdGNoRXZlbnQobmV3IENvbXBvbmVudEV2ZW50KCJtbC1jaGFuZ2UiLCB0aGlzKSkKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIHRoaXMuZGl2LmFwcGVuZENoaWxkKHRoaXMuaW5wdXRFbmFibGVkKQogICAgICAgIH0KCiAgICAgICAgdGhpcy5kaXYuYXBwZW5kQ2hpbGQodGhpcy5pbnB1dCkKCiAgICAgICAgdGhpcy5pbnB1dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoKSA9PiB7CiAgICAgICAgICAgIGlmICh0aGlzLm51bWJlclNsaWRlcikgewogICAgICAgICAgICAgICAgdGhpcy5udW1iZXJTbGlkZXIudmFsdWUgPSB0aGlzLmlucHV0LnZhbHVlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuZGl2LmRpc3BhdGNoRXZlbnQobmV3IENvbXBvbmVudEV2ZW50KCJtbC1jaGFuZ2UiLCB0aGlzKSkKICAgICAgICB9KQoKICAgICAgICBpZiAoaW5pdD8ubnVtYmVyU2xpZGVyICYmIHR5cGUgIT0gIm51bWJlciIpIHsKICAgICAgICAgICAgdGhyb3cgInRyaWVkIHRvIGNyZWF0ZSBJbnB1dENvbXBvbmVudCB3aXRoIG51bWJlciBzbGlkZXIgYnV0IHR5cGUgd2Fzbid0IG51bWJlciIKICAgICAgICB9CiAgICAgICAgaWYgKHR5cGUgPT0gIm51bWJlciIgJiYgaW5pdD8ubnVtYmVyU2xpZGVyKSB7CiAgICAgICAgICAgIHRoaXMubnVtYmVyU2xpZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKQogICAgICAgICAgICB0aGlzLm51bWJlclNsaWRlci50eXBlID0gInJhbmdlIgogICAgICAgICAgICB0aGlzLm51bWJlclNsaWRlci5taW4gPSBgJHtpbml0Lm51bWJlclNsaWRlci5yYW5nZV9taW59YAogICAgICAgICAgICB0aGlzLm51bWJlclNsaWRlci5tYXggPSBgJHtpbml0Lm51bWJlclNsaWRlci5yYW5nZV9tYXh9YAogICAgICAgICAgICB0aGlzLm51bWJlclNsaWRlci5zdGVwID0gaW5pdC5zdGVwPy50b1N0cmluZygpID8/ICIiCgogICAgICAgICAgICB0aGlzLm51bWJlclNsaWRlci5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLCAoKSA9PiB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5udW1iZXJTbGlkZXIpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gdGhpcy5udW1iZXJTbGlkZXIudmFsdWUKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgImZhaWxlZCB0byBnZXQgdmFsdWUgb2YgbnVtYmVyIHNsaWRlciBiZWNhdXNlIGl0IHdhc24ndCBjcmVhdGVkIgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHRoaXMuZGl2LmRpc3BhdGNoRXZlbnQobmV3IENvbXBvbmVudEV2ZW50KCJtbC1jaGFuZ2UiLCB0aGlzKSkKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIHRoaXMuZGl2LmFwcGVuZENoaWxkKHRoaXMubnVtYmVyU2xpZGVyKQogICAgICAgIH0KCiAgICAgICAgaWYgKGluaXQ/Lmhhc0VuYWJsZUNoZWNrYm94KSB7CiAgICAgICAgICAgIC8vIFRoZSBtYWluIGxvZ2ljIGlzIGZ1cnRoZXIgdXAKICAgICAgICAgICAgdGhpcy5zZXRFbmFibGVkKGZhbHNlKQogICAgICAgIH0KICAgIH0KCiAgICByZXNldCgpIHsKICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gIiIKICAgICAgICBpZiAodGhpcy5udW1iZXJTbGlkZXIpIHsKICAgICAgICAgICAgdGhpcy5udW1iZXJTbGlkZXIudmFsdWUgPSAiIgogICAgICAgIH0KICAgIH0KCiAgICBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7CiAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHZhbHVlCiAgICAgICAgaWYgKHRoaXMubnVtYmVyU2xpZGVyKSB7CiAgICAgICAgICAgIHRoaXMubnVtYmVyU2xpZGVyLnZhbHVlID0gdmFsdWUKICAgICAgICB9CiAgICB9CiAgICBnZXRWYWx1ZSgpOiBzdHJpbmcgewogICAgICAgIHJldHVybiB0aGlzLmlucHV0LnZhbHVlCiAgICB9CgogICAgc2V0Q2hlY2tlZChjaGVja2VkOiBib29sZWFuKSB7CiAgICAgICAgdGhpcy5pbnB1dC5jaGVja2VkID0gY2hlY2tlZAogICAgfQogICAgaXNDaGVja2VkKCk6IGJvb2xlYW4gewogICAgICAgIHJldHVybiB0aGlzLmlucHV0LmNoZWNrZWQKICAgIH0KCiAgICBnZXRGaWxlcygpOiBGaWxlTGlzdCB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLmlucHV0LmZpbGVzCiAgICB9CgogICAgc2V0RW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7CiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbmFibGVkKSB7CiAgICAgICAgICAgIHRoaXMuaW5wdXRFbmFibGVkLmNoZWNrZWQgPSBlbmFibGVkCiAgICAgICAgfQoKICAgICAgICB0aGlzLmlucHV0LmRpc2FibGVkID0gIWVuYWJsZWQKICAgICAgICBpZiAodGhpcy5udW1iZXJTbGlkZXIpIHsKICAgICAgICAgICAgdGhpcy5udW1iZXJTbGlkZXIuZGlzYWJsZWQgPSAhZW5hYmxlZAogICAgICAgIH0KICAgIH0KICAgIGlzRW5hYmxlZCgpOiBib29sZWFuIHsKICAgICAgICByZXR1cm4gIXRoaXMuaW5wdXQuZGlzYWJsZWQKICAgIH0KCiAgICBhZGRDaGFuZ2VMaXN0ZW5lcihsaXN0ZW5lcjogSW5wdXRDaGFuZ2VMaXN0ZW5lciwgb3B0aW9ucz86IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zKSB7CiAgICAgICAgdGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigibWwtY2hhbmdlIiwgbGlzdGVuZXIgYXMgYW55LCBvcHRpb25zKQogICAgfQogICAgcmVtb3ZlQ2hhbmdlTGlzdGVuZXIobGlzdGVuZXI6IElucHV0Q2hhbmdlTGlzdGVuZXIpIHsKICAgICAgICB0aGlzLmRpdi5yZW1vdmVFdmVudExpc3RlbmVyKCJtbC1jaGFuZ2UiLCBsaXN0ZW5lciBhcyBhbnkpCiAgICB9CgogICAgc2V0UGxhY2Vob2xkZXIobmV3UGxhY2Vob2xkZXI6IHN0cmluZykgewogICAgICAgIHRoaXMuaW5wdXQucGxhY2Vob2xkZXIgPSBuZXdQbGFjZWhvbGRlcgogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBzdXBlci5tb3VudChwYXJlbnQpCgogICAgICAgIGlmICh0aGlzLm51bWJlclNsaWRlcikgewogICAgICAgICAgICB0aGlzLm51bWJlclNsaWRlci52YWx1ZSA9IHRoaXMuaW5wdXQudmFsdWUKICAgICAgICB9CiAgICB9Cn0KCmV4cG9ydCB0eXBlIFNlbGVjdEluaXQgPSB7CiAgICAvLyBPbmx5IHVzZXMgZGF0YWxpc3QgaWYgc3VwcG9ydGVkCiAgICBoYXNTZWFyY2g/OiBib29sZWFuCiAgICBwcmVTZWxlY3RlZE9wdGlvbj86IHN0cmluZwogICAgZGlzcGxheU5hbWU/OiBzdHJpbmcsCn0KCnR5cGUgU2VsZWN0U3RyYXRlZ3kgPQogICAgeyBuYW1lOiAic2VsZWN0Iiwgb3B0aW9uUm9vdDogSFRNTFNlbGVjdEVsZW1lbnQgfSB8CiAgICB7IG5hbWU6ICJkYXRhbGlzdCIsIG9wdGlvblJvb3Q6IEhUTUxEYXRhTGlzdEVsZW1lbnQsIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB9IHwKICAgIHsgbmFtZTogInBvbHlmaWxsIiwgb3BlbmVkOiBib29sZWFuLCB3cmFwcGVyOiBIVE1MRGl2RWxlbWVudCwgZGlzcGxheTogSFRNTFBhcmFncmFwaEVsZW1lbnQsIGxpc3Q6IEhUTUxEaXZFbGVtZW50LCB2YWx1ZTogc3RyaW5nIHwgbnVsbCwgZGlzYWJsZWQ6IFNldDxzdHJpbmc+IH0KCmZ1bmN0aW9uIHVzZVNlbGVjdEVsZW1lbnRQb2x5ZmlsbCgpOiBib29sZWFuIHsKICAgIHJldHVybiBnZXRMb2NhbFN0cmVhbVNldHRpbmdzKGdsb2JhbERlZmF1bHRTZXR0aW5ncygpKT8udXNlU2VsZWN0RWxlbWVudFBvbHlmaWxsID8/IGZhbHNlCn0KCmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBFbGVtZW50V2l0aExhYmVsIHsKCiAgICBwcml2YXRlIHByZVNlbGVjdGVkT3B0aW9uOiBzdHJpbmcgPSAiIgogICAgcHJpdmF0ZSBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyB9PgoKICAgIHByaXZhdGUgc3RyYXRlZ3k6IFNlbGVjdFN0cmF0ZWd5CgogICAgY29uc3RydWN0b3IoaW50ZXJuYWxOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IEFycmF5PHsgdmFsdWU6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+LCBpbml0PzogU2VsZWN0SW5pdCkgewogICAgICAgIHN1cGVyKGludGVybmFsTmFtZSwgaW5pdD8uZGlzcGxheU5hbWUpCgogICAgICAgIGlmIChpbml0ICYmIGluaXQucHJlU2VsZWN0ZWRPcHRpb24pIHsKICAgICAgICAgICAgdGhpcy5wcmVTZWxlY3RlZE9wdGlvbiA9IGluaXQucHJlU2VsZWN0ZWRPcHRpb24KICAgICAgICB9CiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucwoKICAgICAgICAvLyBDcmVhdGUgYmFzZQogICAgICAgIGlmICh1c2VTZWxlY3RFbGVtZW50UG9seWZpbGwoKSB8fCAhaXNFbGVtZW50U3VwcG9ydGVkKCJzZWxlY3QiKSkgewogICAgICAgICAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKCiAgICAgICAgICAgIHdyYXBwZXIuY2xhc3NMaXN0LmFkZCgic2VsZWN0LXBvbHlmaWxsLXdyYXBwZXIiKQoKICAgICAgICAgICAgdGhpcy5kaXYuYXBwZW5kQ2hpbGQod3JhcHBlcikKICAgICAgICAgICAgdGhpcy5kaXYuY2xhc3NMaXN0LmFkZCgiaW5wdXQtZGl2IikKCiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIikKICAgICAgICAgICAgZGlzcGxheS5jbGFzc0xpc3QuYWRkKCJzZWxlY3QtcG9seWZpbGwtZGlzcGxheSIpCgogICAgICAgICAgICBkaXNwbGF5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RyYXRlZ3kubmFtZSAhPSAicG9seWZpbGwiKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgIlNlbGVjdENvbXBvbmVudCBzdHJhdGVneSBpcyBub3QgcG9seWZpbGwiCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdGhpcy5zZXRTdHJhdGVneVBvbHlmaWxsT3BlbmVkKCF0aGlzLnN0cmF0ZWd5Lm9wZW5lZCkKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQoKICAgICAgICAgICAgbGlzdC5jbGFzc0xpc3QuYWRkKCJzZWxlY3QtcG9seWZpbGwtbGlzdCIpCgogICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKGRpc3BsYXkpCgogICAgICAgICAgICB0aGlzLnN0cmF0ZWd5ID0gewogICAgICAgICAgICAgICAgbmFtZTogInBvbHlmaWxsIiwKICAgICAgICAgICAgICAgIG9wZW5lZDogZmFsc2UsCiAgICAgICAgICAgICAgICB3cmFwcGVyLAogICAgICAgICAgICAgICAgZGlzcGxheSwKICAgICAgICAgICAgICAgIGxpc3QsCiAgICAgICAgICAgICAgICB2YWx1ZTogaW5pdD8ucHJlU2VsZWN0ZWRPcHRpb24gPz8gIiIsCiAgICAgICAgICAgICAgICBkaXNhYmxlZDogbmV3IFNldCgpCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKGluaXQgJiYgaW5pdC5oYXNTZWFyY2ggJiYgaXNFbGVtZW50U3VwcG9ydGVkKCJkYXRhbGlzdCIpKSB7CiAgICAgICAgICAgIGNvbnN0IGRhdGFMaXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRhdGFsaXN0IikKCiAgICAgICAgICAgIGRhdGFMaXN0RWxlbWVudC5pZCA9IGAke2ludGVybmFsTmFtZX0tbGlzdGAKCiAgICAgICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikKICAgICAgICAgICAgaW5wdXRFbGVtZW50LnR5cGUgPSAidGV4dCIKICAgICAgICAgICAgaW5wdXRFbGVtZW50LmlkID0gaW50ZXJuYWxOYW1lCiAgICAgICAgICAgIGlucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoImxpc3QiLCBkYXRhTGlzdEVsZW1lbnQuaWQpCgogICAgICAgICAgICBpZiAoaW5pdCAmJiBpbml0LnByZVNlbGVjdGVkT3B0aW9uKSB7CiAgICAgICAgICAgICAgICBpbnB1dEVsZW1lbnQuZGVmYXVsdFZhbHVlID0gaW5pdC5wcmVTZWxlY3RlZE9wdGlvbgogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmRpdi5hcHBlbmRDaGlsZChpbnB1dEVsZW1lbnQpCiAgICAgICAgICAgIHRoaXMuZGl2LmFwcGVuZENoaWxkKGRhdGFMaXN0RWxlbWVudCkKCiAgICAgICAgICAgIHRoaXMuc3RyYXRlZ3kgPSB7CiAgICAgICAgICAgICAgICBuYW1lOiAiZGF0YWxpc3QiLAogICAgICAgICAgICAgICAgb3B0aW9uUm9vdDogZGF0YUxpc3RFbGVtZW50LAogICAgICAgICAgICAgICAgaW5wdXRFbGVtZW50LAogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3Qgc2VsZWN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpCiAgICAgICAgICAgIHNlbGVjdEVsZW1lbnQuaWQgPSBpbnRlcm5hbE5hbWUKCiAgICAgICAgICAgIHRoaXMuZGl2LmFwcGVuZENoaWxkKHNlbGVjdEVsZW1lbnQpCgogICAgICAgICAgICB0aGlzLnN0cmF0ZWd5ID0gewogICAgICAgICAgICAgICAgbmFtZTogInNlbGVjdCIsCiAgICAgICAgICAgICAgICBvcHRpb25Sb290OiBzZWxlY3RFbGVtZW50LAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBBcHBlbmQgdmFsdWVzCiAgICAgICAgaWYgKHRoaXMuc3RyYXRlZ3kubmFtZSA9PSAiZGF0YWxpc3QiIHx8IHRoaXMuc3RyYXRlZ3kubmFtZSA9PSAic2VsZWN0IikgewogICAgICAgICAgICBjb25zdCBvcHRpb25Sb290ID0gdGhpcy5zdHJhdGVneS5vcHRpb25Sb290CgogICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiBvcHRpb25zKSB7CiAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIikKCiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdHJhdGVneS5uYW1lID09ICJkYXRhbGlzdCIpIHsKICAgICAgICAgICAgICAgICAgICBvcHRpb25FbGVtZW50LnZhbHVlID0gb3B0aW9uLm5hbWUKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdHJhdGVneS5uYW1lID09ICJzZWxlY3QiKSB7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVudC5pbm5lclRleHQgPSBvcHRpb24ubmFtZQogICAgICAgICAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQudmFsdWUgPSBvcHRpb24udmFsdWUKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoaW5pdCAmJiBpbml0LnByZVNlbGVjdGVkT3B0aW9uID09IG9wdGlvbi52YWx1ZSkgewogICAgICAgICAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuc2VsZWN0ZWQgPSB0cnVlCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgb3B0aW9uUm9vdC5hcHBlbmRDaGlsZChvcHRpb25FbGVtZW50KQogICAgICAgICAgICB9CgogICAgICAgICAgICBvcHRpb25Sb290LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsICgpID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hDaGFuZ2UoKQogICAgICAgICAgICB9KQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdHJhdGVneS5uYW1lID09ICJwb2x5ZmlsbCIpIHsKICAgICAgICAgICAgY29uc3Qgb3B0aW9uUm9vdCA9IHRoaXMuc3RyYXRlZ3kubGlzdAoKICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2Ygb3B0aW9ucykgewogICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKQoKICAgICAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuaW5uZXJUZXh0ID0gb3B0aW9uLm5hbWUKCiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlCiAgICAgICAgICAgICAgICBvcHRpb25FbGVtZW50LnZhbHVlID0gb3B0aW9uLnZhbHVlCgogICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdHJhdGVneS5uYW1lICE9ICJwb2x5ZmlsbCIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgIlNlbGVjdENvbXBvbmVudCBzdHJhdGVneSBpcyBub3QgcG9seWZpbGwgZXZlbiB0aG91Z2ggaXQgd2FzIGluaXRpYWxpemVkIHVzaW5nIHBvbHlmaWxsIHN0cmF0ZWd5IgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RyYXRlZ3kuZGlzYWJsZWQuaGFzKG9wdGlvbi52YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmF0ZWd5LnZhbHVlID0gb3B0aW9uLnZhbHVlCiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdHJhdGVneVBvbHlmaWxsT3BlbmVkKGZhbHNlKQoKICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVN0cmF0ZWd5UG9seWZpbGwoKQoKICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoQ2hhbmdlKCkKICAgICAgICAgICAgICAgIH0pCgogICAgICAgICAgICAgICAgb3B0aW9uUm9vdC5hcHBlbmRDaGlsZChvcHRpb25FbGVtZW50KQogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLnVwZGF0ZVN0cmF0ZWd5UG9seWZpbGwoKQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGRpc3BhdGNoQ2hhbmdlKCkgewogICAgICAgIHRoaXMuZGl2LmRpc3BhdGNoRXZlbnQobmV3IENvbXBvbmVudEV2ZW50KCJtbC1jaGFuZ2UiLCB0aGlzKSkKICAgIH0KCiAgICByZXNldCgpIHsKICAgICAgICBpZiAodGhpcy5zdHJhdGVneS5uYW1lID09ICJkYXRhbGlzdCIpIHsKICAgICAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gdGhpcy5zdHJhdGVneS5pbnB1dEVsZW1lbnQKCiAgICAgICAgICAgIGlucHV0RWxlbWVudC52YWx1ZSA9ICIiCiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0cmF0ZWd5Lm5hbWUgPT0gInNlbGVjdCIpIHsKICAgICAgICAgICAgY29uc3Qgc2VsZWN0RWxlbWVudCA9IHRoaXMuc3RyYXRlZ3kub3B0aW9uUm9vdAoKICAgICAgICAgICAgc2VsZWN0RWxlbWVudC52YWx1ZSA9IHRoaXMucHJlU2VsZWN0ZWRPcHRpb24KICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RyYXRlZ3kubmFtZSA9PSAicG9seWZpbGwiKSB7CiAgICAgICAgICAgIHRoaXMuc3RyYXRlZ3kudmFsdWUgPSB0aGlzLnByZVNlbGVjdGVkT3B0aW9uCgogICAgICAgICAgICB0aGlzLnVwZGF0ZVN0cmF0ZWd5UG9seWZpbGwoKQogICAgICAgIH0KICAgIH0KCiAgICBnZXRWYWx1ZSgpOiBzdHJpbmcgfCBudWxsIHsKICAgICAgICBpZiAodGhpcy5zdHJhdGVneS5uYW1lID09ICJkYXRhbGlzdCIpIHsKICAgICAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMuc3RyYXRlZ3kuaW5wdXRFbGVtZW50LnZhbHVlCgogICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi5uYW1lID09IG5hbWUpPy52YWx1ZSA/PyAiIgogICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdHJhdGVneS5uYW1lID09ICJzZWxlY3QiKSB7CiAgICAgICAgICAgIGNvbnN0IHNlbGVjdEVsZW1lbnQgPSB0aGlzLnN0cmF0ZWd5Lm9wdGlvblJvb3QKCiAgICAgICAgICAgIHJldHVybiBzZWxlY3RFbGVtZW50LnZhbHVlCiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN0cmF0ZWd5Lm5hbWUgPT0gInBvbHlmaWxsIikgewogICAgICAgICAgICByZXR1cm4gdGhpcy5zdHJhdGVneS52YWx1ZQogICAgICAgIH0KCiAgICAgICAgdGhyb3cgIkludmFsaWQgc3RyYXRlZ3kgZm9yIHNlbGVjdCBpbnB1dCBmaWVsZCIKICAgIH0KCiAgICBzZXRPcHRpb25FbmFibGVkKHZhbHVlOiBzdHJpbmcsIGVuYWJsZWQ6IGJvb2xlYW4pIHsKICAgICAgICBpZiAodGhpcy5zdHJhdGVneS5uYW1lID09ICJkYXRhbGlzdCIgfHwgdGhpcy5zdHJhdGVneS5uYW1lID09ICJzZWxlY3QiKSB7CiAgICAgICAgICAgIGNvbnN0IG9wdGlvblJvb3QgPSB0aGlzLnN0cmF0ZWd5Lm9wdGlvblJvb3QKCiAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0aW9uRWxlbWVudCBvZiBvcHRpb25Sb290Lm9wdGlvbnMpIHsKICAgICAgICAgICAgICAgIGlmIChvcHRpb25FbGVtZW50LnZhbHVlID09IHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVudC5kaXNhYmxlZCA9ICFlbmFibGVkCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RyYXRlZ3kubmFtZSA9PSAicG9seWZpbGwiKSB7CiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLnN0cmF0ZWd5Lmxpc3QKCiAgICAgICAgICAgIGZvciAoY29uc3Qgb3B0aW9uRWxlbWVudCBvZiBlbGVtZW50LmNoaWxkcmVuKSB7CiAgICAgICAgICAgICAgICAvLyBAdHMtaWdub3JlCiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50VmFsdWUgPSBvcHRpb25FbGVtZW50LnZhbHVlCgogICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRWYWx1ZSAhPSB2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnN0cmF0ZWd5LmRpc2FibGVkLmRlbGV0ZSh2YWx1ZSkKCiAgICAgICAgICAgICAgICAgICAgb3B0aW9uRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJzZWxlY3QtcG9seWZpbGwtb3B0aW9uLWRpc2FibGVkIikKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHJhdGVneS5kaXNhYmxlZC5hZGQodmFsdWUpCgogICAgICAgICAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQuY2xhc3NMaXN0LmFkZCgic2VsZWN0LXBvbHlmaWxsLW9wdGlvbi1kaXNhYmxlZCIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSB1cGRhdGVTdHJhdGVneVBvbHlmaWxsKCkgewogICAgICAgIGlmICh0aGlzLnN0cmF0ZWd5Lm5hbWUgIT0gInBvbHlmaWxsIikgewogICAgICAgICAgICB0aHJvdyAiU2VsZWN0Q29tcG9uZW50IHN0cmF0ZWd5IGlzIG5vdCBwb2x5ZmlsbCIKICAgICAgICB9CgogICAgICAgIGZvciAoY29uc3Qgb3B0aW9uRWxlbWVudCBvZiB0aGlzLnN0cmF0ZWd5Lmxpc3QuY2hpbGRyZW4pIHsKICAgICAgICAgICAgLy8gQHRzLWlnbm9yZQogICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG9wdGlvbkVsZW1lbnQudmFsdWUKCiAgICAgICAgICAgIGlmICh2YWx1ZSA9PSB0aGlzLnN0cmF0ZWd5LnZhbHVlKSB7CiAgICAgICAgICAgICAgICBvcHRpb25FbGVtZW50LmNsYXNzTGlzdC5hZGQoInNlbGVjdC1wb2x5ZmlsbC1zZWxlY3RlZCIpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBvcHRpb25FbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoInNlbGVjdC1wb2x5ZmlsbC1zZWxlY3RlZCIpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zdHJhdGVneS52YWx1ZQogICAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi52YWx1ZSA9PSB2YWx1ZSkKCiAgICAgICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuY29tbW9uCiAgICAgICAgdGhpcy5zdHJhdGVneS5kaXNwbGF5LmlubmVyVGV4dCA9IHNlbGVjdGVkT3B0aW9uPy5uYW1lID8/IGkubm90U2VsZWN0ZWQKICAgIH0KICAgIHByaXZhdGUgc2V0U3RyYXRlZ3lQb2x5ZmlsbE9wZW5lZChvcGVuZWQ6IGJvb2xlYW4pIHsKICAgICAgICBpZiAodGhpcy5zdHJhdGVneS5uYW1lICE9ICJwb2x5ZmlsbCIpIHsKICAgICAgICAgICAgdGhyb3cgIlNlbGVjdENvbXBvbmVudCBzdHJhdGVneSBpcyBub3QgcG9seWZpbGwiCiAgICAgICAgfQoKICAgICAgICBpZiAob3BlbmVkICE9IHRoaXMuc3RyYXRlZ3kub3BlbmVkKSB7CiAgICAgICAgICAgIGlmIChvcGVuZWQpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLnN0cmF0ZWd5Lmxpc3QKCiAgICAgICAgICAgICAgICB0aGlzLnN0cmF0ZWd5LndyYXBwZXIuYXBwZW5kQ2hpbGQodGhpcy5zdHJhdGVneS5saXN0KQoKICAgICAgICAgICAgICAgIGlmICgic2NyZWVuVG9wIiBpbiB3aW5kb3cgJiYgImlubmVySGVpZ2h0IiBpbiB3aW5kb3cpIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5UmVjdCA9IGxpc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkKICAgICAgICAgICAgICAgICAgICBjb25zdCB2aWV3cG9ydEJvdHRvbSA9IHdpbmRvdy5zY3JlZW5Ub3AgKyB3aW5kb3cuaW5uZXJIZWlnaHQKCiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BhY2VCZWxvdyA9IHZpZXdwb3J0Qm90dG9tIC0gZGlzcGxheVJlY3QuYm90dG9tCgogICAgICAgICAgICAgICAgICAgIGlmIChzcGFjZUJlbG93IDwgMjApIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5jbGFzc0xpc3QuYWRkKCJ0b3AiKQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QuY2xhc3NMaXN0LmFkZCgiYm90dG9tIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGxpc3QuY2xhc3NMaXN0LmFkZCgiYm90dG9tIikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRoaXMuc3RyYXRlZ3kud3JhcHBlci5yZW1vdmVDaGlsZCh0aGlzLnN0cmF0ZWd5Lmxpc3QpCiAgICAgICAgICAgICAgICB0aGlzLnN0cmF0ZWd5Lmxpc3QuY2xhc3NMaXN0LnJlbW92ZSgidG9wIikKICAgICAgICAgICAgICAgIHRoaXMuc3RyYXRlZ3kubGlzdC5jbGFzc0xpc3QucmVtb3ZlKCJib3R0b20iKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHRoaXMuc3RyYXRlZ3kub3BlbmVkID0gb3BlbmVkCiAgICB9CgogICAgYWRkQ2hhbmdlTGlzdGVuZXIobGlzdGVuZXI6IElucHV0Q2hhbmdlTGlzdGVuZXIsIG9wdGlvbnM/OiBBZGRFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgICAgIHRoaXMuZGl2LmFkZEV2ZW50TGlzdGVuZXIoIm1sLWNoYW5nZSIsIGxpc3RlbmVyIGFzIGFueSwgb3B0aW9ucykKICAgIH0KICAgIHJlbW92ZUNoYW5nZUxpc3RlbmVyKGxpc3RlbmVyOiBJbnB1dENoYW5nZUxpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5kaXYucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWwtY2hhbmdlIiwgbGlzdGVuZXIgYXMgYW55KQogICAgfQp9CgpleHBvcnQgZnVuY3Rpb24gaXNFbGVtZW50U3VwcG9ydGVkKHRhZzogc3RyaW5nKSB7CiAgICAvLyBDcmVhdGUgYSB0ZXN0IGVsZW1lbnQgZm9yIHRoZSB0YWcKICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7CgogICAgLy8gQ2hlY2sgZm9yIHN1cHBvcnQgb2YgY3VzdG9tIGVsZW1lbnRzIHJlZ2lzdGVyZWQgdmlhCiAgICAvLyBgZG9jdW1lbnQucmVnaXN0ZXJFbGVtZW50YAogICAgaWYgKHRhZy5pbmRleE9mKCctJykgPiAtMSkgewogICAgICAgIC8vIFJlZ2lzdGVyZWQgZWxlbWVudHMgaGF2ZSB0aGVpciBvd24gY29uc3RydWN0b3IsIHdoaWxlIHVucmVnaXN0ZXJlZAogICAgICAgIC8vIG9uZXMgdXNlIHRoZSBgSFRNTEVsZW1lbnRgIG9yIGBIVE1MVW5rbm93bkVsZW1lbnRgIChpZiBpbnZhbGlkIG5hbWUpCiAgICAgICAgLy8gY29uc3RydWN0b3IgKGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzI4MjEwMzY0LzEwNzAyNDQpCiAgICAgICAgcmV0dXJuICgKICAgICAgICAgICAgZWxlbWVudC5jb25zdHJ1Y3RvciAhPT0gd2luZG93LkhUTUxVbmtub3duRWxlbWVudCAmJgogICAgICAgICAgICBlbGVtZW50LmNvbnN0cnVjdG9yICE9PSB3aW5kb3cuSFRNTEVsZW1lbnQKICAgICAgICApOwogICAgfQoKICAgIC8vIE9idGFpbiB0aGUgZWxlbWVudCdzIGludGVybmFsIFtbQ2xhc3NdXSBwcm9wZXJ0eSwgaWYgaXQgZG9lc24ndCAKICAgIC8vIG1hdGNoIHRoZSBgSFRNTFVua25vd25FbGVtZW50YCBpbnRlcmZhY2UgdGhhbiBpdCBtdXN0IGJlIHN1cHBvcnRlZAogICAgcmV0dXJuIHRvU3RyaW5nLmNhbGwoZWxlbWVudCkgIT09ICdbb2JqZWN0IEhUTUxVbmtub3duRWxlbWVudF0nOwp9Owo="},{"path":"web/component/list.ts","sha256":"22fed941a1f24c9ec6ed597d65feced5e50fad89f3e61a2b884ffe79643d98a8","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAiLi9pbmRleC5qcyIKCmV4cG9ydCB0eXBlIExpc3RDb21wb25lbnRJbml0ID0gewogICAgbGlzdENsYXNzZXM/OiBzdHJpbmdbXSwKICAgIGVsZW1lbnRMaUNsYXNzZXM/OiBzdHJpbmdbXQogICAgcmVtb3VudElzSW5zZXJ0PzogYm9vbGVhbgp9CgpleHBvcnQgdHlwZSBMaXN0RmlsdGVyPFQgZXh0ZW5kcyBDb21wb25lbnQ+ID0gKGNvbXBvbmVudDogVCkgPT4gYm9vbGVhbgoKZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQ8VCBleHRlbmRzIENvbXBvbmVudD4gaW1wbGVtZW50cyBDb21wb25lbnQgewoKICAgIHByaXZhdGUgdW5maWx0ZXJlZExpc3Q6IEFycmF5PFQ+CiAgICBwcml2YXRlIGxpc3Q6IEFycmF5PFQ+CgogICAgcHJpdmF0ZSBtb3VudGVkOiBudW1iZXIgPSAwCiAgICBwcml2YXRlIHJlbW91bnRJc0luc2VydFRyYW5zaXRpb246IGJvb2xlYW4KCiAgICBwcml2YXRlIGxpc3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidWwiKQogICAgcHJpdmF0ZSBsaUVsZW1lbnRzOiBBcnJheTxIVE1MTElFbGVtZW50PiA9IFtdCiAgICBwcml2YXRlIGxpQ2xhc3Nlczogc3RyaW5nW10KCiAgICBjb25zdHJ1Y3RvcihsaXN0PzogQXJyYXk8VD4sIGluaXQ/OiBMaXN0Q29tcG9uZW50SW5pdCkgewogICAgICAgIHRoaXMudW5maWx0ZXJlZExpc3QgPSBsaXN0ID8/IFtdCiAgICAgICAgdGhpcy5saXN0ID0gW10KCiAgICAgICAgdGhpcy5saXN0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJsaXN0LWxpa2UiKQogICAgICAgIGlmIChpbml0Py5saXN0Q2xhc3NlcykgewogICAgICAgICAgICB0aGlzLmxpc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4uaW5pdD8ubGlzdENsYXNzZXMpCiAgICAgICAgfQogICAgICAgIHRoaXMubGlDbGFzc2VzID0gaW5pdD8uZWxlbWVudExpQ2xhc3NlcyA/PyBbXQoKICAgICAgICB0aGlzLnJlbW91bnRJc0luc2VydFRyYW5zaXRpb24gPSBpbml0Py5yZW1vdW50SXNJbnNlcnQgPz8gdHJ1ZQoKICAgICAgICB0aGlzLnN5bmNMaXN0cygpCiAgICB9CgogICAgcHJpdmF0ZSBlbGVtZW50QXQoaW5kZXg6IG51bWJlcik6IEhUTUxMSUVsZW1lbnQgewogICAgICAgIGxldCBsaSA9IHRoaXMubGlFbGVtZW50c1tpbmRleF0KICAgICAgICBpZiAoIWxpKSB7CiAgICAgICAgICAgIGxpID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKQogICAgICAgICAgICBsaS5jbGFzc0xpc3QuYWRkKC4uLnRoaXMubGlDbGFzc2VzKQoKICAgICAgICAgICAgdGhpcy5saUVsZW1lbnRzW2luZGV4XSA9IGxpCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbGkKICAgIH0KCiAgICBwcml2YXRlIG9uQW5pbUVsZW1lbnRJbnNlcnRlZChpbmRleDogbnVtYmVyKSB7CiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMubGlFbGVtZW50c1tpbmRleF0KCiAgICAgICAgLy8gbGV0IHRoZSBlbGVtZW50IHJlbmRlciBhbmQgdGhlbiBhZGQgImxpc3Qtc2hvdyIgZm9yIHRyYW5zaXRpb25zIDopCiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibGlzdC1zaG93IikKICAgICAgICB9LCAwKQogICAgfQogICAgcHJpdmF0ZSBvbkFuaW1FbGVtZW50UmVtb3ZlZChpbmRleDogbnVtYmVyKSB7CiAgICAgICAgbGV0IGVsZW1lbnQKICAgICAgICB3aGlsZSAoKGVsZW1lbnQgPSB0aGlzLmxpRWxlbWVudHNbaW5kZXhdKS5jbGFzc0xpc3QuY29udGFpbnMoImxpc3Qtc2hvdyIpKSB7CiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgibGlzdC1zaG93IikKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBjdXJyZW50RmlsdGVyOiBMaXN0RmlsdGVyPFQ+ID0gKCkgPT4gdHJ1ZQogICAgc2V0RmlsdGVyKGZpbHRlcj86IExpc3RGaWx0ZXI8VD4pIHsKICAgICAgICBpZiAoIWZpbHRlcikgewogICAgICAgICAgICBmaWx0ZXIgPSAoKSA9PiB0cnVlCiAgICAgICAgfQoKICAgICAgICB0aGlzLmN1cnJlbnRGaWx0ZXIgPSBmaWx0ZXIKCiAgICAgICAgdGhpcy5zeW5jTGlzdHMoKQogICAgfQogICAgcHJpdmF0ZSBzeW5jTGlzdHMoKSB7CiAgICAgICAgY29uc3QgbmV3TGlzdCA9IHRoaXMudW5maWx0ZXJlZExpc3QuZmlsdGVyKHRoaXMuY3VycmVudEZpbHRlcikKCiAgICAgICAgLy8gVW5tb3VudCBhbGwgb2xkIGNvbXBvbmVudHMKICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5saXN0Lmxlbmd0aDsgaW5kZXgrKykgewogICAgICAgICAgICBjb25zdCBvbGRDb21wb25lbnQgPSB0aGlzLmxpc3RbaW5kZXhdCiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRBdChpbmRleCkKCiAgICAgICAgICAgIG9sZENvbXBvbmVudC51bm1vdW50KGVsZW1lbnQpCgogICAgICAgICAgICBpZiAoaW5kZXggPj0gbmV3TGlzdC5sZW5ndGgpIHsKICAgICAgICAgICAgICAgIHRoaXMubGlzdEVsZW1lbnQucmVtb3ZlQ2hpbGQoZWxlbWVudCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gTW91bnQgYWxsIG5ldyBjb21wb25lbnRzIGFuZCB1bm1vdW50IG9sZAogICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBuZXdMaXN0Lmxlbmd0aDsgaW5kZXgrKykgewogICAgICAgICAgICBjb25zdCBuZXdDb21wb25lbnQgPSBuZXdMaXN0W2luZGV4XQogICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50QXQoaW5kZXgpCgogICAgICAgICAgICBpZiAodGhpcy5saXN0Lmxlbmd0aCA8PSBpbmRleCkgewogICAgICAgICAgICAgICAgdGhpcy5saXN0RWxlbWVudC5hcHBlbmRDaGlsZChlbGVtZW50KQogICAgICAgICAgICB9CgogICAgICAgICAgICBuZXdDb21wb25lbnQubW91bnQoZWxlbWVudCkKICAgICAgICB9CgogICAgICAgIHRoaXMubGlzdCA9IG5ld0xpc3QKICAgIH0KCiAgICBpbnNlcnQoaW5kZXg6IG51bWJlciwgdmFsdWU6IFQpIHsKICAgICAgICBpZiAoaW5kZXggPT0gdGhpcy51bmZpbHRlcmVkTGlzdC5sZW5ndGgpIHsKICAgICAgICAgICAgdGhpcy51bmZpbHRlcmVkTGlzdC5wdXNoKHZhbHVlKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMudW5maWx0ZXJlZExpc3Quc3BsaWNlKGluZGV4LCAwLCB2YWx1ZSkKICAgICAgICB9CgogICAgICAgIHRoaXMuc3luY0xpc3RzKCkKCiAgICAgICAgdGhpcy5vbkFuaW1FbGVtZW50SW5zZXJ0ZWQoaW5kZXgpCiAgICB9CiAgICByZW1vdmUoaW5kZXg6IG51bWJlcik6IFQgfCBudWxsIHsKICAgICAgICBpZiAoaW5kZXggPj0gdGhpcy51bmZpbHRlcmVkTGlzdC5sZW5ndGgpIHsKICAgICAgICAgICAgdGhpcy5vbkFuaW1FbGVtZW50UmVtb3ZlZChpbmRleCkKICAgICAgICB9CgogICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy51bmZpbHRlcmVkTGlzdC5zcGxpY2UoaW5kZXgsIDEpCgogICAgICAgIHRoaXMuc3luY0xpc3RzKCkKCiAgICAgICAgcmV0dXJuIHZhbHVlWzBdCiAgICB9CgogICAgYXBwZW5kKHZhbHVlOiBUKSB7CiAgICAgICAgdGhpcy5pbnNlcnQodGhpcy5nZXQoKS5sZW5ndGgsIHZhbHVlKQogICAgfQogICAgcmVtb3ZlVmFsdWUodmFsdWU6IFQpIHsKICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZ2V0KCkuaW5kZXhPZih2YWx1ZSkKICAgICAgICBpZiAoaW5kZXggIT0gLTEpIHsKICAgICAgICAgICAgdGhpcy5yZW1vdmUoaW5kZXgpCiAgICAgICAgfQogICAgfQoKICAgIGNsZWFyKCkgewogICAgICAgIHRoaXMudW5maWx0ZXJlZExpc3Quc3BsaWNlKDAsIHRoaXMudW5maWx0ZXJlZExpc3QubGVuZ3RoKQoKICAgICAgICB0aGlzLnN5bmNMaXN0cygpCiAgICB9CgogICAgZ2V0KCk6IHJlYWRvbmx5IFRbXSB7CiAgICAgICAgcmV0dXJuIHRoaXMudW5maWx0ZXJlZExpc3QKICAgIH0KCiAgICBtb3VudChwYXJlbnQ6IEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICB0aGlzLm1vdW50ZWQrKwoKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5saXN0RWxlbWVudCkKCiAgICAgICAgLy8gTW91bnQgYWxsIGVsZW1lbnRzCiAgICAgICAgaWYgKHRoaXMubW91bnRlZCA9PSAxKSB7CiAgICAgICAgICAgIHRoaXMuc3luY0xpc3RzKCkKCiAgICAgICAgICAgIGlmICh0aGlzLnJlbW91bnRJc0luc2VydFRyYW5zaXRpb24pIHsKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5saXN0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkFuaW1FbGVtZW50SW5zZXJ0ZWQoaSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHVubW91bnQocGFyZW50OiBFbGVtZW50KTogdm9pZCB7CiAgICAgICAgdGhpcy5tb3VudGVkLS0KCiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMubGlzdEVsZW1lbnQpCgogICAgICAgIC8vIFVubW91bnQgYWxsIGVsZW1lbnRzCiAgICAgICAgaWYgKHRoaXMubW91bnRlZCA9PSAwKSB7CiAgICAgICAgICAgIGlmICh0aGlzLnJlbW91bnRJc0luc2VydFRyYW5zaXRpb24pIHsKICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5saXN0Lmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkFuaW1FbGVtZW50UmVtb3ZlZChpKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IHRoaXMubGlzdC5sZW5ndGggLSAxOyBpbmRleCA+PSAwOyBpbmRleC0tKSB7CiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50QXQoaW5kZXgpCiAgICAgICAgICAgICAgICB0aGlzLmxpc3RFbGVtZW50LnJlbW92ZUNoaWxkKGVsZW1lbnQpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5saXN0ID0gW10KICAgICAgICB9CiAgICB9Cn0K"},{"path":"web/component/modal/form.ts","sha256":"84caaafef50537e556058c6b612ad216f03bdd295c5b8d8e34f8351267806e79","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAiLi4vaW5kZXguanMiCmltcG9ydCB7IGdldEN1cnJlbnRMYW5ndWFnZSwgZ2V0VHJhbnNsYXRpb25zIH0gZnJvbSAiLi4vLi4vaTE4bi5qcyIKaW1wb3J0IHsgTW9kYWwsIHNob3dNb2RhbCB9IGZyb20gIi4vaW5kZXguanMiCgpleHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9ybU1vZGFsPE91dHB1dD4gaW1wbGVtZW50cyBDb21wb25lbnQsIE1vZGFsPE91dHB1dCB8IG51bGw+IHsKCiAgICBwcml2YXRlIGZvcm1FbGVtZW50OiBIVE1MRm9ybUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIikKICAgIHByaXZhdGUgbW91bnRlZDogYm9vbGVhbiA9IGZhbHNlCiAgICBwcml2YXRlIHN1Ym1pdEJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQogICAgcHJpdmF0ZSBjYW5jZWxCdXR0b246IEhUTUxCdXR0b25FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIikKCiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBjb25zdCBpID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKS5tb2RhbAogICAgICAgIHRoaXMuc3VibWl0QnV0dG9uLnR5cGUgPSAic3VibWl0IgogICAgICAgIHRoaXMuc3VibWl0QnV0dG9uLmlubmVyVGV4dCA9IGkub2sKCiAgICAgICAgdGhpcy5jYW5jZWxCdXR0b24uaW5uZXJUZXh0ID0gaS5jYW5jZWwKCiAgICAgICAgdGhpcy5mb3JtRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLCAoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpCiAgICB9CgogICAgYWJzdHJhY3QgcmVzZXQoKTogdm9pZAogICAgYWJzdHJhY3Qgc3VibWl0KCk6IE91dHB1dCB8IG51bGwKCiAgICBhYnN0cmFjdCBtb3VudEZvcm0oZm9ybTogSFRNTEZvcm1FbGVtZW50KTogdm9pZAoKICAgIG1vdW50KHBhcmVudDogRWxlbWVudCk6IHZvaWQgewogICAgICAgIGlmICghdGhpcy5tb3VudGVkKSB7CiAgICAgICAgICAgIHRoaXMubW91bnRGb3JtKHRoaXMuZm9ybUVsZW1lbnQpCiAgICAgICAgICAgIHRoaXMuZm9ybUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zdWJtaXRCdXR0b24pCiAgICAgICAgICAgIHRoaXMuZm9ybUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5jYW5jZWxCdXR0b24pCiAgICAgICAgfQoKICAgICAgICB0aGlzLnJlc2V0KCkKCiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHRoaXMuZm9ybUVsZW1lbnQpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzLmZvcm1FbGVtZW50KQogICAgfQoKICAgIG9uRmluaXNoKHNpZ25hbDogQWJvcnRTaWduYWwpOiBQcm9taXNlPE91dHB1dCB8IG51bGw+IHsKICAgICAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCkKICAgICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCBhYm9ydENvbnRyb2xsZXIuYWJvcnQuYmluZChhYm9ydENvbnRyb2xsZXIpKQoKICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICAgICB0aGlzLmZvcm1FbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIGV2ZW50ID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dCA9IHRoaXMuc3VibWl0KCkKCiAgICAgICAgICAgICAgICBpZiAob3V0cHV0ID09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKQogICAgICAgICAgICAgICAgcmVzb2x2ZShvdXRwdXQpCiAgICAgICAgICAgIH0sIHsgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsIH0pCgogICAgICAgICAgICB0aGlzLmNhbmNlbEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKCiAgICAgICAgICAgICAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKQogICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKQogICAgICAgICAgICB9LCB7IHNpZ25hbDogYWJvcnRDb250cm9sbGVyLnNpZ25hbCB9KQogICAgICAgIH0pCiAgICB9Cn0K"},{"path":"web/component/modal/index.ts","sha256":"efe5ed82534503234ec66d5fad4538f35612dbbc0361a6ffc75b4f00f793da90","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAiLi4vaW5kZXguanMiCmltcG9ydCB7IHNob3dOb3RpZmljYXRpb24gfSBmcm9tICIuLi9ub3RpZmljYXRpb24uanMiCmltcG9ydCB7IGdldEN1cnJlbnRMYW5ndWFnZSwgZ2V0VHJhbnNsYXRpb25zIH0gZnJvbSAiLi4vLi4vaTE4bi5qcyIKaW1wb3J0IHsgRm9ybU1vZGFsIH0gZnJvbSAiLi9mb3JtLmpzIgoKZXhwb3J0IGludGVyZmFjZSBNb2RhbDxPdXRwdXQ+IGV4dGVuZHMgQ29tcG9uZW50IHsKICAgIG9uRmluaXNoKGFib3J0OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8T3V0cHV0Pgp9CgpsZXQgbW9kYWxBYm9ydDogQWJvcnRDb250cm9sbGVyIHwgbnVsbCA9IG51bGwKY29uc3QgbW9kYWxCYWNrZ3JvdW5kID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGFsLW92ZXJsYXkiKQpjb25zdCBtb2RhbFBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RhbC1wYXJlbnQiKQpsZXQgcHJldmlvdXNNb2RhbDogTW9kYWw8dW5rbm93bj4gfCBudWxsID0gbnVsbAoKLy8gRG9uJ3QgYWxsb3cgY29udGV4dCBtZW51IGV2ZW50IHRocm91Z2ggdGhpcyBiYWNrZ3JvdW5kCm1vZGFsQmFja2dyb3VuZD8uYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCBldmVudCA9PiB7CiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKQp9KQoKZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGFsQmFja2dyb3VuZCgpOiBIVE1MRWxlbWVudCB8IG51bGwgewogICAgcmV0dXJuIG1vZGFsQmFja2dyb3VuZAp9CgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvd01vZGFsPE91dHB1dD4obW9kYWw6IE1vZGFsPE91dHB1dD4gfCBudWxsKTogUHJvbWlzZTxPdXRwdXQgfCBudWxsPiB7CiAgICBjb25zdCBpID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKS5jb21tb24KICAgIGlmIChtb2RhbFBhcmVudCA9PSBudWxsKSB7CiAgICAgICAgc2hvd05vdGlmaWNhdGlvbihpLm1pc3NpbmdNb2RhbFBhcmVudCkKICAgICAgICByZXR1cm4gbnVsbAogICAgfQogICAgaWYgKG1vZGFsQmFja2dyb3VuZCA9PSBudWxsKSB7CiAgICAgICAgc2hvd05vdGlmaWNhdGlvbihpLm1pc3NpbmdNb2RhbE92ZXJsYXkpCiAgICB9CgogICAgaWYgKG1vZGFsQWJvcnQgIT0gbnVsbCkgewogICAgICAgIG1vZGFsQmFja2dyb3VuZD8uY2xhc3NMaXN0LmFkZCgibW9kYWwtZGlzYWJsZWQiKQogICAgICAgIG1vZGFsQWJvcnQuYWJvcnQoKQogICAgICAgIG1vZGFsQWJvcnQgPSBudWxsCiAgICB9CgogICAgaWYgKCFtb2RhbCkgewogICAgICAgIHJldHVybiBudWxsCiAgICB9CgogICAgaWYgKHByZXZpb3VzTW9kYWwpIHsKICAgICAgICBwcmV2aW91c01vZGFsLnVubW91bnQobW9kYWxQYXJlbnQpCiAgICB9CiAgICBwcmV2aW91c01vZGFsID0gbW9kYWwKCiAgICBjb25zdCBhYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCkKCiAgICBtb2RhbEFib3J0ID0gYWJvcnRDb250cm9sbGVyCiAgICBtb2RhbC5tb3VudChtb2RhbFBhcmVudCkKICAgIG1vZGFsQmFja2dyb3VuZD8uY2xhc3NMaXN0LnJlbW92ZSgibW9kYWwtZGlzYWJsZWQiKQoKICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IG1vZGFsLm9uRmluaXNoKGFib3J0Q29udHJvbGxlci5zaWduYWwpCgogICAgbW9kYWxCYWNrZ3JvdW5kPy5jbGFzc0xpc3QuYWRkKCJtb2RhbC1kaXNhYmxlZCIpCiAgICBhYm9ydENvbnRyb2xsZXIuYWJvcnQoKQogICAgaWYgKG1vZGFsQWJvcnQgPT09IGFib3J0Q29udHJvbGxlcikgewogICAgICAgIG1vZGFsQWJvcnQgPSBudWxsCiAgICB9CgogICAgcmV0dXJuIG91dHB1dAp9CgovLy8gLS0tIEhlbHBlciBNb2RhbHMKCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG93UHJvbXB0KHByb21wdDogc3RyaW5nLCBwcm9tcHRJbml0PzogUHJvbXB0SW5pdCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4gewogICAgY29uc3QgbW9kYWwgPSBuZXcgUHJvbXB0TW9kYWwocHJvbXB0LCBwcm9tcHRJbml0KQoKICAgIHJldHVybiBhd2FpdCBzaG93TW9kYWwobW9kYWwpCn0KCnR5cGUgUHJvbXB0SW5pdCA9IHsKICAgIGRlZmF1bHRWYWx1ZT86IHN0cmluZywKICAgIG5hbWU/OiBzdHJpbmcsCiAgICB0eXBlPzogInRleHQiIHwgInBhc3N3b3JkIiwKfQoKY2xhc3MgUHJvbXB0TW9kYWwgZXh0ZW5kcyBGb3JtTW9kYWw8c3RyaW5nPiB7CiAgICBwcml2YXRlIG1lc3NhZ2U6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpCiAgICBwcml2YXRlIHRleHRJbnB1dDogSFRNTElucHV0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IikKCiAgICBjb25zdHJ1Y3Rvcihwcm9tcHQ6IHN0cmluZywgaW5pdD86IFByb21wdEluaXQpIHsKICAgICAgICBzdXBlcigpCgogICAgICAgIHRoaXMubWVzc2FnZS5pbm5lclRleHQgPSBwcm9tcHQKCiAgICAgICAgaWYgKGluaXQ/LnR5cGUpIHsKICAgICAgICAgICAgdGhpcy50ZXh0SW5wdXQudHlwZSA9IGluaXQ/LnR5cGUKICAgICAgICB9CiAgICAgICAgaWYgKGluaXQ/LmRlZmF1bHRWYWx1ZSkgewogICAgICAgICAgICB0aGlzLnRleHRJbnB1dC5kZWZhdWx0VmFsdWUgPSBpbml0Py5kZWZhdWx0VmFsdWUKICAgICAgICB9CiAgICAgICAgaWYgKGluaXQ/Lm5hbWUpIHsKICAgICAgICAgICAgdGhpcy50ZXh0SW5wdXQubmFtZSA9IGluaXQ/Lm5hbWUKICAgICAgICB9CiAgICB9CgogICAgcmVzZXQoKTogdm9pZCB7CiAgICAgICAgdGhpcy50ZXh0SW5wdXQudmFsdWUgPSAiIgogICAgfQogICAgc3VibWl0KCk6IHN0cmluZyB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLnRleHRJbnB1dC52YWx1ZQogICAgfQoKICAgIG1vdW50Rm9ybShmb3JtOiBIVE1MRm9ybUVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBmb3JtLmFwcGVuZENoaWxkKHRoaXMubWVzc2FnZSkKICAgICAgICBmb3JtLmFwcGVuZENoaWxkKHRoaXMudGV4dElucHV0KQogICAgfQp9Cgp0eXBlIE1lc3NhZ2VJbml0ID0gewogICAgc2lnbmFsPzogQWJvcnRTaWduYWwKfQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNob3dNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZywgaW5pdD86IE1lc3NhZ2VJbml0KSB7CiAgICBjb25zdCBtb2RhbCA9IG5ldyBNZXNzYWdlTW9kYWwobWVzc2FnZSwgaW5pdCkKCiAgICBhd2FpdCBzaG93TW9kYWwobW9kYWwpCn0KCmNsYXNzIE1lc3NhZ2VNb2RhbCBpbXBsZW1lbnRzIENvbXBvbmVudCwgTW9kYWw8dm9pZD4gewoKICAgIHByaXZhdGUgc2lnbmFsPzogQWJvcnRTaWduYWwKICAgIHByaXZhdGUgdGV4dEVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpCiAgICBwcml2YXRlIG9rQnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCgogICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBpbml0PzogTWVzc2FnZUluaXQpIHsKICAgICAgICBjb25zdCBpID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKS5tb2RhbAogICAgICAgIHRoaXMudGV4dEVsZW1lbnQuaW5uZXJUZXh0ID0gbWVzc2FnZQoKICAgICAgICB0aGlzLm9rQnV0dG9uLmlubmVyVGV4dCA9IGkub2sKCiAgICAgICAgdGhpcy5zaWduYWwgPSBpbml0Py5zaWduYWwKICAgIH0KCiAgICBtb3VudChwYXJlbnQ6IEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy50ZXh0RWxlbWVudCkKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5va0J1dHRvbikKICAgIH0KICAgIHVubW91bnQocGFyZW50OiBFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMudGV4dEVsZW1lbnQpCiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMub2tCdXR0b24pCiAgICB9CgogICAgb25GaW5pc2goYWJvcnQ6IEFib3J0U2lnbmFsKTogUHJvbWlzZTx2b2lkPiB7CiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgICAgICAgbGV0IGN1c3RvbUNvbnRyb2xsZXI6IEFib3J0Q29udHJvbGxlciB8IG51bGwgPSBudWxsCgogICAgICAgICAgICBpZiAodGhpcy5zaWduYWwpIHsKICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCkKICAgICAgICAgICAgICAgIHRoaXMuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwgKCkgPT4gewogICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKQogICAgICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRyb2xsZXI/LmFib3J0KCkKICAgICAgICAgICAgICAgIH0sIHsgb25jZTogdHJ1ZSwgc2lnbmFsOiBjdXN0b21Db250cm9sbGVyLnNpZ25hbCB9KQogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLm9rQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgKCkgPT4gewogICAgICAgICAgICAgICAgcmVzb2x2ZSgpCiAgICAgICAgICAgICAgICBjdXN0b21Db250cm9sbGVyPy5hYm9ydCgpCiAgICAgICAgICAgIH0sIHsgc2lnbmFsOiBjdXN0b21Db250cm9sbGVyPy5zaWduYWwgfSkKCiAgICAgICAgICAgIGlmIChjdXN0b21Db250cm9sbGVyKSB7CiAgICAgICAgICAgICAgICBhYm9ydC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsIGN1c3RvbUNvbnRyb2xsZXIuYWJvcnQuYmluZChjdXN0b21Db250cm9sbGVyKSkKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICB9Cn0K"},{"path":"web/component/modal/login.ts","sha256":"9dae654064a265df7ba5cd47be3b5e122f981c843e6b7e62467eab9e9357ee95","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50RXZlbnQgfSBmcm9tICIuLi9pbmRleC5qcyIKaW1wb3J0IHsgZ2V0Q3VycmVudExhbmd1YWdlLCBnZXRUcmFuc2xhdGlvbnMgfSBmcm9tICIuLi8uLi9pMThuLmpzIgppbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gIi4uL2lucHV0LmpzIgppbXBvcnQgeyBGb3JtTW9kYWwgfSBmcm9tICIuL2Zvcm0uanMiCgpleHBvcnQgdHlwZSBVc2VyQXV0aCA9IHsKICAgIG5hbWU6IHN0cmluZywKICAgIHBhc3N3b3JkOiBzdHJpbmcKfQoKZXhwb3J0IGNsYXNzIEFwaVVzZXJQYXNzd29yZFByb21wdCBleHRlbmRzIEZvcm1Nb2RhbDxVc2VyQXV0aD4gewoKICAgIHByaXZhdGUgdGV4dDogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMyIpCgogICAgcHJpdmF0ZSBuYW1lOiBJbnB1dENvbXBvbmVudAogICAgcHJpdmF0ZSBwYXNzd29yZDogSW5wdXRDb21wb25lbnQKICAgIHByaXZhdGUgcGFzc3dvcmRGaWxlOiBJbnB1dENvbXBvbmVudAoKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCkKICAgICAgICBjb25zdCBpID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKS5tb2RhbAoKICAgICAgICB0aGlzLnRleHQuaW5uZXJUZXh0ID0gaS5sb2dpbgoKICAgICAgICB0aGlzLm5hbWUgPSBuZXcgSW5wdXRDb21wb25lbnQoIm1sLWFwaS1uYW1lIiwgInRleHQiLCBpLnVzZXJuYW1lLCB7CiAgICAgICAgICAgIGZvcm1SZXF1aXJlZDogdHJ1ZQogICAgICAgIH0pCgogICAgICAgIHRoaXMucGFzc3dvcmQgPSBuZXcgSW5wdXRDb21wb25lbnQoIm1sLWFwaS1wYXNzd29yZCIsICJwYXNzd29yZCIsIGkucGFzc3dvcmQsIHsKICAgICAgICAgICAgZm9ybVJlcXVpcmVkOiB0cnVlCiAgICAgICAgfSkKCiAgICAgICAgdGhpcy5wYXNzd29yZEZpbGUgPSBuZXcgSW5wdXRDb21wb25lbnQoIm1sLWFwaS1wYXNzd29yZC1maWxlIiwgImZpbGUiLCBpLnBhc3N3b3JkQXNGaWxlLCB7IGFjY2VwdDogIi50eHQiIH0pCiAgICAgICAgdGhpcy5wYXNzd29yZEZpbGUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5zZXRGaWxlUGFzc3dvcmQuYmluZCh0aGlzKSkKICAgIH0KCiAgICBwcml2YXRlIGFzeW5jIHNldEZpbGVQYXNzd29yZChldmVudDogQ29tcG9uZW50RXZlbnQ8SW5wdXRDb21wb25lbnQ+KSB7CiAgICAgICAgY29uc3QgZmlsZXMgPSBldmVudC5jb21wb25lbnQuZ2V0RmlsZXMoKQogICAgICAgIGlmICghZmlsZXMpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCBmaWxlID0gZmlsZXNbMF0KICAgICAgICBpZiAoIWZpbGUpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCBmaWxlLnRleHQoKQoKICAgICAgICAvLyBSZW1vdmUgY2FycmlhZ2UgcmV0dXJuIGFuZCBuZXcgbGluZQogICAgICAgIGNvbnN0IHBhc3N3b3JkID0gdGV4dAogICAgICAgICAgICAucmVwbGFjZSgvXHIvZywgIiIpCiAgICAgICAgICAgIC5yZXBsYWNlKC9cbi9nLCAiIikKCiAgICAgICAgdGhpcy5wYXNzd29yZC5zZXRWYWx1ZShwYXNzd29yZCkKICAgIH0KCiAgICByZXNldCgpOiB2b2lkIHsKICAgICAgICB0aGlzLm5hbWUucmVzZXQoKQogICAgICAgIHRoaXMucGFzc3dvcmQucmVzZXQoKQogICAgICAgIHRoaXMucGFzc3dvcmRGaWxlLnJlc2V0KCkKICAgIH0KICAgIHN1Ym1pdCgpOiBVc2VyQXV0aCB8IG51bGwgewogICAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLm5hbWUuZ2V0VmFsdWUoKQogICAgICAgIGNvbnN0IHBhc3N3b3JkID0gdGhpcy5wYXNzd29yZC5nZXRWYWx1ZSgpCgogICAgICAgIGlmIChuYW1lICYmIHBhc3N3b3JkKSB7CiAgICAgICAgICAgIHJldHVybiB7IG5hbWUsIHBhc3N3b3JkIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgIH0KICAgIH0KCiAgICBvbkZpbmlzaChhYm9ydDogQWJvcnRTaWduYWwpOiBQcm9taXNlPFVzZXJBdXRoIHwgbnVsbD4gewogICAgICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKQogICAgICAgIGFib3J0LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IiwgYWJvcnRDb250cm9sbGVyLmFib3J0LmJpbmQoYWJvcnRDb250cm9sbGVyKSkKCiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgICAgICAgc3VwZXIub25GaW5pc2goYWJvcnRDb250cm9sbGVyLnNpZ25hbCkudGhlbigoZGF0YSkgPT4gewogICAgICAgICAgICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KCkKICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YSkKICAgICAgICAgICAgfSwgKGRhdGEpID0+IHsKICAgICAgICAgICAgICAgIGFib3J0Q29udHJvbGxlci5hYm9ydCgpCiAgICAgICAgICAgICAgICByZWplY3QoZGF0YSkKICAgICAgICAgICAgfSkKICAgICAgICB9KQogICAgfQoKICAgIG1vdW50Rm9ybShmb3JtOiBIVE1MRm9ybUVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBmb3JtLmFwcGVuZENoaWxkKHRoaXMudGV4dCkKCiAgICAgICAgdGhpcy5uYW1lLm1vdW50KGZvcm0pCgogICAgICAgIHRoaXMucGFzc3dvcmQubW91bnQoZm9ybSkKICAgICAgICB0aGlzLnBhc3N3b3JkRmlsZS5tb3VudChmb3JtKQogICAgfQp9Cg=="},{"path":"web/component/notification.ts","sha256":"edf65adf9ccaeed5736202cd0b36f4a8041761cd2f823dc233f750e83febc16e","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAiLi9pbmRleC5qcyIKaW1wb3J0IHsgRVJST1JfSU1BR0UsIElORk9fSU1BR0UsIFdBUk5fSU1BR0UgfSBmcm9tICIuLi9yZXNvdXJjZXMvaW5kZXguanMiCmltcG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICIuL2xpc3QuanMiCgp0eXBlIE5vdGlmaWNhdGlvbkxldmVsID0gImVycm9yIiB8ICJ3YXJuIiB8ICJpbmZvIgoKY29uc3QgRVJST1JfUkVNT1ZBTF9USU1FX01TID0gMTAwMDAKCmNvbnN0IG5vdGlmaWNhdGlvbkxpc3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1saXN0IikKY29uc3Qgbm90aWZpY2F0aW9uTGlzdENvbXBvbmVudCA9IG5ldyBMaXN0Q29tcG9uZW50PE5vdGlmaWNhdGlvbkNvbXBvbmVudD4oW10sIHsgbGlzdENsYXNzZXM6IFsibm90aWZpY2F0aW9uLWxpc3QiXSwgZWxlbWVudExpQ2xhc3NlczogWyJub3RpZmljYXRpb24tZWxlbWVudCJdIH0pCmlmIChub3RpZmljYXRpb25MaXN0RWxlbWVudCkgewogICAgbm90aWZpY2F0aW9uTGlzdENvbXBvbmVudC5tb3VudChub3RpZmljYXRpb25MaXN0RWxlbWVudCkKfQoKbGV0IGFsZXJ0ZWROb3RpZmljYXRpb25MaXN0Tm90Rm91bmQgPSBmYWxzZQoKZXhwb3J0IGZ1bmN0aW9uIHNob3dOb3RpZmljYXRpb24obWVzc2FnZTogc3RyaW5nLCBsZXZlbDogTm90aWZpY2F0aW9uTGV2ZWwgPSAiZXJyb3IiLCBlcnJvck9iamVjdD86IGFueSkgewogICAgY29uc29sZS5lcnJvcihtZXNzYWdlLCBlcnJvck9iamVjdCkKCiAgICBpZiAoIW5vdGlmaWNhdGlvbkxpc3RFbGVtZW50KSB7CiAgICAgICAgaWYgKCFhbGVydGVkTm90aWZpY2F0aW9uTGlzdE5vdEZvdW5kKSB7CiAgICAgICAgICAgIGFsZXJ0KCJjb3VsZG4ndCBmaW5kIHRoZSBub3RpZmljYXRpb24gZWxlbWVudCIpCiAgICAgICAgICAgIGFsZXJ0ZWROb3RpZmljYXRpb25MaXN0Tm90Rm91bmQgPSB0cnVlCiAgICAgICAgfQogICAgICAgIGFsZXJ0KG1lc3NhZ2UpCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGxldCBlcnJvcjogTm90aWZpY2F0aW9uQ29tcG9uZW50CiAgICBpZiAobGV2ZWwgPT0gImVycm9yIikgewogICAgICAgIGVycm9yID0gbmV3IE5vdGlmaWNhdGlvbkNvbXBvbmVudChtZXNzYWdlLCBFUlJPUl9JTUFHRSkKICAgIH0gZWxzZSBpZiAobGV2ZWwgPT0gIndhcm4iKSB7CiAgICAgICAgZXJyb3IgPSBuZXcgTm90aWZpY2F0aW9uQ29tcG9uZW50KG1lc3NhZ2UsIFdBUk5fSU1BR0UpCiAgICB9IGVsc2UgaWYgKGxldmVsID0gImluZm8iKSB7CiAgICAgICAgZXJyb3IgPSBuZXcgTm90aWZpY2F0aW9uQ29tcG9uZW50KG1lc3NhZ2UsIElORk9fSU1BR0UpCiAgICB9IGVsc2UgewogICAgICAgIGVycm9yID0gbmV3IE5vdGlmaWNhdGlvbkNvbXBvbmVudChgVW5rbm93biBub3RpZmljYXRpb24gbGV2ZWwgKFwiJHtsZXZlbH1cIikgZm9yIG1lc3NhZ2U6ICR7bWVzc2FnZX1gLCBFUlJPUl9JTUFHRSkKICAgIH0KCiAgICBub3RpZmljYXRpb25MaXN0Q29tcG9uZW50LmFwcGVuZChlcnJvcikKCiAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICBub3RpZmljYXRpb25MaXN0Q29tcG9uZW50LnJlbW92ZVZhbHVlKGVycm9yKQogICAgfSwgRVJST1JfUkVNT1ZBTF9USU1FX01TKQp9CgpmdW5jdGlvbiBoYW5kbGVFcnJvcihldmVudDogRXJyb3JFdmVudCkgewogICAgc2hvd05vdGlmaWNhdGlvbihgJHtldmVudC5lcnJvcn1gLCAiZXJyb3IiLCBldmVudCkKfQpmdW5jdGlvbiBoYW5kbGVSZWplY3Rpb24oZXZlbnQ6IFByb21pc2VSZWplY3Rpb25FdmVudCkgewogICAgc2hvd05vdGlmaWNhdGlvbihgJHtldmVudC5yZWFzb259YCwgImVycm9yIiwgZXZlbnQpCn0KCndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGhhbmRsZUVycm9yKQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidW5oYW5kbGVkcmVqZWN0aW9uIiwgaGFuZGxlUmVqZWN0aW9uKQoKY2xhc3MgTm90aWZpY2F0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQ29tcG9uZW50IHsKICAgIHByaXZhdGUgbWVzc2FnZUVsZW1lbnQ6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpCiAgICBwcml2YXRlIGltYWdlRWxlbWVudDogSFRNTEltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpCgogICAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBpbWFnZTogc3RyaW5nKSB7CiAgICAgICAgdGhpcy5tZXNzYWdlRWxlbWVudC5pbm5lclRleHQgPSBtZXNzYWdlCiAgICAgICAgdGhpcy5tZXNzYWdlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJub3RpZmljYXRpb24tbWVzc2FnZSIpCgogICAgICAgIHRoaXMuaW1hZ2VFbGVtZW50LnNyYyA9IGltYWdlCiAgICAgICAgdGhpcy5pbWFnZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm90aWZpY2F0aW9uLWltYWdlIikKICAgIH0KCiAgICBtb3VudChwYXJlbnQ6IEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5pbWFnZUVsZW1lbnQpCiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHRoaXMubWVzc2FnZUVsZW1lbnQpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzLmltYWdlRWxlbWVudCkKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5tZXNzYWdlRWxlbWVudCkKICAgIH0KfQ=="},{"path":"web/component/roles/add_modal.ts","sha256":"8d5570b4fe11e79f46db5074d82f0b8576f4dbaac20876824d39644eaeb9f2d7","contentBase64":"aW1wb3J0IHsgUG9zdFJvbGVSZXF1ZXN0LCBSb2xlVHlwZSB9IGZyb20gIi4uLy4uL2FwaV9iaW5kaW5ncy5qcyI7CmltcG9ydCB7IGdldEN1cnJlbnRMYW5ndWFnZSwgZ2V0VHJhbnNsYXRpb25zIH0gZnJvbSAiLi4vLi4vaTE4bi5qcyI7CmltcG9ydCB7IElucHV0Q29tcG9uZW50LCBTZWxlY3RDb21wb25lbnQgfSBmcm9tICIuLi9pbnB1dC5qcyI7CmltcG9ydCB7IEZvcm1Nb2RhbCB9IGZyb20gIi4uL21vZGFsL2Zvcm0uanMiOwppbXBvcnQgeyBnbG9iYWxEZWZhdWx0U2V0dGluZ3MsIFN0cmVhbVNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAiLi4vc2V0dGluZ3NfbWVudS5qcyI7CmltcG9ydCB7IFJvbGVQZXJtaXNzaW9uc01lbnUgfSBmcm9tICIuL3Blcm1pc3Npb25zLmpzIjsKCmV4cG9ydCBjbGFzcyBBZGRSb2xlTW9kYWwgZXh0ZW5kcyBGb3JtTW9kYWw8UG9zdFJvbGVSZXF1ZXN0PiB7CgogICAgcHJpdmF0ZSBoZWFkZXI6IEhUTUxFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDIiKQoKICAgIHByaXZhdGUgbW9kYWxSb290OiBIVE1MRGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCgogICAgcHJpdmF0ZSBuYW1lOiBJbnB1dENvbXBvbmVudAogICAgcHJpdmF0ZSB0eTogU2VsZWN0Q29tcG9uZW50CgogICAgcHJpdmF0ZSBwZXJtaXNzaW9uc0hlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgzIikKICAgIHByaXZhdGUgcGVybWlzc2lvbnM6IFJvbGVQZXJtaXNzaW9uc01lbnUKCiAgICBwcml2YXRlIGRlZmF1bHRTZXR0aW5nc0hlYWRlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgzIikKICAgIHByaXZhdGUgZGVmYXVsdFNldHRpbmdzOiBTdHJlYW1TZXR0aW5nc0NvbXBvbmVudAoKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCkKICAgICAgICBjb25zdCBpID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKS5hZG1pbgoKICAgICAgICB0aGlzLmhlYWRlci5pbm5lclRleHQgPSBpLnJvbGUKICAgICAgICB0aGlzLm1vZGFsUm9vdC5hcHBlbmRDaGlsZCh0aGlzLmhlYWRlcikKCiAgICAgICAgLy8gTmFtZQogICAgICAgIHRoaXMubmFtZSA9IG5ldyBJbnB1dENvbXBvbmVudCgicm9sZU5hbWUiLCAidGV4dCIsIGkubmFtZSwgewogICAgICAgICAgICBmb3JtUmVxdWlyZWQ6IHRydWUKICAgICAgICB9KQogICAgICAgIHRoaXMubmFtZS5tb3VudCh0aGlzLm1vZGFsUm9vdCkKCiAgICAgICAgLy8gVHkKICAgICAgICB0aGlzLnR5ID0gbmV3IFNlbGVjdENvbXBvbmVudCgicm9sZVR5IiwgWwogICAgICAgICAgICB7IHZhbHVlOiAiVXNlciIsIG5hbWU6ICJVc2VyIiB9LAogICAgICAgICAgICB7IHZhbHVlOiAiQWRtaW4iLCBuYW1lOiAiQWRtaW4iIH0sCiAgICAgICAgXSwgewogICAgICAgICAgICBkaXNwbGF5TmFtZTogaS5yb2xlVHlwZSwKICAgICAgICAgICAgcHJlU2VsZWN0ZWRPcHRpb246ICJVc2VyIiwKICAgICAgICB9KQogICAgICAgIHRoaXMudHkubW91bnQodGhpcy5tb2RhbFJvb3QpCgogICAgICAgIC8vIFBlcm1pc3Npb25zCiAgICAgICAgdGhpcy5wZXJtaXNzaW9uc0hlYWRlci5pbm5lclRleHQgPSBpLnBlcm1pc3Npb25zCiAgICAgICAgdGhpcy5tb2RhbFJvb3QuYXBwZW5kQ2hpbGQodGhpcy5wZXJtaXNzaW9uc0hlYWRlcikKCiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IG5ldyBSb2xlUGVybWlzc2lvbnNNZW51KCkKICAgICAgICB0aGlzLnBlcm1pc3Npb25zLm1vdW50KHRoaXMubW9kYWxSb290KQogICAgICAgIHRoaXMucGVybWlzc2lvbnMuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblBlcm1pc3Npb25zQ2hhbmdlLmJpbmQodGhpcykpCgogICAgICAgIC8vIERlZmF1bHQgU2V0dGluZ3MKICAgICAgICB0aGlzLmRlZmF1bHRTZXR0aW5nc0hlYWRlci5pbm5lclRleHQgPSBpLmRlZmF1bHRTZXR0aW5ncwogICAgICAgIHRoaXMubW9kYWxSb290LmFwcGVuZENoaWxkKHRoaXMuZGVmYXVsdFNldHRpbmdzSGVhZGVyKQoKICAgICAgICB0aGlzLmRlZmF1bHRTZXR0aW5ncyA9IG5ldyBTdHJlYW1TZXR0aW5nc0NvbXBvbmVudCh0aGlzLnBlcm1pc3Npb25zLmdldFBlcm1pc3Npb25zKCksIGdsb2JhbERlZmF1bHRTZXR0aW5ncygpKQogICAgICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzLm1vdW50KHRoaXMubW9kYWxSb290KQogICAgfQoKICAgIHByaXZhdGUgb25QZXJtaXNzaW9uc0NoYW5nZSgpIHsKICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuZGVmYXVsdFNldHRpbmdzLmdldFN0cmVhbVNldHRpbmdzKCkKICAgICAgICB0aGlzLmRlZmF1bHRTZXR0aW5ncy51bm1vdW50KHRoaXMubW9kYWxSb290KQoKICAgICAgICB0aGlzLmRlZmF1bHRTZXR0aW5ncyA9IG5ldyBTdHJlYW1TZXR0aW5nc0NvbXBvbmVudCh0aGlzLnBlcm1pc3Npb25zLmdldFBlcm1pc3Npb25zKCksIHNldHRpbmdzKQogICAgICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzLm1vdW50KHRoaXMubW9kYWxSb290KQogICAgfQoKICAgIG1vdW50Rm9ybShmb3JtOiBIVE1MRm9ybUVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBmb3JtLmFwcGVuZENoaWxkKHRoaXMubW9kYWxSb290KQogICAgfQoKICAgIHJlc2V0KCk6IHZvaWQgewogICAgICAgIHRoaXMubmFtZS5yZXNldCgpCiAgICB9CiAgICBzdWJtaXQoKTogUG9zdFJvbGVSZXF1ZXN0IHwgbnVsbCB7CiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZS5nZXRWYWx1ZSgpCiAgICAgICAgY29uc3QgdHkgPSB0aGlzLnR5LmdldFZhbHVlKCkgYXMgUm9sZVR5cGUKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgdHksCiAgICAgICAgICAgIGRlZmF1bHRfc2V0dGluZ3M6IHRoaXMuZGVmYXVsdFNldHRpbmdzLmdldFN0cmVhbVNldHRpbmdzKCksCiAgICAgICAgICAgIHBlcm1pc3Npb25zOiB0aGlzLnBlcm1pc3Npb25zLmdldFBlcm1pc3Npb25zKCkKICAgICAgICB9CiAgICB9Cn0K"},{"path":"web/component/roles/detailed_page.ts","sha256":"28da3af5d21a1a1ab6dfc1c8d0ff6b96046b8c8333898bd044356a15f84ca509","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRFdmVudCB9IGZyb20gIi4uL2luZGV4LmpzIjsKaW1wb3J0IHsgQXBpLCBhcGlQYXRjaFJvbGUgfSBmcm9tICIuLi8uLi9hcGkuanMiOwppbXBvcnQgeyBEZXRhaWxlZFJvbGUsIFBhdGNoUm9sZVJlcXVlc3QsIFJvbGVUeXBlIH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgZ2V0Q3VycmVudExhbmd1YWdlLCBnZXRUcmFuc2xhdGlvbnMgfSBmcm9tICIuLi8uLi9pMThuLmpzIjsKaW1wb3J0IHsgSW5wdXRDb21wb25lbnQsIFNlbGVjdENvbXBvbmVudCB9IGZyb20gIi4uL2lucHV0LmpzIjsKaW1wb3J0IHsgdHJ5RGVsZXRlUm9sZSwgUm9sZUV2ZW50TGlzdGVuZXIgfSBmcm9tICIuL2luZGV4LmpzIjsKaW1wb3J0IHsgUm9sZVBlcm1pc3Npb25zTWVudSB9IGZyb20gIi4vcGVybWlzc2lvbnMuanMiOwppbXBvcnQgeyBTdHJlYW1TZXR0aW5nc0NvbXBvbmVudCB9IGZyb20gIi4uL3NldHRpbmdzX21lbnUuanMiOwoKZXhwb3J0IGNsYXNzIERldGFpbGVkUm9sZVBhZ2UgaW1wbGVtZW50cyBDb21wb25lbnQgewoKICAgIHByaXZhdGUgYXBpOiBBcGkKCiAgICBwcml2YXRlIGZvcm1Sb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZm9ybSIpCgogICAgLy8gLS0gR2VuZXJhbCByb2xlIGluZm8KICAgIHByaXZhdGUgaWQKCiAgICBwcml2YXRlIGlkRWxlbWVudDogSW5wdXRDb21wb25lbnQKICAgIHByaXZhdGUgbmFtZTogSW5wdXRDb21wb25lbnQKICAgIHByaXZhdGUgdHk6IFNlbGVjdENvbXBvbmVudAoKICAgIC8vIC0tIFBlcm1pc3Npb25zCiAgICBwcml2YXRlIHBlcm1pc3Npb25zSGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDMiKQogICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUm9sZVBlcm1pc3Npb25zTWVudQoKICAgIC8vIC0tIERlZmF1bHQgU2V0dGluZ3MKICAgIHByaXZhdGUgZGVmYXVsdFNldHRpbmdzSGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDMiKQogICAgcHJpdmF0ZSBkZWZhdWx0U2V0dGluZ3M6IFN0cmVhbVNldHRpbmdzQ29tcG9uZW50CgogICAgLy8gLS0gQXBwbHkgYnV0dG9ucwogICAgcHJpdmF0ZSBhcHBseUJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCiAgICBwcml2YXRlIGRlbGV0ZUJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCgogICAgY29uc3RydWN0b3IoYXBpOiBBcGksIHJvbGU6IERldGFpbGVkUm9sZSkgewogICAgICAgIHRoaXMuYXBpID0gYXBpCiAgICAgICAgdGhpcy5pZCA9IHJvbGUuaWQKICAgICAgICBjb25zdCBpID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKS5hZG1pbgoKICAgICAgICB0aGlzLmZvcm1Sb290LmNsYXNzTGlzdC5hZGQoInJvbGUtaW5mbyIpCgogICAgICAgIC8vIFJvbGUgc3R1ZmYKICAgICAgICB0aGlzLmlkRWxlbWVudCA9IG5ldyBJbnB1dENvbXBvbmVudCgicm9sZUlkIiwgIm51bWJlciIsIGkucm9sZUlkLCB7CiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogYCR7cm9sZS5pZH1gCiAgICAgICAgfSkKICAgICAgICB0aGlzLmlkRWxlbWVudC5zZXRFbmFibGVkKGZhbHNlKQogICAgICAgIHRoaXMuaWRFbGVtZW50Lm1vdW50KHRoaXMuZm9ybVJvb3QpCgogICAgICAgIHRoaXMubmFtZSA9IG5ldyBJbnB1dENvbXBvbmVudCgicm9sZU5hbWUiLCAidGV4dCIsIGkucm9sZU5hbWUsIHsKICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiByb2xlLm5hbWUsCiAgICAgICAgfSkKICAgICAgICB0aGlzLm5hbWUubW91bnQodGhpcy5mb3JtUm9vdCkKCiAgICAgICAgdGhpcy50eSA9IG5ldyBTZWxlY3RDb21wb25lbnQoInJvbGVUeSIsIFsKICAgICAgICAgICAgeyB2YWx1ZTogIlVzZXIiLCBuYW1lOiAiVXNlciIgfSwKICAgICAgICAgICAgeyB2YWx1ZTogIkFkbWluIiwgbmFtZTogIkFkbWluIiB9LAogICAgICAgIF0sIHsKICAgICAgICAgICAgZGlzcGxheU5hbWU6IGkucm9sZVR5cGUsCiAgICAgICAgICAgIHByZVNlbGVjdGVkT3B0aW9uOiByb2xlLnR5LAogICAgICAgIH0pCiAgICAgICAgdGhpcy50eS5tb3VudCh0aGlzLmZvcm1Sb290KQoKICAgICAgICAvLyBQZXJtaXNzaW9ucwogICAgICAgIHRoaXMucGVybWlzc2lvbnNIZWFkZXIuaW5uZXJUZXh0ID0gaS5wZXJtaXNzaW9ucwogICAgICAgIHRoaXMuZm9ybVJvb3QuYXBwZW5kQ2hpbGQodGhpcy5wZXJtaXNzaW9uc0hlYWRlcikKCiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IG5ldyBSb2xlUGVybWlzc2lvbnNNZW51KHJvbGUucGVybWlzc2lvbnMpCiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucy5tb3VudCh0aGlzLmZvcm1Sb290KQogICAgICAgIHRoaXMucGVybWlzc2lvbnMuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblBlcm1pc3Npb25zQ2hhbmdlLmJpbmQodGhpcykpCgogICAgICAgIC8vIERlZmF1bHQgU2V0dGluZ3MKICAgICAgICB0aGlzLmRlZmF1bHRTZXR0aW5nc0hlYWRlci5pbm5lclRleHQgPSBpLmRlZmF1bHRTZXR0aW5ncwogICAgICAgIHRoaXMuZm9ybVJvb3QuYXBwZW5kQ2hpbGQodGhpcy5kZWZhdWx0U2V0dGluZ3NIZWFkZXIpCgogICAgICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzID0gbmV3IFN0cmVhbVNldHRpbmdzQ29tcG9uZW50KHJvbGUucGVybWlzc2lvbnMsIHJvbGUuZGVmYXVsdF9zZXR0aW5ncykKICAgICAgICB0aGlzLmRlZmF1bHRTZXR0aW5ncy5tb3VudCh0aGlzLmZvcm1Sb290KQoKICAgICAgICAvLyBBcHBseSAvIERlbGV0ZQogICAgICAgIHRoaXMuYXBwbHlCdXR0b24uaW5uZXJUZXh0ID0gaS5hcHBseQogICAgICAgIHRoaXMuYXBwbHlCdXR0b24udHlwZSA9ICJzdWJtaXQiCiAgICAgICAgdGhpcy5mb3JtUm9vdC5hcHBlbmRDaGlsZCh0aGlzLmFwcGx5QnV0dG9uKQoKICAgICAgICB0aGlzLmRlbGV0ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuZGVsZXRlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5kZWxldGVCdXR0b24uY2xhc3NMaXN0LmFkZCgicm9sZS1pbmZvLWRlbGV0ZSIpCiAgICAgICAgdGhpcy5kZWxldGVCdXR0b24uaW5uZXJUZXh0ID0gaS5kZWxldGUKICAgICAgICB0aGlzLmRlbGV0ZUJ1dHRvbi50eXBlID0gImJ1dHRvbiIKICAgICAgICB0aGlzLmZvcm1Sb290LmFwcGVuZENoaWxkKHRoaXMuZGVsZXRlQnV0dG9uKQoKICAgICAgICB0aGlzLmZvcm1Sb290LmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsIHRoaXMuYXBwbHkuYmluZCh0aGlzKSkKICAgIH0KCiAgICBwcml2YXRlIG9uUGVybWlzc2lvbnNDaGFuZ2UoKSB7CiAgICAgICAgY29uc3QgY3VycmVudFNldHRpbmdzID0gdGhpcy5kZWZhdWx0U2V0dGluZ3MuZ2V0U3RyZWFtU2V0dGluZ3MoKQoKICAgICAgICB0aGlzLmRlZmF1bHRTZXR0aW5ncy51bm1vdW50KHRoaXMuZm9ybVJvb3QpCgogICAgICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzID0gbmV3IFN0cmVhbVNldHRpbmdzQ29tcG9uZW50KHRoaXMucGVybWlzc2lvbnMuZ2V0UGVybWlzc2lvbnMoKSwgY3VycmVudFNldHRpbmdzKQogICAgICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzLm1vdW50QmVmb3JlKHRoaXMuZm9ybVJvb3QsIHRoaXMuYXBwbHlCdXR0b24pCiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyBhcHBseShldmVudDogU3VibWl0RXZlbnQpIHsKICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpCgogICAgICAgIGNvbnN0IHJlcXVlc3Q6IFBhdGNoUm9sZVJlcXVlc3QgPSB7CiAgICAgICAgICAgIGlkOiB0aGlzLmlkLAogICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUuZ2V0VmFsdWUoKSwKICAgICAgICAgICAgdHk6IHRoaXMudHkuZ2V0VmFsdWUoKSBhcyBSb2xlVHlwZSwKICAgICAgICAgICAgZGVmYXVsdF9zZXR0aW5nczogdGhpcy5kZWZhdWx0U2V0dGluZ3MuZ2V0U3RyZWFtU2V0dGluZ3MoKSwKICAgICAgICAgICAgcGVybWlzc2lvbnM6IHRoaXMucGVybWlzc2lvbnMuZ2V0UGVybWlzc2lvbnMoKQogICAgICAgIH07CgogICAgICAgIGF3YWl0IGFwaVBhdGNoUm9sZSh0aGlzLmFwaSwgcmVxdWVzdCkKICAgIH0KCiAgICBwcml2YXRlIGFzeW5jIGRlbGV0ZSgpIHsKICAgICAgICBpZiAoIWF3YWl0IHRyeURlbGV0ZVJvbGUodGhpcy5hcGksIHRoaXMuaWQpKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgdGhpcy5mb3JtUm9vdC5kaXNwYXRjaEV2ZW50KG5ldyBDb21wb25lbnRFdmVudCgibWwtcm9sZWRlbGV0ZWQiLCB0aGlzKSkKICAgIH0KCiAgICBhZGREZWxldGVkTGlzdGVuZXIobGlzdGVuZXI6IFJvbGVFdmVudExpc3RlbmVyLCBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmZvcm1Sb290LmFkZEV2ZW50TGlzdGVuZXIoIm1sLXJvbGVkZWxldGVkIiwgbGlzdGVuZXIgYXMgYW55LCBvcHRpb25zKQogICAgfQogICAgcmVtb3ZlRGVsZXRlZExpc3RlbmVyKGxpc3RlbmVyOiBSb2xlRXZlbnRMaXN0ZW5lcikgewogICAgICAgIHRoaXMuZm9ybVJvb3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWwtcm9sZWRlbGV0ZWQiLCBsaXN0ZW5lciBhcyBhbnkpCiAgICB9CgogICAgZ2V0Um9sZUlkKCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIHRoaXMuaWQKICAgIH0KCiAgICBtb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHRoaXMuZm9ybVJvb3QpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5mb3JtUm9vdCkKICAgIH0KfQo="},{"path":"web/component/roles/index.ts","sha256":"52fcf9f5d8f683b66422b76be31eb149a22d5928e979cf551a1fa91067c37895","contentBase64":"aW1wb3J0IHsgQXBpLCBhcGlEZWxldGVSb2xlLCBhcGlHZXRSb2xlLCBhcGlHZXRVc2VycyB9IGZyb20gIi4uLy4uL2FwaS5qcyI7CmltcG9ydCB7IERldGFpbGVkUm9sZSwgVW5kZXRhaWxlZFJvbGUgfSBmcm9tICIuLi8uLi9hcGlfYmluZGluZ3MuanMiOwppbXBvcnQgeyBnZXRDdXJyZW50TGFuZ3VhZ2UsIGdldFRyYW5zbGF0aW9ucyB9IGZyb20gIi4uLy4uL2kxOG4uanMiOwppbXBvcnQgeyBzZXRDb250ZXh0TWVudSB9IGZyb20gIi4uL2NvbnRleHRfbWVudS5qcyI7CmltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RXZlbnQgfSBmcm9tICIuLi9pbmRleC5qcyI7CmltcG9ydCB7IHNob3dNZXNzYWdlIH0gZnJvbSAiLi4vbW9kYWwvaW5kZXguanMiOwoKZXhwb3J0IHR5cGUgUm9sZUV2ZW50TGlzdGVuZXIgPSAoZXZlbnQ6IENvbXBvbmVudEV2ZW50PFJvbGU+KSA9PiB2b2lkCgpleHBvcnQgZnVuY3Rpb24gZm9ybWF0Um9sZU5hbWUocm9sZTogVW5kZXRhaWxlZFJvbGUgfCBEZXRhaWxlZFJvbGUpOiBzdHJpbmcgewogICAgcmV0dXJuIGAke3JvbGUubmFtZX0gKCR7cm9sZS5pZH0pYAp9CgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gdHJ5RGVsZXRlUm9sZShhcGk6IEFwaSwgaWQ6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4gewogICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuYWRtaW4KICAgIC8vIENoZWNrIGlmIGFueSB1c2VyIHN0aWxsIGhhcyB0aGlzIHJvbGUgYW5kIHNob3cgZXJyb3IgaWYgdGhleSBkbwogICAgY29uc3QgdXNlcnNSZXNwb25zZSA9IGF3YWl0IGFwaUdldFVzZXJzKGFwaSkKICAgIGNvbnN0IHVzZXJzV2l0aFJvbGUgPSB1c2Vyc1Jlc3BvbnNlLnVzZXJzLmZpbHRlcih1c2VyID0+IHVzZXIucm9sZV9pZCA9PSBpZCkKICAgIGlmICh1c2Vyc1dpdGhSb2xlLmxlbmd0aCA+IDApIHsKICAgICAgICBhd2FpdCBzaG93TWVzc2FnZShpLnJvbGVEZWxldGVCbG9ja2VkKHVzZXJzV2l0aFJvbGUubWFwKHVzZXIgPT4gdXNlci5uYW1lKSkpCiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICB9CgogICAgLy8gQWN0dWFsbHkgZGVsZXRlIHRoZSByb2xlCiAgICBhd2FpdCBhcGlEZWxldGVSb2xlKGFwaSwgeyBpZCB9KQoKICAgIHJldHVybiB0cnVlCn0KCmV4cG9ydCBjbGFzcyBSb2xlIGltcGxlbWVudHMgQ29tcG9uZW50IHsKCiAgICBwcml2YXRlIGFwaTogQXBpCgogICAgcHJpdmF0ZSByb2xlOiBEZXRhaWxlZFJvbGUgfCB7IGlkOiBudW1iZXIgfQoKICAgIHByaXZhdGUgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKICAgIHByaXZhdGUgbmFtZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIikKCiAgICBjb25zdHJ1Y3RvcihhcGk6IEFwaSwgcm9sZTogRGV0YWlsZWRSb2xlIHwgeyBpZDogbnVtYmVyIH0pIHsKICAgICAgICB0aGlzLmFwaSA9IGFwaQoKICAgICAgICB0aGlzLmRpdi5hcHBlbmRDaGlsZCh0aGlzLm5hbWVFbGVtZW50KQogICAgICAgIHRoaXMuZGl2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5vbkNsaWNrLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLm9uQ29udGV4dE1lbnUuYmluZCh0aGlzKSkKCiAgICAgICAgdGhpcy5yb2xlID0gcm9sZQogICAgICAgIGlmICgibmFtZSIgaW4gcm9sZSkgewogICAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKHJvbGUpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5mb3JjZUZldGNoKCkKICAgICAgICB9CiAgICB9CgogICAgYXN5bmMgZm9yY2VGZXRjaCgpIHsKICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUdldFJvbGUodGhpcy5hcGksIHsKICAgICAgICAgICAgaWQ6IHRoaXMucm9sZS5pZCwKICAgICAgICB9KQoKICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKHJlc3BvbnNlLnJvbGUpCiAgICB9CiAgICB1cGRhdGVDYWNoZShyb2xlOiBEZXRhaWxlZFJvbGUpIHsKICAgICAgICB0aGlzLnJvbGUgPSByb2xlCgogICAgICAgIHRoaXMubmFtZUVsZW1lbnQuaW5uZXJUZXh0ID0gZm9ybWF0Um9sZU5hbWUocm9sZSkKICAgIH0KCiAgICBwcml2YXRlIG9uQ2xpY2soKSB7CiAgICAgICAgdGhpcy5kaXYuZGlzcGF0Y2hFdmVudChuZXcgQ29tcG9uZW50RXZlbnQoIm1sLXJvbGVjbGlja2VkIiwgdGhpcykpCiAgICB9CgogICAgcHJpdmF0ZSBvbkNvbnRleHRNZW51KGV2ZW50OiBNb3VzZUV2ZW50KSB7CiAgICAgICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuYWRtaW4KICAgICAgICBzZXRDb250ZXh0TWVudShldmVudCwgewogICAgICAgICAgICBlbGVtZW50czogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5hbWU6IGkuZGVsZXRlLAogICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLm9uRGVsZXRlLmJpbmQodGhpcykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgIH0pCiAgICB9CgogICAgYWRkQ2xpY2tlZExpc3RlbmVyKGxpc3RlbmVyOiBSb2xlRXZlbnRMaXN0ZW5lciwgb3B0aW9ucz86IEV2ZW50TGlzdGVuZXJPcHRpb25zKSB7CiAgICAgICAgdGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigibWwtcm9sZWNsaWNrZWQiLCBsaXN0ZW5lciBhcyBhbnksIG9wdGlvbnMpCiAgICB9CiAgICByZW1vdmVDbGlja2VkTGlzdGVuZXIobGlzdGVuZXI6IFJvbGVFdmVudExpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5kaXYucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWwtcm9sZWNsaWNrZWQiLCBsaXN0ZW5lciBhcyBhbnkpCiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyBvbkRlbGV0ZSgpIHsKICAgICAgICBpZiAoIWF3YWl0IHRyeURlbGV0ZVJvbGUodGhpcy5hcGksIHRoaXMucm9sZS5pZCkpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLmRpdi5kaXNwYXRjaEV2ZW50KG5ldyBDb21wb25lbnRFdmVudCgibWwtcm9sZWRlbGV0ZWQiLCB0aGlzKSkKICAgIH0KCiAgICBhZGREZWxldGVkTGlzdGVuZXIobGlzdGVuZXI6IFJvbGVFdmVudExpc3RlbmVyLCBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmRpdi5hZGRFdmVudExpc3RlbmVyKCJtbC1yb2xlZGVsZXRlZCIsIGxpc3RlbmVyIGFzIGFueSwgb3B0aW9ucykKICAgIH0KICAgIHJlbW92ZURlbGV0ZWRMaXN0ZW5lcihsaXN0ZW5lcjogUm9sZUV2ZW50TGlzdGVuZXIpIHsKICAgICAgICB0aGlzLmRpdi5yZW1vdmVFdmVudExpc3RlbmVyKCJtbC1yb2xlZGVsZXRlZCIsIGxpc3RlbmVyIGFzIGFueSkKICAgIH0KCiAgICBnZXRDYWNoZSgpOiBEZXRhaWxlZFJvbGUgfCBudWxsIHsKICAgICAgICBpZiAoIm5hbWUiIGluIHRoaXMucm9sZSkgewogICAgICAgICAgICByZXR1cm4gdGhpcy5yb2xlCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICB9CiAgICB9CgogICAgZ2V0Um9sZUlkKCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIHRoaXMucm9sZS5pZAogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5kaXYpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5kaXYpCiAgICB9Cn0K"},{"path":"web/component/roles/list.ts","sha256":"714aa48f146deebc15db6b4776821420e265a43e08b3b419dbc9d6316c28f482","contentBase64":"aW1wb3J0IHsgUm9sZSwgUm9sZUV2ZW50TGlzdGVuZXIgfSBmcm9tICIuL2luZGV4LmpzIgppbXBvcnQgeyBDb21wb25lbnRFdmVudCB9IGZyb20gIi4uL2luZGV4LmpzIgppbXBvcnQgeyBBcGksIGFwaUdldFJvbGVzIH0gZnJvbSAiLi4vLi4vYXBpLmpzIgppbXBvcnQgeyBEZXRhaWxlZFJvbGUsIFVuZGV0YWlsZWRSb2xlIH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIgppbXBvcnQgeyBGZXRjaExpc3RDb21wb25lbnQgfSBmcm9tICIuLi9mZXRjaF9saXN0LmpzIgoKZXhwb3J0IGNsYXNzIFJvbGVMaXN0IGV4dGVuZHMgRmV0Y2hMaXN0Q29tcG9uZW50PFVuZGV0YWlsZWRSb2xlLCBSb2xlPiB7CiAgICBwcml2YXRlIGFwaTogQXBpCgogICAgcHJpdmF0ZSBldmVudFRhcmdldCA9IG5ldyBFdmVudFRhcmdldCgpCgogICAgY29uc3RydWN0b3IoYXBpOiBBcGkpIHsKICAgICAgICBzdXBlcih7CiAgICAgICAgICAgIGxpc3RDbGFzc2VzOiBbInJvbGUtbGlzdCJdLAogICAgICAgICAgICBlbGVtZW50TGlDbGFzc2VzOiBbInJvbGUtZWxlbWVudCJdCiAgICAgICAgfSkKCiAgICAgICAgdGhpcy5hcGkgPSBhcGkKICAgIH0KCiAgICBhc3luYyBmb3JjZUZldGNoKCk6IFByb21pc2U8dm9pZD4gewogICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXBpR2V0Um9sZXModGhpcy5hcGkpCgogICAgICAgIHRoaXMudXBkYXRlQ2FjaGUocmVzcG9uc2Uucm9sZXMpCiAgICB9CgogICAgcHVibGljIGluc2VydExpc3QoZGF0YUlkOiBudW1iZXIsIGRhdGE6IFVuZGV0YWlsZWRSb2xlKTogdm9pZCB7CiAgICAgICAgY29uc3QgbmV3Um9sZSA9IG5ldyBSb2xlKHRoaXMuYXBpLCBkYXRhKQoKICAgICAgICB0aGlzLmxpc3QuYXBwZW5kKG5ld1JvbGUpCgogICAgICAgIG5ld1JvbGUuYWRkQ2xpY2tlZExpc3RlbmVyKHRoaXMub25Sb2xlQ2xpY2tlZC5iaW5kKHRoaXMpKQogICAgICAgIG5ld1JvbGUuYWRkRGVsZXRlZExpc3RlbmVyKHRoaXMub25Sb2xlRGVsZXRlZC5iaW5kKHRoaXMpKQogICAgfQogICAgcHJvdGVjdGVkIHJlbW92ZUxpc3QobGlzdEluZGV4OiBudW1iZXIpOiB2b2lkIHsKCiAgICAgICAgY29uc3QgdXNlckNvbXBvbmVudCA9IHRoaXMubGlzdC5yZW1vdmUobGlzdEluZGV4KQoKICAgICAgICB1c2VyQ29tcG9uZW50Py5yZW1vdmVDbGlja2VkTGlzdGVuZXIodGhpcy5vblJvbGVDbGlja2VkLmJpbmQodGhpcykpCiAgICAgICAgdXNlckNvbXBvbmVudD8ucmVtb3ZlRGVsZXRlZExpc3RlbmVyKHRoaXMub25Sb2xlRGVsZXRlZC5iaW5kKHRoaXMpKQogICAgfQoKICAgIHNldEZpbHRlcihmaWx0ZXI6IHN0cmluZykgewogICAgICAgIHRoaXMubGlzdC5zZXRGaWx0ZXIoKHVzZXIpID0+CiAgICAgICAgICAgIHVzZXIuZ2V0Q2FjaGUoKT8ubmFtZS5pbmNsdWRlcyhmaWx0ZXIpID8/IGZhbHNlCiAgICAgICAgKQogICAgfQoKICAgIHJlbW92ZVJvbGUoaWQ6IG51bWJlcikgewogICAgICAgIGNvbnN0IGNvbXBvbmVudEluZGV4ID0gdGhpcy5saXN0LmdldCgpLmZpbmRJbmRleCh1c2VyID0+IHVzZXIuZ2V0Um9sZUlkKCkgPT0gaWQpCiAgICAgICAgaWYgKGNvbXBvbmVudEluZGV4ICE9IC0xKSB7CiAgICAgICAgICAgIHRoaXMubGlzdC5yZW1vdmUoY29tcG9uZW50SW5kZXgpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgb25Sb2xlQ2xpY2tlZChldmVudDogQ29tcG9uZW50RXZlbnQ8Um9sZT4pIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IENvbXBvbmVudEV2ZW50KCJtbC11c2VyY2xpY2tlZCIsIGV2ZW50LmNvbXBvbmVudCkpCiAgICB9CgogICAgYWRkUm9sZUNsaWNrZWRMaXN0ZW5lcihsaXN0ZW5lcjogUm9sZUV2ZW50TGlzdGVuZXIsIG9wdGlvbnM/OiBFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibWwtdXNlcmNsaWNrZWQiLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zKQogICAgfQogICAgcmVtb3ZlUm9sZUNsaWNrZWRMaXN0ZW5lcihsaXN0ZW5lcjogUm9sZUV2ZW50TGlzdGVuZXIsIG9wdGlvbnM/OiBFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWwtdXNlcmNsaWNrZWQiLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zKQogICAgfQoKICAgIHByaXZhdGUgb25Sb2xlRGVsZXRlZChldmVudDogQ29tcG9uZW50RXZlbnQ8Um9sZT4pIHsKICAgICAgICAvLyBSZW1vdmUgZnJvbSBvdXIgbGlzdAogICAgICAgIHRoaXMubGlzdC5yZW1vdmVWYWx1ZShldmVudC5jb21wb25lbnQpCgogICAgICAgIC8vIENhbGwgb3RoZXIgbGlzdGVuZXJzCiAgICAgICAgdGhpcy5ldmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBDb21wb25lbnRFdmVudCgibWwtdXNlcmRlbGV0ZWQiLCBldmVudC5jb21wb25lbnQpKQogICAgfQoKICAgIGFkZFJvbGVEZWxldGVkTGlzdGVuZXIobGlzdGVuZXI6IFJvbGVFdmVudExpc3RlbmVyLCBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1sLXVzZXJkZWxldGVkIiwgbGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCwgb3B0aW9ucykKICAgIH0KICAgIHJlbW92ZVJvbGVEZWxldGVkTGlzdGVuZXIobGlzdGVuZXI6IFJvbGVFdmVudExpc3RlbmVyLCBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1sLXVzZXJkZWxldGVkIiwgbGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCwgb3B0aW9ucykKICAgIH0KCiAgICBwcm90ZWN0ZWQgdXBkYXRlQ29tcG9uZW50RGF0YShjb21wb25lbnQ6IFJvbGUsIGRhdGE6IERldGFpbGVkUm9sZSk6IHZvaWQgewogICAgICAgIGNvbXBvbmVudC51cGRhdGVDYWNoZShkYXRhKQogICAgfQoKICAgIHByb3RlY3RlZCBnZXREYXRhSWQoZGF0YTogRGV0YWlsZWRSb2xlKTogbnVtYmVyIHsKICAgICAgICByZXR1cm4gZGF0YS5pZAogICAgfQogICAgcHJvdGVjdGVkIGdldENvbXBvbmVudERhdGFJZChjb21wb25lbnQ6IFJvbGUpOiBudW1iZXIgewogICAgICAgIHJldHVybiBjb21wb25lbnQuZ2V0Um9sZUlkKCkKICAgIH0KfQ=="},{"path":"web/component/roles/permissions.ts","sha256":"dc907364af185199e779c57ab2141bfcd9f3a519f14cdfa86607113c0829e22d","contentBase64":"aW1wb3J0IHsgU3RyZWFtUGVybWlzc2lvbnMgfSBmcm9tICIuLi8uLi9hcGlfYmluZGluZ3MuanMiOwppbXBvcnQgeyBnZXRDdXJyZW50TGFuZ3VhZ2UsIGdldFRyYW5zbGF0aW9ucyB9IGZyb20gIi4uLy4uL2kxOG4uanMiOwppbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEV2ZW50IH0gZnJvbSAiLi4vaW5kZXguanMiOwppbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gIi4uL2lucHV0LmpzIjsKCmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0Um9sZVBlcm1pc3Npb25zKCk6IFN0cmVhbVBlcm1pc3Npb25zIHsKICAgIHJldHVybiB7CiAgICAgICAgYWxsb3dfYWRkX2hvc3RzOiB0cnVlLAogICAgICAgIG1heGltdW1fYml0cmF0ZV9rYnBzOiBudWxsLAogICAgICAgIGFsbG93X2NvZGVjX2gyNjQ6IHRydWUsCiAgICAgICAgYWxsb3dfY29kZWNfaDI2NTogdHJ1ZSwKICAgICAgICBhbGxvd19jb2RlY19hdjE6IHRydWUsCiAgICAgICAgYWxsb3dfaGRyOiB0cnVlLAogICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJydGM6IHRydWUsCiAgICAgICAgYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHM6IHRydWUsCiAgICB9Cn0KCmV4cG9ydCB0eXBlIFJvbGVQZXJtaXNzaW9uc0NoYW5nZUxpc3RlbmVyID0gKGV2ZW50OiBDb21wb25lbnRFdmVudDxSb2xlUGVybWlzc2lvbnNNZW51PikgPT4gdm9pZAoKZXhwb3J0IGNsYXNzIFJvbGVQZXJtaXNzaW9uc01lbnUgaW1wbGVtZW50cyBDb21wb25lbnQgewoKICAgIHByaXZhdGUgcm9vdERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCgogICAgcHJpdmF0ZSBhbGxvd0FkZEhvc3RzOiBJbnB1dENvbXBvbmVudAogICAgcHJpdmF0ZSBtYXhpbXVtQml0cmF0ZUticHM6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIGFsbG93Q29kZWNIMjY0OiBJbnB1dENvbXBvbmVudAogICAgcHJpdmF0ZSBhbGxvd0NvZGVjSDI2NTogSW5wdXRDb21wb25lbnQKICAgIHByaXZhdGUgYWxsb3dDb2RlY0F2MTogSW5wdXRDb21wb25lbnQKICAgIHByaXZhdGUgYWxsb3dIZHI6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIGFsbG93V2ViUlRDOiBJbnB1dENvbXBvbmVudAogICAgcHJpdmF0ZSBhbGxvd1dlYlNvY2tldHM6IElucHV0Q29tcG9uZW50CgogICAgY29uc3RydWN0b3IocGVybWlzc2lvbnM6IFN0cmVhbVBlcm1pc3Npb25zID0gZGVmYXVsdFJvbGVQZXJtaXNzaW9ucygpKSB7CiAgICAgICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuYWRtaW4KICAgICAgICAvLyBBbGxvdyBBZGQgSG9zdHMKICAgICAgICB0aGlzLmFsbG93QWRkSG9zdHMgPSBuZXcgSW5wdXRDb21wb25lbnQoImFsbG93QWRkSG9zdHMiLCAiY2hlY2tib3giLCBpLmFsbG93QWRkSG9zdHMsIHsKICAgICAgICAgICAgY2hlY2tlZDogcGVybWlzc2lvbnMuYWxsb3dfYWRkX2hvc3RzLAogICAgICAgIH0pCiAgICAgICAgdGhpcy5hbGxvd0FkZEhvc3RzLm1vdW50KHRoaXMucm9vdERpdikKICAgICAgICB0aGlzLmFsbG93QWRkSG9zdHMuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpKQoKICAgICAgICAvLyBNYXhpbXVtIEJpdHJhdGUKICAgICAgICB0aGlzLm1heGltdW1CaXRyYXRlS2JwcyA9IG5ldyBJbnB1dENvbXBvbmVudCgibWF4aW11bUJpdHJhdGVLYnBzIiwgIm51bWJlciIsIGkubWF4aW11bUJpdHJhdGUsIHsKICAgICAgICAgICAgaGFzRW5hYmxlQ2hlY2tib3g6IHRydWUsCiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogYCR7cGVybWlzc2lvbnMubWF4aW11bV9iaXRyYXRlX2ticHMgPz8gMTAwMDB9YCwKICAgICAgICAgICAgc3RlcDogIjEwMCIsCiAgICAgICAgICAgIG51bWJlclNsaWRlcjogewogICAgICAgICAgICAgICAgcmFuZ2VfbWluOiAxMDAwLAogICAgICAgICAgICAgICAgcmFuZ2VfbWF4OiAxMDAwMCwKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgdGhpcy5tYXhpbXVtQml0cmF0ZUticHMuc2V0RW5hYmxlZChwZXJtaXNzaW9ucy5tYXhpbXVtX2JpdHJhdGVfa2JwcyAhPSBudWxsKQogICAgICAgIHRoaXMubWF4aW11bUJpdHJhdGVLYnBzLm1vdW50KHRoaXMucm9vdERpdikKICAgICAgICB0aGlzLm1heGltdW1CaXRyYXRlS2Jwcy5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcykpCgogICAgICAgIC8vIENvZGVjcwogICAgICAgIHRoaXMuYWxsb3dDb2RlY0gyNjQgPSBuZXcgSW5wdXRDb21wb25lbnQoImFsbG93Q29kZWNIMjY0IiwgImNoZWNrYm94IiwgaS5hbGxvd0gyNjQsIHsKICAgICAgICAgICAgY2hlY2tlZDogcGVybWlzc2lvbnMuYWxsb3dfY29kZWNfaDI2NCwKICAgICAgICB9KQogICAgICAgIHRoaXMuYWxsb3dDb2RlY0gyNjQubW91bnQodGhpcy5yb290RGl2KQogICAgICAgIHRoaXMuYWxsb3dDb2RlY0gyNjQuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vbkNoYW5nZS5iaW5kKHRoaXMpKQoKICAgICAgICB0aGlzLmFsbG93Q29kZWNIMjY1ID0gbmV3IElucHV0Q29tcG9uZW50KCJhbGxvd0NvZGVjSDI2NSIsICJjaGVja2JveCIsIGkuYWxsb3dIMjY1LCB7CiAgICAgICAgICAgIGNoZWNrZWQ6IHBlcm1pc3Npb25zLmFsbG93X2NvZGVjX2gyNjUsCiAgICAgICAgfSkKICAgICAgICB0aGlzLmFsbG93Q29kZWNIMjY1Lm1vdW50KHRoaXMucm9vdERpdikKICAgICAgICB0aGlzLmFsbG93Q29kZWNIMjY1LmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKSkKCiAgICAgICAgdGhpcy5hbGxvd0NvZGVjQXYxID0gbmV3IElucHV0Q29tcG9uZW50KCJhbGxvd0NvZGVjQXYxIiwgImNoZWNrYm94IiwgaS5hbGxvd0F2MSwgewogICAgICAgICAgICBjaGVja2VkOiBwZXJtaXNzaW9ucy5hbGxvd19jb2RlY19hdjEsCiAgICAgICAgfSkKICAgICAgICB0aGlzLmFsbG93Q29kZWNBdjEubW91bnQodGhpcy5yb290RGl2KQogICAgICAgIHRoaXMuYWxsb3dDb2RlY0F2MS5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uQ2hhbmdlLmJpbmQodGhpcykpCgogICAgICAgIC8vIEhkcgogICAgICAgIHRoaXMuYWxsb3dIZHIgPSBuZXcgSW5wdXRDb21wb25lbnQoImFsbG93SGRyIiwgImNoZWNrYm94IiwgaS5hbGxvd0hkciwgewogICAgICAgICAgICBjaGVja2VkOiBwZXJtaXNzaW9ucy5hbGxvd19oZHIsCiAgICAgICAgfSkKICAgICAgICB0aGlzLmFsbG93SGRyLm1vdW50KHRoaXMucm9vdERpdikKICAgICAgICB0aGlzLmFsbG93SGRyLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKSkKCiAgICAgICAgLy8gVHJhbnNwb3J0CiAgICAgICAgdGhpcy5hbGxvd1dlYlJUQyA9IG5ldyBJbnB1dENvbXBvbmVudCgiYWxsb3dUcmFuc3BvcnRXZWJSVEMiLCAiY2hlY2tib3giLCBpLmFsbG93V2VicnRjLCB7CiAgICAgICAgICAgIGNoZWNrZWQ6IHBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJydGMsCiAgICAgICAgfSkKICAgICAgICB0aGlzLmFsbG93V2ViUlRDLm1vdW50KHRoaXMucm9vdERpdikKICAgICAgICB0aGlzLmFsbG93V2ViUlRDLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKSkKCiAgICAgICAgdGhpcy5hbGxvd1dlYlNvY2tldHMgPSBuZXcgSW5wdXRDb21wb25lbnQoImFsbG93VHJhbnNwb3J0V2ViU29ja2V0cyIsICJjaGVja2JveCIsIGkuYWxsb3dXZWJTb2NrZXRzLCB7CiAgICAgICAgICAgIGNoZWNrZWQ6IHBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJzb2NrZXRzLAogICAgICAgIH0pCiAgICAgICAgdGhpcy5hbGxvd1dlYlNvY2tldHMubW91bnQodGhpcy5yb290RGl2KQogICAgICAgIHRoaXMuYWxsb3dXZWJTb2NrZXRzLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25DaGFuZ2UuYmluZCh0aGlzKSkKICAgIH0KCiAgICBwcml2YXRlIG9uQ2hhbmdlKCkgewogICAgICAgIHRoaXMucm9vdERpdi5kaXNwYXRjaEV2ZW50KG5ldyBDb21wb25lbnRFdmVudCgibWwtY2hhbmdlIiwgdGhpcykpCiAgICB9CgogICAgYWRkQ2hhbmdlTGlzdGVuZXIobGlzdGVuZXI6IFJvbGVQZXJtaXNzaW9uc0NoYW5nZUxpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5yb290RGl2LmFkZEV2ZW50TGlzdGVuZXIoIm1sLWNoYW5nZSIsIGxpc3RlbmVyIGFzIGFueSkKICAgIH0KICAgIHJlbW92ZUNoYW5nZUxpc3RlbmVyKGxpc3RlbmVyOiBSb2xlUGVybWlzc2lvbnNDaGFuZ2VMaXN0ZW5lcikgewogICAgICAgIHRoaXMucm9vdERpdi5yZW1vdmVFdmVudExpc3RlbmVyKCJtbC1jaGFuZ2UiLCBsaXN0ZW5lciBhcyBhbnkpCiAgICB9CgogICAgZ2V0UGVybWlzc2lvbnMoKTogU3RyZWFtUGVybWlzc2lvbnMgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGFsbG93X2FkZF9ob3N0czogdGhpcy5hbGxvd0FkZEhvc3RzLmlzQ2hlY2tlZCgpLAogICAgICAgICAgICBtYXhpbXVtX2JpdHJhdGVfa2JwczogdGhpcy5tYXhpbXVtQml0cmF0ZUticHMuaXNFbmFibGVkKCkgPyBwYXJzZUludCh0aGlzLm1heGltdW1CaXRyYXRlS2Jwcy5nZXRWYWx1ZSgpKSA6IG51bGwsCiAgICAgICAgICAgIGFsbG93X2NvZGVjX2gyNjQ6IHRoaXMuYWxsb3dDb2RlY0gyNjQuaXNDaGVja2VkKCksCiAgICAgICAgICAgIGFsbG93X2NvZGVjX2gyNjU6IHRoaXMuYWxsb3dDb2RlY0gyNjUuaXNDaGVja2VkKCksCiAgICAgICAgICAgIGFsbG93X2NvZGVjX2F2MTogdGhpcy5hbGxvd0NvZGVjQXYxLmlzQ2hlY2tlZCgpLAogICAgICAgICAgICBhbGxvd19oZHI6IHRoaXMuYWxsb3dIZHIuaXNDaGVja2VkKCksCiAgICAgICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJydGM6IHRoaXMuYWxsb3dXZWJSVEMuaXNDaGVja2VkKCksCiAgICAgICAgICAgIGFsbG93X3RyYW5zcG9ydF93ZWJzb2NrZXRzOiB0aGlzLmFsbG93V2ViU29ja2V0cy5pc0NoZWNrZWQoKSwKICAgICAgICB9CiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLnJvb3REaXYpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5yb290RGl2KQogICAgfQp9Cg=="},{"path":"web/component/settings_menu.ts","sha256":"0ae834edd6420e5ce38cc1d5d0ee99369b675efeb90b8089734c5d605defa49f","contentBase64":"aW1wb3J0IHsgQ29udHJvbGxlckNvbmZpZyB9IGZyb20gIi4uL3N0cmVhbS9nYW1lcGFkLmpzIjsKaW1wb3J0IHsgTW91c2VNb2RlLCBNb3VzZVNjcm9sbE1vZGUsIFRvdWNoTW9kZSB9IGZyb20gIi4uL3N0cmVhbS9pbnB1dC5qcyI7CmltcG9ydCB7IFBhZ2VTdHlsZSB9IGZyb20gIi4uL3N0eWxlcy9pbmRleC5qcyI7CmltcG9ydCB7IGdldExhbmd1YWdlT3B0aW9ucywgZ2V0VHJhbnNsYXRpb25zLCBMYW5ndWFnZSwgbm9ybWFsaXplTGFuZ3VhZ2UgfSBmcm9tICIuLi9pMThuLmpzIjsKaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRFdmVudCB9IGZyb20gIi4vaW5kZXguanMiOwppbXBvcnQgeyBJbnB1dENvbXBvbmVudCwgU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAiLi9pbnB1dC5qcyI7CmltcG9ydCB7IFNpZGViYXJFZGdlIH0gZnJvbSAiLi9zaWRlYmFyL2luZGV4LmpzIjsKCmV4cG9ydCB0eXBlIFNldHRpbmdzID0gewogICAgc2lkZWJhckVkZ2U6IFNpZGViYXJFZGdlLAogICAgYml0cmF0ZTogbnVtYmVyCiAgICB2aWRlb0ZyYW1lUXVldWVTaXplOiBudW1iZXIKICAgIHZpZGVvU2l6ZTogIjcyMHAiIHwgIjEwODBwIiB8ICIxNDQwcCIgfCAiNGsiIHwgIm5hdGl2ZSIgfCAiY3VzdG9tIgogICAgdmlkZW9TaXplQ3VzdG9tOiB7CiAgICAgICAgd2lkdGg6IG51bWJlcgogICAgICAgIGhlaWdodDogbnVtYmVyCiAgICB9LAogICAgZnBzOiBudW1iZXIKICAgIHZpZGVvQ29kZWM6IFN0cmVhbUNvZGVjLAogICAgZm9yY2VWaWRlb0VsZW1lbnRSZW5kZXJlcjogYm9vbGVhbgogICAgY2FudmFzUmVuZGVyZXI6IGJvb2xlYW4KICAgIGNhbnZhc1ZzeW5jOiBib29sZWFuCiAgICBwbGF5QXVkaW9Mb2NhbDogYm9vbGVhbgogICAgYXVkaW9TYW1wbGVRdWV1ZVNpemU6IG51bWJlcgogICAgbW91c2VTY3JvbGxNb2RlOiBNb3VzZVNjcm9sbE1vZGUKICAgIG1vdXNlTW9kZTogTW91c2VNb2RlCiAgICB0b3VjaE1vZGU6IFRvdWNoTW9kZQogICAgbG9jYWxDdXJzb3JTZW5zaXRpdml0eTogbnVtYmVyCiAgICBjb250cm9sbGVyQ29uZmlnOiBDb250cm9sbGVyQ29uZmlnCiAgICBkYXRhVHJhbnNwb3J0OiBUcmFuc3BvcnRUeXBlCiAgICBsYW5ndWFnZTogTGFuZ3VhZ2UKICAgIGVudGVyRnVsbHNjcmVlbk9uU3RyZWFtU3RhcnQ6IGJvb2xlYW4KICAgIHRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZDogYm9vbGVhbgogICAgcGFnZVN0eWxlOiBQYWdlU3R5bGUKICAgIGhkcjogYm9vbGVhbgogICAgdXNlU2VsZWN0RWxlbWVudFBvbHlmaWxsOiBib29sZWFuCn0KCmV4cG9ydCB0eXBlIFN0cmVhbUNvZGVjID0gImgyNjQiIHwgImF1dG8iIHwgImgyNjUiIHwgImF2MSIKZXhwb3J0IHR5cGUgVHJhbnNwb3J0VHlwZSA9ICJhdXRvIiB8ICJ3ZWJydGMiIHwgIndlYnNvY2tldCIKCmltcG9ydCBERUZBVUxUX1NFVFRJTkdTIGZyb20gIi4uL2RlZmF1bHRfc2V0dGluZ3MuanMiCmltcG9ydCB7IFN0cmVhbVBlcm1pc3Npb25zIH0gZnJvbSAiLi4vYXBpX2JpbmRpbmdzLmpzIjsKCi8vLyBZb3Ugc2hvdWxkIHVzZSB0aGUgcm9sZSBkZWZhdWx0IHNldHRpbmdzIGluc3RlYWQhCmV4cG9ydCBmdW5jdGlvbiBnbG9iYWxEZWZhdWx0U2V0dGluZ3MoKTogU2V0dGluZ3MgewogICAgLy8gV2UgYXJlIGRlZXAgY2xvbmluZyB0aGlzCiAgICByZXR1cm4gZGVlcENsb25lKERFRkFVTFRfU0VUVElOR1MpCn0KCmZ1bmN0aW9uIGRlZXBDbG9uZTxUPih2YWx1ZTogVCk6IFQgewogICAgaWYgKHR5cGVvZiBzdHJ1Y3R1cmVkQ2xvbmUgPT0gImZ1bmN0aW9uIikgewogICAgICAgIHJldHVybiBzdHJ1Y3R1cmVkQ2xvbmUodmFsdWUpCiAgICB9IGVsc2UgewogICAgICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHZhbHVlKSkKICAgIH0KfQpmdW5jdGlvbiBkZWVwTWVyZ2UodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55KSB7CiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHsKICAgICAgICBjb25zdCBzb3VyY2VWYWwgPSBzb3VyY2Vba2V5XQogICAgICAgIGNvbnN0IHRhcmdldFZhbCA9IHRhcmdldFtrZXldCgogICAgICAgIGlmICgKICAgICAgICAgICAgc291cmNlVmFsICYmCiAgICAgICAgICAgIHR5cGVvZiBzb3VyY2VWYWwgPT09ICJvYmplY3QiICYmCiAgICAgICAgICAgICFBcnJheS5pc0FycmF5KHNvdXJjZVZhbCkKICAgICAgICApIHsKICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBkZWVwTWVyZ2UoCiAgICAgICAgICAgICAgICB0YXJnZXRWYWwgJiYgdHlwZW9mIHRhcmdldFZhbCA9PT0gIm9iamVjdCIgPyB0YXJnZXRWYWwgOiB7fSwKICAgICAgICAgICAgICAgIHNvdXJjZVZhbAogICAgICAgICAgICApCiAgICAgICAgfSBlbHNlIGlmIChzb3VyY2VWYWwgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVZhbAogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB0YXJnZXQKfQoKZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsU3RyZWFtU2V0dGluZ3MoZGVmYXVsdFNldHRpbmdzOiBTZXR0aW5ncykgewogICAgLy8gU3RhcnQgd2l0aCBGVUxMIGdsb2JhbCBkZWZhdWx0cwogICAgbGV0IHNldHRpbmdzID0gZ2xvYmFsRGVmYXVsdFNldHRpbmdzKCkKCiAgICAvLyBGaWxsL292ZXJyaWRlIHdpdGggcm9sZSBkZWZhdWx0cyAoZXZlbiBpZiBwYXJ0aWFsKQogICAgc2V0dGluZ3MgPSBkZWVwTWVyZ2Uoc2V0dGluZ3MsIGRlZmF1bHRTZXR0aW5ncykKCiAgICB0cnkgewogICAgICAgIGNvbnN0IGpzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgibWxTZXR0aW5ncyIpCiAgICAgICAgaWYgKGpzb24pIHsKICAgICAgICAgICAgY29uc3QgbG9hZGVkID0gSlNPTi5wYXJzZShqc29uKQoKICAgICAgICAgICAgLy8gRmluYWxseSBvdmVycmlkZSB3aXRoIHVzZXIgc2V0dGluZ3MKICAgICAgICAgICAgc2V0dGluZ3MgPSBkZWVwTWVyZ2Uoc2V0dGluZ3MsIGxvYWRlZCkKICAgICAgICB9CiAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIm1sU2V0dGluZ3MiKQogICAgfQoKICAgIC8vIE1pZ3JhdGlvbgogICAgaWYgKHNldHRpbmdzPy5wYWdlU3R5bGUgPT09ICJvbGQiKSB7CiAgICAgICAgc2V0dGluZ3MucGFnZVN0eWxlID0gIm1vb25saWdodCIKICAgIH0KCiAgICByZXR1cm4gc2V0dGluZ3MKfQpleHBvcnQgZnVuY3Rpb24gc2V0TG9jYWxTdHJlYW1TZXR0aW5ncyhzZXR0aW5ncz86IFNldHRpbmdzKSB7CiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgibWxTZXR0aW5ncyIsIEpTT04uc3RyaW5naWZ5KHNldHRpbmdzKSkKfQoKZXhwb3J0IHR5cGUgU3RyZWFtU2V0dGluZ3NDaGFuZ2VMaXN0ZW5lciA9IChldmVudDogQ29tcG9uZW50RXZlbnQ8U3RyZWFtU2V0dGluZ3NDb21wb25lbnQ+KSA9PiB2b2lkCgpmdW5jdGlvbiBtYWtlU2V0dGluZ3NWYWxpZChwZXJtaXNzaW9uczogU3RyZWFtUGVybWlzc2lvbnMsIHNldHRpbmdzOiBTZXR0aW5ncykgewogICAgaWYgKHBlcm1pc3Npb25zLm1heGltdW1fYml0cmF0ZV9rYnBzICE9IG51bGwgJiYgcGVybWlzc2lvbnMubWF4aW11bV9iaXRyYXRlX2ticHMgPCBzZXR0aW5ncy5iaXRyYXRlKSB7CiAgICAgICAgc2V0dGluZ3MuYml0cmF0ZSA9IHBlcm1pc3Npb25zLm1heGltdW1fYml0cmF0ZV9rYnBzCiAgICB9CgogICAgaWYgKCFwZXJtaXNzaW9ucy5hbGxvd19jb2RlY19hdjEgJiYgc2V0dGluZ3MudmlkZW9Db2RlYyA9PSAiYXYxIikgewogICAgICAgIHNldHRpbmdzLnZpZGVvQ29kZWMgPSAiaDI2NSIKICAgIH0KICAgIGlmICghcGVybWlzc2lvbnMuYWxsb3dfY29kZWNfaDI2NSAmJiBzZXR0aW5ncy52aWRlb0NvZGVjID09ICJoMjY1IikgewogICAgICAgIHNldHRpbmdzLnZpZGVvQ29kZWMgPSAiaDI2NCIKICAgIH0KICAgIGlmICghcGVybWlzc2lvbnMuYWxsb3dfY29kZWNfaDI2NCAmJiBzZXR0aW5ncy52aWRlb0NvZGVjID09ICJoMjY0IikgewogICAgICAgIHNldHRpbmdzLnZpZGVvQ29kZWMgPSAiYXV0byIKICAgIH0KCiAgICBpZiAoIXBlcm1pc3Npb25zLmFsbG93X2hkciAmJiBzZXR0aW5ncy5oZHIpIHsKICAgICAgICBzZXR0aW5ncy5oZHIgPSBmYWxzZQogICAgfQoKICAgIGlmICghcGVybWlzc2lvbnMuYWxsb3dfdHJhbnNwb3J0X3dlYnJ0YyAmJiBzZXR0aW5ncy5kYXRhVHJhbnNwb3J0ID09ICJ3ZWJydGMiKSB7CiAgICAgICAgc2V0dGluZ3MuZGF0YVRyYW5zcG9ydCA9ICJhdXRvIgogICAgfQogICAgaWYgKCFwZXJtaXNzaW9ucy5hbGxvd190cmFuc3BvcnRfd2Vic29ja2V0cyAmJiBzZXR0aW5ncy5kYXRhVHJhbnNwb3J0ID09ICJ3ZWJzb2NrZXQiKSB7CiAgICAgICAgc2V0dGluZ3MuZGF0YVRyYW5zcG9ydCA9ICJhdXRvIgogICAgfQoKICAgIGlmICghTnVtYmVyLmlzRmluaXRlKHNldHRpbmdzLmxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHkpIHx8IHNldHRpbmdzLmxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHkgPD0gMCkgewogICAgICAgIHNldHRpbmdzLmxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHkgPSBnbG9iYWxEZWZhdWx0U2V0dGluZ3MoKS5sb2NhbEN1cnNvclNlbnNpdGl2aXR5CiAgICB9Cn0KCmV4cG9ydCBjbGFzcyBTdHJlYW1TZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbXBvbmVudCB7CgogICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogU3RyZWFtUGVybWlzc2lvbnMKCiAgICBwcml2YXRlIGRpdkVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKCiAgICBwcml2YXRlIHNpZGViYXJIZWFkZXI6IEhUTUxIZWFkaW5nRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgzIikKICAgIHByaXZhdGUgc2lkZWJhckVkZ2U6IFNlbGVjdENvbXBvbmVudAoKICAgIHByaXZhdGUgc3RyZWFtSGVhZGVyOiBIVE1MSGVhZGluZ0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMyIpCiAgICBwcml2YXRlIGJpdHJhdGU6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIGZwczogSW5wdXRDb21wb25lbnQKICAgIHByaXZhdGUgdmlkZW9Db2RlYzogU2VsZWN0Q29tcG9uZW50CiAgICBwcml2YXRlIGZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXI6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIGNhbnZhc1JlbmRlcmVyOiBJbnB1dENvbXBvbmVudAogICAgcHJpdmF0ZSBjYW52YXNWc3luYzogSW5wdXRDb21wb25lbnQKICAgIHByaXZhdGUgaGRyOiBJbnB1dENvbXBvbmVudAoKICAgIHByaXZhdGUgdmlkZW9TaXplOiBTZWxlY3RDb21wb25lbnQKICAgIHByaXZhdGUgdmlkZW9TaXplV2lkdGg6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIHZpZGVvU2l6ZUhlaWdodDogSW5wdXRDb21wb25lbnQKCiAgICBwcml2YXRlIHZpZGVvU2FtcGxlUXVldWVTaXplOiBJbnB1dENvbXBvbmVudAoKICAgIHByaXZhdGUgYXVkaW9IZWFkZXI6IEhUTUxIZWFkaW5nRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgzIikKICAgIHByaXZhdGUgcGxheUF1ZGlvTG9jYWw6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIGF1ZGlvU2FtcGxlUXVldWVTaXplOiBJbnB1dENvbXBvbmVudAoKICAgIHByaXZhdGUgbW91c2VIZWFkZXI6IEhUTUxIZWFkaW5nRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgzIikKICAgIHByaXZhdGUgbW91c2VTY3JvbGxNb2RlOiBTZWxlY3RDb21wb25lbnQKICAgIHByaXZhdGUgbW91c2VNb2RlOiBTZWxlY3RDb21wb25lbnQKICAgIHByaXZhdGUgdG91Y2hNb2RlOiBTZWxlY3RDb21wb25lbnQKICAgIHByaXZhdGUgbG9jYWxDdXJzb3JTZW5zaXRpdml0eTogSW5wdXRDb21wb25lbnQKCiAgICBwcml2YXRlIGNvbnRyb2xsZXJIZWFkZXI6IEhUTUxIZWFkaW5nRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImgzIikKICAgIHByaXZhdGUgY29udHJvbGxlckludmVydEFCOiBJbnB1dENvbXBvbmVudAogICAgcHJpdmF0ZSBjb250cm9sbGVySW52ZXJ0WFk6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIGNvbnRyb2xsZXJTZW5kSW50ZXJ2YWxPdmVycmlkZTogSW5wdXRDb21wb25lbnQKCiAgICBwcml2YXRlIG90aGVySGVhZGVyOiBIVE1MSGVhZGluZ0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMyIpCiAgICBwcml2YXRlIGRhdGFUcmFuc3BvcnQ6IFNlbGVjdENvbXBvbmVudAogICAgcHJpdmF0ZSBsYW5ndWFnZTogU2VsZWN0Q29tcG9uZW50CiAgICBwcml2YXRlIGVudGVyRnVsbHNjcmVlbk9uU3RyZWFtU3RhcnQ6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIHRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZDogSW5wdXRDb21wb25lbnQKCiAgICBwcml2YXRlIHBhZ2VTdHlsZTogU2VsZWN0Q29tcG9uZW50CgogICAgcHJpdmF0ZSB1c2VTZWxlY3RFbGVtZW50UG9seWZpbGw6IElucHV0Q29tcG9uZW50CgogICAgY29uc3RydWN0b3IocGVybWlzc2lvbnM6IFN0cmVhbVBlcm1pc3Npb25zLCBzZXR0aW5nczogU2V0dGluZ3MpIHsKICAgICAgICAvLyBTb21ldGltZXMgdGhlIG5vcm1hbCBzZXR0aW5ncyBvYmplY3QgZG9lc24ndCBoYXZlIHNvbWUgdmFsdWVzLCBiZWNhdXNlIHRoZXkgY2hhbmdlIGJldHdlZW4gdmVyc2lvbnMuCiAgICAgICAgLy8gVXNlIHRob3NlIGFzIGZhbGxiYWNrCiAgICAgICAgY29uc3QgZGVmYXVsdFNldHRpbmdzXyA9IGdsb2JhbERlZmF1bHRTZXR0aW5ncygpCgogICAgICAgIG1ha2VTZXR0aW5nc1ZhbGlkKHBlcm1pc3Npb25zLCBkZWZhdWx0U2V0dGluZ3NfKQogICAgICAgIG1ha2VTZXR0aW5nc1ZhbGlkKHBlcm1pc3Npb25zLCBzZXR0aW5ncykKCiAgICAgICAgdGhpcy5wZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zCiAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBub3JtYWxpemVMYW5ndWFnZShzZXR0aW5ncz8ubGFuZ3VhZ2UgPz8gZGVmYXVsdFNldHRpbmdzXy5sYW5ndWFnZSkKICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSBnZXRUcmFuc2xhdGlvbnMobGFuZ3VhZ2UpCiAgICAgICAgY29uc3QgaSA9IHRyYW5zbGF0aW9ucy5zZXR0aW5ncwogICAgICAgIGNvbnN0IHN0cmVhbUkgPSB0cmFuc2xhdGlvbnMuc3RyZWFtCgogICAgICAgIC8vIFJvb3QgZGl2CiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmNsYXNzTGlzdC5hZGQoInNldHRpbmdzIikKCiAgICAgICAgLy8gU2lkZWJhcgogICAgICAgIHRoaXMuc2lkZWJhckhlYWRlci5pbm5lclRleHQgPSBpLnNpZGViYXIKICAgICAgICB0aGlzLmRpdkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zaWRlYmFySGVhZGVyKQoKICAgICAgICB0aGlzLnNpZGViYXJFZGdlID0gbmV3IFNlbGVjdENvbXBvbmVudCgic2lkZWJhckVkZ2UiLCBbCiAgICAgICAgICAgIHsgdmFsdWU6ICJsZWZ0IiwgbmFtZTogaS5sZWZ0IH0sCiAgICAgICAgICAgIHsgdmFsdWU6ICJyaWdodCIsIG5hbWU6IGkucmlnaHQgfSwKICAgICAgICAgICAgeyB2YWx1ZTogInVwIiwgbmFtZTogaS51cCB9LAogICAgICAgICAgICB7IHZhbHVlOiAiZG93biIsIG5hbWU6IGkuZG93biB9LAogICAgICAgIF0sIHsKICAgICAgICAgICAgZGlzcGxheU5hbWU6IGkuc2lkZWJhckVkZ2UsCiAgICAgICAgICAgIHByZVNlbGVjdGVkT3B0aW9uOiBzZXR0aW5ncz8uc2lkZWJhckVkZ2UgPz8gZGVmYXVsdFNldHRpbmdzXy5zaWRlYmFyRWRnZSwKICAgICAgICB9KQogICAgICAgIHRoaXMuc2lkZWJhckVkZ2UuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblNldHRpbmdzQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5zaWRlYmFyRWRnZS5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIC8vIFZpZGVvCiAgICAgICAgdGhpcy5zdHJlYW1IZWFkZXIuaW5uZXJUZXh0ID0gaS52aWRlbwogICAgICAgIHRoaXMuZGl2RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnN0cmVhbUhlYWRlcikKCiAgICAgICAgLy8gQml0cmF0ZQogICAgICAgIHRoaXMuYml0cmF0ZSA9IG5ldyBJbnB1dENvbXBvbmVudCgiYml0cmF0ZSIsICJudW1iZXIiLCBpLmJpdHJhdGUsIHsKICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0U2V0dGluZ3NfLmJpdHJhdGUudG9TdHJpbmcoKSwKICAgICAgICAgICAgdmFsdWU6IHNldHRpbmdzPy5iaXRyYXRlPy50b1N0cmluZygpLAogICAgICAgICAgICBzdGVwOiAiMTAwIiwKICAgICAgICAgICAgbnVtYmVyU2xpZGVyOiB7CiAgICAgICAgICAgICAgICByYW5nZV9taW46IE1hdGgubWluKHRoaXMucGVybWlzc2lvbnMubWF4aW11bV9iaXRyYXRlX2ticHMgPz8gMTAwMCwgMTAwMCksCiAgICAgICAgICAgICAgICByYW5nZV9tYXg6IHRoaXMucGVybWlzc2lvbnMubWF4aW11bV9iaXRyYXRlX2ticHMgPz8gMTAwMDAsCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIHRoaXMuYml0cmF0ZS5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLmJpdHJhdGUubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAvLyBGcHMKICAgICAgICB0aGlzLmZwcyA9IG5ldyBJbnB1dENvbXBvbmVudCgiZnBzIiwgIm51bWJlciIsIGkuZnBzLCB7CiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFNldHRpbmdzXy5mcHMudG9TdHJpbmcoKSwKICAgICAgICAgICAgdmFsdWU6IHNldHRpbmdzPy5mcHM/LnRvU3RyaW5nKCksCiAgICAgICAgICAgIHN0ZXA6ICIxMDAiCiAgICAgICAgfSkKICAgICAgICB0aGlzLmZwcy5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLmZwcy5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIC8vIFZpZGVvIFNpemUKICAgICAgICB0aGlzLnZpZGVvU2l6ZSA9IG5ldyBTZWxlY3RDb21wb25lbnQoInZpZGVvU2l6ZSIsCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIHsgdmFsdWU6ICI3MjBwIiwgbmFtZTogIjcyMHAiIH0sCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAiMTA4MHAiLCBuYW1lOiAiMTA4MHAiIH0sCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAiMTQ0MHAiLCBuYW1lOiAiMTQ0MHAiIH0sCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAiNGsiLCBuYW1lOiAiNGsiIH0sCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAibmF0aXZlIiwgbmFtZTogaS5uYXRpdmUgfSwKICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJjdXN0b20iLCBuYW1lOiBpLmN1c3RvbSB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBpLnZpZGVvU2l6ZSwKICAgICAgICAgICAgICAgIHByZVNlbGVjdGVkT3B0aW9uOiBzZXR0aW5ncz8udmlkZW9TaXplIHx8IGRlZmF1bHRTZXR0aW5nc18udmlkZW9TaXplCiAgICAgICAgICAgIH0KICAgICAgICApCiAgICAgICAgdGhpcy52aWRlb1NpemUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblNldHRpbmdzQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy52aWRlb1NpemUubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICB0aGlzLnZpZGVvU2l6ZVdpZHRoID0gbmV3IElucHV0Q29tcG9uZW50KCJ2aWRlb1NpemVXaWR0aCIsICJudW1iZXIiLCBpLnZpZGVvV2lkdGgsIHsKICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0U2V0dGluZ3NfLnZpZGVvU2l6ZUN1c3RvbS53aWR0aC50b1N0cmluZygpLAogICAgICAgICAgICB2YWx1ZTogc2V0dGluZ3M/LnZpZGVvU2l6ZUN1c3RvbT8ud2lkdGgudG9TdHJpbmcoKQogICAgICAgIH0pCiAgICAgICAgdGhpcy52aWRlb1NpemVXaWR0aC5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnZpZGVvU2l6ZVdpZHRoLm1vdW50KHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgdGhpcy52aWRlb1NpemVIZWlnaHQgPSBuZXcgSW5wdXRDb21wb25lbnQoInZpZGVvU2l6ZUhlaWdodCIsICJudW1iZXIiLCBpLnZpZGVvSGVpZ2h0LCB7CiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFNldHRpbmdzXy52aWRlb1NpemVDdXN0b20uaGVpZ2h0LnRvU3RyaW5nKCksCiAgICAgICAgICAgIHZhbHVlOiBzZXR0aW5ncz8udmlkZW9TaXplQ3VzdG9tPy5oZWlnaHQudG9TdHJpbmcoKQogICAgICAgIH0pCiAgICAgICAgdGhpcy52aWRlb1NpemVIZWlnaHQuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblNldHRpbmdzQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy52aWRlb1NpemVIZWlnaHQubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAvLyBWaWRlbyBTYW1wbGUgUXVldWUgU2l6ZQogICAgICAgIHRoaXMudmlkZW9TYW1wbGVRdWV1ZVNpemUgPSBuZXcgSW5wdXRDb21wb25lbnQoInZpZGVvRnJhbWVRdWV1ZVNpemUiLCAibnVtYmVyIiwgaS52aWRlb0ZyYW1lUXVldWVTaXplLCB7CiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFNldHRpbmdzXy52aWRlb0ZyYW1lUXVldWVTaXplLnRvU3RyaW5nKCksCiAgICAgICAgICAgIHZhbHVlOiBzZXR0aW5ncz8udmlkZW9GcmFtZVF1ZXVlU2l6ZT8udG9TdHJpbmcoKQogICAgICAgIH0pCiAgICAgICAgdGhpcy52aWRlb1NhbXBsZVF1ZXVlU2l6ZS5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnZpZGVvU2FtcGxlUXVldWVTaXplLm1vdW50KHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgLy8gQ29kZWMKICAgICAgICBjb25zdCBhbGxvd2VkVmlkZW9Db2RlY3MgPSBbCiAgICAgICAgICAgIHsgdmFsdWU6ICJhdXRvIiwgbmFtZTogaS5hdXRvRXhwZXJpbWVudGFsIH0sCiAgICAgICAgXQogICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zLmFsbG93X2NvZGVjX2gyNjQpIHsKICAgICAgICAgICAgYWxsb3dlZFZpZGVvQ29kZWNzLnB1c2goCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAiaDI2NCIsIG5hbWU6ICJIMjY0IiB9LAogICAgICAgICAgICApCiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zLmFsbG93X2NvZGVjX2gyNjUpIHsKICAgICAgICAgICAgYWxsb3dlZFZpZGVvQ29kZWNzLnB1c2goCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAiaDI2NSIsIG5hbWU6ICJIMjY1IiB9LAogICAgICAgICAgICApCiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLnBlcm1pc3Npb25zLmFsbG93X2NvZGVjX2F2MSkgewogICAgICAgICAgICBhbGxvd2VkVmlkZW9Db2RlY3MucHVzaCgKICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJhdjEiLCBuYW1lOiBpLmF2MUV4cGVyaW1lbnRhbCB9CiAgICAgICAgICAgICkKICAgICAgICB9CgogICAgICAgIHRoaXMudmlkZW9Db2RlYyA9IG5ldyBTZWxlY3RDb21wb25lbnQoInZpZGVvQ29kZWMiLCBhbGxvd2VkVmlkZW9Db2RlY3MsIHsKICAgICAgICAgICAgZGlzcGxheU5hbWU6IGkudmlkZW9Db2RlYywKICAgICAgICAgICAgcHJlU2VsZWN0ZWRPcHRpb246IHNldHRpbmdzPy52aWRlb0NvZGVjID8/IGRlZmF1bHRTZXR0aW5nc18udmlkZW9Db2RlYwogICAgICAgIH0pCiAgICAgICAgdGhpcy52aWRlb0NvZGVjLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25TZXR0aW5nc0NoYW5nZS5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMudmlkZW9Db2RlYy5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIC8vIEZvcmNlIFZpZGVvIEVsZW1lbnQgcmVuZGVyZXIKICAgICAgICB0aGlzLmZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXIgPSBuZXcgSW5wdXRDb21wb25lbnQoImZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXIiLCAiY2hlY2tib3giLCBpLmZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXIsIHsKICAgICAgICAgICAgY2hlY2tlZDogc2V0dGluZ3M/LmZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXIgPz8gZGVmYXVsdFNldHRpbmdzXy5mb3JjZVZpZGVvRWxlbWVudFJlbmRlcmVyCiAgICAgICAgfSkKICAgICAgICB0aGlzLmZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXIuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblNldHRpbmdzQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5mb3JjZVZpZGVvRWxlbWVudFJlbmRlcmVyLm1vdW50KHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgLy8gVXNlIENhbnZhcyBSZW5kZXJlcgogICAgICAgIHRoaXMuY2FudmFzUmVuZGVyZXIgPSBuZXcgSW5wdXRDb21wb25lbnQoImNhbnZhc1JlbmRlcmVyIiwgImNoZWNrYm94IiwgaS51c2VDYW52YXNSZW5kZXJlciwgewogICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRTZXR0aW5nc18uY2FudmFzUmVuZGVyZXIudG9TdHJpbmcoKSwKICAgICAgICAgICAgY2hlY2tlZDogc2V0dGluZ3MgPT09IG51bGwgfHwgc2V0dGluZ3MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNldHRpbmdzLmNhbnZhc1JlbmRlcmVyCiAgICAgICAgfSkKICAgICAgICB0aGlzLmNhbnZhc1JlbmRlcmVyLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25TZXR0aW5nc0NoYW5nZS5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMuY2FudmFzUmVuZGVyZXIubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAvLyBDYW52YXMgVlN5bmMgKENhbnZhcyBvbmx5OiBzeW5jIGRyYXcgdG8gZGlzcGxheSByZWZyZXNoIHRvIHJlZHVjZSB0ZWFyaW5nOyBvZmYgPSBsb3dlciBsYXRlbmN5KQogICAgICAgIHRoaXMuY2FudmFzVnN5bmMgPSBuZXcgSW5wdXRDb21wb25lbnQoImNhbnZhc1ZzeW5jIiwgImNoZWNrYm94IiwgaS5jYW52YXNWc3luYywgewogICAgICAgICAgICBjaGVja2VkOiBzZXR0aW5ncz8uY2FudmFzVnN5bmMgPz8gZGVmYXVsdFNldHRpbmdzXy5jYW52YXNWc3luYwogICAgICAgIH0pCiAgICAgICAgdGhpcy5jYW52YXNWc3luYy5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLmNhbnZhc1ZzeW5jLm1vdW50KHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgLy8gSERSCiAgICAgICAgdGhpcy5oZHIgPSBuZXcgSW5wdXRDb21wb25lbnQoImhkciIsICJjaGVja2JveCIsIGkuZW5hYmxlSGRyLCB7CiAgICAgICAgICAgIGNoZWNrZWQ6IHNldHRpbmdzPy5oZHIgPz8gZGVmYXVsdFNldHRpbmdzXy5oZHIKICAgICAgICB9KQogICAgICAgIHRoaXMuaGRyLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25TZXR0aW5nc0NoYW5nZS5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMuaGRyLm1vdW50KHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgaWYgKCF0aGlzLnBlcm1pc3Npb25zLmFsbG93X2hkcikgewogICAgICAgICAgICB0aGlzLmhkci5zZXRDaGVja2VkKGZhbHNlKQogICAgICAgICAgICB0aGlzLmhkci5zZXRFbmFibGVkKGZhbHNlKQogICAgICAgIH0KCiAgICAgICAgLy8gQXVkaW8gbG9jYWwKICAgICAgICB0aGlzLmF1ZGlvSGVhZGVyLmlubmVyVGV4dCA9IGkuYXVkaW8KICAgICAgICB0aGlzLmRpdkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5hdWRpb0hlYWRlcikKCiAgICAgICAgdGhpcy5wbGF5QXVkaW9Mb2NhbCA9IG5ldyBJbnB1dENvbXBvbmVudCgicGxheUF1ZGlvTG9jYWwiLCAiY2hlY2tib3giLCBpLnBsYXlBdWRpb0xvY2FsLCB7CiAgICAgICAgICAgIGNoZWNrZWQ6IHNldHRpbmdzPy5wbGF5QXVkaW9Mb2NhbAogICAgICAgIH0pCiAgICAgICAgdGhpcy5wbGF5QXVkaW9Mb2NhbC5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnBsYXlBdWRpb0xvY2FsLm1vdW50KHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgLy8gQXVkaW8gU2FtcGxlIFF1ZXVlIFNpemUKICAgICAgICB0aGlzLmF1ZGlvU2FtcGxlUXVldWVTaXplID0gbmV3IElucHV0Q29tcG9uZW50KCJhdWRpb1NhbXBsZVF1ZXVlU2l6ZSIsICJudW1iZXIiLCBpLmF1ZGlvU2FtcGxlUXVldWVTaXplLCB7CiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZGVmYXVsdFNldHRpbmdzXy5hdWRpb1NhbXBsZVF1ZXVlU2l6ZS50b1N0cmluZygpLAogICAgICAgICAgICB2YWx1ZTogc2V0dGluZ3M/LmF1ZGlvU2FtcGxlUXVldWVTaXplPy50b1N0cmluZygpCiAgICAgICAgfSkKICAgICAgICB0aGlzLmF1ZGlvU2FtcGxlUXVldWVTaXplLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25TZXR0aW5nc0NoYW5nZS5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMuYXVkaW9TYW1wbGVRdWV1ZVNpemUubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAvLyBNb3VzZQogICAgICAgIHRoaXMubW91c2VIZWFkZXIuaW5uZXJUZXh0ID0gaS5tb3VzZQogICAgICAgIHRoaXMuZGl2RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLm1vdXNlSGVhZGVyKQoKICAgICAgICB0aGlzLm1vdXNlU2Nyb2xsTW9kZSA9IG5ldyBTZWxlY3RDb21wb25lbnQoIm1vdXNlU2Nyb2xsTW9kZSIsCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJoaWdocmVzIiwgbmFtZTogaS5oaWdoUmVzIH0sCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAibm9ybWFsIiwgbmFtZTogaS5ub3JtYWwgfQogICAgICAgICAgICBdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogaS5zY3JvbGxNb2RlLAogICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWRPcHRpb246IHNldHRpbmdzPy5tb3VzZVNjcm9sbE1vZGUgfHwgZGVmYXVsdFNldHRpbmdzXy5tb3VzZVNjcm9sbE1vZGUKICAgICAgICAgICAgfQogICAgICAgICkKICAgICAgICB0aGlzLm1vdXNlU2Nyb2xsTW9kZS5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLm1vdXNlU2Nyb2xsTW9kZS5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIHRoaXMubW91c2VNb2RlID0gbmV3IFNlbGVjdENvbXBvbmVudCgibW91c2VNb2RlIiwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgeyB2YWx1ZTogInJlbGF0aXZlIiwgbmFtZTogc3RyZWFtSS5yZWxhdGl2ZSB9LAogICAgICAgICAgICAgICAgeyB2YWx1ZTogImZvbGxvdyIsIG5hbWU6IHN0cmVhbUkuZm9sbG93IH0sCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAibG9jYWxDdXJzb3IiLCBuYW1lOiBzdHJlYW1JLmxvY2FsQ3Vyc29yIH0sCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAicG9pbnRBbmREcmFnIiwgbmFtZTogc3RyZWFtSS5wb2ludEFuZERyYWcgfQogICAgICAgICAgICBdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogaS5zdGFydHVwTW91c2VNb2RlLAogICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWRPcHRpb246IHNldHRpbmdzPy5tb3VzZU1vZGUgPz8gZGVmYXVsdFNldHRpbmdzXy5tb3VzZU1vZGUKICAgICAgICAgICAgfQogICAgICAgICkKICAgICAgICB0aGlzLm1vdXNlTW9kZS5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLm1vdXNlTW9kZS5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIHRoaXMudG91Y2hNb2RlID0gbmV3IFNlbGVjdENvbXBvbmVudCgidG91Y2hNb2RlIiwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgeyB2YWx1ZTogInRvdWNoIiwgbmFtZTogc3RyZWFtSS50b3VjaCB9LAogICAgICAgICAgICAgICAgeyB2YWx1ZTogIm1vdXNlUmVsYXRpdmUiLCBuYW1lOiBzdHJlYW1JLnJlbGF0aXZlIH0sCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAibG9jYWxDdXJzb3IiLCBuYW1lOiBzdHJlYW1JLmxvY2FsQ3Vyc29yIH0sCiAgICAgICAgICAgICAgICB7IHZhbHVlOiAicG9pbnRBbmREcmFnIiwgbmFtZTogc3RyZWFtSS5wb2ludEFuZERyYWcgfQogICAgICAgICAgICBdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogaS5zdGFydHVwVG91Y2hNb2RlLAogICAgICAgICAgICAgICAgcHJlU2VsZWN0ZWRPcHRpb246IHNldHRpbmdzPy50b3VjaE1vZGUgPz8gZGVmYXVsdFNldHRpbmdzXy50b3VjaE1vZGUKICAgICAgICAgICAgfQogICAgICAgICkKICAgICAgICB0aGlzLnRvdWNoTW9kZS5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnRvdWNoTW9kZS5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIHRoaXMubG9jYWxDdXJzb3JTZW5zaXRpdml0eSA9IG5ldyBJbnB1dENvbXBvbmVudCgibG9jYWxDdXJzb3JTZW5zaXRpdml0eSIsICJudW1iZXIiLCBpLmxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHksIHsKICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkZWZhdWx0U2V0dGluZ3NfLmxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHkudG9TdHJpbmcoKSwKICAgICAgICAgICAgdmFsdWU6IHNldHRpbmdzPy5sb2NhbEN1cnNvclNlbnNpdGl2aXR5Py50b1N0cmluZygpLAogICAgICAgICAgICBzdGVwOiAiMC4xIiwKICAgICAgICAgICAgbnVtYmVyU2xpZGVyOiB7CiAgICAgICAgICAgICAgICByYW5nZV9taW46IDAuMSwKICAgICAgICAgICAgICAgIHJhbmdlX21heDogMwogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICB0aGlzLmxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHkuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblNldHRpbmdzQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5sb2NhbEN1cnNvclNlbnNpdGl2aXR5Lm1vdW50KHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgLy8gQ29udHJvbGxlcgogICAgICAgIGlmICh3aW5kb3cuaXNTZWN1cmVDb250ZXh0KSB7CiAgICAgICAgICAgIHRoaXMuY29udHJvbGxlckhlYWRlci5pbm5lclRleHQgPSBpLmNvbnRyb2xsZXIKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXJIZWFkZXIuaW5uZXJUZXh0ID0gaS5jb250cm9sbGVyRGlzYWJsZWQKICAgICAgICB9CiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuY29udHJvbGxlckhlYWRlcikKCiAgICAgICAgdGhpcy5jb250cm9sbGVySW52ZXJ0QUIgPSBuZXcgSW5wdXRDb21wb25lbnQoImNvbnRyb2xsZXJJbnZlcnRBQiIsICJjaGVja2JveCIsIGkuaW52ZXJ0QUIsIHsKICAgICAgICAgICAgY2hlY2tlZDogc2V0dGluZ3M/LmNvbnRyb2xsZXJDb25maWc/LmludmVydEFCCiAgICAgICAgfSkKICAgICAgICB0aGlzLmNvbnRyb2xsZXJJbnZlcnRBQi5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLmNvbnRyb2xsZXJJbnZlcnRBQi5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIHRoaXMuY29udHJvbGxlckludmVydFhZID0gbmV3IElucHV0Q29tcG9uZW50KCJjb250cm9sbGVySW52ZXJ0WFkiLCAiY2hlY2tib3giLCBpLmludmVydFhZLCB7CiAgICAgICAgICAgIGNoZWNrZWQ6IHNldHRpbmdzPy5jb250cm9sbGVyQ29uZmlnPy5pbnZlcnRYWQogICAgICAgIH0pCiAgICAgICAgdGhpcy5jb250cm9sbGVySW52ZXJ0WFkuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblNldHRpbmdzQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5jb250cm9sbGVySW52ZXJ0WFkubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAvLyBDb250cm9sbGVyIFNlbmQgSW50ZXJ2YWwKICAgICAgICB0aGlzLmNvbnRyb2xsZXJTZW5kSW50ZXJ2YWxPdmVycmlkZSA9IG5ldyBJbnB1dENvbXBvbmVudCgiY29udHJvbGxlclNlbmRJbnRlcnZhbE92ZXJyaWRlIiwgIm51bWJlciIsIGkub3ZlcnJpZGVDb250cm9sbGVySW50ZXJ2YWwsIHsKICAgICAgICAgICAgaGFzRW5hYmxlQ2hlY2tib3g6IHRydWUsCiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogIjIwIiwKICAgICAgICAgICAgdmFsdWU6IHNldHRpbmdzPy5jb250cm9sbGVyQ29uZmlnPy5zZW5kSW50ZXJ2YWxPdmVycmlkZT8udG9TdHJpbmcoKSwKICAgICAgICAgICAgbnVtYmVyU2xpZGVyOiB7CiAgICAgICAgICAgICAgICByYW5nZV9taW46IDEwLAogICAgICAgICAgICAgICAgcmFuZ2VfbWF4OiAxMjAKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgdGhpcy5jb250cm9sbGVyU2VuZEludGVydmFsT3ZlcnJpZGUuc2V0RW5hYmxlZChzZXR0aW5ncz8uY29udHJvbGxlckNvbmZpZz8uc2VuZEludGVydmFsT3ZlcnJpZGUgIT0gbnVsbCkKICAgICAgICB0aGlzLmNvbnRyb2xsZXJTZW5kSW50ZXJ2YWxPdmVycmlkZS5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLmNvbnRyb2xsZXJTZW5kSW50ZXJ2YWxPdmVycmlkZS5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIGlmICghd2luZG93LmlzU2VjdXJlQ29udGV4dCkgewogICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXJJbnZlcnRBQi5zZXRFbmFibGVkKGZhbHNlKQogICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXJJbnZlcnRYWS5zZXRFbmFibGVkKGZhbHNlKQogICAgICAgIH0KCiAgICAgICAgLy8gT3RoZXIKICAgICAgICB0aGlzLm90aGVySGVhZGVyLmlubmVyVGV4dCA9IGkub3RoZXIKICAgICAgICB0aGlzLmRpdkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5vdGhlckhlYWRlcikKCiAgICAgICAgLy8gRGF0YSBUcmFuc3BvcnQKICAgICAgICBjb25zdCBhbGxvd2VkRGF0YVRyYW5zcG9ydCA9IFsKICAgICAgICAgICAgeyB2YWx1ZTogImF1dG8iLCBuYW1lOiBpLmF1dG8gfSwKICAgICAgICBdCiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnMuYWxsb3dfdHJhbnNwb3J0X3dlYnJ0YykgewogICAgICAgICAgICBhbGxvd2VkRGF0YVRyYW5zcG9ydC5wdXNoKAogICAgICAgICAgICAgICAgeyB2YWx1ZTogIndlYnJ0YyIsIG5hbWU6ICJXZWJSVEMiIH0sCiAgICAgICAgICAgICkKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMucGVybWlzc2lvbnMuYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHMpIHsKICAgICAgICAgICAgYWxsb3dlZERhdGFUcmFuc3BvcnQucHVzaCgKICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJ3ZWJzb2NrZXQiLCBuYW1lOiBpLndlYlNvY2tldCB9LAogICAgICAgICAgICApCiAgICAgICAgfQoKICAgICAgICB0aGlzLmxhbmd1YWdlID0gbmV3IFNlbGVjdENvbXBvbmVudCgibGFuZ3VhZ2UiLCBnZXRMYW5ndWFnZU9wdGlvbnMoKSwgewogICAgICAgICAgICBkaXNwbGF5TmFtZTogaS5sYW5ndWFnZSwKICAgICAgICAgICAgcHJlU2VsZWN0ZWRPcHRpb246IGxhbmd1YWdlCiAgICAgICAgfSkKICAgICAgICB0aGlzLmxhbmd1YWdlLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25TZXR0aW5nc0NoYW5nZS5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMubGFuZ3VhZ2UubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICB0aGlzLmRhdGFUcmFuc3BvcnQgPSBuZXcgU2VsZWN0Q29tcG9uZW50KCJ0cmFuc3BvcnQiLCBhbGxvd2VkRGF0YVRyYW5zcG9ydCwgewogICAgICAgICAgICBkaXNwbGF5TmFtZTogaS5kYXRhVHJhbnNwb3J0LAogICAgICAgICAgICBwcmVTZWxlY3RlZE9wdGlvbjogc2V0dGluZ3M/LmRhdGFUcmFuc3BvcnQgPz8gZGVmYXVsdFNldHRpbmdzXy5kYXRhVHJhbnNwb3J0CiAgICAgICAgfSkKICAgICAgICB0aGlzLmRhdGFUcmFuc3BvcnQuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblNldHRpbmdzQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5kYXRhVHJhbnNwb3J0Lm1vdW50KHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgdGhpcy5lbnRlckZ1bGxzY3JlZW5PblN0cmVhbVN0YXJ0ID0gbmV3IElucHV0Q29tcG9uZW50KCJlbnRlckZ1bGxzY3JlZW5PblN0cmVhbVN0YXJ0IiwgImNoZWNrYm94IiwgaS5lbnRlckZ1bGxzY3JlZW5PblN0cmVhbVN0YXJ0LCB7CiAgICAgICAgICAgIGNoZWNrZWQ6IHNldHRpbmdzPy5lbnRlckZ1bGxzY3JlZW5PblN0cmVhbVN0YXJ0ID8/IGRlZmF1bHRTZXR0aW5nc18uZW50ZXJGdWxsc2NyZWVuT25TdHJlYW1TdGFydAogICAgICAgIH0pCiAgICAgICAgdGhpcy5lbnRlckZ1bGxzY3JlZW5PblN0cmVhbVN0YXJ0LmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25TZXR0aW5nc0NoYW5nZS5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMuZW50ZXJGdWxsc2NyZWVuT25TdHJlYW1TdGFydC5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIC8vIEZ1bGxzY3JlZW4gS2V5YmluZAogICAgICAgIHRoaXMudG9nZ2xlRnVsbHNjcmVlbldpdGhLZXliaW5kID0gbmV3IElucHV0Q29tcG9uZW50KCJ0b2dnbGVGdWxsc2NyZWVuV2l0aEtleWJpbmQiLCAiY2hlY2tib3giLCBpLnRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZCwgewogICAgICAgICAgICBjaGVja2VkOiBzZXR0aW5ncz8udG9nZ2xlRnVsbHNjcmVlbldpdGhLZXliaW5kCiAgICAgICAgfSkKICAgICAgICB0aGlzLnRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZC5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZC5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIC8vIFBhZ2UgU3R5bGUKICAgICAgICB0aGlzLnBhZ2VTdHlsZSA9IG5ldyBTZWxlY3RDb21wb25lbnQoInBhZ2VTdHlsZSIsIFsKICAgICAgICAgICAgeyB2YWx1ZTogInN0YW5kYXJkIiwgbmFtZTogIlN0YW5kYXJkIiB9LAogICAgICAgICAgICB7IHZhbHVlOiAibW9vbmxpZ2h0IiwgbmFtZTogIk1vb25saWdodCIgfSwKICAgICAgICBdLCB7CiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBpLnN0eWxlLAogICAgICAgICAgICBwcmVTZWxlY3RlZE9wdGlvbjogc2V0dGluZ3M/LnBhZ2VTdHlsZSA/PyBkZWZhdWx0U2V0dGluZ3NfLnBhZ2VTdHlsZQogICAgICAgIH0pCiAgICAgICAgdGhpcy5wYWdlU3R5bGUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblNldHRpbmdzQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5wYWdlU3R5bGUubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAvLyBDdXN0b20gU2VsZWN0IEVsZW1lbnQKICAgICAgICB0aGlzLnVzZVNlbGVjdEVsZW1lbnRQb2x5ZmlsbCA9IG5ldyBJbnB1dENvbXBvbmVudCgidXNlU2VsZWN0RWxlbWVudFBvbHlmaWxsIiwgImNoZWNrYm94IiwgaS51c2VDdXN0b21Ecm9wZG93biwgewogICAgICAgICAgICBjaGVja2VkOiBzZXR0aW5ncz8udXNlU2VsZWN0RWxlbWVudFBvbHlmaWxsID8/IGRlZmF1bHRTZXR0aW5nc18udXNlU2VsZWN0RWxlbWVudFBvbHlmaWxsCiAgICAgICAgfSkKICAgICAgICB0aGlzLnVzZVNlbGVjdEVsZW1lbnRQb2x5ZmlsbC5hZGRDaGFuZ2VMaXN0ZW5lcih0aGlzLm9uU2V0dGluZ3NDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnVzZVNlbGVjdEVsZW1lbnRQb2x5ZmlsbC5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgIHRoaXMub25TZXR0aW5nc0NoYW5nZSgpCiAgICB9CgogICAgcHJpdmF0ZSBvblNldHRpbmdzQ2hhbmdlKCkgewogICAgICAgIGlmICh0aGlzLnZpZGVvU2l6ZS5nZXRWYWx1ZSgpID09ICJjdXN0b20iKSB7CiAgICAgICAgICAgIHRoaXMudmlkZW9TaXplV2lkdGguc2V0RW5hYmxlZCh0cnVlKQogICAgICAgICAgICB0aGlzLnZpZGVvU2l6ZUhlaWdodC5zZXRFbmFibGVkKHRydWUpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy52aWRlb1NpemVXaWR0aC5zZXRFbmFibGVkKGZhbHNlKQogICAgICAgICAgICB0aGlzLnZpZGVvU2l6ZUhlaWdodC5zZXRFbmFibGVkKGZhbHNlKQogICAgICAgIH0KCiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IENvbXBvbmVudEV2ZW50KCJtbC1zZXR0aW5nc2NoYW5nZSIsIHRoaXMpKQogICAgfQoKICAgIGFkZENoYW5nZUxpc3RlbmVyKGxpc3RlbmVyOiBTdHJlYW1TZXR0aW5nc0NoYW5nZUxpc3RlbmVyKSB7CiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1sLXNldHRpbmdzY2hhbmdlIiwgbGlzdGVuZXIgYXMgYW55KQogICAgfQogICAgcmVtb3ZlQ2hhbmdlTGlzdGVuZXIobGlzdGVuZXI6IFN0cmVhbVNldHRpbmdzQ2hhbmdlTGlzdGVuZXIpIHsKICAgICAgICB0aGlzLmRpdkVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWwtc2V0dGluZ3NjaGFuZ2UiLCBsaXN0ZW5lciBhcyBhbnkpCiAgICB9CgogICAgZ2V0U3RyZWFtU2V0dGluZ3MoKTogU2V0dGluZ3MgewogICAgICAgIGNvbnN0IHNldHRpbmdzID0gZ2xvYmFsRGVmYXVsdFNldHRpbmdzKCkKCiAgICAgICAgc2V0dGluZ3Muc2lkZWJhckVkZ2UgPSB0aGlzLnNpZGViYXJFZGdlLmdldFZhbHVlKCkgYXMgYW55CiAgICAgICAgc2V0dGluZ3MuYml0cmF0ZSA9IHBhcnNlSW50KHRoaXMuYml0cmF0ZS5nZXRWYWx1ZSgpKQogICAgICAgIHNldHRpbmdzLmZwcyA9IHBhcnNlSW50KHRoaXMuZnBzLmdldFZhbHVlKCkpCiAgICAgICAgc2V0dGluZ3MudmlkZW9TaXplID0gdGhpcy52aWRlb1NpemUuZ2V0VmFsdWUoKSBhcyBhbnkKICAgICAgICBzZXR0aW5ncy52aWRlb1NpemVDdXN0b20gPSB7CiAgICAgICAgICAgIHdpZHRoOiBwYXJzZUludCh0aGlzLnZpZGVvU2l6ZVdpZHRoLmdldFZhbHVlKCkpLAogICAgICAgICAgICBoZWlnaHQ6IHBhcnNlSW50KHRoaXMudmlkZW9TaXplSGVpZ2h0LmdldFZhbHVlKCkpCiAgICAgICAgfQogICAgICAgIHNldHRpbmdzLnZpZGVvRnJhbWVRdWV1ZVNpemUgPSBwYXJzZUludCh0aGlzLnZpZGVvU2FtcGxlUXVldWVTaXplLmdldFZhbHVlKCkpCiAgICAgICAgc2V0dGluZ3MudmlkZW9Db2RlYyA9IHRoaXMudmlkZW9Db2RlYy5nZXRWYWx1ZSgpIGFzIGFueQogICAgICAgIHNldHRpbmdzLmZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXIgPSB0aGlzLmZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXIuaXNDaGVja2VkKCkKICAgICAgICBzZXR0aW5ncy5jYW52YXNSZW5kZXJlciA9IHRoaXMuY2FudmFzUmVuZGVyZXIuaXNDaGVja2VkKCkKICAgICAgICBzZXR0aW5ncy5jYW52YXNWc3luYyA9IHRoaXMuY2FudmFzVnN5bmMuaXNDaGVja2VkKCkKCiAgICAgICAgc2V0dGluZ3MucGxheUF1ZGlvTG9jYWwgPSB0aGlzLnBsYXlBdWRpb0xvY2FsLmlzQ2hlY2tlZCgpCiAgICAgICAgc2V0dGluZ3MuYXVkaW9TYW1wbGVRdWV1ZVNpemUgPSBwYXJzZUludCh0aGlzLmF1ZGlvU2FtcGxlUXVldWVTaXplLmdldFZhbHVlKCkpCgogICAgICAgIHNldHRpbmdzLm1vdXNlU2Nyb2xsTW9kZSA9IHRoaXMubW91c2VTY3JvbGxNb2RlLmdldFZhbHVlKCkgYXMgYW55CiAgICAgICAgc2V0dGluZ3MubW91c2VNb2RlID0gdGhpcy5tb3VzZU1vZGUuZ2V0VmFsdWUoKSBhcyBNb3VzZU1vZGUKICAgICAgICBzZXR0aW5ncy50b3VjaE1vZGUgPSB0aGlzLnRvdWNoTW9kZS5nZXRWYWx1ZSgpIGFzIFRvdWNoTW9kZQogICAgICAgIHNldHRpbmdzLmxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHkgPSBwYXJzZUZsb2F0KHRoaXMubG9jYWxDdXJzb3JTZW5zaXRpdml0eS5nZXRWYWx1ZSgpKQoKICAgICAgICBzZXR0aW5ncy5jb250cm9sbGVyQ29uZmlnLmludmVydEFCID0gdGhpcy5jb250cm9sbGVySW52ZXJ0QUIuaXNDaGVja2VkKCkKICAgICAgICBzZXR0aW5ncy5jb250cm9sbGVyQ29uZmlnLmludmVydFhZID0gdGhpcy5jb250cm9sbGVySW52ZXJ0WFkuaXNDaGVja2VkKCkKICAgICAgICBpZiAodGhpcy5jb250cm9sbGVyU2VuZEludGVydmFsT3ZlcnJpZGUuaXNFbmFibGVkKCkpIHsKICAgICAgICAgICAgc2V0dGluZ3MuY29udHJvbGxlckNvbmZpZy5zZW5kSW50ZXJ2YWxPdmVycmlkZSA9IHBhcnNlSW50KHRoaXMuY29udHJvbGxlclNlbmRJbnRlcnZhbE92ZXJyaWRlLmdldFZhbHVlKCkpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgc2V0dGluZ3MuY29udHJvbGxlckNvbmZpZy5zZW5kSW50ZXJ2YWxPdmVycmlkZSA9IG51bGwKICAgICAgICB9CgogICAgICAgIHNldHRpbmdzLmRhdGFUcmFuc3BvcnQgPSB0aGlzLmRhdGFUcmFuc3BvcnQuZ2V0VmFsdWUoKSBhcyBhbnkKICAgICAgICBzZXR0aW5ncy5sYW5ndWFnZSA9IHRoaXMubGFuZ3VhZ2UuZ2V0VmFsdWUoKSBhcyBMYW5ndWFnZQoKICAgICAgICBzZXR0aW5ncy5lbnRlckZ1bGxzY3JlZW5PblN0cmVhbVN0YXJ0ID0gdGhpcy5lbnRlckZ1bGxzY3JlZW5PblN0cmVhbVN0YXJ0LmlzQ2hlY2tlZCgpCiAgICAgICAgc2V0dGluZ3MudG9nZ2xlRnVsbHNjcmVlbldpdGhLZXliaW5kID0gdGhpcy50b2dnbGVGdWxsc2NyZWVuV2l0aEtleWJpbmQuaXNDaGVja2VkKCkKCiAgICAgICAgc2V0dGluZ3MucGFnZVN0eWxlID0gdGhpcy5wYWdlU3R5bGUuZ2V0VmFsdWUoKSBhcyBhbnkKCiAgICAgICAgc2V0dGluZ3MuaGRyID0gdGhpcy5oZHIuaXNDaGVja2VkKCkKCiAgICAgICAgc2V0dGluZ3MudXNlU2VsZWN0RWxlbWVudFBvbHlmaWxsID0gdGhpcy51c2VTZWxlY3RFbGVtZW50UG9seWZpbGwuaXNDaGVja2VkKCkKCiAgICAgICAgbWFrZVNldHRpbmdzVmFsaWQodGhpcy5wZXJtaXNzaW9ucywgc2V0dGluZ3MpCgogICAgICAgIHJldHVybiBzZXR0aW5ncwogICAgfQoKICAgIG1vdW50QmVmb3JlKHBhcmVudDogSFRNTEVsZW1lbnQsIGJlZm9yZTogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKHRoaXMuZGl2RWxlbWVudCwgYmVmb3JlKQogICAgfQogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmRpdkVsZW1lbnQpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5kaXZFbGVtZW50KQogICAgfQp9Cg=="},{"path":"web/component/sidebar/index.ts","sha256":"a1539c8558493085e7c02a8d4224047c3d726b3cd4d7a5164413e45a05e21f8b","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAiLi4vaW5kZXguanMiCmltcG9ydCB7IHNob3dOb3RpZmljYXRpb24gfSBmcm9tICIuLi9ub3RpZmljYXRpb24uanMiCgpleHBvcnQgaW50ZXJmYWNlIFNpZGViYXIgZXh0ZW5kcyBDb21wb25lbnQgewogICAgZXh0ZW5kZWQoKTogdm9pZAogICAgdW5leHRlbmQoKTogdm9pZAp9CgpsZXQgc2lkZWJhckV4dGVuZGVkID0gZmFsc2UKY29uc3Qgc2lkZWJhclJvb3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1yb290IikKY29uc3Qgc2lkZWJhclBhcmVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBhcmVudCIpCmNvbnN0IHNpZGViYXJCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1idXR0b24iKQoKc2lkZWJhckJ1dHRvbj8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0b2dnbGVTaWRlYmFyKQoKbGV0IHNpZGViYXJDb21wb25lbnQ6IFNpZGViYXIgfCBudWxsID0gbnVsbAoKZXhwb3J0IHR5cGUgU2lkZWJhckVkZ2UgPSAidXAiIHwgImRvd24iIHwgImxlZnQiIHwgInJpZ2h0IgpleHBvcnQgdHlwZSBTaWRlYmFyU3R5bGUgPSB7CiAgICBlZGdlPzogU2lkZWJhckVkZ2UKfQoKZXhwb3J0IGZ1bmN0aW9uIHNldFNpZGViYXJTdHlsZShzdHlsZTogU2lkZWJhclN0eWxlKSB7CiAgICAvLyBEZWZhdWx0IHZhbHVlcwogICAgY29uc3QgZWRnZSA9IHN0eWxlLmVkZ2UgPz8gImxlZnQiCgogICAgLy8gU2V0IGVkZ2UKICAgIHNpZGViYXJSb290Py5jbGFzc0xpc3QucmVtb3ZlKCJzaWRlYmFyLWVkZ2UtbGVmdCIsICJzaWRlYmFyLWVkZ2UtcmlnaHQiLCAic2lkZWJhci1lZGdlLXVwIiwgInNpZGViYXItZWRnZS1kb3duIikKICAgIHNpZGViYXJSb290Py5jbGFzc0xpc3QuYWRkKGBzaWRlYmFyLWVkZ2UtJHtlZGdlfWApCn0KCmV4cG9ydCBmdW5jdGlvbiB0b2dnbGVTaWRlYmFyKCkgewogICAgc2V0U2lkZWJhckV4dGVuZGVkKCFpc1NpZGViYXJFeHRlbmRlZCgpKQp9CmV4cG9ydCBmdW5jdGlvbiBzZXRTaWRlYmFyRXh0ZW5kZWQoZXh0ZW5kZWQ6IGJvb2xlYW4pIHsKICAgIGlmIChleHRlbmRlZCA9PSBzaWRlYmFyRXh0ZW5kZWQpIHsKICAgICAgICByZXR1cm4KICAgIH0KCiAgICBpZiAoZXh0ZW5kZWQpIHsKICAgICAgICBzaWRlYmFyUm9vdD8uY2xhc3NMaXN0LmFkZCgic2lkZWJhci1zaG93IikKICAgIH0gZWxzZSB7CiAgICAgICAgc2lkZWJhclJvb3Q/LmNsYXNzTGlzdC5yZW1vdmUoInNpZGViYXItc2hvdyIpCiAgICB9CiAgICBzaWRlYmFyRXh0ZW5kZWQgPSBleHRlbmRlZAp9CmV4cG9ydCBmdW5jdGlvbiBpc1NpZGViYXJFeHRlbmRlZCgpOiBib29sZWFuIHsKICAgIHJldHVybiBzaWRlYmFyRXh0ZW5kZWQKfQoKZXhwb3J0IGZ1bmN0aW9uIHNldFNpZGViYXIoc2lkZWJhcjogU2lkZWJhciB8IG51bGwpIHsKICAgIGlmIChzaWRlYmFyUGFyZW50ID09IG51bGwgfHwgc2lkZWJhclJvb3QgPT0gbnVsbCkgewogICAgICAgIHNob3dOb3RpZmljYXRpb24oImZhaWxlZCB0byBnZXQgc2lkZWJhciIpCiAgICAgICAgcmV0dXJuCiAgICB9CgogICAgaWYgKHNpZGViYXJDb21wb25lbnQpIHsKICAgICAgICAvLyB1bm1vdW50CiAgICAgICAgc2lkZWJhckNvbXBvbmVudD8udW5tb3VudChzaWRlYmFyUGFyZW50KQogICAgICAgIHNpZGViYXJDb21wb25lbnQgPSBudWxsCiAgICAgICAgc2lkZWJhclJvb3Quc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iCiAgICB9CiAgICBpZiAoc2lkZWJhcikgewogICAgICAgIC8vIG1vdW50CiAgICAgICAgc2lkZWJhckNvbXBvbmVudCA9IHNpZGViYXIKICAgICAgICBzaWRlYmFyPy5tb3VudChzaWRlYmFyUGFyZW50KQogICAgICAgIHNpZGViYXJSb290LnN0eWxlLnZpc2liaWxpdHkgPSAidmlzaWJsZSIKICAgIH0KfQoKZXhwb3J0IGZ1bmN0aW9uIGdldFNpZGViYXJSb290KCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7CiAgICByZXR1cm4gc2lkZWJhclJvb3QKfQoKLy8gaW5pdGlhbGl6ZSBkZWZhdWx0cwpzZXRTaWRlYmFyU3R5bGUoewogICAgZWRnZTogImxlZnQiCn0pCnNldFNpZGViYXIobnVsbCkK"},{"path":"web/component/user/add_modal.ts","sha256":"b1bd4ec20e210fbc03af46f5ec3f0544ff9fa83baca314191a4bf9f4bb538bbc","contentBase64":"aW1wb3J0IHsgQXBpLCBhcGlHZXRSb2xlcyB9IGZyb20gIi4uLy4uL2FwaS5qcyI7CmltcG9ydCB7IFBvc3RVc2VyUmVxdWVzdCwgVW5kZXRhaWxlZFJvbGUgfSBmcm9tICIuLi8uLi9hcGlfYmluZGluZ3MuanMiOwppbXBvcnQgeyBnZXRDdXJyZW50TGFuZ3VhZ2UsIGdldFRyYW5zbGF0aW9ucyB9IGZyb20gIi4uLy4uL2kxOG4uanMiOwppbXBvcnQgeyBzaG93Tm90aWZpY2F0aW9uIH0gZnJvbSAiLi4vbm90aWZpY2F0aW9uLmpzIjsKaW1wb3J0IHsgSW5wdXRDb21wb25lbnQsIFNlbGVjdENvbXBvbmVudCB9IGZyb20gIi4uL2lucHV0LmpzIjsKaW1wb3J0IHsgRm9ybU1vZGFsIH0gZnJvbSAiLi4vbW9kYWwvZm9ybS5qcyI7CmltcG9ydCB7IGNyZWF0ZVNlbGVjdFJvbGVJbnB1dCB9IGZyb20gIi4vcm9sZV9zZWxlY3QuanMiOwoKZXhwb3J0IGNsYXNzIEFkZFVzZXJNb2RhbCBleHRlbmRzIEZvcm1Nb2RhbDxQb3N0VXNlclJlcXVlc3Q+IHsKCiAgICBwcml2YXRlIGhlYWRlcjogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMiIpCgogICAgcHJpdmF0ZSBtb2RhbFJvb3Q6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKCiAgICBwcml2YXRlIG5hbWU6IElucHV0Q29tcG9uZW50CiAgICBwcml2YXRlIGRlZmF1bHRQYXNzd29yZDogSW5wdXRDb21wb25lbnQKICAgIHByaXZhdGUgcm9sZTogU2VsZWN0Q29tcG9uZW50CiAgICBwcml2YXRlIGNsaWVudFVuaXF1ZUlkOiBJbnB1dENvbXBvbmVudAoKICAgIGNvbnN0cnVjdG9yKGFwaTogQXBpKSB7CiAgICAgICAgc3VwZXIoKQogICAgICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmFkbWluCgogICAgICAgIHRoaXMuaGVhZGVyLmlubmVyVGV4dCA9IGkudXNlcgogICAgICAgIHRoaXMubW9kYWxSb290LmFwcGVuZENoaWxkKHRoaXMuaGVhZGVyKQoKICAgICAgICB0aGlzLm5hbWUgPSBuZXcgSW5wdXRDb21wb25lbnQoInVzZXJOYW1lIiwgInRleHQiLCBpLm5hbWUsIHsKICAgICAgICAgICAgZm9ybVJlcXVpcmVkOiB0cnVlCiAgICAgICAgfSkKICAgICAgICB0aGlzLm5hbWUubW91bnQodGhpcy5tb2RhbFJvb3QpCgogICAgICAgIHRoaXMuZGVmYXVsdFBhc3N3b3JkID0gbmV3IElucHV0Q29tcG9uZW50KCJ1c2VyUGFzc3dvcmQiLCAidGV4dCIsIGkuZGVmYXVsdFBhc3N3b3JkLCB7CiAgICAgICAgICAgIGZvcm1SZXF1aXJlZDogdHJ1ZQogICAgICAgIH0pCiAgICAgICAgdGhpcy5kZWZhdWx0UGFzc3dvcmQubW91bnQodGhpcy5tb2RhbFJvb3QpCgogICAgICAgIHRoaXMucm9sZSA9IGNyZWF0ZVNlbGVjdFJvbGVJbnB1dChbXSkKICAgICAgICB0aGlzLnJvbGUubW91bnQodGhpcy5tb2RhbFJvb3QpCiAgICAgICAgYXBpR2V0Um9sZXMoYXBpKS50aGVuKHJvbGVzID0+IHsKICAgICAgICAgICAgdGhpcy5yb2xlLnVubW91bnQodGhpcy5tb2RhbFJvb3QpCgogICAgICAgICAgICB0aGlzLnJvbGUgPSBjcmVhdGVTZWxlY3RSb2xlSW5wdXQocm9sZXMucm9sZXMpCiAgICAgICAgICAgIHRoaXMucm9sZS5tb3VudEJlZm9yZSh0aGlzLm1vZGFsUm9vdCwgdGhpcy5jbGllbnRVbmlxdWVJZCkKICAgICAgICB9KQoKICAgICAgICB0aGlzLmNsaWVudFVuaXF1ZUlkID0gbmV3IElucHV0Q29tcG9uZW50KCJ1c2VyQ2xpZW50VW5pcXVlSWQiLCAidGV4dCIsIGkubW9vbmxpZ2h0Q2xpZW50SWQsIHsKICAgICAgICAgICAgZm9ybVJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgICBoYXNFbmFibGVDaGVja2JveDogdHJ1ZQogICAgICAgIH0pCiAgICAgICAgdGhpcy5jbGllbnRVbmlxdWVJZC5tb3VudCh0aGlzLm1vZGFsUm9vdCkKICAgICAgICB0aGlzLm5hbWUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy51cGRhdGVDbGllbnRVbmlxdWVJZC5iaW5kKHRoaXMpKQogICAgfQoKICAgIHByaXZhdGUgdXBkYXRlQ2xpZW50VW5pcXVlSWQoKSB7CiAgICAgICAgdGhpcy5jbGllbnRVbmlxdWVJZC5zZXRQbGFjZWhvbGRlcih0aGlzLm5hbWUuZ2V0VmFsdWUoKSkKICAgIH0KCiAgICBtb3VudEZvcm0oZm9ybTogSFRNTEZvcm1FbGVtZW50KTogdm9pZCB7CiAgICAgICAgZm9ybS5hcHBlbmRDaGlsZCh0aGlzLm1vZGFsUm9vdCkKICAgIH0KCiAgICByZXNldCgpOiB2b2lkIHsKICAgICAgICB0aGlzLm5hbWUucmVzZXQoKQogICAgICAgIHRoaXMuZGVmYXVsdFBhc3N3b3JkLnJlc2V0KCkKICAgICAgICB0aGlzLnJvbGUucmVzZXQoKQogICAgfQogICAgc3VibWl0KCk6IFBvc3RVc2VyUmVxdWVzdCB8IG51bGwgewogICAgICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmFkbWluCiAgICAgICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZS5nZXRWYWx1ZSgpCiAgICAgICAgY29uc3QgcGFzc3dvcmQgPSB0aGlzLmRlZmF1bHRQYXNzd29yZC5nZXRWYWx1ZSgpCiAgICAgICAgY29uc3Qgcm9sZSA9IHRoaXMucm9sZS5nZXRWYWx1ZSgpCgogICAgICAgIGlmICghcm9sZSkgewogICAgICAgICAgICBzaG93Tm90aWZpY2F0aW9uKGkucGxlYXNlU2VsZWN0Um9sZSkKICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICB9CgogICAgICAgIGxldCBjbGllbnRVbmlxdWVJZCA9IG5hbWUKICAgICAgICBpZiAodGhpcy5jbGllbnRVbmlxdWVJZC5pc0VuYWJsZWQoKSkgewogICAgICAgICAgICBjbGllbnRVbmlxdWVJZCA9IHRoaXMuY2xpZW50VW5pcXVlSWQuZ2V0VmFsdWUoKQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgbmFtZSwKICAgICAgICAgICAgcGFzc3dvcmQsCiAgICAgICAgICAgIHJvbGVfaWQ6IHBhcnNlSW50KHJvbGUpLAogICAgICAgICAgICBjbGllbnRfdW5pcXVlX2lkOiBjbGllbnRVbmlxdWVJZCwKICAgICAgICB9CiAgICB9Cn0K"},{"path":"web/component/user/detailed_page.ts","sha256":"a3abf3c8d9ab9292b7c42d28eb09b4cc1fbd6ef608d6b318824959d33bd89e92","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRFdmVudCB9IGZyb20gIi4uL2luZGV4LmpzIjsKaW1wb3J0IHsgQXBpLCBhcGlEZWxldGVVc2VyLCBhcGlHZXRSb2xlcywgYXBpUGF0Y2hVc2VyIH0gZnJvbSAiLi4vLi4vYXBpLmpzIjsKaW1wb3J0IHsgRGV0YWlsZWRVc2VyLCBQYXRjaFVzZXJSZXF1ZXN0IH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgZ2V0Q3VycmVudExhbmd1YWdlLCBnZXRUcmFuc2xhdGlvbnMgfSBmcm9tICIuLi8uLi9pMThuLmpzIjsKaW1wb3J0IHsgSW5wdXRDb21wb25lbnQsIFNlbGVjdENvbXBvbmVudCB9IGZyb20gIi4uL2lucHV0LmpzIjsKaW1wb3J0IHsgY3JlYXRlU2VsZWN0Um9sZUlucHV0IH0gZnJvbSAiLi9yb2xlX3NlbGVjdC5qcyI7CmltcG9ydCB7IHRyeURlbGV0ZVVzZXIsIFVzZXJFdmVudExpc3RlbmVyIH0gZnJvbSAiLi9pbmRleC5qcyI7CmltcG9ydCB7IHNob3dOb3RpZmljYXRpb24gfSBmcm9tICIuLi9ub3RpZmljYXRpb24uanMiOwoKZXhwb3J0IGNsYXNzIERldGFpbGVkVXNlclBhZ2UgaW1wbGVtZW50cyBDb21wb25lbnQgewoKICAgIHByaXZhdGUgYXBpOiBBcGkKCiAgICBwcml2YXRlIGZvcm1Sb290ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZm9ybSIpCgogICAgcHJpdmF0ZSBpZAoKICAgIHByaXZhdGUgaWRFbGVtZW50OiBJbnB1dENvbXBvbmVudAogICAgcHJpdmF0ZSBuYW1lOiBJbnB1dENvbXBvbmVudAogICAgcHJpdmF0ZSBwYXNzd29yZDogSW5wdXRDb21wb25lbnQKICAgIHByaXZhdGUgcm9sZTogU2VsZWN0Q29tcG9uZW50CiAgICBwcml2YXRlIGNsaWVudFVuaXF1ZUlkOiBJbnB1dENvbXBvbmVudAoKICAgIHByaXZhdGUgYXBwbHlCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQogICAgcHJpdmF0ZSBkZWxldGVCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQoKICAgIGNvbnN0cnVjdG9yKGFwaTogQXBpLCB1c2VyOiBEZXRhaWxlZFVzZXIpIHsKICAgICAgICB0aGlzLmFwaSA9IGFwaQogICAgICAgIHRoaXMuaWQgPSB1c2VyLmlkCiAgICAgICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuYWRtaW4KCiAgICAgICAgdGhpcy5mb3JtUm9vdC5jbGFzc0xpc3QuYWRkKCJ1c2VyLWluZm8iKQoKICAgICAgICB0aGlzLmlkRWxlbWVudCA9IG5ldyBJbnB1dENvbXBvbmVudCgidXNlcklkIiwgIm51bWJlciIsIGkudXNlcklkLCB7CiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogYCR7dXNlci5pZH1gCiAgICAgICAgfSkKICAgICAgICB0aGlzLmlkRWxlbWVudC5zZXRFbmFibGVkKGZhbHNlKQogICAgICAgIHRoaXMuaWRFbGVtZW50Lm1vdW50KHRoaXMuZm9ybVJvb3QpCgogICAgICAgIHRoaXMubmFtZSA9IG5ldyBJbnB1dENvbXBvbmVudCgidXNlck5hbWUiLCAidGV4dCIsIGkudXNlck5hbWUsIHsKICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB1c2VyLm5hbWUsCiAgICAgICAgfSkKICAgICAgICB0aGlzLm5hbWUuc2V0RW5hYmxlZChmYWxzZSkKICAgICAgICB0aGlzLm5hbWUubW91bnQodGhpcy5mb3JtUm9vdCkKCiAgICAgICAgdGhpcy5wYXNzd29yZCA9IG5ldyBJbnB1dENvbXBvbmVudCgidXNlclBhc3N3b3JkIiwgInRleHQiLCBpLnBhc3N3b3JkLCB7CiAgICAgICAgICAgIHBsYWNlaG9sZXI6IGkubmV3UGFzc3dvcmQsCiAgICAgICAgICAgIGZvcm1SZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgICAgaGFzRW5hYmxlQ2hlY2tib3g6IHRydWUKICAgICAgICB9KQogICAgICAgIHRoaXMucGFzc3dvcmQuc2V0RW5hYmxlZChmYWxzZSkKICAgICAgICB0aGlzLnBhc3N3b3JkLm1vdW50KHRoaXMuZm9ybVJvb3QpCgogICAgICAgIHRoaXMucm9sZSA9IGNyZWF0ZVNlbGVjdFJvbGVJbnB1dChbXSwgdXNlci5yb2xlX2lkKQogICAgICAgIHRoaXMucm9sZS5tb3VudCh0aGlzLmZvcm1Sb290KQogICAgICAgIGFwaUdldFJvbGVzKGFwaSkudGhlbihyb2xlcyA9PiB7CiAgICAgICAgICAgIHRoaXMucm9sZS51bm1vdW50KHRoaXMuZm9ybVJvb3QpCgogICAgICAgICAgICB0aGlzLnJvbGUgPSBjcmVhdGVTZWxlY3RSb2xlSW5wdXQocm9sZXMucm9sZXMsIHVzZXIucm9sZV9pZCkKICAgICAgICAgICAgdGhpcy5yb2xlLm1vdW50QmVmb3JlKHRoaXMuZm9ybVJvb3QsIHRoaXMuY2xpZW50VW5pcXVlSWQpCiAgICAgICAgfSkKCiAgICAgICAgdGhpcy5jbGllbnRVbmlxdWVJZCA9IG5ldyBJbnB1dENvbXBvbmVudCgidXNlckNsaWVudFVuaXF1ZUlkIiwgInRleHQiLCBpLm1vb25saWdodENsaWVudElkLCB7CiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdXNlci5jbGllbnRfdW5pcXVlX2lkLAogICAgICAgIH0pCiAgICAgICAgdGhpcy5jbGllbnRVbmlxdWVJZC5tb3VudCh0aGlzLmZvcm1Sb290KQoKICAgICAgICB0aGlzLmFwcGx5QnV0dG9uLmlubmVyVGV4dCA9IGkuYXBwbHkKICAgICAgICB0aGlzLmFwcGx5QnV0dG9uLnR5cGUgPSAic3VibWl0IgogICAgICAgIHRoaXMuZm9ybVJvb3QuYXBwZW5kQ2hpbGQodGhpcy5hcHBseUJ1dHRvbikKCiAgICAgICAgdGhpcy5kZWxldGVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLmRlbGV0ZS5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMuZGVsZXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoInVzZXItaW5mby1kZWxldGUiKQogICAgICAgIHRoaXMuZGVsZXRlQnV0dG9uLmlubmVyVGV4dCA9IGkuZGVsZXRlCiAgICAgICAgdGhpcy5kZWxldGVCdXR0b24udHlwZSA9ICJidXR0b24iCiAgICAgICAgdGhpcy5mb3JtUm9vdC5hcHBlbmRDaGlsZCh0aGlzLmRlbGV0ZUJ1dHRvbikKCiAgICAgICAgdGhpcy5mb3JtUm9vdC5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLCB0aGlzLmFwcGx5LmJpbmQodGhpcykpCiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyBhcHBseShldmVudDogU3VibWl0RXZlbnQpIHsKICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgY29uc3QgaSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkuYWRtaW4KCiAgICAgICAgbGV0IHBhc3N3b3JkID0gbnVsbAogICAgICAgIGlmICh0aGlzLnBhc3N3b3JkLmlzRW5hYmxlZCgpKSB7CiAgICAgICAgICAgIHBhc3N3b3JkID0gdGhpcy5wYXNzd29yZC5nZXRWYWx1ZSgpCiAgICAgICAgfQoKICAgICAgICBjb25zdCByb2xlID0gdGhpcy5yb2xlLmdldFZhbHVlKCkKICAgICAgICBpZiAoIXJvbGUpIHsKICAgICAgICAgICAgc2hvd05vdGlmaWNhdGlvbihpLnBsZWFzZVNlbGVjdFJvbGUpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgY29uc3QgcmVxdWVzdDogUGF0Y2hVc2VyUmVxdWVzdCA9IHsKICAgICAgICAgICAgaWQ6IHRoaXMuaWQsCiAgICAgICAgICAgIHJvbGVfaWQ6IHBhcnNlSW50KHJvbGUpLAogICAgICAgICAgICBwYXNzd29yZCwKICAgICAgICAgICAgY2xpZW50X3VuaXF1ZV9pZDogdGhpcy5jbGllbnRVbmlxdWVJZC5nZXRWYWx1ZSgpCiAgICAgICAgfTsKCiAgICAgICAgYXdhaXQgYXBpUGF0Y2hVc2VyKHRoaXMuYXBpLCByZXF1ZXN0KQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgZGVsZXRlKCkgewogICAgICAgIGF3YWl0IHRyeURlbGV0ZVVzZXIodGhpcy5hcGksIHRoaXMuaWQpCgogICAgICAgIHRoaXMuZm9ybVJvb3QuZGlzcGF0Y2hFdmVudChuZXcgQ29tcG9uZW50RXZlbnQoIm1sLXVzZXJkZWxldGVkIiwgdGhpcykpCiAgICB9CgogICAgYWRkRGVsZXRlZExpc3RlbmVyKGxpc3RlbmVyOiBVc2VyRXZlbnRMaXN0ZW5lciwgb3B0aW9ucz86IEV2ZW50TGlzdGVuZXJPcHRpb25zKSB7CiAgICAgICAgdGhpcy5mb3JtUm9vdC5hZGRFdmVudExpc3RlbmVyKCJtbC11c2VyZGVsZXRlZCIsIGxpc3RlbmVyIGFzIGFueSwgb3B0aW9ucykKICAgIH0KICAgIHJlbW92ZURlbGV0ZWRMaXN0ZW5lcihsaXN0ZW5lcjogVXNlckV2ZW50TGlzdGVuZXIpIHsKICAgICAgICB0aGlzLmZvcm1Sb290LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1sLXVzZXJkZWxldGVkIiwgbGlzdGVuZXIgYXMgYW55KQogICAgfQoKICAgIGdldFVzZXJJZCgpOiBudW1iZXIgewogICAgICAgIHJldHVybiB0aGlzLmlkCiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmZvcm1Sb290KQogICAgfQogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMuZm9ybVJvb3QpCiAgICB9Cn0K"},{"path":"web/component/user/index.ts","sha256":"177d117c282dbbce94b22458ea54c0f94ff5d6b553ab0938b1e281cc497c52c8","contentBase64":"aW1wb3J0IHsgQXBpLCBhcGlEZWxldGVVc2VyLCBhcGlHZXRVc2VyIH0gZnJvbSAiLi4vLi4vYXBpLmpzIjsKaW1wb3J0IHsgRGV0YWlsZWRVc2VyIH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgZ2V0Q3VycmVudExhbmd1YWdlLCBnZXRUcmFuc2xhdGlvbnMgfSBmcm9tICIuLi8uLi9pMThuLmpzIjsKaW1wb3J0IHsgc2V0Q29udGV4dE1lbnUgfSBmcm9tICIuLi9jb250ZXh0X21lbnUuanMiOwppbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudEV2ZW50IH0gZnJvbSAiLi4vaW5kZXguanMiOwoKZXhwb3J0IHR5cGUgVXNlckV2ZW50TGlzdGVuZXIgPSAoZXZlbnQ6IENvbXBvbmVudEV2ZW50PFVzZXI+KSA9PiB2b2lkCgpleHBvcnQgYXN5bmMgZnVuY3Rpb24gdHJ5RGVsZXRlVXNlcihhcGk6IEFwaSwgaWQ6IG51bWJlcikgewogICAgYXdhaXQgYXBpRGVsZXRlVXNlcihhcGksIHsgaWQgfSkKfQoKZXhwb3J0IGNsYXNzIFVzZXIgaW1wbGVtZW50cyBDb21wb25lbnQgewoKICAgIHByaXZhdGUgYXBpOiBBcGkKCiAgICBwcml2YXRlIHVzZXI6IERldGFpbGVkVXNlciB8IHsgaWQ6IG51bWJlciB9CgogICAgcHJpdmF0ZSBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQogICAgcHJpdmF0ZSBuYW1lRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKQoKICAgIGNvbnN0cnVjdG9yKGFwaTogQXBpLCB1c2VyOiBEZXRhaWxlZFVzZXIgfCB7IGlkOiBudW1iZXIgfSkgewogICAgICAgIHRoaXMuYXBpID0gYXBpCgogICAgICAgIHRoaXMuZGl2LmFwcGVuZENoaWxkKHRoaXMubmFtZUVsZW1lbnQpCiAgICAgICAgdGhpcy5kaXYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLm9uQ2xpY2suYmluZCh0aGlzKSkKICAgICAgICB0aGlzLmRpdi5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMub25Db250ZXh0TWVudS5iaW5kKHRoaXMpKQoKICAgICAgICB0aGlzLnVzZXIgPSB1c2VyCiAgICAgICAgaWYgKCJuYW1lIiBpbiB1c2VyKSB7CiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUodXNlcikKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmZvcmNlRmV0Y2goKQogICAgICAgIH0KICAgIH0KCiAgICBhc3luYyBmb3JjZUZldGNoKCkgewogICAgICAgIGNvbnN0IHVzZXIgPSBhd2FpdCBhcGlHZXRVc2VyKHRoaXMuYXBpLCB7CiAgICAgICAgICAgIG5hbWU6IG51bGwsCiAgICAgICAgICAgIHVzZXJfaWQ6IHRoaXMudXNlci5pZCwKICAgICAgICB9KQoKICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKHVzZXIpCiAgICB9CiAgICB1cGRhdGVDYWNoZSh1c2VyOiBEZXRhaWxlZFVzZXIpIHsKICAgICAgICB0aGlzLnVzZXIgPSB1c2VyCgogICAgICAgIHRoaXMubmFtZUVsZW1lbnQuaW5uZXJUZXh0ID0gdXNlci5uYW1lCiAgICB9CgogICAgcHJpdmF0ZSBvbkNsaWNrKCkgewogICAgICAgIHRoaXMuZGl2LmRpc3BhdGNoRXZlbnQobmV3IENvbXBvbmVudEV2ZW50KCJtbC11c2VyY2xpY2tlZCIsIHRoaXMpKQogICAgfQoKICAgIHByaXZhdGUgb25Db250ZXh0TWVudShldmVudDogTW91c2VFdmVudCkgewogICAgICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmFkbWluCiAgICAgICAgc2V0Q29udGV4dE1lbnUoZXZlbnQsIHsKICAgICAgICAgICAgZWxlbWVudHM6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBuYW1lOiBpLmRlbGV0ZSwKICAgICAgICAgICAgICAgICAgICBjYWxsYmFjazogdGhpcy5vbkRlbGV0ZS5iaW5kKHRoaXMpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICB9KQogICAgfQoKICAgIGFkZENsaWNrZWRMaXN0ZW5lcihsaXN0ZW5lcjogVXNlckV2ZW50TGlzdGVuZXIsIG9wdGlvbnM/OiBFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgICAgIHRoaXMuZGl2LmFkZEV2ZW50TGlzdGVuZXIoIm1sLXVzZXJjbGlja2VkIiwgbGlzdGVuZXIgYXMgYW55LCBvcHRpb25zKQogICAgfQogICAgcmVtb3ZlQ2xpY2tlZExpc3RlbmVyKGxpc3RlbmVyOiBVc2VyRXZlbnRMaXN0ZW5lcikgewogICAgICAgIHRoaXMuZGl2LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1sLXVzZXJjbGlja2VkIiwgbGlzdGVuZXIgYXMgYW55KQogICAgfQoKICAgIHByaXZhdGUgb25EZWxldGUoKSB7CiAgICAgICAgdHJ5RGVsZXRlVXNlcih0aGlzLmFwaSwgdGhpcy51c2VyLmlkKQoKICAgICAgICB0aGlzLmRpdi5kaXNwYXRjaEV2ZW50KG5ldyBDb21wb25lbnRFdmVudCgibWwtdXNlcmRlbGV0ZWQiLCB0aGlzKSkKICAgIH0KCiAgICBhZGREZWxldGVkTGlzdGVuZXIobGlzdGVuZXI6IFVzZXJFdmVudExpc3RlbmVyLCBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmRpdi5hZGRFdmVudExpc3RlbmVyKCJtbC11c2VyZGVsZXRlZCIsIGxpc3RlbmVyIGFzIGFueSwgb3B0aW9ucykKICAgIH0KICAgIHJlbW92ZURlbGV0ZWRMaXN0ZW5lcihsaXN0ZW5lcjogVXNlckV2ZW50TGlzdGVuZXIpIHsKICAgICAgICB0aGlzLmRpdi5yZW1vdmVFdmVudExpc3RlbmVyKCJtbC11c2VyZGVsZXRlZCIsIGxpc3RlbmVyIGFzIGFueSkKICAgIH0KCiAgICBnZXRDYWNoZSgpOiBEZXRhaWxlZFVzZXIgfCBudWxsIHsKICAgICAgICBpZiAoIm5hbWUiIGluIHRoaXMudXNlcikgewogICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICB9CiAgICB9CgogICAgZ2V0VXNlcklkKCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIHRoaXMudXNlci5pZAogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5kaXYpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5kaXYpCiAgICB9Cn0K"},{"path":"web/component/user/list.ts","sha256":"32caeafffe2471602517b292b2bba1a54cda002b7919809b04349d7ab47eef38","contentBase64":"aW1wb3J0IHsgVXNlciwgVXNlckV2ZW50TGlzdGVuZXIgfSBmcm9tICIuL2luZGV4LmpzIjsKaW1wb3J0IHsgRGV0YWlsZWRVc2VyIH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgRmV0Y2hMaXN0Q29tcG9uZW50IH0gZnJvbSAiLi4vZmV0Y2hfbGlzdC5qcyI7CmltcG9ydCB7IEFwaSwgYXBpR2V0VXNlcnMgfSBmcm9tICIuLi8uLi9hcGkuanMiOwppbXBvcnQgeyBDb21wb25lbnRFdmVudCB9IGZyb20gIi4uL2luZGV4LmpzIjsKCmV4cG9ydCBjbGFzcyBVc2VyTGlzdCBleHRlbmRzIEZldGNoTGlzdENvbXBvbmVudDxEZXRhaWxlZFVzZXIsIFVzZXI+IHsKICAgIHByaXZhdGUgYXBpOiBBcGkKCiAgICBwcml2YXRlIGV2ZW50VGFyZ2V0ID0gbmV3IEV2ZW50VGFyZ2V0KCkKCiAgICBjb25zdHJ1Y3RvcihhcGk6IEFwaSkgewogICAgICAgIHN1cGVyKHsKICAgICAgICAgICAgbGlzdENsYXNzZXM6IFsidXNlci1saXN0Il0sCiAgICAgICAgICAgIGVsZW1lbnRMaUNsYXNzZXM6IFsidXNlci1lbGVtZW50Il0KICAgICAgICB9KQoKICAgICAgICB0aGlzLmFwaSA9IGFwaQogICAgfQoKICAgIGFzeW5jIGZvcmNlRmV0Y2goKTogUHJvbWlzZTx2b2lkPiB7CiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBhcGlHZXRVc2Vycyh0aGlzLmFwaSkKCiAgICAgICAgdGhpcy51cGRhdGVDYWNoZShyZXNwb25zZS51c2VycykKICAgIH0KCiAgICBwdWJsaWMgaW5zZXJ0TGlzdChkYXRhSWQ6IG51bWJlciwgZGF0YTogRGV0YWlsZWRVc2VyKTogdm9pZCB7CiAgICAgICAgY29uc3QgbmV3VXNlciA9IG5ldyBVc2VyKHRoaXMuYXBpLCBkYXRhKQoKICAgICAgICB0aGlzLmxpc3QuYXBwZW5kKG5ld1VzZXIpCgogICAgICAgIG5ld1VzZXIuYWRkQ2xpY2tlZExpc3RlbmVyKHRoaXMub25Vc2VyQ2xpY2tlZC5iaW5kKHRoaXMpKQogICAgICAgIG5ld1VzZXIuYWRkRGVsZXRlZExpc3RlbmVyKHRoaXMub25Vc2VyRGVsZXRlZC5iaW5kKHRoaXMpKQogICAgfQogICAgcHJvdGVjdGVkIHJlbW92ZUxpc3QobGlzdEluZGV4OiBudW1iZXIpOiB2b2lkIHsKCiAgICAgICAgY29uc3QgdXNlckNvbXBvbmVudCA9IHRoaXMubGlzdC5yZW1vdmUobGlzdEluZGV4KQoKICAgICAgICB1c2VyQ29tcG9uZW50Py5yZW1vdmVDbGlja2VkTGlzdGVuZXIodGhpcy5vblVzZXJDbGlja2VkLmJpbmQodGhpcykpCiAgICAgICAgdXNlckNvbXBvbmVudD8ucmVtb3ZlRGVsZXRlZExpc3RlbmVyKHRoaXMub25Vc2VyRGVsZXRlZC5iaW5kKHRoaXMpKQogICAgfQoKICAgIHNldEZpbHRlcihmaWx0ZXI6IHN0cmluZykgewogICAgICAgIHRoaXMubGlzdC5zZXRGaWx0ZXIoKHVzZXIpID0+CiAgICAgICAgICAgIHVzZXIuZ2V0Q2FjaGUoKT8ubmFtZS5pbmNsdWRlcyhmaWx0ZXIpID8/IGZhbHNlCiAgICAgICAgKQogICAgfQoKICAgIHJlbW92ZVVzZXIoaWQ6IG51bWJlcikgewogICAgICAgIGNvbnN0IGNvbXBvbmVudEluZGV4ID0gdGhpcy5saXN0LmdldCgpLmZpbmRJbmRleCh1c2VyID0+IHVzZXIuZ2V0VXNlcklkKCkgPT0gaWQpCiAgICAgICAgaWYgKGNvbXBvbmVudEluZGV4ICE9IC0xKSB7CiAgICAgICAgICAgIHRoaXMubGlzdC5yZW1vdmUoY29tcG9uZW50SW5kZXgpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgb25Vc2VyQ2xpY2tlZChldmVudDogQ29tcG9uZW50RXZlbnQ8VXNlcj4pIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IENvbXBvbmVudEV2ZW50KCJtbC11c2VyY2xpY2tlZCIsIGV2ZW50LmNvbXBvbmVudCkpCiAgICB9CgogICAgYWRkVXNlckNsaWNrZWRMaXN0ZW5lcihsaXN0ZW5lcjogVXNlckV2ZW50TGlzdGVuZXIsIG9wdGlvbnM/OiBFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibWwtdXNlcmNsaWNrZWQiLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zKQogICAgfQogICAgcmVtb3ZlVXNlckNsaWNrZWRMaXN0ZW5lcihsaXN0ZW5lcjogVXNlckV2ZW50TGlzdGVuZXIsIG9wdGlvbnM/OiBFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWwtdXNlcmNsaWNrZWQiLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0LCBvcHRpb25zKQogICAgfQoKICAgIHByaXZhdGUgb25Vc2VyRGVsZXRlZChldmVudDogQ29tcG9uZW50RXZlbnQ8VXNlcj4pIHsKICAgICAgICAvLyBSZW1vdmUgZnJvbSBvdXIgbGlzdAogICAgICAgIHRoaXMubGlzdC5yZW1vdmVWYWx1ZShldmVudC5jb21wb25lbnQpCgogICAgICAgIC8vIENhbGwgb3RoZXIgbGlzdGVuZXJzCiAgICAgICAgdGhpcy5ldmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KG5ldyBDb21wb25lbnRFdmVudCgibWwtdXNlcmRlbGV0ZWQiLCBldmVudC5jb21wb25lbnQpKQogICAgfQoKICAgIGFkZFVzZXJEZWxldGVkTGlzdGVuZXIobGlzdGVuZXI6IFVzZXJFdmVudExpc3RlbmVyLCBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1sLXVzZXJkZWxldGVkIiwgbGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCwgb3B0aW9ucykKICAgIH0KICAgIHJlbW92ZVVzZXJEZWxldGVkTGlzdGVuZXIobGlzdGVuZXI6IFVzZXJFdmVudExpc3RlbmVyLCBvcHRpb25zPzogRXZlbnRMaXN0ZW5lck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1sLXVzZXJkZWxldGVkIiwgbGlzdGVuZXIgYXMgRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCwgb3B0aW9ucykKICAgIH0KCiAgICBwcm90ZWN0ZWQgdXBkYXRlQ29tcG9uZW50RGF0YShjb21wb25lbnQ6IFVzZXIsIGRhdGE6IERldGFpbGVkVXNlcik6IHZvaWQgewogICAgICAgIGNvbXBvbmVudC51cGRhdGVDYWNoZShkYXRhKQogICAgfQoKICAgIHByb3RlY3RlZCBnZXREYXRhSWQoZGF0YTogRGV0YWlsZWRVc2VyKTogbnVtYmVyIHsKICAgICAgICByZXR1cm4gZGF0YS5pZAogICAgfQogICAgcHJvdGVjdGVkIGdldENvbXBvbmVudERhdGFJZChjb21wb25lbnQ6IFVzZXIpOiBudW1iZXIgewogICAgICAgIHJldHVybiBjb21wb25lbnQuZ2V0VXNlcklkKCkKICAgIH0KfQ=="},{"path":"web/component/user/role_select.ts","sha256":"f9ba622ab6d9bdd388ac032713c7795d1484f6639a3c9e9a6fd0f2016e455072","contentBase64":"aW1wb3J0IHsgVW5kZXRhaWxlZFJvbGUgfSBmcm9tICIuLi8uLi9hcGlfYmluZGluZ3MuanMiOwppbXBvcnQgeyBnZXRDdXJyZW50TGFuZ3VhZ2UsIGdldFRyYW5zbGF0aW9ucyB9IGZyb20gIi4uLy4uL2kxOG4uanMiOwppbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICIuLi9pbnB1dC5qcyI7CmltcG9ydCB7IGZvcm1hdFJvbGVOYW1lIH0gZnJvbSAiLi4vcm9sZXMvaW5kZXguanMiOwoKZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNlbGVjdFJvbGVJbnB1dChyb2xlczogQXJyYXk8VW5kZXRhaWxlZFJvbGU+LCBwcmVzZWxlY3RlZElkPzogbnVtYmVyKTogU2VsZWN0Q29tcG9uZW50IHsKICAgIGNvbnN0IGkgPSBnZXRUcmFuc2xhdGlvbnMoZ2V0Q3VycmVudExhbmd1YWdlKCkpLmFkbWluCiAgICBsZXQgZGVmYXVsdFJvbGUgPSBudWxsCiAgICAvLyBUcnkgdG8gZmluZCB0aGUgcHJlc2VsZWN0ZWQgb3B0aW9uCiAgICBmb3IgKGNvbnN0IHJvbGUgb2Ygcm9sZXMpIHsKICAgICAgICBpZiAocm9sZS5pZCA9PSBwcmVzZWxlY3RlZElkKSB7CiAgICAgICAgICAgIGRlZmF1bHRSb2xlID0gcm9sZQogICAgICAgICAgICBicmVhawogICAgICAgIH0KICAgIH0KCiAgICAvLyBUaGUgZGVmYXVsdCBzaG91bGQgYmUgdGhlIHVzZXIgcm9sZSwgaWYgbm8gcHJlc2VsZWN0ZWQgd2FzIGZvdW5kCiAgICBpZiAoIWRlZmF1bHRSb2xlKSB7CiAgICAgICAgZm9yIChjb25zdCByb2xlIG9mIHJvbGVzKSB7CiAgICAgICAgICAgIGlmIChyb2xlLm5hbWUgPT0gIlVzZXIiKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0Um9sZSA9IHJvbGUKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8gU3RpbGwgbm8gaGl0IGZvciB0aGUgcm9sZSAtPiBqdXN0IHVzZSB0aGUgbGFzdCByb2xlICh0aGUgZmlyc3QgaXMgbGlrZWx5IHRoZSBhZG1pbikKICAgIGlmICghZGVmYXVsdFJvbGUpIHsKICAgICAgICBkZWZhdWx0Um9sZSA9IHJvbGVzW3JvbGVzLmxlbmd0aCAtIDFdCiAgICB9CgogICAgcmV0dXJuIG5ldyBTZWxlY3RDb21wb25lbnQoCiAgICAgICAgInJvbGUiLAogICAgICAgIHJvbGVzLm1hcChyb2xlID0+IHsKICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IGAke3JvbGUuaWR9YCwgbmFtZTogZm9ybWF0Um9sZU5hbWUocm9sZSkgfQogICAgICAgIH0pLAogICAgICAgIHsKICAgICAgICAgICAgZGlzcGxheU5hbWU6IGkucm9sZSwKICAgICAgICAgICAgcHJlU2VsZWN0ZWRPcHRpb246IGRlZmF1bHRSb2xlICYmIGAke2RlZmF1bHRSb2xlLmlkfWAKICAgICAgICB9CiAgICApCn0K"},{"path":"web/config.d.ts","sha256":"6019c215cb2e85ecf19ba903ab43a4912e8b30945c7f30fd9e6f2da9be011122","contentBase64":"aW1wb3J0IHsgQ29uZmlnSnMgfSBmcm9tICIuL2FwaV9iaW5kaW5ncyIKCmRlY2xhcmUgY29uc3QgQ09ORklHOiBDb25maWdKcyB8IHVuZGVmaW5lZAoKZXhwb3J0IGRlZmF1bHQgQ09ORklH"},{"path":"web/config_.ts","sha256":"b8384cac60e678c952f71d66e3ecda8a9fb05b1d404944399c96120d02b1f79f","contentBase64":"aW1wb3J0IENPTkZJRyBmcm9tICIuL2NvbmZpZy5qcyIKCmV4cG9ydCBmdW5jdGlvbiBidWlsZFVybChwYXRoOiBzdHJpbmcpOiBzdHJpbmcgewogICAgcmV0dXJuIGAke3dpbmRvdy5sb2NhdGlvbi5vcmlnaW59JHtDT05GSUc/LnBhdGhfcHJlZml4ID8/ICIifSR7cGF0aH1gCn0="},{"path":"web/default_settings.ts","sha256":"4d6639e99eb1a9b59ac8628be17ebf34a5c82b6faa412f4b115c55d2e2509b54","contentBase64":"aW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tICIuL2NvbXBvbmVudC9zZXR0aW5nc19tZW51LmpzIgppbXBvcnQgQ09ORklHIGZyb20gIi4vY29uZmlnLmpzIgoKY29uc3QgdHJ1ZURlZmF1bHRTZXR0aW5nczogU2V0dGluZ3MgPQoKLy8gV2hlbiB1cGRhdGVkLCB1cGRhdGUgdGhlIFJFQURNRQp7CiAgICAvLyBwb3NzaWJsZSB2YWx1ZXM6ICJsZWZ0IiwgInJpZ2h0IiwgInVwIiwgImRvd24iCiAgICAic2lkZWJhckVkZ2UiOiAibGVmdCIsCiAgICAiYml0cmF0ZSI6IDEwMDAwLAogICAgImZwcyI6IDYwLAogICAgInZpZGVvRnJhbWVRdWV1ZVNpemUiOiAzLAogICAgLy8gcG9zc2libGUgdmFsdWVzOiAiNzIwcCIsICIxMDgwcCIsICIxNDQwcCIsICI0ayIsICJuYXRpdmUiLCAiY3VzdG9tIgogICAgInZpZGVvU2l6ZSI6ICJjdXN0b20iLAogICAgLy8gb25seSB3b3JrcyBpZiB2aWRlb1NpemU9Y3VzdG9tCiAgICAidmlkZW9TaXplQ3VzdG9tIjogewogICAgICAgICJ3aWR0aCI6IDE5MjAsCiAgICAgICAgImhlaWdodCI6IDEwODAKICAgIH0sCiAgICAvLyBwb3NzaWJsZSB2YWx1ZXM6ICJoMjY0IiwgImgyNjUiLCAiYXYxIiwgImF1dG8iCiAgICAidmlkZW9Db2RlYyI6ICJoMjY0IiwKICAgICJmb3JjZVZpZGVvRWxlbWVudFJlbmRlcmVyIjogZmFsc2UsCiAgICAiY2FudmFzUmVuZGVyZXIiOiBmYWxzZSwKICAgIC8vIENhbnZhcyBvbmx5OiB3aGVuIHRydWUsIGRyYXcgb25seSBvbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgKHN0YWJsZSwgbWF5IGFkZCB+MOKAkzE3IG1zKS4gV2hlbiBmYWxzZSwgZHJhdyBvbiBmcmFtZSBzdWJtaXQgKGxvdyBsYXRlbmN5KS4KICAgICJjYW52YXNWc3luYyI6IGZhbHNlLAogICAgInBsYXlBdWRpb0xvY2FsIjogZmFsc2UsCiAgICAiYXVkaW9TYW1wbGVRdWV1ZVNpemUiOiAyMCwKICAgIC8vIHBvc3NpYmxlIHZhbHVlczogImhpZ2hyZXMiLCAibm9ybWFsIgogICAgIm1vdXNlU2Nyb2xsTW9kZSI6ICJoaWdocmVzIiwKICAgIC8vIHBvc3NpYmxlIHZhbHVlczogInJlbGF0aXZlIiwgImZvbGxvdyIsICJwb2ludEFuZERyYWciCiAgICAibW91c2VNb2RlIjogImZvbGxvdyIsCiAgICAvLyBwb3NzaWJsZSB2YWx1ZXM6ICJ0b3VjaCIsICJtb3VzZVJlbGF0aXZlIiwgImxvY2FsQ3Vyc29yIiwgInBvaW50QW5kRHJhZyIKICAgICJ0b3VjaE1vZGUiOiAibW91c2VSZWxhdGl2ZSIsCiAgICAibG9jYWxDdXJzb3JTZW5zaXRpdml0eSI6IDEsCiAgICAiY29udHJvbGxlckNvbmZpZyI6IHsKICAgICAgICAiaW52ZXJ0QUIiOiBmYWxzZSwKICAgICAgICAiaW52ZXJ0WFkiOiBmYWxzZSwKICAgICAgICAvLyBwb3NzaWJsZSB2YWx1ZXM6IG51bGwgb3IgYSBudW1iZXIsIGV4YW1wbGU6IDYwLCAxMjAKICAgICAgICAic2VuZEludGVydmFsT3ZlcnJpZGUiOiBudWxsCiAgICB9LAogICAgLy8gcG9zc2libGUgdmFsdWVzOiAiYXV0byIsICJ3ZWJydGMiLCAid2Vic29ja2V0IgogICAgImRhdGFUcmFuc3BvcnQiOiAiYXV0byIsCiAgICAibGFuZ3VhZ2UiOiAiZW4iLAogICAgImVudGVyRnVsbHNjcmVlbk9uU3RyZWFtU3RhcnQiOiBmYWxzZSwKICAgICJ0b2dnbGVGdWxsc2NyZWVuV2l0aEtleWJpbmQiOiBmYWxzZSwKICAgIC8vIHBvc3NpYmxlIHZhbHVlczogInN0YW5kYXJkIiwgIm9sZCIKICAgICJwYWdlU3R5bGUiOiAic3RhbmRhcmQiLAogICAgImhkciI6IGZhbHNlLAogICAgInVzZVNlbGVjdEVsZW1lbnRQb2x5ZmlsbCI6IGZhbHNlCn0KCmV4cG9ydCBkZWZhdWx0IHRydWVEZWZhdWx0U2V0dGluZ3MgYXMgU2V0dGluZ3MK"},{"path":"web/experimental_apis.d.ts","sha256":"3de53480fd6b4f1613049a0db53c0fd07e10b634df2b31b23ae1a5370240b7c1","contentBase64":"ZGVjbGFyZSBnbG9iYWwgewogICAgaW50ZXJmYWNlIE5hdmlnYXRvciB7CiAgICAgICAgLy8gS2V5Ym9hcmQgTG9jazogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkL2xvY2sKICAgICAgICBrZXlib2FyZDogewogICAgICAgICAgICBsb2NrKCk6IFByb21pc2U8dm9pZD47CiAgICAgICAgICAgIHVubG9jaygpOiB2b2lkOwogICAgICAgIH07CiAgICB9CgogICAgLy8gTWVkaWFTdHJlYW1UcmFja1Byb2Nlc3NvcjogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL01lZGlhU3RyZWFtVHJhY2tQcm9jZXNzb3IKICAgIGludGVyZmFjZSBNZWRpYVN0cmVhbVRyYWNrUHJvY2Vzc29yIHsKICAgICAgICByZWFkb25seSByZWFkYWJsZTogUmVhZGFibGVTdHJlYW08VmlkZW9GcmFtZT4KICAgIH0KCiAgICB2YXIgTWVkaWFTdHJlYW1UcmFja1Byb2Nlc3NvcjogewogICAgICAgIHByb3RvdHlwZTogTWVkaWFTdHJlYW1UcmFja1Byb2Nlc3NvcgogICAgICAgIG5ldyhvcHRpb25zOiB7IHRyYWNrOiBNZWRpYVN0cmVhbVRyYWNrLCBtYXhCdWZmZXJTaXplPzogbnVtYmVyIH0pOiBNZWRpYVN0cmVhbVRyYWNrUHJvY2Vzc29yCiAgICAgICAgbmV3KCk6IE1lZGlhU3RyZWFtVHJhY2tQcm9jZXNzb3IKICAgIH0KCiAgICAvLyBNZWRpYVN0cmVhbVRyYWNrR2VuZXJhdG9yOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvcgogICAgaW50ZXJmYWNlIE1lZGlhU3RyZWFtVHJhY2tHZW5lcmF0b3IgZXh0ZW5kcyBNZWRpYVN0cmVhbVRyYWNrIHsKICAgICAgICByZWFkb25seSB3cml0YWJsZTogV3JpdGFibGVTdHJlYW08VmlkZW9GcmFtZSB8IEF1ZGlvRGF0YT4KICAgIH0KCiAgICB2YXIgTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvcjogewogICAgICAgIHByb3RvdHlwZTogTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvcgogICAgICAgIG5ldyhvcHRpb25zOiB7IGtpbmQ6ICJhdWRpbyIgfCAidmlkZW8iIH0pOiBNZWRpYVN0cmVhbVRyYWNrR2VuZXJhdG9yCiAgICB9CgogICAgLy8gVmlkZW9UcmFja0dlbmVyYXRvcjogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1ZpZGVvVHJhY2tHZW5lcmF0b3IKICAgIGludGVyZmFjZSBWaWRlb1RyYWNrR2VuZXJhdG9yIHsKICAgICAgICByZWFkb25seSBtdXRlZDogYm9vbGVhbgogICAgICAgIHJlYWRvbmx5IHRyYWNrOiBNZWRpYVN0cmVhbVRyYWNrCiAgICAgICAgcmVhZG9ubHkgd3JpdGFibGU6IFdyaXRhYmxlU3RyZWFtPFZpZGVvRnJhbWU+CiAgICB9CgogICAgdmFyIFZpZGVvVHJhY2tHZW5lcmF0b3I6IHsKICAgICAgICBwcm90b3R5cGU6IFZpZGVvVHJhY2tHZW5lcmF0b3IKICAgICAgICBuZXcoKTogVmlkZW9UcmFja0dlbmVyYXRvcgogICAgfQp9CgoKZXhwb3J0IHsgfTs="},{"path":"web/i18n.ts","sha256":"f7174e25d36352e11c940e5a10fa15b3f6af0e54a9978735c9a684052ffaf407","contentBase64":"aW1wb3J0IHsgZW4sIHR5cGUgVHJhbnNsYXRpb25zIH0gZnJvbSAiLi9sb2NhbGVzL2VuLmpzIgppbXBvcnQgeyB6aENOIH0gZnJvbSAiLi9sb2NhbGVzL3poLUNOLmpzIgppbXBvcnQgeyBwdEJSIH0gZnJvbSAiLi9sb2NhbGVzL3B0LUJSLmpzIgppbXBvcnQgeyBmckZyIH0gZnJvbSAiLi9sb2NhbGVzL2ZyLUZSLmpzIgppbXBvcnQgeyBrb0tSIH0gZnJvbSAiLi9sb2NhbGVzL2tvLUtSLmpzIgoKZXhwb3J0IHR5cGUgTGFuZ3VhZ2UgPSAiZW4iIHwgInpoLUNOIiB8ICJwdC1CUiIgfCAiZnItRlIiIHwgImtvLUtSIgoKLy8gVHJhbnNsYXRpb25zIGlzIGRlZmluZWQgaW4gbG9jYWxlcy9lbi50cyAodGhlIGNhbm9uaWNhbCBsb2NhbGUpLgovLyBBZGRpbmcgYSBuZXcgbG9jYWxlIHJlcXVpcmVzOiAoMSkgY3JlYXRlIHdlYi9sb2NhbGVzLzxjb2RlPi50cyBpbXBsZW1lbnRpbmcKLy8gVHJhbnNsYXRpb25zLCAoMikgYWRkIGl0IHRvIHRoZSBMYW5ndWFnZSB1bmlvbiBhbmQgdGhlIGxvY2FsZXMgbWFwIGJlbG93LgpleHBvcnQgdHlwZSB7IFRyYW5zbGF0aW9ucyB9Cgpjb25zdCBsb2NhbGVzOiBSZWNvcmQ8TGFuZ3VhZ2UsIFRyYW5zbGF0aW9ucz4gPSB7CiAgICAiZW4iOiBlbiwKICAgICJ6aC1DTiI6IHpoQ04sCiAgICAicHQtQlIiOiBwdEJSLAogICAgImZyLUZSIjogZnJGciwKICAgICJrby1LUiI6IGtvS1IsCn0KCmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2xhdGlvbnMobGFuZ3VhZ2U6IExhbmd1YWdlKTogVHJhbnNsYXRpb25zIHsKICAgIHJldHVybiBsb2NhbGVzW2xhbmd1YWdlXQp9CgpleHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplTGFuZ3VhZ2UobGFuZ3VhZ2U6IHVua25vd24pOiBMYW5ndWFnZSB7CiAgICBpZiAobGFuZ3VhZ2UgPT09ICJ6aCIgfHwgbGFuZ3VhZ2UgPT09ICJ6aC1DTiIgfHwgbGFuZ3VhZ2UgPT09ICJ6aF9DTiIpIHsKICAgICAgICByZXR1cm4gInpoLUNOIgogICAgfQogICAgaWYgKGxhbmd1YWdlID09PSAicHQiIHx8IGxhbmd1YWdlID09PSAicHQtQlIiIHx8IGxhbmd1YWdlID09PSAicHRfQlIiKSB7CiAgICAgICAgcmV0dXJuICJwdC1CUiIKICAgIH0KICAgIGlmIChsYW5ndWFnZSA9PT0gImtvIiB8fCBsYW5ndWFnZSA9PT0gImtvLUtSIiB8fCBsYW5ndWFnZSA9PT0gImtvX0tSIikgewogICAgICAgIHJldHVybiAia28tS1IiCiAgICB9CiAgICByZXR1cm4gImVuIgp9CgpmdW5jdGlvbiBnZXRTdG9yZWRTZXR0aW5ncygpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB8IG51bGwgewogICAgdHJ5IHsKICAgICAgICBjb25zdCByYXcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgibWxTZXR0aW5ncyIpCiAgICAgICAgcmV0dXJuIHJhdyA/IEpTT04ucGFyc2UocmF3KSA6IG51bGwKICAgIH0gY2F0Y2ggewogICAgICAgIHJldHVybiBudWxsCiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW50TGFuZ3VhZ2UoKTogTGFuZ3VhZ2UgewogICAgcmV0dXJuIG5vcm1hbGl6ZUxhbmd1YWdlKGdldFN0b3JlZFNldHRpbmdzKCk/Lmxhbmd1YWdlKQp9CgpleHBvcnQgZnVuY3Rpb24gaGFzU3RvcmVkTGFuZ3VhZ2UoKTogYm9vbGVhbiB7CiAgICByZXR1cm4gZ2V0U3RvcmVkU2V0dGluZ3MoKT8ubGFuZ3VhZ2UgIT0gbnVsbAp9CgpleHBvcnQgZnVuY3Rpb24gYWRvcHRSb2xlRGVmYXVsdExhbmd1YWdlKHJvbGVEZWZhdWx0U2V0dGluZ3M6IHsgbGFuZ3VhZ2U/OiB1bmtub3duIH0gfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7CiAgICBpZiAoaGFzU3RvcmVkTGFuZ3VhZ2UoKSkgewogICAgICAgIHJldHVybiBmYWxzZQogICAgfQoKICAgIGNvbnN0IHJvbGVMYW5ndWFnZSA9IG5vcm1hbGl6ZUxhbmd1YWdlKHJvbGVEZWZhdWx0U2V0dGluZ3M/Lmxhbmd1YWdlKQogICAgaWYgKHJvbGVMYW5ndWFnZSA9PT0gZ2V0Q3VycmVudExhbmd1YWdlKCkpIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgIH0KCiAgICB0cnkgewogICAgICAgIGNvbnN0IHNldHRpbmdzID0gZ2V0U3RvcmVkU2V0dGluZ3MoKSA/PyB7fQogICAgICAgIHNldHRpbmdzLmxhbmd1YWdlID0gcm9sZUxhbmd1YWdlCiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oIm1sU2V0dGluZ3MiLCBKU09OLnN0cmluZ2lmeShzZXR0aW5ncykpCiAgICAgICAgcmV0dXJuIHRydWUKICAgIH0gY2F0Y2ggewogICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJtbFNldHRpbmdzIiwgSlNPTi5zdHJpbmdpZnkoeyBsYW5ndWFnZTogcm9sZUxhbmd1YWdlIH0pKQogICAgICAgIHJldHVybiB0cnVlCiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZU9wdGlvbnMoKTogQXJyYXk8eyB2YWx1ZTogTGFuZ3VhZ2UsIG5hbWU6IHN0cmluZyB9PiB7CiAgICByZXR1cm4gWwogICAgICAgIHsgdmFsdWU6ICJlbiIsIG5hbWU6ICJFbmdsaXNoIiB9LAogICAgICAgIHsgdmFsdWU6ICJ6aC1DTiIsIG5hbWU6ICLkuK3mlociIH0sCiAgICAgICAgeyB2YWx1ZTogInB0LUJSIiwgbmFtZTogIlBvcnR1Z3XDqnMgKEJyYXNpbCkiIH0sCiAgICAgICAgeyB2YWx1ZTogImZyLUZSIiwgbmFtZTogIkZyYW7Dp2FpcyIgfSwKICAgICAgICB7IHZhbHVlOiAia28tS1IiLCBuYW1lOiAi7ZWc6rWt7Ja0IiB9LAogICAgXQp9Cg=="},{"path":"web/iframe.ts","sha256":"c20317b3f0fa496679f5e427a95e048a28cd2edf54efce51962d087f4d3e59cc","contentBase64":"CmV4cG9ydCBmdW5jdGlvbiByZXF1ZXN0S2V5Ym9hcmRMb2NrKGtleXM/OiBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4gewogICAgY29uc3QgdG9wV2luZG93ID0gd2luZG93LnRvcDsKICAgIGxldCBsb2NrZXJGdW5jOiAoKGtleXM/OiBzdHJpbmdbXSkgPT4gUHJvbWlzZTx2b2lkPikgfCB1bmRlZmluZWQ7CgogICAgaWYgKHdpbmRvdy5zZWxmID09PSB0b3BXaW5kb3cpIHsKICAgICAgICBpZiAobmF2aWdhdG9yLmtleWJvYXJkPy5sb2NrKSB7CiAgICAgICAgICAgIGxvY2tlckZ1bmMgPSBuYXZpZ2F0b3Iua2V5Ym9hcmQubG9jay5iaW5kKG5hdmlnYXRvci5rZXlib2FyZCk7CiAgICAgICAgfQogICAgfSBlbHNlIGlmICh0b3BXaW5kb3cpIHsKICAgICAgICBsZXQgc2FtZU9yaWdpbiA9IGZhbHNlOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHNhbWVPcmlnaW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luID09PSB0b3BXaW5kb3cubG9jYXRpb24ub3JpZ2luOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgc2FtZU9yaWdpbiA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgaWYgKHNhbWVPcmlnaW4pIHsKICAgICAgICAgICAgaWYgKHRvcFdpbmRvdy5uYXZpZ2F0b3Iua2V5Ym9hcmQ/LmxvY2spIHsKICAgICAgICAgICAgICAgIGxvY2tlckZ1bmMgPSB0b3BXaW5kb3cubmF2aWdhdG9yLmtleWJvYXJkLmxvY2suYmluZCh0b3BXaW5kb3cubmF2aWdhdG9yLmtleWJvYXJkKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGxvY2tlckZ1bmMgPSAoaykgPT4gewogICAgICAgICAgICAgICAgY29uc3QgcmVxdWVzdElkID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDIsIDkpOwogICAgICAgICAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7IHR5cGU6ICJSRVFVRVNUX0tFWUJPQVJEX0xPQ0siLCByZXF1ZXN0SWQsIGtleXM6IGsgfSwgIioiKTsKICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCFsb2NrZXJGdW5jKSB7CiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOwogICAgfQoKICAgIHJldHVybiBsb2NrZXJGdW5jKGtleXMpOwp9"},{"path":"web/index.html","sha256":"d57d9a4ccc48bc7493f67c3d2359923c491bd9f766a3d54355a142871f954fcf","contentBase64":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIiBjbGFzcz0ibm90cmFuc2xhdGUiPgoKPGhlYWQ+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCIgLz4KICAgIDxtZXRhIG5hbWU9Imdvb2dsZSIgY29udGVudD0ibm90cmFuc2xhdGUiIC8+CiAgICA8dGl0bGU+TW9vbmxpZ2h0PC90aXRsZT4KICAgIDxsaW5rIHJlbD0iaWNvbiIgaHJlZj0icmVzb3VyY2VzL21vb25saWdodC5zdmciIHNpemVzPSJhbnkiIHR5cGU9ImltYWdlL3N2Zyt4bWwiPgoKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVzL3N0YW5kYXJkLmNzcyIgaWQ9InN0eWxlIj4KICAgIDxzY3JpcHQgdHlwZT0ibW9kdWxlIiBzcmM9InN0eWxlcy9pbmRleC5qcyI+PC9zY3JpcHQ+CgogICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0iaW5kZXguanMiIGRlZmVyPjwvc2NyaXB0PgoKICAgIDwhLS0gTWFuaWZlc3QgZm9yIE1vYmlsZSBBcHBzIGFzIFdlYnNpdGUgLS0+CiAgICA8bWV0YSBuYW1lPSJtb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiIC8+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIKICAgICAgICBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSwgdmlld3BvcnQtZml0PWNvdmVyLCBtYXhpbXVtLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgogICAgPG1ldGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ik1vb25saWdodCBXZWIgZm9yIGdhbWUgc3RyZWFtaW5nIHdpdGggeW91ciBwYyIgLz4KICAgIDxsaW5rIHJlbD0ibWFuaWZlc3QiIGhyZWY9Im1hbmlmZXN0Lmpzb24iPgoKICAgIDwhLS0gQXBwbGUgTW9iaWxlIFdlYiBBcHAgLS0+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1jYXBhYmxlIiBjb250ZW50PSJ5ZXMiIC8+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC10aXRsZSIgY29udGVudD0iTW9vbmxpZ2h0IFdlYiI+CiAgICA8bWV0YSBuYW1lPSJhcHBsZS1tb2JpbGUtd2ViLWFwcC1zdGF0dXMtYmFyLXN0eWxlIiBjb250ZW50PSJibGFjay10cmFuc2x1Y2VudCI+CgogICAgPHNjcmlwdD4KICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCByYXcgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgibWxTZXR0aW5ncyIpOwogICAgICAgICAgICBjb25zdCBwYXJzZWQgPSByYXcgPyBKU09OLnBhcnNlKHJhdykgOiBudWxsOwogICAgICAgICAgICBjb25zdCBsYW5ndWFnZSA9IHBhcnNlZCAmJiAocGFyc2VkLmxhbmd1YWdlID09PSAiemgtQ04iIHx8IHBhcnNlZC5sYW5ndWFnZSA9PT0gInpoIiB8fCBwYXJzZWQubGFuZ3VhZ2UgPT09ICJ6aF9DTiIpCiAgICAgICAgICAgICAgICA/ICJ6aC1DTiIKICAgICAgICAgICAgICAgIDogImVuIjsKICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBsYW5ndWFnZTsKICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnRyYW5zbGF0ZSA9IGZhbHNlOwogICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm90cmFuc2xhdGUiKTsKICAgICAgICB9IGNhdGNoIChfZXJyKSB7IH0KICAgIDwvc2NyaXB0Pgo8L2hlYWQ+Cgo8Ym9keT4KICAgIDwhLS0gTW9kYWwgLS0+CiAgICA8ZGl2IGlkPSJtb2RhbC1vdmVybGF5IiBjbGFzcz0ibW9kYWwtYmFja2dyb3VuZCBtb2RhbC1kaXNhYmxlZCI+CiAgICAgICAgPCEtLSBNb2RhbCBDb250ZW50IC0tPgogICAgICAgIDxkaXYgaWQ9Im1vZGFsLXBhcmVudCIgY2xhc3M9Im1vZGFsLWNvbnRlbnQiPgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBDb250ZXh0IE1lbnUgLS0+CiAgICA8ZGl2IGlkPSJjb250ZXh0LW1lbnUiIGNsYXNzPSJjb250ZXh0LW1lbnUtYmFja2dyb3VuZCBjb250ZXh0LW1lbnUtZGlzYWJsZWQiPgogICAgPC9kaXY+CgogICAgPCEtLSBOb3RpZmljYXRpb24gLS0+CiAgICA8ZGl2IGlkPSJub3RpZmljYXRpb24tbGlzdCI+CiAgICA8L2Rpdj4KCiAgICA8IS0tIE1haW4gQXBwIFZpZXcgLS0+CiAgICA8ZGl2IGlkPSJyb290IiBjbGFzcz0icm9vdCI+CiAgICA8L2Rpdj4KCjwvYm9keT4KCjwvaHRtbD4="},{"path":"web/index.ts","sha256":"3faca62c864e69ab8cd1df8ff7b9763f1f741c28f8667197f4f7775baa0543c0","contentBase64":"aW1wb3J0ICIuL3BvbHlmaWxsL2luZGV4LmpzIgppbXBvcnQgeyBBcGksIGdldEFwaSwgYXBpUG9zdEhvc3QsIEZldGNoRXJyb3IsIGFwaUxvZ291dCwgYXBpR2V0VXNlciwgdHJ5TG9naW4sIGFwaUdldEhvc3QsIGFwaUdldFJvbGUsIGFwaVBhdGNoUm9sZSB9IGZyb20gIi4vYXBpLmpzIjsKaW1wb3J0IHsgQWRkSG9zdE1vZGFsIH0gZnJvbSAiLi9jb21wb25lbnQvaG9zdC9hZGRfbW9kYWwuanMiOwppbXBvcnQgeyBIb3N0TGlzdCB9IGZyb20gIi4vY29tcG9uZW50L2hvc3QvbGlzdC5qcyI7CmltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50RXZlbnQgfSBmcm9tICIuL2NvbXBvbmVudC9pbmRleC5qcyI7CmltcG9ydCB7IHNob3dOb3RpZmljYXRpb24gfSBmcm9tICIuL2NvbXBvbmVudC9ub3RpZmljYXRpb24uanMiOwppbXBvcnQgeyBzaG93TWVzc2FnZSwgc2hvd01vZGFsIH0gZnJvbSAiLi9jb21wb25lbnQvbW9kYWwvaW5kZXguanMiOwppbXBvcnQgeyBzZXRDb250ZXh0TWVudSB9IGZyb20gIi4vY29tcG9uZW50L2NvbnRleHRfbWVudS5qcyI7CmltcG9ydCB7IEdhbWVMaXN0IH0gZnJvbSAiLi9jb21wb25lbnQvZ2FtZS9saXN0LmpzIjsKaW1wb3J0IHsgSG9zdCB9IGZyb20gIi4vY29tcG9uZW50L2hvc3QvaW5kZXguanMiOwppbXBvcnQgeyBBcHAsIERldGFpbGVkUm9sZSwgRGV0YWlsZWRVc2VyIH0gZnJvbSAiLi9hcGlfYmluZGluZ3MuanMiOwppbXBvcnQgeyBnZXRMb2NhbFN0cmVhbVNldHRpbmdzLCBnbG9iYWxEZWZhdWx0U2V0dGluZ3MsIHNldExvY2FsU3RyZWFtU2V0dGluZ3MsIFN0cmVhbVNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAiLi9jb21wb25lbnQvc2V0dGluZ3NfbWVudS5qcyI7CmltcG9ydCB7IGFkb3B0Um9sZURlZmF1bHRMYW5ndWFnZSwgZ2V0Q3VycmVudExhbmd1YWdlLCBnZXRUcmFuc2xhdGlvbnMgfSBmcm9tICIuL2kxOG4uanMiOwppbXBvcnQgeyBzZXRUb3VjaENvbnRleHRNZW51RW5hYmxlZCB9IGZyb20gIi4vcG9seWZpbGwvaW9zX3JpZ2h0X2NsaWNrLmpzIjsKaW1wb3J0IHsgYnVpbGRVcmwgfSBmcm9tICIuL2NvbmZpZ18uanMiOwppbXBvcnQgeyBzZXRTdHlsZSBhcyBzZXRQYWdlU3R5bGUgfSBmcm9tICIuL3N0eWxlcy9pbmRleC5qcyI7CgpsZXQgSSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkKCmFzeW5jIGZ1bmN0aW9uIHN0YXJ0QXBwKCkgewogICAgc2V0VG91Y2hDb250ZXh0TWVudUVuYWJsZWQodHJ1ZSkKCiAgICBjb25zdCBhcGkgPSBhd2FpdCBnZXRBcGkoKQoKICAgIGNvbnN0IGJvb3RzdHJhcFJvbGUgPSBhd2FpdCBhcGlHZXRSb2xlKGFwaSwgeyBpZDogbnVsbCB9KQogICAgYWRvcHRSb2xlRGVmYXVsdExhbmd1YWdlKGJvb3RzdHJhcFJvbGUucm9sZS5kZWZhdWx0X3NldHRpbmdzKQogICAgSSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkKCiAgICBjb25zdCByb290RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyb290Iik7CiAgICBpZiAocm9vdEVsZW1lbnQgPT0gbnVsbCkgewogICAgICAgIHNob3dOb3RpZmljYXRpb24oSS5pbmRleC5yb290Tm90Rm91bmQsICJlcnJvciIpCiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGxldCBsYXN0QXBwU3RhdGU6IEFwcFN0YXRlIHwgbnVsbCA9IG51bGwKICAgIGlmIChzZXNzaW9uU3RvcmFnZSkgewogICAgICAgIGNvbnN0IGxhc3RTdGF0ZVRleHQgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJtbFN0YXRlIikKICAgICAgICBpZiAobGFzdFN0YXRlVGV4dCkgewogICAgICAgICAgICBsYXN0QXBwU3RhdGUgPSBKU09OLnBhcnNlKGxhc3RTdGF0ZVRleHQpCiAgICAgICAgfQogICAgfQoKICAgIGNvbnN0IGFwcCA9IG5ldyBNYWluQXBwKGFwaSwgYm9vdHN0cmFwUm9sZS5yb2xlKQogICAgYXBwLm1vdW50KHJvb3RFbGVtZW50KQoKICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwb3BzdGF0ZSIsIGV2ZW50ID0+IHsKICAgICAgICBhcHAuc2V0QXBwU3RhdGUoZXZlbnQuc3RhdGUsIGZhbHNlKQogICAgfSkKCiAgICBhcHAuZm9yY2VGZXRjaCgpCgogICAgaWYgKGxhc3RBcHBTdGF0ZSkgewogICAgICAgIGFwcC5zZXRBcHBTdGF0ZShsYXN0QXBwU3RhdGUpCiAgICB9Cn0KCnN0YXJ0QXBwKCkKCnR5cGUgRGlzcGxheVN0YXRlcyA9ICJob3N0cyIgfCAiZ2FtZXMiIHwgInNldHRpbmdzIgoKdHlwZSBBcHBTdGF0ZSA9IHsgZGlzcGxheTogRGlzcGxheVN0YXRlcywgaG9zdElkPzogbnVtYmVyIH0KZnVuY3Rpb24gc2V0QXBwU3RhdGUoc3RhdGU6IEFwcFN0YXRlLCBwdXNoSGlzdG9yeTogYm9vbGVhbikgewogICAgaWYgKHB1c2hIaXN0b3J5KSB7CiAgICAgICAgaGlzdG9yeS5wdXNoU3RhdGUoc3RhdGUsICIiKQogICAgfQoKICAgIGlmIChzZXNzaW9uU3RvcmFnZSkgewogICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oIm1sU3RhdGUiLCBKU09OLnN0cmluZ2lmeShzdGF0ZSkpCiAgICB9Cn0KZnVuY3Rpb24gYmFja0FwcFN0YXRlKCkgewogICAgaGlzdG9yeS5iYWNrKCkKfQoKY2xhc3MgTWFpbkFwcCBpbXBsZW1lbnRzIENvbXBvbmVudCB7CiAgICBwcml2YXRlIGFwaTogQXBpCiAgICBwcml2YXRlIHVzZXI6IERldGFpbGVkVXNlciB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHJvbGU6IERldGFpbGVkUm9sZSB8IG51bGwgPSBudWxsCgogICAgcHJpdmF0ZSBkaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKCiAgICAvLyBUb3AgTGluZQogICAgcHJpdmF0ZSB0b3BMaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKCiAgICBwcml2YXRlIG1vb25saWdodFRleHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaDEiKQoKICAgIHByaXZhdGUgdG9wTGluZUFjdGlvbnMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQogICAgcHJpdmF0ZSBsb2dvdXRCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQogICAgLy8gVGhpcyBpcyBmb3IgdGhlIGRlZmF1bHQgdXNlcgogICAgcHJpdmF0ZSBsb2dpbkJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCiAgICBwcml2YXRlIGFkbWluQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIikKCiAgICAvLyBBY3Rpb25zCiAgICBwcml2YXRlIGFjdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQoKICAgIHByaXZhdGUgYmFja0J1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQoKICAgIHByaXZhdGUgaG9zdEFkZEJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQogICAgcHJpdmF0ZSBzZXR0aW5nc0J1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQogICAgcHJpdmF0ZSBzYXZlUm9sZURlZmF1bHRzQnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCgogICAgLy8gRGlmZmVyZW50IHN1Ym1lbnVzCiAgICBwcml2YXRlIGN1cnJlbnREaXNwbGF5OiBEaXNwbGF5U3RhdGVzIHwgbnVsbCA9IG51bGwKCiAgICBwcml2YXRlIGhvc3RMaXN0OiBIb3N0TGlzdAogICAgcHJpdmF0ZSBnYW1lTGlzdDogR2FtZUxpc3QgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBzZXR0aW5nczogU3RyZWFtU2V0dGluZ3NDb21wb25lbnQgfCBudWxsID0gbnVsbAoKICAgIGNvbnN0cnVjdG9yKGFwaTogQXBpLCBib290c3RyYXBSb2xlOiBEZXRhaWxlZFJvbGUpIHsKICAgICAgICB0aGlzLmFwaSA9IGFwaQogICAgICAgIHRoaXMucm9sZSA9IGJvb3RzdHJhcFJvbGUKCiAgICAgICAgLy8gVG9wIExpbmUKICAgICAgICB0aGlzLnRvcExpbmUuY2xhc3NMaXN0LmFkZCgidG9wLWxpbmUiKQoKICAgICAgICB0aGlzLm1vb25saWdodFRleHRFbGVtZW50LmlubmVySFRNTCA9IEkuaW5kZXguYXBwVGl0bGUKICAgICAgICB0aGlzLnRvcExpbmUuYXBwZW5kQ2hpbGQodGhpcy5tb29ubGlnaHRUZXh0RWxlbWVudCkKCiAgICAgICAgdGhpcy50b3BMaW5lLmFwcGVuZENoaWxkKHRoaXMudG9wTGluZUFjdGlvbnMpCiAgICAgICAgdGhpcy50b3BMaW5lQWN0aW9ucy5jbGFzc0xpc3QuYWRkKCJ0b3AtbGluZS1hY3Rpb25zIikKCiAgICAgICAgdGhpcy5sb2dvdXRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgIGF3YWl0IGFwaUxvZ291dCh0aGlzLmFwaSkKICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgICAgfSkKICAgICAgICB0aGlzLmxvZ291dEJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJsb2dvdXQtYnV0dG9uIikKCiAgICAgICAgdGhpcy5sb2dpbkJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHRyeUxvZ2luKCkKICAgICAgICAgICAgaWYgKHN1Y2Nlc3MpIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICB0aGlzLmxvZ2luQnV0dG9uLmNsYXNzTGlzdC5hZGQoImxvZ2luLWJ1dHRvbiIpCgogICAgICAgIHRoaXMuYWRtaW5CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYnVpbGRVcmwoIi9hZG1pbi5odG1sIikKICAgICAgICB9KQogICAgICAgIHRoaXMuYWRtaW5CdXR0b24uY2xhc3NMaXN0LmFkZCgiYWRtaW4tYnV0dG9uIikKCiAgICAgICAgLy8gQWN0aW9ucwogICAgICAgIHRoaXMuYWN0aW9uRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJhY3Rpb25zLWxpc3QiKQoKICAgICAgICAvLyBCYWNrIGJ1dHRvbgogICAgICAgIHRoaXMuYmFja0J1dHRvbi5pbm5lclRleHQgPSBJLmluZGV4LmJhY2sKICAgICAgICB0aGlzLmJhY2tCdXR0b24uY2xhc3NMaXN0LmFkZCgiYnV0dG9uLWZpdC1jb250ZW50IikKICAgICAgICB0aGlzLmJhY2tCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBiYWNrQXBwU3RhdGUpCiAgICAgICAgdGhpcy5iYWNrQnV0dG9uLmRhdGFzZXQudmFyaWFudCA9ICJiYWNrLWJ1dHRvbiIKCiAgICAgICAgLy8gSG9zdCBhZGQgYnV0dG9uCiAgICAgICAgdGhpcy5ob3N0QWRkQnV0dG9uLmNsYXNzTGlzdC5hZGQoImhvc3QtYWRkIikKICAgICAgICB0aGlzLmhvc3RBZGRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLmFkZEhvc3QuYmluZCh0aGlzKSkKCiAgICAgICAgLy8gSG9zdCBsaXN0CiAgICAgICAgdGhpcy5ob3N0TGlzdCA9IG5ldyBIb3N0TGlzdChhcGkpCiAgICAgICAgdGhpcy5ob3N0TGlzdC5hZGRIb3N0T3Blbkxpc3RlbmVyKHRoaXMub25Ib3N0T3Blbi5iaW5kKHRoaXMpKQoKICAgICAgICAvLyBTZXR0aW5ncyBCdXR0b24KICAgICAgICB0aGlzLnNldHRpbmdzQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm9wZW4tc2V0dGluZ3MiKQogICAgICAgIHRoaXMuc2V0dGluZ3NCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCAoKSA9PiB0aGlzLnNldEN1cnJlbnREaXNwbGF5KCJzZXR0aW5ncyIpKQoKICAgICAgICB0aGlzLnNhdmVSb2xlRGVmYXVsdHNCdXR0b24uaW5uZXJUZXh0ID0gSS5zZXR0aW5ncy5zYXZlUm9sZURlZmF1bHRzCiAgICAgICAgdGhpcy5zYXZlUm9sZURlZmF1bHRzQnV0dG9uLmNsYXNzTGlzdC5hZGQoImJ1dHRvbi1maXQtY29udGVudCIpCiAgICAgICAgdGhpcy5zYXZlUm9sZURlZmF1bHRzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5vblNhdmVSb2xlRGVmYXVsdHMuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnNhdmVSb2xlRGVmYXVsdHNCdXR0b24uZGF0YXNldC52YXJpYW50ID0gInNhdmUtYnV0dG9uIgoKICAgICAgICAvLyBTZXR0aW5ncwogICAgICAgIHRoaXMuc2V0dGluZ3MgPSBuZXcgU3RyZWFtU2V0dGluZ3NDb21wb25lbnQoCiAgICAgICAgICAgIGJvb3RzdHJhcFJvbGUucGVybWlzc2lvbnMsCiAgICAgICAgICAgIGdldExvY2FsU3RyZWFtU2V0dGluZ3MoYm9vdHN0cmFwUm9sZS5kZWZhdWx0X3NldHRpbmdzKQogICAgICAgICkKICAgICAgICB0aGlzLnNldHRpbmdzLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25TZXR0aW5nc0NoYW5nZS5iaW5kKHRoaXMpKQoKICAgICAgICAvLyBBcHBlbmQgZGVmYXVsdCBlbGVtZW50cwogICAgICAgIHRoaXMuZGl2RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnRvcExpbmUpCiAgICAgICAgdGhpcy5kaXZFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuYWN0aW9uRWxlbWVudCkKCiAgICAgICAgdGhpcy5zZXRDdXJyZW50RGlzcGxheSgiaG9zdHMiKQoKICAgICAgICAvLyBDb250ZXh0IE1lbnUKICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5vbkNvbnRleHRNZW51LmJpbmQodGhpcyksIHsgcGFzc2l2ZTogZmFsc2UgfSkKICAgIH0KCiAgICBzZXRBcHBTdGF0ZShzdGF0ZTogQXBwU3RhdGUsIHB1c2hJbnRvSGlzdG9yeT86IGJvb2xlYW4pIHsKICAgICAgICBpZiAoc3RhdGUuZGlzcGxheSA9PSAiaG9zdHMiKSB7CiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudERpc3BsYXkoImhvc3RzIiwgbnVsbCwgcHVzaEludG9IaXN0b3J5KQogICAgICAgIH0gZWxzZSBpZiAoc3RhdGUuZGlzcGxheSA9PSAiZ2FtZXMiICYmIHN0YXRlLmhvc3RJZCAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudERpc3BsYXkoImdhbWVzIiwgeyBob3N0SWQ6IHN0YXRlLmhvc3RJZCB9LCBwdXNoSW50b0hpc3RvcnkpCiAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5kaXNwbGF5ID09ICJzZXR0aW5ncyIpIHsKICAgICAgICAgICAgdGhpcy5zZXRDdXJyZW50RGlzcGxheSgic2V0dGluZ3MiLCBudWxsLCBwdXNoSW50b0hpc3RvcnkpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgYWRkSG9zdCgpIHsKICAgICAgICBjb25zdCBtb2RhbCA9IG5ldyBBZGRIb3N0TW9kYWwoKQoKICAgICAgICBsZXQgaG9zdCA9IGF3YWl0IHNob3dNb2RhbChtb2RhbCk7CgogICAgICAgIGlmIChob3N0KSB7CiAgICAgICAgICAgIGxldCBuZXdIb3N0CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBuZXdIb3N0ID0gYXdhaXQgYXBpUG9zdEhvc3QodGhpcy5hcGksIGhvc3QpCiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRmV0Y2hFcnJvcikgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gZS5nZXRSZXNwb25zZSgpCiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnN0YXR1cyA9PSA0MDQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgc2hvd05vdGlmaWNhdGlvbihJLmluZGV4LmFkZEhvc3RVbnJlYWNoYWJsZShob3N0LmFkZHJlc3MpKQogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aHJvdyBlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuaG9zdExpc3QuaW5zZXJ0TGlzdChuZXdIb3N0Lmhvc3RfaWQsIG5ld0hvc3QpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgb25Db250ZXh0TWVudShldmVudDogTW91c2VFdmVudCkgewogICAgICAgIGlmICh0aGlzLmN1cnJlbnREaXNwbGF5ID09ICJob3N0cyIgfHwgdGhpcy5jdXJyZW50RGlzcGxheSA9PSAiZ2FtZXMiKSB7CiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRzID0gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIG5hbWU6IEkuaW5kZXgucmVsb2FkLAogICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLmZvcmNlRmV0Y2guYmluZCh0aGlzKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCgogICAgICAgICAgICBzZXRDb250ZXh0TWVudShldmVudCwgewogICAgICAgICAgICAgICAgZWxlbWVudHMKICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyBvbkhvc3RPcGVuKGV2ZW50OiBDb21wb25lbnRFdmVudDxIb3N0PikgewogICAgICAgIGNvbnN0IGhvc3RJZCA9IGV2ZW50LmNvbXBvbmVudC5nZXRIb3N0SWQoKQoKICAgICAgICB0aGlzLnNldEN1cnJlbnREaXNwbGF5KCJnYW1lcyIsIHsgaG9zdElkIH0pCiAgICB9CgogICAgcHJpdmF0ZSBvblNldHRpbmdzQ2hhbmdlKCkgewogICAgICAgIGlmICghdGhpcy5zZXR0aW5ncykgewogICAgICAgICAgICBzaG93Tm90aWZpY2F0aW9uKEkuaW5kZXguc2F2ZVNldHRpbmdzRmFpbGVkKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGNvbnN0IHByZXZpb3VzTGFuZ3VhZ2UgPSBnZXRMb2NhbFN0cmVhbVNldHRpbmdzKGdsb2JhbERlZmF1bHRTZXR0aW5ncygpKS5sYW5ndWFnZQogICAgICAgIGNvbnN0IG5ld1NldHRpbmdzID0gdGhpcy5zZXR0aW5ncy5nZXRTdHJlYW1TZXR0aW5ncygpCgogICAgICAgIC8vIHN0b3JlIHNldHRpbmdzIGluIGxvY2FsU3RvcmFnZQogICAgICAgIHNldExvY2FsU3RyZWFtU2V0dGluZ3MobmV3U2V0dGluZ3MpCiAgICAgICAgLy8gYXBwbHkgc3R5bGUKICAgICAgICBzZXRQYWdlU3R5bGUobmV3U2V0dGluZ3MucGFnZVN0eWxlKQoKICAgICAgICBpZiAocHJldmlvdXNMYW5ndWFnZSAhPT0gbmV3U2V0dGluZ3MubGFuZ3VhZ2UpIHsKICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgb25TYXZlUm9sZURlZmF1bHRzKCkgewogICAgICAgIGlmICghdGhpcy5zZXR0aW5ncyB8fCAhdGhpcy5yb2xlIHx8IHRoaXMudXNlcj8ucm9sZSAhPT0gIkFkbWluIikgewogICAgICAgICAgICBzaG93Tm90aWZpY2F0aW9uKEkuc2V0dGluZ3Muc2F2ZVJvbGVEZWZhdWx0c0ZhaWxlZCkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLnNhdmVSb2xlRGVmYXVsdHNCdXR0b24uZGlzYWJsZWQgPSB0cnVlCgogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGNvbnN0IG5ld1NldHRpbmdzID0gdGhpcy5zZXR0aW5ncy5nZXRTdHJlYW1TZXR0aW5ncygpCiAgICAgICAgICAgIGF3YWl0IGFwaVBhdGNoUm9sZSh0aGlzLmFwaSwgewogICAgICAgICAgICAgICAgaWQ6IHRoaXMucm9sZS5pZCwKICAgICAgICAgICAgICAgIG5hbWU6IG51bGwsCiAgICAgICAgICAgICAgICB0eTogdGhpcy5yb2xlLnR5LAogICAgICAgICAgICAgICAgZGVmYXVsdF9zZXR0aW5nczogbmV3U2V0dGluZ3MsCiAgICAgICAgICAgICAgICBwZXJtaXNzaW9uczogbnVsbCwKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIHRoaXMucm9sZSA9IHsKICAgICAgICAgICAgICAgIC4uLnRoaXMucm9sZSwKICAgICAgICAgICAgICAgIGRlZmF1bHRfc2V0dGluZ3M6IG5ld1NldHRpbmdzLAogICAgICAgICAgICB9CgogICAgICAgICAgICBhd2FpdCBzaG93TWVzc2FnZShJLnNldHRpbmdzLnNhdmVSb2xlRGVmYXVsdHNTdWNjZXNzKQogICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICBzaG93Tm90aWZpY2F0aW9uKEkuc2V0dGluZ3Muc2F2ZVJvbGVEZWZhdWx0c0ZhaWxlZCkKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICB0aGlzLnNhdmVSb2xlRGVmYXVsdHNCdXR0b24uZGlzYWJsZWQgPSBmYWxzZQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHNldEN1cnJlbnREaXNwbGF5KGRpc3BsYXk6ICJob3N0cyIsCiAgICAgICAgZXh0cmFJbmZvPzogbnVsbCwKICAgICAgICBwdXNoSW50b0hpc3Rvcnk/OiBib29sZWFuCiAgICApOiB2b2lkCiAgICBwcml2YXRlIHNldEN1cnJlbnREaXNwbGF5KAogICAgICAgIGRpc3BsYXk6ICJnYW1lcyIsCiAgICAgICAgZXh0cmFJbmZvPzogewogICAgICAgICAgICBob3N0SWQ/OiBudW1iZXIgfCBudWxsLAogICAgICAgICAgICBob3N0Q2FjaGU/OiBBcnJheTxBcHA+CiAgICAgICAgfSwKICAgICAgICBwdXNoSW50b0hpc3Rvcnk/OiBib29sZWFuCiAgICApOiB2b2lkCiAgICBwcml2YXRlIHNldEN1cnJlbnREaXNwbGF5KGRpc3BsYXk6ICJzZXR0aW5ncyIsIGV4dHJhSW5mbz86IG51bGwsIHB1c2hJbnRvSGlzdG9yeT86IGJvb2xlYW4pOiB2b2lkCgogICAgcHJpdmF0ZSBzZXRDdXJyZW50RGlzcGxheSgKICAgICAgICBkaXNwbGF5OiAiaG9zdHMiIHwgImdhbWVzIiB8ICJzZXR0aW5ncyIsCiAgICAgICAgZXh0cmFJbmZvPzogewogICAgICAgICAgICBob3N0SWQ/OiBudW1iZXIgfCBudWxsLAogICAgICAgICAgICBob3N0Q2FjaGU/OiBBcnJheTxBcHA+CiAgICAgICAgfSB8IG51bGwsCiAgICAgICAgcHVzaEludG9IaXN0b3J5Xz86IGJvb2xlYW4KICAgICkgewogICAgICAgIGNvbnN0IHB1c2hJbnRvSGlzdG9yeSA9IHB1c2hJbnRvSGlzdG9yeV8gPT09IHVuZGVmaW5lZCA/IHRydWUgOiBwdXNoSW50b0hpc3RvcnlfCgogICAgICAgIGlmIChkaXNwbGF5ID09ICJnYW1lcyIgJiYgZXh0cmFJbmZvPy5ob3N0SWQgPT0gbnVsbCkgewogICAgICAgICAgICAvLyBpbnZhbGlkIGlucHV0IHN0YXRlCiAgICAgICAgICAgIHRocm93ICJpbnZhbGlkIGRpc3BsYXkgc3RhdGUgd2FzIHJlcXVlc3RlZCIKICAgICAgICB9CgogICAgICAgIC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gY2hhbmdlCiAgICAgICAgaWYgKHRoaXMuY3VycmVudERpc3BsYXkgPT0gZGlzcGxheSkgewogICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50RGlzcGxheSA9PSAiZ2FtZXMiICYmIHRoaXMuZ2FtZUxpc3Q/LmdldEhvc3RJZCgpICE9IGV4dHJhSW5mbz8uaG9zdElkKSB7CiAgICAgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2gKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBVbm1vdW50IHRoZSBjdXJyZW50IGRpc3BsYXkKICAgICAgICBpZiAodGhpcy5jdXJyZW50RGlzcGxheSA9PSAiaG9zdHMiKSB7CiAgICAgICAgICAgIHRoaXMuYWN0aW9uRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmhvc3RBZGRCdXR0b24pCiAgICAgICAgICAgIHRoaXMuYWN0aW9uRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLnNldHRpbmdzQnV0dG9uKQoKICAgICAgICAgICAgdGhpcy5ob3N0TGlzdC51bm1vdW50KHRoaXMuZGl2RWxlbWVudCkKICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudERpc3BsYXkgPT0gImdhbWVzIikgewogICAgICAgICAgICB0aGlzLmFjdGlvbkVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5iYWNrQnV0dG9uKQogICAgICAgICAgICB0aGlzLmFjdGlvbkVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5zZXR0aW5nc0J1dHRvbikKCiAgICAgICAgICAgIHRoaXMuZ2FtZUxpc3Q/LnVubW91bnQodGhpcy5kaXZFbGVtZW50KQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50RGlzcGxheSA9PSAic2V0dGluZ3MiKSB7CiAgICAgICAgICAgIHRoaXMuYWN0aW9uRWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLmJhY2tCdXR0b24pCiAgICAgICAgICAgIGlmICh0aGlzLmFjdGlvbkVsZW1lbnQuY29udGFpbnModGhpcy5zYXZlUm9sZURlZmF1bHRzQnV0dG9uKSkgewogICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25FbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuc2F2ZVJvbGVEZWZhdWx0c0J1dHRvbikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5zZXR0aW5ncz8udW5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCiAgICAgICAgfQoKICAgICAgICAvLyBNb3VudCB0aGUgbmV3IGRpc3BsYXkKICAgICAgICBpZiAoZGlzcGxheSA9PSAiaG9zdHMiKSB7CiAgICAgICAgICAgIHRoaXMuYWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmhvc3RBZGRCdXR0b24pCiAgICAgICAgICAgIHRoaXMuYWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnNldHRpbmdzQnV0dG9uKQoKICAgICAgICAgICAgdGhpcy5ob3N0TGlzdC5tb3VudCh0aGlzLmRpdkVsZW1lbnQpCgogICAgICAgICAgICBzZXRBcHBTdGF0ZSh7IGRpc3BsYXk6ICJob3N0cyIgfSwgcHVzaEludG9IaXN0b3J5KQogICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PSAiZ2FtZXMiICYmIGV4dHJhSW5mbz8uaG9zdElkICE9IG51bGwpIHsKICAgICAgICAgICAgdGhpcy5hY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuYmFja0J1dHRvbikKICAgICAgICAgICAgdGhpcy5hY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2V0dGluZ3NCdXR0b24pCgogICAgICAgICAgICBpZiAodGhpcy5nYW1lTGlzdD8uZ2V0SG9zdElkKCkgIT0gZXh0cmFJbmZvPy5ob3N0SWQpIHsKICAgICAgICAgICAgICAgIHRoaXMuZ2FtZUxpc3QgPSBuZXcgR2FtZUxpc3QodGhpcy5hcGksIGV4dHJhSW5mbz8uaG9zdElkLCBleHRyYUluZm8/Lmhvc3RDYWNoZSA/PyBudWxsKQogICAgICAgICAgICAgICAgdGhpcy5nYW1lTGlzdC5hZGRGb3JjZVJlbG9hZExpc3RlbmVyKHRoaXMuZm9yY2VGZXRjaC5iaW5kKHRoaXMpKQogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmdhbWVMaXN0Lm1vdW50KHRoaXMuZGl2RWxlbWVudCkKCiAgICAgICAgICAgIHRoaXMucmVmcmVzaEdhbWVMaXN0QWN0aXZlR2FtZSgpCgogICAgICAgICAgICBzZXRBcHBTdGF0ZSh7IGRpc3BsYXk6ICJnYW1lcyIsIGhvc3RJZDogdGhpcy5nYW1lTGlzdD8uZ2V0SG9zdElkKCkgfSwgcHVzaEludG9IaXN0b3J5KQogICAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PSAic2V0dGluZ3MiKSB7CiAgICAgICAgICAgIHRoaXMuYWN0aW9uRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmJhY2tCdXR0b24pCiAgICAgICAgICAgIGlmICh0aGlzLnVzZXI/LnJvbGUgPT0gIkFkbWluIikgewogICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25FbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2F2ZVJvbGVEZWZhdWx0c0J1dHRvbikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5zZXR0aW5ncz8ubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAgICAgc2V0QXBwU3RhdGUoeyBkaXNwbGF5OiAic2V0dGluZ3MiIH0sIHB1c2hJbnRvSGlzdG9yeSkKICAgICAgICB9CgogICAgICAgIHRoaXMuY3VycmVudERpc3BsYXkgPSBkaXNwbGF5CiAgICB9CgogICAgYXN5bmMgZm9yY2VGZXRjaCgpIHsKICAgICAgICBjb25zdCBwcm9taXNlVXNlciA9IHRoaXMucmVmcmVzaFVzZXJSb2xlKCkKICAgICAgICBjb25zdCBwcm9taXNlUm9sZXMgPSB0aGlzLnJlZnJlc2hVc2VyUGVybWlzc2lvbnMoKQoKICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChbCiAgICAgICAgICAgIHRoaXMuaG9zdExpc3QuZm9yY2VGZXRjaCgpLAogICAgICAgICAgICB0aGlzLmdhbWVMaXN0Py5mb3JjZUZldGNoKCkKICAgICAgICBdKQoKICAgICAgICBpZiAodGhpcy5jdXJyZW50RGlzcGxheSA9PSAiZ2FtZXMiCiAgICAgICAgICAgICYmIHRoaXMuZ2FtZUxpc3QKICAgICAgICAgICAgJiYgIXRoaXMuaG9zdExpc3QuZ2V0SG9zdCh0aGlzLmdhbWVMaXN0LmdldEhvc3RJZCgpKSkgewogICAgICAgICAgICAvLyBUaGUgbmV3bHkgZmV0Y2hlZCBsaXN0IGRvZXNuJ3QgY29udGFpbiB0aGUgaG9zdHMgZ2FtZSB2aWV3IHdlJ3JlIGluIC0+IGdvIHRvIGhvc3RzCiAgICAgICAgICAgIHRoaXMuc2V0Q3VycmVudERpc3BsYXkoImhvc3RzIikKICAgICAgICB9CgogICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgICAgICAgcHJvbWlzZVVzZXIsCiAgICAgICAgICAgIHByb21pc2VSb2xlcywKICAgICAgICAgICAgdGhpcy5yZWZyZXNoR2FtZUxpc3RBY3RpdmVHYW1lKCkKICAgICAgICBdKQogICAgfQogICAgcHJpdmF0ZSBhc3luYyByZWZyZXNoVXNlclJvbGUoKSB7CiAgICAgICAgdGhpcy51c2VyID0gYXdhaXQgYXBpR2V0VXNlcih0aGlzLmFwaSkKCiAgICAgICAgaWYgKHRoaXMudG9wTGluZUFjdGlvbnMuY29udGFpbnModGhpcy5sb2dvdXRCdXR0b24pKSB7CiAgICAgICAgICAgIHRoaXMudG9wTGluZUFjdGlvbnMucmVtb3ZlQ2hpbGQodGhpcy5sb2dvdXRCdXR0b24pCiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLnRvcExpbmVBY3Rpb25zLmNvbnRhaW5zKHRoaXMubG9naW5CdXR0b24pKSB7CiAgICAgICAgICAgIHRoaXMudG9wTGluZUFjdGlvbnMucmVtb3ZlQ2hpbGQodGhpcy5sb2dpbkJ1dHRvbikKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMudG9wTGluZUFjdGlvbnMuY29udGFpbnModGhpcy5hZG1pbkJ1dHRvbikpIHsKICAgICAgICAgICAgdGhpcy50b3BMaW5lQWN0aW9ucy5yZW1vdmVDaGlsZCh0aGlzLmFkbWluQnV0dG9uKQogICAgICAgIH0KCiAgICAgICAgaWYgKHRoaXMudXNlci5pc19kZWZhdWx0X3VzZXIpIHsKICAgICAgICAgICAgdGhpcy50b3BMaW5lQWN0aW9ucy5hcHBlbmRDaGlsZCh0aGlzLmxvZ2luQnV0dG9uKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMudG9wTGluZUFjdGlvbnMuYXBwZW5kQ2hpbGQodGhpcy5sb2dvdXRCdXR0b24pCiAgICAgICAgfQoKICAgICAgICBpZiAodGhpcy51c2VyLnJvbGUgPT0gIkFkbWluIikgewogICAgICAgICAgICB0aGlzLnRvcExpbmVBY3Rpb25zLmFwcGVuZENoaWxkKHRoaXMuYWRtaW5CdXR0b24pCiAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnREaXNwbGF5ID09ICJzZXR0aW5ncyIgJiYgIXRoaXMuYWN0aW9uRWxlbWVudC5jb250YWlucyh0aGlzLnNhdmVSb2xlRGVmYXVsdHNCdXR0b24pKSB7CiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvbkVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zYXZlUm9sZURlZmF1bHRzQnV0dG9uKQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFjdGlvbkVsZW1lbnQuY29udGFpbnModGhpcy5zYXZlUm9sZURlZmF1bHRzQnV0dG9uKSkgewogICAgICAgICAgICB0aGlzLmFjdGlvbkVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5zYXZlUm9sZURlZmF1bHRzQnV0dG9uKQogICAgICAgIH0KICAgIH0KICAgIHByaXZhdGUgYXN5bmMgcmVmcmVzaFVzZXJQZXJtaXNzaW9ucygpIHsKICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGFwaUdldFJvbGUodGhpcy5hcGksIHsgaWQ6IG51bGwgfSkKICAgICAgICB0aGlzLnJvbGUgPSByZXNwb25zZS5yb2xlCgogICAgICAgIGlmICh0aGlzLnJvbGUucGVybWlzc2lvbnMuYWxsb3dfYWRkX2hvc3RzKSB7CiAgICAgICAgICAgIHRoaXMuaG9zdEFkZEJ1dHRvbi5kaXNhYmxlZCA9IGZhbHNlCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5ob3N0QWRkQnV0dG9uLmRpc2FibGVkID0gdHJ1ZQogICAgICAgIH0KICAgIH0KICAgIHByaXZhdGUgYXN5bmMgcmVmcmVzaEdhbWVMaXN0QWN0aXZlR2FtZSgpIHsKICAgICAgICBjb25zdCBnYW1lTGlzdCA9IHRoaXMuZ2FtZUxpc3QKICAgICAgICBjb25zdCBob3N0SWQgPSBnYW1lTGlzdD8uZ2V0SG9zdElkKCkKICAgICAgICBpZiAoaG9zdElkID09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCBob3N0ID0gdGhpcy5ob3N0TGlzdC5nZXRIb3N0KGhvc3RJZCkKCiAgICAgICAgbGV0IGN1cnJlbnRHYW1lID0gbnVsbAogICAgICAgIGlmIChob3N0ICE9IG51bGwpIHsKICAgICAgICAgICAgY3VycmVudEdhbWUgPSBhd2FpdCBob3N0LmdldEN1cnJlbnRHYW1lKCkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCBob3N0ID0gYXdhaXQgYXBpR2V0SG9zdCh0aGlzLmFwaSwgeyBob3N0X2lkOiBob3N0SWQgfSkKICAgICAgICAgICAgaWYgKGhvc3QuY3VycmVudF9nYW1lICE9IDApIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRHYW1lID0gaG9zdC5jdXJyZW50X2dhbWUKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKGN1cnJlbnRHYW1lICE9IG51bGwpIHsKICAgICAgICAgICAgZ2FtZUxpc3Q/LnNldEFjdGl2ZUdhbWUoY3VycmVudEdhbWUpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZ2FtZUxpc3Q/LnNldEFjdGl2ZUdhbWUobnVsbCkKICAgICAgICB9CiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmRpdkVsZW1lbnQpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5kaXZFbGVtZW50KQogICAgfQp9Cg=="},{"path":"web/libopenh264/.gitignore","sha256":"8cc91bb4517943c73aff347abe745219017f96e49f63945b1a2e28449cfe7b16","contentBase64":"ZGVjb2Rlci5qcw=="},{"path":"web/libopenh264/decoder.d.ts","sha256":"50528b63ec956dcac503504026796a3ab84aa1d4ead703b7521923eec6b6da58","contentBase64":"Ly8gVHlwZVNjcmlwdCBiaW5kaW5ncyBmb3IgZW1zY3JpcHRlbi1nZW5lcmF0ZWQgY29kZS4gIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGF0IGNvbXBpbGUgdGltZS4KZGVjbGFyZSBuYW1lc3BhY2UgUnVudGltZUV4cG9ydHMgewogICAgZnVuY3Rpb24gc3RhY2tBbGxvYyhzejogYW55KTogYW55OwogICAgZnVuY3Rpb24gc3RhY2tTYXZlKCk6IGFueTsKICAgIGZ1bmN0aW9uIHN0YWNrUmVzdG9yZSh2YWw6IGFueSk6IGFueTsKICAgIC8qKgogICAgICogQHBhcmFtIHtudW1iZXJ9IHB0cgogICAgICogQHBhcmFtIHtudW1iZXJ9IHZhbHVlCiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHlwZQogICAgICovCiAgICBmdW5jdGlvbiBzZXRWYWx1ZShwdHI6IG51bWJlciwgdmFsdWU6IG51bWJlciwgdHlwZT86IHN0cmluZyk6IHZvaWQ7CiAgICAvKioKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBwdHIKICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFZhbHVlKHB0cjogbnVtYmVyLCB0eXBlPzogc3RyaW5nKTogYW55OwogICAgZnVuY3Rpb24gd3JpdGVBcnJheVRvTWVtb3J5KGFycmF5OiBhbnksIGJ1ZmZlcjogYW55KTogdm9pZDsKICAgIGxldCBIRUFQVTg6IGFueTsKICAgIGxldCBIRUFQVTMyOiBhbnk7Cn0KaW50ZXJmYWNlIFdhc21Nb2R1bGUgewogIF9vcGVuaDI2NF9kZWNvZGVyX2NyZWF0ZShfMDogbnVtYmVyKTogbnVtYmVyOwogIF9vcGVuaDI2NF9kZWNvZGVyX2RlY29kZShfMDogbnVtYmVyLCBfMTogbnVtYmVyLCBfMjogbnVtYmVyLCBfMzogbnVtYmVyLCBfNDogbnVtYmVyLCBfNTogbnVtYmVyLCBfNjogbnVtYmVyLCBfNzogbnVtYmVyKTogbnVtYmVyOwogIF9vcGVuaDI2NF9kZWNvZGVyX2Rlc3Ryb3koXzA6IG51bWJlcik6IHZvaWQ7CiAgX21hbGxvYyhfMDogbnVtYmVyKTogbnVtYmVyOwogIF9mcmVlKF8wOiBudW1iZXIpOiB2b2lkOwp9CgpleHBvcnQgdHlwZSBNYWluTW9kdWxlID0gV2FzbU1vZHVsZSAmIHR5cGVvZiBSdW50aW1lRXhwb3J0czsKZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFpbk1vZHVsZUZhY3RvcnkgKG9wdGlvbnM/OiB1bmtub3duKTogUHJvbWlzZTxNYWluTW9kdWxlPjsK"},{"path":"web/libopenh264/index.ts","sha256":"767b680eec05b6613986549900d89edd1ffda8e36735d517fa676228378b1d45","contentBase64":"Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL29wZW5oMjY0LWpzCgovLyBZb3UnbGwgbmVlZCB0byBjb21waWxlIHRoZSBkZWNvZGVyIHlvdXJzZWxmIGJlY2F1c2UgSSBkb24ndCB3YW50IHRvIGRpc3RyaWJ1dGUgaXQuCgppbXBvcnQgeyBNYWluTW9kdWxlIH0gZnJvbSAiLi9kZWNvZGVyLmpzIjsKCi8vIFRPRE86IHN1cHBvcnQgTFRSPyBtb29ubGlnaHQgZG9lcz8KCmV4cG9ydCB0eXBlIE9uRnJhbWUgPSAoYnVmZmVyOiBVaW50OEFycmF5W10sIHl1dlN0cmlkZTogW251bWJlciwgbnVtYmVyXSwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpID0+IHZvaWQKCmV4cG9ydCB0eXBlIE9wZW5IMjY0RGVjb2Rlck9wdGlvbnMgPSB7CiAgICAvLy8gVGhlIGZ1bmN0aW9uIE1BWSBOT1QgbW9kaWZ5IHRoZSBwYXNzZWQgZnJhbWUKICAgIC8vLyBUaGUgYnVmZmVyIGNvbnNpc3RzIG9mIFt5LHUsdl0KICAgIG9uRnJhbWU6IE9uRnJhbWUKfQoKY29uc3QgUFRSX1NJWkUgPSA0CgpleHBvcnQgY2xhc3MgT3BlbkgyNjREZWNvZGVyIHsKCiAgICBwcml2YXRlIG1vZHVsZTogTWFpbk1vZHVsZQoKICAgIHByaXZhdGUgcERlY29kZXI6IG51bWJlciA9IDAKICAgIHByaXZhdGUgb3B0aW9uczogT3BlbkgyNjREZWNvZGVyT3B0aW9ucwoKICAgIGNvbnN0cnVjdG9yKG1vZHVsZTogTWFpbk1vZHVsZSwgb3B0aW9uczogT3BlbkgyNjREZWNvZGVyT3B0aW9ucykgewogICAgICAgIHRoaXMubW9kdWxlID0gbW9kdWxlCiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucwoKICAgICAgICBjb25zdCBzdGFjayA9IHRoaXMubW9kdWxlLnN0YWNrU2F2ZSgpCiAgICAgICAgY29uc3QgcHBEZWNvZGVyID0gdGhpcy5tb2R1bGUuc3RhY2tBbGxvYyhQVFJfU0laRSkKCiAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLm1vZHVsZS5fb3BlbmgyNjRfZGVjb2Rlcl9jcmVhdGUocHBEZWNvZGVyKQogICAgICAgIGlmIChlcnJvciAhPSAwKSB7CiAgICAgICAgICAgIHRoaXMubW9kdWxlLnN0YWNrUmVzdG9yZShzdGFjaykKCiAgICAgICAgICAgIHRocm93ICJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBPcGVuSDI2NCBkZWNvZGVyISIKICAgICAgICB9CgogICAgICAgIHRoaXMucERlY29kZXIgPSB0aGlzLm1vZHVsZS5nZXRWYWx1ZShwcERlY29kZXIsICIqIikKCiAgICAgICAgdGhpcy5tb2R1bGUuc3RhY2tSZXN0b3JlKHN0YWNrKQogICAgfQoKICAgIGRlY29kZShmcmFtZTogVWludDhBcnJheSkgewogICAgICAgIHRoaXMuY2hlY2tQdHIoKQoKICAgICAgICBjb25zdCBzdGFjayA9IHRoaXMubW9kdWxlLnN0YWNrU2F2ZSgpCgogICAgICAgIC8vIFRPRE86IG9wdGltaXplIHRoaXMsIG5vIHJlYWxsb2NhdGlvbnM/CiAgICAgICAgY29uc3QgZnJhbWVCdWZmZXIgPSB0aGlzLm1vZHVsZS5fbWFsbG9jKGZyYW1lLmJ5dGVMZW5ndGgpCiAgICAgICAgdGhpcy5tb2R1bGUud3JpdGVBcnJheVRvTWVtb3J5KGZyYW1lLCBmcmFtZUJ1ZmZlcikKCiAgICAgICAgY29uc3QgcE91dHB1dCA9IHRoaXMubW9kdWxlLnN0YWNrQWxsb2MoUFRSX1NJWkUgKiAzKQogICAgICAgIGNvbnN0IHBXaWR0aCA9IHRoaXMubW9kdWxlLnN0YWNrQWxsb2MoNCkKICAgICAgICBjb25zdCBwSGVpZ2h0ID0gdGhpcy5tb2R1bGUuc3RhY2tBbGxvYyg0KQogICAgICAgIGNvbnN0IHBTdHJpZGUgPSB0aGlzLm1vZHVsZS5zdGFja0FsbG9jKDgpCiAgICAgICAgY29uc3QgcEZyYW1lUmVhZHkgPSB0aGlzLm1vZHVsZS5zdGFja0FsbG9jKDQpCgogICAgICAgIGNvbnN0IGVycm9yID0gdGhpcy5tb2R1bGUuX29wZW5oMjY0X2RlY29kZXJfZGVjb2RlKHRoaXMucERlY29kZXIsIGZyYW1lQnVmZmVyLCBmcmFtZS5ieXRlTGVuZ3RoLCBwT3V0cHV0LCBwV2lkdGgsIHBIZWlnaHQsIHBTdHJpZGUsIHBGcmFtZVJlYWR5KQoKICAgICAgICB0aGlzLm1vZHVsZS5fZnJlZShmcmFtZUJ1ZmZlcikKICAgICAgICBpZiAoZXJyb3IgIT0gMCkgewogICAgICAgICAgICB0aGlzLm1vZHVsZS5zdGFja1Jlc3RvcmUoc3RhY2spCiAgICAgICAgICAgIHRocm93IGBGYWlsZWQgdG8gZGVjb2RlIGZyYW1lICR7ZXJyb3J9YAogICAgICAgIH0KCiAgICAgICAgY29uc3QgZnJhbWVSZWFkeSA9IHRoaXMubW9kdWxlLmdldFZhbHVlKHBGcmFtZVJlYWR5LCAiaTMyIikKICAgICAgICBjb25zdCB3aWR0aCA9IHRoaXMubW9kdWxlLmdldFZhbHVlKHBXaWR0aCwgImkzMiIpCiAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5tb2R1bGUuZ2V0VmFsdWUocEhlaWdodCwgImkzMiIpCgogICAgICAgIGNvbnN0IHN0cmlkZTEgPSB0aGlzLm1vZHVsZS5nZXRWYWx1ZShwU3RyaWRlLCAiaTMyIikKICAgICAgICBjb25zdCBzdHJpZGUyID0gdGhpcy5tb2R1bGUuZ2V0VmFsdWUocFN0cmlkZSArIDQsICJpMzIiKQoKCiAgICAgICAgY29uc3QgcFkgPSB0aGlzLm1vZHVsZS5nZXRWYWx1ZShwT3V0cHV0ICsgUFRSX1NJWkUgKiAwLCAiKiIpCiAgICAgICAgY29uc3QgcFUgPSB0aGlzLm1vZHVsZS5nZXRWYWx1ZShwT3V0cHV0ICsgUFRSX1NJWkUgKiAxLCAiKiIpCiAgICAgICAgY29uc3QgcFYgPSB0aGlzLm1vZHVsZS5nZXRWYWx1ZShwT3V0cHV0ICsgUFRSX1NJWkUgKiAyLCAiKiIpCgogICAgICAgIGlmIChmcmFtZVJlYWR5ICYmIHBZICE9IDAgJiYgcFUgIT0gMCAmJiBwViAhPSAwKSB7CiAgICAgICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9jaXNjby9vcGVuaDI2NC9pc3N1ZXMvMjM3OQogICAgICAgICAgICBjb25zdCB5ID0gdGhpcy5tb2R1bGUuSEVBUFU4LnN1YmFycmF5KHBZLCBwWSArIChoZWlnaHQgKiBzdHJpZGUxKSkKICAgICAgICAgICAgY29uc3QgdSA9IHRoaXMubW9kdWxlLkhFQVBVOC5zdWJhcnJheShwVSwgcFUgKyAoaGVpZ2h0IC8gMikgKiBzdHJpZGUyKQogICAgICAgICAgICBjb25zdCB2ID0gdGhpcy5tb2R1bGUuSEVBUFU4LnN1YmFycmF5KHBWLCBwViArIChoZWlnaHQgLyAyKSAqIHN0cmlkZTIpCgogICAgICAgICAgICB0aGlzLm9wdGlvbnMub25GcmFtZShbeSwgdSwgdl0sIFtzdHJpZGUxLCBzdHJpZGUyXSwgd2lkdGgsIGhlaWdodCkKICAgICAgICB9CgogICAgICAgIHRoaXMubW9kdWxlLnN0YWNrUmVzdG9yZShzdGFjaykKICAgIH0KCiAgICBwcml2YXRlIGNoZWNrUHRyKCkgewogICAgICAgIGlmICghdGhpcy5wRGVjb2RlcikgewogICAgICAgICAgICB0aHJvdyAiRGVjb2RlciB3YXMgYWxyZWFkeSBkZXN0cm95ZWQhIgogICAgICAgIH0KICAgIH0KCiAgICBkZXN0cm95KCkgewogICAgICAgIHRoaXMuY2hlY2tQdHIoKQoKICAgICAgICB0aGlzLm1vZHVsZS5fb3BlbmgyNjRfZGVjb2Rlcl9kZXN0cm95KHRoaXMucERlY29kZXIpCiAgICAgICAgdGhpcy5wRGVjb2RlciA9IDAKICAgIH0KfQoKZXhwb3J0IGZ1bmN0aW9uIHl1dkJ1ZmZlclNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiBudW1iZXIgewogICAgY29uc3QgeVNpemUgPSB3aWR0aCAqIGhlaWdodAogICAgY29uc3QgdXZXaWR0aCA9IHdpZHRoID4+IDEKICAgIGNvbnN0IHV2SGVpZ2h0ID0gaGVpZ2h0ID4+IDEKICAgIGNvbnN0IHV2U2l6ZSA9IHV2V2lkdGggKiB1dkhlaWdodAoKICAgIHJldHVybiB5U2l6ZSArIHV2U2l6ZSAqIDIKfQoKZXhwb3J0IGZ1bmN0aW9uIGNvcHlJbnRvWXV2KGJ1ZmZlcnM6IFVpbnQ4QXJyYXlbXSwgc3RyaWRlOiBbbnVtYmVyLCBudW1iZXJdLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgb3V0QnVmZmVyOiBVaW50OEFycmF5KSB7CiAgICBjb25zdCBbeVBsYW5lLCB1UGxhbmUsIHZQbGFuZV0gPSBidWZmZXJzCiAgICBjb25zdCBbeVN0cmlkZSwgdXZTdHJpZGVdID0gc3RyaWRlCgogICAgY29uc3QgeVNpemUgPSB3aWR0aCAqIGhlaWdodAogICAgY29uc3QgdXZXaWR0aCA9IHdpZHRoID4+IDEKICAgIGNvbnN0IHV2SGVpZ2h0ID0gaGVpZ2h0ID4+IDEKICAgIGNvbnN0IHV2U2l6ZSA9IHV2V2lkdGggKiB1dkhlaWdodAogICAgY29uc3QgYnVmZmVyU2l6ZSA9IHlTaXplICsgdXZTaXplICogMgoKICAgIGlmIChvdXRCdWZmZXIubGVuZ3RoIDwgYnVmZmVyU2l6ZSkgewogICAgICAgIHRocm93ICJZdXYgb3V0cHV0IGJ1ZmZlciB0b28gc21hbGwhIgogICAgfQoKICAgIGxldCBvZmZzZXQgPSAwCgogICAgLy8gQ29weSBZIHBsYW5lCiAgICBmb3IgKGxldCB5ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7CiAgICAgICAgY29uc3Qgc3JjU3RhcnQgPSB5ICogeVN0cmlkZQogICAgICAgIGNvbnN0IHNyY0VuZCA9IHNyY1N0YXJ0ICsgd2lkdGgKICAgICAgICBvdXRCdWZmZXIuc2V0KHlQbGFuZS5zdWJhcnJheShzcmNTdGFydCwgc3JjRW5kKSwgb2Zmc2V0KQogICAgICAgIG9mZnNldCArPSB3aWR0aAogICAgfQoKICAgIC8vIENvcHkgVSBwbGFuZQogICAgZm9yIChsZXQgeSA9IDA7IHkgPCB1dkhlaWdodDsgeSsrKSB7CiAgICAgICAgY29uc3Qgc3JjU3RhcnQgPSB5ICogdXZTdHJpZGUKICAgICAgICBjb25zdCBzcmNFbmQgPSBzcmNTdGFydCArIHV2V2lkdGgKICAgICAgICBvdXRCdWZmZXIuc2V0KHVQbGFuZS5zdWJhcnJheShzcmNTdGFydCwgc3JjRW5kKSwgb2Zmc2V0KQogICAgICAgIG9mZnNldCArPSB1dldpZHRoCiAgICB9CgogICAgLy8gQ29weSBWIHBsYW5lCiAgICBmb3IgKGxldCB5ID0gMDsgeSA8IHV2SGVpZ2h0OyB5KyspIHsKICAgICAgICBjb25zdCBzcmNTdGFydCA9IHkgKiB1dlN0cmlkZQogICAgICAgIGNvbnN0IHNyY0VuZCA9IHNyY1N0YXJ0ICsgdXZXaWR0aAogICAgICAgIG91dEJ1ZmZlci5zZXQodlBsYW5lLnN1YmFycmF5KHNyY1N0YXJ0LCBzcmNFbmQpLCBvZmZzZXQpCiAgICAgICAgb2Zmc2V0ICs9IHV2V2lkdGgKICAgIH0KCiAgICByZXR1cm4gb3V0QnVmZmVyCn0="},{"path":"web/libopus/index.ts","sha256":"082dab7098bec777782330e8a278ffebdddb0bd2eb926f9aa66baa252bc90a03","contentBase64":"Ly8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NckNyZWF0aXYzMDAxL2xpYm9wdXMtanMKCmltcG9ydCB0eXBlIHsgTWFpbk1vZHVsZSB9IGZyb20gIi4vbGlib3B1cy5qcyIKCmV4cG9ydCBjb25zdCBPUFVTX09LID0gMApleHBvcnQgY29uc3QgT1BVU19CQURfQVJHID0gLTEKZXhwb3J0IGNvbnN0IE9QVVNfQlVGRkVSX1RPT19TTUFMTCA9IC0yCmV4cG9ydCBjb25zdCBPUFVTX0lOVEVSTkFMX0VSUk9SID0gLTMKZXhwb3J0IGNvbnN0IE9QVVNfSU5WQUxJRF9QQUNLRVQgPSAtNApleHBvcnQgY29uc3QgT1BVU19VTklNUExFTUVOVEVEID0gLTUKZXhwb3J0IGNvbnN0IE9QVVNfSU5WQUxJRF9TVEFURSA9IC02CmV4cG9ydCBjb25zdCBPUFVTX0FMTE9DX0ZBSUwgPSAtNwoKZXhwb3J0IGNsYXNzIE9wdXNFcnJvciBleHRlbmRzIEVycm9yIHsKICAgIHN0YXRpYyBnZXRNZXNzYWdlRnJvbUNvZGUoZXJyb3JDb2RlOiBudW1iZXIpOiBzdHJpbmcgewogICAgICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7CiAgICAgICAgICAgIGNhc2UgT1BVU19PSzoKICAgICAgICAgICAgICAgIHJldHVybiAiT2siCiAgICAgICAgICAgIGNhc2UgT1BVU19CQURfQVJHOgogICAgICAgICAgICAgICAgcmV0dXJuICJCYWQgQXJndW1lbnQiCiAgICAgICAgICAgIGNhc2UgT1BVU19CVUZGRVJfVE9PX1NNQUxMOgogICAgICAgICAgICAgICAgcmV0dXJuICJCdWZmZXIgVG9vIFNtYWxsIgogICAgICAgICAgICBjYXNlIE9QVVNfSU5URVJOQUxfRVJST1I6CiAgICAgICAgICAgICAgICByZXR1cm4gIkludGVybmFsIEVycm9yIgogICAgICAgICAgICBjYXNlIE9QVVNfSU5WQUxJRF9QQUNLRVQ6CiAgICAgICAgICAgICAgICByZXR1cm4gIkludmFsaWQgUGFja2V0IgogICAgICAgICAgICBjYXNlIE9QVVNfVU5JTVBMRU1FTlRFRDoKICAgICAgICAgICAgICAgIHJldHVybiAiVW5pbXBsZW1lbnRlZCBGZWF0dXJlIgogICAgICAgICAgICBjYXNlIE9QVVNfSU5WQUxJRF9TVEFURToKICAgICAgICAgICAgICAgIHJldHVybiAiSW52YWxpZCBTdGF0ZSIKICAgICAgICAgICAgY2FzZSBPUFVTX0FMTE9DX0ZBSUw6CiAgICAgICAgICAgICAgICByZXR1cm4gIk1lbW9yeSBBbGxvY2F0aW9uIEZhaWxlZCIKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiBgVW5rbm93biBPcHVzIGVycm9yIGNvZGU6ICR7ZXJyb3JDb2RlfWAKICAgICAgICB9CiAgICB9CgogICAgcmVhZG9ubHkgZXJyb3JDb2RlOiBudW1iZXIKCiAgICBjb25zdHJ1Y3RvcihlcnJvckNvZGU6IG51bWJlcikgewogICAgICAgIHN1cGVyKE9wdXNFcnJvci5nZXRNZXNzYWdlRnJvbUNvZGUoZXJyb3JDb2RlKSkKICAgICAgICB0aGlzLm5hbWUgPSAiT3B1c0Vycm9yIgoKICAgICAgICB0aGlzLmVycm9yQ29kZSA9IGVycm9yQ29kZQogICAgfQp9CgovLyBodHRwczovL3d3dy5vcHVzLWNvZGVjLm9yZy9kb2NzL29wdXNfYXBpLTEuMS4yL2dyb3VwX19vcHVzX19tdWx0aXN0cmVhbS5odG1sCmV4cG9ydCBjbGFzcyBPcHVzTXVsdGlzdHJlYW1EZWNvZGVyIHsKICAgIHByaXZhdGUgbW9kdWxlOiBNYWluTW9kdWxlCiAgICBwcml2YXRlIHB0cjogbnVtYmVyID0gMAoKICAgIHByaXZhdGUgY2hhbm5lbHM6IG51bWJlciA9IDAKCiAgICBwcml2YXRlIGlucHV0QnVmZmVyOiBCdWZmZXIKICAgIHByaXZhdGUgb3V0cHV0QnVmZmVyOiBCdWZmZXIKCiAgICBjb25zdHJ1Y3Rvcihtb2R1bGU6IE1haW5Nb2R1bGUsIHNhbXBsZVJhdGU6IG51bWJlciwgY2hhbm5lbHM6IG51bWJlciwgc3RyZWFtczogbnVtYmVyLCBjb3VwbGVkX2NoYW5uZWxzOiBudW1iZXIsIG1hcHBpbmdzOiBBcnJheTxudW1iZXI+KSB7CiAgICAgICAgaWYgKG1hcHBpbmdzLmxlbmd0aCA8IGNoYW5uZWxzKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBPcHVzRXJyb3IoT1BVU19CQURfQVJHKQogICAgICAgIH0KCiAgICAgICAgdGhpcy5tb2R1bGUgPSBtb2R1bGUKICAgICAgICB0aGlzLmNoYW5uZWxzID0gY2hhbm5lbHMKCiAgICAgICAgY29uc3Qgc3RhY2tUb3AgPSBtb2R1bGUuc3RhY2tTYXZlKCkKCiAgICAgICAgY29uc3QgbWFwcGluZ1B0ciA9IG1vZHVsZS5zdGFja0FsbG9jKG1hcHBpbmdzLmxlbmd0aCkKICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2hhbm5lbHM7IGluZGV4KyspIHsKICAgICAgICAgICAgY29uc3QgbWFwcGluZyA9IG1hcHBpbmdzW2luZGV4XQoKICAgICAgICAgICAgaWYgKG1hcHBpbmcgPCAwIHx8IG1hcHBpbmcgPiAyNTUpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBPcHVzRXJyb3IoT1BVU19CQURfQVJHKQogICAgICAgICAgICB9CiAgICAgICAgICAgIG1vZHVsZS5IRUFQVThbbWFwcGluZ1B0ciArIGluZGV4XSA9IG1hcHBpbmcKICAgICAgICB9CgogICAgICAgIGNvbnN0IGVycm9yUHRyID0gbW9kdWxlLnN0YWNrQWxsb2MoNCkKCiAgICAgICAgdGhpcy5wdHIgPSBtb2R1bGUuX29wdXNfbXVsdGlzdHJlYW1fZGVjb2Rlcl9jcmVhdGUoc2FtcGxlUmF0ZSwgY2hhbm5lbHMsIGNvdXBsZWRfY2hhbm5lbHMsIHN0cmVhbXMsIG1hcHBpbmdQdHIsIGVycm9yUHRyKQoKICAgICAgICBtb2R1bGUuc3RhY2tSZXN0b3JlKHN0YWNrVG9wKQoKICAgICAgICBjb25zdCBlcnJvciA9IHRoaXMubW9kdWxlLmdldFZhbHVlKGVycm9yUHRyLCAiaTMyIikKICAgICAgICBpZiAoZXJyb3IgIT0gT1BVU19PSykgewogICAgICAgICAgICB0aHJvdyBuZXcgT3B1c0Vycm9yKGVycm9yKQogICAgICAgIH0KCiAgICAgICAgdGhpcy5pbnB1dEJ1ZmZlciA9IG5ldyBCdWZmZXIodGhpcy5tb2R1bGUpCiAgICAgICAgdGhpcy5vdXRwdXRCdWZmZXIgPSBuZXcgQnVmZmVyKHRoaXMubW9kdWxlKQogICAgfQoKICAgIHByaXZhdGUgY2hlY2tQdHIoKSB7CiAgICAgICAgaWYgKHRoaXMucHRyID09IDApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IE9wdXNFcnJvcihPUFVTX0lOVkFMSURfU1RBVEUpCiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogRGVjb2RlIGEgbXVsdGlzdHJlYW0gT3B1cyBwYWNrZXQgd2l0aCBmbG9hdGluZyBwb2ludCBvdXRwdXQuCiAgICAgKiBAcGFyYW0gaW5wdXQgSW5wdXQgcGF5bG9hZC4gVXNlIGEgTlVMTCBwb2ludGVyIHRvIGluZGljYXRlIHBhY2tldCBsb3NzLgogICAgICogQHBhcmFtIG91dHB1dCBPdXRwdXQgc2lnbmFsLCB3aXRoIGludGVybGVhdmVkIHNhbXBsZXMuIFRoaXMgbXVzdCBjb250YWluIHJvb20gZm9yIGZyYW1lX3NpemUqY2hhbm5lbHMgc2FtcGxlcy4KICAgICAqIEBwYXJhbSBmcmFtZVNpemUgVGhlIG51bWJlciBvZiBzYW1wbGVzIHBlciBjaGFubmVsIG9mIGF2YWlsYWJsZSBzcGFjZSBpbiBwY20uIElmIHRoaXMgaXMgbGVzcyB0aGFuIHRoZSBtYXhpbXVtIHBhY2tldCBkdXJhdGlvbiAoMTIwIG1zIDU3NjAgZm9yIDQ4a0h6KSwgdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBiZSBjYXBhYmxlIG9mIGRlY29kaW5nIHNvbWUgcGFja2V0cy4gSW4gdGhlIGNhc2Ugb2YgUExDIChkYXRhPT1OVUxMKSBvciBGRUMgKGRlY29kZV9mZWM9MSksIHRoZW4gZnJhbWVfc2l6ZSBuZWVkcyB0byBiZSBleGFjdGx5IHRoZSBkdXJhdGlvbiBvZiBhdWRpbyB0aGF0IGlzIG1pc3NpbmcsIG90aGVyd2lzZSB0aGUgZGVjb2RlciB3aWxsIG5vdCBiZSBpbiB0aGUgb3B0aW1hbCBzdGF0ZSB0byBkZWNvZGUgdGhlIG5leHQgaW5jb21pbmcgcGFja2V0LiBGb3IgdGhlIFBMQyBhbmQgRkVDIGNhc2VzLCBmcmFtZV9zaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAyLjUgbXMuCiAgICAgKiBAcGFyYW0gZGVjb2RlRmVjIFJlcXVlc3QgdGhhdCBhbnkgaW4tYmFuZCBmb3J3YXJkIGVycm9yIGNvcnJlY3Rpb24gZGF0YSBiZSBkZWNvZGVkLiBJZiBubyBzdWNoIGRhdGEgaXMgYXZhaWxhYmxlLCB0aGUgZnJhbWUgaXMgZGVjb2RlZCBhcyBpZiBpdCB3ZXJlIGxvc3QuCiAgICAgKiBAcmV0dXJucyBOdW1iZXIgb2Ygc2FtcGxlcyBkZWNvZGVkCiAgICAgKi8KICAgIGRlY29kZUZsb2F0KGlucHV0OiBBcnJheUJ1ZmZlciB8IG51bGwsIG91dHB1dDogRmxvYXQzMkFycmF5LCBmcmFtZVNpemU6IG51bWJlciwgZGVjb2RlRmVjOiBib29sZWFuKTogbnVtYmVyIHsKICAgICAgICBjb25zdCBvdXRwdXRTaXplID0gdGhpcy5jaGFubmVscyAqIGZyYW1lU2l6ZSAqIDQKICAgICAgICAvLyA0IGJ5dGVzIHBlciBmbG9hdAogICAgICAgIGlmIChvdXRwdXQuYnl0ZUxlbmd0aCA8IG91dHB1dFNpemUpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IE9wdXNFcnJvcihPUFVTX0JVRkZFUl9UT09fU01BTEwpCiAgICAgICAgfQoKICAgICAgICB0aGlzLmNoZWNrUHRyKCkKCiAgICAgICAgaWYgKGlucHV0KSB7CiAgICAgICAgICAgIHRoaXMuaW5wdXRCdWZmZXIuZW5zdXJlU2l6ZShpbnB1dC5ieXRlTGVuZ3RoKQogICAgICAgICAgICB0aGlzLmlucHV0QnVmZmVyLndyaXRlQnVmZmVyKG5ldyBVaW50OEFycmF5KGlucHV0KSkKICAgICAgICB9CgogICAgICAgIHRoaXMub3V0cHV0QnVmZmVyLmVuc3VyZVNpemUob3V0cHV0U2l6ZSkKCiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5tb2R1bGUuX29wdXNfbXVsdGlzdHJlYW1fZGVjb2RlX2Zsb2F0KHRoaXMucHRyLCB0aGlzLmlucHV0QnVmZmVyLmdldFB0cigpLCBpbnB1dD8uYnl0ZUxlbmd0aCA/PyAwLCB0aGlzLm91dHB1dEJ1ZmZlci5nZXRQdHIoKSwgZnJhbWVTaXplLCBkZWNvZGVGZWMgPyAxIDogMCkKCiAgICAgICAgaWYgKHJlc3VsdCA8IDApIHsKICAgICAgICAgICAgdGhyb3cgbmV3IE9wdXNFcnJvcihyZXN1bHQpCiAgICAgICAgfQoKICAgICAgICBjb25zdCBvdXRwdXRCdWZmZXIgPSB0aGlzLm91dHB1dEJ1ZmZlci5hc0J1ZmZlckYzMigwLCB0aGlzLmNoYW5uZWxzICogZnJhbWVTaXplKQogICAgICAgIG91dHB1dC5zZXQob3V0cHV0QnVmZmVyKQoKICAgICAgICByZXR1cm4gcmVzdWx0CiAgICB9CgogICAgZGVzdHJveSgpIHsKICAgICAgICB0aGlzLmNoZWNrUHRyKCkKCiAgICAgICAgdGhpcy5pbnB1dEJ1ZmZlci5mcmVlKCkKICAgICAgICB0aGlzLm91dHB1dEJ1ZmZlci5mcmVlKCkKCiAgICAgICAgdGhpcy5tb2R1bGUuX29wdXNfbXVsdGlzdHJlYW1fZGVjb2Rlcl9kZXN0cm95KHRoaXMucHRyKQogICAgICAgIHRoaXMucHRyID0gMAogICAgfQp9CgpjbGFzcyBCdWZmZXIgewogICAgcHJpdmF0ZSBtb2R1bGU6IE1haW5Nb2R1bGUKCiAgICBwcml2YXRlIGxlbmd0aDogbnVtYmVyID0gMAogICAgcHJpdmF0ZSBwdHI6IG51bWJlciA9IDAKCiAgICBjb25zdHJ1Y3Rvcihtb2R1bGU6IE1haW5Nb2R1bGUsIGJ5dGVTaXplPzogbnVtYmVyKSB7CiAgICAgICAgdGhpcy5tb2R1bGUgPSBtb2R1bGUKCiAgICAgICAgdGhpcy5lbnN1cmVTaXplKGJ5dGVTaXplID8/IDApCiAgICB9CgogICAgZW5zdXJlU2l6ZShsZW5ndGg6IG51bWJlcikgewogICAgICAgIGlmIChsZW5ndGggPT0gMCkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGlmICghdGhpcy5wdHIpIHsKICAgICAgICAgICAgdGhpcy5wdHIgPSB0aGlzLm1vZHVsZS5fbWFsbG9jKGxlbmd0aCkKICAgICAgICAgICAgdGhpcy5sZW5ndGggPSBsZW5ndGgKICAgICAgICB9IGVsc2UgaWYgKHRoaXMubGVuZ3RoIDwgbGVuZ3RoKSB7CiAgICAgICAgICAgIHRoaXMuZnJlZSgpCgogICAgICAgICAgICB0aGlzLnB0ciA9IHRoaXMubW9kdWxlLl9tYWxsb2MobGVuZ3RoKQogICAgICAgICAgICB0aGlzLmxlbmd0aCA9IGxlbmd0aAogICAgICAgIH0KICAgIH0KCiAgICBmcmVlKCkgewogICAgICAgIGlmICh0aGlzLnB0cikgewogICAgICAgICAgICB0aGlzLm1vZHVsZS5fZnJlZSh0aGlzLnB0cikKICAgICAgICAgICAgdGhpcy5wdHIgPSAwCiAgICAgICAgICAgIHRoaXMubGVuZ3RoID0gMAogICAgICAgIH0KICAgIH0KCiAgICB3cml0ZUJ1ZmZlcihpbnB1dDogVWludDhBcnJheSkgewogICAgICAgIGlmIChpbnB1dC5ieXRlTGVuZ3RoID09IDApIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLmNoZWNrUHRyKCkKICAgICAgICBpZiAodGhpcy5sZW5ndGggPCBpbnB1dC5ieXRlTGVuZ3RoKSB7CiAgICAgICAgICAgIHRocm93ICJCdWZmZXJPdXRPZkJvdW5kcyIKICAgICAgICB9CgogICAgICAgIHRoaXMubW9kdWxlLndyaXRlQXJyYXlUb01lbW9yeShpbnB1dCwgdGhpcy5wdHIpCiAgICB9CiAgICBhc0J1ZmZlckYzMihvZmZzZXRGMzI6IG51bWJlciwgbGVuZ3RoRjMyOiBudW1iZXIpOiBGbG9hdDMyQXJyYXkgewogICAgICAgIGlmIChsZW5ndGhGMzIgPD0gMCkgewogICAgICAgICAgICByZXR1cm4gbmV3IEZsb2F0MzJBcnJheShbXSkKICAgICAgICB9CgogICAgICAgIHRoaXMuY2hlY2tQdHIoKQogICAgICAgIGlmICgob2Zmc2V0RjMyICsgbGVuZ3RoRjMyKSAqIDQgPCB0aGlzLmxlbmd0aCB8fCBvZmZzZXRGMzIgPCAwIHx8IGxlbmd0aEYzMiA8IDApIHsKICAgICAgICAgICAgdGhyb3cgIkJ1ZmZlck91dE9mQm91bmRzIgogICAgICAgIH0KCiAgICAgICAgY29uc3QgYnVmZmVyID0gbmV3IEZsb2F0MzJBcnJheSh0aGlzLm1vZHVsZS5IRUFQRjMyLmJ1ZmZlciwgdGhpcy5wdHIgKyAob2Zmc2V0RjMyICogNCksIGxlbmd0aEYzMikKCiAgICAgICAgcmV0dXJuIGJ1ZmZlcgogICAgfQoKICAgIHByaXZhdGUgY2hlY2tQdHIoKSB7CiAgICAgICAgaWYgKCF0aGlzLnB0cikgewogICAgICAgICAgICB0aHJvdyAiTnVsbFBvaW50ZXIiCiAgICAgICAgfQogICAgfQoKICAgIGdldFB0cigpOiBudW1iZXIgewogICAgICAgIHJldHVybiB0aGlzLnB0cgogICAgfQogICAgZ2V0TGVuZ3RoKCk6IG51bWJlciB7CiAgICAgICAgcmV0dXJuIHRoaXMubGVuZ3RoCiAgICB9Cn0="},{"path":"web/libopus/libopus.d.ts","sha256":"8d71f0885db862a8a34e0bb0e6603bf38e6cadd664870f0caa82d19357e7f0bd","contentBase64":"Ly8gVHlwZVNjcmlwdCBiaW5kaW5ncyBmb3IgZW1zY3JpcHRlbi1nZW5lcmF0ZWQgY29kZS4gIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGF0IGNvbXBpbGUgdGltZS4KZGVjbGFyZSBuYW1lc3BhY2UgUnVudGltZUV4cG9ydHMgewogICAgLyoqCiAgICAgKiBAcGFyYW0ge3N0cmluZz19IHJldHVyblR5cGUKICAgICAqIEBwYXJhbSB7QXJyYXk9fSBhcmdUeXBlcwogICAgICogQHBhcmFtIHtPYmplY3Q9fSBvcHRzCiAgICAgKi8KICAgIGZ1bmN0aW9uIGN3cmFwKGlkZW50OiBhbnksIHJldHVyblR5cGU/OiBzdHJpbmcgfCB1bmRlZmluZWQsIGFyZ1R5cGVzPzogYW55W10gfCB1bmRlZmluZWQsIG9wdHM/OiBhbnkgfCB1bmRlZmluZWQpOiAoLi4uYXJnczogYW55W10pID0+IGFueTsKICAgIC8qKgogICAgICogQHBhcmFtIHtzdHJpbmd8bnVsbD19IHJldHVyblR5cGUKICAgICAqIEBwYXJhbSB7QXJyYXk9fSBhcmdUeXBlcwogICAgICogQHBhcmFtIHtBcnJheT19IGFyZ3MKICAgICAqIEBwYXJhbSB7T2JqZWN0PX0gb3B0cwogICAgICovCiAgICBmdW5jdGlvbiBjY2FsbChpZGVudDogYW55LCByZXR1cm5UeXBlPzogKHN0cmluZyB8IG51bGwpIHwgdW5kZWZpbmVkLCBhcmdUeXBlcz86IGFueVtdIHwgdW5kZWZpbmVkLCBhcmdzPzogYW55W10gfCB1bmRlZmluZWQsIG9wdHM/OiBhbnkgfCB1bmRlZmluZWQpOiBhbnk7CiAgICBmdW5jdGlvbiBzdGFja0FsbG9jKHN6OiBhbnkpOiBhbnk7CiAgICBmdW5jdGlvbiBzdGFja1NhdmUoKTogYW55OwogICAgZnVuY3Rpb24gc3RhY2tSZXN0b3JlKHZhbDogYW55KTogYW55OwogICAgLyoqCiAgICAgKiBAcGFyYW0ge251bWJlcn0gcHRyCiAgICAgKiBAcGFyYW0ge251bWJlcn0gdmFsdWUKICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0eXBlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldFZhbHVlKHB0cjogbnVtYmVyLCB2YWx1ZTogbnVtYmVyLCB0eXBlPzogc3RyaW5nKTogdm9pZDsKICAgIC8qKgogICAgICogQHBhcmFtIHtudW1iZXJ9IHB0cgogICAgICogQHBhcmFtIHtzdHJpbmd9IHR5cGUKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0VmFsdWUocHRyOiBudW1iZXIsIHR5cGU/OiBzdHJpbmcpOiBhbnk7CiAgICBmdW5jdGlvbiB3cml0ZUFycmF5VG9NZW1vcnkoYXJyYXk6IGFueSwgYnVmZmVyOiBhbnkpOiB2b2lkOwogICAgbGV0IEhFQVBVODogYW55OwogICAgbGV0IEhFQVBGMzI6IGFueTsKfQppbnRlcmZhY2UgV2FzbU1vZHVsZSB7CiAgX29wdXNfbXVsdGlzdHJlYW1fZGVjb2Rlcl9jcmVhdGUoXzA6IG51bWJlciwgXzE6IG51bWJlciwgXzI6IG51bWJlciwgXzM6IG51bWJlciwgXzQ6IG51bWJlciwgXzU6IG51bWJlcik6IG51bWJlcjsKICBfb3B1c19tdWx0aXN0cmVhbV9kZWNvZGVfZmxvYXQoXzA6IG51bWJlciwgXzE6IG51bWJlciwgXzI6IG51bWJlciwgXzM6IG51bWJlciwgXzQ6IG51bWJlciwgXzU6IG51bWJlcik6IG51bWJlcjsKICBfb3B1c19tdWx0aXN0cmVhbV9kZWNvZGVyX2Rlc3Ryb3koXzA6IG51bWJlcik6IHZvaWQ7CiAgX21hbGxvYyhfMDogbnVtYmVyKTogbnVtYmVyOwogIF9mcmVlKF8wOiBudW1iZXIpOiB2b2lkOwp9CgpleHBvcnQgdHlwZSBNYWluTW9kdWxlID0gV2FzbU1vZHVsZSAmIHR5cGVvZiBSdW50aW1lRXhwb3J0czsKZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWFpbk1vZHVsZUZhY3RvcnkgKG9wdGlvbnM/OiB1bmtub3duKTogUHJvbWlzZTxNYWluTW9kdWxlPjsK"},{"path":"web/libopus/libopus.js","sha256":"dde6e015be814fca78dfb4f7e40ad95741646f2cca0603ebaf7f1755b91b8548","contentBase64":"YXN5bmMgZnVuY3Rpb24gTW9kdWxlKG1vZHVsZUFyZz17fSl7dmFyIG1vZHVsZVJ0bjt2YXIgTW9kdWxlPW1vZHVsZUFyZzt2YXIgRU5WSVJPTk1FTlRfSVNfV0VCPXRydWU7dmFyIEVOVklST05NRU5UX0lTX1dPUktFUj1mYWxzZTt2YXIgYXJndW1lbnRzXz1bXTt2YXIgdGhpc1Byb2dyYW09Ii4vdGhpcy5wcm9ncmFtIjt2YXIgcXVpdF89KHN0YXR1cyx0b1Rocm93KT0+e3Rocm93IHRvVGhyb3d9O3ZhciBfc2NyaXB0TmFtZT1pbXBvcnQubWV0YS51cmw7dmFyIHNjcmlwdERpcmVjdG9yeT0iIjt2YXIgcmVhZEFzeW5jO2lmKEVOVklST05NRU5UX0lTX1dFQnx8RU5WSVJPTk1FTlRfSVNfV09SS0VSKXt0cnl7c2NyaXB0RGlyZWN0b3J5PW5ldyBVUkwoIi4iLF9zY3JpcHROYW1lKS5ocmVmfWNhdGNoe317cmVhZEFzeW5jPWFzeW5jIHVybD0+e3ZhciByZXNwb25zZT1hd2FpdCBmZXRjaCh1cmwse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KTtpZihyZXNwb25zZS5vayl7cmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCl9dGhyb3cgbmV3IEVycm9yKHJlc3BvbnNlLnN0YXR1cysiIDogIityZXNwb25zZS51cmwpfX19ZWxzZXt9dmFyIG91dD1jb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpO3ZhciBlcnI9Y29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO3ZhciB3YXNtQmluYXJ5O3ZhciBBQk9SVD1mYWxzZTt2YXIgRVhJVFNUQVRVUztmdW5jdGlvbiBiaW5hcnlEZWNvZGUoYmluKXtmb3IodmFyIGk9MCxsPWJpbi5sZW5ndGgsbz1uZXcgVWludDhBcnJheShsKSxjO2k8bDsrK2kpe2M9YmluLmNoYXJDb2RlQXQoaSk7b1tpXT1+Yz4+OCZjfXJldHVybiBvfXZhciByZWFkeVByb21pc2VSZXNvbHZlLHJlYWR5UHJvbWlzZVJlamVjdDt2YXIgSEVBUDgsSEVBUFU4LEhFQVAxNixIRUFQVTE2LEhFQVAzMixIRUFQVTMyLEhFQVBGMzIsSEVBUEY2NDt2YXIgSEVBUDY0LEhFQVBVNjQ7dmFyIHJ1bnRpbWVJbml0aWFsaXplZD1mYWxzZTtmdW5jdGlvbiB1cGRhdGVNZW1vcnlWaWV3cygpe3ZhciBiPXdhc21NZW1vcnkuYnVmZmVyO0hFQVA4PW5ldyBJbnQ4QXJyYXkoYik7SEVBUDE2PW5ldyBJbnQxNkFycmF5KGIpO01vZHVsZVsiSEVBUFU4Il09SEVBUFU4PW5ldyBVaW50OEFycmF5KGIpO0hFQVBVMTY9bmV3IFVpbnQxNkFycmF5KGIpO0hFQVAzMj1uZXcgSW50MzJBcnJheShiKTtIRUFQVTMyPW5ldyBVaW50MzJBcnJheShiKTtNb2R1bGVbIkhFQVBGMzIiXT1IRUFQRjMyPW5ldyBGbG9hdDMyQXJyYXkoYik7SEVBUEY2ND1uZXcgRmxvYXQ2NEFycmF5KGIpO0hFQVA2ND1uZXcgQmlnSW50NjRBcnJheShiKTtIRUFQVTY0PW5ldyBCaWdVaW50NjRBcnJheShiKX1mdW5jdGlvbiBwcmVSdW4oKXtpZihNb2R1bGVbInByZVJ1biJdKXtpZih0eXBlb2YgTW9kdWxlWyJwcmVSdW4iXT09ImZ1bmN0aW9uIilNb2R1bGVbInByZVJ1biJdPVtNb2R1bGVbInByZVJ1biJdXTt3aGlsZShNb2R1bGVbInByZVJ1biJdLmxlbmd0aCl7YWRkT25QcmVSdW4oTW9kdWxlWyJwcmVSdW4iXS5zaGlmdCgpKX19Y2FsbFJ1bnRpbWVDYWxsYmFja3Mob25QcmVSdW5zKX1mdW5jdGlvbiBpbml0UnVudGltZSgpe3J1bnRpbWVJbml0aWFsaXplZD10cnVlO3dhc21FeHBvcnRzWyJoIl0oKX1mdW5jdGlvbiBwb3N0UnVuKCl7aWYoTW9kdWxlWyJwb3N0UnVuIl0pe2lmKHR5cGVvZiBNb2R1bGVbInBvc3RSdW4iXT09ImZ1bmN0aW9uIilNb2R1bGVbInBvc3RSdW4iXT1bTW9kdWxlWyJwb3N0UnVuIl1dO3doaWxlKE1vZHVsZVsicG9zdFJ1biJdLmxlbmd0aCl7YWRkT25Qb3N0UnVuKE1vZHVsZVsicG9zdFJ1biJdLnNo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ayIDQcO/AUtccgALCyAAIAYgAxAPCyAGQcKAAmokAAvCnwUBBH8gAC0AAEEgcUUEQAJAIAAoAhAiAwR/IAMFIAAQNFxyASAAKAIQCyAAKAIUIgVrIAJJBEAgACABIAIgACgCJBEBABoMAQsCQAJAIAAoAlBBAEhccgAgAkVccgAgAiEEA0AgASAEaiIDQQFrLQAAQVxuRwRAIARBAWsiBFxyAQwCCwsgACABIAQgACgCJBEBACAESVxyAiACIARrIQIgACgCFCEFDAELIAEhAwsgBSEBAkAgAkHCgARPBEAgAgRAIAEgAyACw7xcbgAACwwBCyABIAJqIQQCQCABIANzQQNxRQRAAkAgAUEDcUVccgAgAkVccgADQCABIAMtAAA6AAAgA0EBaiEDIAFBAWoiAUEDcUVccgEgASAESVxyAAsLIARBfHEhBQJAIARBw4AASVxyACABIAVBQGoiBktccgADQCABIAMoAgA2AgAgASADKAIENgIEIAEgAygCCDYCCCABIAMoAgw2AgwgASADKAIQNgIQIAEgAygCFDYCFCABIAMoAhg2AhggASADKAIcNgIcIAEgAygCIDYCICABIAMoAiQ2AiQgASADKAIoNgIoIAEgAygCLDYCLCABIAMoAjA2AjAgASADKAI0NgI0IAEgAygCODYCOCABIAMoAjw2AjwgA0FAayEDIAFBQGsiASAGTVxyAAsLIAEgBU9ccgEDQCABIAMoAgA2AgAgA0EEaiEDIAFBBGoiASAFSVxyAAsMAQsgBEEESVxyACACQQRJXHIAIARBBGshBQNAIAEgAy0AADoAACABIAMtAAE6AAEgASADLQACOgACIAEgAy0AAzoAAyADQQRqIQMgAUEEaiIBIAVNXHIACwsgASAESQRAA0AgASADLQAAOgAAIANBAWohAyABQQFqIgEgBEdccgALCwsgACAAKAIUIAJqNgIUCwsLwoVFAih/An0jAEHDkAFrIgYkACAGIgtBADYCwpgBQX4hDAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAEIAAoAgwiFEEybSIiQQN1IhlIXHIAIAAoAgAhLCAAKAIEIREgIkECdSEdICJBAXUhXG4gBCAUQRltQQNsIhQgBCAUSBshDAJ/AkACQAJAAkACQAJ/AkACQCACQQFMBEAgDCAAKAJMIgEgASAMShsh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bnMAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wubkNoYW5uZWxzQVBJID09IHN0LT5jaGFubmVscwBhc3NlcnRpb24gZmFpbGVkOiBzdC0+RGVjQ29udHJvbC5BUElfc2FtcGxlUmF0ZSA9PSBzdC0+RnMAYXNzZXJ0aW9uIGZhaWxlZDogcHNEZWMtPnBzTkxTRl9DQi0+b3JkZXIgPT0gcHNEZWMtPkxQQ19vcmRlcgBhc3NlcnRpb24gZmFpbGVkOiBkIDw9IGxlbgBhc3NlcnRpb24gZmFpbGVkOiBmbDw9Zm0AYXNzZXJ0aW9uIGZhaWxlZDogcHNEZWMtPmx0cF9tZW1fbGVuZ3RoID49IHBzRGVjLT5mcmFtZV9sZW5ndGgAL2xpYm9wdXMvY2VsdC9waXRjaC5oAGFzc2VydGlvbiBmYWlsZWQ6IHJldD09cGFja2V0X2ZyYW1lX3NpemUAYXNzZXJ0aW9uIGZhaWxlZDogcmV0PT1mcmFtZV9zaXplLXBhY2tldF9mcmFtZV9zaXplAGFzc2VydGlvbiBmYWlsZWQ6IHBjbV9jb3VudCA9PSBmcmFtZV9zaXplAGFzc2VydGlvbiBmYWlsZWQ6IEs+MFxuYWxnX3VucXVhbnQoKSBuZWVkcyBhdCBsZWFzdCBvbmUgcHVsc2UAYXNzZXJ0aW9uIGZhaWxlZDogSz4wXG5hbGdfcXVhbnQoKSBuZWVkcyBhdCBsZWFzdCBvbmUgcHVsc2UAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0YXJ0IDwgc3QtPmVuZABhc3NlcnRpb24gZmFpbGVkOiBzdGFydCA8PSBlbmQAL2xpYm9wdXMvc2lsay9zb3J0LmMAL2xpYm9wdXMvY2VsdC9jZWx0LmMAL2xpYm9wdXMvY2VsdC9raXNzX2ZmdC5jAC9saWJvcHVzL2NlbHQvY3dycy5jAC9saWJvcHVzL3NyYy9leHRlbnNpb25zLmMAL2xpYm9wdXMvc2lsay9kZWNvZGVyX3NldF9mcy5jAC9saWJvcHVzL3NpbGsvZGVjb2RlX3B1bHNlcy5jAC9saWJvcHVzL3NpbGsvZGVjb2RlX2luZGljZXMuYwAvbGlib3B1cy9jZWx0L2JhbmRzLmMAL2xpYm9wdXMvc2lsay9MUENfYW5hbHlzaXNfZmlsdGVyLmMAL2xpYm9wdXMvc2lsay9yZXNhbXBsZXIuYwAvbGlib3B1cy9jZWx0L2NlbHRfZGVjb2Rlci5jAC9saWJvcHVzL3NyYy9vcHVzX2RlY29kZXIuYwAvbGlib3B1cy9zcmMvb3B1c19tdWx0aXN0cmVhbV9kZWNvZGVyLmMAL2xpYm9wdXMvY2VsdC92cS5jAC9saWJvcHVzL3NpbGsvZGVjb2RlX3BpdGNoLmMAL2xpYm9wdXMvY2VsdC9waXRjaC5jAC9saWJvcHVzL2NlbHQvcmF0ZS5jAC9saWJvcHVzL3NpbGsvZGVjb2RlX2NvcmUuYwAvbGlib3B1cy9zaWxrL2RlY29kZV9mcmFtZS5jAC9saWJvcHVzL2NlbHQvbGFwbGFjZS5jAC9saWJvcHVzL2NlbHQvY2VsdF9scGMuYwAvbGlib3B1cy9jZWx0L2VudGVuYy5jAC9saWJvcHVzL2NlbHQvZW50ZGVjLmMAL2xpYm9wdXMvc2lsay9yZXNhbXBsZXJfcHJpdmF0ZV9kb3duX0ZJUi5jAC9saWJvcHVzL3NpbGsvZGVjX0FQSS5jAC9saWJvcHVzL3NpbGsvQ05HLmMAL2xpYm9wdXMvc2lsay9QTEMuYwAvbGlib3B1cy9zaWxrL05MU0YyQS5jAGFzc2VydGlvbiBmYWlsZWQ6IEMqZWJpdHNbal08PEJJVFJFUyA9PSBiaXRzW2pdAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4IDw9IFBMQ19QSVRDSF9MQUdfTUFYAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5hcmNoIDw9IE9QVVNfQVJDSE1BU0sAYXNzZXJ0aW9uIGZhaWxlZDogKG9wdXNfY3VzdG9tX2RlY29kZXJfY3RsKGNlbHRfZGVjLCA0MDI4KSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDA4LCAoKCh2b2lkKSgoc3QtPnN0cmVhbV9jaGFubmVscykgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoc3QtPnN0cmVhbV9jaGFubmVscykpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDEyLCAoKCh2b2lkKSgoZW5kYmFuZCkgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoZW5kYmFuZCkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDEwLCAoKCh2b2lkKSgoc3RhcnRfYmFuZCkgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoc3RhcnRfYmFuZCkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDEwLCAoKCh2b2lkKSgoMCkgPT0gKG9wdXNfaW50MzIpMCkpLCAob3B1c19pbnQzMikoMCkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19tdWx0aXN0cmVhbV9kZWNvZGVyX2N0bChzdCwgNDAyOSwgKCgmRnMpICsgKCgmRnMpIC0gKG9wdXNfaW50MzIqKSgmRnMpKSkpKSA9PSBPUFVTX09LAGFzc2VydGlvbiBmYWlsZWQ6IChvcHVzX2N1c3RvbV9kZWNvZGVyX2N0bChjZWx0X2RlYywgNDAzMSwgKCgmcmVkdW5kYW50X3JuZykgKyAoKCZyZWR1bmRhbnRfcm5nKSAtIChvcHVzX3VpbnQzMiopKCZyZWR1bmRhbnRfcm5nKSkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiAob3B1c19jdXN0b21fZGVjb2Rlcl9jdGwoY2VsdF9kZWMsIDEwMDE1LCAoKCZjZWx0X21vZGUpICsgKCgmY2VsdF9tb2RlKSAtIChjb25zdCBPcHVzQ3VzdG9tTW9kZSoqKSgmY2VsdF9tb2RlKSkpKSkgPT0gT1BVU19PSwBhc3NlcnRpb24gZmFpbGVkOiBMID4gMCAmJiBMIDw9IE1BWF9GUkFNRV9MRU5HVEgAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfcGVyaW9kIDwgTUFYX1BFUklPRABhc3NlcnRpb24gZmFpbGVkOiBzdC0+cG9zdGZpbHRlcl9wZXJpb2Rfb2xkIDwgTUFYX1BFUklPRABhc3NlcnRpb24gZmFpbGVkOiBmbDwzMjc2OABhc3NlcnRpb24gZmFpbGVkOiBuYl9mcmFtZXMgPj0gMCAmJiBuYl9mcmFtZXMgPD0gNDgAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0YXJ0ID09IDAgfHwgc3QtPnN0YXJ0ID09IDE3AGFzc2VydGlvbiBmYWlsZWQ6IHFuIDw9IDI1NgBhc3NlcnRpb24gZmFpbGVkOiBkPT0xMCB8fCBkPT0xNgBhc3NlcnRpb24gZmFpbGVkOiBmc19rSHogPT0gOCB8fCBmc19rSHogPT0gMTIgfHwgZnNfa0h6ID09IDE2AGFzc2VydGlvbiBmYWlsZWQ6IHBzRGVjLT5MUENfb3JkZXIgPT0gMTAgfHwgcHNEZWMtPkxQQ19vcmRlciA9PSAxNgBhc3NlcnRpb24gZmFpbGVkOiBkID49IDYAYXNzZXJ0aW9uIGZhaWxlZDogbT09NABhc3NlcnRpb24gZmFpbGVkOiBsZW4+PTMAYXNzZXJ0aW9uIGZhaWxlZDogX24+PTIAYXNzZXJ0aW9uIGZhaWxlZDogcHNEZWMtPm5iX3N1YmZyID09IE1BWF9OQl9TVUJGUiB8fCBwc0RlYy0+bmJfc3ViZnIgPT0gTUFYX05CX1NVQkZSLzIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnN0cmVhbV9jaGFubmVscyA9PSAxIHx8IHN0LT5zdHJlYW1fY2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiBzdC0+Y2hhbm5lbHMgPT0gMSB8fCBzdC0+Y2hhbm5lbHMgPT0gMgBhc3NlcnRpb24gZmFpbGVkOiBkZWNDb250cm9sLT5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAxIHx8IGRlY0NvbnRyb2wtPm5DaGFubmVsc0ludGVybmFsID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wubkNoYW5uZWxzSW50ZXJuYWwgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5uQ2hhbm5lbHNJbnRlcm5hbCA9PSAxIHx8IHN0LT5EZWNDb250cm9sLm5DaGFubmVsc0ludGVybmFsID09IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0IDw9IDIAYXNzZXJ0aW9uIGZhaWxlZDogcHNEZWMtPnByZXZTaWduYWxUeXBlID49IDAgJiYgcHNEZWMtPnByZXZTaWduYWxUeXBlIDw9IDIAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0X29sZCA8PSAyAGFzc2VydGlvbiBmYWlsZWQ6IF9mdD4xAGFzc2VydGlvbiBmYWlsZWQ6IF9uPjEAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmVuZCA8PSAyMQBhc3NlcnRpb24gZmFpbGVkOiBuYl9zdWJmciA9PSBQRV9NQVhfTkJfU1VCRlIgPj4gMQBhc3NlcnRpb24gZmFpbGVkOiBfYml0cz4wAGFzc2VydGlvbiBmYWlsZWQ6IGxlbj4wAGFzc2VydGlvbiBmYWlsZWQ6IG4+MABhc3NlcnRpb24gZmFpbGVkOiBfaz4wAGFzc2VydGlvbiBmYWlsZWQ6IG1heF9waXRjaD4wAGFzc2VydGlvbiBmYWlsZWQ6IHN0cmlkZT4wAGFzc2VydGlvbiBmYWlsZWQ6IG92ZXJsYXA+PTAAYXNzZXJ0aW9uIGZhaWxlZDogaXRoZXRhPj0wAGFzc2VydGlvbiBmYWlsZWQ6IChvcmQmMyk9PTAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wucGF5bG9hZFNpemVfbXMgPT0gMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAxMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSAyMCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA0MCB8fCBzdC0+RGVjQ29udHJvbC5wYXlsb2FkU2l6ZV9tcyA9PSA2MABhc3NlcnRpb24gZmFpbGVkOiBzdC0+b3ZlcmxhcCA9PSAxMjAAYXNzZXJ0aW9uIGZhaWxlZDogcHNEZWMtPkxQQ19vcmRlciA+PSAxMABhc3NlcnRpb24gZmFpbGVkOiBmcmFtZV9sZW5ndGggPT0gMTIgKiAxMABhc3NlcnRpb24gZmFpbGVkOiBzdC0+RnMgPT0gNDgwMDAgfHwgc3QtPkZzID09IDI0MDAwIHx8IHN0LT5GcyA9PSAxNjAwMCB8fCBzdC0+RnMgPT0gMTIwMDAgfHwgc3QtPkZzID09IDgwMDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPkRlY0NvbnRyb2wuaW50ZXJuYWxTYW1wbGVSYXRlID09IDAgfHwgc3QtPkRlY0NvbnRyb2wuaW50ZXJuYWxTYW1wbGVSYXRlID09IDE2MDAwIHx8IHN0LT5EZWNDb250cm9sLmludGVybmFsU2FtcGxlUmF0ZSA9PSAxMjAwMCB8fCBzdC0+RGVjQ29udHJvbC5pbnRlcm5hbFNhbXBsZVJhdGUgPT0gODAwMABhc3NlcnRpb24gZmFpbGVkOiBzdGFydF9pZHggPiAwAGFzc2VydGlvbiBmYWlsZWQ6IGlkeCA+IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPmRvd25zYW1wbGUgPiAwAGFzc2VydGlvbiBmYWlsZWQ6IE4gPiAwAGFzc2VydGlvbiBmYWlsZWQ6IEwgPiAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5wb3N0ZmlsdGVyX3RhcHNldCA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IGxlbiA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5hcmNoID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogc3QtPnBvc3RmaWx0ZXJfdGFwc2V0X29sZCA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IGViaXRzW2pdID49IDAAYXNzZXJ0aW9uIGZhaWxlZDogYml0c1tqXSA+PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5sYXN0X3BpdGNoX2luZGV4ID49IFBMQ19QSVRDSF9MQUdfTUlOIHx8IHN0LT5sYXN0X3BpdGNoX2luZGV4ID09IDAAYXNzZXJ0aW9uIGZhaWxlZDogZGF0YSAhPSBOVUxMIHx8IGxlbiA9PSAwAGFzc2VydGlvbiBmYWlsZWQ6IHN0LT5wb3N0ZmlsdGVyX3BlcmlvZCA+PSBDT01CRklMVEVSX01JTlBFUklPRCB8fCBzdC0+cG9zdGZpbHRlcl9wZXJpb2QgPT0gMABhc3NlcnRpb24gZmFpbGVkOiBzdC0+cG9zdGZpbHRlcl9wZXJp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YXJ5KGJpbmFyeUZpbGUpO3ZhciBpbnN0YW5jZT1hd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShiaW5hcnksaW1wb3J0cyk7cmV0dXJuIGluc3RhbmNlfWNhdGNoKHJlYXNvbil7ZXJyKGBmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAke3JlYXNvbn1gKTthYm9ydChyZWFzb24pfX1hc3luYyBmdW5jdGlvbiBpbnN0YW50aWF0ZUFzeW5jKGJpbmFyeSxiaW5hcnlGaWxlLGltcG9ydHMpe3JldHVybiBpbnN0YW50aWF0ZUFycmF5QnVmZmVyKGJpbmFyeUZpbGUsaW1wb3J0cyl9ZnVuY3Rpb24gZ2V0V2FzbUltcG9ydHMoKXt2YXIgaW1wb3J0cz17YTp3YXNtSW1wb3J0c307cmV0dXJuIGltcG9ydHN9YXN5bmMgZnVuY3Rpb24gY3JlYXRlV2FzbSgpe2Z1bmN0aW9uIHJlY2VpdmVJbnN0YW5jZShpbnN0YW5jZSxtb2R1bGUpe3dhc21FeHBvcnRzPWluc3RhbmNlLmV4cG9ydHM7YXNzaWduV2FzbUV4cG9ydHMod2FzbUV4cG9ydHMpO3VwZGF0ZU1lbW9yeVZpZXdzKCk7cmV0dXJuIHdhc21FeHBvcnRzfWZ1bmN0aW9uIHJlY2VpdmVJbnN0YW50aWF0aW9uUmVzdWx0KHJlc3VsdCl7cmV0dXJuIHJlY2VpdmVJbnN0YW5jZShyZXN1bHRbImluc3RhbmNlIl0pfXZhciBpbmZvPWdldFdhc21JbXBvcnRzKCk7aWYoTW9kdWxlWyJpbnN0YW50aWF0ZVdhc20iXSl7cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLHJlamVjdCk9PntNb2R1bGVbImluc3RhbnRpYXRlV2FzbSJdKGluZm8sKGluc3QsbW9kKT0+e3Jlc29sdmUocmVjZWl2ZUluc3RhbmNlKGluc3QsbW9kKSl9KX0pfXdhc21CaW5hcnlGaWxlPz89ZmluZFdhc21CaW5hcnkoKTt2YXIgcmVzdWx0PWF3YWl0IGluc3RhbnRpYXRlQXN5bmMod2FzbUJpbmFyeSx3YXNtQmluYXJ5RmlsZSxpbmZvKTt2YXIgZXhwb3J0cz1yZWNlaXZlSW5zdGFudGlhdGlvblJlc3VsdChyZXN1bHQpO3JldHVybiBleHBvcnRzfWNsYXNzIEV4aXRTdGF0dXN7bmFtZT0iRXhpdFN0YXR1cyI7Y29uc3RydWN0b3Ioc3RhdHVzKXt0aGlzLm1lc3NhZ2U9YFByb2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoJHtzdGF0dXN9KWA7dGhpcy5zdGF0dXM9c3RhdHVzfX12YXIgY2FsbFJ1bnRpbWVDYWxsYmFja3M9Y2FsbGJhY2tzPT57d2hpbGUoY2FsbGJhY2tzLmxlbmd0aD4wKXtjYWxsYmFja3Muc2hpZnQoKShNb2R1bGUpfX07dmFyIG9uUG9zdFJ1bnM9W107dmFyIGFkZE9uUG9zdFJ1bj1jYj0+b25Qb3N0UnVucy5wdXNoKGNiKTt2YXIgb25QcmVSdW5zPVtdO3ZhciBhZGRPblByZVJ1bj1jYj0+b25QcmVSdW5zLnB1c2goY2IpO2Z1bmN0aW9uIGdldFZhbHVlKHB0cix0eXBlPSJpOCIpe2lmKHR5cGUuZW5kc1dpdGgoIioiKSl0eXBlPSIqIjtzd2l0Y2godHlwZSl7Y2FzZSJpMSI6cmV0dXJuIEhFQVA4W3B0cl07Y2FzZSJpOCI6cmV0dXJuIEhFQVA4W3B0cl07Y2FzZSJpMTYiOnJldHVybiBIRUFQMTZbcHRyPj4xXTtjYXNlImkzMiI6cmV0dXJuIEhFQVAzMltwdHI+PjJdO2Nhc2UiaTY0IjpyZXR1cm4gSEVBUDY0W3B0cj4+M107Y2FzZSJmbG9hdCI6cmV0dXJuIEhFQVBGMzJbcHRyPj4yXTtjYXNlImRvdWJsZSI6cmV0dXJuIEhFQVBGNjRbcHRyPj4zXTtjYXNlIioiOnJldHVybiBIRUFQVTMyW3B0cj4+Ml07ZGVmYXVsdDphYm9ydChgaW52YWxpZCB0eXBlIGZvciBnZXRWYWx1ZTogJHt0eXBlfWApfX12YXIgbm9FeGl0UnVudGltZT10cnVlO2Z1bmN0aW9uIHNldFZhbHVlKHB0cix2YWx1ZSx0eXBlPSJpOCIpe2lmKHR5cGUuZW5kc1dpdGgoIioiKSl0eXBlPSIqIjtzd2l0Y2godHlwZSl7Y2FzZSJpMSI6SEVBUDhbcHRyXT12YWx1ZTticmVhaztjYXNlImk4IjpIRUFQOFtwdHJdPXZhbHVlO2JyZWFrO2Nhc2UiaTE2IjpIRUFQMTZbcHRyPj4xXT12YWx1ZTticmVhaztjYXNlImkzMiI6SEVBUDMyW3B0cj4+Ml09dmFsdWU7YnJlYWs7Y2FzZSJpNjQiOkhFQVA2NFtwdHI+PjNdPUJpZ0ludCh2YWx1ZSk7YnJlYWs7Y2FzZSJmbG9hdCI6SEVBUEYzMltwdHI+PjJdPXZhbHVlO2JyZWFrO2Nhc2UiZG91YmxlIjpIRUFQRjY0W3B0cj4+M109dmFsdWU7YnJlYWs7Y2FzZSIqIjpIRUFQVTMyW3B0cj4+Ml09dmFsdWU7YnJlYWs7ZGVmYXVsdDphYm9ydChgaW52YWxpZCB0eXBlIGZvciBzZXRWYWx1ZTogJHt0eXBlfWApfX12YXIgc3RhY2tSZXN0b3JlPXZhbD0+X19lbXNjcmlwdGVuX3N0YWNrX3Jlc3RvcmUodmFsKTt2YXIgc3RhY2tTYXZlPSgpPT5fZW1zY3JpcHRlbl9zdGFja19nZXRfY3VycmVudCgpO3ZhciBfX2Fib3J0X2pzPSgpPT5hYm9ydCgiIik7dmFyIHJ1bnRpbWVLZWVwYWxpdmVDb3VudGVyPTA7dmFyIF9fZW1zY3JpcHRlbl9ydW50aW1lX2tlZXBhbGl2ZV9jbGVhcj0oKT0+e25vRXhpdFJ1bnRpbWU9ZmFsc2U7cnVudGltZUtlZXBhbGl2ZUNvdW50ZXI9MH07dmFyIHRpbWVycz17fTt2YXIgaGFuZGxlRXhjZXB0aW9uPWU9PntpZihlIGluc3RhbmNlb2YgRXhpdFN0YXR1c3x8ZT09InVud2luZCIpe3JldHVybiBFWElUU1RBVFVTfXF1aXRfKDEsZSl9O3ZhciBrZWVwUnVudGltZUFsaXZlPSgpPT5ub0V4aXRSdW50aW1lfHxydW50aW1lS2VlcGFsaXZlQ291bnRlcj4wO3ZhciBfcHJvY19leGl0PWNvZGU9PntFWElUU1RBVFVTPWNvZGU7aWYoIWtlZXBSdW50aW1lQWxpdmUoKSl7TW9kdWxlWyJvbkV4aXQiXT8uKGNvZGUpO0FCT1JUPXRydWV9cXVpdF8oY29kZSxuZXcgRXhpdFN0YXR1cyhjb2RlKSl9O3ZhciBleGl0SlM9KHN0YXR1cyxpbXBsaWNpdCk9PntFWElUU1RBVFVTPXN0YXR1cztfcHJvY19leGl0KHN0YXR1cyl9O3ZhciBfZXhpdD1leGl0SlM7dmFyIG1heWJlRXhpdD0oKT0+e2lmKCFrZWVwUnVudGltZUFsaXZlKCkpe3RyeXtfZXhpdChFWElUU1RBVFVTKX1jYXRjaChlKXtoYW5kbGVFeGNlcHRpb24oZSl9fX07dmFyIGNhbGxVc2VyQ2FsbGJhY2s9ZnVuYz0+e2lmKEFCT1JUKXtyZXR1cm59dHJ5e3JldHVybiBmdW5jKCl9Y2F0Y2goZSl7aGFuZGxlRXhjZXB0aW9uKGUpfWZpbmFsbHl7bWF5YmVFeGl0KCl9fTt2YXIgX2Vtc2NyaXB0ZW5fZ2V0X25vdz0oKT0+cGVyZm9ybWFuY2Uubm93KCk7dmFyIF9fc2V0aXRpbWVyX2pzPSh3aGljaCx0aW1lb3V0X21zKT0+e2lmKHRpbWVyc1t3aGljaF0pe2NsZWFyVGltZW91dCh0aW1lcnNbd2hpY2hdLmlkKTtkZWxldGUgdGltZXJzW3doaWNoXX1pZighdGltZW91dF9tcylyZXR1cm4gMDt2YXIgaWQ9c2V0VGltZW91dCgoKT0+e2RlbGV0ZSB0aW1lcnNbd2hpY2hdO2NhbGxVc2VyQ2FsbGJhY2soKCk9Pl9fZW1zY3JpcHRlbl90aW1lb3V0KHdoaWNoLF9lbXNjcmlwdGVuX2dldF9ub3coKSkpfSx0aW1lb3V0X21zKTt0aW1lcnNbd2hpY2hdPXtpZCx0aW1lb3V0X21zfTtyZXR1cm4gMH07dmFyIGdldEhlYXBNYXg9KCk9PjIxNDc0ODM2NDg7dmFyIGFsaWduTWVtb3J5PShzaXplLGFsaWdubWVudCk9Pk1hdGguY2VpbChzaXplL2FsaWdubWVudCkqYWxpZ25tZW50O3ZhciBncm93TWVtb3J5PXNpemU9Pnt2YXIgb2xkSGVhcFNpemU9d2FzbU1lbW9yeS5idWZmZXIuYnl0ZUxlbmd0aDt2YXIgcGFnZXM9KHNpemUtb2xkSGVhcFNpemUrNjU1MzUpLzY1NTM2fDA7dHJ5e3dhc21NZW1vcnkuZ3JvdyhwYWdlcyk7dXBkYXRlTWVtb3J5Vmlld3MoKTtyZXR1cm4gMX1jYXRjaChlKXt9fTt2YXIgX2Vtc2NyaXB0ZW5fcmVzaXplX2hlYXA9cmVxdWVzdGVkU2l6ZT0+e3ZhciBvbGRTaXplPUhFQVBVOC5sZW5ndGg7cmVxdWVzdGVkU2l6ZT4+Pj0wO3ZhciBtYXhIZWFwU2l6ZT1nZXRIZWFwTWF4KCk7aWYocmVxdWVzdGVkU2l6ZT5tYXhIZWFwU2l6ZSl7cmV0dXJuIGZhbHNlfWZvcih2YXIgY3V0RG93bj0xO2N1dERvd248PTQ7Y3V0RG93bio9Mil7dmFyIG92ZXJHcm93bkhlYXBTaXplPW9sZFNpemUqKDErLjIvY3V0RG93bik7b3Zlckdyb3duSGVhcFNpemU9TWF0aC5taW4ob3Zlckdyb3duSGVhcFNpemUscmVxdWVzdGVkU2l6ZSsxMDA2NjMyOTYpO3ZhciBuZXdTaXplPU1hdGgubWluKG1heEhlYXBTaXplLGFsaWduTWVtb3J5KE1hdGgubWF4KHJlcXVlc3RlZFNpemUsb3Zlckdyb3duSGVhcFNpemUpLDY1NTM2KSk7dmFyIHJlcGxhY2VtZW50PWdyb3dNZW1vcnkobmV3U2l6ZSk7aWYocmVwbGFjZW1lbnQpe3JldHVybiB0cnVlfX1yZXR1cm4gZmFsc2V9O3ZhciBwcmludENoYXJCdWZmZXJzPVtudWxsLFtdLFtdXTt2YXIgVVRGOERlY29kZXI9Z2xvYmFsVGhpcy5UZXh0RGVjb2RlciYmbmV3IFRleHREZWNvZGVyO3ZhciBmaW5kU3RyaW5nRW5kPShoZWFwT3JBcnJheSxpZHgsbWF4Qnl0ZXNUb1JlYWQsaWdub3JlTnVsKT0+e3ZhciBtYXhJZHg9aWR4K21heEJ5dGVzVG9SZWFkO2lmKGlnbm9yZU51bClyZXR1cm4gbWF4SWR4O3doaWxlKGhlYXBPckFycmF5W2lkeF0mJiEoaWR4Pj1tYXhJZHgpKSsraWR4O3JldHVybiBpZHh9O3ZhciBVVEY4QXJyYXlUb1N0cmluZz0oaGVhcE9yQXJyYXksaWR4PTAsbWF4Qnl0ZXNUb1JlYWQsaWdub3JlTnVsKT0+e3ZhciBlbmRQdHI9ZmluZFN0cmluZ0VuZChoZWFwT3JBcnJheSxpZHgsbWF4Qnl0ZXNUb1JlYWQsaWdub3JlTnVsKTtpZihlbmRQdHItaWR4PjE2JiZoZWFwT3JBcnJheS5idWZmZXImJlVURjhEZWNvZGVyKXtyZXR1cm4gVVRGOERlY29kZXIuZGVjb2RlKGhlYXBPckFycmF5LnN1YmFycmF5KGlkeCxlbmRQdHIpKX12YXIgc3RyPSIiO3doaWxlKGlkeDxlbmRQdHIpe3ZhciB1MD1oZWFwT3JBcnJheVtpZHgrK107aWYoISh1MCYxMjgpKXtzdHIrPVN0cmluZy5mcm9tQ2hhckNvZGUodTApO2NvbnRpbnVlfXZhciB1MT1oZWFwT3JBcnJheVtpZHgrK10mNjM7aWYoKHUwJjIyNCk9PTE5Mil7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKCh1MCYzMSk8PDZ8dTEpO2NvbnRpbnVlfXZhciB1Mj1oZWFwT3JBcnJheVtpZHgrK10mNjM7aWYoKHUwJjI0MCk9PTIyNCl7dTA9KHUwJjE1KTw8MTJ8dTE8PDZ8dTJ9ZWxzZXt1MD0odTAmNyk8PDE4fHUxPDwxMnx1Mjw8NnxoZWFwT3JBcnJheVtpZHgrK10mNjN9aWYodTA8NjU1MzYpe3N0cis9U3RyaW5nLmZyb21DaGFyQ29kZSh1MCl9ZWxzZXt2YXIgY2g9dTAtNjU1MzY7c3RyKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fGNoPj4xMCw1NjMyMHxjaCYxMDIzKX19cmV0dXJuIHN0cn07dmFyIHByaW50Q2hhcj0oc3RyZWFtLGN1cnIpPT57dmFyIGJ1ZmZlcj1wcmludENoYXJCdWZmZXJzW3N0cmVhbV07aWYoY3Vycj09PTB8fGN1cnI9PT0xMCl7KHN0cmVhbT09PTE/b3V0OmVycikoVVRGOEFycmF5VG9TdHJpbmcoYnVmZmVyKSk7YnVmZmVyLmxlbmd0aD0wfWVsc2V7YnVmZmVyLnB1c2goY3Vycil9fTt2YXIgX2ZkX3dyaXRlPShmZCxpb3YsaW92Y250LHBudW0pPT57dmFyIG51bT0wO2Zvcih2YXIgaT0wO2k8aW92Y250O2krKyl7dmFyIHB0cj1IRUFQVTMyW2lvdj4+Ml07dmFyIGxlbj1IRUFQVTMyW2lvdis0Pj4yXTtpb3YrPTg7Zm9yKHZhciBqPTA7ajxsZW47aisrKXtwcmludENoYXIoZmQsSEVBUFU4W3B0citqXSl9bnVtKz1sZW59SEVBUFUzMltwbnVtPj4yXT1udW07cmV0dXJuIDB9O3ZhciBzdGFja0FsbG9jPXN6PT5fX2Vtc2NyaXB0ZW5fc3RhY2tfYWxsb2Moc3opO3ZhciB3cml0ZUFycmF5VG9NZW1vcnk9KGFycmF5LGJ1ZmZlcik9PntIRUFQOC5zZXQoYXJyYXksYnVmZmVyKX07Zm9yKHZhciBiYXNlNjRSZXZlcnNlTG9va3VwPW5ldyBVaW50OEFycmF5KDEyMyksaT0yNTtpPj0wOy0taSl7YmFzZTY0UmV2ZXJzZUxvb2t1cFs0OCtpXT01MitpO2Jhc2U2NFJldmVyc2VMb29rdXBbNjUraV09aTtiYXNlNjRSZXZlcnNlTG9va3VwWzk3K2ldPTI2K2l9YmFzZTY0UmV2ZXJzZUxvb2t1cFs0M109NjI7YmFzZTY0UmV2ZXJzZUxvb2t1cFs0N109NjM7e2lmKE1vZHVsZVsibm9FeGl0UnVudGltZSJdKW5vRXhpdFJ1bnRpbWU9TW9kdWxlWyJub0V4aXRSdW50aW1lIl07aWYoTW9kdWxlWyJwcmludCJdKW91dD1Nb2R1bGVbInByaW50Il07aWYoTW9kdWxlWyJwcmludEVyciJdKWVycj1Nb2R1bGVbInByaW50RXJyIl07aWYoTW9kdWxlWyJ3YXNtQmluYXJ5Il0pd2FzbUJpbmFyeT1Nb2R1bGVbIndhc21CaW5hcnkiXTtpZihNb2R1bGVbImFyZ3VtZW50cyJdKWFyZ3VtZW50c189TW9kdWxlWyJhcmd1bWVudHMiXTtpZihNb2R1bGVbInRoaXNQcm9ncmFtIl0pdGhpc1Byb2dyYW09TW9kdWxlWyJ0aGlzUHJvZ3JhbSJdO2lmKE1vZHVsZVsicHJlSW5pdCJdKXtpZih0eXBlb2YgTW9kdWxlWyJwcmVJbml0Il09PSJmdW5jdGlvbiIpTW9kdWxlWyJwcmVJbml0Il09W01vZHVsZVsicHJlSW5pdCJdXTt3aGlsZShNb2R1bGVbInByZUluaXQiXS5sZW5ndGg+MCl7TW9kdWxlWyJwcmVJbml0Il0uc2hpZnQoKSgpfX19TW9kdWxlWyJzdGFja1NhdmUiXT1zdGFja1NhdmU7TW9kdWxlWyJzdGFja1Jlc3RvcmUiXT1zdGFja1Jlc3RvcmU7TW9kdWxlWyJzdGFja0FsbG9jIl09c3RhY2tBbGxvYztNb2R1bGVbInNldFZhbHVlIl09c2V0VmFsdWU7TW9kdWxlWyJnZXRWYWx1ZSJdPWdldFZhbHVlO01vZHVsZVsid3JpdGVBcnJheVRvTWVtb3J5Il09d3JpdGVBcnJheVRvTWVtb3J5O3ZhciBfb3B1c19tdWx0aXN0cmVhbV9kZWNvZGVyX2NyZWF0ZSxfb3B1c19tdWx0aXN0cmVhbV9kZWNvZGVfZmxvYXQsX29wdXNfbXVsdGlzdHJlYW1fZGVjb2Rlcl9kZXN0cm95LF9fZW1zY3JpcHRlbl90aW1lb3V0LF9tYWxsb2MsX2ZyZWUsX19lbXNjcmlwdGVuX3N0YWNrX3Jlc3RvcmUsX19lbXNjcmlwdGVuX3N0YWNrX2FsbG9jLF9lbXNjcmlwdGVuX3N0YWNrX2dldF9jdXJyZW50LG1lbW9yeSxfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlLHdhc21NZW1vcnk7ZnVuY3Rpb24gYXNzaWduV2FzbUV4cG9ydHMod2FzbUV4cG9ydHMpe19vcHVzX211bHRpc3RyZWFtX2RlY29kZXJfY3JlYXRlPU1vZHVsZVsiX29wdXNfbXVsdGlzdHJlYW1fZGVjb2Rlcl9jcmVhdGUiXT13YXNtRXhwb3J0c1siaSJdO19vcHVzX211bHRpc3RyZWFtX2RlY29kZV9mbG9hdD1Nb2R1bGVbIl9vcHVzX211bHRpc3RyZWFtX2RlY29kZV9mbG9hdCJdPXdhc21FeHBvcnRzWyJqIl07X29wdXNfbXVsdGlzdHJlYW1fZGVjb2Rlcl9kZXN0cm95PU1vZHVsZVsiX29wdXNfbXVsdGlzdHJlYW1fZGVjb2Rlcl9kZXN0cm95Il09d2FzbUV4cG9ydHNbImsiXTtfX2Vtc2NyaXB0ZW5fdGltZW91dD13YXNtRXhwb3J0c1sibCJdO19tYWxsb2M9TW9kdWxlWyJfbWFsbG9jIl09d2FzbUV4cG9ydHNbIm0iXTtfZnJlZT1Nb2R1bGVbIl9mcmVlIl09d2FzbUV4cG9ydHNbIm4iXTtfX2Vtc2NyaXB0ZW5fc3RhY2tfcmVzdG9yZT13YXNtRXhwb3J0c1sibyJdO19fZW1zY3JpcHRlbl9zdGFja19hbGxvYz13YXNtRXhwb3J0c1sicCJdO19lbXNjcmlwdGVuX3N0YWNrX2dldF9jdXJyZW50PXdhc21FeHBvcnRzWyJxIl07bWVtb3J5PXdhc21NZW1vcnk9d2FzbUV4cG9ydHNbImciXTtfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlPXdhc21FeHBvcnRzWyJfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlIl19dmFyIHdhc21JbXBvcnRzPXtkOl9fYWJvcnRfanMsYjpfX2Vtc2NyaXB0ZW5fcnVudGltZV9rZWVwYWxpdmVfY2xlYXIsYzpfX3NldGl0aW1lcl9qcyxmOl9lbXNjcmlwdGVuX3Jlc2l6ZV9oZWFwLGU6X2ZkX3dyaXRlLGE6X3Byb2NfZXhpdH07ZnVuY3Rpb24gcnVuKCl7cHJlUnVuKCk7ZnVuY3Rpb24gZG9SdW4oKXtNb2R1bGVbImNhbGxlZFJ1biJdPXRydWU7aWYoQUJPUlQpcmV0dXJuO2luaXRSdW50aW1lKCk7cmVhZHlQcm9taXNlUmVzb2x2ZT8uKE1vZHVsZSk7TW9kdWxlWyJvblJ1bnRpbWVJbml0aWFsaXplZCJdPy4oKTtwb3N0UnVuKCl9aWYoTW9kdWxlWyJzZXRTdGF0dXMiXSl7TW9kdWxlWyJzZXRTdGF0dXMiXSgiUnVubmluZy4uLiIpO3NldFRpbWVvdXQoKCk9PntzZXRUaW1lb3V0KCgpPT5Nb2R1bGVbInNldFN0YXR1cyJdKCIiKSwxKTtkb1J1bigpfSwxKX1lbHNle2RvUnVuKCl9fXZhciB3YXNtRXhwb3J0czt3YXNtRXhwb3J0cz1hd2FpdCAoY3JlYXRlV2FzbSgpKTtydW4oKTtpZihydW50aW1lSW5pdGlhbGl6ZWQpe21vZHVsZVJ0bj1Nb2R1bGV9ZWxzZXttb2R1bGVSdG49bmV3IFByb21pc2UoKHJlc29sdmUscmVqZWN0KT0+e3JlYWR5UHJvbWlzZVJlc29sdmU9cmVzb2x2ZTtyZWFkeVByb21pc2VSZWplY3Q9cmVqZWN0fSl9CjtyZXR1cm4gbW9kdWxlUnRufWV4cG9ydCBkZWZhdWx0IE1vZHVsZTsK"},{"path":"web/locales/en.ts","sha256":"fdbae1b543be2851206a2f8a9100c8df7416911806ccc0df9e89f09d1f402bab","contentBase64":"ZXhwb3J0IGNvbnN0IGVuID0gewogICAgaW5kZXg6IHsKICAgICAgICBhcHBUaXRsZTogIk1vb25saWdodCBXZWIiLAogICAgICAgIGJhY2s6ICJCYWNrIiwKICAgICAgICByZWxvYWQ6ICJSZWxvYWQiLAogICAgICAgIGFkZEhvc3RVbnJlYWNoYWJsZTogKGFkZHJlc3M6IHN0cmluZykgPT4gYEhvc3QgIiR7YWRkcmVzc30iIGlzIG5vdCByZWFjaGFibGVgLAogICAgICAgIHNhdmVTZXR0aW5nc0ZhaWxlZDogIkNvdWxkbid0IHNhdmUgc2V0dGluZ3MiLAogICAgICAgIHJvb3ROb3RGb3VuZDogImNvdWxkbid0IGZpbmQgcm9vdCBlbGVtZW50IiwKICAgIH0sCiAgICBzdHJlYW06IHsKICAgICAgICBtaXNzaW5nSG9zdE9yQXBwOiAiTm8gSG9zdCBvciBubyBBcHAgSWQgZm91bmQiLAogICAgICAgIGZ1bGxzY3JlZW5VbnN1cHBvcnRlZDogIkZ1bGxzY3JlZW4gaXMgbm90IHN1cHBvcnRlZCBieSB5b3VyIGJyb3dzZXIhIiwKICAgICAgICBmdWxsc2NyZWVuRXNjYXBlSGludDogIlRvIGV4aXQgRnVsbHNjcmVlbiB5b3UnbGwgaGF2ZSB0byBob2xkIEVTQyBmb3IgYSBmZXcgc2Vjb25kcy4iLAogICAgICAgIHBvaW50ZXJMb2NrVW5zdXBwb3J0ZWQ6ICJQb2ludGVyIExvY2sgbm90IHN1cHBvcnRlZCIsCiAgICAgICAgY29ubmVjdGluZzogIkNvbm5lY3RpbmciLAogICAgICAgIHNob3dMb2dzOiAiU2hvdyBMb2dzIiwKICAgICAgICBoaWRlTG9nczogIkhpZGUgTG9ncyIsCiAgICAgICAgY2xvc2U6ICJDbG9zZSIsCiAgICAgICAgYXV0b0Z1bGxzY3JlZW5Qcm9tcHQ6ICJFbnRlciBmdWxsc2NyZWVuIG5vdz8iLAogICAgICAgIGNvbm5lY3Rpb25Db21wbGV0ZTogIkNvbm5lY3Rpb24gQ29tcGxldGUiLAogICAgICAgIHNlcnZlck1lc3NhZ2U6IChtZXNzYWdlOiBzdHJpbmcpID0+IGBTZXJ2ZXI6ICR7bWVzc2FnZX1gLAogICAgICAgIHNlbmRLZXljb2RlOiAiU2VuZCBLZXljb2RlIiwKICAgICAgICBsb2NrTW91c2U6ICJMb2NrIE1vdXNlIiwKICAgICAgICBrZXlib2FyZDogIktleWJvYXJkIiwKICAgICAgICBoaWRlS2V5Ym9hcmQ6ICJIaWRlIEtleWJvYXJkIiwKICAgICAgICBmdWxsc2NyZWVuOiAiRnVsbHNjcmVlbiIsCiAgICAgICAgc3RhdHM6ICJTdGF0cyIsCiAgICAgICAgZXhpdDogIkV4aXQiLAogICAgICAgIG1vdXNlTW9kZTogIk1vdXNlIE1vZGUiLAogICAgICAgIHRvdWNoTW9kZTogIlRvdWNoIE1vZGUiLAogICAgICAgIHJlbGF0aXZlOiAiUmVsYXRpdmUiLAogICAgICAgIGZvbGxvdzogIkZvbGxvdyIsCiAgICAgICAgcG9pbnRBbmREcmFnOiAiUG9pbnQgYW5kIERyYWciLAogICAgICAgIHRvdWNoOiAiVG91Y2giLAogICAgICAgIGxvY2FsQ3Vyc29yOiAiTG9jYWwgQ3Vyc29yIiwKICAgICAgICBzZWxlY3RLZXljb2RlOiAiU2VsZWN0IEtleWNvZGUiLAogICAgICAgIHJvb3ROb3RGb3VuZDogImNvdWxkbid0IGZpbmQgcm9vdCBlbGVtZW50IiwKICAgIH0sCiAgICBzZXR0aW5nczogewogICAgICAgIHNpZGViYXI6ICJTaWRlYmFyIiwKICAgICAgICBzaWRlYmFyRWRnZTogIlNpZGViYXIgRWRnZSIsCiAgICAgICAgbGVmdDogIkxlZnQiLAogICAgICAgIHJpZ2h0OiAiUmlnaHQiLAogICAgICAgIHVwOiAiVXAiLAogICAgICAgIGRvd246ICJEb3duIiwKICAgICAgICB2aWRlbzogIlZpZGVvIiwKICAgICAgICBiaXRyYXRlOiAiQml0cmF0ZSAoS2JwcykiLAogICAgICAgIGZwczogIkZwcyIsCiAgICAgICAgdmlkZW9TaXplOiAiVmlkZW8gU2l6ZSIsCiAgICAgICAgbmF0aXZlOiAibmF0aXZlIiwKICAgICAgICBjdXN0b206ICJjdXN0b20iLAogICAgICAgIHZpZGVvV2lkdGg6ICJWaWRlbyBXaWR0aCIsCiAgICAgICAgdmlkZW9IZWlnaHQ6ICJWaWRlbyBIZWlnaHQiLAogICAgICAgIHZpZGVvRnJhbWVRdWV1ZVNpemU6ICJWaWRlbyBGcmFtZSBRdWV1ZSBTaXplIiwKICAgICAgICB2aWRlb0NvZGVjOiAiVmlkZW8gQ29kZWMiLAogICAgICAgIGF1dG9FeHBlcmltZW50YWw6ICJBdXRvIChFeHBlcmltZW50YWwpIiwKICAgICAgICBhdjFFeHBlcmltZW50YWw6ICJBVjEgKEV4cGVyaW1lbnRhbCkiLAogICAgICAgIGZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXI6ICJGb3JjZSBWaWRlbyBFbGVtZW50IFJlbmRlcmVyIChXZWJSVEMgb25seSkiLAogICAgICAgIHVzZUNhbnZhc1JlbmRlcmVyOiAiVXNlIENhbnZhcyBSZW5kZXJlciIsCiAgICAgICAgY2FudmFzVnN5bmM6ICJDYW52YXMgVlN5bmMgKHJlZHVjZSB0ZWFyaW5nKSIsCiAgICAgICAgZW5hYmxlSGRyOiAiRW5hYmxlIEhEUiIsCiAgICAgICAgYXVkaW86ICJBdWRpbyIsCiAgICAgICAgcGxheUF1ZGlvTG9jYWw6ICJQbGF5IEF1ZGlvIExvY2FsIiwKICAgICAgICBhdWRpb1NhbXBsZVF1ZXVlU2l6ZTogIkF1ZGlvIFNhbXBsZSBRdWV1ZSBTaXplIiwKICAgICAgICBtb3VzZTogIk1vdXNlIiwKICAgICAgICBzY3JvbGxNb2RlOiAiU2Nyb2xsIE1vZGUiLAogICAgICAgIHN0YXJ0dXBNb3VzZU1vZGU6ICJNb3VzZSBNb2RlIE9uIFN0cmVhbSBTdGFydCIsCiAgICAgICAgc3RhcnR1cFRvdWNoTW9kZTogIlRvdWNoIE1vZGUgT24gU3RyZWFtIFN0YXJ0IiwKICAgICAgICBsb2NhbEN1cnNvclNlbnNpdGl2aXR5OiAiTG9jYWwgQ3Vyc29yIFNlbnNpdGl2aXR5IiwKICAgICAgICBoaWdoUmVzOiAiSGlnaCBSZXMiLAogICAgICAgIG5vcm1hbDogIk5vcm1hbCIsCiAgICAgICAgY29udHJvbGxlcjogIkNvbnRyb2xsZXIiLAogICAgICAgIGNvbnRyb2xsZXJEaXNhYmxlZDogIkNvbnRyb2xsZXIgKERpc2FibGVkOiBTZWN1cmUgQ29udGV4dCBSZXF1aXJlZCkiLAogICAgICAgIGludmVydEFCOiAiSW52ZXJ0IEEgYW5kIEIiLAogICAgICAgIGludmVydFhZOiAiSW52ZXJ0IFggYW5kIFkiLAogICAgICAgIG92ZXJyaWRlQ29udHJvbGxlckludGVydmFsOiAiT3ZlcnJpZGUgQ29udHJvbGxlciBTdGF0ZSBTZW5kIEludGVydmFsIiwKICAgICAgICBvdGhlcjogIk90aGVyIiwKICAgICAgICBsYW5ndWFnZTogIkxhbmd1YWdlIiwKICAgICAgICBkYXRhVHJhbnNwb3J0OiAiRGF0YSBUcmFuc3BvcnQiLAogICAgICAgIGF1dG86ICJBdXRvIiwKICAgICAgICB3ZWJTb2NrZXQ6ICJXZWIgU29ja2V0IiwKICAgICAgICBlbnRlckZ1bGxzY3JlZW5PblN0cmVhbVN0YXJ0OiAiRW50ZXIgRnVsbHNjcmVlbiBPbiBGaXJzdCBTdHJlYW0gSW50ZXJhY3Rpb24iLAogICAgICAgIHNhdmVSb2xlRGVmYXVsdHM6ICJTYXZlIEFzIFJvbGUgRGVmYXVsdHMiLAogICAgICAgIHNhdmVSb2xlRGVmYXVsdHNTdWNjZXNzOiAiU2F2ZWQgY3VycmVudCBzZXR0aW5ncyBhcyByb2xlIGRlZmF1bHRzIiwKICAgICAgICBzYXZlUm9sZURlZmF1bHRzRmFpbGVkOiAiQ291bGRuJ3Qgc2F2ZSByb2xlIGRlZmF1bHQgc2V0dGluZ3MiLAogICAgICAgIHRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZDogIlRvZ2dsZSBGdWxsc2NyZWVuIGFuZCBNb3VzZSBMb2NrIHdpdGggQ3RybCArIFNoaWZ0ICsgSSIsCiAgICAgICAgc3R5bGU6ICJTdHlsZSIsCiAgICAgICAgdXNlQ3VzdG9tRHJvcGRvd246ICJVc2UgQ3VzdG9tIERyb3Bkb3duIEltcGxlbWVudGF0aW9uIiwKICAgIH0sCiAgICBhZGRIb3N0OiB7CiAgICAgICAgaGVhZGVyOiAiSG9zdCIsCiAgICAgICAgYWRkcmVzczogIkFkZHJlc3MiLAogICAgICAgIHBvcnQ6ICJQb3J0IiwKICAgIH0sCiAgICBhZG1pbjogewogICAgICAgIHJvb3ROb3RGb3VuZDogImNvdWxkbid0IGZpbmQgcm9vdCBlbGVtZW50IiwKICAgICAgICB1bmF1dGhvcml6ZWQ6ICJZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIHZpZXcgdGhpcyBwYWdlISIsCiAgICAgICAgdXNlcnM6ICJVc2VycyIsCiAgICAgICAgcm9sZXM6ICJSb2xlcyIsCiAgICAgICAgYWRkVXNlcjogIkFkZCBVc2VyIiwKICAgICAgICBhZGRSb2xlOiAiQWRkIFJvbGUiLAogICAgICAgIHNlYXJjaFVzZXI6ICJTZWFyY2ggVXNlciIsCiAgICAgICAgc2VhcmNoUm9sZTogIlNlYXJjaCBSb2xlIiwKICAgICAgICBkZWxldGU6ICJEZWxldGUiLAogICAgICAgIGFwcGx5OiAiQXBwbHkiLAogICAgICAgIHVzZXI6ICJVc2VyIiwKICAgICAgICByb2xlOiAiUm9sZSIsCiAgICAgICAgbmFtZTogIk5hbWUiLAogICAgICAgIGRlZmF1bHRQYXNzd29yZDogIkRlZmF1bHQgUGFzc3dvcmQiLAogICAgICAgIG1vb25saWdodENsaWVudElkOiAiTW9vbmxpZ2h0IENsaWVudCBJZCIsCiAgICAgICAgcGxlYXNlU2VsZWN0Um9sZTogIlBsZWFzZSBzZWxlY3QgYSByb2xlISIsCiAgICAgICAgcm9sZUV4aXN0czogKG5hbWU6IHN0cmluZykgPT4gYEEgcm9sZSB3aXRoIHRoZSBuYW1lICIke25hbWV9IiBhbHJlYWR5IGV4aXN0cyFgLAogICAgICAgIHVzZXJFeGlzdHM6IChuYW1lOiBzdHJpbmcpID0+IGBBIHVzZXIgd2l0aCB0aGUgbmFtZSAiJHtuYW1lfSIgYWxyZWFkeSBleGlzdHMhYCwKICAgICAgICByb2xlVHlwZTogIlR5cGUiLAogICAgICAgIHBlcm1pc3Npb25zOiAiUGVybWlzc2lvbnMiLAogICAgICAgIGRlZmF1bHRTZXR0aW5nczogIkRlZmF1bHQgU2V0dGluZ3MiLAogICAgICAgIHVzZXJJZDogIlVzZXIgSWQiLAogICAgICAgIHVzZXJOYW1lOiAiVXNlciBOYW1lIiwKICAgICAgICBwYXNzd29yZDogIlBhc3N3b3JkIiwKICAgICAgICBuZXdQYXNzd29yZDogIk5ldyBQYXNzd29yZCIsCiAgICAgICAgcm9sZUlkOiAiUm9sZSBJZCIsCiAgICAgICAgcm9sZU5hbWU6ICJSb2xlIE5hbWUiLAogICAgICAgIGFsbG93QWRkSG9zdHM6ICJBbGxvdyBhZGRpbmcgSG9zdHMiLAogICAgICAgIG1heGltdW1CaXRyYXRlOiAiTWF4aW11bSBCaXRyYXRlIChLYnBzKSIsCiAgICAgICAgYWxsb3dIMjY0OiAiQWxsb3cgSDI2NCIsCiAgICAgICAgYWxsb3dIMjY1OiAiQWxsb3cgSDI2NSIsCiAgICAgICAgYWxsb3dBdjE6ICJBbGxvdyBBdjEiLAogICAgICAgIGFsbG93SGRyOiAiQWxsb3cgSERSIiwKICAgICAgICBhbGxvd1dlYnJ0YzogIkFsbG93IFdlYlJUQyIsCiAgICAgICAgYWxsb3dXZWJTb2NrZXRzOiAiQWxsb3cgV2ViIFNvY2tldHMiLAogICAgICAgIHJvbGVEZWxldGVCbG9ja2VkOiAodXNlcnM6IHN0cmluZ1tdKSA9PiBgVG8gcmVtb3ZlIHRoaXMgcm9sZSBhbGwgdXNlcnMgdGhhdCBhcmUgY3VycmVudGx5IGFzc2lnbmVkIHRoaXMgcm9sZSBlaXRoZXIgbmVlZCB0byBiZSBkZWxldGVkIG9yIGFzc2lnbmVkIGFub3RoZXIgcm9sZS5cbkN1cnJlbnRseSB0aGVzZSB1c2VycyBzdGlsbCBoYXZlIHRoZSByb2xlOlxuJHtKU09OLnN0cmluZ2lmeSh1c2Vycyl9YCwKICAgIH0sCiAgICBob3N0OiB7CiAgICAgICAgc2hvd0RldGFpbHM6ICJTaG93IERldGFpbHMiLAogICAgICAgIG9wZW46ICJPcGVuIiwKICAgICAgICBzZW5kV2FrZVVwUGFja2V0OiAiU2VuZCBXYWtlIFVwIFBhY2tldCIsCiAgICAgICAgcmVsb2FkOiAiUmVsb2FkIiwKICAgICAgICBwYWlyOiAiUGFpciIsCiAgICAgICAgbWFrZVByaXZhdGU6ICJNYWtlIFByaXZhdGUiLAogICAgICAgIG1ha2VHbG9iYWw6ICJNYWtlIEdsb2JhbCIsCiAgICAgICAgcmVtb3ZlSG9zdDogIlJlbW92ZSBIb3N0IiwKICAgICAgICBmYWlsZWRUb0dldERldGFpbHM6IChpZDogbnVtYmVyKSA9PiBgZmFpbGVkIHRvIGdldCBkZXRhaWxzIGZvciBob3N0ICR7aWR9YCwKICAgICAgICB3YWtlVXBTZW50OiAiU2VudCBXYWtlIFVwIHBhY2tldC4gSXQgbWlnaHQgdGFrZSBhIG1vbWVudCBmb3IgeW91ciBwYyB0byBzdGFydC4iLAogICAgICAgIGFscmVhZHlQYWlyZWQ6ICJUaGlzIGhvc3QgaXMgYWxyZWFkeSBwYWlyZWQhIiwKICAgICAgICBwYWlyUHJvbXB0OiAobmFtZTogc3RyaW5nLCBwaW46IHN0cmluZykgPT4gYFBsZWFzZSBwYWlyIHlvdXIgaG9zdCAke25hbWV9IHdpdGggdGhpcyBwaW46XG5QaW46ICR7cGlufWAsCiAgICAgICAgb3ZlcndyaXRlTWlzbWF0Y2g6IChjdXJyZW50SWQ6IG51bWJlciwgaW5jb21pbmdJZDogbnVtYmVyKSA9PiBgdHJpZWQgdG8gb3ZlcndyaXRlIGhvc3QgJHtjdXJyZW50SWR9IHdpdGggZGF0YSBmcm9tICR7aW5jb21pbmdJZH1gLAogICAgICAgIGRldGFpbHM6IChob3N0OiBhbnkpID0+CiAgICAgICAgICAgIGBXZWIgSWQ6ICR7aG9zdC5ob3N0X2lkfVxuYCArCiAgICAgICAgICAgIGBOYW1lOiAke2hvc3QubmFtZX1cbmAgKwogICAgICAgICAgICBgUGFpciBTdGF0dXM6ICR7aG9zdC5wYWlyZWR9XG5gICsKICAgICAgICAgICAgYFN0YXRlOiAke2hvc3Quc2VydmVyX3N0YXRlfVxuYCArCiAgICAgICAgICAgIGBBZGRyZXNzOiAke2hvc3QuYWRkcmVzc31cbmAgKwogICAgICAgICAgICBgSHR0cCBQb3J0OiAke2hvc3QuaHR0cF9wb3J0fVxuYCArCiAgICAgICAgICAgIGBIdHRwcyBQb3J0OiAke2hvc3QuaHR0cHNfcG9ydH1cbmAgKwogICAgICAgICAgICBgRXh0ZXJuYWwgUG9ydDogJHtob3N0LmV4dGVybmFsX3BvcnR9XG5gICsKICAgICAgICAgICAgYFZlcnNpb246ICR7aG9zdC52ZXJzaW9ufVxuYCArCiAgICAgICAgICAgIGBHZmUgVmVyc2lvbjogJHtob3N0LmdmZV92ZXJzaW9ufVxuYCArCiAgICAgICAgICAgIGBVbmlxdWUgSUQ6ICR7aG9zdC51bmlxdWVfaWR9XG5gICsKICAgICAgICAgICAgYE1BQzogJHtob3N0Lm1hY31cbmAgKwogICAgICAgICAgICBgTG9jYWwgSVA6ICR7aG9zdC5sb2NhbF9pcH1cbmAgKwogICAgICAgICAgICBgQ3VycmVudCBHYW1lOiAke2hvc3QuY3VycmVudF9nYW1lfVxuYCArCiAgICAgICAgICAgIGBNYXggTHVtYSBQaXhlbHMgSGV2YzogJHtob3N0Lm1heF9sdW1hX3BpeGVsc19oZXZjfVxuYCArCiAgICAgICAgICAgIGBTZXJ2ZXIgQ29kZWMgTW9kZSBTdXBwb3J0OiAke2hvc3Quc2VydmVyX2NvZGVjX21vZGVfc3VwcG9ydH1gLAogICAgfSwKICAgIGdhbWU6IHsKICAgICAgICByZXN1bWVTZXNzaW9uOiAiUmVzdW1lIFNlc3Npb24iLAogICAgICAgIHN0b3BDdXJyZW50U2Vzc2lvbjogIlN0b3AgQ3VycmVudCBTZXNzaW9uIiwKICAgICAgICBmYWlsZWRUb0Nsb3NlQXBwOiAiRmFpbGVkIHRvIGNsb3NlIGFwcCEiLAogICAgICAgIHNob3dEZXRhaWxzOiAiU2hvdyBEZXRhaWxzIiwKICAgICAgICBvcGVuOiAiT3BlbiIsCiAgICAgICAgZGV0YWlsczogKGFwcDogYW55KSA9PgogICAgICAgICAgICBgVGl0bGU6ICR7YXBwLnRpdGxlfVxuYCArCiAgICAgICAgICAgIGBJZDogJHthcHAuYXBwX2lkfVxuYCArCiAgICAgICAgICAgIGBIRFIgU3VwcG9ydGVkOiAke2FwcC5pc19oZHJfc3VwcG9ydGVkfVxuYCwKICAgIH0sCiAgICBtb2RhbDogewogICAgICAgIG9rOiAiT2siLAogICAgICAgIGNhbmNlbDogIkNhbmNlbCIsCiAgICAgICAgbG9naW46ICJMb2dpbiIsCiAgICAgICAgdXNlcm5hbWU6ICJVc2VybmFtZSIsCiAgICAgICAgcGFzc3dvcmQ6ICJQYXNzd29yZCIsCiAgICAgICAgcGFzc3dvcmRBc0ZpbGU6ICJQYXNzd29yZCBhcyBGaWxlIiwKICAgIH0sCiAgICBjb21tb246IHsKICAgICAgICBvcGVuRmlsZTogIk9wZW4gRmlsZSIsCiAgICAgICAgbm90U2VsZWN0ZWQ6ICIoTm90IFNlbGVjdGVkKSIsCiAgICAgICAgbWlzc2luZ0NvbnRleHRNZW51OiAiY2Fubm90IGZpbmQgdGhlIGNvbnRleHQgbWVudSBlbGVtZW50IiwKICAgICAgICBtaXNzaW5nTW9kYWxQYXJlbnQ6ICJjYW5ub3QgZmluZCBtb2RhbCBwYXJlbnQiLAogICAgICAgIG1pc3NpbmdNb2RhbE92ZXJsYXk6ICJ0aGUgbW9kYWwgb3ZlcmxheSBjYW5ub3QgYmUgZm91bmQiLAogICAgICAgIG1pc3NpbmdTaWRlYmFyOiAiZmFpbGVkIHRvIGdldCBzaWRlYmFyIiwKICAgIH0sCn0KCi8vIENhbm9uaWNhbCB0eXBlIGRlcml2ZWQgZnJvbSB0aGUgRW5nbGlzaCBsb2NhbGUuCi8vIEFsbCBvdGhlciBsb2NhbGUgZmlsZXMgaW1wbGVtZW50IHRoaXMgdHlwZSDigJQgVHlwZVNjcmlwdCBlbmZvcmNlcyBjb21wbGV0ZW5lc3MuCmV4cG9ydCB0eXBlIFRyYW5zbGF0aW9ucyA9IHR5cGVvZiBlbgo="},{"path":"web/locales/fr-FR.ts","sha256":"86f80d90db9d1b2201f1649309c2e8a9f6d1fdc4c2025fc34bbf6c416616c6f1","contentBase64":"aW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnMgfSBmcm9tICIuL2VuLmpzIgoKZXhwb3J0IGNvbnN0IGZyRnI6IFRyYW5zbGF0aW9ucyA9IHsKICAgIGluZGV4OiB7CiAgICAgICAgYXBwVGl0bGU6ICJNb29ubGlnaHQgV2ViIiwKICAgICAgICBiYWNrOiAiUmV0b3VyIiwKICAgICAgICByZWxvYWQ6ICJSZWNoYXJnZXIiLAogICAgICAgIGFkZEhvc3RVbnJlYWNoYWJsZTogKGFkZHJlc3M6IHN0cmluZykgPT4gYEwnaMO0dGUgIiR7YWRkcmVzc30iIGVzdCBpbmpvaWduYWJsZWAsCiAgICAgICAgc2F2ZVNldHRpbmdzRmFpbGVkOiAiRWNoZWMgZGUgbCdlbnJlZ2lzdHJlbWVudCBkZXMgcGFyYW3DqHRyZXMiLAogICAgICAgIHJvb3ROb3RGb3VuZDogIkVsw6ltZW50IHJhY2luZSBpbnRyb3V2YWxiZSIsCiAgICB9LAogICAgc3RyZWFtOiB7CiAgICAgICAgbWlzc2luZ0hvc3RPckFwcDogIkF1Y3VuIGjDtHRlIG91IGlkZW50aWZpYW50IGQnYXBwbGljYXRpb24gdHJvdXbDqSIsCiAgICAgICAgZnVsbHNjcmVlblVuc3VwcG9ydGVkOiAiTW9kZSBwbGVpbiDDqWNyYW4gbm9uIHN1cHBvcnTDqSBwYXIgdm90cmUgbmF2aWdhdGV1ciAhIiwKICAgICAgICBmdWxsc2NyZWVuRXNjYXBlSGludDogIlBvdXIgcXVpdHRlciBsZSBtb2RlIHBsZWluIMOpY3Jhbiwgdm91cyBkZXZyZXogbWFpbnRlbmlyIGxhIHRvdWNoZSBFY2hhcCBhcHB1ecOpZSBxdWVscXVlcyBzZWNvbmRlcy4iLAogICAgICAgIHBvaW50ZXJMb2NrVW5zdXBwb3J0ZWQ6ICJWZXJyb3VpbGxhZ2UgZHUgcG9pbnRldXIgbm9uIHN1cHBvcnTDqSIsCiAgICAgICAgY29ubmVjdGluZzogIkNvbm5leGlvbiIsCiAgICAgICAgc2hvd0xvZ3M6ICJBZmZpY2hlciBsZXMgam91cm5hdXgiLAogICAgICAgIGhpZGVMb2dzOiAiQ2FjaGVyIGxlcyBqb3VybmF1eCIsCiAgICAgICAgY2xvc2U6ICJGZXJtZXIiLAogICAgICAgIGF1dG9GdWxsc2NyZWVuUHJvbXB0OiAiQmFzY3VsZXIgZW4gbW9kZSBwbGVpbiDDqWNyYW4gPyIsCiAgICAgICAgY29ubmVjdGlvbkNvbXBsZXRlOiAiQ29ubmV4aW9uIMOpdGFibGllIiwKICAgICAgICBzZXJ2ZXJNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiBgU2VydmV1cjogJHttZXNzYWdlfWAsCiAgICAgICAgc2VuZEtleWNvZGU6ICJFbnZvaXllciBsZSBjb2RlIGNsw6kiLAogICAgICAgIGxvY2tNb3VzZTogIlZlcnJvdWlsbGFnZSBkZSBsYSBzb3VyaXMiLAogICAgICAgIGtleWJvYXJkOiAiQ2xhdmllciIsCiAgICAgICAgaGlkZUtleWJvYXJkOiAiTWFzcXVlciBsZSBjbGF2aWVyIiwKICAgICAgICBmdWxsc2NyZWVuOiAiUGxlaW4gw6ljcmFuIiwKICAgICAgICBzdGF0czogIlN0YXRzIiwKICAgICAgICBleGl0OiAiUXVpdHRlciIsCiAgICAgICAgbW91c2VNb2RlOiAiTW9kZSBzb3VyaXMiLAogICAgICAgIHRvdWNoTW9kZTogIk1vZGUgdGFjdGlsZSIsCiAgICAgICAgcmVsYXRpdmU6ICJSZWxhdGl2ZSIsCiAgICAgICAgZm9sbG93OiAiU3VpdnJlIiwKICAgICAgICBwb2ludEFuZERyYWc6ICJQb2ludGVyIGV0IGdsaXNzZXIiLAogICAgICAgIHRvdWNoOiAiVGFjdGllbCIsCiAgICAgICAgbG9jYWxDdXJzb3I6ICJDdXJzZXVyIGxvY2FsIiwKICAgICAgICBzZWxlY3RLZXljb2RlOiAiU2VsZWN0aW9uIGR1IGNvZGUgY2zDqSIsCiAgICAgICAgcm9vdE5vdEZvdW5kOiAiRWzDqW1lbnQgcmFjaW5lIGludHJvdXZhYmxlIiwKICAgIH0sCiAgICBzZXR0aW5nczogewogICAgICAgIHNpZGViYXI6ICJCYXJyZSBsYXTDqXJhbGUiLAogICAgICAgIHNpZGViYXJFZGdlOiAiQm9yZCBkZSBsYSBiYXJyZSBsYXTDqXJhbGUiLAogICAgICAgIGxlZnQ6ICJHYXVjaGUiLAogICAgICAgIHJpZ2h0OiAiRHJvaXRlIiwKICAgICAgICB1cDogIkhhdXQiLAogICAgICAgIGRvd246ICJCYXMiLAogICAgICAgIHZpZGVvOiAiVmlkw6lvIiwKICAgICAgICBiaXRyYXRlOiAiRMOpYml0IChLYnBzKSIsCiAgICAgICAgZnBzOiAiSXBzIiwKICAgICAgICB2aWRlb1NpemU6ICJUYWlsbGUgdmlkw6lvIiwKICAgICAgICBuYXRpdmU6ICJuYXRpdmUiLAogICAgICAgIGN1c3RvbTogInBlcnNvbm5hbGlzw6llIiwKICAgICAgICB2aWRlb1dpZHRoOiAiTGFyZ2V1ciB2aWTDqW8iLAogICAgICAgIHZpZGVvSGVpZ2h0OiAiSGF1dGV1ciB2aWTDqW8iLAogICAgICAgIHZpZGVvRnJhbWVRdWV1ZVNpemU6ICJUYWlsbGUgZmlsZSBkJ2F0dGVudGUgdmlkw6lvIiwKICAgICAgICB2aWRlb0NvZGVjOiAiQ29kZWMgdmlkw6lvIiwKICAgICAgICBhdXRvRXhwZXJpbWVudGFsOiAiQXV0byAoZXhww6lyaW1lbnRhbCkiLAogICAgICAgIGF2MUV4cGVyaW1lbnRhbDogIkFWMSAoZXhww6lyaW1lbnRhbCkiLAogICAgICAgIGZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXI6ICJGb3JjZXIgbGUgcmVuZHUgVmlkZW8gRWxlbWVudCAodW5pcXVlbWVudCBXZWJSVEMpIiwKICAgICAgICB1c2VDYW52YXNSZW5kZXJlcjogIlV0aWxpc2VyIGxlIHJlbmR1IENhbnZhcyIsCiAgICAgICAgY2FudmFzVnN5bmM6ICJWU3luYyBDYW52YXMgKHLDqWR1aXQgbGUgZMOpY2hpcmVtZW50KSIsCiAgICAgICAgZW5hYmxlSGRyOiAiQWN0aXZlciBIRFIiLAogICAgICAgIGF1ZGlvOiAiQXVkaW8iLAogICAgICAgIHBsYXlBdWRpb0xvY2FsOiAiSm91ZXIgbCdhdXVkaW8gbG9jYWxlbWVudCIsCiAgICAgICAgYXVkaW9TYW1wbGVRdWV1ZVNpemU6ICJUYWlsbGUgZGUgbGEgZmlsZSBkJ2F0dGVudGUgYXVkaW8iLAogICAgICAgIG1vdXNlOiAiU291cmlzIiwKICAgICAgICBzY3JvbGxNb2RlOiAiTW9kZSBkZSBkw6lmaWxlbWVudCIsCiAgICAgICAgc3RhcnR1cE1vdXNlTW9kZTogIk1vZGUgZGUgbGEgc291cmlzIGF1IGTDqW1hcnJhZ2UiLAogICAgICAgIHN0YXJ0dXBUb3VjaE1vZGU6ICJNb2RlIHRhY3RpbGUgYXUgZMOpbWFycmFnZSIsCiAgICAgICAgbG9jYWxDdXJzb3JTZW5zaXRpdml0eTogIlNlbnNpYmlsaXTDqSBkdSBjdXJzZXVyIGxvY2FsIiwKICAgICAgICBoaWdoUmVzOiAiSGF1dGUgcsOpc29sdXRpb24iLAogICAgICAgIG5vcm1hbDogIk5vcm1hbCIsCiAgICAgICAgY29udHJvbGxlcjogIkNvbnRyw7RsZXVyIiwKICAgICAgICBjb250cm9sbGVyRGlzYWJsZWQ6ICJDb250csO0bGV1ciAoRMOpc2FjdGl2w6k6IENvbnRleHQgc8OpY3VyaXPDqSByZXF1aXMpIiwKICAgICAgICBpbnZlcnRBQjogIkludmVyc2VyIEEgZXQgQiIsCiAgICAgICAgaW52ZXJ0WFk6ICJJbnZlcnNlciBYIGV0IFkiLAogICAgICAgIG92ZXJyaWRlQ29udHJvbGxlckludGVydmFsOiAiT3V0cmVwYXNzZXIgbCdpbnRlcnZhbGxlIGQnZW52b2kgZGUgbCfDqXRhdCBkdSBjb250csO0bGV1ciIsCiAgICAgICAgb3RoZXI6ICJBdXRyZSIsCiAgICAgICAgbGFuZ3VhZ2U6ICJMYW5ndWUiLAogICAgICAgIGRhdGFUcmFuc3BvcnQ6ICJUcmFuc3BvcnQgZGVzIGRvbm7DqWVzIiwKICAgICAgICBhdXRvOiAiQXV0byIsCiAgICAgICAgd2ViU29ja2V0OiAiV2ViIFNvY2tldCIsCiAgICAgICAgZW50ZXJGdWxsc2NyZWVuT25TdHJlYW1TdGFydDogIlBhc3NlciBlbiBwbGVpbiDDqWNyYW4gw6AgbGEgcHJlbWnDqHJlIGludGVyYWN0aW9uIGF2ZWMgbGEgZGlmZnVzaW9uIiwKICAgICAgICBzYXZlUm9sZURlZmF1bHRzOiAiRW5yZWdpc3RyZXIgcGFyIGTDqWZhdXQgcG91ciBsZSByw7RsZSIsCiAgICAgICAgc2F2ZVJvbGVEZWZhdWx0c1N1Y2Nlc3M6ICJFbnJlZ2lzdHLDqSBwYXIgZMOpZmF1dCBwb3VyIGxlIHLDtGxlIiwKICAgICAgICBzYXZlUm9sZURlZmF1bHRzRmFpbGVkOiAiRWNoZWMgZGUgbCdlbnJlZ2lzdHJlbWVudCBkZXMgcGFyYW3DqHRyZXMgcGFyIGTDqWZhdXQgcG91ciBsZSByw7RsZSIsCiAgICAgICAgdG9nZ2xlRnVsbHNjcmVlbldpdGhLZXliaW5kOiAiQmFzY3VsZXIgZW50cmUgbGUgbW9kZSBwbGVpbiDDqWNyYW4gZXQgbGUgdmVycm91aWxsYWdlIGRlIGxhIHNvdXJpcyBhdmVjIEN0cmwgKyBTaGlmdCArIEkiLAogICAgICAgIHN0eWxlOiAiU3R5bGUiLAogICAgICAgIHVzZUN1c3RvbURyb3Bkb3duOiAiVXRpbGlzZXIgbCdpbXBsw6ltZW50YXRpb24gcGVyc29ubmFsaXPDqWUgZHUgZMOpcm91bGVtZW50IiwKICAgIH0sCiAgICBhZGRIb3N0OiB7CiAgICAgICAgaGVhZGVyOiAiSMO0dGUiLAogICAgICAgIGFkZHJlc3M6ICJBZHJlc3NlIiwKICAgICAgICBwb3J0OiAiUG9ydCIsCiAgICB9LAogICAgYWRtaW46IHsKICAgICAgICByb290Tm90Rm91bmQ6ICJFbMOpbWVudCByYWNpbmUgaW50cm91dmFibGUiLAogICAgICAgIHVuYXV0aG9yaXplZDogIlZvdXMgbifDqnRlcyBwYXMgYXV0b3Jpc8OpIMOgIHZpc3VhbGlzZXIgY2V0dGUgcGFnZSAhIiwKICAgICAgICB1c2VyczogIlV0aWxpc2F0ZXVycyIsCiAgICAgICAgcm9sZXM6ICJSw7RsZXMiLAogICAgICAgIGFkZFVzZXI6ICJBam91dCBkJ3VuIHV0aWxpc2F0ZXVyIiwKICAgICAgICBhZGRSb2xlOiAiQWpvdXQgZCd1biByw7RsZSIsCiAgICAgICAgc2VhcmNoVXNlcjogIlJlY2hlcmNoZSBVdGlsaXNhdGV1ciIsCiAgICAgICAgc2VhcmNoUm9sZTogIlJlY2hlcmNoZSBSw7RsZSIsCiAgICAgICAgZGVsZXRlOiAiU3VwcHJpbWVyIiwKICAgICAgICBhcHBseTogIkFwcGxpcXVlciIsCiAgICAgICAgdXNlcjogIlV0aWxpc2F0ZXVyIiwKICAgICAgICByb2xlOiAiUsO0bGUiLAogICAgICAgIG5hbWU6ICJOb20iLAogICAgICAgIGRlZmF1bHRQYXNzd29yZDogIk1vdCBkZSBwYXNzZSBwYXIgZMOpZmF1dCIsCiAgICAgICAgbW9vbmxpZ2h0Q2xpZW50SWQ6ICJJZGVudGlmaWFudCBkdSBjbGllbnQgTW9vbmxpZ2h0IiwKICAgICAgICBwbGVhc2VTZWxlY3RSb2xlOiAiVmV1aWxsZXogY2hvaXNpciB1biByw7RsZSAhIiwKICAgICAgICByb2xlRXhpc3RzOiAobmFtZTogc3RyaW5nKSA9PiBgTm9tIGR1IHLDtGxlICIke25hbWV9IiBkw6lqw6AgcHJpcyAhYCwKICAgICAgICB1c2VyRXhpc3RzOiAobmFtZTogc3RyaW5nKSA9PiBgTm9tIGRlIGwndXRpbGlzYXRldXIgIiR7bmFtZX0iIGTDqWrDoCBwcmlzICFgLAogICAgICAgIHJvbGVUeXBlOiAiVHlwZSIsCiAgICAgICAgcGVybWlzc2lvbnM6ICJQZXJtaXNzaW9ucyIsCiAgICAgICAgZGVmYXVsdFNldHRpbmdzOiAiUGFyYW3DqHRyZXMgcGFyIGTDqWZhdXQiLAogICAgICAgIHVzZXJJZDogIklkZW50aWZpYW50IGRlIGwndXRpbGlzYXRldXIiLAogICAgICAgIHVzZXJOYW1lOiAiTm9tIGRlIGwndXRpbGlzYXRldXIiLAogICAgICAgIHBhc3N3b3JkOiAiTW90IGRlIHBhc3NlIiwKICAgICAgICBuZXdQYXNzd29yZDogIk5vdXZlYXUgbW90IGRlIHBhc3NlIiwKICAgICAgICByb2xlSWQ6ICJJZGVudGlmaWFudCBkdSByw7RsZSIsCiAgICAgICAgcm9sZU5hbWU6ICJOb20gZHUgcsO0bGUiLAogICAgICAgIGFsbG93QWRkSG9zdHM6ICJBdXRvcmlzZXIgbCdham91dCBkJ2jDtHRlcyIsCiAgICAgICAgbWF4aW11bUJpdHJhdGU6ICJEw6liaXQgbWF4aW11bSAoS2JwcykiLAogICAgICAgIGFsbG93SDI2NDogIlBlcm1ldHRyZSBIMjY0IiwKICAgICAgICBhbGxvd0gyNjU6ICJQZXJtZXR0cmUgSDI2NSIsCiAgICAgICAgYWxsb3dBdjE6ICJQZXJtZXR0cmUgQXYxIiwKICAgICAgICBhbGxvd0hkcjogIlBlcm1ldHRyZSBIRFIiLAogICAgICAgIGFsbG93V2VicnRjOiAiUGVybWV0dHJlIFdlYlJUQyIsCiAgICAgICAgYWxsb3dXZWJTb2NrZXRzOiAiUGVybWV0dHJlIFdlYiBTb2NrZXRzIiwKICAgICAgICByb2xlRGVsZXRlQmxvY2tlZDogKHVzZXJzOiBzdHJpbmdbXSkgPT4gYFBvdXIgc3VwcHJpbWVyIGNlIHLDtGxlLCB0b3VzIGxlcyB1dGlsaXNhdGV1cnMgYXNzb2Npw6lzIMOgIGNlIHLDtGxlIGRvaXZlbnQgw6p0cmUgc3VwcHJpbcOpcyBvdSBhc3NvY2nDqXMgw6AgdW4gYXV0cmUgcsO0bGUuXG5VdGlsaXNhdGV1cnMgYWN0dWVsbGVtZW50IGFzc29jacOpcyDDoCBjZSByw7RsZTpcbiR7SlNPTi5zdHJpbmdpZnkodXNlcnMpfWAsCiAgICB9LAogICAgaG9zdDogewogICAgICAgIHNob3dEZXRhaWxzOiAiQWZmaWNoZXIgbGVzIGTDqXRhaWxzIiwKICAgICAgICBvcGVuOiAiT3V2cmlyIiwKICAgICAgICBzZW5kV2FrZVVwUGFja2V0OiAiRW52b3llciBsZSBzaWduYWwgZGUgcsOpdmVpbCIsCiAgICAgICAgcmVsb2FkOiAiUmVjaGFyZ2VyIiwKICAgICAgICBwYWlyOiAiQXBwYWlyZXIiLAogICAgICAgIG1ha2VQcml2YXRlOiAiUmVuZHJlIHBydml2w6kiLAogICAgICAgIG1ha2VHbG9iYWw6ICJSZW5kcmUgZ2xvYmFsIiwKICAgICAgICByZW1vdmVIb3N0OiAiUmV0aXJlciBsJ2jDtHRlIiwKICAgICAgICBmYWlsZWRUb0dldERldGFpbHM6IChpZDogbnVtYmVyKSA9PiBgw6ljaGVjIGRlIGxhIHLDqWN1cMOpcmF0aW9uIGRlcyBkw6l0YWlscyBkZSBsJ2jDtHRlICR7aWR9YCwKICAgICAgICB3YWtlVXBTZW50OiAiU2lnbmFsIGRlIHLDqXZlaWwgZW52b3nDqS4gTGUgUEMgcGV1dCBwcmVuZHJlIHVuIHBldSBkZSB0ZW1wcyBwb3VyIGTDqW1hcnJlci4iLAogICAgICAgIGFscmVhZHlQYWlyZWQ6ICJIw7R0ZSBkw6lqw6AgYXBwYWlyw6kgISIsCiAgICAgICAgcGFpclByb21wdDogKG5hbWU6IHN0cmluZywgcGluOiBzdHJpbmcpID0+IGBWZXVpbGxleiBhcHBhaXJlciB2b3RyZSBow7R0ZSAke25hbWV9IGF2ZWMgY2UgTklQIDpcbk5JUDogJHtwaW59YCwKICAgICAgICBvdmVyd3JpdGVNaXNtYXRjaDogKGN1cnJlbnRJZDogbnVtYmVyLCBpbmNvbWluZ0lkOiBudW1iZXIpID0+IGB0ZW50YXRpdmUgZCfDqWNyYXNlbWVudCBkZSBsJ2jDtHRlICR7Y3VycmVudElkfSBhdmVjIGxlcyBkb25uw6llcyBkZSAke2luY29taW5nSWR9YCwKICAgICAgICBkZXRhaWxzOiAoaG9zdDogYW55KSA9PgogICAgICAgICAgICBgSWRlbnRpZmlhbnQgV2ViIDogJHtob3N0Lmhvc3RfaWR9XG5gICsKICAgICAgICAgICAgYE5vbSA6ICR7aG9zdC5uYW1lfVxuYCArCiAgICAgICAgICAgIGBTdGF0dXMgZCdhcHBhaXJhZ2UgOiAke2hvc3QucGFpcmVkfVxuYCArCiAgICAgICAgICAgIGBFdGF0IDogJHtob3N0LnNlcnZlcl9zdGF0ZX1cbmAgKwogICAgICAgICAgICBgQWRyZXNzZTogICR7aG9zdC5hZGRyZXNzfVxuYCArCiAgICAgICAgICAgIGBQb3J0IEhUVFAgOiAke2hvc3QuaHR0cF9wb3J0fVxuYCArCiAgICAgICAgICAgIGBQb3J0IEhUVFBTIDogJHtob3N0Lmh0dHBzX3BvcnR9XG5gICsKICAgICAgICAgICAgYFBvcnQgRXh0ZXJuZSA6ICR7aG9zdC5leHRlcm5hbF9wb3J0fVxuYCArCiAgICAgICAgICAgIGBWZXJzaW9uOiAke2hvc3QudmVyc2lvbn1cbmAgKwogICAgICAgICAgICBgVmVyc2lvbiBHRkUgOiAke2hvc3QuZ2ZlX3ZlcnNpb259XG5gICsKICAgICAgICAgICAgYElkZW50aWZpYW50IHVuaXF1ZSA6ICR7aG9zdC51bmlxdWVfaWR9XG5gICsKICAgICAgICAgICAgYE1BQzogJHtob3N0Lm1hY31cbmAgKwogICAgICAgICAgICBgSVAgbG9jYWxlIDogJHtob3N0LmxvY2FsX2lwfVxuYCArCiAgICAgICAgICAgIGBKZXUgYWN0dWVsIDogJHtob3N0LmN1cnJlbnRfZ2FtZX1cbmAgKwogICAgICAgICAgICBgTWF4IGRlcyBQaXhlbHMgTHVtYSBIRVZDIDogJHtob3N0Lm1heF9sdW1hX3BpeGVsc19oZXZjfVxuYCArCiAgICAgICAgICAgIGBNb2RlIGRlIHN1cHBvcnQgZHUgY29kZWMgc2VydmV1ciA6ICR7aG9zdC5zZXJ2ZXJfY29kZWNfbW9kZV9zdXBwb3J0fWAsCiAgICB9LAogICAgZ2FtZTogewogICAgICAgIHJlc3VtZVNlc3Npb246ICJSZXByaXNlIGRlIGxhIHNlc3Npb24iLAogICAgICAgIHN0b3BDdXJyZW50U2Vzc2lvbjogIkFycsOqdCBkZSBsYSBzZXNzaW9uIiwKICAgICAgICBmYWlsZWRUb0Nsb3NlQXBwOiAiRWNoZWMgZGUgbGEgZmVybWV0dXJlIGRlIGwnYXBwICEiLAogICAgICAgIHNob3dEZXRhaWxzOiAiQWZmaWNoZXIgbGVzIGTDqXRhaWxzIiwKICAgICAgICBvcGVuOiAiT3V2cmlyIiwKICAgICAgICBkZXRhaWxzOiAoYXBwOiBhbnkpID0+CiAgICAgICAgICAgIGBUaXRyZSA6ICR7YXBwLnRpdGxlfVxuYCArCiAgICAgICAgICAgIGBJZGVudGlmaWFudCA6ICR7YXBwLmFwcF9pZH1cbmAgKwogICAgICAgICAgICBgU3VwcG9ydCBkdSBIRFIgOiAke2FwcC5pc19oZHJfc3VwcG9ydGVkfVxuYCwKICAgIH0sCiAgICBtb2RhbDogewogICAgICAgIG9rOiAiT2siLAogICAgICAgIGNhbmNlbDogIkFubnVsZXIiLAogICAgICAgIGxvZ2luOiAiQ29ubmVjdGVyIiwKICAgICAgICB1c2VybmFtZTogIk5vbSBkJ3V0aWxpc2F0ZXVyIiwKICAgICAgICBwYXNzd29yZDogIk1vdCBkZSBwYXNzZSIsCiAgICAgICAgcGFzc3dvcmRBc0ZpbGU6ICJGaWNoaWVyIGRlIG1vdCBkZSBwYXNzZSIsCiAgICB9LAogICAgY29tbW9uOiB7CiAgICAgICAgb3BlbkZpbGU6ICJPdXZyaXIgdW4gZmljaGllciIsCiAgICAgICAgbm90U2VsZWN0ZWQ6ICIoTm9uIHPDqWxlY3Rpb25uw6kpIiwKICAgICAgICBtaXNzaW5nQ29udGV4dE1lbnU6ICLDqWzDqW1lbnQgZGUgbWVudSBjb250ZXh0dWVsIGludHJvdXZhYmxlIiwKICAgICAgICBtaXNzaW5nTW9kYWxQYXJlbnQ6ICJwYXJlbnQgbW9kYWwgaW50cm91dmFibGUiLAogICAgICAgIG1pc3NpbmdNb2RhbE92ZXJsYXk6ICJjb3V2ZXJ0dXJlIG1vZGFsZSBpbnRyb3V2YWJsZSIsCiAgICAgICAgbWlzc2luZ1NpZGViYXI6ICJlY2hlYyBkZSBsJ29idGVudGlvbiBkZSBsYSBiYXJyZSBsYXTDqXJhbGUiLAogICAgfQp9Cg=="},{"path":"web/locales/ko-KR.ts","sha256":"0fbc3c4a544eeb676f2cbad268643d4bef5fea6290efc9d68d87fb88c2fb42fa","contentBase64":"aW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnMgfSBmcm9tICIuL2VuLmpzIgoKZXhwb3J0IGNvbnN0IGtvS1I6IFRyYW5zbGF0aW9ucyA9IHsKICAgIGluZGV4OiB7CiAgICAgICAgYXBwVGl0bGU6ICJNb29ubGlnaHQgV2ViIiwKICAgICAgICBiYWNrOiAi65Kk66GcIiwKICAgICAgICByZWxvYWQ6ICLsg4jroZzqs6DsuagiLAogICAgICAgIGFkZEhvc3RVbnJlYWNoYWJsZTogKGFkZHJlc3M6IHN0cmluZykgPT4gYO2YuOyKpO2KuCAiJHthZGRyZXNzfSLsl5Ag7Jew6rKw7ZWgIOyImCDsl4bsirXri4jri6QuYCwKICAgICAgICBzYXZlU2V0dGluZ3NGYWlsZWQ6ICLshKTsoJXsnYQg7KCA7J6l7ZWY7KeAIOuqu+2WiOyKteuLiOuLpC4iLAogICAgICAgIHJvb3ROb3RGb3VuZDogIuujqO2KuCDsmpTshozrpbwg7LC+7J2EIOyImCDsl4bsirXri4jri6QuIiwKICAgIH0sCiAgICBzdHJlYW06IHsKICAgICAgICBtaXNzaW5nSG9zdE9yQXBwOiAi7Zi47Iqk7Yq4IOuYkOuKlCDslbEgSUTrpbwg7LC+7J2EIOyImCDsl4bsirXri4jri6QuIiwKICAgICAgICBmdWxsc2NyZWVuVW5zdXBwb3J0ZWQ6ICLtmITsnqwg67iM65287Jqw7KCA7JeQ7IScIOyghOyytCDtmZTrqbTsnYQg7KeA7JuQ7ZWY7KeAIOyViuyKteuLiOuLpCEiLAogICAgICAgIGZ1bGxzY3JlZW5Fc2NhcGVIaW50OiAi7KCE7LK0IO2ZlOuptOydhCDsooXro4ztlZjroKTrqbQgRVNDIO2CpOulvCDrqocg7LSI6rCEIOq4uOqyjCDriITrpbTshLjsmpQuIiwKICAgICAgICBwb2ludGVyTG9ja1Vuc3VwcG9ydGVkOiAi66eI7Jqw7IqkIOy7pOyEnCDqs6DsoJUoUG9pbnRlciBMb2NrKeydtCDsp4Dsm5DrkJjsp4Ag7JWK7Iq164uI64ukLiIsCiAgICAgICAgY29ubmVjdGluZzogIuyXsOqysCDspJEiLAogICAgICAgIHNob3dMb2dzOiAi66Gc6re4IO2RnOyLnCIsCiAgICAgICAgaGlkZUxvZ3M6ICLroZzqt7gg7Iio6riw6riwIiwKICAgICAgICBjbG9zZTogIuuLq+q4sCIsCiAgICAgICAgYXV0b0Z1bGxzY3JlZW5Qcm9tcHQ6ICLsp4DquIgg7KCE7LK0IO2ZlOuptOycvOuhnCDsoITtmZjtlZjsi5zqsqDsirXri4jquYw/IiwKICAgICAgICBjb25uZWN0aW9uQ29tcGxldGU6ICLsl7DqsrAg7JmE66OMIiwKICAgICAgICBzZXJ2ZXJNZXNzYWdlOiAobWVzc2FnZTogc3RyaW5nKSA9PiBg7ISc67KEOiAke21lc3NhZ2V9YCwKICAgICAgICBzZW5kS2V5Y29kZTogIu2CpOy9lOuTnCDsoITshqEiLAogICAgICAgIGxvY2tNb3VzZTogIuuniOyasOyKpCDqsIDrkZDquLAiLAogICAgICAgIGtleWJvYXJkOiAi7YKk67O065OcIiwKICAgICAgICBoaWRlS2V5Ym9hcmQ6ICLtgqTrs7Trk5wg7Iio6riw6riwIiwKICAgICAgICBmdWxsc2NyZWVuOiAi7KCE7LK0IO2ZlOuptCIsCiAgICAgICAgc3RhdHM6ICLthrXqs4QiLAogICAgICAgIGV4aXQ6ICLsooXro4wiLAogICAgICAgIG1vdXNlTW9kZTogIuuniOyasOyKpCDrqqjrk5wiLAogICAgICAgIHRvdWNoTW9kZTogIu2EsOy5mCDrqqjrk5wiLAogICAgICAgIHJlbGF0aXZlOiAi7IOB64yAIOyijO2RnCIsCiAgICAgICAgZm9sbG93OiAi7Yq4656Y7YK5IiwKICAgICAgICBwb2ludEFuZERyYWc6ICLtj6zsnbjtirgg67CPIOuTnOuemOq3uCIsCiAgICAgICAgdG91Y2g6ICLthLDsuZgiLAogICAgICAgIGxvY2FsQ3Vyc29yOiAi66Gc7LusIOy7pOyEnCIsCiAgICAgICAgc2VsZWN0S2V5Y29kZTogIu2CpOy9lOuTnCDshKDtg50iLAogICAgICAgIHJvb3ROb3RGb3VuZDogIuujqO2KuCDsmpTshozrpbwg7LC+7J2EIOyImCDsl4bsirXri4jri6QuIiwKICAgIH0sCiAgICBzZXR0aW5nczogewogICAgICAgIHNpZGViYXI6ICLsgqzsnbTrk5zrsJQiLAogICAgICAgIHNpZGViYXJFZGdlOiAi7IKs7J2065Oc67CUIOychOy5mCIsCiAgICAgICAgbGVmdDogIuyZvOyqvSIsCiAgICAgICAgcmlnaHQ6ICLsmKTrpbjsqr0iLAogICAgICAgIHVwOiAi7JyEIiwKICAgICAgICBkb3duOiAi7JWE656YIiwKICAgICAgICB2aWRlbzogIuu5hOuUlOyYpCIsCiAgICAgICAgYml0cmF0ZTogIuu5hO2KuOugiOydtO2KuCAoS2JwcykiLAogICAgICAgIGZwczogIu2UhOugiOyehCAoRlBTKSIsCiAgICAgICAgdmlkZW9TaXplOiAi7ZW07IOB64+EIOyEpOyglSIsCiAgICAgICAgbmF0aXZlOiAi6riw67O46rCSIiwKICAgICAgICBjdXN0b206ICLsgqzsmqnsnpAg7KCV7J2YIiwKICAgICAgICB2aWRlb1dpZHRoOiAi7ZmU66m0IOuEiOu5hCIsCiAgICAgICAgdmlkZW9IZWlnaHQ6ICLtmZTrqbQg64aS7J20IiwKICAgICAgICB2aWRlb0ZyYW1lUXVldWVTaXplOiAi67mE65SU7JikIO2UhOugiOyehCDrjIDquLDsl7Qg7YGs6riwIiwKICAgICAgICB2aWRlb0NvZGVjOiAi67mE65SU7JikIOy9lOuNsSIsCiAgICAgICAgYXV0b0V4cGVyaW1lbnRhbDogIuyekOuPmSAo7Iuk7ZeY7KCBKSIsCiAgICAgICAgYXYxRXhwZXJpbWVudGFsOiAiQVYxICjsi6Ttl5jsoIEpIiwKICAgICAgICBmb3JjZVZpZGVvRWxlbWVudFJlbmRlcmVyOiAi67mE65SU7JikIOyalOyGjCDroIzrjZTrn6wg6rCV7KCcIOyCrOyaqSAoV2ViUlRDIOyghOyaqSkiLAogICAgICAgIHVzZUNhbnZhc1JlbmRlcmVyOiAiQ2FudmFzIOugjOuNlOufrCDsgqzsmqkiLAogICAgICAgIGNhbnZhc1ZzeW5jOiAiQ2FudmFzIOyImOyngSDrj5nquLDtmZQgKO2LsOyWtOungSDqsJDshowpIiwKICAgICAgICBlbmFibGVIZHI6ICJIRFIg7Zmc7ISx7ZmUIiwKICAgICAgICBhdWRpbzogIuyYpOuUlOyYpCIsCiAgICAgICAgcGxheUF1ZGlvTG9jYWw6ICLroZzsu6wg7Jik65SU7JikIOyerOyDnSIsCiAgICAgICAgYXVkaW9TYW1wbGVRdWV1ZVNpemU6ICLsmKTrlJTsmKQg7IOY7ZSMIOuMgOq4sOyXtCDtgazquLAiLAogICAgICAgIG1vdXNlOiAi66eI7Jqw7IqkIiwKICAgICAgICBzY3JvbGxNb2RlOiAi7Iqk7YGs66GkIOuqqOuTnCIsCiAgICAgICAgc3RhcnR1cE1vdXNlTW9kZTogIuyKpO2KuOumrOuwjSDsi5zsnpEg7IucIOuniOyasOyKpCDrqqjrk5wiLAogICAgICAgIHN0YXJ0dXBUb3VjaE1vZGU6ICLsiqTtirjrpqzrsI0g7Iuc7J6RIOyLnCDthLDsuZgg66qo65OcIiwKICAgICAgICBsb2NhbEN1cnNvclNlbnNpdGl2aXR5OiAi66Gc7LusIOy7pOyEnCDqsJDrj4QiLAogICAgICAgIGhpZ2hSZXM6ICLqs6DtlbTsg4Hrj4QiLAogICAgICAgIG5vcm1hbDogIuydvOuwmCIsCiAgICAgICAgY29udHJvbGxlcjogIuy7qO2KuOuhpOufrCIsCiAgICAgICAgY29udHJvbGxlckRpc2FibGVkOiAi7Luo7Yq466Gk65+sICjruYTtmZzshLE6IOuztOyViCDsu6jthY3siqTtirgg7ZWE7JqUKSIsCiAgICAgICAgaW52ZXJ0QUI6ICJBL0Ig67KE7Yq8IOuwmOyghCIsCiAgICAgICAgaW52ZXJ0WFk6ICJYL1kg67KE7Yq8IOuwmOyghCIsCiAgICAgICAgb3ZlcnJpZGVDb250cm9sbGVySW50ZXJ2YWw6ICLsu6jtirjroaTrn6wg7IOB7YOcIOyghOyGoSDqsITqsqkg7J6s7KCV7J2YIiwKICAgICAgICBvdGhlcjogIuq4sO2DgCIsCiAgICAgICAgbGFuZ3VhZ2U6ICLslrjslrQiLAogICAgICAgIGRhdGFUcmFuc3BvcnQ6ICLrjbDsnbTthLAg7KCE7IahIOuwqeyLnSIsCiAgICAgICAgYXV0bzogIuyekOuPmSIsCiAgICAgICAgd2ViU29ja2V0OiAi7Ju5IOyGjOy8kyAoV2ViIFNvY2tldCkiLAogICAgICAgIGVudGVyRnVsbHNjcmVlbk9uU3RyZWFtU3RhcnQ6ICLsiqTtirjrprwg7LKrIOyDge2YuOyekeyaqSDsi5wg7KCE7LK0IO2ZlOuptOycvOuhnCDsoITtmZgiLAogICAgICAgIHNhdmVSb2xlRGVmYXVsdHM6ICLtmITsnqwg7ISk7KCV7J2EIOyXre2VoCDquLDrs7jqsJLsnLzroZwg7KCA7J6lIiwKICAgICAgICBzYXZlUm9sZURlZmF1bHRzU3VjY2VzczogIu2YhOyerCDshKTsoJXsnYQg7Jet7ZWgIOq4sOuzuOqwkuycvOuhnCDsoIDsnqXtlojsirXri4jri6QuIiwKICAgICAgICBzYXZlUm9sZURlZmF1bHRzRmFpbGVkOiAi7Jet7ZWgIOq4sOuzuCDshKTsoJXsnYQg7KCA7J6l7ZWY7KeAIOuqu+2WiOyKteuLiOuLpC4iLAogICAgICAgIHRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZDogIkN0cmwgKyBTaGlmdCArIEnroZwg7KCE7LK0IO2ZlOuptCDrsI8g66eI7Jqw7IqkIOqwgOuRkOq4sCDsoITtmZgiLAogICAgICAgIHN0eWxlOiAi7Iqk7YOA7J28IiwKICAgICAgICB1c2VDdXN0b21Ecm9wZG93bjogIuyCrOyaqeyekCDsoJXsnZgg65Oc66Gt64uk7Jq0IOq1rO2YhCDsgqzsmqkiLAogICAgfSwKICAgIGFkZEhvc3Q6IHsKICAgICAgICBoZWFkZXI6ICLtmLjsiqTtirgg7LaU6rCAIiwKICAgICAgICBhZGRyZXNzOiAi7KO87IaMIiwKICAgICAgICBwb3J0OiAi7Y+s7Yq4IiwKICAgIH0sCiAgICBhZG1pbjogewogICAgICAgIHJvb3ROb3RGb3VuZDogIuujqO2KuCDsmpTshozrpbwg7LC+7J2EIOyImCDsl4bsirXri4jri6QuIiwKICAgICAgICB1bmF1dGhvcml6ZWQ6ICLsnbQg7Y6Y7J207KeA66W8IOuzvCDqtoztlZzsnbQg7JeG7Iq164uI64ukISIsCiAgICAgICAgdXNlcnM6ICLsgqzsmqnsnpAg6rSA66asIiwKICAgICAgICByb2xlczogIuyXre2VoCDqtIDrpqwiLAogICAgICAgIGFkZFVzZXI6ICLsgqzsmqnsnpAg7LaU6rCAIiwKICAgICAgICBhZGRSb2xlOiAi7Jet7ZWgIOy2lOqwgCIsCiAgICAgICAgc2VhcmNoVXNlcjogIuyCrOyaqeyekCDqsoDsg4kiLAogICAgICAgIHNlYXJjaFJvbGU6ICLsl63tlaAg6rKA7IOJIiwKICAgICAgICBkZWxldGU6ICLsgq3soJwiLAogICAgICAgIGFwcGx5OiAi7KCB7JqpIiwKICAgICAgICB1c2VyOiAi7IKs7Jqp7J6QIiwKICAgICAgICByb2xlOiAi7Jet7ZWgIiwKICAgICAgICBuYW1lOiAi7J2066aEIiwKICAgICAgICBkZWZhdWx0UGFzc3dvcmQ6ICLquLDrs7gg67mE67CA67KI7Zi4IiwKICAgICAgICBtb29ubGlnaHRDbGllbnRJZDogIk1vb25saWdodCDtgbTrnbzsnbTslrjtirggSUQiLAogICAgICAgIHBsZWFzZVNlbGVjdFJvbGU6ICLsl63tlaDsnYQg7ISg7YOd7ZW0IOyjvOyEuOyalCEiLAogICAgICAgIHJvbGVFeGlzdHM6IChuYW1lOiBzdHJpbmcpID0+IGAiJHtuYW1lfSIg7J2066aE7J2YIOyXre2VoOydtCDsnbTrr7gg7KG07J6s7ZWp64uI64ukIWAsCiAgICAgICAgdXNlckV4aXN0czogKG5hbWU6IHN0cmluZykgPT4gYCIke25hbWV9IiDsnbTrpoTsnZgg7IKs7Jqp7J6Q6rCAIOydtOuvuCDsobTsnqztlanri4jri6QhYCwKICAgICAgICByb2xlVHlwZTogIuycoO2YlSIsCiAgICAgICAgcGVybWlzc2lvbnM6ICLqtoztlZwiLAogICAgICAgIGRlZmF1bHRTZXR0aW5nczogIuq4sOuzuCDshKTsoJUiLAogICAgICAgIHVzZXJJZDogIuyCrOyaqeyekCBJRCIsCiAgICAgICAgdXNlck5hbWU6ICLsgqzsmqnsnpAg7J2066aEIiwKICAgICAgICBwYXNzd29yZDogIuu5hOuwgOuyiO2YuCIsCiAgICAgICAgbmV3UGFzc3dvcmQ6ICLsg4gg67mE67CA67KI7Zi4IiwKICAgICAgICByb2xlSWQ6ICLsl63tlaAgSUQiLAogICAgICAgIHJvbGVOYW1lOiAi7Jet7ZWgIOydtOumhCIsCiAgICAgICAgYWxsb3dBZGRIb3N0czogIu2YuOyKpO2KuCDstpTqsIAg7ZeI7JqpIiwKICAgICAgICBtYXhpbXVtQml0cmF0ZTogIuy1nOuMgCDruYTtirjroIjsnbTtirggKEticHMpIiwKICAgICAgICBhbGxvd0gyNjQ6ICJIMjY0IO2XiOyaqSIsCiAgICAgICAgYWxsb3dIMjY1OiAiSDI2NSDtl4jsmqkiLAogICAgICAgIGFsbG93QXYxOiAiQVYxIO2XiOyaqSIsCiAgICAgICAgYWxsb3dIZHI6ICJIRFIg7ZeI7JqpIiwKICAgICAgICBhbGxvd1dlYnJ0YzogIldlYlJUQyDtl4jsmqkiLAogICAgICAgIGFsbG93V2ViU29ja2V0czogIldlYiBTb2NrZXRzIO2XiOyaqSIsCiAgICAgICAgcm9sZURlbGV0ZUJsb2NrZWQ6ICh1c2Vyczogc3RyaW5nW10pID0+IGDsnbQg7Jet7ZWg7J2EIOyCreygnO2VmOugpOuptCDtlbTri7kg7Jet7ZWg7J20IO2VoOuLueuQnCDrqqjrk6Ag7IKs7Jqp7J6Q66W8IOyCreygnO2VmOqxsOuCmCDri6Trpbgg7Jet7ZWg66GcIOuzgOqyve2VtOyVvCDtlanri4jri6QuXG7tmITsnqwg7J20IOyXre2VoOydhCDqsIDsp4Qg7IKs7Jqp7J6QOlxuJHtKU09OLnN0cmluZ2lmeSh1c2Vycyl9YCwKICAgIH0sCiAgICBob3N0OiB7CiAgICAgICAgc2hvd0RldGFpbHM6ICLsg4HshLgg7KCV67O0IiwKICAgICAgICBvcGVuOiAi7Je06riwIiwKICAgICAgICBzZW5kV2FrZVVwUGFja2V0OiAiV2FrZSBvbiBMQU4g7Yyo7YK3IOyghOyGoSIsCiAgICAgICAgcmVsb2FkOiAi7IOI66Gc6rOg7LmoIiwKICAgICAgICBwYWlyOiAi7Y6Y7Ja066eBIiwKICAgICAgICBtYWtlUHJpdmF0ZTogIuqwnOyduOyaqeycvOuhnCDshKTsoJUiLAogICAgICAgIG1ha2VHbG9iYWw6ICLqs7XsmqnsnLzroZwg7ISk7KCVIiwKICAgICAgICByZW1vdmVIb3N0OiAi7Zi47Iqk7Yq4IOygnOqxsCIsCiAgICAgICAgZmFpbGVkVG9HZXREZXRhaWxzOiAoaWQ6IG51bWJlcikgPT4gYO2YuOyKpO2KuCAke2lkfeydmCDsg4HshLgg7KCV67O066W8IOqwgOyguOyYpOyngCDrqrvtlojsirXri4jri6QuYCwKICAgICAgICB3YWtlVXBTZW50OiAi66ek7KeBIO2MqO2Ct+ydhCDsoITshqHtlojsirXri4jri6QuIFBD6rCAIOy8nOyniCDrlYzquYzsp4Ag7J6g7IucIOq4sOuLpOugpCDso7zshLjsmpQuIiwKICAgICAgICBhbHJlYWR5UGFpcmVkOiAi7J20IO2YuOyKpO2KuOuKlCDsnbTrr7gg7Y6Y7Ja066eB65CY7Ja0IOyeiOyKteuLiOuLpCEiLAogICAgICAgIHBhaXJQcm9tcHQ6IChuYW1lOiBzdHJpbmcsIHBpbjogc3RyaW5nKSA9PiBg7Zi47Iqk7Yq4ICR7bmFtZX3sl5DshJwg7JWE656YIFBJTiDrsojtmLjrpbwg7J6F66Cl7ZW0IOyjvOyEuOyalDpcblBJTjogJHtwaW59YCwKICAgICAgICBvdmVyd3JpdGVNaXNtYXRjaDogKGN1cnJlbnRJZDogbnVtYmVyLCBpbmNvbWluZ0lkOiBudW1iZXIpID0+IGDtmLjsiqTtirggJHtjdXJyZW50SWR966W8ICR7aW5jb21pbmdJZH3snZgg642w7J207YSw66GcIOuNruyWtOyTsOugpCDsi5zrj4TtlojsirXri4jri6QuYCwKICAgICAgICBkZXRhaWxzOiAoaG9zdDogYW55KSA9PgogICAgICAgICAgICBg7Ju5IElEOiAke2hvc3QuaG9zdF9pZH1cbmAgKwogICAgICAgICAgICBg7J2066aEOiAke2hvc3QubmFtZX1cbmAgKwogICAgICAgICAgICBg7Y6Y7Ja066eBIOyDge2DnDogJHtob3N0LnBhaXJlZH1cbmAgKwogICAgICAgICAgICBg7IOB7YOcOiAke2hvc3Quc2VydmVyX3N0YXRlfVxuYCArCiAgICAgICAgICAgIGDso7zshow6ICR7aG9zdC5hZGRyZXNzfVxuYCArCiAgICAgICAgICAgIGBIdHRwIO2PrO2KuDogJHtob3N0Lmh0dHBfcG9ydH1cbmAgKwogICAgICAgICAgICBgSHR0cHMg7Y+s7Yq4OiAke2hvc3QuaHR0cHNfcG9ydH1cbmAgKwogICAgICAgICAgICBg7Jm467aAIO2PrO2KuDogJHtob3N0LmV4dGVybmFsX3BvcnR9XG5gICsKICAgICAgICAgICAgYOuyhOyghDogJHtob3N0LnZlcnNpb259XG5gICsKICAgICAgICAgICAgYEdGRSDrsoTsoIQ6ICR7aG9zdC5nZmVfdmVyc2lvbn1cbmAgKwogICAgICAgICAgICBg6rOg7JygIElEOiAke2hvc3QudW5pcXVlX2lkfVxuYCArCiAgICAgICAgICAgIGBNQUMg7KO87IaMOiAke2hvc3QubWFjfVxuYCArCiAgICAgICAgICAgIGDroZzsu6wgSVA6ICR7aG9zdC5sb2NhbF9pcH1cbmAgKwogICAgICAgICAgICBg7Iuk7ZaJIOykkeyduCDqsozsnoQ6ICR7aG9zdC5jdXJyZW50X2dhbWV9XG5gICsKICAgICAgICAgICAgYOy1nOuMgCBMdW1hIO2UveyFgCAoSEVWQyk6ICR7aG9zdC5tYXhfbHVtYV9waXhlbHNfaGV2Y31cbmAgKwogICAgICAgICAgICBg7ISc67KEIOy9lOuNsSDrqqjrk5wg7KeA7JuQOiAke2hvc3Quc2VydmVyX2NvZGVjX21vZGVfc3VwcG9ydH1gLAogICAgfSwKICAgIGdhbWU6IHsKICAgICAgICByZXN1bWVTZXNzaW9uOiAi7IS47IWYIOyerOqwnCIsCiAgICAgICAgc3RvcEN1cnJlbnRTZXNzaW9uOiAi7ZiE7J6sIOyEuOyFmCDspJHsp4AiLAogICAgICAgIGZhaWxlZFRvQ2xvc2VBcHA6ICLslbHsnYQg7KKF66OM7ZWY7KeAIOuqu+2WiOyKteuLiOuLpCEiLAogICAgICAgIHNob3dEZXRhaWxzOiAi7IOB7IS4IOygleuztCIsCiAgICAgICAgb3BlbjogIuyXtOq4sCIsCiAgICAgICAgZGV0YWlsczogKGFwcDogYW55KSA9PgogICAgICAgICAgICBg7KCc66qpOiAke2FwcC50aXRsZX1cbmAgKwogICAgICAgICAgICBgSUQ6ICR7YXBwLmFwcF9pZH1cbmAgKwogICAgICAgICAgICBgSERSIOyngOybkCDsl6zrtoA6ICR7YXBwLmlzX2hkcl9zdXBwb3J0ZWR9XG5gLAogICAgfSwKICAgIG1vZGFsOiB7CiAgICAgICAgb2s6ICLtmZXsnbgiLAogICAgICAgIGNhbmNlbDogIuy3qOyGjCIsCiAgICAgICAgbG9naW46ICLroZzqt7jsnbgiLAogICAgICAgIHVzZXJuYW1lOiAi7IKs7Jqp7J6QIOydtOumhCIsCiAgICAgICAgcGFzc3dvcmQ6ICLruYTrsIDrsojtmLgiLAogICAgICAgIHBhc3N3b3JkQXNGaWxlOiAi7YyM7J2866GcIOu5hOuwgOuyiO2YuCDsnoXroKUiLAogICAgfSwKICAgIGNvbW1vbjogewogICAgICAgIG9wZW5GaWxlOiAi7YyM7J28IOyXtOq4sCIsCiAgICAgICAgbm90U2VsZWN0ZWQ6ICIo7ISg7YOd65CY7KeAIOyViuydjCkiLAogICAgICAgIG1pc3NpbmdDb250ZXh0TWVudTogIuy7qO2FjeyKpO2KuCDrqZTribQg7JqU7IaM66W8IOywvuydhCDsiJgg7JeG7Iq164uI64ukLiIsCiAgICAgICAgbWlzc2luZ01vZGFsUGFyZW50OiAi66qo64usIOu2gOuqqCDsmpTshozrpbwg7LC+7J2EIOyImCDsl4bsirXri4jri6QuIiwKICAgICAgICBtaXNzaW5nTW9kYWxPdmVybGF5OiAi66qo64usIOyYpOuyhOugiOydtOulvCDssL7snYQg7IiYIOyXhuyKteuLiOuLpC4iLAogICAgICAgIG1pc3NpbmdTaWRlYmFyOiAi7IKs7J2065Oc67CU66W8IOqwgOyguOyYpOyngCDrqrvtlojsirXri4jri6QuIiwKICAgIH0sCn0K"},{"path":"web/locales/pt-BR.ts","sha256":"7618264837342230f4b223868671720ffee468fce460bb30a47b45b90eb96eab","contentBase64":"aW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnMgfSBmcm9tICIuL2VuLmpzIgoKZXhwb3J0IGNvbnN0IHB0QlI6IFRyYW5zbGF0aW9ucyA9IHsKICAgIGluZGV4OiB7CiAgICAgICAgYXBwVGl0bGU6ICJNb29ubGlnaHQgV2ViIiwKICAgICAgICBiYWNrOiAiVm9sdGFyIiwKICAgICAgICByZWxvYWQ6ICJSZWNhcnJlZ2FyIiwKICAgICAgICBhZGRIb3N0VW5yZWFjaGFibGU6IChhZGRyZXNzOiBzdHJpbmcpID0+IGBIb3N0ICIke2FkZHJlc3N9IiBuw6NvIGVzdMOhIGFjZXNzw612ZWxgLAogICAgICAgIHNhdmVTZXR0aW5nc0ZhaWxlZDogIk7Do28gZm9pIHBvc3PDrXZlbCBzYWx2YXIgYXMgY29uZmlndXJhw6fDtWVzIiwKICAgICAgICByb290Tm90Rm91bmQ6ICJlbGVtZW50byByYWl6IG7Do28gZW5jb250cmFkbyIsCiAgICB9LAogICAgc3RyZWFtOiB7CiAgICAgICAgbWlzc2luZ0hvc3RPckFwcDogIk5lbmh1bSBIb3N0IG91IElEIGRlIGFwbGljYXRpdm8gZW5jb250cmFkbyIsCiAgICAgICAgZnVsbHNjcmVlblVuc3VwcG9ydGVkOiAiVGVsYSBjaGVpYSBuw6NvIMOpIHN1cG9ydGFkYSBwZWxvIHNldSBuYXZlZ2Fkb3IhIiwKICAgICAgICBmdWxsc2NyZWVuRXNjYXBlSGludDogIlBhcmEgc2FpciBkYSB0ZWxhIGNoZWlhLCBzZWd1cmUgRVNDIHBvciBhbGd1bnMgc2VndW5kb3MuIiwKICAgICAgICBwb2ludGVyTG9ja1Vuc3VwcG9ydGVkOiAiQmxvcXVlaW8gZGUgcG9udGVpcm8gbsOjbyBzdXBvcnRhZG8iLAogICAgICAgIGNvbm5lY3Rpbmc6ICJDb25lY3RhbmRvIiwKICAgICAgICBzaG93TG9nczogIk1vc3RyYXIgTG9ncyIsCiAgICAgICAgaGlkZUxvZ3M6ICJPY3VsdGFyIExvZ3MiLAogICAgICAgIGNsb3NlOiAiRmVjaGFyIiwKICAgICAgICBhdXRvRnVsbHNjcmVlblByb21wdDogIkVudHJhciBlbSB0ZWxhIGNoZWlhIGFnb3JhPyIsCiAgICAgICAgY29ubmVjdGlvbkNvbXBsZXRlOiAiQ29uZXjDo28gQ29uY2x1w61kYSIsCiAgICAgICAgc2VydmVyTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZykgPT4gYFNlcnZpZG9yOiAke21lc3NhZ2V9YCwKICAgICAgICBzZW5kS2V5Y29kZTogIkVudmlhciBDw7NkaWdvIGRlIFRlY2xhIiwKICAgICAgICBsb2NrTW91c2U6ICJCbG9xdWVhciBNb3VzZSIsCiAgICAgICAga2V5Ym9hcmQ6ICJUZWNsYWRvIiwKICAgICAgICBoaWRlS2V5Ym9hcmQ6ICJPY3VsdGFyIFRlY2xhZG8iLAogICAgICAgIGZ1bGxzY3JlZW46ICJUZWxhIENoZWlhIiwKICAgICAgICBzdGF0czogIkVzdGF0w61zdGljYXMiLAogICAgICAgIGV4aXQ6ICJTYWlyIiwKICAgICAgICBtb3VzZU1vZGU6ICJNb2RvIGRvIE1vdXNlIiwKICAgICAgICB0b3VjaE1vZGU6ICJNb2RvIGRlIFRvcXVlIiwKICAgICAgICByZWxhdGl2ZTogIlJlbGF0aXZvIiwKICAgICAgICBmb2xsb3c6ICJTZWd1aXIiLAogICAgICAgIHBvaW50QW5kRHJhZzogIkFwb250YXIgZSBBcnJhc3RhciIsCiAgICAgICAgdG91Y2g6ICJUb3F1ZSIsCiAgICAgICAgbG9jYWxDdXJzb3I6ICJDdXJzb3IgTG9jYWwiLAogICAgICAgIHNlbGVjdEtleWNvZGU6ICJTZWxlY2lvbmFyIEPDs2RpZ28gZGUgVGVjbGEiLAogICAgICAgIHJvb3ROb3RGb3VuZDogImVsZW1lbnRvIHJhaXogbsOjbyBlbmNvbnRyYWRvIiwKICAgIH0sCiAgICBzZXR0aW5nczogewogICAgICAgIHNpZGViYXI6ICJCYXJyYSBMYXRlcmFsIiwKICAgICAgICBzaWRlYmFyRWRnZTogIlBvc2nDp8OjbyBkYSBCYXJyYSBMYXRlcmFsIiwKICAgICAgICBsZWZ0OiAiRXNxdWVyZGEiLAogICAgICAgIHJpZ2h0OiAiRGlyZWl0YSIsCiAgICAgICAgdXA6ICJDaW1hIiwKICAgICAgICBkb3duOiAiQmFpeG8iLAogICAgICAgIHZpZGVvOiAiVsOtZGVvIiwKICAgICAgICBiaXRyYXRlOiAiVGF4YSBkZSBiaXRzIChLYnBzKSIsCiAgICAgICAgZnBzOiAiRlBTIiwKICAgICAgICB2aWRlb1NpemU6ICJSZXNvbHXDp8OjbyBkZSBWw61kZW8iLAogICAgICAgIG5hdGl2ZTogIm5hdGl2YSIsCiAgICAgICAgY3VzdG9tOiAicGVyc29uYWxpemFkYSIsCiAgICAgICAgdmlkZW9XaWR0aDogIkxhcmd1cmEgZG8gVsOtZGVvIiwKICAgICAgICB2aWRlb0hlaWdodDogIkFsdHVyYSBkbyBWw61kZW8iLAogICAgICAgIHZpZGVvRnJhbWVRdWV1ZVNpemU6ICJUYW1hbmhvIGRhIEZpbGEgZGUgRnJhbWVzIiwKICAgICAgICB2aWRlb0NvZGVjOiAiQ29kZWMgZGUgVsOtZGVvIiwKICAgICAgICBhdXRvRXhwZXJpbWVudGFsOiAiQXV0b23DoXRpY28gKEV4cGVyaW1lbnRhbCkiLAogICAgICAgIGF2MUV4cGVyaW1lbnRhbDogIkFWMSAoRXhwZXJpbWVudGFsKSIsCiAgICAgICAgZm9yY2VWaWRlb0VsZW1lbnRSZW5kZXJlcjogIkZvcsOnYXIgUmVuZGVyaXphZG9yIGRlIEVsZW1lbnRvIGRlIFbDrWRlbyAoc29tZW50ZSBXZWJSVEMpIiwKICAgICAgICB1c2VDYW52YXNSZW5kZXJlcjogIlVzYXIgUmVuZGVyaXphZG9yIENhbnZhcyIsCiAgICAgICAgY2FudmFzVnN5bmM6ICJWU3luYyBkbyBDYW52YXMgKHJlZHV6IHRlYXJpbmcpIiwKICAgICAgICBlbmFibGVIZHI6ICJBdGl2YXIgSERSIiwKICAgICAgICBhdWRpbzogIsOBdWRpbyIsCiAgICAgICAgcGxheUF1ZGlvTG9jYWw6ICJSZXByb2R1emlyIMOBdWRpbyBMb2NhbG1lbnRlIiwKICAgICAgICBhdWRpb1NhbXBsZVF1ZXVlU2l6ZTogIlRhbWFuaG8gZGEgRmlsYSBkZSBBbW9zdHJhcyBkZSDDgXVkaW8iLAogICAgICAgIG1vdXNlOiAiTW91c2UiLAogICAgICAgIHNjcm9sbE1vZGU6ICJNb2RvIGRlIFJvbGFnZW0iLAogICAgICAgIHN0YXJ0dXBNb3VzZU1vZGU6ICJNb2RvIGRvIE1vdXNlIGFvIEluaWNpYXIgU3RyZWFtIiwKICAgICAgICBzdGFydHVwVG91Y2hNb2RlOiAiTW9kbyBkZSBUb3F1ZSBhbyBJbmljaWFyIFN0cmVhbSIsCiAgICAgICAgbG9jYWxDdXJzb3JTZW5zaXRpdml0eTogIlNlbnNpYmlsaWRhZGUgZG8gQ3Vyc29yIExvY2FsIiwKICAgICAgICBoaWdoUmVzOiAiQWx0YSBSZXNvbHXDp8OjbyIsCiAgICAgICAgbm9ybWFsOiAiTm9ybWFsIiwKICAgICAgICBjb250cm9sbGVyOiAiQ29udHJvbGUiLAogICAgICAgIGNvbnRyb2xsZXJEaXNhYmxlZDogIkNvbnRyb2xlIChEZXNhdGl2YWRvOiBDb250ZXh0byBTZWd1cm8gTmVjZXNzw6FyaW8pIiwKICAgICAgICBpbnZlcnRBQjogIkludmVydGVyIEEgZSBCIiwKICAgICAgICBpbnZlcnRYWTogIkludmVydGVyIFggZSBZIiwKICAgICAgICBvdmVycmlkZUNvbnRyb2xsZXJJbnRlcnZhbDogIlN1YnN0aXR1aXIgSW50ZXJ2YWxvIGRlIEVudmlvIGRvIEVzdGFkbyBkbyBDb250cm9sZSIsCiAgICAgICAgb3RoZXI6ICJPdXRyb3MiLAogICAgICAgIGxhbmd1YWdlOiAiSWRpb21hIiwKICAgICAgICBkYXRhVHJhbnNwb3J0OiAiVHJhbnNwb3J0ZSBkZSBEYWRvcyIsCiAgICAgICAgYXV0bzogIkF1dG9tw6F0aWNvIiwKICAgICAgICB3ZWJTb2NrZXQ6ICJXZWJTb2NrZXQiLAogICAgICAgIGVudGVyRnVsbHNjcmVlbk9uU3RyZWFtU3RhcnQ6ICJFbnRyYXIgZW0gVGVsYSBDaGVpYSBuYSBQcmltZWlyYSBJbnRlcmHDp8OjbyBjb20gbyBTdHJlYW0iLAogICAgICAgIHNhdmVSb2xlRGVmYXVsdHM6ICJTYWx2YXIgY29tbyBQYWRyw6NvIGRvIFBlcmZpbCIsCiAgICAgICAgc2F2ZVJvbGVEZWZhdWx0c1N1Y2Nlc3M6ICJDb25maWd1cmHDp8O1ZXMgc2FsdmFzIGNvbW8gcGFkcsOjbyBkbyBwZXJmaWwiLAogICAgICAgIHNhdmVSb2xlRGVmYXVsdHNGYWlsZWQ6ICJOw6NvIGZvaSBwb3Nzw612ZWwgc2FsdmFyIGFzIGNvbmZpZ3VyYcOnw7VlcyBwYWRyw6NvIGRvIHBlcmZpbCIsCiAgICAgICAgdG9nZ2xlRnVsbHNjcmVlbldpdGhLZXliaW5kOiAiQWx0ZXJuYXIgVGVsYSBDaGVpYSBlIEJsb3F1ZWlvIGRvIE1vdXNlIGNvbSBDdHJsICsgU2hpZnQgKyBJIiwKICAgICAgICBzdHlsZTogIkVzdGlsbyIsCiAgICAgICAgdXNlQ3VzdG9tRHJvcGRvd246ICJVc2FyIEltcGxlbWVudGHDp8OjbyBkZSBEcm9wZG93biBQZXJzb25hbGl6YWRhIiwKICAgIH0sCiAgICBhZGRIb3N0OiB7CiAgICAgICAgaGVhZGVyOiAiSG9zdCIsCiAgICAgICAgYWRkcmVzczogIkVuZGVyZcOnbyIsCiAgICAgICAgcG9ydDogIlBvcnRhIiwKICAgIH0sCiAgICBhZG1pbjogewogICAgICAgIHJvb3ROb3RGb3VuZDogImVsZW1lbnRvIHJhaXogbsOjbyBlbmNvbnRyYWRvIiwKICAgICAgICB1bmF1dGhvcml6ZWQ6ICJWb2PDqiBuw6NvIHRlbSBwZXJtaXNzw6NvIHBhcmEgYWNlc3NhciBlc3RhIHDDoWdpbmEhIiwKICAgICAgICB1c2VyczogIlVzdcOhcmlvcyIsCiAgICAgICAgcm9sZXM6ICJQZXJmaXMiLAogICAgICAgIGFkZFVzZXI6ICJBZGljaW9uYXIgVXN1w6FyaW8iLAogICAgICAgIGFkZFJvbGU6ICJBZGljaW9uYXIgUGVyZmlsIiwKICAgICAgICBzZWFyY2hVc2VyOiAiQnVzY2FyIFVzdcOhcmlvIiwKICAgICAgICBzZWFyY2hSb2xlOiAiQnVzY2FyIFBlcmZpbCIsCiAgICAgICAgZGVsZXRlOiAiRXhjbHVpciIsCiAgICAgICAgYXBwbHk6ICJBcGxpY2FyIiwKICAgICAgICB1c2VyOiAiVXN1w6FyaW8iLAogICAgICAgIHJvbGU6ICJQZXJmaWwiLAogICAgICAgIG5hbWU6ICJOb21lIiwKICAgICAgICBkZWZhdWx0UGFzc3dvcmQ6ICJTZW5oYSBQYWRyw6NvIiwKICAgICAgICBtb29ubGlnaHRDbGllbnRJZDogIklEIGRvIENsaWVudGUgTW9vbmxpZ2h0IiwKICAgICAgICBwbGVhc2VTZWxlY3RSb2xlOiAiUG9yIGZhdm9yLCBzZWxlY2lvbmUgdW0gcGVyZmlsISIsCiAgICAgICAgcm9sZUV4aXN0czogKG5hbWU6IHN0cmluZykgPT4gYErDoSBleGlzdGUgdW0gcGVyZmlsIGNvbSBvIG5vbWUgIiR7bmFtZX0iIWAsCiAgICAgICAgdXNlckV4aXN0czogKG5hbWU6IHN0cmluZykgPT4gYErDoSBleGlzdGUgdW0gdXN1w6FyaW8gY29tIG8gbm9tZSAiJHtuYW1lfSIhYCwKICAgICAgICByb2xlVHlwZTogIlRpcG8iLAogICAgICAgIHBlcm1pc3Npb25zOiAiUGVybWlzc8O1ZXMiLAogICAgICAgIGRlZmF1bHRTZXR0aW5nczogIkNvbmZpZ3VyYcOnw7VlcyBQYWRyw6NvIiwKICAgICAgICB1c2VySWQ6ICJJRCBkbyBVc3XDoXJpbyIsCiAgICAgICAgdXNlck5hbWU6ICJOb21lIGRlIFVzdcOhcmlvIiwKICAgICAgICBwYXNzd29yZDogIlNlbmhhIiwKICAgICAgICBuZXdQYXNzd29yZDogIk5vdmEgU2VuaGEiLAogICAgICAgIHJvbGVJZDogIklEIGRvIFBlcmZpbCIsCiAgICAgICAgcm9sZU5hbWU6ICJOb21lIGRvIFBlcmZpbCIsCiAgICAgICAgYWxsb3dBZGRIb3N0czogIlBlcm1pdGlyIGFkaWNpb25hciBIb3N0cyIsCiAgICAgICAgbWF4aW11bUJpdHJhdGU6ICJUYXhhIGRlIEJpdHMgTcOheGltYSAoS2JwcykiLAogICAgICAgIGFsbG93SDI2NDogIlBlcm1pdGlyIEgyNjQiLAogICAgICAgIGFsbG93SDI2NTogIlBlcm1pdGlyIEgyNjUiLAogICAgICAgIGFsbG93QXYxOiAiUGVybWl0aXIgQVYxIiwKICAgICAgICBhbGxvd0hkcjogIlBlcm1pdGlyIEhEUiIsCiAgICAgICAgYWxsb3dXZWJydGM6ICJQZXJtaXRpciBXZWJSVEMiLAogICAgICAgIGFsbG93V2ViU29ja2V0czogIlBlcm1pdGlyIFdlYlNvY2tldHMiLAogICAgICAgIHJvbGVEZWxldGVCbG9ja2VkOiAodXNlcnM6IHN0cmluZ1tdKSA9PiBgUGFyYSByZW1vdmVyIGVzdGUgcGVyZmlsLCB0b2RvcyBvcyB1c3XDoXJpb3MgYXRyaWJ1w61kb3MgYSBlbGUgcHJlY2lzYW0gc2VyIGV4Y2x1w61kb3Mgb3UgcmVhdHJpYnXDrWRvcyBhIG91dHJvIHBlcmZpbC5cblVzdcOhcmlvcyBjb20gZXN0ZSBwZXJmaWw6XG4ke0pTT04uc3RyaW5naWZ5KHVzZXJzKX1gLAogICAgfSwKICAgIGhvc3Q6IHsKICAgICAgICBzaG93RGV0YWlsczogIk1vc3RyYXIgRGV0YWxoZXMiLAogICAgICAgIG9wZW46ICJBYnJpciIsCiAgICAgICAgc2VuZFdha2VVcFBhY2tldDogIkVudmlhciBQYWNvdGUgV2FrZS1vbi1MQU4iLAogICAgICAgIHJlbG9hZDogIlJlY2FycmVnYXIiLAogICAgICAgIHBhaXI6ICJQYXJlYXIiLAogICAgICAgIG1ha2VQcml2YXRlOiAiVG9ybmFyIFByaXZhZG8iLAogICAgICAgIG1ha2VHbG9iYWw6ICJUb3JuYXIgR2xvYmFsIiwKICAgICAgICByZW1vdmVIb3N0OiAiUmVtb3ZlciBIb3N0IiwKICAgICAgICBmYWlsZWRUb0dldERldGFpbHM6IChpZDogbnVtYmVyKSA9PiBgZmFsaGEgYW8gb2J0ZXIgZGV0YWxoZXMgZG8gaG9zdCAke2lkfWAsCiAgICAgICAgd2FrZVVwU2VudDogIlBhY290ZSBXYWtlLW9uLUxBTiBlbnZpYWRvLiBQb2RlIGxldmFyIHVtIG1vbWVudG8gcGFyYSBvIFBDIGxpZ2FyLiIsCiAgICAgICAgYWxyZWFkeVBhaXJlZDogIkVzdGUgaG9zdCBqw6EgZXN0w6EgcGFyZWFkbyEiLAogICAgICAgIHBhaXJQcm9tcHQ6IChuYW1lOiBzdHJpbmcsIHBpbjogc3RyaW5nKSA9PiBgUGFyZWllIG8gaG9zdCAke25hbWV9IGNvbSBlc3RlIFBJTjpcblBJTjogJHtwaW59YCwKICAgICAgICBvdmVyd3JpdGVNaXNtYXRjaDogKGN1cnJlbnRJZDogbnVtYmVyLCBpbmNvbWluZ0lkOiBudW1iZXIpID0+IGB0ZW50YXRpdmEgZGUgc29icmVzY3JldmVyIG8gaG9zdCAke2N1cnJlbnRJZH0gY29tIGRhZG9zIGRvIGhvc3QgJHtpbmNvbWluZ0lkfWAsCiAgICAgICAgZGV0YWlsczogKGhvc3Q6IGFueSkgPT4KICAgICAgICAgICAgYElEIFdlYjogJHtob3N0Lmhvc3RfaWR9XG5gICsKICAgICAgICAgICAgYE5vbWU6ICR7aG9zdC5uYW1lfVxuYCArCiAgICAgICAgICAgIGBTdGF0dXMgZGUgUGFyZWFtZW50bzogJHtob3N0LnBhaXJlZH1cbmAgKwogICAgICAgICAgICBgRXN0YWRvOiAke2hvc3Quc2VydmVyX3N0YXRlfVxuYCArCiAgICAgICAgICAgIGBFbmRlcmXDp286ICR7aG9zdC5hZGRyZXNzfVxuYCArCiAgICAgICAgICAgIGBQb3J0YSBIVFRQOiAke2hvc3QuaHR0cF9wb3J0fVxuYCArCiAgICAgICAgICAgIGBQb3J0YSBIVFRQUzogJHtob3N0Lmh0dHBzX3BvcnR9XG5gICsKICAgICAgICAgICAgYFBvcnRhIEV4dGVybmE6ICR7aG9zdC5leHRlcm5hbF9wb3J0fVxuYCArCiAgICAgICAgICAgIGBWZXJzw6NvOiAke2hvc3QudmVyc2lvbn1cbmAgKwogICAgICAgICAgICBgVmVyc8OjbyBHRkU6ICR7aG9zdC5nZmVfdmVyc2lvbn1cbmAgKwogICAgICAgICAgICBgSUQgw5puaWNvOiAke2hvc3QudW5pcXVlX2lkfVxuYCArCiAgICAgICAgICAgIGBNQUM6ICR7aG9zdC5tYWN9XG5gICsKICAgICAgICAgICAgYElQIExvY2FsOiAke2hvc3QubG9jYWxfaXB9XG5gICsKICAgICAgICAgICAgYEpvZ28gQXR1YWw6ICR7aG9zdC5jdXJyZW50X2dhbWV9XG5gICsKICAgICAgICAgICAgYE3DoXguIFBpeGVscyBMdW1hIEhFVkM6ICR7aG9zdC5tYXhfbHVtYV9waXhlbHNfaGV2Y31cbmAgKwogICAgICAgICAgICBgU3Vwb3J0ZSBhIENvZGVjcyBkbyBTZXJ2aWRvcjogJHtob3N0LnNlcnZlcl9jb2RlY19tb2RlX3N1cHBvcnR9YCwKICAgIH0sCiAgICBnYW1lOiB7CiAgICAgICAgcmVzdW1lU2Vzc2lvbjogIlJldG9tYXIgU2Vzc8OjbyIsCiAgICAgICAgc3RvcEN1cnJlbnRTZXNzaW9uOiAiRW5jZXJyYXIgU2Vzc8OjbyBBdHVhbCIsCiAgICAgICAgZmFpbGVkVG9DbG9zZUFwcDogIkZhbGhhIGFvIGZlY2hhciBvIGFwbGljYXRpdm8hIiwKICAgICAgICBzaG93RGV0YWlsczogIk1vc3RyYXIgRGV0YWxoZXMiLAogICAgICAgIG9wZW46ICJBYnJpciIsCiAgICAgICAgZGV0YWlsczogKGFwcDogYW55KSA9PgogICAgICAgICAgICBgVMOtdHVsbzogJHthcHAudGl0bGV9XG5gICsKICAgICAgICAgICAgYElEOiAke2FwcC5hcHBfaWR9XG5gICsKICAgICAgICAgICAgYEhEUiBTdXBvcnRhZG86ICR7YXBwLmlzX2hkcl9zdXBwb3J0ZWR9XG5gLAogICAgfSwKICAgIG1vZGFsOiB7CiAgICAgICAgb2s6ICJPayIsCiAgICAgICAgY2FuY2VsOiAiQ2FuY2VsYXIiLAogICAgICAgIGxvZ2luOiAiRW50cmFyIiwKICAgICAgICB1c2VybmFtZTogIlVzdcOhcmlvIiwKICAgICAgICBwYXNzd29yZDogIlNlbmhhIiwKICAgICAgICBwYXNzd29yZEFzRmlsZTogIlNlbmhhIGNvbW8gQXJxdWl2byIsCiAgICB9LAogICAgY29tbW9uOiB7CiAgICAgICAgb3BlbkZpbGU6ICJBYnJpciBBcnF1aXZvIiwKICAgICAgICBub3RTZWxlY3RlZDogIihOw6NvIFNlbGVjaW9uYWRvKSIsCiAgICAgICAgbWlzc2luZ0NvbnRleHRNZW51OiAiZWxlbWVudG8gZG8gbWVudSBkZSBjb250ZXh0byBuw6NvIGVuY29udHJhZG8iLAogICAgICAgIG1pc3NpbmdNb2RhbFBhcmVudDogImVsZW1lbnRvIHBhaSBkbyBtb2RhbCBuw6NvIGVuY29udHJhZG8iLAogICAgICAgIG1pc3NpbmdNb2RhbE92ZXJsYXk6ICJzb2JyZXBvc2nDp8OjbyBkbyBtb2RhbCBuw6NvIGVuY29udHJhZGEiLAogICAgICAgIG1pc3NpbmdTaWRlYmFyOiAiZmFsaGEgYW8gb2J0ZXIgYSBiYXJyYSBsYXRlcmFsIiwKICAgIH0sCn0K"},{"path":"web/locales/zh-CN.ts","sha256":"ee62e8b3e6481293c05184cfc0a0813a81ce27e16d9a5767a3dcd14bfb8b8165","contentBase64":"aW1wb3J0IHR5cGUgeyBUcmFuc2xhdGlvbnMgfSBmcm9tICIuL2VuLmpzIgoKZXhwb3J0IGNvbnN0IHpoQ046IFRyYW5zbGF0aW9ucyA9IHsKICAgIGluZGV4OiB7CiAgICAgICAgYXBwVGl0bGU6ICJNb29ubGlnaHQg572R6aG154mIIiwKICAgICAgICBiYWNrOiAi6L+U5ZueIiwKICAgICAgICByZWxvYWQ6ICLliLfmlrAiLAogICAgICAgIGFkZEhvc3RVbnJlYWNoYWJsZTogKGFkZHJlc3M6IHN0cmluZykgPT4gYOS4u+acuiAiJHthZGRyZXNzfSIg5peg5rOV6K6/6ZeuYCwKICAgICAgICBzYXZlU2V0dGluZ3NGYWlsZWQ6ICLml6Dms5Xkv53lrZjorr7nva4iLAogICAgICAgIHJvb3ROb3RGb3VuZDogIuaJvuS4jeWIsOagueWFg+e0oCIsCiAgICB9LAogICAgc3RyZWFtOiB7CiAgICAgICAgbWlzc2luZ0hvc3RPckFwcDogIue8uuWwkeS4u+acuiBJRCDmiJblupTnlKggSUQiLAogICAgICAgIGZ1bGxzY3JlZW5VbnN1cHBvcnRlZDogIuS9oOeahOa1j+iniOWZqOS4jeaUr+aMgeWFqOWxj+OAgiIsCiAgICAgICAgZnVsbHNjcmVlbkVzY2FwZUhpbnQ6ICLpgIDlh7rlhajlsY/pnIDopoHmjInkvY8gRVNDIOWHoOenkuOAgiIsCiAgICAgICAgcG9pbnRlckxvY2tVbnN1cHBvcnRlZDogIua1j+iniOWZqOS4jeaUr+aMgem8oOagh+mUgeWumiIsCiAgICAgICAgY29ubmVjdGluZzogIuato+WcqOi/nuaOpSIsCiAgICAgICAgc2hvd0xvZ3M6ICLmmL7npLrml6Xlv5ciLAogICAgICAgIGhpZGVMb2dzOiAi6ZqQ6JeP5pel5b+XIiwKICAgICAgICBjbG9zZTogIuWFs+mXrSIsCiAgICAgICAgYXV0b0Z1bGxzY3JlZW5Qcm9tcHQ6ICLmmK/lkKbov5vlhaXlhajlsY/vvJ8iLAogICAgICAgIGNvbm5lY3Rpb25Db21wbGV0ZTogIui/nuaOpeWujOaIkCIsCiAgICAgICAgc2VydmVyTWVzc2FnZTogKG1lc3NhZ2U6IHN0cmluZykgPT4gYOacjeWKoeWZqO+8miR7bWVzc2FnZX1gLAogICAgICAgIHNlbmRLZXljb2RlOiAi5Y+R6YCB5oyJ6ZSu56CBIiwKICAgICAgICBsb2NrTW91c2U6ICLplIHlrprpvKDmoIciLAogICAgICAgIGtleWJvYXJkOiAi6ZSu55uYIiwKICAgICAgICBoaWRlS2V5Ym9hcmQ6ICLpmpDol4/plK7nm5giLAogICAgICAgIGZ1bGxzY3JlZW46ICLlhajlsY8iLAogICAgICAgIHN0YXRzOiAi57uf6K6hIiwKICAgICAgICBleGl0OiAi6YCA5Ye6IiwKICAgICAgICBtb3VzZU1vZGU6ICLpvKDmoIfmqKHlvI8iLAogICAgICAgIHRvdWNoTW9kZTogIuinpuaRuOaooeW8jyIsCiAgICAgICAgcmVsYXRpdmU6ICLnm7jlr7nmqKHlvI8iLAogICAgICAgIGZvbGxvdzogIui3n+maj+aooeW8jyIsCiAgICAgICAgcG9pbnRBbmREcmFnOiAi54K55Ye75ouW5YqoIiwKICAgICAgICB0b3VjaDogIuinpuaRuCIsCiAgICAgICAgbG9jYWxDdXJzb3I6ICLmnKzlnLDlhYnmoIciLAogICAgICAgIHNlbGVjdEtleWNvZGU6ICLpgInmi6nmjInplK7noIEiLAogICAgICAgIHJvb3ROb3RGb3VuZDogIuaJvuS4jeWIsOagueWFg+e0oCIsCiAgICB9LAogICAgc2V0dGluZ3M6IHsKICAgICAgICBzaWRlYmFyOiAi5L6n6L655qCPIiwKICAgICAgICBzaWRlYmFyRWRnZTogIuS+p+i+ueagj+S9jee9riIsCiAgICAgICAgbGVmdDogIuW3piIsCiAgICAgICAgcmlnaHQ6ICLlj7MiLAogICAgICAgIHVwOiAi5LiKIiwKICAgICAgICBkb3duOiAi5LiLIiwKICAgICAgICB2aWRlbzogIuinhumikSIsCiAgICAgICAgYml0cmF0ZTogIueggeeOhyAoS2JwcykiLAogICAgICAgIGZwczogIuW4p+eOhyIsCiAgICAgICAgdmlkZW9TaXplOiAi6KeG6aKR5YiG6L6o546HIiwKICAgICAgICBuYXRpdmU6ICLljp/nlJ8iLAogICAgICAgIGN1c3RvbTogIuiHquWumuS5iSIsCiAgICAgICAgdmlkZW9XaWR0aDogIuinhumikeWuveW6piIsCiAgICAgICAgdmlkZW9IZWlnaHQ6ICLop4bpopHpq5jluqYiLAogICAgICAgIHZpZGVvRnJhbWVRdWV1ZVNpemU6ICLop4bpopHluKfpmJ/liJflpKflsI8iLAogICAgICAgIHZpZGVvQ29kZWM6ICLop4bpopHnvJbnoIEiLAogICAgICAgIGF1dG9FeHBlcmltZW50YWw6ICLoh6rliqjvvIjlrp7pqozmgKfvvIkiLAogICAgICAgIGF2MUV4cGVyaW1lbnRhbDogIkFWMe+8iOWunumqjOaAp++8iSIsCiAgICAgICAgZm9yY2VWaWRlb0VsZW1lbnRSZW5kZXJlcjogIuW8uuWItuS9v+eUqCBWaWRlbyBFbGVtZW50IOa4suafk+WZqO+8iOS7hSBXZWJSVEPvvIkiLAogICAgICAgIHVzZUNhbnZhc1JlbmRlcmVyOiAi5L2/55SoIENhbnZhcyDmuLLmn5PlmagiLAogICAgICAgIGNhbnZhc1ZzeW5jOiAiQ2FudmFzIOWeguebtOWQjOatpe+8iOWHj+WwkeaSleijgu+8iSIsCiAgICAgICAgZW5hYmxlSGRyOiAi5ZCv55SoIEhEUiIsCiAgICAgICAgYXVkaW86ICLpn7PpopEiLAogICAgICAgIHBsYXlBdWRpb0xvY2FsOiAi5pys5Zyw5pKt5pS+6Z+z6aKRIiwKICAgICAgICBhdWRpb1NhbXBsZVF1ZXVlU2l6ZTogIumfs+mikemHh+agt+mYn+WIl+Wkp+WwjyIsCiAgICAgICAgbW91c2U6ICLpvKDmoIciLAogICAgICAgIHNjcm9sbE1vZGU6ICLmu5rliqjmqKHlvI8iLAogICAgICAgIHN0YXJ0dXBNb3VzZU1vZGU6ICLkuLLmtYHlkK/liqjlkI7pvKDmoIfmqKHlvI8iLAogICAgICAgIHN0YXJ0dXBUb3VjaE1vZGU6ICLkuLLmtYHlkK/liqjlkI7op6bmkbjmqKHlvI8iLAogICAgICAgIGxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHk6ICLmnKzlnLDlhYnmoIfngbXmlY/luqYiLAogICAgICAgIGhpZ2hSZXM6ICLpq5jnsr7luqYiLAogICAgICAgIG5vcm1hbDogIuaZrumAmiIsCiAgICAgICAgY29udHJvbGxlcjogIuaJi+afhCIsCiAgICAgICAgY29udHJvbGxlckRpc2FibGVkOiAi5omL5p+E77yI5bey56aB55So77ya6ZyA6KaB5a6J5YWo5LiK5LiL5paH77yJIiwKICAgICAgICBpbnZlcnRBQjogIuS6pOaNoiBBIOWSjCBCIiwKICAgICAgICBpbnZlcnRYWTogIuS6pOaNoiBYIOWSjCBZIiwKICAgICAgICBvdmVycmlkZUNvbnRyb2xsZXJJbnRlcnZhbDogIuimhuebluaJi+afhOeKtuaAgeWPkemAgemXtOmalCIsCiAgICAgICAgb3RoZXI6ICLlhbbku5YiLAogICAgICAgIGxhbmd1YWdlOiAi6K+t6KiAIiwKICAgICAgICBkYXRhVHJhbnNwb3J0OiAi5Lyg6L6T5pa55byPIiwKICAgICAgICBhdXRvOiAi6Ieq5YqoIiwKICAgICAgICB3ZWJTb2NrZXQ6ICJXZWJTb2NrZXQiLAogICAgICAgIGVudGVyRnVsbHNjcmVlbk9uU3RyZWFtU3RhcnQ6ICLpppbmrKHmk43kvZzkuLLmtYHml7bov5vlhaXlhajlsY8iLAogICAgICAgIHNhdmVSb2xlRGVmYXVsdHM6ICLkv53lrZjkuLrlvZPliY3op5LoibLpu5jorqTorr7nva4iLAogICAgICAgIHNhdmVSb2xlRGVmYXVsdHNTdWNjZXNzOiAi5bey5bCG5b2T5YmN6K6+572u5L+d5a2Y5Li65b2T5YmN6KeS6Imy6buY6K6kIiwKICAgICAgICBzYXZlUm9sZURlZmF1bHRzRmFpbGVkOiAi5L+d5a2Y6KeS6Imy6buY6K6k6K6+572u5aSx6LSlIiwKICAgICAgICB0b2dnbGVGdWxsc2NyZWVuV2l0aEtleWJpbmQ6ICLmjIkgQ3RybCArIFNoaWZ0ICsgSSDliIfmjaLlhajlsY/lkozpvKDmoIfplIHlrpoiLAogICAgICAgIHN0eWxlOiAi5qC35byPIiwKICAgICAgICB1c2VDdXN0b21Ecm9wZG93bjogIuS9v+eUqOiHquWumuS5ieS4i+aLieahhuWunueOsCIsCiAgICB9LAogICAgYWRkSG9zdDogewogICAgICAgIGhlYWRlcjogIuS4u+acuiIsCiAgICAgICAgYWRkcmVzczogIuWcsOWdgCIsCiAgICAgICAgcG9ydDogIuerr+WPoyIsCiAgICB9LAogICAgYWRtaW46IHsKICAgICAgICByb290Tm90Rm91bmQ6ICLmib7kuI3liLDmoLnlhYPntKAiLAogICAgICAgIHVuYXV0aG9yaXplZDogIuS9oOayoeacieadg+mZkOiuv+mXruatpOmhtemdou+8gSIsCiAgICAgICAgdXNlcnM6ICLnlKjmiLciLAogICAgICAgIHJvbGVzOiAi6KeS6ImyIiwKICAgICAgICBhZGRVc2VyOiAi5re75Yqg55So5oi3IiwKICAgICAgICBhZGRSb2xlOiAi5re75Yqg6KeS6ImyIiwKICAgICAgICBzZWFyY2hVc2VyOiAi5pCc57Si55So5oi3IiwKICAgICAgICBzZWFyY2hSb2xlOiAi5pCc57Si6KeS6ImyIiwKICAgICAgICBkZWxldGU6ICLliKDpmaQiLAogICAgICAgIGFwcGx5OiAi5bqU55SoIiwKICAgICAgICB1c2VyOiAi55So5oi3IiwKICAgICAgICByb2xlOiAi6KeS6ImyIiwKICAgICAgICBuYW1lOiAi5ZCN56ewIiwKICAgICAgICBkZWZhdWx0UGFzc3dvcmQ6ICLpu5jorqTlr4bnoIEiLAogICAgICAgIG1vb25saWdodENsaWVudElkOiAiTW9vbmxpZ2h0IOWuouaIt+erryBJRCIsCiAgICAgICAgcGxlYXNlU2VsZWN0Um9sZTogIuivt+mAieaLqeinkuiJsu+8gSIsCiAgICAgICAgcm9sZUV4aXN0czogKG5hbWU6IHN0cmluZykgPT4gYOW3suWtmOWcqOWQjeS4uiAiJHtuYW1lfSIg55qE6KeS6Imy77yBYCwKICAgICAgICB1c2VyRXhpc3RzOiAobmFtZTogc3RyaW5nKSA9PiBg5bey5a2Y5Zyo5ZCN5Li6ICIke25hbWV9IiDnmoTnlKjmiLfvvIFgLAogICAgICAgIHJvbGVUeXBlOiAi57G75Z6LIiwKICAgICAgICBwZXJtaXNzaW9uczogIuadg+mZkCIsCiAgICAgICAgZGVmYXVsdFNldHRpbmdzOiAi6buY6K6k6K6+572uIiwKICAgICAgICB1c2VySWQ6ICLnlKjmiLcgSUQiLAogICAgICAgIHVzZXJOYW1lOiAi55So5oi35ZCNIiwKICAgICAgICBwYXNzd29yZDogIuWvhueggSIsCiAgICAgICAgbmV3UGFzc3dvcmQ6ICLmlrDlr4bnoIEiLAogICAgICAgIHJvbGVJZDogIuinkuiJsiBJRCIsCiAgICAgICAgcm9sZU5hbWU6ICLop5LoibLlkI3np7AiLAogICAgICAgIGFsbG93QWRkSG9zdHM6ICLlhYHorrjmt7vliqDkuLvmnLoiLAogICAgICAgIG1heGltdW1CaXRyYXRlOiAi5pyA5aSn56CB546HIChLYnBzKSIsCiAgICAgICAgYWxsb3dIMjY0OiAi5YWB6K64IEgyNjQiLAogICAgICAgIGFsbG93SDI2NTogIuWFgeiuuCBIMjY1IiwKICAgICAgICBhbGxvd0F2MTogIuWFgeiuuCBBVjEiLAogICAgICAgIGFsbG93SGRyOiAi5YWB6K64IEhEUiIsCiAgICAgICAgYWxsb3dXZWJydGM6ICLlhYHorrggV2ViUlRDIiwKICAgICAgICBhbGxvd1dlYlNvY2tldHM6ICLlhYHorrggV2ViU29ja2V0IiwKICAgICAgICByb2xlRGVsZXRlQmxvY2tlZDogKHVzZXJzOiBzdHJpbmdbXSkgPT4gYOimgeWIoOmZpOi/meS4quinkuiJsu+8jOmcgOWFiOWIoOmZpOaIlumHjeaWsOWIhumFjeS7jeWcqOS9v+eUqOivpeinkuiJsueahOeUqOaIt+OAglxu5b2T5YmN55So5oi377yaXG4ke0pTT04uc3RyaW5naWZ5KHVzZXJzKX1gLAogICAgfSwKICAgIGhvc3Q6IHsKICAgICAgICBzaG93RGV0YWlsczogIuaYvuekuuivpuaDhSIsCiAgICAgICAgb3BlbjogIuaJk+W8gCIsCiAgICAgICAgc2VuZFdha2VVcFBhY2tldDogIuWPkemAgeWUpOmGkuWMhSIsCiAgICAgICAgcmVsb2FkOiAi5Yi35pawIiwKICAgICAgICBwYWlyOiAi6YWN5a+5IiwKICAgICAgICBtYWtlUHJpdmF0ZTogIuiuvuS4uuengeaciSIsCiAgICAgICAgbWFrZUdsb2JhbDogIuiuvuS4uuWFqOWxgCIsCiAgICAgICAgcmVtb3ZlSG9zdDogIuenu+mZpOS4u+acuiIsCiAgICAgICAgZmFpbGVkVG9HZXREZXRhaWxzOiAoaWQ6IG51bWJlcikgPT4gYOaXoOazleiOt+WPluS4u+acuiAke2lkfSDnmoTor6bmg4VgLAogICAgICAgIHdha2VVcFNlbnQ6ICLlt7Llj5HpgIHllKTphpLljIXjgILkvaDnmoTnlLXohJHlj6/og73pnIDopoHkuIDngrnml7bpl7TmiY3og73lkK/liqjjgIIiLAogICAgICAgIGFscmVhZHlQYWlyZWQ6ICLor6XkuLvmnLrlt7Lnu4/phY3lr7nvvIEiLAogICAgICAgIHBhaXJQcm9tcHQ6IChuYW1lOiBzdHJpbmcsIHBpbjogc3RyaW5nKSA9PiBg6K+35Zyo5Li75py6ICR7bmFtZX0g5LiK6L6T5YWl5Lul5LiLIFBJTiDlrozmiJDphY3lr7nvvJpcblBJTjogJHtwaW59YCwKICAgICAgICBvdmVyd3JpdGVNaXNtYXRjaDogKGN1cnJlbnRJZDogbnVtYmVyLCBpbmNvbWluZ0lkOiBudW1iZXIpID0+IGDlsJ3or5XnlKjkuLvmnLogJHtpbmNvbWluZ0lkfSDnmoTmlbDmja7opobnm5bkuLvmnLogJHtjdXJyZW50SWR9YCwKICAgICAgICBkZXRhaWxzOiAoaG9zdDogYW55KSA9PgogICAgICAgICAgICBgV2ViIElkOiAke2hvc3QuaG9zdF9pZH1cbmAgKwogICAgICAgICAgICBg5ZCN56ewOiAke2hvc3QubmFtZX1cbmAgKwogICAgICAgICAgICBg6YWN5a+554q25oCBOiAke2hvc3QucGFpcmVkfVxuYCArCiAgICAgICAgICAgIGDnirbmgIE6ICR7aG9zdC5zZXJ2ZXJfc3RhdGV9XG5gICsKICAgICAgICAgICAgYOWcsOWdgDogJHtob3N0LmFkZHJlc3N9XG5gICsKICAgICAgICAgICAgYEhUVFAg56uv5Y+jOiAke2hvc3QuaHR0cF9wb3J0fVxuYCArCiAgICAgICAgICAgIGBIVFRQUyDnq6/lj6M6ICR7aG9zdC5odHRwc19wb3J0fVxuYCArCiAgICAgICAgICAgIGDlpJbpg6jnq6/lj6M6ICR7aG9zdC5leHRlcm5hbF9wb3J0fVxuYCArCiAgICAgICAgICAgIGDniYjmnKw6ICR7aG9zdC52ZXJzaW9ufVxuYCArCiAgICAgICAgICAgIGBHRkUg54mI5pysOiAke2hvc3QuZ2ZlX3ZlcnNpb259XG5gICsKICAgICAgICAgICAgYOWUr+S4gCBJRDogJHtob3N0LnVuaXF1ZV9pZH1cbmAgKwogICAgICAgICAgICBgTUFDOiAke2hvc3QubWFjfVxuYCArCiAgICAgICAgICAgIGDmnKzlnLAgSVA6ICR7aG9zdC5sb2NhbF9pcH1cbmAgKwogICAgICAgICAgICBg5b2T5YmN5ri45oiPOiAke2hvc3QuY3VycmVudF9nYW1lfVxuYCArCiAgICAgICAgICAgIGBIRVZDIOacgOWkp+S6ruW6puWDj+e0oDogJHtob3N0Lm1heF9sdW1hX3BpeGVsc19oZXZjfVxuYCArCiAgICAgICAgICAgIGDmnI3liqHlmajnvJbop6PnoIHmlK/mjIE6ICR7aG9zdC5zZXJ2ZXJfY29kZWNfbW9kZV9zdXBwb3J0fWAsCiAgICB9LAogICAgZ2FtZTogewogICAgICAgIHJlc3VtZVNlc3Npb246ICLmgaLlpI3kvJror50iLAogICAgICAgIHN0b3BDdXJyZW50U2Vzc2lvbjogIuWBnOatouW9k+WJjeS8muivnSIsCiAgICAgICAgZmFpbGVkVG9DbG9zZUFwcDogIuWFs+mXreW6lOeUqOWksei0pe+8gSIsCiAgICAgICAgc2hvd0RldGFpbHM6ICLmmL7npLror6bmg4UiLAogICAgICAgIG9wZW46ICLmiZPlvIAiLAogICAgICAgIGRldGFpbHM6IChhcHA6IGFueSkgPT4KICAgICAgICAgICAgYOagh+mimDogJHthcHAudGl0bGV9XG5gICsKICAgICAgICAgICAgYElEOiAke2FwcC5hcHBfaWR9XG5gICsKICAgICAgICAgICAgYOaUr+aMgSBIRFI6ICR7YXBwLmlzX2hkcl9zdXBwb3J0ZWR9XG5gLAogICAgfSwKICAgIG1vZGFsOiB7CiAgICAgICAgb2s6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbDogIuWPlua2iCIsCiAgICAgICAgbG9naW46ICLnmbvlvZUiLAogICAgICAgIHVzZXJuYW1lOiAi55So5oi35ZCNIiwKICAgICAgICBwYXNzd29yZDogIuWvhueggSIsCiAgICAgICAgcGFzc3dvcmRBc0ZpbGU6ICLku47mlofku7bor7vlj5blr4bnoIEiLAogICAgfSwKICAgIGNvbW1vbjogewogICAgICAgIG9wZW5GaWxlOiAi5omT5byA5paH5Lu2IiwKICAgICAgICBub3RTZWxlY3RlZDogIu+8iOacqumAieaLqe+8iSIsCiAgICAgICAgbWlzc2luZ0NvbnRleHRNZW51OiAi5om+5LiN5Yiw5LiK5LiL5paH6I+c5Y2V5YWD57SgIiwKICAgICAgICBtaXNzaW5nTW9kYWxQYXJlbnQ6ICLmib7kuI3liLDlvLnnqpfniLboioLngrkiLAogICAgICAgIG1pc3NpbmdNb2RhbE92ZXJsYXk6ICLmib7kuI3liLDlvLnnqpfpga7nvanlsYIiLAogICAgICAgIG1pc3NpbmdTaWRlYmFyOiAi6I635Y+W5L6n6L655qCP5aSx6LSlIiwKICAgIH0sCn0K"},{"path":"web/manifest.json","sha256":"2728c9f8808818a604a7345d7f4ae5e8697fbc2f453a73a8207db2f465ed9272","contentBase64":"ewogICJuYW1lIjogIk1vb25saWdodCBXZWIiLAogICJzaG9ydF9uYW1lIjogIk1vb25saWdodCIsCiAgInN0YXJ0X3VybCI6ICIuLyIsCiAgImRpc3BsYXkiOiAic3RhbmRhbG9uZSIsCiAgImJhY2tncm91bmRfY29sb3IiOiAiIzMwMzAzMCIsCiAgInRoZW1lX2NvbG9yIjogIiMwMDAwMDAiLAogICJpY29ucyI6IFtdCn0="},{"path":"web/polyfill/abort_controller.ts","sha256":"b6696533f39710a4aa770b93b4495eb416f58b3b5a46388618ae5c098d2879ec","contentBase64":"Ly8gLS0gUG9seWZpbGwKCmNsYXNzIFBvbHlmaWxsQWJvcnRDb250cm9sbGVyIHsKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMuc2lnbmFsID0gbmV3IFBvbHlmaWxsQWJvcnRTaWduYWwoKQogICAgfQoKICAgIHNpZ25hbDogUG9seWZpbGxBYm9ydFNpZ25hbAoKICAgIGFib3J0KHJlYXNvbj86IGFueSkgewogICAgICAgIGlmICh0aGlzLnNpZ25hbC5hYm9ydGVkKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgdGhpcy5zaWduYWwuYWJvcnRlZCA9IHRydWUKICAgICAgICB0aGlzLnNpZ25hbC5yZWFzb24gPSByZWFzb24KCiAgICAgICAgdGhpcy5zaWduYWwuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImFib3J0IikpCiAgICB9Cn0KY2xhc3MgUG9seWZpbGxBYm9ydFNpZ25hbCBleHRlbmRzIEV2ZW50VGFyZ2V0IHsKICAgIHN0YXRpYyB0aW1lb3V0KHRpbWVvdXQ6IG51bWJlcik6IEFib3J0U2lnbmFsIHsKICAgICAgICBpZiAodGltZW91dCA8IDAgfHwgdGltZW91dCA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSB7CiAgICAgICAgICAgIHRocm93IGBJbGxlZ2FsIGFyZ3VtZW50IGZvciBBYm9ydFNpZ25hbC50aW1lb3V0OiB0aW1lb3V0IG11c3QgYmUgaW4gcmFuZ2UgMCB0byBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUmAKICAgICAgICB9CgogICAgICAgIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCkKCiAgICAgICAgc2V0VGltZW91dChjb250cm9sbGVyLmFib3J0LmJpbmQoY29udHJvbGxlciksIHRpbWVvdXQpCgogICAgICAgIHJldHVybiBjb250cm9sbGVyLnNpZ25hbAogICAgfQoKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHN1cGVyKCkKICAgIH0KCiAgICBhYm9ydGVkOiBib29sZWFuID0gZmFsc2UKICAgIHJlYXNvbjogYW55CgogICAgdGhyb3dJZkFib3J0ZWQoKSB7CiAgICAgICAgaWYgKHRoaXMuYWJvcnRlZCkgewogICAgICAgICAgICB0aHJvdyB0aGlzLnJlYXNvbgogICAgICAgIH0KICAgIH0KfQoKbGV0IHJlYWxGZXRjaDogdHlwZW9mIGZldGNoCmZ1bmN0aW9uIHBvbHlmaWxsRmV0Y2goaW5wdXQ6IFJlcXVlc3RJbmZvIHwgVVJMLCBpbml0PzogUmVxdWVzdEluaXQpOiBQcm9taXNlPFJlc3BvbnNlPiB7CiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgIGlmIChpbml0ICYmICJzaWduYWwiIGluIGluaXQgJiYgaW5pdC5zaWduYWwpIHsKICAgICAgICAgICAgY29uc3Qgc2lnbmFsID0gaW5pdC5zaWduYWwKICAgICAgICAgICAgaW5pdC5zaWduYWwgPSB1bmRlZmluZWQKCiAgICAgICAgICAgIHNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsICgpID0+IHsKICAgICAgICAgICAgICAgIHJlamVjdChzaWduYWwucmVhc29uKQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgcmVhbEZldGNoKGlucHV0LCBpbml0KQogICAgICAgICAgICAudGhlbihyZXNvbHZlKQogICAgICAgICAgICAuY2F0Y2gocmVqZWN0KQogICAgfSkKfQoKbGV0IHJlYWxBZGRFdmVudExpc3RlbmVyOiB0eXBlb2YgYWRkRXZlbnRMaXN0ZW5lcgpsZXQgcmVhbFJlbW92ZUV2ZW50TGlzdGVuZXI6IHR5cGVvZiByZW1vdmVFdmVudExpc3RlbmVyCmZ1bmN0aW9uIHBvbHlmaWxsQWRkRXZlbnRMaXN0ZW5lcih0aGlzOiBFdmVudFRhcmdldCwgdHlwZTogc3RyaW5nLCBsaXN0ZW5lcjogRXZlbnRMaXN0ZW5lck9yRXZlbnRMaXN0ZW5lck9iamVjdCwgb3B0aW9ucz86IGJvb2xlYW4gfCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucykgewogICAgaWYgKG9wdGlvbnMgJiYgdHlwZW9mIG9wdGlvbnMgPT0gIm9iamVjdCIgJiYgInNpZ25hbCIgaW4gb3B0aW9ucyAmJiBvcHRpb25zLnNpZ25hbCkgewogICAgICAgIGNvbnN0IHNpZ25hbCA9IG9wdGlvbnMuc2lnbmFsCiAgICAgICAgb3B0aW9ucy5zaWduYWwgPSB1bmRlZmluZWQKCiAgICAgICAgY29uc3QgcmVtb3ZlTGlzdGVuZXIgPSAoKSA9PiB7CiAgICAgICAgICAgIHJlYWxSZW1vdmVFdmVudExpc3RlbmVyLmNhbGwodGhpcywgdHlwZSwgbGlzdGVuZXIpCiAgICAgICAgICAgIHNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsIHJlbW92ZUxpc3RlbmVyKQogICAgICAgIH0KICAgICAgICBzaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLCByZW1vdmVMaXN0ZW5lcikKICAgIH0KCiAgICByZWFsQWRkRXZlbnRMaXN0ZW5lci5jYWxsKHRoaXMsIHR5cGUsIGxpc3RlbmVyLCBvcHRpb25zKQp9CgovLyAtLSBBcHBseSBQb2x5ZmlsbCBpZiByZXF1aXJlZAoKZnVuY3Rpb24gZmlsbEFib3J0Q29udHJvbGxlcihnbG9iYWw6IGFueSkgewogICAgaWYgKCJBYm9ydENvbnRyb2xsZXIiIGluIGdsb2JhbCkgewogICAgICAgIHJldHVybgogICAgfQogICAgY29uc29sZS5pbmZvKCJ1c2luZyBBYm9ydENvbnRyb2xsZXIgcG9seWZpbGwiKQoKICAgIGdsb2JhbFsiQWJvcnRDb250cm9sbGVyIl0gPSBQb2x5ZmlsbEFib3J0Q29udHJvbGxlcjsKICAgIGdsb2JhbFsiQWJvcnRTaWduYWwiXSA9IFBvbHlmaWxsQWJvcnRTaWduYWw7CgogICAgLy8gT3ZlcndyaXRlIGZldGNoCiAgICByZWFsRmV0Y2ggPSBnbG9iYWxbImZldGNoIl0KCiAgICBnbG9iYWxbImZldGNoIl0gPSBwb2x5ZmlsbEZldGNoCgogICAgLy8gT3ZlcndyaXRlIEV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIKICAgIGNvbnN0IEV2ZW50VGFyZ2V0UHJvdG90eXBlID0gZ2xvYmFsWyJFdmVudFRhcmdldCJdLnByb3RvdHlwZQoKICAgIHJlYWxBZGRFdmVudExpc3RlbmVyID0gRXZlbnRUYXJnZXRQcm90b3R5cGVbImFkZEV2ZW50TGlzdGVuZXIiXQogICAgcmVhbFJlbW92ZUV2ZW50TGlzdGVuZXIgPSBFdmVudFRhcmdldFByb3RvdHlwZVsicmVtb3ZlRXZlbnRMaXN0ZW5lciJdCgogICAgRXZlbnRUYXJnZXRQcm90b3R5cGVbImFkZEV2ZW50TGlzdGVuZXIiXSA9IHBvbHlmaWxsQWRkRXZlbnRMaXN0ZW5lcgp9CmZ1bmN0aW9uIGZpbGxUaW1lb3V0KGdsb2JhbDogYW55KSB7CiAgICBjb25zdCBBYm9ydFNpZ25hbCA9IGdsb2JhbFsiQWJvcnRTaWduYWwiXQogICAgaWYgKCJ0aW1lb3V0IiBpbiBBYm9ydFNpZ25hbCkgewogICAgICAgIHJldHVybgogICAgfQogICAgY29uc29sZS5pbmZvKCJ1c2luZyBBYm9ydFNpZ25hbC50aW1lb3V0IHBvbHlmaWxsIikKCiAgICBBYm9ydFNpZ25hbFsidGltZW91dCJdID0gUG9seWZpbGxBYm9ydFNpZ25hbC50aW1lb3V0Cn0KCmNvbnN0IGdsb2JhbE9iaiA9IGdsb2JhbFRoaXMgPz8gKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnID8gd2luZG93IDogdW5kZWZpbmVkKQpmaWxsQWJvcnRDb250cm9sbGVyKGdsb2JhbE9iaikKZmlsbFRpbWVvdXQoZ2xvYmFsT2JqKQ=="},{"path":"web/polyfill/index.ts","sha256":"c59a3e08bfef6fac02b01b14d72964457de32d7f8a215edc084aa7104619917c","contentBase64":"aW1wb3J0ICIuL2Fib3J0X2NvbnRyb2xsZXIuanMi"},{"path":"web/polyfill/ios_right_click.ts","sha256":"92f90c95df27f2718f7a8367c751fbd1ffe29180a0ca58b0d2df4d154e50d23e","contentBase64":"Ly8gQmVjYXVzZSBpb3MgZGV2aWNlcyBzdWNrLCB0aGV5IGNhbid0IG1ha2UgYSByaWdodCBjbGljayB3aGVuIGhvbGRpbmcgYSB0b3VjaC4KLy8gVGhpcyBzY3JpcHQgd2lsbCBob29rIGludG8gdGhlIHRvdWNoIGFwaXMgdG8gc2ltdWxhdGUgYSByaWdodCBjbGljayB3aGVuIG5lZWRlZAoKY29uc3QgUklHSFRfQ0xJQ0tfVElNRV9NUyA9IDQwMApjb25zdCBSSUdIVF9DTElDS19NQVhfTU9WRSA9IDQwCgpsZXQgcmlnaHRDbGlja0VuYWJsZWQgPSBmYWxzZQoKbGV0IHRpbWVyOiBudW1iZXIKCi8vLyBUaGlzIG1pZ2h0IG9yIG1pZ2h0IG5vdCBkaXNhYmxlIGFsbCB0b3VjaCBldmVudHMgYW5kIHdpbGwgbGlrZWx5IHNpbXVsYXRlIGNsaWNrIC8gY29udGV4dG1lbnUgZXZlbnRzCmV4cG9ydCBmdW5jdGlvbiBzZXRUb3VjaENvbnRleHRNZW51RW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7CiAgICBpZiAobmF2aWdhdG9yPy52ZW5kb3IgPT0gIkFwcGxlIENvbXB1dGVyLCBJbmMuIikgewogICAgICAgIHJpZ2h0Q2xpY2tFbmFibGVkID0gZW5hYmxlZAogICAgfQp9Cgpjb25zdCB0b3VjaFRyYWNrZXI6IE1hcDxudW1iZXIsIHsKICAgIG9yaWdpblg6IG51bWJlcgogICAgb3JpZ2luWTogbnVtYmVyCiAgICBzdGFydFRpbWU6IG51bWJlcgogICAgc3RhcnRUYXJnZXQ6IEVsZW1lbnQgfCBudWxsCiAgICBvbGRYOiBudW1iZXIKICAgIG9sZFk6IG51bWJlcgp9PiA9IG5ldyBNYXAoKQoKZnVuY3Rpb24gb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KSB7CiAgICBpZiAoIXJpZ2h0Q2xpY2tFbmFibGVkKSB7CiAgICAgICAgcmV0dXJuCiAgICB9CgogICAgZm9yIChjb25zdCB0b3VjaCBvZiBldmVudC5jaGFuZ2VkVG91Y2hlcykgewogICAgICAgIHRvdWNoVHJhY2tlci5zZXQodG91Y2guaWRlbnRpZmllciwgewogICAgICAgICAgICBvcmlnaW5YOiB0b3VjaC5jbGllbnRYLAogICAgICAgICAgICBvcmlnaW5ZOiB0b3VjaC5jbGllbnRZLAogICAgICAgICAgICBzdGFydFRpbWU6IERhdGUubm93KCksCiAgICAgICAgICAgIHN0YXJ0VGFyZ2V0OiB0b3VjaD8udGFyZ2V0IGFzIEVsZW1lbnQgPz8gbnVsbCwKICAgICAgICAgICAgb2xkWDogdG91Y2guY2xpZW50WCwKICAgICAgICAgICAgb2xkWTogdG91Y2guY2xpZW50WQogICAgICAgIH0pCgogICAgICAgIGNvbnN0IGV2ZW50SW5pdCA9IHsKICAgICAgICAgICAgY2xpZW50WDogdG91Y2guY2xpZW50WCwKICAgICAgICAgICAgY2xpZW50WTogdG91Y2guY2xpZW50WSwKICAgICAgICAgICAgZm9yY2U6IHRvdWNoLmZvcmNlLAogICAgICAgICAgICBwYWdlWDogdG91Y2gucGFnZVgsCiAgICAgICAgICAgIHBhZ2VZOiB0b3VjaC5wYWdlWSwKICAgICAgICAgICAgcmFkaXVzWDogdG91Y2gucmFkaXVzWCwKICAgICAgICAgICAgcmFkaXVzWTogdG91Y2gucmFkaXVzWSwKICAgICAgICAgICAgcm90YXRpb25BbmdsZTogdG91Y2gucm90YXRpb25BbmdsZSwKICAgICAgICAgICAgc2NyZWVuWDogdG91Y2guc2NyZWVuWCwKICAgICAgICAgICAgc2NyZWVuWTogdG91Y2guc2NyZWVuWSwKICAgICAgICAgICAgdGFyZ2V0OiB0b3VjaC50YXJnZXQsCiAgICAgICAgICAgIC8vIE90aGVyCiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsCiAgICAgICAgICAgIGNhbmNlbGxhYmxlOiB0cnVlCiAgICAgICAgfTsKCiAgICAgICAgY29uc3QgY29udGV4dE1lbnVFdmVudCA9IG5ldyBNb3VzZUV2ZW50KCJjb250ZXh0bWVudSIsIGV2ZW50SW5pdCkKCiAgICAgICAgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgdG91Y2g/LnRhcmdldC5kaXNwYXRjaEV2ZW50KGNvbnRleHRNZW51RXZlbnQpCiAgICAgICAgfSwgUklHSFRfQ0xJQ0tfVElNRV9NUykKICAgIH0KfQpmdW5jdGlvbiBvblRvdWNoTW92ZShldmVudDogVG91Y2hFdmVudCkgewogICAgaWYgKCFyaWdodENsaWNrRW5hYmxlZCkgewogICAgICAgIHJldHVybgogICAgfQoKICAgIGNsZWFyVGltZW91dCh0aW1lcikKfQpmdW5jdGlvbiBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50KSB7CiAgICBpZiAoIXJpZ2h0Q2xpY2tFbmFibGVkKSB7CiAgICAgICAgcmVtb3ZlVG91Y2goZXZlbnQpCiAgICAgICAgcmV0dXJuCiAgICB9CgogICAgY2xlYXJUaW1lb3V0KHRpbWVyKQogICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkKCiAgICBmb3IgKGNvbnN0IHRvdWNoIG9mIGV2ZW50LmNoYW5nZWRUb3VjaGVzKSB7CiAgICAgICAgY29uc3QgdG91Y2hTdGFydCA9IHRvdWNoVHJhY2tlci5nZXQodG91Y2guaWRlbnRpZmllcikKICAgICAgICBpZiAoIXRvdWNoU3RhcnQpIHsKICAgICAgICAgICAgY29udGludWUKICAgICAgICB9CgogICAgICAgIGNvbnN0IHRpbWVEaWZmID0gRGF0ZS5ub3coKSAtIHRvdWNoU3RhcnQuc3RhcnRUaW1lCgogICAgICAgIGNvbnN0IGV2ZW50SW5pdCA9IHsKICAgICAgICAgICAgY2xpZW50WDogdG91Y2guY2xpZW50WCwKICAgICAgICAgICAgY2xpZW50WTogdG91Y2guY2xpZW50WSwKICAgICAgICAgICAgZm9yY2U6IHRvdWNoLmZvcmNlLAogICAgICAgICAgICBwYWdlWDogdG91Y2gucGFnZVgsCiAgICAgICAgICAgIHBhZ2VZOiB0b3VjaC5wYWdlWSwKICAgICAgICAgICAgcmFkaXVzWDogdG91Y2gucmFkaXVzWCwKICAgICAgICAgICAgcmFkaXVzWTogdG91Y2gucmFkaXVzWSwKICAgICAgICAgICAgcm90YXRpb25BbmdsZTogdG91Y2gucm90YXRpb25BbmdsZSwKICAgICAgICAgICAgc2NyZWVuWDogdG91Y2guc2NyZWVuWCwKICAgICAgICAgICAgc2NyZWVuWTogdG91Y2guc2NyZWVuWSwKICAgICAgICAgICAgdGFyZ2V0OiB0b3VjaC50YXJnZXQsCiAgICAgICAgICAgIC8vIE90aGVyCiAgICAgICAgICAgIGJ1YmJsZXM6IHRydWUsCiAgICAgICAgICAgIGNhbmNlbGxhYmxlOiB0cnVlCiAgICAgICAgfTsKCiAgICAgICAgaWYgKE1hdGguYWJzKHRvdWNoLmNsaWVudFggLSB0b3VjaFN0YXJ0Lm9yaWdpblgpIDwgUklHSFRfQ0xJQ0tfTUFYX01PVkUKICAgICAgICAgICAgJiYgTWF0aC5hYnModG91Y2guY2xpZW50WSAtIHRvdWNoU3RhcnQub3JpZ2luWSkgPCBSSUdIVF9DTElDS19NQVhfTU9WRSkgewogICAgICAgICAgICBpZiAodGltZURpZmYgPiBSSUdIVF9DTElDS19USU1FX01TKSB7CiAgICAgICAgICAgICAgICAvLyBkaXNwYXRjaCBmYWtlIGNvbnRleHQgbWVudSBldmVudAogICAgICAgICAgICAgICAgY29uc3QgY29udGV4dE1lbnVFdmVudCA9IG5ldyBNb3VzZUV2ZW50KCJjb250ZXh0bWVudSIsIGV2ZW50SW5pdCkKCiAgICAgICAgICAgICAgICB0b3VjaD8udGFyZ2V0LmRpc3BhdGNoRXZlbnQoY29udGV4dE1lbnVFdmVudCkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZW1vdmVUb3VjaChldmVudCkKfQpmdW5jdGlvbiByZW1vdmVUb3VjaChldmVudDogVG91Y2hFdmVudCkgewogICAgZm9yIChjb25zdCB0b3VjaCBvZiBldmVudC5jaGFuZ2VkVG91Y2hlcykgewogICAgICAgIHRvdWNoVHJhY2tlci5kZWxldGUodG91Y2guaWRlbnRpZmllcikKICAgIH0KCiAgICBpZiAoIXJpZ2h0Q2xpY2tFbmFibGVkKSB7CiAgICAgICAgcmV0dXJuCiAgICB9CiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKQp9Cgp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsIG9uVG91Y2hTdGFydCwgeyBjYXB0dXJlOiB0cnVlLCBwYXNzaXZlOiBmYWxzZSB9KQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIiwgb25Ub3VjaE1vdmUsIHsgY2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogZmFsc2UgfSkKd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIiwgb25Ub3VjaEVuZCwgeyBjYXB0dXJlOiB0cnVlLCBwYXNzaXZlOiBmYWxzZSB9KQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLCBvblRvdWNoRW5kLCB7IGNhcHR1cmU6IHRydWUsIHBhc3NpdmU6IGZhbHNlIH0p"},{"path":"web/resources/README.md","sha256":"e5c113ec7d0b005968f968e5c41c2058a8e4a7cddf1a9d8b3c4549e2d4a45b03","contentBase64":"QWxsIHJlc291cmNlcyBhcmUgdGFrZW4gZnJvbSB0aGUgW29mZmljaWFsIG1vb25saWdodC1xdCByZXBvc2l0b3J5XShodHRwczovL2dpdGh1Yi5jb20vbW9vbmxpZ2h0LXN0cmVhbS9tb29ubGlnaHQtcXQvdHJlZS9tYXN0ZXIvYXBwL3JlcykgYW5kIHdlcmUgbm90IG1vZGlmaWVkLg=="},{"path":"web/resources/arrow_left.svg","sha256":"50d2f2b2fcd9243cfe75db1eccf01d2ef6f18530455370267e4deb9a6b17967b","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJ3aGl0ZSI+CiAgICA8cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+CiAgICA8cGF0aCBkPSJNMjAgMTFINy44M2w1LjU5LTUuNTlMMTIgNGwtOCA4IDggOCAxLjQxLTEuNDFMNy44MyAxM0gyMHYtMnoiLz4KPC9zdmc+Cg=="},{"path":"web/resources/baseline-check_circle_outline-24px.svg","sha256":"aea34e0a7b0ac935a29bc9ed9cd1799e0278e1fe96793a8a3dead3c7fa3166fd","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBkPSJNMCAwaDI0djI0SDBWMHptMCAwaDI0djI0SDBWMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTYuNTkgNy41OEwxMCAxNC4xN2wtMy41OS0zLjU4TDUgMTJsNSA1IDgtOHpNMTIgMkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MiAwLTgtMy41OC04LThzMy41OC04IDgtOCA4IDMuNTggOCA4LTMuNTggOC04IDh6Ii8+PC9zdmc+"},{"path":"web/resources/baseline-error_outline-24px.svg","sha256":"0b5cad92463442d93bec886b508d086695ac0591d044f3fab03995d8f79d9ea7","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDBWMHoiLz48cGF0aCBkPSJNMTEgMTVoMnYyaC0yem0wLThoMnY2aC0yem0uOTktNUM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnpNMTIgMjBjLTQuNDIgMC04LTMuNTgtOC04czMuNTgtOCA4LTggOCAzLjU4IDggOC0zLjU4IDgtOCA4eiIvPjwvc3ZnPgo="},{"path":"web/resources/baseline-help_outline-24px.svg","sha256":"892bc38c649aca538c10644df1c9317b63a2dab8306f0b2e9a5fd7b3578f6af4","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSIjRkZGRkZGIj48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDB6Ii8+PHBhdGggZD0iTTExIDE4aDJ2LTJoLTJ2MnptMS0xNkM2LjQ4IDIgMiA2LjQ4IDIgMTJzNC40OCAxMCAxMCAxMCAxMC00LjQ4IDEwLTEwUzE3LjUyIDIgMTIgMnptMCAxOGMtNC40MSAwLTgtMy41OS04LThzMy41OS04IDgtOCA4IDMuNTkgOCA4LTMuNTkgOC04IDh6bTAtMTRjLTIuMjEgMC00IDEuNzktNCA0aDJjMC0xLjEuOS0yIDItMnMyIC45IDIgMmMwIDItMyAxLjc1LTMgNWgyYzAtMi4yNSAzLTIuNSAzLTUgMC0yLjIxLTEuNzktNC00LTR6Ii8+PC9zdmc+Cg=="},{"path":"web/resources/baseline-lock-24px.svg","sha256":"f76fc5c78f250a8cd5dbae02a59fd5f82c1a4032266151b6d298ed9e5a1f07a4","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNGRkZGRkYiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICAgIDxwYXRoIGQ9Ik0xOCA4aC0xVjZjMC0yLjc2LTIuMjQtNS01LTVTNyAzLjI0IDcgNnYySDZjLTEuMSAwLTIgLjktMiAydjEwYzAgMS4xLjkgMiAyIDJoMTJjMS4xIDAgMi0uOSAyLTJWMTBjMC0xLjEtLjktMi0yLTJ6bS02IDljLTEuMSAwLTItLjktMi0ycy45LTIgMi0yIDIgLjkgMiAyLS45IDItMiAyem0zLjEtOUg4LjlWNmMwLTEuNzEgMS4zOS0zLjEgMy4xLTMuMSAxLjcxIDAgMy4xIDEuMzkgMy4xIDMuMXYyeiIvPgo8L3N2Zz4K"},{"path":"web/resources/baseline-warning-24px.svg","sha256":"bd291ee5162ff3ec04c91dcfd87900b21c3d2518938b2b634cf412512ccbe53d","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNGRkZGRkYiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4KICAgIDxwYXRoIGQ9Ik0xIDIxaDIyTDEyIDIgMSAyMXptMTItM2gtMnYtMmgydjJ6bTAtNGgtMnYtNGgydjR6Ii8+Cjwvc3ZnPgo="},{"path":"web/resources/desktop_windows-48px.svg","sha256":"42c328a9a267b17ce9fa9208e1bb1e170dd1fc15224d88327303ffc940a1a5f4","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9IiNGRkZGRkYiIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMFYweiIvPgogICAgPHBhdGggZD0iTTIxIDJIM2MtMS4xIDAtMiAuOS0yIDJ2MTJjMCAxLjEuOSAyIDIgMmg3djJIOHYyaDh2LTJoLTJ2LTJoN2MxLjEgMCAyLS45IDItMlY0YzAtMS4xLS45LTItMi0yem0wIDE0SDNWNGgxOHYxMnoiLz4KPC9zdmc+"},{"path":"web/resources/discord.svg","sha256":"a517fb7b751dafeebdc5a1f86233483f20c67c211bcbbe5dd339da3c55df4e90","contentBase64":"PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiBmaWxsPSJ3aGl0ZSI+PHBhdGggZD0iTTIwLjMxNyA0LjM2OThhMTkuNzkxMyAxOS43OTEzIDAgMCAwLTQuODg1MS0xLjUxNTIuMDc0MS4wNzQxIDAgMCAwLS4wNzg1LjAzNzFjLS4yMTEuMzc1My0uNDQ0Ny44NjQ4LS42MDgzIDEuMjQ5NS0xLjg0NDctLjI3NjItMy42OC0uMjc2Mi01LjQ4NjggMC0uMTYzNi0uMzkzMy0uNDA1OC0uODc0Mi0uNjE3Ny0xLjI0OTVhLjA3Ny4wNzcgMCAwIDAtLjA3ODUtLjAzNyAxOS43MzYzIDE5LjczNjMgMCAwIDAtNC44ODUyIDEuNTE1LjA2OTkuMDY5OSAwIDAgMC0uMDMyMS4wMjc3Qy41MzM0IDkuMDQ1OC0uMzE5IDEzLjU3OTkuMDk5MiAxOC4wNTc4YS4wODI0LjA4MjQgMCAwIDAgLjAzMTIuMDU2MWMyLjA1MjggMS41MDc2IDQuMDQxMyAyLjQyMjggNS45OTI5IDMuMDI5NGEuMDc3Ny4wNzc3IDAgMCAwIC4wODQyLS4wMjc2Yy40NjE2LS42MzA0Ljg3MzEtMS4yOTUyIDEuMjI2LTEuOTk0MmEuMDc2LjA3NiAwIDAgMC0uMDQxNi0uMTA1N2MtLjY1MjgtLjI0NzYtMS4yNzQzLS41NDk1LTEuODcyMi0uODkyM2EuMDc3LjA3NyAwIDAgMS0uMDA3Ni0uMTI3N2MuMTI1OC0uMDk0My4yNTE3LS4xOTIzLjM3MTgtLjI5MTRhLjA3NDMuMDc0MyAwIDAgMSAuMDc3Ni0uMDEwNWMzLjkyNzggMS43OTMzIDguMTggMS43OTMzIDEyLjA2MTQgMGEuMDczOS4wNzM5IDAgMCAxIC4wNzg1LjAwOTVjLjEyMDIuMDk5LjI0Ni4xOTgxLjM3MjguMjkyNGEuMDc3LjA3NyAwIDAgMS0uMDA2Ni4xMjc2IDEyLjI5ODYgMTIuMjk4NiAwIDAgMS0xLjg3My44OTE0LjA3NjYuMDc2NiAwIDAgMC0uMDQwNy4xMDY3Yy4zNjA0LjY5OC43NzE5IDEuMzYyOCAxLjIyNSAxLjk5MzJhLjA3Ni4wNzYgMCAwIDAgLjA4NDIuMDI4NmMxLjk2MS0uNjA2NyAzLjk0OTUtMS41MjE5IDYuMDAyMy0zLjAyOTRhLjA3Ny4wNzcgMCAwIDAgLjAzMTMtLjA1NTJjLjUwMDQtNS4xNzctLjgzODItOS42NzM5LTMuNTQ4NS0xMy42NjA0YS4wNjEuMDYxIDAgMCAwLS4wMzEyLS4wMjg2ek04LjAyIDE1LjMzMTJjLTEuMTgyNSAwLTIuMTU2OS0xLjA4NTctMi4xNTY5LTIuNDE5IDAtMS4zMzMyLjk1NTUtMi40MTg5IDIuMTU3LTIuNDE4OSAxLjIxMDggMCAyLjE3NTcgMS4wOTUyIDIuMTU2OCAyLjQxOSAwIDEuMzMzMi0uOTU1NSAyLjQxODktMi4xNTY5IDIuNDE4OXptNy45NzQ4IDBjLTEuMTgyNSAwLTIuMTU2OS0xLjA4NTctMi4xNTY5LTIuNDE5IDAtMS4zMzMyLjk1NTQtMi40MTg5IDIuMTU2OS0yLjQxODkgMS4yMTA4IDAgMi4xNzU3IDEuMDk1MiAyLjE1NjggMi40MTkgMCAxLjMzMzItLjk0NiAyLjQxODktMi4xNTY4IDIuNDE4OVoiLz48L3N2Zz4="},{"path":"web/resources/ic_add_to_queue_white_48px.svg","sha256":"b101b8b476e204b87ed6d9713cdeb299e70d711b7a82b13bb49fe7b548ab7985","contentBase64":"PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSI0OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPgogICAgPHBhdGggZD0iTTIxIDNIM2MtMS4xMSAwLTIgLjg5LTIgMnYxMmMwIDEuMS44OSAyIDIgMmg1djJoOHYtMmg1YzEuMSAwIDEuOTktLjkgMS45OS0yTDIzIDVjMC0xLjExLS45LTItMi0yem0wIDE0SDNWNWgxOHYxMnptLTUtN3YyaC0zdjNoLTJ2LTNIOHYtMmgzVjdoMnYzaDN6Ii8+Cjwvc3ZnPg=="},{"path":"web/resources/ic_videogame_asset_white_48px.svg","sha256":"e620ec9f3c92341dbbf803d5dac3014df4d54b31c258678f9d293048abb33f01","contentBase64":"PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjQ4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSI0OCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0wIDB2MjRoMjRWMEgwem0yMyAxNmMwIDEuMS0uOSAyLTIgMkgzYy0xLjEgMC0yLS45LTItMlY4YzAtMS4xLjktMiAyLTJoMThjMS4xIDAgMiAuOSAyIDJ2OHoiIGZpbGw9Im5vbmUiLz4KICAgIDxwYXRoIGQ9Ik0yMSA2SDNjLTEuMSAwLTIgLjktMiAydjhjMCAxLjEuOSAyIDIgMmgxOGMxLjEgMCAyLS45IDItMlY4YzAtMS4xLS45LTItMi0yem0tMTAgN0g4djNINnYtM0gzdi0yaDNWOGgydjNoM3Yyem00LjUgMmMtLjgzIDAtMS41LS42Ny0xLjUtMS41cy42Ny0xLjUgMS41LTEuNSAxLjUuNjcgMS41IDEuNS0uNjcgMS41LTEuNSAxLjV6bTQtM2MtLjgzIDAtMS41LS42Ny0xLjUtMS41UzE4LjY3IDkgMTkuNSA5czEuNS42NyAxLjUgMS41LS42NyAxLjUtMS41IDEuNXoiLz4KPC9zdmc+"},{"path":"web/resources/index.ts","sha256":"bfa1cb3304baa55d37d0baee6e060e96553b3f7d667af4a8fbe22271c4e5b88d","contentBase64":"aW1wb3J0IHsgYnVpbGRVcmwgfSBmcm9tICIuLi9jb25maWdfLmpzIjsKCmV4cG9ydCBjb25zdCBIT1NUX0lNQUdFID0gYnVpbGRVcmwoIi9yZXNvdXJjZXMvZGVza3RvcF93aW5kb3dzLTQ4cHguc3ZnIikKZXhwb3J0IGNvbnN0IEhPU1RfT1ZFUkxBWV9OT05FID0gIiI7CmV4cG9ydCBjb25zdCBIT1NUX09WRVJMQVlfT0ZGTElORSA9IGJ1aWxkVXJsKCIvcmVzb3VyY2VzL2Jhc2VsaW5lLWVycm9yX291dGxpbmUtMjRweC5zdmciKQpleHBvcnQgY29uc3QgSE9TVF9PVkVSTEFZX0xPQ0sgPSBidWlsZFVybCgiL3Jlc291cmNlcy9iYXNlbGluZS1sb2NrLTI0cHguc3ZnIikKCmV4cG9ydCBjb25zdCBJTkZPX0lNQUdFID0gYnVpbGRVcmwoIi9yZXNvdXJjZXMvbmV3L2luZm9fMjRkcF9FM0UzRTNfRklMTDBfd2dodDQwMF9HUkFEMF9vcHN6MjQuc3ZnIikKZXhwb3J0IGNvbnN0IFdBUk5fSU1BR0UgPSBidWlsZFVybCgiL3Jlc291cmNlcy9iYXNlbGluZS13YXJuaW5nLTI0cHguc3ZnIikKZXhwb3J0IGNvbnN0IEVSUk9SX0lNQUdFID0gYnVpbGRVcmwoIi9yZXNvdXJjZXMvYmFzZWxpbmUtZXJyb3Jfb3V0bGluZS0yNHB4LnN2ZyIpCgpleHBvcnQgY29uc3QgQVBQX05PX0lNQUdFID0gYnVpbGRVcmwoIi9yZXNvdXJjZXMvbm9fYXBwX2ltYWdlLnBuZyIpCgpleHBvcnQgY29uc3QgTE9HT1VUX0lNQUdFID0gYnVpbGRVcmwoIi9yZXNvdXJjZXMvbmV3L2xvZ291dC1zdmdyZXBvLWNvbS5zdmciKQ=="},{"path":"web/resources/moonlight.svg","sha256":"6fd0ee4fe5b4aad5abaa5d5c9acb9f7d1bda0abadfe9d1582115de9b4ba16aa2","contentBase64":"PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhLS0gR2VuZXJhdG9yOiBHcmF2aXQuaW8gLS0+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0iaXNvbGF0aW9uOmlzb2xhdGUiIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PGc+PGNpcmNsZSB2ZWN0b3ItZWZmZWN0PSJub24tc2NhbGluZy1zdHJva2UiIGN4PSIxMjgiIGN5PSIxMjgiIHI9IjEyOCIgZmlsbD0icmdiKDg2LDkyLDEwMCkiLz48Y2lyY2xlIHZlY3Rvci1lZmZlY3Q9Im5vbi1zY2FsaW5nLXN0cm9rZSIgY3g9IjEyOC4wMDAwMDAwMDAwMDAwMyIgY3k9IjEyOC4wMDAwMDAwMDAwMDAwMyIgcj0iOTYiIGZpbGw9InJnYigyNTUsMjU1LDI1NSkiLz48cGF0aCBkPSIgTSAxMzcuNjYgMTMyIEwgMjI0IDEzMiBMIDIyNCAxMjQgTCAxMzcuNjYgMTI0IEwgMTk4LjcxIDYyLjk1IEwgMTkzLjA1IDU3LjI5IEwgMTMyIDExOC4zNCBMIDEzMiAzMiBMIDEyNCAzMiBMIDEyNCAxMTguMzQgTCA2Mi45NSA1Ny4yOSBMIDU3LjI5IDYyLjk1IEwgMTE4LjM0IDEyNCBMIDMyIDEyNCBMIDMyIDEzMiBMIDExOC4zNCAxMzIgTCA1Ny4yOSAxOTMuMDUgTCA2Mi45NSAxOTguNzEgTCAxMjQgMTM3LjY2IEwgMTI0IDIyNCBMIDEzMiAyMjQgTCAxMzIgMTM3LjY2IEwgMTkzLjA1IDE5OC43MSBMIDE5OC43MSAxOTMuMDUgTCAxMzcuNjYgMTMyIFogIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9InJnYig4Niw5MiwxMDApIi8+PC9nPjwvc3ZnPg=="},{"path":"web/resources/new/admin-svgrepo-com.svg","sha256":"4470009e88aeb9047dd268b554fa7fbe2f3191df51855f9b47f36733ff9f226d","contentBase64":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnPgogICAgICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiLz4KICAgICAgICA8cGF0aCBkPSJNMTIgMTR2OEg0YTggOCAwIDAgMSA4LTh6bTAtMWMtMy4zMTUgMC02LTIuNjg1LTYtNnMyLjY4NS02IDYtNiA2IDIuNjg1IDYgNi0yLjY4NSA2LTYgNnptOSA0aDF2NWgtOHYtNWgxdi0xYTMgMyAwIDAgMSA2IDB2MXptLTIgMHYtMWExIDEgMCAwIDAtMiAwdjFoMnoiIGZpbGw9IndoaXRlIiAvPgogICAgPC9nPgo8L3N2Zz4="},{"path":"web/resources/new/info_24dp_E3E3E3_FILL0_wght400_GRAD0_opsz24.svg","sha256":"d5a0426e26e5888dd06cdfbd64c7002fcc4efcd723ad3cb152698bb78223eb00","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjZTNlM2UzIj48cGF0aCBkPSJNNDQwLTI4MGg4MHYtMjQwaC04MHYyNDBabTY4LjUtMzMxLjVRNTIwLTYyMyA1MjAtNjQwdC0xMS41LTI4LjVRNDk3LTY4MCA0ODAtNjgwdC0yOC41IDExLjVRNDQwLTY1NyA0NDAtNjQwdDExLjUgMjguNVE0NjMtNjAwIDQ4MC02MDB0MjguNS0xMS41Wk00ODAtODBxLTgzIDAtMTU2LTMxLjVUMTk3LTE5N3EtNTQtNTQtODUuNS0xMjdUODAtNDgwcTAtODMgMzEuNS0xNTZUMTk3LTc2M3E1NC01NCAxMjctODUuNVQ0ODAtODgwcTgzIDAgMTU2IDMxLjVUNzYzLTc2M3E1NCA1NCA4NS41IDEyN1Q4ODAtNDgwcTAgODMtMzEuNSAxNTZUNzYzLTE5N3EtNTQgNTQtMTI3IDg1LjVUNDgwLTgwWm0wLTgwcTEzNCAwIDIyNy05M3Q5My0yMjdxMC0xMzQtOTMtMjI3dC0yMjctOTNxLTEzNCAwLTIyNyA5M3QtOTMgMjI3cTAgMTM0IDkzIDIyN3QyMjcgOTNabTAtMzIwWiIvPjwvc3ZnPg=="},{"path":"web/resources/new/logout-svgrepo-com.svg","sha256":"015d7a5a3d89aa013208bae664892e56d3135cdcf65382d51cfac82795cee169","contentBase64":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZyB0cmFuc2Zvcm09InNjYWxlKC0xLDEpIHRyYW5zbGF0ZSgtMjQsMCkiPgogICAgPHBhdGggZD0iTTIyIDYuNjIyMTlWMTcuMjQ1QzIyIDE4LjM1NzkgMjEuMjg1NyAxOS40NzA4IDIwLjE2MzMgMTkuODc1NEwxNS4wNjEyIDIxLjc5NzdDMTQuNzU1MSAyMS44OTg4IDE0LjQ0OSAyMiAxNC4wNDA4IDIyQzEzLjUzMDYgMjIgMTIuOTE4NCAyMS43OTc3IDEyLjQwODIgMjEuNDk0MkMxMi4yMDQxIDIxLjI5MTggMTEuODk4IDIxLjA4OTUgMTEuNzk1OSAyMC44ODcxSDcuOTE4MzdDNi4zODc3NiAyMC44ODcxIDUuMDYxMjIgMTkuNjczMSA1LjA2MTIyIDE4LjA1NDRWMTcuMDQyN0M1LjA2MTIyIDE2LjYzOCA1LjM2NzM1IDE2LjIzMzMgNS44Nzc1NSAxNi4yMzMzQzYuMzg3NzYgMTYuMjMzMyA2LjY5Mzg4IDE2LjUzNjggNi42OTM4OCAxNy4wNDI3VjE4LjA1NDRDNi42OTM4OCAxOC43NjI2IDcuMzA2MTIgMTkuMjY4NCA3LjkxODM3IDE5LjI2ODRIMTEuMjg1N1Y0LjY5OTk3SDcuOTE4MzdDNy4yMDQwOCA0LjY5OTk3IDYuNjkzODggNS4yMDU4MiA2LjY5Mzg4IDUuOTE0MDFWNi45MjU3QzYuNjkzODggNy4zMzAzOCA2LjM4Nzc2IDcuNzM1MDYgNS44Nzc1NSA3LjczNTA2QzUuMzY3MzUgNy43MzUwNiA1LjA2MTIyIDcuMzMwMzggNS4wNjEyMiA2LjkyNTdWNS45MTQwMUM1LjA2MTIyIDQuMzk2NDYgNi4yODU3MiAzLjA4MTI1IDcuOTE4MzcgMy4wODEyNUgxMS43OTU5QzEyIDIuODc4OTEgMTIuMjA0MSAyLjY3NjU3IDEyLjQwODIgMi40NzQyM0MxMy4yMjQ1IDEuOTY4MzggMTQuMTQyOSAxLjg2NzIxIDE1LjA2MTIgMi4xNzA3MkwyMC4xNjMzIDQuMDkyOTVDMjEuMTgzNyA0LjM5NjQ2IDIyIDUuNTA5MzMgMjIgNi42MjIxOVoiIGZpbGw9IndoaXRlIi8+CiAgICA8cGF0aCBkPSJNNC44NTcxNCAxNC44MTY5QzQuNjUzMDYgMTQuODE2OSA0LjQ0ODk4IDE0LjcxNTggNC4zNDY5NCAxNC42MTQ2TDIuMzA2MTIgMTIuNTkxMkMyLjIwNDA4IDEyLjQ5IDIuMjA0MDggMTIuMzg4OSAyLjEwMjA0IDEyLjM4ODlDMi4xMDIwNCAxMi4yODc3IDIgMTIuMTg2NSAyIDEyLjA4NTRDMiAxMS45ODQyIDIgMTEuODgzIDIuMTAyMDQgMTEuNzgxOUMyLjEwMjA0IDExLjY4MDcgMi4yMDQwOCAxMS41Nzk1IDIuMzA2MTIgMTEuNTc5NUw0LjM0Njk0IDkuNTU2MTJDNC42NTMwNiA5LjI1MjYxIDUuMTYzMjcgOS4yNTI2MSA1LjQ2OTM5IDkuNTU2MTJDNS43NzU1MSA5Ljg1OTYzIDUuNzc1NTEgMTAuMzY1NSA1LjQ2OTM5IDEwLjY2OUw0Ljc1NTEgMTEuMzc3Mkg4LjkzODc4QzkuMzQ2OTQgMTEuMzc3MiA5Ljc1NTEgMTEuNjgwNyA5Ljc1NTEgMTIuMTg2NUM5Ljc1NTEgMTIuNjkyNCA5LjM0Njk0IDEyLjc5MzYgOC45Mzg3OCAxMi43OTM2SDQuNjUzMDZMNS4zNjczNSAxMy41MDE3QzUuNjczNDcgMTMuODA1MiA1LjY3MzQ3IDE0LjMxMTEgNS4zNjczNSAxNC42MTQ2QzUuMjY1MzEgMTQuNzE1OCA1LjA2MTIyIDE0LjgxNjkgNC44NTcxNCAxNC44MTY5WiIgZmlsbD0id2hpdGUiLz4KICA8L2c+Cjwvc3ZnPgo="},{"path":"web/resources/new/user.svg","sha256":"48dedcacfa3f6cb41d79b4830c0cd369167dd3df337d4c1134d57b80e13edfa5","contentBase64":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8Zz4KICAgIDxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiLz4KICAgIDxwYXRoIGQ9Ik0xMiAxM2MtMy4zMTUgMC02LTIuNjg1LTYtNnMyLjY4NS02IDYtNiA2IDIuNjg1IDYgNi0yLjY4NSA2LTYgNnoiIGZpbGw9IndoaXRlIi8+CiAgICA8cGF0aCBkPSJNMTIgMTNhOCA4IDAgMCAxIDggOEg0YTggOCAwIDAgMSA4LTh6IiBmaWxsPSJ3aGl0ZSIvPgogIDwvZz4KPC9zdmc+Cg=="},{"path":"web/resources/no_app_image.png","sha256":"96ceaed30d385cf81c0ba0efd4aa619638dc7af516dad4a9ed306be6966b856b","contentBase64":"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"},{"path":"web/resources/play_arrow_FILL1_wght700_GRAD200_opsz48.svg","sha256":"9333b85cc1265a7dcf524298b4a9c19c2a63714d0b9fb19a34bf99a7a81e4f5e","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIiB3aWR0aD0iNDgiIGZpbGw9IiNGRkZGRkYiPjxwYXRoIGQ9Ik0zNzAtMjA2cS0yNiAxNC00OSAxdC0yMy00MHYtNDc3cTAtMjYgMjMtMzl0NDkgMWwzNzIgMjM5cTIzIDE0IDIzIDM4LjVUNzQyLTQ0NUwzNzAtMjA2WiIvPjwvc3ZnPg=="},{"path":"web/resources/question_mark.svg","sha256":"c64595f317bdeaf4cc06a79d53880725717905534f3b6341ab5cb8d3ec6d01df","contentBase64":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJ3aGl0ZSI+Cgk8cGF0aCBkPSJNMTUuMDcsMTEuMjVMMTQuMTcsMTIuMTdDMTMuNDUsMTIuODkgMTMsMTMuNSAxMywxNUgxMVYxNC41QzExLDEzLjM5IDExLjQ1LDEyLjM5IDEyLjE3LDExLjY3TDEzLjQxLDEwLjQxQzEzLjc4LDEwLjA1IDE0LDkuNTUgMTQsOUMxNCw3Ljg5IDEzLjEsNyAxMiw3QTIsMiAwIDAsMCAxMCw5SDhBNCw0IDAgMCwxIDEyLDVBNCw0IDAgMCwxIDE2LDlDMTYsOS44OCAxNS42NCwxMC42NyAxNS4wNywxMS4yNU0xMywxOUgxMVYxN0gxM00xMiwyQTEwLDEwIDAgMCwwIDIsMTJBMTAsMTAgMCAwLDAgMTIsMjJBMTAsMTAgMCAwLDAgMjIsMTJDMjIsNi40NyAxNy41LDIgMTIsMloiIC8+Cjwvc3ZnPg=="},{"path":"web/resources/save.svg","sha256":"18fda25c735a5e9226f218188e4e05607525917c85423aac6c550845c7960311","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjZTNlM2UzIj48cGF0aCBkPSJNODQwLTY4MHY0ODBxMCAzMy0yMy41IDU2LjVUNzYwLTEyMEgyMDBxLTMzIDAtNTYuNS0yMy41VDEyMC0yMDB2LTU2MHEwLTMzIDIzLjUtNTYuNVQyMDAtODQwaDQ4MGwxNjAgMTYwWm0tODAgMzRMNjQ2LTc2MEgyMDB2NTYwaDU2MHYtNDQ2Wk01NjUtMjc1cTM1LTM1IDM1LTg1dC0zNS04NXEtMzUtMzUtODUtMzV0LTg1IDM1cS0zNSAzNS0zNSA4NXQzNSA4NXEzNSAzNSA4NSAzNXQ4NS0zNVpNMjQwLTU2MGgzNjB2LTE2MEgyNDB2MTYwWm0tNDAtODZ2NDQ2LTU2MCAxMTRaIi8+PC9zdmc+"},{"path":"web/resources/settings.svg","sha256":"e2282aa49bb2dd552d69a5e7219905883451bf6690dcc2400b337375bdcff599","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJ3aGl0ZSI+CiAgICA8cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDIwdjIwSDBWMHoiLz4KICAgIDxwYXRoIGQ9Ik0xNS45NSAxMC43OGMuMDMtLjI1LjA1LS41MS4wNS0uNzhzLS4wMi0uNTMtLjA2LS43OGwxLjY5LTEuMzJjLjE1LS4xMi4xOS0uMzQuMS0uNTFsLTEuNi0yLjc3Yy0uMS0uMTgtLjMxLS4yNC0uNDktLjE4bC0xLjk5LjhjLS40Mi0uMzItLjg2LS41OC0xLjM1LS43OEwxMiAyLjM0Yy0uMDMtLjItLjItLjM0LS40LS4zNEg4LjRjLS4yIDAtLjM2LjE0LS4zOS4zNGwtLjMgMi4xMmMtLjQ5LjItLjk0LjQ3LTEuMzUuNzhsLTEuOTktLjhjLS4xOC0uMDctLjM5IDAtLjQ5LjE4bC0xLjYgMi43N2MtLjEuMTgtLjA2LjM5LjEuNTFsMS42OSAxLjMyYy0uMDQuMjUtLjA3LjUyLS4wNy43OHMuMDIuNTMuMDYuNzhMMi4zNyAxMi4xYy0uMTUuMTItLjE5LjM0LS4xLjUxbDEuNiAyLjc3Yy4xLjE4LjMxLjI0LjQ5LjE4bDEuOTktLjhjLjQyLjMyLjg2LjU4IDEuMzUuNzhsLjMgMi4xMmMuMDQuMi4yLjM0LjQuMzRoMy4yYy4yIDAgLjM3LS4xNC4zOS0uMzRsLjMtMi4xMmMuNDktLjIuOTQtLjQ3IDEuMzUtLjc4bDEuOTkuOGMuMTguMDcuMzkgMCAuNDktLjE4bDEuNi0yLjc3Yy4xLS4xOC4wNi0uMzktLjEtLjUxbC0xLjY3LTEuMzJ6TTEwIDEzYy0xLjY1IDAtMy0xLjM1LTMtM3MxLjM1LTMgMy0zIDMgMS4zNSAzIDMtMS4zNSAzLTMgM3oiLz4KPC9zdmc+Cg=="},{"path":"web/resources/stop_FILL1_wght700_GRAD200_opsz48.svg","sha256":"c2e1b876f114f4c1cf997c4a1987c88feb19855e0dfa4cf0a7ed753d2e78152b","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIiB3aWR0aD0iNDgiIGZpbGw9IiNGRkZGRkYiPjxwYXRoIGQ9Ik0zMDktMjE4cS0zOC40MjUgMC02NC43MTItMjYuMjg4UTIxOC0yNzAuNTc1IDIxOC0zMDl2LTM0MnEwLTM4LjgzOCAyNi4yODgtNjUuNDE5UTI3MC41NzUtNzQzIDMwOS03NDNoMzQycTM4LjgzOCAwIDY1LjQxOSAyNi41ODFRNzQzLTY4OS44MzggNzQzLTY1MXYzNDJxMCAzOC40MjUtMjYuNTgxIDY0LjcxMlE2ODkuODM4LTIxOCA2NTEtMjE4SDMwOVoiLz48L3N2Zz4="},{"path":"web/resources/update.svg","sha256":"2ab2eac64c507a19d0d5fcfa75463e01adf21cb9953a5f3a3be8933f8e45bde7","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI0ZGMDAwMCI+CiAgICA8cGF0aCBkPSJNMjEsMTAuMTJIMTQuMjJMMTYuOTYsNy4zQzE0LjIzLDQuNiA5LjgxLDQuNSA3LjA4LDcuMkM0LjM1LDkuOTEgNC4zNSwxNC4yOCA3LjA4LDE3QzkuODEsMTkuNyAxNC4yMywxOS43IDE2Ljk2LDE3QzE4LjMyLDE1LjY1IDE5LDE0LjA4IDE5LDEyLjFIMjFDMjEsMTQuMDggMjAuMTIsMTYuNjUgMTguMzYsMTguMzlDMTQuODUsMjEuODcgOS4xNSwyMS44NyA1LjY0LDE4LjM5QzIuMTQsMTQuOTIgMi4xMSw5LjI4IDUuNjIsNS44MUM5LjEzLDIuMzQgMTQuNzYsMi4zNCAxOC4yNyw1LjgxTDIxLDNWMTAuMTJNMTIuNSw4VjEyLjI1TDE2LDE0LjMzTDE1LjI4LDE1LjU0TDExLDEzVjhIMTIuNVoiIC8+Cjwvc3ZnPg=="},{"path":"web/resources/warning_FILL1_wght300_GRAD200_opsz24.svg","sha256":"cd39e6a52d744513daf53ee6fc22d06bbbada2e398bdc1bb327d7a77715281f1","contentBase64":"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgLTk2MCA5NjAgOTYwIiB3aWR0aD0iMjQiIGZpbGw9IndoaXRlIj48cGF0aCBkPSJNMTA4LjAxOC05OC4wMDFxLTE0LjE3IDAtMjUuMjY3LTcuNDcyLTExLjA5Ny03LjQ3MS0xNy41OTUtMTcuNjA1LTYuNjgtMTAuMDc3LTcuMTQ3LTIzLS40NjgtMTIuOTIzIDcuMDg1LTI2LjE2NWwzNzIuNDMtNjQwLjUxMnE3LjU1My0xMy4yNDIgMTguMzk5LTE4LjY2NSAxMC44NDYtNS40MjQgMjQuMDc3LTUuNDI0IDEzLjIzMSAwIDI0LjA3NyA1LjQyNCAxMC44NDYgNS40MjMgMTguMzk5IDE4LjY2NWwzNzIuNDMgNjQwLjUxMnE3LjU1MyAxMy4yNDIgNy4wODUgMjYuMTY1LS40NjggMTIuOTIzLTcuMTQ3IDIzLTYuNDk4IDEwLjEzNC0xNy41OTUgMTcuNjA1LTExLjA5NyA3LjQ3Mi0yNS4yNjcgNy40NzJIMTA4LjAxOFpNNDgxLTIyMC42OTNxMTguNzMxIDAgMzIuMDE5LTEzLjI4OCAxMy4yODgtMTMuMjg4IDEzLjI4OC0zMi4wMTkgMC0xOC43MzEtMTMuMjg4LTMyLjAxOS0xMy4yODgtMTMuMjg4LTMyLjAxOS0xMy4yODgtMTguNzMxIDAtMzIuMDE5IDEzLjI4OC0xMy4yODggMTMuMjg4LTEzLjI4OCAzMi4wMTkgMCAxOC43MzEgMTMuMjg4IDMyLjAxOSAxMy4yODggMTMuMjg4IDMyLjAxOSAxMy4yODhabS4wMTMtMTI3LjYxNHExNy43NTYgMCAzMC4zNzEtMTIuNjI1IDEyLjYxNS0xMi42MjUgMTIuNjE1LTMwLjM3NHYtMTE4LjAwMnEwLTE3Ljc1LTEyLjYyOC0zMC4zNzQtMTIuNjI5LTEyLjYyNS0zMC4zODQtMTIuNjI1LTE3Ljc1NiAwLTMwLjM3MSAxMi42MjUtMTIuNjE1IDEyLjYyNC0xMi42MTUgMzAuMzc0djExOC4wMDJxMCAxNy43NDkgMTIuNjI4IDMwLjM3NCAxMi42MjkgMTIuNjI1IDMwLjM4NCAxMi42MjVaIi8+PC9zdmc+"},{"path":"web/screen_keyboard.ts","sha256":"169d693dbd0f6310559132117fe37a6e73d126e3d20a620b86661971b6b7f334","contentBase64":"CmV4cG9ydCB0eXBlIFRleHRFdmVudCA9IEN1c3RvbUV2ZW50PHsgdGV4dDogc3RyaW5nIH0+CmV4cG9ydCB0eXBlIEtleWJvYXJkTW9kZUV2ZW50ID0gQ3VzdG9tRXZlbnQ8eyBlbmFibGVkOiBib29sZWFuIH0+CmV4cG9ydCB0eXBlIEtleWJvYXJkTW9kZVdpbGxDaGFuZ2VFdmVudCA9IEN1c3RvbUV2ZW50PHsgZW5hYmxlZDogYm9vbGVhbiB9PgoKY29uc3QgS0VZQk9BUkRfU0VOVElORUwgPSAiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSIKCmV4cG9ydCBjbGFzcyBTY3JlZW5LZXlib2FyZCB7CgogICAgcHJpdmF0ZSBldmVudFRhcmdldCA9IG5ldyBFdmVudFRhcmdldCgpCiAgICBwcml2YXRlIGZha2VFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKQoKICAgIHByaXZhdGUgZW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlCgogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5mYWtlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJoaWRkZW5pbnB1dCIpCiAgICAgICAgdGhpcy5mYWtlRWxlbWVudC5uYW1lID0gImtleWJvYXJkIgogICAgICAgIHRoaXMuZmFrZUVsZW1lbnQuYXV0b2NvbXBsZXRlID0gIm9mZiIKICAgICAgICB0aGlzLmZha2VFbGVtZW50LmF1dG9jYXBpdGFsaXplID0gIm9mZiIKICAgICAgICB0aGlzLmZha2VFbGVtZW50LnNwZWxsY2hlY2sgPSBmYWxzZQogICAgICAgIGlmICgiYXV0b2NvcnJlY3QiIGluIHRoaXMuZmFrZUVsZW1lbnQpIHsKICAgICAgICAgICAgdGhpcy5mYWtlRWxlbWVudC5hdXRvY29ycmVjdCA9IGZhbHNlCiAgICAgICAgfQogICAgICAgIHRoaXMucmVzZXRJbnB1dFZhbHVlKCkKCiAgICAgICAgdGhpcy5mYWtlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsIHRoaXMub25LZXlJbnB1dC5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMuZmFrZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLCB0aGlzLm9uQ29tcG9zaXRpb25FbmQuYmluZCh0aGlzKSkKCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLnJlZm9jdXNJZkVuYWJsZWQuYmluZCh0aGlzKSkKICAgIH0KCiAgICBnZXRIaWRkZW5FbGVtZW50KCkgewogICAgICAgIHJldHVybiB0aGlzLmZha2VFbGVtZW50CiAgICB9CgogICAgc2hvdygpIHsKICAgICAgICB0aGlzLnNldEVuYWJsZWQodHJ1ZSkKICAgIH0KICAgIGhpZGUoKSB7CiAgICAgICAgdGhpcy5zZXRFbmFibGVkKGZhbHNlKQogICAgfQoKICAgIGlzVmlzaWJsZSgpOiBib29sZWFuIHsKICAgICAgICByZXR1cm4gdGhpcy5lbmFibGVkCiAgICB9CiAgICBwcml2YXRlIHNldEVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikgewogICAgICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLmVuYWJsZWQgIT0gZW5hYmxlZAogICAgICAgIGlmIChjaGFuZ2VkKSB7CiAgICAgICAgICAgIGNvbnN0IGV2ZW50OiBLZXlib2FyZE1vZGVXaWxsQ2hhbmdlRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoIm1sLWtleWJvYXJkbW9kZXdpbGxjaGFuZ2UiLCB7CiAgICAgICAgICAgICAgICBkZXRhaWw6IHsgZW5hYmxlZCB9CiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCkKICAgICAgICB9CgogICAgICAgIHRoaXMuZW5hYmxlZCA9IGVuYWJsZWQKCiAgICAgICAgaWYgKGVuYWJsZWQpIHsKICAgICAgICAgICAgdGhpcy5yZWZvY3VzSWZFbmFibGVkKCkKICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuZmFrZUVsZW1lbnQpIHsKICAgICAgICAgICAgdGhpcy5mYWtlRWxlbWVudC5ibHVyKCkKICAgICAgICB9CgogICAgICAgIGlmIChjaGFuZ2VkKSB7CiAgICAgICAgICAgIGNvbnN0IGV2ZW50OiBLZXlib2FyZE1vZGVFdmVudCA9IG5ldyBDdXN0b21FdmVudCgibWwta2V5Ym9hcmRtb2RlIiwgewogICAgICAgICAgICAgICAgZGV0YWlsOiB7IGVuYWJsZWQgfQogICAgICAgICAgICB9KQogICAgICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpCiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSByZWZvY3VzSWZFbmFibGVkKCkgewogICAgICAgIGlmICghdGhpcy5lbmFibGVkIHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHRoaXMuZmFrZUVsZW1lbnQpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLnJlc2V0SW5wdXRWYWx1ZSgpCiAgICAgICAgdGhpcy5mYWtlRWxlbWVudC5mb2N1cygpCiAgICB9CgogICAgYWRkS2V5RG93bkxpc3RlbmVyKGxpc3RlbmVyOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQpIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBsaXN0ZW5lciBhcyBhbnkpCiAgICB9CiAgICBhZGRLZXlVcExpc3RlbmVyKGxpc3RlbmVyOiAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHZvaWQpIHsKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgbGlzdGVuZXIgYXMgYW55KQogICAgfQogICAgYWRkVGV4dExpc3RlbmVyKGxpc3RlbmVyOiAoZXZlbnQ6IFRleHRFdmVudCkgPT4gdm9pZCkgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibWwtdGV4dCIsIGxpc3RlbmVyIGFzIGFueSkKICAgIH0KICAgIGFkZEtleWJvYXJkTW9kZUxpc3RlbmVyKGxpc3RlbmVyOiAoZXZlbnQ6IEtleWJvYXJkTW9kZUV2ZW50KSA9PiB2b2lkKSB7CiAgICAgICAgdGhpcy5ldmVudFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtbC1rZXlib2FyZG1vZGUiLCBsaXN0ZW5lciBhcyBhbnkpCiAgICB9CiAgICBhZGRLZXlib2FyZE1vZGVXaWxsQ2hhbmdlTGlzdGVuZXIobGlzdGVuZXI6IChldmVudDogS2V5Ym9hcmRNb2RlV2lsbENoYW5nZUV2ZW50KSA9PiB2b2lkKSB7CiAgICAgICAgdGhpcy5ldmVudFRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJtbC1rZXlib2FyZG1vZGV3aWxsY2hhbmdlIiwgbGlzdGVuZXIgYXMgYW55KQogICAgfQoKICAgIC8vIC0tIEV2ZW50cwogICAgcHJpdmF0ZSByZXNldElucHV0VmFsdWUoKSB7CiAgICAgICAgdGhpcy5mYWtlRWxlbWVudC52YWx1ZSA9IEtFWUJPQVJEX1NFTlRJTkVMCiAgICAgICAgdGhpcy5mYWtlRWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShLRVlCT0FSRF9TRU5USU5FTC5sZW5ndGgsIEtFWUJPQVJEX1NFTlRJTkVMLmxlbmd0aCkKICAgIH0KICAgIHByaXZhdGUgZGlzcGF0Y2hUZXh0KHRleHQ6IHN0cmluZykgewogICAgICAgIGNvbnN0IGN1c3RvbUV2ZW50OiBUZXh0RXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoIm1sLXRleHQiLCB7CiAgICAgICAgICAgIGRldGFpbDogeyB0ZXh0IH0KICAgICAgICB9KQoKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQoY3VzdG9tRXZlbnQpCiAgICB9CiAgICBwcml2YXRlIGRpc3BhdGNoS2V5KGNvZGU6IHN0cmluZykgewogICAgICAgIGNvbnN0IGtleURvd24gPSBuZXcgS2V5Ym9hcmRFdmVudCgia2V5ZG93biIsIHsgY29kZSB9KQogICAgICAgIGNvbnN0IGtleVVwID0gbmV3IEtleWJvYXJkRXZlbnQoImtleXVwIiwgeyBjb2RlIH0pCgogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChrZXlEb3duKQogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChrZXlVcCkKICAgIH0KICAgIHByaXZhdGUgZGlzcGF0Y2hUZXh0V2l0aExpbmVCcmVha3ModGV4dDogc3RyaW5nKSB7CiAgICAgICAgY29uc3QgcGFydHMgPSB0ZXh0LnNwbGl0KC9cclxufFxyfFxuLykKICAgICAgICBwYXJ0cy5mb3JFYWNoKChwYXJ0LCBpbmRleCkgPT4gewogICAgICAgICAgICBpZiAocGFydCkgewogICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRjaFRleHQocGFydCkKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaW5kZXggPCBwYXJ0cy5sZW5ndGggLSAxKSB7CiAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoS2V5KCJFbnRlciIpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgfQogICAgcHJpdmF0ZSBleHRyYWN0SW5zZXJ0ZWRUZXh0KCk6IHN0cmluZyB7CiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmZha2VFbGVtZW50LnZhbHVlCiAgICAgICAgaWYgKHZhbHVlID09IEtFWUJPQVJEX1NFTlRJTkVMKSB7CiAgICAgICAgICAgIHJldHVybiAiIgogICAgICAgIH0KICAgICAgICBpZiAodmFsdWUuc3RhcnRzV2l0aChLRVlCT0FSRF9TRU5USU5FTCkpIHsKICAgICAgICAgICAgcmV0dXJuIHZhbHVlLnNsaWNlKEtFWUJPQVJEX1NFTlRJTkVMLmxlbmd0aCkKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlLmVuZHNXaXRoKEtFWUJPQVJEX1NFTlRJTkVMKSkgewogICAgICAgICAgICByZXR1cm4gdmFsdWUuc2xpY2UoMCwgLUtFWUJPQVJEX1NFTlRJTkVMLmxlbmd0aCkKICAgICAgICB9CiAgICAgICAgaWYgKHZhbHVlLmluY2x1ZGVzKEtFWUJPQVJEX1NFTlRJTkVMKSkgewogICAgICAgICAgICByZXR1cm4gdmFsdWUucmVwbGFjZShLRVlCT0FSRF9TRU5USU5FTCwgIiIpCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gdmFsdWUKICAgIH0KICAgIHByaXZhdGUgb25Db21wb3NpdGlvbkVuZCgpIHsKICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5leHRyYWN0SW5zZXJ0ZWRUZXh0KCkKICAgICAgICBpZiAodGV4dCkgewogICAgICAgICAgICB0aGlzLmRpc3BhdGNoVGV4dFdpdGhMaW5lQnJlYWtzKHRleHQpCiAgICAgICAgfQoKICAgICAgICB0aGlzLnJlc2V0SW5wdXRWYWx1ZSgpCiAgICB9CiAgICBwcml2YXRlIG9uS2V5SW5wdXQoZXZlbnQ6IEV2ZW50KSB7CiAgICAgICAgaWYgKCEoZXZlbnQgaW5zdGFuY2VvZiBJbnB1dEV2ZW50KSkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgaWYgKGV2ZW50LmlzQ29tcG9zaW5nKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgaWYgKGV2ZW50LmlucHV0VHlwZSA9PSAiaW5zZXJ0TGluZUJyZWFrIiB8fCBldmVudC5pbnB1dFR5cGUgPT0gImluc2VydFBhcmFncmFwaCIpIHsKICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEtleSgiRW50ZXIiKQogICAgICAgIH0gZWxzZSBpZiAoKGV2ZW50LmlucHV0VHlwZSA9PSAiaW5zZXJ0VGV4dCIgfHwgZXZlbnQuaW5wdXRUeXBlID09ICJpbnNlcnRGcm9tUGFzdGUiIHx8IGV2ZW50LmlucHV0VHlwZSA9PSAiaW5zZXJ0UmVwbGFjZW1lbnRUZXh0IikgJiYgZXZlbnQuZGF0YSAhPSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hUZXh0V2l0aExpbmVCcmVha3MoZXZlbnQuZGF0YSkKICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmlucHV0VHlwZSA9PSAiZGVsZXRlQ29udGVudEJhY2t3YXJkIiB8fCBldmVudC5pbnB1dFR5cGUgPT0gImRlbGV0ZUJ5Q3V0IikgewogICAgICAgICAgICB0aGlzLmRpc3BhdGNoS2V5KCJCYWNrc3BhY2UiKQogICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuaW5wdXRUeXBlID09ICJkZWxldGVDb250ZW50Rm9yd2FyZCIpIHsKICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEtleSgiRGVsZXRlIikKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCB0ZXh0ID0gdGhpcy5leHRyYWN0SW5zZXJ0ZWRUZXh0KCkKICAgICAgICAgICAgaWYgKHRleHQpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hUZXh0V2l0aExpbmVCcmVha3ModGV4dCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gUmVwb3B1bGF0ZSB0aGUgaW5wdXQgc28gdGhhdCB0aGUgZGVsZXRlQ29udGVudCBjb21tYW5kcyB3aWxsIHdvcmsKICAgICAgICB0aGlzLnJlc2V0SW5wdXRWYWx1ZSgpCiAgICB9Cn0K"},{"path":"web/stream.html","sha256":"9e24ea5e5e31d0ce53b6410ac45fd21c99047b87c540dbce0ff786a9dda9540e","contentBase64":"PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIiBjbGFzcz0ic3RyZWFtIG5vdHJhbnNsYXRlIj4KCjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiIC8+CiAgICA8bWV0YSBuYW1lPSJnb29nbGUiIGNvbnRlbnQ9Im5vdHJhbnNsYXRlIiAvPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiCiAgICAgICAgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9bm8sIGludGVyYWN0aXZlLXdpZGdldHM9b3ZlcmxheXMtY29udGVudCIgLz4KICAgIDx0aXRsZT5TdHJlYW08L3RpdGxlPgogICAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSJyZXNvdXJjZXMvbW9vbmxpZ2h0LnN2ZyIgc2l6ZXM9ImFueSIgdHlwZT0iaW1hZ2Uvc3ZnK3htbCI+CgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJzdHlsZXMvc3RhbmRhcmQuY3NzIiBpZD0ic3R5bGUiPgogICAgPHNjcmlwdCB0eXBlPSJtb2R1bGUiIHNyYz0ic3R5bGVzL2luZGV4LmpzIj48L3NjcmlwdD4KCiAgICA8c2NyaXB0IHR5cGU9Im1vZHVsZSIgc3JjPSJzdHJlYW0uanMiIGRlZmVyPjwvc2NyaXB0PgoKICAgIDxzY3JpcHQ+CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgY29uc3QgcmF3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oIm1sU2V0dGluZ3MiKTsKICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gcmF3ID8gSlNPTi5wYXJzZShyYXcpIDogbnVsbDsKICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2UgPSBwYXJzZWQgJiYgKHBhcnNlZC5sYW5ndWFnZSA9PT0gInpoLUNOIiB8fCBwYXJzZWQubGFuZ3VhZ2UgPT09ICJ6aCIgfHwgcGFyc2VkLmxhbmd1YWdlID09PSAiemhfQ04iKQogICAgICAgICAgICAgICAgPyAiemgtQ04iCiAgICAgICAgICAgICAgICA6ICJlbiI7CiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gbGFuZ3VhZ2U7CiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC50cmFuc2xhdGUgPSBmYWxzZTsKICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm5vdHJhbnNsYXRlIik7CiAgICAgICAgfSBjYXRjaCAoX2VycikgeyB9CiAgICA8L3NjcmlwdD4KPC9oZWFkPgoKPGJvZHkgY2xhc3M9InN0cmVhbSI+CiAgICA8IS0tIE1vZGFsIC0tPgogICAgPGRpdiBpZD0ibW9kYWwtb3ZlcmxheSIgY2xhc3M9Im1vZGFsLWJhY2tncm91bmQgbW9kYWwtZGlzYWJsZWQiPgogICAgICAgIDwhLS0gTW9kYWwgQ29udGVudCAtLT4KICAgICAgICA8ZGl2IGlkPSJtb2RhbC1wYXJlbnQiIGNsYXNzPSJtb2RhbC1jb250ZW50Ij4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gU2lkZWJhciAtLT4KICAgIDxkaXYgY2xhc3M9InNpZGViYXItb3ZlcmxheSBwcmV2ZW50LXN0YXJ0LXRyYW5zaXRpb24iIGlkPSJzaWRlYmFyLXJvb3QiPgogICAgICAgIDxkaXYgY2xhc3M9InNpZGViYXItYmFja2dyb3VuZCBwcmV2ZW50LXN0YXJ0LXRyYW5zaXRpb24iPgogICAgICAgICAgICA8YnV0dG9uIGlkPSJzaWRlYmFyLWJ1dHRvbiIgY2xhc3M9InNpZGViYXItYnV0dG9uIj48aW1nIHNyYz0icmVzb3VyY2VzL2Fycm93X2xlZnQuc3ZnIgogICAgICAgICAgICAgICAgICAgIGNsYXNzPSJzaWRlYmFyLWJ1dHRvbi1pbWFnZSBwcmV2ZW50LXN0YXJ0LXRyYW5zaXRpb24iIC8+PC9idXR0b24+CiAgICAgICAgICAgIDxkaXYgaWQ9InNpZGViYXItcGFyZW50IiBjbGFzcz0ic2lkZWJhci1jb250ZW50Ij4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8IS0tIE5vdGlmaWNhdGlvbiAtLT4KICAgIDxkaXYgaWQ9Im5vdGlmaWNhdGlvbi1saXN0Ij4KICAgIDwvZGl2PgoKICAgIDwhLS0gQSBkdW1teSBlbGVtZW50IGZvciBjYXB0dXJpbmcgaW5wdXRzIC0tPgogICAgPGRpdiBpZD0iaW5wdXQiIHRhYmluZGV4PSIwIj48L2Rpdj4KCiAgICA8IS0tIE1haW4gQXBwIFZpZXcgLS0+CiAgICA8ZGl2IGlkPSJyb290Ij4KICAgIDwvZGl2PgoKPC9ib2R5PgoKPC9odG1sPg=="},{"path":"web/stream.ts","sha256":"bd7b506ec38deb2026fb87aafc1b2dc071beb36da98750953a89f983a1e78ca6","contentBase64":"aW1wb3J0ICIuL3BvbHlmaWxsL2luZGV4LmpzIgppbXBvcnQgeyBBcGksIGFwaUdldFJvbGUsIGdldEFwaSB9IGZyb20gIi4vYXBpLmpzIjsKaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAiLi9jb21wb25lbnQvaW5kZXguanMiOwppbXBvcnQgeyBzaG93Tm90aWZpY2F0aW9uIH0gZnJvbSAiLi9jb21wb25lbnQvbm90aWZpY2F0aW9uLmpzIjsKaW1wb3J0IHsgSW5mb0V2ZW50LCBTdHJlYW0gfSBmcm9tICIuL3N0cmVhbS9pbmRleC5qcyIKaW1wb3J0IHsgZ2V0TW9kYWxCYWNrZ3JvdW5kLCBNb2RhbCwgc2hvd01lc3NhZ2UsIHNob3dNb2RhbCB9IGZyb20gIi4vY29tcG9uZW50L21vZGFsL2luZGV4LmpzIjsKaW1wb3J0IHsgZ2V0U2lkZWJhclJvb3QsIHNldFNpZGViYXIsIHNldFNpZGViYXJFeHRlbmRlZCwgc2V0U2lkZWJhclN0eWxlLCBTaWRlYmFyIH0gZnJvbSAiLi9jb21wb25lbnQvc2lkZWJhci9pbmRleC5qcyI7CmltcG9ydCB7IGRlZmF1bHRTdHJlYW1JbnB1dENvbmZpZywgTW91c2VNb2RlLCBTY3JlZW5LZXlib2FyZFNldFZpc2libGVFdmVudCwgU3RyZWFtSW5wdXRDb25maWcgfSBmcm9tICIuL3N0cmVhbS9pbnB1dC5qcyI7CmltcG9ydCB7IGdldExvY2FsU3RyZWFtU2V0dGluZ3MsIFNldHRpbmdzIH0gZnJvbSAiLi9jb21wb25lbnQvc2V0dGluZ3NfbWVudS5qcyI7CmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gIi4vY29tcG9uZW50L2lucHV0LmpzIjsKaW1wb3J0IHsgRGV0YWlsZWRSb2xlLCBMb2dNZXNzYWdlVHlwZSwgU3RyZWFtQ2FwYWJpbGl0aWVzLCBTdHJlYW1LZXlzLCBTdHJlYW1QZXJtaXNzaW9ucyB9IGZyb20gIi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgS2V5Ym9hcmRNb2RlRXZlbnQsIEtleWJvYXJkTW9kZVdpbGxDaGFuZ2VFdmVudCwgU2NyZWVuS2V5Ym9hcmQsIFRleHRFdmVudCB9IGZyb20gIi4vc2NyZWVuX2tleWJvYXJkLmpzIjsKaW1wb3J0IHsgRm9ybU1vZGFsIH0gZnJvbSAiLi9jb21wb25lbnQvbW9kYWwvZm9ybS5qcyI7CmltcG9ydCB7IHN0cmVhbVN0YXRzVG9UZXh0IH0gZnJvbSAiLi9zdHJlYW0vc3RhdHMuanMiOwppbXBvcnQgeyBhZG9wdFJvbGVEZWZhdWx0TGFuZ3VhZ2UsIGdldEN1cnJlbnRMYW5ndWFnZSwgZ2V0VHJhbnNsYXRpb25zIH0gZnJvbSAiLi9pMThuLmpzIjsKaW1wb3J0IHsgcmVxdWVzdEtleWJvYXJkTG9jayB9IGZyb20gIi4vaWZyYW1lLmpzIjsKCmxldCBJID0gZ2V0VHJhbnNsYXRpb25zKGdldEN1cnJlbnRMYW5ndWFnZSgpKQoKYXN5bmMgZnVuY3Rpb24gc3RhcnRBcHAoKSB7CiAgICBjb25zdCBhcGkgPSBhd2FpdCBnZXRBcGkoKQoKICAgIGNvbnN0IGJvb3RzdHJhcFJvbGUgPSBhd2FpdCBhcGlHZXRSb2xlKGFwaSwgeyBpZDogbnVsbCB9KQogICAgYWRvcHRSb2xlRGVmYXVsdExhbmd1YWdlKGJvb3RzdHJhcFJvbGUucm9sZS5kZWZhdWx0X3NldHRpbmdzKQogICAgSSA9IGdldFRyYW5zbGF0aW9ucyhnZXRDdXJyZW50TGFuZ3VhZ2UoKSkKCiAgICBjb25zdCByb290RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyb290Iik7CiAgICBpZiAocm9vdEVsZW1lbnQgPT0gbnVsbCkgewogICAgICAgIHNob3dOb3RpZmljYXRpb24oSS5zdHJlYW0ucm9vdE5vdEZvdW5kLCAiZXJyb3IiKQogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBHZXQgSG9zdCBhbmQgQXBwIHZpYSBRdWVyeQogICAgY29uc3QgcXVlcnlQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGxvY2F0aW9uLnNlYXJjaCkKCiAgICBjb25zdCBob3N0SWRTdHIgPSBxdWVyeVBhcmFtcy5nZXQoImhvc3RJZCIpCiAgICBjb25zdCBhcHBJZFN0ciA9IHF1ZXJ5UGFyYW1zLmdldCgiYXBwSWQiKQogICAgaWYgKGhvc3RJZFN0ciA9PSBudWxsIHx8IGFwcElkU3RyID09IG51bGwpIHsKICAgICAgICBhd2FpdCBzaG93TWVzc2FnZShJLnN0cmVhbS5taXNzaW5nSG9zdE9yQXBwKQoKICAgICAgICB3aW5kb3cuY2xvc2UoKQogICAgICAgIHJldHVybgogICAgfQogICAgY29uc3QgaG9zdElkID0gTnVtYmVyLnBhcnNlSW50KGhvc3RJZFN0cikKICAgIGNvbnN0IGFwcElkID0gTnVtYmVyLnBhcnNlSW50KGFwcElkU3RyKQoKICAgIC8vIGV2ZW50IHByb3BhZ2F0aW9uIG9uIG92ZXJsYXlzCiAgICBjb25zdCBzaWRlYmFyUm9vdCA9IGdldFNpZGViYXJSb290KCkKICAgIGlmIChzaWRlYmFyUm9vdCkgewogICAgICAgIHN0b3BQcm9wYWdhdGlvbk9uKHNpZGViYXJSb290KQogICAgfQoKICAgIGNvbnN0IG1vZGFsQmFja2dyb3VuZCA9IGdldE1vZGFsQmFja2dyb3VuZCgpCiAgICBpZiAobW9kYWxCYWNrZ3JvdW5kKSB7CiAgICAgICAgc3RvcFByb3BhZ2F0aW9uT24obW9kYWxCYWNrZ3JvdW5kKQogICAgfQoKICAgIC8vIFN0YXJ0IGFuZCBNb3VudCBBcHAKICAgIGNvbnN0IGFwcCA9IG5ldyBWaWV3ZXJBcHAoYXBpLCBob3N0SWQsIGFwcElkLCBib290c3RyYXBSb2xlLnJvbGUpCiAgICBhcHAubW91bnQocm9vdEVsZW1lbnQpOwoKICAgICh3aW5kb3cgYXMgYW55KVsiYXBwIl0gPSBhcHAKfQoKLy8gUHJldmVudCBzdGFydGluZyB0cmFuc2l0aW9uCndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gewogICAgLy8gTm90ZTogZWxlbWVudHMgaXMgYSBsaXZlIGFycmF5CiAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoInByZXZlbnQtc3RhcnQtdHJhbnNpdGlvbiIpCiAgICB3aGlsZSAoZWxlbWVudHMubGVuZ3RoID4gMCkgewogICAgICAgIGVsZW1lbnRzLml0ZW0oMCk/LmNsYXNzTGlzdC5yZW1vdmUoInByZXZlbnQtc3RhcnQtdHJhbnNpdGlvbiIpCiAgICB9Cn0pCgpzdGFydEFwcCgpCgpjbGFzcyBWaWV3ZXJBcHAgaW1wbGVtZW50cyBDb21wb25lbnQgewogICAgcHJpdmF0ZSBhcGk6IEFwaQoKICAgIHByaXZhdGUgc2lkZWJhcjogVmlld2VyU2lkZWJhcgoKICAgIHByaXZhdGUgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKCiAgICBwcml2YXRlIHN0YXRzRGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikKICAgIHByaXZhdGUgbG9jYWxUb3VjaEN1cnNvckRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCiAgICBwcml2YXRlIHN0cmVhbTogU3RyZWFtCgogICAgcHJpdmF0ZSBpbnB1dENvbmZpZzogU3RyZWFtSW5wdXRDb25maWcgPSBkZWZhdWx0U3RyZWFtSW5wdXRDb25maWcoKQogICAgcHJpdmF0ZSBwcmV2aW91c01vdXNlTW9kZTogTW91c2VNb2RlCiAgICBwcml2YXRlIGF1dG9FbnRlckZ1bGxzY3JlZW5PblN0YXJ0OiBib29sZWFuID0gZmFsc2UKICAgIHByaXZhdGUgcGVuZGluZ0F1dG9GdWxsc2NyZWVuUHJvbXB0OiBib29sZWFuID0gZmFsc2UKICAgIHByaXZhdGUgZnVsbHNjcmVlblByb21wdFNob3duOiBib29sZWFuID0gZmFsc2UKICAgIHByaXZhdGUgZnVsbHNjcmVlbk9uTmV4dEludGVyYWN0aW9uQXJtZWQ6IGJvb2xlYW4gPSBmYWxzZQogICAgcHJpdmF0ZSBwZW5kaW5nQXV0b0Z1bGxzY3JlZW5Ub3VjaEdlc3R1cmU6IGJvb2xlYW4gPSBmYWxzZQogICAgcHJpdmF0ZSBwZW5kaW5nQXV0b0Z1bGxzY3JlZW5Nb3VzZUdlc3R1cmU6IGJvb2xlYW4gPSBmYWxzZQogICAgcHJpdmF0ZSBtYW51YWxGdWxsc2NyZWVuRXhpdFJlcXVlc3RlZDogYm9vbGVhbiA9IGZhbHNlCiAgICBwcml2YXRlIHRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZDogYm9vbGVhbiA9IGZhbHNlCiAgICBwcml2YXRlIGhhc1Nob3duRnVsbHNjcmVlbkVzY2FwZVdhcm5pbmcgPSBmYWxzZQogICAgcHJpdmF0ZSBrZXlib2FyZFZpZXdwb3J0QmFzZWxpbmVIZWlnaHQ6IG51bWJlciB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHN0cmVhbVZpZGVvVG9wT2Zmc2V0UHg6IG51bWJlciA9IDAKCiAgICBjb25zdHJ1Y3RvcihhcGk6IEFwaSwgaG9zdElkOiBudW1iZXIsIGFwcElkOiBudW1iZXIsIGJvb3RzdHJhcFJvbGU6IERldGFpbGVkUm9sZSkgewogICAgICAgIHRoaXMuYXBpID0gYXBpCgogICAgICAgIGNvbnN0IHNldHRpbmdzID0gZ2V0TG9jYWxTdHJlYW1TZXR0aW5ncyhib290c3RyYXBSb2xlLmRlZmF1bHRfc2V0dGluZ3MpCiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmlucHV0Q29uZmlnLCB7CiAgICAgICAgICAgIG1vdXNlTW9kZTogc2V0dGluZ3MubW91c2VNb2RlLAogICAgICAgICAgICBtb3VzZVNjcm9sbE1vZGU6IHNldHRpbmdzLm1vdXNlU2Nyb2xsTW9kZSwKICAgICAgICAgICAgdG91Y2hNb2RlOiBzZXR0aW5ncy50b3VjaE1vZGUsCiAgICAgICAgICAgIGxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHk6IHNldHRpbmdzLmxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHksCiAgICAgICAgICAgIGNvbnRyb2xsZXJDb25maWc6IHNldHRpbmdzLmNvbnRyb2xsZXJDb25maWcKICAgICAgICB9KQoKICAgICAgICAvLyBDb25maWd1cmUgc2lkZWJhcgogICAgICAgIHRoaXMuc2lkZWJhciA9IG5ldyBWaWV3ZXJTaWRlYmFyKHRoaXMpCiAgICAgICAgc2V0U2lkZWJhcih0aGlzLnNpZGViYXIpCgogICAgICAgIC8vIENvbmZpZ3VyZSBzdGF0cyBlbGVtZW50CiAgICAgICAgdGhpcy5zdGF0c0Rpdi5oaWRkZW4gPSB0cnVlCiAgICAgICAgdGhpcy5zdGF0c0Rpdi5jbGFzc0xpc3QuYWRkKCJ2aWRlby1zdGF0cyIpCiAgICAgICAgdGhpcy5sb2NhbFRvdWNoQ3Vyc29yRGl2LmhpZGRlbiA9IHRydWUKICAgICAgICB0aGlzLmxvY2FsVG91Y2hDdXJzb3JEaXYuY2xhc3NMaXN0LmFkZCgibG9jYWwtdG91Y2gtY3Vyc29yIikKCiAgICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgICAgICAvLyBVcGRhdGUgc3RhdHMgZGlzcGxheSBldmVyeSAxMDBtcwogICAgICAgICAgICBjb25zdCBzdGF0cyA9IHRoaXMuZ2V0U3RyZWFtKCk/LmdldFN0YXRzKCkKICAgICAgICAgICAgaWYgKHN0YXRzICYmIHN0YXRzLmlzRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGl2LmhpZGRlbiA9IGZhbHNlCgogICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IHN0cmVhbVN0YXRzVG9UZXh0KHN0YXRzLmdldEN1cnJlbnRTdGF0cygpKQogICAgICAgICAgICAgICAgdGhpcy5zdGF0c0Rpdi5pbm5lclRleHQgPSB0ZXh0CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGl2LmhpZGRlbiA9IHRydWUKICAgICAgICAgICAgfQogICAgICAgIH0sIDEwMCkKICAgICAgICB0aGlzLmRpdi5hcHBlbmRDaGlsZCh0aGlzLnN0YXRzRGl2KQogICAgICAgIHRoaXMuZGl2LmFwcGVuZENoaWxkKHRoaXMubG9jYWxUb3VjaEN1cnNvckRpdikKCiAgICAgICAgLy8gQ29uZmlndXJlIHN0cmVhbQogICAgICAgIHRoaXMucHJldmlvdXNNb3VzZU1vZGUgPSB0aGlzLmlucHV0Q29uZmlnLm1vdXNlTW9kZQoKICAgICAgICBjb25zdCBicm93c2VyV2lkdGggPSBNYXRoLm1heChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgMCwgd2luZG93LmlubmVyV2lkdGggfHwgMCkKICAgICAgICBjb25zdCBicm93c2VySGVpZ2h0ID0gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCB8fCAwLCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgMCkKCiAgICAgICAgdGhpcy5hdXRvRW50ZXJGdWxsc2NyZWVuT25TdGFydCA9IHNldHRpbmdzLmVudGVyRnVsbHNjcmVlbk9uU3RyZWFtU3RhcnQKICAgICAgICB0aGlzLnRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZCA9IHNldHRpbmdzLnRvZ2dsZUZ1bGxzY3JlZW5XaXRoS2V5YmluZAoKICAgICAgICB0aGlzLnN0cmVhbSA9IG5ldyBTdHJlYW0odGhpcy5hcGksIGhvc3RJZCwgYXBwSWQsIHNldHRpbmdzLCBbYnJvd3NlcldpZHRoLCBicm93c2VySGVpZ2h0XSwgYm9vdHN0cmFwUm9sZS5wZXJtaXNzaW9ucykKICAgICAgICB0aGlzLnN0YXJ0U3RyZWFtKGhvc3RJZCwgYXBwSWQsIGJvb3RzdHJhcFJvbGUucGVybWlzc2lvbnMsIHNldHRpbmdzLCBbYnJvd3NlcldpZHRoLCBicm93c2VySGVpZ2h0XSkKCiAgICAgICAgLy8gQ29uZmlndXJlIGlucHV0CiAgICAgICAgdGhpcy5hZGRMaXN0ZW5lcnMoZG9jdW1lbnQpCiAgICAgICAgdGhpcy5hZGRMaXN0ZW5lcnMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0IikgYXMgSFRNTERpdkVsZW1lbnQpCgogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJibHVyIiwgKCkgPT4gewogICAgICAgICAgICB0aGlzLnN0cmVhbS5nZXRJbnB1dCgpLnJhaXNlQWxsS2V5cygpCiAgICAgICAgfSkKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIiwgKCkgPT4gewogICAgICAgICAgICBpZiAoZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlICE9PSAidmlzaWJsZSIpIHsKICAgICAgICAgICAgICAgIHRoaXMuc3RyZWFtLmdldElucHV0KCkucmFpc2VBbGxLZXlzKCkKICAgICAgICAgICAgfQogICAgICAgIH0pCgogICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsb2NrY2hhbmdlIiwgdGhpcy5vblBvaW50ZXJMb2NrQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZnVsbHNjcmVlbmNoYW5nZSIsIHRoaXMub25GdWxsc2NyZWVuQ2hhbmdlLmJpbmQodGhpcykpCgogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJnYW1lcGFkY29ubmVjdGVkIiwgdGhpcy5vbkdhbWVwYWRDb25uZWN0LmJpbmQodGhpcykpCiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImdhbWVwYWRkaXNjb25uZWN0ZWQiLCB0aGlzLm9uR2FtZXBhZERpc2Nvbm5lY3QuYmluZCh0aGlzKSkKICAgICAgICAvLyBDb25uZWN0IGFsbCBnYW1lcGFkcwogICAgICAgIGZvciAoY29uc3QgZ2FtZXBhZCBvZiBuYXZpZ2F0b3IuZ2V0R2FtZXBhZHMoKSkgewogICAgICAgICAgICBpZiAoZ2FtZXBhZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICB0aGlzLm9uR2FtZXBhZEFkZChnYW1lcGFkKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSBhZGRMaXN0ZW5lcnMoZWxlbWVudDogR2xvYmFsRXZlbnRIYW5kbGVycykgewogICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsIHRoaXMub25LZXlEb3duLmJpbmQodGhpcyksIHsgcGFzc2l2ZTogZmFsc2UgfSkKICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdGhpcy5vbktleVVwLmJpbmQodGhpcyksIHsgcGFzc2l2ZTogZmFsc2UgfSkKICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIiwgdGhpcy5vblBhc3RlLmJpbmQodGhpcykpCgogICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5vbk1vdXNlQnV0dG9uRG93bi5iaW5kKHRoaXMpLCB7IHBhc3NpdmU6IGZhbHNlIH0pCiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgdGhpcy5vbk1vdXNlQnV0dG9uVXAuYmluZCh0aGlzKSwgeyBwYXNzaXZlOiBmYWxzZSB9KQogICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5vbk1vdXNlTW92ZS5iaW5kKHRoaXMpLCB7IHBhc3NpdmU6IGZhbHNlIH0pCiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsIHRoaXMub25Nb3VzZVdoZWVsLmJpbmQodGhpcyksIHsgcGFzc2l2ZTogZmFsc2UgfSkKICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcy5vbkNvbnRleHRNZW51LmJpbmQodGhpcyksIHsgcGFzc2l2ZTogZmFsc2UgfSkKCiAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgdGhpcy5vblRvdWNoU3RhcnQuYmluZCh0aGlzKSwgeyBwYXNzaXZlOiBmYWxzZSB9KQogICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLCB0aGlzLm9uVG91Y2hFbmQuYmluZCh0aGlzKSwgeyBwYXNzaXZlOiBmYWxzZSB9KQogICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLCB0aGlzLm9uVG91Y2hDYW5jZWwuYmluZCh0aGlzKSwgeyBwYXNzaXZlOiBmYWxzZSB9KQogICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIiwgdGhpcy5vblRvdWNoTW92ZS5iaW5kKHRoaXMpLCB7IHBhc3NpdmU6IGZhbHNlIH0pCiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyBzdGFydFN0cmVhbShob3N0SWQ6IG51bWJlciwgYXBwSWQ6IG51bWJlciwgcGVybWlzc2lvbnM6IFN0cmVhbVBlcm1pc3Npb25zLCBzZXR0aW5nczogU2V0dGluZ3MsIGJyb3dzZXJTaXplOiBbbnVtYmVyLCBudW1iZXJdKSB7CiAgICAgICAgc2V0U2lkZWJhclN0eWxlKHsKICAgICAgICAgICAgZWRnZTogc2V0dGluZ3Muc2lkZWJhckVkZ2UsCiAgICAgICAgfSkKCiAgICAgICAgLy8gQWRkIGFwcCBpbmZvIGxpc3RlbmVyCiAgICAgICAgdGhpcy5zdHJlYW0uYWRkSW5mb0xpc3RlbmVyKHRoaXMub25JbmZvLmJpbmQodGhpcykpCgogICAgICAgIC8vIENyZWF0ZSBjb25uZWN0aW9uIGluZm8gbW9kYWwKICAgICAgICBjb25zdCBjb25uZWN0aW9uSW5mbyA9IG5ldyBDb25uZWN0aW9uSW5mb01vZGFsKCkKICAgICAgICBjb25zdCBjb25uZWN0aW9uSW5mb0xpc3RlbmVyID0gY29ubmVjdGlvbkluZm8ub25JbmZvLmJpbmQoY29ubmVjdGlvbkluZm8pCiAgICAgICAgdGhpcy5zdHJlYW0uYWRkSW5mb0xpc3RlbmVyKGNvbm5lY3Rpb25JbmZvTGlzdGVuZXIpCiAgICAgICAgdm9pZCBzaG93TW9kYWwoY29ubmVjdGlvbkluZm8pLnRoZW4oYXN5bmMgKCkgPT4gewogICAgICAgICAgICB0aGlzLnN0cmVhbS5yZW1vdmVJbmZvTGlzdGVuZXIoY29ubmVjdGlvbkluZm9MaXN0ZW5lcikKICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0VudGVyRnVsbHNjcmVlbk9uU3RhcnQgJiYgdGhpcy5wZW5kaW5nQXV0b0Z1bGxzY3JlZW5Qcm9tcHQgJiYgIXRoaXMuZnVsbHNjcmVlblByb21wdFNob3duICYmICF0aGlzLmlzRnVsbHNjcmVlbigpKSB7CiAgICAgICAgICAgICAgICB0aGlzLmZ1bGxzY3JlZW5Qcm9tcHRTaG93biA9IHRydWUKICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ0F1dG9GdWxsc2NyZWVuUHJvbXB0ID0gZmFsc2UKICAgICAgICAgICAgICAgIHRoaXMuYXJtRnVsbHNjcmVlbk9uTmV4dEludGVyYWN0aW9uKCkKICAgICAgICAgICAgfQogICAgICAgIH0pCgogICAgICAgIC8vIFN0YXJ0IGFuaW1hdGlvbiBmcmFtZSBsb29wCiAgICAgICAgdGhpcy5vblRvdWNoVXBkYXRlKCkKICAgICAgICB0aGlzLm9uR2FtZXBhZFVwZGF0ZSgpCgogICAgICAgIHRoaXMuc3RyZWFtLmdldElucHV0KCkuYWRkU2NyZWVuS2V5Ym9hcmRWaXNpYmxlRXZlbnQodGhpcy5vblNjcmVlbktleWJvYXJkU2V0VmlzaWJsZS5iaW5kKHRoaXMpKQoKICAgICAgICB0aGlzLnN0cmVhbS5tb3VudCh0aGlzLmRpdikKCiAgICAgICAgaWYgKHRoaXMuYXV0b0VudGVyRnVsbHNjcmVlbk9uU3RhcnQpIHsKICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0b0Z1bGxzY3JlZW5Qcm9tcHQgPSB0cnVlCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgb25JbmZvKGV2ZW50OiBJbmZvRXZlbnQpIHsKICAgICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGV0YWlsCgogICAgICAgIGlmIChkYXRhLnR5cGUgPT0gImFwcCIpIHsKICAgICAgICAgICAgY29uc3QgYXBwID0gZGF0YS5hcHAKCiAgICAgICAgICAgIGRvY3VtZW50LnRpdGxlID0gYFN0cmVhbTogJHthcHAudGl0bGV9YAogICAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09ICJjb25uZWN0aW9uQ29tcGxldGUiKSB7CiAgICAgICAgICAgIHRoaXMuc2lkZWJhci5vbkNhcGFiaWxpdGllc0NoYW5nZShkYXRhLmNhcGFiaWxpdGllcykKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBmb2N1c0lucHV0KCkgewogICAgICAgIGlmICh0aGlzLnN0cmVhbS5nZXRJbnB1dCgpLmdldEN1cnJlbnRQcmVkaWN0ZWRUb3VjaEFjdGlvbigpICE9ICJzY3JlZW5LZXlib2FyZCIgJiYgIXRoaXMuc2lkZWJhci5nZXRTY3JlZW5LZXlib2FyZCgpLmlzVmlzaWJsZSgpKSB7CiAgICAgICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIpIGFzIEhUTUxEaXZFbGVtZW50CiAgICAgICAgICAgIGlucHV0RWxlbWVudC5mb2N1cygpCiAgICAgICAgfQogICAgfQoKICAgIG9uVXNlckludGVyYWN0aW9uKCkgewogICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpCgogICAgICAgIHRoaXMuc3RyZWFtLmdldFZpZGVvUmVuZGVyZXIoKT8ub25Vc2VySW50ZXJhY3Rpb24oKQogICAgICAgIHRoaXMuc3RyZWFtLmdldEF1ZGlvUGxheWVyKCk/Lm9uVXNlckludGVyYWN0aW9uKCkKICAgIH0KICAgIHByaXZhdGUgYXJtRnVsbHNjcmVlbk9uTmV4dEludGVyYWN0aW9uKCkgewogICAgICAgIGlmICh0aGlzLmF1dG9FbnRlckZ1bGxzY3JlZW5PblN0YXJ0KSB7CiAgICAgICAgICAgIHRoaXMuZnVsbHNjcmVlbk9uTmV4dEludGVyYWN0aW9uQXJtZWQgPSB0cnVlCiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSBjb25zdW1lQXV0b0Z1bGxzY3JlZW5JbnRlcmFjdGlvbigpOiBib29sZWFuIHsKICAgICAgICBpZiAoIXRoaXMuZnVsbHNjcmVlbk9uTmV4dEludGVyYWN0aW9uQXJtZWQgfHwgdGhpcy5pc0Z1bGxzY3JlZW4oKSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICB9CgogICAgICAgIHRoaXMuZnVsbHNjcmVlbk9uTmV4dEludGVyYWN0aW9uQXJtZWQgPSBmYWxzZQogICAgICAgIHZvaWQgdGhpcy5yZXF1ZXN0RnVsbHNjcmVlbigpLnRoZW4oKCkgPT4gewogICAgICAgICAgICBpZiAoIXRoaXMuaXNGdWxsc2NyZWVuKCkpIHsKICAgICAgICAgICAgICAgIHRoaXMuYXJtRnVsbHNjcmVlbk9uTmV4dEludGVyYWN0aW9uKCkKICAgICAgICAgICAgfQogICAgICAgIH0pCiAgICAgICAgcmV0dXJuIHRydWUKICAgIH0KICAgIHByaXZhdGUgYmVnaW5BdXRvRnVsbHNjcmVlblRvdWNoR2VzdHVyZSgpOiBib29sZWFuIHsKICAgICAgICBpZiAoIXRoaXMuZnVsbHNjcmVlbk9uTmV4dEludGVyYWN0aW9uQXJtZWQgfHwgdGhpcy5pc0Z1bGxzY3JlZW4oKSkgewogICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICB9CgogICAgICAgIHRoaXMucGVuZGluZ0F1dG9GdWxsc2NyZWVuVG91Y2hHZXN0dXJlID0gdHJ1ZQogICAgICAgIHJldHVybiB0cnVlCiAgICB9CiAgICBwcml2YXRlIGNvbnN1bWVBdXRvRnVsbHNjcmVlblRvdWNoR2VzdHVyZSgpOiBib29sZWFuIHsKICAgICAgICBpZiAoIXRoaXMucGVuZGluZ0F1dG9GdWxsc2NyZWVuVG91Y2hHZXN0dXJlKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgIH0KCiAgICAgICAgdGhpcy5wZW5kaW5nQXV0b0Z1bGxzY3JlZW5Ub3VjaEdlc3R1cmUgPSBmYWxzZQogICAgICAgIHJldHVybiB0aGlzLmNvbnN1bWVBdXRvRnVsbHNjcmVlbkludGVyYWN0aW9uKCkKICAgIH0KICAgIHByaXZhdGUgb25TY3JlZW5LZXlib2FyZFNldFZpc2libGUoZXZlbnQ6IFNjcmVlbktleWJvYXJkU2V0VmlzaWJsZUV2ZW50KSB7CiAgICAgICAgY29uc29sZS5pbmZvKGV2ZW50LmRldGFpbCkKICAgICAgICBjb25zdCBzY3JlZW5LZXlib2FyZCA9IHRoaXMuc2lkZWJhci5nZXRTY3JlZW5LZXlib2FyZCgpCgogICAgICAgIGNvbnN0IG5ld1Nob3duID0gZXZlbnQuZGV0YWlsLnZpc2libGUKICAgICAgICBpZiAobmV3U2hvd24gIT0gc2NyZWVuS2V5Ym9hcmQuaXNWaXNpYmxlKCkpIHsKICAgICAgICAgICAgaWYgKG5ld1Nob3duKSB7CiAgICAgICAgICAgICAgICBzY3JlZW5LZXlib2FyZC5zaG93KCkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHNjcmVlbktleWJvYXJkLmhpZGUoKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIElucHV0CiAgICBnZXRJbnB1dENvbmZpZygpOiBTdHJlYW1JbnB1dENvbmZpZyB7CiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRDb25maWcKICAgIH0KICAgIHNldElucHV0Q29uZmlnKGNvbmZpZzogU3RyZWFtSW5wdXRDb25maWcpIHsKICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuaW5wdXRDb25maWcsIGNvbmZpZykKCiAgICAgICAgdGhpcy5zdHJlYW0uZ2V0SW5wdXQoKS5zZXRDb25maWcodGhpcy5pbnB1dENvbmZpZykKICAgICAgICB0aGlzLnJlbmRlckxvY2FsVG91Y2hDdXJzb3IoKQogICAgfQoKICAgIC8vIEtleWJvYXJkCiAgICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHsKICAgICAgICB0aGlzLm9uVXNlckludGVyYWN0aW9uKCkKCiAgICAgICAgY29uc29sZS5kZWJ1ZyhldmVudCkKICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQuY3RybEtleSAmJiBldmVudC5jb2RlID09ICJLZXlWIikgewogICAgICAgICAgICAvLyBXZSBhcmUgbGlrZWx5IHBhc3RpbmcgLT4gZG9uJ3Qgc2VuZCBrZXlzCiAgICAgICAgfSBlbHNlIGlmIChldmVudC5jb2RlID09ICJGMTEiKSB7CiAgICAgICAgICAgIC8vIEFsbG93IG1hbnVhbCBmdWxsc2NyZWVuCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICB0aGlzLnN0cmVhbS5nZXRJbnB1dCgpLm9uS2V5RG93bihldmVudCkKICAgICAgICB9CgogICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpCiAgICB9CgogICAgcHJpdmF0ZSBpc1RvZ2dsaW5nRnVsbHNjcmVlbldpdGhLZXliaW5kOiAid2FpdEZvckN0cmwiIHwgIm1ha2luZ0Z1bGxzY3JlZW4iIHwgIm5vbmUiID0gIm5vbmUiCiAgICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7CiAgICAgICAgdGhpcy5vblVzZXJJbnRlcmFjdGlvbigpCgogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgICAgICB0aGlzLnN0cmVhbS5nZXRJbnB1dCgpLm9uS2V5VXAoZXZlbnQpCiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkKCiAgICAgICAgaWYgKHRoaXMudG9nZ2xlRnVsbHNjcmVlbldpdGhLZXliaW5kICYmIHRoaXMuaXNUb2dnbGluZ0Z1bGxzY3JlZW5XaXRoS2V5YmluZCA9PSAibm9uZSIgJiYgZXZlbnQuY3RybEtleSAmJiBldmVudC5zaGlmdEtleSAmJiBldmVudC5jb2RlID09ICJLZXlJIikgewogICAgICAgICAgICB0aGlzLmlzVG9nZ2xpbmdGdWxsc2NyZWVuV2l0aEtleWJpbmQgPSAid2FpdEZvckN0cmwiCiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLmlzVG9nZ2xpbmdGdWxsc2NyZWVuV2l0aEtleWJpbmQgPT0gIndhaXRGb3JDdHJsIiAmJiAoZXZlbnQuY29kZSA9PSAiQ29udHJvbFJpZ2h0IiB8fCBldmVudC5jb2RlID09ICJDb250cm9sTGVmdCIpKSB7CiAgICAgICAgICAgIHRoaXMuaXNUb2dnbGluZ0Z1bGxzY3JlZW5XaXRoS2V5YmluZCA9ICJtYWtpbmdGdWxsc2NyZWVuIjsKCiAgICAgICAgICAgIChhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0Z1bGxzY3JlZW4oKSkgewogICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhpdFBvaW50ZXJMb2NrKCkKICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmV4aXRGdWxsc2NyZWVuKCkKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0RnVsbHNjcmVlbigpCiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZXF1ZXN0UG9pbnRlckxvY2soKQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHRoaXMuaXNUb2dnbGluZ0Z1bGxzY3JlZW5XaXRoS2V5YmluZCA9ICJub25lIgogICAgICAgICAgICB9KSgpCiAgICAgICAgfQogICAgfQoKICAgIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSB7CiAgICAgICAgdGhpcy5vblVzZXJJbnRlcmFjdGlvbigpCgogICAgICAgIHRoaXMuc3RyZWFtLmdldElucHV0KCkub25QYXN0ZShldmVudCkKCiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkKICAgIH0KCiAgICAvLyBNb3VzZQogICAgb25Nb3VzZUJ1dHRvbkRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHsKICAgICAgICBpZiAodGhpcy5jb25zdW1lQXV0b0Z1bGxzY3JlZW5JbnRlcmFjdGlvbigpKSB7CiAgICAgICAgICAgIHRoaXMucGVuZGluZ0F1dG9GdWxsc2NyZWVuTW91c2VHZXN0dXJlID0gdHJ1ZQogICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgdGhpcy5vblVzZXJJbnRlcmFjdGlvbigpCgogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgICAgICB0aGlzLnN0cmVhbS5nZXRJbnB1dCgpLm9uTW91c2VEb3duKGV2ZW50LCB0aGlzLmdldFN0cmVhbVJlY3QoKSk7CgogICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpCiAgICB9CiAgICBvbk1vdXNlQnV0dG9uVXAoZXZlbnQ6IE1vdXNlRXZlbnQpIHsKICAgICAgICBpZiAodGhpcy5wZW5kaW5nQXV0b0Z1bGxzY3JlZW5Nb3VzZUdlc3R1cmUpIHsKICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0b0Z1bGxzY3JlZW5Nb3VzZUdlc3R1cmUgPSBmYWxzZQogICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgdGhpcy5vblVzZXJJbnRlcmFjdGlvbigpCgogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgICAgICB0aGlzLnN0cmVhbS5nZXRJbnB1dCgpLm9uTW91c2VVcChldmVudCkKCiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkKICAgIH0KICAgIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7CiAgICAgICAgaWYgKHRoaXMucGVuZGluZ0F1dG9GdWxsc2NyZWVuTW91c2VHZXN0dXJlKSB7CiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgdGhpcy5zdHJlYW0uZ2V0SW5wdXQoKS5vbk1vdXNlTW92ZShldmVudCwgdGhpcy5nZXRTdHJlYW1SZWN0KCkpCgogICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpCiAgICB9CiAgICBvbk1vdXNlV2hlZWwoZXZlbnQ6IFdoZWVsRXZlbnQpIHsKICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgdGhpcy5zdHJlYW0uZ2V0SW5wdXQoKS5vbk1vdXNlV2hlZWwoZXZlbnQpCgogICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpCiAgICB9CiAgICBvbkNvbnRleHRNZW51KGV2ZW50OiBNb3VzZUV2ZW50KSB7CiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKQoKICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKQogICAgfQoKICAgIC8vIFRvdWNoCiAgICBvblRvdWNoU3RhcnQoZXZlbnQ6IFRvdWNoRXZlbnQpIHsKICAgICAgICBpZiAodGhpcy5iZWdpbkF1dG9GdWxsc2NyZWVuVG91Y2hHZXN0dXJlKCkpIHsKICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIHRoaXMub25Vc2VySW50ZXJhY3Rpb24oKQoKICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgdGhpcy5zdHJlYW0uZ2V0SW5wdXQoKS5vblRvdWNoU3RhcnQoZXZlbnQsIHRoaXMuZ2V0U3RyZWFtUmVjdCgpKQoKICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKQogICAgfQogICAgb25Ub3VjaEVuZChldmVudDogVG91Y2hFdmVudCkgewogICAgICAgIGlmICh0aGlzLmNvbnN1bWVBdXRvRnVsbHNjcmVlblRvdWNoR2VzdHVyZSgpKSB7CiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLm9uVXNlckludGVyYWN0aW9uKCkKCiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKQogICAgICAgIHRoaXMuc3RyZWFtLmdldElucHV0KCkub25Ub3VjaEVuZChldmVudCwgdGhpcy5nZXRTdHJlYW1SZWN0KCkpCgogICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpCiAgICB9CiAgICBvblRvdWNoQ2FuY2VsKGV2ZW50OiBUb3VjaEV2ZW50KSB7CiAgICAgICAgaWYgKHRoaXMucGVuZGluZ0F1dG9GdWxsc2NyZWVuVG91Y2hHZXN0dXJlKSB7CiAgICAgICAgICAgIHRoaXMucGVuZGluZ0F1dG9GdWxsc2NyZWVuVG91Y2hHZXN0dXJlID0gZmFsc2UKICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIHRoaXMucGVuZGluZ0F1dG9GdWxsc2NyZWVuVG91Y2hHZXN0dXJlID0gZmFsc2UKCiAgICAgICAgdGhpcy5vblVzZXJJbnRlcmFjdGlvbigpCgogICAgICAgIGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpCiAgICAgICAgdGhpcy5zdHJlYW0uZ2V0SW5wdXQoKS5vblRvdWNoQ2FuY2VsKGV2ZW50LCB0aGlzLmdldFN0cmVhbVJlY3QoKSkKCiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkKICAgIH0KICAgIG9uVG91Y2hVcGRhdGUoKSB7CiAgICAgICAgdGhpcy5zdHJlYW0uZ2V0SW5wdXQoKS5vblRvdWNoVXBkYXRlKHRoaXMuZ2V0U3RyZWFtUmVjdCgpKQogICAgICAgIHRoaXMudXBkYXRlS2V5Ym9hcmRWaWV3cG9ydFZpZGVvT2Zmc2V0KCkKICAgICAgICB0aGlzLnJlbmRlckxvY2FsVG91Y2hDdXJzb3IoKQoKICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMub25Ub3VjaFVwZGF0ZS5iaW5kKHRoaXMpKQogICAgfQogICAgb25Ub3VjaE1vdmUoZXZlbnQ6IFRvdWNoRXZlbnQpIHsKICAgICAgICBpZiAodGhpcy5wZW5kaW5nQXV0b0Z1bGxzY3JlZW5Ub3VjaEdlc3R1cmUpIHsKICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgICAgICB0aGlzLnN0cmVhbS5nZXRJbnB1dCgpLm9uVG91Y2hNb3ZlKGV2ZW50LCB0aGlzLmdldFN0cmVhbVJlY3QoKSkKCiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkKICAgIH0KCiAgICAvLyBHYW1lcGFkCiAgICBvbkdhbWVwYWRDb25uZWN0KGV2ZW50OiBHYW1lcGFkRXZlbnQpIHsKICAgICAgICB0aGlzLm9uR2FtZXBhZEFkZChldmVudC5nYW1lcGFkKQogICAgfQogICAgb25HYW1lcGFkQWRkKGdhbWVwYWQ6IEdhbWVwYWQpIHsKICAgICAgICB0aGlzLnN0cmVhbS5nZXRJbnB1dCgpLm9uR2FtZXBhZENvbm5lY3QoZ2FtZXBhZCkKICAgIH0KICAgIG9uR2FtZXBhZERpc2Nvbm5lY3QoZXZlbnQ6IEdhbWVwYWRFdmVudCkgewogICAgICAgIHRoaXMuc3RyZWFtLmdldElucHV0KCkub25HYW1lcGFkRGlzY29ubmVjdChldmVudCkKICAgIH0KICAgIG9uR2FtZXBhZFVwZGF0ZSgpIHsKICAgICAgICB0aGlzLnN0cmVhbS5nZXRJbnB1dCgpLm9uR2FtZXBhZFVwZGF0ZSgpCgogICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5vbkdhbWVwYWRVcGRhdGUuYmluZCh0aGlzKSkKICAgIH0KCiAgICAvLyBGdWxsc2NyZWVuCiAgICBwcml2YXRlIGFzeW5jIHByb21wdEF1dG9GdWxsc2NyZWVuKCkgewogICAgICAgIGF3YWl0IHNob3dNb2RhbChuZXcgQXV0b0Z1bGxzY3JlZW5Nb2RhbCh0aGlzLnJlcXVlc3RGdWxsc2NyZWVuLmJpbmQodGhpcykpKQogICAgfQogICAgYXN5bmMgcmVxdWVzdEZ1bGxzY3JlZW4oc2hvd0VzY2FwZVdhcm5pbmc6IGJvb2xlYW4gPSB0cnVlKSB7CiAgICAgICAgY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHkKICAgICAgICBpZiAoYm9keSkgewogICAgICAgICAgICBpZiAoISgicmVxdWVzdEZ1bGxzY3JlZW4iIGluIGJvZHkgJiYgdHlwZW9mIGJvZHkucmVxdWVzdEZ1bGxzY3JlZW4gPT0gImZ1bmN0aW9uIikpIHsKICAgICAgICAgICAgICAgIGF3YWl0IHNob3dNZXNzYWdlKEkuc3RyZWFtLmZ1bGxzY3JlZW5VbnN1cHBvcnRlZCkKCiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5mb2N1c0lucHV0KCkKCiAgICAgICAgICAgIGlmICghdGhpcy5pc0Z1bGxzY3JlZW4oKSkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICBhd2FpdCBib2R5LnJlcXVlc3RGdWxsc2NyZWVuKHsKICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvblVJOiAiaGlkZSIKICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybigiZmFpbGVkIHRvIHJlcXVlc3QgZnVsbHNjcmVlbiIsIGUpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBhd2FpdCByZXF1ZXN0S2V5Ym9hcmRMb2NrKCk7CiAgICAgICAgICAgICAgICBpZiAoc2hvd0VzY2FwZVdhcm5pbmcgJiYgIXRoaXMuaGFzU2hvd25GdWxsc2NyZWVuRXNjYXBlV2FybmluZykgewogICAgICAgICAgICAgICAgICAgIHNob3dOb3RpZmljYXRpb24oSS5zdHJlYW0uZnVsbHNjcmVlbkVzY2FwZUhpbnQsICJpbmZvIikKICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc1Nob3duRnVsbHNjcmVlbkVzY2FwZVdhcm5pbmcgPSB0cnVlCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybigiS2V5Ym9hcmQgbG9jayBmYWlsZWQsIHNraXBwaW5nIG5vdGlmaWNhdGlvbi4iLCBlKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoaXMuZ2V0U3RyZWFtKCk/LmdldElucHV0KCkuZ2V0Q29uZmlnKCkubW91c2VNb2RlID09ICJyZWxhdGl2ZSIpIHsKICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdFBvaW50ZXJMb2NrKCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgIGlmIChzY3JlZW4gJiYgIm9yaWVudGF0aW9uIiBpbiBzY3JlZW4pIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmllbnRhdGlvbiA9IHNjcmVlbi5vcmllbnRhdGlvbgoKICAgICAgICAgICAgICAgICAgICBpZiAoImxvY2siIGluIG9yaWVudGF0aW9uICYmIHR5cGVvZiBvcmllbnRhdGlvbi5sb2NrID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgb3JpZW50YXRpb24ubG9jaygibGFuZHNjYXBlIikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybigiZmFpbGVkIHRvIHNldCBvcmllbnRhdGlvbiB0byBsYW5kc2NhcGUiLCBlKQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc29sZS53YXJuKCJyb290IGVsZW1lbnQgbm90IGZvdW5kIikKICAgICAgICB9CiAgICB9CiAgICBhc3luYyBleGl0RnVsbHNjcmVlbigpIHsKICAgICAgICBpZiAoImtleWJvYXJkIiBpbiBuYXZpZ2F0b3IgJiYgbmF2aWdhdG9yLmtleWJvYXJkICYmICJ1bmxvY2siIGluIG5hdmlnYXRvci5rZXlib2FyZCkgewogICAgICAgICAgICBhd2FpdCBuYXZpZ2F0b3Iua2V5Ym9hcmQudW5sb2NrKCkKICAgICAgICB9CgogICAgICAgIGlmICgiZXhpdEZ1bGxzY3JlZW4iIGluIGRvY3VtZW50ICYmIHR5cGVvZiBkb2N1bWVudC5leGl0RnVsbHNjcmVlbiA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIGF3YWl0IGRvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCkKICAgICAgICB9CiAgICB9CiAgICBpc0Z1bGxzY3JlZW4oKTogYm9vbGVhbiB7CiAgICAgICAgcmV0dXJuICJmdWxsc2NyZWVuRWxlbWVudCIgaW4gZG9jdW1lbnQgJiYgISFkb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudAogICAgfQogICAgcHJpdmF0ZSBhc3luYyBvbkZ1bGxzY3JlZW5DaGFuZ2UoKSB7CiAgICAgICAgaWYgKHRoaXMuaXNGdWxsc2NyZWVuKCkpIHsKICAgICAgICAgICAgdGhpcy5mdWxsc2NyZWVuT25OZXh0SW50ZXJhY3Rpb25Bcm1lZCA9IGZhbHNlCiAgICAgICAgICAgIHRoaXMucGVuZGluZ0F1dG9GdWxsc2NyZWVuVG91Y2hHZXN0dXJlID0gZmFsc2UKICAgICAgICAgICAgdGhpcy5wZW5kaW5nQXV0b0Z1bGxzY3JlZW5Nb3VzZUdlc3R1cmUgPSBmYWxzZQogICAgICAgICAgICB0aGlzLm1hbnVhbEZ1bGxzY3JlZW5FeGl0UmVxdWVzdGVkID0gZmFsc2UKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCBtYW51YWxFeGl0ID0gdGhpcy5tYW51YWxGdWxsc2NyZWVuRXhpdFJlcXVlc3RlZAogICAgICAgICAgICB0aGlzLm1hbnVhbEZ1bGxzY3JlZW5FeGl0UmVxdWVzdGVkID0gZmFsc2UKCiAgICAgICAgICAgIGlmICh0aGlzLmF1dG9FbnRlckZ1bGxzY3JlZW5PblN0YXJ0ICYmICFtYW51YWxFeGl0KSB7CiAgICAgICAgICAgICAgICB0aGlzLmFybUZ1bGxzY3JlZW5Pbk5leHRJbnRlcmFjdGlvbigpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHRoaXMuY2hlY2tGdWxseUltbWVyc2VkKCkKICAgIH0KICAgIG1hcmtNYW51YWxGdWxsc2NyZWVuRXhpdFJlcXVlc3RlZCgpIHsKICAgICAgICB0aGlzLm1hbnVhbEZ1bGxzY3JlZW5FeGl0UmVxdWVzdGVkID0gdHJ1ZQogICAgfQoKICAgIC8vIFBvaW50ZXIgTG9jawogICAgYXN5bmMgcmVxdWVzdFBvaW50ZXJMb2NrKGVycm9ySWZOb3RGb3VuZDogYm9vbGVhbiA9IGZhbHNlKSB7CiAgICAgICAgdGhpcy5wcmV2aW91c01vdXNlTW9kZSA9IHRoaXMuaW5wdXRDb25maWcubW91c2VNb2RlCgogICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIpIGFzIEhUTUxEaXZFbGVtZW50CgogICAgICAgIGlmIChpbnB1dEVsZW1lbnQgJiYgInJlcXVlc3RQb2ludGVyTG9jayIgaW4gaW5wdXRFbGVtZW50ICYmIHR5cGVvZiBpbnB1dEVsZW1lbnQucmVxdWVzdFBvaW50ZXJMb2NrID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgdGhpcy5mb2N1c0lucHV0KCkKCiAgICAgICAgICAgIHRoaXMuaW5wdXRDb25maWcubW91c2VNb2RlID0gInJlbGF0aXZlIgogICAgICAgICAgICB0aGlzLnNldElucHV0Q29uZmlnKHRoaXMuaW5wdXRDb25maWcpCgogICAgICAgICAgICBzZXRTaWRlYmFyRXh0ZW5kZWQoZmFsc2UpCgogICAgICAgICAgICBjb25zdCBvbkxvY2tFcnJvciA9ICgpID0+IHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJsb2NrZXJyb3IiLCBvbkxvY2tFcnJvcikKCiAgICAgICAgICAgICAgICAvLyBGYWxsYmFjazogdHJ5IHRvIHJlcXVlc3QgcG9pbnRlciBsb2NrIHdpdGhvdXQgb3B0aW9ucwogICAgICAgICAgICAgICAgaW5wdXRFbGVtZW50LnJlcXVlc3RQb2ludGVyTG9jaygpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJsb2NrZXJyb3IiLCBvbkxvY2tFcnJvciwgeyBvbmNlOiB0cnVlIH0pCgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgbGV0IHByb21pc2UgPSBpbnB1dEVsZW1lbnQucmVxdWVzdFBvaW50ZXJMb2NrKHsKICAgICAgICAgICAgICAgICAgICB1bmFkanVzdGVkTW92ZW1lbnQ6IHRydWUKICAgICAgICAgICAgICAgIH0pCgogICAgICAgICAgICAgICAgaWYgKHByb21pc2UpIHsKICAgICAgICAgICAgICAgICAgICBhd2FpdCBwcm9taXNlCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlucHV0RWxlbWVudC5yZXF1ZXN0UG9pbnRlckxvY2soKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgICAgICAgICAgLy8gU29tZSBwbGF0Zm9ybXMgZG8gbm90IHN1cHBvcnQgdW5hZGp1c3RlZCBtb3ZlbWVudC4gSWYgeW91CiAgICAgICAgICAgICAgICAvLyB3b3VsZCBsaWtlIFBvaW50ZXJMb2NrIGFueXdheSwgcmVxdWVzdCBhZ2Fpbi4KICAgICAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yICYmIGVycm9yLm5hbWUgPT0gIk5vdFN1cHBvcnRlZEVycm9yIikgewogICAgICAgICAgICAgICAgICAgIGlucHV0RWxlbWVudC5yZXF1ZXN0UG9pbnRlckxvY2soKQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJvcgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmxvY2tlcnJvciIsIG9uTG9ja0Vycm9yKQogICAgICAgICAgICB9CgogICAgICAgIH0gZWxzZSBpZiAoZXJyb3JJZk5vdEZvdW5kKSB7CiAgICAgICAgICAgIGF3YWl0IHNob3dNZXNzYWdlKEkuc3RyZWFtLnBvaW50ZXJMb2NrVW5zdXBwb3J0ZWQpCiAgICAgICAgfQogICAgfQogICAgYXN5bmMgZXhpdFBvaW50ZXJMb2NrKCkgewogICAgICAgIGlmICgiZXhpdFBvaW50ZXJMb2NrIiBpbiBkb2N1bWVudCAmJiB0eXBlb2YgZG9jdW1lbnQuZXhpdFBvaW50ZXJMb2NrID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZXhpdFBvaW50ZXJMb2NrKCkKICAgICAgICB9CiAgICB9CiAgICBwcml2YXRlIG9uUG9pbnRlckxvY2tDaGFuZ2UoKSB7CiAgICAgICAgdGhpcy5jaGVja0Z1bGx5SW1tZXJzZWQoKQoKICAgICAgICBpZiAoIWRvY3VtZW50LnBvaW50ZXJMb2NrRWxlbWVudCkgewogICAgICAgICAgICB0aGlzLmlucHV0Q29uZmlnLm1vdXNlTW9kZSA9IHRoaXMucHJldmlvdXNNb3VzZU1vZGUKICAgICAgICAgICAgdGhpcy5zZXRJbnB1dENvbmZpZyh0aGlzLmlucHV0Q29uZmlnKQogICAgICAgIH0KICAgIH0KCiAgICAvLyAtLSBGdWxseSBpbW1lcnNlZCBGdWxsc2NyZWVuIC0+IEZ1bGxzY3JlZW4gQVBJICsgUG9pbnRlciBMb2NrCiAgICBwcml2YXRlIGNoZWNrRnVsbHlJbW1lcnNlZCgpIHsKICAgICAgICBpZiAoInBvaW50ZXJMb2NrRWxlbWVudCIgaW4gZG9jdW1lbnQgJiYgZG9jdW1lbnQucG9pbnRlckxvY2tFbGVtZW50ICYmCiAgICAgICAgICAgICJmdWxsc2NyZWVuRWxlbWVudCIgaW4gZG9jdW1lbnQgJiYgZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQpIHsKICAgICAgICAgICAgLy8gV2UncmUgZnVsbHkgaW1tZXJzZWQgLT4gcmVtb3ZlIHNpZGViYXIKICAgICAgICAgICAgc2V0U2lkZWJhcihudWxsKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHNldFNpZGViYXIodGhpcy5zaWRlYmFyKQogICAgICAgIH0KICAgIH0KICAgIHByaXZhdGUgcmVuZGVyTG9jYWxUb3VjaEN1cnNvcigpIHsKICAgICAgICBjb25zdCBsb2NhbEN1cnNvclN0YXRlID0gdGhpcy5zdHJlYW0uZ2V0SW5wdXQoKS5nZXRMb2NhbEN1cnNvclN0YXRlKCkKICAgICAgICBpZiAoIWxvY2FsQ3Vyc29yU3RhdGU/LnZpc2libGUpIHsKICAgICAgICAgICAgdGhpcy5sb2NhbFRvdWNoQ3Vyc29yRGl2LmhpZGRlbiA9IHRydWUKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCByZWN0ID0gdGhpcy5nZXRTdHJlYW1SZWN0KCkKICAgICAgICBpZiAocmVjdC53aWR0aCA8PSAwIHx8IHJlY3QuaGVpZ2h0IDw9IDApIHsKICAgICAgICAgICAgdGhpcy5sb2NhbFRvdWNoQ3Vyc29yRGl2LmhpZGRlbiA9IHRydWUKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLmxvY2FsVG91Y2hDdXJzb3JEaXYuaGlkZGVuID0gZmFsc2UKICAgICAgICB0aGlzLmxvY2FsVG91Y2hDdXJzb3JEaXYuc3R5bGUubGVmdCA9IGAke3JlY3QubGVmdCArIGxvY2FsQ3Vyc29yU3RhdGUueCAqIHJlY3Qud2lkdGh9cHhgCiAgICAgICAgdGhpcy5sb2NhbFRvdWNoQ3Vyc29yRGl2LnN0eWxlLnRvcCA9IGAke3JlY3QudG9wICsgbG9jYWxDdXJzb3JTdGF0ZS55ICogcmVjdC5oZWlnaHR9cHhgCiAgICB9CgogICAgb25TY3JlZW5LZXlib2FyZE1vZGVXaWxsQ2hhbmdlKGV2ZW50OiBLZXlib2FyZE1vZGVXaWxsQ2hhbmdlRXZlbnQpIHsKICAgICAgICBpZiAoZXZlbnQuZGV0YWlsLmVuYWJsZWQpIHsKICAgICAgICAgICAgdGhpcy5jYXB0dXJlS2V5Ym9hcmRWaWV3cG9ydEJhc2VsaW5lKCkKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBjYXB0dXJlS2V5Ym9hcmRWaWV3cG9ydEJhc2VsaW5lKCkgewogICAgICAgIHRoaXMua2V5Ym9hcmRWaWV3cG9ydEJhc2VsaW5lSGVpZ2h0ID0gd2luZG93LnZpc3VhbFZpZXdwb3J0Py5oZWlnaHQgPz8gbnVsbAogICAgICAgIHRoaXMuc3RyZWFtVmlkZW9Ub3BPZmZzZXRQeCA9IDAKICAgICAgICB0aGlzLmFwcGx5U3RyZWFtVmlkZW9Ub3BPZmZzZXQoKQogICAgICAgIHRoaXMudXBkYXRlS2V5Ym9hcmRGbG9hdGluZ0J1dHRvblBvc2l0aW9uKCkKICAgIH0KICAgIHJlc2V0S2V5Ym9hcmRWaWV3cG9ydFZpZGVvT2Zmc2V0KCkgewogICAgICAgIHRoaXMua2V5Ym9hcmRWaWV3cG9ydEJhc2VsaW5lSGVpZ2h0ID0gbnVsbAogICAgICAgIHRoaXMuc3RyZWFtVmlkZW9Ub3BPZmZzZXRQeCA9IDAKICAgICAgICB0aGlzLmFwcGx5U3RyZWFtVmlkZW9Ub3BPZmZzZXQoKQogICAgICAgIHRoaXMucmVzZXRLZXlib2FyZEZsb2F0aW5nQnV0dG9uUG9zaXRpb24oKQogICAgfQogICAgcHJpdmF0ZSB1cGRhdGVLZXlib2FyZFZpZXdwb3J0VmlkZW9PZmZzZXQoKSB7CiAgICAgICAgdGhpcy51cGRhdGVLZXlib2FyZEZsb2F0aW5nQnV0dG9uUG9zaXRpb24oKQoKICAgICAgICBjb25zdCBzY3JlZW5LZXlib2FyZCA9IHRoaXMuc2lkZWJhci5nZXRTY3JlZW5LZXlib2FyZCgpCiAgICAgICAgY29uc3QgdmlzdWFsVmlld3BvcnQgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQKICAgICAgICBjb25zdCBiYXNlbGluZUhlaWdodCA9IHRoaXMua2V5Ym9hcmRWaWV3cG9ydEJhc2VsaW5lSGVpZ2h0CiAgICAgICAgY29uc3QgbG9jYWxDdXJzb3JTdGF0ZSA9IHRoaXMuc3RyZWFtLmdldElucHV0KCkuZ2V0TG9jYWxDdXJzb3JTdGF0ZSgpCgogICAgICAgIGlmICghc2NyZWVuS2V5Ym9hcmQuaXNWaXNpYmxlKCkgfHwgIXZpc3VhbFZpZXdwb3J0IHx8IGJhc2VsaW5lSGVpZ2h0ID09IG51bGwpIHsKICAgICAgICAgICAgaWYgKHRoaXMuc3RyZWFtVmlkZW9Ub3BPZmZzZXRQeCAhPSAwICYmICFzY3JlZW5LZXlib2FyZC5pc1Zpc2libGUoKSkgewogICAgICAgICAgICAgICAgdGhpcy5yZXNldEtleWJvYXJkVmlld3BvcnRWaWRlb09mZnNldCgpCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCB2aWV3cG9ydFNocmluayA9IGJhc2VsaW5lSGVpZ2h0IC0gdmlzdWFsVmlld3BvcnQuaGVpZ2h0CiAgICAgICAgaWYgKHZpZXdwb3J0U2hyaW5rIDwgODApIHsKICAgICAgICAgICAgaWYgKHRoaXMuc3RyZWFtVmlkZW9Ub3BPZmZzZXRQeCAhPSAwKSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0cmVhbVZpZGVvVG9wT2Zmc2V0UHggPSAwCiAgICAgICAgICAgICAgICB0aGlzLmFwcGx5U3RyZWFtVmlkZW9Ub3BPZmZzZXQoKQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgY29uc3Qgc3RyZWFtUmVjdCA9IHRoaXMuZ2V0U3RyZWFtUmVjdCgpCiAgICAgICAgaWYgKHN0cmVhbVJlY3Qud2lkdGggPD0gMCB8fCBzdHJlYW1SZWN0LmhlaWdodCA8PSAwKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgY29uc3QgdmlzaWJsZVRvcCA9IHZpc3VhbFZpZXdwb3J0Lm9mZnNldFRvcAogICAgICAgIGNvbnN0IHZpc2libGVCb3R0b20gPSB2aXN1YWxWaWV3cG9ydC5vZmZzZXRUb3AgKyB2aXN1YWxWaWV3cG9ydC5oZWlnaHQKCiAgICAgICAgbGV0IG5ld1RvcE9mZnNldFB4ID0gdGhpcy5zdHJlYW1WaWRlb1RvcE9mZnNldFB4CiAgICAgICAgaWYgKGxvY2FsQ3Vyc29yU3RhdGUudmlzaWJsZSkgewogICAgICAgICAgICBsZXQgZGVsdGEgPSAwCgogICAgICAgICAgICBjb25zdCBzYWZlTWFyZ2luID0gTWF0aC5taW4oMTAwLCB2aXN1YWxWaWV3cG9ydC5oZWlnaHQgKiAwLjI1KQogICAgICAgICAgICBjb25zdCBjdXJzb3JZID0gc3RyZWFtUmVjdC50b3AgKyBsb2NhbEN1cnNvclN0YXRlLnkgKiBzdHJlYW1SZWN0LmhlaWdodAoKICAgICAgICAgICAgaWYgKGN1cnNvclkgPCB2aXNpYmxlVG9wICsgc2FmZU1hcmdpbikgewogICAgICAgICAgICAgICAgZGVsdGEgPSB2aXNpYmxlVG9wICsgc2FmZU1hcmdpbiAtIGN1cnNvclkKICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJzb3JZID4gdmlzaWJsZUJvdHRvbSAtIHNhZmVNYXJnaW4pIHsKICAgICAgICAgICAgICAgIGRlbHRhID0gdmlzaWJsZUJvdHRvbSAtIHNhZmVNYXJnaW4gLSBjdXJzb3JZCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIG5ld1RvcE9mZnNldFB4ICs9IGRlbHRhCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgY29uc3Qgc2NyZWVuVG9wVG9WaWRlb1RvcCA9IHZpc3VhbFZpZXdwb3J0LmhlaWdodCAtIHN0cmVhbVJlY3QuaGVpZ2h0CiAgICAgICAgICAgIGlmIChzY3JlZW5Ub3BUb1ZpZGVvVG9wID4gMCkgewogICAgICAgICAgICAgICAgbmV3VG9wT2Zmc2V0UHggPSB2aXNpYmxlVG9wIC0gc2NyZWVuVG9wVG9WaWRlb1RvcAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoTWF0aC5hYnMobmV3VG9wT2Zmc2V0UHggLSB0aGlzLnN0cmVhbVZpZGVvVG9wT2Zmc2V0UHgpID49IDEpIHsKICAgICAgICAgICAgdGhpcy5zdHJlYW1WaWRlb1RvcE9mZnNldFB4ID0gbmV3VG9wT2Zmc2V0UHgKICAgICAgICAgICAgdGhpcy5hcHBseVN0cmVhbVZpZGVvVG9wT2Zmc2V0KCkKICAgICAgICB9CiAgICB9CiAgICBwcml2YXRlIGFwcGx5U3RyZWFtVmlkZW9Ub3BPZmZzZXQoKSB7CiAgICAgICAgaWYgKE1hdGguYWJzKHRoaXMuc3RyZWFtVmlkZW9Ub3BPZmZzZXRQeCkgPCAwLjUpIHsKICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLXN0cmVhbS12aWRlby10b3AiKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1zdHJlYW0tdmlkZW8tdG9wIiwgYGNhbGMoNTAlICsgJHt0aGlzLnN0cmVhbVZpZGVvVG9wT2Zmc2V0UHh9cHgpYCkKICAgIH0KICAgIHByaXZhdGUgdXBkYXRlS2V5Ym9hcmRGbG9hdGluZ0J1dHRvblBvc2l0aW9uKCkgewogICAgICAgIGNvbnN0IHNjcmVlbktleWJvYXJkID0gdGhpcy5zaWRlYmFyLmdldFNjcmVlbktleWJvYXJkKCkKICAgICAgICBjb25zdCB2aXN1YWxWaWV3cG9ydCA9IHdpbmRvdy52aXN1YWxWaWV3cG9ydAogICAgICAgIGlmICghc2NyZWVuS2V5Ym9hcmQuaXNWaXNpYmxlKCkgfHwgIXZpc3VhbFZpZXdwb3J0KSB7CiAgICAgICAgICAgIHRoaXMucmVzZXRLZXlib2FyZEZsb2F0aW5nQnV0dG9uUG9zaXRpb24oKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGNvbnN0IGJvdHRvbUluc2V0ID0gTWF0aC5taW4oMTYsIHZpc3VhbFZpZXdwb3J0LmhlaWdodCAqIDAuMDgpCiAgICAgICAgY29uc3QgYnV0dG9uVG9wID0gdmlzdWFsVmlld3BvcnQub2Zmc2V0VG9wICsgdmlzdWFsVmlld3BvcnQuaGVpZ2h0IC0gYm90dG9tSW5zZXQKICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tc3RyZWFtLWtleWJvYXJkLWJ1dHRvbi10b3AiLCBgJHtidXR0b25Ub3B9cHhgKQogICAgfQogICAgcHJpdmF0ZSByZXNldEtleWJvYXJkRmxvYXRpbmdCdXR0b25Qb3NpdGlvbigpIHsKICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0tc3RyZWFtLWtleWJvYXJkLWJ1dHRvbi10b3AiKQogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5kaXYpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5kaXYpCiAgICB9CgogICAgZ2V0U3RyZWFtUmVjdCgpOiBET01SZWN0IHsKICAgICAgICAvLyBUaGUgYm91bmRpbmcgcmVjdCBvZiB0aGUgdmlkZW9FbGVtZW50IG9yIGNhbnZhc0VsZW1lbnQgY2FuIGJlIGJpZ2dlciB0aGFuIHRoZSBhY3R1YWwgdmlkZW8KICAgICAgICAvLyAtPiBXZSBuZWVkIHRvIGNvcnJlY3QgZm9yIHRoaXMgd2hlbiBzZW5kaW5nIHBvc2l0aW9ucywgZWxzZSBwb3NpdGlvbnMgYXJlIHdyb25nCiAgICAgICAgcmV0dXJuIHRoaXMuc3RyZWFtLmdldFZpZGVvUmVuZGVyZXIoKT8uZ2V0U3RyZWFtUmVjdCgpID8/IG5ldyBET01SZWN0KCkKICAgIH0KICAgIGdldFN0cmVhbSgpOiBTdHJlYW0gfCBudWxsIHsKICAgICAgICByZXR1cm4gdGhpcy5zdHJlYW0KICAgIH0KfQoKY2xhc3MgQ29ubmVjdGlvbkluZm9Nb2RhbCBpbXBsZW1lbnRzIE1vZGFsPHZvaWQ+IHsKCiAgICBwcml2YXRlIGV2ZW50VGFyZ2V0ID0gbmV3IEV2ZW50VGFyZ2V0KCkKCiAgICBwcml2YXRlIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQoKICAgIHByaXZhdGUgdGV4dFR5OiBMb2dNZXNzYWdlVHlwZSB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJwIikKCiAgICBwcml2YXRlIG9wdGlvbnMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQogICAgcHJpdmF0ZSBkZWJ1Z0RldGFpbEJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCiAgICBwcml2YXRlIGNsb3NlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIikKCiAgICBwcml2YXRlIGRlYnVnRGV0YWlsID0gIiIgLy8gV2Ugc3RvcmUgdGhpcyBzZXBlcmF0ZSBiZWNhdXNlIGxpbmUgYnJlYWtzIGRvbid0IHdvcmsgd2hlbiB0aGUgZWxlbWVudCBpcyBub3QgbW91bnRlZCBvbiB0aGUgZG9tCiAgICBwcml2YXRlIGRlYnVnRGV0YWlsRGlzcGxheSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCgogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5yb290LmNsYXNzTGlzdC5hZGQoIm1vZGFsLXZpZGVvLWNvbm5lY3QiKQoKICAgICAgICB0aGlzLnRleHQuaW5uZXJUZXh0ID0gSS5zdHJlYW0uY29ubmVjdGluZwogICAgICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLnRleHQpCgogICAgICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLm9wdGlvbnMpCiAgICAgICAgdGhpcy5vcHRpb25zLmNsYXNzTGlzdC5hZGQoIm1vZGFsLXZpZGVvLWNvbm5lY3Qtb3B0aW9ucyIpCgogICAgICAgIHRoaXMuZGVidWdEZXRhaWxCdXR0b24uaW5uZXJUZXh0ID0gSS5zdHJlYW0uc2hvd0xvZ3MKICAgICAgICB0aGlzLmRlYnVnRGV0YWlsQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5vbkRlYnVnRGV0YWlsQ2xpY2suYmluZCh0aGlzKSkKICAgICAgICB0aGlzLm9wdGlvbnMuYXBwZW5kQ2hpbGQodGhpcy5kZWJ1Z0RldGFpbEJ1dHRvbikKCiAgICAgICAgdGhpcy5jbG9zZUJ1dHRvbi5pbm5lclRleHQgPSBJLnN0cmVhbS5jbG9zZQogICAgICAgIHRoaXMuY2xvc2VCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLm9uQ2xvc2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLm9wdGlvbnMuYXBwZW5kQ2hpbGQodGhpcy5jbG9zZUJ1dHRvbikKCiAgICAgICAgdGhpcy5kZWJ1Z0RldGFpbERpc3BsYXkuY2xhc3NMaXN0LmFkZCgidGV4dGxpa2UiKQogICAgICAgIHRoaXMuZGVidWdEZXRhaWxEaXNwbGF5LmNsYXNzTGlzdC5hZGQoIm1vZGFsLXZpZGVvLWNvbm5lY3QtZGVidWciKQogICAgfQoKICAgIHByaXZhdGUgb25EZWJ1Z0RldGFpbENsaWNrKCkgewogICAgICAgIGxldCBkZWJ1Z0RldGFpbEN1cnJlbnRseVNob3duID0gdGhpcy5yb290LmNvbnRhaW5zKHRoaXMuZGVidWdEZXRhaWxEaXNwbGF5KQoKICAgICAgICBpZiAoZGVidWdEZXRhaWxDdXJyZW50bHlTaG93bikgewogICAgICAgICAgICB0aGlzLmRlYnVnRGV0YWlsQnV0dG9uLmlubmVyVGV4dCA9IEkuc3RyZWFtLnNob3dMb2dzCiAgICAgICAgICAgIHRoaXMucm9vdC5yZW1vdmVDaGlsZCh0aGlzLmRlYnVnRGV0YWlsRGlzcGxheSkKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmRlYnVnRGV0YWlsQnV0dG9uLmlubmVyVGV4dCA9IEkuc3RyZWFtLmhpZGVMb2dzCiAgICAgICAgICAgIHRoaXMucm9vdC5hcHBlbmRDaGlsZCh0aGlzLmRlYnVnRGV0YWlsRGlzcGxheSkKICAgICAgICAgICAgdGhpcy5kZWJ1Z0RldGFpbERpc3BsYXkuaW5uZXJUZXh0ID0gdGhpcy5kZWJ1Z0RldGFpbAogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGRlYnVnTG9nKGxpbmU6IHN0cmluZykgewogICAgICAgIHRoaXMuZGVidWdEZXRhaWwgKz0gYCR7bGluZX1cbmAKICAgICAgICB0aGlzLmRlYnVnRGV0YWlsRGlzcGxheS5pbm5lclRleHQgPSB0aGlzLmRlYnVnRGV0YWlsCiAgICAgICAgY29uc29sZS5pbmZvKGBbU3RyZWFtXTogJHtsaW5lfWApCiAgICB9CgogICAgb25JbmZvKGV2ZW50OiBJbmZvRXZlbnQpIHsKICAgICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGV0YWlsCgogICAgICAgIGlmIChkYXRhLnR5cGUgPT0gImNvbm5lY3Rpb25Db21wbGV0ZSIpIHsKICAgICAgICAgICAgY29uc3QgdGV4dCA9IEkuc3RyZWFtLmNvbm5lY3Rpb25Db21wbGV0ZQogICAgICAgICAgICB0aGlzLnRleHQuaW5uZXJUZXh0ID0gdGV4dAogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKHRleHQpCiAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT0gInZpZGVvUmVhZHkiKSB7CgogICAgICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJtbC1jb25uZWN0ZWQiKSkKICAgICAgICB9IGVsc2UgaWYgKGRhdGEudHlwZSA9PSAiYWRkRGVidWdMaW5lIikgewogICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gZGF0YS5saW5lLnRyaW0oKQogICAgICAgICAgICBpZiAobWVzc2FnZSkgewogICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhtZXNzYWdlKQoKICAgICAgICAgICAgICAgIGlmICghdGhpcy50ZXh0VHkpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQuaW5uZXJUZXh0ID0gbWVzc2FnZQogICAgICAgICAgICAgICAgICAgIHRoaXMudGV4dFR5ID0gZGF0YS5hZGRpdGlvbmFsPy50eXBlID8/IG51bGwKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5hZGRpdGlvbmFsPy50eXBlID09ICJmYXRhbERlc2NyaXB0aW9uIiB8fCBkYXRhLmFkZGl0aW9uYWw/LnR5cGUgPT0gImlmRXJyb3JEZXNjcmlwdGlvbiIpIHsKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50ZXh0LmlubmVyVGV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRleHQuaW5uZXJUZXh0ICs9ICJcbiIgKyBtZXNzYWdlCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0LmlubmVyVGV4dCA9IG1lc3NhZ2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0VHkgPSBkYXRhLmFkZGl0aW9uYWwudHlwZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoZGF0YS5hZGRpdGlvbmFsPy50eXBlID09ICJmYXRhbCIgfHwgZGF0YS5hZGRpdGlvbmFsPy50eXBlID09ICJmYXRhbERlc2NyaXB0aW9uIikgewogICAgICAgICAgICAgICAgc2hvd01vZGFsKHRoaXMpCiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS5hZGRpdGlvbmFsPy50eXBlID09ICJpbmZvcm1FcnJvciIpIHsKICAgICAgICAgICAgICAgIHNob3dOb3RpZmljYXRpb24oZGF0YS5saW5lKQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChkYXRhLnR5cGUgPT0gInNlcnZlck1lc3NhZ2UiKSB7CiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBJLnN0cmVhbS5zZXJ2ZXJNZXNzYWdlKGRhdGEubWVzc2FnZSkKICAgICAgICAgICAgdGhpcy50ZXh0LmlubmVyVGV4dCA9IHRleHQKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyh0ZXh0KQogICAgICAgIH0KICAgIH0KCiAgICBvbkNsb3NlKCkgewogICAgICAgIHNob3dNb2RhbChudWxsKQogICAgfQoKICAgIG9uRmluaXNoKGFib3J0OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4gewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibWwtY29ubmVjdGVkIiwgKCkgPT4gcmVzb2x2ZSgpLCB7IG9uY2U6IHRydWUsIHNpZ25hbDogYWJvcnQgfSkKICAgICAgICB9KQogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5yb290KQogICAgfQogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMucm9vdCkKICAgIH0KfQoKY2xhc3MgQXV0b0Z1bGxzY3JlZW5Nb2RhbCBpbXBsZW1lbnRzIENvbXBvbmVudCwgTW9kYWw8dm9pZD4gewogICAgcHJpdmF0ZSBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgicCIpCiAgICBwcml2YXRlIHJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQogICAgcHJpdmF0ZSBva0J1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCiAgICBwcml2YXRlIGNhbmNlbEJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCiAgICBwcml2YXRlIG9uQ29uZmlybTogKCkgPT4gUHJvbWlzZTx2b2lkPgoKICAgIGNvbnN0cnVjdG9yKG9uQ29uZmlybTogKCkgPT4gUHJvbWlzZTx2b2lkPikgewogICAgICAgIHRoaXMub25Db25maXJtID0gb25Db25maXJtCiAgICAgICAgdGhpcy5tZXNzYWdlLmlubmVyVGV4dCA9IEkuc3RyZWFtLmF1dG9GdWxsc2NyZWVuUHJvbXB0CiAgICAgICAgdGhpcy5va0J1dHRvbi5pbm5lclRleHQgPSBJLm1vZGFsLm9rCiAgICAgICAgdGhpcy5jYW5jZWxCdXR0b24uaW5uZXJUZXh0ID0gSS5tb2RhbC5jYW5jZWwKICAgIH0KCiAgICBtb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgdGhpcy5yb290LmFwcGVuZENoaWxkKHRoaXMubWVzc2FnZSkKICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5va0J1dHRvbikKICAgICAgICB0aGlzLnJvb3QuYXBwZW5kQ2hpbGQodGhpcy5jYW5jZWxCdXR0b24pCiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHRoaXMucm9vdCkKICAgIH0KICAgIHVubW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzLnJvb3QpCiAgICB9CgogICAgb25GaW5pc2goYWJvcnQ6IEFib3J0U2lnbmFsKTogUHJvbWlzZTx2b2lkPiB7CiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgICAgICAgIHRoaXMub2tCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm9uQ29uZmlybSgpCiAgICAgICAgICAgICAgICByZXNvbHZlKCkKICAgICAgICAgICAgfSwgeyBvbmNlOiB0cnVlLCBzaWduYWw6IGFib3J0IH0pCgogICAgICAgICAgICB0aGlzLmNhbmNlbEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKICAgICAgICAgICAgICAgIHJlc29sdmUoKQogICAgICAgICAgICB9LCB7IG9uY2U6IHRydWUsIHNpZ25hbDogYWJvcnQgfSkKICAgICAgICB9KQogICAgfQp9CgpjbGFzcyBWaWV3ZXJTaWRlYmFyIGltcGxlbWVudHMgQ29tcG9uZW50LCBTaWRlYmFyIHsKICAgIHByaXZhdGUgYXBwOiBWaWV3ZXJBcHAKCiAgICBwcml2YXRlIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCgogICAgcHJpdmF0ZSBidXR0b25EaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQoKICAgIHByaXZhdGUgc2VuZEtleWNvZGVCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQoKICAgIHByaXZhdGUga2V5Ym9hcmRCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQogICAgcHJpdmF0ZSBmbG9hdGluZ0tleWJvYXJkQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIikKICAgIHByaXZhdGUgc2NyZWVuS2V5Ym9hcmQgPSBuZXcgU2NyZWVuS2V5Ym9hcmQoKQoKICAgIHByaXZhdGUgbG9ja01vdXNlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIikKICAgIHByaXZhdGUgZnVsbHNjcmVlbkJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCgogICAgcHJpdmF0ZSBzdGF0c0J1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpCiAgICBwcml2YXRlIGV4aXRTdHJlYW1CdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKQoKICAgIHByaXZhdGUgbW91c2VNb2RlOiBTZWxlY3RDb21wb25lbnQKICAgIHByaXZhdGUgdG91Y2hNb2RlOiBTZWxlY3RDb21wb25lbnQKCiAgICBjb25zdHJ1Y3RvcihhcHA6IFZpZXdlckFwcCkgewogICAgICAgIHRoaXMuYXBwID0gYXBwCgogICAgICAgIC8vIENvbmZpZ3VyZSBkaXZzCiAgICAgICAgdGhpcy5kaXYuY2xhc3NMaXN0LmFkZCgic2lkZWJhci1zdHJlYW0iKQoKICAgICAgICB0aGlzLmJ1dHRvbkRpdi5jbGFzc0xpc3QuYWRkKCJzaWRlYmFyLXN0cmVhbS1idXR0b25zIikKICAgICAgICB0aGlzLmRpdi5hcHBlbmRDaGlsZCh0aGlzLmJ1dHRvbkRpdikKCiAgICAgICAgLy8gU2VuZCBrZXljb2RlCiAgICAgICAgdGhpcy5zZW5kS2V5Y29kZUJ1dHRvbi5pbm5lclRleHQgPSBJLnN0cmVhbS5zZW5kS2V5Y29kZQogICAgICAgIHRoaXMuc2VuZEtleWNvZGVCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IGtleSA9IGF3YWl0IHNob3dNb2RhbChuZXcgU2VuZEtleWNvZGVNb2RhbCgpKQoKICAgICAgICAgICAgaWYgKGtleSA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5hcHAuZ2V0U3RyZWFtKCk/LmdldElucHV0KCkuc2VuZEtleSh0cnVlLCBrZXksIDApCiAgICAgICAgICAgIHRoaXMuYXBwLmdldFN0cmVhbSgpPy5nZXRJbnB1dCgpLnNlbmRLZXkoZmFsc2UsIGtleSwgMCkKICAgICAgICB9KQogICAgICAgIHRoaXMuYnV0dG9uRGl2LmFwcGVuZENoaWxkKHRoaXMuc2VuZEtleWNvZGVCdXR0b24pCgogICAgICAgIC8vIFBvaW50ZXIgTG9jawogICAgICAgIHRoaXMubG9ja01vdXNlQnV0dG9uLmlubmVyVGV4dCA9IEkuc3RyZWFtLmxvY2tNb3VzZQogICAgICAgIHRoaXMubG9ja01vdXNlQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4gewogICAgICAgICAgICBhd2FpdCB0aGlzLmFwcC5yZXF1ZXN0UG9pbnRlckxvY2sodHJ1ZSkKICAgICAgICB9KQogICAgICAgIHRoaXMuYnV0dG9uRGl2LmFwcGVuZENoaWxkKHRoaXMubG9ja01vdXNlQnV0dG9uKQoKICAgICAgICAvLyBQb3AgdXAga2V5Ym9hcmQKICAgICAgICB0aGlzLmtleWJvYXJkQnV0dG9uLmlubmVyVGV4dCA9IEkuc3RyZWFtLmtleWJvYXJkCiAgICAgICAgdGhpcy5rZXlib2FyZEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKICAgICAgICAgICAgc2V0U2lkZWJhckV4dGVuZGVkKGZhbHNlKQogICAgICAgICAgICB0aGlzLnNjcmVlbktleWJvYXJkLnNob3coKQogICAgICAgIH0pCiAgICAgICAgdGhpcy5idXR0b25EaXYuYXBwZW5kQ2hpbGQodGhpcy5rZXlib2FyZEJ1dHRvbikKCiAgICAgICAgdGhpcy5mbG9hdGluZ0tleWJvYXJkQnV0dG9uLmlubmVyVGV4dCA9ICLijKjDlyIKICAgICAgICB0aGlzLmZsb2F0aW5nS2V5Ym9hcmRCdXR0b24udGl0bGUgPSBJLnN0cmVhbS5oaWRlS2V5Ym9hcmQKICAgICAgICB0aGlzLmZsb2F0aW5nS2V5Ym9hcmRCdXR0b24uYXJpYUxhYmVsID0gSS5zdHJlYW0uaGlkZUtleWJvYXJkCiAgICAgICAgdGhpcy5mbG9hdGluZ0tleWJvYXJkQnV0dG9uLmNsYXNzTGlzdC5hZGQoInN0cmVhbS1rZXlib2FyZC1mbG9hdGluZy1idXR0b24iKQogICAgICAgIHRoaXMuZmxvYXRpbmdLZXlib2FyZEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+IHsKICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKQogICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKQogICAgICAgICAgICB0aGlzLnNjcmVlbktleWJvYXJkLmhpZGUoKQogICAgICAgIH0pCiAgICAgICAgc3RvcFByb3BhZ2F0aW9uT24odGhpcy5mbG9hdGluZ0tleWJvYXJkQnV0dG9uKQogICAgICAgIHRoaXMuc2NyZWVuS2V5Ym9hcmQuYWRkS2V5RG93bkxpc3RlbmVyKHRoaXMub25LZXlEb3duLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5zY3JlZW5LZXlib2FyZC5hZGRLZXlVcExpc3RlbmVyKHRoaXMub25LZXlVcC5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMuc2NyZWVuS2V5Ym9hcmQuYWRkVGV4dExpc3RlbmVyKHRoaXMub25UZXh0LmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5zY3JlZW5LZXlib2FyZC5hZGRLZXlib2FyZE1vZGVXaWxsQ2hhbmdlTGlzdGVuZXIodGhpcy5hcHAub25TY3JlZW5LZXlib2FyZE1vZGVXaWxsQ2hhbmdlLmJpbmQodGhpcy5hcHApKQogICAgICAgIHRoaXMuc2NyZWVuS2V5Ym9hcmQuYWRkS2V5Ym9hcmRNb2RlTGlzdGVuZXIodGhpcy5vbktleWJvYXJkTW9kZUNoYW5nZS5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMuZGl2LmFwcGVuZENoaWxkKHRoaXMuc2NyZWVuS2V5Ym9hcmQuZ2V0SGlkZGVuRWxlbWVudCgpKQoKCiAgICAgICAgLy8gRnVsbHNjcmVlbgogICAgICAgIHRoaXMuZnVsbHNjcmVlbkJ1dHRvbi5pbm5lclRleHQgPSBJLnN0cmVhbS5mdWxsc2NyZWVuCiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4gewogICAgICAgICAgICBpZiAodGhpcy5hcHAuaXNGdWxsc2NyZWVuKCkpIHsKICAgICAgICAgICAgICAgIHRoaXMuYXBwLm1hcmtNYW51YWxGdWxsc2NyZWVuRXhpdFJlcXVlc3RlZCgpCiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmFwcC5leGl0RnVsbHNjcmVlbigpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmFwcC5yZXF1ZXN0RnVsbHNjcmVlbigpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIHRoaXMuYnV0dG9uRGl2LmFwcGVuZENoaWxkKHRoaXMuZnVsbHNjcmVlbkJ1dHRvbikKCiAgICAgICAgLy8gU3RhdHMKICAgICAgICB0aGlzLnN0YXRzQnV0dG9uLmlubmVyVGV4dCA9IEkuc3RyZWFtLnN0YXRzCiAgICAgICAgdGhpcy5zdGF0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsICgpID0+IHsKICAgICAgICAgICAgY29uc3Qgc3RhdHMgPSB0aGlzLmFwcC5nZXRTdHJlYW0oKT8uZ2V0U3RhdHMoKQogICAgICAgICAgICBpZiAoc3RhdHMpIHsKICAgICAgICAgICAgICAgIHN0YXRzLnRvZ2dsZSgpCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIHRoaXMuYnV0dG9uRGl2LmFwcGVuZENoaWxkKHRoaXMuc3RhdHNCdXR0b24pCgogICAgICAgIC8vIENsb3NlIHN0cmVhbQogICAgICAgIHRoaXMuZXhpdFN0cmVhbUJ1dHRvbi5pbm5lclRleHQgPSBJLnN0cmVhbS5leGl0CiAgICAgICAgdGhpcy5leGl0U3RyZWFtQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4gewogICAgICAgICAgICBjb25zdCBzdHJlYW0gPSB0aGlzLmFwcC5nZXRTdHJlYW0oKQogICAgICAgICAgICBpZiAoc3RyZWFtKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgc3RyZWFtLnN0b3AoKQogICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygiRmFpbGVkIHRvIGNsb3NlIHN0cmVhbSBjb3JyZWN0bHkiKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAod2luZG93Lm1hdGNoTWVkaWEoJyhkaXNwbGF5LW1vZGU6IHN0YW5kYWxvbmUpJykubWF0Y2hlcykgewogICAgICAgICAgICAgICAgaGlzdG9yeS5iYWNrKCkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHdpbmRvdy5jbG9zZSgpCiAgICAgICAgICAgIH0KCiAgICAgICAgfSkKICAgICAgICB0aGlzLmJ1dHRvbkRpdi5hcHBlbmRDaGlsZCh0aGlzLmV4aXRTdHJlYW1CdXR0b24pCgogICAgICAgIC8vIFNlbGVjdCBNb3VzZSBNb2RlCiAgICAgICAgdGhpcy5tb3VzZU1vZGUgPSBuZXcgU2VsZWN0Q29tcG9uZW50KCJtb3VzZU1vZGUiLCBbCiAgICAgICAgICAgIHsgdmFsdWU6ICJyZWxhdGl2ZSIsIG5hbWU6IEkuc3RyZWFtLnJlbGF0aXZlIH0sCiAgICAgICAgICAgIHsgdmFsdWU6ICJmb2xsb3ciLCBuYW1lOiBJLnN0cmVhbS5mb2xsb3cgfSwKICAgICAgICAgICAgeyB2YWx1ZTogImxvY2FsQ3Vyc29yIiwgbmFtZTogSS5zdHJlYW0ubG9jYWxDdXJzb3IgfSwKICAgICAgICAgICAgeyB2YWx1ZTogInBvaW50QW5kRHJhZyIsIG5hbWU6IEkuc3RyZWFtLnBvaW50QW5kRHJhZyB9CiAgICAgICAgXSwgewogICAgICAgICAgICBkaXNwbGF5TmFtZTogSS5zdHJlYW0ubW91c2VNb2RlLAogICAgICAgICAgICBwcmVTZWxlY3RlZE9wdGlvbjogdGhpcy5hcHAuZ2V0SW5wdXRDb25maWcoKS5tb3VzZU1vZGUKICAgICAgICB9KQogICAgICAgIHRoaXMubW91c2VNb2RlLmFkZENoYW5nZUxpc3RlbmVyKHRoaXMub25Nb3VzZU1vZGVDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLm1vdXNlTW9kZS5tb3VudCh0aGlzLmRpdikKCiAgICAgICAgLy8gU2VsZWN0IFRvdWNoIE1vZGUKICAgICAgICB0aGlzLnRvdWNoTW9kZSA9IG5ldyBTZWxlY3RDb21wb25lbnQoInRvdWNoTW9kZSIsIFsKICAgICAgICAgICAgeyB2YWx1ZTogInRvdWNoIiwgbmFtZTogSS5zdHJlYW0udG91Y2ggfSwKICAgICAgICAgICAgeyB2YWx1ZTogIm1vdXNlUmVsYXRpdmUiLCBuYW1lOiBJLnN0cmVhbS5yZWxhdGl2ZSB9LAogICAgICAgICAgICB7IHZhbHVlOiAibG9jYWxDdXJzb3IiLCBuYW1lOiBJLnN0cmVhbS5sb2NhbEN1cnNvciB9LAogICAgICAgICAgICB7IHZhbHVlOiAicG9pbnRBbmREcmFnIiwgbmFtZTogSS5zdHJlYW0ucG9pbnRBbmREcmFnIH0KICAgICAgICBdLCB7CiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBJLnN0cmVhbS50b3VjaE1vZGUsCiAgICAgICAgICAgIHByZVNlbGVjdGVkT3B0aW9uOiB0aGlzLmFwcC5nZXRJbnB1dENvbmZpZygpLnRvdWNoTW9kZQogICAgICAgIH0pCiAgICAgICAgdGhpcy50b3VjaE1vZGUuYWRkQ2hhbmdlTGlzdGVuZXIodGhpcy5vblRvdWNoTW9kZUNoYW5nZS5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMudG91Y2hNb2RlLm1vdW50KHRoaXMuZGl2KQogICAgfQoKICAgIG9uQ2FwYWJpbGl0aWVzQ2hhbmdlKGNhcGFiaWxpdGllczogU3RyZWFtQ2FwYWJpbGl0aWVzKSB7CiAgICAgICAgdGhpcy50b3VjaE1vZGUuc2V0T3B0aW9uRW5hYmxlZCgidG91Y2giLCBjYXBhYmlsaXRpZXMudG91Y2gpCiAgICB9CgogICAgZ2V0U2NyZWVuS2V5Ym9hcmQoKTogU2NyZWVuS2V5Ym9hcmQgewogICAgICAgIHJldHVybiB0aGlzLnNjcmVlbktleWJvYXJkCiAgICB9CgogICAgLy8gLS0gS2V5Ym9hcmQKICAgIHByaXZhdGUgb25UZXh0KGV2ZW50OiBUZXh0RXZlbnQpIHsKICAgICAgICB0aGlzLmFwcC5nZXRTdHJlYW0oKT8uZ2V0SW5wdXQoKS5zZW5kVGV4dChldmVudC5kZXRhaWwudGV4dCkKICAgIH0KICAgIHByaXZhdGUgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7CiAgICAgICAgdGhpcy5hcHAuZ2V0U3RyZWFtKCk/LmdldElucHV0KCkub25LZXlEb3duKGV2ZW50KQogICAgfQogICAgcHJpdmF0ZSBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7CiAgICAgICAgdGhpcy5hcHAuZ2V0U3RyZWFtKCk/LmdldElucHV0KCkub25LZXlVcChldmVudCkKICAgIH0KICAgIHByaXZhdGUgb25LZXlib2FyZE1vZGVDaGFuZ2UoZXZlbnQ6IEtleWJvYXJkTW9kZUV2ZW50KSB7CiAgICAgICAgaWYgKGV2ZW50LmRldGFpbC5lbmFibGVkKSB7CiAgICAgICAgICAgIHRoaXMuZmxvYXRpbmdLZXlib2FyZEJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmZsb2F0aW5nS2V5Ym9hcmRCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpCiAgICAgICAgICAgIHRoaXMuYXBwLnJlc2V0S2V5Ym9hcmRWaWV3cG9ydFZpZGVvT2Zmc2V0KCkKICAgICAgICB9CiAgICB9CgogICAgLy8gLS0gTW91c2UgTW9kZQogICAgcHJpdmF0ZSBvbk1vdXNlTW9kZUNoYW5nZSgpIHsKICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmFwcC5nZXRJbnB1dENvbmZpZygpCiAgICAgICAgY29uZmlnLm1vdXNlTW9kZSA9IHRoaXMubW91c2VNb2RlLmdldFZhbHVlKCkgYXMgYW55CiAgICAgICAgdGhpcy5hcHAuc2V0SW5wdXRDb25maWcoY29uZmlnKQogICAgfQoKICAgIC8vIC0tIFRvdWNoIE1vZGUKICAgIHByaXZhdGUgb25Ub3VjaE1vZGVDaGFuZ2UoKSB7CiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5hcHAuZ2V0SW5wdXRDb25maWcoKQogICAgICAgIGNvbmZpZy50b3VjaE1vZGUgPSB0aGlzLnRvdWNoTW9kZS5nZXRWYWx1ZSgpIGFzIGFueQogICAgICAgIHRoaXMuYXBwLnNldElucHV0Q29uZmlnKGNvbmZpZykKICAgIH0KCiAgICBleHRlbmRlZCgpOiB2b2lkIHsKCiAgICB9CiAgICB1bmV4dGVuZCgpOiB2b2lkIHsKCiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmRpdikKICAgICAgICBjb25zdCBhcHBSb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJvb3QiKQogICAgICAgICAgICA7IChhcHBSb290ID8/IGRvY3VtZW50LmJvZHkpLmFwcGVuZENoaWxkKHRoaXMuZmxvYXRpbmdLZXlib2FyZEJ1dHRvbikKICAgIH0KICAgIHVubW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzLmRpdikKICAgICAgICBpZiAodGhpcy5mbG9hdGluZ0tleWJvYXJkQnV0dG9uLnBhcmVudEVsZW1lbnQpIHsKICAgICAgICAgICAgdGhpcy5mbG9hdGluZ0tleWJvYXJkQnV0dG9uLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5mbG9hdGluZ0tleWJvYXJkQnV0dG9uKQogICAgICAgIH0KICAgIH0KfQoKY2xhc3MgU2VuZEtleWNvZGVNb2RhbCBleHRlbmRzIEZvcm1Nb2RhbDxudW1iZXI+IHsKCiAgICBwcml2YXRlIGRyb3Bkb3duU2VhcmNoOiBTZWxlY3RDb21wb25lbnQKCiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICBzdXBlcigpCgogICAgICAgIGNvbnN0IGtleUxpc3QgPSBbXQogICAgICAgIGZvciAoY29uc3Qga2V5TmFtZVJhdyBpbiBTdHJlYW1LZXlzKSB7CiAgICAgICAgICAgIGNvbnN0IGtleU5hbWUgPSBrZXlOYW1lUmF3IGFzIGtleW9mIHR5cGVvZiBTdHJlYW1LZXlzCiAgICAgICAgICAgIGNvbnN0IGtleVZhbHVlID0gU3RyZWFtS2V5c1trZXlOYW1lXQoKICAgICAgICAgICAgY29uc3QgUFJFRklYID0gIlZLXyIKCiAgICAgICAgICAgIGxldCBuYW1lOiBzdHJpbmcgPSBrZXlOYW1lCiAgICAgICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoUFJFRklYKSkgewogICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUuc2xpY2UoUFJFRklYLmxlbmd0aCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAga2V5TGlzdC5wdXNoKHsKICAgICAgICAgICAgICAgIHZhbHVlOiBrZXlWYWx1ZS50b1N0cmluZygpLAogICAgICAgICAgICAgICAgbmFtZQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgdGhpcy5kcm9wZG93blNlYXJjaCA9IG5ldyBTZWxlY3RDb21wb25lbnQoIndpbktleWNvZGUiLCBrZXlMaXN0LCB7CiAgICAgICAgICAgIGhhc1NlYXJjaDogdHJ1ZSwKICAgICAgICAgICAgZGlzcGxheU5hbWU6IEkuc3RyZWFtLnNlbGVjdEtleWNvZGUKICAgICAgICB9KQogICAgfQoKICAgIG1vdW50Rm9ybShmb3JtOiBIVE1MRm9ybUVsZW1lbnQpOiB2b2lkIHsKICAgICAgICB0aGlzLmRyb3Bkb3duU2VhcmNoLm1vdW50KGZvcm0pCiAgICB9CgoKICAgIHJlc2V0KCk6IHZvaWQgewogICAgICAgIHRoaXMuZHJvcGRvd25TZWFyY2gucmVzZXQoKQogICAgfQoKICAgIHN1Ym1pdCgpOiBudW1iZXIgfCBudWxsIHsKICAgICAgICBjb25zdCBrZXlTdHJpbmcgPSB0aGlzLmRyb3Bkb3duU2VhcmNoLmdldFZhbHVlKCkKICAgICAgICBpZiAoa2V5U3RyaW5nID09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICB9CgogICAgICAgIHJldHVybiBwYXJzZUludChrZXlTdHJpbmcpCiAgICB9Cn0KCi8vIFN0b3AgcHJvcGFnYXRpb24gc28gdGhlIHN0cmVhbSBkb2Vzbid0IGdldCBpdApmdW5jdGlvbiBzdG9wUHJvcGFnYXRpb25PbihlbGVtZW50OiBIVE1MRWxlbWVudCkgewogICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgb25TdG9wUHJvcGFnYXRpb24pCiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgb25TdG9wUHJvcGFnYXRpb24pCiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIiwgb25TdG9wUHJvcGFnYXRpb24pCiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgb25TdG9wUHJvcGFnYXRpb24pCiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIG9uU3RvcFByb3BhZ2F0aW9uKQogICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgb25TdG9wUHJvcGFnYXRpb24pCiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIG9uU3RvcFByb3BhZ2F0aW9uKQogICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsIG9uU3RvcFByb3BhZ2F0aW9uKQogICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIG9uU3RvcFByb3BhZ2F0aW9uKQogICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0Iiwgb25TdG9wUHJvcGFnYXRpb24pCiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsIG9uU3RvcFByb3BhZ2F0aW9uKQogICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsIG9uU3RvcFByb3BhZ2F0aW9uKQogICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsIG9uU3RvcFByb3BhZ2F0aW9uKQp9CmZ1bmN0aW9uIG9uU3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCkgewogICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCkKfQo="},{"path":"web/stream/audio/audio_buffer_pipe.ts","sha256":"71cbbe79ef674600dd9e5d65993bd410e3e686877037f645f7dd3620d5104a34","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IFN0YXRWYWx1ZSB9IGZyb20gIi4uL3N0YXRzLmpzIjsKaW1wb3J0IHsgQXVkaW9QY21Vbml0LCBBdWRpb1BsYXllclNldHVwLCBOb2RlQXVkaW9QbGF5ZXIsIFBjbUF1ZGlvUGxheWVyIH0gZnJvbSAiLi9pbmRleC5qcyI7CgpleHBvcnQgY2xhc3MgQXVkaW9CdWZmZXJQaXBlIGltcGxlbWVudHMgUGNtQXVkaW9QbGF5ZXIgewoKICAgIHN0YXRpYyBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIkF1ZGlvQnVmZmVyU291cmNlTm9kZSIgaW4gZ2xvYmFsT2JqZWN0KCkKICAgICAgICB9CiAgICB9CgogICAgc3RhdGljIHJlYWRvbmx5IGJhc2VUeXBlID0gImF1ZGlvbm9kZSIKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gImF1ZGlvcGNtIgoKICAgIHJlYWRvbmx5IGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nCgogICAgcHJpdmF0ZSBiYXNlOiBOb2RlQXVkaW9QbGF5ZXIKCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBOb2RlQXVkaW9QbGF5ZXIpIHsKICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uTmFtZSA9IGBhdWRpb19wY21fYnVmZmVyIC0+ICR7YmFzZS5pbXBsZW1lbnRhdGlvbk5hbWV9YAogICAgICAgIHRoaXMuYmFzZSA9IGJhc2UKCiAgICAgICAgYWRkUGlwZVBhc3N0aHJvdWdoKHRoaXMpCiAgICB9CgogICAgcHJpdmF0ZSBjaGFubmVsczogbnVtYmVyID0gLTEKICAgIHByaXZhdGUgc2FtcGxlUmF0ZTogbnVtYmVyID0gLTEKCiAgICBwcml2YXRlIG5vZGU6IEF1ZGlvTm9kZSB8IG51bGwgPSBudWxsCgogICAgc2V0dXAoc2V0dXA6IEF1ZGlvUGxheWVyU2V0dXApIHsKICAgICAgICB0aGlzLmNoYW5uZWxzID0gc2V0dXAuY2hhbm5lbHMKICAgICAgICB0aGlzLnNhbXBsZVJhdGUgPSBzZXR1cC5zYW1wbGVSYXRlCgogICAgICAgIGxldCByZXN1bHQKICAgICAgICBpZiAoInNldHVwIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5zZXR1cCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIHRoaXMuYmFzZS5zZXR1cCguLi5hcmd1bWVudHMpCiAgICAgICAgfQoKICAgICAgICB0aGlzLm5vZGUgPSB0aGlzLmJhc2UuZ2V0QXVkaW9Db250ZXh0KCkuY3JlYXRlR2FpbigpCgogICAgICAgIHRoaXMuYmFzZS5zZXRTb3VyY2UodGhpcy5ub2RlKQoKICAgICAgICByZXR1cm4gcmVzdWx0CiAgICB9CgogICAgcHJpdmF0ZSBoYWRVc2VySW50ZXJhY3Rpb246IGJvb2xlYW4gPSBmYWxzZQoKICAgIG9uVXNlckludGVyYWN0aW9uKCkgewogICAgICAgIHRoaXMuaGFkVXNlckludGVyYWN0aW9uID0gdHJ1ZQoKICAgICAgICBpZiAoIm9uVXNlckludGVyYWN0aW9uIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5vblVzZXJJbnRlcmFjdGlvbiA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhc2Uub25Vc2VySW50ZXJhY3Rpb24oLi4uYXJndW1lbnRzKQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIG5leHRBdWRpb1BsYXlUaW1lOiBudW1iZXIgfCBudWxsID0gbnVsbAoKICAgIHBsYXlQY20odW5pdDogQXVkaW9QY21Vbml0KTogdm9pZCB7CiAgICAgICAgaWYgKCF0aGlzLm5vZGUpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIGlmICghdGhpcy5oYWRVc2VySW50ZXJhY3Rpb24pIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCBUQVJHRVRfTEFURU5DWV9TRUNTID0gMC4xMgogICAgICAgIGNvbnN0IE1BWF9MQVRFTkNZX1NFQ1MgPSAwLjI1CgogICAgICAgIGNvbnN0IG5vdyA9IHRoaXMuYmFzZS5nZXRBdWRpb0NvbnRleHQoKS5jdXJyZW50VGltZQoKICAgICAgICBpZiAodGhpcy5uZXh0QXVkaW9QbGF5VGltZSA9PSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMubmV4dEF1ZGlvUGxheVRpbWUgPSBub3cgKyBUQVJHRVRfTEFURU5DWV9TRUNTCiAgICAgICAgfQoKICAgICAgICBsZXQgYWhlYWQgPSB0aGlzLm5leHRBdWRpb1BsYXlUaW1lIC0gdGhpcy5iYXNlLmdldEF1ZGlvQ29udGV4dCgpLmN1cnJlbnRUaW1lCgogICAgICAgIC8vIFRvbyBmYXIgYWhlYWQgLT4gZ2VudGx5IHB1bGwgYmFjayBhdWRpbwogICAgICAgIGlmIChhaGVhZCA+IE1BWF9MQVRFTkNZX1NFQ1MpIHsKICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygiQXVkaW8gdG9vIGZhciBhaGVhZCwgdHJpbW1pbmcgbGF0ZW5jeSIpOwogICAgICAgICAgICB0aGlzLm5leHRBdWRpb1BsYXlUaW1lID0gbm93ICsgVEFSR0VUX0xBVEVOQ1lfU0VDUzsKICAgICAgICAgICAgYWhlYWQgPSBUQVJHRVRfTEFURU5DWV9TRUNTOwogICAgICAgIH0KCiAgICAgICAgLy8gVW5kZXJydW4gLT4ganVtcCBmb3J3YXJkCiAgICAgICAgaWYgKGFoZWFkIDwgMCkgewogICAgICAgICAgICBjb25zb2xlLmRlYnVnKCJBdWRpbyB1bmRlcnJ1biIpCgogICAgICAgICAgICAvLyBXZSBhcmUgYmVoaW5kICh1bmRlcnJ1biksIGp1bXAgdG8gY3VycmVudCB0aW1lICsgc21hbGwgYnVmZmVyCiAgICAgICAgICAgIHRoaXMubmV4dEF1ZGlvUGxheVRpbWUgPSBub3cgKyBUQVJHRVRfTEFURU5DWV9TRUNTOwogICAgICAgIH0KCiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuYmFzZS5nZXRBdWRpb0NvbnRleHQoKQoKICAgICAgICBjb25zdCBidWZmZXIgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlcih0aGlzLmNoYW5uZWxzLCB1bml0LmNoYW5uZWxEYXRhWzBdLmxlbmd0aCwgdGhpcy5zYW1wbGVSYXRlKQoKICAgICAgICBmb3IgKGxldCBjaGFubmVsID0gMDsgY2hhbm5lbCA8IHRoaXMuY2hhbm5lbHM7IGNoYW5uZWwrKykgewogICAgICAgICAgICBjb25zdCBjaGFubmVsUGNtID0gdW5pdC5jaGFubmVsRGF0YVtjaGFubmVsXQoKICAgICAgICAgICAgYnVmZmVyLmNvcHlUb0NoYW5uZWwoY2hhbm5lbFBjbSwgY2hhbm5lbCkKICAgICAgICB9CgogICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkKICAgICAgICBzb3VyY2UuYnVmZmVyID0gYnVmZmVyCiAgICAgICAgc291cmNlLmNvbm5lY3QodGhpcy5ub2RlKQoKICAgICAgICBzb3VyY2Uuc3RhcnQodGhpcy5uZXh0QXVkaW9QbGF5VGltZSkKICAgICAgICB0aGlzLm5leHRBdWRpb1BsYXlUaW1lICs9IGJ1ZmZlci5kdXJhdGlvbgoKICAgICAgICBzb3VyY2Uub25lbmRlZCA9ICgpID0+IHNvdXJjZS5kaXNjb25uZWN0KCkKICAgIH0KCiAgICBnZXRCYXNlKCk6IFBpcGUgfCBudWxsIHsKICAgICAgICByZXR1cm4gdGhpcy5iYXNlCiAgICB9Cn0="},{"path":"web/stream/audio/audio_context_base.ts","sha256":"bf8415d716b183ca4d718fc11d9dd5faf4faad5820951bb699a0df99802a7c61","contentBase64":"CmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyI7CmltcG9ydCB7IFBpcGUgfSBmcm9tICIuLi9waXBlbGluZS9pbmRleC5qcyI7CmltcG9ydCB7IGFkZFBpcGVQYXNzdGhyb3VnaCB9IGZyb20gIi4uL3BpcGVsaW5lL3BpcGVzLmpzIjsKaW1wb3J0IHsgU3RhdFZhbHVlIH0gZnJvbSAiLi4vc3RhdHMuanMiOwppbXBvcnQgeyBBdWRpb1BsYXllclNldHVwLCBOb2RlQXVkaW9QbGF5ZXIgfSBmcm9tICIuL2luZGV4LmpzIjsKCmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdWRpb0NvbnRleHRCYXNlUGlwZSBpbXBsZW1lbnRzIE5vZGVBdWRpb1BsYXllciB7CgogICAgcmVhZG9ubHkgaW1wbGVtZW50YXRpb25OYW1lOiBzdHJpbmcKCiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyIHwgbnVsbCA9IG51bGwKCiAgICBwcml2YXRlIGJhc2U6IFBpcGUgfCBudWxsCiAgICBwcml2YXRlIGF1ZGlvQ29udGV4dDogQXVkaW9Db250ZXh0IHwgbnVsbCA9IG51bGwKCiAgICBjb25zdHJ1Y3RvcihpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZywgYmFzZTogUGlwZSB8IG51bGwsIGxvZ2dlcj86IExvZ2dlcikgewogICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8/IG51bGwKCiAgICAgICAgdGhpcy5pbXBsZW1lbnRhdGlvbk5hbWUgPSBpbXBsZW1lbnRhdGlvbk5hbWUKICAgICAgICB0aGlzLmJhc2UgPSBiYXNlCiAgICB9CgogICAgcHJvdGVjdGVkIGFkZFBpcGVQYXNzdGhyb3VnaCgpIHsKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcywgWyJtb3VudCIsICJ1bm1vdW50Il0pCiAgICB9CgogICAgc2V0dXAoc2V0dXA6IEF1ZGlvUGxheWVyU2V0dXApIHsKICAgICAgICB0cnkgewogICAgICAgICAgICB0aGlzLmF1ZGlvQ29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoewogICAgICAgICAgICAgICAgbGF0ZW5jeUhpbnQ6ICJpbnRlcmFjdGl2ZSIsCiAgICAgICAgICAgICAgICBzYW1wbGVSYXRlOiBzZXR1cC5zYW1wbGVSYXRlCiAgICAgICAgICAgIH0pCiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgRmFpbGVkIHRvIHNldHVwIGF1ZGlvIG5vZGUgd2l0aCBsYXRlbmN5IGhpbnQgImludGVyYWN0aXZlIi4gVHJ5aW5nIHRvIHNldHVwIHdpdGhvdXQgbGF0ZW5jeSBoaW50LiAkeyJ0b1N0cmluZyIgaW4gZSAmJiB0eXBlb2YgZS50b1N0cmluZyA9PSAiZnVuY3Rpb24iID8gZS50b1N0cmluZygpIDogZX1gKQogICAgICAgIH0KCiAgICAgICAgaWYgKCF0aGlzLmF1ZGlvQ29udGV4dCkgewogICAgICAgICAgICB0aGlzLmF1ZGlvQ29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoewogICAgICAgICAgICAgICAgc2FtcGxlUmF0ZTogc2V0dXAuc2FtcGxlUmF0ZQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgaWYgKHRoaXMuYmFzZSAmJiAic2V0dXAiIGluIHRoaXMuYmFzZSAmJiB0eXBlb2YgdGhpcy5iYXNlLnNldHVwID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFzZS5zZXR1cCguLi5hcmd1bWVudHMpCiAgICAgICAgfQogICAgfQogICAgY2xlYW51cCgpOiB2b2lkIHsKICAgICAgICB0aGlzLmF1ZGlvQ29udGV4dD8uY2xvc2UoKQogICAgfQoKICAgIG9uVXNlckludGVyYWN0aW9uKCk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLmJhc2UgJiYgIm9uVXNlckludGVyYWN0aW9uIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5vblVzZXJJbnRlcmFjdGlvbiA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhc2Uub25Vc2VySW50ZXJhY3Rpb24oLi4uYXJndW1lbnRzKQogICAgICAgIH0KICAgIH0KCiAgICBhYnN0cmFjdCBzZXRTb3VyY2Uoc291cmNlOiBBdWRpb05vZGUpOiB2b2lkCgogICAgYXN5bmMgcmVwb3J0U3RhdHMoc3RhdHNPYmplY3Q6IFJlY29yZDxzdHJpbmcsIFN0YXRWYWx1ZT4pOiBQcm9taXNlPHZvaWQ+IHsKICAgICAgICAvLyBCb3RoIHZhbHVlcyBhcmUgaW4gc2VjcyAtPiB3ZSBjb252ZXJ0IGludG8gbXMKICAgICAgICBpZiAodGhpcy5hdWRpb0NvbnRleHQ/LmJhc2VMYXRlbmN5KSB7CiAgICAgICAgICAgIHN0YXRzT2JqZWN0LmF1ZGlvQ29udGV4dEJhc2VMYXRlbmN5TXMgPSB0aGlzLmF1ZGlvQ29udGV4dC5iYXNlTGF0ZW5jeSAqIDEwMAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHN0YXRzT2JqZWN0LmF1ZGlvQ29udGV4dEJhc2VMYXRlbmN5TXMgPSAibnVsbCIKICAgICAgICB9CiAgICAgICAgaWYgKHRoaXMuYXVkaW9Db250ZXh0Py5vdXRwdXRMYXRlbmN5KSB7CiAgICAgICAgICAgIHN0YXRzT2JqZWN0LmF1ZGlvQ29udGV4dE91dHB1dExhdGVuY3lNcyA9IHRoaXMuYXVkaW9Db250ZXh0Lm91dHB1dExhdGVuY3kgKiAxMDAKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdGF0c09iamVjdC5hdWRpb0NvbnRleHRPdXRwdXRMYXRlbmN5TXMgPSAibnVsbCIKICAgICAgICB9CgogICAgICAgIGlmICh0aGlzLmJhc2UgJiYgInJlcG9ydFN0YXRzIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5yZXBvcnRTdGF0cyA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmUKICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYmFzZS5yZXBvcnRTdGF0cyguLi5hcmd1bWVudHMpCiAgICAgICAgfQogICAgfQoKICAgIGdldEF1ZGlvQ29udGV4dCgpOiBBdWRpb0NvbnRleHQgewogICAgICAgIGlmICghdGhpcy5hdWRpb0NvbnRleHQpIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKCJGYWlsZWQgdG8gZ2V0IGF1ZGlvIGNvbnRleHQiLCB7IHR5cGU6ICJmYXRhbCIgfSkKICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCB0byBnZXQgYXVkaW8gY29udGV4dC4iCiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLmF1ZGlvQ29udGV4dAogICAgfQoKICAgIGdldEJhc2UoKTogUGlwZSB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLmJhc2UKICAgIH0KCiAgICAvLyAtLSBPbmx5IGRlZmluaXRpb24gbG9vayBhZGRQaXBlUGFzc3Rocm91Z2gKICAgIG1vdW50KF9wYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7IH0KICAgIHVubW91bnQoX3BhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsgfQp9"},{"path":"web/stream/audio/audio_context_destination.ts","sha256":"11d88ad3d1895d92c405096738d09371dea7b6b824a5ec702f6e9f8d4eec86ea","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyI7CmltcG9ydCB7IFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBBdWRpb0NvbnRleHRCYXNlUGlwZSB9IGZyb20gIi4vYXVkaW9fY29udGV4dF9iYXNlLmpzIjsKaW1wb3J0IHsgQXVkaW9QbGF5ZXIsIEF1ZGlvUGxheWVyU2V0dXAgfSBmcm9tICIuL2luZGV4LmpzIjsKCmV4cG9ydCBjbGFzcyBDb250ZXh0RGVzdGluYXRpb25Ob2RlQXVkaW9QbGF5ZXIgZXh0ZW5kcyBBdWRpb0NvbnRleHRCYXNlUGlwZSBpbXBsZW1lbnRzIEF1ZGlvUGxheWVyIHsKCiAgICBzdGF0aWMgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6ICJBdWRpb0NvbnRleHQiIGluIGdsb2JhbE9iamVjdCgpCiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gImF1ZGlvbm9kZSIKCiAgICBwcml2YXRlIGRlc3RpbmF0aW9uOiBBdWRpb05vZGUgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBjdXJyZW50U291cmNlOiBBdWRpb05vZGUgfCBudWxsID0gbnVsbAoKICAgIGNvbnN0cnVjdG9yKGxvZ2dlcj86IExvZ2dlcikgewogICAgICAgIHN1cGVyKCJub2RlX2F1ZGlvX2VsZW1lbnQiLCBudWxsLCBsb2dnZXIpCgogICAgICAgIHRoaXMuYWRkUGlwZVBhc3N0aHJvdWdoKCkKICAgIH0KCiAgICBzZXR1cChzZXR1cDogQXVkaW9QbGF5ZXJTZXR1cCkgewogICAgICAgIGNvbnN0IHJlc3VsdCA9IHN1cGVyLnNldHVwKHNldHVwKQoKICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gdGhpcy5nZXRBdWRpb0NvbnRleHQoKS5kZXN0aW5hdGlvbjsKCiAgICAgICAgaWYgKHRoaXMuY3VycmVudFNvdXJjZSkgewogICAgICAgICAgICB0aGlzLmN1cnJlbnRTb3VyY2UuY29ubmVjdCh0aGlzLmRlc3RpbmF0aW9uKQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJlc3VsdAogICAgfQoKICAgIHNldFNvdXJjZShzb3VyY2U6IEF1ZGlvTm9kZSk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLmN1cnJlbnRTb3VyY2UgJiYgdGhpcy5kZXN0aW5hdGlvbikgewogICAgICAgICAgICB0aGlzLmN1cnJlbnRTb3VyY2UuZGlzY29ubmVjdCh0aGlzLmRlc3RpbmF0aW9uKQogICAgICAgIH0KCiAgICAgICAgdGhpcy5jdXJyZW50U291cmNlID0gc291cmNlCgogICAgICAgIGlmICh0aGlzLmRlc3RpbmF0aW9uKSB7CiAgICAgICAgICAgIHNvdXJjZS5jb25uZWN0KHRoaXMuZGVzdGluYXRpb24pCiAgICAgICAgfQogICAgfQoKICAgIG1vdW50KF9wYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7IH0KICAgIHVubW91bnQoX3BhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsgfQoKfQ=="},{"path":"web/stream/audio/audio_context_track_pipe.ts","sha256":"6c17892b78311a4c1518761460903e3cdb829f52c1faa82f6ff579743d43d9af","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyI7CmltcG9ydCB7IFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBBdWRpb0NvbnRleHRCYXNlUGlwZSB9IGZyb20gIi4vYXVkaW9fY29udGV4dF9iYXNlLmpzIjsKaW1wb3J0IHsgQXVkaW9QbGF5ZXJTZXR1cCwgVHJhY2tBdWRpb1BsYXllciB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGNsYXNzIEF1ZGlvQ29udGV4dFRyYWNrUGlwZSBleHRlbmRzIEF1ZGlvQ29udGV4dEJhc2VQaXBlIHsKCiAgICBzdGF0aWMgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6ICJBdWRpb0NvbnRleHQiIGluIGdsb2JhbE9iamVjdCgpICYmICJjcmVhdGVNZWRpYVN0cmVhbVNvdXJjZSIgaW4gQXVkaW9Db250ZXh0LnByb3RvdHlwZQogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgcmVhZG9ubHkgYmFzZVR5cGUgPSAiYXVkaW90cmFjayIKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gImF1ZGlvbm9kZSIKCiAgICBwcml2YXRlIGRlc3RpbmF0aW9uOiBNZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlIHwgbnVsbCA9IG51bGwKICAgIHByaXZhdGUgY3VycmVudFNvdXJjZTogQXVkaW9Ob2RlIHwgbnVsbCA9IG51bGwKCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBUcmFja0F1ZGlvUGxheWVyLCBsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICBzdXBlcihgYXVkaW9fY29udGV4dF90cmFjayAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAsIGJhc2UsIGxvZ2dlcikKCiAgICAgICAgdGhpcy5hZGRQaXBlUGFzc3Rocm91Z2goKQogICAgfQoKICAgIHNldHVwKHNldHVwOiBBdWRpb1BsYXllclNldHVwKSB7CiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3VwZXIuc2V0dXAoc2V0dXApCgogICAgICAgIGlmICh0eXBlb2YgTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZSA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIC8vIENoZWNrIGZvciBjb25zdHJ1Y3RvcgogICAgICAgICAgICB0aGlzLmRlc3RpbmF0aW9uID0gbmV3IE1lZGlhU3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUodGhpcy5nZXRBdWRpb0NvbnRleHQoKSwgewogICAgICAgICAgICAgICAgY2hhbm5lbENvdW50OiBzZXR1cC5jaGFubmVscywKICAgICAgICAgICAgICAgIGNoYW5uZWxDb3VudE1vZGU6ICJleHBsaWNpdCIsCiAgICAgICAgICAgICAgICBjaGFubmVsSW50ZXJwcmV0YXRpb246IHNldHVwLmNoYW5uZWxzID4gMiA/ICJkaXNjcmV0ZSIgOiAic3BlYWtlcnMiCiAgICAgICAgICAgIH0pCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5kZXN0aW5hdGlvbiA9IHRoaXMuZ2V0QXVkaW9Db250ZXh0KCkuY3JlYXRlTWVkaWFTdHJlYW1EZXN0aW5hdGlvbigpOwogICAgICAgIH0KCiAgICAgICAgKHRoaXMuZ2V0QmFzZSgpIGFzIFRyYWNrQXVkaW9QbGF5ZXIpLnNldFRyYWNrKHRoaXMuZGVzdGluYXRpb24uc3RyZWFtLmdldFRyYWNrcygpWzBdKQoKICAgICAgICBpZiAodGhpcy5jdXJyZW50U291cmNlKSB7CiAgICAgICAgICAgIHRoaXMuY3VycmVudFNvdXJjZS5jb25uZWN0KHRoaXMuZGVzdGluYXRpb24pCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcmVzdWx0CiAgICB9CgogICAgc2V0U291cmNlKHNvdXJjZTogQXVkaW9Ob2RlKTogdm9pZCB7CiAgICAgICAgaWYgKHRoaXMuY3VycmVudFNvdXJjZSAmJiB0aGlzLmRlc3RpbmF0aW9uKSB7CiAgICAgICAgICAgIHRoaXMuY3VycmVudFNvdXJjZS5kaXNjb25uZWN0KHRoaXMuZGVzdGluYXRpb24pCiAgICAgICAgfQoKICAgICAgICB0aGlzLmN1cnJlbnRTb3VyY2UgPSBzb3VyY2UKCiAgICAgICAgaWYgKHRoaXMuZGVzdGluYXRpb24pIHsKICAgICAgICAgICAgc291cmNlLmNvbm5lY3QodGhpcy5kZXN0aW5hdGlvbikKICAgICAgICB9CiAgICB9Cgp9"},{"path":"web/stream/audio/audio_decoder_pipe.ts","sha256":"e95c7ed3b7b896295a0f658b0334315f8f0353f68c587fea20a888d46dd3ce27","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IEF1ZGlvRGVjb2RlVW5pdCwgQXVkaW9QbGF5ZXJTZXR1cCwgRGF0YUF1ZGlvUGxheWVyLCBTYW1wbGVBdWRpb1BsYXllciB9IGZyb20gIi4vaW5kZXguanMiOwoKYXN5bmMgZnVuY3Rpb24gZGV0ZWN0Q29kZWMoKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICBpZiAoISgiaXNDb25maWdTdXBwb3J0ZWQiIGluIEF1ZGlvRGVjb2RlcikpIHsKICAgICAgICAvLyBPcHVzIGlzIG1vc3QgbGlrZWx5IHN1cHBvcnRlZAogICAgICAgIHJldHVybiB0cnVlCiAgICB9CgogICAgY29uc3Qgc3VwcG9ydGVkID0gYXdhaXQgQXVkaW9EZWNvZGVyLmlzQ29uZmlnU3VwcG9ydGVkKHsKICAgICAgICBjb2RlYzogIm9wdXMiLAogICAgICAgIC8vIG5vcm1hbCBTdGVyZW8gY29uZmlndXJhdGlvbgogICAgICAgIG51bWJlck9mQ2hhbm5lbHM6IDIsCiAgICAgICAgc2FtcGxlUmF0ZTogNDgwMDAKICAgIH0pCgogICAgcmV0dXJuIHN1cHBvcnRlZD8uc3VwcG9ydGVkID8/IGZhbHNlCn0KCmV4cG9ydCBjbGFzcyBBdWRpb0RlY29kZXJQaXBlIGltcGxlbWVudHMgRGF0YUF1ZGlvUGxheWVyIHsKCiAgICBzdGF0aWMgcmVhZG9ubHkgYmFzZVR5cGUgPSAiYXVkaW9zYW1wbGUiCiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJhdWRpb2RhdGEiCgogICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGVudmlyb25tZW50U3VwcG9ydGVkOiAiQXVkaW9EZWNvZGVyIiBpbiBnbG9iYWxPYmplY3QoKSAmJiBhd2FpdCBkZXRlY3RDb2RlYygpLAogICAgICAgIH0KICAgIH0KCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZwoKICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgYmFzZTogU2FtcGxlQXVkaW9QbGF5ZXIKCiAgICBwcml2YXRlIGVycm9yZWQgPSBmYWxzZQogICAgcHJpdmF0ZSBkZWNvZGVyOiBBdWRpb0RlY29kZXIKCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBTYW1wbGVBdWRpb1BsYXllciwgbG9nZ2VyPzogTG9nZ2VyKSB7CiAgICAgICAgdGhpcy5pbXBsZW1lbnRhdGlvbk5hbWUgPSBgYXVkaW9fZGVjb2RlciAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAKICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/PyBudWxsCgogICAgICAgIHRoaXMuYmFzZSA9IGJhc2UKCiAgICAgICAgdGhpcy5kZWNvZGVyID0gbmV3IEF1ZGlvRGVjb2Rlcih7CiAgICAgICAgICAgIGVycm9yOiB0aGlzLm9uRXJyb3IuYmluZCh0aGlzKSwKICAgICAgICAgICAgb3V0cHV0OiB0aGlzLm9uT3V0cHV0LmJpbmQodGhpcykKICAgICAgICB9KQoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBwcml2YXRlIG9uRXJyb3IoZXJyb3I6IGFueSkgewogICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKCiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBBdWRpb0RlY29kZXIgaGFzIGFuIGVycm9yICR7InRvU3RyaW5nIiBpbiBlcnJvciA/IGVycm9yLnRvU3RyaW5nKCkgOiBgJHtlcnJvcn1gfWAsIHsgdHlwZTogImZhdGFsIiB9KQogICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpCiAgICB9CgogICAgcHJpdmF0ZSBvbk91dHB1dChzYW1wbGU6IEF1ZGlvRGF0YSkgewogICAgICAgIHRoaXMuYmFzZS5zdWJtaXRTYW1wbGUoc2FtcGxlKQogICAgfQoKICAgIHNldHVwKHNldHVwOiBBdWRpb1BsYXllclNldHVwKTogdm9pZCB7CiAgICAgICAgaWYgKCJzZXR1cCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2Uuc2V0dXAgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICB0aGlzLmJhc2Uuc2V0dXAoc2V0dXApCiAgICAgICAgfQoKICAgICAgICB0aGlzLmRlY29kZXIuY29uZmlndXJlKHsKICAgICAgICAgICAgY29kZWM6ICJvcHVzIiwKICAgICAgICAgICAgbnVtYmVyT2ZDaGFubmVsczogc2V0dXAuY2hhbm5lbHMsCiAgICAgICAgICAgIHNhbXBsZVJhdGU6IHNldHVwLnNhbXBsZVJhdGUKICAgICAgICB9KQogICAgfQoKICAgIHByaXZhdGUgaXNGaXJzdFBhY2tldCA9IHRydWUKCiAgICBkZWNvZGVBbmRQbGF5KHVuaXQ6IEF1ZGlvRGVjb2RlVW5pdCk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLmVycm9yZWQpIHsKICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygiQ2Fubm90IHN1Ym1pdCBhdWRpbyBkZWNvZGUgdW5pdCBiZWNhdXNlIHRoZSBzdHJlYW0gZXJyb3JlZCIpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgRW5jb2RlZEF1ZGlvQ2h1bmsoewogICAgICAgICAgICB0eXBlOiB0aGlzLmlzRmlyc3RQYWNrZXQgPyAia2V5IiA6ICJkZWx0YSIsCiAgICAgICAgICAgIGRhdGE6IHVuaXQuZGF0YSwKICAgICAgICAgICAgdGltZXN0YW1wOiB1bml0LnRpbWVzdGFtcE1pY3Jvc2Vjb25kcywKICAgICAgICAgICAgZHVyYXRpb246IHVuaXQuZHVyYXRpb25NaWNyb3NlY29uZHMsCiAgICAgICAgfSkKICAgICAgICB0aGlzLmlzRmlyc3RQYWNrZXQgPSBmYWxzZQoKICAgICAgICB0aGlzLmRlY29kZXIuZGVjb2RlKGNodW5rKQogICAgfQoKICAgIGNsZWFudXAoKTogdm9pZCB7CiAgICAgICAgaWYgKCJjbGVhbnVwIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5jbGVhbnVwID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgdGhpcy5iYXNlLmNsZWFudXAoKQogICAgICAgIH0KCiAgICAgICAgdGhpcy5kZWNvZGVyLmNsb3NlKCkKICAgIH0KCiAgICBnZXRCYXNlKCk6IFBpcGUgfCBudWxsIHsKICAgICAgICByZXR1cm4gdGhpcy5iYXNlCiAgICB9Cgp9"},{"path":"web/stream/audio/audio_element.ts","sha256":"df3a27df35b40173e07b4b5a64bc25f3fbbf3852ab08eab3780d8256e6da976e","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IEF1ZGlvUGxheWVyU2V0dXAsIFRyYWNrQXVkaW9QbGF5ZXIgfSBmcm9tICIuL2luZGV4LmpzIjsKCmV4cG9ydCBjbGFzcyBBdWRpb0VsZW1lbnRQbGF5ZXIgaW1wbGVtZW50cyBUcmFja0F1ZGlvUGxheWVyIHsKCiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJhdWRpb3RyYWNrIgoKICAgIHN0YXRpYyBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIkhUTUxBdWRpb0VsZW1lbnQiIGluIGdsb2JhbE9iamVjdCgpICYmICJzcmNPYmplY3QiIGluIEhUTUxBdWRpb0VsZW1lbnQucHJvdG90eXBlLAogICAgICAgIH0KICAgIH0KCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZyA9ICJhdWRpb19lbGVtZW50IgoKICAgIHByaXZhdGUgYXVkaW9FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYXVkaW8iKQogICAgcHJpdmF0ZSBvbGRUcmFjazogTWVkaWFTdHJlYW1UcmFjayB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHN0cmVhbSA9IG5ldyBNZWRpYVN0cmVhbSgpCgogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgdGhpcy5pbXBsZW1lbnRhdGlvbk5hbWUgPSAiYXVkaW9fZWxlbWVudCIKCiAgICAgICAgdGhpcy5hdWRpb0VsZW1lbnQuY2xhc3NMaXN0LmFkZCgiYXVkaW8tc3RyZWFtIikKICAgICAgICB0aGlzLmF1ZGlvRWxlbWVudC5wcmVsb2FkID0gIm5vbmUiCiAgICAgICAgdGhpcy5hdWRpb0VsZW1lbnQuY29udHJvbHMgPSBmYWxzZQogICAgICAgIHRoaXMuYXVkaW9FbGVtZW50LmF1dG9wbGF5ID0gdHJ1ZQogICAgICAgIHRoaXMuYXVkaW9FbGVtZW50Lm11dGVkID0gdHJ1ZQogICAgICAgIHRoaXMuYXVkaW9FbGVtZW50LnNyY09iamVjdCA9IHRoaXMuc3RyZWFtCgogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKQogICAgfQoKICAgIHNldHVwKF9zZXR1cDogQXVkaW9QbGF5ZXJTZXR1cCkgewogICAgICAgIHJldHVybiB0cnVlCiAgICB9CiAgICBjbGVhbnVwKCk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLm9sZFRyYWNrKSB7CiAgICAgICAgICAgIHRoaXMuc3RyZWFtLnJlbW92ZVRyYWNrKHRoaXMub2xkVHJhY2spCiAgICAgICAgICAgIHRoaXMub2xkVHJhY2sgPSBudWxsCiAgICAgICAgfQogICAgICAgIHRoaXMuYXVkaW9FbGVtZW50LnNyY09iamVjdCA9IG51bGwKICAgIH0KCiAgICBzZXRUcmFjayh0cmFjazogTWVkaWFTdHJlYW1UcmFjayk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLm9sZFRyYWNrKSB7CiAgICAgICAgICAgIHRoaXMuc3RyZWFtLnJlbW92ZVRyYWNrKHRoaXMub2xkVHJhY2spCiAgICAgICAgICAgIHRoaXMub2xkVHJhY2sgPSBudWxsCiAgICAgICAgfQoKICAgICAgICB0aGlzLnN0cmVhbS5hZGRUcmFjayh0cmFjaykKICAgICAgICB0aGlzLm9sZFRyYWNrID0gdHJhY2sKICAgIH0KCiAgICBvblVzZXJJbnRlcmFjdGlvbigpOiB2b2lkIHsKICAgICAgICB0aGlzLmF1ZGlvRWxlbWVudC5tdXRlZCA9IGZhbHNlCiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmF1ZGlvRWxlbWVudCkKICAgIH0KICAgIHVubW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzLmF1ZGlvRWxlbWVudCkKICAgIH0KCiAgICBnZXRCYXNlKCk6IFBpcGUgfCBudWxsIHsKICAgICAgICByZXR1cm4gbnVsbAogICAgfQp9"},{"path":"web/stream/audio/depacketize_pipe.ts","sha256":"1cf4ff6b95fd492e2b3922ce71c6a623552e3702d0ce911a13582f6275e3d855","contentBase64":"aW1wb3J0IHsgUGlwZSwgUGlwZUluZm8gfSBmcm9tICIuLi9waXBlbGluZS9pbmRleC5qcyI7CmltcG9ydCB7IGFkZFBpcGVQYXNzdGhyb3VnaCwgRGF0YVBpcGUgfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IEF1ZGlvUGxheWVyU2V0dXAsIERhdGFBdWRpb1BsYXllciB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGNsYXNzIERlcGFja2V0aXplQXVkaW9QaXBlIGltcGxlbWVudHMgRGF0YVBpcGUgewoKICAgIHN0YXRpYyBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogdHJ1ZQogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgcmVhZG9ubHkgYmFzZVR5cGUgPSAiYXVkaW9kYXRhIgogICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAid3NkYXRhIgoKICAgIHJlYWRvbmx5IGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nCgogICAgcHJpdmF0ZSBiYXNlOiBEYXRhQXVkaW9QbGF5ZXIKICAgIHByaXZhdGUgdGltZXN0YW1wTWljcm9zZWNvbmRzOiBudW1iZXIgPSAwCiAgICBwcml2YXRlIHBhY2tldER1cmF0aW9uTWljcm9zZWNvbmRzOiBudW1iZXIgPSAwCgogICAgY29uc3RydWN0b3IoYmFzZTogRGF0YUF1ZGlvUGxheWVyKSB7CiAgICAgICAgdGhpcy5pbXBsZW1lbnRhdGlvbk5hbWUgPSBgZGVwYWNrZXRpemVfYXVkaW8gLT4gJHtiYXNlLmltcGxlbWVudGF0aW9uTmFtZX1gCiAgICAgICAgdGhpcy5iYXNlID0gYmFzZQoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBzZXR1cChzZXR1cDogQXVkaW9QbGF5ZXJTZXR1cCkgewogICAgICAgIHRoaXMucGFja2V0RHVyYXRpb25NaWNyb3NlY29uZHMgPSBzZXR1cC5zYW1wbGVzUGVyRnJhbWUgKiAxXzAwMF8wMDAgLyBzZXR1cC5zYW1wbGVSYXRlCgogICAgICAgIGlmICgic2V0dXAiIGluIHRoaXMuYmFzZSAmJiB0eXBlb2YgdGhpcy5iYXNlLnNldHVwID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFzZS5zZXR1cCguLi5hcmd1bWVudHMpCiAgICAgICAgfQogICAgfQoKICAgIHN1Ym1pdFBhY2tldChidWZmZXI6IEFycmF5QnVmZmVyKSB7CiAgICAgICAgdGhpcy5iYXNlLmRlY29kZUFuZFBsYXkoewogICAgICAgICAgICBkYXRhOiBidWZmZXIsCiAgICAgICAgICAgIHRpbWVzdGFtcE1pY3Jvc2Vjb25kczogMCwKICAgICAgICAgICAgZHVyYXRpb25NaWNyb3NlY29uZHM6IDAsCiAgICAgICAgfSkKCiAgICAgICAgdGhpcy50aW1lc3RhbXBNaWNyb3NlY29uZHMgKz0gdGhpcy5wYWNrZXREdXJhdGlvbk1pY3Jvc2Vjb25kcwogICAgfQoKICAgIGdldEJhc2UoKTogUGlwZSB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLmJhc2UKICAgIH0KfQ=="},{"path":"web/stream/audio/index.ts","sha256":"c9ecf0272bc1856eb9281bdcce5ad924e16b1e7e708a0d540bccb578e8e26a04","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAiLi4vLi4vY29tcG9uZW50L2luZGV4LmpzIgppbXBvcnQgeyBQaXBlIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiCgpleHBvcnQgdHlwZSBBdWRpb1BsYXllclNldHVwID0gewogICAgY2hhbm5lbHM6IG51bWJlcgogICAgc2FtcGxlUmF0ZTogbnVtYmVyCiAgICBzdHJlYW1zOiBudW1iZXIKICAgIGNvdXBsZWRTdHJlYW1zOiBudW1iZXIKICAgIHNhbXBsZXNQZXJGcmFtZTogbnVtYmVyCiAgICBtYXBwaW5nOiBBcnJheTxudW1iZXI+Cn0KCmV4cG9ydCBpbnRlcmZhY2UgQXVkaW9QbGF5ZXIgZXh0ZW5kcyBDb21wb25lbnQsIFBpcGUgewogICAgcmVhZG9ubHkgaW1wbGVtZW50YXRpb25OYW1lOiBzdHJpbmcKCiAgICBzZXR1cChzZXR1cDogQXVkaW9QbGF5ZXJTZXR1cCk6IHZvaWQKICAgIGNsZWFudXAoKTogdm9pZAoKICAgIG9uVXNlckludGVyYWN0aW9uKCk6IHZvaWQKCiAgICBtb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZAogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZAp9CgpleHBvcnQgaW50ZXJmYWNlIFRyYWNrQXVkaW9QbGF5ZXIgZXh0ZW5kcyBQaXBlIHsKICAgIC8vIHN0YXRpYyByZWFkb25seSB0eXBlID0gImF1ZGlvdHJhY2siCgogICAgc2V0VHJhY2sodHJhY2s6IE1lZGlhU3RyZWFtVHJhY2spOiB2b2lkCn0KCmV4cG9ydCB0eXBlIEF1ZGlvRGVjb2RlVW5pdCA9IHsKICAgIHRpbWVzdGFtcE1pY3Jvc2Vjb25kczogbnVtYmVyCiAgICBkdXJhdGlvbk1pY3Jvc2Vjb25kczogbnVtYmVyCiAgICBkYXRhOiBBcnJheUJ1ZmZlcgp9CgpleHBvcnQgaW50ZXJmYWNlIERhdGFBdWRpb1BsYXllciBleHRlbmRzIFBpcGUgewogICAgLy8gc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAiYXVkaW9kYXRhIgoKICAgIC8vIERhdGEgbGlrZSBodHRwczovL2dpdGh1Yi5jb20vbW9vbmxpZ2h0LXN0cmVhbS9tb29ubGlnaHQtY29tbW9uLWMvYmxvYi9iMTI2ZTQ4MWExOTVmZGM3MTUyZDIxMWRlZjE3MTkwZTM0MzRiY2NlL3NyYy9MaW1lbGlnaHQuaCNMMzU2CiAgICAvLyBUaGUgdW5pdCBpcyBvbmx5IGJvcnJvd2VkCiAgICBkZWNvZGVBbmRQbGF5KHVuaXQ6IEF1ZGlvRGVjb2RlVW5pdCk6IHZvaWQKfQoKZXhwb3J0IGludGVyZmFjZSBTYW1wbGVBdWRpb1BsYXllciBleHRlbmRzIFBpcGUgewogICAgLy8gc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAiYXVkaW9zYW1wbGUiCgogICAgc3VibWl0U2FtcGxlKHNhbXBsZTogQXVkaW9EYXRhKTogdm9pZAp9CgpleHBvcnQgdHlwZSBBdWRpb1BjbVVuaXQgPSB7CiAgICB0aW1lc3RhbXBNaWNyb3NlY29uZHM6IG51bWJlcgogICAgZHVyYXRpb25NaWNyb3NlY29uZHM6IG51bWJlcgogICAgY2hhbm5lbERhdGE6IEFycmF5PEZsb2F0MzJBcnJheT4KfQoKZXhwb3J0IGludGVyZmFjZSBQY21BdWRpb1BsYXllciBleHRlbmRzIFBpcGUgewogICAgLy8gc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAiYXVkaW9wY20iCgogICAgLy8gVGhlIHVuaXQgaXMgb25seSBib3Jyb3dlZAogICAgcGxheVBjbSh1bml0OiBBdWRpb1BjbVVuaXQpOiB2b2lkCn0KCmV4cG9ydCBpbnRlcmZhY2UgTm9kZUF1ZGlvUGxheWVyIGV4dGVuZHMgUGlwZSB7CiAgICAvLyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJhdWRpb25vZGUiCgogICAgc2V0U291cmNlKHNvdXJjZTogQXVkaW9Ob2RlKTogdm9pZAoKICAgIGdldEF1ZGlvQ29udGV4dCgpOiBBdWRpb0NvbnRleHQKfQ=="},{"path":"web/stream/audio/media_stream_track_generator_pipe.ts","sha256":"b70c9568aa49494485b6fb9fae536279cf8e31e0a5eea4b3a679ea048683ad13","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IFNhbXBsZUF1ZGlvUGxheWVyLCBUcmFja0F1ZGlvUGxheWVyIH0gZnJvbSAiLi9pbmRleC5qcyI7CgpleHBvcnQgY2xhc3MgQXVkaW9NZWRpYVN0cmVhbVRyYWNrR2VuZXJhdG9yUGlwZSBpbXBsZW1lbnRzIFNhbXBsZUF1ZGlvUGxheWVyIHsKCiAgICBzdGF0aWMgcmVhZG9ubHkgYmFzZVR5cGUgPSAiYXVkaW90cmFjayIKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gImF1ZGlvc2FtcGxlIgoKICAgIHN0YXRpYyBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIk1lZGlhU3RyZWFtVHJhY2tHZW5lcmF0b3IiIGluIGdsb2JhbE9iamVjdCgpCiAgICAgICAgfQogICAgfQoKICAgIGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nCgogICAgcHJpdmF0ZSBiYXNlOiBUcmFja0F1ZGlvUGxheWVyCgogICAgcHJpdmF0ZSB0cmFja0dlbmVyYXRvcjogTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvcgogICAgcHJpdmF0ZSB3cml0ZXI6IFdyaXRhYmxlU3RyZWFtRGVmYXVsdFdyaXRlcjxBdWRpb0RhdGE+CgogICAgY29uc3RydWN0b3IoYmFzZTogVHJhY2tBdWRpb1BsYXllcikgewogICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb25OYW1lID0gYGF1ZGlvX21lZGlhX3N0cmVhbV90cmFja19nZW5lcmF0b3IgLT4gJHtiYXNlLmltcGxlbWVudGF0aW9uTmFtZX1gCiAgICAgICAgdGhpcy5iYXNlID0gYmFzZQoKICAgICAgICB0aGlzLnRyYWNrR2VuZXJhdG9yID0gbmV3IE1lZGlhU3RyZWFtVHJhY2tHZW5lcmF0b3IoeyBraW5kOiAiYXVkaW8iIH0pCiAgICAgICAgdGhpcy53cml0ZXIgPSB0aGlzLnRyYWNrR2VuZXJhdG9yLndyaXRhYmxlLmdldFdyaXRlcigpCgogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKQogICAgfQoKICAgIHByaXZhdGUgaXNGaXJzdFNhbXBsZSA9IHRydWUKICAgIHN1Ym1pdFNhbXBsZShzYW1wbGU6IEF1ZGlvRGF0YSk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLmlzRmlyc3RTYW1wbGUpIHsKICAgICAgICAgICAgdGhpcy5pc0ZpcnN0U2FtcGxlID0gZmFsc2UKCiAgICAgICAgICAgIHRoaXMuYmFzZS5zZXRUcmFjayh0aGlzLnRyYWNrR2VuZXJhdG9yKQogICAgICAgIH0KICAgICAgICB0aGlzLndyaXRlci53cml0ZShzYW1wbGUpCiAgICB9CgogICAgZ2V0QmFzZSgpOiBQaXBlIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZQogICAgfQoKfQ=="},{"path":"web/stream/audio/opus_decoder_pipe.ts","sha256":"b6017672dc03749bca954ede1a2e687376a4c10cb789f0c6af9af0d063778f92","contentBase64":"aW1wb3J0IHsgT3B1c011bHRpc3RyZWFtRGVjb2RlciB9IGZyb20gIi4uLy4uL2xpYm9wdXMvaW5kZXguanMiOwppbXBvcnQgbG9hZE9wdXMgZnJvbSAiLi4vLi4vbGlib3B1cy9saWJvcHVzLmpzIjsKaW1wb3J0IHsgTWFpbk1vZHVsZSBhcyBPcHVzTW9kdWxlIH0gZnJvbSAiLi4vLi4vbGlib3B1cy9saWJvcHVzLmpzIjsKaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAiLi4vbG9nLmpzIjsKaW1wb3J0IHsgUGlwZSwgUGlwZUluZm8gfSBmcm9tICIuLi9waXBlbGluZS9pbmRleC5qcyI7CmltcG9ydCB7IGFkZFBpcGVQYXNzdGhyb3VnaCB9IGZyb20gIi4uL3BpcGVsaW5lL3BpcGVzLmpzIjsKaW1wb3J0IHsgQXVkaW9EZWNvZGVVbml0LCBBdWRpb1BsYXllclNldHVwLCBEYXRhQXVkaW9QbGF5ZXIsIFBjbUF1ZGlvUGxheWVyIH0gZnJvbSAiLi9pbmRleC5qcyI7CgovLyBUT0RPOiB1c2UgQXVkaW9Xb3JrbGV0cz8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dlYl9BdWRpb19BUEkvVXNpbmdfQXVkaW9Xb3JrbGV0CgpleHBvcnQgY2xhc3MgT3B1c0F1ZGlvRGVjb2RlclBpcGUgaW1wbGVtZW50cyBEYXRhQXVkaW9QbGF5ZXIgewoKICAgIHN0YXRpYyBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+IHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogdHJ1ZQogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgcmVhZG9ubHkgYmFzZVR5cGUgPSAiYXVkaW9wY20iCiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJhdWRpb2RhdGEiCgogICAgcmVhZG9ubHkgaW1wbGVtZW50YXRpb25OYW1lOiBzdHJpbmcKCiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyIHwgbnVsbCA9IG51bGwKCiAgICBwcml2YXRlIGJhc2U6IFBjbUF1ZGlvUGxheWVyCgogICAgcHJpdmF0ZSBlcnJvcmVkOiBib29sZWFuID0gZmFsc2UKCiAgICBwcml2YXRlIGRlY29kZXI6IE9wdXNNdWx0aXN0cmVhbURlY29kZXIgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgb3B1c01vZHVsZTogT3B1c01vZHVsZSB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHNldHVwRGF0YTogQXVkaW9QbGF5ZXJTZXR1cCB8IG51bGwgPSBudWxsCgogICAgcHJpdmF0ZSBidWZmZXI6IEZsb2F0MzJBcnJheSA9IG5ldyBGbG9hdDMyQXJyYXkoW10pCiAgICBwcml2YXRlIGNoYW5uZWxCdWZmZXJzOiBBcnJheTxGbG9hdDMyQXJyYXk+ID0gW10KCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBQY21BdWRpb1BsYXllciwgbG9nZ2VyPzogTG9nZ2VyKSB7CiAgICAgICAgbG9hZE9wdXMoKS50aGVuKG1vZHVsZSA9PiB0aGlzLm9wdXNNb2R1bGUgPSBtb2R1bGUpCgogICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8/IG51bGwKCiAgICAgICAgdGhpcy5pbXBsZW1lbnRhdGlvbk5hbWUgPSBgb3B1c19kZWNvZGUgLT4gJHtiYXNlLmltcGxlbWVudGF0aW9uTmFtZX1gCiAgICAgICAgdGhpcy5iYXNlID0gYmFzZQoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBzZXR1cChzZXR1cDogQXVkaW9QbGF5ZXJTZXR1cCkgewogICAgICAgIHRoaXMuc2V0dXBEYXRhID0gc2V0dXAKCiAgICAgICAgaWYgKCJzZXR1cCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2Uuc2V0dXAgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICByZXR1cm4gdGhpcy5iYXNlLnNldHVwKC4uLmFyZ3VtZW50cykKICAgICAgICB9CiAgICB9CgogICAgZGVjb2RlQW5kUGxheSh1bml0OiBBdWRpb0RlY29kZVVuaXQpOiB2b2lkIHsKICAgICAgICBpZiAodGhpcy5lcnJvcmVkKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgaWYgKCF0aGlzLnNldHVwRGF0YSkgewogICAgICAgICAgICB0aGlzLmVycm9yZWQgPSB0cnVlCiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiRmFpbGVkIHRvIHBsYXkgYXVkaW8gc2FtcGxlIGJlY2F1c2UgYXVkaW8gcGxheWVyIGlzIG5vdCBpbml0aWFsaXplZCIpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgaWYgKCF0aGlzLmRlY29kZXIpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLm9wdXNNb2R1bGUpIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgdGhpcy5kZWNvZGVyID0gbmV3IE9wdXNNdWx0aXN0cmVhbURlY29kZXIodGhpcy5vcHVzTW9kdWxlLCB0aGlzLnNldHVwRGF0YS5zYW1wbGVSYXRlLCB0aGlzLnNldHVwRGF0YS5jaGFubmVscywgdGhpcy5zZXR1cERhdGEuc3RyZWFtcywgdGhpcy5zZXR1cERhdGEuY291cGxlZFN0cmVhbXMsIHRoaXMuc2V0dXBEYXRhLm1hcHBpbmcpCiAgICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkgewogICAgICAgICAgICAgICAgdGhpcy5lcnJvcmVkID0gdHJ1ZQoKICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgRmFpbGVkIHRvIGluaXRpYWxpemUgb3B1cyBkZWNvZGVyOiAkeyJ0b1N0cmluZyIgaW4gZSAmJiB0eXBlb2YgZS50b1N0cmluZyA9PSAiZnVuY3Rpb24iID8gZS50b1N0cmluZygpIDogZX1gCiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcobWVzc2FnZSwgeyB0eXBlOiAiaW5mb3JtRXJyb3IiIH0pCgogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5idWZmZXIgPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMuc2V0dXBEYXRhLnNhbXBsZXNQZXJGcmFtZSAqIHRoaXMuc2V0dXBEYXRhLmNoYW5uZWxzKQogICAgICAgIH0KCiAgICAgICAgLy8gLS0gRGVjb2RlIHNhbXBsZXMKICAgICAgICBsZXQgc2FtcGxlc0RlY29kZWQKICAgICAgICB0cnkgewogICAgICAgICAgICBzYW1wbGVzRGVjb2RlZCA9IHRoaXMuZGVjb2Rlci5kZWNvZGVGbG9hdCh1bml0LmRhdGEsIHRoaXMuYnVmZmVyLCB0aGlzLnNldHVwRGF0YS5zYW1wbGVzUGVyRnJhbWUsIGZhbHNlKQogICAgICAgIH0gY2F0Y2ggKGU6IGFueSkgewogICAgICAgICAgICB0aGlzLmVycm9yZWQgPSB0cnVlCgogICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYEZhaWxlZCB0byBkZWNvZGUgYXVkaW8gc2FtcGxlOiAkeyJ0b1N0cmluZyIgaW4gZSAmJiB0eXBlb2YgZS50b1N0cmluZyA9PSAiZnVuY3Rpb24iID8gZS50b1N0cmluZygpIDogZX1gCiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhtZXNzYWdlLCB7IHR5cGU6ICJpbmZvcm1FcnJvciIgfSkKCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgLy8gLS0gRGUtaW50ZXJsZWF2ZSBpbnRlcmxlYXZlZCBQQ00KCiAgICAgICAgLy8gSW5pdGlhbGl6ZSBjaGFubmVsIGFycmF5cwogICAgICAgIGNvbnN0IGNoYW5uZWxzID0gdGhpcy5zZXR1cERhdGEuY2hhbm5lbHMKCiAgICAgICAgaWYgKHRoaXMuY2hhbm5lbEJ1ZmZlcnMubGVuZ3RoICE9IGNoYW5uZWxzKSB7CiAgICAgICAgICAgIHRoaXMuY2hhbm5lbEJ1ZmZlcnMgPSBuZXcgQXJyYXkoY2hhbm5lbHMpCgogICAgICAgICAgICBmb3IgKGxldCBjaGFubmVsSW5kZXggPSAwOyBjaGFubmVsSW5kZXggPCBjaGFubmVsczsgY2hhbm5lbEluZGV4KyspIHsKICAgICAgICAgICAgICAgIHRoaXMuY2hhbm5lbEJ1ZmZlcnNbY2hhbm5lbEluZGV4XSA9IG5ldyBGbG9hdDMyQXJyYXkoc2FtcGxlc0RlY29kZWQpCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGZvciAobGV0IGNoYW5uZWxJbmRleCA9IDA7IGNoYW5uZWxJbmRleCA8IGNoYW5uZWxzOyBjaGFubmVsSW5kZXgrKykgewogICAgICAgICAgICBpZiAodGhpcy5jaGFubmVsQnVmZmVyc1tjaGFubmVsSW5kZXhdLmJ5dGVMZW5ndGggPCBzYW1wbGVzRGVjb2RlZCkgewogICAgICAgICAgICAgICAgdGhpcy5jaGFubmVsQnVmZmVyc1tjaGFubmVsSW5kZXhdID0gbmV3IEZsb2F0MzJBcnJheShzYW1wbGVzRGVjb2RlZCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChsZXQgc2FtcGxlID0gMDsgc2FtcGxlIDwgc2FtcGxlc0RlY29kZWQ7IHNhbXBsZSsrKSB7CiAgICAgICAgICAgICAgICB0aGlzLmNoYW5uZWxCdWZmZXJzW2NoYW5uZWxJbmRleF1bc2FtcGxlXSA9IHRoaXMuYnVmZmVyWyhzYW1wbGUgKiBjaGFubmVscykgKyBjaGFubmVsSW5kZXhdCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIC0tIFBhc3MgZGF0YSB0byBuZXh0IGRlY29kZXIKICAgICAgICB0aGlzLmJhc2UucGxheVBjbSh7CiAgICAgICAgICAgIGR1cmF0aW9uTWljcm9zZWNvbmRzOiB1bml0LmR1cmF0aW9uTWljcm9zZWNvbmRzLAogICAgICAgICAgICB0aW1lc3RhbXBNaWNyb3NlY29uZHM6IHVuaXQudGltZXN0YW1wTWljcm9zZWNvbmRzLAogICAgICAgICAgICBjaGFubmVsRGF0YTogdGhpcy5jaGFubmVsQnVmZmVycwogICAgICAgIH0pCiAgICB9CgogICAgY2xlYW51cCgpIHsKICAgICAgICB0aGlzLmRlY29kZXI/LmRlc3Ryb3koKQoKICAgICAgICBpZiAoImNsZWFudXAiIGluIHRoaXMuYmFzZSAmJiB0eXBlb2YgdGhpcy5iYXNlLmNsZWFudXAgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICByZXR1cm4gdGhpcy5iYXNlLmNsZWFudXAoLi4uYXJndW1lbnRzKQogICAgICAgIH0KICAgIH0KCiAgICBnZXRCYXNlKCk6IFBpcGUgfCBudWxsIHsKICAgICAgICByZXR1cm4gdGhpcy5iYXNlCiAgICB9Cn0="},{"path":"web/stream/audio/pipeline.ts","sha256":"ad53deddfc297f8ede40da67369981ca5c895af793092e90de032187b6d8b859","contentBase64":"aW1wb3J0IHsgQXVkaW9QbGF5ZXIsIERhdGFBdWRpb1BsYXllciwgVHJhY2tBdWRpb1BsYXllciB9IGZyb20gIi4vaW5kZXguanMiCmltcG9ydCB7IEF1ZGlvRGVjb2RlclBpcGUgfSBmcm9tICIuL2F1ZGlvX2RlY29kZXJfcGlwZS5qcyIKaW1wb3J0IHsgQXVkaW9FbGVtZW50UGxheWVyIH0gZnJvbSAiLi9hdWRpb19lbGVtZW50LmpzIgppbXBvcnQgeyBBdWRpb01lZGlhU3RyZWFtVHJhY2tHZW5lcmF0b3JQaXBlIH0gZnJvbSAiLi9tZWRpYV9zdHJlYW1fdHJhY2tfZ2VuZXJhdG9yX3BpcGUuanMiCmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyIKaW1wb3J0IHsgYnVpbGRQaXBlbGluZSwgZ2F0aGVyUGlwZUluZm8sIE91dHB1dFBpcGVTdGF0aWMsIFBpcGVJbmZvU3RhdGljLCBQaXBlU3RhdGljIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiCmltcG9ydCB7IE9wdXNBdWRpb0RlY29kZXJQaXBlIH0gZnJvbSAiLi9vcHVzX2RlY29kZXJfcGlwZS5qcyIKaW1wb3J0IHsgQXVkaW9CdWZmZXJQaXBlIGFzIEF1ZGlvUGNtQnVmZmVyUGlwZSB9IGZyb20gIi4vYXVkaW9fYnVmZmVyX3BpcGUuanMiCmltcG9ydCB7IENvbnRleHREZXN0aW5hdGlvbk5vZGVBdWRpb1BsYXllciB9IGZyb20gIi4vYXVkaW9fY29udGV4dF9kZXN0aW5hdGlvbi5qcyIKaW1wb3J0IHsgQXVkaW9Db250ZXh0VHJhY2tQaXBlIH0gZnJvbSAiLi9hdWRpb19jb250ZXh0X3RyYWNrX3BpcGUuanMiCmltcG9ydCB7IERlcGFja2V0aXplQXVkaW9QaXBlIH0gZnJvbSAiLi9kZXBhY2tldGl6ZV9waXBlLmpzIgppbXBvcnQgeyBEYXRhUGlwZSB9IGZyb20gIi4uL3BpcGVsaW5lL3BpcGVzLmpzIgoKY29uc3QgQVVESU9fUExBWUVSUzogQXJyYXk8QXVkaW9QbGF5ZXJTdGF0aWM+ID0gWwogICAgQXVkaW9FbGVtZW50UGxheWVyLAogICAgQ29udGV4dERlc3RpbmF0aW9uTm9kZUF1ZGlvUGxheWVyCl0KCnR5cGUgUGlwZWxpbmVSZXN1bHQ8VD4gPSB7IGF1ZGlvUGxheWVyOiBULCBlcnJvcjogZmFsc2UgfSB8IHsgYXVkaW9QbGF5ZXI6IG51bGwsIGVycm9yOiB0cnVlIH0KCmludGVyZmFjZSBBdWRpb1BsYXllclN0YXRpYyBleHRlbmRzIFBpcGVJbmZvU3RhdGljLCBPdXRwdXRQaXBlU3RhdGljIHsgfQoKZXhwb3J0IHR5cGUgQXVkaW9QaXBlbGluZU9wdGlvbnMgPSB7Cn0KCnR5cGUgUGlwZWxpbmUgPSB7IGlucHV0OiBzdHJpbmcsIHBpcGVzOiBBcnJheTxQaXBlU3RhdGljPiwgcGxheWVyOiBBdWRpb1BsYXllclN0YXRpYyB9Cgpjb25zdCBQSVBFTElORVM6IEFycmF5PFBpcGVsaW5lPiA9IFsKICAgIC8vIENvbnZlcnQgdHJhY2sgLT4gYXVkaW9fZWxlbWVudCwgQWxsIEJyb3dzZXJzCiAgICB7IGlucHV0OiAiYXVkaW90cmFjayIsIHBpcGVzOiBbXSwgcGxheWVyOiBBdWRpb0VsZW1lbnRQbGF5ZXIgfSwKICAgIC8vIENvbnZlcnQgZGF0YSAtPiBhdWRpb19zYW1wbGUgLT4gdHJhY2sgKE1lZGlhU3RyZWFtVHJhY2tHZW5lcmF0b3IpIC0+IGF1ZGlvX2VsZW1lbnQsIENocm9taXVtCiAgICB7IGlucHV0OiAiZGF0YSIsIHBpcGVzOiBbRGVwYWNrZXRpemVBdWRpb1BpcGUsIEF1ZGlvRGVjb2RlclBpcGUsIEF1ZGlvTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvclBpcGVdLCBwbGF5ZXI6IEF1ZGlvRWxlbWVudFBsYXllciB9LAogICAgLy8gQ29udmVydCBkYXRhIC0+IGF1ZGlvX3NhbXBsZSAtPiBhdWRpb19zYW1wbGVfcGNtIC0+IGF1ZGlvX2NvbnRleHRfZWxlbWVudCAtPiBhdWRpb19lbGVtZW50LCBTYWZhcmkgLyBGaXJlZm94CiAgICB7IGlucHV0OiAiZGF0YSIsIHBpcGVzOiBbRGVwYWNrZXRpemVBdWRpb1BpcGUsIE9wdXNBdWRpb0RlY29kZXJQaXBlLCBBdWRpb1BjbUJ1ZmZlclBpcGUsIEF1ZGlvQ29udGV4dFRyYWNrUGlwZV0sIHBsYXllcjogQXVkaW9FbGVtZW50UGxheWVyIH0sCiAgICAvLyBDb252ZXJ0IGRhdGEgLT4gYXVkaW9fc2FtcGxlIC0+IGF1ZGlvX3NhbXBsZV9wY20gLT4gYXVkaW9fY29udGV4dF9lbGVtZW50IC0+IGF1ZGlvX2VsZW1lbnQsIFNhZmFyaSAvIEZpcmVmb3gKICAgIHsgaW5wdXQ6ICJkYXRhIiwgcGlwZXM6IFtEZXBhY2tldGl6ZUF1ZGlvUGlwZSwgT3B1c0F1ZGlvRGVjb2RlclBpcGUsIEF1ZGlvUGNtQnVmZmVyUGlwZV0sIHBsYXllcjogQ29udGV4dERlc3RpbmF0aW9uTm9kZUF1ZGlvUGxheWVyIH0sCl0KCmV4cG9ydCBmdW5jdGlvbiBidWlsZEF1ZGlvUGlwZWxpbmUodHlwZTogImF1ZGlvdHJhY2siLCBzZXR0aW5nczogQXVkaW9QaXBlbGluZU9wdGlvbnMsIGxvZ2dlcj86IExvZ2dlcik6IFByb21pc2U8UGlwZWxpbmVSZXN1bHQ8VHJhY2tBdWRpb1BsYXllciAmIEF1ZGlvUGxheWVyPj4KZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQXVkaW9QaXBlbGluZSh0eXBlOiAiZGF0YSIsIHNldHRpbmdzOiBBdWRpb1BpcGVsaW5lT3B0aW9ucywgbG9nZ2VyPzogTG9nZ2VyKTogUHJvbWlzZTxQaXBlbGluZVJlc3VsdDxEYXRhUGlwZSAmIEF1ZGlvUGxheWVyPj4KCmV4cG9ydCBhc3luYyBmdW5jdGlvbiBidWlsZEF1ZGlvUGlwZWxpbmUodHlwZTogc3RyaW5nLCBzZXR0aW5nczogQXVkaW9QaXBlbGluZU9wdGlvbnMsIGxvZ2dlcj86IExvZ2dlcik6IFByb21pc2U8UGlwZWxpbmVSZXN1bHQ8QXVkaW9QbGF5ZXI+PiB7CiAgICBjb25zdCBwaXBlc0luZm8gPSBhd2FpdCBnYXRoZXJQaXBlSW5mbygpCgogICAgaWYgKGxvZ2dlcikgewogICAgICAgIC8vIFByaW50IHN1cHBvcnRlZCBwaXBlcwogICAgICAgIGNvbnN0IGF1ZGlvUGxheWVySW5mb1Byb21pc2VzID0gW10KICAgICAgICBmb3IgKGNvbnN0IGF1ZGlvUGxheWVyIG9mIEFVRElPX1BMQVlFUlMpIHsKICAgICAgICAgICAgYXVkaW9QbGF5ZXJJbmZvUHJvbWlzZXMucHVzaChhdWRpb1BsYXllci5nZXRJbmZvKCkudGhlbihpbmZvID0+IFthdWRpb1BsYXllci5uYW1lLCBpbmZvXSkpCiAgICAgICAgfQogICAgICAgIGNvbnN0IGF1ZGlvUGxheWVySW5mbyA9IGF3YWl0IFByb21pc2UuYWxsKGF1ZGlvUGxheWVySW5mb1Byb21pc2VzKQoKICAgICAgICBsb2dnZXIuZGVidWcoYFN1cHBvcnRlZCBBdWRpbyBQbGF5ZXJzOiB7YCkKICAgICAgICBsZXQgaXNGaXJzdCA9IHRydWUKICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCBpbmZvXSBvZiBhdWRpb1BsYXllckluZm8pIHsKICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGAke2lzRmlyc3QgPyAiIiA6ICIsIn0iJHtuYW1lfSI6ICR7SlNPTi5zdHJpbmdpZnkoaW5mbyl9YCkKICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlCiAgICAgICAgfQogICAgICAgIGxvZ2dlci5kZWJ1ZyhgfWApCiAgICB9CgogICAgbG9nZ2VyPy5kZWJ1ZyhgQnVpbGRpbmcgYXVkaW8gcGlwZWxpbmUgd2l0aCBvdXRwdXQgIiR7dHlwZX0iYCkKCiAgICBsZXQgcGlwZWxpbmVzID0gUElQRUxJTkVTCgogICAgcGlwZWxpbmVMb29wOiBmb3IgKGNvbnN0IHBpcGVsaW5lIG9mIHBpcGVsaW5lcykgewogICAgICAgIGlmIChwaXBlbGluZS5pbnB1dCAhPSB0eXBlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAvLyBDaGVjayBpZiBzdXBwb3J0ZWQKICAgICAgICBmb3IgKGNvbnN0IHBpcGUgb2YgcGlwZWxpbmUucGlwZXMpIHsKICAgICAgICAgICAgY29uc3QgcGlwZUluZm8gPSBwaXBlc0luZm8uZ2V0KHBpcGUpCiAgICAgICAgICAgIGlmICghcGlwZUluZm8pIHsKICAgICAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoYEZhaWxlZCB0byBxdWVyeSBpbmZvIGZvciBhdWRpbyBwaXBlICR7cGlwZS5uYW1lfWApCiAgICAgICAgICAgICAgICBjb250aW51ZSBwaXBlbGluZUxvb3AKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCFwaXBlSW5mby5lbnZpcm9ubWVudFN1cHBvcnRlZCkgewogICAgICAgICAgICAgICAgY29udGludWUgcGlwZWxpbmVMb29wCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGNvbnN0IHBsYXllckluZm8gPSBhd2FpdCBwaXBlbGluZS5wbGF5ZXIuZ2V0SW5mbygpCiAgICAgICAgaWYgKCFwbGF5ZXJJbmZvKSB7CiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoYEZhaWxlZCB0byBxdWVyeSBpbmZvIGZvciBhdWRpbyBwbGF5ZXIgJHtwaXBlbGluZS5wbGF5ZXIubmFtZX1gKQogICAgICAgICAgICBjb250aW51ZSBwaXBlbGluZUxvb3AKICAgICAgICB9CgogICAgICAgIGlmICghcGxheWVySW5mby5lbnZpcm9ubWVudFN1cHBvcnRlZCkgewogICAgICAgICAgICBjb250aW51ZSBwaXBlbGluZUxvb3AKICAgICAgICB9CgogICAgICAgIC8vIEJ1aWxkIHRoYXQgcGlwZWxpbmUKICAgICAgICBjb25zdCBhdWRpb1BsYXllciA9IGJ1aWxkUGlwZWxpbmUocGlwZWxpbmUucGxheWVyLCB7IHBpcGVzOiBwaXBlbGluZS5waXBlcyB9LCBsb2dnZXIpCiAgICAgICAgaWYgKCFhdWRpb1BsYXllcikgewogICAgICAgICAgICBsb2dnZXI/LmRlYnVnKCJGYWlsZWQgdG8gYnVpbGQgYXVkaW8gcGlwZWxpbmUiKQogICAgICAgICAgICByZXR1cm4geyBhdWRpb1BsYXllcjogbnVsbCwgZXJyb3I6IHRydWUgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHsgYXVkaW9QbGF5ZXI6IGF1ZGlvUGxheWVyIGFzIEF1ZGlvUGxheWVyLCBlcnJvcjogZmFsc2UgfQogICAgfQoKICAgIGxvZ2dlcj8uZGVidWcoIk5vIHN1cHBvcnRlZCBhdWRpbyBwbGF5ZXIgZm91bmQhIikKICAgIHJldHVybiB7IGF1ZGlvUGxheWVyOiBudWxsLCBlcnJvcjogdHJ1ZSB9Cn0="},{"path":"web/stream/buffer.ts","sha256":"69bff208ddfa2464beb8d7a2d24209a0038481e9d7dce5d5353c2d3e4084fa56","contentBase64":"CmV4cG9ydCBjb25zdCBVOF9NQVggPSAyNTUKCmV4cG9ydCBjb25zdCBVMTZfTUFYID0gNjU1MzUKZXhwb3J0IGNvbnN0IEkxNl9NQVggPSAzMjc2NwoKZXhwb3J0IGNsYXNzIEJ5dGVCdWZmZXIgewogICAgcHJpdmF0ZSBwb3NpdGlvbjogbnVtYmVyID0gMAogICAgcHJpdmF0ZSBsaW1pdDogbnVtYmVyID0gMAogICAgcHJpdmF0ZSBsaXR0bGVFbmRpYW46IGJvb2xlYW4KICAgIHByaXZhdGUgYnVmZmVyOiBVaW50OEFycmF5CgogICAgY29uc3RydWN0b3IobGVuZ3RoPzogbnVtYmVyLCBsaXR0bGVFbmRpYW4/OiBib29sZWFuKQogICAgY29uc3RydWN0b3IoYnVmZmVyOiBVaW50OEFycmF5LCBsaXR0bGVFbmRpYW4/OiBib29sZWFuKQogICAgY29uc3RydWN0b3IodmFsdWU/OiBudW1iZXIgfCBVaW50OEFycmF5LCBsaXR0bGVFbmRpYW4/OiBib29sZWFuKSB7CiAgICAgICAgdGhpcy5saXR0bGVFbmRpYW4gPSBsaXR0bGVFbmRpYW4gPz8gZmFsc2UKCiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgVWludDhBcnJheSkgewogICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IHZhbHVlCiAgICAgICAgICAgIHRoaXMubGltaXQgPSB2YWx1ZS5sZW5ndGgKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KHZhbHVlID8/IDApCiAgICAgICAgICAgIHRoaXMubGltaXQgPSB2YWx1ZSA/PyAwCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgYnl0ZXNVc2VkKGFtb3VudDogbnVtYmVyLCByZWFkaW5nOiBib29sZWFuKSB7CiAgICAgICAgdGhpcy5wb3NpdGlvbiArPSBhbW91bnQKICAgICAgICBpZiAocmVhZGluZyAmJiB0aGlzLnBvc2l0aW9uID4gdGhpcy5saW1pdCkgewogICAgICAgICAgICB0aHJvdyAiZmFpbGVkIHRvIHJlYWQgb3ZlciB0aGUgbGltaXQiCiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSB1c2VEYXRhVmlldyhsZW5ndGg6IG51bWJlciwgcmVhZGluZzogYm9vbGVhbiwgaW5kZXg/OiBudW1iZXIpOiBEYXRhVmlldyB7CiAgICAgICAgbGV0IHBvc2l0aW9uID0gdGhpcy5wb3NpdGlvbgogICAgICAgIGlmIChpbmRleCAhPSBudWxsKSB7CiAgICAgICAgICAgIHBvc2l0aW9uID0gaW5kZXgKICAgICAgICB9CgogICAgICAgIGNvbnN0IG1heFBvc2l0aW9uID0gcG9zaXRpb24gKyBsZW5ndGgKICAgICAgICBpZiAobWF4UG9zaXRpb24gPiB0aGlzLmJ1ZmZlci5sZW5ndGgpIHsKICAgICAgICAgICAgdGhyb3cgImZhaWxlZCB0byB3cml0ZSBvdmVyIHRoZSBjYXBhY2l0eSIKICAgICAgICB9CgogICAgICAgIGlmIChtYXhQb3NpdGlvbiA+IHRoaXMubGltaXQpIHsKICAgICAgICAgICAgdGhpcy5saW1pdCA9IG1heFBvc2l0aW9uCiAgICAgICAgfQoKICAgICAgICBpZiAoaW5kZXggPT0gbnVsbCkgewogICAgICAgICAgICB0aGlzLmJ5dGVzVXNlZChsZW5ndGgsIHJlYWRpbmcpCiAgICAgICAgfQogICAgICAgIHJldHVybiBuZXcgRGF0YVZpZXcodGhpcy5idWZmZXIuYnVmZmVyLCBwb3NpdGlvbiwgbGVuZ3RoKQogICAgfQoKICAgIHB1dFU4QXJyYXkoZGF0YTogVWludDhBcnJheSwgaW5kZXg/OiBudW1iZXIpIHsKICAgICAgICBsZXQgcG9zaXRpb24gPSB0aGlzLnBvc2l0aW9uCiAgICAgICAgaWYgKGluZGV4KSB7CiAgICAgICAgICAgIHBvc2l0aW9uID0gaW5kZXgKICAgICAgICB9CgogICAgICAgIGNvbnN0IG1heFBvc2l0aW9uID0gcG9zaXRpb24gKyBkYXRhLmxlbmd0aAogICAgICAgIGlmIChtYXhQb3NpdGlvbiA+IHRoaXMuYnVmZmVyLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyAiZmFpbGVkIHRvIHdyaXRlIG92ZXIgdGhlIGNhcGFjaXR5IgogICAgICAgIH0KCiAgICAgICAgaWYgKG1heFBvc2l0aW9uID4gdGhpcy5saW1pdCkgewogICAgICAgICAgICB0aGlzLmxpbWl0ID0gbWF4UG9zaXRpb24KICAgICAgICB9CgogICAgICAgIHRoaXMuYnVmZmVyLnNldChkYXRhLCBwb3NpdGlvbikKCiAgICAgICAgaWYgKGluZGV4ID09IG51bGwpIHsKICAgICAgICAgICAgdGhpcy5ieXRlc1VzZWQoZGF0YS5sZW5ndGgsIGZhbHNlKQogICAgICAgIH0KICAgIH0KICAgIHB1dFUxNkFycmF5KGRhdGE6IFVpbnQxNkFycmF5LCBpbmRleD86IG51bWJlcikgewogICAgICAgIGxldCBwb3NpdGlvbiA9IGluZGV4ID8/IHRoaXMucG9zaXRpb24KCiAgICAgICAgY29uc3QgbWF4UG9zaXRpb24gPSBwb3NpdGlvbiArIGRhdGEubGVuZ3RoICogMgogICAgICAgIGlmIChtYXhQb3NpdGlvbiA+IHRoaXMuYnVmZmVyLmxlbmd0aCkgewogICAgICAgICAgICB0aHJvdyAiZmFpbGVkIHRvIHdyaXRlIG92ZXIgdGhlIGNhcGFjaXR5IgogICAgICAgIH0KCiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWZmZXIuYnVmZmVyLCBwb3NpdGlvbiArIGkgKiAyLCAyKQogICAgICAgICAgICB2aWV3LnNldFVpbnQxNigwLCBkYXRhW2ldLCB0aGlzLmxpdHRsZUVuZGlhbikKICAgICAgICB9CgogICAgICAgIGlmIChtYXhQb3NpdGlvbiA+IHRoaXMubGltaXQpIHsKICAgICAgICAgICAgdGhpcy5saW1pdCA9IG1heFBvc2l0aW9uCiAgICAgICAgfQoKICAgICAgICBpZiAoaW5kZXggPT0gbnVsbCkgewogICAgICAgICAgICB0aGlzLmJ5dGVzVXNlZChkYXRhLmxlbmd0aCAqIDIsIGZhbHNlKQogICAgICAgIH0KICAgIH0KCiAgICBwdXRVMzJBcnJheShkYXRhOiBVaW50MzJBcnJheSwgaW5kZXg/OiBudW1iZXIpIHsKICAgICAgICBsZXQgcG9zaXRpb24gPSBpbmRleCA/PyB0aGlzLnBvc2l0aW9uCgogICAgICAgIGNvbnN0IG1heFBvc2l0aW9uID0gcG9zaXRpb24gKyBkYXRhLmxlbmd0aCAqIDQKICAgICAgICBpZiAobWF4UG9zaXRpb24gPiB0aGlzLmJ1ZmZlci5sZW5ndGgpIHsKICAgICAgICAgICAgdGhyb3cgImZhaWxlZCB0byB3cml0ZSBvdmVyIHRoZSBjYXBhY2l0eSIKICAgICAgICB9CgogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLmJ1ZmZlciwgcG9zaXRpb24gKyBpICogNCwgNCkKICAgICAgICAgICAgdmlldy5zZXRVaW50MzIoMCwgZGF0YVtpXSwgdGhpcy5saXR0bGVFbmRpYW4pCiAgICAgICAgfQoKICAgICAgICBpZiAobWF4UG9zaXRpb24gPiB0aGlzLmxpbWl0KSB7CiAgICAgICAgICAgIHRoaXMubGltaXQgPSBtYXhQb3NpdGlvbgogICAgICAgIH0KCiAgICAgICAgaWYgKGluZGV4ID09IG51bGwpIHsKICAgICAgICAgICAgdGhpcy5ieXRlc1VzZWQoZGF0YS5sZW5ndGggKiA0LCBmYWxzZSkKICAgICAgICB9CiAgICB9CgoKICAgIHB1dFU4KGRhdGE6IG51bWJlciwgaW5kZXg/OiBudW1iZXIpIHsKICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy51c2VEYXRhVmlldygxLCBmYWxzZSwgaW5kZXgpCiAgICAgICAgdmlldy5zZXRVaW50OCgwLCBkYXRhKQogICAgfQogICAgcHV0Qm9vbChkYXRhOiBib29sZWFuKSB7CiAgICAgICAgdGhpcy5wdXRVOChkYXRhID8gMSA6IDApCiAgICB9CgogICAgcHV0STgoZGF0YTogbnVtYmVyLCBpbmRleD86IG51bWJlcikgewogICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnVzZURhdGFWaWV3KDEsIGZhbHNlLCBpbmRleCkKICAgICAgICB2aWV3LnNldEludDgoMCwgZGF0YSkKICAgIH0KCiAgICBwdXRVMTYoZGF0YTogbnVtYmVyLCBpbmRleD86IG51bWJlcikgewogICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnVzZURhdGFWaWV3KDIsIGZhbHNlLCBpbmRleCkKICAgICAgICB2aWV3LnNldFVpbnQxNigwLCBkYXRhLCB0aGlzLmxpdHRsZUVuZGlhbikKICAgIH0KICAgIHB1dEkxNihkYXRhOiBudW1iZXIsIGluZGV4PzogbnVtYmVyKSB7CiAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudXNlRGF0YVZpZXcoMiwgZmFsc2UsIGluZGV4KQogICAgICAgIHZpZXcuc2V0SW50MTYoMCwgZGF0YSwgdGhpcy5saXR0bGVFbmRpYW4pCiAgICB9CgogICAgcHV0VTMyKGRhdGE6IG51bWJlciwgaW5kZXg/OiBudW1iZXIpIHsKICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy51c2VEYXRhVmlldyg0LCBmYWxzZSwgaW5kZXgpCiAgICAgICAgdmlldy5zZXRVaW50MzIoMCwgZGF0YSwgdGhpcy5saXR0bGVFbmRpYW4pCiAgICB9CiAgICBwdXRJMzIoZGF0YTogbnVtYmVyLCBpbmRleD86IG51bWJlcikgewogICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnVzZURhdGFWaWV3KDQsIGZhbHNlLCBpbmRleCkKICAgICAgICB2aWV3LnNldEludDMyKDAsIGRhdGEpCiAgICB9CgogICAgcHV0VTY0KGRhdGE6IG51bWJlciwgaW5kZXg/OiBudW1iZXIpIHsKICAgICAgICBjb25zdCBoaSA9IE1hdGguZmxvb3IoZGF0YSAvIDB4MTAwMDAwMDAwKSAgIC8vIHVwcGVyIDMyIGJpdHMKICAgICAgICBjb25zdCBsbyA9IGRhdGEgPj4+IDAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvd2VyIDMyIGJpdHMKCiAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudXNlRGF0YVZpZXcoOCwgZmFsc2UsIGluZGV4KQoKICAgICAgICBpZiAodGhpcy5saXR0bGVFbmRpYW4pIHsKICAgICAgICAgICAgdmlldy5zZXRVaW50MzIoMCwgbG8sIHRydWUpCiAgICAgICAgICAgIHZpZXcuc2V0VWludDMyKDQsIGhpLCB0cnVlKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHZpZXcuc2V0VWludDMyKDAsIGhpLCBmYWxzZSkKICAgICAgICAgICAgdmlldy5zZXRVaW50MzIoNCwgbG8sIGZhbHNlKQogICAgICAgIH0KCiAgICAgICAgdGhpcy5ieXRlc1VzZWQoOCwgZmFsc2UpCiAgICB9CgogICAgcHV0VXRmOFJhdyh0ZXh0OiBzdHJpbmcpIHsKICAgICAgICBjb25zdCBlbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCkKICAgICAgICBjb25zdCByZXN1bHQgPSBlbmNvZGVyLmVuY29kZUludG8odGV4dCwgdGhpcy5idWZmZXIuc3ViYXJyYXkodGhpcy5wb3NpdGlvbikpCgogICAgICAgIHRoaXMuYnl0ZXNVc2VkKHJlc3VsdC53cml0dGVuLCBmYWxzZSkKICAgICAgICBpZiAocmVzdWx0LnJlYWQgIT0gdGV4dC5sZW5ndGgpIHsKICAgICAgICAgICAgdGhyb3cgImZhaWxlZCB0byBwdXQgdXRmOCB0ZXh0IgogICAgICAgIH0KICAgIH0KCiAgICBwdXRGMzIoZGF0YTogbnVtYmVyKSB7CiAgICAgICAgY29uc3QgdmlldyA9IG5ldyBEYXRhVmlldyh0aGlzLmJ1ZmZlci5idWZmZXIpCiAgICAgICAgdmlldy5zZXRGbG9hdDMyKHRoaXMucG9zaXRpb24sIGRhdGEsIHRoaXMubGl0dGxlRW5kaWFuKQogICAgICAgIHRoaXMuYnl0ZXNVc2VkKDQsIGZhbHNlKQogICAgfQoKICAgIGdldChidWZmZXI6IFVpbnQ4QXJyYXksIG9mZnNldDogbnVtYmVyLCBsZW5ndGg6IG51bWJlcikgewogICAgICAgIGJ1ZmZlci5zZXQodGhpcy5idWZmZXIuc3ViYXJyYXkodGhpcy5wb3NpdGlvbiwgdGhpcy5wb3NpdGlvbiArIGxlbmd0aCksIG9mZnNldCkKICAgICAgICB0aGlzLmJ5dGVzVXNlZChsZW5ndGgsIHRydWUpCiAgICB9CgogICAgZ2V0VTgoKTogbnVtYmVyIHsKICAgICAgICBjb25zdCB2aWV3ID0gbmV3IERhdGFWaWV3KHRoaXMuYnVmZmVyLmJ1ZmZlcikKICAgICAgICBjb25zdCBieXRlID0gdmlldy5nZXRVaW50OCh0aGlzLnBvc2l0aW9uKQogICAgICAgIHRoaXMuYnl0ZXNVc2VkKDEsIHRydWUpCiAgICAgICAgcmV0dXJuIGJ5dGUKICAgIH0KICAgIGdldFUxNigpOiBudW1iZXIgewogICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWZmZXIuYnVmZmVyKQogICAgICAgIGNvbnN0IGJ5dGUgPSB2aWV3LmdldFVpbnQxNih0aGlzLnBvc2l0aW9uKQogICAgICAgIHRoaXMuYnl0ZXNVc2VkKDIsIHRydWUpCiAgICAgICAgcmV0dXJuIGJ5dGUKICAgIH0KICAgIGdldFUzMigpOiBudW1iZXIgewogICAgICAgIGNvbnN0IHZpZXcgPSBuZXcgRGF0YVZpZXcodGhpcy5idWZmZXIuYnVmZmVyKQogICAgICAgIGNvbnN0IGJ5dGUgPSB2aWV3LmdldFVpbnQzMih0aGlzLnBvc2l0aW9uKQogICAgICAgIHRoaXMuYnl0ZXNVc2VkKDQsIHRydWUpCiAgICAgICAgcmV0dXJuIGJ5dGUKICAgIH0KICAgIGdldEJvb2woKTogYm9vbGVhbiB7CiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VTgoKSAhPSAwCiAgICB9CgogICAgZ2V0VXRmOFJhdyhsZW5ndGg6IG51bWJlcik6IHN0cmluZyB7CiAgICAgICAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkobGVuZ3RoKQogICAgICAgIHRoaXMuZ2V0KGJ1ZmZlciwgMCwgbGVuZ3RoKQoKICAgICAgICBjb25zdCBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCkKICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGUoYnVmZmVyKQogICAgfQoKICAgIHJlc2V0KCkgewogICAgICAgIHRoaXMucG9zaXRpb24gPSAwCiAgICAgICAgdGhpcy5saW1pdCA9IDAKICAgIH0KICAgIGZsaXAoKSB7CiAgICAgICAgdGhpcy5saW1pdCA9IHRoaXMucG9zaXRpb24KICAgICAgICB0aGlzLnBvc2l0aW9uID0gMAogICAgfQogICAgaXNMaXR0bGVFbmRpYW4oKSB7CiAgICAgICAgcmV0dXJuIHRoaXMubGl0dGxlRW5kaWFuCiAgICB9CiAgICBnZXRQb3NpdGlvbigpIHsKICAgICAgICByZXR1cm4gdGhpcy5wb3NpdGlvbgogICAgfQoKICAgIGdldFJlbWFpbmluZ0J1ZmZlcigpOiBVaW50OEFycmF5IHsKICAgICAgICByZXR1cm4gdGhpcy5idWZmZXIuc2xpY2UodGhpcy5wb3NpdGlvbiwgdGhpcy5saW1pdCkKICAgIH0KfQoKZXhwb3J0IGNvbnN0IEJJR19CVUZGRVIgPSBuZXcgQnl0ZUJ1ZmZlcigxMDAwMDAwKQ=="},{"path":"web/stream/gamepad.ts","sha256":"490f2b1213f1a59212bdeedbdb04ae84e61f9e968c204a3efb481ce0aecda832","contentBase64":"aW1wb3J0IHsgU3RyZWFtQ29udHJvbGxlckJ1dHRvbiB9IGZyb20gIi4uL2FwaV9iaW5kaW5ncy5qcyIKCmV4cG9ydCB0eXBlIENvbnRyb2xsZXJDb25maWcgPSB7CiAgICBpbnZlcnRYWTogYm9vbGVhbgogICAgaW52ZXJ0QUI6IGJvb2xlYW4KICAgIHNlbmRJbnRlcnZhbE92ZXJyaWRlOiBudW1iZXIgfCBudWxsCn0KCi8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9nYW1lcGFkLyNyZW1hcHBpbmcKY29uc3QgU1RBTkRBUkRfQlVUVE9OUyA9IFsKICAgIFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX0IsCiAgICBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9BLAogICAgU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fWSwKICAgIFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX1gsCiAgICBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9MQiwKICAgIFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX1JCLAogICAgLy8gVGhlc2UgYXJlIHRyaWdnZXJzCiAgICBudWxsLAogICAgbnVsbCwKICAgIFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX0JBQ0ssCiAgICBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9QTEFZLAogICAgU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fTFNfQ0xLLAogICAgU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fUlNfQ0xLLAogICAgU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fVVAsCiAgICBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9ET1dOLAogICAgU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fTEVGVCwKICAgIFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX1JJR0hULAogICAgU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fU1BFQ0lBTCwKXQoKZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9CVVRUT05TID0KICAgIFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX0EgfCBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9CIHwgU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fWCB8IFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX1kgfCBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9VUCB8IFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX0RPV04gfCBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9MRUZUIHwgU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fUklHSFQgfCBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9MQiB8IFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX1JCIHwgU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fUExBWSB8IFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX0JBQ0sgfCBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9MU19DTEsgfCBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9SU19DTEsgfCBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9TUEVDSUFMCgpmdW5jdGlvbiBjb252ZXJ0U3RhbmRhcmRCdXR0b24oYnV0dG9uSW5kZXg6IG51bWJlciwgY29uZmlnPzogQ29udHJvbGxlckNvbmZpZyk6IG51bWJlciB8IG51bGwgewogICAgbGV0IGJ1dHRvbiA9IFNUQU5EQVJEX0JVVFRPTlNbYnV0dG9uSW5kZXhdID8/IG51bGwKCiAgICBpZiAoY29uZmlnPy5pbnZlcnRBQikgewogICAgICAgIGlmIChidXR0b24gPT0gU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fQSkgewogICAgICAgICAgICBidXR0b24gPSBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9CCiAgICAgICAgfSBlbHNlIGlmIChidXR0b24gPT0gU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fQikgewogICAgICAgICAgICBidXR0b24gPSBTdHJlYW1Db250cm9sbGVyQnV0dG9uLkJVVFRPTl9BCiAgICAgICAgfQogICAgfQogICAgaWYgKGNvbmZpZz8uaW52ZXJ0WFkpIHsKICAgICAgICBpZiAoYnV0dG9uID09IFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX1gpIHsKICAgICAgICAgICAgYnV0dG9uID0gU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fWQogICAgICAgIH0gZWxzZSBpZiAoYnV0dG9uID09IFN0cmVhbUNvbnRyb2xsZXJCdXR0b24uQlVUVE9OX1kpIHsKICAgICAgICAgICAgYnV0dG9uID0gU3RyZWFtQ29udHJvbGxlckJ1dHRvbi5CVVRUT05fWAogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gYnV0dG9uCn0KCmV4cG9ydCB0eXBlIEdhbWVwYWRTdGF0ZSA9IHsKICAgIGJ1dHRvbkZsYWdzOiBudW1iZXIKICAgIGxlZnRUcmlnZ2VyOiBudW1iZXIKICAgIHJpZ2h0VHJpZ2dlcjogbnVtYmVyCiAgICBsZWZ0U3RpY2tYOiBudW1iZXIKICAgIGxlZnRTdGlja1k6IG51bWJlcgogICAgcmlnaHRTdGlja1g6IG51bWJlcgogICAgcmlnaHRTdGlja1k6IG51bWJlcgp9CgpleHBvcnQgZnVuY3Rpb24gZXh0cmFjdEdhbWVwYWRTdGF0ZShnYW1lcGFkOiBHYW1lcGFkLCBjb25maWc6IENvbnRyb2xsZXJDb25maWcpOiBHYW1lcGFkU3RhdGUgewogICAgbGV0IGJ1dHRvbkZsYWdzID0gMAogICAgZm9yIChsZXQgYnV0dG9uSWQgPSAwOyBidXR0b25JZCA8IGdhbWVwYWQuYnV0dG9ucy5sZW5ndGg7IGJ1dHRvbklkKyspIHsKICAgICAgICBjb25zdCBidXR0b24gPSBnYW1lcGFkLmJ1dHRvbnNbYnV0dG9uSWRdCgogICAgICAgIGNvbnN0IGJ1dHRvbkZsYWcgPSBjb252ZXJ0U3RhbmRhcmRCdXR0b24oYnV0dG9uSWQsIGNvbmZpZykKICAgICAgICBpZiAoYnV0dG9uLnByZXNzZWQgJiYgYnV0dG9uRmxhZyAhPT0gbnVsbCkgewogICAgICAgICAgICBidXR0b25GbGFncyB8PSBidXR0b25GbGFnCiAgICAgICAgfQogICAgfQoKICAgIGNvbnN0IGxlZnRUcmlnZ2VyID0gZ2FtZXBhZC5idXR0b25zWzZdLnZhbHVlCiAgICBjb25zdCByaWdodFRyaWdnZXIgPSBnYW1lcGFkLmJ1dHRvbnNbN10udmFsdWUKCiAgICBjb25zdCBsZWZ0U3RpY2tYID0gZ2FtZXBhZC5heGVzWzBdCiAgICBjb25zdCBsZWZ0U3RpY2tZID0gZ2FtZXBhZC5heGVzWzFdCiAgICBjb25zdCByaWdodFN0aWNrWCA9IGdhbWVwYWQuYXhlc1syXQogICAgY29uc3QgcmlnaHRTdGlja1kgPSBnYW1lcGFkLmF4ZXNbM10KCiAgICByZXR1cm4gewogICAgICAgIGJ1dHRvbkZsYWdzLAogICAgICAgIGxlZnRUcmlnZ2VyLAogICAgICAgIHJpZ2h0VHJpZ2dlciwKICAgICAgICBsZWZ0U3RpY2tYLAogICAgICAgIGxlZnRTdGlja1ksCiAgICAgICAgcmlnaHRTdGlja1gsCiAgICAgICAgcmlnaHRTdGlja1kKICAgIH0KfQoKZXhwb3J0IGZ1bmN0aW9uIGVtcHR5R2FtZXBhZFN0YXRlKCk6IEdhbWVwYWRTdGF0ZSB7CiAgICByZXR1cm4gewogICAgICAgIGJ1dHRvbkZsYWdzOiAwLAogICAgICAgIGxlZnRUcmlnZ2VyOiAwLAogICAgICAgIHJpZ2h0VHJpZ2dlcjogMCwKICAgICAgICBsZWZ0U3RpY2tYOiAwLAogICAgICAgIGxlZnRTdGlja1k6IDAsCiAgICAgICAgcmlnaHRTdGlja1g6IDAsCiAgICAgICAgcmlnaHRTdGlja1k6IDAsCiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBhcmVHYW1lcGFkU3RhdGVzRXF1YWwoYTogR2FtZXBhZFN0YXRlLCBiOiBHYW1lcGFkU3RhdGUpOiBib29sZWFuIHsKICAgIHJldHVybiBhLmJ1dHRvbkZsYWdzID09IGIuYnV0dG9uRmxhZ3MKICAgICAgICAmJiBhcmVGbG9hdHNFcXVhbChhLmxlZnRUcmlnZ2VyLCBiLmxlZnRUcmlnZ2VyKQogICAgICAgICYmIGFyZUZsb2F0c0VxdWFsKGEucmlnaHRUcmlnZ2VyLCBiLnJpZ2h0VHJpZ2dlcikKICAgICAgICAmJiBhcmVGbG9hdHNFcXVhbChhLmxlZnRTdGlja1gsIGIubGVmdFN0aWNrWCkKICAgICAgICAmJiBhcmVGbG9hdHNFcXVhbChhLmxlZnRTdGlja1ksIGIubGVmdFN0aWNrWSkKICAgICAgICAmJiBhcmVGbG9hdHNFcXVhbChhLnJpZ2h0U3RpY2tYLCBiLnJpZ2h0U3RpY2tYKQogICAgICAgICYmIGFyZUZsb2F0c0VxdWFsKGEucmlnaHRTdGlja1ksIGIucmlnaHRTdGlja1kpCn0KCmNvbnN0IEZMT0FUX0NPTVBBUkVfTVVMVElQTElFUiA9IDEwMApmdW5jdGlvbiBhcmVGbG9hdHNFcXVhbChhOiBudW1iZXIsIGI6IG51bWJlcik6IGJvb2xlYW4gewogICAgcmV0dXJuIE1hdGgucm91bmQoYSAqIEZMT0FUX0NPTVBBUkVfTVVMVElQTElFUikgPT0gTWF0aC5yb3VuZChiICogRkxPQVRfQ09NUEFSRV9NVUxUSVBMSUVSKQp9"},{"path":"web/stream/index.ts","sha256":"314254c55cb7a256f2fee8c52aeadc12896a4d9afd706f1c3717680a16fa81e2","contentBase64":"aW1wb3J0IHsgQXBpIH0gZnJvbSAiLi4vYXBpLmpzIgppbXBvcnQgeyBBcHAsIENvbm5lY3Rpb25TdGF0dXMsIEdlbmVyYWxDbGllbnRNZXNzYWdlLCBHZW5lcmFsU2VydmVyTWVzc2FnZSwgU3RyZWFtQ2FwYWJpbGl0aWVzLCBTdHJlYW1DbGllbnRNZXNzYWdlLCBTdHJlYW1QZXJtaXNzaW9ucywgU3RyZWFtU2VydmVyTWVzc2FnZSwgU3RyZWFtU2V0dGluZ3MsIFRyYW5zcG9ydENoYW5uZWxJZCB9IGZyb20gIi4uL2FwaV9iaW5kaW5ncy5qcyIKaW1wb3J0IHsgc2hvd05vdGlmaWNhdGlvbiB9IGZyb20gIi4uL2NvbXBvbmVudC9ub3RpZmljYXRpb24uanMiCmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gIi4uL2NvbXBvbmVudC9pbmRleC5qcyIKaW1wb3J0IHsgU2V0dGluZ3MsIFRyYW5zcG9ydFR5cGUgfSBmcm9tICIuLi9jb21wb25lbnQvc2V0dGluZ3NfbWVudS5qcyIKaW1wb3J0IHsgQXVkaW9QbGF5ZXIgfSBmcm9tICIuL2F1ZGlvL2luZGV4LmpzIgppbXBvcnQgeyBidWlsZEF1ZGlvUGlwZWxpbmUgfSBmcm9tICIuL2F1ZGlvL3BpcGVsaW5lLmpzIgppbXBvcnQgeyBCSUdfQlVGRkVSLCBCeXRlQnVmZmVyIH0gZnJvbSAiLi9idWZmZXIuanMiCmltcG9ydCB7IGRlZmF1bHRTdHJlYW1JbnB1dENvbmZpZywgU3RyZWFtSW5wdXQgfSBmcm9tICIuL2lucHV0LmpzIgppbXBvcnQgeyBMb2dnZXIsIExvZ01lc3NhZ2VJbmZvIH0gZnJvbSAiLi9sb2cuanMiCmltcG9ydCB7IGdhdGhlclBpcGVJbmZvIH0gZnJvbSAiLi9waXBlbGluZS9pbmRleC5qcyIKaW1wb3J0IHsgU3RyZWFtU3RhdHMsIERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljLCBEaXJlY3RDb25uZWN0aW9uT3V0Y29tZSwgRGlyZWN0Q29ubmVjdGlvblJlYXNvbiB9IGZyb20gIi4vc3RhdHMuanMiCmltcG9ydCB7IFRyYW5zcG9ydCwgVHJhbnNwb3J0U2h1dGRvd24gfSBmcm9tICIuL3RyYW5zcG9ydC9pbmRleC5qcyIKaW1wb3J0IHsgV2ViU29ja2V0VHJhbnNwb3J0IH0gZnJvbSAiLi90cmFuc3BvcnQvd2ViX3NvY2tldC5qcyIKaW1wb3J0IHsgV2ViUlRDVHJhbnNwb3J0IH0gZnJvbSAiLi90cmFuc3BvcnQvd2VicnRjLmpzIgppbXBvcnQgeyBhbGxWaWRlb0NvZGVjcywgYW5kVmlkZW9Db2RlY3MsIGNyZWF0ZVN1cHBvcnRlZFZpZGVvRm9ybWF0c0JpdHMsIGVtcHR5VmlkZW9Db2RlY3MsIGdldFNlbGVjdGVkVmlkZW9Db2RlYywgaGFzQW55Q29kZWMsIFZpZGVvQ29kZWNTdXBwb3J0IH0gZnJvbSAiLi92aWRlby5qcyIKaW1wb3J0IHsgVmlkZW9SZW5kZXJlciB9IGZyb20gIi4vdmlkZW8vaW5kZXguanMiCmltcG9ydCB7IGJ1aWxkVmlkZW9QaXBlbGluZSwgVmlkZW9QaXBlbGluZU9wdGlvbnMgfSBmcm9tICIuL3ZpZGVvL3BpcGVsaW5lLmpzIgoKZXhwb3J0IHR5cGUgRXhlY3V0aW9uRW52aXJvbm1lbnQgPSB7CiAgICBtYWluOiBib29sZWFuCiAgICB3b3JrZXI6IGJvb2xlYW4KfQoKZXhwb3J0IHR5cGUgSW5mb0V2ZW50ID0gQ3VzdG9tRXZlbnQ8CiAgICB7IHR5cGU6ICJhcHAiLCBhcHA6IEFwcCB9IHwKICAgIHsgdHlwZTogInNlcnZlck1lc3NhZ2UiLCBtZXNzYWdlOiBzdHJpbmcgfSB8CiAgICB7IHR5cGU6ICJjb25uZWN0aW9uQ29tcGxldGUiLCBjYXBhYmlsaXRpZXM6IFN0cmVhbUNhcGFiaWxpdGllcyB9IHwKICAgIHsgdHlwZTogInZpZGVvUmVhZHkiIH0gfAogICAgeyB0eXBlOiAidHJhbnNwb3J0RmFsbGJhY2siIH0gfAogICAgeyB0eXBlOiAiY29ubmVjdGlvblN0YXR1cyIsIHN0YXR1czogQ29ubmVjdGlvblN0YXR1cyB9IHwKICAgIHsgdHlwZTogImFkZERlYnVnTGluZSIsIGxpbmU6IHN0cmluZywgYWRkaXRpb25hbD86IExvZ01lc3NhZ2VJbmZvIH0KPgpleHBvcnQgdHlwZSBJbmZvRXZlbnRMaXN0ZW5lciA9IChldmVudDogSW5mb0V2ZW50KSA9PiB2b2lkCgpleHBvcnQgZnVuY3Rpb24gZ2V0U3RyZWFtZXJTaXplKHNldHRpbmdzOiBTZXR0aW5ncywgdmlld2VyU2NyZWVuU2l6ZTogW251bWJlciwgbnVtYmVyXSk6IFtudW1iZXIsIG51bWJlcl0gewogICAgbGV0IHdpZHRoLCBoZWlnaHQKICAgIGlmIChzZXR0aW5ncy52aWRlb1NpemUgPT0gIjcyMHAiKSB7CiAgICAgICAgd2lkdGggPSAxMjgwCiAgICAgICAgaGVpZ2h0ID0gNzIwCiAgICB9IGVsc2UgaWYgKHNldHRpbmdzLnZpZGVvU2l6ZSA9PSAiMTA4MHAiKSB7CiAgICAgICAgd2lkdGggPSAxOTIwCiAgICAgICAgaGVpZ2h0ID0gMTA4MAogICAgfSBlbHNlIGlmIChzZXR0aW5ncy52aWRlb1NpemUgPT0gIjE0NDBwIikgewogICAgICAgIHdpZHRoID0gMjU2MAogICAgICAgIGhlaWdodCA9IDE0NDAKICAgIH0gZWxzZSBpZiAoc2V0dGluZ3MudmlkZW9TaXplID09ICI0ayIpIHsKICAgICAgICB3aWR0aCA9IDM4NDAKICAgICAgICBoZWlnaHQgPSAyMTYwCiAgICB9IGVsc2UgaWYgKHNldHRpbmdzLnZpZGVvU2l6ZSA9PSAiY3VzdG9tIikgewogICAgICAgIHdpZHRoID0gc2V0dGluZ3MudmlkZW9TaXplQ3VzdG9tLndpZHRoCiAgICAgICAgaGVpZ2h0ID0gc2V0dGluZ3MudmlkZW9TaXplQ3VzdG9tLmhlaWdodAogICAgfSBlbHNlIHsgLy8gbmF0aXZlCiAgICAgICAgd2lkdGggPSB2aWV3ZXJTY3JlZW5TaXplWzBdCiAgICAgICAgaGVpZ2h0ID0gdmlld2VyU2NyZWVuU2l6ZVsxXQogICAgfQogICAgcmV0dXJuIFt3aWR0aCwgaGVpZ2h0XQp9CgpmdW5jdGlvbiBnZXRWaWRlb0NvZGVjSGludChzZXR0aW5nczogU2V0dGluZ3MpOiBWaWRlb0NvZGVjU3VwcG9ydCB7CiAgICBsZXQgdmlkZW9Db2RlY0hpbnQgPSBlbXB0eVZpZGVvQ29kZWNzKCkKICAgIGlmIChzZXR0aW5ncy52aWRlb0NvZGVjID09ICJoMjY0IikgewogICAgICAgIHZpZGVvQ29kZWNIaW50LkgyNjQgPSB0cnVlCiAgICAgICAgdmlkZW9Db2RlY0hpbnQuSDI2NF9ISUdIOF80NDQgPSB0cnVlCiAgICB9IGVsc2UgaWYgKHNldHRpbmdzLnZpZGVvQ29kZWMgPT0gImgyNjUiKSB7CiAgICAgICAgdmlkZW9Db2RlY0hpbnQuSDI2NSA9IHRydWUKICAgICAgICB2aWRlb0NvZGVjSGludC5IMjY1X01BSU4xMCA9IHRydWUKICAgICAgICB2aWRlb0NvZGVjSGludC5IMjY1X1JFWFQ4XzQ0NCA9IHRydWUKICAgICAgICB2aWRlb0NvZGVjSGludC5IMjY1X1JFWFQxMF80NDQgPSB0cnVlCiAgICB9IGVsc2UgaWYgKHNldHRpbmdzLnZpZGVvQ29kZWMgPT0gImF2MSIpIHsKICAgICAgICB2aWRlb0NvZGVjSGludC5BVjFfTUFJTjggPSB0cnVlCiAgICAgICAgdmlkZW9Db2RlY0hpbnQuQVYxX01BSU4xMCA9IHRydWUKICAgICAgICB2aWRlb0NvZGVjSGludC5BVjFfSElHSDhfNDQ0ID0gdHJ1ZQogICAgICAgIHZpZGVvQ29kZWNIaW50LkFWMV9ISUdIMTBfNDQ0ID0gdHJ1ZQogICAgfSBlbHNlIGlmIChzZXR0aW5ncy52aWRlb0NvZGVjID09ICJhdXRvIikgewogICAgICAgIHZpZGVvQ29kZWNIaW50ID0gYWxsVmlkZW9Db2RlY3MoKQogICAgfQoKICAgIGlmIChpc0ZpcmVmb3goKSkgewogICAgICAgIHZpZGVvQ29kZWNIaW50LkFWMV9NQUlOMTAgPSBmYWxzZQogICAgICAgIHZpZGVvQ29kZWNIaW50LkFWMV9ISUdIMTBfNDQ0ID0gZmFsc2UKICAgIH0KCiAgICByZXR1cm4gdmlkZW9Db2RlY0hpbnQKfQoKZnVuY3Rpb24gaXNGaXJlZm94KCk6IGJvb2xlYW4gewogICAgcmV0dXJuIG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoIkZpcmVmb3gvIikKfQoKY29uc3QgV0VCUlRDX0NPTk5FQ1RfVElNRU9VVF9NUyA9IDE1MDAwCmNvbnN0IEZBTExCQUNLX1JFQ09OTkVDVF9ERUxBWV9NUyA9IDUwMAoKZXhwb3J0IGNsYXNzIFN0cmVhbSBpbXBsZW1lbnRzIENvbXBvbmVudCB7CiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyID0gbmV3IExvZ2dlcigpCgogICAgcHJpdmF0ZSBhcGk6IEFwaQoKICAgIHByaXZhdGUgaG9zdElkOiBudW1iZXIKICAgIHByaXZhdGUgYXBwSWQ6IG51bWJlcgoKICAgIHByaXZhdGUgcGVybWlzc2lvbnM6IFN0cmVhbVBlcm1pc3Npb25zCiAgICBwcml2YXRlIHNldHRpbmdzOiBTZXR0aW5ncwoKICAgIHByaXZhdGUgZGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpCiAgICBwcml2YXRlIGV2ZW50VGFyZ2V0ID0gbmV3IEV2ZW50VGFyZ2V0KCkKCiAgICBwcml2YXRlIHdzOiBXZWJTb2NrZXQKICAgIC8vIENhcHR1cmUgdGhlIGNhbGxlcidzIHNjb3BlZCBhdXRoZW50aWNhdGVkIGNvbnN0cnVjdG9yIGZvciBhc3luYyByZXRyaWVzLgogICAgcHJpdmF0ZSByZWFkb25seSBzb2NrZXRDb25zdHJ1Y3RvciA9IFdlYlNvY2tldAogICAgcHJpdmF0ZSBzdG9wcGluZyA9IGZhbHNlCiAgICBwcml2YXRlIHJlc3RhcnRpbmcgPSBmYWxzZQogICAgcHJpdmF0ZSBjYW5jZWxUcmFuc3BvcnRBdHRlbXB0OiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBpY2VTZXJ2ZXJzOiBBcnJheTxSVENJY2VTZXJ2ZXI+IHwgbnVsbCA9IG51bGwKICAgIHByaXZhdGUgdHJhbnNwb3J0T3ZlcnJpZGU6IFRyYW5zcG9ydFR5cGUgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBkaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYzogRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgdmlkZW9SZW5kZXJlcjogVmlkZW9SZW5kZXJlciB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIGF1ZGlvUGxheWVyOiBBdWRpb1BsYXllciB8IG51bGwgPSBudWxsCgogICAgcHJpdmF0ZSBpbnB1dDogU3RyZWFtSW5wdXQKICAgIHByaXZhdGUgc3RhdHM6IFN0cmVhbVN0YXRzCgogICAgcHJpdmF0ZSBzdHJlYW1lclNpemU6IFtudW1iZXIsIG51bWJlcl0KICAgIHByaXZhdGUgaGFzQ29ubmVjdGlvbkNvbXBsZXRlID0gZmFsc2UKICAgIHByaXZhdGUgaGFzVmlkZW9SZWFkeSA9IGZhbHNlCiAgICBwcml2YXRlIGhhc0Rpc3BhdGNoZWRWaWRlb1JlYWR5ID0gZmFsc2UKCiAgICBjb25zdHJ1Y3RvcihhcGk6IEFwaSwgaG9zdElkOiBudW1iZXIsIGFwcElkOiBudW1iZXIsIHNldHRpbmdzOiBTZXR0aW5ncywgdmlld2VyU2NyZWVuU2l6ZTogW251bWJlciwgbnVtYmVyXSwgcGVybWlzc2lvbnM6IFN0cmVhbVBlcm1pc3Npb25zKSB7CiAgICAgICAgdGhpcy5sb2dnZXIuYWRkSW5mb0xpc3RlbmVyKChpbmZvLCB0eXBlKSA9PiB7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coaW5mbywgeyB0eXBlOiB0eXBlID8/IHVuZGVmaW5lZCB9KQogICAgICAgIH0pCgogICAgICAgIHRoaXMuYXBpID0gYXBpCgogICAgICAgIHRoaXMuaG9zdElkID0gaG9zdElkCiAgICAgICAgdGhpcy5hcHBJZCA9IGFwcElkCgogICAgICAgIHRoaXMucGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucwogICAgICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5ncwoKICAgICAgICB0aGlzLnN0cmVhbWVyU2l6ZSA9IGdldFN0cmVhbWVyU2l6ZShzZXR0aW5ncywgdmlld2VyU2NyZWVuU2l6ZSkKCiAgICAgICAgdGhpcy53cyA9IHRoaXMuY3JlYXRlQ29udHJvbFdlYlNvY2tldCgpCiAgICAgICAgdGhpcy5zZW5kSW5pdE1lc3NhZ2UoKQoKICAgICAgICAvLyBTdHJlYW0gSW5wdXQKICAgICAgICBjb25zdCBzdHJlYW1JbnB1dENvbmZpZyA9IGRlZmF1bHRTdHJlYW1JbnB1dENvbmZpZygpCiAgICAgICAgT2JqZWN0LmFzc2lnbihzdHJlYW1JbnB1dENvbmZpZywgewogICAgICAgICAgICBtb3VzZU1vZGU6IHRoaXMuc2V0dGluZ3MubW91c2VNb2RlLAogICAgICAgICAgICBtb3VzZVNjcm9sbE1vZGU6IHRoaXMuc2V0dGluZ3MubW91c2VTY3JvbGxNb2RlLAogICAgICAgICAgICB0b3VjaE1vZGU6IHRoaXMuc2V0dGluZ3MudG91Y2hNb2RlLAogICAgICAgICAgICBsb2NhbEN1cnNvclNlbnNpdGl2aXR5OiB0aGlzLnNldHRpbmdzLmxvY2FsQ3Vyc29yU2Vuc2l0aXZpdHksCiAgICAgICAgICAgIGNvbnRyb2xsZXJDb25maWc6IHRoaXMuc2V0dGluZ3MuY29udHJvbGxlckNvbmZpZwogICAgICAgIH0pCiAgICAgICAgdGhpcy5pbnB1dCA9IG5ldyBTdHJlYW1JbnB1dChzdHJlYW1JbnB1dENvbmZpZykKCiAgICAgICAgLy8gU3RyZWFtIFN0YXRzCiAgICAgICAgdGhpcy5zdGF0cyA9IG5ldyBTdHJlYW1TdGF0cyh0aGlzLmxvZ2dlcikKICAgIH0KCiAgICBwcml2YXRlIGRlYnVnTG9nKG1lc3NhZ2U6IHN0cmluZywgYWRkaXRpb25hbD86IExvZ01lc3NhZ2VJbmZvKSB7CiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIG1lc3NhZ2Uuc3BsaXQoIlxuIikpIHsKICAgICAgICAgICAgY29uc3QgZXZlbnQ6IEluZm9FdmVudCA9IG5ldyBDdXN0b21FdmVudCgic3RyZWFtLWluZm8iLCB7CiAgICAgICAgICAgICAgICBkZXRhaWw6IHsgdHlwZTogImFkZERlYnVnTGluZSIsIGxpbmUsIGFkZGl0aW9uYWwgfQogICAgICAgICAgICB9KQoKICAgICAgICAgICAgdGhpcy5ldmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KQogICAgICAgIH0KICAgIH0KICAgIHByaXZhdGUgcmVzZXRWaWRlb1JlYWR5U3RhdGUoKSB7CiAgICAgICAgdGhpcy5oYXNDb25uZWN0aW9uQ29tcGxldGUgPSBmYWxzZQogICAgICAgIHRoaXMuaGFzVmlkZW9SZWFkeSA9IGZhbHNlCiAgICAgICAgdGhpcy5oYXNEaXNwYXRjaGVkVmlkZW9SZWFkeSA9IGZhbHNlCiAgICB9CiAgICBwcml2YXRlIG1hcmtDb25uZWN0aW9uQ29tcGxldGUoKSB7CiAgICAgICAgdGhpcy5oYXNDb25uZWN0aW9uQ29tcGxldGUgPSB0cnVlCiAgICAgICAgdGhpcy50cnlEaXNwYXRjaFZpZGVvUmVhZHkoKQogICAgfQogICAgcHJpdmF0ZSBtYXJrVmlkZW9SZWFkeSgpIHsKICAgICAgICB0aGlzLmhhc1ZpZGVvUmVhZHkgPSB0cnVlCiAgICAgICAgdGhpcy50cnlEaXNwYXRjaFZpZGVvUmVhZHkoKQogICAgfQogICAgcHJpdmF0ZSB0cnlEaXNwYXRjaFZpZGVvUmVhZHkoKSB7CiAgICAgICAgaWYgKCF0aGlzLmhhc0Nvbm5lY3Rpb25Db21wbGV0ZSB8fCAhdGhpcy5oYXNWaWRlb1JlYWR5IHx8IHRoaXMuaGFzRGlzcGF0Y2hlZFZpZGVvUmVhZHkpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLmhhc0Rpc3BhdGNoZWRWaWRlb1JlYWR5ID0gdHJ1ZQogICAgICAgIGNvbnN0IGV2ZW50OiBJbmZvRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoInN0cmVhbS1pbmZvIiwgewogICAgICAgICAgICBkZXRhaWw6IHsgdHlwZTogInZpZGVvUmVhZHkiIH0KICAgICAgICB9KQogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCkKICAgIH0KCiAgICBwcml2YXRlIGFzeW5jIG9uTWVzc2FnZShtZXNzYWdlOiBTdHJlYW1TZXJ2ZXJNZXNzYWdlKSB7CiAgICAgICAgaWYgKHRoaXMuc3RvcHBpbmcgfHwgdGhpcy5yZXN0YXJ0aW5nKSByZXR1cm4KICAgICAgICBjb25zdCBtZXNzYWdlVHJhbnNwb3J0ID0gdGhpcy50cmFuc3BvcnQKICAgICAgICBpZiAoIkRlYnVnTG9nIiBpbiBtZXNzYWdlKSB7CiAgICAgICAgICAgIGNvbnN0IGRlYnVnTG9nID0gbWVzc2FnZS5EZWJ1Z0xvZwoKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhkZWJ1Z0xvZy5tZXNzYWdlLCB7CiAgICAgICAgICAgICAgICB0eXBlOiBkZWJ1Z0xvZy50eSA/PyB1bmRlZmluZWQKICAgICAgICAgICAgfSkKICAgICAgICB9IGVsc2UgaWYgKCJVcGRhdGVBcHAiIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgY29uc3QgZXZlbnQ6IEluZm9FdmVudCA9IG5ldyBDdXN0b21FdmVudCgic3RyZWFtLWluZm8iLCB7CiAgICAgICAgICAgICAgICBkZXRhaWw6IHsgdHlwZTogImFwcCIsIGFwcDogbWVzc2FnZS5VcGRhdGVBcHAuYXBwIH0KICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCkKICAgICAgICB9IGVsc2UgaWYgKCJDb25uZWN0aW9uQ29tcGxldGUiIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gbWVzc2FnZS5Db25uZWN0aW9uQ29tcGxldGUuY2FwYWJpbGl0aWVzCiAgICAgICAgICAgIGNvbnN0IGZvcm1hdFJhdyA9IG1lc3NhZ2UuQ29ubmVjdGlvbkNvbXBsZXRlLmZvcm1hdAogICAgICAgICAgICBjb25zdCB3aWR0aCA9IG1lc3NhZ2UuQ29ubmVjdGlvbkNvbXBsZXRlLndpZHRoCiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IG1lc3NhZ2UuQ29ubmVjdGlvbkNvbXBsZXRlLmhlaWdodAogICAgICAgICAgICBjb25zdCBmcHMgPSBtZXNzYWdlLkNvbm5lY3Rpb25Db21wbGV0ZS5mcHMKCiAgICAgICAgICAgIGNvbnN0IGF1ZGlvU2FtcGxlUmF0ZSA9IG1lc3NhZ2UuQ29ubmVjdGlvbkNvbXBsZXRlLmF1ZGlvX3NhbXBsZV9yYXRlCiAgICAgICAgICAgIGNvbnN0IGF1ZGlvQ2hhbm5lbENvdW50ID0gbWVzc2FnZS5Db25uZWN0aW9uQ29tcGxldGUuYXVkaW9fY2hhbm5lbF9jb3VudAogICAgICAgICAgICBjb25zdCBhdWRpb1N0cmVhbXMgPSBtZXNzYWdlLkNvbm5lY3Rpb25Db21wbGV0ZS5hdWRpb19zdHJlYW1zCiAgICAgICAgICAgIGNvbnN0IGF1ZGlvQ291cGxlZFN0cmVhbXMgPSBtZXNzYWdlLkNvbm5lY3Rpb25Db21wbGV0ZS5hdWRpb19jb3VwbGVkX3N0cmVhbXMKICAgICAgICAgICAgY29uc3QgYXVkaW9TYW1wbGVzUGVyRnJhbWUgPSBtZXNzYWdlLkNvbm5lY3Rpb25Db21wbGV0ZS5hdWRpb19zYW1wbGVzX3Blcl9mcmFtZQogICAgICAgICAgICBjb25zdCBhdWRpb01hcHBpbmcgPSBtZXNzYWdlLkNvbm5lY3Rpb25Db21wbGV0ZS5hdWRpb19tYXBwaW5nCgogICAgICAgICAgICBjb25zdCBmb3JtYXQgPSBnZXRTZWxlY3RlZFZpZGVvQ29kZWMoZm9ybWF0UmF3KQogICAgICAgICAgICBpZiAoZm9ybWF0ID09IG51bGwpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYFZpZGVvIEZvcm1hdCAke2Zvcm1hdFJhd30gd2FzIG5vdCBmb3VuZCEgQ291bGRuJ3Qgc3RhcnQgc3RyZWFtIWAsIHsgdHlwZTogImZhdGFsIiB9KQogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnN0IGV2ZW50OiBJbmZvRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoInN0cmVhbS1pbmZvIiwgewogICAgICAgICAgICAgICAgZGV0YWlsOiB7IHR5cGU6ICJjb25uZWN0aW9uQ29tcGxldGUiLCBjYXBhYmlsaXRpZXMgfQogICAgICAgICAgICB9KQoKICAgICAgICAgICAgdGhpcy5ldmVudFRhcmdldC5kaXNwYXRjaEV2ZW50KGV2ZW50KQoKICAgICAgICAgICAgdGhpcy5pbnB1dC5vblN0cmVhbVN0YXJ0KGNhcGFiaWxpdGllcywgW3dpZHRoLCBoZWlnaHRdKQoKICAgICAgICAgICAgdGhpcy5zdGF0cy5zZXRWaWRlb0luZm8oZm9ybWF0ID8/ICJVbmtub3duIiwgd2lkdGgsIGhlaWdodCwgZnBzKQogICAgICAgICAgICAvLyBIRFIgc3RhdGUgd2lsbCBiZSBzZXQgd2hlbiBzZXJ2ZXIgc2VuZHMgSGRyTW9kZVVwZGF0ZSBtZXNzYWdlCiAgICAgICAgICAgIC8vIERvbid0IGluaXRpYWxpemUgZnJvbSBzZXR0aW5ncy5oZHIgYmVjYXVzZSB0aGF0J3MganVzdCB0aGUgdXNlcidzIHByZWZlcmVuY2UsCiAgICAgICAgICAgIC8vIG5vdCB0aGUgYWN0dWFsIEhEUiBzdGF0ZSAod2hpY2ggZGVwZW5kcyBvbiBob3N0IHN1cHBvcnQsIGRpc3BsYXksIGFuZCBjb2RlYykKICAgICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuaGRyKSB7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKCJIRFIgcmVxdWVzdGVkIGJ5IHVzZXIsIHdhaXRpbmcgZm9yIGhvc3QgY29uZmlybWF0aW9uLi4uIikKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIGFsbG93IHN0cmVhbWluZyB3aXRob3V0IGF1ZGlvCiAgICAgICAgICAgIGlmICghdGhpcy5hdWRpb1BsYXllcikgewogICAgICAgICAgICAgICAgc2hvd05vdGlmaWNhdGlvbigiRmFpbGVkIHRvIGZpbmQgc3VwcG9ydGVkIGF1ZGlvIHBsYXllciAtPiBhdWRpbyBpcyBtaXNzaW5nLiIpCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghdGhpcy52aWRlb1JlbmRlcmVyIHx8ICF0aGlzLmF1ZGlvUGxheWVyKSB7CiAgICAgICAgICAgICAgICB0aHJvdyAiVmlkZW8gcmVuZGVyZXIgb3IgYXVkaW8gcGxheWVyIG5vdCBpbml0aWFsaXplZCEiCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFsKICAgICAgICAgICAgICAgIHRoaXMudmlkZW9SZW5kZXJlci5zZXR1cCh7CiAgICAgICAgICAgICAgICAgICAgY29kZWM6IGZvcm1hdCwKICAgICAgICAgICAgICAgICAgICBmcHMsCiAgICAgICAgICAgICAgICAgICAgd2lkdGgsCiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LAogICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvUGxheWVyLnNldHVwKHsKICAgICAgICAgICAgICAgICAgICBzYW1wbGVSYXRlOiBhdWRpb1NhbXBsZVJhdGUsCiAgICAgICAgICAgICAgICAgICAgY2hhbm5lbHM6IGF1ZGlvQ2hhbm5lbENvdW50LAogICAgICAgICAgICAgICAgICAgIHN0cmVhbXM6IGF1ZGlvU3RyZWFtcywKICAgICAgICAgICAgICAgICAgICBjb3VwbGVkU3RyZWFtczogYXVkaW9Db3VwbGVkU3RyZWFtcywKICAgICAgICAgICAgICAgICAgICBzYW1wbGVzUGVyRnJhbWU6IGF1ZGlvU2FtcGxlc1BlckZyYW1lLAogICAgICAgICAgICAgICAgICAgIG1hcHBpbmc6IGF1ZGlvTWFwcGluZywKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIF0pCgogICAgICAgICAgICBpZiAoIXRoaXMuc3RvcHBpbmcgJiYgIXRoaXMucmVzdGFydGluZyAmJiB0aGlzLnRyYW5zcG9ydCA9PT0gbWVzc2FnZVRyYW5zcG9ydCkgdGhpcy5tYXJrQ29ubmVjdGlvbkNvbXBsZXRlKCkKICAgICAgICB9IGVsc2UgaWYgKCJDb25uZWN0aW9uVGVybWluYXRlZCIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICBjb25zdCBjb2RlID0gbWVzc2FnZS5Db25uZWN0aW9uVGVybWluYXRlZC5lcnJvcl9jb2RlCgogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBDb25uZWN0aW9uVGVybWluYXRlZCB3aXRoIGNvZGUgJHtjb2RlfWAsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pCiAgICAgICAgfQogICAgICAgIC8vIC0tIFdlYlJUQyBDb25maWcKICAgICAgICBlbHNlIGlmICgiU2V0dXAiIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgY29uc3QgaWNlU2VydmVycyA9IG1lc3NhZ2UuU2V0dXAuaWNlX3NlcnZlcnMKCiAgICAgICAgICAgIHRoaXMuaWNlU2VydmVycyA9IGljZVNlcnZlcnMKCiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYHdpbmRvdy5pc1NlY3VyZUNvbnRleHQ6ICR7d2luZG93LmlzU2VjdXJlQ29udGV4dH1gKQogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKCJSZWNlaXZlZCBXZWJSVEMgY29uZmlndXJhdGlvbiIpCgogICAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0Q29ubmVjdGlvbigpCiAgICAgICAgfQogICAgICAgIC8vIC0tIFdlYlJUQwogICAgICAgIGVsc2UgaWYgKCJXZWJSdGMiIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgY29uc3Qgd2VicnRjTWVzc2FnZSA9IG1lc3NhZ2UuV2ViUnRjCiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zcG9ydCBpbnN0YW5jZW9mIFdlYlJUQ1RyYW5zcG9ydCkgewogICAgICAgICAgICAgICAgdGhpcy50cmFuc3BvcnQub25SZWNlaXZlTWVzc2FnZSh3ZWJydGNNZXNzYWdlKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgUmVjZWl2ZWQgV2ViUlRDIG1lc3NhZ2UgYnV0IHRyYW5zcG9ydCBpcyBjdXJyZW50bHkgJHt0aGlzLnRyYW5zcG9ydD8uaW1wbGVtZW50YXRpb25OYW1lfWApCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgYXN5bmMgc3RhcnRDb25uZWN0aW9uKCkgewogICAgICAgIGlmICh0aGlzLnN0b3BwaW5nKSByZXR1cm4KICAgICAgICB0aGlzLmRlYnVnTG9nKGBQZXJtaXNzaW9uczogJHtKU09OLnN0cmluZ2lmeSh0aGlzLnBlcm1pc3Npb25zKX1gKQoKICAgICAgICBjb25zdCBkZXNpcmVkVHJhbnNwb3J0ID0gdGhpcy50cmFuc3BvcnRPdmVycmlkZSA/PyB0aGlzLnNldHRpbmdzLmRhdGFUcmFuc3BvcnQKICAgICAgICB0aGlzLmRlYnVnTG9nKGBVc2luZyB0cmFuc3BvcnQ6ICR7ZGVzaXJlZFRyYW5zcG9ydH1gKQoKICAgICAgICBpZiAoZGVzaXJlZFRyYW5zcG9ydCA9PSAiYXV0byIpIHsKICAgICAgICAgICAgbGV0IHNodXRkb3duUmVhc29uID0gYXdhaXQgdGhpcy50cnlXZWJSVENUcmFuc3BvcnQoKQoKICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3BwaW5nICYmIChzaHV0ZG93blJlYXNvbiA9PSAiZmFpbGVkbm9jb25uZWN0IiB8fCBzaHV0ZG93blJlYXNvbiA9PSAiZmFpbGVkIikpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIkZhaWxlZCB0byBlc3RhYmxpc2ggV2ViUlRDIGNvbm5lY3Rpb24uIEZhbGxpbmcgYmFjayB0byBXZWIgU29ja2V0IHRyYW5zcG9ydC4iLCB7IHR5cGU6ICJpZkVycm9yRGVzY3JpcHRpb24iIH0pCiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJlc3RhcnRXaXRoRnJlc2hUcmFuc3BvcnRGYWxsYmFjaygid2Vic29ja2V0IikKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmIChkZXNpcmVkVHJhbnNwb3J0ID09ICJ3ZWJydGMiKSB7CiAgICAgICAgICAgIGF3YWl0IHRoaXMudHJ5V2ViUlRDVHJhbnNwb3J0KCkKICAgICAgICB9IGVsc2UgaWYgKGRlc2lyZWRUcmFuc3BvcnQgPT0gIndlYnNvY2tldCIpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLmRpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKQogICAgICAgICAgICAgICAgdGhpcy5yZWNvcmREaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyh7IG91dGNvbWU6ICJ1bmF2YWlsYWJsZSIsIHJlYXNvbjogIm5vdC1lbmFibGVkIiwgZmFsbGJhY2s6IGZhbHNlIH0pCiAgICAgICAgICAgIGF3YWl0IHRoaXMudHJ5V2ViU29ja2V0VHJhbnNwb3J0KCkKICAgICAgICB9CgogICAgICAgIGlmICghdGhpcy5zdG9wcGluZykgdGhpcy5kZWJ1Z0xvZygiVHJpZWQgYWxsIGNvbmZpZ3VyZWQgdHJhbnNwb3J0IG9wdGlvbnMgYnV0IG5vIGNvbm5lY3Rpb24gd2FzIHBvc3NpYmxlIiwgeyB0eXBlOiAiZmF0YWwiIH0pCiAgICB9CgogICAgcHJpdmF0ZSB0cmFuc3BvcnQ6IFRyYW5zcG9ydCB8IG51bGwgPSBudWxsCgogICAgcHJpdmF0ZSByZWNvcmREaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyh2YWx1ZTogRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMpIHsKICAgICAgICB0aGlzLmRpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljID0gdmFsdWUKICAgICAgICB0aGlzLnN0YXRzPy5zZXREaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYz8uKHZhbHVlKQogICAgfQogICAgcHJpdmF0ZSBjcmVhdGVDb250cm9sV2ViU29ja2V0KCk6IFdlYlNvY2tldCB7CiAgICAgICAgY29uc3Qgd3NBcGlIb3N0ID0gdGhpcy5hcGkuaG9zdF91cmwucmVwbGFjZSgvXmh0dHAocyk/Oi8sICJ3cyQxOiIpCiAgICAgICAgY29uc3Qgd3MgPSBuZXcgdGhpcy5zb2NrZXRDb25zdHJ1Y3RvcihgJHt3c0FwaUhvc3R9L2hvc3Qvc3RyZWFtYCkKCiAgICAgICAgd3MuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgaWYgKHRoaXMud3MgIT09IHdzIHx8IHRoaXMucmVzdGFydGluZyB8fCB0aGlzLnN0b3BwaW5nKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLm9uRXJyb3IoZXZlbnQpCiAgICAgICAgfSkKICAgICAgICB3cy5hZGRFdmVudExpc3RlbmVyKCJvcGVuIiwgKCkgPT4gewogICAgICAgICAgICBpZiAodGhpcy53cyAhPT0gd3MpIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMub25Xc09wZW4oKQogICAgICAgIH0pCiAgICAgICAgd3MuYWRkRXZlbnRMaXN0ZW5lcigiY2xvc2UiLCAoKSA9PiB7CiAgICAgICAgICAgIGlmICh0aGlzLndzICE9PSB3cyB8fCB0aGlzLnJlc3RhcnRpbmcgfHwgdGhpcy5zdG9wcGluZykgewogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5vbldzQ2xvc2UoKQogICAgICAgIH0pCiAgICAgICAgd3MuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4gewogICAgICAgICAgICBpZiAodGhpcy53cyAhPT0gd3MpIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMub25SYXdXc01lc3NhZ2UoZXZlbnQpCiAgICAgICAgfSkKCiAgICAgICAgcmV0dXJuIHdzCiAgICB9CiAgICBwcml2YXRlIHNlbmRJbml0TWVzc2FnZSgpIHsKICAgICAgICB0aGlzLnNlbmRXc01lc3NhZ2UoewogICAgICAgICAgICBJbml0OiB7CiAgICAgICAgICAgICAgICBob3N0X2lkOiB0aGlzLmhvc3RJZCwKICAgICAgICAgICAgICAgIGFwcF9pZDogdGhpcy5hcHBJZCwKICAgICAgICAgICAgICAgIHZpZGVvX2ZyYW1lX3F1ZXVlX3NpemU6IHRoaXMuc2V0dGluZ3MudmlkZW9GcmFtZVF1ZXVlU2l6ZSwKICAgICAgICAgICAgICAgIGF1ZGlvX3NhbXBsZV9xdWV1ZV9zaXplOiB0aGlzLnNldHRpbmdzLmF1ZGlvU2FtcGxlUXVldWVTaXplLAogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgIH0KICAgIHByaXZhdGUgYXN5bmMgcmVzdGFydFdpdGhGcmVzaFRyYW5zcG9ydEZhbGxiYWNrKHRyYW5zcG9ydDogVHJhbnNwb3J0VHlwZSk6IFByb21pc2U8dm9pZD4gewogICAgICAgIGlmICh0aGlzLnN0b3BwaW5nIHx8IHRoaXMucmVzdGFydGluZykgcmV0dXJuCiAgICAgICAgaWYgKHRoaXMuZGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMpCiAgICAgICAgICAgIHRoaXMucmVjb3JkRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMoeyAuLi50aGlzLmRpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljLCBmYWxsYmFjazogdHJ1ZSB9KQogICAgICAgIHRoaXMucmVzdGFydGluZyA9IHRydWUKICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJzdHJlYW0taW5mbyIsIHsgZGV0YWlsOiB7IHR5cGU6ICJ0cmFuc3BvcnRGYWxsYmFjayIgfSB9KSkKICAgICAgICB0aGlzLnRyYW5zcG9ydE92ZXJyaWRlID0gdHJhbnNwb3J0CiAgICAgICAgdGhpcy5yZXNldFZpZGVvUmVhZHlTdGF0ZSgpCgogICAgICAgIGlmICh0aGlzLnRyYW5zcG9ydCkgewogICAgICAgICAgICBhd2FpdCB0aGlzLnRyYW5zcG9ydC5jbG9zZSgpCiAgICAgICAgICAgIHRoaXMudHJhbnNwb3J0ID0gbnVsbAogICAgICAgIH0KCiAgICAgICAgdGhpcy53c1NlbmRCdWZmZXIubGVuZ3RoID0gMAogICAgICAgIGNvbnN0IG9sZFdzID0gdGhpcy53cwoKICAgICAgICBpZiAob2xkV3MucmVhZHlTdGF0ZSA9PSBXZWJTb2NrZXQuT1BFTiB8fCBvbGRXcy5yZWFkeVN0YXRlID09IFdlYlNvY2tldC5DT05ORUNUSU5HKSB7CiAgICAgICAgICAgIG9sZFdzLmNsb3NlKCkKICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHsKICAgICAgICAgICAgICAgIGNvbnN0IHRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiByZXNvbHZlKCksIDEwMDApCiAgICAgICAgICAgICAgICBvbGRXcy5hZGRFdmVudExpc3RlbmVyKCJjbG9zZSIsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpCiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpCiAgICAgICAgICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSkKICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB3aW5kb3cuc2V0VGltZW91dChyZXNvbHZlLCBGQUxMQkFDS19SRUNPTk5FQ1RfREVMQVlfTVMpKQogICAgICAgIGlmICh0aGlzLnN0b3BwaW5nKSByZXR1cm4KICAgICAgICB0aGlzLndzID0gdGhpcy5jcmVhdGVDb250cm9sV2ViU29ja2V0KCkKICAgICAgICB0aGlzLnJlc3RhcnRpbmcgPSBmYWxzZQogICAgICAgIHRoaXMuc2VuZEluaXRNZXNzYWdlKCkKICAgIH0KCiAgICBwcml2YXRlIHNldFRyYW5zcG9ydCh0cmFuc3BvcnQ6IFRyYW5zcG9ydCkgewogICAgICAgIGlmICh0aGlzLnRyYW5zcG9ydCkgewogICAgICAgICAgICB0aGlzLnRyYW5zcG9ydC5jbG9zZSgpCiAgICAgICAgfQoKICAgICAgICB0aGlzLnRyYW5zcG9ydCA9IHRyYW5zcG9ydAoKICAgICAgICB0aGlzLmlucHV0LnNldFRyYW5zcG9ydCh0aGlzLnRyYW5zcG9ydCkKICAgICAgICB0aGlzLnN0YXRzLnNldFRyYW5zcG9ydCh0aGlzLnRyYW5zcG9ydCkKCiAgICAgICAgY29uc3QgcnR0ID0gdGhpcy50cmFuc3BvcnQuZ2V0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQuUlRUKQogICAgICAgIGlmIChydHQudHlwZSA9PSAiZGF0YSIpIHsKICAgICAgICAgICAgcnR0LmFkZFJlY2VpdmVMaXN0ZW5lcigoZGF0YSkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgYnVmZmVyID0gbmV3IEJ5dGVCdWZmZXIoZGF0YS5ieXRlTGVuZ3RoKQogICAgICAgICAgICAgICAgYnVmZmVyLnB1dFU4QXJyYXkobmV3IFVpbnQ4QXJyYXkoZGF0YSkpCiAgICAgICAgICAgICAgICBidWZmZXIuZmxpcCgpCgogICAgICAgICAgICAgICAgY29uc3QgdHkgPSBidWZmZXIuZ2V0VTgoKQogICAgICAgICAgICAgICAgaWYgKHR5ID09IDApIHsKICAgICAgICAgICAgICAgICAgICBydHQuc2VuZChkYXRhKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIkZhaWxlZCB0byBnZXQgcnR0IGFzIGRhdGEgdHJhbnNwb3J0IGNoYW5uZWwuIENhbm5vdCByZXNwb25kIHRvIHJ0dCBwYWNrZXRzIikKICAgICAgICB9CgogICAgICAgIC8vIFNldHVwIEdFTkVSQUwgY2hhbm5lbCBsaXN0ZW5lciBmb3IgSERSIG1vZGUgdXBkYXRlcwogICAgICAgIGNvbnN0IGdlbmVyYWxDaGFubmVsID0gdGhpcy50cmFuc3BvcnQuZ2V0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQuR0VORVJBTCkKICAgICAgICB0aGlzLmRlYnVnTG9nKGBbR0VORVJBTF0gU2V0dGluZyB1cCBHRU5FUkFMIGNoYW5uZWwgbGlzdGVuZXIsIHR5cGU9JHtnZW5lcmFsQ2hhbm5lbC50eXBlfWApCiAgICAgICAgaWYgKGdlbmVyYWxDaGFubmVsLnR5cGUgPT09ICJkYXRhIikgewogICAgICAgICAgICBnZW5lcmFsQ2hhbm5lbC5hZGRSZWNlaXZlTGlzdGVuZXIoKGRhdGE6IEFycmF5QnVmZmVyKSA9PiB7CiAgICAgICAgICAgICAgICB0aGlzLm9uR2VuZXJhbENoYW5uZWxNZXNzYWdlKGRhdGEpCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYFtHRU5FUkFMXSBHRU5FUkFMIGNoYW5uZWwgbGlzdGVuZXIgcmVnaXN0ZXJlZGApCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgW0dFTkVSQUxdIENhbm5vdCByZWdpc3RlciBsaXN0ZW5lciwgY2hhbm5lbCB0eXBlIGlzIG5vdCAnZGF0YSdgKQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIG9uR2VuZXJhbENoYW5uZWxNZXNzYWdlKGRhdGE6IEFycmF5QnVmZmVyKSB7CiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgW0dFTkVSQUxdIFJlY2VpdmVkIG1lc3NhZ2Ugb24gR0VORVJBTCBjaGFubmVsLCBzaXplPSR7ZGF0YS5ieXRlTGVuZ3RofWApCiAgICAgICAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoZGF0YSkKICAgICAgICBpZiAoYnVmZmVyLmxlbmd0aCA8IDIpIHsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgW0dFTkVSQUxdIE1lc3NhZ2UgdG9vIHNob3J0OiAke2J1ZmZlci5sZW5ndGh9IGJ5dGVzYCkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCB0ZXh0TGVuZ3RoID0gKGJ1ZmZlclswXSA8PCA4KSB8IGJ1ZmZlclsxXQogICAgICAgIGlmIChidWZmZXIubGVuZ3RoIDwgMiArIHRleHRMZW5ndGgpIHsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgW0dFTkVSQUxdIE1lc3NhZ2UgaW5jb21wbGV0ZTogZXhwZWN0ZWQgJHsyICsgdGV4dExlbmd0aH0gYnl0ZXMsIGdvdCAke2J1ZmZlci5sZW5ndGh9YCkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCB0ZXh0ID0gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGJ1ZmZlci5zbGljZSgyLCAyICsgdGV4dExlbmd0aCkpCiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgW0dFTkVSQUxdIFBhcnNlZCBtZXNzYWdlOiAke3RleHR9YCkKICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCBtZXNzYWdlOiBHZW5lcmFsU2VydmVyTWVzc2FnZSA9IEpTT04ucGFyc2UodGV4dCkKICAgICAgICAgICAgdGhpcy5oYW5kbGVHZW5lcmFsTWVzc2FnZShtZXNzYWdlKQogICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBGYWlsZWQgdG8gcGFyc2UgZ2VuZXJhbCBtZXNzYWdlOiAke2Vycn1gKQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGhhbmRsZUdlbmVyYWxNZXNzYWdlKG1lc3NhZ2U6IEdlbmVyYWxTZXJ2ZXJNZXNzYWdlKSB7CiAgICAgICAgaWYgKCJIZHJNb2RlVXBkYXRlIiBpbiBtZXNzYWdlKSB7CiAgICAgICAgICAgIGNvbnN0IGhkclVwZGF0ZSA9IG1lc3NhZ2UuSGRyTW9kZVVwZGF0ZQogICAgICAgICAgICBpZiAoaGRyVXBkYXRlKSB7CiAgICAgICAgICAgICAgICBjb25zdCBlbmFibGVkID0gaGRyVXBkYXRlLmVuYWJsZWQKICAgICAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYEhEUiBtb2RlICR7ZW5hYmxlZCA/ICJlbmFibGVkIiA6ICJkaXNhYmxlZCJ9YCkKICAgICAgICAgICAgICAgIHRoaXMuc2V0SGRyTW9kZShlbmFibGVkKQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmICgiQ29ubmVjdGlvblN0YXR1c1VwZGF0ZSIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICBjb25zdCBzdGF0dXNVcGRhdGUgPSBtZXNzYWdlLkNvbm5lY3Rpb25TdGF0dXNVcGRhdGUKICAgICAgICAgICAgaWYgKHN0YXR1c1VwZGF0ZSkgewogICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gc3RhdHVzVXBkYXRlLnN0YXR1cwogICAgICAgICAgICAgICAgY29uc3QgZXZlbnQ6IEluZm9FdmVudCA9IG5ldyBDdXN0b21FdmVudCgic3RyZWFtLWluZm8iLCB7CiAgICAgICAgICAgICAgICAgICAgZGV0YWlsOiB7IHR5cGU6ICJjb25uZWN0aW9uU3RhdHVzIiwgc3RhdHVzIH0KICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBzZXRIZHJNb2RlKGVuYWJsZWQ6IGJvb2xlYW4pIHsKICAgICAgICB0aGlzLnN0YXRzLnNldEhkckVuYWJsZWQoZW5hYmxlZCkKICAgICAgICBpZiAodGhpcy52aWRlb1JlbmRlcmVyKSB7CiAgICAgICAgICAgIGlmICgic2V0SGRyTW9kZSIgaW4gdGhpcy52aWRlb1JlbmRlcmVyICYmIHR5cGVvZiB0aGlzLnZpZGVvUmVuZGVyZXIuc2V0SGRyTW9kZSA9PT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgdGhpcy52aWRlb1JlbmRlcmVyLnNldEhkck1vZGUoZW5hYmxlZCkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHNlbmRHZW5lcmFsTWVzc2FnZShtZXNzYWdlOiBHZW5lcmFsQ2xpZW50TWVzc2FnZSk6IGJvb2xlYW4gewogICAgICAgIGNvbnN0IGdlbmVyYWwgPSB0aGlzLnRyYW5zcG9ydD8uZ2V0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQuR0VORVJBTCkKCiAgICAgICAgaWYgKCFnZW5lcmFsIHx8IGdlbmVyYWwudHlwZSAhPSAiZGF0YSIpIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlCiAgICAgICAgfQoKICAgICAgICBjb25zdCB0ZXh0ID0gSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkKCiAgICAgICAgY29uc3QgYnVmZmVyID0gQklHX0JVRkZFUgogICAgICAgIGJ1ZmZlci5yZXNldCgpCiAgICAgICAgYnVmZmVyLnB1dFUxNih0ZXh0Lmxlbmd0aCkKICAgICAgICBidWZmZXIucHV0VXRmOFJhdyh0ZXh0KQogICAgICAgIGJ1ZmZlci5mbGlwKCkKCiAgICAgICAgZ2VuZXJhbC5zZW5kKGJ1ZmZlci5nZXRSZW1haW5pbmdCdWZmZXIoKS5idWZmZXIpCgogICAgICAgIHJldHVybiB0cnVlCiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyB0cnlXZWJSVENUcmFuc3BvcnQoKTogUHJvbWlzZTxUcmFuc3BvcnRTaHV0ZG93bj4gewogICAgICAgIGlmICh0aGlzLnN0b3BwaW5nKSByZXR1cm4gImRpc2Nvbm5lY3QiCiAgICAgICAgaWYgKCF0aGlzLnBlcm1pc3Npb25zLmFsbG93X3RyYW5zcG9ydF93ZWJydGMgfHwgIXRoaXMuaWNlU2VydmVycykgewogICAgICAgICAgICB0aGlzLnJlY29yZERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKHsgb3V0Y29tZTogInVuYXZhaWxhYmxlIiwgcmVhc29uOiAhdGhpcy5wZXJtaXNzaW9ucy5hbGxvd190cmFuc3BvcnRfd2VicnRjID8gIm5vdC1lbmFibGVkIiA6ICJzZXR1cC1taXNzaW5nIiwgZmFsbGJhY2s6IGZhbHNlIH0pCiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIk5vdCB0cnlpbmcgV2ViUlRDIHRyYW5zcG9ydCBiZWNhdXNlIHBlcm1pc3Npb25zIGRpc2FsbG93IGl0IikKICAgICAgICAgICAgcmV0dXJuICJmYWlsZWRub2Nvbm5lY3QiCiAgICAgICAgfQoKICAgICAgICB0aGlzLmRlYnVnTG9nKCJUcnlpbmcgV2ViUlRDIHRyYW5zcG9ydCIpCgogICAgICAgIGNvbnN0IHRyYW5zcG9ydCA9IG5ldyBXZWJSVENUcmFuc3BvcnQodGhpcy5sb2dnZXIpCiAgICAgICAgY29uc3Qgc3RhcnRlZCA9IHBlcmZvcm1hbmNlLm5vdygpCiAgICAgICAgbGV0IGFjdGl2ZSA9IHRydWUsIG91dGNvbWU6IERpcmVjdENvbm5lY3Rpb25PdXRjb21lID0gImF0dGVtcHRpbmciLCByZWFzb246IERpcmVjdENvbm5lY3Rpb25SZWFzb24gfCB1bmRlZmluZWQsIGVsYXBzZWRNczogbnVtYmVyIHwgbnVsbCA9IG51bGwsIHNldHRsZWQgPSBmYWxzZQogICAgICAgIGNvbnN0IHB1Ymxpc2ggPSAoKSA9PiB7CiAgICAgICAgICAgIGlmICghYWN0aXZlKSByZXR1cm4KICAgICAgICAgICAgY29uc3QgZWxhcHNlZCA9IGVsYXBzZWRNcyA/PyBNYXRoLm1heCgwLCBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0ZWQpCiAgICAgICAgICAgIHRoaXMucmVjb3JkRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMoeyAuLi50cmFuc3BvcnQuZ2V0Q29ubmVjdGlvbkRpYWdub3N0aWNzPy4oKSwgb3V0Y29tZSwgcmVhc29uLCBlbGFwc2VkTXM6IGVsYXBzZWQsIGZhbGxiYWNrOiBmYWxzZSB9KQogICAgICAgIH0KICAgICAgICBjb25zdCBmaW5pc2hPdXRjb21lID0gKG5leHQ6IERpcmVjdENvbm5lY3Rpb25PdXRjb21lLCB3aHk/OiBEaXJlY3RDb25uZWN0aW9uUmVhc29uKSA9PiB7CiAgICAgICAgICAgIG91dGNvbWUgPSBuZXh0OyByZWFzb24gPSB3aHkKICAgICAgICAgICAgaWYgKGVsYXBzZWRNcyA9PT0gbnVsbCkgZWxhcHNlZE1zID0gTWF0aC5tYXgoMCwgcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydGVkKQogICAgICAgICAgICBwdWJsaXNoKCkKICAgICAgICB9CiAgICAgICAgdHJhbnNwb3J0Lm9uZGlhZ25vc3RpY3MgPSAoKSA9PiB7IGlmICghdGhpcy5zdG9wcGluZykgcHVibGlzaCgpIH0KICAgICAgICBwdWJsaXNoKCkKICAgICAgICB0cmFuc3BvcnQub25zZW5kbWVzc2FnZSA9IG1lc3NhZ2UgPT4gewogICAgICAgICAgICBpZiAoIXRoaXMuc3RvcHBpbmcgJiYgdGhpcy50cmFuc3BvcnQgPT09IHRyYW5zcG9ydCkgdGhpcy5zZW5kV3NNZXNzYWdlKHsgV2ViUnRjOiBtZXNzYWdlIH0pCiAgICAgICAgfQogICAgICAgIGxldCByZXNvbHZlTmVnb3RpYXRpb246IChjb25uZWN0ZWQ6IGJvb2xlYW4pID0+IHZvaWQgPSAoKSA9PiB7fQogICAgICAgIGNvbnN0IG5lZ290aWF0aW9uID0gbmV3IFByb21pc2U8Ym9vbGVhbj4ocmVzb2x2ZSA9PiB7IHJlc29sdmVOZWdvdGlhdGlvbiA9IHJlc29sdmUgfSkKICAgICAgICBjb25zdCBzZXR0bGUgPSAoY29ubmVjdGVkOiBib29sZWFuLCBuZXh0OiBEaXJlY3RDb25uZWN0aW9uT3V0Y29tZSwgd2h5PzogRGlyZWN0Q29ubmVjdGlvblJlYXNvbikgPT4gewogICAgICAgICAgICBpZiAoc2V0dGxlZCB8fCAhYWN0aXZlKSByZXR1cm4KICAgICAgICAgICAgc2V0dGxlZCA9IHRydWU7IGZpbmlzaE91dGNvbWUobmV4dCwgd2h5KTsgcmVzb2x2ZU5lZ290aWF0aW9uKGNvbm5lY3RlZCkKICAgICAgICB9CiAgICAgICAgY29uc3QgdGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3BwaW5nKSBzZXR0bGUoZmFsc2UsICJ0aW1lZC1vdXQiLCAibmVnb3RpYXRpb24tdGltZW91dCIpCiAgICAgICAgfSwgV0VCUlRDX0NPTk5FQ1RfVElNRU9VVF9NUykKICAgICAgICB0aGlzLmNhbmNlbFRyYW5zcG9ydEF0dGVtcHQgPSAoKSA9PiBzZXR0bGUoZmFsc2UsICJjYW5jZWxsZWQiLCAic3RvcHBlZCIpCiAgICAgICAgdHJhbnNwb3J0Lm9uY29ubmVjdCA9ICgpID0+IHsgaWYgKCF0aGlzLnN0b3BwaW5nKSBzZXR0bGUodHJ1ZSwgImNvbm5lY3RlZCIpIH0KICAgICAgICB0cmFuc3BvcnQub25jbG9zZSA9ICgpID0+IHsgaWYgKCF0aGlzLnN0b3BwaW5nKSBzZXR0bGUoZmFsc2UsICJmYWlsZWQiLCAibmVnb3RpYXRpb24tZmFpbGVkIikgfQogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGF3YWl0IHRyYW5zcG9ydC5pbml0UGVlcih7IGljZVNlcnZlcnM6IHRoaXMuaWNlU2VydmVycyB9KQogICAgICAgICAgICBpZiAodGhpcy5zdG9wcGluZykgcmV0dXJuICJkaXNjb25uZWN0IgogICAgICAgICAgICB0aGlzLnNldFRyYW5zcG9ydCh0cmFuc3BvcnQpCiAgICAgICAgICAgIHRoaXMuc2VuZFdzTWVzc2FnZSh7IFNldFRyYW5zcG9ydDogIldlYlJUQyIgfSkKICAgICAgICAgICAgY29uc3QgdmlkZW9Db2RlY1N1cHBvcnQgPSBhd2FpdCB0aGlzLmNyZWF0ZVBpcGVsaW5lcygpCiAgICAgICAgICAgIGlmICh0aGlzLnN0b3BwaW5nKSByZXR1cm4gImRpc2Nvbm5lY3QiCiAgICAgICAgICAgIGlmICghdmlkZW9Db2RlY1N1cHBvcnQpIHsKICAgICAgICAgICAgICAgIGZpbmlzaE91dGNvbWUoImZhaWxlZCIsICJ2aWRlby11bmF2YWlsYWJsZSIpCiAgICAgICAgICAgICAgICByZXR1cm4gImZhaWxlZG5vY29ubmVjdCIKICAgICAgICAgICAgfQogICAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0U3RyZWFtKHZpZGVvQ29kZWNTdXBwb3J0KQogICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZWdvdGlhdGlvbgogICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpCiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYFdlYlJUQyBuZWdvdGlhdGlvbiBzdWNjZXNzOiAke3Jlc3VsdH1gKQogICAgICAgICAgICBpZiAodGhpcy5zdG9wcGluZykgcmV0dXJuICJkaXNjb25uZWN0IgogICAgICAgICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuICJmYWlsZWRub2Nvbm5lY3QiCiAgICAgICAgICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZTxUcmFuc3BvcnRTaHV0ZG93bj4ocmVzb2x2ZSA9PiB7CiAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbFRyYW5zcG9ydEF0dGVtcHQgPSAoKSA9PiByZXNvbHZlKCJkaXNjb25uZWN0IikKICAgICAgICAgICAgICAgIHRyYW5zcG9ydC5vbmNsb3NlID0gdmFsdWUgPT4gewogICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdG9wcGluZykgZmluaXNoT3V0Y29tZSgiZmFpbGVkIiwgImNvbm5lY3Rpb24tbG9zdCIpCiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh2YWx1ZSkKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgaWYgKCF0aGlzLnN0b3BwaW5nKSBmaW5pc2hPdXRjb21lKCJmYWlsZWQiLCAic2V0dXAtZmFpbGVkIikKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZygiRGlyZWN0IHRyYW5zcG9ydCB1bmF2YWlsYWJsZTsgdXNpbmcgdGhlIHJlbGF5IGZhbGxiYWNrLiIpCiAgICAgICAgICAgIHJldHVybiB0aGlzLnN0b3BwaW5nID8gImRpc2Nvbm5lY3QiIDogImZhaWxlZG5vY29ubmVjdCIKICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBhY3RpdmUgPSBmYWxzZQogICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVvdXQpCiAgICAgICAgICAgIHRoaXMuY2FuY2VsVHJhbnNwb3J0QXR0ZW1wdCA9IG51bGwKICAgICAgICAgICAgdHJhbnNwb3J0Lm9uY29ubmVjdCA9IG51bGwKICAgICAgICAgICAgdHJhbnNwb3J0Lm9uY2xvc2UgPSBudWxsCiAgICAgICAgICAgIHRyYW5zcG9ydC5vbnNlbmRtZXNzYWdlID0gbnVsbAogICAgICAgICAgICB0cmFuc3BvcnQub25kaWFnbm9zdGljcyA9IG51bGwKICAgICAgICAgICAgYXdhaXQgdHJhbnNwb3J0LmNsb3NlKCkKICAgICAgICB9CiAgICB9CiAgICBwcml2YXRlIGFzeW5jIHRyeVdlYlNvY2tldFRyYW5zcG9ydCgpIHsKICAgICAgICBpZiAoIXRoaXMucGVybWlzc2lvbnMuYWxsb3dfdHJhbnNwb3J0X3dlYnNvY2tldHMpIHsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZygiTm90IHRyeWluZyBXZWJTb2NrZXQgdHJhbnNwb3J0IGJlY2F1ZXMgcGVybWlzc2lvbnMgZGlzYWxsb3cgaXQiKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIHRoaXMuZGVidWdMb2coIlRyeWluZyBXZWIgU29ja2V0IHRyYW5zcG9ydCIpCgogICAgICAgIHRoaXMuc2VuZFdzTWVzc2FnZSh7CiAgICAgICAgICAgIFNldFRyYW5zcG9ydDogIldlYlNvY2tldCIKICAgICAgICB9KQoKICAgICAgICBjb25zdCB0cmFuc3BvcnQgPSBuZXcgV2ViU29ja2V0VHJhbnNwb3J0KHRoaXMud3MsIEJJR19CVUZGRVIsIHRoaXMubG9nZ2VyKQoKICAgICAgICB0aGlzLnNldFRyYW5zcG9ydCh0cmFuc3BvcnQpCgogICAgICAgIGNvbnN0IHZpZGVvQ29kZWNTdXBwb3J0ID0gYXdhaXQgdGhpcy5jcmVhdGVQaXBlbGluZXMoKQogICAgICAgIGlmICghdmlkZW9Db2RlY1N1cHBvcnQpIHsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZygiRmFpbGVkIHRvIHN0YXJ0IHN0cmVhbSBiZWNhdXNlIG5vIHZpZGVvIHBpcGVsaW5lIHdpdGggc3VwcG9ydCBmb3IgdGhlIHNwZWNpZmllZCBjb2RlYyB3YXMgZm91bmQhIiwgeyB0eXBlOiAiZmF0YWxEZXNjcmlwdGlvbiIgfSkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0U3RyZWFtKHZpZGVvQ29kZWNTdXBwb3J0KQoKICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgICAgICAgdHJhbnNwb3J0Lm9uY2xvc2UgPSAoc2h1dGRvd24pID0+IHsKICAgICAgICAgICAgICAgIHJlc29sdmUoc2h1dGRvd24pCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgY3JlYXRlUGlwZWxpbmVzKCk6IFByb21pc2U8VmlkZW9Db2RlY1N1cHBvcnQgfCBudWxsPiB7CiAgICAgICAgLy8gUHJpbnQgc3VwcG9ydGVkIHBpcGVzCiAgICAgICAgY29uc3QgcGlwZXNJbmZvID0gYXdhaXQgZ2F0aGVyUGlwZUluZm8oKQoKICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgU3VwcG9ydGVkIFBpcGVzOiB7YCkKICAgICAgICBsZXQgaXNGaXJzdCA9IHRydWUKICAgICAgICBmb3IgKGNvbnN0IFtwaXBlLCBpbmZvXSBvZiBwaXBlc0luZm8pIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoYCR7aXNGaXJzdCA/ICIiIDogIiwifSIke3BpcGUubmFtZX0iOiAke0pTT04uc3RyaW5naWZ5KGluZm8pfWApCiAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZQogICAgICAgIH0KICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgfWApCgogICAgICAgIC8vIENyZWF0ZSBwaXBlbGluZXMKICAgICAgICBjb25zdCBbc3VwcG9ydGVkVmlkZW9Db2RlY3NdID0gYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuY3JlYXRlVmlkZW9SZW5kZXJlcigpLCB0aGlzLmNyZWF0ZUF1ZGlvUGxheWVyKCldKQoKICAgICAgICBjb25zdCB2aWRlb1BpcGVsaW5lTmFtZSA9IGAke3RoaXMudHJhbnNwb3J0Py5nZXRDaGFubmVsKFRyYW5zcG9ydENoYW5uZWxJZC5IT1NUX1ZJREVPKS50eXBlfSAodHJhbnNwb3J0KSAtPiAke3RoaXMudmlkZW9SZW5kZXJlcj8uaW1wbGVtZW50YXRpb25OYW1lfSAocmVuZGVyZXIpYAogICAgICAgIHRoaXMuZGVidWdMb2coYFVzaW5nIHZpZGVvIHBpcGVsaW5lOiAke3ZpZGVvUGlwZWxpbmVOYW1lfWApCgogICAgICAgIGNvbnN0IGF1ZGlvUGlwZWxpbmVOYW1lID0gYCR7dGhpcy50cmFuc3BvcnQ/LmdldENoYW5uZWwoVHJhbnNwb3J0Q2hhbm5lbElkLkhPU1RfQVVESU8pLnR5cGV9ICh0cmFuc3BvcnQpIC0+ICR7dGhpcy5hdWRpb1BsYXllcj8uaW1wbGVtZW50YXRpb25OYW1lfSAocGxheWVyKWAKICAgICAgICB0aGlzLmRlYnVnTG9nKGBVc2luZyBhdWRpbyBwaXBlbGluZTogJHthdWRpb1BpcGVsaW5lTmFtZX1gKQoKICAgICAgICB0aGlzLnN0YXRzLnNldFZpZGVvUGlwZWxpbmUodmlkZW9QaXBlbGluZU5hbWUsIHRoaXMudmlkZW9SZW5kZXJlcikKICAgICAgICB0aGlzLnN0YXRzLnNldEF1ZGlvUGlwZWxpbmUoYXVkaW9QaXBlbGluZU5hbWUsIHRoaXMuYXVkaW9QbGF5ZXIpCgogICAgICAgIHJldHVybiBzdXBwb3J0ZWRWaWRlb0NvZGVjcwogICAgfQogICAgcHJpdmF0ZSBhc3luYyBjcmVhdGVWaWRlb1JlbmRlcmVyKCk6IFByb21pc2U8VmlkZW9Db2RlY1N1cHBvcnQgfCBudWxsPiB7CiAgICAgICAgaWYgKHRoaXMudmlkZW9SZW5kZXJlcikgewogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKCJGb3VuZCBhbiBvbGQgdmlkZW8gcmVuZGVyZXIgLT4gY2xlYW5pbmcgaXQgdXAiKQoKICAgICAgICAgICAgdGhpcy52aWRlb1JlbmRlcmVyLnVubW91bnQodGhpcy5kaXZFbGVtZW50KQogICAgICAgICAgICB0aGlzLnZpZGVvUmVuZGVyZXIuY2xlYW51cCgpCiAgICAgICAgICAgIHRoaXMudmlkZW9SZW5kZXJlciA9IG51bGwKICAgICAgICB9CiAgICAgICAgaWYgKCF0aGlzLnRyYW5zcG9ydCkgewogICAgICAgICAgICB0aGlzLmRlYnVnTG9nKCJGYWlsZWQgdG8gc2V0dXAgdmlkZW8gd2l0aG91dCB0cmFuc3BvcnQiKQogICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgIH0KCiAgICAgICAgY29uc3QgY29kZWNIaW50ID0gZ2V0VmlkZW9Db2RlY0hpbnQodGhpcy5zZXR0aW5ncykKICAgICAgICB0aGlzLmRlYnVnTG9nKGBDb2RlYyBIaW50IGJ5IHRoZSB1c2VyOiAke0pTT04uc3RyaW5naWZ5KGNvZGVjSGludCl9YCkKCiAgICAgICAgaWYgKCFoYXNBbnlDb2RlYyhjb2RlY0hpbnQpKSB7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIkNvdWxkbid0IGZpbmQgYW55IHN1cHBvcnRlZCB2aWRlbyBmb3JtYXQuIENoYW5nZSB0aGUgY29kZWMgb3B0aW9uIHRvIEgyNjQgaW4gdGhlIHNldHRpbmdzIGlmIHlvdSdyZSB1bnN1cmUgd2hpY2ggY29kZWNzIGFyZSBzdXBwb3J0ZWQuIiwgeyB0eXBlOiAiZmF0YWxEZXNjcmlwdGlvbiIgfSkKICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICB9CgogICAgICAgIGNvbnN0IHRyYW5zcG9ydENvZGVjU3VwcG9ydCA9IGF3YWl0IHRoaXMudHJhbnNwb3J0LnNldHVwSG9zdFZpZGVvKHsKICAgICAgICAgICAgdHlwZTogWyJ2aWRlb3RyYWNrIiwgImRhdGEiXQogICAgICAgIH0pCiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgVHJhbnNwb3J0IHN1cHBvcnRzIHRoZXNlIHZpZGVvIGNvZGVjczogJHtKU09OLnN0cmluZ2lmeSh0cmFuc3BvcnRDb2RlY1N1cHBvcnQpfWApCgogICAgICAgIGNvbnN0IHZpZGVvU2V0dGluZ3M6IFZpZGVvUGlwZWxpbmVPcHRpb25zID0gewogICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYW5kVmlkZW9Db2RlY3MoY29kZWNIaW50LCB0cmFuc3BvcnRDb2RlY1N1cHBvcnQpLAogICAgICAgICAgICBjYW52YXNSZW5kZXJlcjogdGhpcy5zZXR0aW5ncy5jYW52YXNSZW5kZXJlciwKICAgICAgICAgICAgZm9yY2VWaWRlb0VsZW1lbnRSZW5kZXJlcjogdGhpcy5zZXR0aW5ncy5mb3JjZVZpZGVvRWxlbWVudFJlbmRlcmVyLAogICAgICAgICAgICBjYW52YXNWc3luYzogdGhpcy5zZXR0aW5ncy5jYW52YXNWc3luYwogICAgICAgIH0KCiAgICAgICAgbGV0IHBpcGVsaW5lQ29kZWNTdXBwb3J0CiAgICAgICAgY29uc3QgdmlkZW8gPSB0aGlzLnRyYW5zcG9ydC5nZXRDaGFubmVsKFRyYW5zcG9ydENoYW5uZWxJZC5IT1NUX1ZJREVPKQogICAgICAgIGlmICh2aWRlby50eXBlID09ICJ2aWRlb3RyYWNrIikgewogICAgICAgICAgICAvLyBQcmVmZXIgbmF0aXZlIHZpZGVvIHByZXNlbnRhdGlvbiBmb3IgV2ViUlRDIHRyYWNrcywgYXZvaWRpbmcgYQogICAgICAgICAgICAvLyBKYXZhU2NyaXB0IGZyYW1lIHB1bXAgYW5kIGNhbnZhcyBjb3B5IG9uIGVhY2ggZGVjb2RlZCBmcmFtZS4KICAgICAgICAgICAgLy8gTm9ybWFsIGNhcGFiaWxpdHkgY2hlY2tzIHN0aWxsIGFsbG93IGEgc3VwcG9ydGVkIGNhbnZhcyBmYWxsYmFjay4KICAgICAgICAgICAgLy8gS2VlcCB0aGUgZGF0YS1jaGFubmVsIHNldHRpbmdzIHVuY2hhbmdlZCBmb3IgV2ViU29ja2V0L1dlYkNvZGVjcy4KICAgICAgICAgICAgY29uc3QgdHJhY2tTZXR0aW5ncyA9IHsgLi4udmlkZW9TZXR0aW5ncywgY2FudmFzUmVuZGVyZXI6IGZhbHNlLCBmb3JjZVZpZGVvRWxlbWVudFJlbmRlcmVyOiBmYWxzZSB9CiAgICAgICAgICAgIGNvbnN0IHsgdmlkZW9SZW5kZXJlciwgc3VwcG9ydGVkQ29kZWNzLCBlcnJvciB9ID0gYXdhaXQgYnVpbGRWaWRlb1BpcGVsaW5lKCJ2aWRlb3RyYWNrIiwgdHJhY2tTZXR0aW5ncywgdGhpcy5sb2dnZXIpCgogICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcGlwZWxpbmVDb2RlY1N1cHBvcnQgPSBzdXBwb3J0ZWRDb2RlY3MKCiAgICAgICAgICAgIHZpZGVvUmVuZGVyZXIubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAgICAgdmlkZW8uYWRkVHJhY2tMaXN0ZW5lcigodHJhY2spID0+IHsKICAgICAgICAgICAgICAgIHRoaXMubWFya1ZpZGVvUmVhZHkoKQogICAgICAgICAgICAgICAgdmlkZW9SZW5kZXJlci5zZXRUcmFjayh0cmFjaykKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIHRoaXMudmlkZW9SZW5kZXJlciA9IHZpZGVvUmVuZGVyZXIKICAgICAgICB9IGVsc2UgaWYgKHZpZGVvLnR5cGUgPT0gImRhdGEiKSB7CiAgICAgICAgICAgIGNvbnN0IHsgdmlkZW9SZW5kZXJlciwgc3VwcG9ydGVkQ29kZWNzLCBlcnJvciB9ID0gYXdhaXQgYnVpbGRWaWRlb1BpcGVsaW5lKCJkYXRhIiwgdmlkZW9TZXR0aW5ncywgdGhpcy5sb2dnZXIpCgogICAgICAgICAgICBpZiAoZXJyb3IpIHsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcGlwZWxpbmVDb2RlY1N1cHBvcnQgPSBzdXBwb3J0ZWRDb2RlY3MKCiAgICAgICAgICAgIHZpZGVvUmVuZGVyZXIubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAgICAgdmlkZW8uYWRkUmVjZWl2ZUxpc3RlbmVyKChkYXRhKSA9PiB7CiAgICAgICAgICAgICAgICB0aGlzLm1hcmtWaWRlb1JlYWR5KCkKICAgICAgICAgICAgICAgIHZpZGVvUmVuZGVyZXIuc3VibWl0UGFja2V0KGRhdGEpCgogICAgICAgICAgICAgICAgLy8gZGF0YSBwaXBlbGluZSBzdXBwb3J0IHJlcXVlc3RpbmcgaWRycyBvdmVyIHZpZGVvIGNoYW5uZWwKICAgICAgICAgICAgICAgIGlmICh2aWRlb1JlbmRlcmVyLnBvbGxSZXF1ZXN0SWRyKCkpIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBidWZmZXIgPSBuZXcgQnl0ZUJ1ZmZlcigxKQoKICAgICAgICAgICAgICAgICAgICBidWZmZXIucHV0VTgoMCkKCiAgICAgICAgICAgICAgICAgICAgYnVmZmVyLmZsaXAoKQoKICAgICAgICAgICAgICAgICAgICB2aWRlby5zZW5kKGJ1ZmZlci5nZXRSZW1haW5pbmdCdWZmZXIoKS5idWZmZXIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pCgogICAgICAgICAgICB0aGlzLnZpZGVvUmVuZGVyZXIgPSB2aWRlb1JlbmRlcmVyCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgRmFpbGVkIHRvIGNyZWF0ZSB2aWRlbyBwaXBlbGluZSB3aXRoIHRyYW5zcG9ydCBjaGFubmVsIG9mIHR5cGUgJHt2aWRlby50eXBlfSAoJHt0aGlzLnRyYW5zcG9ydC5pbXBsZW1lbnRhdGlvbk5hbWV9KWApCiAgICAgICAgICAgIHJldHVybiBudWxsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcGlwZWxpbmVDb2RlY1N1cHBvcnQKICAgIH0KICAgIHByaXZhdGUgYXN5bmMgY3JlYXRlQXVkaW9QbGF5ZXIoKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICAgICAgaWYgKHRoaXMuYXVkaW9QbGF5ZXIpIHsKICAgICAgICAgICAgdGhpcy5kZWJ1Z0xvZygiRm91bmQgYW4gb2xkIGF1ZGlvIHBsYXllciAtPiBjbGVhbmluZyBpdCB1cCIpCgogICAgICAgICAgICB0aGlzLmF1ZGlvUGxheWVyLnVubW91bnQodGhpcy5kaXZFbGVtZW50KQogICAgICAgICAgICB0aGlzLmF1ZGlvUGxheWVyLmNsZWFudXAoKQogICAgICAgICAgICB0aGlzLmF1ZGlvUGxheWVyID0gbnVsbAogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0KSB7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coIkZhaWxlZCB0byBzZXR1cCBhdWRpbyB3aXRob3V0IHRyYW5zcG9ydCIpCiAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgIH0KCiAgICAgICAgdGhpcy50cmFuc3BvcnQuc2V0dXBIb3N0QXVkaW8oewogICAgICAgICAgICB0eXBlOiBbImF1ZGlvdHJhY2siLCAiZGF0YSJdCiAgICAgICAgfSkKCiAgICAgICAgY29uc3QgYXVkaW8gPSB0aGlzLnRyYW5zcG9ydD8uZ2V0Q2hhbm5lbChUcmFuc3BvcnRDaGFubmVsSWQuSE9TVF9BVURJTykKICAgICAgICBpZiAoYXVkaW8udHlwZSA9PSAiYXVkaW90cmFjayIpIHsKICAgICAgICAgICAgY29uc3QgeyBhdWRpb1BsYXllciwgZXJyb3IgfSA9IGF3YWl0IGJ1aWxkQXVkaW9QaXBlbGluZSgiYXVkaW90cmFjayIsIHRoaXMuc2V0dGluZ3MsIHRoaXMubG9nZ2VyKQoKICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICAgICAgfQoKICAgICAgICAgICAgYXVkaW9QbGF5ZXIubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAgICAgYXVkaW8uYWRkVHJhY2tMaXN0ZW5lcigodHJhY2spID0+IGF1ZGlvUGxheWVyLnNldFRyYWNrKHRyYWNrKSkKCiAgICAgICAgICAgIHRoaXMuYXVkaW9QbGF5ZXIgPSBhdWRpb1BsYXllcgogICAgICAgIH0gZWxzZSBpZiAoYXVkaW8udHlwZSA9PSAiZGF0YSIpIHsKICAgICAgICAgICAgY29uc3QgeyBhdWRpb1BsYXllciwgZXJyb3IgfSA9IGF3YWl0IGJ1aWxkQXVkaW9QaXBlbGluZSgiZGF0YSIsIHRoaXMuc2V0dGluZ3MsIHRoaXMubG9nZ2VyKQoKICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICAgICAgfQoKICAgICAgICAgICAgYXVkaW9QbGF5ZXIubW91bnQodGhpcy5kaXZFbGVtZW50KQoKICAgICAgICAgICAgYXVkaW8uYWRkUmVjZWl2ZUxpc3RlbmVyKChkYXRhKSA9PiB7CiAgICAgICAgICAgICAgICBhdWRpb1BsYXllci5zdWJtaXRQYWNrZXQoZGF0YSkKICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIHRoaXMuYXVkaW9QbGF5ZXIgPSBhdWRpb1BsYXllcgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuZGVidWdMb2coYENhbm5vdCBmaW5kIGF1ZGlvIHBpcGVsaW5lIGZvciB0cmFuc3BvcnQgdHlwZSAiJHthdWRpby50eXBlfSJgKQogICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICB9CgogICAgICAgIHJldHVybiB0cnVlCiAgICB9CiAgICBwcml2YXRlIGFzeW5jIHN0YXJ0U3RyZWFtKHZpZGVvQ29kZWNTdXBwb3J0OiBWaWRlb0NvZGVjU3VwcG9ydCk6IFByb21pc2U8dm9pZD4gewogICAgICAgIGlmICh0aGlzLnN0b3BwaW5nKSByZXR1cm4KICAgICAgICBjb25zdCBzZXR0aW5nczogU3RyZWFtU2V0dGluZ3MgPSB7CiAgICAgICAgICAgIGJpdHJhdGVfa2JwczogdGhpcy5zZXR0aW5ncy5iaXRyYXRlLAogICAgICAgICAgICBmcHM6IHRoaXMuc2V0dGluZ3MuZnBzLAogICAgICAgICAgICB3aWR0aDogdGhpcy5zdHJlYW1lclNpemVbMF0sCiAgICAgICAgICAgIGhlaWdodDogdGhpcy5zdHJlYW1lclNpemVbMV0sCiAgICAgICAgICAgIHBsYXlfYXVkaW9fbG9jYWw6IHRoaXMuc2V0dGluZ3MucGxheUF1ZGlvTG9jYWwsCiAgICAgICAgICAgIHN1cHBvcnRlZF9jb2RlY3M6IGNyZWF0ZVN1cHBvcnRlZFZpZGVvRm9ybWF0c0JpdHModmlkZW9Db2RlY1N1cHBvcnQpLAogICAgICAgICAgICBoZHI6IHRoaXMuc2V0dGluZ3MuaGRyID8/IGZhbHNlLAogICAgICAgIH0KCiAgICAgICAgY29uc3QgbWVzc2FnZTogU3RyZWFtQ2xpZW50TWVzc2FnZSA9IHsKICAgICAgICAgICAgU3RhcnRTdHJlYW06IHsKICAgICAgICAgICAgICAgIHNldHRpbmdzCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgU3RhcnRpbmcgc3RyZWFtIHdpdGggaW5mbzogJHtKU09OLnN0cmluZ2lmeShtZXNzYWdlKX1gKQogICAgICAgIHRoaXMuZGVidWdMb2coYFN0cmVhbSB2aWRlbyBjb2RlYyBpbmZvOiAke0pTT04uc3RyaW5naWZ5KHZpZGVvQ29kZWNTdXBwb3J0KX1gKQoKICAgICAgICAvLyBMb2cgSERSIHJlcXVpcmVtZW50cyBpZiBIRFIgaXMgcmVxdWVzdGVkCiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MuaGRyKSB7CiAgICAgICAgICAgIGNvbnN0IGhhc0hkckNvZGVjID0gdmlkZW9Db2RlY1N1cHBvcnQuSDI2NV9NQUlOMTAgfHwgdmlkZW9Db2RlY1N1cHBvcnQuQVYxX01BSU4xMAogICAgICAgICAgICBpZiAoIWhhc0hkckNvZGVjKSB7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBXYXJuaW5nOiBIRFIgcmVxdWVzdGVkIGJ1dCBubyAxMC1iaXQgY29kZWMgYXZhaWxhYmxlLiBIRFIgcmVxdWlyZXMgSDI2NV9NQUlOMTAgb3IgQVYxX01BSU4xMCBzdXBwb3J0LmApCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnTG9nKGBIRFIgY29kZWMgYXZhaWxhYmxlOiBIMjY1X01BSU4xMD0ke3ZpZGVvQ29kZWNTdXBwb3J0LkgyNjVfTUFJTjEwfSwgQVYxX01BSU4xMD0ke3ZpZGVvQ29kZWNTdXBwb3J0LkFWMV9NQUlOMTB9YCkKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdGhpcy5zZW5kV3NNZXNzYWdlKG1lc3NhZ2UpCiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLmRpdkVsZW1lbnQpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodGhpcy5kaXZFbGVtZW50KQogICAgfQoKICAgIGdldFZpZGVvUmVuZGVyZXIoKTogVmlkZW9SZW5kZXJlciB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLnZpZGVvUmVuZGVyZXIKICAgIH0KICAgIGdldEF1ZGlvUGxheWVyKCk6IEF1ZGlvUGxheWVyIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIHRoaXMuYXVkaW9QbGF5ZXIKICAgIH0KCiAgICAvLyAtLSBSYXcgV2ViIFNvY2tldCBzdHVmZgogICAgcHJpdmF0ZSB3c1NlbmRCdWZmZXI6IEFycmF5PHN0cmluZz4gPSBbXQoKICAgIHByaXZhdGUgb25Xc09wZW4oKSB7CiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgV2ViIFNvY2tldCBPcGVuYCkKCiAgICAgICAgZm9yIChjb25zdCByYXcgb2YgdGhpcy53c1NlbmRCdWZmZXIuc3BsaWNlKDApKSB7CiAgICAgICAgICAgIHRoaXMud3Muc2VuZChyYXcpCiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSBvbldzQ2xvc2UoKSB7CiAgICAgICAgdGhpcy5kZWJ1Z0xvZyhgV2ViIFNvY2tldCBDbG9zZWRgKQogICAgfQogICAgcHJpdmF0ZSBvbkVycm9yKGV2ZW50OiBFdmVudCkgewogICAgICAgIHRoaXMuZGVidWdMb2coYFdlYiBTb2NrZXQgb3IgV2ViUnRjUGVlciBFcnJvcmApCgogICAgICAgIGNvbnNvbGUuZXJyb3IoYFdlYiBTb2NrZXQgb3IgV2ViUnRjUGVlciBFcnJvcmAsIGV2ZW50KQogICAgfQoKICAgIHByaXZhdGUgc2VuZFdzTWVzc2FnZShtZXNzYWdlOiBTdHJlYW1DbGllbnRNZXNzYWdlKSB7CiAgICAgICAgY29uc3QgcmF3ID0gSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkKICAgICAgICBpZiAodGhpcy53cy5yZWFkeVN0YXRlID09IFdlYlNvY2tldC5PUEVOKSB7CiAgICAgICAgICAgIHRoaXMud3Muc2VuZChyYXcpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy53c1NlbmRCdWZmZXIucHVzaChyYXcpCiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSBvblJhd1dzTWVzc2FnZShldmVudDogTWVzc2FnZUV2ZW50KSB7CiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGV2ZW50LmRhdGEKICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UgPT0gInN0cmluZyIpIHsKICAgICAgICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UobWVzc2FnZSkKCiAgICAgICAgICAgIHRoaXMub25NZXNzYWdlKGpzb24pCiAgICAgICAgfQogICAgfQoKICAgIHN0b3AoKTogUHJvbWlzZTxib29sZWFuPiB7CiAgICAgICAgaWYgKHRoaXMuc3RvcHBpbmcpIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmFsc2UpCiAgICAgICAgdGhpcy5zdG9wcGluZyA9IHRydWUKICAgICAgICBjb25zdCBzZW50ID0gdGhpcy5zZW5kR2VuZXJhbE1lc3NhZ2UoIlN0b3AiKQogICAgICAgIHRoaXMuY2FuY2VsVHJhbnNwb3J0QXR0ZW1wdD8uKCkKICAgICAgICB2b2lkIHRoaXMudHJhbnNwb3J0Py5jbG9zZSgpCiAgICAgICAgdGhpcy5zdGF0cy5zZXRFbmFibGVkKGZhbHNlKQoKICAgICAgICAvLyBXYWl0IGZvciB0aGUgbWVzc2FnZSB0byBnZXQgc2VudAogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgX3JlamVjdCkgPT4gewogICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHJlc29sdmUoc2VudCksIDEwMCkKICAgICAgICB9KQogICAgfQoKICAgIC8vIC0tIENsYXNzIEFwaQogICAgYWRkSW5mb0xpc3RlbmVyKGxpc3RlbmVyOiBJbmZvRXZlbnRMaXN0ZW5lcikgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigic3RyZWFtLWluZm8iLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0KQogICAgfQogICAgcmVtb3ZlSW5mb0xpc3RlbmVyKGxpc3RlbmVyOiBJbmZvRXZlbnRMaXN0ZW5lcikgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic3RyZWFtLWluZm8iLCBsaXN0ZW5lciBhcyBFdmVudExpc3RlbmVyT3JFdmVudExpc3RlbmVyT2JqZWN0KQogICAgfQoKICAgIGdldElucHV0KCk6IFN0cmVhbUlucHV0IHsKICAgICAgICByZXR1cm4gdGhpcy5pbnB1dAogICAgfQogICAgZ2V0U3RhdHMoKTogU3RyZWFtU3RhdHMgewogICAgICAgIHJldHVybiB0aGlzLnN0YXRzCiAgICB9CgogICAgZ2V0U3RyZWFtZXJTaXplKCk6IFtudW1iZXIsIG51bWJlcl0gewogICAgICAgIHJldHVybiB0aGlzLnN0cmVhbWVyU2l6ZQogICAgfQp9CgpmdW5jdGlvbiBjcmVhdGVQcmV0dHlMaXN0KGxpc3Q6IEFycmF5PHN0cmluZz4pOiBzdHJpbmcgewogICAgcmV0dXJuIGBbJHtsaXN0LmpvaW4oIiwgIil9XWAKfQo="},{"path":"web/stream/input.ts","sha256":"d9209d79a0487d8bab5148d30f180f4eba8bfe116789725d54a90bb078d22ece","contentBase64":"aW1wb3J0IHsgU3RyZWFtQ2FwYWJpbGl0aWVzLCBTdHJlYW1Db250cm9sbGVyQ2FwYWJpbGl0aWVzLCBTdHJlYW1Nb3VzZUJ1dHRvbiwgVHJhbnNwb3J0Q2hhbm5lbElkIH0gZnJvbSAiLi4vYXBpX2JpbmRpbmdzLmpzIgppbXBvcnQgeyBzaG93Tm90aWZpY2F0aW9uIH0gZnJvbSAiLi4vY29tcG9uZW50L25vdGlmaWNhdGlvbi5qcyIKaW1wb3J0IHsgQnl0ZUJ1ZmZlciwgSTE2X01BWCwgVTE2X01BWCwgVThfTUFYIH0gZnJvbSAiLi9idWZmZXIuanMiCmltcG9ydCB7IENvbnRyb2xsZXJDb25maWcsIGVtcHR5R2FtZXBhZFN0YXRlLCBleHRyYWN0R2FtZXBhZFN0YXRlLCBHYW1lcGFkU3RhdGUsIFNVUFBPUlRFRF9CVVRUT05TIH0gZnJvbSAiLi9nYW1lcGFkLmpzIgppbXBvcnQgeyBjb252ZXJ0VG9LZXksIGNvbnZlcnRUb01vZGlmaWVycyB9IGZyb20gIi4va2V5Ym9hcmQuanMiCmltcG9ydCB7IGNvbnZlcnRUb0J1dHRvbiB9IGZyb20gIi4vbW91c2UuanMiCmltcG9ydCB7IERhdGFUcmFuc3BvcnRDaGFubmVsLCBUcmFuc3BvcnQsIFRyYW5zcG9ydENoYW5uZWxJZEtleSwgVHJhbnNwb3J0Q2hhbm5lbElkVmFsdWUgfSBmcm9tICIuL3RyYW5zcG9ydC9pbmRleC5qcyIKCi8vIFNtb290aCBzY3JvbGxpbmcgbXVsdGlwbGllcgpjb25zdCBUT1VDSF9ISUdIX1JFU19TQ1JPTExfTVVMVElQTElFUiA9IDEwCi8vIE5vcm1hbCBzY3JvbGxpbmcgbXVsdGlwbGllcgpjb25zdCBUT1VDSF9TQ1JPTExfTVVMVElQTElFUiA9IDEKLy8gRGlzdGFuY2UgdW50aWwgYSB0b3VjaCBjYW5ub3QgYmUgYSBjbGljayBhbnltb3JlCmNvbnN0IFRPVUNIX0FTX0NMSUNLX01BWF9ESVNUQU5DRSA9IDIKLy8gVGltZSB0aWxsIGl0J3MgcmVnaXN0ZXJlZCBhcyBhIGNsaWNrLCBlbHNlIGl0IG1pZ2h0IGJlIHNjcm9sbGluZwpjb25zdCBUT1VDSF9BU19DTElDS19NSU5fVElNRV9NUyA9IDEwMAovLyBFdmVyeXRoaW5nIGdyZWF0ZXIgdGhhbiB0aGlzIGlzIGEgcmlnaHQgY2xpY2sKY29uc3QgVE9VQ0hfQVNfQ0xJQ0tfTUFYX1RJTUVfTVMgPSAzNTAKLy8gSG93IG11Y2ggdG8gbW92ZSB0byBvcGVuIHVwIHRoZSBzY3JlZW4ga2V5Ym9hcmQgd2hlbiBoYXZpbmcgdGhyZWUgdG91Y2hlcyBhdCB0aGUgc2FtZSB0aW1lCmNvbnN0IFRPVUNIRVNfQVNfS0VZQk9BUkRfRElTVEFOQ0UgPSAxMDAKLy8gVHdvLWZpbmdlciBzY3JvbGwgb25seSBzdGFydHMgYWZ0ZXIgb25lIGZpbmdlciBjbGVhcmx5IGNvbW1pdHMgdG8gc2Nyb2xsaW5nCmNvbnN0IFRXT19UT1VDSF9TQ1JPTExfVFJJR0dFUl9ESVNUQU5DRSA9IDMKLy8gSG93IGxvbmcgaXMgdGhlIGZpcnN0IHRhcCBhbGxvd2VkIHRvIGJlIGZvciBpdCB0byBtYXliZSBiZSBhIGRvdWJsZSB0YXAKY29uc3QgRE9VQkxFX1RBUF9GSVJTVF9UQVBfTUFYX1RJTUVfTVMgPSAxMDAKLy8gSG93IG11Y2ggdGltZSBpcyBhbGxvd2VkIGFmdGVyIGEgdG91Y2ggcmVsZWFzZSBmb3IgYSBuZXcgdGFwIHRvIGNvdW50IGJvdGggdGFwcyBhcyBhIGRvdWJsZSB0YXAKY29uc3QgRE9VQkxFX1RBUF9TRUNPTkRfVEFQX01BWF9USU1FX01TID0gMjAwCgpjb25zdCBDT05UUk9MTEVSX1JVTUJMRV9JTlRFUlZBTF9NUyA9IDYwCgpmdW5jdGlvbiB0cnlTZW5kQ2hhbm5lbChjaGFubmVsOiBEYXRhVHJhbnNwb3J0Q2hhbm5lbCB8IG51bGwsIGJ1ZmZlcjogQnl0ZUJ1ZmZlcikgewogICAgaWYgKCFjaGFubmVsKSB7CiAgICAgICAgY29uc29sZS5pbmZvKGBkcm9wcGluZyBwYWNrZXQgb24gY2hhbm5lbCAke2NoYW5uZWx9IGJlY2F1c2UgdGhlIGNoYW5uZWwgaXMgbm90IHByZXNlbnQuYCkKICAgICAgICByZXR1cm4KICAgIH0KCiAgICBidWZmZXIuZmxpcCgpCiAgICBjb25zdCByZWFkQnVmZmVyID0gYnVmZmVyLmdldFJlbWFpbmluZ0J1ZmZlcigpCiAgICBpZiAocmVhZEJ1ZmZlci5sZW5ndGggPT0gMCkgewogICAgICAgIHRocm93ICJpbGxlZ2FsIGJ1ZmZlciBzaXplIgogICAgfQogICAgY2hhbm5lbC5zZW5kKHJlYWRCdWZmZXIuYnVmZmVyKQp9CgpleHBvcnQgdHlwZSBNb3VzZVNjcm9sbE1vZGUgPSAiaGlnaHJlcyIgfCAibm9ybWFsIgpleHBvcnQgdHlwZSBNb3VzZU1vZGUgPSAicmVsYXRpdmUiIHwgImZvbGxvdyIgfCAibG9jYWxDdXJzb3IiIHwgInBvaW50QW5kRHJhZyIKZXhwb3J0IHR5cGUgVG91Y2hNb2RlID0gInRvdWNoIiB8ICJtb3VzZVJlbGF0aXZlIiB8ICJsb2NhbEN1cnNvciIgfCAicG9pbnRBbmREcmFnIgoKZXhwb3J0IHR5cGUgU3RyZWFtSW5wdXRDb25maWcgPSB7CiAgICBtb3VzZU1vZGU6IE1vdXNlTW9kZQogICAgbW91c2VTY3JvbGxNb2RlOiBNb3VzZVNjcm9sbE1vZGUKICAgIHRvdWNoTW9kZTogVG91Y2hNb2RlCiAgICBsb2NhbEN1cnNvclNlbnNpdGl2aXR5OiBudW1iZXIKICAgIGNvbnRyb2xsZXJDb25maWc6IENvbnRyb2xsZXJDb25maWcKfQoKZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRTdHJlYW1JbnB1dENvbmZpZygpOiBTdHJlYW1JbnB1dENvbmZpZyB7CiAgICByZXR1cm4gewogICAgICAgIG1vdXNlTW9kZTogImZvbGxvdyIsCiAgICAgICAgbW91c2VTY3JvbGxNb2RlOiAiaGlnaHJlcyIsCiAgICAgICAgdG91Y2hNb2RlOiAibW91c2VSZWxhdGl2ZSIsCiAgICAgICAgbG9jYWxDdXJzb3JTZW5zaXRpdml0eTogMSwKICAgICAgICBjb250cm9sbGVyQ29uZmlnOiB7CiAgICAgICAgICAgIGludmVydEFCOiBmYWxzZSwKICAgICAgICAgICAgaW52ZXJ0WFk6IGZhbHNlLAogICAgICAgICAgICBzZW5kSW50ZXJ2YWxPdmVycmlkZTogbnVsbAogICAgICAgIH0KICAgIH0KfQoKZXhwb3J0IHR5cGUgUHJlZGljdGVkVG91Y2hBY3Rpb24gPSAiZGVmYXVsdCIgfCAiZHJhZyIgfCAic2Nyb2xsIiB8ICJzY3JlZW5LZXlib2FyZCIgfCAibG9uZ1ByZXNzIgpleHBvcnQgdHlwZSBTY3JlZW5LZXlib2FyZFNldFZpc2libGVFdmVudCA9IEN1c3RvbUV2ZW50PHsgdmlzaWJsZTogYm9vbGVhbiB9PgpleHBvcnQgdHlwZSBMb2NhbEN1cnNvclN0YXRlID0geyB2aXNpYmxlOiBib29sZWFuLCB4OiBudW1iZXIsIHk6IG51bWJlciB9CgpleHBvcnQgY2xhc3MgU3RyZWFtSW5wdXQgewoKICAgIHByaXZhdGUgZXZlbnRUYXJnZXQgPSBuZXcgRXZlbnRUYXJnZXQoKQoKICAgIHByaXZhdGUgYnVmZmVyOiBCeXRlQnVmZmVyID0gbmV3IEJ5dGVCdWZmZXIoMTAyNCkKCiAgICBwcml2YXRlIGNvbm5lY3RlZCA9IGZhbHNlCiAgICBwcml2YXRlIGNvbmZpZzogU3RyZWFtSW5wdXRDb25maWcKICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzOiBTdHJlYW1DYXBhYmlsaXRpZXMgPSB7IHRvdWNoOiB0cnVlIH0KICAgIC8vIFNpemUgb2YgdGhlIHN0cmVhbWVyIGRldmljZQogICAgcHJpdmF0ZSBzdHJlYW1lclNpemU6IFtudW1iZXIsIG51bWJlcl0gPSBbMCwgMF0KCiAgICBwcml2YXRlIGtleWJvYXJkOiBEYXRhVHJhbnNwb3J0Q2hhbm5lbCB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIG1vdXNlUmVsaWFibGU6IERhdGFUcmFuc3BvcnRDaGFubmVsIHwgbnVsbCA9IG51bGwKICAgIHByaXZhdGUgbW91c2VBYnNvbHV0ZTogRGF0YVRyYW5zcG9ydENoYW5uZWwgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBtb3VzZVJlbGF0aXZlOiBEYXRhVHJhbnNwb3J0Q2hhbm5lbCB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHRvdWNoOiBEYXRhVHJhbnNwb3J0Q2hhbm5lbCB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIGNvbnRyb2xsZXJzOiBEYXRhVHJhbnNwb3J0Q2hhbm5lbCB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIGNvbnRyb2xsZXJJbnB1dHM6IEFycmF5PERhdGFUcmFuc3BvcnRDaGFubmVsIHwgbnVsbD4gPSBbXQoKICAgIHByaXZhdGUgdG91Y2hTdXBwb3J0ZWQ6IGJvb2xlYW4gfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBsb2NhbEN1cnNvclBvc2l0aW9uOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCA9IG51bGwKCiAgICBjb25zdHJ1Y3Rvcihjb25maWc/OiBTdHJlYW1JbnB1dENvbmZpZykgewogICAgICAgIHRoaXMuY29uZmlnID0gZGVmYXVsdFN0cmVhbUlucHV0Q29uZmlnKCkKICAgICAgICBpZiAoY29uZmlnKSB7CiAgICAgICAgICAgIHRoaXMuc2V0Q29uZmlnKGNvbmZpZykKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBnZXREYXRhQ2hhbm5lbCh0cmFuc3BvcnQ6IFRyYW5zcG9ydCwgaWQ6IFRyYW5zcG9ydENoYW5uZWxJZFZhbHVlKTogRGF0YVRyYW5zcG9ydENoYW5uZWwgewogICAgICAgIGNvbnN0IGNoYW5uZWwgPSB0cmFuc3BvcnQuZ2V0Q2hhbm5lbChpZCkKICAgICAgICBpZiAoY2hhbm5lbC50eXBlID09ICJkYXRhIikgewogICAgICAgICAgICByZXR1cm4gY2hhbm5lbAogICAgICAgIH0KICAgICAgICB0aHJvdyBgRmFpbGVkIHRvIGdldCBjaGFubmVsICR7aWR9IGFzIGRhdGEgdHJhbnNwb3J0IGNoYW5uZWxgCiAgICB9CiAgICBzZXRUcmFuc3BvcnQodHJhbnNwb3J0OiBUcmFuc3BvcnQpIHsKICAgICAgICB0aGlzLmtleWJvYXJkID0gdGhpcy5nZXREYXRhQ2hhbm5lbCh0cmFuc3BvcnQsIFRyYW5zcG9ydENoYW5uZWxJZC5LRVlCT0FSRCkKCiAgICAgICAgdGhpcy5tb3VzZVJlbGlhYmxlID0gdGhpcy5nZXREYXRhQ2hhbm5lbCh0cmFuc3BvcnQsIFRyYW5zcG9ydENoYW5uZWxJZC5NT1VTRV9SRUxJQUJMRSkKICAgICAgICB0aGlzLm1vdXNlQWJzb2x1dGUgPSB0aGlzLmdldERhdGFDaGFubmVsKHRyYW5zcG9ydCwgVHJhbnNwb3J0Q2hhbm5lbElkLk1PVVNFX0FCU09MVVRFKQogICAgICAgIHRoaXMubW91c2VSZWxhdGl2ZSA9IHRoaXMuZ2V0RGF0YUNoYW5uZWwodHJhbnNwb3J0LCBUcmFuc3BvcnRDaGFubmVsSWQuTU9VU0VfUkVMQVRJVkUpCgogICAgICAgIGlmICh0aGlzLnRvdWNoKSB7CiAgICAgICAgICAgIHRoaXMudG91Y2gucmVtb3ZlUmVjZWl2ZUxpc3RlbmVyKHRoaXMub25Ub3VjaERhdGEuYmluZCh0aGlzKSkKICAgICAgICB9CiAgICAgICAgdGhpcy50b3VjaCA9IHRoaXMuZ2V0RGF0YUNoYW5uZWwodHJhbnNwb3J0LCBUcmFuc3BvcnRDaGFubmVsSWQuVE9VQ0gpCiAgICAgICAgdGhpcy50b3VjaC5hZGRSZWNlaXZlTGlzdGVuZXIodGhpcy5vblRvdWNoRGF0YS5iaW5kKHRoaXMpKQoKICAgICAgICBpZiAodGhpcy5jb250cm9sbGVycykgewogICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXJzLnJlbW92ZVJlY2VpdmVMaXN0ZW5lcih0aGlzLm9uVG91Y2hEYXRhLmJpbmQodGhpcykpCiAgICAgICAgfQogICAgICAgIHRoaXMuY29udHJvbGxlcnMgPSB0aGlzLmdldERhdGFDaGFubmVsKHRyYW5zcG9ydCwgVHJhbnNwb3J0Q2hhbm5lbElkLkNPTlRST0xMRVJTKQogICAgICAgIHRoaXMuY29udHJvbGxlcnMuYWRkUmVjZWl2ZUxpc3RlbmVyKHRoaXMub25Db250cm9sbGVyRGF0YS5iaW5kKHRoaXMpKQoKICAgICAgICB0aGlzLmNvbnRyb2xsZXJJbnB1dHMubGVuZ3RoID0gMAogICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTY7IGkrKykgewogICAgICAgICAgICBjb25zdCBjaGFubmVsSWQgPSBUcmFuc3BvcnRDaGFubmVsSWRbYENPTlRST0xMRVIke2l9YCBhcyBUcmFuc3BvcnRDaGFubmVsSWRLZXldCgogICAgICAgICAgICB0aGlzLmNvbnRyb2xsZXJJbnB1dHNbaV0gPSB0aGlzLmdldERhdGFDaGFubmVsKHRyYW5zcG9ydCwgY2hhbm5lbElkKQogICAgICAgIH0KCiAgICAgICAgLy8gUmVnaXN0ZXIgYWxsIGNvbnRyb2xsZXJzLCBiZWNhdXNlIHRoZSBtaXNzaW5nIGNoYW5uZWwgY291bGQndmUgZHJvcHBlZCBjb250cm9sbGVyIGNvbm5lY3QgZXZlbnRzCiAgICAgICAgdGhpcy5yZWdpc3RlckJ1ZmZlcmVkQ29udHJvbGxlcnMoKQogICAgfQoKICAgIHNldENvbmZpZyhjb25maWc6IFN0cmVhbUlucHV0Q29uZmlnKSB7CiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmNvbmZpZywgY29uZmlnKQoKICAgICAgICAvLyBUb3VjaAogICAgICAgIHRoaXMucHJpbWFyeVRvdWNoID0gbnVsbAogICAgICAgIHRoaXMudG91Y2hUcmFja2VyLmNsZWFyKCkKICAgIH0KICAgIGdldENvbmZpZygpOiBTdHJlYW1JbnB1dENvbmZpZyB7CiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnCiAgICB9CgogICAgZ2V0Q2FwYWJpbGl0aWVzKCk6IFN0cmVhbUNhcGFiaWxpdGllcyB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzCiAgICB9CgogICAgLy8gLS0gRXh0ZXJuYWwgRXZlbnQgTGlzdGVuZXJzCiAgICBhZGRTY3JlZW5LZXlib2FyZFZpc2libGVFdmVudChsaXN0ZW5lcjogKGV2ZW50OiBTY3JlZW5LZXlib2FyZFNldFZpc2libGVFdmVudCkgPT4gdm9pZCkgewogICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigibWwtc2NyZWVua2V5Ym9hcmR2aXNpYmxlIiwgbGlzdGVuZXIgYXMgYW55KQogICAgfQoKICAgIC8vIC0tIE9uIFN0cmVhbSBTdGFydAogICAgb25TdHJlYW1TdGFydChjYXBhYmlsaXRpZXM6IFN0cmVhbUNhcGFiaWxpdGllcywgc3RyZWFtZXJTaXplOiBbbnVtYmVyLCBudW1iZXJdKSB7CiAgICAgICAgdGhpcy5jb25uZWN0ZWQgPSB0cnVlCgogICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0aWVzCiAgICAgICAgdGhpcy5zdHJlYW1lclNpemUgPSBzdHJlYW1lclNpemUKICAgICAgICB0aGlzLnJlZ2lzdGVyQnVmZmVyZWRDb250cm9sbGVycygpCiAgICB9CgogICAgLy8gLS0gS2V5Ym9hcmQKICAgIHByaXZhdGUgcHJlc3NlZEtleXM6IFNldDxudW1iZXI+ID0gbmV3IFNldCgpCgogICAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7CiAgICAgICAgdGhpcy5zZW5kS2V5RXZlbnQodHJ1ZSwgZXZlbnQpCiAgICB9CiAgICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7CiAgICAgICAgdGhpcy5zZW5kS2V5RXZlbnQoZmFsc2UsIGV2ZW50KQogICAgfQoKICAgIG9uUGFzdGUoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSB7CgogICAgICAgIGNvbnN0IGRhdGEgPSBldmVudC5jbGlwYm9hcmREYXRhCiAgICAgICAgaWYgKCFkYXRhKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgY29uc29sZS5kZWJ1ZygiUEFTVEUiLCBkYXRhKQoKICAgICAgICBjb25zdCB0ZXh0ID0gZGF0YS5nZXREYXRhKCJ0ZXh0L3BsYWluIikKICAgICAgICBpZiAodGV4dCkgewogICAgICAgICAgICBjb25zb2xlLmRlYnVnKCJQQVNURSBURVhUIiwgdGV4dCkKCiAgICAgICAgICAgIC8vIEJlZm9yZSBzZW5kaW5nIHRleHQgcmFpc2UgYWxsIGtleXMKICAgICAgICAgICAgdGhpcy5yYWlzZUFsbEtleXMoKQoKICAgICAgICAgICAgdGhpcy5zZW5kVGV4dCh0ZXh0KQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHNlbmRLZXlFdmVudChpc0Rvd246IGJvb2xlYW4sIGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7CiAgICAgICAgY29uc3Qga2V5ID0gY29udmVydFRvS2V5KGV2ZW50KQogICAgICAgIGlmIChrZXkgPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGlmIChpc0Rvd24pIHsKICAgICAgICAgICAgaWYgKHRoaXMucHJlc3NlZEtleXMuaGFzKGtleSkpIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLnByZXNzZWRLZXlzLmFkZChrZXkpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKCF0aGlzLnByZXNzZWRLZXlzLmhhcyhrZXkpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5wcmVzc2VkS2V5cy5kZWxldGUoa2V5KQogICAgICAgIH0KCiAgICAgICAgY29uc3QgbW9kaWZpZXJzID0gY29udmVydFRvTW9kaWZpZXJzKGV2ZW50KQoKICAgICAgICBpZiAoImRlYnVnIiBpbiBjb25zb2xlKSB7CiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoCiAgICAgICAgICAgICAgICBpc0Rvd24gPyAiRE9XTiIgOiAiVVAiLAogICAgICAgICAgICAgICAgZXZlbnQuY29kZSwKICAgICAgICAgICAgICAgIGNvbnZlcnRUb0tleShldmVudCksCiAgICAgICAgICAgICAgICBjb252ZXJ0VG9Nb2RpZmllcnMoZXZlbnQpLnRvU3RyaW5nKDE2KQogICAgICAgICAgICApCiAgICAgICAgfQogICAgICAgIHRoaXMuc2VuZEtleShpc0Rvd24sIGtleSwgbW9kaWZpZXJzKQogICAgfQoKICAgIHJhaXNlQWxsS2V5cygpIHsKICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiB0aGlzLnByZXNzZWRLZXlzKSB7CiAgICAgICAgICAgIHRoaXMuc2VuZEtleShmYWxzZSwga2V5LCAwKQogICAgICAgIH0KICAgICAgICB0aGlzLnByZXNzZWRLZXlzLmNsZWFyKCkKICAgIH0KCiAgICAvLyBOb3RlOiBrZXkgPSBTdHJlYW1LZXlzLlZLXywgbW9kaWZpZXJzID0gU3RyZWFtS2V5TW9kaWZpZXJzLgogICAgc2VuZEtleShpc0Rvd246IGJvb2xlYW4sIGtleTogbnVtYmVyLCBtb2RpZmllcnM6IG51bWJlcikgewogICAgICAgIHRoaXMuYnVmZmVyLnJlc2V0KCkKCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgoMCkKCiAgICAgICAgdGhpcy5idWZmZXIucHV0Qm9vbChpc0Rvd24pCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgobW9kaWZpZXJzKQogICAgICAgIHRoaXMuYnVmZmVyLnB1dFUxNihrZXkpCgogICAgICAgIHRyeVNlbmRDaGFubmVsKHRoaXMua2V5Ym9hcmQsIHRoaXMuYnVmZmVyKQogICAgfQogICAgc2VuZFRleHQodGV4dDogc3RyaW5nKSB7CiAgICAgICAgdGhpcy5idWZmZXIucmVzZXQoKQoKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVOCgxKQoKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVOCh0ZXh0Lmxlbmd0aCkKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVdGY4UmF3KHRleHQpCgogICAgICAgIHRyeVNlbmRDaGFubmVsKHRoaXMua2V5Ym9hcmQsIHRoaXMuYnVmZmVyKQogICAgfQoKICAgIC8vIC0tIE1vdXNlCiAgICBvbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCwgcmVjdDogRE9NUmVjdCkgewogICAgICAgIGNvbnN0IGJ1dHRvbiA9IGNvbnZlcnRUb0J1dHRvbihldmVudCkKICAgICAgICBpZiAoYnV0dG9uID09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBpZiAodGhpcy5jb25maWcubW91c2VNb2RlID09ICJyZWxhdGl2ZSIgfHwgdGhpcy5jb25maWcubW91c2VNb2RlID09ICJmb2xsb3ciKSB7CiAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlQnV0dG9uKHRydWUsIGJ1dHRvbikKICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLm1vdXNlTW9kZSA9PSAibG9jYWxDdXJzb3IiKSB7CiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUxvY2FsQ3Vyc29yKHJlY3QsIGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpCiAgICAgICAgICAgIHRoaXMuc2VuZExvY2FsQ3Vyc29yUG9zaXRpb24odHJ1ZSkKICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VCdXR0b24odHJ1ZSwgYnV0dG9uKQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcubW91c2VNb2RlID09ICJwb2ludEFuZERyYWciKSB7CiAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlUG9zaXRpb25DbGllbnRDb29yZGluYXRlcyhldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZLCByZWN0LCB0cnVlLCBidXR0b24pCiAgICAgICAgfQogICAgfQogICAgb25Nb3VzZVVwKGV2ZW50OiBNb3VzZUV2ZW50KSB7CiAgICAgICAgY29uc3QgYnV0dG9uID0gY29udmVydFRvQnV0dG9uKGV2ZW50KQogICAgICAgIGlmIChidXR0b24gPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGlmICh0aGlzLmNvbmZpZy5tb3VzZU1vZGUgPT0gInJlbGF0aXZlIiB8fCB0aGlzLmNvbmZpZy5tb3VzZU1vZGUgPT0gImZvbGxvdyIgfHwgdGhpcy5jb25maWcubW91c2VNb2RlID09ICJsb2NhbEN1cnNvciIpIHsKICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VCdXR0b24oZmFsc2UsIGJ1dHRvbikKICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLm1vdXNlTW9kZSA9PSAicG9pbnRBbmREcmFnIikgewogICAgICAgICAgICB0aGlzLnNlbmRNb3VzZUJ1dHRvbihmYWxzZSwgYnV0dG9uKQogICAgICAgIH0KICAgIH0KICAgIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50LCByZWN0OiBET01SZWN0KSB7CiAgICAgICAgaWYgKHRoaXMuY29uZmlnLm1vdXNlTW9kZSA9PSAicmVsYXRpdmUiKSB7CiAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlTW92ZUNsaWVudENvb3JkaW5hdGVzKGV2ZW50Lm1vdmVtZW50WCwgZXZlbnQubW92ZW1lbnRZLCByZWN0KQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcubW91c2VNb2RlID09ICJmb2xsb3ciKSB7CiAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlUG9zaXRpb25DbGllbnRDb29yZGluYXRlcyhldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZLCByZWN0LCBmYWxzZSkKICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLm1vdXNlTW9kZSA9PSAibG9jYWxDdXJzb3IiKSB7CiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUxvY2FsQ3Vyc29yKHJlY3QsIGV2ZW50LmNsaWVudFgsIGV2ZW50LmNsaWVudFkpCiAgICAgICAgICAgIHRoaXMubW92ZUxvY2FsQ3Vyc29yQ2xpZW50Q29vcmRpbmF0ZXMoZXZlbnQubW92ZW1lbnRYLCBldmVudC5tb3ZlbWVudFksIHJlY3QsIGZhbHNlKQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcubW91c2VNb2RlID09ICJwb2ludEFuZERyYWciKSB7CiAgICAgICAgICAgIGlmIChldmVudC5idXR0b25zKSB7CiAgICAgICAgICAgICAgICAvLyBzb21lIGJ1dHRvbiBwcmVzc2VkCiAgICAgICAgICAgICAgICB0aGlzLnNlbmRNb3VzZU1vdmVDbGllbnRDb29yZGluYXRlcyhldmVudC5tb3ZlbWVudFgsIGV2ZW50Lm1vdmVtZW50WSwgcmVjdCkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIG9uTW91c2VXaGVlbChldmVudDogV2hlZWxFdmVudCkgewogICAgICAgIHRoaXMuc2VuZEFjY3VtdWxhdGVkU2Nyb2xsKGV2ZW50LmRlbHRhWCwgLWV2ZW50LmRlbHRhWSkKICAgIH0KCiAgICBzZW5kTW91c2VNb3ZlKG1vdmVtZW50WDogbnVtYmVyLCBtb3ZlbWVudFk6IG51bWJlcikgewogICAgICAgIHRoaXMuYnVmZmVyLnJlc2V0KCkKCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgoMCkKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRJMTYobW92ZW1lbnRYKQogICAgICAgIHRoaXMuYnVmZmVyLnB1dEkxNihtb3ZlbWVudFkpCgogICAgICAgIHRyeVNlbmRDaGFubmVsKHRoaXMubW91c2VSZWxhdGl2ZSwgdGhpcy5idWZmZXIpCiAgICB9CiAgICBzZW5kTW91c2VNb3ZlQ2xpZW50Q29vcmRpbmF0ZXMobW92ZW1lbnRYOiBudW1iZXIsIG1vdmVtZW50WTogbnVtYmVyLCByZWN0OiBET01SZWN0KSB7CiAgICAgICAgY29uc3Qgc2NhbGVkTW92ZW1lbnRYID0gbW92ZW1lbnRYIC8gcmVjdC53aWR0aCAqIHRoaXMuc3RyZWFtZXJTaXplWzBdOwogICAgICAgIGNvbnN0IHNjYWxlZE1vdmVtZW50WSA9IG1vdmVtZW50WSAvIHJlY3QuaGVpZ2h0ICogdGhpcy5zdHJlYW1lclNpemVbMV07CgogICAgICAgIHRoaXMuc2VuZE1vdXNlTW92ZShzY2FsZWRNb3ZlbWVudFgsIHNjYWxlZE1vdmVtZW50WSkKICAgIH0KICAgIHNlbmRNb3VzZVBvc2l0aW9uKHg6IG51bWJlciwgeTogbnVtYmVyLCByZWZlcmVuY2VXaWR0aDogbnVtYmVyLCByZWZlcmVuY2VIZWlnaHQ6IG51bWJlciwgcmVsaWFibGU6IGJvb2xlYW4pIHsKICAgICAgICB0aGlzLmJ1ZmZlci5yZXNldCgpCgogICAgICAgIHRoaXMuYnVmZmVyLnB1dFU4KDEpCiAgICAgICAgdGhpcy5idWZmZXIucHV0STE2KHgpCiAgICAgICAgdGhpcy5idWZmZXIucHV0STE2KHkpCiAgICAgICAgdGhpcy5idWZmZXIucHV0STE2KHJlZmVyZW5jZVdpZHRoKQogICAgICAgIHRoaXMuYnVmZmVyLnB1dEkxNihyZWZlcmVuY2VIZWlnaHQpCgogICAgICAgIGlmIChyZWxpYWJsZSkgewogICAgICAgICAgICB0cnlTZW5kQ2hhbm5lbCh0aGlzLm1vdXNlUmVsaWFibGUsIHRoaXMuYnVmZmVyKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRyeVNlbmRDaGFubmVsKHRoaXMubW91c2VBYnNvbHV0ZSwgdGhpcy5idWZmZXIpCiAgICAgICAgfQogICAgfQogICAgc2VuZE1vdXNlUG9zaXRpb25DbGllbnRDb29yZGluYXRlcyhjbGllbnRYOiBudW1iZXIsIGNsaWVudFk6IG51bWJlciwgcmVjdDogRE9NUmVjdCwgcmVsaWFibGU6IGJvb2xlYW4sIG1vdXNlQnV0dG9uPzogbnVtYmVyKSB7CiAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmNhbGNOb3JtYWxpemVkUG9zaXRpb24oY2xpZW50WCwgY2xpZW50WSwgcmVjdCkKICAgICAgICBpZiAocG9zaXRpb24pIHsKICAgICAgICAgICAgY29uc3QgW3gsIHldID0gcG9zaXRpb24KICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VQb3NpdGlvbih4ICogNDA5Ni4wLCB5ICogNDA5Ni4wLCA0MDk2LjAsIDQwOTYuMCwgcmVsaWFibGUpCgogICAgICAgICAgICBpZiAobW91c2VCdXR0b24gIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICB0aGlzLnNlbmRNb3VzZUJ1dHRvbih0cnVlLCBtb3VzZUJ1dHRvbikKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHByaXZhdGUgaW5pdGlhbGl6ZUxvY2FsQ3Vyc29yKHJlY3Q6IERPTVJlY3QsIGNsaWVudFg/OiBudW1iZXIsIGNsaWVudFk/OiBudW1iZXIpIHsKICAgICAgICBpZiAodGhpcy5sb2NhbEN1cnNvclBvc2l0aW9uKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgaWYgKGNsaWVudFggIT0gbnVsbCAmJiBjbGllbnRZICE9IG51bGwpIHsKICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLmNhbGNOb3JtYWxpemVkUG9zaXRpb24oY2xpZW50WCwgY2xpZW50WSwgcmVjdCkKICAgICAgICAgICAgaWYgKHBvc2l0aW9uKSB7CiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsQ3Vyc29yUG9zaXRpb24gPSBbCiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25bMF0gKiB0aGlzLnN0cmVhbWVyU2l6ZVswXSwKICAgICAgICAgICAgICAgICAgICBwb3NpdGlvblsxXSAqIHRoaXMuc3RyZWFtZXJTaXplWzFdLAogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHRoaXMubG9jYWxDdXJzb3JQb3NpdGlvbiA9IFsKICAgICAgICAgICAgdGhpcy5zdHJlYW1lclNpemVbMF0gLyAyLAogICAgICAgICAgICB0aGlzLnN0cmVhbWVyU2l6ZVsxXSAvIDIsCiAgICAgICAgXQogICAgfQogICAgcHJpdmF0ZSBjbGFtcExvY2FsQ3Vyc29yUG9zaXRpb24oKSB7CiAgICAgICAgaWYgKCF0aGlzLmxvY2FsQ3Vyc29yUG9zaXRpb24pIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLmxvY2FsQ3Vyc29yUG9zaXRpb25bMF0gPSBNYXRoLm1pbihNYXRoLm1heCh0aGlzLmxvY2FsQ3Vyc29yUG9zaXRpb25bMF0sIDApLCB0aGlzLnN0cmVhbWVyU2l6ZVswXSkKICAgICAgICB0aGlzLmxvY2FsQ3Vyc29yUG9zaXRpb25bMV0gPSBNYXRoLm1pbihNYXRoLm1heCh0aGlzLmxvY2FsQ3Vyc29yUG9zaXRpb25bMV0sIDApLCB0aGlzLnN0cmVhbWVyU2l6ZVsxXSkKICAgIH0KICAgIHByaXZhdGUgc2VuZExvY2FsQ3Vyc29yUG9zaXRpb24ocmVsaWFibGU6IGJvb2xlYW4pIHsKICAgICAgICBpZiAoIXRoaXMubG9jYWxDdXJzb3JQb3NpdGlvbikgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIHRoaXMuc2VuZE1vdXNlUG9zaXRpb24oCiAgICAgICAgICAgIHRoaXMubG9jYWxDdXJzb3JQb3NpdGlvblswXSwKICAgICAgICAgICAgdGhpcy5sb2NhbEN1cnNvclBvc2l0aW9uWzFdLAogICAgICAgICAgICB0aGlzLnN0cmVhbWVyU2l6ZVswXSwKICAgICAgICAgICAgdGhpcy5zdHJlYW1lclNpemVbMV0sCiAgICAgICAgICAgIHJlbGlhYmxlCiAgICAgICAgKQogICAgfQogICAgcHJpdmF0ZSBtb3ZlTG9jYWxDdXJzb3JDbGllbnRDb29yZGluYXRlcyhtb3ZlbWVudFg6IG51bWJlciwgbW92ZW1lbnRZOiBudW1iZXIsIHJlY3Q6IERPTVJlY3QsIHJlbGlhYmxlOiBib29sZWFuKSB7CiAgICAgICAgaWYgKHRoaXMuc3RyZWFtZXJTaXplWzBdIDw9IDAgfHwgdGhpcy5zdHJlYW1lclNpemVbMV0gPD0gMCB8fCByZWN0LndpZHRoIDw9IDAgfHwgcmVjdC5oZWlnaHQgPD0gMCkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIHRoaXMuaW5pdGlhbGl6ZUxvY2FsQ3Vyc29yKHJlY3QpCiAgICAgICAgaWYgKCF0aGlzLmxvY2FsQ3Vyc29yUG9zaXRpb24pIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLmxvY2FsQ3Vyc29yUG9zaXRpb25bMF0gKz0gbW92ZW1lbnRYIC8gcmVjdC53aWR0aCAqIHRoaXMuc3RyZWFtZXJTaXplWzBdICogdGhpcy5jb25maWcubG9jYWxDdXJzb3JTZW5zaXRpdml0eQogICAgICAgIHRoaXMubG9jYWxDdXJzb3JQb3NpdGlvblsxXSArPSBtb3ZlbWVudFkgLyByZWN0LmhlaWdodCAqIHRoaXMuc3RyZWFtZXJTaXplWzFdICogdGhpcy5jb25maWcubG9jYWxDdXJzb3JTZW5zaXRpdml0eQogICAgICAgIHRoaXMuY2xhbXBMb2NhbEN1cnNvclBvc2l0aW9uKCkKICAgICAgICB0aGlzLnNlbmRMb2NhbEN1cnNvclBvc2l0aW9uKHJlbGlhYmxlKQogICAgfQogICAgLy8gTm90ZTogYnV0dG9uID0gU3RyZWFtTW91c2VCdXR0b24uCiAgICBzZW5kTW91c2VCdXR0b24oaXNEb3duOiBib29sZWFuLCBidXR0b246IG51bWJlcikgewogICAgICAgIHRoaXMuYnVmZmVyLnJlc2V0KCkKCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgoMikKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRCb29sKGlzRG93bikKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVOChidXR0b24pCgogICAgICAgIHRyeVNlbmRDaGFubmVsKHRoaXMubW91c2VSZWxpYWJsZSwgdGhpcy5idWZmZXIpCiAgICB9CiAgICBzZW5kTW91c2VXaGVlbEhpZ2hSZXMoZGVsdGFYOiBudW1iZXIsIGRlbHRhWTogbnVtYmVyKSB7CiAgICAgICAgdGhpcy5idWZmZXIucmVzZXQoKQoKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVOCgzKQogICAgICAgIHRoaXMuYnVmZmVyLnB1dEkxNihkZWx0YVgpCiAgICAgICAgdGhpcy5idWZmZXIucHV0STE2KGRlbHRhWSkKCiAgICAgICAgdHJ5U2VuZENoYW5uZWwodGhpcy5tb3VzZVJlbGF0aXZlLCB0aGlzLmJ1ZmZlcikKICAgIH0KICAgIHNlbmRNb3VzZVdoZWVsKGRlbHRhWDogbnVtYmVyLCBkZWx0YVk6IG51bWJlcikgewogICAgICAgIHRoaXMuYnVmZmVyLnJlc2V0KCkKCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgoNCkKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRJOChkZWx0YVgpCiAgICAgICAgdGhpcy5idWZmZXIucHV0STgoZGVsdGFZKQoKICAgICAgICB0cnlTZW5kQ2hhbm5lbCh0aGlzLm1vdXNlUmVsYXRpdmUsIHRoaXMuYnVmZmVyKQogICAgfQoKICAgIHByaXZhdGUgc2Nyb2xsUmVtYWluZGVyWCA9IDAKICAgIHByaXZhdGUgc2Nyb2xsUmVtYWluZGVyWSA9IDAKCiAgICBwcml2YXRlIHJlc2V0U2Nyb2xsUmVtYWluZGVyKCkgewogICAgICAgIHRoaXMuc2Nyb2xsUmVtYWluZGVyWCA9IDAKICAgICAgICB0aGlzLnNjcm9sbFJlbWFpbmRlclkgPSAwCiAgICB9CiAgICBwcml2YXRlIHNlbmRBY2N1bXVsYXRlZFNjcm9sbChkZWx0YVg6IG51bWJlciwgZGVsdGFZOiBudW1iZXIpIHsKICAgICAgICB0aGlzLnNjcm9sbFJlbWFpbmRlclggKz0gZGVsdGFYCiAgICAgICAgdGhpcy5zY3JvbGxSZW1haW5kZXJZICs9IGRlbHRhWQoKICAgICAgICBjb25zdCBpbnRlZ2VyWCA9IE1hdGgudHJ1bmModGhpcy5zY3JvbGxSZW1haW5kZXJYKQogICAgICAgIGNvbnN0IGludGVnZXJZID0gTWF0aC50cnVuYyh0aGlzLnNjcm9sbFJlbWFpbmRlclkpCgogICAgICAgIGlmIChpbnRlZ2VyWCA9PSAwICYmIGludGVnZXJZID09IDApIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLnNjcm9sbFJlbWFpbmRlclggLT0gaW50ZWdlclgKICAgICAgICB0aGlzLnNjcm9sbFJlbWFpbmRlclkgLT0gaW50ZWdlclkKCiAgICAgICAgaWYgKHRoaXMuY29uZmlnLm1vdXNlU2Nyb2xsTW9kZSA9PSAiaGlnaHJlcyIpIHsKICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VXaGVlbEhpZ2hSZXMoaW50ZWdlclgsIGludGVnZXJZKQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcubW91c2VTY3JvbGxNb2RlID09ICJub3JtYWwiKSB7CiAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlV2hlZWwoaW50ZWdlclgsIGludGVnZXJZKQogICAgICAgIH0KICAgIH0KCiAgICAvLyAtLSBUb3VjaAogICAgcHJpdmF0ZSB0b3VjaFRyYWNrZXI6IE1hcDxudW1iZXIsIHsKICAgICAgICBzdGFydFRpbWU6IG51bWJlcgogICAgICAgIG9yaWdpblg6IG51bWJlcgogICAgICAgIG9yaWdpblk6IG51bWJlcgogICAgICAgIHg6IG51bWJlcgogICAgICAgIHk6IG51bWJlcgogICAgICAgIC8vIG51bWJlciBpcyBTdHJlYW1Nb3VzZUJ1dHRvbgogICAgICAgIG1vdXNlQ2xpY2tlZDogbnVsbCB8IG51bWJlciwKICAgICAgICAvLyBwb2ludCBhbmQgZHJhZzogaWYgd2UndmUgbW92ZWQgdGhlIG1vdXNlIHRvIHRoZSB0b3VjaAogICAgICAgIC8vIG1vdXNlIHJlbGF0aXZlOiB3ZSd2ZSBtb3ZlZCB0aGUgbW91c2UgZW5vdWdoIHRoYXQgaXQgc2hvdWxkbid0IGJlIGEgY2xpY2sgYW55bW9yZQogICAgICAgIG1vdXNlTW92ZWQ6IGJvb2xlYW4KICAgIH0+ID0gbmV3IE1hcCgpCiAgICAvLyBUaGUgY3VycmVudCBhY3Rpb24gb2YgYWxsIHRvdWNoZXMgb24gc2NyZWVuCiAgICAvLyAtIGRlZmF1bHQgLT4gdGhlIGRlZmF1bHQgYWN0aW9uIGZvciB0aGlzIHRvdWNoIG1vZGUgLyB3ZSdyZSBzdGlsbCB0cnlpbmcgdG8gZmlndXJlIG91dCB3aGF0IHRoZSB1c2VyIGlzIHRyeWluZyB0byBkbwogICAgLy8gLSBkcmFnIC0+IG1vdmVtZW50IGNvbnRpbnVlcyB3aXRob3V0IGNsaWNrIGhhbmRsaW5nIG9uIHJlbGVhc2UKICAgIC8vIC0gc2Nyb2xsIC0+IHdlJ3JlIGN1cnJlbnRseSBzY3JvbGxpbmcgdXNpbmcgcHJpbWFyeSB0b3VjaAogICAgLy8gLSBzY3JlZW5LZXlib2FyZCAtPiB0aGlzIGN1cnJlbnQgYWN0aW9uIGlzIHRyeWluZyB0byBwdWxsIHVwIHRoZSBvbiBzY3JlZW4ga2V5Ym9hcmQKICAgIC8vIC0gbG9uZ1ByZXNzIC0+IHNpbmdsZS1maW5nZXIgbG9uZyBwcmVzcyBpcyBhcm1lZCBhbmQgd2lsbCBiZWNvbWUgYSByaWdodCBjbGljayBvbiByZWxlYXNlCiAgICBwcml2YXRlIHRvdWNoTW91c2VBY3Rpb246IFByZWRpY3RlZFRvdWNoQWN0aW9uID0gImRlZmF1bHQiCiAgICAvLyBUaGUgdG91Y2ggdGhhdCBpcyBzZWxlY3RlZCBhcyB0aGUgcHJpbWFyeSAvIGNvbnRyb2xsZXIgb2YgdGhlIGFjdGlvbgogICAgLy8gVXNlZCBpbiB0b3VjaCBtb2RlICJyZWxhdGl2ZSIgYW5kICJwb2ludEFuZERyYWciCiAgICAvLyBFLmcuIHNjcm9sbGluZyBtb3ZlbWVudAogICAgcHJpdmF0ZSBwcmltYXJ5VG91Y2g6IG51bWJlciB8IG51bGwgPSBudWxsCiAgICAvLyBJZiB0aGUgbmV4dCB0b3VjaCBpcyBhIGRvdWJsZSB0YXA/CiAgICBwcml2YXRlIG5leHRUb3VjaERvdWJsZVRhcDogYm9vbGVhbiA9IGZhbHNlCiAgICAvLyBTZXQgd2hlbiB0aGUgY3VycmVudCBnZXN0dXJlIGhhcyBhbHJlYWR5IGJlZW4gY29uc3VtZWQgYnkgYSBtdWx0aS10b3VjaAogICAgLy8gYWN0aW9uLiBUaGlzIHByZXZlbnRzIHRoZSByZW1haW5pbmcgZmluZ2VyIGZyb20gYmVjb21pbmcgYSBjbGljay9yaWdodC1jbGljay4KICAgIHByaXZhdGUgdG91Y2hHZXN0dXJlU3VwcHJlc3NDbGljazogYm9vbGVhbiA9IGZhbHNlCgogICAgcHJpdmF0ZSBvblRvdWNoRGF0YShkYXRhOiBBcnJheUJ1ZmZlcikgewogICAgICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBCeXRlQnVmZmVyKG5ldyBVaW50OEFycmF5KGRhdGEpKQogICAgICAgIHRoaXMudG91Y2hTdXBwb3J0ZWQgPSBidWZmZXIuZ2V0Qm9vbCgpCiAgICB9CiAgICBnZXRMb2NhbEN1cnNvclN0YXRlKCk6IExvY2FsQ3Vyc29yU3RhdGUgewogICAgICAgIGlmICgKICAgICAgICAgICAgKHRoaXMuY29uZmlnLnRvdWNoTW9kZSAhPSAibG9jYWxDdXJzb3IiICYmIHRoaXMuY29uZmlnLm1vdXNlTW9kZSAhPSAibG9jYWxDdXJzb3IiKSB8fAogICAgICAgICAgICAhdGhpcy5sb2NhbEN1cnNvclBvc2l0aW9uIHx8CiAgICAgICAgICAgIHRoaXMuc3RyZWFtZXJTaXplWzBdIDw9IDAgfHwKICAgICAgICAgICAgdGhpcy5zdHJlYW1lclNpemVbMV0gPD0gMAogICAgICAgICkgewogICAgICAgICAgICByZXR1cm4geyB2aXNpYmxlOiBmYWxzZSwgeDogMCwgeTogMCB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICB2aXNpYmxlOiB0cnVlLAogICAgICAgICAgICB4OiB0aGlzLmxvY2FsQ3Vyc29yUG9zaXRpb25bMF0gLyB0aGlzLnN0cmVhbWVyU2l6ZVswXSwKICAgICAgICAgICAgeTogdGhpcy5sb2NhbEN1cnNvclBvc2l0aW9uWzFdIC8gdGhpcy5zdHJlYW1lclNpemVbMV0sCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgdXBkYXRlVG91Y2hUcmFja2VyKHRvdWNoOiBUb3VjaCkgewogICAgICAgIGNvbnN0IG9sZFRvdWNoID0gdGhpcy50b3VjaFRyYWNrZXIuZ2V0KHRvdWNoLmlkZW50aWZpZXIpCiAgICAgICAgaWYgKCFvbGRUb3VjaCkgewogICAgICAgICAgICB0aGlzLnRvdWNoVHJhY2tlci5zZXQodG91Y2guaWRlbnRpZmllciwgewogICAgICAgICAgICAgICAgc3RhcnRUaW1lOiBEYXRlLm5vdygpLAogICAgICAgICAgICAgICAgb3JpZ2luWDogdG91Y2guY2xpZW50WCwKICAgICAgICAgICAgICAgIG9yaWdpblk6IHRvdWNoLmNsaWVudFksCiAgICAgICAgICAgICAgICB4OiB0b3VjaC5jbGllbnRYLAogICAgICAgICAgICAgICAgeTogdG91Y2guY2xpZW50WSwKICAgICAgICAgICAgICAgIG1vdXNlQ2xpY2tlZDogbnVsbCwKICAgICAgICAgICAgICAgIG1vdXNlTW92ZWQ6IGZhbHNlLAogICAgICAgICAgICB9KQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG9sZFRvdWNoLnggPSB0b3VjaC5jbGllbnRYCiAgICAgICAgICAgIG9sZFRvdWNoLnkgPSB0b3VjaC5jbGllbnRZCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgY2FsY1RvdWNoVGltZSh0b3VjaDogeyBzdGFydFRpbWU6IG51bWJlciB9KTogbnVtYmVyIHsKICAgICAgICByZXR1cm4gRGF0ZS5ub3coKSAtIHRvdWNoLnN0YXJ0VGltZQogICAgfQogICAgcHJpdmF0ZSBjYWxjVG91Y2hPcmlnaW5EaXN0YW5jZSgKICAgICAgICB0b3VjaDogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9IHwgeyBjbGllbnRYOiBudW1iZXIsIGNsaWVudFk6IG51bWJlciB9LAogICAgICAgIG9sZFRvdWNoOiB7IG9yaWdpblg6IG51bWJlciwgb3JpZ2luWTogbnVtYmVyIH0KICAgICk6IG51bWJlciB7CiAgICAgICAgaWYgKCJjbGllbnRYIiBpbiB0b3VjaCkgewogICAgICAgICAgICByZXR1cm4gTWF0aC5oeXBvdCh0b3VjaC5jbGllbnRYIC0gb2xkVG91Y2gub3JpZ2luWCwgdG91Y2guY2xpZW50WSAtIG9sZFRvdWNoLm9yaWdpblkpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIE1hdGguaHlwb3QodG91Y2gueCAtIG9sZFRvdWNoLm9yaWdpblgsIHRvdWNoLnkgLSBvbGRUb3VjaC5vcmlnaW5ZKQogICAgICAgIH0KICAgIH0KICAgIHByaXZhdGUgc2hvdWxkU3RhcnRUd29Ub3VjaFNjcm9sbChhY3RpdmVUb3VjaD86IFRvdWNoKTogYm9vbGVhbiB7CiAgICAgICAgaWYgKHRoaXMudG91Y2hUcmFja2VyLnNpemUgIT0gMikgewogICAgICAgICAgICByZXR1cm4gZmFsc2UKICAgICAgICB9CgogICAgICAgIGZvciAoY29uc3QgW2lkLCB0cmFja2VkVG91Y2hdIG9mIHRoaXMudG91Y2hUcmFja2VyLmVudHJpZXMoKSkgewogICAgICAgICAgICBjb25zdCB0b3VjaEZvckRpc3RhbmNlID0gYWN0aXZlVG91Y2ggJiYgYWN0aXZlVG91Y2guaWRlbnRpZmllciA9PSBpZAogICAgICAgICAgICAgICAgPyBhY3RpdmVUb3VjaAogICAgICAgICAgICAgICAgOiB0cmFja2VkVG91Y2gKCiAgICAgICAgICAgIGlmICh0aGlzLmNhbGNUb3VjaE9yaWdpbkRpc3RhbmNlKHRvdWNoRm9yRGlzdGFuY2UsIHRyYWNrZWRUb3VjaCkgPiBUV09fVE9VQ0hfU0NST0xMX1RSSUdHRVJfRElTVEFOQ0UpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBmYWxzZQogICAgfQoKICAgIG9uVG91Y2hTdGFydChldmVudDogVG91Y2hFdmVudCwgcmVjdDogRE9NUmVjdCkgewogICAgICAgIGlmICh0aGlzLnRvdWNoVHJhY2tlci5zaXplID09IDApIHsKICAgICAgICAgICAgdGhpcy50b3VjaEdlc3R1cmVTdXBwcmVzc0NsaWNrID0gZmFsc2UKICAgICAgICB9CgogICAgICAgIGZvciAoY29uc3QgdG91Y2ggb2YgZXZlbnQuY2hhbmdlZFRvdWNoZXMpIHsKICAgICAgICAgICAgdGhpcy51cGRhdGVUb3VjaFRyYWNrZXIodG91Y2gpCiAgICAgICAgfQoKICAgICAgICBpZiAodGhpcy5jb25maWcudG91Y2hNb2RlID09ICJ0b3VjaCIpIHsKICAgICAgICAgICAgZm9yIChjb25zdCB0b3VjaCBvZiBldmVudC5jaGFuZ2VkVG91Y2hlcykgewogICAgICAgICAgICAgICAgdGhpcy5zZW5kVG91Y2goMCwgdG91Y2gsIHJlY3QpCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLnRvdWNoTW9kZSA9PSAibW91c2VSZWxhdGl2ZSIgfHwgdGhpcy5jb25maWcudG91Y2hNb2RlID09ICJsb2NhbEN1cnNvciIgfHwgdGhpcy5jb25maWcudG91Y2hNb2RlID09ICJwb2ludEFuZERyYWciKSB7CiAgICAgICAgICAgIC8vIFNldCBwcmltYXJ5IHRvdWNoIGlmIGl0IGRvZXNuJ3QgZXhpc3RzIGN1cnJlbnRseQogICAgICAgICAgICBmb3IgKGNvbnN0IHRvdWNoIG9mIGV2ZW50LmNoYW5nZWRUb3VjaGVzKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcmltYXJ5VG91Y2ggPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeVRvdWNoID0gdG91Y2guaWRlbnRpZmllcgogICAgICAgICAgICAgICAgICAgIHRoaXMudG91Y2hNb3VzZUFjdGlvbiA9ICJkZWZhdWx0IgoKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWcudG91Y2hNb2RlID09ICJsb2NhbEN1cnNvciIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplTG9jYWxDdXJzb3IocmVjdCwgdG91Y2guY2xpZW50WCwgdG91Y2guY2xpZW50WSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnN0IHByaW1hcnlUb3VjaCA9IHRoaXMucHJpbWFyeVRvdWNoICE9IG51bGwgJiYgdGhpcy50b3VjaFRyYWNrZXIuZ2V0KHRoaXMucHJpbWFyeVRvdWNoKQoKICAgICAgICAgICAgLy8gRGV0ZWN0IGRyYWdnaW5nIGluIG1vdXNlIHJlbGF0aXZlCiAgICAgICAgICAgIGlmICgodGhpcy5jb25maWcudG91Y2hNb2RlID09ICJtb3VzZVJlbGF0aXZlIiB8fCB0aGlzLmNvbmZpZy50b3VjaE1vZGUgPT0gImxvY2FsQ3Vyc29yIikgJiYgcHJpbWFyeVRvdWNoICYmIHRoaXMubmV4dFRvdWNoRG91YmxlVGFwKSB7CiAgICAgICAgICAgICAgICBpZiAocHJpbWFyeVRvdWNoLm1vdXNlQ2xpY2tlZCA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VCdXR0b24odHJ1ZSwgU3RyZWFtTW91c2VCdXR0b24uTEVGVCkKICAgICAgICAgICAgICAgICAgICBwcmltYXJ5VG91Y2gubW91c2VDbGlja2VkID0gU3RyZWFtTW91c2VCdXR0b24uTEVGVAogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHRoaXMudG91Y2hNb3VzZUFjdGlvbiA9ICJkcmFnIgoKICAgICAgICAgICAgICAgIHRoaXMubmV4dFRvdWNoRG91YmxlVGFwID0gZmFsc2UKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gRGV0ZWN0IHNjcm9sbGluZwogICAgICAgICAgICBpZiAodGhpcy50b3VjaFRyYWNrZXIuc2l6ZSA9PSAzKSB7CiAgICAgICAgICAgICAgICB0aGlzLnRvdWNoTW91c2VBY3Rpb24gPSAic2NyZWVuS2V5Ym9hcmQiCiAgICAgICAgICAgICAgICB0aGlzLnRvdWNoR2VzdHVyZVN1cHByZXNzQ2xpY2sgPSB0cnVlCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgb25Ub3VjaFVwZGF0ZShyZWN0OiBET01SZWN0KSB7CiAgICAgICAgaWYgKHRoaXMucHJpbWFyeVRvdWNoID09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIGNvbnN0IHRvdWNoID0gdGhpcy50b3VjaFRyYWNrZXIuZ2V0KHRoaXMucHJpbWFyeVRvdWNoKQogICAgICAgIGlmICghdG91Y2gpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCB0aW1lID0gdGhpcy5jYWxjVG91Y2hUaW1lKHRvdWNoKQogICAgICAgIGlmICh0aGlzLmNvbmZpZy50b3VjaE1vZGUgPT0gInBvaW50QW5kRHJhZyIpIHsKICAgICAgICAgICAgaWYgKHRoaXMudG91Y2hNb3VzZUFjdGlvbiA9PSAiZGVmYXVsdCIgJiYgIXRvdWNoLm1vdXNlTW92ZWQgJiYgdGltZSA+PSBUT1VDSF9BU19DTElDS19NSU5fVElNRV9NUykgewogICAgICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VQb3NpdGlvbkNsaWVudENvb3JkaW5hdGVzKHRvdWNoLm9yaWdpblgsIHRvdWNoLm9yaWdpblksIHJlY3QsIHRydWUpCgogICAgICAgICAgICAgICAgdG91Y2gubW91c2VNb3ZlZCA9IHRydWUKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoKHRoaXMuY29uZmlnLnRvdWNoTW9kZSA9PSAibW91c2VSZWxhdGl2ZSIgfHwgdGhpcy5jb25maWcudG91Y2hNb2RlID09ICJsb2NhbEN1cnNvciIpICYmCiAgICAgICAgICAgIHRoaXMudG91Y2hUcmFja2VyLnNpemUgPT0gMSAmJgogICAgICAgICAgICB0aGlzLnRvdWNoTW91c2VBY3Rpb24gPT0gImRlZmF1bHQiICYmCiAgICAgICAgICAgICF0b3VjaC5tb3VzZU1vdmVkICYmCiAgICAgICAgICAgIHRvdWNoLm1vdXNlQ2xpY2tlZCA9PSBudWxsICYmCiAgICAgICAgICAgIHRpbWUgPj0gVE9VQ0hfQVNfQ0xJQ0tfTUFYX1RJTUVfTVMpIHsKICAgICAgICAgICAgdGhpcy50b3VjaE1vdXNlQWN0aW9uID0gImxvbmdQcmVzcyIKICAgICAgICAgICAgdGhpcy5uZXh0VG91Y2hEb3VibGVUYXAgPSBmYWxzZQogICAgICAgIH0KICAgIH0KCiAgICBvblRvdWNoTW92ZShldmVudDogVG91Y2hFdmVudCwgcmVjdDogRE9NUmVjdCkgewogICAgICAgIGlmICh0aGlzLmNvbmZpZy50b3VjaE1vZGUgPT0gInRvdWNoIikgewogICAgICAgICAgICBmb3IgKGNvbnN0IHRvdWNoIG9mIGV2ZW50LmNoYW5nZWRUb3VjaGVzKSB7CiAgICAgICAgICAgICAgICB0aGlzLnNlbmRUb3VjaCgxLCB0b3VjaCwgcmVjdCkKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcudG91Y2hNb2RlID09ICJtb3VzZVJlbGF0aXZlIiB8fCB0aGlzLmNvbmZpZy50b3VjaE1vZGUgPT0gImxvY2FsQ3Vyc29yIiB8fCB0aGlzLmNvbmZpZy50b3VjaE1vZGUgPT0gInBvaW50QW5kRHJhZyIpIHsKICAgICAgICAgICAgZm9yIChjb25zdCB0b3VjaCBvZiBldmVudC5jaGFuZ2VkVG91Y2hlcykgewogICAgICAgICAgICAgICAgaWYgKHRoaXMucHJpbWFyeVRvdWNoICE9IHRvdWNoLmlkZW50aWZpZXIpIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3Qgb2xkVG91Y2ggPSB0aGlzLnRvdWNoVHJhY2tlci5nZXQodGhpcy5wcmltYXJ5VG91Y2gpCiAgICAgICAgICAgICAgICBpZiAoIW9sZFRvdWNoKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBjb25zdCBtb3ZlbWVudFggPSB0b3VjaC5jbGllbnRYIC0gb2xkVG91Y2gueDsKICAgICAgICAgICAgICAgIGNvbnN0IG1vdmVtZW50WSA9IHRvdWNoLmNsaWVudFkgLSBvbGRUb3VjaC55OwoKICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvdWNoTW91c2VBY3Rpb24gPT0gImRlZmF1bHQiKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2hvdWxkU3RhcnRUd29Ub3VjaFNjcm9sbCh0b3VjaCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3VjaE1vdXNlQWN0aW9uID0gInNjcm9sbCIKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3VjaEdlc3R1cmVTdXBwcmVzc0NsaWNrID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0U2Nyb2xsUmVtYWluZGVyKCkKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB0cmFja2VkVG91Y2ggb2YgdGhpcy50b3VjaFRyYWNrZXIudmFsdWVzKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNrZWRUb3VjaC5tb3VzZU1vdmVkID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAob2xkVG91Y2gubW91c2VDbGlja2VkICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlQnV0dG9uKGZhbHNlLCBvbGRUb3VjaC5tb3VzZUNsaWNrZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRUb3VjaC5tb3VzZUNsaWNrZWQgPSBudWxsCiAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbmZpZy50b3VjaE1vZGUgPT0gInBvaW50QW5kRHJhZyIgJiYgdGhpcy5wcmltYXJ5VG91Y2ggIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJpbWFyeVRvdWNoID0gdGhpcy50b3VjaFRyYWNrZXIuZ2V0KHRoaXMucHJpbWFyeVRvdWNoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByaW1hcnlUb3VjaCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtaWRkbGVYID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWlkZGxlWSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB0cmFja2VkVG91Y2ggb2YgdGhpcy50b3VjaFRyYWNrZXIudmFsdWVzKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlkZGxlWCArPSB0cmFja2VkVG91Y2gueAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWRkbGVZICs9IHRyYWNrZWRUb3VjaC55CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pZGRsZVggKz0gdG91Y2guY2xpZW50WCAtIG9sZFRvdWNoLngKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWRkbGVZICs9IHRvdWNoLmNsaWVudFkgLSBvbGRUb3VjaC55CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlkZGxlWCAvPSAyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlkZGxlWSAvPSAyCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlUb3VjaC5tb3VzZU1vdmVkID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlUG9zaXRpb25DbGllbnRDb29yZGluYXRlcyhtaWRkbGVYLCBtaWRkbGVZLCByZWN0LCB0cnVlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvdWNoTW91c2VBY3Rpb24gPT0gImRlZmF1bHQiKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG91Y2hPcmlnaW5EaXN0YW5jZSA9IHRoaXMuY2FsY1RvdWNoT3JpZ2luRGlzdGFuY2UodG91Y2gsIG9sZFRvdWNoKQoKICAgICAgICAgICAgICAgICAgICAvLyBOb3JtYWwgbW91c2UgcmVsYXRpdmUgbW92ZW1lbnQKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWcudG91Y2hNb2RlID09ICJtb3VzZVJlbGF0aXZlIikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRNb3VzZU1vdmVDbGllbnRDb29yZGluYXRlcyhtb3ZlbWVudFgsIG1vdmVtZW50WSwgcmVjdCkKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0b3VjaE9yaWdpbkRpc3RhbmNlID4gVE9VQ0hfQVNfQ0xJQ0tfTUFYX0RJU1RBTkNFKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRUb3VjaC5tb3VzZU1vdmVkID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3VjaEdlc3R1cmVTdXBwcmVzc0NsaWNrID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy50b3VjaE1vZGUgPT0gImxvY2FsQ3Vyc29yIikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVMb2NhbEN1cnNvckNsaWVudENvb3JkaW5hdGVzKG1vdmVtZW50WCwgbW92ZW1lbnRZLCByZWN0LCBmYWxzZSkKCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0b3VjaE9yaWdpbkRpc3RhbmNlID4gVE9VQ0hfQVNfQ0xJQ0tfTUFYX0RJU1RBTkNFKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRUb3VjaC5tb3VzZU1vdmVkID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3VjaEdlc3R1cmVTdXBwcmVzc0NsaWNrID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIC8vIFBvaW50IGFuZCBEcmFnCiAgICAgICAgICAgICAgICAgICAgLy8gSWYgd2UgYXJlIG92ZXIgdGhlIHRvdWNoIGFzIGNsaWNrIGRpc3RhbmNlIGdvIHRvIHRoZSBvcmlnaW4gYW5kIGRyYWcKICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICh0aGlzLmNvbmZpZy50b3VjaE1vZGUgPT0gInBvaW50QW5kRHJhZyIgJiYgdG91Y2hPcmlnaW5EaXN0YW5jZSA+IFRPVUNIX0FTX0NMSUNLX01BWF9ESVNUQU5DRSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9sZFRvdWNoLm1vdXNlTW92ZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlUG9zaXRpb25DbGllbnRDb29yZGluYXRlcyhvbGRUb3VjaC5vcmlnaW5YLCBvbGRUb3VjaC5vcmlnaW5ZLCByZWN0LCB0cnVlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkVG91Y2gubW91c2VNb3ZlZCA9IHRydWUKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9sZFRvdWNoLm1vdXNlQ2xpY2tlZCA9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRNb3VzZUJ1dHRvbih0cnVlLCBTdHJlYW1Nb3VzZUJ1dHRvbi5MRUZUKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkVG91Y2gubW91c2VDbGlja2VkID0gU3RyZWFtTW91c2VCdXR0b24uTEVGVAogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdWNoTW91c2VBY3Rpb24gPSAiZHJhZyIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudG91Y2hNb3VzZUFjdGlvbiA9PSAibG9uZ1ByZXNzIikgewogICAgICAgICAgICAgICAgICAgIGlmIChtb3ZlbWVudFggIT0gMCB8fCBtb3ZlbWVudFkgIT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvdWNoTW91c2VBY3Rpb24gPSAiZHJhZyIKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b3VjaEdlc3R1cmVTdXBwcmVzc0NsaWNrID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICBvbGRUb3VjaC5tb3VzZU1vdmVkID0gdHJ1ZQogICAgICAgICAgICAgICAgICAgICAgICBvbGRUb3VjaC5tb3VzZUNsaWNrZWQgPSBTdHJlYW1Nb3VzZUJ1dHRvbi5MRUZUCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlQnV0dG9uKHRydWUsIFN0cmVhbU1vdXNlQnV0dG9uLkxFRlQpCgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWcudG91Y2hNb2RlID09ICJsb2NhbEN1cnNvciIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUxvY2FsQ3Vyc29yQ2xpZW50Q29vcmRpbmF0ZXMobW92ZW1lbnRYLCBtb3ZlbWVudFksIHJlY3QsIGZhbHNlKQogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VNb3ZlQ2xpZW50Q29vcmRpbmF0ZXMobW92ZW1lbnRYLCBtb3ZlbWVudFksIHJlY3QpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudG91Y2hNb3VzZUFjdGlvbiA9PSAiZHJhZyIpIHsKICAgICAgICAgICAgICAgICAgICAvLyBEbyB0aGUgZHJhZ2dpbmcKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWcudG91Y2hNb2RlID09ICJsb2NhbEN1cnNvciIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlTG9jYWxDdXJzb3JDbGllbnRDb29yZGluYXRlcyhtb3ZlbWVudFgsIG1vdmVtZW50WSwgcmVjdCwgZmFsc2UpCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VNb3ZlQ2xpZW50Q29vcmRpbmF0ZXMobW92ZW1lbnRYLCBtb3ZlbWVudFksIHJlY3QpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRvdWNoTW91c2VBY3Rpb24gPT0gInNjcm9sbCIpIHsKICAgICAgICAgICAgICAgICAgICAvLyBpbnZlcnRpbmcgaG9yaXpvbnRhbCBzY3JvbGwKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWcubW91c2VTY3JvbGxNb2RlID09ICJoaWdocmVzIikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRBY2N1bXVsYXRlZFNjcm9sbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tb3ZlbWVudFggKiBUT1VDSF9ISUdIX1JFU19TQ1JPTExfTVVMVElQTElFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVtZW50WSAqIFRPVUNIX0hJR0hfUkVTX1NDUk9MTF9NVUxUSVBMSUVSCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlnLm1vdXNlU2Nyb2xsTW9kZSA9PSAibm9ybWFsIikgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRBY2N1bXVsYXRlZFNjcm9sbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1tb3ZlbWVudFggKiBUT1VDSF9TQ1JPTExfTVVMVElQTElFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVtZW50WSAqIFRPVUNIX1NDUk9MTF9NVUxUSVBMSUVSCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudG91Y2hNb3VzZUFjdGlvbiA9PSAic2NyZWVuS2V5Ym9hcmQiKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gY2FsY3VsYXRlIGlmIHdlIHNob3VsZCBvcGVuIHRoZSBzY3JlZW4ga2V5Ym9hcmQKICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXN0YW5jZVkgPSB0b3VjaC5jbGllbnRZIC0gb2xkVG91Y2gub3JpZ2luWQoKICAgICAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2VZIDwgLVRPVUNIRVNfQVNfS0VZQk9BUkRfRElTVEFOQ0UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VzdG9tRXZlbnQ6IFNjcmVlbktleWJvYXJkU2V0VmlzaWJsZUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCJtbC1zY3JlZW5rZXlib2FyZHZpc2libGUiLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHsgdmlzaWJsZTogdHJ1ZSB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChjdXN0b21FdmVudCkKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRpc3RhbmNlWSA+IFRPVUNIRVNfQVNfS0VZQk9BUkRfRElTVEFOQ0UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VzdG9tRXZlbnQ6IFNjcmVlbktleWJvYXJkU2V0VmlzaWJsZUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KCJtbC1zY3JlZW5rZXlib2FyZHZpc2libGUiLCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWw6IHsgdmlzaWJsZTogZmFsc2UgfQogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50VGFyZ2V0LmRpc3BhdGNoRXZlbnQoY3VzdG9tRXZlbnQpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb3IgKGNvbnN0IHRvdWNoIG9mIGV2ZW50LmNoYW5nZWRUb3VjaGVzKSB7CiAgICAgICAgICAgIHRoaXMudXBkYXRlVG91Y2hUcmFja2VyKHRvdWNoKQogICAgICAgIH0KICAgIH0KCiAgICBvblRvdWNoRW5kKGV2ZW50OiBUb3VjaEV2ZW50LCByZWN0OiBET01SZWN0KSB7CiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnRvdWNoTW9kZSA9PSAidG91Y2giKSB7CiAgICAgICAgICAgIGZvciAoY29uc3QgdG91Y2ggb2YgZXZlbnQuY2hhbmdlZFRvdWNoZXMpIHsKICAgICAgICAgICAgICAgIHRoaXMuc2VuZFRvdWNoKDIsIHRvdWNoLCByZWN0KQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmNvbmZpZy50b3VjaE1vZGUgPT0gIm1vdXNlUmVsYXRpdmUiIHx8IHRoaXMuY29uZmlnLnRvdWNoTW9kZSA9PSAibG9jYWxDdXJzb3IiIHx8IHRoaXMuY29uZmlnLnRvdWNoTW9kZSA9PSAicG9pbnRBbmREcmFnIikgewogICAgICAgICAgICBjb25zdCBlbmRpbmdTY3JvbGwgPSB0aGlzLnRvdWNoTW91c2VBY3Rpb24gPT0gInNjcm9sbCIgJiYgdGhpcy50b3VjaFRyYWNrZXIuc2l6ZSA9PSAyCiAgICAgICAgICAgIGNvbnN0IGVuZGluZ1R3b1RvdWNoVGFwID0gIXRoaXMudG91Y2hHZXN0dXJlU3VwcHJlc3NDbGljayAmJiB0aGlzLnRvdWNoTW91c2VBY3Rpb24gPT0gImRlZmF1bHQiICYmIHRoaXMudG91Y2hUcmFja2VyLnNpemUgPT0gMgogICAgICAgICAgICBsZXQgZW5kaW5nVHdvVG91Y2hUYXBTaG91bGRSaWdodENsaWNrID0gZmFsc2UKICAgICAgICAgICAgbGV0IGhhbmRsZWRUd29Ub3VjaFRhcCA9IGZhbHNlCgogICAgICAgICAgICBpZiAoZW5kaW5nVHdvVG91Y2hUYXApIHsKICAgICAgICAgICAgICAgIGVuZGluZ1R3b1RvdWNoVGFwU2hvdWxkUmlnaHRDbGljayA9IHRydWUKICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdHJhY2tlZFRvdWNoIG9mIHRoaXMudG91Y2hUcmFja2VyLnZhbHVlcygpKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2FsY1RvdWNoVGltZSh0cmFja2VkVG91Y2gpID4gVE9VQ0hfQVNfQ0xJQ0tfTUFYX1RJTUVfTVMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZW5kaW5nVHdvVG91Y2hUYXBTaG91bGRSaWdodENsaWNrID0gZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZvciAoY29uc3QgdG91Y2ggb2YgZXZlbnQuY2hhbmdlZFRvdWNoZXMpIHsKICAgICAgICAgICAgICAgIGlmIChlbmRpbmdUd29Ub3VjaFRhcCkgewogICAgICAgICAgICAgICAgICAgIGlmICghaGFuZGxlZFR3b1RvdWNoVGFwICYmIGVuZGluZ1R3b1RvdWNoVGFwU2hvdWxkUmlnaHRDbGljaykgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRNb3VzZUJ1dHRvbih0cnVlLCBTdHJlYW1Nb3VzZUJ1dHRvbi5SSUdIVCkKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VCdXR0b24oZmFsc2UsIFN0cmVhbU1vdXNlQnV0dG9uLlJJR0hUKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBoYW5kbGVkVHdvVG91Y2hUYXAgPSB0cnVlCgogICAgICAgICAgICAgICAgICAgIHRoaXMucHJpbWFyeVRvdWNoID0gbnVsbAogICAgICAgICAgICAgICAgICAgIHRoaXMubmV4dFRvdWNoRG91YmxlVGFwID0gZmFsc2UKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICh0aGlzLnByaW1hcnlUb3VjaCAhPSB0b3VjaC5pZGVudGlmaWVyKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGNvbnN0IG9sZFRvdWNoID0gdGhpcy50b3VjaFRyYWNrZXIuZ2V0KHRoaXMucHJpbWFyeVRvdWNoKQogICAgICAgICAgICAgICAgdGhpcy5wcmltYXJ5VG91Y2ggPSBudWxsCgogICAgICAgICAgICAgICAgaWYgKG9sZFRvdWNoKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVuZGluZ1Njcm9sbCkgewogICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG91Y2hNb3VzZUFjdGlvbiA9PSAibG9uZ1ByZXNzIikgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50b3VjaEdlc3R1cmVTdXBwcmVzc0NsaWNrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRUb3VjaERvdWJsZVRhcCA9IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlQnV0dG9uKHRydWUsIFN0cmVhbU1vdXNlQnV0dG9uLlJJR0hUKQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRNb3VzZUJ1dHRvbihmYWxzZSwgU3RyZWFtTW91c2VCdXR0b24uUklHSFQpCiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmV4dFRvdWNoRG91YmxlVGFwID0gZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRvdWNoTW91c2VBY3Rpb24gPT0gImRyYWciKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvbGRUb3VjaC5tb3VzZUNsaWNrZWQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kTW91c2VCdXR0b24oZmFsc2UsIG9sZFRvdWNoLm1vdXNlQ2xpY2tlZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZFRvdWNoLm1vdXNlQ2xpY2tlZCA9IG51bGwKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRUb3VjaERvdWJsZVRhcCA9IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBjb25zdCB0b3VjaFRpbWUgPSB0aGlzLmNhbGNUb3VjaFRpbWUob2xkVG91Y2gpCiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG91Y2hPcmlnaW5EaXN0YW5jZSA9IHRoaXMuY2FsY1RvdWNoT3JpZ2luRGlzdGFuY2UodG91Y2gsIG9sZFRvdWNoKQoKICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXliZURvdWJsZVRhcCA9ICF0aGlzLnRvdWNoR2VzdHVyZVN1cHByZXNzQ2xpY2sgJiYgdG91Y2hUaW1lIDwgRE9VQkxFX1RBUF9GSVJTVF9UQVBfTUFYX1RJTUVfTVMKCiAgICAgICAgICAgICAgICAgICAgLy8gcG9pbnQgYW5kIGRyYWc6IEJlZm9yZSBtYWtpbmcgYSBjbGljayB3ZSBzaG91bGQgbW92ZSB0aGUgbW91c2UgdG8gdGhlIHBvc2l0aW9uCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLnRvdWNoTW9kZSA9PSAicG9pbnRBbmREcmFnIiAmJiAhb2xkVG91Y2gubW91c2VNb3ZlZCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRNb3VzZVBvc2l0aW9uQ2xpZW50Q29vcmRpbmF0ZXModG91Y2guY2xpZW50WCwgdG91Y2guY2xpZW50WSwgcmVjdCwgdHJ1ZSkKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvQ2xpY2sgPSAobWF5YmVEb3VibGVUYXA6IGJvb2xlYW4pID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2VlIGlmIHdlIHNob3VsZCBtYWtlIGEgY2xpY2sKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG91Y2hPcmlnaW5EaXN0YW5jZSA8IFRPVUNIX0FTX0NMSUNLX01BWF9ESVNUQU5DRSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMudG91Y2hHZXN0dXJlU3VwcHJlc3NDbGljayAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIW9sZFRvdWNoLm1vdXNlTW92ZWQgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICFtYXliZURvdWJsZVRhcAogICAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNob3VsZCB3ZSByaWdodCBvciBsZWZ0IGNsaWNrPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1vdXNlQnV0dG9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG91Y2hUaW1lID4gVE9VQ0hfQVNfQ0xJQ0tfTUFYX1RJTUVfTVMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZUJ1dHRvbiA9IFN0cmVhbU1vdXNlQnV0dG9uLlJJR0hUCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlQnV0dG9uID0gU3RyZWFtTW91c2VCdXR0b24uTEVGVAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlQnV0dG9uKHRydWUsIG1vdXNlQnV0dG9uKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkVG91Y2gubW91c2VDbGlja2VkID0gbW91c2VCdXR0b24KICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVzZXQgbW91c2UgY2xpY2sgdG8gbmV1dHJhbAogICAgICAgICAgICAgICAgICAgICAgICBpZiAob2xkVG91Y2gubW91c2VDbGlja2VkICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlQnV0dG9uKGZhbHNlLCBvbGRUb3VjaC5tb3VzZUNsaWNrZWQpCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGRvQ2xpY2sobWF5YmVEb3VibGVUYXApCgogICAgICAgICAgICAgICAgICAgIGlmIChtYXliZURvdWJsZVRhcCkgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRUb3VjaERvdWJsZVRhcCA9IHRydWUKCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNjaGVkdWxlIHRoZSBjbGljayBpZiBpdCdzIG5vdCBhIGRvdWJsZSB0YXAKICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5wcmltYXJ5VG91Y2ggPT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5vIGNsaWNrIHByZXNlbnQgLT4gbm8gZG91YmxlIGNsaWNrIC0+IFdlIG5lZWQgdG8gZG8gdGhlIGFjdHVhbCBjbGljawogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvQ2xpY2soZmFsc2UpCgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGl0IGNhbm5vdCBiZSBhIGRvdWJsZSB0YXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRUb3VjaERvdWJsZVRhcCA9IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIERPVUJMRV9UQVBfU0VDT05EX1RBUF9NQVhfVElNRV9NUykKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5leHRUb3VjaERvdWJsZVRhcCA9IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBmb3IgKGNvbnN0IHRvdWNoIG9mIGV2ZW50LmNoYW5nZWRUb3VjaGVzKSB7CiAgICAgICAgICAgIHRoaXMudG91Y2hUcmFja2VyLmRlbGV0ZSh0b3VjaC5pZGVudGlmaWVyKQogICAgICAgIH0KCiAgICAgICAgaWYgKHRoaXMudG91Y2hNb3VzZUFjdGlvbiA9PSAic2Nyb2xsIiAmJiB0aGlzLnRvdWNoVHJhY2tlci5zaXplIDwgMikgewogICAgICAgICAgICB0aGlzLnRvdWNoTW91c2VBY3Rpb24gPSAiZGVmYXVsdCIKICAgICAgICAgICAgdGhpcy5yZXNldFNjcm9sbFJlbWFpbmRlcigpCiAgICAgICAgfQoKICAgICAgICBpZiAodGhpcy50b3VjaFRyYWNrZXIuc2l6ZSA9PSAwKSB7CiAgICAgICAgICAgIHRoaXMudG91Y2hHZXN0dXJlU3VwcHJlc3NDbGljayA9IGZhbHNlCiAgICAgICAgfQogICAgfQoKICAgIG9uVG91Y2hDYW5jZWwoZXZlbnQ6IFRvdWNoRXZlbnQsIHJlY3Q6IERPTVJlY3QpIHsKICAgICAgICBpZiAodGhpcy5jb25maWcudG91Y2hNb2RlID09ICJ0b3VjaCIpIHsKICAgICAgICAgICAgZm9yIChjb25zdCB0b3VjaCBvZiBldmVudC5jaGFuZ2VkVG91Y2hlcykgewogICAgICAgICAgICAgICAgdGhpcy5zZW5kVG91Y2goMiwgdG91Y2gsIHJlY3QpCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBmb3IgKGNvbnN0IHRyYWNrZWRUb3VjaCBvZiB0aGlzLnRvdWNoVHJhY2tlci52YWx1ZXMoKSkgewogICAgICAgICAgICAgICAgaWYgKHRyYWNrZWRUb3VjaC5tb3VzZUNsaWNrZWQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1vdXNlQnV0dG9uKGZhbHNlLCB0cmFja2VkVG91Y2gubW91c2VDbGlja2VkKQogICAgICAgICAgICAgICAgICAgIHRyYWNrZWRUb3VjaC5tb3VzZUNsaWNrZWQgPSBudWxsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHRoaXMudG91Y2hUcmFja2VyLmNsZWFyKCkKICAgICAgICB0aGlzLnByaW1hcnlUb3VjaCA9IG51bGwKICAgICAgICB0aGlzLnRvdWNoTW91c2VBY3Rpb24gPSAiZGVmYXVsdCIKICAgICAgICB0aGlzLm5leHRUb3VjaERvdWJsZVRhcCA9IGZhbHNlCiAgICAgICAgdGhpcy50b3VjaEdlc3R1cmVTdXBwcmVzc0NsaWNrID0gZmFsc2UKICAgICAgICB0aGlzLnJlc2V0U2Nyb2xsUmVtYWluZGVyKCkKICAgIH0KCiAgICBwcml2YXRlIGNhbGNOb3JtYWxpemVkUG9zaXRpb24oY2xpZW50WDogbnVtYmVyLCBjbGllbnRZOiBudW1iZXIsIHJlY3Q6IERPTVJlY3QpOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCB7CiAgICAgICAgY29uc3QgeCA9IChjbGllbnRYIC0gcmVjdC5sZWZ0KSAvIHJlY3Qud2lkdGgKICAgICAgICBjb25zdCB5ID0gKGNsaWVudFkgLSByZWN0LnRvcCkgLyByZWN0LmhlaWdodAoKICAgICAgICBpZiAoeCA8IDAgfHwgeCA+IDEuMCB8fCB5IDwgMCB8fCB5ID4gMS4wKSB7CiAgICAgICAgICAgIC8vIGludmFsaWQgdG91Y2gKICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFt4LCB5XQogICAgfQogICAgcHJpdmF0ZSBzZW5kVG91Y2godHlwZTogbnVtYmVyLCB0b3VjaDogVG91Y2gsIHJlY3Q6IERPTVJlY3QpIHsKICAgICAgICB0aGlzLmJ1ZmZlci5yZXNldCgpCgogICAgICAgIHRoaXMuYnVmZmVyLnB1dFU4KHR5cGUpCgogICAgICAgIHRoaXMuYnVmZmVyLnB1dFUzMih0b3VjaC5pZGVudGlmaWVyKQoKICAgICAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMuY2FsY05vcm1hbGl6ZWRQb3NpdGlvbih0b3VjaC5jbGllbnRYLCB0b3VjaC5jbGllbnRZLCByZWN0KQogICAgICAgIGlmICghcG9zaXRpb24pIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIGNvbnN0IFt4LCB5XSA9IHBvc2l0aW9uCiAgICAgICAgdGhpcy5idWZmZXIucHV0RjMyKHgpCiAgICAgICAgdGhpcy5idWZmZXIucHV0RjMyKHkpCgogICAgICAgIHRoaXMuYnVmZmVyLnB1dEYzMih0b3VjaC5mb3JjZSkKCiAgICAgICAgdGhpcy5idWZmZXIucHV0RjMyKHRvdWNoLnJhZGl1c1gpCiAgICAgICAgdGhpcy5idWZmZXIucHV0RjMyKHRvdWNoLnJhZGl1c1kpCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTE2KHRvdWNoLnJvdGF0aW9uQW5nbGUpCgogICAgICAgIHRyeVNlbmRDaGFubmVsKHRoaXMudG91Y2gsIHRoaXMuYnVmZmVyKQogICAgfQoKICAgIGlzVG91Y2hTdXBwb3J0ZWQoKTogYm9vbGVhbiB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLnRvdWNoU3VwcG9ydGVkCiAgICB9CgogICAgZ2V0Q3VycmVudFByZWRpY3RlZFRvdWNoQWN0aW9uKCk6IFByZWRpY3RlZFRvdWNoQWN0aW9uIHsKICAgICAgICByZXR1cm4gdGhpcy50b3VjaE1vdXNlQWN0aW9uCiAgICB9CgogICAgLy8gLS0gQ29udHJvbGxlcgogICAgLy8gV2FpdCBmb3Igc3RyZWFtIHRvIGNvbm5lY3QgYW5kIHRoZW4gc2VuZCBjb250cm9sbGVycwogICAgcHJpdmF0ZSBidWZmZXJlZENvbnRyb2xsZXJzOiBBcnJheTxudW1iZXI+ID0gW10KICAgIHByaXZhdGUgcmVnaXN0ZXJCdWZmZXJlZENvbnRyb2xsZXJzKCkgewogICAgICAgIGNvbnN0IGdhbWVwYWRzID0gbmF2aWdhdG9yLmdldEdhbWVwYWRzKCkKCiAgICAgICAgZm9yIChjb25zdCBpbmRleCBvZiB0aGlzLmJ1ZmZlcmVkQ29udHJvbGxlcnMuc3BsaWNlKDApKSB7CiAgICAgICAgICAgIGNvbnN0IGdhbWVwYWQgPSBnYW1lcGFkc1tpbmRleF0KICAgICAgICAgICAgaWYgKGdhbWVwYWQpIHsKICAgICAgICAgICAgICAgIHRoaXMub25HYW1lcGFkQ29ubmVjdChnYW1lcGFkKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgY29sbGVjdEFjdHVhdG9ycyhnYW1lcGFkOiBHYW1lcGFkKTogQXJyYXk8R2FtZXBhZEhhcHRpY0FjdHVhdG9yPiB7CiAgICAgICAgY29uc3QgYWN0dWF0b3JzID0gW10KICAgICAgICBpZiAoInZpYnJhdGlvbkFjdHVhdG9yIiBpbiBnYW1lcGFkICYmIGdhbWVwYWQudmlicmF0aW9uQWN0dWF0b3IpIHsKICAgICAgICAgICAgYWN0dWF0b3JzLnB1c2goZ2FtZXBhZC52aWJyYXRpb25BY3R1YXRvcikKICAgICAgICB9CiAgICAgICAgaWYgKCJoYXB0aWNBY3R1YXRvcnMiIGluIGdhbWVwYWQgJiYgZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMpIHsKICAgICAgICAgICAgY29uc3QgaGFwdGljQWN0dWF0b3JzID0gZ2FtZXBhZC5oYXB0aWNBY3R1YXRvcnMgYXMgQXJyYXk8R2FtZXBhZEhhcHRpY0FjdHVhdG9yPgogICAgICAgICAgICBhY3R1YXRvcnMucHVzaCguLi5oYXB0aWNBY3R1YXRvcnMpCiAgICAgICAgfQogICAgICAgIHJldHVybiBhY3R1YXRvcnMKICAgIH0KCiAgICBwcml2YXRlIGdhbWVwYWRzOiBBcnJheTx7IGdhbWVwYWRJbmRleDogbnVtYmVyLCBvbGRTdGF0ZTogR2FtZXBhZFN0YXRlIH0gfCBudWxsPiA9IFtdCiAgICBwcml2YXRlIGdhbWVwYWRSdW1ibGVJbnRlcnZhbDogbnVtYmVyIHwgbnVsbCA9IG51bGwKCiAgICBvbkdhbWVwYWRDb25uZWN0KGdhbWVwYWQ6IEdhbWVwYWQpIHsKICAgICAgICBpZiAoIXRoaXMuY29ubmVjdGVkIHx8ICF0aGlzLmNvbnRyb2xsZXJzKSB7CiAgICAgICAgICAgIHRoaXMuYnVmZmVyZWRDb250cm9sbGVycy5wdXNoKGdhbWVwYWQuaW5kZXgpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgaWYgKHRoaXMuZ2FtZXBhZHMuZmluZCh2YWx1ZSA9PiB2YWx1ZT8uZ2FtZXBhZEluZGV4ID09IGdhbWVwYWQuaW5kZXgpKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgbGV0IGlkID0gLTEKICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZ2FtZXBhZHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKHRoaXMuZ2FtZXBhZHNbaV0gPT0gbnVsbCkgewogICAgICAgICAgICAgICAgdGhpcy5nYW1lcGFkc1tpXSA9IHsgZ2FtZXBhZEluZGV4OiBnYW1lcGFkLmluZGV4LCBvbGRTdGF0ZTogZW1wdHlHYW1lcGFkU3RhdGUoKSB9CiAgICAgICAgICAgICAgICBpZCA9IGkKICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGlkID09IC0xKSB7CiAgICAgICAgICAgIGlkID0gdGhpcy5nYW1lcGFkcy5sZW5ndGgKICAgICAgICAgICAgdGhpcy5nYW1lcGFkcy5wdXNoKHsgZ2FtZXBhZEluZGV4OiBnYW1lcGFkLmluZGV4LCBvbGRTdGF0ZTogZW1wdHlHYW1lcGFkU3RhdGUoKSB9KQogICAgICAgIH0KCiAgICAgICAgLy8gU3RhcnQgUnVtYmxlIGludGVydmFsCiAgICAgICAgaWYgKHRoaXMuZ2FtZXBhZFJ1bWJsZUludGVydmFsID09IG51bGwpIHsKICAgICAgICAgICAgdGhpcy5nYW1lcGFkUnVtYmxlSW50ZXJ2YWwgPSB3aW5kb3cuc2V0SW50ZXJ2YWwodGhpcy5vbkdhbWVwYWRSdW1ibGVJbnRlcnZhbC5iaW5kKHRoaXMpLCBDT05UUk9MTEVSX1JVTUJMRV9JTlRFUlZBTF9NUyAtIDEwKQogICAgICAgIH0KCiAgICAgICAgLy8gUmVzZXQgcnVtYmxlCiAgICAgICAgdGhpcy5nYW1lcGFkUnVtYmxlQ3VycmVudFswXSA9IHsgbG93RnJlcXVlbmN5TW90b3I6IDAsIGhpZ2hGcmVxdWVuY3lNb3RvcjogMCwgbGVmdFRyaWdnZXI6IDAsIHJpZ2h0VHJpZ2dlcjogMCB9CgogICAgICAgIGxldCBjYXBhYmlsaXRpZXMgPSAwCgogICAgICAgIC8vIFJ1bWJsZSBjYXBhYmlsaXRpZXMKICAgICAgICBmb3IgKGNvbnN0IGFjdHVhdG9yIG9mIHRoaXMuY29sbGVjdEFjdHVhdG9ycyhnYW1lcGFkKSkgewogICAgICAgICAgICBpZiAoImVmZmVjdHMiIGluIGFjdHVhdG9yKSB7CiAgICAgICAgICAgICAgICBjb25zdCBzdXBwb3J0ZWRFZmZlY3RzID0gYWN0dWF0b3IuZWZmZWN0cyBhcyBBcnJheTxzdHJpbmc+CgogICAgICAgICAgICAgICAgZm9yIChjb25zdCBlZmZlY3Qgb2Ygc3VwcG9ydGVkRWZmZWN0cykgewogICAgICAgICAgICAgICAgICAgIGlmIChlZmZlY3QgPT0gImR1YWwtcnVtYmxlIikgewogICAgICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSBTdHJlYW1Db250cm9sbGVyQ2FwYWJpbGl0aWVzLkNBUEFCSUxJVFlfUlVNQkxFCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QgPT0gInRyaWdnZXItcnVtYmxlIikgewogICAgICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXMgPSBTdHJlYW1Db250cm9sbGVyQ2FwYWJpbGl0aWVzLkNBUEFCSUxJVFlfVFJJR0dFUl9SVU1CTEUKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoInR5cGUiIGluIGFjdHVhdG9yICYmIChhY3R1YXRvci50eXBlID09ICJ2aWJyYXRpb24iIHx8IGFjdHVhdG9yLnR5cGUgPT0gImR1YWwtcnVtYmxlIikpIHsKICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IFN0cmVhbUNvbnRyb2xsZXJDYXBhYmlsaXRpZXMuQ0FQQUJJTElUWV9SVU1CTEUKICAgICAgICAgICAgfSBlbHNlIGlmICgicGxheUVmZmVjdCIgaW4gYWN0dWF0b3IgJiYgdHlwZW9mIGFjdHVhdG9yLnBsYXlFZmZlY3QgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgLy8gd2UncmUganVzdCBob3BpbmcgYXQgdGhpcyBwb2ludAogICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0gU3RyZWFtQ29udHJvbGxlckNhcGFiaWxpdGllcy5DQVBBQklMSVRZX1JVTUJMRSB8IFN0cmVhbUNvbnRyb2xsZXJDYXBhYmlsaXRpZXMuQ0FQQUJJTElUWV9UUklHR0VSX1JVTUJMRQogICAgICAgICAgICB9IGVsc2UgaWYgKCJwdWxzZSIgaW4gYWN0dWF0b3IgJiYgdHlwZW9mIGFjdHVhdG9yLnB1bHNlID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcyA9IFN0cmVhbUNvbnRyb2xsZXJDYXBhYmlsaXRpZXMuQ0FQQUJJTElUWV9SVU1CTEUKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdGhpcy5zZW5kQ29udHJvbGxlckFkZCh0aGlzLmdhbWVwYWRzLmxlbmd0aCAtIDEsIFNVUFBPUlRFRF9CVVRUT05TLCBjYXBhYmlsaXRpZXMpCgogICAgICAgIGlmIChnYW1lcGFkLm1hcHBpbmcgIT0gInN0YW5kYXJkIikgewogICAgICAgICAgICBjb25zb2xlLndhcm4oYFtHYW1lcGFkXTogVW5hYmxlIHRvIHJlYWQgdmFsdWVzIG9mIGdhbWVwYWQgd2l0aCBtYXBwaW5nICR7Z2FtZXBhZC5tYXBwaW5nfWApCiAgICAgICAgfQogICAgfQogICAgb25HYW1lcGFkRGlzY29ubmVjdChldmVudDogR2FtZXBhZEV2ZW50KSB7CiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmdhbWVwYWRzLmZpbmRJbmRleCh2YWx1ZSA9PiB2YWx1ZT8uZ2FtZXBhZEluZGV4ID09IGV2ZW50LmdhbWVwYWQuaW5kZXgpCiAgICAgICAgaWYgKGluZGV4ICE9IC0xKSB7CiAgICAgICAgICAgIGNvbnN0IGlkID0gdGhpcy5nYW1lcGFkc1tpbmRleF0/LmdhbWVwYWRJbmRleAogICAgICAgICAgICBpZiAoaWQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgdGhpcy5zZW5kQ29udHJvbGxlclJlbW92ZShpZCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5nYW1lcGFkc1tpbmRleF0gPSBudWxsCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgbGFzdEdhbWVwYWRVcGRhdGU6IG51bWJlciA9IHBlcmZvcm1hbmNlLm5vdygpCiAgICBvbkdhbWVwYWRVcGRhdGUoKSB7CiAgICAgICAgaWYgKHRoaXMuY29uZmlnLmNvbnRyb2xsZXJDb25maWcuc2VuZEludGVydmFsT3ZlcnJpZGUgIT0gbnVsbCkgewogICAgICAgICAgICBjb25zdCBub3cgPSBwZXJmb3JtYW5jZS5ub3coKQogICAgICAgICAgICBpZiAobm93IC0gdGhpcy5sYXN0R2FtZXBhZFVwZGF0ZSA8ICgxMDAwIC8gdGhpcy5jb25maWcuY29udHJvbGxlckNvbmZpZy5zZW5kSW50ZXJ2YWxPdmVycmlkZSkpIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMubGFzdEdhbWVwYWRVcGRhdGUgPSBwZXJmb3JtYW5jZS5ub3coKQogICAgICAgIH0KCiAgICAgICAgZm9yIChsZXQgZ2FtZXBhZElkID0gMDsgZ2FtZXBhZElkIDwgdGhpcy5nYW1lcGFkcy5sZW5ndGg7IGdhbWVwYWRJZCsrKSB7CiAgICAgICAgICAgIGNvbnN0IG9sZEdhbWVwYWRTdGF0ZSA9IHRoaXMuZ2FtZXBhZHNbZ2FtZXBhZElkXQogICAgICAgICAgICBpZiAob2xkR2FtZXBhZFN0YXRlID09IG51bGwpIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IGdhbWVwYWQgPSBuYXZpZ2F0b3IuZ2V0R2FtZXBhZHMoKVtvbGRHYW1lcGFkU3RhdGUuZ2FtZXBhZEluZGV4XQogICAgICAgICAgICBpZiAoIWdhbWVwYWQpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChnYW1lcGFkLm1hcHBpbmcgIT0gInN0YW5kYXJkIikgewogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29uc3Qgc3RhdGUgPSBleHRyYWN0R2FtZXBhZFN0YXRlKGdhbWVwYWQsIHRoaXMuY29uZmlnLmNvbnRyb2xsZXJDb25maWcpCiAgICAgICAgICAgIGlmIChzdGF0ZSA9PSBvbGRHYW1lcGFkU3RhdGUub2xkU3RhdGUpIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgb2xkR2FtZXBhZFN0YXRlLm9sZFN0YXRlID0gc3RhdGUKCiAgICAgICAgICAgIHRoaXMuc2VuZENvbnRyb2xsZXIoZ2FtZXBhZElkLCBzdGF0ZSkKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBvbkNvbnRyb2xsZXJEYXRhKGRhdGE6IEFycmF5QnVmZmVyKSB7CiAgICAgICAgdGhpcy5idWZmZXIucmVzZXQoKQoKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVOEFycmF5KG5ldyBVaW50OEFycmF5KGRhdGEpKQogICAgICAgIHRoaXMuYnVmZmVyLmZsaXAoKQoKICAgICAgICAvLyBUT0RPOiBtYXliZSBtb3ZlIHRoaXMgaW50byB0aGVpciByZXNwZWN0aXZlIGNvbnRyb2xsZXIgY2hhbm5lbHM/CgogICAgICAgIGNvbnN0IHR5ID0gdGhpcy5idWZmZXIuZ2V0VTgoKQogICAgICAgIGlmICh0eSA9PSAwKSB7CiAgICAgICAgICAgIC8vIFJ1bWJsZQogICAgICAgICAgICBjb25zdCBpZCA9IHRoaXMuYnVmZmVyLmdldFU4KCkKICAgICAgICAgICAgY29uc3QgbG93RnJlcXVlbmN5TW90b3IgPSB0aGlzLmJ1ZmZlci5nZXRVMTYoKSAvIFUxNl9NQVgKICAgICAgICAgICAgY29uc3QgaGlnaEZyZXF1ZW5jeU1vdG9yID0gdGhpcy5idWZmZXIuZ2V0VTE2KCkgLyBVMTZfTUFYCgogICAgICAgICAgICBjb25zdCBnYW1lcGFkSW5kZXggPSB0aGlzLmdhbWVwYWRzW2lkXT8uZ2FtZXBhZEluZGV4CiAgICAgICAgICAgIGlmIChnYW1lcGFkSW5kZXggPT0gbnVsbCkgewogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuc2V0R2FtZXBhZEVmZmVjdChnYW1lcGFkSW5kZXgsICJkdWFsLXJ1bWJsZSIsIHsgbG93RnJlcXVlbmN5TW90b3IsIGhpZ2hGcmVxdWVuY3lNb3RvciB9KQogICAgICAgIH0gZWxzZSBpZiAodHkgPT0gMSkgewogICAgICAgICAgICAvLyBUcmlnZ2VyIFJ1bWJsZQogICAgICAgICAgICBjb25zdCBpZCA9IHRoaXMuYnVmZmVyLmdldFU4KCkKICAgICAgICAgICAgY29uc3QgbGVmdFRyaWdnZXIgPSB0aGlzLmJ1ZmZlci5nZXRVMTYoKSAvIFUxNl9NQVgKICAgICAgICAgICAgY29uc3QgcmlnaHRUcmlnZ2VyID0gdGhpcy5idWZmZXIuZ2V0VTE2KCkgLyBVMTZfTUFYCgogICAgICAgICAgICBjb25zdCBnYW1lcGFkSW5kZXggPSB0aGlzLmdhbWVwYWRzW2lkXT8uZ2FtZXBhZEluZGV4CiAgICAgICAgICAgIGlmIChnYW1lcGFkSW5kZXggPT0gbnVsbCkgewogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuc2V0R2FtZXBhZEVmZmVjdChnYW1lcGFkSW5kZXgsICJ0cmlnZ2VyLXJ1bWJsZSIsIHsgbGVmdFRyaWdnZXIsIHJpZ2h0VHJpZ2dlciB9KQogICAgICAgIH0KICAgIH0KCiAgICAvLyAtLSBDb250cm9sbGVyIHJ1bWJsZQogICAgcHJpdmF0ZSBnYW1lcGFkUnVtYmxlQ3VycmVudDogQXJyYXk8ewogICAgICAgIGxvd0ZyZXF1ZW5jeU1vdG9yOiBudW1iZXIsIGhpZ2hGcmVxdWVuY3lNb3RvcjogbnVtYmVyLAogICAgICAgIGxlZnRUcmlnZ2VyOiBudW1iZXIsIHJpZ2h0VHJpZ2dlcjogbnVtYmVyCiAgICB9PiA9IFtdCgogICAgcHJpdmF0ZSBzZXRHYW1lcGFkRWZmZWN0KGlkOiBudW1iZXIsIHR5OiAiZHVhbC1ydW1ibGUiLCBwYXJhbXM6IHsgbG93RnJlcXVlbmN5TW90b3I6IG51bWJlciwgaGlnaEZyZXF1ZW5jeU1vdG9yOiBudW1iZXIgfSk6IHZvaWQKICAgIHByaXZhdGUgc2V0R2FtZXBhZEVmZmVjdChpZDogbnVtYmVyLCB0eTogInRyaWdnZXItcnVtYmxlIiwgcGFyYW1zOiB7IGxlZnRUcmlnZ2VyOiBudW1iZXIsIHJpZ2h0VHJpZ2dlcjogbnVtYmVyIH0pOiB2b2lkCgogICAgcHJpdmF0ZSBzZXRHYW1lcGFkRWZmZWN0KGlkOiBudW1iZXIsIF90eTogImR1YWwtcnVtYmxlIiB8ICJ0cmlnZ2VyLXJ1bWJsZSIsIHBhcmFtczogeyBsb3dGcmVxdWVuY3lNb3RvcjogbnVtYmVyLCBoaWdoRnJlcXVlbmN5TW90b3I6IG51bWJlciB9IHwgeyBsZWZ0VHJpZ2dlcjogbnVtYmVyLCByaWdodFRyaWdnZXI6IG51bWJlciB9KSB7CiAgICAgICAgY29uc3QgcnVtYmxlID0gdGhpcy5nYW1lcGFkUnVtYmxlQ3VycmVudFtpZF0KCiAgICAgICAgT2JqZWN0LmFzc2lnbihydW1ibGUsIHBhcmFtcykKICAgIH0KCiAgICBwcml2YXRlIG9uR2FtZXBhZFJ1bWJsZUludGVydmFsKCkgewogICAgICAgIGZvciAobGV0IGlkID0gMDsgaWQgPCB0aGlzLmdhbWVwYWRzLmxlbmd0aDsgaWQrKykgewogICAgICAgICAgICBjb25zdCBnYW1lcGFkSW5kZXggPSB0aGlzLmdhbWVwYWRzW2lkXT8uZ2FtZXBhZEluZGV4CiAgICAgICAgICAgIGlmIChnYW1lcGFkSW5kZXggPT0gbnVsbCkgewogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29uc3QgcnVtYmxlID0gdGhpcy5nYW1lcGFkUnVtYmxlQ3VycmVudFtnYW1lcGFkSW5kZXhdCiAgICAgICAgICAgIGNvbnN0IGdhbWVwYWQgPSBuYXZpZ2F0b3IuZ2V0R2FtZXBhZHMoKVtnYW1lcGFkSW5kZXhdCiAgICAgICAgICAgIGlmIChnYW1lcGFkICYmIHJ1bWJsZSkgewogICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoR2FtZXBhZFJ1bWJsZShydW1ibGUsIGdhbWVwYWQpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBwcml2YXRlIHJlZnJlc2hHYW1lcGFkUnVtYmxlKAogICAgICAgIHJ1bWJsZTogewogICAgICAgICAgICBsb3dGcmVxdWVuY3lNb3RvcjogbnVtYmVyLCBoaWdoRnJlcXVlbmN5TW90b3I6IG51bWJlciwKICAgICAgICAgICAgbGVmdFRyaWdnZXI6IG51bWJlciwgcmlnaHRUcmlnZ2VyOiBudW1iZXIKICAgICAgICB9LAogICAgICAgIGdhbWVwYWQ6IEdhbWVwYWQKICAgICkgewogICAgICAgIC8vIEJyb3dzZXJzIGFyZSBtYWtpbmcgdGhpcyBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gaXQgaXMKCiAgICAgICAgY29uc3QgYWN0dWF0b3JzID0gdGhpcy5jb2xsZWN0QWN0dWF0b3JzKGdhbWVwYWQpCgogICAgICAgIGZvciAoY29uc3QgYWN0dWF0b3Igb2YgYWN0dWF0b3JzKSB7CiAgICAgICAgICAgIGlmICgiZWZmZWN0cyIgaW4gYWN0dWF0b3IpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN1cHBvcnRlZEVmZmVjdHMgPSBhY3R1YXRvci5lZmZlY3RzIGFzIEFycmF5PHN0cmluZz4KCiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGVmZmVjdCBvZiBzdXBwb3J0ZWRFZmZlY3RzKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKGVmZmVjdCA9PSAiZHVhbC1ydW1ibGUiKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhdG9yLnBsYXlFZmZlY3QoImR1YWwtcnVtYmxlIiwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IENPTlRST0xMRVJfUlVNQkxFX0lOVEVSVkFMX01TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vha01hZ25pdHVkZTogcnVtYmxlLmxvd0ZyZXF1ZW5jeU1vdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb25nTWFnbml0dWRlOiBydW1ibGUuaGlnaEZyZXF1ZW5jeU1vdG9yCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlZmZlY3QgPT0gInRyaWdnZXItcnVtYmxlIikgewogICAgICAgICAgICAgICAgICAgICAgICBhY3R1YXRvci5wbGF5RWZmZWN0KCJ0cmlnZ2VyLXJ1bWJsZSIsIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOiBDT05UUk9MTEVSX1JVTUJMRV9JTlRFUlZBTF9NUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRUcmlnZ2VyOiBydW1ibGUubGVmdFRyaWdnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodFRyaWdnZXI6IHJ1bWJsZS5yaWdodFRyaWdnZXIKICAgICAgICAgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSBpZiAoInR5cGUiIGluIGFjdHVhdG9yICYmIChhY3R1YXRvci50eXBlID09ICJ2aWJyYXRpb24iIHx8IGFjdHVhdG9yLnR5cGUgPT0gImR1YWwtcnVtYmxlIikpIHsKICAgICAgICAgICAgICAgIGFjdHVhdG9yLnBsYXlFZmZlY3QoYWN0dWF0b3IudHlwZSBhcyBhbnksIHsKICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogQ09OVFJPTExFUl9SVU1CTEVfSU5URVJWQUxfTVMsCiAgICAgICAgICAgICAgICAgICAgd2Vha01hZ25pdHVkZTogcnVtYmxlLmxvd0ZyZXF1ZW5jeU1vdG9yLAogICAgICAgICAgICAgICAgICAgIHN0cm9uZ01hZ25pdHVkZTogcnVtYmxlLmhpZ2hGcmVxdWVuY3lNb3RvcgogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfSBlbHNlIGlmICgicGxheUVmZmVjdCIgaW4gYWN0dWF0b3IgJiYgdHlwZW9mIGFjdHVhdG9yLnBsYXlFZmZlY3QgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgYWN0dWF0b3IucGxheUVmZmVjdCgiZHVhbC1ydW1ibGUiLCB7CiAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246IENPTlRST0xMRVJfUlVNQkxFX0lOVEVSVkFMX01TLAogICAgICAgICAgICAgICAgICAgIHdlYWtNYWduaXR1ZGU6IHJ1bWJsZS5sb3dGcmVxdWVuY3lNb3RvciwKICAgICAgICAgICAgICAgICAgICBzdHJvbmdNYWduaXR1ZGU6IHJ1bWJsZS5oaWdoRnJlcXVlbmN5TW90b3IKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICBhY3R1YXRvci5wbGF5RWZmZWN0KCJ0cmlnZ2VyLXJ1bWJsZSIsIHsKICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogQ09OVFJPTExFUl9SVU1CTEVfSU5URVJWQUxfTVMsCiAgICAgICAgICAgICAgICAgICAgbGVmdFRyaWdnZXI6IHJ1bWJsZS5sZWZ0VHJpZ2dlciwKICAgICAgICAgICAgICAgICAgICByaWdodFRyaWdnZXI6IHJ1bWJsZS5yaWdodFRyaWdnZXIKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgIH0gZWxzZSBpZiAoInB1bHNlIiBpbiBhY3R1YXRvciAmJiB0eXBlb2YgYWN0dWF0b3IucHVsc2UgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAgICAgY29uc3Qgd2VhayA9IE1hdGgubWluKE1hdGgubWF4KHJ1bWJsZS5sb3dGcmVxdWVuY3lNb3RvciwgMCksIDEpOwogICAgICAgICAgICAgICAgY29uc3Qgc3Ryb25nID0gTWF0aC5taW4oTWF0aC5tYXgocnVtYmxlLmhpZ2hGcmVxdWVuY3lNb3RvciwgMCksIDEpOwoKICAgICAgICAgICAgICAgIGNvbnN0IGF2ZXJhZ2UgPSAod2VhayArIHN0cm9uZykgLyAyLjAKCiAgICAgICAgICAgICAgICBhY3R1YXRvci5wdWxzZShhdmVyYWdlLCBDT05UUk9MTEVSX1JVTUJMRV9JTlRFUlZBTF9NUykKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyAtLSBDb250cm9sbGVyIFNlbmRpbmcKICAgIHNlbmRDb250cm9sbGVyQWRkKGlkOiBudW1iZXIsIHN1cHBvcnRlZEJ1dHRvbnM6IG51bWJlciwgY2FwYWJpbGl0aWVzOiBudW1iZXIpIHsKICAgICAgICB0aGlzLmJ1ZmZlci5yZXNldCgpCgogICAgICAgIHRoaXMuYnVmZmVyLnB1dFU4KDApCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgoaWQpCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTMyKHN1cHBvcnRlZEJ1dHRvbnMpCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTE2KGNhcGFiaWxpdGllcykKCiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2xsZXJzKSB7CiAgICAgICAgICAgIHNob3dOb3RpZmljYXRpb24oImNvbnRyb2xsZXIgY2hhbm5lbCBpcyBub3QgeWV0IHByZXNlbnQsIGNvbnRyb2xsZXIgY29ubmVjdCBldmVudCBpcyBkcm9wcGVkIikKICAgICAgICB9CiAgICAgICAgdHJ5U2VuZENoYW5uZWwodGhpcy5jb250cm9sbGVycywgdGhpcy5idWZmZXIpCiAgICB9CiAgICBzZW5kQ29udHJvbGxlclJlbW92ZShpZDogbnVtYmVyKSB7CiAgICAgICAgdGhpcy5idWZmZXIucmVzZXQoKQoKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVOCgxKQogICAgICAgIHRoaXMuYnVmZmVyLnB1dFU4KGlkKQoKICAgICAgICB0cnlTZW5kQ2hhbm5lbCh0aGlzLmNvbnRyb2xsZXJzLCB0aGlzLmJ1ZmZlcikKICAgIH0KICAgIC8vIFZhbHVlcwogICAgLy8gLSBUcmlnZ2VyOiByYW5nZSAwLi4xCiAgICAvLyAtIFN0aWNrOiByYW5nZSAtMS4uMQogICAgc2VuZENvbnRyb2xsZXIoaWQ6IG51bWJlciwgc3RhdGU6IEdhbWVwYWRTdGF0ZSkgewogICAgICAgIHRoaXMuYnVmZmVyLnJlc2V0KCkKCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgoMCkKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVMzIoc3RhdGUuYnV0dG9uRmxhZ3MpCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgoTWF0aC5tYXgoMC4wLCBNYXRoLm1pbigxLjAsIHN0YXRlLmxlZnRUcmlnZ2VyKSkgKiBVOF9NQVgpCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgoTWF0aC5tYXgoMC4wLCBNYXRoLm1pbigxLjAsIHN0YXRlLnJpZ2h0VHJpZ2dlcikpICogVThfTUFYKQogICAgICAgIHRoaXMuYnVmZmVyLnB1dEkxNihNYXRoLm1heCgtMS4wLCBNYXRoLm1pbigxLjAsIHN0YXRlLmxlZnRTdGlja1gpKSAqIEkxNl9NQVgpCiAgICAgICAgdGhpcy5idWZmZXIucHV0STE2KE1hdGgubWF4KC0xLjAsIE1hdGgubWluKDEuMCwgLXN0YXRlLmxlZnRTdGlja1kpKSAqIEkxNl9NQVgpCiAgICAgICAgdGhpcy5idWZmZXIucHV0STE2KE1hdGgubWF4KC0xLjAsIE1hdGgubWluKDEuMCwgc3RhdGUucmlnaHRTdGlja1gpKSAqIEkxNl9NQVgpCiAgICAgICAgdGhpcy5idWZmZXIucHV0STE2KE1hdGgubWF4KC0xLjAsIE1hdGgubWluKDEuMCwgLXN0YXRlLnJpZ2h0U3RpY2tZKSkgKiBJMTZfTUFYKQoKICAgICAgICB0cnlTZW5kQ2hhbm5lbCh0aGlzLmNvbnRyb2xsZXJJbnB1dHNbaWRdLCB0aGlzLmJ1ZmZlcikKICAgIH0KCn0K"},{"path":"web/stream/keyboard.ts","sha256":"e0fbb6b4146572b398f992e2d6380a286eb3adba2ba5b2adaa42449a29f23a16","contentBase64":"aW1wb3J0IHsgU3RyZWFtS2V5TW9kaWZpZXJzLCBTdHJlYW1LZXlzIH0gZnJvbSAiLi4vYXBpX2JpbmRpbmdzLmpzIgoKZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRUb01vZGlmaWVycyhldmVudDogS2V5Ym9hcmRFdmVudCk6IG51bWJlciB7CiAgICBsZXQgbW9kaWZpZXJzID0gMDsKCiAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHsKICAgICAgICBtb2RpZmllcnMgfD0gU3RyZWFtS2V5TW9kaWZpZXJzLk1BU0tfU0hJRlQ7CiAgICB9CiAgICBpZiAoZXZlbnQuY3RybEtleSkgewogICAgICAgIG1vZGlmaWVycyB8PSBTdHJlYW1LZXlNb2RpZmllcnMuTUFTS19DVFJMOwogICAgfQogICAgaWYgKGV2ZW50LmFsdEtleSkgewogICAgICAgIG1vZGlmaWVycyB8PSBTdHJlYW1LZXlNb2RpZmllcnMuTUFTS19BTFQ7CiAgICB9CiAgICBpZiAoZXZlbnQubWV0YUtleSkgewogICAgICAgIG1vZGlmaWVycyB8PSBTdHJlYW1LZXlNb2RpZmllcnMuTUFTS19NRVRBOwogICAgfQoKICAgIHJldHVybiBtb2RpZmllcnMKfQoKLy8gV0hZOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvVUlfRXZlbnRzL0tleWJvYXJkX2V2ZW50X2NvZGVfdmFsdWVzCmNvbnN0IFZLX01BUFBJTkdTOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBudWxsPiA9IHsKICAgIC8qIFZhbHVlcyBvbiBXaW5kb3dzICovCiAgICBVbmlkZW50aWZpZWQ6IG51bGwsCiAgICBFc2NhcGU6IFN0cmVhbUtleXMuVktfRVNDQVBFLAogICAgRGlnaXQxOiBTdHJlYW1LZXlzLlZLX0tFWV8xLAogICAgRGlnaXQyOiBTdHJlYW1LZXlzLlZLX0tFWV8yLAogICAgRGlnaXQzOiBTdHJlYW1LZXlzLlZLX0tFWV8zLAogICAgRGlnaXQ0OiBTdHJlYW1LZXlzLlZLX0tFWV80LAogICAgRGlnaXQ1OiBTdHJlYW1LZXlzLlZLX0tFWV81LAogICAgRGlnaXQ2OiBTdHJlYW1LZXlzLlZLX0tFWV82LAogICAgRGlnaXQ3OiBTdHJlYW1LZXlzLlZLX0tFWV83LAogICAgRGlnaXQ4OiBTdHJlYW1LZXlzLlZLX0tFWV84LAogICAgRGlnaXQ5OiBTdHJlYW1LZXlzLlZLX0tFWV85LAogICAgRGlnaXQwOiBTdHJlYW1LZXlzLlZLX0tFWV8wLAogICAgTWludXM6IFN0cmVhbUtleXMuVktfT0VNX01JTlVTLAogICAgRXF1YWw6IFN0cmVhbUtleXMuVktfT0VNX1BMVVMsCiAgICBCYWNrc3BhY2U6IFN0cmVhbUtleXMuVktfQkFDSywKICAgIFRhYjogU3RyZWFtS2V5cy5WS19UQUIsCiAgICBLZXlROiBTdHJlYW1LZXlzLlZLX0tFWV9RLAogICAgS2V5VzogU3RyZWFtS2V5cy5WS19LRVlfVywKICAgIEtleUU6IFN0cmVhbUtleXMuVktfS0VZX0UsCiAgICBLZXlSOiBTdHJlYW1LZXlzLlZLX0tFWV9SLAogICAgS2V5VDogU3RyZWFtS2V5cy5WS19LRVlfVCwKICAgIEtleVk6IFN0cmVhbUtleXMuVktfS0VZX1ksCiAgICBLZXlVOiBTdHJlYW1LZXlzLlZLX0tFWV9VLAogICAgS2V5STogU3RyZWFtS2V5cy5WS19LRVlfSSwKICAgIEtleU86IFN0cmVhbUtleXMuVktfS0VZX08sCiAgICBLZXlQOiBTdHJlYW1LZXlzLlZLX0tFWV9QLAogICAgQnJhY2tldExlZnQ6IFN0cmVhbUtleXMuVktfT0VNXzQsCiAgICBCcmFja2V0UmlnaHQ6IFN0cmVhbUtleXMuVktfT0VNXzYsCiAgICBFbnRlcjogU3RyZWFtS2V5cy5WS19SRVRVUk4sCiAgICBDb250cm9sTGVmdDogU3RyZWFtS2V5cy5WS19MQ09OVFJPTCwKICAgIEtleUE6IFN0cmVhbUtleXMuVktfS0VZX0EsCiAgICBLZXlTOiBTdHJlYW1LZXlzLlZLX0tFWV9TLAogICAgS2V5RDogU3RyZWFtS2V5cy5WS19LRVlfRCwKICAgIEtleUY6IFN0cmVhbUtleXMuVktfS0VZX0YsCiAgICBLZXlHOiBTdHJlYW1LZXlzLlZLX0tFWV9HLAogICAgS2V5SDogU3RyZWFtS2V5cy5WS19LRVlfSCwKICAgIEtleUo6IFN0cmVhbUtleXMuVktfS0VZX0osCiAgICBLZXlLOiBTdHJlYW1LZXlzLlZLX0tFWV9LLAogICAgS2V5TDogU3RyZWFtS2V5cy5WS19LRVlfTCwKICAgIFNlbWljb2xvbjogU3RyZWFtS2V5cy5WS19PRU1fMSwKICAgIFF1b3RlOiBTdHJlYW1LZXlzLlZLX09FTV83LAogICAgQmFja3F1b3RlOiBTdHJlYW1LZXlzLlZLX09FTV8zLAogICAgU2hpZnRMZWZ0OiBTdHJlYW1LZXlzLlZLX0xTSElGVCwKICAgIEJhY2tzbGFzaDogU3RyZWFtS2V5cy5WS19PRU1fNSwKICAgIEtleVo6IFN0cmVhbUtleXMuVktfS0VZX1osCiAgICBLZXlYOiBTdHJlYW1LZXlzLlZLX0tFWV9YLAogICAgS2V5QzogU3RyZWFtS2V5cy5WS19LRVlfQywKICAgIEtleVY6IFN0cmVhbUtleXMuVktfS0VZX1YsCiAgICBLZXlCOiBTdHJlYW1LZXlzLlZLX0tFWV9CLAogICAgS2V5TjogU3RyZWFtS2V5cy5WS19LRVlfTiwKICAgIEtleU06IFN0cmVhbUtleXMuVktfS0VZX00sCiAgICBDb21tYTogU3RyZWFtS2V5cy5WS19PRU1fQ09NTUEsCiAgICBQZXJpb2Q6IFN0cmVhbUtleXMuVktfT0VNX1BFUklPRCwKICAgIFNsYXNoOiBTdHJlYW1LZXlzLlZLX09FTV8yLAogICAgU2hpZnRSaWdodDogU3RyZWFtS2V5cy5WS19SU0hJRlQsCiAgICBOdW1wYWRNdWx0aXBseTogU3RyZWFtS2V5cy5WS19NVUxUSVBMWSwKICAgIEFsdExlZnQ6IFN0cmVhbUtleXMuVktfTE1FTlUsCiAgICBTcGFjZTogU3RyZWFtS2V5cy5WS19TUEFDRSwKICAgIENhcHNMb2NrOiBTdHJlYW1LZXlzLlZLX0NBUElUQUwsCiAgICBGMTogU3RyZWFtS2V5cy5WS19GMSwKICAgIEYyOiBTdHJlYW1LZXlzLlZLX0YyLAogICAgRjM6IFN0cmVhbUtleXMuVktfRjMsCiAgICBGNDogU3RyZWFtS2V5cy5WS19GNCwKICAgIEY1OiBTdHJlYW1LZXlzLlZLX0Y1LAogICAgRjY6IFN0cmVhbUtleXMuVktfRjYsCiAgICBGNzogU3RyZWFtS2V5cy5WS19GNywKICAgIEY4OiBTdHJlYW1LZXlzLlZLX0Y4LAogICAgRjk6IFN0cmVhbUtleXMuVktfRjksCiAgICBGMTA6IFN0cmVhbUtleXMuVktfRjEwLAogICAgUGF1c2U6IFN0cmVhbUtleXMuVktfUEFVU0UsCiAgICBTY3JvbGxMb2NrOiBTdHJlYW1LZXlzLlZLX1NDUk9MTCwKICAgIE51bXBhZDc6IFN0cmVhbUtleXMuVktfTlVNUEFENywKICAgIE51bXBhZDg6IFN0cmVhbUtleXMuVktfTlVNUEFEOCwKICAgIE51bXBhZDk6IFN0cmVhbUtleXMuVktfTlVNUEFEOSwKICAgIE51bXBhZFN1YnRyYWN0OiBTdHJlYW1LZXlzLlZLX1NVQlRSQUNULAogICAgTnVtcGFkNDogU3RyZWFtS2V5cy5WS19OVU1QQUQ0LAogICAgTnVtcGFkNTogU3RyZWFtS2V5cy5WS19OVU1QQUQ1LAogICAgTnVtcGFkNjogU3RyZWFtS2V5cy5WS19OVU1QQUQ2LAogICAgTnVtcGFkQWRkOiBTdHJlYW1LZXlzLlZLX0FERCwKICAgIE51bXBhZDE6IFN0cmVhbUtleXMuVktfTlVNUEFEMSwKICAgIE51bXBhZDI6IFN0cmVhbUtleXMuVktfTlVNUEFEMiwKICAgIE51bXBhZDM6IFN0cmVhbUtleXMuVktfTlVNUEFEMywKICAgIE51bXBhZDA6IFN0cmVhbUtleXMuVktfTlVNUEFEMCwKICAgIE51bXBhZERlY2ltYWw6IFN0cmVhbUtleXMuVktfREVDSU1BTCwKICAgIFByaW50U2NyZWVuOiBTdHJlYW1LZXlzLlZLX1NOQVBTSE9ULAogICAgSW50bEJhY2tzbGFzaDogU3RyZWFtS2V5cy5WS19PRU1fMTAyLAogICAgRjExOiBTdHJlYW1LZXlzLlZLX0YxMSwKICAgIEYxMjogU3RyZWFtS2V5cy5WS19GMTIsCiAgICBOdW1wYWRFcXVhbDogbnVsbCwKICAgIC8vIFNoaWZ0UmlnaHQ6IFN0cmVhbUtleXMuVktfUlNISUZULAogICAgQ29udHJvbFJpZ2h0OiBTdHJlYW1LZXlzLlZLX1JDT05UUk9MLAogICAgQWx0UmlnaHQ6IFN0cmVhbUtleXMuVktfUk1FTlUsCiAgICBNZXRhTGVmdDogU3RyZWFtS2V5cy5WS19MV0lOLAogICAgTWV0YVJpZ2h0OiBTdHJlYW1LZXlzLlZLX1JXSU4sCiAgICBDb250ZXh0TWVudTogU3RyZWFtS2V5cy5WS19BUFBTLAogICAgTnVtTG9jazogU3RyZWFtS2V5cy5WS19OVU1MT0NLLAogICAgTnVtcGFkRW50ZXI6IFN0cmVhbUtleXMuVktfUkVUVVJOLAogICAgQXVkaW9Wb2x1bWVNdXRlOiBTdHJlYW1LZXlzLlZLX1ZPTFVNRV9NVVRFLAogICAgQXVkaW9Wb2x1bWVEb3duOiBTdHJlYW1LZXlzLlZLX1ZPTFVNRV9ET1dOLAogICAgQXVkaW9Wb2x1bWVVcDogU3RyZWFtS2V5cy5WS19WT0xVTUVfVVAsCiAgICBNZWRpYVRyYWNrUHJldmlvdXM6IFN0cmVhbUtleXMuVktfTUVESUFfUFJFVl9UUkFDSywKICAgIE1lZGlhVHJhY2tOZXh0OiBTdHJlYW1LZXlzLlZLX01FRElBX05FWFRfVFJBQ0ssCiAgICBNZWRpYVBsYXlQYXVzZTogU3RyZWFtS2V5cy5WS19NRURJQV9QTEFZX1BBVVNFLAogICAgTWVkaWFTdG9wOiBTdHJlYW1LZXlzLlZLX01FRElBX1NUT1AsCiAgICBCcm93c2VySG9tZTogU3RyZWFtS2V5cy5WS19CUk9XU0VSX0hPTUUsCiAgICBCcm93c2VyU2VhcmNoOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfU0VBUkNILAogICAgQnJvd3NlckZhdm9yaXRlczogU3RyZWFtS2V5cy5WS19CUk9XU0VSX0ZBVk9SSVRFUywKICAgIEJyb3dzZXJSZWZyZXNoOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfUkVGUkVTSCwKICAgIEJyb3dzZXJTdG9wOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfU1RPUCwKICAgIEJyb3dzZXJGb3J3YXJkOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfRk9SV0FSRCwKICAgIEJyb3dzZXJCYWNrOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfQkFDSywKICAgIExhdW5jaEFwcDE6IFN0cmVhbUtleXMuVktfTEFVTkNIX0FQUDEsCiAgICBMYXVuY2hBcHAyOiBTdHJlYW1LZXlzLlZLX0xBVU5DSF9BUFAyLAogICAgTGF1bmNoTWFpbDogU3RyZWFtS2V5cy5WS19MQVVOQ0hfTUFJTCwKICAgIE1lZGlhU2VsZWN0OiBTdHJlYW1LZXlzLlZLX01FRElBX1NFTEVDVCwKICAgIENvbnZlcnQ6IFN0cmVhbUtleXMuVktfQ09OVkVSVCwKICAgIE5vbkNvbnZlcnQ6IFN0cmVhbUtleXMuVktfTk9OQ09OVkVSVCwKICAgIEthbmFNb2RlOiBTdHJlYW1LZXlzLlZLX0tBTkEsCiAgICBMYW5nMTogU3RyZWFtS2V5cy5WS19IQU5HVUwsCiAgICBMYW5nMjogU3RyZWFtS2V5cy5WS19KVU5KQSwKICAgIEludGxSbzogU3RyZWFtS2V5cy5WS19PRU1fMTAyLAogICAgSW50bFllbjogbnVsbCwKICAgIE51bXBhZENvbW1hOiBudWxsLAogICAgUG93ZXI6IG51bGwsCiAgICBTbGVlcDogU3RyZWFtS2V5cy5WS19TTEVFUCwKICAgIFdha2VVcDogbnVsbCwKICAgIFVuZG86IG51bGwsCiAgICBQYXN0ZTogbnVsbCwKICAgIEN1dDogbnVsbCwKICAgIENvcHk6IG51bGwsCiAgICBFamVjdDogbnVsbCwKICAgIC8vIC0tIE1hYwogICAgLy8gS2V5QTogU3RyZWFtS2V5cy5WS19LRVlfQSwKICAgIC8vIEtleVM6IFN0cmVhbUtleXMuVktfS0VZX1MsCiAgICAvLyBLZXlEOiBTdHJlYW1LZXlzLlZLX0tFWV9ELAogICAgLy8gS2V5RjogU3RyZWFtS2V5cy5WS19LRVlfRiwKICAgIC8vIEtleUg6IFN0cmVhbUtleXMuVktfS0VZX0gsCiAgICAvLyBLZXlHOiBTdHJlYW1LZXlzLlZLX0tFWV9HLAogICAgLy8gS2V5WjogU3RyZWFtS2V5cy5WS19LRVlfWiwKICAgIC8vIEtleVg6IFN0cmVhbUtleXMuVktfS0VZX1gsCiAgICAvLyBLZXlDOiBTdHJlYW1LZXlzLlZLX0tFWV9DLAogICAgLy8gS2V5VjogU3RyZWFtS2V5cy5WS19LRVlfViwKICAgIC8vIEludGxCYWNrc2xhc2g6IFN0cmVhbUtleXMuVktfT0VNXzEwMiwKICAgIC8vIEtleUI6IFN0cmVhbUtleXMuVktfS0VZX0IsCiAgICAvLyBLZXlROiBTdHJlYW1LZXlzLlZLX0tFWV9RLAogICAgLy8gS2V5VzogU3RyZWFtS2V5cy5WS19LRVlfVywKICAgIC8vIEtleUU6IFN0cmVhbUtleXMuVktfS0VZX0UsCiAgICAvLyBLZXlSOiBTdHJlYW1LZXlzLlZLX0tFWV9SLAogICAgLy8gS2V5WTogU3RyZWFtS2V5cy5WS19LRVlfWSwKICAgIC8vIEtleVQ6IFN0cmVhbUtleXMuVktfS0VZX1QsCiAgICAvLyBEaWdpdDE6IFN0cmVhbUtleXMuVktfS0VZXzEsCiAgICAvLyBEaWdpdDI6IFN0cmVhbUtleXMuVktfS0VZXzIsCiAgICAvLyBEaWdpdDM6IFN0cmVhbUtleXMuVktfS0VZXzMsCiAgICAvLyBEaWdpdDQ6IFN0cmVhbUtleXMuVktfS0VZXzQsCiAgICAvLyBEaWdpdDY6IFN0cmVhbUtleXMuVktfS0VZXzYsCiAgICAvLyBEaWdpdDU6IFN0cmVhbUtleXMuVktfS0VZXzUsCiAgICAvLyBFcXVhbDogU3RyZWFtS2V5cy5WS19PRU1fUExVUywKICAgIC8vIERpZ2l0OTogU3RyZWFtS2V5cy5WS19LRVlfOSwKICAgIC8vIERpZ2l0NzogU3RyZWFtS2V5cy5WS19LRVlfNywKICAgIC8vIE1pbnVzOiBTdHJlYW1LZXlzLlZLX09FTV9NSU5VUywKICAgIC8vIERpZ2l0ODogU3RyZWFtS2V5cy5WS19LRVlfOCwKICAgIC8vIERpZ2l0MDogU3RyZWFtS2V5cy5WS19LRVlfMCwKICAgIC8vIEJyYWNrZXRSaWdodDogU3RyZWFtS2V5cy5WS19PRU1fNiwKICAgIC8vIEtleU86IFN0cmVhbUtleXMuVktfS0VZX08sCiAgICAvLyBLZXlVOiBTdHJlYW1LZXlzLlZLX0tFWV9VLAogICAgLy8gQnJhY2tldExlZnQ6IFN0cmVhbUtleXMuVktfT0VNXzQsCiAgICAvLyBLZXlJOiBTdHJlYW1LZXlzLlZLX0tFWV9JLAogICAgLy8gS2V5UDogU3RyZWFtS2V5cy5WS19LRVlfUCwKICAgIC8vIEVudGVyOiBTdHJlYW1LZXlzLlZLX1JFVFVSTiwKICAgIC8vIEtleUw6IFN0cmVhbUtleXMuVktfS0VZX0wsCiAgICAvLyBLZXlKOiBTdHJlYW1LZXlzLlZLX0tFWV9KLAogICAgLy8gUXVvdGU6IFN0cmVhbUtleXMuVktfT0VNXzcsCiAgICAvLyBLZXlLOiBTdHJlYW1LZXlzLlZLX0tFWV9LLAogICAgLy8gU2VtaWNvbG9uOiBTdHJlYW1LZXlzLlZLX09FTV8xLAogICAgLy8gQmFja3NsYXNoOiBTdHJlYW1LZXlzLlZLX09FTV81LAogICAgLy8gQ29tbWE6IFN0cmVhbUtleXMuVktfT0VNX0NPTU1BLAogICAgLy8gU2xhc2g6IFN0cmVhbUtleXMuVktfT0VNXzIsCiAgICAvLyBLZXlOOiBTdHJlYW1LZXlzLlZLX0tFWV9OLAogICAgLy8gS2V5TTogU3RyZWFtS2V5cy5WS19LRVlfTSwKICAgIC8vIFBlcmlvZDogU3RyZWFtS2V5cy5WS19PRU1fUEVSSU9ELAogICAgLy8gVGFiOiBTdHJlYW1LZXlzLlZLX1RBQiwKICAgIC8vIFNwYWNlOiBTdHJlYW1LZXlzLlZLX1NQQUNFLAogICAgLy8gQmFja3F1b3RlOiBTdHJlYW1LZXlzLlZLX09FTV8zLAogICAgLy8gQmFja3NwYWNlOiBTdHJlYW1LZXlzLlZLX0JBQ0ssCiAgICAvLyBFc2NhcGU6IFN0cmVhbUtleXMuVktfRVNDQVBFLAogICAgLy8gTWV0YVJpZ2h0OiBTdHJlYW1LZXlzLlZLX1JXSU4sCiAgICAvLyBNZXRhTGVmdDogU3RyZWFtS2V5cy5WS19MV0lOLAogICAgLy8gU2hpZnRMZWZ0OiBTdHJlYW1LZXlzLlZLX0xTSElGVCwKICAgIC8vIENhcHNMb2NrOiBTdHJlYW1LZXlzLlZLX0NBUElUQUwsCiAgICAvLyBBbHRMZWZ0OiBTdHJlYW1LZXlzLlZLX0xNRU5VLAogICAgLy8gQ29udHJvbExlZnQ6IFN0cmVhbUtleXMuVktfTENPTlRST0wsCiAgICAvLyBTaGlmdFJpZ2h0OiBTdHJlYW1LZXlzLlZLX1JTSElGVCwKICAgIC8vIEFsdFJpZ2h0OiBTdHJlYW1LZXlzLlZLX1JNRU5VLAogICAgLy8gQ29udHJvbFJpZ2h0OiBTdHJlYW1LZXlzLlZLX1JDT05UUk9MLAogICAgRm46IG51bGwsCiAgICAvLyBGMTc6IFN0cmVhbUtleXMuVktfRjE3LAogICAgLy8gTnVtcGFkRGVjaW1hbDogU3RyZWFtS2V5cy5WS19ERUNJTUFMLAogICAgLy8gTnVtcGFkTXVsdGlwbHk6IFN0cmVhbUtleXMuVktfTVVMVElQTFksCiAgICAvLyBOdW1wYWRBZGQ6IFN0cmVhbUtleXMuVktfQURELAogICAgLy8gTnVtTG9jazogU3RyZWFtS2V5cy5WS19OVU1MT0NLLAogICAgLy8gQXVkaW9Wb2x1bWVVcDogU3RyZWFtS2V5cy5WS19WT0xVTUVfVVAsCiAgICAvLyBBdWRpb1ZvbHVtZURvd246IFN0cmVhbUtleXMuVktfVk9MVU1FX0RPV04sCiAgICAvLyBBdWRpb1ZvbHVtZU11dGU6IFN0cmVhbUtleXMuVktfVk9MVU1FX01VVEUsCiAgICBOdW1wYWREaXZpZGU6IFN0cmVhbUtleXMuVktfRElWSURFLAogICAgLy8gTnVtcGFkRW50ZXI6IFN0cmVhbUtleXMuVktfUkVUVVJOLAogICAgLy8gTnVtcGFkU3VidHJhY3Q6IFN0cmVhbUtleXMuVktfU1VCVFJBQ1QsCiAgICAvLyBGMTg6IFN0cmVhbUtleXMuVktfRjE4LAogICAgLy8gRjE5OiBTdHJlYW1LZXlzLlZLX0YxOSwKICAgIC8vIE51bXBhZEVxdWFsOiBudWxsLAogICAgLy8gTnVtcGFkMDogU3RyZWFtS2V5cy5WS19OVU1QQUQwLAogICAgLy8gTnVtcGFkMTogU3RyZWFtS2V5cy5WS19OVU1QQUQxLAogICAgLy8gTnVtcGFkMjogU3RyZWFtS2V5cy5WS19OVU1QQUQyLAogICAgLy8gTnVtcGFkMzogU3RyZWFtS2V5cy5WS19OVU1QQUQzLAogICAgLy8gTnVtcGFkNDogU3RyZWFtS2V5cy5WS19OVU1QQUQ0LAogICAgLy8gTnVtcGFkNTogU3RyZWFtS2V5cy5WS19OVU1QQUQ1LAogICAgLy8gTnVtcGFkNjogU3RyZWFtS2V5cy5WS19OVU1QQUQ2LAogICAgLy8gTnVtcGFkNzogU3RyZWFtS2V5cy5WS19OVU1QQUQ3LAogICAgLy8gRjIwOiBTdHJlYW1LZXlzLlZLX0YyMCwKICAgIC8vIE51bXBhZDg6IFN0cmVhbUtleXMuVktfTlVNUEFEOCwKICAgIC8vIE51bXBhZDk6IFN0cmVhbUtleXMuVktfTlVNUEFEOSwKICAgIC8vIEludGxZZW46IG51bGwsCiAgICAvLyBJbnRsUm86IG51bGwsCiAgICAvLyBOdW1wYWRDb21tYTogbnVsbCwKICAgIC8vIEY1OiBTdHJlYW1LZXlzLlZLX0Y1LAogICAgLy8gRjY6IFN0cmVhbUtleXMuVktfRjYsCiAgICAvLyBGNzogU3RyZWFtS2V5cy5WS19GNywKICAgIC8vIEYzOiBTdHJlYW1LZXlzLlZLX0YzLAogICAgLy8gRjg6IFN0cmVhbUtleXMuVktfRjgsCiAgICAvLyBGOTogU3RyZWFtS2V5cy5WS19GOSwKICAgIC8vIExhbmcyOiBudWxsLAogICAgLy8gRjExOiBTdHJlYW1LZXlzLlZLX0YxMSwKICAgIC8vIExhbmcxOiBudWxsLAogICAgLy8gRjEzOiBTdHJlYW1LZXlzLlZLX0YxMywKICAgIC8vIEYxNjogU3RyZWFtS2V5cy5WS19GMTYsCiAgICAvLyBGMTQ6IFN0cmVhbUtleXMuVktfRjE0LAogICAgLy8gRjEwOiBTdHJlYW1LZXlzLlZLX0YxMCwKICAgIC8vIENvbnRleHRNZW51OiBTdHJlYW1LZXlzLlZLX0FQUFMsCiAgICAvLyBGMTI6IFN0cmVhbUtleXMuVktfRjEyLAogICAgLy8gRjE1OiBTdHJlYW1LZXlzLlZLX0YxNSwKICAgIC8vIEhlbHA6IFN0cmVhbUtleXMuVktfSEVMUCwKICAgIC8vIEhvbWU6IFN0cmVhbUtleXMuVktfSE9NRSwKICAgIFBhZ2VVcDogU3RyZWFtS2V5cy5WS19QUklPUiwKICAgIERlbGV0ZTogU3RyZWFtS2V5cy5WS19ERUxFVEUsCiAgICAvLyBGNDogU3RyZWFtS2V5cy5WS19GNCwKICAgIEVuZDogU3RyZWFtS2V5cy5WS19FTkQsCiAgICAvLyBGMjogU3RyZWFtS2V5cy5WS19GMiwKICAgIC8vIFBhZ2VEb3duOiBTdHJlYW1LZXlzLlZLX05FWFQsCiAgICAvLyBGMTogU3RyZWFtS2V5cy5WS19GMSwKICAgIEFycm93TGVmdDogU3RyZWFtS2V5cy5WS19MRUZULAogICAgQXJyb3dSaWdodDogU3RyZWFtS2V5cy5WS19SSUdIVCwKICAgIEFycm93RG93bjogU3RyZWFtS2V5cy5WS19ET1dOLAogICAgQXJyb3dVcDogU3RyZWFtS2V5cy5WS19VUCwKICAgIC8vIC0tIExpbnV4CiAgICAvLyBFc2NhcGU6IFN0cmVhbUtleXMuVktfRVNDQVBFLAogICAgLy8gRGlnaXQxOiBTdHJlYW1LZXlzLlZLX0tFWV8xLAogICAgLy8gRGlnaXQyOiBTdHJlYW1LZXlzLlZLX0tFWV8yLAogICAgLy8gRGlnaXQzOiBTdHJlYW1LZXlzLlZLX0tFWV8zLAogICAgLy8gRGlnaXQ0OiBTdHJlYW1LZXlzLlZLX0tFWV80LAogICAgLy8gRGlnaXQ1OiBTdHJlYW1LZXlzLlZLX0tFWV81LAogICAgLy8gRGlnaXQ2OiBTdHJlYW1LZXlzLlZLX0tFWV82LAogICAgLy8gRGlnaXQ3OiBTdHJlYW1LZXlzLlZLX0tFWV83LAogICAgLy8gRGlnaXQ4OiBTdHJlYW1LZXlzLlZLX0tFWV84LAogICAgLy8gRGlnaXQ5OiBTdHJlYW1LZXlzLlZLX0tFWV85LAogICAgLy8gRGlnaXQwOiBTdHJlYW1LZXlzLlZLX0tFWV8wLAogICAgLy8gTWludXM6IFN0cmVhbUtleXMuVktfT0VNX01JTlVTLAogICAgLy8gRXF1YWw6IFN0cmVhbUtleXMuVktfT0VNX1BMVVMsCiAgICAvLyBCYWNrc3BhY2U6IFN0cmVhbUtleXMuVktfQkFDSywKICAgIC8vIFRhYjogU3RyZWFtS2V5cy5WS19UQUIsCiAgICAvLyBLZXlROiBTdHJlYW1LZXlzLlZLX0tFWV9RLAogICAgLy8gS2V5VzogU3RyZWFtS2V5cy5WS19LRVlfVywKICAgIC8vIEtleUU6IFN0cmVhbUtleXMuVktfS0VZX0UsCiAgICAvLyBLZXlSOiBTdHJlYW1LZXlzLlZLX0tFWV9SLAogICAgLy8gS2V5VDogU3RyZWFtS2V5cy5WS19LRVlfVCwKICAgIC8vIEtleVk6IFN0cmVhbUtleXMuVktfS0VZX1ksCiAgICAvLyBLZXlVOiBTdHJlYW1LZXlzLlZLX0tFWV9VLAogICAgLy8gS2V5STogU3RyZWFtS2V5cy5WS19LRVlfSSwKICAgIC8vIEtleU86IFN0cmVhbUtleXMuVktfS0VZX08sCiAgICAvLyBLZXlQOiBTdHJlYW1LZXlzLlZLX0tFWV9QLAogICAgLy8gQnJhY2tldExlZnQ6IFN0cmVhbUtleXMuVktfT0VNXzQsCiAgICAvLyBCcmFja2V0UmlnaHQ6IFN0cmVhbUtleXMuVktfT0VNXzYsCiAgICAvLyBFbnRlcjogU3RyZWFtS2V5cy5WS19SRVRVUk4sCiAgICAvLyBDb250cm9sTGVmdDogU3RyZWFtS2V5cy5WS19MQ09OVFJPTCwKICAgIC8vIEtleUE6IFN0cmVhbUtleXMuVktfS0VZX0EsCiAgICAvLyBLZXlTOiBTdHJlYW1LZXlzLlZLX0tFWV9TLAogICAgLy8gS2V5RDogU3RyZWFtS2V5cy5WS19LRVlfRCwKICAgIC8vIEtleUY6IFN0cmVhbUtleXMuVktfS0VZX0YsCiAgICAvLyBLZXlHOiBTdHJlYW1LZXlzLlZLX0tFWV9HLAogICAgLy8gS2V5SDogU3RyZWFtS2V5cy5WS19LRVlfSCwKICAgIC8vIEtleUo6IFN0cmVhbUtleXMuVktfS0VZX0osCiAgICAvLyBLZXlLOiBTdHJlYW1LZXlzLlZLX0tFWV9LLAogICAgLy8gS2V5TDogU3RyZWFtS2V5cy5WS19LRVlfTCwKICAgIC8vIFNlbWljb2xvbjogU3RyZWFtS2V5cy5WS19PRU1fMSwKICAgIC8vIFF1b3RlOiBTdHJlYW1LZXlzLlZLX09FTV83LAogICAgLy8gQmFja3F1b3RlOiBTdHJlYW1LZXlzLlZLX09FTV8zLAogICAgLy8gU2hpZnRMZWZ0OiBTdHJlYW1LZXlzLlZLX0xTSElGVCwKICAgIC8vIEJhY2tzbGFzaDogU3RyZWFtS2V5cy5WS19PRU1fNSwKICAgIC8vIEtleVo6IFN0cmVhbUtleXMuVktfS0VZX1osCiAgICAvLyBLZXlYOiBTdHJlYW1LZXlzLlZLX0tFWV9YLAogICAgLy8gS2V5QzogU3RyZWFtS2V5cy5WS19LRVlfQywKICAgIC8vIEtleVY6IFN0cmVhbUtleXMuVktfS0VZX1YsCiAgICAvLyBLZXlCOiBTdHJlYW1LZXlzLlZLX0tFWV9CLAogICAgLy8gS2V5TjogU3RyZWFtS2V5cy5WS19LRVlfTiwKICAgIC8vIEtleU06IFN0cmVhbUtleXMuVktfS0VZX00sCiAgICAvLyBDb21tYTogU3RyZWFtS2V5cy5WS19PRU1fQ09NTUEsCiAgICAvLyBQZXJpb2Q6IFN0cmVhbUtleXMuVktfT0VNX1BFUklPRCwKICAgIC8vIFNsYXNoOiBTdHJlYW1LZXlzLlZLX09FTV8yLAogICAgLy8gU2hpZnRSaWdodDogU3RyZWFtS2V5cy5WS19SU0hJRlQsCiAgICAvLyBOdW1wYWRNdWx0aXBseTogU3RyZWFtS2V5cy5WS19NVUxUSVBMWSwKICAgIC8vIEFsdExlZnQ6IFN0cmVhbUtleXMuVktfTE1FTlUsCiAgICAvLyBTcGFjZTogU3RyZWFtS2V5cy5WS19TUEFDRSwKICAgIC8vIENhcHNMb2NrOiBTdHJlYW1LZXlzLlZLX0NBUElUQUwsCiAgICAvLyBGMTogU3RyZWFtS2V5cy5WS19GMSwKICAgIC8vIEYyOiBTdHJlYW1LZXlzLlZLX0YyLAogICAgLy8gRjM6IFN0cmVhbUtleXMuVktfRjMsCiAgICAvLyBGNDogU3RyZWFtS2V5cy5WS19GNCwKICAgIC8vIEY1OiBTdHJlYW1LZXlzLlZLX0Y1LAogICAgLy8gRjY6IFN0cmVhbUtleXMuVktfRjYsCiAgICAvLyBGNzogU3RyZWFtS2V5cy5WS19GNywKICAgIC8vIEY4OiBTdHJlYW1LZXlzLlZLX0Y4LAogICAgLy8gRjk6IFN0cmVhbUtleXMuVktfRjksCiAgICAvLyBGMTA6IFN0cmVhbUtleXMuVktfRjEwLAogICAgLy8gTnVtTG9jazogU3RyZWFtS2V5cy5WS19OVU1MT0NLLAogICAgLy8gU2Nyb2xsTG9jazogU3RyZWFtS2V5cy5WS19TQ1JPTEwsCiAgICAvLyBOdW1wYWQ3OiBTdHJlYW1LZXlzLlZLX05VTVBBRDcsCiAgICAvLyBOdW1wYWQ4OiBTdHJlYW1LZXlzLlZLX05VTVBBRDgsCiAgICAvLyBOdW1wYWQ5OiBTdHJlYW1LZXlzLlZLX05VTVBBRDksCiAgICAvLyBOdW1wYWRTdWJ0cmFjdDogU3RyZWFtS2V5cy5WS19TVUJUUkFDVCwKICAgIC8vIE51bXBhZDQ6IFN0cmVhbUtleXMuVktfTlVNUEFENCwKICAgIC8vIE51bXBhZDU6IFN0cmVhbUtleXMuVktfTlVNUEFENSwKICAgIC8vIE51bXBhZDY6IFN0cmVhbUtleXMuVktfTlVNUEFENiwKICAgIC8vIE51bXBhZEFkZDogU3RyZWFtS2V5cy5WS19BREQsCiAgICAvLyBOdW1wYWQxOiBTdHJlYW1LZXlzLlZLX05VTVBBRDEsCiAgICAvLyBOdW1wYWQyOiBTdHJlYW1LZXlzLlZLX05VTVBBRDIsCiAgICAvLyBOdW1wYWQzOiBTdHJlYW1LZXlzLlZLX05VTVBBRDMsCiAgICAvLyBOdW1wYWQwOiBTdHJlYW1LZXlzLlZLX05VTVBBRDAsCiAgICAvLyBOdW1wYWREZWNpbWFsOiBTdHJlYW1LZXlzLlZLX0RFQ0lNQUwsCiAgICAvLyBVbmlkZW50aWZpZWQ6IG51bGwsCiAgICAvLyBJbnRsQmFja3NsYXNoOiBTdHJlYW1LZXlzLlZLX09FTV8xMDIsCiAgICAvLyBGMTE6IFN0cmVhbUtleXMuVktfRjExLAogICAgLy8gRjEyOiBTdHJlYW1LZXlzLlZLX0YxMiwKICAgIC8vIEludGxSbzogbnVsbCwKICAgIC8vIENvbnZlcnQ6IFN0cmVhbUtleXMuVktfQ09OVkVSVCwKICAgIC8vIEthbmFNb2RlOiBTdHJlYW1LZXlzLlZLX0tBTkpJLAogICAgLy8gTm9uQ29udmVydDogU3RyZWFtS2V5cy5WS19OT05DT05WRVJULAogICAgLy8gTnVtcGFkRW50ZXI6IFN0cmVhbUtleXMuVktfUkVUVVJOLAogICAgLy8gQ29udHJvbFJpZ2h0OiBTdHJlYW1LZXlzLlZLX1JDT05UUk9MLAogICAgLy8gTnVtcGFkRGl2aWRlOiBTdHJlYW1LZXlzLlZLX0RJVklERSwKICAgIC8vIFByaW50U2NyZWVuOiBTdHJlYW1LZXlzLlZLX1NOQVBTSE9ULAogICAgLy8gQWx0UmlnaHQ6IFN0cmVhbUtleXMuVktfUk1FTlUsCiAgICAvLyBIb21lOiBTdHJlYW1LZXlzLlZLX0hPTUUsCiAgICAvLyBBcnJvd1VwOiBTdHJlYW1LZXlzLlZLX1VQLAogICAgLy8gUGFnZVVwOiBTdHJlYW1LZXlzLlZLX1BSSU9SLAogICAgLy8gQXJyb3dMZWZ0OiBTdHJlYW1LZXlzLlZLX0xFRlQsCiAgICAvLyBBcnJvd1JpZ2h0OiBTdHJlYW1LZXlzLlZLX1JJR0hULAogICAgLy8gRW5kOiBTdHJlYW1LZXlzLlZLX0VORCwKICAgIC8vIEFycm93RG93bjogU3RyZWFtS2V5cy5WS19ET1dOLAogICAgUGFnZURvd246IFN0cmVhbUtleXMuVktfTkVYVCwKICAgIEluc2VydDogU3RyZWFtS2V5cy5WS19JTlNFUlQsCiAgICAvLyBEZWxldGU6IFN0cmVhbUtleXMuVktfREVMRVRFLAogICAgVm9sdW1lTXV0ZTogU3RyZWFtS2V5cy5WS19WT0xVTUVfTVVURSwKICAgIC8vIFZvbHVtZURvd246IFN0cmVhbUtleXMuVktfVk9MVU1FX0RPV04sCiAgICAvLyBWb2x1bWVVcDogU3RyZWFtS2V5cy5WS19WT0xVTUVfVVAsCiAgICAvLyBOdW1wYWRFcXVhbDogbnVsbCwKICAgIC8vIFBhdXNlOiBTdHJlYW1LZXlzLlZLX1BBVVNFLAogICAgLy8gTnVtcGFkQ29tbWE6IG51bGwsCiAgICAvLyBMYW5nMTogbnVsbCwKICAgIC8vIExhbmcyOiBudWxsLAogICAgLy8gSW50bFllbjogbnVsbCwKICAgIC8vIE1ldGFMZWZ0OiBTdHJlYW1LZXlzLlZLX0xXSU4sCiAgICAvLyBNZXRhUmlnaHQ6IFN0cmVhbUtleXMuVktfUldJTiwKICAgIC8vIENvbnRleHRNZW51OiBTdHJlYW1LZXlzLlZLX0FQUFMsCiAgICAvLyBCcm93c2VyU3RvcDogU3RyZWFtS2V5cy5WS19CUk9XU0VSX1NUT1AsCiAgICBBZ2FpbjogbnVsbCwKICAgIC8vIFVuZG86IG51bGwsCiAgICBTZWxlY3Q6IFN0cmVhbUtleXMuVktfU0VMRUNULAogICAgLy8gQ29weTogbnVsbCwKICAgIE9wZW46IG51bGwsCiAgICAvLyBQYXN0ZTogbnVsbCwKICAgIEZpbmQ6IG51bGwsCiAgICAvLyBDdXQ6IG51bGwsCiAgICAvLyBIZWxwOiBTdHJlYW1LZXlzLlZLX0hFTFAsCiAgICAvLyBMYXVuY2hBcHAyOiBTdHJlYW1LZXlzLlZLX0xBVU5DSF9BUFAyLAogICAgLy8gU2xlZXA6IFN0cmVhbUtleXMuVktfU0xFRVAsCiAgICAvLyBXYWtlVXA6IG51bGwsCiAgICAvLyBMYXVuY2hBcHAxOiBTdHJlYW1LZXlzLlZLX0xBVU5DSF9BUFAxLAogICAgLy8gTGF1bmNoTWFpbDogU3RyZWFtS2V5cy5WS19MQVVOQ0hfTUFJTCwKICAgIC8vIEJyb3dzZXJGYXZvcml0ZXM6IFN0cmVhbUtleXMuVktfQlJPV1NFUl9GQVZPUklURVMsCiAgICAvLyBCcm93c2VyQmFjazogU3RyZWFtS2V5cy5WS19CUk9XU0VSX0JBQ0ssCiAgICAvLyBCcm93c2VyRm9yd2FyZDogU3RyZWFtS2V5cy5WS19CUk9XU0VSX0ZPUldBUkQsCiAgICAvLyBFamVjdDogbnVsbCwKICAgIC8vIE1lZGlhVHJhY2tOZXh0OiBTdHJlYW1LZXlzLlZLX01FRElBX05FWFRfVFJBQ0ssCiAgICAvLyBNZWRpYVBsYXlQYXVzZTogU3RyZWFtS2V5cy5WS19NRURJQV9QTEFZX1BBVVNFLAogICAgLy8gTWVkaWFUcmFja1ByZXZpb3VzOiBTdHJlYW1LZXlzLlZLX01FRElBX1BSRVZfVFJBQ0ssCiAgICAvLyBNZWRpYVN0b3A6IFN0cmVhbUtleXMuVktfTUVESUFfU1RPUCwKICAgIC8vIE1lZGlhU2VsZWN0OiBTdHJlYW1LZXlzLlZLX01FRElBX1NFTEVDVCwKICAgIC8vIEJyb3dzZXJIb21lOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfSE9NRSwKICAgIC8vIEJyb3dzZXJSZWZyZXNoOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfUkVGUkVTSCwKICAgIC8vIEYxMzogU3RyZWFtS2V5cy5WS19GMTMsCiAgICAvLyBGMTQ6IFN0cmVhbUtleXMuVktfRjE0LAogICAgLy8gRjE1OiBTdHJlYW1LZXlzLlZLX0YxNSwKICAgIC8vIEYxNjogU3RyZWFtS2V5cy5WS19GMTYsCiAgICAvLyBGMTc6IFN0cmVhbUtleXMuVktfRjE3LAogICAgLy8gRjE4OiBTdHJlYW1LZXlzLlZLX0YxOCwKICAgIC8vIEYxOTogU3RyZWFtS2V5cy5WS19GMTksCiAgICAvLyBGMjA6IFN0cmVhbUtleXMuVktfRjIwLAogICAgLy8gRjIxOiBTdHJlYW1LZXlzLlZLX0YyMSwKICAgIC8vIEYyMjogU3RyZWFtS2V5cy5WS19GMjIsCiAgICAvLyBGMjM6IFN0cmVhbUtleXMuVktfRjIzLAogICAgLy8gRjI0OiBTdHJlYW1LZXlzLlZLX0YyNCwKICAgIC8vIEJyb3dzZXJTZWFyY2g6IFN0cmVhbUtleXMuVktfQlJPV1NFUl9TRUFSQ0gsCiAgICAvLyAtLSBBbmRyb2lkCiAgICAvLyBFc2NhcGU6IFN0cmVhbUtleXMuVktfRVNDQVBFLAogICAgLy8gRGlnaXQxOiBTdHJlYW1LZXlzLlZLX0tFWV8xLAogICAgLy8gRGlnaXQyOiBTdHJlYW1LZXlzLlZLX0tFWV8yLAogICAgLy8gRGlnaXQzOiBTdHJlYW1LZXlzLlZLX0tFWV8zLAogICAgLy8gRGlnaXQ0OiBTdHJlYW1LZXlzLlZLX0tFWV80LAogICAgLy8gRGlnaXQ1OiBTdHJlYW1LZXlzLlZLX0tFWV81LAogICAgLy8gRGlnaXQ2OiBTdHJlYW1LZXlzLlZLX0tFWV82LAogICAgLy8gRGlnaXQ3OiBTdHJlYW1LZXlzLlZLX0tFWV83LAogICAgLy8gRGlnaXQ4OiBTdHJlYW1LZXlzLlZLX0tFWV84LAogICAgLy8gRGlnaXQ5OiBTdHJlYW1LZXlzLlZLX0tFWV85LAogICAgLy8gRGlnaXQwOiBTdHJlYW1LZXlzLlZLX0tFWV8wLAogICAgLy8gTWludXM6IFN0cmVhbUtleXMuVktfT0VNX01JTlVTLAogICAgLy8gRXF1YWw6IFN0cmVhbUtleXMuVktfT0VNX1BMVVMsCiAgICAvLyBCYWNrc3BhY2U6IFN0cmVhbUtleXMuVktfQkFDSywKICAgIC8vIFRhYjogU3RyZWFtS2V5cy5WS19UQUIsCiAgICAvLyBLZXlROiBTdHJlYW1LZXlzLlZLX0tFWV9RLAogICAgLy8gS2V5VzogU3RyZWFtS2V5cy5WS19LRVlfVywKICAgIC8vIEtleUU6IFN0cmVhbUtleXMuVktfS0VZX0UsCiAgICAvLyBLZXlSOiBTdHJlYW1LZXlzLlZLX0tFWV9SLAogICAgLy8gS2V5VDogU3RyZWFtS2V5cy5WS19LRVlfVCwKICAgIC8vIEtleVk6IFN0cmVhbUtleXMuVktfS0VZX1ksCiAgICAvLyBLZXlVOiBTdHJlYW1LZXlzLlZLX0tFWV9VLAogICAgLy8gS2V5STogU3RyZWFtS2V5cy5WS19LRVlfSSwKICAgIC8vIEtleU86IFN0cmVhbUtleXMuVktfS0VZX08sCiAgICAvLyBLZXlQOiBTdHJlYW1LZXlzLlZLX0tFWV9QLAogICAgLy8gQnJhY2tldExlZnQ6IFN0cmVhbUtleXMuVktfT0VNXzQsCiAgICAvLyBCcmFja2V0UmlnaHQ6IFN0cmVhbUtleXMuVktfT0VNXzYsCiAgICAvLyBFbnRlcjogU3RyZWFtS2V5cy5WS19SRVRVUk4sCiAgICAvLyBDb250cm9sTGVmdDogU3RyZWFtS2V5cy5WS19MQ09OVFJPTCwKICAgIC8vIEtleUE6IFN0cmVhbUtleXMuVktfS0VZX0EsCiAgICAvLyBLZXlTOiBTdHJlYW1LZXlzLlZLX0tFWV9TLAogICAgLy8gS2V5RDogU3RyZWFtS2V5cy5WS19LRVlfRCwKICAgIC8vIEtleUY6IFN0cmVhbUtleXMuVktfS0VZX0YsCiAgICAvLyBLZXlHOiBTdHJlYW1LZXlzLlZLX0tFWV9HLAogICAgLy8gS2V5SDogU3RyZWFtS2V5cy5WS19LRVlfSCwKICAgIC8vIEtleUo6IFN0cmVhbUtleXMuVktfS0VZX0osCiAgICAvLyBLZXlLOiBTdHJlYW1LZXlzLlZLX0tFWV9LLAogICAgLy8gS2V5TDogU3RyZWFtS2V5cy5WS19LRVlfTCwKICAgIC8vIFNlbWljb2xvbjogU3RyZWFtS2V5cy5WS19PRU1fMSwKICAgIC8vIFF1b3RlOiBTdHJlYW1LZXlzLlZLX09FTV83LAogICAgLy8gQmFja3F1b3RlOiBTdHJlYW1LZXlzLlZLX09FTV8zLAogICAgLy8gU2hpZnRMZWZ0OiBTdHJlYW1LZXlzLlZLX0xTSElGVCwKICAgIC8vIEJhY2tzbGFzaDogU3RyZWFtS2V5cy5WS19PRU1fNSwKICAgIC8vIEtleVo6IFN0cmVhbUtleXMuVktfS0VZX1osCiAgICAvLyBLZXlYOiBTdHJlYW1LZXlzLlZLX0tFWV9YLAogICAgLy8gS2V5QzogU3RyZWFtS2V5cy5WS19LRVlfQywKICAgIC8vIEtleVY6IFN0cmVhbUtleXMuVktfS0VZX1YsCiAgICAvLyBLZXlCOiBTdHJlYW1LZXlzLlZLX0tFWV9CLAogICAgLy8gS2V5TjogU3RyZWFtS2V5cy5WS19LRVlfTiwKICAgIC8vIEtleU06IFN0cmVhbUtleXMuVktfS0VZX00sCiAgICAvLyBDb21tYTogU3RyZWFtS2V5cy5WS19PRU1fQ09NTUEsCiAgICAvLyBQZXJpb2Q6IFN0cmVhbUtleXMuVktfT0VNX1BFUklPRCwKICAgIC8vIFNsYXNoOiBTdHJlYW1LZXlzLlZLX09FTV8yLAogICAgLy8gU2hpZnRSaWdodDogU3RyZWFtS2V5cy5WS19SU0hJRlQsCiAgICAvLyBOdW1wYWRNdWx0aXBseTogU3RyZWFtS2V5cy5WS19NVUxUSVBMWSwKICAgIC8vIEFsdExlZnQ6IFN0cmVhbUtleXMuVktfTE1FTlUsCiAgICAvLyBTcGFjZTogU3RyZWFtS2V5cy5WS19TUEFDRSwKICAgIC8vIENhcHNMb2NrOiBTdHJlYW1LZXlzLlZLX0NBUElUQUwsCiAgICAvLyBGMTogU3RyZWFtS2V5cy5WS19GMSwKICAgIC8vIEYyOiBTdHJlYW1LZXlzLlZLX0YyLAogICAgLy8gRjM6IFN0cmVhbUtleXMuVktfRjMsCiAgICAvLyBGNDogU3RyZWFtS2V5cy5WS19GNCwKICAgIC8vIEY1OiBTdHJlYW1LZXlzLlZLX0Y1LAogICAgLy8gRjY6IFN0cmVhbUtleXMuVktfRjYsCiAgICAvLyBGNzogU3RyZWFtS2V5cy5WS19GNywKICAgIC8vIEY4OiBTdHJlYW1LZXlzLlZLX0Y4LAogICAgLy8gRjk6IFN0cmVhbUtleXMuVktfRjksCiAgICAvLyBGMTA6IFN0cmVhbUtleXMuVktfRjEwLAogICAgLy8gTnVtTG9jazogU3RyZWFtS2V5cy5WS19OVU1MT0NLLAogICAgLy8gU2Nyb2xsTG9jazogU3RyZWFtS2V5cy5WS19TQ1JPTEwsCiAgICAvLyBOdW1wYWQ3OiBTdHJlYW1LZXlzLlZLX05VTVBBRDcsCiAgICAvLyBOdW1wYWQ4OiBTdHJlYW1LZXlzLlZLX05VTVBBRDgsCiAgICAvLyBOdW1wYWQ5OiBTdHJlYW1LZXlzLlZLX05VTVBBRDksCiAgICAvLyBOdW1wYWRTdWJ0cmFjdDogU3RyZWFtS2V5cy5WS19TVUJUUkFDVCwKICAgIC8vIE51bXBhZDQ6IFN0cmVhbUtleXMuVktfTlVNUEFENCwKICAgIC8vIE51bXBhZDU6IFN0cmVhbUtleXMuVktfTlVNUEFENSwKICAgIC8vIE51bXBhZDY6IFN0cmVhbUtleXMuVktfTlVNUEFENiwKICAgIC8vIE51bXBhZEFkZDogU3RyZWFtS2V5cy5WS19BREQsCiAgICAvLyBOdW1wYWQxOiBTdHJlYW1LZXlzLlZLX05VTVBBRDEsCiAgICAvLyBOdW1wYWQyOiBTdHJlYW1LZXlzLlZLX05VTVBBRDIsCiAgICAvLyBOdW1wYWQzOiBTdHJlYW1LZXlzLlZLX05VTVBBRDMsCiAgICAvLyBOdW1wYWQwOiBTdHJlYW1LZXlzLlZLX05VTVBBRDAsCiAgICAvLyBOdW1wYWREZWNpbWFsOiBTdHJlYW1LZXlzLlZLX0RFQ0lNQUwsCiAgICAvLyBVbmlkZW50aWZpZWQ6IG51bGwsCiAgICAvLyBJbnRsQmFja3NsYXNoOiBTdHJlYW1LZXlzLlZLX09FTV8xMDIsCiAgICAvLyBGMTE6IFN0cmVhbUtleXMuVktfRjExLAogICAgLy8gRjEyOiBTdHJlYW1LZXlzLlZLX0YxMiwKICAgIC8vIEludGxSbzogbnVsbCwKICAgIC8vIENvbnZlcnQ6IFN0cmVhbUtleXMuVktfQ09OVkVSVCwKICAgIC8vIEthbmFNb2RlOiBTdHJlYW1LZXlzLlZLX0tBTkpJLAogICAgLy8gTm9uQ29udmVydDogU3RyZWFtS2V5cy5WS19OT05DT05WRVJULAogICAgLy8gTnVtcGFkRW50ZXI6IFN0cmVhbUtleXMuVktfUkVUVVJOLAogICAgLy8gQ29udHJvbFJpZ2h0OiBTdHJlYW1LZXlzLlZLX1JDT05UUk9MLAogICAgLy8gTnVtcGFkRGl2aWRlOiBTdHJlYW1LZXlzLlZLX0RJVklERSwKICAgIC8vIFByaW50U2NyZWVuOiBTdHJlYW1LZXlzLlZLX1NOQVBTSE9ULAogICAgLy8gQWx0UmlnaHQ6IFN0cmVhbUtleXMuVktfUk1FTlUsCiAgICBIb21lOiBTdHJlYW1LZXlzLlZLX0hPTUUsCiAgICAvLyBBcnJvd1VwOiBTdHJlYW1LZXlzLlZLX1VQLAogICAgLy8gUGFnZVVwOiBTdHJlYW1LZXlzLlZLX1BSSU9SLAogICAgLy8gQXJyb3dMZWZ0OiBTdHJlYW1LZXlzLlZLX0xFRlQsCiAgICAvLyBBcnJvd1JpZ2h0OiBTdHJlYW1LZXlzLlZLX1JJR0hULAogICAgLy8gRW5kOiBTdHJlYW1LZXlzLlZLX0VORCwKICAgIC8vIEFycm93RG93bjogU3RyZWFtS2V5cy5WS19ET1dOLAogICAgLy8gUGFnZURvd246IFN0cmVhbUtleXMuVktfTkVYVCwKICAgIC8vIEluc2VydDogU3RyZWFtS2V5cy5WS19JTlNFUlQsCiAgICAvLyBEZWxldGU6IFN0cmVhbUtleXMuVktfREVMRVRFLAogICAgLy8gVm9sdW1lTXV0ZTogU3RyZWFtS2V5cy5WS19WT0xVTUVfTVVURSwKICAgIC8vIFZvbHVtZURvd246IFN0cmVhbUtleXMuVktfVk9MVU1FX0RPV04sCiAgICAvLyBWb2x1bWVVcDogU3RyZWFtS2V5cy5WS19WT0xVTUVfVVAsCiAgICAvLyBQb3dlcjogbnVsbCwKICAgIC8vIE51bXBhZEVxdWFsOiBudWxsLAogICAgLy8gUGF1c2U6IFN0cmVhbUtleXMuVktfUEFVU0UsCiAgICAvLyBOdW1wYWRDb21tYTogbnVsbCwKICAgIC8vIExhbmcxOiBudWxsLAogICAgLy8gTGFuZzI6IG51bGwsCiAgICAvLyBJbnRsWWVuOiBudWxsLAogICAgLy8gTWV0YUxlZnQ6IFN0cmVhbUtleXMuVktfTFdJTiwKICAgIC8vIE1ldGFSaWdodDogU3RyZWFtS2V5cy5WS19SV0lOLAogICAgLy8gQ29udGV4dE1lbnU6IFN0cmVhbUtleXMuVktfQVBQUywKICAgIC8vIEJyb3dzZXJTdG9wOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfU1RPUCwKICAgIC8vIEFnYWluOiBudWxsLAogICAgUHJvcHM6IG51bGwsCiAgICAvLyBVbmRvOiBudWxsLAogICAgLy8gU2VsZWN0OiBTdHJlYW1LZXlzLlZLX1NFTEVDVCwKICAgIC8vIENvcHk6IG51bGwsCiAgICAvLyBPcGVuOiBudWxsLAogICAgLy8gUGFzdGU6IG51bGwsCiAgICAvLyBGaW5kOiBudWxsLAogICAgLy8gQ3V0OiBudWxsLAogICAgLy8gSGVscDogU3RyZWFtS2V5cy5WS19IRUxQLAogICAgLy8gU2xlZXA6IFN0cmVhbUtleXMuVktfU0xFRVAsCiAgICAvLyBXYWtlVXA6IG51bGwsCiAgICAvLyBMYXVuY2hBcHAxOiBTdHJlYW1LZXlzLlZLX0xBVU5DSF9BUFAxLAogICAgLy8gQnJvd3NlckZhdm9yaXRlczogU3RyZWFtS2V5cy5WS19CUk9XU0VSX0ZBVk9SSVRFUywKICAgIC8vIEJyb3dzZXJCYWNrOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfQkFDSywKICAgIC8vIEJyb3dzZXJGb3J3YXJkOiBTdHJlYW1LZXlzLlZLX0JST1dTRVJfRk9SV0FSRCwKICAgIC8vIEVqZWN0OiBudWxsLAogICAgLy8gTWVkaWFUcmFja05leHQ6IFN0cmVhbUtleXMuVktfTUVESUFfTkVYVF9UUkFDSywKICAgIC8vIE1lZGlhUGxheVBhdXNlOiBTdHJlYW1LZXlzLlZLX01FRElBX1BMQVlfUEFVU0UsCiAgICAvLyBNZWRpYVRyYWNrUHJldmlvdXM6IFN0cmVhbUtleXMuVktfTUVESUFfUFJFVl9UUkFDSywKICAgIC8vIE1lZGlhU3RvcDogU3RyZWFtS2V5cy5WS19NRURJQV9TVE9QLAogICAgLy8gQnJvd3NlclJlZnJlc2g6IFN0cmVhbUtleXMuVktfQlJPV1NFUl9SRUZSRVNILAogICAgLy8gRjEzOiBTdHJlYW1LZXlzLlZLX0YxMywKICAgIC8vIEYxNDogU3RyZWFtS2V5cy5WS19GMTQsCiAgICAvLyBGMTU6IFN0cmVhbUtleXMuVktfRjE1LAogICAgLy8gRjE2OiBTdHJlYW1LZXlzLlZLX0YxNiwKICAgIC8vIEYxNzogU3RyZWFtS2V5cy5WS19GMTcsCiAgICAvLyBGMTg6IFN0cmVhbUtleXMuVktfRjE4LAogICAgLy8gRjE5OiBTdHJlYW1LZXlzLlZLX0YxOSwKICAgIC8vIEYyMDogU3RyZWFtS2V5cy5WS19GMjAsCiAgICAvLyBGMjE6IFN0cmVhbUtleXMuVktfRjIxLAogICAgLy8gRjIyOiBTdHJlYW1LZXlzLlZLX0YyMiwKICAgIC8vIEYyMzogU3RyZWFtS2V5cy5WS19GMjMsCiAgICAvLyBGMjQ6IFN0cmVhbUtleXMuVktfRjI0LAogICAgLy8gQnJvd3NlclNlYXJjaDogU3RyZWFtS2V5cy5WS19CUk9XU0VSX1NFQVJDSCwKICAgIC8vIEZuOiBudWxsLAp9CgpleHBvcnQgZnVuY3Rpb24gY29udmVydFRvS2V5KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogbnVtYmVyIHwgbnVsbCB7CiAgICBsZXQga2V5ID0gVktfTUFQUElOR1NbZXZlbnQuY29kZV0gPz8gbnVsbAogICAgaWYgKGtleSA9PSBudWxsKSB7CiAgICAgICAga2V5ID0gVktfTUFQUElOR1NbZXZlbnQua2V5XSA/PyBudWxsCiAgICB9CiAgICByZXR1cm4ga2V5Cn0K"},{"path":"web/stream/log.ts","sha256":"0d761e15f75d6d6a5964ed52a6ae9f7f82034ac1498d1ca9be2c8b548def76ab","contentBase64":"aW1wb3J0IHsgTG9nTWVzc2FnZVR5cGUgfSBmcm9tICIuLi9hcGlfYmluZGluZ3MiCgpleHBvcnQgdHlwZSBMb2dNZXNzYWdlSW5mbyA9IHsKICAgIHR5cGU/OiBMb2dNZXNzYWdlVHlwZQp9CgpleHBvcnQgdHlwZSBMb2dMaXN0ZW5lciA9IChmdWxsUmF3VGV4dDogc3RyaW5nLCB0eXBlOiBMb2dNZXNzYWdlVHlwZSB8IG51bGwpID0+IHZvaWQKCmV4cG9ydCBjbGFzcyBMb2dnZXIgewoKICAgIGNvbnN0cnVjdG9yKCkgeyB9CgogICAgZGVidWcobWVzc2FnZTogc3RyaW5nLCBpbmZvPzogTG9nTWVzc2FnZUluZm8pIHsKICAgICAgICB0aGlzLmNhbGxMaXN0ZW5lcnMobWVzc2FnZSwgaW5mbz8udHlwZSkKICAgIH0KCiAgICBwcml2YXRlIGNhbGxMaXN0ZW5lcnMobWVzc2FnZTogc3RyaW5nLCB0eXBlPzogTG9nTWVzc2FnZVR5cGUpIHsKICAgICAgICBmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIHRoaXMuaW5mb0xpc3RlbmVycykgewogICAgICAgICAgICBsaXN0ZW5lcihtZXNzYWdlLCB0eXBlID8/IG51bGwpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgaW5mb0xpc3RlbmVyczogQXJyYXk8TG9nTGlzdGVuZXI+ID0gW10KICAgIGFkZEluZm9MaXN0ZW5lcihsaXN0ZW5lcjogTG9nTGlzdGVuZXIpIHsKICAgICAgICB0aGlzLmluZm9MaXN0ZW5lcnMucHVzaChsaXN0ZW5lcikKICAgIH0KICAgIHJlbW92ZUluZm9MaXN0ZW5lcihsaXN0ZW5lcjogTG9nTGlzdGVuZXIpIHsKICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuaW5mb0xpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKQogICAgICAgIGlmIChpbmRleCAhPSAtMSkgewogICAgICAgICAgICB0aGlzLmluZm9MaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKQogICAgICAgIH0KICAgIH0KfQ=="},{"path":"web/stream/mouse.ts","sha256":"fdbcf46edc1683f8262d8f402f57c1b4885f2b1798879721dfe45fe2ba4e3c74","contentBase64":"aW1wb3J0IHsgU3RyZWFtTW91c2VCdXR0b24gfSBmcm9tICIuLi9hcGlfYmluZGluZ3MuanMiCgpjb25zdCBCVVRUT05fTUFQUElOR1MgPSBuZXcgQXJyYXkoNSkKQlVUVE9OX01BUFBJTkdTWzBdID0gU3RyZWFtTW91c2VCdXR0b24uTEVGVApCVVRUT05fTUFQUElOR1NbMV0gPSBTdHJlYW1Nb3VzZUJ1dHRvbi5NSURETEUKQlVUVE9OX01BUFBJTkdTWzJdID0gU3RyZWFtTW91c2VCdXR0b24uUklHSFQKQlVUVE9OX01BUFBJTkdTWzNdID0gU3RyZWFtTW91c2VCdXR0b24uWDEKQlVUVE9OX01BUFBJTkdTWzRdID0gU3RyZWFtTW91c2VCdXR0b24uWDIKCmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9CdXR0b24oZXZlbnQ6IE1vdXNlRXZlbnQpOiBudW1iZXIgfCBudWxsIHsKICAgIHJldHVybiBCVVRUT05fTUFQUElOR1NbZXZlbnQuYnV0dG9uXSA/PyBudWxsCn0="},{"path":"web/stream/pipeline/index.ts","sha256":"447b7951d4a11e09380f60c876ba93bdb1d5e3e62ea327be60cb62586f2dae7d","contentBase64":"aW1wb3J0IHsgQXVkaW9CdWZmZXJQaXBlIH0gZnJvbSAiLi4vYXVkaW8vYXVkaW9fYnVmZmVyX3BpcGUuanMiOwppbXBvcnQgeyBBdWRpb0NvbnRleHRUcmFja1BpcGUgfSBmcm9tICIuLi9hdWRpby9hdWRpb19jb250ZXh0X3RyYWNrX3BpcGUuanMiOwppbXBvcnQgeyBPcHVzQXVkaW9EZWNvZGVyUGlwZSB9IGZyb20gIi4uL2F1ZGlvL29wdXNfZGVjb2Rlcl9waXBlLmpzIjsKaW1wb3J0IHsgQXVkaW9EZWNvZGVyUGlwZSB9IGZyb20gIi4uL2F1ZGlvL2F1ZGlvX2RlY29kZXJfcGlwZS5qcyI7CmltcG9ydCB7IERlcGFja2V0aXplQXVkaW9QaXBlIH0gZnJvbSAiLi4vYXVkaW8vZGVwYWNrZXRpemVfcGlwZS5qcyI7CmltcG9ydCB7IEF1ZGlvTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvclBpcGUgfSBmcm9tICIuLi9hdWRpby9tZWRpYV9zdHJlYW1fdHJhY2tfZ2VuZXJhdG9yX3BpcGUuanMiOwppbXBvcnQgeyBMb2dnZXIgfSBmcm9tICIuLi9sb2cuanMiOwppbXBvcnQgeyBWaWRlb0NvZGVjU3VwcG9ydCB9IGZyb20gIi4uL3ZpZGVvLmpzIjsKaW1wb3J0IHsgT3BlbkgyNjREZWNvZGVyUGlwZSB9IGZyb20gIi4uL3ZpZGVvL29wZW5oMjY0X2RlY29kZXJfcGlwZS5qcyI7CmltcG9ydCB7IENhbnZhc0ZyYW1lRHJhd1BpcGUsIENhbnZhc1JnYmFGcmFtZURyYXdQaXBlLCBDYW52YXNZdXY0MjBGcmFtZURyYXdQaXBlIH0gZnJvbSAiLi4vdmlkZW8vY2FudmFzX2ZyYW1lLmpzIjsKaW1wb3J0IHsgRGVwYWNrZXRpemVWaWRlb1BpcGUgfSBmcm9tICIuLi92aWRlby9kZXBhY2tpdGl6ZV9waXBlLmpzIjsKaW1wb3J0IHsgVmlkZW9NZWRpYVN0cmVhbVRyYWNrR2VuZXJhdG9yUGlwZSB9IGZyb20gIi4uL3ZpZGVvL21lZGlhX3N0cmVhbV90cmFja19nZW5lcmF0b3JfcGlwZS5qcyI7CmltcG9ydCB7IFZpZGVvTWVkaWFTdHJlYW1UcmFja1Byb2Nlc3NvclBpcGUgfSBmcm9tICIuLi92aWRlby9tZWRpYV9zdHJlYW1fdHJhY2tfcHJvY2Vzc29yX3BpcGUuanMiOwppbXBvcnQgeyBXb3JrZXJEYXRhVG9DYW52YXNHbFJlbmRlck9wZW5IMjY0UGlwZSwgV29ya2VyRGF0YVRvVmlkZW9UcmFja1BpcGUsIFdvcmtlclZpZGVvTWVkaWFTdHJlYW1Qcm9jZXNzb3JDYW52YXNQaXBlLCBXb3JrZXJWaWRlb01lZGlhU3RyZWFtUHJvY2Vzc29yUGlwZSB9IGZyb20gIi4uL3ZpZGVvL3BpcGVsaW5lLmpzIjsKaW1wb3J0IHsgVmlkZW9EZWNvZGVyUGlwZSB9IGZyb20gIi4uL3ZpZGVvL3ZpZGVvX2RlY29kZXJfcGlwZS5qcyI7CmltcG9ydCB7IFZpZGVvVHJhY2tHZW5lcmF0b3JQaXBlIH0gZnJvbSAiLi4vdmlkZW8vdmlkZW9fdHJhY2tfZ2VuZXJhdG9yLmpzIjsKaW1wb3J0IHsgV29ya2VyRGF0YVJlY2VpdmVQaXBlLCBXb3JrZXJEYXRhU2VuZFBpcGUsIFdvcmtlck9mZnNjcmVlbkNhbnZhc1NlbmRQaXBlLCBXb3JrZXJWaWRlb0RhdGFSZWNlaXZlUGlwZSwgV29ya2VyVmlkZW9EYXRhU2VuZFBpcGUsIFdvcmtlclZpZGVvRnJhbWVSZWNlaXZlUGlwZSwgV29ya2VyVmlkZW9GcmFtZVNlbmRQaXBlLCBXb3JrZXJWaWRlb1RyYWNrUmVjZWl2ZVBpcGUsIFdvcmtlclZpZGVvVHJhY2tTZW5kUGlwZSB9IGZyb20gIi4vd29ya2VyX2lvLmpzIjsKaW1wb3J0IHsgU3RhdFZhbHVlIH0gZnJvbSAiLi4vc3RhdHMuanMiOwppbXBvcnQgeyBZdXY0MjBUb1JnYmFGcmFtZVBpcGUgfSBmcm9tICIuLi92aWRlby92aWRlb19mcmFtZS5qcyI7CmltcG9ydCB7IE1lZGlhU291cmNlRGVjb2RlciB9IGZyb20gIi4uL3ZpZGVvL21lZGlhX3NvdXJjZV9kZWNvZGVyLmpzIjsKCmV4cG9ydCBpbnRlcmZhY2UgUGlwZSB7CiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZwoKICAgIHJlcG9ydFN0YXRzPyhzdGF0c09iamVjdDogUmVjb3JkPHN0cmluZywgU3RhdFZhbHVlPik6IFByb21pc2U8dm9pZD4KCiAgICBnZXRCYXNlKCk6IFBpcGUgfCBudWxsCn0KCmV4cG9ydCB0eXBlIFBpcGVJbmZvID0gewogICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6IGJvb2xlYW4KICAgIHN1cHBvcnRlZFZpZGVvQ29kZWNzPzogVmlkZW9Db2RlY1N1cHBvcnQKfQoKZXhwb3J0IGludGVyZmFjZSBQaXBlSW5mb1N0YXRpYyB7CiAgICBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+Cn0KZXhwb3J0IGludGVyZmFjZSBQaXBlU3RhdGljIGV4dGVuZHMgUGlwZUluZm9TdGF0aWMsIElucHV0UGlwZVN0YXRpYyB7CiAgICByZWFkb25seSB0eXBlOiBzdHJpbmcKCiAgICBuZXcoYmFzZTogYW55LCBsb2dnZXI/OiBMb2dnZXIpOiBQaXBlCn0KCmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRQaXBlU3RhdGljIHsKICAgIHJlYWRvbmx5IGJhc2VUeXBlOiBzdHJpbmcKfQpleHBvcnQgaW50ZXJmYWNlIE91dHB1dFBpcGVTdGF0aWMgewogICAgcmVhZG9ubHkgdHlwZTogc3RyaW5nCgogICAgbmV3KGxvZ2dlcj86IExvZ2dlciwgb3B0aW9ucz86IHVua25vd24pOiBQaXBlCn0KCmV4cG9ydCB0eXBlIFBpcGVsaW5lID0gewogICAgcGlwZXM6IEFycmF5PHN0cmluZyB8IFBpcGVTdGF0aWM+Cn0KCmV4cG9ydCBmdW5jdGlvbiBwaXBlbGluZVRvU3RyaW5nKHBpcGVsaW5lOiBQaXBlbGluZSk6IHN0cmluZyB7CiAgICByZXR1cm4gcGlwZWxpbmUucGlwZXMubWFwKHBpcGUgPT4gcGlwZU5hbWUocGlwZSkpLmpvaW4oIiAtPiAiKQp9CgpleHBvcnQgZnVuY3Rpb24gcGlwZU5hbWUocGlwZTogc3RyaW5nIHwgUGlwZVN0YXRpYyk6IHN0cmluZyB7CiAgICBpZiAodHlwZW9mIHBpcGUgPT0gInN0cmluZyIpIHsKICAgICAgICByZXR1cm4gcGlwZQogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gcGlwZS5uYW1lCiAgICB9Cn0KZXhwb3J0IGZ1bmN0aW9uIGdldFBpcGUocGlwZTogc3RyaW5nIHwgUGlwZVN0YXRpYyk6IFBpcGVTdGF0aWMgfCBudWxsIHsKICAgIGlmICh0eXBlb2YgcGlwZSA9PSAic3RyaW5nIikgewogICAgICAgIGNvbnN0IGZvdW5kUGlwZSA9IHBpcGVzKCkuZmluZChjaGVjayA9PiBjaGVjay5uYW1lID09IHBpcGUpCgogICAgICAgIHJldHVybiBmb3VuZFBpcGUgPz8gbnVsbAogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gcGlwZQogICAgfQp9CgpleHBvcnQgZnVuY3Rpb24gYnVpbGRQaXBlbGluZShiYXNlOiBPdXRwdXRQaXBlU3RhdGljLCBwaXBlbGluZTogUGlwZWxpbmUsIGxvZ2dlcj86IExvZ2dlciwgcmVuZGVyZXJPcHRpb25zPzogdW5rbm93bik6IFBpcGUgfCBudWxsIHsKICAgIGxldCBwcmV2aW91c1BpcGVTdGF0aWM6IE91dHB1dFBpcGVTdGF0aWMgfCBQaXBlU3RhdGljID0gYmFzZQogICAgbGV0IHBpcGUgPSBuZXcgYmFzZShsb2dnZXIsIHJlbmRlcmVyT3B0aW9ucykKCiAgICBmb3IgKGxldCBpbmRleCA9IHBpcGVsaW5lLnBpcGVzLmxlbmd0aCAtIDE7IGluZGV4ID49IDA7IGluZGV4LS0pIHsKICAgICAgICBjb25zdCBjdXJyZW50UGlwZVZhbHVlID0gcGlwZWxpbmUucGlwZXNbaW5kZXhdCiAgICAgICAgY29uc3QgY3VycmVudFBpcGUgPSBnZXRQaXBlKGN1cnJlbnRQaXBlVmFsdWUpCgogICAgICAgIGlmICghY3VycmVudFBpcGUpIHsKICAgICAgICAgICAgbG9nZ2VyPy5kZWJ1ZyhgRmFpbGVkIHRvIGNvbnN0cnVjdCBwaXBlIGJlY2F1c2UgaXQgaXNuJ3QgcmVnaXN0ZXJlZDogJHtwaXBlTmFtZShjdXJyZW50UGlwZVZhbHVlKX1gKQogICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgIH0KCiAgICAgICAgaWYgKHByZXZpb3VzUGlwZVN0YXRpYyAmJiBjdXJyZW50UGlwZS5iYXNlVHlwZSAhPSBwcmV2aW91c1BpcGVTdGF0aWMudHlwZSkgewogICAgICAgICAgICBsb2dnZXI/LmRlYnVnKGBGYWlsZWQgdG8gY3JlYXRlIHBpcGVsaW5lICIke3BpcGVsaW5lVG9TdHJpbmcocGlwZWxpbmUpfSIgYmVjYXVzZSBiYXNlVHlwZSBvZiAiJHtjdXJyZW50UGlwZS5uYW1lfSIgaXMgIiR7Y3VycmVudFBpcGUuYmFzZVR5cGV9IiwgYnV0IGl0J3MgdHJ5aW5nIHRvIGNvbm5lY3Qgd2l0aCAiJHtwcmV2aW91c1BpcGVTdGF0aWMudHlwZX0iYCkKICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICB9CgogICAgICAgIHByZXZpb3VzUGlwZVN0YXRpYyA9IGN1cnJlbnRQaXBlCiAgICAgICAgcGlwZSA9IG5ldyBjdXJyZW50UGlwZShwaXBlLCBsb2dnZXIpCiAgICB9CgogICAgcmV0dXJuIHBpcGUKfQoKbGV0IFBJUEVfSU5GTzogUHJvbWlzZTxNYXA8UGlwZVN0YXRpYywgUGlwZUluZm8+PiB8IG51bGwKCmV4cG9ydCBmdW5jdGlvbiBnYXRoZXJQaXBlSW5mbygpOiBQcm9taXNlPE1hcDxQaXBlU3RhdGljLCBQaXBlSW5mbz4+IHsKICAgIGlmIChQSVBFX0lORk8pIHsKICAgICAgICByZXR1cm4gUElQRV9JTkZPCiAgICB9IGVsc2UgewogICAgICAgIFBJUEVfSU5GTyA9IGdhdGhlclBpcGVJbmZvSW50ZXJuYWwoKQogICAgICAgIHJldHVybiBQSVBFX0lORk8KICAgIH0KfQphc3luYyBmdW5jdGlvbiBnYXRoZXJQaXBlSW5mb0ludGVybmFsKCk6IFByb21pc2U8TWFwPFBpcGVTdGF0aWMsIFBpcGVJbmZvPj4gewogICAgY29uc3QgbWFwID0gbmV3IE1hcCgpCgogICAgY29uc3QgcHJvbWlzZXMgPSBbXQoKICAgIGNvbnN0IGFsbDogQXJyYXk8UGlwZVN0YXRpYz4gPSBwaXBlcygpCiAgICBmb3IgKGNvbnN0IHBpcGUgb2YgYWxsKSB7CiAgICAgICAgcHJvbWlzZXMucHVzaChwaXBlLmdldEluZm8oKS50aGVuKGluZm8gPT4gewogICAgICAgICAgICBtYXAuc2V0KHBpcGUsIGluZm8pCiAgICAgICAgfSkpCiAgICB9CgogICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpCgogICAgcmV0dXJuIG1hcAp9CgpleHBvcnQgZnVuY3Rpb24gcGlwZXMoKTogQXJyYXk8UGlwZVN0YXRpYz4gewogICAgcmV0dXJuIFsKICAgICAgICAvLyBXb3JrZXIKICAgICAgICBXb3JrZXJWaWRlb0ZyYW1lU2VuZFBpcGUsCiAgICAgICAgV29ya2VyVmlkZW9GcmFtZVJlY2VpdmVQaXBlLAogICAgICAgIFdvcmtlckRhdGFTZW5kUGlwZSwKICAgICAgICBXb3JrZXJEYXRhUmVjZWl2ZVBpcGUsCiAgICAgICAgV29ya2VyVmlkZW9UcmFja1NlbmRQaXBlLAogICAgICAgIFdvcmtlclZpZGVvVHJhY2tSZWNlaXZlUGlwZSwKICAgICAgICBXb3JrZXJWaWRlb0RhdGFTZW5kUGlwZSwKICAgICAgICBXb3JrZXJWaWRlb0RhdGFSZWNlaXZlUGlwZSwKICAgICAgICAvLyBWaWRlbwogICAgICAgIERlcGFja2V0aXplVmlkZW9QaXBlLAogICAgICAgIFZpZGVvTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvclBpcGUsCiAgICAgICAgVmlkZW9NZWRpYVN0cmVhbVRyYWNrUHJvY2Vzc29yUGlwZSwKICAgICAgICBWaWRlb0RlY29kZXJQaXBlLAogICAgICAgIE9wZW5IMjY0RGVjb2RlclBpcGUsCiAgICAgICAgWXV2NDIwVG9SZ2JhRnJhbWVQaXBlLAogICAgICAgIE1lZGlhU291cmNlRGVjb2RlciwKICAgICAgICBWaWRlb1RyYWNrR2VuZXJhdG9yUGlwZSwKICAgICAgICBDYW52YXNGcmFtZURyYXdQaXBlLAogICAgICAgIENhbnZhc1l1djQyMEZyYW1lRHJhd1BpcGUsCiAgICAgICAgQ2FudmFzUmdiYUZyYW1lRHJhd1BpcGUsCiAgICAgICAgLy8gVmlkZW8gV29ya2VyIHBpcGVzCiAgICAgICAgV29ya2VyVmlkZW9NZWRpYVN0cmVhbVByb2Nlc3NvclBpcGUsCiAgICAgICAgV29ya2VyT2Zmc2NyZWVuQ2FudmFzU2VuZFBpcGUsCiAgICAgICAgV29ya2VyVmlkZW9NZWRpYVN0cmVhbVByb2Nlc3NvckNhbnZhc1BpcGUsCiAgICAgICAgV29ya2VyRGF0YVRvVmlkZW9UcmFja1BpcGUsCiAgICAgICAgV29ya2VyRGF0YVRvQ2FudmFzR2xSZW5kZXJPcGVuSDI2NFBpcGUsCiAgICAgICAgLy8gQXVkaW8KICAgICAgICBEZXBhY2tldGl6ZUF1ZGlvUGlwZSwKICAgICAgICBBdWRpb01lZGlhU3RyZWFtVHJhY2tHZW5lcmF0b3JQaXBlLAogICAgICAgIEF1ZGlvRGVjb2RlclBpcGUsCiAgICAgICAgT3B1c0F1ZGlvRGVjb2RlclBpcGUsCiAgICAgICAgQXVkaW9CdWZmZXJQaXBlLAogICAgICAgIEF1ZGlvQ29udGV4dFRyYWNrUGlwZSwKICAgIF0KfQo="},{"path":"web/stream/pipeline/pipes.ts","sha256":"c7f92a6363bc544ccc41821b4b9472f8890c214dc7a3cb78b5b8d404817aa673","contentBase64":"aW1wb3J0IHsgUGlwZSB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGludGVyZmFjZSBEYXRhUGlwZSBleHRlbmRzIFBpcGUgewogICAgc3VibWl0UGFja2V0KGJ1ZmZlcjogQXJyYXlCdWZmZXIpOiB2b2lkCn0KCmV4cG9ydCBmdW5jdGlvbiBhZGRQaXBlUGFzc3Rocm91Z2gocGlwZTogUGlwZSwgb3ZlcndyaXRlPzogQXJyYXk8c3RyaW5nPikgewogICAgY29uc3QgcGlwZUFueSA9IHBpcGUgYXMgYW55CiAgICBjb25zdCBwYXNzdGhyb3VnaCA9IChuYW1lOiBzdHJpbmcsIGZvcmNlOiBib29sZWFuKSA9PiB7CiAgICAgICAgaWYgKG5hbWUgaW4gcGlwZUFueSAmJiAhZm9yY2UpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIHBpcGVBbnlbbmFtZV0gPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIGNvbnN0IGJhc2UgPSBwaXBlLmdldEJhc2UoKSBhcyBhbnkKICAgICAgICAgICAgaWYgKGJhc2UpIHsKICAgICAgICAgICAgICAgIHJldHVybiBiYXNlW25hbWVdLmFwcGx5KGJhc2UsIGFyZ3VtZW50cykKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwYXNzdGhyb3VnaCgic2V0dXAiLCBmYWxzZSkKICAgIHBhc3N0aHJvdWdoKCJjbGVhbnVwIiwgZmFsc2UpCiAgICBwYXNzdGhyb3VnaCgicG9sbFJlcXVlc3RJZHIiLCBmYWxzZSkKICAgIHBhc3N0aHJvdWdoKCJnZXRTdHJlYW1SZWN0IiwgZmFsc2UpCiAgICBwYXNzdGhyb3VnaCgib25Vc2VySW50ZXJhY3Rpb24iLCBmYWxzZSkKICAgIHBhc3N0aHJvdWdoKCJtb3VudCIsIGZhbHNlKQogICAgcGFzc3Rocm91Z2goInVubW91bnQiLCBmYWxzZSkKICAgIHBhc3N0aHJvdWdoKCJyZXBvcnRTdGF0cyIsIGZhbHNlKQoKICAgIGlmIChvdmVyd3JpdGUpIHsKICAgICAgICBmb3IgKGNvbnN0IG92ZXJ3cml0ZUZuIG9mIG92ZXJ3cml0ZSkgewogICAgICAgICAgICBwYXNzdGhyb3VnaChvdmVyd3JpdGVGbiwgdHJ1ZSkKICAgICAgICB9CiAgICB9Cn0="},{"path":"web/stream/pipeline/worker.ts","sha256":"fc669000578e69d62d2b406a693c3cee74f6b8201a3459f9ff38b25524f4df93","contentBase64":"aW1wb3J0IHsgTG9nTWVzc2FnZVR5cGUgfSBmcm9tICIuLi8uLi9hcGlfYmluZGluZ3MuanMiCmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyIKaW1wb3J0IHsgYW5kVmlkZW9Db2RlY3MgfSBmcm9tICIuLi92aWRlby5qcyIKaW1wb3J0IHsgYnVpbGRQaXBlbGluZSwgZ2V0UGlwZSwgUGlwZSwgUGlwZUluZm8sIHBpcGVOYW1lIH0gZnJvbSAiLi9pbmRleC5qcyIKaW1wb3J0IHsgV29ya2VyT2Zmc2NyZWVuQ2FudmFzU2VuZFBpcGUgfSBmcm9tICIuL3dvcmtlcl9pby5qcyIKaW1wb3J0IHsgV29ya2VyUmVjZWl2ZXIgfSBmcm9tICIuL3dvcmtlcl9waXBlLmpzIgppbXBvcnQgeyBUb01haW5NZXNzYWdlLCBUb1dvcmtlck1lc3NhZ2UsIFdvcmtlck1lc3NhZ2UgfSBmcm9tICIuL3dvcmtlcl90eXBlcy5qcyIKCi8vIENvbmZpZ3VyZSBsb2dnZXIKY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcigpCgpmdW5jdGlvbiBvbkxvZyh0ZXh0OiBzdHJpbmcsIHR5cGU6IExvZ01lc3NhZ2VUeXBlIHwgbnVsbCkgewogICAgY29uc3QgbWVzc2FnZTogVG9NYWluTWVzc2FnZSA9IHsKICAgICAgICBsb2c6IHRleHQsCiAgICAgICAgaW5mbzogeyB0eXBlOiB0eXBlID8/IHVuZGVmaW5lZCB9CiAgICB9CgogICAgcG9zdE1lc3NhZ2UobWVzc2FnZSkKfQoKbG9nZ2VyPy5hZGRJbmZvTGlzdGVuZXIob25Mb2cpCgpsZXQgcGlwZWxpbmVFcnJvcmVkID0gZmFsc2UKbGV0IGN1cnJlbnRQaXBlbGluZTogV29ya2VyUmVjZWl2ZXIgfCBudWxsID0gbnVsbApsZXQgY2FudmFzUGlwZTogV29ya2VyT2Zmc2NyZWVuQ2FudmFzU2VuZFBpcGUgfCBudWxsID0gbnVsbAoKY2xhc3MgV29ya2VyTWVzc2FnZVNlbmRlciBpbXBsZW1lbnRzIFdvcmtlclJlY2VpdmVyIHsKICAgIHN0YXRpYyByZWFkb25seSB0eXBlOiBzdHJpbmcgPSAid29ya2VyaW5wdXQiCgogICAgcmVhZG9ubHkgaW1wbGVtZW50YXRpb25OYW1lOiBzdHJpbmcgPSAid29ya2VyX291dHB1dCIKCiAgICBjb25zdHJ1Y3Rvcihsb2dnZXI/OiBMb2dnZXIpIHsKICAgIH0KCiAgICBvbldvcmtlck1lc3NhZ2Uob3V0cHV0OiBXb3JrZXJNZXNzYWdlKTogdm9pZCB7CiAgICAgICAgY29uc3QgbWVzc2FnZTogVG9NYWluTWVzc2FnZSA9IHsgb3V0cHV0IH0KCiAgICAgICAgcG9zdE1lc3NhZ2UobWVzc2FnZSkKICAgIH0KCiAgICBnZXRCYXNlKCk6IFBpcGUgfCBudWxsIHsKICAgICAgICByZXR1cm4gbnVsbAogICAgfQp9Cgphc3luYyBmdW5jdGlvbiBvbk1lc3NhZ2UobWVzc2FnZTogVG9Xb3JrZXJNZXNzYWdlKSB7CiAgICBpZiAoImNoZWNrU3VwcG9ydCIgaW4gbWVzc2FnZSkgewogICAgICAgIGNvbnN0IHBpcGVsaW5lID0gbWVzc2FnZS5jaGVja1N1cHBvcnQKCiAgICAgICAgY29uc3QgcGlwZWxpbmVJbmZvOiBQaXBlSW5mbyA9IHsKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6IHRydWUKICAgICAgICB9CgogICAgICAgIGZvciAoY29uc3QgcGlwZVJhdyBvZiBwaXBlbGluZS5waXBlcykgewogICAgICAgICAgICBjb25zdCBwaXBlID0gZ2V0UGlwZShwaXBlUmF3KQogICAgICAgICAgICBpZiAoIXBpcGUpIHsKICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgRmFpbGVkIHRvIGZpbmQgcGlwZSAiJHtwaXBlTmFtZShwaXBlUmF3KX0iYCkKICAgICAgICAgICAgICAgIHBpcGVsaW5lSW5mby5lbnZpcm9ubWVudFN1cHBvcnRlZCA9IGZhbHNlCiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IHBpcGVJbmZvID0gYXdhaXQgcGlwZS5nZXRJbmZvKCkKCiAgICAgICAgICAgIGlmICghcGlwZUluZm8uZW52aXJvbm1lbnRTdXBwb3J0ZWQpIHsKICAgICAgICAgICAgICAgIHBpcGVsaW5lSW5mby5lbnZpcm9ubWVudFN1cHBvcnRlZCA9IGZhbHNlCiAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoInN1cHBvcnRlZFZpZGVvQ29kZWNzIiBpbiBwaXBlSW5mbyAmJiBwaXBlSW5mby5zdXBwb3J0ZWRWaWRlb0NvZGVjcykgewogICAgICAgICAgICAgICAgaWYgKHBpcGVsaW5lSW5mby5zdXBwb3J0ZWRWaWRlb0NvZGVjcykgewogICAgICAgICAgICAgICAgICAgIHBpcGVsaW5lSW5mby5zdXBwb3J0ZWRWaWRlb0NvZGVjcyA9IGFuZFZpZGVvQ29kZWNzKHBpcGVsaW5lSW5mby5zdXBwb3J0ZWRWaWRlb0NvZGVjcywgcGlwZUluZm8uc3VwcG9ydGVkVmlkZW9Db2RlY3MpCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHBpcGVsaW5lSW5mby5zdXBwb3J0ZWRWaWRlb0NvZGVjcyA9IHBpcGVJbmZvLnN1cHBvcnRlZFZpZGVvQ29kZWNzCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGNvbnN0IHJlc3BvbnNlOiBUb01haW5NZXNzYWdlID0gewogICAgICAgICAgICBjaGVja1N1cHBvcnQ6IHBpcGVsaW5lSW5mbwogICAgICAgIH0KICAgICAgICBwb3N0TWVzc2FnZShyZXNwb25zZSkKICAgIH0gZWxzZSBpZiAoImNyZWF0ZVBpcGVsaW5lIiBpbiBtZXNzYWdlKSB7CiAgICAgICAgbG9nZ2VyLmRlYnVnKGBUcnlpbmcgdG8gYnVpbGQgcGlwZWxpbmUgaW4gd29ya2VyLCBQaXBlczogJHtKU09OLnN0cmluZ2lmeShtZXNzYWdlLmNyZWF0ZVBpcGVsaW5lLnBpcGVzKX1gKQoKICAgICAgICBjb25zdCBwaXBlbGluZSA9IG1lc3NhZ2UuY3JlYXRlUGlwZWxpbmUKCiAgICAgICAgY29uc3QgbmV3UGlwZWxpbmUgPSBidWlsZFBpcGVsaW5lKFdvcmtlck1lc3NhZ2VTZW5kZXIsIHBpcGVsaW5lLCBsb2dnZXIpCiAgICAgICAgaWYgKG5ld1BpcGVsaW5lICYmICJvbldvcmtlck1lc3NhZ2UiIGluIG5ld1BpcGVsaW5lICYmIHR5cGVvZiBuZXdQaXBlbGluZS5vbldvcmtlck1lc3NhZ2UgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICBjdXJyZW50UGlwZWxpbmUgPSBuZXdQaXBlbGluZSBhcyBXb3JrZXJSZWNlaXZlcgogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiRmFpbGVkIHRvIGJ1aWxkIHdvcmtlciBwaXBlbGluZSEiLCB7IHR5cGU6ICJmYXRhbCIgfSkKICAgICAgICB9CiAgICAgICAgbG9nZ2VyLmRlYnVnKGBTdWNjZXNzZnVsbHkgYnVpbGQgcGlwZWxpbmUgaW4gd29ya2VyOiAke2N1cnJlbnRQaXBlbGluZT8uaW1wbGVtZW50YXRpb25OYW1lfWApCgogICAgICAgIGxldCBiYXNlID0gbmV3UGlwZWxpbmUKICAgICAgICBsZXQgbmV3QmFzZSA9IG5ld1BpcGVsaW5lPy5nZXRCYXNlKCkKICAgICAgICB3aGlsZSAoKG5ld0Jhc2UgPSBiYXNlPy5nZXRCYXNlKCkpICYmICEobmV3QmFzZSBpbnN0YW5jZW9mIFdvcmtlck1lc3NhZ2VTZW5kZXIpKSB7CiAgICAgICAgICAgIGJhc2UgPSBuZXdCYXNlCiAgICAgICAgfQoKICAgICAgICBpZiAoYmFzZSAmJiBiYXNlIGluc3RhbmNlb2YgV29ya2VyT2Zmc2NyZWVuQ2FudmFzU2VuZFBpcGUpIHsKICAgICAgICAgICAgY2FudmFzUGlwZSA9IGJhc2UKICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJGb3VuZCBXb3JrZXJPZmZzY3JlZW5DYW52YXNTZW5kUGlwZSBpbiB3b3JrZXIgcGlwZWxpbmUiKQogICAgICAgIH0KICAgIH0gZWxzZSBpZiAoImlucHV0IiBpbiBtZXNzYWdlKSB7CiAgICAgICAgaWYgKHBpcGVsaW5lRXJyb3JlZCkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGlmICgiY2FudmFzIiBpbiBtZXNzYWdlLmlucHV0KSB7CiAgICAgICAgICAgIC8vIEZpbHRlciBvdXQgdGhlIGNhbnZhcywgdGhlIGxhc3QgcGlwZSBuZWVkcyB0aGF0CiAgICAgICAgICAgIGlmIChjYW52YXNQaXBlKSB7CiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIlJlY2VpdmVkIE9mZnNjcmVlbkNhbnZhcyBpbiB3b3JrZXIiKQogICAgICAgICAgICAgICAgY2FudmFzUGlwZS5zZXRDb250ZXh0KG1lc3NhZ2UuaW5wdXQuY2FudmFzKQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcGlwZWxpbmVFcnJvcmVkID0gdHJ1ZQogICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJGYWlsZWQgdG8gc2V0IE9mZnNjcmVlbkNhbnZhcyBpbiB0aGUgd29ya2VyIGJlY2F1c2UgdGhlIHdvcmtlciBkb2Vzbid0IGNvbnRhaW4gYSBjb21wYXRpYmxlIHBpcGUgYXQgdGhlIGVuZCBvZiB0aGUgcGlwZWxpbmUhIiwgeyB0eXBlOiAiZmF0YWwiIH0pCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoY3VycmVudFBpcGVsaW5lKSB7CiAgICAgICAgICAgICAgICBjdXJyZW50UGlwZWxpbmUub25Xb3JrZXJNZXNzYWdlKG1lc3NhZ2UuaW5wdXQpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBwaXBlbGluZUVycm9yZWQgPSB0cnVlCiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEZhaWxlZCB0byBzdWJtaXQgd29ya2VyIHBpcGUgaW5wdXQgYmVjYXVzZSB0aGUgd29ya2VyIHdhc24ndCBhc3NpZ25lZCBhIHBpcGVsaW5lISBNZXNzYWdlOiAke0pTT04uc3RyaW5naWZ5KG1lc3NhZ2UpfWApCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfQp9Cgpvbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsKICAgIGNvbnN0IG1lc3NhZ2UgPSBldmVudC5kYXRhIGFzIFRvV29ya2VyTWVzc2FnZQogICAgb25NZXNzYWdlKG1lc3NhZ2UpCn0="},{"path":"web/stream/pipeline/worker_io.ts","sha256":"96fab5bd35871cbbf31ce00159afbe0354ccd325153d78f70d9bda0f564b41e8","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyI7CmltcG9ydCB7IEJhc2VDYW52YXNWaWRlb1JlbmRlcmVyIH0gZnJvbSAiLi4vdmlkZW8vY2FudmFzLmpzIjsKaW1wb3J0IHsgQ2FudmFzUmVuZGVyZXIsIERhdGFWaWRlb1JlbmRlcmVyLCBGcmFtZVZpZGVvUmVuZGVyZXIsIFRyYWNrVmlkZW9SZW5kZXJlciwgVXNlQ2FudmFzUmVzdWx0LCBWaWRlb0RlY29kZVVuaXQsIFZpZGVvUmVuZGVyZXJTZXR1cCB9IGZyb20gIi4uL3ZpZGVvL2luZGV4LmpzIjsKaW1wb3J0IHsgUGlwZSwgUGlwZUluZm8gfSBmcm9tICIuL2luZGV4LmpzIjsKaW1wb3J0IHsgYWRkUGlwZVBhc3N0aHJvdWdoLCBEYXRhUGlwZSB9IGZyb20gIi4vcGlwZXMuanMiOwppbXBvcnQgeyBXb3JrZXJQaXBlLCBXb3JrZXJSZWNlaXZlciB9IGZyb20gIi4vd29ya2VyX3BpcGUuanMiOwppbXBvcnQgeyBXb3JrZXJNZXNzYWdlIH0gZnJvbSAiLi93b3JrZXJfdHlwZXMuanMiOwoKY2xhc3MgV29ya2VyUmVjZWl2ZXJQaXBlIGltcGxlbWVudHMgV29ya2VyUmVjZWl2ZXIsIERhdGFQaXBlLCBGcmFtZVZpZGVvUmVuZGVyZXIsIFRyYWNrVmlkZW9SZW5kZXJlciB7CiAgICBzdGF0aWMgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6IHRydWUKICAgICAgICB9CiAgICB9CgogICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAid29ya2Vyb3V0cHV0IgoKICAgIHJlYWRvbmx5IGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nCgogICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlciB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIGJhc2U6IFBpcGUKCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBQaXBlLCBsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uTmFtZSA9IGB3b3JrZXJfcmVjdiAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAKCiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPz8gbnVsbAogICAgICAgIHRoaXMuYmFzZSA9IGJhc2UKCiAgICAgICAgYWRkUGlwZVBhc3N0aHJvdWdoKHRoaXMsIFsic2V0dXAiLCAiY2xlYW51cCIsICJzdWJtaXRGcmFtZSIsICJzdWJtaXRQYWNrZXQiLCAic2V0VHJhY2siLCAic3VibWl0RGVjb2RlVW5pdCJdKQogICAgfQoKICAgIG9uV29ya2VyTWVzc2FnZShtZXNzYWdlOiBXb3JrZXJNZXNzYWdlKTogdm9pZCB7CiAgICAgICAgaWYgKCJjYWxsIiBpbiBtZXNzYWdlICYmIG1lc3NhZ2UuY2FsbCA9PSAiY2xlYW51cCIpIHsKICAgICAgICAgICAgdGhpcy5jbGVhbnVwKCkKICAgICAgICB9IGVsc2UgaWYgKCJ2aWRlb1NldHVwIiBpbiBtZXNzYWdlKSB7CiAgICAgICAgICAgIHRoaXMuc2V0dXAobWVzc2FnZS52aWRlb1NldHVwKQogICAgICAgIH0gZWxzZSBpZiAoInZpZGVvRnJhbWUiIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgdGhpcy5zdWJtaXRGcmFtZShtZXNzYWdlLnZpZGVvRnJhbWUpCiAgICAgICAgfSBlbHNlIGlmICgiZGF0YSIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICB0aGlzLnN1Ym1pdFBhY2tldChtZXNzYWdlLmRhdGEpCiAgICAgICAgfSBlbHNlIGlmICgidHJhY2siIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgdGhpcy5zZXRUcmFjayhtZXNzYWdlLnRyYWNrKQogICAgICAgIH0gZWxzZSBpZiAoInZpZGVvRGF0YSIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICB0aGlzLnN1Ym1pdERlY29kZVVuaXQobWVzc2FnZS52aWRlb0RhdGEpCiAgICAgICAgfQogICAgfQoKICAgIGdldEJhc2UoKTogUGlwZSB7CiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZQogICAgfQoKICAgIC8vIC0tIE9ubHkgZGVmaW5pdGlvbiBsb29rIGFkZFBpcGVQYXNzdGhyb3VnaAogICAgc2V0dXAoX3NldHVwOiBWaWRlb1JlbmRlcmVyU2V0dXApOiB2b2lkIHsgfQogICAgY2xlYW51cCgpOiB2b2lkIHsgfQogICAgc3VibWl0RnJhbWUoX2ZyYW1lOiBWaWRlb0ZyYW1lKTogdm9pZCB7IH0KICAgIHN1Ym1pdFBhY2tldChfYnVmZmVyOiBBcnJheUJ1ZmZlcik6IHZvaWQgeyB9CiAgICBzZXRUcmFjayhfdHJhY2s6IE1lZGlhU3RyZWFtVHJhY2spOiB2b2lkIHsgfQogICAgc3VibWl0RGVjb2RlVW5pdChfdW5pdDogVmlkZW9EZWNvZGVVbml0KTogdm9pZCB7IH0KfQpleHBvcnQgY2xhc3MgV29ya2VyVmlkZW9GcmFtZVJlY2VpdmVQaXBlIGV4dGVuZHMgV29ya2VyUmVjZWl2ZXJQaXBlIHsKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZSA9ICJ2aWRlb2ZyYW1lIgp9CmV4cG9ydCBjbGFzcyBXb3JrZXJEYXRhUmVjZWl2ZVBpcGUgZXh0ZW5kcyBXb3JrZXJSZWNlaXZlclBpcGUgewogICAgc3RhdGljIHJlYWRvbmx5IGJhc2VUeXBlID0gImRhdGEiCn0KZXhwb3J0IGNsYXNzIFdvcmtlclZpZGVvRGF0YVJlY2VpdmVQaXBlIGV4dGVuZHMgV29ya2VyUmVjZWl2ZXJQaXBlIHsKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZSA9ICJ2aWRlb2RhdGEiCn0KZXhwb3J0IGNsYXNzIFdvcmtlclZpZGVvVHJhY2tSZWNlaXZlUGlwZSBleHRlbmRzIFdvcmtlclJlY2VpdmVyUGlwZSB7CiAgICBzdGF0aWMgcmVhZG9ubHkgYmFzZVR5cGUgPSAidmlkZW90cmFjayIKfQoKY2xhc3MgV29ya2VyU2VuZGVyUGlwZSBpbXBsZW1lbnRzIERhdGFQaXBlLCBGcmFtZVZpZGVvUmVuZGVyZXIsIFRyYWNrVmlkZW9SZW5kZXJlciwgRGF0YVZpZGVvUmVuZGVyZXIgewogICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGVudmlyb25tZW50U3VwcG9ydGVkOiB0cnVlCiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZSA9ICJ3b3JrZXJpbnB1dCIKCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZwoKICAgIHByb3RlY3RlZCBsb2dnZXI6IExvZ2dlciB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIGJhc2U6IFdvcmtlclBpcGUKCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBXb3JrZXJQaXBlLCBsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uTmFtZSA9IGB3b3JrZXJfc2VuZCAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAKICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/PyBudWxsCiAgICAgICAgdGhpcy5iYXNlID0gYmFzZQoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBnZXRCYXNlKCk6IFdvcmtlclBpcGUgewogICAgICAgIHJldHVybiB0aGlzLmJhc2UKICAgIH0KCiAgICBzZXR1cChzZXR1cDogVmlkZW9SZW5kZXJlclNldHVwKSB7CiAgICAgICAgdGhpcy5nZXRCYXNlKCkub25Xb3JrZXJNZXNzYWdlKHsgdmlkZW9TZXR1cDogc2V0dXAgfSkKICAgIH0KCiAgICBzdWJtaXRGcmFtZSh2aWRlb0ZyYW1lOiBWaWRlb0ZyYW1lKTogdm9pZCB7CiAgICAgICAgdGhpcy5nZXRCYXNlKCkub25Xb3JrZXJNZXNzYWdlKHsgdmlkZW9GcmFtZSB9LCBbdmlkZW9GcmFtZV0pCiAgICB9CiAgICBzdWJtaXRQYWNrZXQoZGF0YTogQXJyYXlCdWZmZXIpOiB2b2lkIHsKICAgICAgICAvLyB3ZSBkb24ndCBrbm93IGlmIHdlIG93biB0aGlzIGRhdGEsIHNvIHdlIGNhbm5vdCB0cmFuc2ZlcgogICAgICAgIHRoaXMuZ2V0QmFzZSgpLm9uV29ya2VyTWVzc2FnZSh7IGRhdGEgfSkKICAgIH0KICAgIHNldFRyYWNrKHRyYWNrOiBNZWRpYVN0cmVhbVRyYWNrKTogdm9pZCB7CiAgICAgICAgdGhpcy5nZXRCYXNlKCkub25Xb3JrZXJNZXNzYWdlKHsgdHJhY2sgfSwgW3RyYWNrXSkKICAgIH0KICAgIHN1Ym1pdERlY29kZVVuaXQodW5pdDogVmlkZW9EZWNvZGVVbml0KTogdm9pZCB7CiAgICAgICAgdGhpcy5nZXRCYXNlKCkub25Xb3JrZXJNZXNzYWdlKHsgdmlkZW9EYXRhOiB1bml0IH0pCiAgICB9Cn0KCmV4cG9ydCBjbGFzcyBXb3JrZXJWaWRlb0ZyYW1lU2VuZFBpcGUgZXh0ZW5kcyBXb3JrZXJTZW5kZXJQaXBlIHsKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gInZpZGVvZnJhbWUiCn0KZXhwb3J0IGNsYXNzIFdvcmtlckRhdGFTZW5kUGlwZSBleHRlbmRzIFdvcmtlclNlbmRlclBpcGUgewogICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAiZGF0YSIKfQpleHBvcnQgY2xhc3MgV29ya2VyVmlkZW9EYXRhU2VuZFBpcGUgZXh0ZW5kcyBXb3JrZXJTZW5kZXJQaXBlIHsKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gInZpZGVvZGF0YSIKfQpleHBvcnQgY2xhc3MgV29ya2VyVmlkZW9UcmFja1NlbmRQaXBlIGV4dGVuZHMgV29ya2VyU2VuZGVyUGlwZSB7CiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJ2aWRlb3RyYWNrIgp9CgoKZXhwb3J0IGNsYXNzIFdvcmtlck9mZnNjcmVlbkNhbnZhc1NlbmRQaXBlIGV4dGVuZHMgV29ya2VyU2VuZGVyUGlwZSBpbXBsZW1lbnRzIENhbnZhc1JlbmRlcmVyIHsKCiAgICBzdGF0aWMgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6ICJPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiIGluIGdsb2JhbE9iamVjdCgpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgcmVuZGVyZXI6IEJhc2VDYW52YXNWaWRlb1JlbmRlcmVyCgogICAgc3RhdGljIHJlYWRvbmx5IGJhc2VUeXBlID0gIndvcmtlcmlucHV0IgogICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAiY2FudmFzIgoKICAgIGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nID0gIm9mZnNjcmVlbl9jYW52YXNfc2VuZCIKCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBXb3JrZXJQaXBlLCBsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICBzdXBlcihiYXNlLCBsb2dnZXIpCgogICAgICAgIHRoaXMucmVuZGVyZXIgPSBuZXcgQmFzZUNhbnZhc1ZpZGVvUmVuZGVyZXIoIm9mZnNjcmVlbl9jYW52YXMiLCB7CiAgICAgICAgICAgIGRyYXdPblN1Ym1pdDogdHJ1ZQogICAgICAgIH0pCgogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKQogICAgfQoKICAgIHNldENvbnRleHQoY2FudmFzOiBPZmZzY3JlZW5DYW52YXMpIHsKICAgICAgICAvLyBUaGlzIGlzIGNhbGxlZCBmcm9tIHRoZSBXb3JrZXJQaXBlCiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRDYW52YXMoY2FudmFzKQogICAgfQoKICAgIHVzZUNhbnZhc0NvbnRleHQodHlwZTogIndlYmdsIik6IFVzZUNhbnZhc1Jlc3VsdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+OwogICAgdXNlQ2FudmFzQ29udGV4dCh0eXBlOiAid2ViZ2wyIik6IFVzZUNhbnZhc1Jlc3VsdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PjsKICAgIHVzZUNhbnZhc0NvbnRleHQodHlwZTogIjJkIik6IFVzZUNhbnZhc1Jlc3VsdDwoT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKT47CiAgICB1c2VDYW52YXNDb250ZXh0KHR5cGU6ICJ3ZWJnbCIgfCAid2ViZ2wyIiB8ICIyZCIpOiBVc2VDYW52YXNSZXN1bHQ8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiB8IFVzZUNhbnZhc1Jlc3VsdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PiB8IFVzZUNhbnZhc1Jlc3VsdDwoT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKT4gewogICAgICAgIC8vIEB0cy1pZ25vcmUKICAgICAgICByZXR1cm4gdGhpcy5yZW5kZXJlci51c2VDYW52YXNDb250ZXh0KHR5cGUpCiAgICB9CgogICAgc2V0Q2FudmFzU2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcik6IHZvaWQgewogICAgICAgIHRoaXMucmVuZGVyZXIuc2V0Q2FudmFzU2l6ZSh3aWR0aCwgaGVpZ2h0KQogICAgfQoKICAgIGNvbW1pdEZyYW1lKCk6IHZvaWQgewogICAgICAgIHRoaXMucmVuZGVyZXIuY29tbWl0RnJhbWUoKQogICAgfQp9"},{"path":"web/stream/pipeline/worker_pipe.ts","sha256":"ee7691754b2644215567e3393ada74b29513bfc79aa568b8091821c2a7c400c3","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyI7CmltcG9ydCB7IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmVyIH0gZnJvbSAiLi4vdmlkZW8vb2Zmc2NyZWVuX2NhbnZhcy5qcyI7CmltcG9ydCB7IGdldFBpcGUsIFBpcGUsIFBpcGVJbmZvLCBQaXBlbGluZSwgcGlwZWxpbmVUb1N0cmluZywgUGlwZVN0YXRpYyB9IGZyb20gIi4vaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuL3BpcGVzLmpzIjsKaW1wb3J0IHsgVG9NYWluTWVzc2FnZSwgVG9Xb3JrZXJNZXNzYWdlLCBXb3JrZXJNZXNzYWdlIH0gZnJvbSAiLi93b3JrZXJfdHlwZXMuanMiOwoKZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBpcGVsaW5lV29ya2VyKCk6IFdvcmtlciB8IG51bGwgewogICAgaWYgKCEoIldvcmtlciIgaW4gZ2xvYmFsT2JqZWN0KCkpKSB7CiAgICAgICAgcmV0dXJuIG51bGwKICAgIH0KCiAgICByZXR1cm4gbmV3IFdvcmtlcihuZXcgVVJMKCJ3b3JrZXIuanMiLCBpbXBvcnQubWV0YS51cmwpLCB7IHR5cGU6ICJtb2R1bGUiIH0pCn0KCmV4cG9ydCBpbnRlcmZhY2UgV29ya2VyUmVjZWl2ZXIgZXh0ZW5kcyBQaXBlIHsKICAgIG9uV29ya2VyTWVzc2FnZShtZXNzYWdlOiBXb3JrZXJNZXNzYWdlLCB0cmFuc2ZlcmFibGU/OiBUcmFuc2ZlcmFibGVbXSk6IHZvaWQKfQoKZXhwb3J0IGNsYXNzIFdvcmtlclBpcGUgaW1wbGVtZW50cyBXb3JrZXJSZWNlaXZlciB7CiAgICBwcm90ZWN0ZWQgc3RhdGljIGFzeW5jIGdldEluZm9JbnRlcm5hbChwaXBlbGluZTogUGlwZWxpbmUpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgY29uc3Qgd29ya2VyID0gY3JlYXRlUGlwZWxpbmVXb3JrZXIoKQogICAgICAgIGlmICghd29ya2VyKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogZmFsc2UKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgY29uc3Qgc2VuZE1lc3NhZ2U6IFRvV29ya2VyTWVzc2FnZSA9IHsgY2hlY2tTdXBwb3J0OiBwaXBlbGluZSB9CiAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKHNlbmRNZXNzYWdlKQoKICAgICAgICBjb25zdCBpbmZvID0gYXdhaXQgbmV3IFByb21pc2U8UGlwZUluZm8+KChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgICAgICAgd29ya2VyLm9ubWVzc2FnZSA9IChldmVudCkgPT4gewogICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGV2ZW50LmRhdGEgYXMgVG9NYWluTWVzc2FnZQoKICAgICAgICAgICAgICAgIGlmICgiY2hlY2tTdXBwb3J0IiBpbiBtZXNzYWdlKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShtZXNzYWdlLmNoZWNrU3VwcG9ydCkKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoImxvZyIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG1lc3NhZ2UubG9nCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRocm93ICJGYWlsZWQgdG8gZ2V0IGluZm8gYWJvdXQgd29ya2VyIHBpcGVsaW5lIGJlY2F1c2UgaXQgcmV0dXJuZWQgYSB3cm9uZyBtZXNzYWdlIgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHdvcmtlci5vbmVycm9yID0gcmVqZWN0CiAgICAgICAgfSkKCiAgICAgICAgcmV0dXJuIGluZm8KICAgIH0KCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZwoKICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIgfCBudWxsCgogICAgcHJpdmF0ZSB3b3JrZXI6IFdvcmtlcgogICAgcHJpdmF0ZSBiYXNlOiBXb3JrZXJSZWNlaXZlcgogICAgcHJpdmF0ZSBwaXBlbGluZTogUGlwZWxpbmUKCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBXb3JrZXJSZWNlaXZlciwgcGlwZWxpbmU6IFBpcGVsaW5lLCBsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uTmFtZSA9IGB3b3JrZXJfcGlwZSBbJHtwaXBlbGluZVRvU3RyaW5nKHBpcGVsaW5lKX1dIC0+ICR7YmFzZS5pbXBsZW1lbnRhdGlvbk5hbWV9YAogICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8/IG51bGwKCiAgICAgICAgaWYgKGdldFBpcGUocGlwZWxpbmUucGlwZXNbMF0pPy50eXBlICE9ICJ3b3JrZXJvdXRwdXQiKSB7CiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoIldvcmtlciBQaXBlbGluZSBkb2Vzbid0IHN0YXJ0IHdpdGggYSB3b3JrZXJvdXRwdXQhIiwgeyB0eXBlOiAiZmF0YWwiIH0pCiAgICAgICAgICAgIHRocm93ICJXb3JrZXIgUGlwZWxpbmUgZG9lc24ndCBzdGFydCB3aXRoIGEgd29ya2Vyb3V0cHV0ISIKICAgICAgICB9CiAgICAgICAgaWYgKGdldFBpcGUocGlwZWxpbmUucGlwZXNbcGlwZWxpbmUucGlwZXMubGVuZ3RoIC0gMV0pPy5iYXNlVHlwZSAhPSAid29ya2VyaW5wdXQiKSB7CiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoIldvcmtlciBQaXBlbGluZSBkb2Vzbid0IGVuZCB3aXRoIGEgd29ya2VyaW5wdXQhIiwgeyB0eXBlOiAiZmF0YWwiIH0pCiAgICAgICAgICAgIHRocm93ICJXb3JrZXIgUGlwZWxpbmUgZG9lc24ndCBzdGFydCB3aXRoIGEgd29ya2VyaW5wdXQhIgogICAgICAgIH0KCiAgICAgICAgdGhpcy5iYXNlID0gYmFzZQogICAgICAgIHRoaXMucGlwZWxpbmUgPSBwaXBlbGluZQoKICAgICAgICBjb25zdCB3b3JrZXIgPSBjcmVhdGVQaXBlbGluZVdvcmtlcigpCiAgICAgICAgaWYgKCF3b3JrZXIpIHsKICAgICAgICAgICAgbG9nZ2VyPy5kZWJ1ZygiRmFpbGVkIHRvIGNyZWF0ZSB3b3JrZXIgcGlwZWxpbmU6IFdvcmtlcnMgbm90IHN1cHBvcnRlZCEiLCB7IHR5cGU6ICJmYXRhbCIgfSkKICAgICAgICAgICAgdGhyb3cgIkZhaWxlZCB0byBjcmVhdGUgd29ya2VyIHBpcGVsaW5lOiBXb3JrZXJzIG5vdCBzdXBwb3J0ZWQhIgogICAgICAgIH0KICAgICAgICB0aGlzLndvcmtlciA9IHdvcmtlcgoKICAgICAgICB0aGlzLndvcmtlci5vbm1lc3NhZ2UgPSB0aGlzLm9uUmVjZWl2ZVdvcmtlck1lc3NhZ2UuYmluZCh0aGlzKQoKICAgICAgICBjb25zdCBtZXNzYWdlOiBUb1dvcmtlck1lc3NhZ2UgPSB7CiAgICAgICAgICAgIGNyZWF0ZVBpcGVsaW5lOiB0aGlzLnBpcGVsaW5lCiAgICAgICAgfQogICAgICAgIHRoaXMud29ya2VyLnBvc3RNZXNzYWdlKG1lc3NhZ2UpCgogICAgICAgIHRoaXMud29ya2VyLm9uZXJyb3IgPSAoZXZlbnQpID0+IHsKICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBXb3JrZXIgZXJyb3JlZCBiZWNhdXNlIG9mOiAke2V2ZW50LmVycm9yfWApCiAgICAgICAgfQoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBvbldvcmtlck1lc3NhZ2UoaW5wdXQ6IFdvcmtlck1lc3NhZ2UsIHRyYW5zZmVyPzogQXJyYXk8VHJhbnNmZXJhYmxlPik6IHZvaWQgewogICAgICAgIGNvbnN0IG1lc3NhZ2U6IFRvV29ya2VyTWVzc2FnZSA9IHsgaW5wdXQgfQoKICAgICAgICB0aGlzLndvcmtlci5wb3N0TWVzc2FnZShtZXNzYWdlLCB0cmFuc2ZlciA/PyBbXSkKICAgIH0KCiAgICBwcml2YXRlIG9uUmVjZWl2ZVdvcmtlck1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgewogICAgICAgIGNvbnN0IGRhdGE6IFRvTWFpbk1lc3NhZ2UgPSBldmVudC5kYXRhCgogICAgICAgIGlmICgib3V0cHV0IiBpbiBkYXRhKSB7CiAgICAgICAgICAgIHRoaXMuYmFzZS5vbldvcmtlck1lc3NhZ2UoZGF0YS5vdXRwdXQpCiAgICAgICAgfSBlbHNlIGlmICgibG9nIiBpbiBkYXRhKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhkYXRhLmxvZywgZGF0YS5pbmZvKQogICAgICAgIH0KICAgIH0KCiAgICBtb3VudCgpIHsKICAgICAgICBsZXQgcmVzdWx0CiAgICAgICAgaWYgKCJtb3VudCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2UubW91bnQgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICByZXN1bHQgPSB0aGlzLmJhc2UubW91bnQoLi4uYXJndW1lbnRzKQogICAgICAgIH0KCiAgICAgICAgLy8gVGhlIE9mZnNjcmVlbkNhbnZhcyBuZWVkcyB0byB0cmFuc2ZlciBpdCdzIGNhbnZhcyBpbnRvIHRoZSB3b3JrZXIsIGRvIHRoYXQgaGVyZQogICAgICAgIGlmICh0aGlzLmJhc2UgaW5zdGFuY2VvZiBPZmZzY3JlZW5DYW52YXNSZW5kZXJlciAmJiB0aGlzLmJhc2Uub2Zmc2NyZWVuKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiVHJhbnNmZXJyZWQgT2Zmc2NyZWVuQ2FudmFzIGludG8gd29ya2VyIikKCiAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuYmFzZS5vZmZzY3JlZW4KICAgICAgICAgICAgdGhpcy5vbldvcmtlck1lc3NhZ2UoeyBjYW52YXMgfSwgW2NhbnZhc10pCgogICAgICAgICAgICB0aGlzLmJhc2UudHJhbnNmZXJyZWQgPSB0cnVlCiAgICAgICAgICAgIHRoaXMuYmFzZS5vZmZzY3JlZW4gPSBudWxsCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gcmVzdWx0CiAgICB9CgogICAgY2xlYW51cCgpIHsKICAgICAgICB0aGlzLndvcmtlci50ZXJtaW5hdGUoKQoKICAgICAgICBpZiAoImNsZWFudXAiIGluIHRoaXMuYmFzZSAmJiB0eXBlb2YgdGhpcy5iYXNlLmNsZWFudXAgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICByZXR1cm4gdGhpcy5iYXNlLmNsZWFudXAoLi4uYXJndW1lbnRzKQogICAgICAgIH0KICAgIH0KCiAgICBnZXRCYXNlKCk6IFBpcGUgfCBudWxsIHsKICAgICAgICByZXR1cm4gdGhpcy5iYXNlCiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiB3b3JrZXJQaXBlKG5hbWU6IHN0cmluZywgcGlwZWxpbmU6IFBpcGVsaW5lKTogUGlwZVN0YXRpYyB7CiAgICBjbGFzcyBDdXN0b21Xb3JrZXJQaXBlIGV4dGVuZHMgV29ya2VyUGlwZSB7CiAgICAgICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRJbmZvSW50ZXJuYWwocGlwZWxpbmUpCiAgICAgICAgfQoKICAgICAgICBzdGF0aWMgcmVhZG9ubHkgYmFzZVR5cGUgPSAid29ya2Vyb3V0cHV0IgogICAgICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gIndvcmtlcmlucHV0IgoKICAgICAgICBjb25zdHJ1Y3RvcihiYXNlOiBhbnksIGxvZ2dlcj86IExvZ2dlcikgewogICAgICAgICAgICBzdXBlcihiYXNlLCBwaXBlbGluZSwgbG9nZ2VyKQogICAgICAgIH0KICAgIH0KCiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoQ3VzdG9tV29ya2VyUGlwZSwgIm5hbWUiLCB7IHZhbHVlOiBuYW1lIH0pCgogICAgcmV0dXJuIEN1c3RvbVdvcmtlclBpcGUKfQ=="},{"path":"web/stream/pipeline/worker_types.d.ts","sha256":"24f97ed375b7c9d14d0d22a92d7634041321f1b541a78ff9107c8874589baecd","contentBase64":"aW1wb3J0IHsgTG9nTWVzc2FnZUluZm8gfSBmcm9tICIuLi9sb2cuanMiCmltcG9ydCB7IFZpZGVvRGVjb2RlVW5pdCwgVmlkZW9SZW5kZXJlclNldHVwIH0gZnJvbSAiLi4vdmlkZW8vaW5kZXguanMiCmltcG9ydCB7IFBpcGVJbmZvLCBQaXBlbGluZSB9IGZyb20gIi4vaW5kZXguanMiCgpleHBvcnQgdHlwZSBUb1dvcmtlck1lc3NhZ2UgPQogICAgeyBjaGVja1N1cHBvcnQ6IFBpcGVsaW5lIH0gfAogICAgeyBjcmVhdGVQaXBlbGluZTogUGlwZWxpbmUgfSB8CiAgICB7IGlucHV0OiBXb3JrZXJNZXNzYWdlIH0KCmV4cG9ydCB0eXBlIFdvcmtlck1lc3NhZ2UgPQogICAgeyBjYWxsOiAiY2xlYW51cCIgfSB8CiAgICB7IHZpZGVvU2V0dXA6IFZpZGVvUmVuZGVyZXJTZXR1cCB9IHwKICAgIC8vIFZpZGVvRnJhbWUgaXMgYSB0cmFuc2ZlcmFibGUgb2JqZWN0CiAgICB7IHZpZGVvRnJhbWU6IFZpZGVvRnJhbWUgfSB8CiAgICAvLyBNZWRpYVN0cmVhbVRyYWNrIGlzIGEgdHJhbnNmZXJhYmxlIG9iamVjdCB3aGVuIHVzaW5nIHRoZSB0cmFuc2ZlciBwYXJhbWV0ZXIKICAgIHsgdHJhY2s6IE1lZGlhU3RyZWFtVHJhY2sgfSB8CiAgICB7IGRhdGE6IEFycmF5QnVmZmVyIH0gfAogICAgeyB2aWRlb0RhdGE6IFZpZGVvRGVjb2RlVW5pdCB9IHwKICAgIC8vIENhbnZhcyBzdHVmZgogICAgeyBjYW52YXM6IE9mZnNjcmVlbkNhbnZhcyB9CgpleHBvcnQgdHlwZSBUb01haW5NZXNzYWdlID0KICAgIHsgY2hlY2tTdXBwb3J0OiBQaXBlSW5mbyB9IHwKICAgIHsgbG9nOiBzdHJpbmcsIGluZm86IExvZ01lc3NhZ2VJbmZvIH0gfAogICAgeyBvdXRwdXQ6IFdvcmtlck1lc3NhZ2UgfQo="},{"path":"web/stream/stats.ts","sha256":"22ba848e9faef821232285f2bad3ce63e840b21ddec70d718243510c7a02b337","contentBase64":"aW1wb3J0IHsgU3RyZWFtZXJTdGF0c1VwZGF0ZSwgVHJhbnNwb3J0Q2hhbm5lbElkIH0gZnJvbSAiLi4vYXBpX2JpbmRpbmdzLmpzIgppbXBvcnQgeyBCSUdfQlVGRkVSLCBCeXRlQnVmZmVyIH0gZnJvbSAiLi9idWZmZXIuanMiCmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4vbG9nLmpzIgppbXBvcnQgeyBQaXBlIH0gZnJvbSAiLi9waXBlbGluZS9pbmRleC5qcyIKaW1wb3J0IHsgRGF0YVRyYW5zcG9ydENoYW5uZWwsIFRyYW5zcG9ydCB9IGZyb20gIi4vdHJhbnNwb3J0L2luZGV4LmpzIgoKZXhwb3J0IHR5cGUgU3RhdFZhbHVlID0gc3RyaW5nIHwgbnVtYmVyCmV4cG9ydCB0eXBlIEljZUNhbmRpZGF0ZVR5cGUgPSAiaG9zdCIgfCAic3JmbHgiIHwgInByZmx4IiB8ICJyZWxheSIKZXhwb3J0IHR5cGUgRGlyZWN0Q29ubmVjdGlvbk91dGNvbWUgPSAidW5hdmFpbGFibGUiIHwgImF0dGVtcHRpbmciIHwgImNvbm5lY3RlZCIgfCAidGltZWQtb3V0IiB8ICJmYWlsZWQiIHwgImNhbmNlbGxlZCIKZXhwb3J0IHR5cGUgRGlyZWN0Q29ubmVjdGlvblJlYXNvbiA9ICJub3QtZW5hYmxlZCIgfCAic2V0dXAtbWlzc2luZyIgfCAibmVnb3RpYXRpb24tdGltZW91dCIgfCAibmVnb3RpYXRpb24tZmFpbGVkIiB8ICJzZXR1cC1mYWlsZWQiIHwgInZpZGVvLXVuYXZhaWxhYmxlIiB8ICJjb25uZWN0aW9uLWxvc3QiIHwgInN0b3BwZWQiCmV4cG9ydCB0eXBlIERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljID0gewogICAgb3V0Y29tZTogRGlyZWN0Q29ubmVjdGlvbk91dGNvbWUKICAgIHJlYXNvbj86IERpcmVjdENvbm5lY3Rpb25SZWFzb24KICAgIGZhbGxiYWNrOiBib29sZWFuCiAgICBlbGFwc2VkTXM/OiBudW1iZXIKICAgIGljZVN0YXRlPzogc3RyaW5nCiAgICBnYXRoZXJpbmdTdGF0ZT86IHN0cmluZwogICAgbG9jYWxDYW5kaWRhdGVzPzogUGFydGlhbDxSZWNvcmQ8SWNlQ2FuZGlkYXRlVHlwZSwgbnVtYmVyPj4KICAgIHJlbW90ZUNhbmRpZGF0ZXM/OiBQYXJ0aWFsPFJlY29yZDxJY2VDYW5kaWRhdGVUeXBlLCBudW1iZXI+Pgp9CgpleHBvcnQgdHlwZSBTdHJlYW1TdGF0c0RhdGEgPSB7CiAgICB2aWRlb0NvZGVjOiBzdHJpbmcgfCBudWxsCiAgICB2aWRlb1dpZHRoOiBudW1iZXIgfCBudWxsCiAgICB2aWRlb0hlaWdodDogbnVtYmVyIHwgbnVsbAogICAgdmlkZW9GcHM6IG51bWJlciB8IG51bGwKICAgIHZpZGVvUGlwZWxpbmU6IHN0cmluZyB8IG51bGwKICAgIGF1ZGlvUGlwZWxpbmU6IHN0cmluZyB8IG51bGwKICAgIGhkckVuYWJsZWQ6IGJvb2xlYW4gfCBudWxsCiAgICBzdHJlYW1lclJ0dE1zOiBudW1iZXIgfCBudWxsCiAgICBzdHJlYW1lclJ0dFZhcmlhbmNlTXM6IG51bWJlciB8IG51bGwKICAgIG1pbkhvc3RQcm9jZXNzaW5nTGF0ZW5jeU1zOiBudW1iZXIgfCBudWxsCiAgICBtYXhIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNczogbnVtYmVyIHwgbnVsbAogICAgYXZnSG9zdFByb2Nlc3NpbmdMYXRlbmN5TXM6IG51bWJlciB8IG51bGwKICAgIG1pblN0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNczogbnVtYmVyIHwgbnVsbAogICAgbWF4U3RyZWFtZXJQcm9jZXNzaW5nVGltZU1zOiBudW1iZXIgfCBudWxsCiAgICBhdmdTdHJlYW1lclByb2Nlc3NpbmdUaW1lTXM6IG51bWJlciB8IG51bGwKICAgIGJyb3dzZXJSdHQ6IG51bWJlciB8IG51bGwKICAgIHRyYW5zcG9ydDogUmVjb3JkPHN0cmluZywgU3RhdFZhbHVlIHwgRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWM+CiAgICB2aWRlbzogUmVjb3JkPHN0cmluZywgU3RhdFZhbHVlPgogICAgYXVkaW86IFJlY29yZDxzdHJpbmcsIFN0YXRWYWx1ZT4KfQoKZnVuY3Rpb24gbnVtKHZhbHVlOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCBzdWZmaXg/OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHsKICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7CiAgICAgICAgcmV0dXJuIG51bGwKICAgIH0gZWxzZSB7CiAgICAgICAgcmV0dXJuIGAke3ZhbHVlLnRvRml4ZWQoMil9JHtzdWZmaXggPz8gIiJ9YAogICAgfQp9CgpleHBvcnQgZnVuY3Rpb24gc3RyZWFtU3RhdHNUb1RleHQoc3RhdHNEYXRhOiBTdHJlYW1TdGF0c0RhdGEpOiBzdHJpbmcgewogICAgbGV0IHRleHQgPSBgc3RhdHM6CnZpZGVvIGluZm9ybWF0aW9uOiAke3N0YXRzRGF0YS52aWRlb0NvZGVjfSwgJHtzdGF0c0RhdGEudmlkZW9XaWR0aH14JHtzdGF0c0RhdGEudmlkZW9IZWlnaHR9LCAke3N0YXRzRGF0YS52aWRlb0Zwc30gZnBzCkhEUjogJHtzdGF0c0RhdGEuaGRyRW5hYmxlZCA9PT0gdHJ1ZSA/ICJFbmFibGVkIiA6IHN0YXRzRGF0YS5oZHJFbmFibGVkID09PSBmYWxzZSA/ICJEaXNhYmxlZCIgOiAiVW5rbm93biJ9CnZpZGVvIHBpcGVsaW5lOiAke3N0YXRzRGF0YS52aWRlb1BpcGVsaW5lfQphdWRpbyBwaXBlbGluZTogJHtzdGF0c0RhdGEuYXVkaW9QaXBlbGluZX0Kc3RyZWFtZXIgcm91bmQgdHJpcCB0aW1lOiAke251bShzdGF0c0RhdGEuc3RyZWFtZXJSdHRNcywgIm1zIil9ICh2YXJpYW5jZTogJHtudW0oc3RhdHNEYXRhLnN0cmVhbWVyUnR0VmFyaWFuY2VNcywgIm1zIil9KQpob3N0IHByb2Nlc3NpbmcgbGF0ZW5jeSBtaW4vbWF4L2F2ZzogJHtudW0oc3RhdHNEYXRhLm1pbkhvc3RQcm9jZXNzaW5nTGF0ZW5jeU1zLCAibXMiKX0gLyAke251bShzdGF0c0RhdGEubWF4SG9zdFByb2Nlc3NpbmdMYXRlbmN5TXMsICJtcyIpfSAvICR7bnVtKHN0YXRzRGF0YS5hdmdIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNcywgIm1zIil9CnN0cmVhbWVyIHByb2Nlc3NpbmcgbGF0ZW5jeSBtaW4vbWF4L2F2ZzogJHtudW0oc3RhdHNEYXRhLm1pblN0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNcywgIm1zIil9IC8gJHtudW0oc3RhdHNEYXRhLm1heFN0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNcywgIm1zIil9IC8gJHtudW0oc3RhdHNEYXRhLmF2Z1N0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNcywgIm1zIil9CnN0cmVhbWVyIHRvIGJyb3dzZXIgcnR0ICh3cyBvbmx5KTogJHtudW0oc3RhdHNEYXRhLmJyb3dzZXJSdHQsICJtcyIpfQpgCiAgICBmb3IgKGNvbnN0IGtleSBpbiBzdGF0c0RhdGEudHJhbnNwb3J0KSB7CiAgICAgICAgY29uc3QgdmFsdWUgPSBzdGF0c0RhdGEudHJhbnNwb3J0W2tleV0KICAgICAgICBsZXQgdmFsdWVQcmV0dHkgPSB2YWx1ZQoKICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09ICJudW1iZXIiICYmIGtleS5lbmRzV2l0aCgiTXMiKSkgewogICAgICAgICAgICB2YWx1ZVByZXR0eSA9IGAke251bSh2YWx1ZSwgIm1zIil9YAogICAgICAgIH0KCiAgICAgICAgdGV4dCArPSBgJHtrZXl9OiAke3ZhbHVlUHJldHR5fVxuYAogICAgfQoKICAgIGZvciAoY29uc3Qga2V5IGluIHN0YXRzRGF0YS52aWRlbykgewogICAgICAgIGNvbnN0IHZhbHVlID0gc3RhdHNEYXRhLnZpZGVvW2tleV0KICAgICAgICBsZXQgdmFsdWVQcmV0dHkgPSB2YWx1ZQoKICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09ICJudW1iZXIiICYmIGtleS5lbmRzV2l0aCgiTXMiKSkgewogICAgICAgICAgICB2YWx1ZVByZXR0eSA9IGAke251bSh2YWx1ZSwgIm1zIil9YAogICAgICAgIH0KCiAgICAgICAgdGV4dCArPSBgJHtrZXl9OiAke3ZhbHVlUHJldHR5fVxuYAogICAgfQoKICAgIGZvciAoY29uc3Qga2V5IGluIHN0YXRzRGF0YS5hdWRpbykgewogICAgICAgIGNvbnN0IHZhbHVlID0gc3RhdHNEYXRhLmF1ZGlvW2tleV0KICAgICAgICBsZXQgdmFsdWVQcmV0dHkgPSB2YWx1ZQoKICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09ICJudW1iZXIiICYmIGtleS5lbmRzV2l0aCgiTXMiKSkgewogICAgICAgICAgICB2YWx1ZVByZXR0eSA9IGAke251bSh2YWx1ZSwgIm1zIil9YAogICAgICAgIH0KCiAgICAgICAgdGV4dCArPSBgJHtrZXl9OiAke3ZhbHVlUHJldHR5fVxuYAogICAgfQoKICAgIHJldHVybiB0ZXh0Cn0KCi8vIEtlZXAgdGhpcyBleHBsaWNpdDogdHJhbnNwb3J0IGRpYWdub3N0aWNzIG11c3QgbmV2ZXIgY2FycnkgSUNFIGFkZHJlc3NlcywKLy8gU0RQLCBjcmVkZW50aWFscywgcmF3IGVycm9ycywgb3IgYXJiaXRyYXJ5IHN0cmluZ3MgaW50byBleHBvcnRlZCBzbmFwc2hvdHMuCmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZURpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKGlucHV0OiB1bmtub3duKTogRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMgfCBudWxsIHsKICAgIGlmICghaW5wdXQgfHwgdHlwZW9mIGlucHV0ICE9PSAib2JqZWN0IikgcmV0dXJuIG51bGwKICAgIGNvbnN0IHZhbHVlID0gaW5wdXQgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4KICAgIGlmICh0eXBlb2YgdmFsdWUub3V0Y29tZSAhPT0gInN0cmluZyIgfHwgIVsidW5hdmFpbGFibGUiLCAiYXR0ZW1wdGluZyIsICJjb25uZWN0ZWQiLCAidGltZWQtb3V0IiwgImZhaWxlZCIsICJjYW5jZWxsZWQiXS5pbmNsdWRlcyh2YWx1ZS5vdXRjb21lKSkgcmV0dXJuIG51bGwKICAgIGNvbnN0IHJlc3VsdDogRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMgPSB7IG91dGNvbWU6IHZhbHVlLm91dGNvbWUgYXMgRGlyZWN0Q29ubmVjdGlvbk91dGNvbWUsIGZhbGxiYWNrOiB2YWx1ZS5mYWxsYmFjayA9PT0gdHJ1ZSB9CiAgICBpZiAodHlwZW9mIHZhbHVlLnJlYXNvbiA9PT0gInN0cmluZyIgJiYgWyJub3QtZW5hYmxlZCIsICJzZXR1cC1taXNzaW5nIiwgIm5lZ290aWF0aW9uLXRpbWVvdXQiLCAibmVnb3RpYXRpb24tZmFpbGVkIiwgInNldHVwLWZhaWxlZCIsICJ2aWRlby11bmF2YWlsYWJsZSIsICJjb25uZWN0aW9uLWxvc3QiLCAic3RvcHBlZCJdLmluY2x1ZGVzKHZhbHVlLnJlYXNvbikpCiAgICAgICAgcmVzdWx0LnJlYXNvbiA9IHZhbHVlLnJlYXNvbiBhcyBEaXJlY3RDb25uZWN0aW9uUmVhc29uCiAgICBpZiAodHlwZW9mIHZhbHVlLmVsYXBzZWRNcyA9PT0gIm51bWJlciIgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlLmVsYXBzZWRNcykgJiYgdmFsdWUuZWxhcHNlZE1zID49IDAgJiYgdmFsdWUuZWxhcHNlZE1zIDw9IDYwMDAwKQogICAgICAgIHJlc3VsdC5lbGFwc2VkTXMgPSBNYXRoLnJvdW5kKHZhbHVlLmVsYXBzZWRNcykKICAgIGlmICh0eXBlb2YgdmFsdWUuaWNlU3RhdGUgPT09ICJzdHJpbmciICYmIFsibmV3IiwgImNoZWNraW5nIiwgImNvbm5lY3RlZCIsICJjb21wbGV0ZWQiLCAiZGlzY29ubmVjdGVkIiwgImZhaWxlZCIsICJjbG9zZWQiXS5pbmNsdWRlcyh2YWx1ZS5pY2VTdGF0ZSkpIHJlc3VsdC5pY2VTdGF0ZSA9IHZhbHVlLmljZVN0YXRlCiAgICBpZiAodHlwZW9mIHZhbHVlLmdhdGhlcmluZ1N0YXRlID09PSAic3RyaW5nIiAmJiBbIm5ldyIsICJnYXRoZXJpbmciLCAiY29tcGxldGUiXS5pbmNsdWRlcyh2YWx1ZS5nYXRoZXJpbmdTdGF0ZSkpIHJlc3VsdC5nYXRoZXJpbmdTdGF0ZSA9IHZhbHVlLmdhdGhlcmluZ1N0YXRlCiAgICBmb3IgKGNvbnN0IHNpZGUgb2YgWyJsb2NhbENhbmRpZGF0ZXMiLCAicmVtb3RlQ2FuZGlkYXRlcyJdIGFzIGNvbnN0KSB7CiAgICAgICAgY29uc3Qgc291cmNlID0gdmFsdWVbc2lkZV0KICAgICAgICBpZiAoIXNvdXJjZSB8fCB0eXBlb2Ygc291cmNlICE9PSAib2JqZWN0IikgY29udGludWUKICAgICAgICBjb25zdCBjb3VudHM6IFBhcnRpYWw8UmVjb3JkPEljZUNhbmRpZGF0ZVR5cGUsIG51bWJlcj4+ID0ge30KICAgICAgICBmb3IgKGNvbnN0IHR5cGUgb2YgWyJob3N0IiwgInNyZmx4IiwgInByZmx4IiwgInJlbGF5Il0gYXMgY29uc3QpIHsKICAgICAgICAgICAgY29uc3QgY291bnQgPSAoc291cmNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVt0eXBlXQogICAgICAgICAgICBpZiAodHlwZW9mIGNvdW50ID09PSAibnVtYmVyIiAmJiBOdW1iZXIuaXNJbnRlZ2VyKGNvdW50KSAmJiBjb3VudCA+PSAwICYmIGNvdW50IDw9IDEwMDApIGNvdW50c1t0eXBlXSA9IGNvdW50CiAgICAgICAgfQogICAgICAgIGlmIChPYmplY3Qua2V5cyhjb3VudHMpLmxlbmd0aCkgcmVzdWx0W3NpZGVdID0gY291bnRzCiAgICB9CiAgICByZXR1cm4gcmVzdWx0Cn0KCmV4cG9ydCBjbGFzcyBTdHJlYW1TdGF0cyB7CgogICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlciB8IG51bGwgPSBudWxsCgogICAgcHJpdmF0ZSBlbmFibGVkOiBib29sZWFuID0gZmFsc2UKICAgIHByaXZhdGUgdHJhbnNwb3J0OiBUcmFuc3BvcnQgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBzdGF0c0NoYW5uZWw6IERhdGFUcmFuc3BvcnRDaGFubmVsIHwgbnVsbCA9IG51bGwKICAgIHByaXZhdGUgdXBkYXRlSW50ZXJ2YWxJZDogbnVtYmVyIHwgbnVsbCA9IG51bGwKICAgIHByaXZhdGUgcmVhZG9ubHkgb25SYXdEYXRhQm91bmQgPSB0aGlzLm9uUmF3RGF0YS5iaW5kKHRoaXMpCgogICAgcHJpdmF0ZSB2aWRlb1BpcGU6IFBpcGUgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBhdWRpb1BpcGU6IFBpcGUgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBkaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYzogRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBzdGF0c0RhdGE6IFN0cmVhbVN0YXRzRGF0YSA9IHsKICAgICAgICB2aWRlb0NvZGVjOiBudWxsLAogICAgICAgIHZpZGVvV2lkdGg6IG51bGwsCiAgICAgICAgdmlkZW9IZWlnaHQ6IG51bGwsCiAgICAgICAgdmlkZW9GcHM6IG51bGwsCiAgICAgICAgdmlkZW9QaXBlbGluZTogbnVsbCwKICAgICAgICBhdWRpb1BpcGVsaW5lOiBudWxsLAogICAgICAgIGhkckVuYWJsZWQ6IG51bGwsCiAgICAgICAgc3RyZWFtZXJSdHRNczogbnVsbCwKICAgICAgICBzdHJlYW1lclJ0dFZhcmlhbmNlTXM6IG51bGwsCiAgICAgICAgbWluSG9zdFByb2Nlc3NpbmdMYXRlbmN5TXM6IG51bGwsCiAgICAgICAgbWF4SG9zdFByb2Nlc3NpbmdMYXRlbmN5TXM6IG51bGwsCiAgICAgICAgYXZnSG9zdFByb2Nlc3NpbmdMYXRlbmN5TXM6IG51bGwsCiAgICAgICAgbWluU3RyZWFtZXJQcm9jZXNzaW5nVGltZU1zOiBudWxsLAogICAgICAgIG1heFN0cmVhbWVyUHJvY2Vzc2luZ1RpbWVNczogbnVsbCwKICAgICAgICBhdmdTdHJlYW1lclByb2Nlc3NpbmdUaW1lTXM6IG51bGwsCiAgICAgICAgYnJvd3NlclJ0dDogbnVsbCwKICAgICAgICB0cmFuc3BvcnQ6IHt9LAogICAgICAgIHZpZGVvOiB7fSwKICAgICAgICBhdWRpbzoge30KICAgIH0KCiAgICBjb25zdHJ1Y3Rvcihsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICBpZiAobG9nZ2VyKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyCiAgICAgICAgfQogICAgfQoKICAgIHNldFRyYW5zcG9ydCh0cmFuc3BvcnQ6IFRyYW5zcG9ydCkgewogICAgICAgIHRoaXMudHJhbnNwb3J0ID0gdHJhbnNwb3J0CiAgICAgICAgdGhpcy5zdGF0c0RhdGEudHJhbnNwb3J0ID0geyBraW5kOiB0cmFuc3BvcnQuaW1wbGVtZW50YXRpb25OYW1lIH0KICAgICAgICB0aGlzLmF0dGFjaERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKCkKICAgICAgICB0aGlzLnN0YXRzRGF0YS5icm93c2VyUnR0ID0gbnVsbAoKICAgICAgICB0aGlzLmNoZWNrRW5hYmxlZCgpCiAgICB9CiAgICBzZXREaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyh2YWx1ZTogdW5rbm93bikgewogICAgICAgIHRoaXMuZGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMgPSBzYW5pdGl6ZURpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKHZhbHVlKQogICAgICAgIHRoaXMuYXR0YWNoRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMoKQogICAgfQogICAgcHJpdmF0ZSBhdHRhY2hEaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYygpIHsKICAgICAgICAvLyBLZWVwIGludGVybmFsIGRpYWdub3N0aWNzIHNlcGFyYXRlIGZyb20gdGhlIGNvbnN1bWVyLXZpc2libGUgc25hcHNob3QuCiAgICAgICAgZGVsZXRlIHRoaXMuc3RhdHNEYXRhLnRyYW5zcG9ydC5kaXJlY3RDb25uZWN0aW9uCiAgICAgICAgaWYgKHRoaXMuZGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMpCiAgICAgICAgICAgIHRoaXMuc3RhdHNEYXRhLnRyYW5zcG9ydC5kaXJlY3RDb25uZWN0aW9uID0gc2FuaXRpemVEaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYyh0aGlzLmRpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljKSEKICAgIH0KICAgIHByaXZhdGUgY2hlY2tFbmFibGVkKCkgewogICAgICAgIGlmICh0aGlzLnN0YXRzQ2hhbm5lbCkgewogICAgICAgICAgICB0aGlzLnN0YXRzQ2hhbm5lbC5yZW1vdmVSZWNlaXZlTGlzdGVuZXIodGhpcy5vblJhd0RhdGFCb3VuZCkKICAgICAgICAgICAgdGhpcy5zdGF0c0NoYW5uZWwgPSBudWxsCiAgICAgICAgfQogICAgICAgIGlmICh0aGlzLmVuYWJsZWQpIHsKCiAgICAgICAgICAgIGlmICghdGhpcy5zdGF0c0NoYW5uZWwgJiYgdGhpcy50cmFuc3BvcnQpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5uZWwgPSB0aGlzLnRyYW5zcG9ydC5nZXRDaGFubmVsKFRyYW5zcG9ydENoYW5uZWxJZC5TVEFUUykKICAgICAgICAgICAgICAgIGlmIChjaGFubmVsLnR5cGUgIT0gImRhdGEiKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBGYWlsZWQgaW5pdGlhbGl6ZSBkZWJ1ZyB0cmFuc3BvcnQgY2hhbm5lbCBiZWNhdXNlIHR5cGUgaXMgIiR7Y2hhbm5lbC50eXBlfSIgYW5kIG5vdCAiZGF0YSJgKQogICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY2hhbm5lbC5hZGRSZWNlaXZlTGlzdGVuZXIodGhpcy5vblJhd0RhdGFCb3VuZCkKICAgICAgICAgICAgICAgIHRoaXMuc3RhdHNDaGFubmVsID0gY2hhbm5lbAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZUludGVydmFsSWQgPT0gbnVsbCkgewogICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwodGhpcy51cGRhdGVMb2NhbFN0YXRzLmJpbmQodGhpcyksIDEwMDApCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGhpcy51cGRhdGVJbnRlcnZhbElkICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy51cGRhdGVJbnRlcnZhbElkKQogICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJbnRlcnZhbElkID0gbnVsbAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHNldEVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikgewogICAgICAgIHRoaXMuZW5hYmxlZCA9IGVuYWJsZWQKCiAgICAgICAgdGhpcy5jaGVja0VuYWJsZWQoKQogICAgfQogICAgaXNFbmFibGVkKCk6IGJvb2xlYW4gewogICAgICAgIHJldHVybiB0aGlzLmVuYWJsZWQKICAgIH0KICAgIHRvZ2dsZSgpIHsKICAgICAgICB0aGlzLnNldEVuYWJsZWQoIXRoaXMuaXNFbmFibGVkKCkpCiAgICB9CgogICAgcHJpdmF0ZSBidWZmZXI6IEJ5dGVCdWZmZXIgPSBCSUdfQlVGRkVSCiAgICBwcml2YXRlIG9uUmF3RGF0YShkYXRhOiBBcnJheUJ1ZmZlcikgewogICAgICAgIHRoaXMuYnVmZmVyLnJlc2V0KCkKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVOEFycmF5KG5ldyBVaW50OEFycmF5KGRhdGEpKQoKICAgICAgICB0aGlzLmJ1ZmZlci5mbGlwKCkKCiAgICAgICAgY29uc3QgdGV4dExlbmd0aCA9IHRoaXMuYnVmZmVyLmdldFUxNigpCiAgICAgICAgY29uc3QgdGV4dCA9IHRoaXMuYnVmZmVyLmdldFV0ZjhSYXcodGV4dExlbmd0aCkKCiAgICAgICAgY29uc3QganNvbjogU3RyZWFtZXJTdGF0c1VwZGF0ZSA9IEpTT04ucGFyc2UodGV4dCkKICAgICAgICB0aGlzLm9uTWVzc2FnZShqc29uKQogICAgfQogICAgcHJpdmF0ZSBvbk1lc3NhZ2UobXNnOiBTdHJlYW1lclN0YXRzVXBkYXRlKSB7CiAgICAgICAgaWYgKCJSdHQiIGluIG1zZykgewogICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5zdHJlYW1lclJ0dE1zID0gbXNnLlJ0dC5ydHRfbXMKICAgICAgICAgICAgdGhpcy5zdGF0c0RhdGEuc3RyZWFtZXJSdHRWYXJpYW5jZU1zID0gbXNnLlJ0dC5ydHRfdmFyaWFuY2VfbXMKICAgICAgICB9IGVsc2UgaWYgKCJWaWRlbyIgaW4gbXNnKSB7CiAgICAgICAgICAgIGlmIChtc2cuVmlkZW8uaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kpIHsKICAgICAgICAgICAgICAgIHRoaXMuc3RhdHNEYXRhLm1pbkhvc3RQcm9jZXNzaW5nTGF0ZW5jeU1zID0gbXNnLlZpZGVvLmhvc3RfcHJvY2Vzc2luZ19sYXRlbmN5Lm1pbl9ob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeV9tcwogICAgICAgICAgICAgICAgdGhpcy5zdGF0c0RhdGEubWF4SG9zdFByb2Nlc3NpbmdMYXRlbmN5TXMgPSBtc2cuVmlkZW8uaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3kubWF4X2hvc3RfcHJvY2Vzc2luZ19sYXRlbmN5X21zCiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5hdmdIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNcyA9IG1zZy5WaWRlby5ob3N0X3Byb2Nlc3NpbmdfbGF0ZW5jeS5hdmdfaG9zdF9wcm9jZXNzaW5nX2xhdGVuY3lfbXMKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRoaXMuc3RhdHNEYXRhLm1pbkhvc3RQcm9jZXNzaW5nTGF0ZW5jeU1zID0gbnVsbAogICAgICAgICAgICAgICAgdGhpcy5zdGF0c0RhdGEubWF4SG9zdFByb2Nlc3NpbmdMYXRlbmN5TXMgPSBudWxsCiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS5hdmdIb3N0UHJvY2Vzc2luZ0xhdGVuY3lNcyA9IG51bGwKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5zdGF0c0RhdGEubWluU3RyZWFtZXJQcm9jZXNzaW5nVGltZU1zID0gbXNnLlZpZGVvLm1pbl9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWVfbXMKICAgICAgICAgICAgdGhpcy5zdGF0c0RhdGEubWF4U3RyZWFtZXJQcm9jZXNzaW5nVGltZU1zID0gbXNnLlZpZGVvLm1heF9zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWVfbXMKICAgICAgICAgICAgdGhpcy5zdGF0c0RhdGEuYXZnU3RyZWFtZXJQcm9jZXNzaW5nVGltZU1zID0gbXNnLlZpZGVvLmF2Z19zdHJlYW1lcl9wcm9jZXNzaW5nX3RpbWVfbXMKICAgICAgICB9IGVsc2UgaWYgKCJCcm93c2VyUnR0IiBpbiBtc2cpIHsKICAgICAgICAgICAgdGhpcy5zdGF0c0RhdGEuYnJvd3NlclJ0dCA9IG1zZy5Ccm93c2VyUnR0LnJ0dF9tcwogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGFzeW5jIHVwZGF0ZUxvY2FsU3RhdHMoKSB7CiAgICAgICAgUHJvbWlzZS5hbGwoWwogICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zcG9ydFN0YXRzKCksCiAgICAgICAgICAgIHRoaXMudXBkYXRlVmlkZW9TdGF0cygpLAogICAgICAgICAgICB0aGlzLnVwZGF0ZUF1ZGlvU3RhdHMoKSwKICAgICAgICBdKQogICAgfQogICAgcHJpdmF0ZSBhc3luYyB1cGRhdGVUcmFuc3BvcnRTdGF0cygpIHsKICAgICAgICBpZiAoIXRoaXMudHJhbnNwb3J0KSB7CiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoIkNhbm5vdCBxdWVyeSBzdGF0cyB3aXRob3V0IHRyYW5zcG9ydCIpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgY29uc3QgdHJhbnNwb3J0ID0gdGhpcy50cmFuc3BvcnQKICAgICAgICB0cnkgewogICAgICAgICAgICBjb25zdCBzdGF0cyA9IGF3YWl0IHRyYW5zcG9ydC5nZXRTdGF0cygpCiAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zcG9ydCA9PT0gdHJhbnNwb3J0KSB7CiAgICAgICAgICAgICAgICB0aGlzLnN0YXRzRGF0YS50cmFuc3BvcnQgPSB7IC4uLnN0YXRzLCBraW5kOiB0cmFuc3BvcnQuaW1wbGVtZW50YXRpb25OYW1lIH0KICAgICAgICAgICAgICAgIHRoaXMuYXR0YWNoRGlyZWN0Q29ubmVjdGlvbkRpYWdub3N0aWMoKQogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCB7IC8qIEEgY2xvc2luZyBwZWVyIGNhbiByZWplY3QgYSBwZW5kaW5nIHN0YXRzIHJlcXVlc3QuICovIH0KICAgIH0KICAgIHByaXZhdGUgYXN5bmMgdXBkYXRlVmlkZW9TdGF0cygpIHsKICAgICAgICBjb25zdCBzdGF0cyA9IHt9CgogICAgICAgIGlmICh0aGlzLnZpZGVvUGlwZSAmJiB0aGlzLnZpZGVvUGlwZS5yZXBvcnRTdGF0cykgewogICAgICAgICAgICB0aGlzLnZpZGVvUGlwZS5yZXBvcnRTdGF0cyhzdGF0cykKICAgICAgICB9CgogICAgICAgIHRoaXMuc3RhdHNEYXRhLnZpZGVvID0gc3RhdHMKICAgIH0KICAgIHByaXZhdGUgYXN5bmMgdXBkYXRlQXVkaW9TdGF0cygpIHsKICAgICAgICBjb25zdCBzdGF0cyA9IHt9CgogICAgICAgIGlmICh0aGlzLmF1ZGlvUGlwZSAmJiB0aGlzLmF1ZGlvUGlwZS5yZXBvcnRTdGF0cykgewogICAgICAgICAgICB0aGlzLmF1ZGlvUGlwZS5yZXBvcnRTdGF0cyhzdGF0cykKICAgICAgICB9CgogICAgICAgIHRoaXMuc3RhdHNEYXRhLmF1ZGlvID0gc3RhdHMKICAgIH0KCiAgICBzZXRWaWRlb0luZm8oY29kZWM6IHN0cmluZywgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIGZwczogbnVtYmVyKSB7CiAgICAgICAgdGhpcy5zdGF0c0RhdGEudmlkZW9Db2RlYyA9IGNvZGVjCiAgICAgICAgdGhpcy5zdGF0c0RhdGEudmlkZW9XaWR0aCA9IHdpZHRoCiAgICAgICAgdGhpcy5zdGF0c0RhdGEudmlkZW9IZWlnaHQgPSBoZWlnaHQKICAgICAgICB0aGlzLnN0YXRzRGF0YS52aWRlb0ZwcyA9IGZwcwogICAgfQogICAgc2V0VmlkZW9QaXBlbGluZShuYW1lOiBzdHJpbmcsIHBpcGU6IFBpcGUgfCBudWxsKSB7CiAgICAgICAgdGhpcy5zdGF0c0RhdGEudmlkZW9QaXBlbGluZSA9IG5hbWUKICAgICAgICB0aGlzLnZpZGVvUGlwZSA9IHBpcGUKICAgIH0KICAgIHNldEF1ZGlvUGlwZWxpbmUobmFtZTogc3RyaW5nLCBwaXBlOiBQaXBlIHwgbnVsbCkgewogICAgICAgIHRoaXMuc3RhdHNEYXRhLmF1ZGlvUGlwZWxpbmUgPSBuYW1lCiAgICAgICAgdGhpcy5hdWRpb1BpcGUgPSBwaXBlCiAgICB9CiAgICBzZXRIZHJFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pIHsKICAgICAgICB0aGlzLnN0YXRzRGF0YS5oZHJFbmFibGVkID0gZW5hYmxlZAogICAgfQoKICAgIGdldEN1cnJlbnRTdGF0cygpOiBTdHJlYW1TdGF0c0RhdGEgewogICAgICAgIGNvbnN0IGRhdGEgPSB7fQogICAgICAgIE9iamVjdC5hc3NpZ24oZGF0YSwgdGhpcy5zdGF0c0RhdGEpCiAgICAgICAgcmV0dXJuIGRhdGEgYXMgU3RyZWFtU3RhdHNEYXRhCiAgICB9Cn0K"},{"path":"web/stream/transport/index.ts","sha256":"a99a79ee987f401b9667ef3241da6af60d9d3a67f85aedcfca59ae9eee603ee0","contentBase64":"aW1wb3J0IHsgVHJhbnNwb3J0Q2hhbm5lbElkIH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIgppbXBvcnQgeyBTdGF0VmFsdWUgfSBmcm9tICIuLi9zdGF0cy5qcyIKaW1wb3J0IHsgVmlkZW9Db2RlY1N1cHBvcnQgfSBmcm9tICIuLi92aWRlby5qcyIKCmV4cG9ydCB0eXBlIFRyYW5zcG9ydENoYW5uZWxJZEtleSA9IGtleW9mIHR5cGVvZiBUcmFuc3BvcnRDaGFubmVsSWQKZXhwb3J0IHR5cGUgVHJhbnNwb3J0Q2hhbm5lbElkVmFsdWUgPSB0eXBlb2YgVHJhbnNwb3J0Q2hhbm5lbElkW1RyYW5zcG9ydENoYW5uZWxJZEtleV0KCmV4cG9ydCB0eXBlIFRyYW5zcG9ydFZpZGVvVHlwZSA9ICJ2aWRlb3RyYWNrIiAvLyBUcmFja1RyYW5zcG9ydENoYW5uZWwKICAgIHwgImRhdGEiIC8vIERhdGEgbGlrZSBodHRwczovL2dpdGh1Yi5jb20vbW9vbmxpZ2h0LXN0cmVhbS9tb29ubGlnaHQtY29tbW9uLWMvYmxvYi9iMTI2ZTQ4MWExOTVmZGM3MTUyZDIxMWRlZjE3MTkwZTM0MzRiY2NlL3NyYy9MaW1lbGlnaHQuaCNMMjk4CgoKZXhwb3J0IHR5cGUgVHJhbnNwb3J0VmlkZW9TZXR1cCA9IHsKICAgIC8vIExpc3QgY29udGFpbmluZyBhbGwgc3VwcG9ydGVkIHR5cGVzLCBwcmlvcml0eSBoaWdoZXN0PTAsIGxvd2VzdD1iaWdnZXN0IGluZGV4CiAgICB0eXBlOiBBcnJheTxUcmFuc3BvcnRWaWRlb1R5cGU+Cn0KCmV4cG9ydCB0eXBlIFRyYW5zcG9ydEF1ZGlvVHlwZSA9ICJhdWRpb3RyYWNrIiAvLyBUcmFja1RyYW5zcG9ydENoYW5uZWwKICAgIHwgImRhdGEiIC8vIERhdGEgbGlrZSBodHRwczovL2dpdGh1Yi5jb20vbW9vbmxpZ2h0LXN0cmVhbS9tb29ubGlnaHQtY29tbW9uLWMvYmxvYi9iMTI2ZTQ4MWExOTVmZGM3MTUyZDIxMWRlZjE3MTkwZTM0MzRiY2NlL3NyYy9MaW1lbGlnaHQuaCNMMzU2CgoKZXhwb3J0IHR5cGUgVHJhbnNwb3J0QXVkaW9TZXR1cCA9IHsKICAgIC8vIExpc3QgY29udGFpbmluZyBhbGwgc3VwcG9ydGVkIHR5cGVzLCBwcmlvcml0eSBoaWdoZXN0PTAsIGxvd2VzdD1iaWdnZXN0IGluZGV4CiAgICB0eXBlOiBBcnJheTxUcmFuc3BvcnRBdWRpb1R5cGU+Cn0KCi8vIFRPT0Q6IGNvbW1vbiB0cmFuc3BvcnQgY2hhbm5lbCB0eXBlczogZS5nLiByZWxpYWJsZSAvIHVucmVsaWFibGUsIG9yZGVyZWQgdXN3CmV4cG9ydCB0eXBlIFRyYW5zcG9ydENoYW5uZWxPcHRpb24gPSB7CiAgICBvcmRlcmVkOiBib29sZWFuCiAgICByZWxpYWJsZTogYm9vbGVhbgogICAgLy8gZGVmYXVsdCA9IGZhbHNlCiAgICBzZXJ2ZXJDcmVhdGVkPzogYm9vbGVhbgp9Ci8vIGZhaWxlZG5vY29ubmVjdCA9PiBhIGNvbm5lY3Rpb24gZmFpbGVkIHdpdGhvdXQgZmlyc3RseSBiZWluZyBlc3RhYmxpc2hlZAovLyBmYWlsZWQgPT4gYSBjb25uZWN0aW9uIHdhcyB1bmdyYWNlZnVsbHkgY2xvc2VkCi8vIGRpc2Nvbm5lY3QgPT4gYSBjb25uZWN0aW9uIHdhcyBncmFjZWZ1bGx5IGNsb3NlZApleHBvcnQgdHlwZSBUcmFuc3BvcnRTaHV0ZG93biA9ICJmYWlsZWRub2Nvbm5lY3QiIHwgImZhaWxlZCIgfCAiZGlzY29ubmVjdCIKCmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNwb3J0IHsKICAgIHJlYWRvbmx5IGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nCgogICAgZ2V0Q2hhbm5lbChpZDogVHJhbnNwb3J0Q2hhbm5lbElkVmFsdWUpOiBUcmFuc3BvcnRDaGFubmVsCgogICAgc2V0dXBIb3N0VmlkZW8oc2V0dXA6IFRyYW5zcG9ydFZpZGVvU2V0dXApOiBQcm9taXNlPFZpZGVvQ29kZWNTdXBwb3J0PgogICAgc2V0dXBIb3N0QXVkaW8oc2V0dXA6IFRyYW5zcG9ydEF1ZGlvU2V0dXApOiBQcm9taXNlPHZvaWQ+CgogICAgb25jbG9zZTogKChzaHV0ZG93bjogVHJhbnNwb3J0U2h1dGRvd24pID0+IHZvaWQpIHwgbnVsbAogICAgY2xvc2UoKTogUHJvbWlzZTx2b2lkPgoKICAgIGdldFN0YXRzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgU3RhdFZhbHVlPj4KfQoKZXhwb3J0IHR5cGUgVHJhbnNwb3J0Q2hhbm5lbCA9IFZpZGVvVHJhY2tUcmFuc3BvcnRDaGFubmVsIHwgQXVkaW9UcmFja1RyYW5zcG9ydENoYW5uZWwgfCBEYXRhVHJhbnNwb3J0Q2hhbm5lbAppbnRlcmZhY2UgVHJhbnNwb3J0Q2hhbm5lbEJhc2UgewogICAgcmVhZG9ubHkgdHlwZTogc3RyaW5nCgogICAgcmVhZG9ubHkgY2FuUmVjZWl2ZTogYm9vbGVhbgogICAgcmVhZG9ubHkgY2FuU2VuZDogYm9vbGVhbgp9CgpleHBvcnQgaW50ZXJmYWNlIFRyYWNrVHJhbnNwb3J0Q2hhbm5lbCBleHRlbmRzIFRyYW5zcG9ydENoYW5uZWxCYXNlIHsKICAgIHNldFRyYWNrKHRyYWNrOiBNZWRpYVN0cmVhbVRyYWNrIHwgbnVsbCk6IHZvaWQKCiAgICBhZGRUcmFja0xpc3RlbmVyKGxpc3RlbmVyOiAodHJhY2s6IE1lZGlhU3RyZWFtVHJhY2spID0+IHZvaWQpOiB2b2lkCiAgICByZW1vdmVUcmFja0xpc3RlbmVyKGxpc3RlbmVyOiAodHJhY2s6IE1lZGlhU3RyZWFtVHJhY2spID0+IHZvaWQpOiB2b2lkCn0KZXhwb3J0IGludGVyZmFjZSBWaWRlb1RyYWNrVHJhbnNwb3J0Q2hhbm5lbCBleHRlbmRzIFRyYWNrVHJhbnNwb3J0Q2hhbm5lbCB7CiAgICByZWFkb25seSB0eXBlOiAidmlkZW90cmFjayIKfQpleHBvcnQgaW50ZXJmYWNlIEF1ZGlvVHJhY2tUcmFuc3BvcnRDaGFubmVsIGV4dGVuZHMgVHJhY2tUcmFuc3BvcnRDaGFubmVsIHsKICAgIHJlYWRvbmx5IHR5cGU6ICJhdWRpb3RyYWNrIgp9CgpleHBvcnQgaW50ZXJmYWNlIERhdGFUcmFuc3BvcnRDaGFubmVsIGV4dGVuZHMgVHJhbnNwb3J0Q2hhbm5lbEJhc2UgewogICAgcmVhZG9ubHkgdHlwZTogImRhdGEiCgogICAgYWRkUmVjZWl2ZUxpc3RlbmVyKGxpc3RlbmVyOiAoZGF0YTogQXJyYXlCdWZmZXIpID0+IHZvaWQpOiB2b2lkCiAgICByZW1vdmVSZWNlaXZlTGlzdGVuZXIobGlzdGVuZXI6IChkYXRhOiBBcnJheUJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQKCiAgICBzZW5kKG1lc3NhZ2U6IEFycmF5QnVmZmVyKTogdm9pZAogICAgZXN0aW1hdGVkQnVmZmVyZWRCeXRlcygpOiBudW1iZXIgfCBudWxsCn0="},{"path":"web/stream/transport/web_socket.ts","sha256":"836cf23bc6e600ce3bf64926de044bdda14ac37452d9b567d065e2ef488f069b","contentBase64":"aW1wb3J0IHsgVHJhbnNwb3J0Q2hhbm5lbElkIH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgQnl0ZUJ1ZmZlciB9IGZyb20gIi4uL2J1ZmZlci5qcyI7CmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyI7CmltcG9ydCB7IFN0YXRWYWx1ZSB9IGZyb20gIi4uL3N0YXRzLmpzIjsKaW1wb3J0IHsgYWxsVmlkZW9Db2RlY3MsIFZpZGVvQ29kZWNTdXBwb3J0IH0gZnJvbSAiLi4vdmlkZW8uanMiOwppbXBvcnQgeyBEYXRhVHJhbnNwb3J0Q2hhbm5lbCwgVHJhbnNwb3J0LCBUcmFuc3BvcnRBdWRpb1NldHVwLCBUcmFuc3BvcnRDaGFubmVsLCBUcmFuc3BvcnRDaGFubmVsSWRLZXksIFRyYW5zcG9ydENoYW5uZWxJZFZhbHVlLCBUcmFuc3BvcnRTaHV0ZG93biwgVHJhbnNwb3J0VmlkZW9TZXR1cCB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGNsYXNzIFdlYlNvY2tldFRyYW5zcG9ydCBpbXBsZW1lbnRzIFRyYW5zcG9ydCB7CiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZyA9ICJ3ZWJfc29ja2V0IgoKICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSB3czogV2ViU29ja2V0CiAgICBwcml2YXRlIGJ1ZmZlcjogQnl0ZUJ1ZmZlcgoKICAgIHByaXZhdGUgY2hhbm5lbHM6IEFycmF5PFRyYW5zcG9ydENoYW5uZWw+ID0gW10KCiAgICBjb25zdHJ1Y3Rvcih3czogV2ViU29ja2V0LCBidWZmZXI6IEJ5dGVCdWZmZXIsIGxvZ2dlcjogTG9nZ2VyIHwgbnVsbCkgewogICAgICAgIGlmIChsb2dnZXIpIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIKICAgICAgICB9CgogICAgICAgIHRoaXMud3MgPSB3cwogICAgICAgIHRoaXMuYnVmZmVyID0gYnVmZmVyCgogICAgICAgIC8vIFZlcnkgaW1wb3J0YW50LCBzZXQgdGhlIGJpbmFyeSB0eXBlIHRvIGFycmF5YnVmZmVyCiAgICAgICAgdGhpcy53cy5iaW5hcnlUeXBlID0gImFycmF5YnVmZmVyIgoKICAgICAgICB0aGlzLndzLmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwgdGhpcy5vbldzQ2xvc2UuYmluZCh0aGlzKSkKCiAgICAgICAgZm9yIChjb25zdCBrZXlSYXcgaW4gVHJhbnNwb3J0Q2hhbm5lbElkKSB7CiAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleVJhdyBhcyBUcmFuc3BvcnRDaGFubmVsSWRLZXkKICAgICAgICAgICAgY29uc3QgaWQgPSBUcmFuc3BvcnRDaGFubmVsSWRba2V5XQoKICAgICAgICAgICAgdGhpcy5jaGFubmVsc1tpZF0gPSBuZXcgV2ViU29ja2V0RGF0YVRyYW5zcG9ydENoYW5uZWwodGhpcy53cywgaWQsIHRoaXMuYnVmZmVyKQogICAgICAgIH0KICAgIH0KCiAgICBnZXRDaGFubmVsKGlkOiBUcmFuc3BvcnRDaGFubmVsSWRWYWx1ZSk6IFRyYW5zcG9ydENoYW5uZWwgewogICAgICAgIHJldHVybiB0aGlzLmNoYW5uZWxzW2lkXQogICAgfQoKICAgIGFzeW5jIHNldHVwSG9zdFZpZGVvKHNldHVwOiBUcmFuc3BvcnRWaWRlb1NldHVwKTogUHJvbWlzZTxWaWRlb0NvZGVjU3VwcG9ydD4gewogICAgICAgIGlmIChzZXR1cC50eXBlLmluZGV4T2YoImRhdGEiKSA9PSAtMSkgewogICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIkNhbm5vdCB1c2UgV2ViIFNvY2tldCBUcmFuc3BvcnQ6IEZvdW5kIG5vIHN1cHBvcnRlZCB2aWRlbyBwaXBlbGluZSIpCiAgICAgICAgICAgIHRocm93ICJDYW5ub3QgdXNlIFdlYiBTb2NrZXQgVHJhbnNwb3J0OiBGb3VuZCBubyBzdXBwb3J0ZWQgdmlkZW8gcGlwZWxpbmUiCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gYWxsVmlkZW9Db2RlY3MoKQogICAgfQogICAgYXN5bmMgc2V0dXBIb3N0QXVkaW8oc2V0dXA6IFRyYW5zcG9ydEF1ZGlvU2V0dXApOiBQcm9taXNlPHZvaWQ+IHsKICAgICAgICBpZiAoc2V0dXAudHlwZS5pbmRleE9mKCJkYXRhIikgPT0gLTEpIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKCJDYW5ub3QgdXNlIFdlYiBTb2NrZXQgVHJhbnNwb3J0OiBGb3VuZCBubyBzdXBwb3J0ZWQgYXVkaW8gcGlwZWxpbmUiKQogICAgICAgICAgICB0aHJvdyAiQ2Fubm90IHVzZSBXZWIgU29ja2V0IFRyYW5zcG9ydDogRm91bmQgbm8gc3VwcG9ydGVkIGF1ZGlvIHBpcGVsaW5lIgogICAgICAgIH0KICAgIH0KCiAgICBvbmNsb3NlOiAoKHNodXRkb3duOiBUcmFuc3BvcnRTaHV0ZG93bikgPT4gdm9pZCkgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgb25Xc0Nsb3NlKGV2ZW50OiBDbG9zZUV2ZW50KSB7CiAgICAgICAgaWYgKHRoaXMub25jbG9zZSkgewogICAgICAgICAgICB0aGlzLm9uY2xvc2UoZXZlbnQud2FzQ2xlYW4gPyAiZGlzY29ubmVjdCIgOiAiZmFpbGVkIikKICAgICAgICB9CiAgICB9CiAgICBhc3luYyBjbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHsKICAgICAgICAvLyBkbyBub3RoaW5nLCB3ZSBkb24ndCBvd24gdGhpcyB3cywgdGhlIHN0cmVhbSBvd25zIHRoZSB3cwogICAgICAgIC8vIC0+IG1heWJlIHdlIGNoYW5nZWQgcHJvdG9jb2wKICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIldlYiBTb2NrZXQgdHJhbnNwb3J0IGNsb3NlIGNhbGxlZCwgbm90IGNsb3NpbmcgV2ViIFNvY2tldCBiZWNhdXNlIGl0IG1pZ2h0IHN0aWxsIGJlIG5lZWRlZCIpCiAgICB9CiAgICBhc3luYyBnZXRTdGF0cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFN0YXRWYWx1ZT4+IHsKICAgICAgICByZXR1cm4ge30KICAgIH0KCn0KCmNsYXNzIFdlYlNvY2tldERhdGFUcmFuc3BvcnRDaGFubmVsIGltcGxlbWVudHMgRGF0YVRyYW5zcG9ydENoYW5uZWwgewogICAgcmVhZG9ubHkgdHlwZTogImRhdGEiID0gImRhdGEiCgogICAgcHJpdmF0ZSB3czogV2ViU29ja2V0CiAgICBwcml2YXRlIGlkOiBUcmFuc3BvcnRDaGFubmVsSWRWYWx1ZQogICAgcHJpdmF0ZSBidWZmZXI6IEJ5dGVCdWZmZXIKCiAgICBjb25zdHJ1Y3Rvcih3czogV2ViU29ja2V0LCBpZDogVHJhbnNwb3J0Q2hhbm5lbElkVmFsdWUsIGJ1ZmZlcjogQnl0ZUJ1ZmZlcikgewogICAgICAgIHRoaXMud3MgPSB3cwogICAgICAgIHRoaXMuaWQgPSBpZAogICAgICAgIHRoaXMuYnVmZmVyID0gYnVmZmVyCgogICAgICAgIHRoaXMud3MuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRoaXMub25NZXNzYWdlLmJpbmQodGhpcykpCiAgICB9CgogICAgY2FuUmVjZWl2ZTogYm9vbGVhbiA9IHRydWUKICAgIGNhblNlbmQ6IGJvb2xlYW4gPSB0cnVlCgogICAgcHJpdmF0ZSByZWNlaXZlTGlzdGVuZXJzOiBBcnJheTwoZGF0YTogQXJyYXlCdWZmZXIpID0+IHZvaWQ+ID0gW10KICAgIGFkZFJlY2VpdmVMaXN0ZW5lcihsaXN0ZW5lcjogKGRhdGE6IEFycmF5QnVmZmVyKSA9PiB2b2lkKTogdm9pZCB7CiAgICAgICAgdGhpcy5yZWNlaXZlTGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpCiAgICB9CiAgICByZW1vdmVSZWNlaXZlTGlzdGVuZXIobGlzdGVuZXI6IChkYXRhOiBBcnJheUJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQgewogICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZWNlaXZlTGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpCiAgICAgICAgaWYgKGluZGV4ICE9IC0xKSB7CiAgICAgICAgICAgIHRoaXMucmVjZWl2ZUxpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgb25NZXNzYWdlKGV2ZW50OiBNZXNzYWdlRXZlbnQpIHsKICAgICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YQogICAgICAgIGlmICghKGRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICB0aGlzLmJ1ZmZlci5yZXNldCgpCgogICAgICAgIHRoaXMuYnVmZmVyLnB1dFU4QXJyYXkobmV3IFVpbnQ4QXJyYXkoZGF0YSkpCgogICAgICAgIHRoaXMuYnVmZmVyLmZsaXAoKQoKICAgICAgICBjb25zdCBpZCA9IHRoaXMuYnVmZmVyLmdldFU4KCkKICAgICAgICBpZiAoaWQgIT0gdGhpcy5pZCkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGNvbnN0IGJ1ZmZlciA9IHRoaXMuYnVmZmVyLmdldFJlbWFpbmluZ0J1ZmZlcigpCiAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiB0aGlzLnJlY2VpdmVMaXN0ZW5lcnMpIHsKICAgICAgICAgICAgbGlzdGVuZXIoYnVmZmVyLmJ1ZmZlcikKICAgICAgICB9CiAgICB9CgogICAgc2VuZChtZXNzYWdlOiBBcnJheUJ1ZmZlcik6IHZvaWQgewogICAgICAgIHRoaXMuYnVmZmVyLnJlc2V0KCkKCiAgICAgICAgdGhpcy5idWZmZXIucHV0VTgodGhpcy5pZCkKICAgICAgICB0aGlzLmJ1ZmZlci5wdXRVOEFycmF5KG5ldyBVaW50OEFycmF5KG1lc3NhZ2UpKQoKICAgICAgICB0aGlzLmJ1ZmZlci5mbGlwKCkKCiAgICAgICAgdGhpcy53cy5zZW5kKHRoaXMuYnVmZmVyLmdldFJlbWFpbmluZ0J1ZmZlcigpKQogICAgfQoKICAgIGVzdGltYXRlZEJ1ZmZlcmVkQnl0ZXMoKTogbnVtYmVyIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIG51bGwKICAgIH0KCiAgICBjbG9zZSgpIHsKICAgICAgICB0aGlzLndzLnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0aGlzLm9uTWVzc2FnZS5iaW5kKHRoaXMpKQogICAgfQp9"},{"path":"web/stream/transport/webrtc.ts","sha256":"24287bc344eef0836b9e949d9e16c0a8140c7b9319c64757417d7573d1147a2f","contentBase64":"aW1wb3J0IHsgU3RyZWFtU2lnbmFsaW5nTWVzc2FnZSwgVHJhbnNwb3J0Q2hhbm5lbElkIH0gZnJvbSAiLi4vLi4vYXBpX2JpbmRpbmdzLmpzIjsKaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAiLi4vbG9nLmpzIjsKaW1wb3J0IHsgU3RhdFZhbHVlLCBEaXJlY3RDb25uZWN0aW9uRGlhZ25vc3RpYywgSWNlQ2FuZGlkYXRlVHlwZSB9IGZyb20gIi4uL3N0YXRzLmpzIjsKaW1wb3J0IHsgQ0FQQUJJTElUSUVTX0NPREVDUywgZW1wdHlWaWRlb0NvZGVjcywgbWF5YmVWaWRlb0NvZGVjcywgVmlkZW9Db2RlY1N1cHBvcnQgfSBmcm9tICIuLi92aWRlby5qcyI7CmltcG9ydCB7IERhdGFUcmFuc3BvcnRDaGFubmVsLCBUcmFuc3BvcnQsIFRyYW5zcG9ydEF1ZGlvU2V0dXAsIFRyYW5zcG9ydENoYW5uZWwsIFRyYW5zcG9ydENoYW5uZWxJZEtleSwgVHJhbnNwb3J0Q2hhbm5lbElkVmFsdWUsIFRyYW5zcG9ydFZpZGVvU2V0dXAsIEF1ZGlvVHJhY2tUcmFuc3BvcnRDaGFubmVsLCBWaWRlb1RyYWNrVHJhbnNwb3J0Q2hhbm5lbCwgVHJhY2tUcmFuc3BvcnRDaGFubmVsLCBUcmFuc3BvcnRTaHV0ZG93biB9IGZyb20gIi4vaW5kZXguanMiOwoKY29uc3QgTUFYX1BFTkRJTkdfU0lHTkFMSU5HX01FU1NBR0VTID0gMjU2CmNvbnN0IE1BWF9JQ0VfQ0FORElEQVRFX0xFTkdUSCA9IDIwNDgKCmV4cG9ydCBjbGFzcyBXZWJSVENUcmFuc3BvcnQgaW1wbGVtZW50cyBUcmFuc3BvcnQgewogICAgaW1wbGVtZW50YXRpb25OYW1lOiBzdHJpbmcgPSAid2VicnRjIgoKICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIgfCBudWxsCgogICAgcHJpdmF0ZSBwZWVyOiBSVENQZWVyQ29ubmVjdGlvbiB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZGVvU3RhdHNTYW1wbGVyID0gbmV3IFJ0Y1ZpZGVvU3RhdHNTYW1wbGVyKCkKICAgIHByaXZhdGUgZGlhZ25vc3RpY3NDbG9zZWQgPSBmYWxzZQogICAgb25kaWFnbm9zdGljczogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGwKICAgIHByaXZhdGUgbG9jYWxDYW5kaWRhdGVDb3VudHM6IFJlY29yZDxJY2VDYW5kaWRhdGVUeXBlLCBudW1iZXI+ID0geyBob3N0OiAwLCBzcmZseDogMCwgcHJmbHg6IDAsIHJlbGF5OiAwIH0KICAgIHByaXZhdGUgcmVtb3RlQ2FuZGlkYXRlQ291bnRzOiBSZWNvcmQ8SWNlQ2FuZGlkYXRlVHlwZSwgbnVtYmVyPiA9IHsgaG9zdDogMCwgc3JmbHg6IDAsIHByZmx4OiAwLCByZWxheTogMCB9CiAgICBwcml2YXRlIHNpZ25hbGluZ0ZhaWxlZCA9IGZhbHNlCiAgICBwcml2YXRlIHNpZ25hbGluZ01lc3NhZ2VzOiBTdHJlYW1TaWduYWxpbmdNZXNzYWdlW10gPSBbXQogICAgcHJpdmF0ZSBzaWduYWxpbmdEcmFpbjogUHJvbWlzZTx2b2lkPiB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIGxvY2FsSWNlQ2FuZGlkYXRlczogU3RyZWFtU2lnbmFsaW5nTWVzc2FnZVtdID0gW10KICAgIHByaXZhdGUgc2VudExvY2FsRGVzY3JpcHRpb24gPSBmYWxzZQoKICAgIGNvbnN0cnVjdG9yKGxvZ2dlcj86IExvZ2dlcikgewogICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyID8/IG51bGwKICAgIH0KCiAgICBhc3luYyBpbml0UGVlcihjb25maWd1cmF0aW9uPzogUlRDQ29uZmlndXJhdGlvbikgewogICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgQ3JlYXRpbmcgQ2xpZW50IFBlZXJgKQoKICAgICAgICBpZiAoIXRoaXMuc2lnbmFsaW5nQWN0aXZlKCkgfHwgdGhpcy5wZWVyKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgQ2Fubm90IGNyZWF0ZSBQZWVyIGJlY2F1c2UgYSBQZWVyIGFscmVhZHkgZXhpc3RzYCkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICAvLyBDb25maWd1cmUgd2ViIHJ0YwogICAgICAgIC8vIFRPRE86IHVzZSB0aGlzIGZvciBzaWduYWxpbmcgaW5zdGVhZCBhbmQgZXh0ZW5kIHRoZSBwcm90b2NvbCBzbyB0aGF0IHRoZSBjbGllbnQgYWxzbyByZXF1ZXN0cyBhIGNvbnRyb2wgY2hhbm5lbCB3aXRoIG5hbWU6ICJjb250cm9sIiwgcHJvdG9jb2w6Im1vb25saWdodC1jb250cm9sLXYxIjogaHR0cHM6Ly93d3cuaWV0Zi5vcmcvYXJjaGl2ZS9pZC9kcmFmdC1pZXRmLXdpc2gtd2hlcC0wMi5odG1sCiAgICAgICAgdGhpcy5wZWVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZ3VyYXRpb24pCiAgICAgICAgdGhpcy5wZWVyLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgdGhpcy5vbkVycm9yLmJpbmQodGhpcykpCgogICAgICAgIHRoaXMucGVlci5hZGRFdmVudExpc3RlbmVyKCJpY2VjYW5kaWRhdGUiLCB0aGlzLm9uSWNlQ2FuZGlkYXRlLmJpbmQodGhpcykpCgogICAgICAgIHRoaXMucGVlci5hZGRFdmVudExpc3RlbmVyKCJjb25uZWN0aW9uc3RhdGVjaGFuZ2UiLCB0aGlzLm9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5wZWVyLmFkZEV2ZW50TGlzdGVuZXIoInNpZ25hbGluZ3N0YXRlY2hhbmdlIiwgdGhpcy5vblNpZ25hbGluZ1N0YXRlQ2hhbmdlLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5wZWVyLmFkZEV2ZW50TGlzdGVuZXIoImljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSIsIHRoaXMub25JY2VDb25uZWN0aW9uU3RhdGVDaGFuZ2UuYmluZCh0aGlzKSkKICAgICAgICB0aGlzLnBlZXIuYWRkRXZlbnRMaXN0ZW5lcigiaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UiLCB0aGlzLm9uSWNlR2F0aGVyaW5nU3RhdGVDaGFuZ2UuYmluZCh0aGlzKSkKCiAgICAgICAgdGhpcy5wZWVyLmFkZEV2ZW50TGlzdGVuZXIoInRyYWNrIiwgdGhpcy5vblRyYWNrLmJpbmQodGhpcykpCiAgICAgICAgdGhpcy5wZWVyLmFkZEV2ZW50TGlzdGVuZXIoImRhdGFjaGFubmVsIiwgdGhpcy5vbkRhdGFDaGFubmVsLmJpbmQodGhpcykpCgogICAgICAgIHRoaXMuaW5pdENoYW5uZWxzKCkKCiAgICAgICAgYXdhaXQgdGhpcy5kcmFpblNpZ25hbGluZ01lc3NhZ2VzKCkKICAgIH0KCiAgICBwcml2YXRlIG9uRXJyb3IoZXZlbnQ6IEV2ZW50KSB7CiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBXZWIgU29ja2V0IG9yIFdlYlJ0Y1BlZXIgRXJyb3JgKQoKICAgICAgICBjb25zb2xlLmVycm9yKCJXZWIgU29ja2V0IG9yIFdlYlJ0Y1BlZXIgRXJyb3IiKQogICAgfQoKICAgIG9uc2VuZG1lc3NhZ2U6ICgobWVzc2FnZTogU3RyZWFtU2lnbmFsaW5nTWVzc2FnZSkgPT4gdm9pZCkgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBzZW5kTWVzc2FnZShtZXNzYWdlOiBTdHJlYW1TaWduYWxpbmdNZXNzYWdlKSB7CiAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZSgpKSByZXR1cm4KICAgICAgICBpZiAodGhpcy5vbnNlbmRtZXNzYWdlKSB7CiAgICAgICAgICAgIHRoaXMub25zZW5kbWVzc2FnZShtZXNzYWdlKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiRmFpbGVkIHRvIGNhbGwgb25pY2VjYW5kaWRhdGUgYmVjYXVzZSBubyBoYW5kbGVyIGlzIHNldCIpCiAgICAgICAgfQogICAgfQogICAgYXN5bmMgb25SZWNlaXZlTWVzc2FnZShtZXNzYWdlOiBTdHJlYW1TaWduYWxpbmdNZXNzYWdlKSB7CiAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZSgpKSByZXR1cm4KICAgICAgICBpZiAoIkFkZEljZUNhbmRpZGF0ZSIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICBjb25zdCBjYW5kaWRhdGUgPSBtZXNzYWdlLkFkZEljZUNhbmRpZGF0ZQogICAgICAgICAgICB0aGlzLmNvdW50Q2FuZGlkYXRlKHRoaXMucmVtb3RlQ2FuZGlkYXRlQ291bnRzLCBjYW5kaWRhdGUuY2FuZGlkYXRlKQogICAgICAgICAgICBpZiAodHlwZW9mIGNhbmRpZGF0ZS5jYW5kaWRhdGUgIT09ICJzdHJpbmciIHx8IGNhbmRpZGF0ZS5jYW5kaWRhdGUubGVuZ3RoID4gTUFYX0lDRV9DQU5ESURBVEVfTEVOR1RIKSB7CiAgICAgICAgICAgICAgICB0aGlzLmZhaWxTaWduYWxpbmcoKQogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCF0aGlzLnJlc2VydmVTaWduYWxpbmdNZXNzYWdlKCkpIHJldHVybgogICAgICAgIHRoaXMuc2lnbmFsaW5nTWVzc2FnZXMucHVzaChtZXNzYWdlKQogICAgICAgIGF3YWl0IHRoaXMuZHJhaW5TaWduYWxpbmdNZXNzYWdlcygpCiAgICB9CgogICAgcHJpdmF0ZSBzaWduYWxpbmdBY3RpdmUocGVlcj86IFJUQ1BlZXJDb25uZWN0aW9uKTogYm9vbGVhbiB7CiAgICAgICAgcmV0dXJuICF0aGlzLmRpYWdub3N0aWNzQ2xvc2VkICYmICF0aGlzLnNpZ25hbGluZ0ZhaWxlZCAmJiAoIXBlZXIgfHwgdGhpcy5wZWVyID09PSBwZWVyKQogICAgfQogICAgcHJpdmF0ZSByZXNlcnZlU2lnbmFsaW5nTWVzc2FnZSgpOiBib29sZWFuIHsKICAgICAgICBpZiAodGhpcy5zaWduYWxpbmdNZXNzYWdlcy5sZW5ndGggKyB0aGlzLmljZUNhbmRpZGF0ZXMubGVuZ3RoICsgdGhpcy5sb2NhbEljZUNhbmRpZGF0ZXMubGVuZ3RoIDwgTUFYX1BFTkRJTkdfU0lHTkFMSU5HX01FU1NBR0VTKSByZXR1cm4gdHJ1ZQogICAgICAgIHRoaXMuZmFpbFNpZ25hbGluZygpCiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICB9CiAgICBwcml2YXRlIGZhaWxTaWduYWxpbmcoKSB7CiAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZSgpKSByZXR1cm4KICAgICAgICB0aGlzLnNpZ25hbGluZ0ZhaWxlZCA9IHRydWUKICAgICAgICB0aGlzLnNpZ25hbGluZ01lc3NhZ2VzLmxlbmd0aCA9IDAKICAgICAgICB0aGlzLmljZUNhbmRpZGF0ZXMubGVuZ3RoID0gMAogICAgICAgIHRoaXMubG9jYWxJY2VDYW5kaWRhdGVzLmxlbmd0aCA9IDAKICAgICAgICAvLyBOZXZlciBleHBvc2UgY2FuZGlkYXRlIGFkZHJlc3NlcywgU0RQIG9yIHRoZSBicm93c2VyJ3MgcmF3IGVycm9yLgogICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiV2ViUlRDIHNpZ25hbGluZyBmYWlsZWQiKQogICAgICAgIHRoaXMub25jbG9zZT8uKHRoaXMud2FzQ29ubmVjdGVkID8gImZhaWxlZCIgOiAiZmFpbGVkbm9jb25uZWN0IikKICAgIH0KICAgIHByaXZhdGUgZHJhaW5TaWduYWxpbmdNZXNzYWdlcygpOiBQcm9taXNlPHZvaWQ+IHsKICAgICAgICBjb25zdCBwZWVyID0gdGhpcy5wZWVyCiAgICAgICAgaWYgKCFwZWVyIHx8ICF0aGlzLnNpZ25hbGluZ0FjdGl2ZShwZWVyKSkgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpCiAgICAgICAgaWYgKHRoaXMuc2lnbmFsaW5nRHJhaW4pIHJldHVybiB0aGlzLnNpZ25hbGluZ0RyYWluCiAgICAgICAgLy8gV2ViU29ja2V0IGNhbGxiYWNrcyBkbyBub3QgYXdhaXQgb25lIGFub3RoZXIuIEtlZXAgZGVzY3JpcHRpb24gYW5kCiAgICAgICAgLy8gY2FuZGlkYXRlIG9wZXJhdGlvbnMgb3JkZXJlZCwgaW5jbHVkaW5nIHdoaWxlIGEgYnJvd3NlciBvcGVyYXRpb24gd2FpdHMuCiAgICAgICAgdGhpcy5zaWduYWxpbmdEcmFpbiA9IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMgKCkgPT4gewogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgd2hpbGUgKHRoaXMuc2lnbmFsaW5nQWN0aXZlKHBlZXIpICYmIHRoaXMuc2lnbmFsaW5nTWVzc2FnZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuc2lnbmFsaW5nTWVzc2FnZXMuc2hpZnQoKSEKICAgICAgICAgICAgICAgICAgICBpZiAoIkRlc2NyaXB0aW9uIiBpbiBtZXNzYWdlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlUmVtb3RlRGVzY3JpcHRpb24oeyB0eXBlOiBtZXNzYWdlLkRlc2NyaXB0aW9uLnR5IGFzIFJUQ1NkcFR5cGUsIHNkcDogbWVzc2FnZS5EZXNjcmlwdGlvbi5zZHAgfSkKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCJBZGRJY2VDYW5kaWRhdGUiIGluIG1lc3NhZ2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gbWVzc2FnZS5BZGRJY2VDYW5kaWRhdGUKICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5hZGRJY2VDYW5kaWRhdGUoeyBjYW5kaWRhdGU6IGNhbmRpZGF0ZS5jYW5kaWRhdGUsIHNkcE1pZDogY2FuZGlkYXRlLnNkcF9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZHBNTGluZUluZGV4OiBjYW5kaWRhdGUuc2RwX21saW5lX2luZGV4LCB1c2VybmFtZUZyYWdtZW50OiBjYW5kaWRhdGUudXNlcm5hbWVfZnJhZ21lbnQgfSwgZmFsc2UpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGNhdGNoIHsKICAgICAgICAgICAgICAgIGlmICh0aGlzLnNpZ25hbGluZ0FjdGl2ZShwZWVyKSkgdGhpcy5mYWlsU2lnbmFsaW5nKCkKICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgIHRoaXMuc2lnbmFsaW5nRHJhaW4gPSBudWxsCiAgICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIHJldHVybiB0aGlzLnNpZ25hbGluZ0RyYWluCiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyBoYW5kbGVSZW1vdGVEZXNjcmlwdGlvbihyZW1vdGVEZXNjcmlwdGlvbjogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uSW5pdCkgewogICAgICAgIGNvbnN0IHBlZXIgPSB0aGlzLnBlZXIKICAgICAgICBpZiAoIXBlZXIgfHwgIXRoaXMuc2lnbmFsaW5nQWN0aXZlKHBlZXIpKSByZXR1cm4KICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYFJlY2VpdmVkIHJlbW90ZSBkZXNjcmlwdGlvbjogJHtyZW1vdGVEZXNjcmlwdGlvbi50eXBlfWApCiAgICAgICAgaWYgKHJlbW90ZURlc2NyaXB0aW9uLnR5cGUgPT09ICJvZmZlciIpIHRoaXMuc2VudExvY2FsRGVzY3JpcHRpb24gPSBmYWxzZQogICAgICAgIGF3YWl0IHBlZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24ocmVtb3RlRGVzY3JpcHRpb24pCiAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZShwZWVyKSkgcmV0dXJuCgogICAgICAgIGlmIChyZW1vdGVEZXNjcmlwdGlvbi50eXBlID09PSAib2ZmZXIiKSB7CiAgICAgICAgICAgIGF3YWl0IHBlZXIuc2V0TG9jYWxEZXNjcmlwdGlvbigpCiAgICAgICAgICAgIGlmICghdGhpcy5zaWduYWxpbmdBY3RpdmUocGVlcikpIHJldHVybgogICAgICAgICAgICBjb25zdCBsb2NhbERlc2NyaXB0aW9uID0gcGVlci5sb2NhbERlc2NyaXB0aW9uCiAgICAgICAgICAgIGlmICghbG9jYWxEZXNjcmlwdGlvbikgdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGxvY2FsIGRlc2NyaXB0aW9uIikKICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBSZXNwb25kaW5nIHRvIG9mZmVyIGRlc2NyaXB0aW9uOiAke2xvY2FsRGVzY3JpcHRpb24udHlwZX1gKQogICAgICAgICAgICAvLyBUaGUgbmF0aXZlIHBlZXIgcmVqZWN0cyBjYW5kaWRhdGVzIHVudGlsIHRoaXMgYW5zd2VyIGlzIGFwcGxpZWQuCiAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBEZXNjcmlwdGlvbjogeyB0eTogbG9jYWxEZXNjcmlwdGlvbi50eXBlLCBzZHA6IGxvY2FsRGVzY3JpcHRpb24uc2RwID8/ICIiIH0gfSkKICAgICAgICAgICAgdGhpcy5zZW50TG9jYWxEZXNjcmlwdGlvbiA9IHRydWUKICAgICAgICAgICAgd2hpbGUgKHRoaXMuc2lnbmFsaW5nQWN0aXZlKHBlZXIpICYmIHRoaXMubG9jYWxJY2VDYW5kaWRhdGVzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZSh0aGlzLmxvY2FsSWNlQ2FuZGlkYXRlcy5zaGlmdCgpISkKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBhd2FpdCB0aGlzLnRyeURlcXVldWVJY2VDYW5kaWRhdGVzKCkKICAgIH0KCiAgICBwcml2YXRlIG9uSWNlQ2FuZGlkYXRlKGV2ZW50OiBSVENQZWVyQ29ubmVjdGlvbkljZUV2ZW50KSB7CiAgICAgICAgaWYgKCF0aGlzLnNpZ25hbGluZ0FjdGl2ZSgpKSByZXR1cm4KICAgICAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9IGV2ZW50LmNhbmRpZGF0ZS50b0pTT04oKQogICAgICAgICAgICB0aGlzLmNvdW50Q2FuZGlkYXRlKHRoaXMubG9jYWxDYW5kaWRhdGVDb3VudHMsIGNhbmRpZGF0ZS5jYW5kaWRhdGUpCiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiU2VuZGluZyBJQ0UgY2FuZGlkYXRlIikKCiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2U6IFN0cmVhbVNpZ25hbGluZ01lc3NhZ2UgPSB7CiAgICAgICAgICAgICAgICBBZGRJY2VDYW5kaWRhdGU6IHsKICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGU6IGNhbmRpZGF0ZS5jYW5kaWRhdGUgPz8gIiIsCiAgICAgICAgICAgICAgICAgICAgc2RwX21pZDogY2FuZGlkYXRlLnNkcE1pZCA/PyBudWxsLAogICAgICAgICAgICAgICAgICAgIHNkcF9tbGluZV9pbmRleDogY2FuZGlkYXRlLnNkcE1MaW5lSW5kZXggPz8gbnVsbCwKICAgICAgICAgICAgICAgICAgICB1c2VybmFtZV9mcmFnbWVudDogY2FuZGlkYXRlLnVzZXJuYW1lRnJhZ21lbnQgPz8gbnVsbAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICh0aGlzLnNlbnRMb2NhbERlc2NyaXB0aW9uKSB0aGlzLnNlbmRNZXNzYWdlKG1lc3NhZ2UpCiAgICAgICAgICAgIGVsc2UgaWYgKHRoaXMucmVzZXJ2ZVNpZ25hbGluZ01lc3NhZ2UoKSkgdGhpcy5sb2NhbEljZUNhbmRpZGF0ZXMucHVzaChtZXNzYWdlKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiTm8gbmV3IGljZSBjYW5kaWRhdGVzIikKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBpY2VDYW5kaWRhdGVzOiBBcnJheTxSVENJY2VDYW5kaWRhdGVJbml0PiA9IFtdCiAgICBwcml2YXRlIGFzeW5jIGFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGU6IFJUQ0ljZUNhbmRpZGF0ZUluaXQsIGNvdW50QW5ub3VuY2VtZW50ID0gdHJ1ZSkgewogICAgICAgIGlmICghdGhpcy5zaWduYWxpbmdBY3RpdmUoKSkgcmV0dXJuCiAgICAgICAgaWYgKGNvdW50QW5ub3VuY2VtZW50KSB0aGlzLmNvdW50Q2FuZGlkYXRlKHRoaXMucmVtb3RlQ2FuZGlkYXRlQ291bnRzLCBjYW5kaWRhdGUuY2FuZGlkYXRlKQogICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiUmVjZWl2ZWQgSUNFIGNhbmRpZGF0ZSIpCgogICAgICAgIGNvbnN0IHBlZXIgPSB0aGlzLnBlZXIKICAgICAgICBpZiAoIXBlZXI/LnJlbW90ZURlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiQnVmZmVyaW5nIGljZSBjYW5kaWRhdGUiKQoKICAgICAgICAgICAgaWYgKHRoaXMucmVzZXJ2ZVNpZ25hbGluZ01lc3NhZ2UoKSkgdGhpcy5pY2VDYW5kaWRhdGVzLnB1c2goY2FuZGlkYXRlKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgYXdhaXQgdGhpcy50cnlEZXF1ZXVlSWNlQ2FuZGlkYXRlcygpCgogICAgICAgIGlmICh0aGlzLnNpZ25hbGluZ0FjdGl2ZShwZWVyKSkgYXdhaXQgcGVlci5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKQogICAgfQogICAgcHJpdmF0ZSBhc3luYyB0cnlEZXF1ZXVlSWNlQ2FuZGlkYXRlcygpIHsKICAgICAgICBjb25zdCBwZWVyID0gdGhpcy5wZWVyCiAgICAgICAgaWYgKCFwZWVyPy5yZW1vdGVEZXNjcmlwdGlvbikgcmV0dXJuCiAgICAgICAgd2hpbGUgKHRoaXMuc2lnbmFsaW5nQWN0aXZlKHBlZXIpICYmIHRoaXMuaWNlQ2FuZGlkYXRlcy5sZW5ndGgpIHsKICAgICAgICAgICAgYXdhaXQgcGVlci5hZGRJY2VDYW5kaWRhdGUodGhpcy5pY2VDYW5kaWRhdGVzLnNoaWZ0KCkhKQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHdhc0Nvbm5lY3RlZCA9IGZhbHNlCiAgICBwcml2YXRlIG9uQ29ubmVjdGlvblN0YXRlQ2hhbmdlKCkgewogICAgICAgIGlmICghdGhpcy5wZWVyKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiT25Db25uZWN0aW9uU3RhdGVDaGFuZ2Ugd2l0aG91dCBhIHBlZXIiKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIHRoaXMucHVibGlzaENvbm5lY3Rpb25EaWFnbm9zdGljcygpCiAgICAgICAgbGV0IHR5cGU6IG51bGwgfCAiZmF0YWwiIHwgInJlY292ZXIiID0gbnVsbAoKICAgICAgICBpZiAodGhpcy5wZWVyLmNvbm5lY3Rpb25TdGF0ZSA9PSAiY29ubmVjdGVkIikgewogICAgICAgICAgICB0eXBlID0gInJlY292ZXIiCgogICAgICAgICAgICBpZiAodGhpcy5vbmNvbm5lY3QpIHsKICAgICAgICAgICAgICAgIHRoaXMub25jb25uZWN0KCkKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLndhc0Nvbm5lY3RlZCA9IHRydWUKICAgICAgICB9IGVsc2UgaWYgKCh0aGlzLnBlZXIuY29ubmVjdGlvblN0YXRlID09ICJmYWlsZWQiIHx8IHRoaXMucGVlci5jb25uZWN0aW9uU3RhdGUgPT0gImNsb3NlZCIpICYmIHRoaXMucGVlci5pY2VHYXRoZXJpbmdTdGF0ZSA9PSAiY29tcGxldGUiKSB7CiAgICAgICAgICAgIC8vIFRoZSBzdHJlYW0gY29udHJvbGxlciBvd25zIGZhbGxiYWNrLiBBIHRyYW5zaWVudCBJQ0UgZmFpbHVyZSBtdXN0CiAgICAgICAgICAgIC8vIG5vdCBlbWl0IGEgZmF0YWwgVUkgZXZlbnQgYmVmb3JlIGl0IGNhbiBzd2l0Y2ggdG8gV2ViU29ja2V0LgogICAgICAgICAgICB0eXBlID0gbnVsbAogICAgICAgIH0KCiAgICAgICAgaWYgKHRoaXMucGVlci5jb25uZWN0aW9uU3RhdGUgPT0gImZhaWxlZCIgfHwgdGhpcy5wZWVyLmNvbm5lY3Rpb25TdGF0ZSA9PSAiY2xvc2VkIikgewogICAgICAgICAgICBpZiAodGhpcy5vbmNsb3NlKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy53YXNDb25uZWN0ZWQpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLm9uY2xvc2UoImZhaWxlZCIpCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMub25jbG9zZSgiZmFpbGVkbm9jb25uZWN0IikKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBDaGFuZ2luZyBQZWVyIFN0YXRlIHRvICR7dGhpcy5wZWVyLmNvbm5lY3Rpb25TdGF0ZX1gLCB7CiAgICAgICAgICAgIHR5cGU6IHR5cGUgPz8gdW5kZWZpbmVkCiAgICAgICAgfSkKICAgIH0KICAgIHByaXZhdGUgb25TaWduYWxpbmdTdGF0ZUNoYW5nZSgpIHsKICAgICAgICBpZiAoIXRoaXMucGVlcikgewogICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIk9uU2lnbmFsaW5nU3RhdGVDaGFuZ2Ugd2l0aG91dCBhIHBlZXIiKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBDaGFuZ2luZyBQZWVyIFNpZ25hbGluZyBTdGF0ZSB0byAke3RoaXMucGVlci5zaWduYWxpbmdTdGF0ZX1gKQogICAgfQogICAgcHJpdmF0ZSBvbkljZUNvbm5lY3Rpb25TdGF0ZUNoYW5nZSgpIHsKICAgICAgICBpZiAoIXRoaXMucGVlcikgewogICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIk9uSWNlQ29ubmVjdGlvblN0YXRlQ2hhbmdlIHdpdGhvdXQgYSBwZWVyIikKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQogICAgICAgIHRoaXMucHVibGlzaENvbm5lY3Rpb25EaWFnbm9zdGljcygpCiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBDaGFuZ2luZyBQZWVyIEljZSBTdGF0ZSB0byAke3RoaXMucGVlci5pY2VDb25uZWN0aW9uU3RhdGV9YCkKICAgIH0KICAgIHByaXZhdGUgb25JY2VHYXRoZXJpbmdTdGF0ZUNoYW5nZSgpIHsKICAgICAgICBpZiAoIXRoaXMucGVlcikgewogICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIk9uSWNlR2F0aGVyaW5nU3RhdGVDaGFuZ2Ugd2l0aG91dCBhIHBlZXIiKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgdGhpcy5wdWJsaXNoQ29ubmVjdGlvbkRpYWdub3N0aWNzKCkKICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYENoYW5naW5nIFBlZXIgSWNlIEdhdGhlcmluZyBTdGF0ZSB0byAke3RoaXMucGVlci5pY2VHYXRoZXJpbmdTdGF0ZX1gKQoKICAgICAgICAvLyBHYXRoZXJpbmcgY29tcGxldGlvbiBzYXlzIG5vdGhpbmcgYWJvdXQgd2hldGhlciByZW1vdGUgY2FuZGlkYXRlcwogICAgICAgIC8vIGhhdmUgYmVlbiBhcHBsaWVkLiBFeHBsaWNpdCBwZWVyIGZhaWx1cmUgb3IgdGhlIHNldHVwIGRlYWRsaW5lIG93bnMgZmFsbGJhY2suCiAgICB9CgogICAgcHJpdmF0ZSBjaGFubmVsczogQXJyYXk8VHJhbnNwb3J0Q2hhbm5lbCB8IG51bGw+ID0gW10KICAgIHByaXZhdGUgY291bnRDYW5kaWRhdGUoY291bnRzOiBSZWNvcmQ8SWNlQ2FuZGlkYXRlVHlwZSwgbnVtYmVyPiwgY2FuZGlkYXRlOiB1bmtub3duKSB7CiAgICAgICAgaWYgKHRoaXMuZGlhZ25vc3RpY3NDbG9zZWQgfHwgdHlwZW9mIGNhbmRpZGF0ZSAhPT0gInN0cmluZyIgfHwgY2FuZGlkYXRlLmxlbmd0aCA+IDIwNDgpIHJldHVybgogICAgICAgIC8vIFJlYWQgb25seSB0aGUgZml4ZWQgY2FuZGlkYXRlLXR5cGUgdG9rZW4uIE5ldmVyIHJldGFpbiB0aGUgY2FuZGlkYXRlCiAgICAgICAgLy8gc3RyaW5nIG9yIGJ1aWxkIGFuIGFkZHJlc3MtYmFzZWQgZGVkdXBsaWNhdGlvbiBzZXQgZm9yIGRpYWdub3N0aWNzLgogICAgICAgIGNvbnN0IGZpZWxkcyA9IGNhbmRpZGF0ZS50cmltKCkuc3BsaXQoL1xzKy8pCiAgICAgICAgY29uc3QgdHlwZSA9IGZpZWxkc1s2XSA9PT0gInR5cCIgPyBmaWVsZHNbN10gOiBudWxsCiAgICAgICAgaWYgKHR5cGUgJiYgWyJob3N0IiwgInNyZmx4IiwgInByZmx4IiwgInJlbGF5Il0uaW5jbHVkZXModHlwZSkpIHsKICAgICAgICAgICAgY29uc3Qga2V5ID0gdHlwZSBhcyBJY2VDYW5kaWRhdGVUeXBlCiAgICAgICAgICAgIGNvdW50c1trZXldID0gTWF0aC5taW4oMTAwMCwgY291bnRzW2tleV0gKyAxKQogICAgICAgICAgICB0aGlzLnB1Ymxpc2hDb25uZWN0aW9uRGlhZ25vc3RpY3MoKQogICAgICAgIH0KICAgIH0KICAgIGdldENvbm5lY3Rpb25EaWFnbm9zdGljcygpOiBQYXJ0aWFsPERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljPiB7CiAgICAgICAgY29uc3QgcmVzdWx0OiBQYXJ0aWFsPERpcmVjdENvbm5lY3Rpb25EaWFnbm9zdGljPiA9IHsgbG9jYWxDYW5kaWRhdGVzOiB7IC4uLnRoaXMubG9jYWxDYW5kaWRhdGVDb3VudHMgfSwgcmVtb3RlQ2FuZGlkYXRlczogeyAuLi50aGlzLnJlbW90ZUNhbmRpZGF0ZUNvdW50cyB9IH0KICAgICAgICBpZiAodGhpcy5wZWVyICYmIFsibmV3IiwgImNoZWNraW5nIiwgImNvbm5lY3RlZCIsICJjb21wbGV0ZWQiLCAiZGlzY29ubmVjdGVkIiwgImZhaWxlZCIsICJjbG9zZWQiXS5pbmNsdWRlcyh0aGlzLnBlZXIuaWNlQ29ubmVjdGlvblN0YXRlKSkgcmVzdWx0LmljZVN0YXRlID0gdGhpcy5wZWVyLmljZUNvbm5lY3Rpb25TdGF0ZQogICAgICAgIGlmICh0aGlzLnBlZXIgJiYgWyJuZXciLCAiZ2F0aGVyaW5nIiwgImNvbXBsZXRlIl0uaW5jbHVkZXModGhpcy5wZWVyLmljZUdhdGhlcmluZ1N0YXRlKSkgcmVzdWx0LmdhdGhlcmluZ1N0YXRlID0gdGhpcy5wZWVyLmljZUdhdGhlcmluZ1N0YXRlCiAgICAgICAgcmV0dXJuIHJlc3VsdAogICAgfQogICAgcHJpdmF0ZSBwdWJsaXNoQ29ubmVjdGlvbkRpYWdub3N0aWNzKCkgewogICAgICAgIGlmICghdGhpcy5kaWFnbm9zdGljc0Nsb3NlZCkgdGhpcy5vbmRpYWdub3N0aWNzPy4oKQogICAgfQogICAgcHJpdmF0ZSBpbml0Q2hhbm5lbHMoKSB7CiAgICAgICAgaWYgKCF0aGlzLnBlZXIpIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBjaGFubmVsIHdpdGhvdXQgcGVlciIpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBpZiAodGhpcy5jaGFubmVscy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiQWxyZWFkeSBpbml0aWFsaXplZCBjaGFubmVscyIpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgZm9yIChjb25zdCBjaGFubmVsUmF3IGluIFRyYW5zcG9ydENoYW5uZWxJZCkgewogICAgICAgICAgICBjb25zdCBjaGFubmVsID0gY2hhbm5lbFJhdyBhcyBUcmFuc3BvcnRDaGFubmVsSWRLZXkKCiAgICAgICAgICAgIGlmIChjaGFubmVsID09ICJIT1NUX1ZJREVPIikgewogICAgICAgICAgICAgICAgY29uc3QgY2hhbm5lbDogVmlkZW9UcmFja1RyYW5zcG9ydENoYW5uZWwgPSBuZXcgV2ViUlRDSW5ib3VuZFRyYWNrVHJhbnNwb3J0Q2hhbm5lbDwidmlkZW90cmFjayI+KHRoaXMubG9nZ2VyLCAidmlkZW90cmFjayIsICJ2aWRlbyIsIHRoaXMudmlkZW9UcmFja0hvbGRlcikKICAgICAgICAgICAgICAgIHRoaXMuY2hhbm5lbHNbVHJhbnNwb3J0Q2hhbm5lbElkLkhPU1RfVklERU9dID0gY2hhbm5lbAogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoY2hhbm5lbCA9PSAiSE9TVF9BVURJTyIpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5uZWw6IEF1ZGlvVHJhY2tUcmFuc3BvcnRDaGFubmVsID0gbmV3IFdlYlJUQ0luYm91bmRUcmFja1RyYW5zcG9ydENoYW5uZWw8ImF1ZGlvdHJhY2siPih0aGlzLmxvZ2dlciwgImF1ZGlvdHJhY2siLCAiYXVkaW8iLCB0aGlzLmF1ZGlvVHJhY2tIb2xkZXIpCiAgICAgICAgICAgICAgICB0aGlzLmNoYW5uZWxzW1RyYW5zcG9ydENoYW5uZWxJZC5IT1NUX0FVRElPXSA9IGNoYW5uZWwKICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIEFsbCBEYXRhIENoYW5uZWxzIGFyZSBjcmVhdGVkIGJ5IHRoZSBzZXJ2ZXIKICAgICAgICAgICAgY29uc3QgaWQgPSBUcmFuc3BvcnRDaGFubmVsSWRbY2hhbm5lbF0KICAgICAgICAgICAgdGhpcy5jaGFubmVsc1tpZF0gPSBuZXcgV2ViUlRDRGF0YVRyYW5zcG9ydENoYW5uZWwoY2hhbm5lbCwgbnVsbCkKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSB2aWRlb1RyYWNrSG9sZGVyOiBUcmFja0hvbGRlciA9IHsgb250cmFjazogbnVsbCwgdHJhY2s6IG51bGwgfQogICAgcHJpdmF0ZSB2aWRlb1JlY2VpdmVyOiBSVENSdHBSZWNlaXZlciB8IG51bGwgPSBudWxsCgogICAgcHJpdmF0ZSBhdWRpb1RyYWNrSG9sZGVyOiBUcmFja0hvbGRlciA9IHsgb250cmFjazogbnVsbCwgdHJhY2s6IG51bGwgfQoKICAgIHByaXZhdGUgb25UcmFjayhldmVudDogUlRDVHJhY2tFdmVudCkgewogICAgICAgIGNvbnN0IHRyYWNrID0gZXZlbnQudHJhY2sKCiAgICAgICAgY29uc3QgcmVjZWl2ZXIgPSBldmVudC5yZWNlaXZlcgogICAgICAgIGlmICh0cmFjay5raW5kID09ICJ2aWRlbyIpIHsKICAgICAgICAgICAgdGhpcy52aWRlb1JlY2VpdmVyID0gcmVjZWl2ZXIKICAgICAgICB9CgogICAgICAgIHJlY2VpdmVyLmppdHRlckJ1ZmZlclRhcmdldCA9IDAKICAgICAgICBpZiAoInBsYXlvdXREZWxheUhpbnQiIGluIHJlY2VpdmVyKSB7CiAgICAgICAgICAgIHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQgPSAwCiAgICAgICAgfQoKICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYEFkZGluZyByZWNlaXZlcjogJHt0cmFjay5raW5kfSwgJHt0cmFjay5pZH0sICR7dHJhY2subGFiZWx9YCkKCiAgICAgICAgaWYgKHRyYWNrLmtpbmQgPT0gInZpZGVvIikgewogICAgICAgICAgICBpZiAoImNvbnRlbnRIaW50IiBpbiB0cmFjaykgewogICAgICAgICAgICAgICAgdHJhY2suY29udGVudEhpbnQgPSAibW90aW9uIgogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLnZpZGVvVHJhY2tIb2xkZXIudHJhY2sgPSB0cmFjawogICAgICAgICAgICBpZiAoIXRoaXMudmlkZW9UcmFja0hvbGRlci5vbnRyYWNrKSB7CiAgICAgICAgICAgICAgICB0aHJvdyAiTm8gdmlkZW8gdHJhY2sgbGlzdGVuZXIgcmVnaXN0ZXJlZCEiCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy52aWRlb1RyYWNrSG9sZGVyLm9udHJhY2soKQogICAgICAgIH0gZWxzZSBpZiAodHJhY2sua2luZCA9PSAiYXVkaW8iKSB7CiAgICAgICAgICAgIHRoaXMuYXVkaW9UcmFja0hvbGRlci50cmFjayA9IHRyYWNrCiAgICAgICAgICAgIGlmICghdGhpcy5hdWRpb1RyYWNrSG9sZGVyLm9udHJhY2spIHsKICAgICAgICAgICAgICAgIHRocm93ICJObyBhdWRpbyB0cmFjayBsaXN0ZW5lciByZWdpc3RlcmVkISIKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLmF1ZGlvVHJhY2tIb2xkZXIub250cmFjaygpCiAgICAgICAgfQogICAgfQoKICAgIC8vIEhhbmRsZSBkYXRhIGNoYW5uZWxzIGNyZWF0ZWQgYnkgdGhlIHJlbW90ZSBwZWVyIChzZXJ2ZXIpCiAgICBwcml2YXRlIG9uRGF0YUNoYW5uZWwoZXZlbnQ6IFJUQ0RhdGFDaGFubmVsRXZlbnQpIHsKICAgICAgICBjb25zdCByZW1vdGVDaGFubmVsID0gZXZlbnQuY2hhbm5lbAogICAgICAgIGNvbnN0IGxhYmVsID0gcmVtb3RlQ2hhbm5lbC5sYWJlbAoKICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYFJlY2VpdmVkIHJlbW90ZSBkYXRhIGNoYW5uZWw6ICR7bGFiZWx9YCkKCiAgICAgICAgLy8gTWFwIHRoZSBjaGFubmVsIGxhYmVsIHRvIHRoZSBjb3JyZXNwb25kaW5nIFRyYW5zcG9ydENoYW5uZWxJZAogICAgICAgIGNvbnN0IGNoYW5uZWxLZXkgPSBsYWJlbC50b1VwcGVyQ2FzZSgpIGFzIFRyYW5zcG9ydENoYW5uZWxJZEtleQogICAgICAgIGlmIChjaGFubmVsS2V5IGluIFRyYW5zcG9ydENoYW5uZWxJZCkgewogICAgICAgICAgICBjb25zdCBpZCA9IFRyYW5zcG9ydENoYW5uZWxJZFtjaGFubmVsS2V5XQogICAgICAgICAgICBjb25zdCBleGlzdGluZ0NoYW5uZWwgPSB0aGlzLmNoYW5uZWxzW2lkXQoKICAgICAgICAgICAgLy8gSWYgd2UgYWxyZWFkeSBoYXZlIGEgY2hhbm5lbCBmb3IgdGhpcyBJRCwgcmVwbGFjZSBpdHMgdW5kZXJseWluZyBSVENEYXRhQ2hhbm5lbAogICAgICAgICAgICAvLyB3aXRoIHRoZSByZW1vdGUgb25lIHNvIHdlIGNhbiByZWNlaXZlIG1lc3NhZ2VzIGZyb20gdGhlIHNlcnZlcgogICAgICAgICAgICBpZiAoZXhpc3RpbmdDaGFubmVsICYmIGV4aXN0aW5nQ2hhbm5lbC50eXBlID09PSAiZGF0YSIpIHsKICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgUmVwbGFjaW5nIHVuZGVybHlpbmcgY2hhbm5lbCBmb3IgJHtsYWJlbH0gd2l0aCByZW1vdGUgY2hhbm5lbGApOwogICAgICAgICAgICAgICAgKGV4aXN0aW5nQ2hhbm5lbCBhcyBXZWJSVENEYXRhVHJhbnNwb3J0Q2hhbm5lbCkucmVwbGFjZUNoYW5uZWwocmVtb3RlQ2hhbm5lbCkKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgQ3JlYXRpbmcgbmV3IGNoYW5uZWwgZm9yICR7bGFiZWx9YCkKICAgICAgICAgICAgICAgIHRoaXMuY2hhbm5lbHNbaWRdID0gbmV3IFdlYlJUQ0RhdGFUcmFuc3BvcnRDaGFubmVsKGxhYmVsLCByZW1vdGVDaGFubmVsKQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBVbmtub3duIHJlbW90ZSBkYXRhIGNoYW5uZWw6ICR7bGFiZWx9YCkKICAgICAgICB9CiAgICB9CgogICAgYXN5bmMgc2V0dXBIb3N0VmlkZW8oX3NldHVwOiBUcmFuc3BvcnRWaWRlb1NldHVwKTogUHJvbWlzZTxWaWRlb0NvZGVjU3VwcG9ydD4gewogICAgICAgIC8vIFRPRE86IGNoZWNrIHRyYW5zcG9ydCB0eXBlCgogICAgICAgIGxldCBjYXBhYmlsaXRpZXMKICAgICAgICBpZiAoImdldENhcGFiaWxpdGllcyIgaW4gUlRDUnRwUmVjZWl2ZXIgJiYgKGNhcGFiaWxpdGllcyA9IFJUQ1J0cFJlY2VpdmVyLmdldENhcGFiaWxpdGllcygidmlkZW8iKSkpIHsKICAgICAgICAgICAgY29uc3QgY29kZWNzID0gZW1wdHlWaWRlb0NvZGVjcygpCgogICAgICAgICAgICBmb3IgKGNvbnN0IGNvZGVjIGluIGNvZGVjcykgewogICAgICAgICAgICAgICAgY29uc3Qgc3VwcG9ydFJlcXVpcmVtZW50cyA9IENBUEFCSUxJVElFU19DT0RFQ1NbY29kZWNdCgogICAgICAgICAgICAgICAgaWYgKCFzdXBwb3J0UmVxdWlyZW1lbnRzKSB7CiAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBsZXQgc3VwcG9ydGVkID0gZmFsc2UKICAgICAgICAgICAgICAgIGNhcGFiaWxpdHlDb2RlY0xvb3A6IGZvciAoY29uc3QgY29kZWNDYXBhYmlsaXR5IG9mIGNhcGFiaWxpdGllcy5jb2RlY3MpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoY29kZWNDYXBhYmlsaXR5Lm1pbWVUeXBlICE9IHN1cHBvcnRSZXF1aXJlbWVudHMubWltZVR5cGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZm10cExpbmUgb2Ygc3VwcG9ydFJlcXVpcmVtZW50cy5mbXRwTGluZSkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvZGVjQ2FwYWJpbGl0eS5zZHBGbXRwTGluZT8uaW5jbHVkZXMoZm10cExpbmUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSBjYXBhYmlsaXR5Q29kZWNMb29wCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZCA9IHRydWUKICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNvZGVjc1tjb2RlY10gPSBzdXBwb3J0ZWQKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuIGNvZGVjcwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBtYXliZVZpZGVvQ29kZWNzKCkKICAgICAgICB9CiAgICB9CgogICAgYXN5bmMgc2V0dXBIb3N0QXVkaW8oX3NldHVwOiBUcmFuc3BvcnRBdWRpb1NldHVwKTogUHJvbWlzZTx2b2lkPiB7CiAgICAgICAgLy8gVE9ETzogY2hlY2sgdHJhbnNwb3J0IHR5cGUKICAgIH0KCiAgICBnZXRDaGFubmVsKGlkOiBUcmFuc3BvcnRDaGFubmVsSWRWYWx1ZSk6IFRyYW5zcG9ydENoYW5uZWwgewogICAgICAgIGNvbnN0IGNoYW5uZWwgPSB0aGlzLmNoYW5uZWxzW2lkXQogICAgICAgIGlmICghY2hhbm5lbCkgewogICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIkZhaWxlZCB0byBzZXR1cCB2aWRlbyB3aXRob3V0IHBlZXIiKQogICAgICAgICAgICB0aHJvdyBgRmFpbGVkIHRvIGdldCBjaGFubmVsIGJlY2F1c2UgaXQgaXMgbm90IHlldCBpbml0aWFsaXplZCwgSWQ6ICR7aWR9YAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGNoYW5uZWwKICAgIH0KCiAgICBvbmNvbm5lY3Q6ICgoKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsCgogICAgb25jbG9zZTogKChzaHV0ZG93bjogVHJhbnNwb3J0U2h1dGRvd24pID0+IHZvaWQpIHwgbnVsbCA9IG51bGwKICAgIGFzeW5jIGNsb3NlKCk6IFByb21pc2U8dm9pZD4gewogICAgICAgIHRoaXMuZGlhZ25vc3RpY3NDbG9zZWQgPSB0cnVlCiAgICAgICAgdGhpcy5zaWduYWxpbmdNZXNzYWdlcy5sZW5ndGggPSAwCiAgICAgICAgdGhpcy5pY2VDYW5kaWRhdGVzLmxlbmd0aCA9IDAKICAgICAgICB0aGlzLmxvY2FsSWNlQ2FuZGlkYXRlcy5sZW5ndGggPSAwCiAgICAgICAgdGhpcy5zZW50TG9jYWxEZXNjcmlwdGlvbiA9IGZhbHNlCiAgICAgICAgdGhpcy5vbmRpYWdub3N0aWNzID0gbnVsbAogICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiQ2xvc2luZyBXZWJSVEMgUGVlciIpCgogICAgICAgIGNvbnN0IHBlZXIgPSB0aGlzLnBlZXIKICAgICAgICB0aGlzLnBlZXIgPSBudWxsCiAgICAgICAgdGhpcy52aWRlb1N0YXRzU2FtcGxlci5yZXNldCgpCiAgICAgICAgZm9yIChjb25zdCBjaGFubmVsIG9mIHRoaXMuY2hhbm5lbHMpIHsKICAgICAgICAgICAgaWYgKGNoYW5uZWwgaW5zdGFuY2VvZiBXZWJSVENEYXRhVHJhbnNwb3J0Q2hhbm5lbCkgY2hhbm5lbC5jbG9zZSgpCiAgICAgICAgfQogICAgICAgIHBlZXI/LmNsb3NlKCkKICAgIH0KCiAgICBhc3luYyBnZXRTdGF0cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFN0YXRWYWx1ZT4+IHsKICAgICAgICBjb25zdCBzdGF0c0RhdGE6IFJlY29yZDxzdHJpbmcsIFN0YXRWYWx1ZT4gPSB7fQoKICAgICAgICBjb25zdCBwZWVyID0gdGhpcy5wZWVyCiAgICAgICAgaWYgKCFwZWVyKSByZXR1cm4gc3RhdHNEYXRhCiAgICAgICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBwZWVyLmdldFN0YXRzKCkKICAgICAgICBpZiAodGhpcy5wZWVyICE9PSBwZWVyKSByZXR1cm4gc3RhdHNEYXRhCiAgICAgICAgT2JqZWN0LmFzc2lnbihzdGF0c0RhdGEsIHN1bW1hcml6ZVJ0Y1N0YXRzKHN0YXRzKSkKICAgICAgICBPYmplY3QuYXNzaWduKHN0YXRzRGF0YSwgdGhpcy52aWRlb1N0YXRzU2FtcGxlci5zYW1wbGUoc3RhdHMpKQogICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIHN0YXRzLmVudHJpZXMoKSkgewogICAgICAgICAgICBpZiAodmFsdWUudHlwZSAhPT0gImluYm91bmQtcnRwIiB8fCAodmFsdWUua2luZCA/PyB2YWx1ZS5tZWRpYVR5cGUpICE9PSAidmlkZW8iKSBjb250aW51ZQoKICAgICAgICAgICAgaWYgKCJkZWNvZGVySW1wbGVtZW50YXRpb24iIGluIHZhbHVlICYmIHZhbHVlLmRlY29kZXJJbXBsZW1lbnRhdGlvbiAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBzdGF0c0RhdGEuZGVjb2RlckltcGxlbWVudGF0aW9uID0gdmFsdWUuZGVjb2RlckltcGxlbWVudGF0aW9uCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCJmcmFtZVdpZHRoIiBpbiB2YWx1ZSAmJiB2YWx1ZS5mcmFtZVdpZHRoICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHN0YXRzRGF0YS52aWRlb1dpZHRoID0gdmFsdWUuZnJhbWVXaWR0aAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgiZnJhbWVIZWlnaHQiIGluIHZhbHVlICYmIHZhbHVlLmZyYW1lSGVpZ2h0ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHN0YXRzRGF0YS52aWRlb0hlaWdodCA9IHZhbHVlLmZyYW1lSGVpZ2h0CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCJmcmFtZXNQZXJTZWNvbmQiIGluIHZhbHVlICYmIHZhbHVlLmZyYW1lc1BlclNlY29uZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBzdGF0c0RhdGEud2VicnRjRnBzID0gdmFsdWUuZnJhbWVzUGVyU2Vjb25kCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgiaml0dGVyQnVmZmVyRGVsYXkiIGluIHZhbHVlICYmIHZhbHVlLmppdHRlckJ1ZmZlckRlbGF5ICE9IG51bGwgJiYgdmFsdWUuaml0dGVyQnVmZmVyRW1pdHRlZENvdW50ID4gMCkgewogICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y0ppdHRlckJ1ZmZlckRlbGF5TXMgPSB2YWx1ZS5qaXR0ZXJCdWZmZXJEZWxheSAqIDEwMDAgLyB2YWx1ZS5qaXR0ZXJCdWZmZXJFbWl0dGVkQ291bnQKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoImppdHRlckJ1ZmZlclRhcmdldERlbGF5IiBpbiB2YWx1ZSAmJiB2YWx1ZS5qaXR0ZXJCdWZmZXJUYXJnZXREZWxheSAhPSBudWxsICYmIHZhbHVlLmppdHRlckJ1ZmZlckVtaXR0ZWRDb3VudCA+IDApIHsKICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNKaXR0ZXJCdWZmZXJUYXJnZXREZWxheU1zID0gdmFsdWUuaml0dGVyQnVmZmVyVGFyZ2V0RGVsYXkgKiAxMDAwIC8gdmFsdWUuaml0dGVyQnVmZmVyRW1pdHRlZENvdW50CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCJqaXR0ZXJCdWZmZXJNaW5pbXVtRGVsYXkiIGluIHZhbHVlICYmIHZhbHVlLmppdHRlckJ1ZmZlck1pbmltdW1EZWxheSAhPSBudWxsICYmIHZhbHVlLmppdHRlckJ1ZmZlckVtaXR0ZWRDb3VudCA+IDApIHsKICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNKaXR0ZXJCdWZmZXJNaW5pbXVtRGVsYXlNcyA9IHZhbHVlLmppdHRlckJ1ZmZlck1pbmltdW1EZWxheSAqIDEwMDAgLyB2YWx1ZS5qaXR0ZXJCdWZmZXJFbWl0dGVkQ291bnQKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoImppdHRlciIgaW4gdmFsdWUgJiYgdmFsdWUuaml0dGVyICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNKaXR0ZXJNcyA9IHZhbHVlLmppdHRlciAqIDEwMDAKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoInRvdGFsRGVjb2RlVGltZSIgaW4gdmFsdWUgJiYgdmFsdWUudG90YWxEZWNvZGVUaW1lICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNUb3RhbERlY29kZVRpbWVNcyA9IHZhbHVlLnRvdGFsRGVjb2RlVGltZSAqIDEwMDAKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoInRvdGFsQXNzZW1ibHlUaW1lIiBpbiB2YWx1ZSAmJiB2YWx1ZS50b3RhbEFzc2VtYmx5VGltZSAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBzdGF0c0RhdGEud2VicnRjVG90YWxBc3NlbWJseVRpbWVNcyA9IHZhbHVlLnRvdGFsQXNzZW1ibHlUaW1lICogMTAwMAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgidG90YWxQcm9jZXNzaW5nRGVsYXkiIGluIHZhbHVlICYmIHZhbHVlLnRvdGFsUHJvY2Vzc2luZ0RlbGF5ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNUb3RhbFByb2Nlc3NpbmdEZWxheU1zID0gdmFsdWUudG90YWxQcm9jZXNzaW5nRGVsYXkgKiAxMDAwCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCJwYWNrZXRzUmVjZWl2ZWQiIGluIHZhbHVlICYmIHZhbHVlLnBhY2tldHNSZWNlaXZlZCAhPSBudWxsKSB7CiAgICAgICAgICAgICAgICBzdGF0c0RhdGEud2VicnRjUGFja2V0c1JlY2VpdmVkID0gdmFsdWUucGFja2V0c1JlY2VpdmVkCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCJwYWNrZXRzTG9zdCIgaW4gdmFsdWUgJiYgdmFsdWUucGFja2V0c0xvc3QgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y1BhY2tldHNMb3N0ID0gdmFsdWUucGFja2V0c0xvc3QKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoImZyYW1lc0Ryb3BwZWQiIGluIHZhbHVlICYmIHZhbHVlLmZyYW1lc0Ryb3BwZWQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y0ZyYW1lc0Ryb3BwZWQgPSB2YWx1ZS5mcmFtZXNEcm9wcGVkCiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCJrZXlGcmFtZXNEZWNvZGVkIiBpbiB2YWx1ZSAmJiB2YWx1ZS5rZXlGcmFtZXNEZWNvZGVkICE9IG51bGwpIHsKICAgICAgICAgICAgICAgIHN0YXRzRGF0YS53ZWJydGNLZXlGcmFtZXNEZWNvZGVkID0gdmFsdWUua2V5RnJhbWVzRGVjb2RlZAogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgibmFja0NvdW50IiBpbiB2YWx1ZSAmJiB2YWx1ZS5uYWNrQ291bnQgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgc3RhdHNEYXRhLndlYnJ0Y05hY2tDb3VudCA9IHZhbHVlLm5hY2tDb3VudAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc3RhdHNEYXRhCiAgICB9Cn0KCmNvbnN0IFZJREVPX0NPVU5URVJTID0gWyJieXRlc1JlY2VpdmVkIiwgImZyYW1lc0RlY29kZWQiLCAidG90YWxEZWNvZGVUaW1lIiwgImppdHRlckJ1ZmZlckRlbGF5IiwgImppdHRlckJ1ZmZlckVtaXR0ZWRDb3VudCIsICJwYWNrZXRzUmVjZWl2ZWQiLCAiZnJhbWVzRHJvcHBlZCJdIGFzIGNvbnN0CnR5cGUgVmlkZW9Db3VudGVyID0gdHlwZW9mIFZJREVPX0NPVU5URVJTW251bWJlcl0KdHlwZSBWaWRlb1N0YXRzU25hcHNob3QgPSB7CiAgICBpZDogc3RyaW5nCiAgICB0aW1lc3RhbXA6IG51bWJlcgogICAgY291bnRlcnM6IFBhcnRpYWw8UmVjb3JkPFZpZGVvQ291bnRlciwgbnVtYmVyPj4KICAgIHBhY2tldHNMb3N0PzogbnVtYmVyCn0KCmZ1bmN0aW9uIGZpbml0ZU5vbm5lZ2F0aXZlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgbnVtYmVyIHsKICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICJudW1iZXIiICYmIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgJiYgdmFsdWUgPj0gMAp9CgovLyBBIHNpbmdsZSwgbnVtZXJpYy1vbmx5IGJhc2VsaW5lIGlzIHJldGFpbmVkIGluIG1lbW9yeS4gTmV2ZXIgcHVibGlzaCByYXcKLy8gcmVwb3J0cywgcmVwb3J0IElEcywgY2FuZGlkYXRlIGFkZHJlc3NlcywgU0RQIG9yIGRlY29kZXIgaW1wbGVtZW50YXRpb24gZGF0YS4KLy8gRGVsdGFzIGRlc2NyaWJlIHRoZSBsYXN0IHBvbGxpbmcgaW50ZXJ2YWwsIG5vdCB0aGUgbGlmZXRpbWUgb2YgdGhlIHN0cmVhbS4KZXhwb3J0IGNsYXNzIFJ0Y1ZpZGVvU3RhdHNTYW1wbGVyIHsKICAgIHByaXZhdGUgcHJldmlvdXM6IFZpZGVvU3RhdHNTbmFwc2hvdCB8IG51bGwgPSBudWxsCgogICAgcmVzZXQoKSB7IHRoaXMucHJldmlvdXMgPSBudWxsIH0KCiAgICBzYW1wbGUoc3RhdHM6IFJUQ1N0YXRzUmVwb3J0KTogUmVjb3JkPHN0cmluZywgU3RhdFZhbHVlPiB7CiAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBTdGF0VmFsdWU+ID0ge30KICAgICAgICBsZXQgdmlkZW86IGFueSA9IG51bGwKICAgICAgICBmb3IgKGNvbnN0IHZhbHVlIG9mIHN0YXRzLnZhbHVlcygpKSB7CiAgICAgICAgICAgIGlmICh2YWx1ZS50eXBlICE9PSAiaW5ib3VuZC1ydHAiIHx8ICh2YWx1ZS5raW5kID8/IHZhbHVlLm1lZGlhVHlwZSkgIT09ICJ2aWRlbyIgfHwgdmFsdWUuaXNSZW1vdGUgPT09IHRydWUpIGNvbnRpbnVlCiAgICAgICAgICAgIC8vIFBDIFJlbW90ZSByZXF1ZXN0cyBvbmUgdmlkZW8gdHJhY2suIEtlZXAgdGhhdCByZXBvcnQgc3RhYmxlIGlmCiAgICAgICAgICAgIC8vIGFuIG9sZGVyIHJlY2VpdmVyIHJlbWFpbnMgYnJpZWZseSBpbiBnZXRTdGF0cyBkdXJpbmcgcmVwbGFjZW1lbnQuCiAgICAgICAgICAgIGlmICghdmlkZW8gfHwgdmFsdWUuaWQgPT09IHRoaXMucHJldmlvdXM/LmlkKSB2aWRlbyA9IHZhbHVlCiAgICAgICAgICAgIGlmICh2YWx1ZS5pZCA9PT0gdGhpcy5wcmV2aW91cz8uaWQpIGJyZWFrCiAgICAgICAgfQogICAgICAgIGlmICghdmlkZW8pIHsgdGhpcy5yZXNldCgpOyByZXR1cm4gcmVzdWx0IH0KCiAgICAgICAgaWYgKGZpbml0ZU5vbm5lZ2F0aXZlKHZpZGVvLmZyYW1lc1BlclNlY29uZCkpIHJlc3VsdC5ydGNWaWRlb0RlY29kZWRGcHMgPSB2aWRlby5mcmFtZXNQZXJTZWNvbmQKICAgICAgICBpZiAodHlwZW9mIHZpZGVvLmlkICE9PSAic3RyaW5nIiB8fCAhZmluaXRlTm9ubmVnYXRpdmUodmlkZW8udGltZXN0YW1wKSkgeyB0aGlzLnJlc2V0KCk7IHJldHVybiByZXN1bHQgfQogICAgICAgIGNvbnN0IGN1cnJlbnQ6IFZpZGVvU3RhdHNTbmFwc2hvdCA9IHsgaWQ6IHZpZGVvLmlkLCB0aW1lc3RhbXA6IHZpZGVvLnRpbWVzdGFtcCwgY291bnRlcnM6IHt9IH0KICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIFZJREVPX0NPVU5URVJTKSB7CiAgICAgICAgICAgIGlmIChmaW5pdGVOb25uZWdhdGl2ZSh2aWRlb1tmaWVsZF0pKSBjdXJyZW50LmNvdW50ZXJzW2ZpZWxkXSA9IHZpZGVvW2ZpZWxkXQogICAgICAgIH0KICAgICAgICAvLyBwYWNrZXRzTG9zdCBpcyBzaWduZWQgaW4gdGhlIFdlYlJUQyBzcGVjOyBsYXRlIGFycml2YWxzIGNhbiByZWR1Y2UgaXQuCiAgICAgICAgaWYgKHR5cGVvZiB2aWRlby5wYWNrZXRzTG9zdCA9PT0gIm51bWJlciIgJiYgTnVtYmVyLmlzRmluaXRlKHZpZGVvLnBhY2tldHNMb3N0KSkgY3VycmVudC5wYWNrZXRzTG9zdCA9IHZpZGVvLnBhY2tldHNMb3N0CgogICAgICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5wcmV2aW91cwogICAgICAgIC8vIE91dC1vZi1vcmRlciAvIHJlcGVhdGVkIGdldFN0YXRzIHJlc3BvbnNlcyBtdXN0IG5vdCBtb3ZlIG91ciBiYXNlbGluZQogICAgICAgIC8vIGJhY2t3YXJkcyBvciBwcm9kdWNlIGRpdmlkZWQtYnktemVybyByYXRlcy4KICAgICAgICBpZiAocHJldmlvdXM/LmlkID09PSBjdXJyZW50LmlkICYmIGN1cnJlbnQudGltZXN0YW1wIDw9IHByZXZpb3VzLnRpbWVzdGFtcCkgcmV0dXJuIHJlc3VsdAogICAgICAgIHRoaXMucHJldmlvdXMgPSBjdXJyZW50CiAgICAgICAgaWYgKCFwcmV2aW91cyB8fCBwcmV2aW91cy5pZCAhPT0gY3VycmVudC5pZCkgcmV0dXJuIHJlc3VsdAogICAgICAgIGNvbnN0IGludGVydmFsID0gY3VycmVudC50aW1lc3RhbXAgLSBwcmV2aW91cy50aW1lc3RhbXAKICAgICAgICBpZiAoaW50ZXJ2YWwgPiAxMDAwMCkgcmV0dXJuIHJlc3VsdCAvLyBSZXN1bWVkIHRhYjogd2FpdCBmb3IgYSBmcmVzaCwgc2hvcnQgc2FtcGxlLgogICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgVklERU9fQ09VTlRFUlMpIHsKICAgICAgICAgICAgY29uc3QgYmVmb3JlID0gcHJldmlvdXMuY291bnRlcnNbZmllbGRdLCBhZnRlciA9IGN1cnJlbnQuY291bnRlcnNbZmllbGRdCiAgICAgICAgICAgIGlmIChiZWZvcmUgIT0gbnVsbCAmJiBhZnRlciAhPSBudWxsICYmIGFmdGVyIDwgYmVmb3JlKSByZXR1cm4gcmVzdWx0CiAgICAgICAgfQoKICAgICAgICByZXN1bHQucnRjVmlkZW9TYW1wbGVJbnRlcnZhbE1zID0gaW50ZXJ2YWwKICAgICAgICBjb25zdCBkZWx0YSA9IChmaWVsZDogVmlkZW9Db3VudGVyKTogbnVtYmVyIHwgbnVsbCA9PiB7CiAgICAgICAgICAgIGNvbnN0IGJlZm9yZSA9IHByZXZpb3VzLmNvdW50ZXJzW2ZpZWxkXSwgYWZ0ZXIgPSBjdXJyZW50LmNvdW50ZXJzW2ZpZWxkXQogICAgICAgICAgICByZXR1cm4gYmVmb3JlID09IG51bGwgfHwgYWZ0ZXIgPT0gbnVsbCA/IG51bGwgOiBhZnRlciAtIGJlZm9yZQogICAgICAgIH0KICAgICAgICBjb25zdCBwdXQgPSAoa2V5OiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpID0+IHsgaWYgKGZpbml0ZU5vbm5lZ2F0aXZlKHZhbHVlKSkgcmVzdWx0W2tleV0gPSB2YWx1ZSB9CiAgICAgICAgY29uc3QgYnl0ZXMgPSBkZWx0YSgiYnl0ZXNSZWNlaXZlZCIpLCBkZWNvZGVkID0gZGVsdGEoImZyYW1lc0RlY29kZWQiKQogICAgICAgIGlmIChieXRlcyAhPSBudWxsKSBwdXQoInJ0Y1ZpZGVvUmVjZWl2ZWRNYnBzIiwgYnl0ZXMgKiA4IC8gaW50ZXJ2YWwgLyAxMDAwKQogICAgICAgIGlmIChkZWNvZGVkICE9IG51bGwpIHB1dCgicnRjVmlkZW9EZWNvZGVkRnBzIiwgZGVjb2RlZCAqIDEwMDAgLyBpbnRlcnZhbCkKICAgICAgICBjb25zdCBkZWNvZGVUaW1lID0gZGVsdGEoInRvdGFsRGVjb2RlVGltZSIpLCBqaXR0ZXJEZWxheSA9IGRlbHRhKCJqaXR0ZXJCdWZmZXJEZWxheSIpLCBlbWl0dGVkID0gZGVsdGEoImppdHRlckJ1ZmZlckVtaXR0ZWRDb3VudCIpCiAgICAgICAgaWYgKGRlY29kZWQgIT0gbnVsbCAmJiBkZWNvZGVkID4gMCAmJiBkZWNvZGVUaW1lICE9IG51bGwpIHB1dCgicnRjVmlkZW9EZWNvZGVNc1BlckZyYW1lIiwgZGVjb2RlVGltZSAqIDEwMDAgLyBkZWNvZGVkKQogICAgICAgIGlmIChlbWl0dGVkICE9IG51bGwgJiYgZW1pdHRlZCA+IDAgJiYgaml0dGVyRGVsYXkgIT0gbnVsbCkgcHV0KCJydGNWaWRlb0ppdHRlckJ1ZmZlck1zUGVyRnJhbWUiLCBqaXR0ZXJEZWxheSAqIDEwMDAgLyBlbWl0dGVkKQogICAgICAgIGNvbnN0IHJlY2VpdmVkID0gZGVsdGEoInBhY2tldHNSZWNlaXZlZCIpLCBkcm9wcGVkID0gZGVsdGEoImZyYW1lc0Ryb3BwZWQiKQogICAgICAgIGlmIChyZWNlaXZlZCAhPSBudWxsKSBwdXQoInJ0Y1ZpZGVvUGFja2V0c1JlY2VpdmVkIiwgcmVjZWl2ZWQpCiAgICAgICAgaWYgKGRyb3BwZWQgIT0gbnVsbCkgcHV0KCJydGNWaWRlb0ZyYW1lc0Ryb3BwZWQiLCBkcm9wcGVkKQogICAgICAgIGlmIChwcmV2aW91cy5wYWNrZXRzTG9zdCAhPSBudWxsICYmIGN1cnJlbnQucGFja2V0c0xvc3QgIT0gbnVsbCkgewogICAgICAgICAgICBjb25zdCBsb3N0ID0gY3VycmVudC5wYWNrZXRzTG9zdCAtIHByZXZpb3VzLnBhY2tldHNMb3N0CiAgICAgICAgICAgIC8vIEEgZGVjcmVhc2UgaXMgYW1iaWd1b3VzIChsYXRlIHBhY2tldHMgb3IgcmVzZXQpLCBuZXZlciBzaG93IGEKICAgICAgICAgICAgLy8gbmVnYXRpdmUgbG9zcyByYXRlIG9yIG1pc3JlcHJlc2VudCBpdCBhcyB6ZXJvIGxvc3MuCiAgICAgICAgICAgIGlmIChsb3N0ID49IDApIHsKICAgICAgICAgICAgICAgIHB1dCgicnRjVmlkZW9QYWNrZXRzTG9zdCIsIGxvc3QpCiAgICAgICAgICAgICAgICBpZiAocmVjZWl2ZWQgIT0gbnVsbCAmJiByZWNlaXZlZCArIGxvc3QgPiAwKSBwdXQoInJ0Y1ZpZGVvUGFja2V0TG9zc1BlcmNlbnQiLCBsb3N0ICogMTAwIC8gKHJlY2VpdmVkICsgbG9zdCkpCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHJlc3VsdAogICAgfQp9CgovLyBEZWxpYmVyYXRlbHkgcmV0dXJuIG5vIGNhbmRpZGF0ZSBhZGRyZXNzZXMsIHBvcnRzLCBJRHMgb3IgY3JlZGVudGlhbHMuCmV4cG9ydCBmdW5jdGlvbiBzdW1tYXJpemVSdGNTdGF0cyhzdGF0czogUlRDU3RhdHNSZXBvcnQpOiBSZWNvcmQ8c3RyaW5nLCBTdGF0VmFsdWU+IHsKICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgU3RhdFZhbHVlPiA9IHsgcnRjUm91dGU6ICJwZW5kaW5nIiB9CiAgICBsZXQgcGFpcjogYW55ID0gbnVsbAogICAgZm9yIChjb25zdCB2YWx1ZSBvZiBzdGF0cy52YWx1ZXMoKSkgewogICAgICAgIGlmICh2YWx1ZS50eXBlID09PSAidHJhbnNwb3J0IiAmJiB2YWx1ZS5zZWxlY3RlZENhbmRpZGF0ZVBhaXJJZCkgewogICAgICAgICAgICBwYWlyID0gc3RhdHMuZ2V0KHZhbHVlLnNlbGVjdGVkQ2FuZGlkYXRlUGFpcklkKQogICAgICAgICAgICBpZiAocGFpcikgYnJlYWsKICAgICAgICB9CiAgICB9CiAgICBpZiAoIXBhaXIpIGZvciAoY29uc3QgdmFsdWUgb2Ygc3RhdHMudmFsdWVzKCkpIHsKICAgICAgICBpZiAodmFsdWUudHlwZSA9PT0gImNhbmRpZGF0ZS1wYWlyIiAmJiB2YWx1ZS5zdGF0ZSA9PT0gInN1Y2NlZWRlZCIgJiYgKHZhbHVlLnNlbGVjdGVkID09PSB0cnVlIHx8IHZhbHVlLm5vbWluYXRlZCA9PT0gdHJ1ZSkpIHsgcGFpciA9IHZhbHVlOyBicmVhayB9CiAgICB9CiAgICBpZiAoIXBhaXIgfHwgcGFpci5zdGF0ZSAhPT0gInN1Y2NlZWRlZCIpIHJldHVybiByZXN1bHQKICAgIGNvbnN0IGxvY2FsID0gc3RhdHMuZ2V0KHBhaXIubG9jYWxDYW5kaWRhdGVJZCksIHJlbW90ZSA9IHN0YXRzLmdldChwYWlyLnJlbW90ZUNhbmRpZGF0ZUlkKQogICAgcmVzdWx0LnJ0Y1JvdXRlID0gbG9jYWw/LmNhbmRpZGF0ZVR5cGUgPT09ICJyZWxheSIgfHwgcmVtb3RlPy5jYW5kaWRhdGVUeXBlID09PSAicmVsYXkiID8gInJlbGF5IgogICAgICAgIDogbG9jYWw/LmNhbmRpZGF0ZVR5cGUgPT09ICJob3N0IiAmJiByZW1vdGU/LmNhbmRpZGF0ZVR5cGUgPT09ICJob3N0IiA/ICJkaXJlY3QtbG9jYWwiIDogImRpcmVjdCIKICAgIGlmIChOdW1iZXIuaXNGaW5pdGUocGFpci5jdXJyZW50Um91bmRUcmlwVGltZSkgJiYgcGFpci5jdXJyZW50Um91bmRUcmlwVGltZSA+PSAwKQogICAgICAgIHJlc3VsdC5ydGNDYW5kaWRhdGVQYWlyUnR0TXMgPSBwYWlyLmN1cnJlbnRSb3VuZFRyaXBUaW1lICogMTAwMAogICAgaWYgKGxvY2FsPy5wcm90b2NvbCA9PT0gInVkcCIgfHwgbG9jYWw/LnByb3RvY29sID09PSAidGNwIikgcmVzdWx0LnJ0Y1Byb3RvY29sID0gbG9jYWwucHJvdG9jb2wKICAgIHJldHVybiByZXN1bHQKfQoKdHlwZSBUcmFja0hvbGRlciA9IHsKICAgIG9udHJhY2s6ICgoKSA9PiB2b2lkKSB8IG51bGwKICAgIHRyYWNrOiBNZWRpYVN0cmVhbVRyYWNrIHwgbnVsbAp9CgovLyBUaGlzIHJlY2VpdmVzIHRyYWNrIGRhdGEKY2xhc3MgV2ViUlRDSW5ib3VuZFRyYWNrVHJhbnNwb3J0Q2hhbm5lbDxUIGV4dGVuZHMgc3RyaW5nPiBpbXBsZW1lbnRzIFRyYWNrVHJhbnNwb3J0Q2hhbm5lbCB7CiAgICB0eXBlOiBUCgogICAgY2FuUmVjZWl2ZTogYm9vbGVhbiA9IHRydWUKICAgIGNhblNlbmQ6IGJvb2xlYW4gPSBmYWxzZQoKICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIgfCBudWxsCgogICAgcHJpdmF0ZSBsYWJlbDogc3RyaW5nCiAgICBwcml2YXRlIHRyYWNrSG9sZGVyOiBUcmFja0hvbGRlcgoKICAgIGNvbnN0cnVjdG9yKGxvZ2dlcjogTG9nZ2VyIHwgbnVsbCwgdHlwZTogVCwgbGFiZWw6IHN0cmluZywgdHJhY2tIb2xkZXI6IFRyYWNrSG9sZGVyKSB7CiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIKCiAgICAgICAgdGhpcy50eXBlID0gdHlwZQogICAgICAgIHRoaXMubGFiZWwgPSBsYWJlbAogICAgICAgIHRoaXMudHJhY2tIb2xkZXIgPSB0cmFja0hvbGRlcgoKICAgICAgICB0aGlzLnRyYWNrSG9sZGVyLm9udHJhY2sgPSB0aGlzLm9uVHJhY2suYmluZCh0aGlzKQogICAgfQogICAgc2V0VHJhY2soX3RyYWNrOiBNZWRpYVN0cmVhbVRyYWNrIHwgbnVsbCk6IHZvaWQgewogICAgICAgIHRocm93ICJXZWJSVENJbmJvdW5kVHJhY2tUcmFuc3BvcnRDaGFubmVsIGNhbm5vdCBhZGRUcmFjayIKICAgIH0KCiAgICBwcml2YXRlIG9uVHJhY2soKSB7CiAgICAgICAgY29uc3QgdHJhY2sgPSB0aGlzLnRyYWNrSG9sZGVyLnRyYWNrCiAgICAgICAgaWYgKCF0cmFjaykgewogICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIldlYlJUQyBUcmFja0hvbGRlci50cmFjayBpcyBudWxsISIpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgZm9yIChjb25zdCBsaXN0ZW5lciBvZiB0aGlzLnRyYWNrTGlzdGVuZXJzKSB7CiAgICAgICAgICAgIGxpc3RlbmVyKHRyYWNrKQogICAgICAgIH0KICAgIH0KCgogICAgcHJpdmF0ZSB0cmFja0xpc3RlbmVyczogQXJyYXk8KHRyYWNrOiBNZWRpYVN0cmVhbVRyYWNrKSA9PiB2b2lkPiA9IFtdCiAgICBhZGRUcmFja0xpc3RlbmVyKGxpc3RlbmVyOiAodHJhY2s6IE1lZGlhU3RyZWFtVHJhY2spID0+IHZvaWQpOiB2b2lkIHsKICAgICAgICBpZiAodGhpcy50cmFja0hvbGRlci50cmFjaykgewogICAgICAgICAgICBsaXN0ZW5lcih0aGlzLnRyYWNrSG9sZGVyLnRyYWNrKQogICAgICAgIH0KICAgICAgICB0aGlzLnRyYWNrTGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpCiAgICB9CiAgICByZW1vdmVUcmFja0xpc3RlbmVyKGxpc3RlbmVyOiAodHJhY2s6IE1lZGlhU3RyZWFtVHJhY2spID0+IHZvaWQpOiB2b2lkIHsKICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMudHJhY2tMaXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcikKICAgICAgICBpZiAoaW5kZXggIT0gLTEpIHsKICAgICAgICAgICAgdGhpcy50cmFja0xpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpCiAgICAgICAgfQogICAgfQp9CgpjbGFzcyBXZWJSVENEYXRhVHJhbnNwb3J0Q2hhbm5lbCBpbXBsZW1lbnRzIERhdGFUcmFuc3BvcnRDaGFubmVsIHsKICAgIHR5cGU6ICJkYXRhIiA9ICJkYXRhIgoKICAgIGNhblJlY2VpdmU6IGJvb2xlYW4gPSB0cnVlCiAgICBjYW5TZW5kOiBib29sZWFuID0gdHJ1ZQoKICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgbGFiZWw6IHN0cmluZwogICAgcHJpdmF0ZSBjaGFubmVsOiBSVENEYXRhQ2hhbm5lbCB8IG51bGwKICAgIHByaXZhdGUgYm91bmRUcnlEZXF1ZXVlU2VuZFF1ZXVlOiAoKSA9PiB2b2lkCiAgICBwcml2YXRlIGJvdW5kT25NZXNzYWdlOiAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4gdm9pZAoKICAgIGNvbnN0cnVjdG9yKGxhYmVsOiBzdHJpbmcsIGNoYW5uZWw6IFJUQ0RhdGFDaGFubmVsIHwgbnVsbCwgbG9nZ2VyPzogTG9nZ2VyKSB7CiAgICAgICAgdGhpcy5sYWJlbCA9IGxhYmVsCiAgICAgICAgdGhpcy5jaGFubmVsID0gY2hhbm5lbAogICAgICAgIHRoaXMuYm91bmRPbk1lc3NhZ2UgPSB0aGlzLm9uTWVzc2FnZS5iaW5kKHRoaXMpCiAgICAgICAgdGhpcy5ib3VuZFRyeURlcXVldWVTZW5kUXVldWUgPSB0aGlzLnRyeURlcXVldWVTZW5kUXVldWUuYmluZCh0aGlzKQoKICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/PyBudWxsCgogICAgICAgIHRoaXMuY2hhbm5lbD8uYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRoaXMuYm91bmRPbk1lc3NhZ2UpCiAgICAgICAgdGhpcy5jaGFubmVsPy5hZGRFdmVudExpc3RlbmVyKCJvcGVuIiwgdGhpcy5ib3VuZFRyeURlcXVldWVTZW5kUXVldWUpCiAgICB9CgogICAgLy8gUmVwbGFjZSB0aGUgdW5kZXJseWluZyBjaGFubmVsIHdpdGggYSBuZXcgb25lIChlLmcuLCBmcm9tIHJlbW90ZSBwZWVyKQogICAgLy8gVGhpcyBpcyB1c2VkIHdoZW4gd2UgcmVjZWl2ZSBhIGRhdGEgY2hhbm5lbCBmcm9tIHRoZSBzZXJ2ZXIgdGhhdCBzaG91bGQKICAgIC8vIHJlcGxhY2Ugb3VyIGxvY2FsbHkgY3JlYXRlZCBvbmUgZm9yIHJlY2VpdmluZyBtZXNzYWdlcwogICAgcmVwbGFjZUNoYW5uZWwobmV3Q2hhbm5lbDogUlRDRGF0YUNoYW5uZWwpOiB2b2lkIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHsgbmV3Q2hhbm5lbC5jbG9zZSgpOyByZXR1cm4gfQogICAgICAgIC8vIFJlbW92ZSBsaXN0ZW5lciBmcm9tIG9sZCBjaGFubmVsCiAgICAgICAgdGhpcy5jaGFubmVsPy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcGVuIiwgdGhpcy5ib3VuZFRyeURlcXVldWVTZW5kUXVldWUpCiAgICAgICAgdGhpcy5jaGFubmVsPy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGhpcy5ib3VuZE9uTWVzc2FnZSkKICAgICAgICAvLyBBZGQgbGlzdGVuZXIgdG8gbmV3IGNoYW5uZWwKICAgICAgICB0aGlzLmNoYW5uZWwgPSBuZXdDaGFubmVsCiAgICAgICAgdGhpcy5jaGFubmVsLmFkZEV2ZW50TGlzdGVuZXIoIm9wZW4iLCB0aGlzLmJvdW5kVHJ5RGVxdWV1ZVNlbmRRdWV1ZSkKICAgICAgICB0aGlzLmNoYW5uZWwuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRoaXMuYm91bmRPbk1lc3NhZ2UpCiAgICAgICAgdGhpcy50cnlEZXF1ZXVlU2VuZFF1ZXVlKCkKICAgIH0KCiAgICBwcml2YXRlIHNlbmRRdWV1ZTogQXJyYXk8QXJyYXlCdWZmZXI+ID0gW10KICAgIHByaXZhdGUgY2xvc2VkID0gZmFsc2UKICAgIHNlbmQobWVzc2FnZTogQXJyYXlCdWZmZXIpOiB2b2lkIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHJldHVybgoKICAgICAgICBpZiAoIXRoaXMuY2hhbm5lbCB8fCB0aGlzLmNoYW5uZWwucmVhZHlTdGF0ZSAhPSAib3BlbiIpIHsKICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHRvIGNvcHkgdGhlIG1lc3NhZ2UKICAgICAgICAgICAgdGhpcy5zZW5kUXVldWUucHVzaChtZXNzYWdlLnNsaWNlKDApKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuY2hhbm5lbC5zZW5kKG1lc3NhZ2UpCiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSB0cnlEZXF1ZXVlU2VuZFF1ZXVlKCkgewogICAgICAgIGlmICghdGhpcy5jaGFubmVsIHx8IHRoaXMuY2hhbm5lbC5yZWFkeVN0YXRlICE9ICJvcGVuIikgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiB0aGlzLnNlbmRRdWV1ZS5zcGxpY2UoMCkpIHsKICAgICAgICAgICAgdGhpcy5jaGFubmVsLnNlbmQobWVzc2FnZSkKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBvbk1lc3NhZ2UoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgewogICAgICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhCiAgICAgICAgaWYgKCEoZGF0YSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSkgewogICAgICAgICAgICBjb25zb2xlLndhcm4oYHJlY2VpdmVkIHRleHQgZGF0YSBvbiB3ZWJydGMgY2hhbm5lbCAke3RoaXMubGFiZWx9YCkKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBmb3IgKGNvbnN0IGxpc3RlbmVyIG9mIHRoaXMucmVjZWl2ZUxpc3RlbmVycykgewogICAgICAgICAgICBsaXN0ZW5lcihldmVudC5kYXRhKQogICAgICAgIH0KICAgIH0KICAgIHByaXZhdGUgcmVjZWl2ZUxpc3RlbmVyczogQXJyYXk8KGRhdGE6IEFycmF5QnVmZmVyKSA9PiB2b2lkPiA9IFtdCiAgICBhZGRSZWNlaXZlTGlzdGVuZXIobGlzdGVuZXI6IChkYXRhOiBBcnJheUJ1ZmZlcikgPT4gdm9pZCk6IHZvaWQgewogICAgICAgIHRoaXMucmVjZWl2ZUxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKQogICAgfQogICAgcmVtb3ZlUmVjZWl2ZUxpc3RlbmVyKGxpc3RlbmVyOiAoZGF0YTogQXJyYXlCdWZmZXIpID0+IHZvaWQpOiB2b2lkIHsKICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMucmVjZWl2ZUxpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKQogICAgICAgIGlmIChpbmRleCAhPSAtMSkgewogICAgICAgICAgICB0aGlzLnJlY2VpdmVMaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKQogICAgICAgIH0KICAgIH0KICAgIGVzdGltYXRlZEJ1ZmZlcmVkQnl0ZXMoKTogbnVtYmVyIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIHRoaXMuY2hhbm5lbD8uYnVmZmVyZWRBbW91bnQgPz8gbnVsbAogICAgfQogICAgY2xvc2UoKSB7CiAgICAgICAgdGhpcy5jbG9zZWQgPSB0cnVlCiAgICAgICAgdGhpcy5zZW5kUXVldWUubGVuZ3RoID0gMAogICAgICAgIHRoaXMucmVjZWl2ZUxpc3RlbmVycy5sZW5ndGggPSAwCiAgICAgICAgdGhpcy5jaGFubmVsPy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcGVuIiwgdGhpcy5ib3VuZFRyeURlcXVldWVTZW5kUXVldWUpCiAgICAgICAgdGhpcy5jaGFubmVsPy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGhpcy5ib3VuZE9uTWVzc2FnZSkKICAgICAgICB0aGlzLmNoYW5uZWw/LmNsb3NlKCkKICAgICAgICB0aGlzLmNoYW5uZWwgPSBudWxsCiAgICB9Cn0K"},{"path":"web/stream/video.ts","sha256":"3ae999ac0641d30cfe7328477c7587a7227649746ff96e54ad3311ce5a86e9fa","contentBase64":"aW1wb3J0IHsgU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MgfSBmcm9tICIuLi9hcGlfYmluZGluZ3MuanMiCgovLy8gIm1heWJlIiBtZWFucyB0aGF0IHdlIG1pZ2h0IHN1cHBvcnQgdGhpcyBjb2RlYyBidXQgd2UgY2FuJ3Qga25vdyB1bnRpbCB3ZSBwbGF5IHRoZSB2aWRlbwpleHBvcnQgdHlwZSBWaWRlb0NvZGVjU3VwcG9ydEZsYWcgPSBib29sZWFuIHwgIm1heWJlIgoKZXhwb3J0IHR5cGUgVmlkZW9Db2RlY1N1cHBvcnQgPSB7CiAgICBIMjY0OiBWaWRlb0NvZGVjU3VwcG9ydEZsYWcKICAgIEgyNjRfSElHSDhfNDQ0OiBWaWRlb0NvZGVjU3VwcG9ydEZsYWcKICAgIEgyNjU6IFZpZGVvQ29kZWNTdXBwb3J0RmxhZwogICAgSDI2NV9NQUlOMTA6IFZpZGVvQ29kZWNTdXBwb3J0RmxhZwogICAgSDI2NV9SRVhUOF80NDQ6IFZpZGVvQ29kZWNTdXBwb3J0RmxhZwogICAgSDI2NV9SRVhUMTBfNDQ0OiBWaWRlb0NvZGVjU3VwcG9ydEZsYWcKICAgIEFWMV9NQUlOODogVmlkZW9Db2RlY1N1cHBvcnRGbGFnCiAgICBBVjFfTUFJTjEwOiBWaWRlb0NvZGVjU3VwcG9ydEZsYWcKICAgIEFWMV9ISUdIOF80NDQ6IFZpZGVvQ29kZWNTdXBwb3J0RmxhZwogICAgQVYxX0hJR0gxMF80NDQ6IFZpZGVvQ29kZWNTdXBwb3J0RmxhZwp9ICYgUmVjb3JkPHN0cmluZywgVmlkZW9Db2RlY1N1cHBvcnRGbGFnPgoKZXhwb3J0IGNvbnN0IENBUEFCSUxJVElFU19DT0RFQ1M6IFJlY29yZDxrZXlvZiBWaWRlb0NvZGVjU3VwcG9ydCwgeyBtaW1lVHlwZTogc3RyaW5nLCBmbXRwTGluZTogQXJyYXk8c3RyaW5nPiB9PiA9IHsKICAgIC8vIEgyNjQKICAgICJIMjY0IjogeyBtaW1lVHlwZTogInZpZGVvL0gyNjQiLCBmbXRwTGluZTogWyJwcm9maWxlLWxldmVsLWlkPTQyZTAxZiJdIH0sCiAgICAiSDI2NF9ISUdIOF80NDQiOiB7IG1pbWVUeXBlOiAidmlkZW8vSDI2NCIsIGZtdHBMaW5lOiBbInByb2ZpbGUtbGV2ZWwtaWQ9NjQwMDMyIl0gfSwKICAgIC8vIEgyNjUKICAgICJIMjY1IjogeyBtaW1lVHlwZTogInZpZGVvL0gyNjUiLCBmbXRwTGluZTogW10gfSwgLy8gPC0tIFNhZmFyaSBIMjY1IGZtdHBMaW5lIGlzIGVtcHR5IChmb3Igc29tZSBkdW1iIHJlYXNvbikKICAgICJIMjY1X01BSU4xMCI6IHsgbWltZVR5cGU6ICJ2aWRlby9IMjY1IiwgZm10cExpbmU6IFsicHJvZmlsZS1pZD0yIiwgInRpZXItZmxhZz0wIiwgInR4LW1vZGU9U1JTVCJdIH0sCiAgICAiSDI2NV9SRVhUOF80NDQiOiB7IG1pbWVUeXBlOiAidmlkZW8vSDI2NSIsIGZtdHBMaW5lOiBbInByb2ZpbGUtaWQ9NCIsICJ0aWVyLWZsYWc9MCIsICJ0eC1tb2RlPVNSU1QiXSB9LAogICAgIkgyNjVfUkVYVDEwXzQ0NCI6IHsgbWltZVR5cGU6ICJ2aWRlby9IMjY1IiwgZm10cExpbmU6IFsicHJvZmlsZS1pZD01IiwgInRpZXItZmxhZz0wIiwgInR4LW1vZGU9U1JTVCJdIH0sCiAgICAvLyBBdjEKICAgICJBVjFfTUFJTjgiOiB7IG1pbWVUeXBlOiAidmlkZW8vQVYxIiwgZm10cExpbmU6IFtdIH0sIC8vIDwtLSBTYWZhcmkgQVYxIGZtdHBMaW5lIGlzIGVtcHR5CiAgICAiQVYxX01BSU4xMCI6IHsgbWltZVR5cGU6ICJ2aWRlby9BVjEiLCBmbXRwTGluZTogW10gfSwgLy8gPC0tIFNhZmFyaSBBVjEgZm10cExpbmUgaXMgZW1wdHkKICAgICJBVjFfSElHSDhfNDQ0IjogeyBtaW1lVHlwZTogInZpZGVvL0FWMSIsIGZtdHBMaW5lOiBbInByb2ZpbGU9MSJdIH0sCiAgICAiQVYxX0hJR0gxMF80NDQiOiB7IG1pbWVUeXBlOiAidmlkZW8vQVYxIiwgZm10cExpbmU6IFsicHJvZmlsZT0xIl0gfSwKfQoKZXhwb3J0IGZ1bmN0aW9uIGVtcHR5VmlkZW9Db2RlY3MoKTogVmlkZW9Db2RlY1N1cHBvcnQgewogICAgcmV0dXJuIHsKICAgICAgICBIMjY0OiBmYWxzZSwKICAgICAgICBIMjY0X0hJR0g4XzQ0NDogZmFsc2UsCiAgICAgICAgSDI2NTogZmFsc2UsCiAgICAgICAgSDI2NV9NQUlOMTA6IGZhbHNlLAogICAgICAgIEgyNjVfUkVYVDhfNDQ0OiBmYWxzZSwKICAgICAgICBIMjY1X1JFWFQxMF80NDQ6IGZhbHNlLAogICAgICAgIEFWMV9NQUlOODogZmFsc2UsCiAgICAgICAgQVYxX01BSU4xMDogZmFsc2UsCiAgICAgICAgQVYxX0hJR0g4XzQ0NDogZmFsc2UsCiAgICAgICAgQVYxX0hJR0gxMF80NDQ6IGZhbHNlCiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBtYXliZVZpZGVvQ29kZWNzKCk6IFZpZGVvQ29kZWNTdXBwb3J0IHsKICAgIHJldHVybiB7CiAgICAgICAgSDI2NDogIm1heWJlIiwKICAgICAgICBIMjY0X0hJR0g4XzQ0NDogIm1heWJlIiwKICAgICAgICBIMjY1OiAibWF5YmUiLAogICAgICAgIEgyNjVfTUFJTjEwOiAibWF5YmUiLAogICAgICAgIEgyNjVfUkVYVDhfNDQ0OiAibWF5YmUiLAogICAgICAgIEgyNjVfUkVYVDEwXzQ0NDogIm1heWJlIiwKICAgICAgICBBVjFfTUFJTjg6ICJtYXliZSIsCiAgICAgICAgQVYxX01BSU4xMDogIm1heWJlIiwKICAgICAgICBBVjFfSElHSDhfNDQ0OiAibWF5YmUiLAogICAgICAgIEFWMV9ISUdIMTBfNDQ0OiAibWF5YmUiCiAgICB9Cn0KCmV4cG9ydCBmdW5jdGlvbiBhbGxWaWRlb0NvZGVjcygpOiBWaWRlb0NvZGVjU3VwcG9ydCB7CiAgICByZXR1cm4gewogICAgICAgIEgyNjQ6IHRydWUsCiAgICAgICAgSDI2NF9ISUdIOF80NDQ6IHRydWUsCiAgICAgICAgSDI2NTogdHJ1ZSwKICAgICAgICBIMjY1X01BSU4xMDogdHJ1ZSwKICAgICAgICBIMjY1X1JFWFQ4XzQ0NDogdHJ1ZSwKICAgICAgICBIMjY1X1JFWFQxMF80NDQ6IHRydWUsCiAgICAgICAgQVYxX01BSU44OiB0cnVlLAogICAgICAgIEFWMV9NQUlOMTA6IHRydWUsCiAgICAgICAgQVYxX0hJR0g4XzQ0NDogdHJ1ZSwKICAgICAgICBBVjFfSElHSDEwXzQ0NDogdHJ1ZQogICAgfQp9CgpleHBvcnQgZnVuY3Rpb24gYW5kVmlkZW9Db2RlY3MoYTogVmlkZW9Db2RlY1N1cHBvcnQsIGI6IFZpZGVvQ29kZWNTdXBwb3J0KTogVmlkZW9Db2RlY1N1cHBvcnQgewogICAgY29uc3Qgb3V0cHV0OiBhbnkgPSB7fQoKICAgIGZvciAoY29uc3QgY29kZWMgaW4gYSkgewogICAgICAgIGNvbnN0IHN1cHBvcnRlZEEgPSBhW2NvZGVjXQogICAgICAgIGNvbnN0IHN1cHBvcnRlZEIgPSBiW2NvZGVjXQoKICAgICAgICBsZXQgc3VwcG9ydGVkOiBWaWRlb0NvZGVjU3VwcG9ydEZsYWcgPSBmYWxzZQogICAgICAgIGlmIChzdXBwb3J0ZWRBID09PSB0cnVlICYmIHN1cHBvcnRlZEIgPT09IHRydWUpIHsKICAgICAgICAgICAgc3VwcG9ydGVkID0gdHJ1ZQogICAgICAgIH0gZWxzZSBpZiAoCiAgICAgICAgICAgIChzdXBwb3J0ZWRBID09PSAibWF5YmUiICYmIHN1cHBvcnRlZEIgPT09ICJtYXliZSIpIHx8CiAgICAgICAgICAgIChzdXBwb3J0ZWRBID09PSAibWF5YmUiICYmIHN1cHBvcnRlZEIgPT09IHRydWUpIHx8CiAgICAgICAgICAgIChzdXBwb3J0ZWRCID09PSAibWF5YmUiICYmIHN1cHBvcnRlZEEgPT09IHRydWUpCiAgICAgICAgKSB7CiAgICAgICAgICAgIHN1cHBvcnRlZCA9ICJtYXliZSIKICAgICAgICB9CgogICAgICAgIG91dHB1dFtjb2RlY10gPSBzdXBwb3J0ZWQKICAgIH0KCiAgICByZXR1cm4gb3V0cHV0Cn0KCmV4cG9ydCBmdW5jdGlvbiBoYXNBbnlDb2RlYyhjb2RlY3M6IFZpZGVvQ29kZWNTdXBwb3J0KTogYm9vbGVhbiB7CiAgICBmb3IgKGNvbnN0IGtleSBpbiBjb2RlY3MpIHsKICAgICAgICBpZiAoY29kZWNzW2tleV0pIHsKICAgICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGZhbHNlCn0KCmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdXBwb3J0ZWRWaWRlb0Zvcm1hdHNCaXRzKHN1cHBvcnQ6IFZpZGVvQ29kZWNTdXBwb3J0KTogbnVtYmVyIHsKICAgIGxldCBtYXNrID0gMAoKICAgIGlmIChzdXBwb3J0LkgyNjQpIHsKICAgICAgICBtYXNrIHw9IFN0cmVhbVN1cHBvcnRlZFZpZGVvQ29kZWNzLkgyNjQKICAgIH0KICAgIGlmIChzdXBwb3J0LkgyNjRfSElHSDhfNDQ0KSB7CiAgICAgICAgbWFzayB8PSBTdHJlYW1TdXBwb3J0ZWRWaWRlb0NvZGVjcy5IMjY0X0hJR0g4XzQ0NAogICAgfQogICAgaWYgKHN1cHBvcnQuSDI2NSkgewogICAgICAgIG1hc2sgfD0gU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MuSDI2NQogICAgfQogICAgaWYgKHN1cHBvcnQuSDI2NV9NQUlOMTApIHsKICAgICAgICBtYXNrIHw9IFN0cmVhbVN1cHBvcnRlZFZpZGVvQ29kZWNzLkgyNjVfTUFJTjEwCiAgICB9CiAgICBpZiAoc3VwcG9ydC5IMjY1X1JFWFQ4XzQ0NCkgewogICAgICAgIG1hc2sgfD0gU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MuSDI2NV9SRVhUOF80NDQKICAgIH0KICAgIGlmIChzdXBwb3J0LkgyNjVfUkVYVDEwXzQ0NCkgewogICAgICAgIG1hc2sgfD0gU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MuSDI2NV9SRVhUMTBfNDQ0CiAgICB9CiAgICBpZiAoc3VwcG9ydC5BVjFfTUFJTjgpIHsKICAgICAgICBtYXNrIHw9IFN0cmVhbVN1cHBvcnRlZFZpZGVvQ29kZWNzLkFWMV9NQUlOOAogICAgfQogICAgaWYgKHN1cHBvcnQuQVYxX01BSU4xMCkgewogICAgICAgIG1hc2sgfD0gU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MuQVYxX01BSU4xMAogICAgfQogICAgaWYgKHN1cHBvcnQuQVYxX0hJR0g4XzQ0NCkgewogICAgICAgIG1hc2sgfD0gU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MuQVYxX0hJR0g4XzQ0NAogICAgfQogICAgaWYgKHN1cHBvcnQuQVYxX0hJR0gxMF80NDQpIHsKICAgICAgICBtYXNrIHw9IFN0cmVhbVN1cHBvcnRlZFZpZGVvQ29kZWNzLkFWMV9ISUdIMTBfNDQ0CiAgICB9CgogICAgcmV0dXJuIG1hc2sKfQoKZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGVkVmlkZW9Db2RlYyh2aWRlb0NvZGVjOiBudW1iZXIpOiBrZXlvZiB0eXBlb2YgU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MgfCBudWxsIHsKICAgIGlmICh2aWRlb0NvZGVjID09IFN0cmVhbVN1cHBvcnRlZFZpZGVvQ29kZWNzLkgyNjQpIHsKICAgICAgICByZXR1cm4gIkgyNjQiCiAgICB9IGVsc2UgaWYgKHZpZGVvQ29kZWMgPT0gU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MuSDI2NF9ISUdIOF80NDQpIHsKICAgICAgICByZXR1cm4gIkgyNjRfSElHSDhfNDQ0IgogICAgfSBlbHNlIGlmICh2aWRlb0NvZGVjID09IFN0cmVhbVN1cHBvcnRlZFZpZGVvQ29kZWNzLkgyNjUpIHsKICAgICAgICByZXR1cm4gIkgyNjUiCiAgICB9IGVsc2UgaWYgKHZpZGVvQ29kZWMgPT0gU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MuSDI2NV9NQUlOMTApIHsKICAgICAgICByZXR1cm4gIkgyNjVfTUFJTjEwIgogICAgfSBlbHNlIGlmICh2aWRlb0NvZGVjID09IFN0cmVhbVN1cHBvcnRlZFZpZGVvQ29kZWNzLkgyNjVfUkVYVDhfNDQ0KSB7CiAgICAgICAgcmV0dXJuICJIMjY1X1JFWFQ4XzQ0NCIKICAgIH0gZWxzZSBpZiAodmlkZW9Db2RlYyA9PSBTdHJlYW1TdXBwb3J0ZWRWaWRlb0NvZGVjcy5IMjY1X1JFWFQxMF80NDQpIHsKICAgICAgICByZXR1cm4gIkgyNjVfUkVYVDEwXzQ0NCIKICAgIH0gZWxzZSBpZiAodmlkZW9Db2RlYyA9PSBTdHJlYW1TdXBwb3J0ZWRWaWRlb0NvZGVjcy5BVjFfTUFJTjgpIHsKICAgICAgICByZXR1cm4gIkFWMV9NQUlOOCIKICAgIH0gZWxzZSBpZiAodmlkZW9Db2RlYyA9PSBTdHJlYW1TdXBwb3J0ZWRWaWRlb0NvZGVjcy5BVjFfTUFJTjEwKSB7CiAgICAgICAgcmV0dXJuICJBVjFfTUFJTjEwIgogICAgfSBlbHNlIGlmICh2aWRlb0NvZGVjID09IFN0cmVhbVN1cHBvcnRlZFZpZGVvQ29kZWNzLkFWMV9ISUdIOF80NDQpIHsKICAgICAgICByZXR1cm4gIkFWMV9ISUdIOF80NDQiCiAgICB9IGVsc2UgaWYgKHZpZGVvQ29kZWMgPT0gU3RyZWFtU3VwcG9ydGVkVmlkZW9Db2RlY3MuQVYxX0hJR0gxMF80NDQpIHsKICAgICAgICByZXR1cm4gIkFWMV9ISUdIMTBfNDQ0IgogICAgfSBlbHNlIHsKICAgICAgICByZXR1cm4gbnVsbAogICAgfQp9Cg=="},{"path":"web/stream/video/annex_b_translator.ts","sha256":"7bacedc72ee705a971262fb1f0935c6d96045d52feb6330cb4b97589154eb053","contentBase64":"aW1wb3J0IHsgbnVtVG9IZXggfSBmcm9tICIuLi8uLi91dGlsLmpzIjsKaW1wb3J0IHsgQnl0ZUJ1ZmZlciB9IGZyb20gIi4uL2J1ZmZlci5qcyI7CmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyI7CmltcG9ydCB7IFZpZGVvQ29kZWNTdXBwb3J0IH0gZnJvbSAiLi4vdmlkZW8uanMiOwppbXBvcnQgeyBWaWRlb0RlY29kZVVuaXQgfSBmcm9tICIuL2luZGV4LmpzIjsKCi8vIFRyYW5zbGF0ZXMgYW5uZXggYiBwcmVmaXhlZCBOQUxVJ3MgaW50byBBdkNjIAoKLy8gVE9ETzogdGhpcyBzaG91bGQgdXNlIHRoZSB0cmFuc2xhdG9yIHRvIGdldCB0aGUgY29kZWMgaW5zdGVhZCBvZiBqdXN0IHN0YXRpY2FsbHkgZGVmaW5pbmcgdGhlbQpleHBvcnQgY29uc3QgVklERU9fREVDT0RFUl9DT0RFQ1NfT1VUX09GX0JBTkQ6IFJlY29yZDxrZXlvZiBWaWRlb0NvZGVjU3VwcG9ydCwgc3RyaW5nPiA9IHsKICAgICJIMjY0IjogImF2YzEuNDJFMDFFIiwKICAgICJIMjY0X0hJR0g4XzQ0NCI6ICJhdmMxLjY0MDAzMiIsCiAgICAiSDI2NSI6ICJodmMxLjEuNi5MOTMuQjAiLAogICAgIkgyNjVfTUFJTjEwIjogImh2YzEuMi40LkwxMjAuOTAiLAogICAgIkgyNjVfUkVYVDhfNDQ0IjogImh2YzEuNi42Lkw5My45MCIsCiAgICAiSDI2NV9SRVhUMTBfNDQ0IjogImh2YzEuNi4xMC5MMTIwLjkwIiwKICAgICJBVjFfTUFJTjgiOiAiYXYwMS4wLjA0TS4wOCIsCiAgICAiQVYxX01BSU4xMCI6ICJhdjAxLjAuMDRNLjEwIiwKICAgICJBVjFfSElHSDhfNDQ0IjogImF2MDEuMC4wOE0uMDgiLAogICAgIkFWMV9ISUdIMTBfNDQ0IjogImF2MDEuMC4wOE0uMTAiCn0KCgpjb25zdCBTVEFSVF9DT0RFX1NIT1JUID0gbmV3IFVpbnQ4QXJyYXkoWzB4MDAsIDB4MDAsIDB4MDFdKTsgLy8gMy1ieXRlIHN0YXJ0IGNvZGUKY29uc3QgU1RBUlRfQ09ERV9MT05HID0gbmV3IFVpbnQ4QXJyYXkoWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDFdKTsgLy8gNC1ieXRlIHN0YXJ0IGNvZGUKZnVuY3Rpb24gc3RhcnRzV2l0aChidWZmZXI6IFVpbnQ4QXJyYXksIHBvc2l0aW9uOiBudW1iZXIsIGNoZWNrOiBVaW50OEFycmF5KTogYm9vbGVhbiB7CiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoZWNrLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgaWYgKGJ1ZmZlcltwb3NpdGlvbiArIGldICE9IGNoZWNrW2ldKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB0cnVlCn0KCmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb2RlY1N0cmVhbVRyYW5zbGF0b3IgewoKICAgIHByb3RlY3RlZCBsb2dnZXI6IExvZ2dlciB8IG51bGwKCiAgICBjb25zdHJ1Y3Rvcihsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/PyBudWxsCiAgICB9CgogICAgcHJvdGVjdGVkIGRlY29kZXJDb25maWc6IFZpZGVvRGVjb2RlckNvbmZpZyA9IHsKICAgICAgICBjb2RlYzogInVuZGVmaW5lZCIKICAgIH0KCiAgICBzZXRCYXNlQ29uZmlnKGRlY29kZXJDb25maWc6IFZpZGVvRGVjb2RlckNvbmZpZykgewogICAgICAgIHRoaXMuZGVjb2RlckNvbmZpZyA9IGRlY29kZXJDb25maWcKICAgIH0KICAgIGdldEN1cnJlbnRDb25maWcoKTogVmlkZW9EZWNvZGVyQ29uZmlnIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIHRoaXMuZGVjb2RlckNvbmZpZwogICAgfQoKICAgIHByb3RlY3RlZCBjdXJyZW50RnJhbWUgPSBuZXcgVWludDhBcnJheSgxMDAwKQoKICAgIHN1Ym1pdERlY29kZVVuaXQodW5pdDogVmlkZW9EZWNvZGVVbml0KTogeyBjb25maWd1cmU6IFZpZGVvRGVjb2RlckNvbmZpZyB8IG51bGwsIGNodW5rOiBVaW50OEFycmF5IHwgbnVsbCwgZXJyb3I6IGZhbHNlIH0gfCB7IGVycm9yOiB0cnVlIH0gewogICAgICAgIGlmICghdGhpcy5kZWNvZGVyQ29uZmlnKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiRmFpbGVkIHRvIHJldHJpZXZlIGRlY29kZXJDb25maWcgd2hpY2ggc2hvdWxkIGFscmVhZHkgZXhpc3QgZm9yIFZpZGVvRGVjb2RlciIsIHsgdHlwZTogImZhdGFsIiB9KQogICAgICAgICAgICByZXR1cm4geyBlcnJvcjogdHJ1ZSB9CiAgICAgICAgfQoKICAgICAgICAvLyBXZSdyZSBnZXR0aW5nIGFubmV4IGIgcHJlZml4ZWQgbmFsdXMgYnV0IHdlIG5lZWQgbGVuZ3RoIHByZWZpeGVkIG5hbHVzIC0+IGNvbnZlcnQgdGhlbSBiYXNlZCBvbiBjb2RlYwoKICAgICAgICBjb25zdCB7IHNob3VsZFByb2Nlc3MgfSA9IHRoaXMuc3RhcnRQcm9jZXNzQ2h1bmsodW5pdCkKCiAgICAgICAgaWYgKCFzaG91bGRQcm9jZXNzKSB7CiAgICAgICAgICAgIHJldHVybiB7IGNvbmZpZ3VyZTogbnVsbCwgY2h1bms6IG51bGwsIGVycm9yOiBmYWxzZSB9CiAgICAgICAgfQoKICAgICAgICBjb25zdCBkYXRhID0gbmV3IFVpbnQ4QXJyYXkodW5pdC5kYXRhKQoKICAgICAgICBsZXQgdW5pdEJlZ2luID0gMAogICAgICAgIGxldCBjdXJyZW50UG9zaXRpb24gPSAwCiAgICAgICAgbGV0IGN1cnJlbnRGcmFtZVNpemUgPSAwCgogICAgICAgIGxldCBoYW5kbGVTdGFydENvZGUgPSAoKSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHNsaWNlID0gZGF0YS5zbGljZSh1bml0QmVnaW4sIGN1cnJlbnRQb3NpdGlvbikKCiAgICAgICAgICAgIGNvbnN0IHsgaW5jbHVkZSB9ID0gdGhpcy5vbkNodW5rVW5pdChzbGljZSkKCiAgICAgICAgICAgIGlmIChpbmNsdWRlKSB7CiAgICAgICAgICAgICAgICAvLyBBcHBlbmQgc2l6ZSArIGRhdGEKICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tGcmFtZUJ1ZmZlclNpemUoY3VycmVudEZyYW1lU2l6ZSwgc2xpY2UubGVuZ3RoICsgNCkKCiAgICAgICAgICAgICAgICAvLyBBcHBlbmQgc2l6ZQogICAgICAgICAgICAgICAgY29uc3Qgc2l6ZUJ1ZmZlciA9IG5ldyBCeXRlQnVmZmVyKDQpCiAgICAgICAgICAgICAgICBzaXplQnVmZmVyLnB1dFUzMihzbGljZS5sZW5ndGgpCiAgICAgICAgICAgICAgICBzaXplQnVmZmVyLmZsaXAoKQoKICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEZyYW1lLnNldChzaXplQnVmZmVyLmdldFJlbWFpbmluZ0J1ZmZlcigpLCBjdXJyZW50RnJhbWVTaXplKQoKICAgICAgICAgICAgICAgIC8vIEFwcGVuZCBkYXRhCiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZS5zZXQoc2xpY2UsIGN1cnJlbnRGcmFtZVNpemUgKyA0KQoKICAgICAgICAgICAgICAgIGN1cnJlbnRGcmFtZVNpemUgKz0gc2xpY2UubGVuZ3RoICsgNAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB3aGlsZSAoY3VycmVudFBvc2l0aW9uIDwgZGF0YS5sZW5ndGgpIHsKICAgICAgICAgICAgbGV0IHN0YXJ0Q29kZUxlbmd0aCA9IDAKICAgICAgICAgICAgbGV0IGZvdW5kU3RhcnRDb2RlID0gZmFsc2UKCiAgICAgICAgICAgIGlmIChzdGFydHNXaXRoKGRhdGEsIGN1cnJlbnRQb3NpdGlvbiwgU1RBUlRfQ09ERV9MT05HKSkgewogICAgICAgICAgICAgICAgZm91bmRTdGFydENvZGUgPSB0cnVlCiAgICAgICAgICAgICAgICBzdGFydENvZGVMZW5ndGggPSBTVEFSVF9DT0RFX0xPTkcubGVuZ3RoCiAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnRzV2l0aChkYXRhLCBjdXJyZW50UG9zaXRpb24sIFNUQVJUX0NPREVfU0hPUlQpKSB7CiAgICAgICAgICAgICAgICBmb3VuZFN0YXJ0Q29kZSA9IHRydWUKICAgICAgICAgICAgICAgIHN0YXJ0Q29kZUxlbmd0aCA9IFNUQVJUX0NPREVfU0hPUlQubGVuZ3RoCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChmb3VuZFN0YXJ0Q29kZSkgewogICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3NpdGlvbiAhPSAwKSB7CiAgICAgICAgICAgICAgICAgICAgaGFuZGxlU3RhcnRDb2RlKCkKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gKz0gc3RhcnRDb2RlTGVuZ3RoCiAgICAgICAgICAgICAgICB1bml0QmVnaW4gPSBjdXJyZW50UG9zaXRpb24KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGN1cnJlbnRQb3NpdGlvbiArPSAxOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBUaGUgbGFzdCBuYWwgYWxzbyBuZWVkcyB0byBnZXQgcHJvY2Vzc2VkCiAgICAgICAgaGFuZGxlU3RhcnRDb2RlKCkKCiAgICAgICAgY29uc3QgeyByZWNvbmZpZ3VyZSB9ID0gdGhpcy5lbmRDaHVuaygpCgogICAgICAgIGNvbnN0IGNodW5rID0gdGhpcy5jdXJyZW50RnJhbWUuc2xpY2UoMCwgY3VycmVudEZyYW1lU2l6ZSkKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgY29uZmlndXJlOiByZWNvbmZpZ3VyZSA/IHRoaXMuZGVjb2RlckNvbmZpZyA6IG51bGwsCiAgICAgICAgICAgIGNodW5rLAogICAgICAgICAgICBlcnJvcjogZmFsc2UKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIGFic3RyYWN0IHN0YXJ0UHJvY2Vzc0NodW5rKHVuaXQ6IFZpZGVvRGVjb2RlVW5pdCk6IHsgc2hvdWxkUHJvY2VzczogYm9vbGVhbiB9OwogICAgcHJvdGVjdGVkIGFic3RyYWN0IG9uQ2h1bmtVbml0KHNsaWNlOiBVaW50OEFycmF5KTogeyBpbmNsdWRlOiBib29sZWFuIH07CiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZW5kQ2h1bmsoKTogeyByZWNvbmZpZ3VyZTogYm9vbGVhbiB9OwoKICAgIHByb3RlY3RlZCBjaGVja0ZyYW1lQnVmZmVyU2l6ZShjdXJyZW50U2l6ZTogbnVtYmVyLCByZXF1aXJlZEV4dHJhOiBudW1iZXIpIHsKICAgICAgICBpZiAoY3VycmVudFNpemUgKyByZXF1aXJlZEV4dHJhID4gdGhpcy5jdXJyZW50RnJhbWUubGVuZ3RoKSB7CiAgICAgICAgICAgIGNvbnN0IG5ld0ZyYW1lID0gbmV3IFVpbnQ4QXJyYXkoKGN1cnJlbnRTaXplICsgcmVxdWlyZWRFeHRyYSkgKiAyKTsKCiAgICAgICAgICAgIG5ld0ZyYW1lLnNldCh0aGlzLmN1cnJlbnRGcmFtZSk7CiAgICAgICAgICAgIHRoaXMuY3VycmVudEZyYW1lID0gbmV3RnJhbWU7CiAgICAgICAgfQogICAgfQp9CgovLyBUT0RPOiBzZWFyY2ggZm9yIHRoZSBzcGVjIG9mIEF2Y2MgYW5kIGFkanVzdCB0aGVzZSB0byBiZXR0ZXIgY29tcGx5IC8gaGF2ZSBtb3JlIGluZm8KCmV4cG9ydCBmdW5jdGlvbiBoMjY0TmFsVHlwZShoZWFkZXI6IG51bWJlcik6IG51bWJlciB7CiAgICByZXR1cm4gaGVhZGVyICYgMHgxZjsKfQoKZXhwb3J0IHR5cGUgSDI2NFNwcyA9IHsKICAgIHByb2ZpbGVJZGM6IG51bWJlcgogICAgY29uc3RyYWludEZsYWdzOiBudW1iZXIKICAgIGxldmVsSWRjOiBudW1iZXIKICAgIGF2YzE6IHN0cmluZwp9CgpleHBvcnQgZnVuY3Rpb24gaDI2NFBhcnNlU3BzKHNwczogQnl0ZUJ1ZmZlcik6IEgyNjRTcHMgewogICAgLy8gRmlyc3QgYnl0ZSBpcyBOQUwgaGVhZGVyLCBza2lwIGl0CiAgICBjb25zdCBuYWxIZWFkZXIgPSBzcHMuZ2V0VTgoKQogICAgY29uc3QgbmFsVHlwZSA9IG5hbEhlYWRlciAmIDB4MWYKICAgIGlmIChuYWxUeXBlICE9PSA3KSB7IC8vIDcgPSBTUFMKICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJ1ZmZlciBkb2VzIG5vdCBzdGFydCB3aXRoIGFuIFNQUyBOQUwgdW5pdCIpCiAgICB9CgogICAgY29uc3QgcHJvZmlsZUlkYyA9IHNwcy5nZXRVOCgpCiAgICBjb25zdCBjb25zdHJhaW50RmxhZ3MgPSBzcHMuZ2V0VTgoKQogICAgY29uc3QgbGV2ZWxJZGMgPSBzcHMuZ2V0VTgoKQoKICAgIGNvbnN0IHByb2ZpbGVIZXggPSBudW1Ub0hleChwcm9maWxlSWRjKQogICAgY29uc3QgY29uc3RyYWludEhleCA9IG51bVRvSGV4KGNvbnN0cmFpbnRGbGFncykKICAgIGNvbnN0IGxldmVsSGV4ID0gbnVtVG9IZXgobGV2ZWxJZGMpCgogICAgcmV0dXJuIHsKICAgICAgICBwcm9maWxlSWRjLAogICAgICAgIGNvbnN0cmFpbnRGbGFncywKICAgICAgICBsZXZlbElkYywKICAgICAgICBhdmMxOiBgYXZjMS4ke3Byb2ZpbGVIZXh9JHtjb25zdHJhaW50SGV4fSR7bGV2ZWxIZXh9YAogICAgfQp9CgpmdW5jdGlvbiBoMjY0TWFrZUF2Y0Moc3BzOiBVaW50OEFycmF5LCBwcHM6IFVpbnQ4QXJyYXkpOiBVaW50OEFycmF5IHsKICAgIGNvbnN0IHNpemUgPQogICAgICAgIDcgKyAgICAgICAgICAgICAgICAgLy8gaGVhZGVyCiAgICAgICAgMiArIHNwcy5sZW5ndGggKyAgICAvLyBTUFMKICAgICAgICAxICsgICAgICAgICAgICAgICAgIC8vIFBQUyBjb3VudAogICAgICAgIDIgKyBwcHMubGVuZ3RoOyAgICAgLy8gUFBTCgogICAgY29uc3QgZGF0YSA9IG5ldyBVaW50OEFycmF5KHNpemUpOwogICAgbGV0IGkgPSAwOwoKICAgIGRhdGFbaSsrXSA9IDB4MDE7ICAgICAgLy8gY29uZmlndXJhdGlvblZlcnNpb24KICAgIGRhdGFbaSsrXSA9IHNwc1sxXTsgICAvLyBBVkNQcm9maWxlSW5kaWNhdGlvbgogICAgZGF0YVtpKytdID0gc3BzWzJdOyAgIC8vIHByb2ZpbGVfY29tcGF0aWJpbGl0eQogICAgZGF0YVtpKytdID0gc3BzWzNdOyAgIC8vIEFWQ0xldmVsSW5kaWNhdGlvbgogICAgZGF0YVtpKytdID0gMHhGRjsgICAgIC8vIGxlbmd0aFNpemVNaW51c09uZSA9IDMgKDQgYnl0ZXMpCgogICAgZGF0YVtpKytdID0gMHhFMTsgICAgIC8vIG51bU9mU1BTID0gMQogICAgZGF0YVtpKytdID0gc3BzLmxlbmd0aCA+PiA4OwogICAgZGF0YVtpKytdID0gc3BzLmxlbmd0aCAmIDB4ZmY7CiAgICBkYXRhLnNldChzcHMsIGkpOwogICAgaSArPSBzcHMubGVuZ3RoOwoKICAgIGRhdGFbaSsrXSA9IDB4MDE7ICAgICAvLyBudW1PZlBQUyA9IDEKICAgIGRhdGFbaSsrXSA9IHBwcy5sZW5ndGggPj4gODsKICAgIGRhdGFbaSsrXSA9IHBwcy5sZW5ndGggJiAweGZmOwogICAgZGF0YS5zZXQocHBzLCBpKTsKCiAgICByZXR1cm4gZGF0YTsKfQoKZXhwb3J0IGNsYXNzIEgyNjRTdHJlYW1WaWRlb1RyYW5zbGF0b3IgZXh0ZW5kcyBDb2RlY1N0cmVhbVRyYW5zbGF0b3IgewogICAgY29uc3RydWN0b3IobG9nZ2VyPzogTG9nZ2VyKSB7CiAgICAgICAgc3VwZXIobG9nZ2VyKQogICAgfQoKICAgIHByaXZhdGUgaGFzRGVzY3JpcHRpb24gPSBmYWxzZQogICAgcHJpdmF0ZSBwcHM6IFVpbnQ4QXJyYXkgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBzcHM6IFVpbnQ4QXJyYXkgfCBudWxsID0gbnVsbAoKICAgIHByb3RlY3RlZCBzdGFydFByb2Nlc3NDaHVuayh1bml0OiBWaWRlb0RlY29kZVVuaXQpOiB7IHNob3VsZFByb2Nlc3M6IGJvb2xlYW4gfSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgc2hvdWxkUHJvY2VzczogdW5pdC50eXBlID09ICJrZXkiIHx8IHRoaXMuaGFzRGVzY3JpcHRpb24KICAgICAgICB9CiAgICB9CiAgICBwcm90ZWN0ZWQgb25DaHVua1VuaXQoc2xpY2U6IFVpbnQ4QXJyYXkpOiB7IGluY2x1ZGU6IGJvb2xlYW4gfSB7CiAgICAgICAgY29uc3QgbmFsVHlwZSA9IGgyNjROYWxUeXBlKHNsaWNlWzBdKQoKICAgICAgICBpZiAobmFsVHlwZSA9PSA3KSB7CiAgICAgICAgICAgIC8vIFNwcwogICAgICAgICAgICB0aGlzLnNwcyA9IG5ldyBVaW50OEFycmF5KHNsaWNlKQoKICAgICAgICAgICAgLy8gUGFyc2UgdGhlIHNwcyBhbmQgc2V0IHRoZSBjb25maWcuY29kZWMgYmFzZWQgb24gaXQKICAgICAgICAgICAgY29uc3Qgc3BzID0gaDI2NFBhcnNlU3BzKG5ldyBCeXRlQnVmZmVyKHRoaXMuc3BzLCBmYWxzZSkpCgogICAgICAgICAgICBjb25zdCBkZWNvZGVDb25maWcgPSB0aGlzLmRlY29kZXJDb25maWcgPz8geyBjb2RlYzogIiIgfQogICAgICAgICAgICBkZWNvZGVDb25maWcuY29kZWMgPSBzcHMuYXZjMQoKICAgICAgICAgICAgcmV0dXJuIHsgaW5jbHVkZTogZmFsc2UgfQogICAgICAgIH0gZWxzZSBpZiAobmFsVHlwZSA9PSA4KSB7CiAgICAgICAgICAgIC8vIFBwcwogICAgICAgICAgICB0aGlzLnBwcyA9IG5ldyBVaW50OEFycmF5KHNsaWNlKQoKICAgICAgICAgICAgcmV0dXJuIHsgaW5jbHVkZTogZmFsc2UgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHsgaW5jbHVkZTogdHJ1ZSB9CiAgICB9CiAgICBwcm90ZWN0ZWQgZW5kQ2h1bmsoKTogeyByZWNvbmZpZ3VyZTogYm9vbGVhbiB9IHsKICAgICAgICBpZiAoIXRoaXMuZGVjb2RlckNvbmZpZykgewogICAgICAgICAgICB0aHJvdyAiVU5SRUFDSEFCTEUiCiAgICAgICAgfQoKICAgICAgICBpZiAodGhpcy5wcHMgJiYgdGhpcy5zcHMpIHsKICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBoMjY0TWFrZUF2Y0ModGhpcy5zcHMsIHRoaXMucHBzKQogICAgICAgICAgICB0aGlzLnNwcyA9IG51bGwKICAgICAgICAgICAgdGhpcy5wcHMgPSBudWxsCgogICAgICAgICAgICB0aGlzLmRlY29kZXJDb25maWcuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbgoKICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygiUmVzZXQgZGVjb2RlciBjb25maWcgdXNpbmcgU3BzIGFuZCBQcHMiKQoKICAgICAgICAgICAgdGhpcy5oYXNEZXNjcmlwdGlvbiA9IHRydWUKCiAgICAgICAgICAgIHJldHVybiB7IHJlY29uZmlndXJlOiB0cnVlIH0KICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmhhc0Rlc2NyaXB0aW9uKSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiUmVjZWl2ZWQga2V5IGZyYW1lIHdpdGhvdXQgU3BzIGFuZCBQcHMiLCB7IHR5cGU6ICJmYXRhbCIgfSkKICAgICAgICB9CgogICAgICAgIHJldHVybiB7IHJlY29uZmlndXJlOiBmYWxzZSB9CiAgICB9Cn0KCmZ1bmN0aW9uIGgyNjVOYWxUeXBlKGhlYWRlcjogbnVtYmVyKTogbnVtYmVyIHsKICAgIHJldHVybiAoaGVhZGVyID4+IDEpICYgMHgzZjsKfQoKZnVuY3Rpb24gaDI2NU1ha2VIdmNDKAogICAgdnBzOiBVaW50OEFycmF5LAogICAgc3BzOiBVaW50OEFycmF5LAogICAgcHBzOiBVaW50OEFycmF5Cik6IFVpbnQ4QXJyYXkgewoKICAgIC8vIE1pbmltYWwgaHZjQyB3aXRoIDMgYXJyYXlzIChWUFMvU1BTL1BQUykKICAgIGNvbnN0IHNpemUgPQogICAgICAgIDIzICsgLy8gZml4ZWQgaGVhZGVyIChtaW5pbWFsIGNvbXBsaWFudCkKICAgICAgICAoMyAqIDMpICsgLy8gYXJyYXkgaGVhZGVycwogICAgICAgICgyICsgdnBzLmxlbmd0aCkgKwogICAgICAgICgyICsgc3BzLmxlbmd0aCkgKwogICAgICAgICgyICsgcHBzLmxlbmd0aCk7CgogICAgY29uc3QgZGF0YSA9IG5ldyBVaW50OEFycmF5KHNpemUpOwogICAgbGV0IGkgPSAwOwoKICAgIGRhdGFbaSsrXSA9IDE7ICAgICAgICAvLyBjb25maWd1cmF0aW9uVmVyc2lvbgoKICAgIC8vIHByb2ZpbGVfdGllcl9sZXZlbAogICAgZGF0YVtpKytdID0gKHNwc1sxXSA+PiAxKSAmIDB4M2Y7IC8vIGdlbmVyYWxfcHJvZmlsZV9zcGFjZS90aWVyL3Byb2ZpbGVfaWRjCiAgICBkYXRhW2krK10gPSAwOyAgICAgICAgLy8gZ2VuZXJhbF9wcm9maWxlX2NvbXBhdGliaWxpdHlfZmxhZ3MgKHBhcnQgMSkKICAgIGRhdGFbaSsrXSA9IDA7CiAgICBkYXRhW2krK10gPSAwOwogICAgZGF0YVtpKytdID0gMDsKCiAgICBkYXRhW2krK10gPSAwOyAgICAgICAgLy8gZ2VuZXJhbF9jb25zdHJhaW50X2luZGljYXRvcl9mbGFncyAoNiBieXRlcykKICAgIGRhdGFbaSsrXSA9IDA7CiAgICBkYXRhW2krK10gPSAwOwogICAgZGF0YVtpKytdID0gMDsKICAgIGRhdGFbaSsrXSA9IDA7CiAgICBkYXRhW2krK10gPSAwOwoKICAgIGRhdGFbaSsrXSA9IHNwc1sxMl07ICAvLyBnZW5lcmFsX2xldmVsX2lkYyAoaGV1cmlzdGljLCB3b3JrcyBpbiBwcmFjdGljZSkKCiAgICBkYXRhW2krK10gPSAweEYwOyAgICAgLy8gbWluX3NwYXRpYWxfc2VnbWVudGF0aW9uX2lkYwogICAgZGF0YVtpKytdID0gMHgwMDsKCiAgICBkYXRhW2krK10gPSAweEZDOyAgICAgLy8gcGFyYWxsZWxpc21UeXBlCiAgICBkYXRhW2krK10gPSAweEZEOyAgICAgLy8gY2hyb21hRm9ybWF0CiAgICBkYXRhW2krK10gPSAweEY4OyAgICAgLy8gYml0RGVwdGhMdW1hTWludXM4CiAgICBkYXRhW2krK10gPSAweEY4OyAgICAgLy8gYml0RGVwdGhDaHJvbWFNaW51czgKCiAgICBkYXRhW2krK10gPSAweDAwOyAgICAgLy8gYXZnRnJhbWVSYXRlICgyIGJ5dGVzKQogICAgZGF0YVtpKytdID0gMHgwMDsKCiAgICBkYXRhW2krK10gPSAweDBGOyAgICAgLy8gY29uc3RhbnRGcmFtZVJhdGUgKyBudW1UZW1wb3JhbExheWVycyArIGxlbmd0aFNpemVNaW51c09uZQogICAgZGF0YVtpKytdID0gMzsgICAgICAgIC8vIG51bU9mQXJyYXlzCgogICAgLy8gVlBTCiAgICBkYXRhW2krK10gPSAweDIwOyAgICAgLy8gYXJyYXlfY29tcGxldGVuZXNzPTAsIG5hbF91bml0X3R5cGU9MzIKICAgIGRhdGFbaSsrXSA9IDA7CiAgICBkYXRhW2krK10gPSAxOwogICAgZGF0YVtpKytdID0gdnBzLmxlbmd0aCA+PiA4OwogICAgZGF0YVtpKytdID0gdnBzLmxlbmd0aCAmIDB4ZmY7CiAgICBkYXRhLnNldCh2cHMsIGkpOyBpICs9IHZwcy5sZW5ndGg7CgogICAgLy8gU1BTCiAgICBkYXRhW2krK10gPSAweDIxOyAgICAgLy8gbmFsX3VuaXRfdHlwZT0zMwogICAgZGF0YVtpKytdID0gMDsKICAgIGRhdGFbaSsrXSA9IDE7CiAgICBkYXRhW2krK10gPSBzcHMubGVuZ3RoID4+IDg7CiAgICBkYXRhW2krK10gPSBzcHMubGVuZ3RoICYgMHhmZjsKICAgIGRhdGEuc2V0KHNwcywgaSk7IGkgKz0gc3BzLmxlbmd0aDsKCiAgICAvLyBQUFMKICAgIGRhdGFbaSsrXSA9IDB4MjI7ICAgICAvLyBuYWxfdW5pdF90eXBlPTM0CiAgICBkYXRhW2krK10gPSAwOwogICAgZGF0YVtpKytdID0gMTsKICAgIGRhdGFbaSsrXSA9IHBwcy5sZW5ndGggPj4gODsKICAgIGRhdGFbaSsrXSA9IHBwcy5sZW5ndGggJiAweGZmOwogICAgZGF0YS5zZXQocHBzLCBpKTsKCiAgICByZXR1cm4gZGF0YTsKfQoKZXhwb3J0IGNsYXNzIEgyNjVTdHJlYW1WaWRlb1RyYW5zbGF0b3IgZXh0ZW5kcyBDb2RlY1N0cmVhbVRyYW5zbGF0b3IgewogICAgY29uc3RydWN0b3IobG9nZ2VyPzogTG9nZ2VyKSB7CiAgICAgICAgc3VwZXIobG9nZ2VyKQogICAgfQoKICAgIHByaXZhdGUgaGFzRGVzY3JpcHRpb24gPSBmYWxzZQogICAgcHJpdmF0ZSB2cHM6IFVpbnQ4QXJyYXkgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBzcHM6IFVpbnQ4QXJyYXkgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBwcHM6IFVpbnQ4QXJyYXkgfCBudWxsID0gbnVsbAoKICAgIHByb3RlY3RlZCBzdGFydFByb2Nlc3NDaHVuayh1bml0OiBWaWRlb0RlY29kZVVuaXQpOiB7IHNob3VsZFByb2Nlc3M6IGJvb2xlYW4gfSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgc2hvdWxkUHJvY2VzczogdW5pdC50eXBlID09PSAia2V5IiB8fCB0aGlzLmhhc0Rlc2NyaXB0aW9uCiAgICAgICAgfQogICAgfQoKICAgIHByb3RlY3RlZCBvbkNodW5rVW5pdChzbGljZTogVWludDhBcnJheSk6IHsgaW5jbHVkZTogYm9vbGVhbiB9IHsKICAgICAgICBjb25zdCBuYWxUeXBlID0gaDI2NU5hbFR5cGUoc2xpY2VbMF0pCgogICAgICAgIGlmIChuYWxUeXBlID09PSAzMikgewogICAgICAgICAgICB0aGlzLnZwcyA9IG5ldyBVaW50OEFycmF5KHNsaWNlKQogICAgICAgICAgICByZXR1cm4geyBpbmNsdWRlOiBmYWxzZSB9CiAgICAgICAgfQogICAgICAgIGlmIChuYWxUeXBlID09PSAzMykgewogICAgICAgICAgICB0aGlzLnNwcyA9IG5ldyBVaW50OEFycmF5KHNsaWNlKQogICAgICAgICAgICByZXR1cm4geyBpbmNsdWRlOiBmYWxzZSB9CiAgICAgICAgfQogICAgICAgIGlmIChuYWxUeXBlID09PSAzNCkgewogICAgICAgICAgICB0aGlzLnBwcyA9IG5ldyBVaW50OEFycmF5KHNsaWNlKQogICAgICAgICAgICByZXR1cm4geyBpbmNsdWRlOiBmYWxzZSB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4geyBpbmNsdWRlOiB0cnVlIH0KICAgIH0KCiAgICBwcm90ZWN0ZWQgZW5kQ2h1bmsoKTogeyByZWNvbmZpZ3VyZTogYm9vbGVhbiB9IHsKICAgICAgICBpZiAoIXRoaXMuZGVjb2RlckNvbmZpZykgewogICAgICAgICAgICB0aHJvdyAiVU5SRUFDSEFCTEUiCiAgICAgICAgfQoKICAgICAgICBpZiAodGhpcy52cHMgJiYgdGhpcy5zcHMgJiYgdGhpcy5wcHMpIHsKICAgICAgICAgICAgdGhpcy5kZWNvZGVyQ29uZmlnLmRlc2NyaXB0aW9uID0KICAgICAgICAgICAgICAgIGgyNjVNYWtlSHZjQyh0aGlzLnZwcywgdGhpcy5zcHMsIHRoaXMucHBzKQoKICAgICAgICAgICAgdGhpcy52cHMgPSB0aGlzLnNwcyA9IHRoaXMucHBzID0gbnVsbAogICAgICAgICAgICB0aGlzLmhhc0Rlc2NyaXB0aW9uID0gdHJ1ZQoKICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygiUmVzZXQgZGVjb2RlciBjb25maWcgdXNpbmcgVlBTL1NQUy9QUFMiKQogICAgICAgICAgICByZXR1cm4geyByZWNvbmZpZ3VyZTogdHJ1ZSB9CiAgICAgICAgfQoKICAgICAgICBpZiAoIXRoaXMuaGFzRGVzY3JpcHRpb24pIHsKICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKCJSZWNlaXZlZCBrZXkgZnJhbWUgd2l0aG91dCBWUFMvU1BTL1BQUyIpCiAgICAgICAgfQoKICAgICAgICByZXR1cm4geyByZWNvbmZpZ3VyZTogZmFsc2UgfQogICAgfQp9Cg=="},{"path":"web/stream/video/canvas.ts","sha256":"2cecd67831e11a3a51a64a833d9ea528102d25348ae8470aea415b39fbb9d9ed","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyIKaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAiLi4vbG9nLmpzIgppbXBvcnQgeyBQaXBlLCBQaXBlSW5mbyB9IGZyb20gIi4uL3BpcGVsaW5lL2luZGV4LmpzIgppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyIKaW1wb3J0IHsgYWxsVmlkZW9Db2RlY3MgfSBmcm9tICIuLi92aWRlby5qcyIKaW1wb3J0IHsgQ2FudmFzUmVuZGVyZXIsIGdldFN0cmVhbVJlY3RDb3JyZWN0ZWQsIFVzZUNhbnZhc1Jlc3VsdCwgVmlkZW9SZW5kZXJlclNldHVwIH0gZnJvbSAiLi9pbmRleC5qcyIKCmZ1bmN0aW9uIGdldENvbG9yU3BhY2UoaGRyRW5hYmxlZDogYm9vbGVhbik6IHN0cmluZyB7CiAgICByZXR1cm4gaGRyRW5hYmxlZCA/ICJyZWMyMDIwLXBxIiA6ICJzcmdiIgp9CgpleHBvcnQgY2xhc3MgQmFzZUNhbnZhc1ZpZGVvUmVuZGVyZXIgaW1wbGVtZW50cyBDYW52YXNSZW5kZXJlciB7CgogICAgc3RhdGljIGNyZWF0ZU1haW5DYW52YXMoKTogSFRNTENhbnZhc0VsZW1lbnQgewogICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpCgogICAgICAgIGNhbnZhcy5jbGFzc0xpc3QuYWRkKCJ2aWRlby1zdHJlYW0iKQoKICAgICAgICByZXR1cm4gY2FudmFzCiAgICB9CgogICAgcHJpdmF0ZSBkaXY6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9ICgiZG9jdW1lbnQiIGluIGdsb2JhbE9iamVjdCgpKSA/IGdsb2JhbE9iamVjdCgpLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpIDogbnVsbAogICAgcHJvdGVjdGVkIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnQgfCBPZmZzY3JlZW5DYW52YXMgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBpc1RyYW5zZmVycmVkID0gZmFsc2UKICAgIHByb3RlY3RlZCBjb250ZXh0OiBXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IHwgKE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgaGRyRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlCiAgICBwcml2YXRlIHZpZGVvU2l6ZTogW251bWJlciwgbnVtYmVyXSB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIG9wdGlvbnM6IENhbnZhc1ZpZGVvUmVuZGVyZXJPcHRpb25zIHwgbnVsbCA9IG51bGwKCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZwoKICAgIGNvbnN0cnVjdG9yKGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nLCBvcHRpb25zPzogQ2FudmFzVmlkZW9SZW5kZXJlck9wdGlvbnMpIHsKICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uTmFtZSA9IGltcGxlbWVudGF0aW9uTmFtZQogICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMgPz8gbnVsbAogICAgfQoKICAgIHNldENhbnZhcyhjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50IHwgT2Zmc2NyZWVuQ2FudmFzLCBpc1RyYW5zZmVycmVkPzogYm9vbGVhbikgewogICAgICAgIHRoaXMuaXNUcmFuc2ZlcnJlZCA9IGlzVHJhbnNmZXJyZWQgPz8gZmFsc2UKICAgICAgICB0aGlzLmNhbnZhcyA9IGNhbnZhcwoKICAgICAgICBpZiAodGhpcy5kaXYgJiYgY2FudmFzIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpIHsKICAgICAgICAgICAgdGhpcy5kaXYuYXBwZW5kQ2hpbGQoY2FudmFzKQogICAgICAgIH0KICAgIH0KCiAgICBzZXRIZHJNb2RlKGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHsKICAgICAgICB0aGlzLmhkckVuYWJsZWQgPSBlbmFibGVkCgogICAgICAgIC8vIFVwZGF0ZSBleGlzdGluZyBjb250ZXh0CiAgICAgICAgaWYgKHRoaXMuY29udGV4dCkgewogICAgICAgICAgICAvLyBTZXQgSERSIGNvbG9yIHNwYWNlIGFuZCB0cmFuc2ZlciBmdW5jdGlvbgogICAgICAgICAgICBpZiAoImNvbG9yU3BhY2UiIGluIHRoaXMuY29udGV4dCkgewogICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAgICAodGhpcy5jb250ZXh0IGFzIGFueSkuY29sb3JTcGFjZSA9IGdldENvbG9yU3BhY2UoZW5hYmxlZCkKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybigiRmFpbGVkIHRvIHNldCBjYW52YXMgY29sb3JTcGFjZToiLCBlcnIpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgdXNlQ2FudmFzQ29udGV4dCh0eXBlOiAid2ViZ2wiKTogVXNlQ2FudmFzUmVzdWx0PFdlYkdMUmVuZGVyaW5nQ29udGV4dD4KICAgIHVzZUNhbnZhc0NvbnRleHQodHlwZTogIndlYmdsMiIpOiBVc2VDYW52YXNSZXN1bHQ8V2ViR0wyUmVuZGVyaW5nQ29udGV4dD4KICAgIHVzZUNhbnZhc0NvbnRleHQodHlwZTogIjJkIik6IFVzZUNhbnZhc1Jlc3VsdDwoT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIHwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKT4KICAgIHVzZUNhbnZhc0NvbnRleHQodHlwZTogIndlYmdsIiB8ICJ3ZWJnbDIiIHwgIjJkIik6IFVzZUNhbnZhc1Jlc3VsdDxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHwgVXNlQ2FudmFzUmVzdWx0PFdlYkdMMlJlbmRlcmluZ0NvbnRleHQ+IHwgVXNlQ2FudmFzUmVzdWx0PChPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpPiB7CiAgICAgICAgaWYgKCF0aGlzLmNhbnZhcykgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgY29udGV4dDogbnVsbCwKICAgICAgICAgICAgICAgIGVycm9yOiAibm9DYW52YXMiLAogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoIXRoaXMuY29udGV4dCkgewogICAgICAgICAgICBjb25zdCBvcHRpb25zID0gewogICAgICAgICAgICAgICAgY29sb3JTcGFjZTogZ2V0Q29sb3JTcGFjZSh0aGlzLmhkckVuYWJsZWQpLAogICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL09mZnNjcmVlbkNhbnZhcy9nZXRDb250ZXh0I2Rlc3luY2hyb25pemVkCiAgICAgICAgICAgICAgICBkZXN5bmNocm9uaXplZDogdGhpcy5vcHRpb25zPy5kcmF3T25TdWJtaXQKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHR5cGUgPT0gIndlYmdsIikgewogICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgid2ViZ2wiLCBvcHRpb25zKSBhcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQgfCBudWxsCiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAid2ViZ2wyIikgewogICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gdGhpcy5jYW52YXMuZ2V0Q29udGV4dCgid2ViZ2wyIiwgb3B0aW9ucykgYXMgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCB8IG51bGwKICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09ICIyZCIpIHsKICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dCA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIiwgb3B0aW9ucykgYXMgKENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCkgfCBudWxsCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghdGhpcy5jb250ZXh0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IG51bGwsCiAgICAgICAgICAgICAgICAgICAgZXJyb3I6ICJjcmVhdGlvbkZhaWxlZCIsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICh0eXBlID09ICJ3ZWJnbCIgJiYgKHRoaXMuY29udGV4dCBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyaW5nQ29udGV4dCkpIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLAogICAgICAgICAgICAgICAgY29udGV4dDogdGhpcy5jb250ZXh0CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gIndlYmdsMiIgJiYgdGhpcy5jb250ZXh0IGluc3RhbmNlb2YgV2ViR0wyUmVuZGVyaW5nQ29udGV4dCkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsCiAgICAgICAgICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHQKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAiMmQiICYmICh0aGlzLmNvbnRleHQgaW5zdGFuY2VvZiBPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfHwgdGhpcy5jb250ZXh0IGluc3RhbmNlb2YgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKSkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsCiAgICAgICAgICAgICAgICBjb250ZXh0OiB0aGlzLmNvbnRleHQKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgY29udGV4dDogbnVsbCwKICAgICAgICAgICAgZXJyb3I6ICJvdGhlckNvbnRleHRJblVzZSIKICAgICAgICB9CiAgICB9CiAgICBzZXRDYW52YXNTaXplKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZCB7CiAgICAgICAgaWYgKHRoaXMuY2FudmFzICYmICF0aGlzLmlzVHJhbnNmZXJyZWQpIHsKICAgICAgICAgICAgLy8gQXNzaWduaW5nIGV2ZW4gdGhlIHNhbWUgc2l6ZSBjbGVhcnMgdGhlIGNhbnZhcyBhbmQgcmVjcmVhdGVzIGl0cwogICAgICAgICAgICAvLyBiYWNraW5nIGJ1ZmZlci4gS2VlcCB0aGUgYnVmZmVyIHdoaWxlIHRoZSBzdHJlYW0gc2l6ZSBpcyBzdGFibGUuCiAgICAgICAgICAgIGlmICh0aGlzLmNhbnZhcy53aWR0aCAhPT0gd2lkdGgpIHRoaXMuY2FudmFzLndpZHRoID0gd2lkdGgKICAgICAgICAgICAgaWYgKHRoaXMuY2FudmFzLmhlaWdodCAhPT0gaGVpZ2h0KSB0aGlzLmNhbnZhcy5oZWlnaHQgPSBoZWlnaHQKICAgICAgICB9CiAgICB9CgogICAgY29tbWl0RnJhbWUoKTogdm9pZCB7CiAgICAgICAgaWYgKHRoaXMuY2FudmFzICYmICJjb21taXQiIGluIHRoaXMuY2FudmFzICYmIHR5cGVvZiB0aGlzLmNhbnZhcy5jb21taXQgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICAvLyBTaWduYWwgZmluaXNoZWQsIG5vdCBzdXBwb3J0ZWQgaW4gYWxsIGJyb3dzZXJzCiAgICAgICAgICAgIHRoaXMuY2FudmFzLmNvbW1pdCgpCiAgICAgICAgfQogICAgfQoKICAgIGFzeW5jIHNldHVwKHNldHVwOiBWaWRlb1JlbmRlcmVyU2V0dXApOiBQcm9taXNlPHZvaWQ+IHsKICAgICAgICB0aGlzLnZpZGVvU2l6ZSA9IFtzZXR1cC53aWR0aCwgc2V0dXAuaGVpZ2h0XQoKICAgICAgICB0aGlzLnNldENhbnZhc1NpemUoc2V0dXAud2lkdGgsIHNldHVwLmhlaWdodCkKICAgIH0KCiAgICBjbGVhbnVwKCk6IHZvaWQgeyB9CgogICAgcG9sbFJlcXVlc3RJZHIoKTogYm9vbGVhbiB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICB9CgogICAgb25Vc2VySW50ZXJhY3Rpb24oKTogdm9pZCB7CiAgICAgICAgLy8gTm90aGluZwogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBpZiAoIXRoaXMuZGl2KSB7CiAgICAgICAgICAgIHRocm93ICJDYW5ub3QgbW91bnQgZGl2IGluc2lkZSBhIHdvcmtlciEiCiAgICAgICAgfQoKICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQodGhpcy5kaXYpCiAgICB9CiAgICB1bm1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBpZiAoIXRoaXMuZGl2KSB7CiAgICAgICAgICAgIHRocm93ICJDYW5ub3QgdW5tb3VudCBkaXYgaW5zaWRlIGEgd29ya2VyISIKICAgICAgICB9CgogICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzLmRpdikKICAgIH0KCiAgICBnZXRTdHJlYW1SZWN0KCk6IERPTVJlY3QgewogICAgICAgIGlmICghdGhpcy52aWRlb1NpemUgfHwgIXRoaXMuY2FudmFzKSB7CiAgICAgICAgICAgIHJldHVybiBuZXcgRE9NUmVjdCgpCiAgICAgICAgfQogICAgICAgIGlmICghKHRoaXMuY2FudmFzIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpKSB7CiAgICAgICAgICAgIHRocm93ICJDYW5ub3QgZ2V0IGNsaWVudCBib3VuZGluZyByZWN0IG9mIE9mZnNjcmVlbkNhbnZhcyEiCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZ2V0U3RyZWFtUmVjdENvcnJlY3RlZCh0aGlzLmNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwgdGhpcy52aWRlb1NpemUpCiAgICB9CgogICAgZ2V0QmFzZSgpOiBQaXBlIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIG51bGwKICAgIH0KfQoKZXhwb3J0IHR5cGUgQ2FudmFzVmlkZW9SZW5kZXJlck9wdGlvbnMgPSB7CiAgICAvLy8gV2hlbiB0cnVlOgogICAgLy8vIC0gZW5hYmxlIGRlc3luY2hyb25pemVkIGluIHRoZSBjb250ZXh0IGNyZWF0aW9uIG9wdGlvbnMgKGxvd2VyIGxhdGVuY3kpCiAgICAvLy8gLSBkcmF3IGluIHN1Ym1pdEZyYW1lIChsb3cgbGF0ZW5jeSkKICAgIC8vLyBXaGVuIGZhbHNlOgogICAgLy8vIC0gZHJhdyBvbmx5IG9uIHJBRiAoVlN5bmMtbGlrZSwgbWF5IHJlZHVjZSB0ZWFyaW5nKS4KICAgIGRyYXdPblN1Ym1pdD86IGJvb2xlYW4KfQoKZXhwb3J0IGNsYXNzIE1haW5DYW52YXNSZW5kZXJlciBleHRlbmRzIEJhc2VDYW52YXNWaWRlb1JlbmRlcmVyIHsKCiAgICBzdGF0aWMgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgLy8gbm8gbGluawogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGVudmlyb25tZW50U3VwcG9ydGVkOiAiSFRNTENhbnZhc0VsZW1lbnQiIGluIGdsb2JhbE9iamVjdCgpICYmICJDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiIGluIGdsb2JhbE9iamVjdCgpLAogICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYWxsVmlkZW9Db2RlY3MoKQogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJjYW52YXMiCgogICAgY29uc3RydWN0b3IobG9nZ2VyPzogTG9nZ2VyLCBvcHRpb25zPzogdW5rbm93bikgewogICAgICAgIHN1cGVyKCJjYW52YXMiLCBvcHRpb25zIGFzIENhbnZhc1ZpZGVvUmVuZGVyZXJPcHRpb25zIHwgdW5kZWZpbmVkKQoKICAgICAgICBsb2dnZXI/LmRlYnVnKGBBcHBseWluZyBjYW52YXMgb3B0aW9uczogJHtKU09OLnN0cmluZ2lmeShvcHRpb25zKX1gKQoKICAgICAgICB0aGlzLnNldENhbnZhcyhCYXNlQ2FudmFzVmlkZW9SZW5kZXJlci5jcmVhdGVNYWluQ2FudmFzKCkpCgogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKQogICAgfQoKICAgIGFzeW5jIHNldHVwKHNldHVwOiBWaWRlb1JlbmRlcmVyU2V0dXApOiBQcm9taXNlPHZvaWQ+IHsKICAgICAgICBhd2FpdCBzdXBlci5zZXR1cChzZXR1cCkKICAgIH0KCiAgICBjbGVhbnVwKCk6IHZvaWQgewogICAgICAgIHN1cGVyLmNsZWFudXAoKQogICAgfQoKICAgIG1vdW50KHBhcmVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHsKICAgICAgICBzdXBlci5tb3VudChwYXJlbnQpCiAgICB9Cn0K"},{"path":"web/stream/video/canvas_frame.ts","sha256":"4407ab47c9810f78f807d05bc5753c5a964d1525fdeb26688a1d96fed9c5ea94","contentBase64":"aW1wb3J0IHsgY29weUludG9ZdXYsIHl1dkJ1ZmZlclNpemUgfSBmcm9tICIuLi8uLi9saWJvcGVuaDI2NC9pbmRleC5qcyIKaW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyIKaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAiLi4vbG9nLmpzIgppbXBvcnQgeyBQaXBlLCBQaXBlSW5mbyB9IGZyb20gIi4uL3BpcGVsaW5lL2luZGV4LmpzIgppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyIKaW1wb3J0IHsgYWxsVmlkZW9Db2RlY3MgfSBmcm9tICIuLi92aWRlby5qcyIKaW1wb3J0IHsgQ2FudmFzVmlkZW9SZW5kZXJlck9wdGlvbnMgfSBmcm9tICIuL2NhbnZhcy5qcyIKaW1wb3J0IHsgQ2FudmFzUmVuZGVyZXIsIEZyYW1lVmlkZW9SZW5kZXJlciwgVmlkZW9SZW5kZXJlclNldHVwLCBSZ2JhRnJhbWVWaWRlb1JlbmRlcmVyLCBSZ2JhVmlkZW9GcmFtZSwgWXV2NDIwRnJhbWVWaWRlb1JlbmRlcmVyLCBZdXY0MjBWaWRlb0ZyYW1lIH0gZnJvbSAiLi9pbmRleC5qcyIKCmFic3RyYWN0IGNsYXNzIEJhc2VDYW52YXNGcmFtZURyYXdQaXBlIGltcGxlbWVudHMgUGlwZSB7CgogICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgIC8vIG5vIGxpbmsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIgaW4gZ2xvYmFsT2JqZWN0KCkgfHwgIk9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIgaW4gZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgIHN1cHBvcnRlZFZpZGVvQ29kZWNzOiBhbGxWaWRlb0NvZGVjcygpCiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZSA9ICJjYW52YXMiCgogICAgcHJvdGVjdGVkIGJhc2U6IENhbnZhc1JlbmRlcmVyCgogICAgcHJpdmF0ZSBhbmltYXRpb25GcmFtZVJlcXVlc3Q6IG51bWJlciB8IG51bGwgPSBudWxsCgogICAgcHJpdmF0ZSBkcmF3T25TdWJtaXQ6IGJvb2xlYW4KCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWUKCiAgICBjb25zdHJ1Y3RvcihpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZywgYmFzZTogQ2FudmFzUmVuZGVyZXIsIF9sb2dnZXI/OiB1bmtub3duLCBvcHRpb25zPzogdW5rbm93bikgewogICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb25OYW1lID0gaW1wbGVtZW50YXRpb25OYW1lCiAgICAgICAgdGhpcy5iYXNlID0gYmFzZQoKICAgICAgICBjb25zdCBvcHRzID0gb3B0aW9ucyBhcyBDYW52YXNWaWRlb1JlbmRlcmVyT3B0aW9ucyB8IHVuZGVmaW5lZAogICAgICAgIHRoaXMuZHJhd09uU3VibWl0ID0gb3B0cz8uZHJhd09uU3VibWl0ID8/IHRydWUKCiAgICAgICAgYWRkUGlwZVBhc3N0aHJvdWdoKHRoaXMpCiAgICB9CgogICAgYXN5bmMgc2V0dXAoc2V0dXA6IFZpZGVvUmVuZGVyZXJTZXR1cCk6IFByb21pc2U8dm9pZD4gewogICAgICAgIGlmICghdGhpcy5kcmF3T25TdWJtaXQgJiYgdGhpcy5hbmltYXRpb25GcmFtZVJlcXVlc3QgPT0gbnVsbCkgewogICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkZyYW1lUmVxdWVzdCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLm9uQW5pbWF0aW9uRnJhbWUuYmluZCh0aGlzKSkKICAgICAgICB9CgogICAgICAgIGlmICgic2V0dXAiIGluIHRoaXMuYmFzZSAmJiB0eXBlb2YgdGhpcy5iYXNlLnNldHVwID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFzZS5zZXR1cCguLi5hcmd1bWVudHMpCiAgICAgICAgfQogICAgfQoKICAgIGNsZWFudXAoKSB7CiAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ICE9PSBudWxsKSB7CiAgICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0KQogICAgICAgICAgICB0aGlzLmFuaW1hdGlvbkZyYW1lUmVxdWVzdCA9IG51bGwKICAgICAgICB9CiAgICAgICAgaWYgKCJjbGVhbnVwIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5jbGVhbnVwID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFzZS5jbGVhbnVwKC4uLmFyZ3VtZW50cykKICAgICAgICB9CiAgICB9CgogICAgcHJvdGVjdGVkIG9uRnJhbWVTdWJtaXR0ZWQoKSB7CiAgICAgICAgaWYgKHRoaXMuZHJhd09uU3VibWl0KSB7CiAgICAgICAgICAgIHRoaXMuZHJhd0N1cnJlbnRGcmFtZUlmUmVhZHkoKQogICAgICAgIH0KICAgIH0KCiAgICAvKiogRHJhdyBjdXJyZW50RnJhbWUgdG8gY2FudmFzIGlmIGNvbnRleHQgYW5kIGZyYW1lIGFyZSByZWFkeS4gT25seSB1cGRhdGVzIHNpemUgd2hlbiBkaW1lbnNpb25zIGNoYW5nZS4gKi8KICAgIHByb3RlY3RlZCBhYnN0cmFjdCBkcmF3Q3VycmVudEZyYW1lSWZSZWFkeSgpOiB2b2lkCgogICAgcHJpdmF0ZSBvbkFuaW1hdGlvbkZyYW1lKCkgewogICAgICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ID0gbnVsbAogICAgICAgIGlmICghdGhpcy5kcmF3T25TdWJtaXQpIHsKICAgICAgICAgICAgdGhpcy5kcmF3Q3VycmVudEZyYW1lSWZSZWFkeSgpCiAgICAgICAgfQogICAgICAgIHRoaXMuYW5pbWF0aW9uRnJhbWVSZXF1ZXN0ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMub25BbmltYXRpb25GcmFtZS5iaW5kKHRoaXMpKQogICAgfQoKICAgIGdldEJhc2UoKTogUGlwZSB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLmJhc2UKICAgIH0KfQoKZXhwb3J0IGNsYXNzIENhbnZhc0ZyYW1lRHJhd1BpcGUgZXh0ZW5kcyBCYXNlQ2FudmFzRnJhbWVEcmF3UGlwZSBpbXBsZW1lbnRzIEZyYW1lVmlkZW9SZW5kZXJlciB7CgogICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgIC8vIG5vIGxpbmsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIgaW4gZ2xvYmFsT2JqZWN0KCkgfHwgIk9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIgaW4gZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgIHN1cHBvcnRlZFZpZGVvQ29kZWNzOiBhbGxWaWRlb0NvZGVjcygpCiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gInZpZGVvZnJhbWUiCgogICAgcHJpdmF0ZSBjdXJyZW50RnJhbWU6IFZpZGVvRnJhbWUgfCBudWxsID0gbnVsbAoKICAgIGNvbnN0cnVjdG9yKGJhc2U6IENhbnZhc1JlbmRlcmVyLCBfbG9nZ2VyPzogdW5rbm93biwgb3B0aW9ucz86IHVua25vd24pIHsKICAgICAgICBzdXBlcihgY2FudmFzX2ZyYW1lIC0+ICR7YmFzZS5pbXBsZW1lbnRhdGlvbk5hbWV9YCwgYmFzZSwgX2xvZ2dlciwgb3B0aW9ucykKCiAgICAgICAgYWRkUGlwZVBhc3N0aHJvdWdoKHRoaXMpCiAgICB9CgogICAgc3VibWl0RnJhbWUoZnJhbWU6IFZpZGVvRnJhbWUpOiB2b2lkIHsKICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZT8uY2xvc2UoKQoKICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSA9IGZyYW1lCiAgICAgICAgdGhpcy5vbkZyYW1lU3VibWl0dGVkKCkKICAgIH0KCiAgICBjbGVhbnVwKCk6IHZvaWQgewogICAgICAgIHRoaXMuY3VycmVudEZyYW1lPy5jbG9zZSgpCiAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUgPSBudWxsCiAgICAgICAgc3VwZXIuY2xlYW51cCgpCiAgICB9CgogICAgLyoqIERyYXcgY3VycmVudEZyYW1lIHRvIGNhbnZhcyBpZiBjb250ZXh0IGFuZCBmcmFtZSBhcmUgcmVhZHkuIE9ubHkgdXBkYXRlcyBzaXplIHdoZW4gZGltZW5zaW9ucyBjaGFuZ2UuICovCiAgICBwcm90ZWN0ZWQgZHJhd0N1cnJlbnRGcmFtZUlmUmVhZHkoKTogdm9pZCB7CiAgICAgICAgY29uc3QgZnJhbWUgPSB0aGlzLmN1cnJlbnRGcmFtZQogICAgICAgIGNvbnN0IHsgY29udGV4dCwgZXJyb3IgfSA9IHRoaXMuYmFzZS51c2VDYW52YXNDb250ZXh0KCIyZCIpCiAgICAgICAgaWYgKCFmcmFtZSB8fCBlcnJvcikgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGNvbnN0IHcgPSBmcmFtZS5kaXNwbGF5V2lkdGgKICAgICAgICBjb25zdCBoID0gZnJhbWUuZGlzcGxheUhlaWdodAogICAgICAgIHRyeSB7CiAgICAgICAgICAgIHRoaXMuYmFzZS5zZXRDYW52YXNTaXplKHcsIGgpCiAgICAgICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIHcsIGgpCiAgICAgICAgICAgIGNvbnRleHQuZHJhd0ltYWdlKGZyYW1lLCAwLCAwLCB3LCBoKQogICAgICAgICAgICB0aGlzLmJhc2UuY29tbWl0RnJhbWUoKQogICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgIC8vIGRyYXdJbWFnZSBoYXMgY29waWVkIHRoZSBmcmFtZTsgcmV0dXJuIHRoZSBkZWNvZGVyIHN1cmZhY2UgcHJvbXB0bHkuCiAgICAgICAgICAgIGZyYW1lLmNsb3NlKCkKICAgICAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUgPSBudWxsCiAgICAgICAgfQogICAgfQp9CgpleHBvcnQgY2xhc3MgQ2FudmFzUmdiYUZyYW1lRHJhd1BpcGUgZXh0ZW5kcyBCYXNlQ2FudmFzRnJhbWVEcmF3UGlwZSBpbXBsZW1lbnRzIFJnYmFGcmFtZVZpZGVvUmVuZGVyZXIgewoKICAgIHN0YXRpYyBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+IHsKICAgICAgICAvLyBubyBsaW5rCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6ICJDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiIGluIGdsb2JhbE9iamVjdCgpIHx8ICJPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQiIGluIGdsb2JhbE9iamVjdCgpLAogICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYWxsVmlkZW9Db2RlY3MoKQogICAgICAgIH0KICAgIH0KCiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJyZ2JhdmlkZW9mcmFtZSIKCiAgICBwcml2YXRlIGN1cnJlbnRGcmFtZTogSW1hZ2VEYXRhIHwgbnVsbCA9IG51bGwKCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBDYW52YXNSZW5kZXJlciwgX2xvZ2dlcj86IHVua25vd24sIG9wdGlvbnM/OiB1bmtub3duKSB7CiAgICAgICAgc3VwZXIoYHJnYmFfY2FudmFzX2ZyYW1lIC0+ICR7YmFzZS5pbXBsZW1lbnRhdGlvbk5hbWV9YCwgYmFzZSwgX2xvZ2dlciwgb3B0aW9ucykKCiAgICAgICAgYWRkUGlwZVBhc3N0aHJvdWdoKHRoaXMpCiAgICB9CgogICAgc3VibWl0UmF3RnJhbWUoZnJhbWU6IFJnYmFWaWRlb0ZyYW1lKTogdm9pZCB7CiAgICAgICAgdGhpcy5jdXJyZW50RnJhbWUgPSBuZXcgSW1hZ2VEYXRhKGZyYW1lLmJ1ZmZlciwgZnJhbWUud2lkdGgsIGZyYW1lLmhlaWdodCkKCiAgICAgICAgdGhpcy5vbkZyYW1lU3VibWl0dGVkKCkKICAgIH0KCiAgICAvKiogRHJhdyBjdXJyZW50RnJhbWUgdG8gY2FudmFzIGlmIGNvbnRleHQgYW5kIGZyYW1lIGFyZSByZWFkeS4gT25seSB1cGRhdGVzIHNpemUgd2hlbiBkaW1lbnNpb25zIGNoYW5nZS4gKi8KICAgIHByb3RlY3RlZCBkcmF3Q3VycmVudEZyYW1lSWZSZWFkeSgpOiB2b2lkIHsKICAgICAgICBjb25zdCBmcmFtZSA9IHRoaXMuY3VycmVudEZyYW1lCiAgICAgICAgY29uc3QgeyBjb250ZXh0LCBlcnJvciB9ID0gdGhpcy5iYXNlLnVzZUNhbnZhc0NvbnRleHQoIjJkIikKICAgICAgICBpZiAoIWZyYW1lIHx8IGVycm9yKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgY29uc3QgdyA9IGZyYW1lLndpZHRoCiAgICAgICAgY29uc3QgaCA9IGZyYW1lLmhlaWdodAogICAgICAgIHRoaXMuYmFzZS5zZXRDYW52YXNTaXplKHcsIGgpCgogICAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIHcsIGgpCiAgICAgICAgY29udGV4dC5wdXRJbWFnZURhdGEoZnJhbWUsIDAsIDApCgogICAgICAgIHRoaXMuYmFzZS5jb21taXRGcmFtZSgpCiAgICB9Cn0KCmV4cG9ydCBjbGFzcyBDYW52YXNZdXY0MjBGcmFtZURyYXdQaXBlIGV4dGVuZHMgQmFzZUNhbnZhc0ZyYW1lRHJhd1BpcGUgaW1wbGVtZW50cyBZdXY0MjBGcmFtZVZpZGVvUmVuZGVyZXIgewogICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgIC8vIG5vIGxpbmsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIldlYkdMUmVuZGVyaW5nQ29udGV4dCIgaW4gZ2xvYmFsT2JqZWN0KCksCiAgICAgICAgICAgIHN1cHBvcnRlZFZpZGVvQ29kZWNzOiBhbGxWaWRlb0NvZGVjcygpCiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gInl1djQyMHZpZGVvZnJhbWUiCgogICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlciB8IG51bGwKICAgIHByaXZhdGUgZXJyb3JlZCA9IGZhbHNlCgogICAgY29uc3RydWN0b3IoYmFzZTogQ2FudmFzUmVuZGVyZXIsIGxvZ2dlcj86IExvZ2dlciwgb3B0aW9ucz86IHVua25vd24pIHsKICAgICAgICBzdXBlcihgcmdiYV9jYW52YXNfZnJhbWUgLT4gJHtiYXNlLmltcGxlbWVudGF0aW9uTmFtZX1gLCBiYXNlLCBsb2dnZXIsIG9wdGlvbnMpCiAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXIgPz8gbnVsbAoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBwcml2YXRlIHNpemVDaGFuZ2VkID0gZmFsc2UKICAgIHByaXZhdGUgd2lkdGg6IG51bWJlciA9IC0xCiAgICBwcml2YXRlIGhlaWdodDogbnVtYmVyID0gLTEKICAgIHByaXZhdGUgY3VycmVudEZyYW1lOiBVaW50OEFycmF5IHwgbnVsbCA9IG51bGwKCiAgICBzdWJtaXRSYXdGcmFtZShmcmFtZTogWXV2NDIwVmlkZW9GcmFtZSk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLmVycm9yZWQpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCBidWZmZXJTaXplID0geXV2QnVmZmVyU2l6ZShmcmFtZS53aWR0aCwgZnJhbWUuaGVpZ2h0KQogICAgICAgIGlmICghdGhpcy5jdXJyZW50RnJhbWUgfHwgdGhpcy5jdXJyZW50RnJhbWUubGVuZ3RoIDwgYnVmZmVyU2l6ZSkgewogICAgICAgICAgICB0aGlzLmN1cnJlbnRGcmFtZSA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlclNpemUpCiAgICAgICAgfQoKICAgICAgICBjb3B5SW50b1l1dihbZnJhbWUueVBsYW5lLCBmcmFtZS51UGxhbmUsIGZyYW1lLnZQbGFuZV0sIFtmcmFtZS55U3RyaWRlLCBmcmFtZS51dlN0cmlkZV0sIGZyYW1lLndpZHRoLCBmcmFtZS5oZWlnaHQsIHRoaXMuY3VycmVudEZyYW1lKQoKICAgICAgICBpZiAodGhpcy53aWR0aCAhPSBmcmFtZS53aWR0aCB8fCB0aGlzLmhlaWdodCAhPSBmcmFtZS5oZWlnaHQpIHsKICAgICAgICAgICAgdGhpcy53aWR0aCA9IGZyYW1lLndpZHRoCiAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gZnJhbWUuaGVpZ2h0CiAgICAgICAgICAgIHRoaXMuc2l6ZUNoYW5nZWQgPSB0cnVlCiAgICAgICAgfQoKICAgICAgICB0aGlzLm9uRnJhbWVTdWJtaXR0ZWQoKQogICAgfQoKICAgIHByaXZhdGUgdGV4dHVyZVk6IFdlYkdMVGV4dHVyZSB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHRleHR1cmVVOiBXZWJHTFRleHR1cmUgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSB0ZXh0dXJlVjogV2ViR0xUZXh0dXJlIHwgbnVsbCA9IG51bGwKCiAgICBwcml2YXRlIHByb2dyYW06IFdlYkdMUHJvZ3JhbSB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHF1YWQ6IFdlYkdMQnVmZmVyIHwgbnVsbCA9IG51bGwKCiAgICAvKiogRHJhdyBjdXJyZW50RnJhbWUgdG8gY2FudmFzIGlmIGNvbnRleHQgYW5kIGZyYW1lIGFyZSByZWFkeS4gT25seSB1cGRhdGVzIHNpemUgd2hlbiBkaW1lbnNpb25zIGNoYW5nZS4gKi8KICAgIHByb3RlY3RlZCBkcmF3Q3VycmVudEZyYW1lSWZSZWFkeSgpOiB2b2lkIHsKICAgICAgICBpZiAodGhpcy5lcnJvcmVkKSB7CiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KCiAgICAgICAgY29uc3QgZnJhbWUgPSB0aGlzLmN1cnJlbnRGcmFtZQogICAgICAgIGNvbnN0IHsgY29udGV4dDogZ2wsIGVycm9yIH0gPSB0aGlzLmJhc2UudXNlQ2FudmFzQ29udGV4dCgid2ViZ2wiKQogICAgICAgIGlmICghZnJhbWUgfHwgZXJyb3IpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBjb25zdCB3ID0gdGhpcy53aWR0aAogICAgICAgIGNvbnN0IGggPSB0aGlzLmhlaWdodAogICAgICAgIHRoaXMuYmFzZS5zZXRDYW52YXNTaXplKHcsIGgpCiAgICAgICAgZ2wudmlld3BvcnQoMCwgMCwgdywgaCkKCiAgICAgICAgLy8gLS0gQ3JlYXRlIFByb2dyYW0gaWYgbm90IHByZXNlbnQKICAgICAgICBjb25zdCBwcm9ncmFtID0gdGhpcy5nZXRQcm9ncmFtKGdsKQogICAgICAgIGlmICghcHJvZ3JhbSkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIC8vIC0tIENyZWF0ZSBhbmQgQmluZCBRdWFkIHRvIHByb2dyYW0KICAgICAgICBjb25zdCBxdWFkQnVmZmVyID0gdGhpcy5iaW5kUXVhZEJ1ZmZlcihnbCwgcHJvZ3JhbSkKICAgICAgICBpZiAoIXF1YWRCdWZmZXIpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICAvLyAtLSBDcmVhdGUgYW5kIGJpbmQgVGV4dHVyZSBjb3JyZWN0bHkKCiAgICAgICAgLy8gc2l6ZUNoYW5nZWQgd2lsbCByZWFsbG9jIGEgdGV4dHVyZSAtPiBzZXQgaXQgdG8gdHJ1ZQogICAgICAgIGlmICghdGhpcy50ZXh0dXJlWSkgewogICAgICAgICAgICB0aGlzLnRleHR1cmVZID0gdGhpcy5jcmVhdGVUZXh0dXJlKGdsKQogICAgICAgICAgICB0aGlzLnNpemVDaGFuZ2VkID0gdHJ1ZQoKICAgICAgICAgICAgaWYgKCF0aGlzLnNldFByb2dyYW1UZXh0dXJlKGdsLCBwcm9ncmFtLCAidGV4dHVyZVkiLCB0aGlzLnRleHR1cmVZLCAxKSkgewogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCF0aGlzLnRleHR1cmVVKSB7CiAgICAgICAgICAgIHRoaXMudGV4dHVyZVUgPSB0aGlzLmNyZWF0ZVRleHR1cmUoZ2wpCiAgICAgICAgICAgIHRoaXMuc2l6ZUNoYW5nZWQgPSB0cnVlCgogICAgICAgICAgICBpZiAoIXRoaXMuc2V0UHJvZ3JhbVRleHR1cmUoZ2wsIHByb2dyYW0sICJ0ZXh0dXJlVSIsIHRoaXMudGV4dHVyZVUsIDIpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMudGV4dHVyZVYpIHsKICAgICAgICAgICAgdGhpcy50ZXh0dXJlViA9IHRoaXMuY3JlYXRlVGV4dHVyZShnbCkKICAgICAgICAgICAgdGhpcy5zaXplQ2hhbmdlZCA9IHRydWUKCiAgICAgICAgICAgIGlmICghdGhpcy5zZXRQcm9ncmFtVGV4dHVyZShnbCwgcHJvZ3JhbSwgInRleHR1cmVWIiwgdGhpcy50ZXh0dXJlViwgMykpIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyAtLSBVcGxvYWQgdGV4dHVyZSB0byB0aGUgZ3B1CiAgICAgICAgY29uc3Qgc2l6ZSA9IHRoaXMud2lkdGggKiB0aGlzLmhlaWdodAogICAgICAgIGNvbnN0IHV2V2lkdGggPSB0aGlzLndpZHRoID4+IDEKICAgICAgICBjb25zdCB1dkhlaWdodCA9IHRoaXMuaGVpZ2h0ID4+IDEKICAgICAgICBjb25zdCB1dlNpemUgPSB1dldpZHRoICogdXZIZWlnaHQKCiAgICAgICAgaWYgKHRoaXMuc2l6ZUNoYW5nZWQpIHsKICAgICAgICAgICAgLy8gUmVhbGxvYwogICAgICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfQUxJR05NRU5ULCAxKQoKICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGhpcy50ZXh0dXJlWSkKICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5MVU1JTkFOQ0UsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCAwLCBnbC5MVU1JTkFOQ0UsIGdsLlVOU0lHTkVEX0JZVEUsIGZyYW1lLnN1YmFycmF5KDAsIHNpemUpKQoKICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGhpcy50ZXh0dXJlVSkKICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5MVU1JTkFOQ0UsIHV2V2lkdGgsIHV2SGVpZ2h0LCAwLCBnbC5MVU1JTkFOQ0UsIGdsLlVOU0lHTkVEX0JZVEUsIGZyYW1lLnN1YmFycmF5KHNpemUsIHNpemUgKyB1dlNpemUpKQoKICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGhpcy50ZXh0dXJlVikKICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5MVU1JTkFOQ0UsIHV2V2lkdGgsIHV2SGVpZ2h0LCAwLCBnbC5MVU1JTkFOQ0UsIGdsLlVOU0lHTkVEX0JZVEUsIGZyYW1lLnN1YmFycmF5KHNpemUgKyB1dlNpemUsIHNpemUgKyB1dlNpemUgKyB1dlNpemUpKQoKICAgICAgICAgICAgdGhpcy5zaXplQ2hhbmdlZCA9IGZhbHNlCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gT25seSByZWFzc2lnbgogICAgICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0aGlzLnRleHR1cmVZKQogICAgICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIHRoaXMud2lkdGgsIHRoaXMuaGVpZ2h0LCBnbC5MVU1JTkFOQ0UsIGdsLlVOU0lHTkVEX0JZVEUsIGZyYW1lLnN1YmFycmF5KDAsIHNpemUpKQoKICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGhpcy50ZXh0dXJlVSkKICAgICAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCB1dldpZHRoLCB1dkhlaWdodCwgZ2wuTFVNSU5BTkNFLCBnbC5VTlNJR05FRF9CWVRFLCBmcmFtZS5zdWJhcnJheShzaXplLCBzaXplICsgdXZTaXplKSkKCiAgICAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRoaXMudGV4dHVyZVYpCiAgICAgICAgICAgIGdsLnRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgdXZXaWR0aCwgdXZIZWlnaHQsIGdsLkxVTUlOQU5DRSwgZ2wuVU5TSUdORURfQllURSwgZnJhbWUuc3ViYXJyYXkoc2l6ZSArIHV2U2l6ZSwgc2l6ZSArIHV2U2l6ZSArIHV2U2l6ZSkpCiAgICAgICAgfQoKICAgICAgICAvLyAtLSBEcmF3IHRoZSBmcmFtZQogICAgICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVfU1RSSVAsIDAsIDQpCgogICAgICAgIHRoaXMuYmFzZS5jb21taXRGcmFtZSgpCiAgICB9CgogICAgcHJpdmF0ZSBnZXRQcm9ncmFtKGdsOiBXZWJHTFJlbmRlcmluZ0NvbnRleHQpOiBXZWJHTFByb2dyYW0gfCBudWxsIHsKICAgICAgICBjb25zdCBWRVJURVhfU0hBREVSID0gYAphdHRyaWJ1dGUgdmVjMiBhUG9zaXRpb247Cgp2YXJ5aW5nIHZlYzIgdlBvc2l0aW9uOwoKdm9pZCBtYWluKCkgewogICBnbF9Qb3NpdGlvbiA9IHZlYzQoYVBvc2l0aW9uLCAwLjAsIDEuMCk7CiAgIHZQb3NpdGlvbiA9IHZlYzIoYVBvc2l0aW9uLngsIC1hUG9zaXRpb24ueSk7Cn0KYAogICAgICAgIGNvbnN0IEZSQUdNRU5UX1NIQURFUiA9IGAKcHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7Cgp2YXJ5aW5nIHZlYzIgdlBvc2l0aW9uOwoKdW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZVk7CnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmVVOwp1bmlmb3JtIHNhbXBsZXIyRCB0ZXh0dXJlVjsKIAp2b2lkIG1haW4oKSB7CiAgICB2ZWMyIHRleENvb3JkID0gdlBvc2l0aW9uLnh5ICogMC41ICsgMC41OwoKICAgIGZsb2F0IHkgPSB0ZXh0dXJlMkQodGV4dHVyZVksIHRleENvb3JkKS5yOwogICAgZmxvYXQgdSA9IHRleHR1cmUyRCh0ZXh0dXJlVSwgdGV4Q29vcmQpLnIgLSAwLjU7CiAgICBmbG9hdCB2ID0gdGV4dHVyZTJEKHRleHR1cmVWLCB0ZXhDb29yZCkuciAtIDAuNTsKCiAgICAvLyBCVC42MDEgY29udmVyc2lvbgogICAgZmxvYXQgciA9IHkgKyAoMS40MDIgKiB2KTsKICAgIGZsb2F0IGcgPSB5IC0gKDAuMzQ0MTM2ICogdSkgLSAoMC43MTQxMzYgKiB2KTsKICAgIGZsb2F0IGIgPSB5ICsgKDEuNzcyICogdSk7CgogICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChyLCBnLCBiLCAxLjApOwp9CmAKCiAgICAgICAgaWYgKCF0aGlzLnByb2dyYW0pIHsKICAgICAgICAgICAgLy8gVmVydGV4IFNoYWRlcgogICAgICAgICAgICBjb25zdCB2ZXJ0ZXhTaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuVkVSVEVYX1NIQURFUikKICAgICAgICAgICAgaWYgKCF2ZXJ0ZXhTaGFkZXIpIHsKICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiRmFpbGVkIHRvIGNyZWF0ZSB2ZXJ0ZXggc2hhZGVyISIsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pCiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgICAgICB9CgogICAgICAgICAgICBnbC5zaGFkZXJTb3VyY2UodmVydGV4U2hhZGVyLCBWRVJURVhfU0hBREVSKQogICAgICAgICAgICBnbC5jb21waWxlU2hhZGVyKHZlcnRleFNoYWRlcikKCiAgICAgICAgICAgIGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHZlcnRleFNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpKSB7CiAgICAgICAgICAgICAgICBjb25zdCBsb2cgPSBnbC5nZXRTaGFkZXJJbmZvTG9nKHZlcnRleFNoYWRlcikKICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiRmFpbGVkIHRvIGNvbXBpbGUgdmVydGV4IHNoYWRlciEiLCB7IHR5cGU6ICJmYXRhbERlc2NyaXB0aW9uIiB9KQogICAgICAgICAgICAgICAgaWYgKGxvZykgewogICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1Zyhsb2cpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBGcmFnbWVudCBTaGFkZXIKICAgICAgICAgICAgY29uc3QgZnJhZ21lbnRTaGFkZXIgPSBnbC5jcmVhdGVTaGFkZXIoZ2wuRlJBR01FTlRfU0hBREVSKQogICAgICAgICAgICBpZiAoIWZyYWdtZW50U2hhZGVyKSB7CiAgICAgICAgICAgICAgICB0aGlzLmVycm9yZWQgPSB0cnVlCiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIkZhaWxlZCB0byBjcmVhdGUgZnJhZ21lbnQgc2hhZGVyISIsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pCiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgICAgICB9CgogICAgICAgICAgICBnbC5zaGFkZXJTb3VyY2UoZnJhZ21lbnRTaGFkZXIsIEZSQUdNRU5UX1NIQURFUikKICAgICAgICAgICAgZ2wuY29tcGlsZVNoYWRlcihmcmFnbWVudFNoYWRlcikKCiAgICAgICAgICAgIGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKGZyYWdtZW50U2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUykpIHsKICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICAgICAgICAgIGNvbnN0IGxvZyA9IGdsLmdldFNoYWRlckluZm9Mb2coZnJhZ21lbnRTaGFkZXIpCiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIkZhaWxlZCB0byBjb21waWxlIGZyYWdtZW50IHNoYWRlciEiLCB7IHR5cGU6ICJmYXRhbERlc2NyaXB0aW9uIiB9KQogICAgICAgICAgICAgICAgaWYgKGxvZykgewogICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1Zyhsb2cpCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBMaW5rIFByb2dyYW0KICAgICAgICAgICAgY29uc3QgcHJvZ3JhbSA9IGdsLmNyZWF0ZVByb2dyYW0oKQogICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKQogICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIocHJvZ3JhbSwgZnJhZ21lbnRTaGFkZXIpCiAgICAgICAgICAgIGdsLmxpbmtQcm9ncmFtKHByb2dyYW0pCiAgICAgICAgICAgIGlmICghZ2wuZ2V0UHJvZ3JhbVBhcmFtZXRlcihwcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykpIHsKICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICAgICAgICAgIGNvbnN0IGxvZyA9IGdsLmdldFByb2dyYW1JbmZvTG9nKHByb2dyYW0pCiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIkZhaWxlZCB0byBsaW5rIHByb2dyYW0hIiwgeyB0eXBlOiAiZmF0YWxEZXNjcmlwdGlvbiIgfSkKICAgICAgICAgICAgICAgIGlmIChsb2cpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcobG9nKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLnByb2dyYW0gPSBwcm9ncmFtCgogICAgICAgICAgICAvLyBVc2UgcHJvZ3JhbQogICAgICAgICAgICBnbC51c2VQcm9ncmFtKHRoaXMucHJvZ3JhbSkKCiAgICAgICAgICAgIC8vIE1hcmsgc2hhZGVycyBmb3IgZGVsZXRpb24sIGlzIGFsbG93ZWQgYXQgdGhpcyBwb2ludCBhcyB3ZSd2ZSBnb3QgdGhlbSBpbiBhIHByb2dyYW0KICAgICAgICAgICAgZ2wuZGVsZXRlU2hhZGVyKHZlcnRleFNoYWRlcikKICAgICAgICAgICAgZ2wuZGVsZXRlU2hhZGVyKGZyYWdtZW50U2hhZGVyKQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRoaXMucHJvZ3JhbQogICAgfQoKICAgIHByaXZhdGUgYmluZFF1YWRCdWZmZXIoZ2w6IFdlYkdMUmVuZGVyaW5nQ29udGV4dCwgcHJvZ3JhbTogV2ViR0xQcm9ncmFtKTogV2ViR0xCdWZmZXIgfCBudWxsIHsKICAgICAgICBpZiAoIXRoaXMucXVhZCkgewogICAgICAgICAgICAvLyBOb3RlOiBXZSdyZSB1c2luZyBhIHRyaWFuZ2xlIHN0cmlwCiAgICAgICAgICAgIGNvbnN0IHF1YWREYXRhID0gbmV3IEZsb2F0MzJBcnJheShbCiAgICAgICAgICAgICAgICAtMSwgMSwgIC8vIFRvcCBMZWZ0CiAgICAgICAgICAgICAgICAtMSwgLTEsICAvLyBCb3R0b20gTGVmdAogICAgICAgICAgICAgICAgMSwgMSwgIC8vIFRvcCBSaWdodAogICAgICAgICAgICAgICAgMSwgLTEsICAvLyBCb3R0b20gUmlnaHQKICAgICAgICAgICAgXSkKCiAgICAgICAgICAgIGNvbnN0IHF1YWQgPSBnbC5jcmVhdGVCdWZmZXIoKQogICAgICAgICAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgcXVhZCkKICAgICAgICAgICAgZ2wuYnVmZmVyRGF0YShnbC5BUlJBWV9CVUZGRVIsIHF1YWREYXRhLCBnbC5TVEFUSUNfRFJBVykKICAgICAgICAgICAgdGhpcy5xdWFkID0gcXVhZAoKICAgICAgICAgICAgLy8gU2V0IFZlcnRleCBBdHRyaWJ1dGUKICAgICAgICAgICAgY29uc3QgcXVhZEF0dHJpYiA9IGdsLmdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sICJhUG9zaXRpb24iKQogICAgICAgICAgICBpZiAocXVhZEF0dHJpYiA9PSAtMSkgewogICAgICAgICAgICAgICAgdGhpcy5lcnJvcmVkID0gdHJ1ZQogICAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKCJGYWlsZWQgdG8gZ2V0IFwiYVBvc2l0aW9uXCIgYXR0cmlidXRlIGZyb20gcHJvZ3JhbSIsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pCiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbAogICAgICAgICAgICB9CgogICAgICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShxdWFkQXR0cmliKQogICAgICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKHF1YWRBdHRyaWIsIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMCkKICAgICAgICB9CgogICAgICAgIHJldHVybiB0aGlzLnF1YWQKICAgIH0KCiAgICBwcml2YXRlIGNyZWF0ZVRleHR1cmUoZ2w6IFdlYkdMUmVuZGVyaW5nQ29udGV4dCk6IFdlYkdMVGV4dHVyZSB7CiAgICAgICAgY29uc3QgdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKQoKICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKQoKICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUlOX0ZJTFRFUiwgZ2wuTElORUFSKQogICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NQUdfRklMVEVSLCBnbC5MSU5FQVIpCiAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgZ2wuQ0xBTVBfVE9fRURHRSkKICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfV1JBUF9ULCBnbC5DTEFNUF9UT19FREdFKQoKICAgICAgICByZXR1cm4gdGV4dHVyZQogICAgfQogICAgcHJpdmF0ZSBzZXRQcm9ncmFtVGV4dHVyZShnbDogV2ViR0xSZW5kZXJpbmdDb250ZXh0LCBwcm9ncmFtOiBXZWJHTFByb2dyYW0sIG5hbWU6IHN0cmluZywgdGV4dHVyZTogV2ViR0xUZXh0dXJlLCB0ZXh0dXJlSWQ6IG51bWJlcik6IGJvb2xlYW4gewogICAgICAgIGNvbnN0IHVuaWZvcm0gPSBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgbmFtZSkKICAgICAgICBpZiAodW5pZm9ybSA9PSBudWxsKSB7CiAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBGYWlsZWQgdG8gZmluZCB1bmlmb3JtICIke25hbWV9ImAsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pCiAgICAgICAgICAgIHJldHVybiBmYWxzZQogICAgICAgIH0KCiAgICAgICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMCArIHRleHR1cmVJZCkKICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXh0dXJlKQogICAgICAgIGdsLnVuaWZvcm0xaSh1bmlmb3JtLCB0ZXh0dXJlSWQpCgogICAgICAgIC8vIEZvciBmdXJ0aGVyIGNhbGxzIHVzZSB0aGUgZmlyc3QgdGV4dHVyZQogICAgICAgIGdsLmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTApCgogICAgICAgIHJldHVybiB0cnVlCiAgICB9CgogICAgY2xlYW51cCgpIHsKICAgICAgICBjb25zdCB7IGNvbnRleHQ6IGdsIH0gPSB0aGlzLmJhc2UudXNlQ2FudmFzQ29udGV4dCgid2ViZ2wiKQogICAgICAgIGlmIChnbCkgewogICAgICAgICAgICBnbC5kZWxldGVUZXh0dXJlKHRoaXMudGV4dHVyZVkpCiAgICAgICAgICAgIHRoaXMudGV4dHVyZVkgPSBudWxsCgogICAgICAgICAgICBnbC5kZWxldGVUZXh0dXJlKHRoaXMudGV4dHVyZVUpCiAgICAgICAgICAgIHRoaXMudGV4dHVyZVUgPSBudWxsCgogICAgICAgICAgICBnbC5kZWxldGVUZXh0dXJlKHRoaXMudGV4dHVyZVYpCiAgICAgICAgICAgIHRoaXMudGV4dHVyZVYgPSBudWxsCgogICAgICAgICAgICBnbC5kZWxldGVQcm9ncmFtKHRoaXMucHJvZ3JhbSkKICAgICAgICAgICAgdGhpcy5wcm9ncmFtID0gbnVsbAoKICAgICAgICAgICAgZ2wuZGVsZXRlQnVmZmVyKHRoaXMucXVhZCkKICAgICAgICAgICAgdGhpcy5xdWFkID0gbnVsbAogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHN1cGVyLmNsZWFudXAoKQogICAgfQp9Cg=="},{"path":"web/stream/video/depackitize_pipe.ts","sha256":"300ede3e991be1173b5f327750cf904f38aaeda8c41226b5f022db541d69ddc2","contentBase64":"aW1wb3J0IHsgQnl0ZUJ1ZmZlciB9IGZyb20gIi4uL2J1ZmZlci5qcyI7CmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2gsIERhdGFQaXBlIH0gZnJvbSAiLi4vcGlwZWxpbmUvcGlwZXMuanMiOwppbXBvcnQgeyBhbGxWaWRlb0NvZGVjcyB9IGZyb20gIi4uL3ZpZGVvLmpzIjsKaW1wb3J0IHsgRGF0YVZpZGVvUmVuZGVyZXIsIFZpZGVvUmVuZGVyZXJTZXR1cCB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGNsYXNzIERlcGFja2V0aXplVmlkZW9QaXBlIGltcGxlbWVudHMgRGF0YVBpcGUgewoKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZSA9ICJ2aWRlb2RhdGEiCiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJ3c2RhdGEiCgogICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgIC8vIG5vIGxpbmsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogdHJ1ZSwKICAgICAgICAgICAgc3VwcG9ydGVkVmlkZW9Db2RlY3M6IGFsbFZpZGVvQ29kZWNzKCkKICAgICAgICB9CiAgICB9CgogICAgcmVhZG9ubHkgaW1wbGVtZW50YXRpb25OYW1lOiBzdHJpbmcKCiAgICBwcml2YXRlIGJhc2U6IERhdGFWaWRlb1JlbmRlcmVyCgogICAgcHJpdmF0ZSBsYXN0VGltZXN0YW1wTWljcm9zZWNvbmRzID0gMAogICAgcHJpdmF0ZSBidWZmZXIgPSBuZXcgQnl0ZUJ1ZmZlcig1KQoKICAgIGNvbnN0cnVjdG9yKGJhc2U6IERhdGFWaWRlb1JlbmRlcmVyLCBsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uTmFtZSA9IGBkZXBhY2tldGl6ZV92aWRlbyAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAKICAgICAgICB0aGlzLmJhc2UgPSBiYXNlCgogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKQogICAgfQoKICAgIHN1Ym1pdFBhY2tldChidWZmZXI6IEFycmF5QnVmZmVyKSB7CiAgICAgICAgY29uc3QgYXJyYXkgPSBuZXcgVWludDhBcnJheShidWZmZXIpCgogICAgICAgIHRoaXMuYnVmZmVyLnJlc2V0KCkKCiAgICAgICAgdGhpcy5idWZmZXIucHV0VThBcnJheShhcnJheS5zbGljZSgwLCA1KSkKCiAgICAgICAgdGhpcy5idWZmZXIuZmxpcCgpCgogICAgICAgIGNvbnN0IGZyYW1lVHlwZSA9IHRoaXMuYnVmZmVyLmdldFU4KCkKICAgICAgICBjb25zdCB0aW1lc3RhbXAgPSB0aGlzLmJ1ZmZlci5nZXRVMzIoKQoKICAgICAgICBjb25zdCBkdXJhdGlvbiA9IHRpbWVzdGFtcCAtIHRoaXMubGFzdFRpbWVzdGFtcE1pY3Jvc2Vjb25kcwogICAgICAgIHRoaXMuYmFzZS5zdWJtaXREZWNvZGVVbml0KHsKICAgICAgICAgICAgdHlwZTogZnJhbWVUeXBlID09IDAgPyAiZGVsdGEiIDogImtleSIsCiAgICAgICAgICAgIGRhdGE6IGFycmF5LnNsaWNlKDUpLmJ1ZmZlciwKICAgICAgICAgICAgZHVyYXRpb25NaWNyb3NlY29uZHM6IGR1cmF0aW9uLAogICAgICAgICAgICB0aW1lc3RhbXBNaWNyb3NlY29uZHM6IHRpbWVzdGFtcCwKICAgICAgICB9KQogICAgICAgIHRoaXMubGFzdFRpbWVzdGFtcE1pY3Jvc2Vjb25kcyA9IHRpbWVzdGFtcAoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBzZXR1cChzZXR1cDogVmlkZW9SZW5kZXJlclNldHVwKSB7CiAgICAgICAgaWYgKCJzZXR1cCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2Uuc2V0dXAgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICByZXR1cm4gdGhpcy5iYXNlLnNldHVwKC4uLmFyZ3VtZW50cykKICAgICAgICB9CiAgICB9CgogICAgZ2V0QmFzZSgpOiBQaXBlIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZQogICAgfQp9"},{"path":"web/stream/video/index.ts","sha256":"b8354dee956e45b73dc6b0fcc8b0360734d892ac146beb0ee042c9df34c5773f","contentBase64":"aW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAiLi4vLi4vY29tcG9uZW50L2luZGV4LmpzIgppbXBvcnQgeyBTdHJlYW1TdXBwb3J0ZWRWaWRlb0NvZGVjcyB9IGZyb20gIi4uLy4uL2FwaV9iaW5kaW5ncy5qcyIKaW1wb3J0IHsgUGlwZSB9IGZyb20gIi4uL3BpcGVsaW5lL2luZGV4LmpzIgoKZXhwb3J0IHR5cGUgVmlkZW9SZW5kZXJlclNldHVwID0gewogICAgY29kZWM6IGtleW9mIHR5cGVvZiBTdHJlYW1TdXBwb3J0ZWRWaWRlb0NvZGVjcywKICAgIHdpZHRoOiBudW1iZXIKICAgIGhlaWdodDogbnVtYmVyCiAgICBmcHM6IG51bWJlcgp9CgpleHBvcnQgaW50ZXJmYWNlIFZpZGVvUmVuZGVyZXIgZXh0ZW5kcyBDb21wb25lbnQsIFBpcGUgewogICAgcmVhZG9ubHkgaW1wbGVtZW50YXRpb25OYW1lOiBzdHJpbmcKCiAgICAvLy8gUmV0dXJucyB0aGUgc3VjY2VzcwogICAgc2V0dXAoc2V0dXA6IFZpZGVvUmVuZGVyZXJTZXR1cCk6IFByb21pc2U8dm9pZD4KICAgIGNsZWFudXAoKTogdm9pZAoKICAgIC8vLyBPbmx5IHdvcmtzIG9uIHdlYiBzb2NrZXQgcGlwZWxpbmUgY3VycmVudGx5CiAgICBwb2xsUmVxdWVzdElkcigpOiBib29sZWFuCgogICAgLy8vIERvbid0IHdvcmsgaW5zaWRlIGEgd29ya2VyCiAgICBvblVzZXJJbnRlcmFjdGlvbigpOiB2b2lkCiAgICAvLy8gRG9uJ3Qgd29yayBpbnNpZGUgYSB3b3JrZXIKICAgIGdldFN0cmVhbVJlY3QoKTogRE9NUmVjdAoKICAgIC8vLyBEb24ndCB3b3JrIGluc2lkZSBhIHdvcmtlcgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQKICAgIC8vLyBEb24ndCB3b3JrIGluc2lkZSBhIHdvcmtlcgogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZAoKICAgIC8vLyBPcHRpb25hbDogU2V0IEhEUiBtb2RlIChlbmFibGVkL2Rpc2FibGVkKQogICAgc2V0SGRyTW9kZT8oZW5hYmxlZDogYm9vbGVhbik6IHZvaWQKfQoKZXhwb3J0IGZ1bmN0aW9uIGdldFN0cmVhbVJlY3RDb3JyZWN0ZWQoYm91bmRpbmdSZWN0OiBET01SZWN0LCB2aWRlb1NpemU6IFtudW1iZXIsIG51bWJlcl0pOiBET01SZWN0IHsKICAgIGNvbnN0IHZpZGVvQXNwZWN0ID0gdmlkZW9TaXplWzBdIC8gdmlkZW9TaXplWzFdCgogICAgY29uc3QgYm91bmRpbmdSZWN0QXNwZWN0ID0gYm91bmRpbmdSZWN0LndpZHRoIC8gYm91bmRpbmdSZWN0LmhlaWdodAoKICAgIGxldCB4ID0gYm91bmRpbmdSZWN0LngKICAgIGxldCB5ID0gYm91bmRpbmdSZWN0LnkKICAgIGxldCB2aWRlb011bHRpcGxpZXIKICAgIGlmIChib3VuZGluZ1JlY3RBc3BlY3QgPiB2aWRlb0FzcGVjdCkgewogICAgICAgIC8vIEhvdyBtdWNoIGlzIHRoZSB2aWRlbyBzY2FsZWQgdXAKICAgICAgICB2aWRlb011bHRpcGxpZXIgPSBib3VuZGluZ1JlY3QuaGVpZ2h0IC8gdmlkZW9TaXplWzFdCgogICAgICAgIC8vIE5vdGU6IEJvdGggaW4gYm91bmRpbmdSZWN0IC8gcGFnZSBzY2FsZQogICAgICAgIGNvbnN0IGJvdW5kaW5nUmVjdEhhbGZXaWR0aCA9IGJvdW5kaW5nUmVjdC53aWR0aCAvIDIKICAgICAgICBjb25zdCB2aWRlb0hhbGZXaWR0aCA9IHZpZGVvU2l6ZVswXSAqIHZpZGVvTXVsdGlwbGllciAvIDIKCiAgICAgICAgeCArPSBib3VuZGluZ1JlY3RIYWxmV2lkdGggLSB2aWRlb0hhbGZXaWR0aAogICAgfSBlbHNlIHsKICAgICAgICAvLyBTYW1lIGFzIGFib3ZlIGJ1dCBpbnZlcnRlZAogICAgICAgIHZpZGVvTXVsdGlwbGllciA9IGJvdW5kaW5nUmVjdC53aWR0aCAvIHZpZGVvU2l6ZVswXQoKICAgICAgICBjb25zdCBib3VuZGluZ1JlY3RIYWxmSGVpZ2h0ID0gYm91bmRpbmdSZWN0LmhlaWdodCAvIDIKICAgICAgICBjb25zdCB2aWRlb0hhbGZIZWlnaHQgPSB2aWRlb1NpemVbMV0gKiB2aWRlb011bHRpcGxpZXIgLyAyCgogICAgICAgIHkgKz0gYm91bmRpbmdSZWN0SGFsZkhlaWdodCAtIHZpZGVvSGFsZkhlaWdodAogICAgfQoKICAgIHJldHVybiBuZXcgRE9NUmVjdCgKICAgICAgICB4LAogICAgICAgIHksCiAgICAgICAgdmlkZW9TaXplWzBdICogdmlkZW9NdWx0aXBsaWVyLAogICAgICAgIHZpZGVvU2l6ZVsxXSAqIHZpZGVvTXVsdGlwbGllcgogICAgKQp9CgpleHBvcnQgaW50ZXJmYWNlIFRyYWNrVmlkZW9SZW5kZXJlciBleHRlbmRzIFBpcGUgewogICAgLy8gc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAidmlkZW90cmFjayIKCiAgICBzZXRUcmFjayh0cmFjazogTWVkaWFTdHJlYW1UcmFjayk6IHZvaWQKfQoKZXhwb3J0IGludGVyZmFjZSBVcmxWaWRlb1JlbmRlcmVyIGV4dGVuZHMgUGlwZSB7CiAgICAvLyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJ2aWRlb3VybCIKCiAgICBzZXRVcmwoc3JjOiBzdHJpbmcpOiB2b2lkCn0KCmV4cG9ydCBpbnRlcmZhY2UgRnJhbWVWaWRlb1JlbmRlcmVyIGV4dGVuZHMgUGlwZSB7CiAgICAvLyBzdGF0aWMgcmVhZG9ubHkgdHlwZSA9ICJ2aWRlb2ZyYW1lIgoKICAgIC8vLyBTdWJtaXRzIGEgZnJhbWUuIFRoaXMgcmVuZGVyZXIgbm93ICJvd25zIiB0aGUgZnJhbWUgYW5kIG5lZWRzIHRvIGNsZWFuIGl0IHVwIHZpYSBjbG9zZS4KICAgIHN1Ym1pdEZyYW1lKGZyYW1lOiBWaWRlb0ZyYW1lKTogdm9pZAp9CgpleHBvcnQgdHlwZSBZdXY0MjBWaWRlb0ZyYW1lID0gewogICAgeVBsYW5lOiBVaW50OEFycmF5LAogICAgdVBsYW5lOiBVaW50OEFycmF5LAogICAgdlBsYW5lOiBVaW50OEFycmF5LAogICAgeVN0cmlkZTogbnVtYmVyCiAgICB1dlN0cmlkZTogbnVtYmVyCiAgICB3aWR0aDogbnVtYmVyCiAgICBoZWlnaHQ6IG51bWJlcgogICAgdGltZXN0YW1wTWljcm9zZWNvbmRzOiBudW1iZXIKICAgIGR1cmF0aW9uTWljcm9zZWNvbmRzOiBudW1iZXIKfQoKZXhwb3J0IGludGVyZmFjZSBZdXY0MjBGcmFtZVZpZGVvUmVuZGVyZXIgZXh0ZW5kcyBQaXBlIHsKICAgIC8vIHN0YXRpYyByZWFkb25seSB0eXBlID0gInl1djQyMHZpZGVvZnJhbWUiCgogICAgLy8vIHN1Ym1pdHMgYSByYXcgZnJhbWUuIHRoaXMgcmVuZGVyZXIgZG9lc24ndCAib3duIiB0aGUgYnVmZmVyIGFuZCBzaG91bGQgb25seSByZWFkIGZyb20gaXQKICAgIHN1Ym1pdFJhd0ZyYW1lKGZyYW1lOiBZdXY0MjBWaWRlb0ZyYW1lKTogdm9pZAp9CgpleHBvcnQgdHlwZSBSZ2JhVmlkZW9GcmFtZSA9IHsKICAgIGJ1ZmZlcjogVWludDhDbGFtcGVkQXJyYXkKICAgIHdpZHRoOiBudW1iZXIKICAgIGhlaWdodDogbnVtYmVyCiAgICB0aW1lc3RhbXBNaWNyb3NlY29uZHM6IG51bWJlcgogICAgZHVyYXRpb25NaWNyb3NlY29uZHM6IG51bWJlcgp9CgpleHBvcnQgaW50ZXJmYWNlIFJnYmFGcmFtZVZpZGVvUmVuZGVyZXIgZXh0ZW5kcyBQaXBlIHsKICAgIC8vIHN0YXRpYyByZWFkb25seSB0eXBlID0gInJnYmF2aWRlb2ZyYW1lIgoKICAgIC8vLyBzdWJtaXRzIGEgcmF3IGZyYW1lLiB0aGlzIHJlbmRlcmVyIGRvZXNuJ3QgIm93biIgdGhlIGJ1ZmZlciBhbmQgc2hvdWxkIG9ubHkgcmVhZCBmcm9tIGl0CiAgICBzdWJtaXRSYXdGcmFtZShmcmFtZTogUmdiYVZpZGVvRnJhbWUpOiB2b2lkCn0KCmV4cG9ydCB0eXBlIFVzZUNhbnZhc1Jlc3VsdDxUPiA9CiAgICB7IGVycm9yOiBudWxsLCBjb250ZXh0OiBUIH0gfAogICAgLy8gY3JlYXRpb25GYWlsZWQgLT4gVGhpcyBicm93c2VyIGRvZXNuJ3Qgc3VwcG9ydCB0aGlzIGNvbnRleHQKICAgIC8vIG5vQ2FudmFzIC0+IFRoZSBjYW52YXMgaXMgY3VycmVudGx5IG5vdCBhdmFpbGFibGUgYnV0IGl0IG1pZ2h0IGJlY29tZSBhdmFpbGFibGUgaW4gdGhlIGZ1dHVyZQogICAgLy8gb3RoZXJDb250ZXh0SW5Vc2UgLT4gQW5vdGhlciBjb250ZXh0IHdhcyBhbHJlYWR5IHJlcXVlc3RlZCBhbmQgaXMgY3VycmVudGx5IGluIHVzZQogICAgeyBlcnJvcjogImNyZWF0aW9uRmFpbGVkIiB8ICJub0NhbnZhcyIgfCAib3RoZXJDb250ZXh0SW5Vc2UiLCBjb250ZXh0OiBudWxsIH0KCmV4cG9ydCBpbnRlcmZhY2UgQ2FudmFzUmVuZGVyZXIgZXh0ZW5kcyBQaXBlIHsKICAgIC8vIHN0YXRpYyByZWFkb25seSB0eXBlID0gImNhbnZhcyIKCiAgICAvLy8gVHJpZXMgdG8gY3JlYXRlIG9yIHJldXNlIGFuIGFscmVhZHkgZXhpc3RpbmcgY2FudmFzIGNvbnRleHQuCiAgICB1c2VDYW52YXNDb250ZXh0KHR5cGU6ICJ3ZWJnbCIpOiBVc2VDYW52YXNSZXN1bHQ8V2ViR0xSZW5kZXJpbmdDb250ZXh0PgogICAgdXNlQ2FudmFzQ29udGV4dCh0eXBlOiAid2ViZ2wyIik6IFVzZUNhbnZhc1Jlc3VsdDxXZWJHTDJSZW5kZXJpbmdDb250ZXh0PgogICAgdXNlQ2FudmFzQ29udGV4dCh0eXBlOiAiMmQiKTogVXNlQ2FudmFzUmVzdWx0PChPZmZzY3JlZW5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgfCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQpPgoKICAgIC8vLyBTZXRzIHRoZSBjYW52YXMgdG8gYSBzcGVjaWZpYyBzaXplCiAgICBzZXRDYW52YXNTaXplKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZAoKICAgIC8vLyBDb21taXQgUmVuZGVyZWQgZGF0YSBvbiBjYW52YXMKICAgIGNvbW1pdEZyYW1lKCk6IHZvaWQKfQoKZXhwb3J0IHR5cGUgVmlkZW9EZWNvZGVVbml0ID0gewogICAgdHlwZTogImtleSIgfCAiZGVsdGEiCiAgICB0aW1lc3RhbXBNaWNyb3NlY29uZHM6IG51bWJlcgogICAgZHVyYXRpb25NaWNyb3NlY29uZHM6IG51bWJlcgogICAgLyoKICAgICAgQ29udGFpbnMgdGhlIGRhdGEgZm9yIG9uZSBmcmFtZToKICAgICAgLSBIMjY0OgogICAgICAgIC0ga2V5ZnJhbWU6IE11c3QgY29udGFpbiBzcHMscHBzLGlkcihvbmUgb3IgbXVsdGlwbGUpCiAgICAgICAgLSBkZWx0YTogTXVzdCBjb250YWluIHRoZSB3aG9sZSBmcmFtZShvbmUgb3IgbXVsdGlwbGUgQ29kZWNTbGljZU5vbklkcidzKQogICAgICAtIEgyNjU6CiAgICAgICAgLSBrZXlmcmFtZTogTXVzdCBjb250YWluIHNwcyxwcHMsaWRyKG9uZSBvciBtdWx0aXBsZSkKICAgICAgICAtIGRlbHRhOiBNdXN0IGNvbnRhaW4gdGhlIHdob2xlIGZyYW1lKG9uZSBvciBtdWx0aXBsZSBDb2RlY1NsaWNlTm9uSWRyJ3MpCiAgICAqLwogICAgZGF0YTogQXJyYXlCdWZmZXIKfQoKZXhwb3J0IGludGVyZmFjZSBEYXRhVmlkZW9SZW5kZXJlciBleHRlbmRzIFBpcGUgewogICAgLy8gc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAidmlkZW9kYXRhIgoKICAgIC8vLyBEYXRhIGxpa2UgaHR0cHM6Ly9naXRodWIuY29tL21vb25saWdodC1zdHJlYW0vbW9vbmxpZ2h0LWNvbW1vbi1jL2Jsb2IvYjEyNmU0ODFhMTk1ZmRjNzE1MmQyMTFkZWYxNzE5MGUzNDM0YmNjZS9zcmMvTGltZWxpZ2h0LmgjTDI5OAogICAgc3VibWl0RGVjb2RlVW5pdCh1bml0OiBWaWRlb0RlY29kZVVuaXQpOiB2b2lkCn0="},{"path":"web/stream/video/media_source_decoder.ts","sha256":"2c3c6af8f9a9c317a3be7edf1a9faa40d0facc1bff89c3c1ddff73e7970b5ffa","contentBase64":"aW1wb3J0IHsgZG93bmxvYWQsIGdsb2JhbE9iamVjdCB9IGZyb20gIi4uLy4uL3V0aWwuanMiCmltcG9ydCB7IEJ5dGVCdWZmZXIgfSBmcm9tICIuLi9idWZmZXIuanMiCmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyIKaW1wb3J0IHsgUGlwZSwgUGlwZUluZm8gfSBmcm9tICIuLi9waXBlbGluZS9pbmRleC5qcyIKaW1wb3J0IHsgYWRkUGlwZVBhc3N0aHJvdWdoIH0gZnJvbSAiLi4vcGlwZWxpbmUvcGlwZXMuanMiCmltcG9ydCB7IGVtcHR5VmlkZW9Db2RlY3MgfSBmcm9tICIuLi92aWRlby5qcyIKaW1wb3J0IHsgaDI2NE5hbFR5cGUsIEgyNjRTdHJlYW1WaWRlb1RyYW5zbGF0b3IgfSBmcm9tICIuL2FubmV4X2JfdHJhbnNsYXRvci5qcyIKaW1wb3J0IHsgRGF0YVZpZGVvUmVuZGVyZXIsIFVybFZpZGVvUmVuZGVyZXIsIFZpZGVvRGVjb2RlVW5pdCwgVmlkZW9SZW5kZXJlclNldHVwIH0gZnJvbSAiLi9pbmRleC5qcyIKCi8vIGF1dG8gZG93bmxvYWQgYW4gbXA0IGZpbGUgY29udGFpbmluZyBhbGwgZGF0YSB1bnRpbCBhIG1lZGlhIHNvdXJjZSBlcnJvciBvY2N1cmVkLCB0ZXN0aW5nIG9ubHkKY29uc3QgREVCVUdfRklMRSA9IGZhbHNlCgpleHBvcnQgY2xhc3MgTWVkaWFTb3VyY2VEZWNvZGVyIGltcGxlbWVudHMgRGF0YVZpZGVvUmVuZGVyZXIgewogICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgIGNvbnN0IGVudmlyb25tZW50U3VwcG9ydGVkID0gIk1lZGlhU291cmNlIiBpbiBnbG9iYWxPYmplY3QoKSAmJiAiaXNUeXBlU3VwcG9ydGVkIiBpbiBNZWRpYVNvdXJjZQoKICAgICAgICBjb25zdCB2aWRlb0NvZGVjcyA9IGVtcHR5VmlkZW9Db2RlY3MoKQoKICAgICAgICAvLyBXZSBvbmx5IGtub3cgMTAwJSBpZiB0aGUgY29kZWMgaXMgc3VwcG9ydGVkIHdoZW4gd2UgdHJ5IHRvIHBsYXkgdGhlIHN0cmVhbSBhbmQgZ2V0IHRoZQogICAgICAgIC8vIFNwcyB3aGljaCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYWN0dWFsIGgyNjQgY29kZWMgYmVpbmcgdXNlZAogICAgICAgIHZpZGVvQ29kZWNzLkgyNjQgPSAibWF5YmUiCgogICAgICAgIC8vIG5vIGxpbmsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZCwKICAgICAgICAgICAgc3VwcG9ydGVkVmlkZW9Db2RlY3M6IHZpZGVvQ29kZWNzCiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZTogc3RyaW5nID0gInZpZGVvdXJsIgogICAgc3RhdGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9ICJ2aWRlb2RhdGEiCgogICAgcmVhZG9ubHkgaW1wbGVtZW50YXRpb25OYW1lOiBzdHJpbmcKCiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyIHwgbnVsbCA9IG51bGwKCiAgICBwcml2YXRlIGJhc2U6IFVybFZpZGVvUmVuZGVyZXIKCiAgICBwcml2YXRlIGVycm9yZWQgPSBmYWxzZQoKICAgIHByaXZhdGUgbWVkaWFTb3VyY2UgPSBuZXcgTWVkaWFTb3VyY2UoKQogICAgcHJpdmF0ZSB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKHRoaXMubWVkaWFTb3VyY2UpCiAgICBwcml2YXRlIHRyYW5zbGF0b3I6IEgyNjRTdHJlYW1WaWRlb1RyYW5zbGF0b3IKCiAgICBwcml2YXRlIG9uUmVhZHlQcm9taXNlOiBQcm9taXNlPHZvaWQ+CgogICAgcHJpdmF0ZSB2aWRlb1NpemU6IFtudW1iZXIsIG51bWJlcl0gfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBzZXF1ZW5jZU51bWJlcjogbnVtYmVyID0gLTEKCiAgICBwcml2YXRlIHNvdXJjZUJ1ZmZlcjogU291cmNlQnVmZmVyIHwgbnVsbCA9IG51bGwKCiAgICBwcml2YXRlIGRlYnVnQnVmZmVyOiBVaW50OEFycmF5IHwgbnVsbCA9IG51bGwKCiAgICBjb25zdHJ1Y3RvcihiYXNlOiBVcmxWaWRlb1JlbmRlcmVyLCBsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/PyBudWxsCgogICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb25OYW1lID0gYG1lZGlhX3NvdXJjZV9leHRlbnNpb25fZGVjb2RlciAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAKICAgICAgICB0aGlzLmJhc2UgPSBiYXNlCiAgICAgICAgdGhpcy50cmFuc2xhdG9yID0gbmV3IEgyNjRTdHJlYW1WaWRlb1RyYW5zbGF0b3IobG9nZ2VyKQoKICAgICAgICB0aGlzLm9uUmVhZHlQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewogICAgICAgICAgICB0aGlzLm1lZGlhU291cmNlLmFkZEV2ZW50TGlzdGVuZXIoInNvdXJjZW9wZW4iLCAoKSA9PiB7CiAgICAgICAgICAgICAgICByZXNvbHZlKCkKICAgICAgICAgICAgfSkKICAgICAgICB9KQoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBwcml2YXRlIGV4cGVjdGVkRHVyYXRpb25NaWNyb3NlY29uZHMgPSAwCgogICAgYXN5bmMgc2V0dXAoc2V0dXA6IFZpZGVvUmVuZGVyZXJTZXR1cCk6IFByb21pc2U8dm9pZD4gewogICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiVGhlIHN0cmVhbSBtYXkgZXhwZXJpZW5jZSBpbmNyZWFzZWQgbGF0ZW5jeSwgYXMgbW9kZXJuIGJyb3dzZXIgQVBJcyBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQuIiwgeyB0eXBlOiAiaW5mb3JtRXJyb3IiIH0pCgogICAgICAgIHRoaXMuYmFzZS5zZXRVcmwodGhpcy51cmwpCgogICAgICAgIHRoaXMudmlkZW9TaXplID0gW3NldHVwLndpZHRoLCBzZXR1cC5oZWlnaHRdCiAgICAgICAgdGhpcy5leHBlY3RlZER1cmF0aW9uTWljcm9zZWNvbmRzID0gMV8wMDBfMDAwIC8gc2V0dXAuZnBzCgogICAgICAgIGF3YWl0IHRoaXMub25SZWFkeVByb21pc2UKCiAgICAgICAgaWYgKCJzZXR1cCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2Uuc2V0dXAgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5iYXNlLnNldHVwKC4uLmFyZ3VtZW50cykKICAgICAgICB9CiAgICB9CgogICAgLy8gQSBzb3VyY2UgYnVmZmVyIGlzIGNyZWF0ZWQgb24gZWFjaCBpZHIKICAgIHByaXZhdGUgY3JlYXRlTmV3U291cmNlQnVmZmVyKGNvZGVjOiBzdHJpbmcpIHsKICAgICAgICAvLyBDbGVhbiB0aGUgb2xkIHNvdXJjZSBidWZmZXIKICAgICAgICBpZiAodGhpcy5zb3VyY2VCdWZmZXIpIHsKICAgICAgICAgICAgdGhpcy5tZWRpYVNvdXJjZS5yZW1vdmVTb3VyY2VCdWZmZXIodGhpcy5zb3VyY2VCdWZmZXIpCiAgICAgICAgICAgIHRoaXMuc291cmNlQnVmZmVyID0gbnVsbAogICAgICAgIH0KCiAgICAgICAgdGhpcy5zb3VyY2VCdWZmZXIgPSB0aGlzLm1lZGlhU291cmNlLmFkZFNvdXJjZUJ1ZmZlcihgdmlkZW8vbXA0OyBjb2RlY3M9JHtjb2RlY31gKQoKICAgICAgICB0aGlzLnNvdXJjZUJ1ZmZlci5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIHRoaXMub25FcnJvci5iaW5kKHRoaXMpKQogICAgICAgIHRoaXMuc291cmNlQnVmZmVyLmFkZEV2ZW50TGlzdGVuZXIoInVwZGF0ZWVuZCIsIHRoaXMub25VcGRhdGVFbmQuYmluZCh0aGlzKSkKCiAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhLXNvdXJjZS0yLyNkb20tc291cmNlYnVmZmVyCiAgICAgICAgdGhpcy5zb3VyY2VCdWZmZXIubW9kZSA9ICJzZWdtZW50cyIKICAgIH0KCgogICAgcHJpdmF0ZSBvbkVycm9yKGV2ZW50OiBFdmVudCkgewogICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYEVycm9yIHdoaWxzdCBkZWNvZGluZyB1c2luZyBNZWRpYVNvdXJjZUV4dGVuc2lvbiBhdCBzZXF1ZW5jZU51bWJlciAke3RoaXMuc2VxdWVuY2VOdW1iZXJ9YCwgeyB0eXBlOiAiZmF0YWxEZXNjcmlwdGlvbiIgfSkKICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBFcnJvckV2ZW50KSB7CiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgJHtldmVudC5lcnJvcn1gLCB7IHR5cGU6ICJmYXRhbCIgfSkKICAgICAgICB9CgogICAgICAgIGlmIChERUJVR19GSUxFICYmIHRoaXMuZGVidWdCdWZmZXIpIHsKICAgICAgICAgICAgZG93bmxvYWQodGhpcy5kZWJ1Z0J1ZmZlciwgImZpbGUubXA0IiwgInZpZGVvL21wNCIpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgb25VcGRhdGVFbmQoKSB7CiAgICAgICAgdGhpcy50cnlBcHBlbmREZWNvZGVVbml0KCkKICAgIH0KCiAgICBwcml2YXRlIGJ1ZmZlcnM6IEFycmF5PFVpbnQ4QXJyYXk+ID0gW10KICAgIHByaXZhdGUgbmVlZElkciA9IHRydWUKCiAgICBwcml2YXRlIGRyb3BwZWRGcmFtZXMgPSAwCiAgICBwcml2YXRlIHRpbWVzdGFtcE1pY3Jvc2Vjb25kc1NoaWZ0ID0gMAogICAgcHJpdmF0ZSBsYXN0VGltZXN0YW1wTWljcm9zZWNvbmRzID0gMAoKICAgIHN1Ym1pdERlY29kZVVuaXQodW5pdDogVmlkZW9EZWNvZGVVbml0KTogdm9pZCB7CiAgICAgICAgaWYgKHRoaXMuZXJyb3JlZCkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy50cmFuc2xhdG9yLnN1Ym1pdERlY29kZVVuaXQodW5pdCkKICAgICAgICBpZiAodmFsdWUuZXJyb3IpIHsKICAgICAgICAgICAgdGhpcy5lcnJvcmVkID0gdHJ1ZQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIGNvbnN0IHsgY29uZmlndXJlLCBjaHVuayB9ID0gdmFsdWUKCiAgICAgICAgaWYgKCFjaHVuaykgewogICAgICAgICAgICBjb25zb2xlLmRlYnVnKCJObyBjaHVuayByZWNlaXZlZCEiKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CgogICAgICAgIC8vIEZpeCB0aW1lc3RhbXBzIGlmIHdlJ3JlIGdpdmVuIGJhZCBvbmVzCiAgICAgICAgbGV0IHRpbWVzdGFtcE1pY3Jvc2Vjb25kcyA9IHVuaXQudGltZXN0YW1wTWljcm9zZWNvbmRzIC0gdGhpcy50aW1lc3RhbXBNaWNyb3NlY29uZHNTaGlmdAogICAgICAgIGlmICh0aW1lc3RhbXBNaWNyb3NlY29uZHMgPD0gdGhpcy5sYXN0VGltZXN0YW1wTWljcm9zZWNvbmRzKSB7CiAgICAgICAgICAgIC8vIFRpbWVzdGFtcHMgbXVzdCBpbmNyZWFzZSBhdCBhICJub3JtYWwiIHJhdGUKICAgICAgICAgICAgdGltZXN0YW1wTWljcm9zZWNvbmRzID0gdGhpcy5sYXN0VGltZXN0YW1wTWljcm9zZWNvbmRzICsgdGhpcy5leHBlY3RlZER1cmF0aW9uTWljcm9zZWNvbmRzCiAgICAgICAgfQoKICAgICAgICBsZXQgZHVyYXRpb25NaWNyb3NlY29uZHMgPSB0aW1lc3RhbXBNaWNyb3NlY29uZHMgLSB0aGlzLmxhc3RUaW1lc3RhbXBNaWNyb3NlY29uZHMKICAgICAgICB0aGlzLmxhc3RUaW1lc3RhbXBNaWNyb3NlY29uZHMgPSB0aW1lc3RhbXBNaWNyb3NlY29uZHMKCiAgICAgICAgaWYgKGNvbmZpZ3VyZSkgewogICAgICAgICAgICBpZiAoIWNvbmZpZ3VyZS5kZXNjcmlwdGlvbgogICAgICAgICAgICAgICAgfHwgIShjb25maWd1cmUuZGVzY3JpcHRpb24gaW5zdGFuY2VvZiBVaW50OEFycmF5KQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgRmFpbGVkIHRvIGluaXQgTWVkaWFTb3VyY2VFeHRlbnNpb24gRGVjb2RlciBiZWNhdXNlIG9mIG1pc3NpbmcgZGVzY3JpcHRpb24gaW4gY29uZmlndXJhdGlvbiBvciBjb25maWd1cmF0aW9uIGlzIGluIGluY29ycmVjdCBmb3JtYXRcbiR7SlNPTi5zdHJpbmdpZnkoY29uZmlndXJlKX1gLCB7IHR5cGU6ICJmYXRhbCIgfSkKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CgogICAgICAgICAgICB0aGlzLmNyZWF0ZU5ld1NvdXJjZUJ1ZmZlcihjb25maWd1cmUuY29kZWMpCgogICAgICAgICAgICBpZiAoIXRoaXMudmlkZW9TaXplKSB7CiAgICAgICAgICAgICAgICB0aGlzLmVycm9yZWQgPSB0cnVlCiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoYEZhaWxlZCB0byBpbml0IE1lZGlhU291cmNlRXh0ZW5zaW9uIERlY29kZXIgYmVjYXVzZSB2aWRlbyBzaXplIGlzIG5vdCBjdXJyZW50bHkga25vd25gLCB7IHR5cGU6ICJmYXRhbCIgfSkKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnN0IFt3aWR0aCwgaGVpZ2h0XSA9IHRoaXMudmlkZW9TaXplCgogICAgICAgICAgICAvLyBFdmVyeSBzZWdtZW50IG11c3Qgc3RhcnQgYXQgdGltZXN0YW1wIDAKICAgICAgICAgICAgdGhpcy50aW1lc3RhbXBNaWNyb3NlY29uZHNTaGlmdCA9IHVuaXQudGltZXN0YW1wTWljcm9zZWNvbmRzCiAgICAgICAgICAgIHRoaXMubGFzdFRpbWVzdGFtcE1pY3Jvc2Vjb25kcyA9IDAKCiAgICAgICAgICAgIC8vIFNlcXVlbmNlIG51bWJlciBzaG91bGQgc3RhcnQgYXQgMQogICAgICAgICAgICB0aGlzLnNlcXVlbmNlTnVtYmVyID0gMQoKICAgICAgICAgICAgY29uc3QgaW5pdFNlZ21lbnQgPSBuZXcgQnl0ZUJ1ZmZlcigyMDAwLCBmYWxzZSkKICAgICAgICAgICAgcHV0VmlkZW9Jbml0U2VnbWVudChpbml0U2VnbWVudCwgMV8wMDBfMDAwLCAxLCB3aWR0aCwgaGVpZ2h0LCBjb25maWd1cmUuZGVzY3JpcHRpb24pCiAgICAgICAgICAgIGluaXRTZWdtZW50LmZsaXAoKQogICAgICAgICAgICB0aGlzLmJ1ZmZlcnMucHVzaChpbml0U2VnbWVudC5nZXRSZW1haW5pbmdCdWZmZXIoKSkKCiAgICAgICAgICAgIGNvbnN0IGlkclNlZ21lbnQgPSBuZXcgQnl0ZUJ1ZmZlcig0MDAgKyB1bml0LmRhdGEuYnl0ZUxlbmd0aCwgZmFsc2UpCiAgICAgICAgICAgIHB1dFZpZGVvRnJhbWVTZWdtZW50KGlkclNlZ21lbnQsIDEsIHRoaXMuc2VxdWVuY2VOdW1iZXIsIDAsIGR1cmF0aW9uTWljcm9zZWNvbmRzLCB0cnVlLCBjaHVuaykKICAgICAgICAgICAgaWRyU2VnbWVudC5mbGlwKCkKICAgICAgICAgICAgdGhpcy5idWZmZXJzLnB1c2goaWRyU2VnbWVudC5nZXRSZW1haW5pbmdCdWZmZXIoKSkKCiAgICAgICAgICAgIHRoaXMubmVlZElkciA9IGZhbHNlCiAgICAgICAgICAgIHRoaXMuZHJvcHBlZEZyYW1lcyA9IDAKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodGhpcy5uZWVkSWRyKSB7CiAgICAgICAgICAgICAgICB0aGlzLmRyb3BwZWRGcmFtZXMgKz0gMQogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRoaXMuc2VxdWVuY2VOdW1iZXIgKz0gMQogICAgICAgICAgICBjb25zdCBzZWdtZW50ID0gbmV3IEJ5dGVCdWZmZXIoNDAwICsgdW5pdC5kYXRhLmJ5dGVMZW5ndGgsIGZhbHNlKQogICAgICAgICAgICBwdXRWaWRlb0ZyYW1lU2VnbWVudChzZWdtZW50LCAxLCB0aGlzLnNlcXVlbmNlTnVtYmVyLCB0aW1lc3RhbXBNaWNyb3NlY29uZHMsIGR1cmF0aW9uTWljcm9zZWNvbmRzLCBmYWxzZSwgY2h1bmspCiAgICAgICAgICAgIHNlZ21lbnQuZmxpcCgpCiAgICAgICAgICAgIHRoaXMuYnVmZmVycy5wdXNoKHNlZ21lbnQuZ2V0UmVtYWluaW5nQnVmZmVyKCkpCgogICAgICAgICAgICBjb25zb2xlLmRlYnVnKCJwdXNoZWQgdmlkZW8gZnJhbWUgc2VnbWVudCIpCgogICAgICAgIH0KICAgICAgICB0aGlzLnRyeUFwcGVuZERlY29kZVVuaXQoKQogICAgfQoKICAgIHByaXZhdGUgdHJ5QXBwZW5kRGVjb2RlVW5pdCgpIHsKICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICBpZiAodGhpcy5lcnJvcmVkKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKCF0aGlzLnNvdXJjZUJ1ZmZlcikgewogICAgICAgICAgICAgICAgLy8gV2UgYXJlIGN1cnJlbnRseSBjb25zdHJ1Y3RpbmcgYSBzb3VyY2UgYnVmZmVyCiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoaXMuc291cmNlQnVmZmVyLnVwZGF0aW5nKSB7CiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHRoaXMuYnVmZmVycy5sZW5ndGggPT0gMCkgewogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnN0IFt1bml0XSA9IHRoaXMuYnVmZmVycy5zcGxpY2UoMCwgMSkKCiAgICAgICAgICAgIHRoaXMuc291cmNlQnVmZmVyLmFwcGVuZEJ1ZmZlcih1bml0KQoKICAgICAgICAgICAgaWYgKERFQlVHX0ZJTEUpIHsKICAgICAgICAgICAgICAgIGlmICghdGhpcy5kZWJ1Z0J1ZmZlcikgewogICAgICAgICAgICAgICAgICAgIHRoaXMuZGVidWdCdWZmZXIgPSBuZXcgVWludDhBcnJheSgwKQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3Qgb2xkQnVmZmVyID0gdGhpcy5kZWJ1Z0J1ZmZlcgoKICAgICAgICAgICAgICAgIHRoaXMuZGVidWdCdWZmZXIgPSBuZXcgVWludDhBcnJheShvbGRCdWZmZXIubGVuZ3RoICsgdW5pdC5sZW5ndGgpCiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnQnVmZmVyLnNldChvbGRCdWZmZXIpCiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnQnVmZmVyLnNldCh1bml0LCBvbGRCdWZmZXIubGVuZ3RoKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHBvbGxSZXF1ZXN0SWRyKCk6IGJvb2xlYW4gewogICAgICAgIGxldCByZXF1ZXN0SWRyID0gZmFsc2UKCiAgICAgICAgaWYgKHRoaXMuZHJvcHBlZEZyYW1lcyA+IDYwKSB7CiAgICAgICAgICAgIHJlcXVlc3RJZHIgPSB0cnVlCgogICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBSZXF1ZXN0aW5nIGlkciBiZWNhdXNlIHRvbyBtYW55IGZyYW1lcyB3ZXJlIGRyb3BwZWRgKQogICAgICAgICAgICB0aGlzLmRyb3BwZWRGcmFtZXMgPSAwCiAgICAgICAgfQoKICAgICAgICBpZiAoInBvbGxSZXF1ZXN0SWRyIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5wb2xsUmVxdWVzdElkciA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIGlmICh0aGlzLmJhc2UucG9sbFJlcXVlc3RJZHIoLi4uYXJndW1lbnRzKSkgewogICAgICAgICAgICAgICAgcmVxdWVzdElkciA9IHRydWUKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJlcXVlc3RJZHIKICAgIH0KCiAgICBjbGVhbnVwKCkgewogICAgICAgIGlmICgiY2xlYW51cCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2UuY2xlYW51cCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIHRoaXMuYmFzZS5jbGVhbnVwKC4uLmFyZ3VtZW50cykKICAgICAgICB9CgogICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwodGhpcy51cmwpCiAgICB9CgogICAgZ2V0QmFzZSgpOiBQaXBlIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZQogICAgfQp9CgpmdW5jdGlvbiBwdXRWaWRlb0luaXRTZWdtZW50KAogICAgYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgdGltZXNjYWxlOiBudW1iZXIsCiAgICB0cmFja0lkOiBudW1iZXIsCiAgICB3aWR0aDogbnVtYmVyLAogICAgaGVpZ2h0OiBudW1iZXIsCiAgICBhdmNDOiBVaW50OEFycmF5CikgewogICAgLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL21zZS1ieXRlLXN0cmVhbS1mb3JtYXQtaXNvYm1mZi8jaXNvLWluaXQtc2VnbWVudHMKICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3EtZGV2L21vcS9ibG9iL2JkYmViNjE1ZTY5YmE2NDI2ZmE4ZmQ2N2FjYjUwMGNiMjAzYTliMTMvanMvaGFuZy9zcmMvY29udGFpbmVyL2NtYWYvZW5jb2RlLnRzI0wyMTYtTDQzOAoKICAgIC8vIC0tLS0gZnR5cCAtLS0tCiAgICBwdXRGVHlwZUJveCgKICAgICAgICBidWZmZXIsCiAgICAgICAgImlzb20iLAogICAgICAgIDB4MjAwLAogICAgICAgIFsiaXNvbSIsICJpc282IiwgImF2YzEiLCAibXA0MSJdCiAgICApCgogICAgY29uc3QgTUFUUklYID0gWwogICAgICAgIDB4MDAwMTAwMDAsIDAsIDAsCiAgICAgICAgMCwgMHgwMDAxMDAwMCwgMCwKICAgICAgICAwLCAwLCAweDQwMDAwMDAwCiAgICBdCgogICAgLy8gLS0tLSBtb292IC0tLS0KICAgIHB1dE1vb3ZCb3goYnVmZmVyLCAoKSA9PiB7CgogICAgICAgIC8vIC0tLS0gbXZoZCAtLS0tCiAgICAgICAgcHV0TXZoZEJveCgKICAgICAgICAgICAgYnVmZmVyLAogICAgICAgICAgICAwLCAgICAgICAgICAgICAgLy8gdmVyc2lvbgogICAgICAgICAgICAwLCAgICAgICAgICAgICAgLy8gY3JlYXRpb25fdGltZQogICAgICAgICAgICAwLCAgICAgICAgICAgICAgLy8gbW9kaWZpY2F0aW9uX3RpbWUKICAgICAgICAgICAgdGltZXNjYWxlLAogICAgICAgICAgICAwLCAgICAgICAgICAgICAgLy8gZHVyYXRpb24gKHVua25vd24gLyBmcmFnbWVudGVkKQogICAgICAgICAgICAweDAwMDEwMDAwLCAgICAgLy8gcmF0ZSA9IDEuMAogICAgICAgICAgICAweDAxMDAsICAgICAgICAgLy8gdm9sdW1lCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIFswLCAwXSwKICAgICAgICAgICAgTUFUUklYLAogICAgICAgICAgICBbMCwgMCwgMCwgMCwgMCwgMF0sCiAgICAgICAgICAgIHRyYWNrSWQgKyAxICAgICAvLyBuZXh0X3RyYWNrX0lECiAgICAgICAgKQoKICAgICAgICAvLyAtLS0tIHRyYWsgLS0tLQogICAgICAgIHB1dFRyYWtCb3goYnVmZmVyLCAoKSA9PiB7CgogICAgICAgICAgICAvLyAtLS0tIHRraGQgLS0tLQogICAgICAgICAgICBwdXRUa2hkQm94KAogICAgICAgICAgICAgICAgYnVmZmVyLAogICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgIC8vIHZlcnNpb24KICAgICAgICAgICAgICAgIDB4MDAwMDAzLCAvLyBUcmFjayBlbmFibGVkICsgaW4gbW92aWUKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgdHJhY2tJZCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgLy8gZHVyYXRpb24gPSB1bmtub3duCiAgICAgICAgICAgICAgICBbMCwgMF0sCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgTUFUUklYLAogICAgICAgICAgICAgICAgd2lkdGgsCiAgICAgICAgICAgICAgICBoZWlnaHQKICAgICAgICAgICAgKQoKICAgICAgICAgICAgLy8gLS0tLSBtZGlhIC0tLS0KICAgICAgICAgICAgcHV0TWRpYUJveChidWZmZXIsICgpID0+IHsKCiAgICAgICAgICAgICAgICAvLyAtLS0tIG1kaGQgLS0tLQogICAgICAgICAgICAgICAgcHV0TWRoZEJveCgKICAgICAgICAgICAgICAgICAgICBidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgdGltZXNjYWxlLAogICAgICAgICAgICAgICAgICAgIDAsCiAgICAgICAgICAgICAgICAgICAgZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgInVuZCIsCiAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgKQoKICAgICAgICAgICAgICAgIC8vIC0tLS0gaGRsciAtLS0tCiAgICAgICAgICAgICAgICBwdXRIZGxyQm94KAogICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwKICAgICAgICAgICAgICAgICAgICAidmlkZSIsCiAgICAgICAgICAgICAgICAgICAgWzAsIDAsIDBdLAogICAgICAgICAgICAgICAgICAgICJWaWRlb0hhbmRsZXIiCiAgICAgICAgICAgICAgICApCgogICAgICAgICAgICAgICAgLy8gLS0tLSBtaW5mIC0tLS0KICAgICAgICAgICAgICAgIHB1dE1pbmZCb3goYnVmZmVyLCAoKSA9PiB7CgogICAgICAgICAgICAgICAgICAgIC8vIC0tLS0gdm1oZCAtLS0tCiAgICAgICAgICAgICAgICAgICAgcHV0Vm1oZEJveCgKICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICBbMCwgMCwgMF0KICAgICAgICAgICAgICAgICAgICApCgogICAgICAgICAgICAgICAgICAgIC8vIC0tLS0gZGluZiAtLS0tCiAgICAgICAgICAgICAgICAgICAgcHV0RGluZkJveChidWZmZXIsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgcHV0RHJlZkJveChidWZmZXIsIDEsICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dFVybEJveChidWZmZXIpIC8vIHNlbGYtY29udGFpbmVkCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgfSkKCiAgICAgICAgICAgICAgICAgICAgLy8gLS0tLSBzdGJsIC0tLS0KICAgICAgICAgICAgICAgICAgICBwdXRTdGJsQm94KGJ1ZmZlciwgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAvLyAtLS0tIHN0c2QgLS0tLQogICAgICAgICAgICAgICAgICAgICAgICBwdXRTdHNkQm94KGJ1ZmZlciwgMSwgKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0QXZjMUJveCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzAsIDAsIDAsIDAsIDAsIDBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsICAgICAgICAgIC8vIGRhdGFfcmVmZXJlbmNlX2luZGV4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFswLCAwLCAwXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ4MDAwMCwgLy8gaG9yaXpyZXNvbHV0aW9uICg3MiBkcGkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDQ4MDAwMCwgLy8gdmVydHJlc29sdXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEFycmF5KDMyKS5maWxsKDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0QXZjQ0JveChidWZmZXIsIGF2Y0MpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICB9KQoKICAgICAgICAgICAgICAgICAgICAgICAgLy8gLS0tLSBlbXB0eSB0YWJsZXMgKGZyYWdtZW50ZWQgTVA0KSAtLS0tCiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFN0dHNCb3goYnVmZmVyLCBbXSkKICAgICAgICAgICAgICAgICAgICAgICAgcHV0U3RzY0JveChidWZmZXIsIFtdKQogICAgICAgICAgICAgICAgICAgICAgICBwdXRTdHN6Qm94KGJ1ZmZlciwgMCwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgcHV0U3RjbyhidWZmZXIsIFtdKQogICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICB9KQogICAgICAgIH0pCgogICAgICAgIHB1dE12ZXhCb3goYnVmZmVyLCAoKSA9PiB7CiAgICAgICAgICAgIHB1dFRyZXhCb3goYnVmZmVyLAogICAgICAgICAgICAgICAgdHJhY2tJZCwKICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAwLAogICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgIDAKICAgICAgICAgICAgKQogICAgICAgIH0pCiAgICB9KQp9CgoKZnVuY3Rpb24gcHV0VmlkZW9GcmFtZVNlZ21lbnQoCiAgICBidWZmZXI6IEJ5dGVCdWZmZXIsCiAgICB0cmFja0lkOiBudW1iZXIsCiAgICBzZXF1ZW5jZU51bWJlcjogbnVtYmVyLAogICAgYmFzZURlY29kZVRpbWU6IG51bWJlciwKICAgIGZyYW1lRHVyYXRpb246IG51bWJlciwKICAgIGlzS2V5ZnJhbWU6IGJvb2xlYW4sCiAgICBmcmFtZTogVWludDhBcnJheQopIHsKICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3EtZGV2L21vcS9ibG9iL2JkYmViNjE1ZTY5YmE2NDI2ZmE4ZmQ2N2FjYjUwMGNiMjAzYTliMTMvanMvaGFuZy9zcmMvY29udGFpbmVyL2NtYWYvZW5jb2RlLnRzI0w5NDItTDEwNjIKCiAgICBpZiAoaXNLZXlmcmFtZSAmJiBoMjY0TmFsVHlwZShmcmFtZVs0XSkgIT0gNSkgewogICAgICAgIHRocm93ICJ0cmllZCB0byBzdWJtaXQgbm9uIGlkciBhcyBhIGtleWZyYW1lIgogICAgfQoKICAgIGNvbnN0IG1vb2ZQb3NpdGlvbiA9IGJ1ZmZlci5nZXRQb3NpdGlvbigpCiAgICBsZXQgZGF0YU9mZnNldFBvc2l0aW9uID0gLTEKCiAgICBwdXRNb29mQm94KGJ1ZmZlciwgKCkgPT4gewogICAgICAgIHB1dE1maGRCb3goYnVmZmVyLCBzZXF1ZW5jZU51bWJlcikKCiAgICAgICAgcHV0VHJhZkJveChidWZmZXIsICgpID0+IHsKICAgICAgICAgICAgcHV0VGZoZEJveChidWZmZXIsIHRyYWNrSWQpCiAgICAgICAgICAgIHB1dFRmZHRCb3goYnVmZmVyLCAxLCBiYXNlRGVjb2RlVGltZSkKCiAgICAgICAgICAgIGNvbnN0IHRydW5Cb3ggPSBwdXRUcnVuQm94KAogICAgICAgICAgICAgICAgYnVmZmVyLAogICAgICAgICAgICAgICAgZnJhbWVEdXJhdGlvbiwKICAgICAgICAgICAgICAgIGZyYW1lLmxlbmd0aCwKICAgICAgICAgICAgICAgIGlzS2V5ZnJhbWUsCiAgICAgICAgICAgICAgICAvLyBTZXF1ZW5jZSBudW1iZXIgc2hvdWxkIHN0YXJ0IGF0IDEsIHNvIDEgPT0gZmlyc3Qgc2FtcGxlCiAgICAgICAgICAgICAgICBzZXF1ZW5jZU51bWJlciA9PSAxCiAgICAgICAgICAgICkKICAgICAgICAgICAgZGF0YU9mZnNldFBvc2l0aW9uID0gdHJ1bkJveC5kYXRhT2Zmc2V0UG9zaXRpb24KICAgICAgICB9KQogICAgfSkKCiAgICBjb25zdCBkYXRhU3RhcnQgPSBidWZmZXIuZ2V0UG9zaXRpb24oKQoKICAgIC8vIFBhdGNoIHRoZSB0cnVuT2Zmc2V0CiAgICAvLyA4ID0gbWRhdCBoZWFkZXIKICAgIGJ1ZmZlci5wdXRJMzIoZGF0YVN0YXJ0IC0gbW9vZlBvc2l0aW9uICsgOCwgZGF0YU9mZnNldFBvc2l0aW9uKQoKICAgIHB1dE1kYXRCb3goYnVmZmVyLCBmcmFtZSkKfQoKCgpmdW5jdGlvbiBwdXRNb292Qm94KGJ1ZmZlcjogQnl0ZUJ1ZmZlciwgd3JpdGVCb3hlczogKCkgPT4gdm9pZCkgewogICAgcHV0Qm94KGJ1ZmZlciwgIm1vb3YiLCB3cml0ZUJveGVzKQp9CgpmdW5jdGlvbiBwdXRUcmFrQm94KGJ1ZmZlcjogQnl0ZUJ1ZmZlciwgd3JpdGVCb3hlczogKCkgPT4gdm9pZCkgewogICAgcHV0Qm94KGJ1ZmZlciwgInRyYWsiLCB3cml0ZUJveGVzKQp9CgpmdW5jdGlvbiBwdXRUa2hkQm94KAogICAgYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgdmVyc2lvbjogbnVtYmVyLAogICAgZmxhZ3M6IG51bWJlciwKICAgIGNyZWF0aW9uX3RpbWU6IG51bWJlciwKICAgIG1vZGlmaWNhdGlvbl90aW1lOiBudW1iZXIsCiAgICB0cmFja19JRDogbnVtYmVyLAogICAgcmVzZXJ2ZWQxOiBudW1iZXIsCiAgICBkdXJhdGlvbjogbnVtYmVyLAogICAgcmVzZXJ2ZWQyOiBudW1iZXJbXSwKICAgIGxheWVyOiBudW1iZXIsCiAgICBhbHRlcm5hdGVfZ3JvdXA6IG51bWJlciwKICAgIHZvbHVtZTogbnVtYmVyLAogICAgcmVzZXJ2ZWQzOiBudW1iZXIsCiAgICBtYXRyaXg6IG51bWJlcltdLAogICAgd2lkdGg6IG51bWJlciwKICAgIGhlaWdodDogbnVtYmVyCikgewogICAgcHV0RnVsbEJveChidWZmZXIsICJ0a2hkIiwgdmVyc2lvbiwgZmxhZ3MsICgpID0+IHsKICAgICAgICBpZiAodmVyc2lvbiA9PT0gMSkgewogICAgICAgICAgICBidWZmZXIucHV0VTY0KGNyZWF0aW9uX3RpbWUpCiAgICAgICAgICAgIGJ1ZmZlci5wdXRVNjQobW9kaWZpY2F0aW9uX3RpbWUpCiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIodHJhY2tfSUQpCiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIocmVzZXJ2ZWQxKQogICAgICAgICAgICBidWZmZXIucHV0VTY0KGR1cmF0aW9uKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIoY3JlYXRpb25fdGltZSkKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMihtb2RpZmljYXRpb25fdGltZSkKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMih0cmFja19JRCkKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMihyZXNlcnZlZDEpCiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIoZHVyYXRpb24pCiAgICAgICAgfQoKICAgICAgICBpZiAocmVzZXJ2ZWQyLmxlbmd0aCAhPT0gMikgdGhyb3cgImludmFsaWQgcmVzZXJ2ZWQyIGxlbmd0aCIKICAgICAgICBidWZmZXIucHV0VTMyQXJyYXkobmV3IFVpbnQzMkFycmF5KHJlc2VydmVkMikpCgogICAgICAgIGJ1ZmZlci5wdXRVMTYobGF5ZXIpCiAgICAgICAgYnVmZmVyLnB1dFUxNihhbHRlcm5hdGVfZ3JvdXApCiAgICAgICAgYnVmZmVyLnB1dFUxNih2b2x1bWUpCiAgICAgICAgYnVmZmVyLnB1dFUxNihyZXNlcnZlZDMpCgogICAgICAgIGlmIChtYXRyaXgubGVuZ3RoICE9PSA5KSB0aHJvdyAiaW52YWxpZCBtYXRyaXggbGVuZ3RoIgogICAgICAgIGJ1ZmZlci5wdXRVMzJBcnJheShuZXcgVWludDMyQXJyYXkobWF0cml4KSkKCiAgICAgICAgYnVmZmVyLnB1dFUzMih3aWR0aCA8PCAxNikKICAgICAgICBidWZmZXIucHV0VTMyKGhlaWdodCA8PCAxNikKICAgIH0pCn0KCgpmdW5jdGlvbiBwdXRNZGlhQm94KGJ1ZmZlcjogQnl0ZUJ1ZmZlciwgd3JpdGVCb3hlczogKCkgPT4gdm9pZCkgewogICAgcHV0Qm94KGJ1ZmZlciwgIm1kaWEiLCB3cml0ZUJveGVzKQp9CgpmdW5jdGlvbiBwdXRNZGhkQm94KAogICAgYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgdmVyc2lvbjogbnVtYmVyLAogICAgY3JlYXRpb25fdGltZTogbnVtYmVyLAogICAgbW9kaWZpY2F0aW9uX3RpbWU6IG51bWJlciwKICAgIHRpbWVzY2FsZTogbnVtYmVyLAogICAgZHVyYXRpb246IG51bWJlciwKICAgIHBhZDogYm9vbGVhbiwKICAgIGxhbmd1YWdlOiBzdHJpbmcsCiAgICBwcmVfZGVmaW5lZDogbnVtYmVyCikgewogICAgcHV0RnVsbEJveChidWZmZXIsICJtZGhkIiwgdmVyc2lvbiwgMCwgKCkgPT4gewogICAgICAgIGlmICh2ZXJzaW9uID09PSAxKSB7CiAgICAgICAgICAgIGJ1ZmZlci5wdXRVNjQoY3JlYXRpb25fdGltZSkKICAgICAgICAgICAgYnVmZmVyLnB1dFU2NChtb2RpZmljYXRpb25fdGltZSkKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMih0aW1lc2NhbGUpCiAgICAgICAgICAgIGJ1ZmZlci5wdXRVNjQoZHVyYXRpb24pCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMihjcmVhdGlvbl90aW1lKQogICAgICAgICAgICBidWZmZXIucHV0VTMyKG1vZGlmaWNhdGlvbl90aW1lKQogICAgICAgICAgICBidWZmZXIucHV0VTMyKHRpbWVzY2FsZSkKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMihkdXJhdGlvbikKICAgICAgICB9CgogICAgICAgIGlmICghL15bYS16XXszfSQvLnRlc3QobGFuZ3VhZ2UpKSB7CiAgICAgICAgICAgIHRocm93ICJpbnZhbGlkIGxhbmd1YWdlIChtdXN0IGJlIDMgbG93ZXJjYXNlIElTTy02MzkgbGV0dGVycykiCiAgICAgICAgfQoKICAgICAgICBjb25zdCBsYW5ndWFnZUJpdHMgPQogICAgICAgICAgICAoKHBhZCA/IDEgOiAwKSA8PCAxNSkgfAogICAgICAgICAgICAoKGxhbmd1YWdlLmNoYXJDb2RlQXQoMCkgLSAweDYwKSA8PCAxMCkgfAogICAgICAgICAgICAoKGxhbmd1YWdlLmNoYXJDb2RlQXQoMSkgLSAweDYwKSA8PCA1KSB8CiAgICAgICAgICAgIChsYW5ndWFnZS5jaGFyQ29kZUF0KDIpIC0gMHg2MCkKCiAgICAgICAgYnVmZmVyLnB1dFUxNihsYW5ndWFnZUJpdHMpCiAgICAgICAgYnVmZmVyLnB1dFUxNihwcmVfZGVmaW5lZCkKICAgIH0pCn0KCgpmdW5jdGlvbiBwdXRIZGxyQm94KAogICAgYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgaGFuZGxlcl90eXBlOiBzdHJpbmcsCiAgICByZXNlcnZlZDogbnVtYmVyW10sCiAgICBuYW1lOiBzdHJpbmcKKSB7CiAgICBwdXRGdWxsQm94KGJ1ZmZlciwgImhkbHIiLCAwLCAwLCAoKSA9PiB7CiAgICAgICAgYnVmZmVyLnB1dFUzMigwKSAvLyBwcmVfZGVmaW5lZAoKICAgICAgICBpZiAoaGFuZGxlcl90eXBlLmxlbmd0aCAhPT0gNCkgewogICAgICAgICAgICB0aHJvdyAiaW52YWxpZCBoYW5kbGVyX3R5cGUgbGVuZ3RoIgogICAgICAgIH0KICAgICAgICBidWZmZXIucHV0VXRmOFJhdyhoYW5kbGVyX3R5cGUpCgogICAgICAgIGlmIChyZXNlcnZlZC5sZW5ndGggIT09IDMpIHsKICAgICAgICAgICAgdGhyb3cgImludmFsaWQgcmVzZXJ2ZWQgbGVuZ3RoIgogICAgICAgIH0KICAgICAgICBidWZmZXIucHV0VTMyQXJyYXkobmV3IFVpbnQzMkFycmF5KHJlc2VydmVkKSkKCiAgICAgICAgYnVmZmVyLnB1dFV0ZjhSYXcobmFtZSkKICAgICAgICBidWZmZXIucHV0VTgoMCkKICAgIH0pCn0KCgpmdW5jdGlvbiBwdXRNaW5mQm94KGJ1ZmZlcjogQnl0ZUJ1ZmZlciwgd3JpdGVCb3hlczogKCkgPT4gdm9pZCkgewogICAgcHV0Qm94KGJ1ZmZlciwgIm1pbmYiLCB3cml0ZUJveGVzKQp9CgpmdW5jdGlvbiBwdXRWbWhkQm94KAogICAgYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgZ3JhcGhpY3Ntb2RlOiBudW1iZXIsCiAgICBvcGNvbG9yOiBudW1iZXJbXQopIHsKICAgIHB1dEZ1bGxCb3goYnVmZmVyLCAidm1oZCIsIDAsIDEsICgpID0+IHsKICAgICAgICBidWZmZXIucHV0VTE2KGdyYXBoaWNzbW9kZSkKCiAgICAgICAgaWYgKG9wY29sb3IubGVuZ3RoICE9PSAzKSB0aHJvdyAiaW52YWxpZCBvcGNvbG9yIGxlbmd0aCIKICAgICAgICBidWZmZXIucHV0VTE2QXJyYXkobmV3IFVpbnQxNkFycmF5KG9wY29sb3IpKQogICAgfSkKfQoKCmZ1bmN0aW9uIHB1dERpbmZCb3goYnVmZmVyOiBCeXRlQnVmZmVyLCB3cml0ZUJveGVzOiAoKSA9PiB2b2lkKSB7CiAgICBwdXRCb3goYnVmZmVyLCAiZGluZiIsIHdyaXRlQm94ZXMpCn0KCmZ1bmN0aW9uIHB1dERyZWZCb3goCiAgICBidWZmZXI6IEJ5dGVCdWZmZXIsCiAgICBlbnRyeV9jb3VudDogbnVtYmVyLAogICAgd3JpdGVCb3hlczogKCkgPT4gdm9pZAopIHsKICAgIHB1dEZ1bGxCb3goYnVmZmVyLCAiZHJlZiIsIDAsIDAsICgpID0+IHsKICAgICAgICBidWZmZXIucHV0VTMyKGVudHJ5X2NvdW50KQogICAgICAgIHdyaXRlQm94ZXMoKQogICAgfSkKfQoKCi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb3EtZGV2L21vcS9ibG9iL2JkYmViNjE1ZTY5YmE2NDI2ZmE4ZmQ2N2FjYjUwMGNiMjAzYTliMTMvanMvaGFuZy9zcmMvY29udGFpbmVyL2NtYWYvZW5jb2RlLnRzI0wzMjYtTDMzMgpmdW5jdGlvbiBwdXRVcmxCb3goYnVmZmVyOiBCeXRlQnVmZmVyKSB7CiAgICAvLyBzZWxmLWNvbnRhaW5lZCByZWZlcmVuY2UKICAgIHB1dEZ1bGxCb3goYnVmZmVyLCAidXJsICIsIDAsIDEsICgpID0+IHsgfSkKfQoKZnVuY3Rpb24gcHV0U3RibEJveCgKICAgIGJ1ZmZlcjogQnl0ZUJ1ZmZlciwKICAgIHdyaXRlQm94ZXM6ICgpID0+IHZvaWQKKSB7CiAgICBwdXRCb3goYnVmZmVyLCAic3RibCIsIHdyaXRlQm94ZXMpCn0KCmZ1bmN0aW9uIHB1dFN0c2RCb3goCiAgICBidWZmZXI6IEJ5dGVCdWZmZXIsCiAgICBlbnRyeV9jb3VudDogbnVtYmVyLAogICAgd3JpdGVCb3hlczogKCkgPT4gdm9pZAopIHsKICAgIHB1dEZ1bGxCb3goYnVmZmVyLCAic3RzZCIsIDAsIDAsICgpID0+IHsKICAgICAgICBidWZmZXIucHV0VTMyKGVudHJ5X2NvdW50KQogICAgICAgIHdyaXRlQm94ZXMoKQogICAgfSkKfQoKCmZ1bmN0aW9uIHB1dEF2YzFCb3goYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgcmVzZXJ2ZWQ6IG51bWJlcltdLAogICAgZGF0YV9yZWZlcmVuY2VfaW5kZXg6IG51bWJlciwKICAgIHByZV9kZWZpbmVkOiBudW1iZXIsCiAgICByZXNlcnZlZDI6IG51bWJlciwKICAgIHByZV9kZWZpbmVkMjogbnVtYmVyW10sCiAgICB3aWR0aDogbnVtYmVyLAogICAgaGVpZ2h0OiBudW1iZXIsCiAgICBob3JpenJlc29sdXRpb246IG51bWJlciwKICAgIHZlcnRyZXNvbHV0aW9uOiBudW1iZXIsCiAgICByZXNlcnZlZDM6IG51bWJlciwKICAgIGZyYW1lX2NvdW50OiBudW1iZXIsCiAgICBjb21wcmVzc29ybmFtZTogbnVtYmVyW10sCiAgICBkZXB0aDogbnVtYmVyLAogICAgcHJlX2RlZmluZWQzOiBudW1iZXIsCiAgICB3cml0ZUJveGVzOiAoKSA9PiB2b2lkCikgewogICAgcHV0Qm94KGJ1ZmZlciwgImF2YzEiLCAoKSA9PiB7CiAgICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21vcS1kZXYvbW9xL2Jsb2IvYmRiZWI2MTVlNjliYTY0MjZmYThmZDY3YWNiNTAwY2IyMDNhOWIxMy9qcy9oYW5nL3NyYy9jb250YWluZXIvY21hZi9lbmNvZGUudHMjTDEzNy1MMjE0CgogICAgICAgIC8vIFNhbXBsZSBFbnRyeQogICAgICAgIGlmIChyZXNlcnZlZC5sZW5ndGggIT0gNikgewogICAgICAgICAgICB0aHJvdyAiaW52YWxpZCByZXNlcnZlZCBsZW5ndGgiCiAgICAgICAgfQogICAgICAgIGJ1ZmZlci5wdXRVOEFycmF5KG5ldyBVaW50OEFycmF5KHJlc2VydmVkKSkKCiAgICAgICAgYnVmZmVyLnB1dFUxNihkYXRhX3JlZmVyZW5jZV9pbmRleCkKCiAgICAgICAgLy8gVmlzdWFsIFNhbXBsZSBFbnRyeQogICAgICAgIGJ1ZmZlci5wdXRVMTYocHJlX2RlZmluZWQpCiAgICAgICAgYnVmZmVyLnB1dFUxNihyZXNlcnZlZDIpCgogICAgICAgIGlmIChwcmVfZGVmaW5lZDIubGVuZ3RoICE9IDMpIHsKICAgICAgICAgICAgdGhyb3cgImludmFsaWQgcHJlX2RlZmluZWQyIGxlbmd0aCIKICAgICAgICB9CiAgICAgICAgYnVmZmVyLnB1dFUzMkFycmF5KG5ldyBVaW50MzJBcnJheShwcmVfZGVmaW5lZDIpKQoKICAgICAgICBidWZmZXIucHV0VTE2KHdpZHRoKQogICAgICAgIGJ1ZmZlci5wdXRVMTYoaGVpZ2h0KQoKICAgICAgICBidWZmZXIucHV0VTMyKGhvcml6cmVzb2x1dGlvbikKICAgICAgICBidWZmZXIucHV0VTMyKHZlcnRyZXNvbHV0aW9uKQoKICAgICAgICBidWZmZXIucHV0VTMyKHJlc2VydmVkMykKCiAgICAgICAgYnVmZmVyLnB1dFUxNihmcmFtZV9jb3VudCkKCiAgICAgICAgaWYgKGNvbXByZXNzb3JuYW1lLmxlbmd0aCAhPSAzMikgewogICAgICAgICAgICB0aHJvdyAiaW52YWxpZCBjb21wcmVzc29ybmFtZSBsZW5ndGgiCiAgICAgICAgfQogICAgICAgIGJ1ZmZlci5wdXRVOEFycmF5KG5ldyBVaW50OEFycmF5KGNvbXByZXNzb3JuYW1lKSkKCiAgICAgICAgYnVmZmVyLnB1dFUxNihkZXB0aCkKCiAgICAgICAgYnVmZmVyLnB1dEkxNihwcmVfZGVmaW5lZDMpCgogICAgICAgIHdyaXRlQm94ZXMoKQogICAgfSkKfQoKZnVuY3Rpb24gcHV0QXZjQ0JveChidWZmZXI6IEJ5dGVCdWZmZXIsCiAgICBhdmNDOiBVaW50OEFycmF5CikgewogICAgcHV0Qm94KGJ1ZmZlciwgImF2Y0MiLCAoKSA9PiB7CiAgICAgICAgYnVmZmVyLnB1dFU4QXJyYXkoYXZjQykKICAgIH0pCn0KCnR5cGUgU3R0c0VudHJ5ID0gewogICAgc2FtcGxlX2NvdW50OiBudW1iZXIsCiAgICBzYW1wbGVfZGVsdGE6IG51bWJlcgp9CgpmdW5jdGlvbiBwdXRTdHRzQm94KGJ1ZmZlcjogQnl0ZUJ1ZmZlciwgZW50cmllczogU3R0c0VudHJ5W10pIHsKICAgIHB1dEZ1bGxCb3goYnVmZmVyLCAic3R0cyIsIDAsIDAsICgpID0+IHsKICAgICAgICBidWZmZXIucHV0VTMyKGVudHJpZXMubGVuZ3RoKQogICAgICAgIGZvciAoY29uc3QgZSBvZiBlbnRyaWVzKSB7CiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIoZS5zYW1wbGVfY291bnQpCiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIoZS5zYW1wbGVfZGVsdGEpCiAgICAgICAgfQogICAgfSkKfQoKCnR5cGUgU3RzY0VudHJ5ID0gewogICAgZmlyc3RfY2h1bms6IG51bWJlciwKICAgIHNhbXBsZXNfcGVyX2NodW5rOiBudW1iZXIsCiAgICBzYW1wbGVfZGVzY3JpcHRpb25faW5kZXg6IG51bWJlciwKfQoKZnVuY3Rpb24gcHV0U3RzY0JveChidWZmZXI6IEJ5dGVCdWZmZXIsIGVudHJpZXM6IFN0c2NFbnRyeVtdKSB7CiAgICBwdXRGdWxsQm94KGJ1ZmZlciwgInN0c2MiLCAwLCAwLCAoKSA9PiB7CiAgICAgICAgYnVmZmVyLnB1dFUzMihlbnRyaWVzLmxlbmd0aCkKICAgICAgICBmb3IgKGNvbnN0IGUgb2YgZW50cmllcykgewogICAgICAgICAgICBidWZmZXIucHV0VTMyKGUuZmlyc3RfY2h1bmspCiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIoZS5zYW1wbGVzX3Blcl9jaHVuaykKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMihlLnNhbXBsZV9kZXNjcmlwdGlvbl9pbmRleCkKICAgICAgICB9CiAgICB9KQp9CgpmdW5jdGlvbiBwdXRTdHN6Qm94KAogICAgYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgc2FtcGxlX3NpemU6IG51bWJlciwKICAgIHNhbXBsZV9jb3VudDogbnVtYmVyCikgewogICAgcHV0RnVsbEJveChidWZmZXIsICJzdHN6IiwgMCwgMCwgKCkgPT4gewogICAgICAgIGJ1ZmZlci5wdXRVMzIoc2FtcGxlX3NpemUpCiAgICAgICAgYnVmZmVyLnB1dFUzMihzYW1wbGVfY291bnQpCiAgICB9KQp9CgoKZnVuY3Rpb24gcHV0U3RjbyhidWZmZXI6IEJ5dGVCdWZmZXIsIGNodW5rX29mZnNldHM6IG51bWJlcltdKSB7CiAgICBwdXRGdWxsQm94KGJ1ZmZlciwgInN0Y28iLCAwLCAwLCAoKSA9PiB7CiAgICAgICAgYnVmZmVyLnB1dFUzMihjaHVua19vZmZzZXRzLmxlbmd0aCkKICAgICAgICBmb3IgKGNvbnN0IG9mZnNldCBvZiBjaHVua19vZmZzZXRzKSB7CiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIob2Zmc2V0KQogICAgICAgIH0KICAgIH0pCn0KCmZ1bmN0aW9uIHB1dE12aGRCb3goCiAgICBidWZmZXI6IEJ5dGVCdWZmZXIsCiAgICB2ZXJzaW9uOiBudW1iZXIsCiAgICBjcmVhdGlvbl90aW1lOiBudW1iZXIsCiAgICBtb2RpZmljYXRpb25fdGltZTogbnVtYmVyLAogICAgdGltZXNjYWxlOiBudW1iZXIsCiAgICBkdXJhdGlvbjogbnVtYmVyLAogICAgcmF0ZTogbnVtYmVyLAogICAgdm9sdW1lOiBudW1iZXIsCiAgICByZXNlcnZlZDE6IG51bWJlciwKICAgIHJlc2VydmVkMjogbnVtYmVyW10sCiAgICBtYXRyaXg6IG51bWJlcltdLAogICAgcHJlX2RlZmluZWQ6IG51bWJlcltdLAogICAgbmV4dF90cmFja19JRDogbnVtYmVyCikgewogICAgcHV0RnVsbEJveChidWZmZXIsICJtdmhkIiwgdmVyc2lvbiwgMCwgKCkgPT4gewogICAgICAgIGlmICh2ZXJzaW9uID09PSAwKSB7CiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIoY3JlYXRpb25fdGltZSkKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMihtb2RpZmljYXRpb25fdGltZSkKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMih0aW1lc2NhbGUpCiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIoZHVyYXRpb24pCiAgICAgICAgfSBlbHNlIGlmICh2ZXJzaW9uID09PSAxKSB7CiAgICAgICAgICAgIGJ1ZmZlci5wdXRVNjQoY3JlYXRpb25fdGltZSkKICAgICAgICAgICAgYnVmZmVyLnB1dFU2NChtb2RpZmljYXRpb25fdGltZSkKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMih0aW1lc2NhbGUpCiAgICAgICAgICAgIGJ1ZmZlci5wdXRVNjQoZHVyYXRpb24pCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhyb3cgYGludmFsaWQgbXZoZCB2ZXJzaW9uICR7dmVyc2lvbn1gCiAgICAgICAgfQoKICAgICAgICBidWZmZXIucHV0STMyKHJhdGUpCiAgICAgICAgYnVmZmVyLnB1dEkxNih2b2x1bWUpCiAgICAgICAgYnVmZmVyLnB1dEkxNihyZXNlcnZlZDEpCgogICAgICAgIGlmIChyZXNlcnZlZDIubGVuZ3RoICE9IDIpIHRocm93ICJpbnZhbGlkIHJlc2VydmVkMiBsZW5ndGgiCiAgICAgICAgYnVmZmVyLnB1dFUzMkFycmF5KG5ldyBVaW50MzJBcnJheShyZXNlcnZlZDIpKQoKICAgICAgICBpZiAobWF0cml4Lmxlbmd0aCAhPT0gOSkgdGhyb3cgImludmFsaWQgbWF0cml4IGxlbmd0aCIKICAgICAgICBidWZmZXIucHV0VTMyQXJyYXkobmV3IFVpbnQzMkFycmF5KG1hdHJpeCkpCgogICAgICAgIGlmIChwcmVfZGVmaW5lZC5sZW5ndGggIT09IDYpIHRocm93ICJpbnZhbGlkIHByZV9kZWZpbmVkIGxlbmd0aCIKICAgICAgICBidWZmZXIucHV0VTMyQXJyYXkobmV3IFVpbnQzMkFycmF5KHByZV9kZWZpbmVkKSkKCiAgICAgICAgYnVmZmVyLnB1dFUzMihuZXh0X3RyYWNrX0lEKQogICAgfSkKfQoKZnVuY3Rpb24gcHV0TXZleEJveChidWZmZXI6IEJ5dGVCdWZmZXIsIHdyaXRlQm94ZXM6ICgpID0+IHZvaWQpIHsKICAgIHB1dEJveChidWZmZXIsICJtdmV4Iiwgd3JpdGVCb3hlcykKfQoKZnVuY3Rpb24gcHV0VHJleEJveCgKICAgIGJ1ZmZlcjogQnl0ZUJ1ZmZlciwKICAgIHRyYWNrX0lEOiBudW1iZXIsCiAgICBkZWZhdWx0X3NhbXBsZV9kZXNjcmlwdGlvbl9pbmRleDogbnVtYmVyLAogICAgZGVmYXVsdF9zYW1wbGVfZHVyYXRpb246IG51bWJlciwKICAgIGRlZmF1bHRfc2FtcGxlX3NpemU6IG51bWJlciwKICAgIGRlZmF1bHRfc2FtcGxlX2ZsYWdzOiBudW1iZXIKKSB7CiAgICBwdXRGdWxsQm94KGJ1ZmZlciwgInRyZXgiLCAwLCAwLCAoKSA9PiB7CiAgICAgICAgYnVmZmVyLnB1dFUzMih0cmFja19JRCkKICAgICAgICBidWZmZXIucHV0VTMyKGRlZmF1bHRfc2FtcGxlX2Rlc2NyaXB0aW9uX2luZGV4KQogICAgICAgIGJ1ZmZlci5wdXRVMzIoZGVmYXVsdF9zYW1wbGVfZHVyYXRpb24pCiAgICAgICAgYnVmZmVyLnB1dFUzMihkZWZhdWx0X3NhbXBsZV9zaXplKQogICAgICAgIGJ1ZmZlci5wdXRVMzIoZGVmYXVsdF9zYW1wbGVfZmxhZ3MpCiAgICB9KQp9CgoKZnVuY3Rpb24gcHV0RlR5cGVCb3goYnVmZmVyOiBCeXRlQnVmZmVyLCBtYWpvcl9icmFuZDogc3RyaW5nLCBtaW5vcl92ZXJzaW9uOiBudW1iZXIsIGNvbXBhdGlibGVfYnJhbmRzOiBzdHJpbmdbXSkgewogICAgcHV0Qm94KGJ1ZmZlciwgImZ0eXAiLCAoKSA9PiB7CiAgICAgICAgYnVmZmVyLnB1dFV0ZjhSYXcobWFqb3JfYnJhbmQpCiAgICAgICAgYnVmZmVyLnB1dFUzMihtaW5vcl92ZXJzaW9uKQoKICAgICAgICBmb3IgKGNvbnN0IGJyYW5kIG9mIGNvbXBhdGlibGVfYnJhbmRzKSB7CiAgICAgICAgICAgIGlmIChicmFuZC5sZW5ndGggIT0gNCkgewogICAgICAgICAgICAgICAgdGhyb3cgImludmFsaWQgYnJhbmQgbGVuZ3RoISIKICAgICAgICAgICAgfQogICAgICAgICAgICBidWZmZXIucHV0VXRmOFJhdyhicmFuZCkKICAgICAgICB9CiAgICB9KQp9CgpmdW5jdGlvbiBwdXRNZmhkQm94KAogICAgYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgc2VxdWVuY2VOdW1iZXI6IG51bWJlcgopIHsKICAgIHB1dEZ1bGxCb3goYnVmZmVyLCAibWZoZCIsIDAsIDAsICgpID0+IHsKICAgICAgICBidWZmZXIucHV0VTMyKHNlcXVlbmNlTnVtYmVyKQogICAgfSkKfQoKZnVuY3Rpb24gcHV0VGZoZEJveCgKICAgIGJ1ZmZlcjogQnl0ZUJ1ZmZlciwKICAgIHRyYWNrSWQ6IG51bWJlcgopIHsKICAgIC8vIEZsYWdzOiBkZWZhdWx0LWJhc2UtaXMtbW9vZiAoMHgwMjAwMDApCiAgICBwdXRGdWxsQm94KGJ1ZmZlciwgInRmaGQiLCAwLCAweDAyMDAwMCwgKCkgPT4gewogICAgICAgIGJ1ZmZlci5wdXRVMzIodHJhY2tJZCkKICAgIH0pCn0KCmZ1bmN0aW9uIHB1dFRmZHRCb3goCiAgICBidWZmZXI6IEJ5dGVCdWZmZXIsCiAgICB2ZXJzaW9uOiBudW1iZXIsCiAgICBiYXNlRGVjb2RlVGltZTogbnVtYmVyCikgewogICAgcHV0RnVsbEJveChidWZmZXIsICJ0ZmR0IiwgdmVyc2lvbiwgMCwgKCkgPT4gewogICAgICAgIGlmICh2ZXJzaW9uID09IDEpIHsKICAgICAgICAgICAgYnVmZmVyLnB1dFU2NChiYXNlRGVjb2RlVGltZSkKICAgICAgICB9IGVsc2UgaWYgKHZlcnNpb24gPT0gMCkgewogICAgICAgICAgICBidWZmZXIucHV0VTMyKGJhc2VEZWNvZGVUaW1lKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRocm93IGBpbnZhbGlkIHZlcnNpb24gZm9yIHRmZHQgJHt2ZXJzaW9ufWAKICAgICAgICB9CiAgICB9KQp9Cgp0eXBlIFRydW5Cb3hJbmZvID0gewogICAgZGF0YU9mZnNldFBvc2l0aW9uOiBudW1iZXIKfQoKZnVuY3Rpb24gcHV0VHJ1bkJveCgKICAgIGJ1ZmZlcjogQnl0ZUJ1ZmZlciwKICAgIGZyYW1lRHVyYXRpb246IG51bWJlciwKICAgIGZyYW1lU2l6ZTogbnVtYmVyLAogICAgaXNLZXlmcmFtZTogYm9vbGVhbiwKICAgIGlzRmlyc3RTYW1wbGU6IGJvb2xlYW4KKTogVHJ1bkJveEluZm8gewogICAgY29uc3QgaW5mbyA9IHsKICAgICAgICBkYXRhT2Zmc2V0UG9zaXRpb246IDAsCiAgICB9CgogICAgbGV0IHRydW5GbGFncyA9CiAgICAgICAgMHgwMDAwMDEgfCAvLyBkYXRhLW9mZnNldC1wcmVzZW50CiAgICAgICAgMHgwMDAxMDAgfCAvLyBzYW1wbGUtZHVyYXRpb24tcHJlc2VudAogICAgICAgIDB4MDAwMjAwICAgLy8gc2FtcGxlLXNpemUtcHJlc2VudAoKICAgIGlmIChpc0ZpcnN0U2FtcGxlKSB7CiAgICAgICAgdHJ1bkZsYWdzIHw9IDB4MDAwMDA0OyAvLyBmaXJzdC1zYW1wbGUtZmxhZ3MKICAgIH0gZWxzZSB7CiAgICAgICAgdHJ1bkZsYWdzIHw9IDB4MDAwNDAwOyAvLyBzYW1wbGUtZmxhZ3MKICAgIH0KCiAgICBjb25zdCBzYW1wbGVGbGFncyA9IGlzS2V5ZnJhbWUgPyAweDAyMDAwMDAwIDogMHgwMTAxMDAwMDsKCiAgICBwdXRGdWxsQm94KGJ1ZmZlciwgInRydW4iLCAwLCB0cnVuRmxhZ3MsICgpID0+IHsKICAgICAgICBidWZmZXIucHV0VTMyKDEpICAgICAgLy8gc2FtcGxlX2NvdW50CgogICAgICAgIGluZm8uZGF0YU9mZnNldFBvc2l0aW9uID0gYnVmZmVyLmdldFBvc2l0aW9uKCkKICAgICAgICBidWZmZXIucHV0STMyKDApICAgICAgLy8gZGF0YV9vZmZzZXQKCiAgICAgICAgaWYgKGlzRmlyc3RTYW1wbGUpIHsKICAgICAgICAgICAgYnVmZmVyLnB1dFUzMihzYW1wbGVGbGFncyk7CiAgICAgICAgfQoKICAgICAgICBidWZmZXIucHV0VTMyKGZyYW1lRHVyYXRpb24pOwogICAgICAgIGJ1ZmZlci5wdXRVMzIoZnJhbWVTaXplKTsKCiAgICAgICAgaWYgKCFpc0ZpcnN0U2FtcGxlKSB7CiAgICAgICAgICAgIGJ1ZmZlci5wdXRVMzIoc2FtcGxlRmxhZ3MpOwogICAgICAgIH0KICAgIH0pCgogICAgcmV0dXJuIGluZm8KfQoKZnVuY3Rpb24gcHV0VHJhZkJveCgKICAgIGJ1ZmZlcjogQnl0ZUJ1ZmZlciwKICAgIHdyaXRlQm94ZXM6ICgpID0+IHZvaWQKKTogbnVtYmVyIHsKCiAgICBsZXQgdHJ1bkRhdGFPZmZzZXRQb3NpdGlvbiA9IDAKCiAgICBwdXRCb3goYnVmZmVyLCAidHJhZiIsIHdyaXRlQm94ZXMpCgogICAgcmV0dXJuIHRydW5EYXRhT2Zmc2V0UG9zaXRpb24KfQoKZnVuY3Rpb24gcHV0TW9vZkJveCgKICAgIGJ1ZmZlcjogQnl0ZUJ1ZmZlciwKICAgIHdyaXRlQm94ZXM6ICgpID0+IHZvaWQKKTogbnVtYmVyIHsKICAgIGxldCB0cnVuRGF0YU9mZnNldFBvc2l0aW9uID0gMAoKICAgIHB1dEJveChidWZmZXIsICJtb29mIiwgd3JpdGVCb3hlcykKCiAgICByZXR1cm4gdHJ1bkRhdGFPZmZzZXRQb3NpdGlvbgp9CgpmdW5jdGlvbiBwdXRNZGF0Qm94KAogICAgYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgZnJhbWU6IFVpbnQ4QXJyYXkKKSB7CiAgICBwdXRCb3goYnVmZmVyLCAibWRhdCIsICgpID0+IHsKICAgICAgICBidWZmZXIucHV0VThBcnJheShmcmFtZSkKICAgIH0pCn0KCgpmdW5jdGlvbiBwdXRGdWxsQm94KAogICAgYnVmZmVyOiBCeXRlQnVmZmVyLAogICAgdHlwZTogc3RyaW5nLAogICAgdmVyc2lvbjogbnVtYmVyLAogICAgZmxhZ3M6IG51bWJlciwKICAgIHdyaXRlOiAoKSA9PiB2b2lkCikgewogICAgaWYgKHZlcnNpb24gPCAwIHx8IHZlcnNpb24gPiAweGZmKSB7CiAgICAgICAgdGhyb3cgIkZ1bGxCb3ggdmVyc2lvbiBtdXN0IGJlIDAtMjU1IgogICAgfQogICAgaWYgKGZsYWdzIDwgMCB8fCBmbGFncyA+IDB4ZmZmZmZmKSB7CiAgICAgICAgdGhyb3cgIkZ1bGxCb3ggZmxhZ3MgbXVzdCBiZSAwLTB4RkZGRkZGIgogICAgfQoKICAgIHB1dEJveChidWZmZXIsIHR5cGUsICgpID0+IHsKICAgICAgICBidWZmZXIucHV0VTgodmVyc2lvbikKICAgICAgICBidWZmZXIucHV0VTgoKGZsYWdzID4+IDE2KSAmIDB4ZmYpCiAgICAgICAgYnVmZmVyLnB1dFU4KChmbGFncyA+PiA4KSAmIDB4ZmYpCiAgICAgICAgYnVmZmVyLnB1dFU4KGZsYWdzICYgMHhmZikKCiAgICAgICAgd3JpdGUoKQogICAgfSkKfQoKCmZ1bmN0aW9uIHB1dEJveChidWZmZXI6IEJ5dGVCdWZmZXIsIHR5cGU6IHN0cmluZywgd3JpdGU6ICgpID0+IHZvaWQpIHsKICAgIGNvbnN0IHBheWxvYWRMZW5Qb3NpdGlvbiA9IGJ1ZmZlci5nZXRQb3NpdGlvbigpCgogICAgYnVmZmVyLnB1dFUzMigwKQoKICAgIGlmICh0eXBlLmxlbmd0aCAhPSA0KSB7CiAgICAgICAgdGhyb3cgImludmFsaWQgYm94IHR5cGUgbGVuZ3RoISIKICAgIH0KICAgIGJ1ZmZlci5wdXRVdGY4UmF3KHR5cGUpCgogICAgd3JpdGUoKQoKICAgIGJ1ZmZlci5wdXRVMzIoYnVmZmVyLmdldFBvc2l0aW9uKCkgLSBwYXlsb2FkTGVuUG9zaXRpb24sIHBheWxvYWRMZW5Qb3NpdGlvbikKfQ=="},{"path":"web/stream/video/media_stream_track_generator_pipe.ts","sha256":"8babfcbb898f12682e0d63c191ee39eeebbc312c37c1614d2bae4b7889a21577","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IGFsbFZpZGVvQ29kZWNzIH0gZnJvbSAiLi4vdmlkZW8uanMiOwppbXBvcnQgeyBGcmFtZVZpZGVvUmVuZGVyZXIsIFRyYWNrVmlkZW9SZW5kZXJlciB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGNsYXNzIFZpZGVvTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvclBpcGUgaW1wbGVtZW50cyBGcmFtZVZpZGVvUmVuZGVyZXIgewoKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZSA9ICJ2aWRlb3RyYWNrIgogICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAidmlkZW9mcmFtZSIKCiAgICBzdGF0aWMgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL01lZGlhU3RyZWFtVHJhY2tHZW5lcmF0b3IKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIk1lZGlhU3RyZWFtVHJhY2tHZW5lcmF0b3IiIGluIGdsb2JhbE9iamVjdCgpLAogICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYWxsVmlkZW9Db2RlY3MoKQogICAgICAgIH0KICAgIH0KCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZwoKICAgIHByaXZhdGUgYmFzZTogVHJhY2tWaWRlb1JlbmRlcmVyCgogICAgcHJpdmF0ZSB0cmFja0dlbmVyYXRvcjogTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvcgogICAgcHJpdmF0ZSB3cml0ZXI6IFdyaXRhYmxlU3RyZWFtRGVmYXVsdFdyaXRlcjxWaWRlb0ZyYW1lPgoKICAgIGNvbnN0cnVjdG9yKGJhc2U6IFRyYWNrVmlkZW9SZW5kZXJlcikgewogICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb25OYW1lID0gYHZpZGVvX21lZGlhX3N0cmVhbV90cmFja19nZW5lcmF0b3IgLT4gJHtiYXNlLmltcGxlbWVudGF0aW9uTmFtZX1gCiAgICAgICAgdGhpcy5iYXNlID0gYmFzZQoKICAgICAgICB0aGlzLnRyYWNrR2VuZXJhdG9yID0gbmV3IE1lZGlhU3RyZWFtVHJhY2tHZW5lcmF0b3IoeyBraW5kOiAidmlkZW8iIH0pCiAgICAgICAgdGhpcy53cml0ZXIgPSB0aGlzLnRyYWNrR2VuZXJhdG9yLndyaXRhYmxlLmdldFdyaXRlcigpCgogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKQogICAgfQoKICAgIHByaXZhdGUgaXNGaXJzdFNhbXBsZSA9IHRydWUKCiAgICBzdWJtaXRGcmFtZShmcmFtZTogVmlkZW9GcmFtZSk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLmlzRmlyc3RTYW1wbGUpIHsKICAgICAgICAgICAgdGhpcy5pc0ZpcnN0U2FtcGxlID0gZmFsc2UKCiAgICAgICAgICAgIHRoaXMuYmFzZS5zZXRUcmFjayh0aGlzLnRyYWNrR2VuZXJhdG9yKQogICAgICAgIH0KICAgICAgICB0aGlzLndyaXRlci53cml0ZShmcmFtZSkKICAgIH0KCiAgICBnZXRCYXNlKCk6IFBpcGUgfCBudWxsIHsKICAgICAgICByZXR1cm4gdGhpcy5iYXNlCiAgICB9Cn0="},{"path":"web/stream/video/media_stream_track_processor_pipe.ts","sha256":"f1c102c1418ded4b1c5058fea3dfdcca7fd582d72767648941c5caa05858d189","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IGFsbFZpZGVvQ29kZWNzIH0gZnJvbSAiLi4vdmlkZW8uanMiOwppbXBvcnQgeyBGcmFtZVZpZGVvUmVuZGVyZXIsIFRyYWNrVmlkZW9SZW5kZXJlciwgVmlkZW9SZW5kZXJlclNldHVwIH0gZnJvbSAiLi9pbmRleC5qcyI7CgpmdW5jdGlvbiB3YWl0KHRpbWU6IG51bWJlcik6IFByb21pc2U8dm9pZD4gewogICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7CiAgICAgICAgc2V0VGltZW91dChyZXNvbHZlLCB0aW1lKQogICAgfSkKfQoKZXhwb3J0IGNsYXNzIFZpZGVvTWVkaWFTdHJlYW1UcmFja1Byb2Nlc3NvclBpcGUgaW1wbGVtZW50cyBUcmFja1ZpZGVvUmVuZGVyZXIgewoKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZSA9ICJ2aWRlb2ZyYW1lIgogICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAidmlkZW90cmFjayIKCiAgICBzdGF0aWMgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL01lZGlhU3RyZWFtVHJhY2tQcm9jZXNzb3IKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIk1lZGlhU3RyZWFtVHJhY2tQcm9jZXNzb3IiIGluIGdsb2JhbE9iamVjdCgpLAogICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYWxsVmlkZW9Db2RlY3MoKQogICAgICAgIH0KICAgIH0KCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZwoKICAgIHByaXZhdGUgcnVubmluZzogYm9vbGVhbiA9IGZhbHNlCiAgICBwcml2YXRlIG5ld1Byb2Nlc3NvcjogYm9vbGVhbiA9IGZhbHNlCiAgICBwcml2YXRlIHRyYWNrUHJvY2Vzc29yOiBNZWRpYVN0cmVhbVRyYWNrUHJvY2Vzc29yIHwgbnVsbCA9IG51bGwKCiAgICBwcml2YXRlIGJhc2U6IEZyYW1lVmlkZW9SZW5kZXJlcgoKICAgIGNvbnN0cnVjdG9yKGJhc2U6IEZyYW1lVmlkZW9SZW5kZXJlcikgewogICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb25OYW1lID0gYG1lZGlhX3N0cmVhbV90cmFja19wcm9jZXNzb3IgLT4gJHtiYXNlLmltcGxlbWVudGF0aW9uTmFtZX1gCiAgICAgICAgdGhpcy5iYXNlID0gYmFzZQoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBzZXRUcmFjayh0cmFjazogTWVkaWFTdHJlYW1UcmFjayk6IHZvaWQgewogICAgICAgIHRoaXMudHJhY2tQcm9jZXNzb3IgPSBuZXcgTWVkaWFTdHJlYW1UcmFja1Byb2Nlc3Nvcih7IHRyYWNrIH0pCiAgICAgICAgdGhpcy5uZXdQcm9jZXNzb3IgPSB0cnVlCiAgICB9CgogICAgcHJpdmF0ZSBhc3luYyByZWFkVHJhY2soKSB7CiAgICAgICAgbGV0IHJlYWRlcjogUmVhZGFibGVTdHJlYW1EZWZhdWx0UmVhZGVyPFZpZGVvRnJhbWU+IHwgbnVsbCA9IG51bGwKCiAgICAgICAgd2hpbGUgKHRoaXMucnVubmluZykgewogICAgICAgICAgICBpZiAoIXJlYWRlciB8fCB0aGlzLm5ld1Byb2Nlc3NvcikgewogICAgICAgICAgICAgICAgdGhpcy5uZXdQcm9jZXNzb3IgPSBmYWxzZQoKICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyYWNrUHJvY2Vzc29yPy5yZWFkYWJsZS5sb2NrZWQpIHsKICAgICAgICAgICAgICAgICAgICAvLyBTaG91bGRuJ3QgaGFwcGVuCiAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkNhbnZhcyB2aWRlbyB0cmFjayBwcm9jZXNzb3IgaXMgbG9ja2VkIgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNvbnN0IG5ld1JlYWRlciA9IHRoaXMudHJhY2tQcm9jZXNzb3I/LnJlYWRhYmxlLmdldFJlYWRlcigpCiAgICAgICAgICAgICAgICBpZiAobmV3UmVhZGVyKSB7CiAgICAgICAgICAgICAgICAgICAgcmVhZGVyID0gbmV3UmVhZGVyCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBhd2FpdCB3YWl0KDEwMCkKICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFRPRE86IGJ5b2I/CiAgICAgICAgICAgIGNvbnN0IHsgZG9uZSwgdmFsdWUgfSA9IGF3YWl0IHJlYWRlci5yZWFkKCkKICAgICAgICAgICAgaWYgKGRvbmUpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIlRyYWNrIFByb2Nlc3NvciBpcyBkb25lISIpCiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy5iYXNlLnN1Ym1pdEZyYW1lKHZhbHVlKQogICAgICAgIH0KICAgIH0KCiAgICBzZXR1cChzZXR1cDogVmlkZW9SZW5kZXJlclNldHVwKSB7CiAgICAgICAgdGhpcy5ydW5uaW5nID0gdHJ1ZQogICAgICAgIHRoaXMucmVhZFRyYWNrKCkKCiAgICAgICAgaWYgKCJzZXR1cCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2Uuc2V0dXAgPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgICByZXR1cm4gdGhpcy5iYXNlLnNldHVwKHNldHVwKQogICAgICAgIH0KICAgIH0KICAgIGNsZWFudXAoKSB7CiAgICAgICAgdGhpcy5ydW5uaW5nID0gZmFsc2UKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAodGhpcy50cmFja1Byb2Nlc3NvcikgewogICAgICAgICAgICAgICAgdGhpcy50cmFja1Byb2Nlc3Nvci5yZWFkYWJsZS5jYW5jZWwoKQogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoZSkgewogICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpCiAgICAgICAgfQogICAgICAgIHRoaXMudHJhY2tQcm9jZXNzb3IgPSBudWxsCgogICAgICAgIGlmICgiY2xlYW51cCIgaW4gdGhpcy5iYXNlICYmIHR5cGVvZiB0aGlzLmJhc2UuY2xlYW51cCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhc2UuY2xlYW51cCguLi5hcmd1bWVudHMpCiAgICAgICAgfQogICAgfQoKICAgIGdldEJhc2UoKTogUGlwZSB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLmJhc2UKICAgIH0KfQ=="},{"path":"web/stream/video/offscreen_canvas.ts","sha256":"195a58fad943f82678915f1146d74555548771432165280223d6438475cbb7f4","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IFdvcmtlclJlY2VpdmVyIH0gZnJvbSAiLi4vcGlwZWxpbmUvd29ya2VyX3BpcGUuanMiOwppbXBvcnQgeyBXb3JrZXJNZXNzYWdlIH0gZnJvbSAiLi4vcGlwZWxpbmUvd29ya2VyX3R5cGVzLmpzIjsKaW1wb3J0IHsgQmFzZUNhbnZhc1ZpZGVvUmVuZGVyZXIgfSBmcm9tICIuL2NhbnZhcy5qcyI7CmltcG9ydCB7IFZpZGVvUmVuZGVyZXJTZXR1cCB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGNsYXNzIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmVyIGV4dGVuZHMgQmFzZUNhbnZhc1ZpZGVvUmVuZGVyZXIgaW1wbGVtZW50cyBXb3JrZXJSZWNlaXZlciB7CgogICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIGVudmlyb25tZW50U3VwcG9ydGVkOiAiSFRNTENhbnZhc0VsZW1lbnQiIGluIGdsb2JhbE9iamVjdCgpICYmICJ0cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbiIgaW4gSFRNTENhbnZhc0VsZW1lbnQucHJvdG90eXBlCiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gIndvcmtlcm91dHB1dCIKCiAgICBwcml2YXRlIG1haW5DYW52YXMgPSBCYXNlQ2FudmFzVmlkZW9SZW5kZXJlci5jcmVhdGVNYWluQ2FudmFzKCkKCiAgICB0cmFuc2ZlcnJlZDogYm9vbGVhbiA9IGZhbHNlCiAgICBvZmZzY3JlZW46IE9mZnNjcmVlbkNhbnZhcyB8IG51bGwgPSBudWxsCgogICAgY29uc3RydWN0b3IoKSB7CiAgICAgICAgc3VwZXIoIm9mZnNjcmVlbl9jYW52YXMiLCB7CiAgICAgICAgICAgIC8vIFRoaXMgd29uJ3QgbWFrZSBhbnkgZGlmZmVyZW5jZSBiZWNhdXNlIHRoZSByZW5kZXJpbmcgaXMgZG9uZSBvZmZzY3JlZW4KICAgICAgICAgICAgLy8gZHJhd09uU3VibWl0OiB0cnVlCiAgICAgICAgfSkKCiAgICAgICAgdGhpcy5zZXRDYW52YXModGhpcy5tYWluQ2FudmFzLCB0cnVlKQoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBhc3luYyBzZXR1cChzZXR1cDogVmlkZW9SZW5kZXJlclNldHVwKTogUHJvbWlzZTx2b2lkPiB7CiAgICAgICAgYXdhaXQgc3VwZXIuc2V0dXAoc2V0dXApCiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHN1cGVyLm1vdW50KHBhcmVudCkKCiAgICAgICAgaWYgKCF0aGlzLm9mZnNjcmVlbiAmJiAhdGhpcy50cmFuc2ZlcnJlZCkgewogICAgICAgICAgICB0aGlzLm9mZnNjcmVlbiA9IHRoaXMubWFpbkNhbnZhcy50cmFuc2ZlckNvbnRyb2xUb09mZnNjcmVlbigpCgogICAgICAgICAgICAvLyBUaGUgdHJhbnNmZXIgaGFwcGVucyBpbiB0aGUgV29ya2VyUGlwZQogICAgICAgIH0KICAgIH0KCiAgICBvbldvcmtlck1lc3NhZ2UobWVzc2FnZTogV29ya2VyTWVzc2FnZSk6IHZvaWQgewogICAgICAgIGlmICgidmlkZW9TZXR1cCIgaW4gbWVzc2FnZSkgewogICAgICAgICAgICB0aGlzLnNldHVwKG1lc3NhZ2UudmlkZW9TZXR1cCkKICAgICAgICB9CiAgICB9Cgp9Cg=="},{"path":"web/stream/video/openh264_decoder_pipe.ts","sha256":"4051705067d90b170c25dc9262b881f5e22136c79a6ad6392b1c6021fd5bbe76","contentBase64":"aW1wb3J0IHsgT3BlbkgyNjREZWNvZGVyIH0gZnJvbSAiLi4vLi4vbGlib3BlbmgyNjQvaW5kZXguanMiOwppbXBvcnQgeyBMb2dnZXIgfSBmcm9tICIuLi9sb2cuanMiOwppbXBvcnQgeyBQaXBlLCBQaXBlSW5mbyB9IGZyb20gIi4uL3BpcGVsaW5lL2luZGV4LmpzIjsKaW1wb3J0IHsgYWRkUGlwZVBhc3N0aHJvdWdoIH0gZnJvbSAiLi4vcGlwZWxpbmUvcGlwZXMuanMiOwppbXBvcnQgeyBlbXB0eVZpZGVvQ29kZWNzIH0gZnJvbSAiLi4vdmlkZW8uanMiOwppbXBvcnQgeyBEYXRhVmlkZW9SZW5kZXJlciwgWXV2NDIwRnJhbWVWaWRlb1JlbmRlcmVyLCBWaWRlb0RlY29kZVVuaXQgfSBmcm9tICIuL2luZGV4LmpzIjsKCi8vLyBBIGZhbGxiYWNrIGZvciB0aGUgbm9ybWFsIFZpZGVvRGVjb2RlciB0aGF0IG9ubHkgd29ya3MgaW4gYSBzZWN1cmUgY29udGV4dApleHBvcnQgY2xhc3MgT3BlbkgyNjREZWNvZGVyUGlwZSBpbXBsZW1lbnRzIERhdGFWaWRlb1JlbmRlcmVyIHsKICAgIHN0YXRpYyBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+IHsKICAgICAgICBjb25zdCB2aWRlb0NvZGVjcyA9IGVtcHR5VmlkZW9Db2RlY3MoKQogICAgICAgIHZpZGVvQ29kZWNzLkgyNjQgPSB0cnVlCgogICAgICAgIGxldCBlbnZpcm9ubWVudFN1cHBvcnRlZCA9IGZhbHNlCiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgYXdhaXQgaW1wb3J0KCIuLi8uLi9saWJvcGVuaDI2NC9kZWNvZGVyLmpzIikKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQgPSB0cnVlCiAgICAgICAgfSBjYXRjaCAoZSkgeyB9CgogICAgICAgIC8vIG5vIGxpbmsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZCwKICAgICAgICAgICAgc3VwcG9ydGVkVmlkZW9Db2RlY3M6IHZpZGVvQ29kZWNzCiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZTogc3RyaW5nID0gInl1djQyMHZpZGVvZnJhbWUiCiAgICBzdGF0aWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gInZpZGVvZGF0YSIKCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZwoKICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgaXNSZWFkeSA9IGZhbHNlCiAgICBwcml2YXRlIG9uUmVhZHk6IFByb21pc2U8dm9pZD4KCiAgICBwcml2YXRlIGJhc2U6IFl1djQyMEZyYW1lVmlkZW9SZW5kZXJlcgogICAgcHJpdmF0ZSBkZWNvZGVyOiBPcGVuSDI2NERlY29kZXIgfCBudWxsID0gbnVsbAoKICAgIHByaXZhdGUgZXJyb3JlZCA9IGZhbHNlCgogICAgY29uc3RydWN0b3IoYmFzZTogWXV2NDIwRnJhbWVWaWRlb1JlbmRlcmVyLCBsb2dnZXI/OiBMb2dnZXIpIHsKICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/PyBudWxsCgogICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb25OYW1lID0gYG9wZW5oMjY0X2RlY29kZSAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAKICAgICAgICB0aGlzLmJhc2UgPSBiYXNlCgogICAgICAgIGNvbnN0IGNyZWF0ZU9wZW5IMjY0TW9kdWxlID0gYXN5bmMgKCkgPT4gewogICAgICAgICAgICBjb25zdCBtb2R1bGUgPSBhd2FpdCBpbXBvcnQoIi4uLy4uL2xpYm9wZW5oMjY0L2RlY29kZXIuanMiKQogICAgICAgICAgICByZXR1cm4gYXdhaXQgbW9kdWxlLmRlZmF1bHQoKQogICAgICAgIH0KCiAgICAgICAgdGhpcy5vblJlYWR5ID0gY3JlYXRlT3BlbkgyNjRNb2R1bGUoKS50aGVuKG1vZHVsZSA9PiB7CiAgICAgICAgICAgIHRoaXMuZGVjb2RlciA9IG5ldyBPcGVuSDI2NERlY29kZXIobW9kdWxlLCB7CiAgICAgICAgICAgICAgICBvbkZyYW1lOiB0aGlzLm9uRnJhbWUuYmluZCh0aGlzKQogICAgICAgICAgICB9KQogICAgICAgICAgICB0aGlzLmlzUmVhZHkgPSB0cnVlCiAgICAgICAgfSkKCiAgICAgICAgYWRkUGlwZVBhc3N0aHJvdWdoKHRoaXMpCiAgICB9CgogICAgYXN5bmMgc2V0dXAoKTogUHJvbWlzZTx2b2lkPiB7CiAgICAgICAgaWYgKCF0aGlzLmlzUmVhZHkpIHsKICAgICAgICAgICAgYXdhaXQgdGhpcy5vblJlYWR5CiAgICAgICAgfQoKICAgICAgICBpZiAoInNldHVwIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5zZXR1cCA9PSAiZnVuY3Rpb24iKSB7CiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJhc2Uuc2V0dXAoLi4uYXJndW1lbnRzKQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIGxhc3RUaW1lc3RhbXAgPSAwCiAgICBwcml2YXRlIGxhc3REdXJhdGlvbiA9IDAKCiAgICBzdWJtaXREZWNvZGVVbml0KHVuaXQ6IFZpZGVvRGVjb2RlVW5pdCk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLmVycm9yZWQpIHsKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICAvLyBUT0RPOiBhZGQgdGhpcyBpbnRvIHRoZSBkZWNvZGVyIGFwaQogICAgICAgIHRoaXMubGFzdFRpbWVzdGFtcCA9IHVuaXQudGltZXN0YW1wTWljcm9zZWNvbmRzCiAgICAgICAgdGhpcy5sYXN0RHVyYXRpb24gPSB1bml0LnRpbWVzdGFtcE1pY3Jvc2Vjb25kcwoKICAgICAgICB0cnkgewogICAgICAgICAgICB0aGlzLmRlY29kZXI/LmRlY29kZShuZXcgVWludDhBcnJheSh1bml0LmRhdGEpKQogICAgICAgIH0gY2F0Y2ggKGU6IGFueSkgewogICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpCiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgRXJyb3Igd2hpbHN0IGRlY29kaW5nIGZyYW1lIHVzaW5nIGgyNjQ6ICR7InRvU3RyaW5nIiBpbiBlICYmIHR5cGVvZiBlLnRvU3RyaW5nID09ICJmdW5jdGlvbiIgPyBlLnRvU3RyaW5nKCkgOiBlfWAsIHsgdHlwZTogImZhdGFsRGVzY3JpcHRpb24iIH0pCiAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICB9CiAgICB9CgogICAgcHJpdmF0ZSBvbkZyYW1lKAogICAgICAgIGJ1ZmZlcnM6IFVpbnQ4QXJyYXlbXSwKICAgICAgICBzdHJpZGU6IFtudW1iZXIsIG51bWJlcl0sCiAgICAgICAgd2lkdGg6IG51bWJlciwKICAgICAgICBoZWlnaHQ6IG51bWJlciwKICAgICkgewogICAgICAgIHRoaXMuYmFzZS5zdWJtaXRSYXdGcmFtZSh7CiAgICAgICAgICAgIHlQbGFuZTogYnVmZmVyc1swXSwKICAgICAgICAgICAgdVBsYW5lOiBidWZmZXJzWzFdLAogICAgICAgICAgICB2UGxhbmU6IGJ1ZmZlcnNbMl0sCiAgICAgICAgICAgIHlTdHJpZGU6IHN0cmlkZVswXSwKICAgICAgICAgICAgdXZTdHJpZGU6IHN0cmlkZVsxXSwKICAgICAgICAgICAgd2lkdGgsCiAgICAgICAgICAgIGhlaWdodCwKICAgICAgICAgICAgdGltZXN0YW1wTWljcm9zZWNvbmRzOiB0aGlzLmxhc3RUaW1lc3RhbXAsCiAgICAgICAgICAgIGR1cmF0aW9uTWljcm9zZWNvbmRzOiB0aGlzLmxhc3REdXJhdGlvbiwKICAgICAgICB9KQogICAgfQoKICAgIGNsZWFudXAoKSB7CiAgICAgICAgdGhpcy5kZWNvZGVyPy5kZXN0cm95KCkKCiAgICAgICAgaWYgKCJjbGVhbnVwIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5jbGVhbnVwID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFzZS5jbGVhbnVwKC4uLmFyZ3VtZW50cykKICAgICAgICB9CiAgICB9CgogICAgZ2V0QmFzZSgpOiBQaXBlIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZQogICAgfQp9Cg=="},{"path":"web/stream/video/pipeline.ts","sha256":"d43a5774ecf33f4ec0421626bce3f69ed6984791db1914cf7de23ecbe4d464f6","contentBase64":"aW1wb3J0IHsgVXJsVmlkZW9FbGVtZW50UmVuZGVyZXIsIFZpZGVvRWxlbWVudFJlbmRlcmVyIH0gZnJvbSAiLi92aWRlb19lbGVtZW50LmpzIgppbXBvcnQgeyBWaWRlb01lZGlhU3RyZWFtVHJhY2tQcm9jZXNzb3JQaXBlIH0gZnJvbSAiLi9tZWRpYV9zdHJlYW1fdHJhY2tfcHJvY2Vzc29yX3BpcGUuanMiCmltcG9ydCB7IFRyYWNrVmlkZW9SZW5kZXJlciwgVmlkZW9SZW5kZXJlciB9IGZyb20gIi4vaW5kZXguanMiCmltcG9ydCB7IFZpZGVvRGVjb2RlclBpcGUgfSBmcm9tICIuL3ZpZGVvX2RlY29kZXJfcGlwZS5qcyIKaW1wb3J0IHsgRGVwYWNrZXRpemVWaWRlb1BpcGUgfSBmcm9tICIuL2RlcGFja2l0aXplX3BpcGUuanMiCmltcG9ydCB7IExvZ2dlciB9IGZyb20gIi4uL2xvZy5qcyIKaW1wb3J0IHsgYW5kVmlkZW9Db2RlY3MsIGhhc0FueUNvZGVjLCBWaWRlb0NvZGVjU3VwcG9ydCB9IGZyb20gIi4uL3ZpZGVvLmpzIgppbXBvcnQgeyBidWlsZFBpcGVsaW5lLCBnYXRoZXJQaXBlSW5mbywgT3V0cHV0UGlwZVN0YXRpYywgUGlwZUluZm9TdGF0aWMsIFBpcGVTdGF0aWMgfSBmcm9tICIuLi9waXBlbGluZS9pbmRleC5qcyIKaW1wb3J0IHsgRGF0YVBpcGUgfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyIKaW1wb3J0IHsgd29ya2VyUGlwZSB9IGZyb20gIi4uL3BpcGVsaW5lL3dvcmtlcl9waXBlLmpzIgppbXBvcnQgeyBXb3JrZXJWaWRlb0RhdGFTZW5kUGlwZSwgV29ya2VyVmlkZW9GcmFtZVJlY2VpdmVQaXBlLCBXb3JrZXJWaWRlb1RyYWNrUmVjZWl2ZVBpcGUsIFdvcmtlclZpZGVvVHJhY2tTZW5kUGlwZSB9IGZyb20gIi4uL3BpcGVsaW5lL3dvcmtlcl9pby5qcyIKaW1wb3J0IHsgT2Zmc2NyZWVuQ2FudmFzUmVuZGVyZXIgfSBmcm9tICIuL29mZnNjcmVlbl9jYW52YXMuanMiCmltcG9ydCB7IEJhc2VDYW52YXNWaWRlb1JlbmRlcmVyLCBNYWluQ2FudmFzUmVuZGVyZXIgfSBmcm9tICIuL2NhbnZhcy5qcyIKaW1wb3J0IHsgQ2FudmFzRnJhbWVEcmF3UGlwZSwgQ2FudmFzUmdiYUZyYW1lRHJhd1BpcGUsIENhbnZhc1l1djQyMEZyYW1lRHJhd1BpcGUgYXMgQ2FudmFzWXV2NDIwRnJhbWVEcmF3UGlwZSB9IGZyb20gIi4vY2FudmFzX2ZyYW1lLmpzIgppbXBvcnQgeyBnbG9iYWxPYmplY3QgfSBmcm9tICIuLi8uLi91dGlsLmpzIgppbXBvcnQgeyBPcGVuSDI2NERlY29kZXJQaXBlIH0gZnJvbSAiLi9vcGVuaDI2NF9kZWNvZGVyX3BpcGUuanMiCmltcG9ydCB7IFZpZGVvTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvclBpcGUgfSBmcm9tICIuL21lZGlhX3N0cmVhbV90cmFja19nZW5lcmF0b3JfcGlwZS5qcyIKaW1wb3J0IHsgWXV2NDIwVG9SZ2JhRnJhbWVQaXBlIH0gZnJvbSAiLi92aWRlb19mcmFtZS5qcyIKaW1wb3J0IHsgTWVkaWFTb3VyY2VEZWNvZGVyIH0gZnJvbSAiLi9tZWRpYV9zb3VyY2VfZGVjb2Rlci5qcyIKCi8vIC0tIEdhdGhlciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYnJvd3NlcgppbnRlcmZhY2UgVmlkZW9SZW5kZXJlclN0YXRpYyBleHRlbmRzIFBpcGVJbmZvU3RhdGljLCBPdXRwdXRQaXBlU3RhdGljIHsgfQoKY29uc3QgVklERU9fUkVOREVSRVJTOiBBcnJheTxWaWRlb1JlbmRlcmVyU3RhdGljPiA9IFsKICAgIFZpZGVvRWxlbWVudFJlbmRlcmVyLAogICAgVXJsVmlkZW9FbGVtZW50UmVuZGVyZXIsCiAgICBNYWluQ2FudmFzUmVuZGVyZXIsCiAgICBPZmZzY3JlZW5DYW52YXNSZW5kZXJlciwKXQoKLy8gLS0gQnVpbGQgdGhlIHBpcGVsaW5lCmV4cG9ydCB0eXBlIFZpZGVvUGlwZWxpbmVPcHRpb25zID0gewogICAgc3VwcG9ydGVkVmlkZW9Db2RlY3M6IFZpZGVvQ29kZWNTdXBwb3J0CiAgICBjYW52YXNSZW5kZXJlcjogYm9vbGVhbgogICAgZm9yY2VWaWRlb0VsZW1lbnRSZW5kZXJlcjogYm9vbGVhbgogICAgLy8vIFdoZW4gdHJ1ZToKICAgIC8vLyAtIGVuYWJsZSBkZXN5bmNocm9uaXplZCBpbiB0aGUgY29udGV4dCBjcmVhdGlvbiBvcHRpb25zIChsb3dlciBsYXRlbmN5KQogICAgLy8vIC0gZHJhdyBpbiBzdWJtaXRGcmFtZSAobG93IGxhdGVuY3kpCiAgICAvLy8gV2hlbiBmYWxzZToKICAgIC8vLyAtIGRyYXcgb25seSBvbiByQUYgKFZTeW5jLWxpa2UsIG1heSByZWR1Y2UgdGVhcmluZykuCiAgICBjYW52YXNWc3luYzogYm9vbGVhbgp9Cgp0eXBlIFBpcGVsaW5lUmVzdWx0PFQ+ID0geyB2aWRlb1JlbmRlcmVyOiBULCBzdXBwb3J0ZWRDb2RlY3M6IFZpZGVvQ29kZWNTdXBwb3J0LCBlcnJvcjogZmFsc2UgfSB8IHsgdmlkZW9SZW5kZXJlcjogbnVsbCwgc3VwcG9ydGVkQ29kZWNzOiBudWxsLCBlcnJvcjogdHJ1ZSB9Cgp0eXBlIFBpcGVsaW5lID0geyBpbnB1dDogc3RyaW5nLCBwaXBlczogQXJyYXk8UGlwZVN0YXRpYz4sIHJlbmRlcmVyOiBWaWRlb1JlbmRlcmVyU3RhdGljIH0KCmV4cG9ydCBjb25zdCBXb3JrZXJWaWRlb01lZGlhU3RyZWFtUHJvY2Vzc29yUGlwZSA9IHdvcmtlclBpcGUoIldvcmtlclZpZGVvTWVkaWFTdHJlYW1Qcm9jZXNzb3JQaXBlIiwgeyBwaXBlczogWyJXb3JrZXJWaWRlb1RyYWNrUmVjZWl2ZVBpcGUiLCAiVmlkZW9NZWRpYVN0cmVhbVRyYWNrUHJvY2Vzc29yUGlwZSIsICJXb3JrZXJWaWRlb0ZyYW1lU2VuZFBpcGUiXSB9KQpleHBvcnQgY29uc3QgV29ya2VyVmlkZW9NZWRpYVN0cmVhbVByb2Nlc3NvckNhbnZhc1BpcGUgPSB3b3JrZXJQaXBlKCJXb3JrZXJWaWRlb01lZGlhU3RyZWFtUHJvY2Vzc29yQ2FudmFzUGlwZSIsIHsgcGlwZXM6IFsiV29ya2VyVmlkZW9UcmFja1JlY2VpdmVQaXBlIiwgIlZpZGVvTWVkaWFTdHJlYW1UcmFja1Byb2Nlc3NvclBpcGUiLCAiQ2FudmFzRnJhbWVEcmF3UGlwZSIsICJXb3JrZXJPZmZzY3JlZW5DYW52YXNTZW5kUGlwZSJdIH0pCmV4cG9ydCBjb25zdCBXb3JrZXJEYXRhVG9WaWRlb1RyYWNrUGlwZSA9IHdvcmtlclBpcGUoIldvcmtlclZpZGVvRnJhbWVUb1RyYWNrUGlwZSIsIHsgcGlwZXM6IFsiV29ya2VyVmlkZW9EYXRhUmVjZWl2ZVBpcGUiLCAiVmlkZW9EZWNvZGVyUGlwZSIsICJWaWRlb1RyYWNrR2VuZXJhdG9yUGlwZSIsICJXb3JrZXJWaWRlb1RyYWNrU2VuZFBpcGUiXSB9KQpleHBvcnQgY29uc3QgV29ya2VyRGF0YVRvQ2FudmFzR2xSZW5kZXJPcGVuSDI2NFBpcGUgPSB3b3JrZXJQaXBlKCJXb3JrZXJEYXRhVG9DYW52YXNHbFJlbmRlck9wZW5IMjY0UGlwZSIsIHsgcGlwZXM6IFsiV29ya2VyVmlkZW9EYXRhUmVjZWl2ZVBpcGUiLCAiT3BlbkgyNjREZWNvZGVyUGlwZSIsICJDYW52YXNZdXY0MjBGcmFtZURyYXdQaXBlIiwgIldvcmtlck9mZnNjcmVlbkNhbnZhc1NlbmRQaXBlIl0gfSkKCmNvbnN0IFBJUEVMSU5FUzogQXJyYXk8UGlwZWxpbmU+ID0gWwogICAgLy8gLS0gdHJhY2sKICAgIC8vIENvbnZlcnQgdHJhY2sgLT4gdmlkZW8gZWxlbWVudCwgRGVmYXVsdCAoc2hvdWxkIGJlIHN1cHBvcnRlZCBldmVyeXdoZXJlKQogICAgeyBpbnB1dDogInZpZGVvdHJhY2siLCBwaXBlczogW10sIHJlbmRlcmVyOiBWaWRlb0VsZW1lbnRSZW5kZXJlciB9LAogICAgLy8gQ29udmVydCB0cmFjayAtPiB2aWRlbyBmcmFtZSAtPiBjYW52YXMsIENocm9taXVtCiAgICB7IGlucHV0OiAidmlkZW90cmFjayIsIHBpcGVzOiBbVmlkZW9NZWRpYVN0cmVhbVRyYWNrUHJvY2Vzc29yUGlwZSwgQ2FudmFzRnJhbWVEcmF3UGlwZV0sIHJlbmRlcmVyOiBNYWluQ2FudmFzUmVuZGVyZXIgfSwKICAgIC8vIENvbnZlcnQgdHJhY2sgLT4gdmlkZW8gZnJhbWUgKGluIHdvcmtlcikgLT4gY2FudmFzIChpbiB3b3JrZXIpLCBTYWZhcmkKICAgIHsgaW5wdXQ6ICJ2aWRlb3RyYWNrIiwgcGlwZXM6IFtXb3JrZXJWaWRlb1RyYWNrU2VuZFBpcGUsIFdvcmtlclZpZGVvTWVkaWFTdHJlYW1Qcm9jZXNzb3JDYW52YXNQaXBlXSwgcmVuZGVyZXI6IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmVyIH0sCiAgICAvLyBDb252ZXJ0IHRyYWNrIC0+IHZpZGVvIGZyYW1lIChpbiB3b3JrZXIpIC0+IGNhbnZhcywgU2FmYXJpCiAgICB7IGlucHV0OiAidmlkZW90cmFjayIsIHBpcGVzOiBbV29ya2VyVmlkZW9UcmFja1NlbmRQaXBlLCBXb3JrZXJWaWRlb01lZGlhU3RyZWFtUHJvY2Vzc29yUGlwZSwgV29ya2VyVmlkZW9GcmFtZVJlY2VpdmVQaXBlXSwgcmVuZGVyZXI6IE1haW5DYW52YXNSZW5kZXJlciB9LAogICAgLy8gLS0gZGF0YQogICAgLy8gLSBWaWRlb0RlY29kZXIKICAgIC8vIENvbnZlcnQgZGF0YSAtPiB2aWRlbyBmcmFtZSAoaW4gd29ya2VyKSAtPiB0cmFjayAoaW4gd29ya2VyLCBWaWRlb1RyYWNrR2VuZXJhdG9yKSAtPiB2aWRlbyBlbGVtZW50LCBTYWZhcmkKICAgIHsgaW5wdXQ6ICJkYXRhIiwgcGlwZXM6IFtEZXBhY2tldGl6ZVZpZGVvUGlwZSwgV29ya2VyVmlkZW9EYXRhU2VuZFBpcGUsIFdvcmtlckRhdGFUb1ZpZGVvVHJhY2tQaXBlLCBXb3JrZXJWaWRlb1RyYWNrUmVjZWl2ZVBpcGVdLCByZW5kZXJlcjogVmlkZW9FbGVtZW50UmVuZGVyZXIgfSwKICAgIC8vIENvbnZlcnQgZGF0YSAtPiB2aWRlbyBmcmFtZSAtPiB0cmFjayAoTWVkaWFTdHJlYW1UcmFja0dlbmVyYXRvcikgLT4gdmlkZW8gZWxlbWVudCwgQ2hyb21pdW0KICAgIHsgaW5wdXQ6ICJkYXRhIiwgcGlwZXM6IFtEZXBhY2tldGl6ZVZpZGVvUGlwZSwgVmlkZW9EZWNvZGVyUGlwZSwgVmlkZW9NZWRpYVN0cmVhbVRyYWNrR2VuZXJhdG9yUGlwZV0sIHJlbmRlcmVyOiBWaWRlb0VsZW1lbnRSZW5kZXJlciB9LAogICAgLy8gQ29udmVydCBkYXRhIC0+IHZpZGVvIGZyYW1lIC0+IGNhbnZhcywgRGVmYXVsdCAoU2VjdXJlIENvbnRleHQpLCBGaXJlZm94CiAgICB7IGlucHV0OiAiZGF0YSIsIHBpcGVzOiBbRGVwYWNrZXRpemVWaWRlb1BpcGUsIFZpZGVvRGVjb2RlclBpcGUsIENhbnZhc0ZyYW1lRHJhd1BpcGVdLCByZW5kZXJlcjogTWFpbkNhbnZhc1JlbmRlcmVyIH0sCiAgICAvLyAtIE9wZW5IMjY0IERlY29kZXIKICAgIC8vIENvbnZlcnQgZGF0YSAtPiBkZWNvZGUgLT4gZHJhdyB1c2luZyB3ZWJnbCAoaW4gd29ya2VyKSAtPiBjYW52YXMKICAgIHsgaW5wdXQ6ICJkYXRhIiwgcGlwZXM6IFtEZXBhY2tldGl6ZVZpZGVvUGlwZSwgV29ya2VyVmlkZW9EYXRhU2VuZFBpcGUsIFdvcmtlckRhdGFUb0NhbnZhc0dsUmVuZGVyT3BlbkgyNjRQaXBlXSwgcmVuZGVyZXI6IE9mZnNjcmVlbkNhbnZhc1JlbmRlcmVyIH0sCiAgICAvLyBDb252ZXJ0IGRhdGEgLT4gZGVjb2RlIC0+IGRyYXcgdXNpbmcgd2ViZ2wgLT4gY2FudmFzCiAgICB7IGlucHV0OiAiZGF0YSIsIHBpcGVzOiBbRGVwYWNrZXRpemVWaWRlb1BpcGUsIE9wZW5IMjY0RGVjb2RlclBpcGUsIENhbnZhc1l1djQyMEZyYW1lRHJhd1BpcGVdLCByZW5kZXJlcjogTWFpbkNhbnZhc1JlbmRlcmVyIH0sCiAgICAvLyBDb252ZXJ0IGRhdGEgLT4gZGVjb2RlIC0+IGRyYXcgdXNpbmcgaW1hZ2UgLT4gY2FudmFzCiAgICB7IGlucHV0OiAiZGF0YSIsIHBpcGVzOiBbRGVwYWNrZXRpemVWaWRlb1BpcGUsIE9wZW5IMjY0RGVjb2RlclBpcGUsIFl1djQyMFRvUmdiYUZyYW1lUGlwZSwgQ2FudmFzUmdiYUZyYW1lRHJhd1BpcGVdLCByZW5kZXJlcjogTWFpbkNhbnZhc1JlbmRlcmVyIH0sCiAgICAvLyAtIE1lZGlhU291cmNlRGVjb2RlcgogICAgLy8gQ29udmVydCBkYXRhIC0+IE1lZGlhU291cmNlRGVjb2RlciAtPiB2aWRlbyBlbGVtZW50LCBEZWZhdWx0IChzaG91bGQgYmUgc3VwcG9ydGVkIGV2ZXJ5d2hlcmUpCiAgICB7IGlucHV0OiAiZGF0YSIsIHBpcGVzOiBbRGVwYWNrZXRpemVWaWRlb1BpcGUsIE1lZGlhU291cmNlRGVjb2Rlcl0sIHJlbmRlcmVyOiBVcmxWaWRlb0VsZW1lbnRSZW5kZXJlciB9LApdCgpjb25zdCBGT1JDRV9DQU5WQVNfUElQRUxJTkVTOiBBcnJheTxQaXBlbGluZT4gPSBQSVBFTElORVMuZmlsdGVyKHBpcGVsaW5lID0+IHBpcGVsaW5lLnJlbmRlcmVyLm5hbWUuaW5jbHVkZXMoIkNhbnZhcyIpKQoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkVmlkZW9QaXBlbGluZSh0eXBlOiAidmlkZW90cmFjayIsIHNldHRpbmdzOiBWaWRlb1BpcGVsaW5lT3B0aW9ucywgbG9nZ2VyPzogTG9nZ2VyKTogUHJvbWlzZTxQaXBlbGluZVJlc3VsdDxUcmFja1ZpZGVvUmVuZGVyZXIgJiBWaWRlb1JlbmRlcmVyPj4KZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkVmlkZW9QaXBlbGluZSh0eXBlOiAiZGF0YSIsIHNldHRpbmdzOiBWaWRlb1BpcGVsaW5lT3B0aW9ucywgbG9nZ2VyPzogTG9nZ2VyKTogUHJvbWlzZTxQaXBlbGluZVJlc3VsdDxEYXRhUGlwZSAmIFZpZGVvUmVuZGVyZXI+PgoKZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJ1aWxkVmlkZW9QaXBlbGluZSh0eXBlOiBzdHJpbmcsIHNldHRpbmdzOiBWaWRlb1BpcGVsaW5lT3B0aW9ucywgbG9nZ2VyPzogTG9nZ2VyKTogUHJvbWlzZTxQaXBlbGluZVJlc3VsdDxWaWRlb1JlbmRlcmVyPj4gewogICAgY29uc3QgcGlwZXNJbmZvID0gYXdhaXQgZ2F0aGVyUGlwZUluZm8oKQoKICAgIGlmIChsb2dnZXIpIHsKICAgICAgICAvLyBQcmludCBzdXBwb3J0ZWQgcGlwZXMKICAgICAgICBjb25zdCB2aWRlb1JlbmRlcmVySW5mb1Byb21pc2VzID0gW10KICAgICAgICBmb3IgKGNvbnN0IHZpZGVvUmVuZGVyZXIgb2YgVklERU9fUkVOREVSRVJTKSB7CiAgICAgICAgICAgIHZpZGVvUmVuZGVyZXJJbmZvUHJvbWlzZXMucHVzaCh2aWRlb1JlbmRlcmVyLmdldEluZm8oKS50aGVuKGluZm8gPT4gW3ZpZGVvUmVuZGVyZXIubmFtZSwgaW5mb10pKQogICAgICAgIH0KICAgICAgICBjb25zdCB2aWRlb1JlbmRlcmVySW5mbyA9IGF3YWl0IFByb21pc2UuYWxsKHZpZGVvUmVuZGVyZXJJbmZvUHJvbWlzZXMpCgogICAgICAgIGxvZ2dlci5kZWJ1ZyhgU3VwcG9ydGVkIFZpZGVvIFJlbmRlcmVyczoge2ApCiAgICAgICAgbGV0IGlzRmlyc3QgPSB0cnVlCiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgaW5mb10gb2YgdmlkZW9SZW5kZXJlckluZm8pIHsKICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGAke2lzRmlyc3QgPyAiIiA6ICIsIn0iJHtuYW1lfSI6ICR7SlNPTi5zdHJpbmdpZnkoaW5mbyl9YCkKICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlCiAgICAgICAgfQogICAgICAgIGxvZ2dlci5kZWJ1ZyhgfWApCiAgICB9CgogICAgbG9nZ2VyPy5kZWJ1ZyhgQnVpbGRpbmcgdmlkZW8gcGlwZWxpbmUgd2l0aCBvdXRwdXQgIiR7dHlwZX0iYCkKCiAgICBsZXQgcGlwZWxpbmVzOiBBcnJheTxQaXBlbGluZT4gPSBbXQoKICAgIC8vIEZvcmNlZCByZW5kZXJlcgogICAgaWYgKHNldHRpbmdzLmZvcmNlVmlkZW9FbGVtZW50UmVuZGVyZXIpIHsKICAgICAgICBsb2dnZXI/LmRlYnVnKCJGb3JjaW5nIFZpZGVvIEVsZW1lbnQgUmVuZGVyZXIiKQogICAgICAgIGlmICh0eXBlICE9ICJ2aWRlb3RyYWNrIikgewogICAgICAgICAgICBsb2dnZXI/LmRlYnVnKCJUaGUgb3B0aW9uIEZvcmNlIFZpZGVvIEVsZW1lbnQgUmVuZGVyZXIgaXMgY3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIHdpdGggV2ViUlRDIiwgeyB0eXBlOiAiZmF0YWxEZXNjcmlwdGlvbiIgfSkKICAgICAgICAgICAgcmV0dXJuIHsgdmlkZW9SZW5kZXJlcjogbnVsbCwgc3VwcG9ydGVkQ29kZWNzOiBudWxsLCBlcnJvcjogdHJ1ZSB9CiAgICAgICAgfQoKICAgICAgICAvLyBIMjY0IGlzIGFzc3VtZWQgdW5pdmVyc2FsLCBpZiB3ZSBkb24ndCBjdXJyZW50bHkgc3VwcG9ydCBzb21ldGhpbmcgZm9yY2UgaXQhCiAgICAgICAgaWYgKCFoYXNBbnlDb2RlYyhzZXR0aW5ncy5zdXBwb3J0ZWRWaWRlb0NvZGVjcykpIHsKICAgICAgICAgICAgbG9nZ2VyPy5kZWJ1ZygiTm8gY29kZWMgY3VycmVudGx5IGZvdW5kLiBTZXR0aW5nIEgyNjQgYXMgc3VwcG9ydGVkIGV2ZW4gdGhvdWdoIHRoZSBicm93c2VyIHNheXMgaXQgaXMgbm90IHN1cHBvcnRlZCIpCgogICAgICAgICAgICBzZXR0aW5ncy5zdXBwb3J0ZWRWaWRlb0NvZGVjcy5IMjY0ID0gdHJ1ZQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHsgdmlkZW9SZW5kZXJlcjogbmV3IFZpZGVvRWxlbWVudFJlbmRlcmVyKCksIHN1cHBvcnRlZENvZGVjczogc2V0dGluZ3Muc3VwcG9ydGVkVmlkZW9Db2RlY3MsIGVycm9yOiBmYWxzZSB9CiAgICB9CgogICAgaWYgKHNldHRpbmdzLmNhbnZhc1JlbmRlcmVyKSB7CiAgICAgICAgbG9nZ2VyPy5kZWJ1ZygiRm9yY2luZyBjYW52YXMgcmVuZGVyZXIiKQoKICAgICAgICBwaXBlbGluZXMgPSBGT1JDRV9DQU5WQVNfUElQRUxJTkVTCiAgICB9IGVsc2UgewogICAgICAgIGxvZ2dlcj8uZGVidWcoIlNlbGVjdGluZyBwaXBlbGluZSBhdXRvbWF0aWNhbGx5IikKCiAgICAgICAgcGlwZWxpbmVzID0gUElQRUxJTkVTCiAgICB9CgogICAgcGlwZWxpbmVMb29wOiBmb3IgKGNvbnN0IHBpcGVsaW5lIG9mIHBpcGVsaW5lcykgewogICAgICAgIGlmIChwaXBlbGluZS5pbnB1dCAhPSB0eXBlKSB7CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgfQoKICAgICAgICAvLyBDaGVjayBpZiBzdXBwb3J0ZWQgYW5kIGNvbnRhaW5zIGNvZGVjcwogICAgICAgIGxldCBzdXBwb3J0ZWRDb2RlY3MgPSBzZXR0aW5ncy5zdXBwb3J0ZWRWaWRlb0NvZGVjcwogICAgICAgIGZvciAoY29uc3QgcGlwZSBvZiBwaXBlbGluZS5waXBlcykgewogICAgICAgICAgICBjb25zdCBwaXBlSW5mbyA9IHBpcGVzSW5mby5nZXQocGlwZSkKICAgICAgICAgICAgaWYgKCFwaXBlSW5mbykgewogICAgICAgICAgICAgICAgbG9nZ2VyPy5kZWJ1ZyhgRmFpbGVkIHRvIHF1ZXJ5IGluZm8gZm9yIHZpZGVvIHBpcGUgJHtwaXBlLm5hbWV9YCkKICAgICAgICAgICAgICAgIGNvbnRpbnVlIHBpcGVsaW5lTG9vcAogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoIXBpcGVJbmZvLmVudmlyb25tZW50U3VwcG9ydGVkKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZSBwaXBlbGluZUxvb3AKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKHBpcGVJbmZvLnN1cHBvcnRlZFZpZGVvQ29kZWNzKSB7CiAgICAgICAgICAgICAgICBzdXBwb3J0ZWRDb2RlY3MgPSBhbmRWaWRlb0NvZGVjcyhzdXBwb3J0ZWRDb2RlY3MsIHBpcGVJbmZvLnN1cHBvcnRlZFZpZGVvQ29kZWNzKQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBjb25zdCByZW5kZXJlckluZm8gPSBhd2FpdCBwaXBlbGluZS5yZW5kZXJlci5nZXRJbmZvKCkKICAgICAgICBpZiAoIXJlbmRlcmVySW5mbykgewogICAgICAgICAgICBsb2dnZXI/LmRlYnVnKGBGYWlsZWQgdG8gcXVlcnkgaW5mbyBmb3IgdmlkZW8gcmVuZGVyZXIgJHtwaXBlbGluZS5yZW5kZXJlci5uYW1lfWApCiAgICAgICAgICAgIGNvbnRpbnVlIHBpcGVsaW5lTG9vcAogICAgICAgIH0KCiAgICAgICAgaWYgKCFyZW5kZXJlckluZm8uZW52aXJvbm1lbnRTdXBwb3J0ZWQpIHsKICAgICAgICAgICAgY29udGludWUgcGlwZWxpbmVMb29wCiAgICAgICAgfQogICAgICAgIGlmIChyZW5kZXJlckluZm8uc3VwcG9ydGVkVmlkZW9Db2RlY3MpIHsKICAgICAgICAgICAgc3VwcG9ydGVkQ29kZWNzID0gYW5kVmlkZW9Db2RlY3Moc3VwcG9ydGVkQ29kZWNzLCByZW5kZXJlckluZm8uc3VwcG9ydGVkVmlkZW9Db2RlY3MpCiAgICAgICAgfQoKICAgICAgICBpZiAoIWhhc0FueUNvZGVjKHN1cHBvcnRlZENvZGVjcykpIHsKICAgICAgICAgICAgbG9nZ2VyPy5kZWJ1ZyhgTm90IHVzaW5nIHBpcGUgJHtwaXBlbGluZS5waXBlcy5tYXAocGlwZSA9PiBwaXBlLm5hbWUpLmpvaW4oIiAtPiAiKX0gLT4gJHtwaXBlbGluZS5yZW5kZXJlci5uYW1lfSAocmVuZGVyZXIpIGJlY2F1c2UgaXQgZG9lc24ndCBzdXBwb3J0IGFueSBjb2RlYyB0aGUgdXNlciB3YW50c2ApCiAgICAgICAgICAgIGNvbnRpbnVlIHBpcGVsaW5lTG9vcAogICAgICAgIH0KCiAgICAgICAgLy8gQnVpbGQgdGhhdCBwaXBlbGluZQogICAgICAgIGxvZ2dlcj8uZGVidWcoYFRyeWluZyB0byBidWlsZCBwaXBlbGluZTogJHtwaXBlbGluZS5waXBlcy5tYXAocGlwZSA9PiBwaXBlLm5hbWUpLmpvaW4oIiAtPiAiKX0gLT4gJHtwaXBlbGluZS5yZW5kZXJlci5uYW1lfSAocmVuZGVyZXIpYCkKICAgICAgICBjb25zdCByZW5kZXJlck9wdGlvbnMgPSB7IGRyYXdPblN1Ym1pdDogIXNldHRpbmdzLmNhbnZhc1ZzeW5jIH0KICAgICAgICBjb25zdCB2aWRlb1JlbmRlcmVyID0gYnVpbGRQaXBlbGluZShwaXBlbGluZS5yZW5kZXJlciwgeyBwaXBlczogcGlwZWxpbmUucGlwZXMgfSwgbG9nZ2VyLCByZW5kZXJlck9wdGlvbnMpCiAgICAgICAgaWYgKCF2aWRlb1JlbmRlcmVyKSB7CiAgICAgICAgICAgIGxvZ2dlcj8uZGVidWcoYEZhaWxlZCB0byBidWlsZCB2aWRlbyBwaXBlbGluZTogJHtwaXBlbGluZS5waXBlcy5tYXAocGlwZSA9PiBwaXBlLm5hbWUpLmpvaW4oIiAtPiAiKX0gLT4gJHtwaXBlbGluZS5yZW5kZXJlci5uYW1lfSAocmVuZGVyZXIpYCkKICAgICAgICAgICAgY29udGludWUgcGlwZWxpbmVMb29wCiAgICAgICAgfQoKICAgICAgICBsb2dnZXI/LmRlYnVnKGBTdWNjZXNzZnVsbHkgYnVpbHQgdmlkZW8gcGlwZWxpbmU6ICR7cGlwZWxpbmUucGlwZXMubWFwKHBpcGUgPT4gcGlwZS5uYW1lKS5qb2luKCIgLT4gIil9IC0+ICR7cGlwZWxpbmUucmVuZGVyZXIubmFtZX0gKHJlbmRlcmVyKWApCiAgICAgICAgcmV0dXJuIHsgdmlkZW9SZW5kZXJlcjogdmlkZW9SZW5kZXJlciBhcyBWaWRlb1JlbmRlcmVyLCBzdXBwb3J0ZWRDb2RlY3MsIGVycm9yOiBmYWxzZSB9CiAgICB9CgogICAgbGV0IG1lc3NhZ2UgPSAiTm8gc3VwcG9ydGVkIHZpZGVvIHJlbmRlcmVyIGZvdW5kISBUcmllZCBhbGwgYXZhaWxhYmxlIHBpcGVsaW5lcy4iCgogICAgY29uc3QgZ2xvYmFsT2JqID0gZ2xvYmFsT2JqZWN0KCkKICAgIGlmICh0eXBlID09ICJkYXRhIiAmJiAiaXNTZWN1cmVDb250ZXh0IiBpbiBnbG9iYWxPYmogJiYgIWdsb2JhbE9iai5pc1NlY3VyZUNvbnRleHQpIHsKICAgICAgICBtZXNzYWdlICs9ICIgSWYgeW91IHdhbnQgdG8gc3RyZWFtIHVzaW5nIFdlYiBTb2NrZXRzIHRoZSB3ZWJzaXRlIG11c3QgYmUgaW4gYSBTZWN1cmUgQ29udGV4dCEiCiAgICB9CgogICAgbG9nZ2VyPy5kZWJ1ZyhtZXNzYWdlKQogICAgcmV0dXJuIHsgdmlkZW9SZW5kZXJlcjogbnVsbCwgc3VwcG9ydGVkQ29kZWNzOiBudWxsLCBlcnJvcjogdHJ1ZSB9Cn0="},{"path":"web/stream/video/video_decoder_pipe.ts","sha256":"57de8763cac4cf937dad51b5fbd508f613320b221e9512b1d85186af978e47dd","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IEJ5dGVCdWZmZXIgfSBmcm9tICIuLi9idWZmZXIuanMiOwppbXBvcnQgeyBMb2dnZXIgfSBmcm9tICIuLi9sb2cuanMiOwppbXBvcnQgeyBTdGF0VmFsdWUgfSBmcm9tICIuLi9zdGF0cy5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IGVtcHR5VmlkZW9Db2RlY3MsIG1heWJlVmlkZW9Db2RlY3MsIFZpZGVvQ29kZWNTdXBwb3J0IH0gZnJvbSAiLi4vdmlkZW8uanMiOwppbXBvcnQgeyBDb2RlY1N0cmVhbVRyYW5zbGF0b3IsIEgyNjRTdHJlYW1WaWRlb1RyYW5zbGF0b3IsIEgyNjVTdHJlYW1WaWRlb1RyYW5zbGF0b3IsIFZJREVPX0RFQ09ERVJfQ09ERUNTX09VVF9PRl9CQU5EIH0gZnJvbSAiLi9hbm5leF9iX3RyYW5zbGF0b3IuanMiOwppbXBvcnQgeyBEYXRhVmlkZW9SZW5kZXJlciwgRnJhbWVWaWRlb1JlbmRlcmVyLCBWaWRlb0RlY29kZVVuaXQsIFZpZGVvUmVuZGVyZXJTZXR1cCB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGNvbnN0IFZJREVPX0RFQ09ERVJfQ09ERUNTX0lOX0JBTkQ6IFJlY29yZDxrZXlvZiBWaWRlb0NvZGVjU3VwcG9ydCwgc3RyaW5nPiA9IHsKICAgIC8vIGF2YzEgPSBvdXQgb2YgYmFuZCBjb25maWcsIGF2YzMgPSBpbiBiYW5kIHdpdGggc3BzLCBwcHMsIGlkcgogICAgIkgyNjQiOiAiYXZjMy40MkUwMUUiLAogICAgIkgyNjRfSElHSDhfNDQ0IjogImF2YzMuNjQwMDMyIiwKICAgIC8vIGh2YzEgPSBvdXQgb2YgYmFuZCBjb25maWcsIGhldjEgPSBpbiBiYW5kIHdpdGggc3BzLCBwcHMsIGlkcgogICAgIkgyNjUiOiAiaGV2MS4xLjYuTDkzLkIwIiwKICAgICJIMjY1X01BSU4xMCI6ICJoZXYxLjIuNC5MMTIwLjkwIiwKICAgICJIMjY1X1JFWFQ4XzQ0NCI6ICJoZXYxLjYuNi5MOTMuOTAiLAogICAgIkgyNjVfUkVYVDEwXzQ0NCI6ICJoZXYxLjYuMTAuTDEyMC45MCIsCiAgICAvLyBhdjEgZG9lc24ndCBoYXZlIGluIGJhbmQgYW5kIG91dCBvZiBiYW5kIGRpc3RpbmN0aW9uCiAgICAiQVYxX01BSU44IjogImF2MDEuMC4wNE0uMDgiLAogICAgIkFWMV9NQUlOMTAiOiAiYXYwMS4wLjA0TS4xMCIsCiAgICAiQVYxX0hJR0g4XzQ0NCI6ICJhdjAxLjAuMDhNLjA4IiwKICAgICJBVjFfSElHSDEwXzQ0NCI6ICJhdjAxLjAuMDhNLjEwIgp9Cgphc3luYyBmdW5jdGlvbiBkZXRlY3RDb2RlY3MoKTogUHJvbWlzZTxWaWRlb0NvZGVjU3VwcG9ydD4gewogICAgaWYgKCEoImlzQ29uZmlnU3VwcG9ydGVkIiBpbiBWaWRlb0RlY29kZXIpKSB7CiAgICAgICAgcmV0dXJuIG1heWJlVmlkZW9Db2RlY3MoKQogICAgfQoKICAgIGNvbnN0IGNvZGVjcyA9IGVtcHR5VmlkZW9Db2RlY3MoKQogICAgY29uc3QgcHJvbWlzZXMgPSBbXQoKICAgIGZvciAoY29uc3QgY29kZWMgaW4gY29kZWNzKSB7CiAgICAgICAgcHJvbWlzZXMucHVzaCgoYXN5bmMgKCkgPT4gewogICAgICAgICAgICBjb25zdCBzdXBwb3J0ZWRJbkJhbmQgPSBhd2FpdCBnZXRJZkNvbmZpZ1N1cHBvcnRlZCh7CiAgICAgICAgICAgICAgICBjb2RlYzogVklERU9fREVDT0RFUl9DT0RFQ1NfSU5fQkFORFtjb2RlY10KICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIGNvbnN0IHN1cHBvcnRlZE91dE9mQmFuZCA9IGF3YWl0IGdldElmQ29uZmlnU3VwcG9ydGVkKHsKICAgICAgICAgICAgICAgIGNvZGVjOiBWSURFT19ERUNPREVSX0NPREVDU19PVVRfT0ZfQkFORFtjb2RlY10KICAgICAgICAgICAgfSkKCiAgICAgICAgICAgIGNvZGVjc1tjb2RlY10gPSBzdXBwb3J0ZWRJbkJhbmQgIT09IG51bGwgfHwgc3VwcG9ydGVkT3V0T2ZCYW5kICE9PSBudWxsCiAgICAgICAgfSkoKSkKICAgIH0KICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKQoKICAgIC8vIFRPRE86IEZpcmVmb3gsIFNhZmFyaSBzYXkgdGhleSBjYW4gcGxheSB0aGlzIGNvZGVjLCBidXQgdGhleSBjYW4ndAogICAgY29kZWNzLkgyNjRfSElHSDhfNDQ0ID0gZmFsc2UKCiAgICByZXR1cm4gY29kZWNzCn0KYXN5bmMgZnVuY3Rpb24gZ2V0SWZDb25maWdTdXBwb3J0ZWQoY29uZmlnOiBWaWRlb0RlY29kZXJDb25maWcpOiBQcm9taXNlPFZpZGVvRGVjb2RlckNvbmZpZyB8IG51bGw+IHsKICAgIHRyeSB7CiAgICAgICAgY29uc3Qgc3VwcG9ydGVkID0gYXdhaXQgVmlkZW9EZWNvZGVyLmlzQ29uZmlnU3VwcG9ydGVkKGNvbmZpZykKICAgICAgICByZXR1cm4gc3VwcG9ydGVkLnN1cHBvcnRlZCA/IGNvbmZpZyA6IG51bGwKICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgLy8gT2xkZXIgV2ViQ29kZWNzIGltcGxlbWVudGF0aW9ucyB0aHJvdyBmb3IgY29kZWMgc3RyaW5ncyB0aGV5IGNhbm5vdAogICAgICAgIC8vIHBhcnNlLiBBbiBvcHRpb25hbCBjb2RlYyBtdXN0IG5vdCBwcmV2ZW50IHN1cHBvcnRlZCBIMjY0IGZyb20gc3RhcnRpbmcuCiAgICAgICAgLy8gS2VlcCB1bmV4cGVjdGVkIHJ1bnRpbWUgZmFpbHVyZXMgdmlzaWJsZSBpbnN0ZWFkIG9mIG1hc2tpbmcgdGhlbS4KICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGwKICAgICAgICB9CiAgICAgICAgdGhyb3cgZXJyb3IKICAgIH0KfQoKZXhwb3J0IGNsYXNzIFZpZGVvRGVjb2RlclBpcGUgaW1wbGVtZW50cyBEYXRhVmlkZW9SZW5kZXJlciB7CiAgICBzdGF0aWMgcmVhZG9ubHkgYmFzZVR5cGUgPSAidmlkZW9mcmFtZSIKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gInZpZGVvZGF0YSIKCiAgICBzdGF0aWMgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgY29uc3Qgc3VwcG9ydGVkID0gIlZpZGVvRGVjb2RlciIgaW4gZ2xvYmFsT2JqZWN0KCkKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6IHN1cHBvcnRlZCwKICAgICAgICAgICAgc3VwcG9ydGVkVmlkZW9Db2RlY3M6IHN1cHBvcnRlZCA/IGF3YWl0IGRldGVjdENvZGVjcygpIDogZW1wdHlWaWRlb0NvZGVjcygpCiAgICAgICAgfQogICAgfQoKICAgIHJlYWRvbmx5IGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nCgogICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlciB8IG51bGwKCiAgICBwcml2YXRlIGJhc2U6IEZyYW1lVmlkZW9SZW5kZXJlcgoKICAgIHByaXZhdGUgZnBzID0gMAoKICAgIHByaXZhdGUgZXJyb3JlZCA9IGZhbHNlCiAgICBwcml2YXRlIGNsb3NlZCA9IGZhbHNlCiAgICBwcml2YXRlIGRlY29kZXJSZWNvdmVyaWVzID0gMAogICAgcHJpdmF0ZSBjb25maWc6IFZpZGVvRGVjb2RlckNvbmZpZyB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIHRyYW5zbGF0b3I6IENvZGVjU3RyZWFtVHJhbnNsYXRvciB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIGRlY29kZXI6IFZpZGVvRGVjb2RlcgoKICAgIGNvbnN0cnVjdG9yKGJhc2U6IEZyYW1lVmlkZW9SZW5kZXJlciwgbG9nZ2VyPzogTG9nZ2VyKSB7CiAgICAgICAgdGhpcy5pbXBsZW1lbnRhdGlvbk5hbWUgPSBgdmlkZW9fZGVjb2RlciAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAKICAgICAgICB0aGlzLmxvZ2dlciA9IGxvZ2dlciA/PyBudWxsCgogICAgICAgIHRoaXMuYmFzZSA9IGJhc2UKCiAgICAgICAgdGhpcy5kZWNvZGVyID0gbmV3IFZpZGVvRGVjb2Rlcih7CiAgICAgICAgICAgIGVycm9yOiB0aGlzLm9uRXJyb3IuYmluZCh0aGlzKSwKICAgICAgICAgICAgb3V0cHV0OiB0aGlzLm9uT3V0cHV0LmJpbmQodGhpcykKICAgICAgICB9KQoKICAgICAgICBhZGRQaXBlUGFzc3Rocm91Z2godGhpcykKICAgIH0KCiAgICBwcml2YXRlIG9uRXJyb3IoZXJyb3I6IGFueSkgewogICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKCiAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBWaWRlb0RlY29kZXIgaGFzIGFuIGVycm9yICR7InRvU3RyaW5nIiBpbiBlcnJvciA/IGVycm9yLnRvU3RyaW5nKCkgOiBgJHtlcnJvcn1gfWAsIHsgdHlwZTogImZhdGFsIiB9KQogICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpCiAgICB9CgogICAgcHJpdmF0ZSBvbk91dHB1dChmcmFtZTogVmlkZW9GcmFtZSkgewogICAgICAgIGlmICh0aGlzLmNsb3NlZCB8fCB0aGlzLmVycm9yZWQpIHsKICAgICAgICAgICAgZnJhbWUuY2xvc2UoKQogICAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgdGhpcy5iYXNlLnN1Ym1pdEZyYW1lKGZyYW1lKQogICAgfQoKICAgIHByaXZhdGUgYXN5bmMgdHJ5U2V0Q29uZmlnKGNvZGVjOiBzdHJpbmcpIHsKICAgICAgICBpZiAoIXRoaXMuY29uZmlnKSB7CiAgICAgICAgICAgIHRoaXMuY29uZmlnID0gYXdhaXQgZ2V0SWZDb25maWdTdXBwb3J0ZWQoewogICAgICAgICAgICAgICAgY29kZWMsCiAgICAgICAgICAgICAgICBoYXJkd2FyZUFjY2VsZXJhdGlvbjogInByZWZlci1oYXJkd2FyZSIsCiAgICAgICAgICAgICAgICBvcHRpbWl6ZUZvckxhdGVuY3k6IHRydWUKICAgICAgICAgICAgfSkKICAgICAgICB9CgogICAgICAgIGlmICghdGhpcy5jb25maWcpIHsKICAgICAgICAgICAgdGhpcy5jb25maWcgPSBhd2FpdCBnZXRJZkNvbmZpZ1N1cHBvcnRlZCh7CiAgICAgICAgICAgICAgICBjb2RlYywKICAgICAgICAgICAgICAgIG9wdGltaXplRm9yTGF0ZW5jeTogdHJ1ZQogICAgICAgICAgICB9KQogICAgICAgIH0KCiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZykgewogICAgICAgICAgICB0aGlzLmNvbmZpZyA9IGF3YWl0IGdldElmQ29uZmlnU3VwcG9ydGVkKHsKICAgICAgICAgICAgICAgIGNvZGVjLAogICAgICAgICAgICB9KQogICAgICAgIH0KICAgIH0KICAgIGFzeW5jIHNldHVwKHNldHVwOiBWaWRlb1JlbmRlcmVyU2V0dXApOiBQcm9taXNlPHZvaWQ+IHsKICAgICAgICB0aGlzLmZwcyA9IE51bWJlci5pc0Zpbml0ZShzZXR1cC5mcHMpICYmIHNldHVwLmZwcyA+IDAgPyBzZXR1cC5mcHMgOiA2MAoKICAgICAgICBjb25zdCBjb2RlYyA9IFZJREVPX0RFQ09ERVJfQ09ERUNTX0lOX0JBTkRbc2V0dXAuY29kZWNdCiAgICAgICAgYXdhaXQgdGhpcy50cnlTZXRDb25maWcoY29kZWMpCiAgICAgICAgaWYgKHRoaXMuY2xvc2VkKSByZXR1cm4KCiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZykgewogICAgICAgICAgICBpZiAoc2V0dXAuY29kZWMgPT0gIkgyNjQiIHx8IHNldHVwLmNvZGVjID09ICJIMjY0X0hJR0g4XzQ0NCIpIHsKICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRvciA9IG5ldyBIMjY0U3RyZWFtVmlkZW9UcmFuc2xhdG9yKHRoaXMubG9nZ2VyID8/IHVuZGVmaW5lZCkKCiAgICAgICAgICAgICAgICBjb25zdCBjb2RlYyA9IFZJREVPX0RFQ09ERVJfQ09ERUNTX09VVF9PRl9CQU5EW3NldHVwLmNvZGVjXQogICAgICAgICAgICAgICAgYXdhaXQgdGhpcy50cnlTZXRDb25maWcoY29kZWMpCiAgICAgICAgICAgIH0gZWxzZSBpZiAoc2V0dXAuY29kZWMgPT0gIkgyNjUiIHx8IHNldHVwLmNvZGVjID09ICJIMjY1X01BSU4xMCIgfHwgc2V0dXAuY29kZWMgPT0gIkgyNjVfUkVYVDhfNDQ0IiB8fCBzZXR1cC5jb2RlYyA9PSAiSDI2NV9SRVhUMTBfNDQ0IikgewogICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdG9yID0gbmV3IEgyNjVTdHJlYW1WaWRlb1RyYW5zbGF0b3IodGhpcy5sb2dnZXIgPz8gdW5kZWZpbmVkKQoKICAgICAgICAgICAgICAgIGNvbnN0IGNvZGVjID0gVklERU9fREVDT0RFUl9DT0RFQ1NfT1VUX09GX0JBTkRbc2V0dXAuY29kZWNdCiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnRyeVNldENvbmZpZyhjb2RlYykKICAgICAgICAgICAgfSBlbHNlIGlmIChzZXR1cC5jb2RlYyA9PSAiQVYxX01BSU44IiB8fCBzZXR1cC5jb2RlYyA9PSAiQVYxX01BSU4xMCIgfHwgc2V0dXAuY29kZWMgPT0gIkFWMV9ISUdIOF80NDQiIHx8IHNldHVwLmNvZGVjID09ICJBVjFfSElHSDEwXzQ0NCIpIHsKICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiQXYxIHN0cmVhbSB0cmFuc2xhdG9yIGlzIG5vdCBpbXBsZW1lbnRlZCBjdXJyZW50bHkhIiwgeyB0eXBlOiAiZmF0YWxEZXNjcmlwdGlvbiIgfSkKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5lcnJvcmVkID0gdHJ1ZQogICAgICAgICAgICAgICAgdGhpcy5sb2dnZXI/LmRlYnVnKGBGYWlsZWQgdG8gZmluZCBzdHJlYW0gdHJhbnNsYXRvciBmb3IgY29kZWMgJHtzZXR1cC5jb2RlY31gKQogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICh0aGlzLmNsb3NlZCkgcmV0dXJuCiAgICAgICAgaWYgKCF0aGlzLmNvbmZpZykgewogICAgICAgICAgICB0aGlzLmVycm9yZWQgPSB0cnVlCiAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgRmFpbGVkIHRvIHNldHVwIFZpZGVvRGVjb2RlciBmb3IgY29kZWMgJHtzZXR1cC5jb2RlY30gYmVjYXVzZSBvZiBtaXNzaW5nIGNvbmZpZ2ApCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICB0aGlzLnRyYW5zbGF0b3I/LnNldEJhc2VDb25maWcodGhpcy5jb25maWcpCgogICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZyhgVmlkZW9EZWNvZGVyIGNvbmZpZzogJHtKU09OLnN0cmluZ2lmeSh0aGlzLmNvbmZpZyl9YCkKCiAgICAgICAgdGhpcy5yZXNldCgpCgogICAgICAgIHRoaXMuZGVjb2RlclNldHVwRmluaXNoZWQgPSB0cnVlCgogICAgICAgIGlmICgic2V0dXAiIGluIHRoaXMuYmFzZSAmJiB0eXBlb2YgdGhpcy5iYXNlLnNldHVwID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYmFzZS5zZXR1cCguLi5hcmd1bWVudHMpCiAgICAgICAgfQogICAgfQoKICAgIHByaXZhdGUgZGVjb2RlclNldHVwRmluaXNoZWQgPSBmYWxzZQogICAgcHJpdmF0ZSByZXF1ZXN0ZWRJZHIgPSBmYWxzZQogICAgcHJpdmF0ZSBuZWVkc0tleUZyYW1lID0gdHJ1ZQogICAgcHJpdmF0ZSBzdGFydHVwTmVlZHNJZHIgPSBmYWxzZQoKICAgIHByaXZhdGUgYnVmZmVyZWRVbml0czogQXJyYXk8VmlkZW9EZWNvZGVVbml0PiA9IFtdCiAgICBzdWJtaXREZWNvZGVVbml0KHVuaXQ6IFZpZGVvRGVjb2RlVW5pdCk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLmVycm9yZWQgfHwgdGhpcy5jbG9zZWQpIHsKICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygiQ2Fubm90IHN1Ym1pdCB2aWRlbyBkZWNvZGUgdW5pdCBiZWNhdXNlIHRoZSBzdHJlYW0gZXJyb3JlZCIpCiAgICAgICAgICAgIHJldHVybgogICAgICAgIH0KICAgICAgICBpZiAoIXRoaXMuZGVjb2RlclNldHVwRmluaXNoZWQpIHsKICAgICAgICAgICAgaWYgKHVuaXQudHlwZSA9PT0gImtleSIpIHsKICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyZWRVbml0cyA9IFtdCiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0dXBOZWVkc0lkciA9IGZhbHNlCiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydHVwTmVlZHNJZHIpIHsKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuYnVmZmVyZWRVbml0cy5wdXNoKHVuaXQpCiAgICAgICAgICAgIC8vIERlY29kZXIgY2FwYWJpbGl0eSBwcm9iZXMgbWF5IGJlIHNsb3cuIE5ldmVyIHJlcGxheSBhIGxvbmcgc3RhcnR1cAogICAgICAgICAgICAvLyBiYWNrbG9nIG9yIGRyb3AgYW4gaW50ZXItZnJhbWUgZGVwZW5kZW5jeSBhbmQgZGVjb2RlIGl0cyBjaGlsZHJlbi4KICAgICAgICAgICAgaWYgKHRoaXMuYnVmZmVyZWRVbml0cy5sZW5ndGggPiBNYXRoLm1heCgzLCBNYXRoLmNlaWwodGhpcy5mcHMgLyAxMCkpKSB7CiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcmVkVW5pdHMgPSBbXQogICAgICAgICAgICAgICAgdGhpcy5zdGFydHVwTmVlZHNJZHIgPSB0cnVlCiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgfQoKICAgICAgICBpZiAodGhpcy5idWZmZXJlZFVuaXRzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgY29uc3QgYnVmZmVyZWRVbml0cyA9IHRoaXMuYnVmZmVyZWRVbml0cy5zcGxpY2UoMCkKCiAgICAgICAgICAgIGZvciAoY29uc3QgYnVmZmVyZWRVbml0IG9mIGJ1ZmZlcmVkVW5pdHMpIHsKICAgICAgICAgICAgICAgIHRoaXMuc3VibWl0RGVjb2RlVW5pdChidWZmZXJlZFVuaXQpCiAgICAgICAgICAgIH0KICAgICAgICB9CgoKICAgICAgICBpZiAodW5pdC50eXBlICE9PSAia2V5IiAmJiB0aGlzLm5lZWRzS2V5RnJhbWUpIHJldHVybgogICAgICAgIGlmICh1bml0LnR5cGUgPT09ICJrZXkiKSB0aGlzLnN0YXJ0dXBOZWVkc0lkciA9IGZhbHNlCgogICAgICAgIGlmICh0aGlzLnRyYW5zbGF0b3IpIHsKICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnRyYW5zbGF0b3Iuc3VibWl0RGVjb2RlVW5pdCh1bml0KQogICAgICAgICAgICBpZiAodmFsdWUuZXJyb3IpIHsKICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JlZCA9IHRydWUKICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyPy5kZWJ1ZygiVmlkZW9EZWNvZGVyIGhhcyBlcnJvcmVkISIpCiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgfQoKICAgICAgICAgICAgY29uc3QgeyBjb25maWd1cmUsIGNodW5rIH0gPSB2YWx1ZQoKICAgICAgICAgICAgaWYgKCFjaHVuaykgewogICAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZygiTm8gY2h1bmsgcmVjZWl2ZWQhIikKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoY29uZmlndXJlKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCJSZXNldHRpbmcgdmlkZW8gZGVjb2RlciBjb25maWcgd2l0aCIsIGNvbmZpZ3VyZSkKCiAgICAgICAgICAgICAgICB0aGlzLmRlY29kZXIucmVzZXQoKQogICAgICAgICAgICAgICAgdGhpcy5kZWNvZGVyLmNvbmZpZ3VyZShjb25maWd1cmUpCgogICAgICAgICAgICAgICAgLy8gVGhpcyBsaWtlbHkgaXMgYW4gaWRyCiAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RlZElkciA9IGZhbHNlCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGNvbnN0IGVuY29kZWRDaHVuayA9IG5ldyBFbmNvZGVkVmlkZW9DaHVuayh7CiAgICAgICAgICAgICAgICB0eXBlOiB1bml0LnR5cGUsCiAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IHVuaXQudGltZXN0YW1wTWljcm9zZWNvbmRzLAogICAgICAgICAgICAgICAgZHVyYXRpb246IHVuaXQuZHVyYXRpb25NaWNyb3NlY29uZHMsCiAgICAgICAgICAgICAgICBkYXRhOiBjaHVuaywKICAgICAgICAgICAgfSkKICAgICAgICAgICAgdGhpcy5kZWNvZGVyLmRlY29kZShlbmNvZGVkQ2h1bmspCiAgICAgICAgICAgIHRoaXMubmVlZHNLZXlGcmFtZSA9IGZhbHNlCiAgICAgICAgICAgIHRoaXMucmVxdWVzdGVkSWRyID0gZmFsc2UKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAodW5pdC50eXBlICE9ICJrZXkiICYmIHRoaXMubmVlZHNLZXlGcmFtZSkgewogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgdGhpcy5uZWVkc0tleUZyYW1lID0gZmFsc2UKICAgICAgICAgICAgdGhpcy5yZXF1ZXN0ZWRJZHIgPSBmYWxzZQoKICAgICAgICAgICAgY29uc3QgY2h1bmsgPSBuZXcgRW5jb2RlZFZpZGVvQ2h1bmsoewogICAgICAgICAgICAgICAgdHlwZTogdW5pdC50eXBlLAogICAgICAgICAgICAgICAgZGF0YTogdW5pdC5kYXRhLAogICAgICAgICAgICAgICAgdGltZXN0YW1wOiB1bml0LnRpbWVzdGFtcE1pY3Jvc2Vjb25kcywKICAgICAgICAgICAgICAgIGR1cmF0aW9uOiB1bml0LmR1cmF0aW9uTWljcm9zZWNvbmRzCiAgICAgICAgICAgIH0pCgogICAgICAgICAgICB0aGlzLmRlY29kZXIuZGVjb2RlKGNodW5rKQogICAgICAgIH0KICAgIH0KCiAgICBwcml2YXRlIHJlc2V0KCkgewogICAgICAgIHRoaXMubmVlZHNLZXlGcmFtZSA9IHRydWUKICAgICAgICBpZiAoIXRoaXMudHJhbnNsYXRvcikgewogICAgICAgICAgICB0aGlzLmRlY29kZXIucmVzZXQoKQogICAgICAgICAgICB0aGlzLm5lZWRzS2V5RnJhbWUgPSB0cnVlCgogICAgICAgICAgICBpZiAodGhpcy5jb25maWcpIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVjb2Rlci5jb25maWd1cmUodGhpcy5jb25maWcpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlcj8uZGVidWcoIkZhaWxlZCB0byBjb25maWd1cmUgVmlkZW9EZWNvZGVyIGJlY2F1c2Ugb2YgbWlzc2luZyBjb25maWciLCB7IHR5cGU6ICJmYXRhbCIgfSkKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWcpIHsKICAgICAgICAgICAgLy8gUHJlc2VydmUgcGFyc2VkIFNQUy9QUFMsIGJ1dCBkaXNjYXJkIHF1ZXVlZCBmcmFtZXMgaW4gdGhlIGFjdHVhbAogICAgICAgICAgICAvLyBkZWNvZGVyIHRvby4gVXBkYXRpbmcgdGhlIHRyYW5zbGF0b3IgYWxvbmUgbGVhdmVzIHRoZSBiYWNrbG9nLgogICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy50cmFuc2xhdG9yLmdldEN1cnJlbnRDb25maWcoKQogICAgICAgICAgICBpZiAoY3VycmVudD8uZGVzY3JpcHRpb24pIHsKICAgICAgICAgICAgICAgIHRoaXMuZGVjb2Rlci5yZXNldCgpCiAgICAgICAgICAgICAgICB0aGlzLmRlY29kZXIuY29uZmlndXJlKGN1cnJlbnQpCiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0b3Iuc2V0QmFzZUNvbmZpZyh0aGlzLmNvbmZpZykKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBwb2xsUmVxdWVzdElkcigpOiBib29sZWFuIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQgfHwgdGhpcy5lcnJvcmVkIHx8ICF0aGlzLmRlY29kZXJTZXR1cEZpbmlzaGVkKSByZXR1cm4gZmFsc2UKICAgICAgICBsZXQgcmVxdWVzdElkciA9IGZhbHNlCgogICAgICAgIGNvbnN0IGVzdGltYXRlZFF1ZXVlRGVsYXlNcyA9IHRoaXMuZGVjb2Rlci5kZWNvZGVRdWV1ZVNpemUgKiAxMDAwIC8gdGhpcy5mcHMKICAgICAgICBpZiAodGhpcy5zdGFydHVwTmVlZHNJZHIgfHwgKGVzdGltYXRlZFF1ZXVlRGVsYXlNcyA+PSAxMDAgJiYgdGhpcy5kZWNvZGVyLmRlY29kZVF1ZXVlU2l6ZSA+IDIpKSB7CiAgICAgICAgICAgIC8vIFJlam9pbiBhdCBhIGtleSBmcmFtZSByYXRoZXIgdGhhbiBsZXR0aW5nIGludGVyYWN0aXZlIHZpZGVvIHRyYWlsCiAgICAgICAgICAgIC8vIHVzZXIgaW5wdXQuIE9yZGluYXJ5IG9uZS90d28tZnJhbWUgaGFyZHdhcmUgZGVjb2RlIGJ1cnN0cyBhcmUga2VwdC4KICAgICAgICAgICAgaWYgKCF0aGlzLnJlcXVlc3RlZElkcikgewogICAgICAgICAgICAgICAgcmVxdWVzdElkciA9IHRydWUKICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKQogICAgICAgICAgICAgICAgdGhpcy5zdGFydHVwTmVlZHNJZHIgPSBmYWxzZQogICAgICAgICAgICAgICAgdGhpcy5kZWNvZGVyUmVjb3ZlcmllcysrCiAgICAgICAgICAgIH0KICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgUmVxdWVzdGluZyBpZHIgYmVjYXVzZSBvZiBkZWNvZGUgcXVldWUgc2l6ZSgke3RoaXMuZGVjb2Rlci5kZWNvZGVRdWV1ZVNpemV9KSBhbmQgZXN0aW1hdGVkIGRlbGF5IG9mIHRoZSBxdWV1ZTogJHtlc3RpbWF0ZWRRdWV1ZURlbGF5TXN9YCkKICAgICAgICB9CgogICAgICAgIGlmICgicG9sbFJlcXVlc3RJZHIiIGluIHRoaXMuYmFzZSAmJiB0eXBlb2YgdGhpcy5iYXNlLnBvbGxSZXF1ZXN0SWRyID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgaWYgKHRoaXMuYmFzZS5wb2xsUmVxdWVzdElkciguLi5hcmd1bWVudHMpKSB7CiAgICAgICAgICAgICAgICByZXF1ZXN0SWRyID0gdHJ1ZQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAocmVxdWVzdElkcikgewogICAgICAgICAgICB0aGlzLnJlcXVlc3RlZElkciA9IHRydWUKICAgICAgICB9CgogICAgICAgIHJldHVybiByZXF1ZXN0SWRyCiAgICB9CgogICAgY2xlYW51cCgpIHsKICAgICAgICBpZiAodGhpcy5jbG9zZWQpIHJldHVybgogICAgICAgIHRoaXMuY2xvc2VkID0gdHJ1ZQogICAgICAgIHRoaXMuYnVmZmVyZWRVbml0cyA9IFtdCiAgICAgICAgdGhpcy5kZWNvZGVyLmNsb3NlKCkKCiAgICAgICAgaWYgKCJjbGVhbnVwIiBpbiB0aGlzLmJhc2UgJiYgdHlwZW9mIHRoaXMuYmFzZS5jbGVhbnVwID09ICJmdW5jdGlvbiIpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuYmFzZS5jbGVhbnVwKGFyZ3VtZW50cykKICAgICAgICB9CiAgICB9CgogICAgZ2V0QmFzZSgpOiBQaXBlIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIHRoaXMuYmFzZQogICAgfQoKICAgIGFzeW5jIHJlcG9ydFN0YXRzKHN0YXRzOiBSZWNvcmQ8c3RyaW5nLCBTdGF0VmFsdWU+KTogUHJvbWlzZTx2b2lkPiB7CiAgICAgICAgc3RhdHMuZGVjb2RlclF1ZXVlRnJhbWVzID0gdGhpcy5kZWNvZGVyLmRlY29kZVF1ZXVlU2l6ZQogICAgICAgIHN0YXRzLmRlY29kZXJRdWV1ZU1zID0gdGhpcy5kZWNvZGVyLmRlY29kZVF1ZXVlU2l6ZSAqIDEwMDAgLyB0aGlzLmZwcwogICAgICAgIHN0YXRzLmRlY29kZXJSZWNvdmVyaWVzID0gdGhpcy5kZWNvZGVyUmVjb3ZlcmllcwogICAgICAgIGlmICh0aGlzLmJhc2UucmVwb3J0U3RhdHMpIGF3YWl0IHRoaXMuYmFzZS5yZXBvcnRTdGF0cyhzdGF0cykKICAgIH0KfQo="},{"path":"web/stream/video/video_element.ts","sha256":"87590cb1cfc487d1a2476f77a264499d3e554745985ab851f8bce1f8499a9551","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IGVtcHR5VmlkZW9Db2RlY3MsIG1heWJlVmlkZW9Db2RlY3MsIFZpZGVvQ29kZWNTdXBwb3J0IH0gZnJvbSAiLi4vdmlkZW8uanMiOwppbXBvcnQgeyBnZXRTdHJlYW1SZWN0Q29ycmVjdGVkLCBUcmFja1ZpZGVvUmVuZGVyZXIsIFVybFZpZGVvUmVuZGVyZXIsIFZpZGVvUmVuZGVyZXIsIFZpZGVvUmVuZGVyZXJTZXR1cCB9IGZyb20gIi4vaW5kZXguanMiOwoKY29uc3QgVklERU9fREVDT0RFUl9DT0RFQ1M6IFJlY29yZDxrZXlvZiBWaWRlb0NvZGVjU3VwcG9ydCwgc3RyaW5nPiA9IHsKICAgICJIMjY0IjogImF2YzEuNDJFMDFFIiwKICAgICJIMjY0X0hJR0g4XzQ0NCI6ICJhdmMxLjY0MDAzMiIsCiAgICAiSDI2NSI6ICJodmMxLjEuNi5MOTMuQjAiLAogICAgIkgyNjVfTUFJTjEwIjogImh2YzEuMi40LkwxMjAuOTAiLAogICAgIkgyNjVfUkVYVDhfNDQ0IjogImh2YzEuNi42Lkw5My45MCIsCiAgICAiSDI2NV9SRVhUMTBfNDQ0IjogImh2YzEuNi4xMC5MMTIwLjkwIiwKICAgICJBVjFfTUFJTjgiOiAiYXYwMS4wLjA0TS4wOCIsCiAgICAiQVYxX01BSU4xMCI6ICJhdjAxLjAuMDRNLjEwIiwKICAgICJBVjFfSElHSDhfNDQ0IjogImF2MDEuMC4wOE0uMDgiLAogICAgIkFWMV9ISUdIMTBfNDQ0IjogImF2MDEuMC4wOE0uMTAiCn0KCmZ1bmN0aW9uIGRldGVjdENvZGVjcygpOiBWaWRlb0NvZGVjU3VwcG9ydCB7CiAgICBpZiAoISgiY2FuUGxheVR5cGUiIGluIEhUTUxWaWRlb0VsZW1lbnQucHJvdG90eXBlKSkgewogICAgICAgIHJldHVybiBtYXliZVZpZGVvQ29kZWNzKCkKICAgIH0KCiAgICBjb25zdCBjb2RlY3MgPSBlbXB0eVZpZGVvQ29kZWNzKCkKCiAgICBjb25zdCB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIikKCiAgICBmb3IgKGNvbnN0IGNvZGVjIGluIGNvZGVjcykgewogICAgICAgIGNvbnN0IHN1cHBvcnRlZCA9IHRlc3RFbGVtZW50LmNhblBsYXlUeXBlKGB2aWRlby9tcDQ7IGNvZGVjcz0ke1ZJREVPX0RFQ09ERVJfQ09ERUNTW2NvZGVjXX1gKQoKICAgICAgICBpZiAoc3VwcG9ydGVkID09ICJwcm9iYWJseSIpIHsKICAgICAgICAgICAgY29kZWNzW2NvZGVjXSA9IHRydWUKICAgICAgICB9IGVsc2UgaWYgKHN1cHBvcnRlZCA9PSAibWF5YmUiKSB7CiAgICAgICAgICAgIGNvZGVjc1tjb2RlY10gPSAibWF5YmUiCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gdW5zdXBwb3J0ZWQKICAgICAgICAgICAgY29kZWNzW2NvZGVjXSA9IGZhbHNlCiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBjb2RlY3MKfQoKZXhwb3J0IGNsYXNzIFZpZGVvRWxlbWVudFJlbmRlcmVyIGltcGxlbWVudHMgVHJhY2tWaWRlb1JlbmRlcmVyLCBWaWRlb1JlbmRlcmVyIHsKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gInZpZGVvdHJhY2siCgogICAgc3RhdGljIGFzeW5jIGdldEluZm8oKTogUHJvbWlzZTxQaXBlSW5mbz4gewogICAgICAgIGNvbnN0IHN1cHBvcnRlZCA9ICJIVE1MVmlkZW9FbGVtZW50IiBpbiBnbG9iYWxPYmplY3QoKSAmJiAic3JjT2JqZWN0IiBpbiBIVE1MVmlkZW9FbGVtZW50LnByb3RvdHlwZQoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogc3VwcG9ydGVkLAogICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogc3VwcG9ydGVkID8gZGV0ZWN0Q29kZWNzKCkgOiBlbXB0eVZpZGVvQ29kZWNzKCkKICAgICAgICB9CiAgICB9CgogICAgcmVhZG9ubHkgaW1wbGVtZW50YXRpb25OYW1lOiBzdHJpbmcgPSAidmlkZW9fZWxlbWVudCIKCiAgICBwcml2YXRlIHZpZGVvRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIikKICAgIHByaXZhdGUgb2xkVHJhY2s6IE1lZGlhU3RyZWFtVHJhY2sgfCBudWxsID0gbnVsbAogICAgcHJpdmF0ZSBzdHJlYW0gPSBuZXcgTWVkaWFTdHJlYW0oKQoKICAgIHByaXZhdGUgc2l6ZTogW251bWJlciwgbnVtYmVyXSB8IG51bGwgPSBudWxsCiAgICBwcml2YXRlIGhkckVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZQoKICAgIGNvbnN0cnVjdG9yKCkgewogICAgICAgIHRoaXMudmlkZW9FbGVtZW50LmNsYXNzTGlzdC5hZGQoInZpZGVvLXN0cmVhbSIpCiAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQucHJlbG9hZCA9ICJub25lIgogICAgICAgIHRoaXMudmlkZW9FbGVtZW50LmNvbnRyb2xzID0gZmFsc2UKICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5hdXRvcGxheSA9IHRydWUKICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5kaXNhYmxlUGljdHVyZUluUGljdHVyZSA9IHRydWUKICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5wbGF5c0lubGluZSA9IHRydWUKICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5tdXRlZCA9IHRydWUKCiAgICAgICAgaWYgKCJzcmNPYmplY3QiIGluIHRoaXMudmlkZW9FbGVtZW50KSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5zcmNPYmplY3QgPSB0aGlzLnN0cmVhbQogICAgICAgICAgICB9IGNhdGNoIChlcnI6IGFueSkgewogICAgICAgICAgICAgICAgaWYgKGVyci5uYW1lICE9PSAiVHlwZUVycm9yIikgewogICAgICAgICAgICAgICAgICAgIHRocm93IGVycjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycikKICAgICAgICAgICAgICAgIHRocm93IGB2aWRlb19lbGVtZW50IHJlbmRlcmVyIG5vdCBzdXBwb3J0ZWQ6ICR7ZXJyfWAKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgYWRkUGlwZVBhc3N0aHJvdWdoKHRoaXMpCiAgICB9CgogICAgYXN5bmMgc2V0dXAoc2V0dXA6IFZpZGVvUmVuZGVyZXJTZXR1cCkgewogICAgICAgIHRoaXMuc2l6ZSA9IFtzZXR1cC53aWR0aCwgc2V0dXAuaGVpZ2h0XQogICAgfQogICAgY2xlYW51cCgpOiB2b2lkIHsKICAgICAgICBpZiAodGhpcy5vbGRUcmFjaykgewogICAgICAgICAgICB0aGlzLnN0cmVhbS5yZW1vdmVUcmFjayh0aGlzLm9sZFRyYWNrKQogICAgICAgIH0KICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5zcmNPYmplY3QgPSBudWxsCiAgICB9CgogICAgc2V0VHJhY2sodHJhY2s6IE1lZGlhU3RyZWFtVHJhY2spOiB2b2lkIHsKICAgICAgICBpZiAodGhpcy5vbGRUcmFjaykgewogICAgICAgICAgICB0aGlzLnN0cmVhbS5yZW1vdmVUcmFjayh0aGlzLm9sZFRyYWNrKQogICAgICAgIH0KCiAgICAgICAgdGhpcy5zdHJlYW0uYWRkVHJhY2sodHJhY2spCiAgICAgICAgdGhpcy5vbGRUcmFjayA9IHRyYWNrCiAgICB9CgogICAgcG9sbFJlcXVlc3RJZHIoKTogYm9vbGVhbiB7CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgICB9CgogICAgbW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZCh0aGlzLnZpZGVvRWxlbWVudCkKICAgIH0KICAgIHVubW91bnQocGFyZW50OiBIVE1MRWxlbWVudCk6IHZvaWQgewogICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZCh0aGlzLnZpZGVvRWxlbWVudCkKICAgIH0KCiAgICBvblVzZXJJbnRlcmFjdGlvbigpOiB2b2lkIHsKICAgICAgICBpZiAodGhpcy52aWRlb0VsZW1lbnQucGF1c2VkKSB7CiAgICAgICAgICAgIHRoaXMudmlkZW9FbGVtZW50LnBsYXkoKS50aGVuKCgpID0+IHsKICAgICAgICAgICAgICAgIC8vIFBsYXlpbmcKICAgICAgICAgICAgfSkuY2F0Y2goZXJyb3IgPT4gewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHBsYXkgdmlkZW9FbGVtZW50OiAke2Vycm9yLm1lc3NhZ2UgfHwgZXJyb3J9YCk7CiAgICAgICAgICAgIH0pCiAgICAgICAgfQogICAgfQogICAgcHJpdmF0ZSBnZXRFZmZlY3RpdmVWaWRlb1NpemUoKTogW251bWJlciwgbnVtYmVyXSB8IG51bGwgewogICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy52aWRlb0VsZW1lbnQudmlkZW9XaWR0aAogICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMudmlkZW9FbGVtZW50LnZpZGVvSGVpZ2h0CiAgICAgICAgaWYgKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7CiAgICAgICAgICAgIHJldHVybiBbd2lkdGgsIGhlaWdodF0KICAgICAgICB9CgogICAgICAgIHJldHVybiB0aGlzLnNpemUKICAgIH0KICAgIGdldFN0cmVhbVJlY3QoKTogRE9NUmVjdCB7CiAgICAgICAgY29uc3QgZWZmZWN0aXZlU2l6ZSA9IHRoaXMuZ2V0RWZmZWN0aXZlVmlkZW9TaXplKCkKICAgICAgICBpZiAoIWVmZmVjdGl2ZVNpemUpIHsKICAgICAgICAgICAgcmV0dXJuIG5ldyBET01SZWN0KCkKICAgICAgICB9CgogICAgICAgIHJldHVybiBnZXRTdHJlYW1SZWN0Q29ycmVjdGVkKHRoaXMudmlkZW9FbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLCBlZmZlY3RpdmVTaXplKQogICAgfQoKICAgIGdldEJhc2UoKTogUGlwZSB8IG51bGwgewogICAgICAgIHJldHVybiBudWxsCiAgICB9CgogICAgc2V0SGRyTW9kZShlbmFibGVkOiBib29sZWFuKTogdm9pZCB7CiAgICAgICAgdGhpcy5oZHJFbmFibGVkID0gZW5hYmxlZAogICAgICAgIC8vIFJlcXVlc3QgSERSIGRpc3BsYXkgbW9kZSBpZiBzdXBwb3J0ZWQKICAgICAgICBpZiAoZW5hYmxlZCAmJiAicmVxdWVzdEhEUiIgaW4gdGhpcy52aWRlb0VsZW1lbnQpIHsKICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICh0aGlzLnZpZGVvRWxlbWVudCBhcyBhbnkpLnJlcXVlc3RIRFIoKQogICAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybigiRmFpbGVkIHRvIHJlcXVlc3QgSERSIG1vZGU6IiwgZXJyKQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIFNldCBjb2xvciBzcGFjZSBhdHRyaWJ1dGVzIGZvciBIRFIKICAgICAgICBpZiAoZW5hYmxlZCkgewogICAgICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5zZXRBdHRyaWJ1dGUoImNvbG9yLWdhbXV0IiwgInJlYzIwMjAiKQogICAgICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5zZXRBdHRyaWJ1dGUoInRyYW5zZmVyLWZ1bmN0aW9uIiwgInBxIikKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoImNvbG9yLWdhbXV0IikKICAgICAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJ0cmFuc2Zlci1mdW5jdGlvbiIpCiAgICAgICAgfQogICAgfQp9CgpleHBvcnQgY2xhc3MgVXJsVmlkZW9FbGVtZW50UmVuZGVyZXIgaW1wbGVtZW50cyBVcmxWaWRlb1JlbmRlcmVyLCBWaWRlb1JlbmRlcmVyIHsKICAgIHN0YXRpYyByZWFkb25seSB0eXBlID0gInZpZGVvdXJsIgoKICAgIHN0YXRpYyBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+IHsKICAgICAgICBjb25zdCBzdXBwb3J0ZWQgPSAiSFRNTFZpZGVvRWxlbWVudCIgaW4gZ2xvYmFsT2JqZWN0KCkgJiYgInNyYyIgaW4gSFRNTFZpZGVvRWxlbWVudC5wcm90b3R5cGUKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6IHN1cHBvcnRlZCwKICAgICAgICAgICAgc3VwcG9ydGVkVmlkZW9Db2RlY3M6IHN1cHBvcnRlZCA/IGRldGVjdENvZGVjcygpIDogZW1wdHlWaWRlb0NvZGVjcygpCiAgICAgICAgfQogICAgfQoKICAgIHJlYWRvbmx5IGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nID0gInZpZGVvX2VsZW1lbnQiCgogICAgcHJpdmF0ZSB2aWRlb0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ2aWRlbyIpCgogICAgcHJpdmF0ZSBzaXplOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCA9IG51bGwKCiAgICBjb25zdHJ1Y3RvcigpIHsKICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJ2aWRlby1zdHJlYW0iKQogICAgICAgIHRoaXMudmlkZW9FbGVtZW50LnByZWxvYWQgPSAibm9uZSIKICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5jb250cm9scyA9IGZhbHNlCiAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQuYXV0b3BsYXkgPSB0cnVlCiAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQuZGlzYWJsZVBpY3R1cmVJblBpY3R1cmUgPSB0cnVlCiAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQucGxheXNJbmxpbmUgPSB0cnVlCiAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQubXV0ZWQgPSB0cnVlCgogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKQogICAgfQoKICAgIGFzeW5jIHNldHVwKHNldHVwOiBWaWRlb1JlbmRlcmVyU2V0dXApIHsKICAgICAgICB0aGlzLnNpemUgPSBbc2V0dXAud2lkdGgsIHNldHVwLmhlaWdodF0KICAgIH0KICAgIGNsZWFudXAoKTogdm9pZCB7IH0KCiAgICBzZXRVcmwoc3JjOiBzdHJpbmcpOiB2b2lkIHsKICAgICAgICB0aGlzLnZpZGVvRWxlbWVudC5zcmMgPSBzcmMKICAgIH0KCiAgICBwb2xsUmVxdWVzdElkcigpOiBib29sZWFuIHsKICAgICAgICByZXR1cm4gZmFsc2UKICAgIH0KCiAgICBtb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHRoaXMudmlkZW9FbGVtZW50KQogICAgfQogICAgdW5tb3VudChwYXJlbnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7CiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHRoaXMudmlkZW9FbGVtZW50KQogICAgfQoKICAgIG9uVXNlckludGVyYWN0aW9uKCk6IHZvaWQgewogICAgICAgIGlmICh0aGlzLnZpZGVvRWxlbWVudC5wYXVzZWQpIHsKICAgICAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQucGxheSgpLnRoZW4oKCkgPT4gewogICAgICAgICAgICAgICAgLy8gUGxheWluZwogICAgICAgICAgICB9KS5jYXRjaChlcnJvciA9PiB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gcGxheSB2aWRlb0VsZW1lbnQ6ICR7ZXJyb3IubWVzc2FnZSB8fCBlcnJvcn1gKTsKICAgICAgICAgICAgfSkKICAgICAgICB9CiAgICB9CiAgICBwcml2YXRlIGdldEVmZmVjdGl2ZVZpZGVvU2l6ZSgpOiBbbnVtYmVyLCBudW1iZXJdIHwgbnVsbCB7CiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLnZpZGVvRWxlbWVudC52aWRlb1dpZHRoCiAgICAgICAgY29uc3QgaGVpZ2h0ID0gdGhpcy52aWRlb0VsZW1lbnQudmlkZW9IZWlnaHQKICAgICAgICBpZiAod2lkdGggPiAwICYmIGhlaWdodCA+IDApIHsKICAgICAgICAgICAgcmV0dXJuIFt3aWR0aCwgaGVpZ2h0XQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZQogICAgfQogICAgZ2V0U3RyZWFtUmVjdCgpOiBET01SZWN0IHsKICAgICAgICBjb25zdCBlZmZlY3RpdmVTaXplID0gdGhpcy5nZXRFZmZlY3RpdmVWaWRlb1NpemUoKQogICAgICAgIGlmICghZWZmZWN0aXZlU2l6ZSkgewogICAgICAgICAgICByZXR1cm4gbmV3IERPTVJlY3QoKQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGdldFN0cmVhbVJlY3RDb3JyZWN0ZWQodGhpcy52aWRlb0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksIGVmZmVjdGl2ZVNpemUpCiAgICB9CgogICAgZ2V0QmFzZSgpOiBQaXBlIHwgbnVsbCB7CiAgICAgICAgcmV0dXJuIG51bGwKICAgIH0KCiAgICBzZXRIZHJNb2RlKGVuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHsKICAgICAgICAvLyBSZXF1ZXN0IEhEUiBkaXNwbGF5IG1vZGUgaWYgc3VwcG9ydGVkCiAgICAgICAgaWYgKGVuYWJsZWQgJiYgInJlcXVlc3RIRFIiIGluIHRoaXMudmlkZW9FbGVtZW50KSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAodGhpcy52aWRlb0VsZW1lbnQgYXMgYW55KS5yZXF1ZXN0SERSKCkKICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oIkZhaWxlZCB0byByZXF1ZXN0IEhEUiBtb2RlOiIsIGVycikKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyBTZXQgY29sb3Igc3BhY2UgYXR0cmlidXRlcyBmb3IgSERSCiAgICAgICAgaWYgKGVuYWJsZWQpIHsKICAgICAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQuc2V0QXR0cmlidXRlKCJjb2xvci1nYW11dCIsICJyZWMyMDIwIikKICAgICAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zlci1mdW5jdGlvbiIsICJwcSIpCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy52aWRlb0VsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCJjb2xvci1nYW11dCIpCiAgICAgICAgICAgIHRoaXMudmlkZW9FbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgidHJhbnNmZXItZnVuY3Rpb24iKQogICAgICAgIH0KICAgIH0KfQo="},{"path":"web/stream/video/video_frame.ts","sha256":"cf17975dfddbca64424b6f1a1f5726a3617ba5d7b9bafd61b0c4fb9fb63be999","contentBase64":"aW1wb3J0IHsgUGlwZSwgUGlwZUluZm8gfSBmcm9tICIuLi9waXBlbGluZS9pbmRleC5qcyIKaW1wb3J0IHsgYWRkUGlwZVBhc3N0aHJvdWdoIH0gZnJvbSAiLi4vcGlwZWxpbmUvcGlwZXMuanMiCmltcG9ydCB7IFJnYmFGcmFtZVZpZGVvUmVuZGVyZXIsIFl1djQyMEZyYW1lVmlkZW9SZW5kZXJlciwgWXV2NDIwVmlkZW9GcmFtZSB9IGZyb20gIi4vaW5kZXguanMiCgpleHBvcnQgY2xhc3MgWXV2NDIwVG9SZ2JhRnJhbWVQaXBlIGltcGxlbWVudHMgWXV2NDIwRnJhbWVWaWRlb1JlbmRlcmVyIHsKICAgIHN0YXRpYyBhc3luYyBnZXRJbmZvKCk6IFByb21pc2U8UGlwZUluZm8+IHsKICAgICAgICAvLyBubyBsaW5rCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgZW52aXJvbm1lbnRTdXBwb3J0ZWQ6IHRydWUsCiAgICAgICAgfQogICAgfQoKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZTogc3RyaW5nID0gInJnYmF2aWRlb2ZyYW1lIgogICAgc3RhdGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9ICJ5dXY0MjB2aWRlb2ZyYW1lIgoKICAgIHJlYWRvbmx5IGltcGxlbWVudGF0aW9uTmFtZTogc3RyaW5nCgogICAgcHJpdmF0ZSBiYXNlOiBSZ2JhRnJhbWVWaWRlb1JlbmRlcmVyCiAgICBwcml2YXRlIGJ1ZmZlciA9IG5ldyBVaW50OENsYW1wZWRBcnJheSgwKQoKICAgIGNvbnN0cnVjdG9yKGJhc2U6IFJnYmFGcmFtZVZpZGVvUmVuZGVyZXIpIHsKICAgICAgICB0aGlzLmJhc2UgPSBiYXNlCiAgICAgICAgdGhpcy5pbXBsZW1lbnRhdGlvbk5hbWUgPSBgeXV2NDIwX3RvX3JnYmFfZnJhbWUgLT4gJHt0aGlzLmJhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAKCiAgICAgICAgYWRkUGlwZVBhc3N0aHJvdWdoKHRoaXMpCiAgICB9CgogICAgc3VibWl0UmF3RnJhbWUoZnJhbWU6IFl1djQyMFZpZGVvRnJhbWUpOiB2b2lkIHsKICAgICAgICBjb25zdCBidWZmZXJTaXplID0gZnJhbWUud2lkdGggKiBmcmFtZS5oZWlnaHQgKiA0CgogICAgICAgIGlmICh0aGlzLmJ1ZmZlci5sZW5ndGggPCBidWZmZXJTaXplKSB7CiAgICAgICAgICAgIHRoaXMuYnVmZmVyID0gbmV3IFVpbnQ4Q2xhbXBlZEFycmF5KGJ1ZmZlclNpemUpCiAgICAgICAgfQoKICAgICAgICBsZXQgcmdiYUluZGV4ID0gMAoKICAgICAgICBmb3IgKGxldCB5ID0gMDsgeSA8IGZyYW1lLmhlaWdodDsgeSsrKSB7CiAgICAgICAgICAgIGNvbnN0IHlSb3cgPSB5ICogZnJhbWUueVN0cmlkZQogICAgICAgICAgICBjb25zdCB1dlJvdyA9ICh5ID4+IDEpICogZnJhbWUudXZTdHJpZGUKCiAgICAgICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgZnJhbWUud2lkdGg7IHgrKykgewogICAgICAgICAgICAgICAgY29uc3QgeVZhbHVlID0gZnJhbWUueVBsYW5lW3lSb3cgKyB4XQoKICAgICAgICAgICAgICAgIGNvbnN0IHV2SW5kZXggPSB1dlJvdyArICh4ID4+IDEpCiAgICAgICAgICAgICAgICBjb25zdCB1VmFsdWUgPSBmcmFtZS51UGxhbmVbdXZJbmRleF0gLSAxMjgKICAgICAgICAgICAgICAgIGNvbnN0IHZWYWx1ZSA9IGZyYW1lLnZQbGFuZVt1dkluZGV4XSAtIDEyOAoKICAgICAgICAgICAgICAgIC8vIEJULjYwMSBjb252ZXJzaW9uCiAgICAgICAgICAgICAgICBsZXQgciA9IHlWYWx1ZSArIDEuNDAyICogdlZhbHVlCiAgICAgICAgICAgICAgICBsZXQgZyA9IHlWYWx1ZSAtIDAuMzQ0MTM2ICogdVZhbHVlIC0gMC43MTQxMzYgKiB2VmFsdWUKICAgICAgICAgICAgICAgIGxldCBiID0geVZhbHVlICsgMS43NzIgKiB1VmFsdWUKCiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltyZ2JhSW5kZXgrK10gPSBNYXRoLm1heCgwLCBNYXRoLm1pbigyNTUsIHIpKQogICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbcmdiYUluZGV4KytdID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oMjU1LCBnKSkKICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW3JnYmFJbmRleCsrXSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDI1NSwgYikpCiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltyZ2JhSW5kZXgrK10gPSAyNTUKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgdGhpcy5iYXNlLnN1Ym1pdFJhd0ZyYW1lKHsKICAgICAgICAgICAgYnVmZmVyOiB0aGlzLmJ1ZmZlci5zdWJhcnJheSgwLCBidWZmZXJTaXplKSwKICAgICAgICAgICAgd2lkdGg6IGZyYW1lLndpZHRoLAogICAgICAgICAgICBoZWlnaHQ6IGZyYW1lLmhlaWdodCwKICAgICAgICAgICAgdGltZXN0YW1wTWljcm9zZWNvbmRzOiBmcmFtZS50aW1lc3RhbXBNaWNyb3NlY29uZHMsCiAgICAgICAgICAgIGR1cmF0aW9uTWljcm9zZWNvbmRzOiBmcmFtZS5kdXJhdGlvbk1pY3Jvc2Vjb25kcywKICAgICAgICB9KQogICAgfQoKICAgIGdldEJhc2UoKTogUGlwZSB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLmJhc2UKICAgIH0KfQo="},{"path":"web/stream/video/video_track_generator.ts","sha256":"c5e38e29d43f1116cac10dafd67441e4b915635b20dc46cbc2e927d951be92e0","contentBase64":"aW1wb3J0IHsgZ2xvYmFsT2JqZWN0IH0gZnJvbSAiLi4vLi4vdXRpbC5qcyI7CmltcG9ydCB7IFBpcGUsIFBpcGVJbmZvIH0gZnJvbSAiLi4vcGlwZWxpbmUvaW5kZXguanMiOwppbXBvcnQgeyBhZGRQaXBlUGFzc3Rocm91Z2ggfSBmcm9tICIuLi9waXBlbGluZS9waXBlcy5qcyI7CmltcG9ydCB7IGFsbFZpZGVvQ29kZWNzIH0gZnJvbSAiLi4vdmlkZW8uanMiOwppbXBvcnQgeyBGcmFtZVZpZGVvUmVuZGVyZXIsIFRyYWNrVmlkZW9SZW5kZXJlciB9IGZyb20gIi4vaW5kZXguanMiOwoKZXhwb3J0IGNsYXNzIFZpZGVvVHJhY2tHZW5lcmF0b3JQaXBlIGltcGxlbWVudHMgRnJhbWVWaWRlb1JlbmRlcmVyIHsKICAgIHN0YXRpYyByZWFkb25seSBiYXNlVHlwZSA9ICJ2aWRlb3RyYWNrIgogICAgc3RhdGljIHJlYWRvbmx5IHR5cGUgPSAidmlkZW9mcmFtZSIKCiAgICBzdGF0aWMgYXN5bmMgZ2V0SW5mbygpOiBQcm9taXNlPFBpcGVJbmZvPiB7CiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1ZpZGVvVHJhY2tHZW5lcmF0b3IKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBlbnZpcm9ubWVudFN1cHBvcnRlZDogIlZpZGVvVHJhY2tHZW5lcmF0b3IiIGluIGdsb2JhbE9iamVjdCgpLAogICAgICAgICAgICBzdXBwb3J0ZWRWaWRlb0NvZGVjczogYWxsVmlkZW9Db2RlY3MoKQogICAgICAgIH0KICAgIH0KCiAgICByZWFkb25seSBpbXBsZW1lbnRhdGlvbk5hbWU6IHN0cmluZwoKICAgIHByaXZhdGUgYmFzZTogVHJhY2tWaWRlb1JlbmRlcmVyCgogICAgcHJpdmF0ZSB0cmFja0dlbmVyYXRvcjogVmlkZW9UcmFja0dlbmVyYXRvcgogICAgcHJpdmF0ZSB3cml0ZXI6IFdyaXRhYmxlU3RyZWFtRGVmYXVsdFdyaXRlcjxWaWRlb0ZyYW1lPgoKICAgIGNvbnN0cnVjdG9yKGJhc2U6IFRyYWNrVmlkZW9SZW5kZXJlcikgewogICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb25OYW1lID0gYHZpZGVvX3RyYWNrX2dlbmVyYXRvciAtPiAke2Jhc2UuaW1wbGVtZW50YXRpb25OYW1lfWAKICAgICAgICB0aGlzLmJhc2UgPSBiYXNlCgogICAgICAgIHRoaXMudHJhY2tHZW5lcmF0b3IgPSBuZXcgVmlkZW9UcmFja0dlbmVyYXRvcigpCiAgICAgICAgdGhpcy53cml0ZXIgPSB0aGlzLnRyYWNrR2VuZXJhdG9yLndyaXRhYmxlLmdldFdyaXRlcigpCgogICAgICAgIGFkZFBpcGVQYXNzdGhyb3VnaCh0aGlzKQogICAgfQoKICAgIHByaXZhdGUgaXNGaXJzdFNhbXBsZSA9IHRydWUKICAgIHN1Ym1pdEZyYW1lKGZyYW1lOiBWaWRlb0ZyYW1lKTogdm9pZCB7CiAgICAgICAgaWYgKHRoaXMuaXNGaXJzdFNhbXBsZSkgewogICAgICAgICAgICB0aGlzLmlzRmlyc3RTYW1wbGUgPSBmYWxzZQoKICAgICAgICAgICAgdGhpcy5iYXNlLnNldFRyYWNrKHRoaXMudHJhY2tHZW5lcmF0b3IudHJhY2spCiAgICAgICAgfQogICAgICAgIHRoaXMud3JpdGVyLndyaXRlKGZyYW1lKQogICAgfQoKICAgIGdldEJhc2UoKTogUGlwZSB8IG51bGwgewogICAgICAgIHJldHVybiB0aGlzLmJhc2UKICAgIH0KfQ=="},{"path":"web/styles/index.ts","sha256":"697248ad61549ceff34e565575d324d3e29871ff97051535e87e5659c4fcb8c7","contentBase64":"aW1wb3J0IHsgZ2xvYmFsRGVmYXVsdFNldHRpbmdzLCBnZXRMb2NhbFN0cmVhbVNldHRpbmdzIH0gZnJvbSAiLi4vY29tcG9uZW50L3NldHRpbmdzX21lbnUuanMiCgovLyBvbGQgZG9lc24ndCBleGlzdCBhbnltb3JlIGFuZCBpcyBhbHdheXMgcmVwbGFjZWQgd2l0aCBtb29ubGlnaHQgd2hlbiBsb2FkaW5nIHRoZSBzZXR0aW5ncwpleHBvcnQgdHlwZSBQYWdlU3R5bGUgPSAic3RhbmRhcmQiIHwgIm9sZCIgfCAibW9vbmxpZ2h0IgoKbGV0IGN1cnJlbnRTdHlsZTogUGFnZVN0eWxlIHwgbnVsbCA9IG51bGwKY29uc3Qgc3R5bGVMaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0eWxlIikgYXMgSFRNTExpbmtFbGVtZW50CgpmdW5jdGlvbiB0b0Fic29sdXRlKHBhdGg6IHN0cmluZykgewogICAgcmV0dXJuIG5ldyBVUkwocGF0aCwgZG9jdW1lbnQuYmFzZVVSSSkuaHJlZgp9CgpleHBvcnQgZnVuY3Rpb24gc2V0U3R5bGUoc3R5bGU6IFBhZ2VTdHlsZSkgewogICAgaWYgKCFjdXJyZW50U3R5bGUpIHsKICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlTGluaykKICAgIH0KCiAgICBjb25zdCBwYXRoID0gYHN0eWxlcy8ke3N0eWxlfS5jc3NgCiAgICBjb25zdCBhYnNvbHV0ZSA9IHRvQWJzb2x1dGUocGF0aCkKCiAgICBpZiAoc3R5bGVMaW5rLmhyZWYgIT09IGFic29sdXRlKSB7CiAgICAgICAgc3R5bGVMaW5rLmhyZWYgPSBhYnNvbHV0ZQogICAgfQoKICAgIGN1cnJlbnRTdHlsZSA9IHN0eWxlCn0KCmV4cG9ydCBmdW5jdGlvbiBnZXRTdHlsZSgpOiBQYWdlU3R5bGUgewogICAgcmV0dXJuIGN1cnJlbnRTdHlsZSBhcyBQYWdlU3R5bGUKfQoKY29uc3Qgc2V0dGluZ3MgPSBnZXRMb2NhbFN0cmVhbVNldHRpbmdzKGdsb2JhbERlZmF1bHRTZXR0aW5ncygpKQoKc2V0U3R5bGUoc2V0dGluZ3MucGFnZVN0eWxlKQo="},{"path":"web/styles/moonlight.css","sha256":"59d19aa3293925e8902f1ccc24b2b4cb5069faf1c7362ef4baea1e731cf765e3","contentBase64":"LyogTW9vbmxpZ2h0IHRvcCBiYXIgbGF5b3V0ICovCjpyb290IHsKICAgIC0tbWwtdG9wYmFyLWhlaWdodDogNTZweDsKICAgIC0tbWwtdG9wYmFyLXBhZGRpbmcteDogMTZweDsKICAgIC0tbWwtdG9wYmFyLWJnOiAjM2Y1MWI1OwogICAgLS1tbC10b3BiYXItaWNvbi1zaXplOiAyNnB4OwogICAgLS1tbC10b3BiYXItaWNvbi1idXR0b246IDM2cHg7CiAgICAtLW1sLXRvcGJhci1hY3Rpb25zLW9mZnNldDogODhweDsKfQoKYm9keSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzMzMzMzOwogICAgY29sb3I6ICNmZmZmZmY7CiAgICBmb250LXNpemU6IDEuMnJlbTsKICAgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOwp9CgphLApsYWJlbCwKaW5wdXQsCnNlbGVjdCwKdGV4dGFyZWEsCmJ1dHRvbiwKLnRleHRsaWtlLAouc2VsZWN0LXBvbHlmaWxsLWRpc3BsYXkgewogICAgY29sb3I6ICNmZmZmZmY7Cn0KCi8qIE1ha2Ugcm9vbSBmb3IgdGhlIGZpeGVkIHRvcCBiYXIgKG5vbi1zdHJlYW0gcGFnZXMpICovCmJvZHk6bm90KC5zdHJlYW0pIHsKICAgIHBhZGRpbmctdG9wOiB2YXIoLS1tbC10b3BiYXItaGVpZ2h0KTsKfQoKLyogUHJldmVudCBwdWxsIGRvd24gcmVmcmVzaCB3aGVuIFN0cmVhbWluZyAqLwpodG1sLnN0cmVhbSwKYm9keS5zdHJlYW0gewogICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogbm9uZSAhaW1wb3J0YW50Owp9CgpoMiwKaDMgewogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKLyoqIElucHV0IERpdiAqLwouaW5wdXQtZGl2IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoKLyoqIEhpZGUgdGhlIGZpbGUgaW5wdXQgKi8KaW5wdXRbdHlwZT0iZmlsZSJdIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KCi8qKiBMYWJlbCAqLwouZmlsZS1sYWJlbCwKbGFiZWwgewogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgbWFyZ2luLXJpZ2h0OiA1cHg7Cn0KCi8qKiBCdXR0b24gKi8KLmZpbGUtYnV0dG9uLApidXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2MywgODEsIDE4MSwgMS4wKTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIHBhZGRpbmc6IDVweDsKICAgIG1hcmdpbjogOHB4OwogICAgZm9udC1zaXplOiAxLjJyZW07CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKfQoKLmZpbGUtYnV0dG9uOmhvdmVyLApidXR0b246aG92ZXI6bm90KC5sb2dvdXQtYnV0dG9uKTpub3QoLmFkbWluLWJ1dHRvbik6bm90KC5vcGVuLXNldHRpbmdzKTpub3QoLmhvc3QtYWRkKSB7CiAgICBib3gtc2hhZG93OiBub25lOwp9CgoKLyogRGlzYWJsZSBhbGwgZmFuY3kgZWZmZWN0cyB3aGVuIHRoZSBidXR0b24gaXMgZGlzYWJsZWQgKi8KYnV0dG9uOmRpc2FibGVkIHsKICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXkgIWltcG9ydGFudDsKfQoKLmJ1dHRvbi1maXQtY29udGVudCB7CiAgICBoZWlnaHQ6IGZpdC1jb250ZW50Owp9CgovKiogQ2hlY2tib3ggKi8KaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7CiAgICAvKiByZW1vdmUgbmF0aXZlIGJveCAqLwogICAgYXBwZWFyYW5jZTogbm9uZTsKICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIGJvcmRlcjogMnB4IHNvbGlkICM1NTU7CiAgICBib3JkZXItcmFkaXVzOiA2cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KCmlucHV0W3R5cGU9ImNoZWNrYm94Il06OmFmdGVyIHsKICAgIGNvbnRlbnQ6ICLinJMiOwogICAgY29sb3I6IHdoaXRlOwogICAgZm9udC1zaXplOiAxOHB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgdG9wOiA1MCU7CiAgICBsZWZ0OiA1MCU7CiAgICAvKiBzdGFydCBoaWRkZW4gKi8KICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHNjYWxlKDApOwogICAgb3BhY2l0eTogMDsKICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIG9wYWNpdHkgMC4ycyBlYXNlOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQgewogICAgLyogYm94IGZpbGwgKi8KICAgIGJhY2tncm91bmQ6IHJnYigyMDYsIDE0NywgMjE2KTsKICAgIGJvcmRlci1jb2xvcjogcmdiKDIwNiwgMTQ3LCAyMTYpOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmNoZWNrZWQ6OmFmdGVyIHsKICAgIC8qIHNjYWxlIGluICovCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgxKTsKICAgIG9wYWNpdHk6IDE7Cn0KCmlucHV0W3R5cGU9ImNoZWNrYm94Il06ZGlzYWJsZWQgewogICAgY29sb3I6IG5vbmU7CiAgICBib3JkZXItY29sb3I6IGJsYWNrOwogICAgYm94LXNoYWRvdzogbm9uZTsKfQoKCi8qKiBTbGlkZXIgKi8KaW5wdXRbdHlwZT0icmFuZ2UiXSB7CiAgICBhY2NlbnQtY29sb3I6IHJnYmEoNjMsIDgxLCAxODEsIDEuMCk7CgogICAgd2lkdGg6IDIwMHB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgbWFyZ2luOiA4cHg7CgogICAgb3ZlcmZsb3c6IGhpZGRlbjsKCiAgICBjdXJzb3I6IGdyYWI7Cn0KCmlucHV0W3R5cGU9InJhbmdlIl06YWN0aXZlIHsKICAgIGN1cnNvcjogZ3JhYmJpbmc7Cn0KCi8qKiBUZXh0IEZpZWxkIGxpa2VzICAqLwoudGV4dGxpa2UsCnRleHRhcmVhLApzZWxlY3QsCi5zZWxlY3QtcG9seWZpbGwtZGlzcGxheSwKaW5wdXRbdHlwZT10ZXh0XSwKaW5wdXRbdHlwZT1wYXNzd29yZF0sCmlucHV0W3R5cGU9bnVtYmVyXSB7CiAgICBjb2xvcjogd2hpdGU7CiAgICBmb250LXNpemU6IDEuMnJlbTsKICAgIG1hcmdpbjogNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjIpOwogICAgYm9yZGVyLXJhZGl1czogMnB4OwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpOwogICAgLyogbXVsdGlsaW5lICovCiAgICBvdmVyZmxvdy14OiBhdXRvOwogICAgb3ZlcmZsb3cteTogYXV0bzsKICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCiAgICBtYXgtaGVpZ2h0OiBtYXgtY29udGVudDsKfQoKLnRleHRsaWtlOmhvdmVyLAp0ZXh0YXJlYTpob3ZlcjplbmFibGVkLApzZWxlY3Q6aG92ZXI6ZW5hYmxlZCwKLnNlbGVjdC1wb2x5ZmlsbC1kaXNwbGF5OmhvdmVyLAppbnB1dFt0eXBlPXRleHRdOmhvdmVyOmVuYWJsZWQsCmlucHV0W3R5cGU9cGFzc3dvcmRdOmhvdmVyOmVuYWJsZWQsCmlucHV0W3R5cGU9Im51bWJlciJdOmhvdmVyOmVuYWJsZWQgewogICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogICAgYm9yZGVyLWNvbG9yOiByZ2IoMjU1LCAyNTUsIDI1NSwgMC43KTsKfQoKdGV4dGFyZWE6ZGlzYWJsZWQsCnNlbGVjdDpkaXNhYmxlZCwKLnNlbGVjdC1wb2x5ZmlsbC1kaXNwbGF5OmRpc2FibGVkLAppbnB1dFt0eXBlPXRleHRdOmRpc2FibGVkLAppbnB1dFt0eXBlPXBhc3N3b3JkXTpkaXNhYmxlZCwKaW5wdXRbdHlwZT1udW1iZXJdOmRpc2FibGVkIHsKICAgIGNvbG9yOiBncmF5Owp9CgppbnB1dFt0eXBlPXJhbmdlXTpkaXNhYmxlZCB7CiAgICBjb2xvcjogZ3JheTsKfQoKc2VsZWN0IG9wdGlvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoNjYsIDY2LCA2Nik7Cn0KCi8qKiBIaWRlIHRoZSBudW1iZXIgdXAgZG93biB0aGluZ3kgb24gbnVtYmVyIGlucHV0cyAqLwppbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwKaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24gewogICAgLyogZGlzcGxheTogbm9uZTsgPC0gQ3Jhc2hlcyBDaHJvbWUgb24gaG92ZXIgKi8KICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAgIC8qIDwtLSBBcHBhcmVudGx5IHNvbWUgbWFyZ2luIGFyZSBzdGlsbCB0aGVyZSBldmVuIHRob3VnaCBpdCdzIGhpZGRlbiAqLwogICAgbWFyZ2luOiAwOwp9CgppbnB1dFt0eXBlPW51bWJlcl0gewogICAgYXBwZWFyYW5jZTogdGV4dGZpZWxkOwogICAgLyogRmlyZWZveCAqLwogICAgLW1vei1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7Cn0KCi5saXN0LWxpa2UgewogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMDsKfQoKLyoqIFNlbGVjdCBlbGVtZW50IChkcm9wZG93bikgcG9seWZpbGwgKi8KLnNlbGVjdC1wb2x5ZmlsbC1kaXNwbGF5OjphZnRlciB7CiAgICBjb250ZW50OiAi4pa+IjsKICAgIGZsb2F0OiByaWdodDsKfQoKLnNlbGVjdC1wb2x5ZmlsbC13cmFwcGVyIHsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoKLnNlbGVjdC1wb2x5ZmlsbC1saXN0IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig0OCwgNDgsIDQ4KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7CiAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICBsZWZ0OiAwOwogICAgei1pbmRleDogMTsKICAgIGN1cnNvcjogcG9pbnRlcjsKfQoKLnNlbGVjdC1wb2x5ZmlsbC1saXN0LmJvdHRvbSB7CiAgICB0b3A6IDEwMCU7CiAgICBib3R0b206IGF1dG87Cn0KCi5zZWxlY3QtcG9seWZpbGwtbGlzdC50b3AgewogICAgYm90dG9tOiAxMDAlOwogICAgdG9wOiBhdXRvOwp9Cgouc2VsZWN0LXBvbHlmaWxsLWxpc3QgcCB7CiAgICBjb2xvcjogd2hpdGU7CiAgICBwYWRkaW5nLXRvcDogNXB4OwogICAgcGFkZGluZy1ib3R0b206IDVweDsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAwOwp9Cgouc2VsZWN0LXBvbHlmaWxsLWxpc3QgcDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUsIDEwMywgMjEwKTsKICAgIGNvbG9yOiB3aGl0ZTsKfQoKLnNlbGVjdC1wb2x5ZmlsbC13cmFwcGVyOmhvdmVyOm5vdCg6aGFzKC5zZWxlY3QtcG9seWZpbGwtbGlzdCBwOmhvdmVyKSkgLnNlbGVjdC1wb2x5ZmlsbC1zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUsIDEwMywgMjEwKTsKICAgIGNvbG9yOiB3aGl0ZTsKfQoKCi8qKiBNb2RhbCAqLwoubW9kYWwtYmFja2dyb3VuZCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IDUwMDA7CiAgICBsZWZ0OiAwOwogICAgdG9wOiAwOwogICAgd2lkdGg6IDEwMHZ3OwogICAgaGVpZ2h0OiAxMDB2aDsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC40KTsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcywgYmFja2dyb3VuZCAwLjFzIGxpbmVhciwgb3BhY2l0eSAwLjFzIGxpbmVhcjsKfQoKLm1vZGFsLWNvbnRlbnQgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogNTAwMTsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYig4NiwgOTIsIDEwMCk7CgogICAgbWFyZ2luOiAxNSUgYXV0bzsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjODg4OwogICAgYm9yZGVyLXJhZGl1czogNXB4OwoKICAgIHdpZHRoOiA4MCU7CgogICAgbWF4LWhlaWdodDogNjAlOwogICAgb3ZlcmZsb3cteTogYXV0bzsKfQoKLm1vZGFsLWRpc2FibGVkIHsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMXMgbGluZWFyOwp9CgovKiogQ29udGV4dCBNZW51ICovCi5jb250ZXh0LW1lbnUtYmFja2dyb3VuZCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IDE7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoODYsIDkyLCAxMDApOwogICAgLyoqIGFuaW1hdGlvbiAqLwogICAgc2NhbGU6IDE7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNsYXRlOiAwIDA7CiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IDBzLCBvcGFjaXR5IDAuMDVzIGxpbmVhciwgc2NhbGUgMC4wNXMgbGluZWFyLCB0cmFuc2xhdGUgMC4wNXMgbGluZWFyOwp9CgouY29udGV4dC1tZW51LWxpc3QgewogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9CgouY29udGV4dC1tZW51LWVsZW1lbnQgewogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMTBweDsKICAgIG1pbi13aWR0aDogMTEwcHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3JkZXItcmFkaXVzOiA1cHg7CiAgICAvKiogYW5pbWF0aW9uICovCiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApOwp9CgouY29udGV4dC1tZW51LWVsZW1lbnQ6aG92ZXIgewogICAgLyoqIGFuaW1hdGlvbiAqLwogICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7Cn0KCi5jb250ZXh0LW1lbnUtZWxlbWVudC1yZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzdkMGUwZTsKfQoKLmNvbnRleHQtbWVudS1lbGVtZW50LXJlZDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYTQzNTM1Owp9CgouY29udGV4dC1tZW51LWRpc2FibGVkIHsKICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIG9wYWNpdHk6IDA7CiAgICBzY2FsZTogMC43OwogICAgdHJhbnNsYXRlOiAtMzAlIC0zMCU7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xcyBsaW5lYXIsIG9wYWNpdHkgMC4xcyBlYXNlLW91dDsKfQoKLyoqIFNpZGViYXIgKi8KLnNpZGViYXItb3ZlcmxheSB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB6LWluZGV4OiAxOwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCi5zaWRlYmFyLWJhY2tncm91bmQgewogICAgZGlzcGxheTogZmxleDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDVweDsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIDBzIGxpbmVhcjsKfQoKLnNpZGViYXItYmFja2dyb3VuZCAqIHsKICAgIHBvaW50ZXItZXZlbnRzOiBhbGw7Cn0KCi5zaWRlYmFyLW92ZXJsYXkuc2lkZWJhci1lZGdlLWxlZnQgewogICAgdG9wOiA1MCU7CiAgICBsZWZ0OiAwOwp9Cgouc2lkZWJhci1lZGdlLWxlZnQgLnNpZGViYXItYmFja2dyb3VuZCB7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKC0xMDAlICsgNDBweCksIC01MCUpOwp9Cgouc2lkZWJhci1vdmVybGF5LnNpZGViYXItZWRnZS1yaWdodCB7CiAgICB0b3A6IDUwJTsKICAgIHJpZ2h0OiAwOwp9Cgouc2lkZWJhci1lZGdlLXJpZ2h0IC5zaWRlYmFyLWJhY2tncm91bmQgewogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGMoMTAwJSAtIDQwcHgpLCAtNTAlKTsKfQoKLnNpZGViYXItZWRnZS1sZWZ0LnNpZGViYXItc2hvdyAuc2lkZWJhci1iYWNrZ3JvdW5kLAouc2lkZWJhci1lZGdlLXJpZ2h0LnNpZGViYXItc2hvdyAuc2lkZWJhci1iYWNrZ3JvdW5kIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpOwp9Cgouc2lkZWJhci1vdmVybGF5LnNpZGViYXItZWRnZS11cCB7CiAgICB0b3A6IDA7CiAgICBsZWZ0OiA1MCU7Cn0KCi5zaWRlYmFyLWVkZ2UtdXAgLnNpZGViYXItYmFja2dyb3VuZCB7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCBjYWxjKC0xMDAlICsgNDBweCkpOwp9Cgouc2lkZWJhci1vdmVybGF5LnNpZGViYXItZWRnZS1kb3duIHsKICAgIGJvdHRvbTogMDsKICAgIGxlZnQ6IDUwJTsKfQoKLnNpZGViYXItZWRnZS1kb3duIC5zaWRlYmFyLWJhY2tncm91bmQgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIGNhbGMoMTAwJSAtIDQwcHgpKTsKfQoKLnNpZGViYXItZWRnZS1kb3duLnNpZGViYXItc2hvdyAuc2lkZWJhci1iYWNrZ3JvdW5kLAouc2lkZWJhci1lZGdlLXVwLnNpZGViYXItc2hvdyAuc2lkZWJhci1iYWNrZ3JvdW5kIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApOwp9Cgouc2lkZWJhci1idXR0b24gewogICAgLyoqIE5vdGU6IEJ1dHRvbiBmdWxsIHNpemU6IDMwcHgod2lkdGggLyBoZWlnaHQpICsgNXB4KHBhZGRpbmcgYXMgaW4gYnV0dG9uIHNlbGVjdG9yKSArIDVweCguc2lkZWJhci1iYWNrZ3JvdW5kIGdhcCkgPSA0MHB4ICovCiAgICB3aWR0aDogMzBweDsKICAgIGhlaWdodDogMzBweDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KCi5zaWRlYmFyLWJ1dHRvbi1pbWFnZSB7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBsaW5lYXI7Cn0KCi5zaWRlYmFyLWVkZ2UtbGVmdCAuc2lkZWJhci1idXR0b24taW1hZ2UgewogICAgcm90YXRlOiAxODBkZWc7Cn0KCi5zaWRlYmFyLWVkZ2UtcmlnaHQgLnNpZGViYXItYnV0dG9uLWltYWdlIHsKICAgIHJvdGF0ZTogMGRlZzsKfQoKLnNpZGViYXItZWRnZS11cCAuc2lkZWJhci1idXR0b24taW1hZ2UgewogICAgcm90YXRlOiAyNzBkZWc7Cn0KCi5zaWRlYmFyLWVkZ2UtZG93biAuc2lkZWJhci1idXR0b24taW1hZ2UgewogICAgcm90YXRlOiA5MGRlZzsKfQoKLnNpZGViYXItc2hvdyAuc2lkZWJhci1idXR0b24taW1hZ2UgewogICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsKfQoKCi5zaWRlYmFyLWNvbnRlbnQgewogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDg2LCA5MiwgMTAwKTsKICAgIGJvcmRlci1yYWRpdXM6IDVweDsKICAgIHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDEwcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKLyoqIFRPRE86IHJlb3JkZXIgc3RyZWFtIHNpZGViYXIgKi8KCi8qKiBOb3RpZmljYXRpb25zICovCi5ub3RpZmljYXRpb24tbGlzdCB7CiAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB6LWluZGV4OiAxOwoKICAgIHJpZ2h0OiAwOwogICAgYm90dG9tOiAwOwoKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgbWFyZ2luLXJpZ2h0OiAxY207Cn0KCi5ub3RpZmljYXRpb24tZWxlbWVudCB7CiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CgogICAgcGFkZGluZy1sZWZ0OiAwLjRjbTsKICAgIHBhZGRpbmctcmlnaHQ6IDAuNGNtOwogICAgcGFkZGluZy10b3A6IDAuMmNtOwogICAgcGFkZGluZy1ib3R0b206IDAuMmNtOwogICAgbWFyZ2luLWJvdHRvbTogMC41Y207CgogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDg2LCA5MiwgMTAwKTsKfQoKLmVycm9yLWltYWdlIHsKICAgIG1hcmdpbi1yaWdodDogMC4zY207Cn0KCi8qKiBBbmltYXRlZCBMaXN0cyAqLwouYW5pbWF0ZWQtbGlzdC1lbGVtZW50IHsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIG9wYWNpdHk6IDA7Cn0KCi5hbmltYXRlZC1saXN0LWVsZW1lbnQubGlzdC1zaG93IHsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjsKfQoKLyoqIHRvcCBsaW5lICovCi50b3AtbGluZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgY29sb3I6IHdoaXRlOwogICAgcG9zaXRpb246IGZpeGVkOwogICAgdG9wOiAwOwogICAgbGVmdDogMDsKICAgIHJpZ2h0OiAwOwogICAgaGVpZ2h0OiB2YXIoLS1tbC10b3BiYXItaGVpZ2h0KTsKICAgIHotaW5kZXg6IDEwMDA7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgcGFkZGluZzogMCB2YXIoLS1tbC10b3BiYXItcGFkZGluZy14KTsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tbC10b3BiYXItYmcpOwp9CgoudG9wLWxpbmU+aDEgewogICAgbWFyZ2luOiAwOwogICAgZm9udC1zaXplOiAxLjI1cmVtOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKICAgIGxpbmUtaGVpZ2h0OiAxOwogICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQoKLnRvcC1saW5lLWFjdGlvbnMgewogICAgcG9zaXRpb246IGZpeGVkOwogICAgcmlnaHQ6IHZhcigtLW1sLXRvcGJhci1wYWRkaW5nLXgpOwogICAgdG9wOiAwOwogICAgaGVpZ2h0OiB2YXIoLS1tbC10b3BiYXItaGVpZ2h0KTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiAxMHB4Owp9CgoudG9wLWxpbmUgYnV0dG9uLAoudG9wLWxpbmUtYWN0aW9ucyBidXR0b24sCi5hY3Rpb25zLWxpc3QgYnV0dG9uIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMDsKfQoKLnRvcC1saW5lIGJ1dHRvbjpob3ZlciwKLnRvcC1saW5lLWFjdGlvbnMgYnV0dG9uOmhvdmVyLAouYWN0aW9ucy1saXN0IGJ1dHRvbjpob3ZlciB7CiAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cn0KCi5sb2dvdXQtYnV0dG9uIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIuLi9yZXNvdXJjZXMvbmV3L2xvZ291dC1zdmdyZXBvLWNvbS5zdmciKTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLW1sLXRvcGJhci1pY29uLXNpemUpOwogICAgd2lkdGg6IHZhcigtLW1sLXRvcGJhci1pY29uLWJ1dHRvbik7CiAgICBoZWlnaHQ6IHZhcigtLW1sLXRvcGJhci1pY29uLWJ1dHRvbik7CiAgICBib3JkZXI6IG5vbmU7CiAgICBwYWRkaW5nOiAwOwogICAgbWFyZ2luOiAwOwp9CgoubG9naW4tYnV0dG9uIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIuLi9yZXNvdXJjZXMvbmV3L3VzZXIuc3ZnIik7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgYmFja2dyb3VuZC1zaXplOiB2YXIoLS1tbC10b3BiYXItaWNvbi1zaXplKTsKICAgIHdpZHRoOiB2YXIoLS1tbC10b3BiYXItaWNvbi1idXR0b24pOwogICAgaGVpZ2h0OiB2YXIoLS1tbC10b3BiYXItaWNvbi1idXR0b24pOwogICAgYm9yZGVyOiBub25lOwogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbjogMDsKfQoKLmFkbWluLWJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiLi4vcmVzb3VyY2VzL25ldy9hZG1pbi1zdmdyZXBvLWNvbS5zdmciKTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLW1sLXRvcGJhci1pY29uLXNpemUpOwogICAgd2lkdGg6IHZhcigtLW1sLXRvcGJhci1pY29uLWJ1dHRvbik7CiAgICBoZWlnaHQ6IHZhcigtLW1sLXRvcGJhci1pY29uLWJ1dHRvbik7CiAgICBib3JkZXI6IG5vbmU7CiAgICBwYWRkaW5nOiAwOwogICAgbWFyZ2luOiAwOwp9CgovKiogQWN0aW9ucyAqLwouYWN0aW9ucy1saXN0IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IDA7CiAgICByaWdodDogY2FsYyh2YXIoLS1tbC10b3BiYXItcGFkZGluZy14KSArIHZhcigtLW1sLXRvcGJhci1hY3Rpb25zLW9mZnNldCkpOwogICAgaGVpZ2h0OiB2YXIoLS1tbC10b3BiYXItaGVpZ2h0KTsKICAgIHotaW5kZXg6IDEwMDE7CiAgICBnYXA6IDEwcHg7CiAgICBwYWRkaW5nOiAwOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKLmFjdGlvbnMtbGlzdCAuYnV0dG9uLWZpdC1jb250ZW50IHsKICAgIHdpZHRoOiB2YXIoLS1tbC10b3BiYXItaWNvbi1idXR0b24pOwogICAgaGVpZ2h0OiB2YXIoLS1tbC10b3BiYXItaGVpZ2h0KTsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLW1sLXRvcGJhci1pY29uLXNpemUpOwogICAgY29sb3I6IHRyYW5zcGFyZW50OwogICAgdGV4dC1pbmRlbnQ6IC05OTk5cHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwoKICAgICZbZGF0YS12YXJpYW50PSJzYXZlLWJ1dHRvbiJdIHsKICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIi4uL3Jlc291cmNlcy9zYXZlLnN2ZyIpOwogICAgfQoKICAgICZbZGF0YS12YXJpYW50PSJiYWNrLWJ1dHRvbiJdIHsKICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIi4uL3Jlc291cmNlcy9hcnJvd19sZWZ0LnN2ZyIpOwogICAgfQp9CgovKiogU2V0dGluZ3MgKi8KLm9wZW4tc2V0dGluZ3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIi4uL3Jlc291cmNlcy9zZXR0aW5ncy5zdmciKTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLW1sLXRvcGJhci1pY29uLXNpemUpOwogICAgd2lkdGg6IHZhcigtLW1sLXRvcGJhci1pY29uLWJ1dHRvbik7CiAgICBoZWlnaHQ6IHZhcigtLW1sLXRvcGJhci1pY29uLWJ1dHRvbik7CiAgICBib3JkZXI6IG5vbmU7CiAgICBwYWRkaW5nOiAwOwogICAgbWFyZ2luOiAwOwp9Cgouc2V0dGluZ3MgewogICAgY29sb3I6IHdoaXRlOwp9CgovKiogSG9zdHMgKi8KLmhvc3QtYWRkIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIuLi9yZXNvdXJjZXMvaWNfYWRkX3RvX3F1ZXVlX3doaXRlXzQ4cHguc3ZnIik7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgYmFja2dyb3VuZC1zaXplOiB2YXIoLS1tbC10b3BiYXItaWNvbi1zaXplKTsKICAgIHdpZHRoOiB2YXIoLS1tbC10b3BiYXItaWNvbi1idXR0b24pOwogICAgaGVpZ2h0OiB2YXIoLS1tbC10b3BiYXItaWNvbi1idXR0b24pOwogICAgYm9yZGVyOiBub25lOwogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbjogMDsKfQoKLmhvc3QtbGlzdCB7CiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGdhcDogMzJweCA0MHB4OwogICAgcGFkZGluZzogMjRweCAzMnB4Owp9CgouaG9zdC1lbGVtZW50IHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7Cn0KCi5ob3N0LWVsZW1lbnQ6aG92ZXIgewogICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwogICAgYm9yZGVyLXJhZGl1czogOHB4Owp9CgouaG9zdC1lbGVtZW50PmRpdiB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IDEycHg7CiAgICBwYWRkaW5nOiA4cHggMTBweDsKfQoKLmhvc3QtaW1hZ2UgewogICAgd2lkdGg6IDEyMHB4OwogICAgaGVpZ2h0OiBhdXRvOwogICAgZGlzcGxheTogYmxvY2s7Cn0KCi5ob3N0LWltYWdlLW92ZXJsYXkgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgbGVmdDogNTAlOwogICAgdG9wOiA0MCU7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsKICAgIHdpZHRoOiAzMnB4OwogICAgaGVpZ2h0OiAzMnB4OwogICAgb2JqZWN0LWZpdDogY29udGFpbjsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgei1pbmRleDogMjsKfQoKLmhvc3QtaW1hZ2Utb3ZlcmxheVtzcmM9IiJdLAouaG9zdC1pbWFnZS1vdmVybGF5Om5vdChbc3JjXSksCi5ob3N0LWltYWdlLW92ZXJsYXlbc3JjPSJudWxsIl0sCi5ob3N0LWltYWdlLW92ZXJsYXlbc3JjPSJ1bmRlZmluZWQiXSB7CiAgICBkaXNwbGF5OiBub25lOwp9CgouaG9zdC1uYW1lIHsKICAgIG1hcmdpbjogMDsKICAgIGNvbG9yOiB3aGl0ZTsKICAgIGZvbnQtc2l6ZTogMS40cmVtOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwp9CgovKiogQXBwcyAqLwouYXBwLWxpc3QgewogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICBnYXA6IDEwcHg7Cn0KCi5hcHAtZWxlbWVudD5kaXYgewogICAgY3Vyc29yOiBwb2ludGVyOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgbWFyZ2luOiAxMHB4Owp9CgouYXBwLWVsZW1lbnQ6aG92ZXIgewogICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7Cn0KCi5hcHAtaW1hZ2UgewogICAgLyoqIFJhdGlvOiB3OmggMjAwOjI2NiAqLwogICAgd2lkdGg6IDIwMHB4OwogICAgaGVpZ2h0OiAyNjZweDsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGxpbmVhcjsKICAgIG9wYWNpdHk6IDA7Cn0KCi5hcHAtaW1hZ2UtbG9hZGVkIHsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMXMgZWFzZS1pbjsKfQoKLmFwcCB7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBsaW5lYXI7Cn0KCi5hcHAtYWN0aXZlIC5hcHAtaW1hZ2UgewogICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICAgIC8qKiBUT0RPOiBnb2xkIGRvZXNuJ3QgZml0IHRoaXMgdGhlbWUgKi8KICAgIGJvcmRlci1jb2xvcjogZ29sZDsKICAgIGJvcmRlci13aWR0aDogNHB4OwogICAgYm9yZGVyLXJhZGl1czogNHB4OwoKICAgIHRyYW5zaXRpb246IGFsbCAwLjRzIGVhc2UtaW47Cn0KCi5hcHAtaW5hY3RpdmUgewogICAgZmlsdGVyOiBicmlnaHRuZXNzKDMwJSk7CgogICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbjsKfQoKLyoqIFN0cmVhbSBDb25uZWN0IE1vZGFsICovCi5tb2RhbC12aWRlby1jb25uZWN0IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7CgogICAgbWF4LXdpZHRoOiAxMDAlOwogICAgbWF4LWhlaWdodDogMTAwJTsKfQoKLm1vZGFsLXZpZGVvLWNvbm5lY3QgLm1vZGFsLXZpZGVvLWNvbm5lY3QtZGVidWcgewogICAgbWF4LXdpZHRoOiA3NXZ3OwogICAgbWF4LWhlaWdodDogNDB2aDsKfQoKLyoqIFN0cmVhbSAqLwoudmlkZW8tc3RyZWFtIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogdmFyKC0tc3RyZWFtLXZpZGVvLXRvcCwgNTAlKTsKICAgIGxlZnQ6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgbWF4LXdpZHRoOiAxMDB2dzsKICAgIG1heC1oZWlnaHQ6IDEwMHZoOwogICAgbWluLXdpZHRoOiAxMDB2bWluOwogICAgbWluLWhlaWdodDogMTAwdm1pbjsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwogICAgb3V0bGluZTogbm9uZTsKfQoKY2FudmFzLnZpZGVvLXN0cmVhbSB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIG9iamVjdC1maXQ6IGNvbnRhaW47Cn0KCi5hdWRpby1zdHJlYW0gewogICAgZGlzcGxheTogbm9uZTsKfQoKLnZpZGVvLXN0YXRzIHsKICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwoKICAgIGNvbG9yOiB5ZWxsb3c7CgogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogMTsKfQoKLmxvY2FsLXRvdWNoLWN1cnNvciB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB3aWR0aDogMTBweDsKICAgIGhlaWdodDogMTVweDsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwogICAgei1pbmRleDogMzsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMiAxOCclM0UlM0NwYXRoIGZpbGw9JyUyM2ZmZicgZD0nTTAgMEwwIDEzTDMuOCA5LjhMNi4xIDE3TDguNSAxNS45TDYuMiA4LjlMMTEgOC45WicvJTNFJTNDL3N2ZyUzRSIpOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSAxMDAlOwogICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgMXB4IHJnYmEoMCwgMCwgMCwgMC45NSkpIGRyb3Atc2hhZG93KDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuNDUpKTsKfQoKLnNpZGViYXItc3RyZWFtIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9Cgouc2lkZWJhci1zdHJlYW0tYnV0dG9ucyB7CiAgICBkaXNwbGF5OiBncmlkOwogICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MCUgNTAlOwp9CgouaGlkZGVuaW5wdXQgewogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgei1pbmRleDogLTEwMDA7CiAgICByZXNpemU6IG5vbmU7CiAgICB0cmFuc2xhdGU6IDIwMHZ3IDIwMHZoOwp9Cgouc3RyZWFtLWtleWJvYXJkLWZsb2F0aW5nLWJ1dHRvbiB7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICB0b3A6IHZhcigtLXN0cmVhbS1rZXlib2FyZC1idXR0b24tdG9wLCA1MCUpOwogICAgcmlnaHQ6IDEycHg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpOwogICAgd2lkdGg6IDQ0cHg7CiAgICBoZWlnaHQ6IDQ0cHg7CiAgICB6LWluZGV4OiAxMDAwOwogICAgZGlzcGxheTogbm9uZTsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFjY2VudC1jeWFuKTsKICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4OwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjU1KTsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LTEpOwogICAgZm9udC1zaXplOiAxOHB4OwogICAgb3BhY2l0eTogMC43ODsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGNvbnRhaW46IGxheW91dCBwYWludCBzdHlsZTsKICAgIHRvdWNoLWFjdGlvbjogbm9uZTsKICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07Cn0KCi5zdHJlYW0ta2V5Ym9hcmQtZmxvYXRpbmctYnV0dG9uLnZpc2libGUgewogICAgZGlzcGxheTogZmxleDsKfQoKLnN0cmVhbS1rZXlib2FyZC1mbG9hdGluZy1idXR0b246YWN0aXZlIHsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwMCUpIHNjYWxlKDAuOTUpOwp9CgovKiBQcmV2ZW50IHN0YXJ0aW5nIGFuaW1hdGlvbiBmb3IgZWxlbWVudHMgKi8KLnByZXZlbnQtc3RhcnQtdHJhbnNpdGlvbiB7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgovKiBBZG1pbiAqLwoudXNlci1idXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIi4uL3Jlc291cmNlcy9uZXcvdXNlci5zdmciKTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXNpemU6IHZhcigtLW1sLXRvcGJhci1pY29uLXNpemUpOwogICAgd2lkdGg6IHZhcigtLW1sLXRvcGJhci1pY29uLWJ1dHRvbik7CiAgICBoZWlnaHQ6IHZhcigtLW1sLXRvcGJhci1pY29uLWJ1dHRvbik7CiAgICBib3JkZXI6IG5vbmU7CiAgICBwYWRkaW5nOiAwOwogICAgbWFyZ2luOiAwOwp9CgoudXNlci1wYW5lbCwKLnJvbGUtcGFuZWwgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBtYXgtd2lkdGg6IDIyNXB4Owp9CgoudXNlci1saXN0LAoucm9sZS1saXN0IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZmxleDogMTsKICAgIG1pbi1oZWlnaHQ6IDA7CiAgICBvdmVyZmxvdy15OiBhdXRvOwp9CgoudXNlci1lbGVtZW50LAoucm9sZS1lbGVtZW50IHsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDEwcHg7CiAgICBtaW4td2lkdGg6IDExMHB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgYm9yZGVyLXJhZGl1czogNXB4OwogICAgLyoqIGFuaW1hdGlvbiAqLwogICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzOwogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwKTsKfQoKLnVzZXItZWxlbWVudDpob3ZlciwKLnJvbGUtZWxlbWVudDpob3ZlciB7CiAgICAvKiogYW5pbWF0aW9uICovCiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKfQoKLnVzZXItZWxlbWVudCBwLAoucm9sZS1lbGVtZW50IHAgewogICAgcGFkZGluZzogMDsKICAgIG1hcmdpbjogMDsKfQoKLmFkbWluLXBhbmVsLXVzZXJzLAouYWRtaW4tcGFuZWwtcm9sZXMgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCi51c2VyLWluZm8tZGVsZXRlLAoucm9sZS1pbmZvLWRlbGV0ZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7Cn0K"},{"path":"web/styles/standard.css","sha256":"e344929c424960beba0fc4fdb46d47e6155999283824476e285e3a258f4919d0","contentBase64":"OnJvb3QgewogICAgLyogQ29sb3JzIC0gRGFyayBUaGVtZSAqLwogICAgLS1iZy0wOiAjMDAwZjFmOwogICAgLS1iZy0xOiAjMDAxYTJlOwogICAgLS1iZy0yOiAjMDAwZDE4OwogICAgLS1iZy0zOiAjMDAxYTJlOwogICAgLS10ZXh0LTE6ICNhOGU2ZmY7CiAgICAtLXRleHQtMjogI2ZmZmZmZjsKICAgIC0tYWNjZW50LWN5YW46ICMwMGEzY2M7CiAgICAtLWFjY2VudC1jeWFuLTI6ICMwMGQ0ZmY7CiAgICAtLWFjY2VudC1jeWFuLWxpZ2h0OiAjMDBmZmZmOwogICAgLS1tdXRlZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTsKICAgIC0tZXJyb3I6ICNmZjhjNDI7CiAgICAtLWVycm9yLWxpZ2h0OiAjZmZiMzk5OwogICAgLS1zdWNjZXNzOiAjNGNhZjUwOwogICAgLS13YXJuaW5nOiAjZmZjMTA3OwogICAgLS1zdGF0dXMtb25saW5lOiAjNGNhZjUwOwogICAgLS1zdGF0dXMtb2ZmbGluZTogIzc1NzU3NTsKICAgIC0tc3RhdHVzLWNvbm5lY3Rpbmc6ICNmZmMxMDc7CgogICAgLyogU3BhY2luZyAqLwogICAgLS1zcGFjZS14czogNHB4OwogICAgLS1zcGFjZS1zbTogOHB4OwogICAgLS1zcGFjZS1tZDogMTZweDsKICAgIC0tc3BhY2UtbGc6IDI0cHg7CiAgICAtLXNwYWNlLXhsOiAzMnB4OwoKICAgIC8qIFJhZGlpICovCiAgICAtLXJhZGl1cy1zbTogNnB4OwogICAgLS1yYWRpdXMtbWQ6IDEycHg7CiAgICAtLXJhZGl1cy1sZzogMTZweDsKCiAgICAvKiBTaGFkb3dzICovCiAgICAtLXNoYWRvdy0xOiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgIC0tc2hhZG93LTI6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjcpOwogICAgLS1zaGFkb3ctMzogMCAxMnB4IDM2cHggcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgLS1zaGFkb3ctYnV0dG9uOiAwIDhweCAyNHB4IHJnYmEoMCwgMCwgMCwgMC42KSwgMCAwIDE4cHggcmdiYSgwLCAyMTIsIDI1NSwgMC4xMik7CiAgICAtLWdsb3ctY3lhbjogMCAwIDIwcHggcmdiYSgwLCAxNjMsIDIwNCwgMC4xOCk7CiAgICAtLWdsb3ctY3lhbi1icmlnaHQ6IDAgMCAzMHB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuMyksIDAgMCA2MHB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuMTUpOwoKICAgIC8qIEFuaW1hdGlvbiBkdXJhdGlvbnMgKi8KICAgIC0tZHVyLWZhc3Q6IDAuMThzOwogICAgLS1kdXItbWVkOiAwLjI1czsKICAgIC0tZHVyLXNsb3c6IDAuNHM7Cn0KCmJvZHkgewogICAgbWFyZ2luLXRvcDogMDsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgICBwYWRkaW5nLXRvcDogZW52KHNhZmUtYXJlYS1pbnNldC10b3ApOwogICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGZvbnQtc2l6ZTogMS4ycmVtOwogICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS1kdXItbWVkKSBlYXNlLCBjb2xvciB2YXIoLS1kdXItbWVkKSBlYXNlOwogICAgY29sb3I6ICNmZmZmZmY7CiAgICB0ZXh0LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgIG1pbi1oZWlnaHQ6IDEwMHZoOwp9Cgpib2R5OjpiZWZvcmUgewogICAgY29udGVudDogIiI7CiAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICBpbnNldDogMDsKICAgIHotaW5kZXg6IC0xOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tYmctMCkgMCUsIHZhcigtLWJnLTEpIDUwJSwgdmFyKC0tYmctMikgMTAwJSk7Cn0KCi8qIEdsb2JhbCBzbW9vdGggYW5pbWF0aW9ucyBmb3IgaW50ZXJhY3RpdmUgY2hhbmdlcyAqLwoqLAoqOjpiZWZvcmUsCio6OmFmdGVyIHsKICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjI1cyBlYXNlLCBjb2xvciAwLjI1cyBlYXNlLCB0cmFuc2Zvcm0gMC4yNXMgZWFzZSwgYm94LXNoYWRvdyAwLjI1cyBlYXNlLCBvcGFjaXR5IDAuMjVzIGVhc2U7Cn0KCkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CgogICAgKiwKICAgICo6OmJlZm9yZSwKICAgICo6OmFmdGVyIHsKICAgICAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICB9Cn0KCi8qIFByZXZlbnQgcHVsbCBkb3duIHJlZnJlc2ggd2hlbiBTdHJlYW1pbmcgKi8KaHRtbC5zdHJlYW0sCmJvZHkuc3RyZWFtIHsKICAgIG92ZXJzY3JvbGwtYmVoYXZpb3I6IG5vbmUgIWltcG9ydGFudDsKfQoKLnJvb3Q6bm90KGlucHV0KSB7CiAgICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7CiAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTsKICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAta2h0bWwtdXNlci1zZWxlY3Q6IG5vbmU7CiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lOwogICAgLW1zLXVzZXItc2VsZWN0OiBub25lOwogICAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCmltZyB7CiAgICAtd2Via2l0LXVzZXItZHJhZzogbm9uZTsKfQoKaDIsCmgzIHsKICAgIG1hcmdpbi10b3A6IDEycHg7CiAgICBtYXJnaW4tYm90dG9tOiA4cHg7CiAgICB0ZXh0LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC42KTsKfQoKLyoqIElucHV0IERpdiAqLwouaW5wdXQtZGl2IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoKLyoqIEhpZGUgdGhlIGZpbGUgaW5wdXQgKi8KaW5wdXRbdHlwZT0iZmlsZSJdIHsKICAgIGRpc3BsYXk6IG5vbmU7Cn0KCi8qKiBMYWJlbCAqLwouZmlsZS1sYWJlbCwKbGFiZWwgewogICAgY3Vyc29yOiBkZWZhdWx0OwogICAgbWFyZ2luLXJpZ2h0OiA1cHg7Cn0KCi8qKiBCdXR0b24gKi8KLmZpbGUtYnV0dG9uLApidXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwM2Q3YTsKICAgIGJhY2tncm91bmQtc2l6ZTogNjBweDsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBib3JkZXI6IDJweCBzb2xpZCAjMDBkNGZmOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLW1kKTsKICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlLXNtKTsKICAgIG1hcmdpbjogdmFyKC0tc3BhY2Utc20pOwogICAgZm9udC1zaXplOiAxLjJyZW07CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctYnV0dG9uKTsKICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS1kdXItbWVkKSBlYXNlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOwogICAgY29sb3I6IHdoaXRlOwogICAgZm9udC13ZWlnaHQ6IDUwMDsKfQoKLmZpbGUtYnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpLApidXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkgewogICAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWR1ci1tZWQpIGVhc2U7CiAgICBib3gtc2hhZG93OiAwIDAgMzBweCByZ2JhKDAsIDIxMiwgMjU1LCAwLjYpLCAwIDAgNjBweCByZ2JhKDAsIDIxMiwgMjU1LCAwLjQpOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpIHNjYWxlKDEuMDUpOwogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwNTJhMzsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWN5YW4tbGlnaHQpOwp9CgouYnV0dG9uLWZpdC1jb250ZW50IHsKICAgIGhlaWdodDogZml0LWNvbnRlbnQ7Cn0KCi8qIEVuc3VyZSBhbGwgYnV0dG9uLWxpa2UgY29udHJvbHMgaGF2ZSBwb2xpc2hlZCBzaGFkb3dzICovCmJ1dHRvbiwKLmZpbGUtYnV0dG9uLAoubG9nb3V0LWJ1dHRvbiwKLmxvZ2luLWJ1dHRvbiwKLmFkbWluLWJ1dHRvbiwKLnNpZGViYXItYnV0dG9uLAoudXNlci1idXR0b24gewogICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuNiksIDAgMCAxOHB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuMTIpOwp9CgovKiBEaXNhYmxlIGFsbCBmYW5jeSBlZmZlY3RzIHdoZW4gdGhlIGJ1dHRvbiBpcyBkaXNhYmxlZCAqLwpidXR0b246ZGlzYWJsZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKICAgIGJvcmRlci1jb2xvcjogZ3JheTsKfQoKLyoqIENoZWNrYm94ICovCmlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgLyogcmVtb3ZlIG5hdGl2ZSBib3ggKi8KICAgIGFwcGVhcmFuY2U6IG5vbmU7CiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgd2lkdGg6IDI0cHg7CiAgICBoZWlnaHQ6IDI0cHg7CiAgICBib3JkZXI6IDJweCBzb2xpZCAjMDBkNGZmOwogICAgYm9yZGVyLXJhZGl1czogNnB4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAzMCwgNTAsIDAuOCk7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlOwogICAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgwLCAyMTIsIDI1NSwgMC4zKSBpbnNldDsKfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpob3ZlciB7CiAgICBib3JkZXItY29sb3I6ICMwMGZmZmY7CiAgICBib3gtc2hhZG93OiAwIDAgMTVweCByZ2JhKDAsIDIxMiwgMjU1LCAwLjUpIGluc2V0Owp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOjphZnRlciB7CiAgICBjb250ZW50OiAi4pyTIjsKICAgIGNvbG9yOiB3aGl0ZTsKICAgIGZvbnQtc2l6ZTogMThweDsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgbGVmdDogNTAlOwogICAgLyogc3RhcnQgaGlkZGVuICovCiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSBzY2FsZSgwKTsKICAgIG9wYWNpdHk6IDA7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBvcGFjaXR5IDAuMnMgZWFzZTsKfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkIHsKICAgIC8qIGJveCBmaWxsICovCiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDBhM2NjIDAlLCAjMDA4MGIzIDEwMCUpOwogICAgYm9yZGVyLWNvbG9yOiAjMDBmZmZmOwogICAgYm94LXNoYWRvdzogMCAwIDE1cHggcmdiYSgwLCAyMTIsIDI1NSwgMC42KSwgMCAwIDIwcHggcmdiYSgwLCAyNTUsIDI1NSwgMC40KTsKfQoKaW5wdXRbdHlwZT0iY2hlY2tib3giXTpjaGVja2VkOjphZnRlciB7CiAgICAvKiBzY2FsZSBpbiAqLwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgc2NhbGUoMSk7CiAgICBvcGFjaXR5OiAxOwp9CgppbnB1dFt0eXBlPSJjaGVja2JveCJdOmRpc2FibGVkIHsKICAgIGNvbG9yOiBsaWdodGdyYXk7CiAgICBib3JkZXItY29sb3I6IGdyYXk7CiAgICBib3gtc2hhZG93OiBub25lOwp9CgovKiogU2xpZGVyICovCmlucHV0W3R5cGU9InJhbmdlIl0gewogICAgYWNjZW50LWNvbG9yOiAjMDBmNWZmOwoKICAgIHdpZHRoOiAyMDBweDsKICAgIGhlaWdodDogMzJweDsKICAgIG1hcmdpbjogOHB4OwoKICAgIG92ZXJmbG93OiBoaWRkZW47CgogICAgY3Vyc29yOiBncmFiOwp9CgppbnB1dFt0eXBlPSJyYW5nZSJdOmFjdGl2ZSB7CiAgICBjdXJzb3I6IGdyYWJiaW5nOwp9CgovKiogVGV4dCBGaWVsZCBsaWtlcyAgKi8KLnRleHRsaWtlLAp0ZXh0YXJlYSwKc2VsZWN0LAouc2VsZWN0LXBvbHlmaWxsLWRpc3BsYXksCmlucHV0W3R5cGU9dGV4dF0sCmlucHV0W3R5cGU9cGFzc3dvcmRdLAppbnB1dFt0eXBlPW51bWJlcl0gewogICAgd2lkdGg6IDEwMCU7CiAgICBtYXgtd2lkdGg6IDIwMHB4OwogICAgY29sb3I6ICNmZmZmZmY7CiAgICBmb250LXNpemU6IDEuMnJlbTsKICAgIG1hcmdpbjogNXB4OwogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAzMCwgNTAsIDAuNyk7CiAgICBib3JkZXItcmFkaXVzOiA4cHg7CiAgICBib3JkZXI6IDEuNXB4IHNvbGlkICNmZmZmZmY7CiAgICAvKiBtdWx0aWxpbmUgKi8KICAgIG92ZXJmbG93LXg6IGF1dG87CiAgICBvdmVyZmxvdy15OiBhdXRvOwogICAgd2hpdGUtc3BhY2U6IHByZS13cmFwOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTsKICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuMikgaW5zZXQ7CgogICAgbWF4LWhlaWdodDogbWF4LWNvbnRlbnQ7Cn0KCi50ZXh0bGlrZTpob3ZlciwKdGV4dGFyZWE6aG92ZXI6ZW5hYmxlZCwKc2VsZWN0OmhvdmVyOmVuYWJsZWQsCi5zZWxlY3QtcG9seWZpbGwtZGlzcGxheTpob3ZlciwKaW5wdXRbdHlwZT10ZXh0XTpob3ZlcjplbmFibGVkLAppbnB1dFt0eXBlPXBhc3N3b3JkXTpob3ZlcjplbmFibGVkLAppbnB1dFt0eXBlPSJudW1iZXIiXTpob3ZlcjplbmFibGVkIHsKICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDUwLCA4MCwgMC45KTsKICAgIGJvcmRlci1jb2xvcjogIzAwZmZmZjsKICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuMykgaW5zZXQ7Cn0KCnRleHRhcmVhOmRpc2FibGVkLApzZWxlY3Q6ZGlzYWJsZWQsCi5zZWxlY3QtcG9seWZpbGwtZGlzcGxheTpkaXNhYmxlZCwKaW5wdXRbdHlwZT10ZXh0XTpkaXNhYmxlZCwKaW5wdXRbdHlwZT1wYXNzd29yZF06ZGlzYWJsZWQsCmlucHV0W3R5cGU9bnVtYmVyXTpkaXNhYmxlZCB7CiAgICBjb2xvcjogZ3JheTsKfQoKaW5wdXRbdHlwZT1yYW5nZV06ZGlzYWJsZWQgewogICAgY29sb3I6IGdyYXk7Cn0KCnNlbGVjdCBvcHRpb24gewogICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMWEyZTsKICAgIGNvbG9yOiAjMDBmNWZmOwp9CgovKiogSGlkZSB0aGUgbnVtYmVyIHVwIGRvd24gdGhpbmd5IG9uIG51bWJlciBpbnB1dHMgKi8KaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sCmlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHsKICAgIC8qIGRpc3BsYXk6IG5vbmU7IDwtIENyYXNoZXMgQ2hyb21lIG9uIGhvdmVyICovCiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgICAvKiA8LS0gQXBwYXJlbnRseSBzb21lIG1hcmdpbiBhcmUgc3RpbGwgdGhlcmUgZXZlbiB0aG91Z2ggaXQncyBoaWRkZW4gKi8KICAgIG1hcmdpbjogMDsKfQoKaW5wdXRbdHlwZT1udW1iZXJdIHsKICAgIGFwcGVhcmFuY2U6IHRleHRmaWVsZDsKICAgIC8qIEZpcmVmb3ggKi8KICAgIC1tb3otYXBwZWFyYW5jZTogdGV4dGZpZWxkOwp9CgoubGlzdC1saWtlIHsKICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKICAgIG1hcmdpbjogMDsKICAgIHBhZGRpbmc6IDA7Cn0KCi8qKiBTZWxlY3QgZWxlbWVudCAoZHJvcGRvd24pIHBvbHlmaWxsICovCi5zZWxlY3QtcG9seWZpbGwtZGlzcGxheTo6YWZ0ZXIgewogICAgY29udGVudDogIuKWviI7CiAgICBmbG9hdDogcmlnaHQ7Cn0KCi5zZWxlY3QtcG9seWZpbGwtd3JhcHBlciB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi5zZWxlY3QtcG9seWZpbGwtbGlzdCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZy0xKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyYXk7CiAgICBtYXJnaW4tdG9wOiA0cHg7CiAgICBsZWZ0OiAwOwogICAgei1pbmRleDogMTsKICAgIGN1cnNvcjogcG9pbnRlcjsKCiAgICBtYXgtaGVpZ2h0OiAyMDBweDsKICAgIG92ZXJmbG93LXk6IGF1dG87CiAgICBvdmVyZmxvdy14OiBoaWRkZW47Cn0KCi5zZWxlY3QtcG9seWZpbGwtbGlzdC5ib3R0b20gewogICAgdG9wOiAxMDAlOwogICAgYm90dG9tOiBhdXRvOwp9Cgouc2VsZWN0LXBvbHlmaWxsLWxpc3QudG9wIHsKICAgIGJvdHRvbTogMTAwJTsKICAgIHRvcDogYXV0bzsKfQoKLnNlbGVjdC1wb2x5ZmlsbC1saXN0IHAgewogICAgY29sb3I6IHJnYigwLCAyNDUsIDI1NSk7CiAgICBwYWRkaW5nLXRvcDogNXB4OwogICAgcGFkZGluZy1ib3R0b206IDVweDsKICAgIG1hcmdpbi10b3A6IDA7CiAgICBtYXJnaW4tYm90dG9tOiAwOwp9Cgouc2VsZWN0LXBvbHlmaWxsLWxpc3QgcDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUsIDEwMywgMjEwKTsKICAgIGNvbG9yOiB3aGl0ZTsKfQoKLnNlbGVjdC1wb2x5ZmlsbC13cmFwcGVyOmhvdmVyOm5vdCg6aGFzKC5zZWxlY3QtcG9seWZpbGwtbGlzdCBwOmhvdmVyKSkgLnNlbGVjdC1wb2x5ZmlsbC1zZWxlY3RlZCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjUsIDEwMywgMjEwKTsKICAgIGNvbG9yOiB3aGl0ZTsKfQoKLyoqIE1vZGFsICovCi5tb2RhbC1iYWNrZ3JvdW5kIHsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgcG9zaXRpb246IGZpeGVkOwogICAgei1pbmRleDogNTAwMDsKICAgIGxlZnQ6IDA7CiAgICB0b3A6IDA7CiAgICB3aWR0aDogMTAwdnc7CiAgICBoZWlnaHQ6IDEwMHZoOwogICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMCwgMCwgMjAsIDAuNik7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNpdGlvbjogdmlzaWJpbGl0eSAwcywgYmFja2dyb3VuZCAwLjFzIGxpbmVhciwgb3BhY2l0eSAwLjFzIGxpbmVhcjsKfQoKLm1vZGFsLWNvbnRlbnQgewogICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgei1pbmRleDogNTAwMTsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMCwgMzAsIDUwLCAwLjk1KSAwJSwgcmdiYSgwLCAxNSwgMzAsIDAuOTUpIDEwMCUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE1cHgpOwogICAgbWFyZ2luOiAxMCUgYXV0bzsKICAgIHBhZGRpbmc6IDIwcHg7CiAgICBib3JkZXI6IDJweCBzb2xpZCAjMDBhM2NjOwogICAgYm9yZGVyLXJhZGl1czogMTZweDsKICAgIGJveC1zaGFkb3c6IDAgMCAzMHB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuMyksIDAgMCA2MHB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuMTUpOwogICAgY29sb3I6ICNhOGU2ZmY7CiAgICB3aWR0aDogODAlOwogICAgbWF4LWhlaWdodDogNjAlOwogICAgb3ZlcmZsb3cteTogYXV0bzsKfQoKLm1vZGFsLWRpc2FibGVkIHsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIHZpc2liaWxpdHk6IGhpZGRlbjsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMXMgbGluZWFyOwp9CgovKiogQ29udGV4dCBNZW51ICovCi5jb250ZXh0LW1lbnUtYmFja2dyb3VuZCB7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHotaW5kZXg6IDE7CiAgICBib3JkZXItcmFkaXVzOiAxMnB4OwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgwLCAzMCwgNTAsIDAuOTgpIDAlLCByZ2JhKDAsIDE1LCAzMCwgMC45OCkgMTAwJSk7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTVweCk7CiAgICBib3JkZXI6IDJweCBzb2xpZCAjMDBhM2NjOwogICAgYm94LXNoYWRvdzogMCAwIDMwcHggcmdiYSgwLCAyMTIsIDI1NSwgMC4zKSwgMCAwIDYwcHggcmdiYSgwLCAyMTIsIDI1NSwgMC4xNSk7CiAgICAvKiogYW5pbWF0aW9uICovCiAgICBzY2FsZTogMTsKICAgIG9wYWNpdHk6IDE7CiAgICB0cmFuc2xhdGU6IDAgMDsKICAgIHRyYW5zaXRpb246IHZpc2liaWxpdHkgMHMsIG9wYWNpdHkgMC4wNXMgbGluZWFyLCBzY2FsZSAwLjA1cyBsaW5lYXIsIHRyYW5zbGF0ZSAwLjA1cyBsaW5lYXI7Cn0KCi5jb250ZXh0LW1lbnUtbGlzdCB7CiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCi5jb250ZXh0LW1lbnUtZWxlbWVudCB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAxMHB4OwogICAgbWluLXdpZHRoOiAxMTBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApOwogICAgY29sb3I6ICNhOGU2ZmY7Cn0KCi5jb250ZXh0LW1lbnUtZWxlbWVudDpob3ZlciB7CiAgICAvKiogYW5pbWF0aW9uICovCiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgwLCAxNjMsIDIwNCwgMC4zKSAwJSwgcmdiYSgwLCAyMTIsIDI1NSwgMC4yKSAxMDAlKTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCg2cHgpOwogICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjMDBmZmZmOwogICAgcGFkZGluZy1sZWZ0OiA3cHg7Cn0KCi5jb250ZXh0LW1lbnUtZWxlbWVudC1yZWQgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogI2ZmNmI2YjsKfQoKLmNvbnRleHQtbWVudS1lbGVtZW50LXJlZDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDI1NSwgMTA3LCAxMDcsIDAuMykgMCUsIHJnYmEoMjU1LCAxMDAsIDEwMCwgMC4yKSAxMDAlKTsKfQoKLmNvbnRleHQtbWVudS1kaXNhYmxlZCB7CiAgICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgICAvKiogYW5pbWF0aW9uICovCiAgICBvcGFjaXR5OiAwOwogICAgc2NhbGU6IDAuNzsKICAgIHRyYW5zbGF0ZTogLTMwJSAtMzAlOwogICAgdHJhbnNpdGlvbjogYWxsIDAuMXMgbGluZWFyLCBvcGFjaXR5IDAuMXMgZWFzZS1vdXQ7Cn0KCi8qKiBTaWRlYmFyICovCi5zaWRlYmFyLW92ZXJsYXkgewogICAgcG9zaXRpb246IGZpeGVkOwogICAgei1pbmRleDogMTsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Cgouc2lkZWJhci1iYWNrZ3JvdW5kIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiA1cHg7CiAgICAvKiogYW5pbWF0aW9uICovCiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyAwcyBsaW5lYXI7Cn0KCi5zaWRlYmFyLWJhY2tncm91bmQgKiB7CiAgICBwb2ludGVyLWV2ZW50czogYWxsOwp9Cgouc2lkZWJhci1vdmVybGF5LnNpZGViYXItZWRnZS1sZWZ0IHsKICAgIHRvcDogNTAlOwogICAgbGVmdDogMDsKfQoKLnNpZGViYXItZWRnZS1sZWZ0IC5zaWRlYmFyLWJhY2tncm91bmQgewogICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYygtMTAwJSArIDQwcHgpLCAtNTAlKTsKfQoKLnNpZGViYXItb3ZlcmxheS5zaWRlYmFyLWVkZ2UtcmlnaHQgewogICAgdG9wOiA1MCU7CiAgICByaWdodDogMDsKfQoKLnNpZGViYXItZWRnZS1yaWdodCAuc2lkZWJhci1iYWNrZ3JvdW5kIHsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKDEwMCUgLSA0MHB4KSwgLTUwJSk7Cn0KCi5zaWRlYmFyLWVkZ2UtbGVmdC5zaWRlYmFyLXNob3cgLnNpZGViYXItYmFja2dyb3VuZCwKLnNpZGViYXItZWRnZS1yaWdodC5zaWRlYmFyLXNob3cgLnNpZGViYXItYmFja2dyb3VuZCB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTsKfQoKLnNpZGViYXItb3ZlcmxheS5zaWRlYmFyLWVkZ2UtdXAgewogICAgdG9wOiAwOwogICAgbGVmdDogNTAlOwp9Cgouc2lkZWJhci1lZGdlLXVwIC5zaWRlYmFyLWJhY2tncm91bmQgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgY2FsYygtMTAwJSArIDQwcHgpKTsKfQoKLnNpZGViYXItb3ZlcmxheS5zaWRlYmFyLWVkZ2UtZG93biB7CiAgICBib3R0b206IDA7CiAgICBsZWZ0OiA1MCU7Cn0KCi5zaWRlYmFyLWVkZ2UtZG93biAuc2lkZWJhci1iYWNrZ3JvdW5kIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCBjYWxjKDEwMCUgLSA0MHB4KSk7Cn0KCi5zaWRlYmFyLWVkZ2UtZG93bi5zaWRlYmFyLXNob3cgLnNpZGViYXItYmFja2dyb3VuZCwKLnNpZGViYXItZWRnZS11cC5zaWRlYmFyLXNob3cgLnNpZGViYXItYmFja2dyb3VuZCB7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKTsKfQoKLnNpZGViYXItYnV0dG9uIHsKICAgIC8qKiBOb3RlOiBCdXR0b24gZnVsbCBzaXplOiAzMHB4KHdpZHRoIC8gaGVpZ2h0KSArIDVweChwYWRkaW5nIGFzIGluIGJ1dHRvbiBzZWxlY3RvcikgKyA1cHgoLnNpZGViYXItYmFja2dyb3VuZCBnYXApID0gNDBweCAqLwogICAgd2lkdGg6IDMwcHg7CiAgICBoZWlnaHQ6IDMwcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwp9Cgouc2lkZWJhci1idXR0b24taW1hZ2UgewogICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgbGluZWFyOwp9Cgouc2lkZWJhci1lZGdlLWxlZnQgLnNpZGViYXItYnV0dG9uLWltYWdlIHsKICAgIHJvdGF0ZTogMTgwZGVnOwp9Cgouc2lkZWJhci1lZGdlLXJpZ2h0IC5zaWRlYmFyLWJ1dHRvbi1pbWFnZSB7CiAgICByb3RhdGU6IDBkZWc7Cn0KCi5zaWRlYmFyLWVkZ2UtdXAgLnNpZGViYXItYnV0dG9uLWltYWdlIHsKICAgIHJvdGF0ZTogMjcwZGVnOwp9Cgouc2lkZWJhci1lZGdlLWRvd24gLnNpZGViYXItYnV0dG9uLWltYWdlIHsKICAgIHJvdGF0ZTogOTBkZWc7Cn0KCi5zaWRlYmFyLXNob3cgLnNpZGViYXItYnV0dG9uLWltYWdlIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Cn0KCgouc2lkZWJhci1jb250ZW50IHsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMCwgMzAsIDUwLCAwLjk1KSAwJSwgcmdiYSgwLCAxNSwgMzAsIDAuOTUpIDEwMCUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE1cHgpOwogICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgIHBhZGRpbmc6IDEwcHggMTBweCAxMHB4IDEwcHg7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGJvcmRlcjogMnB4IHNvbGlkICMwMGEzY2M7CiAgICBib3gtc2hhZG93OiAwIDAgMjVweCByZ2JhKDAsIDIxMiwgMjU1LCAwLjMpLCAwIDAgNTBweCByZ2JhKDAsIDIxMiwgMjU1LCAwLjE1KTsKfQoKLyoqIE5vdGlmaWNhdGlvbiAqLwoubm90aWZpY2F0aW9uLWxpc3QgewogICAgdmlzaWJpbGl0eTogaGlkZGVuOwogICAgcG9zaXRpb246IGZpeGVkOwogICAgei1pbmRleDogMTsKCiAgICByaWdodDogMDsKICAgIGJvdHRvbTogMDsKCiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIG1hcmdpbi1yaWdodDogMWNtOwp9Cgoubm90aWZpY2F0aW9uLWVsZW1lbnQgewogICAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwoKICAgIHBhZGRpbmctbGVmdDogMC40Y207CiAgICBwYWRkaW5nLXJpZ2h0OiAwLjRjbTsKICAgIHBhZGRpbmctdG9wOiAwLjJjbTsKICAgIHBhZGRpbmctYm90dG9tOiAwLjJjbTsKICAgIG1hcmdpbi1ib3R0b206IDAuNWNtOwoKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMCwgMzAsIDUwLCAwLjk1KSAwJSwgcmdiYSg0MCwgMjAsIDAsIDAuOTUpIDEwMCUpOwogICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpOwogICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjZmY4YzQyOwogICAgYm9yZGVyOiAycHggc29saWQgI2ZmOGM0MjsKICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMjU1LCAxNDAsIDY2LCAwLjMpOwogICAgY29sb3I6ICNmZmIzOTk7Cn0KCi5lcnJvci1pbWFnZSB7CiAgICBtYXJnaW4tcmlnaHQ6IDAuM2NtOwp9CgovKiogQW5pbWF0ZWQgTGlzdHMgKi8KLmFuaW1hdGVkLWxpc3QtZWxlbWVudCB7CiAgICAvKiogYW5pbWF0aW9uICovCiAgICBvcGFjaXR5OiAwOwp9CgouYW5pbWF0ZWQtbGlzdC1lbGVtZW50Lmxpc3Qtc2hvdyB7CiAgICAvKiogYW5pbWF0aW9uICovCiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47Cn0KCi8qKiBUb3AgTGluZSAmIENvbnRyb2xzICovCi50b3AtbGluZSB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IHJvdzsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBnYXA6IHZhcigtLXNwYWNlLW1kKTsKICAgIHBhZGRpbmc6IDAgMCAwIHZhcigtLXNwYWNlLW1kKTsKICAgIGFuaW1hdGlvbjogZmFkZUluIHZhcigtLWR1ci1zbG93KSBlYXNlOwp9CgoudG9wLWxpbmUtYWN0aW9ucyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleDogMSAxOwogICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOwogICAganVzdGlmeS1jb250ZW50OiByaWdodDsKICAgIGdhcDogdmFyKC0tc3BhY2Utc20pOwp9CgoudGhlbWUtdG9nZ2xlIHsKICAgIHdpZHRoOiA1MHB4OwogICAgaGVpZ2h0OiA1MHB4OwogICAgcGFkZGluZzogdmFyKC0tc3BhY2UteHMpOwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAyMTIsIDI1NSwgMC4xKTsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwgMjEyLCAyNTUsIDAuMyk7CiAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZm9udC1zaXplOiAxLjVyZW07CiAgICB0cmFuc2l0aW9uOiBhbGwgdmFyKC0tZHVyLW1lZCkgZWFzZTsKfQoKLnRoZW1lLXRvZ2dsZTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDIxMiwgMjU1LCAwLjIpOwogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtY3lhbi0yKTsKICAgIGJveC1zaGFkb3c6IDAgMCAxNnB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuNCk7CiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHNjYWxlKDEuMSk7Cn0KCi50aGVtZS10b2dnbGU6Zm9jdXMtdmlzaWJsZSB7CiAgICBvdXRsaW5lOiAzcHggc29saWQgdmFyKC0tYWNjZW50LWN5YW4tMik7CiAgICBvdXRsaW5lLW9mZnNldDogMnB4Owp9CgovKiogU2VhcmNoL0ZpbHRlciAqLwouaG9zdC1zZWFyY2ggewogICAgd2lkdGg6IDI1MHB4OwogICAgcGFkZGluZzogdmFyKC0tc3BhY2Utc20pIHZhcigtLXNwYWNlLW1kKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMzAsIDUwLCAwLjcpOwogICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAyMTIsIDI1NSwgMC4zKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7CiAgICBjb2xvcjogdmFyKC0tdGV4dC0xKTsKICAgIGZvbnQtc2l6ZTogMC45NXJlbTsKICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS1kdXItbWVkKSBlYXNlOwp9CgouaG9zdC1zZWFyY2g6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1hY2NlbnQtY3lhbi0yKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgNTAsIDgwLCAwLjgpOwogICAgYm94LXNoYWRvdzogMCAwIDE2cHggcmdiYSgwLCAyMTIsIDI1NSwgMC4zKTsKfQoKLmhvc3Qtc2VhcmNoOjpwbGFjZWhvbGRlciB7CiAgICBjb2xvcjogcmdiYSgxNjgsIDIzMCwgMjU1LCAwLjUpOwp9CgouaG9zdC1oaWdobGlnaHQgewogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDE5MywgNywgMC4zKTsKICAgIGNvbG9yOiB2YXIoLS13YXJuaW5nKTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBib3JkZXItcmFkaXVzOiAycHg7CiAgICBwYWRkaW5nOiAwIDJweDsKfQoKQGtleWZyYW1lcyBmYWRlSW4gewogICAgZnJvbSB7CiAgICAgICAgb3BhY2l0eTogMDsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTEwcHgpOwogICAgfQoKICAgIHRvIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIH0KfQoKLmxvZ291dC1idXR0b24gewogICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIuLi9yZXNvdXJjZXMvbmV3L2xvZ291dC1zdmdyZXBvLWNvbS5zdmciKTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXNpemU6IDYwcHg7CiAgICB3aWR0aDogNzBweDsKICAgIGhlaWdodDogNzBweDsKfQoKLmxvZ2luLWJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIi4uL3Jlc291cmNlcy9uZXcvdXNlci5zdmciKTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXNpemU6IDYwcHg7CiAgICB3aWR0aDogNzBweDsKICAgIGhlaWdodDogNzBweDsKfQoKLmFkbWluLWJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIi4uL3Jlc291cmNlcy9uZXcvYWRtaW4tc3ZncmVwby1jb20uc3ZnIik7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgYmFja2dyb3VuZC1zaXplOiA2MHB4OwogICAgd2lkdGg6IDcwcHg7CiAgICBoZWlnaHQ6IDcwcHg7Cn0KCi8qKiBBY3Rpb25zICovCi5hY3Rpb25zLWxpc3QgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgovKiogU2V0dGluZ3MgKi8KLm9wZW4tc2V0dGluZ3MgewogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCIuLi9yZXNvdXJjZXMvc2V0dGluZ3Muc3ZnIik7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgYmFja2dyb3VuZC1zaXplOiA2MHB4OwogICAgd2lkdGg6IDcwcHg7CiAgICBoZWlnaHQ6IDcwcHg7Cn0KCi5ob3N0LWFkZCB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIi4uL3Jlc291cmNlcy9pY19hZGRfdG9fcXVldWVfd2hpdGVfNDhweC5zdmciKTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXNpemU6IDYwcHg7CiAgICB3aWR0aDogNzBweDsKICAgIGhlaWdodDogNzBweDsKfQoKLmhvc3QtYWN0aW9ucyB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZ2FwOiB2YXIoLS1zcGFjZS14cyk7CiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZS1zbSk7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSB2YXIoLS1kdXItbWVkKSBlYXNlOwp9CgouaG9zdC1lbGVtZW50OmhvdmVyIC5ob3N0LWFjdGlvbnMgewogICAgb3BhY2l0eTogMTsKfQoKLmhvc3QtYWN0aW9uLWJ1dHRvbiB7CiAgICB3aWR0aDogMjRweDsKICAgIGhlaWdodDogMjRweDsKICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlLXhzKTsKICAgIGZvbnQtc2l6ZTogMC44cmVtOwogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLXNtKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMjEyLCAyNTUsIDAuMTUpOwogICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAyMTIsIDI1NSwgMC40KTsKICAgIGNvbG9yOiB2YXIoLS1hY2NlbnQtY3lhbi0yKTsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIHRyYW5zaXRpb246IGFsbCB2YXIoLS1kdXItZmFzdCkgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7Cn0KCi5ob3N0LWFjdGlvbi1idXR0b246aG92ZXIgewogICAgYmFja2dyb3VuZDogcmdiYSgwLCAyMTIsIDI1NSwgMC4zKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYWNjZW50LWN5YW4tMik7CiAgICBib3gtc2hhZG93OiAwIDAgMTJweCByZ2JhKDAsIDIxMiwgMjU1LCAwLjQpOwp9CgouaG9zdC1hY3Rpb24tYnV0dG9uLmRhbmdlciB7CiAgICBjb2xvcjogdmFyKC0tZXJyb3IpOwogICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDE0MCwgNjYsIDAuMSk7CiAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAxNDAsIDY2LCAwLjMpOwp9CgouaG9zdC1hY3Rpb24tYnV0dG9uLmRhbmdlcjpob3ZlciB7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMTQwLCA2NiwgMC4yKTsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZXJyb3IpOwogICAgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSgyNTUsIDE0MCwgNjYsIDAuNCk7Cn0KCi8qKiBUb2FzdCBOb3RpZmljYXRpb25zICovCi50b2FzdC1jb250YWluZXIgewogICAgcG9zaXRpb246IGZpeGVkOwogICAgYm90dG9tOiB2YXIoLS1zcGFjZS1sZyk7CiAgICByaWdodDogdmFyKC0tc3BhY2UtbGcpOwogICAgei1pbmRleDogMTAwMDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgZ2FwOiB2YXIoLS1zcGFjZS1tZCk7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoKLnRvYXN0IHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgZ2FwOiB2YXIoLS1zcGFjZS1tZCk7CiAgICBtaW4td2lkdGg6IDI4MHB4OwogICAgbWF4LXdpZHRoOiA0MDBweDsKICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlLW1kKSB2YXIoLS1zcGFjZS1sZyk7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDAsIDMwLCA1MCwgMC45NSkgMCUsIHJnYmEoMCwgMTUsIDMwLCAwLjk1KSAxMDAlKTsKICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWFjY2VudC1jeWFuKTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7CiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMiksIHZhcigtLWdsb3ctY3lhbi1icmlnaHQpOwogICAgY29sb3I6IHZhcigtLXRleHQtMSk7CiAgICBmb250LXNpemU6IDAuOTVyZW07CiAgICBwb2ludGVyLWV2ZW50czogYXV0bzsKICAgIGFuaW1hdGlvbjogc2xpZGVJblJpZ2h0IHZhcigtLWR1ci1tZWQpIGVhc2U7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7Cn0KCi50b2FzdC5zdWNjZXNzIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tc3RhdHVzLW9ubGluZSk7CiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMiksIDAgMCAzMHB4IHJnYmEoNzYsIDE3NSwgODAsIDAuMyk7Cn0KCi50b2FzdC5lcnJvciB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTsKICAgIGNvbG9yOiB2YXIoLS1lcnJvci1saWdodCk7CiAgICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctMiksIDAgMCAzMHB4IHJnYmEoMjU1LCAxNDAsIDY2LCAwLjMpOwp9CgoudG9hc3Qud2FybmluZyB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXdhcm5pbmcpOwogICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpLCAwIDAgMzBweCByZ2JhKDI1NSwgMTkzLCA3LCAwLjMpOwp9CgoudG9hc3QtaWNvbiB7CiAgICBmb250LXNpemU6IDEuMnJlbTsKICAgIGZsZXgtc2hyaW5rOiAwOwp9CgoudG9hc3QtbWVzc2FnZSB7CiAgICBmbGV4OiAxOwp9CgoudG9hc3QtY2xvc2UgewogICAgd2lkdGg6IDIwcHg7CiAgICBoZWlnaHQ6IDIwcHg7CiAgICBwYWRkaW5nOiAwOwogICAgbWFyZ2luOiAwOwogICAgYmFja2dyb3VuZDogbm9uZTsKICAgIGJvcmRlcjogbm9uZTsKICAgIGNvbG9yOiBjdXJyZW50Q29sb3I7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBmb250LXNpemU6IDEuMnJlbTsKICAgIG9wYWNpdHk6IDAuNzsKICAgIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tZHVyLWZhc3QpIGVhc2U7Cn0KCi50b2FzdC1jbG9zZTpob3ZlciB7CiAgICBvcGFjaXR5OiAxOwp9CgoudG9hc3QuZXhpdGluZyB7CiAgICBhbmltYXRpb246IHNsaWRlT3V0UmlnaHQgdmFyKC0tZHVyLW1lZCkgZWFzZTsKfQoKQGtleWZyYW1lcyBzbGlkZUluUmlnaHQgewogICAgZnJvbSB7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDQwMHB4KTsKICAgICAgICBvcGFjaXR5OiAwOwogICAgfQoKICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7CiAgICAgICAgb3BhY2l0eTogMTsKICAgIH0KfQoKQGtleWZyYW1lcyBzbGlkZU91dFJpZ2h0IHsKICAgIGZyb20gewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsKICAgICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIHRvIHsKICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNDAwcHgpOwogICAgICAgIG9wYWNpdHk6IDA7CiAgICB9Cn0KCi5ob3N0LWxpc3QgewogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICBmbGV4LXdyYXA6IHdyYXA7Cn0KCi5ob3N0LWVsZW1lbnQgewogICAgY3Vyc29yOiBwb2ludGVyOwogICAgbWFyZ2luOiB2YXIoLS1zcGFjZS1zbSk7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1tZCkgdmFyKC0tc3BhY2UtbWQpOwogICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAyMTIsIDI1NSwgMC4yNSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgwLCAzMCwgNTAsIDAuNCkgMCUsIHJnYmEoMCwgMTUsIDMwLCAwLjQpIDEwMCUpOwogICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTIpLCB2YXIoLS1nbG93LWN5YW4pOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWR1ci1tZWQpIGVhc2UsIGJveC1zaGFkb3cgdmFyKC0tZHVyLW1lZCkgZWFzZSwgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1kdXItbWVkKSBlYXNlLCBib3JkZXItY29sb3IgdmFyKC0tZHVyLW1lZCkgZWFzZTsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIG1pbi13aWR0aDogMTUwcHg7Cn0KCi5ob3N0LWVsZW1lbnQ6aG92ZXIgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC02cHgpOwogICAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LTMpLCB2YXIoLS1nbG93LWN5YW4tYnJpZ2h0KTsKICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMCwgNTAsIDgwLCAwLjYpIDAlLCByZ2JhKDAsIDMwLCA2MCwgMC42KSAxMDAlKTsKICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAyMTIsIDI1NSwgMC42KTsKfQoKLmhvc3QtZWxlbWVudDpmb2N1cy12aXNpYmxlIHsKICAgIG91dGxpbmU6IDNweCBzb2xpZCB2YXIoLS1hY2NlbnQtY3lhbi0yKTsKICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7Cn0KCi5ob3N0LWltYWdlIHsKICAgIHdpZHRoOiA1Y207CiAgICBoZWlnaHQ6IGF1dG87CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtc20pOwogICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWR1ci1tZWQpIGVhc2UsIGJveC1zaGFkb3cgdmFyKC0tZHVyLXNsb3cpIGVhc2UsIG9wYWNpdHkgdmFyKC0tZHVyLW1lZCkgZWFzZTsKfQoKLmhvc3QtZWxlbWVudDpob3ZlciAuaG9zdC1pbWFnZSB7CiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDgpOwogICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIDAuOCksIDAgMCAxNnB4IHJnYmEoMCwgMjEyLCAyNTUsIDAuNCk7Cn0KCi5ob3N0LW5hbWUgewogICAgbWFyZ2luOiB2YXIoLS1zcGFjZS1zbSkgMDsKICAgIGNvbG9yOiB2YXIoLS10ZXh0LTIpOwogICAgZm9udC1zaXplOiAxcmVtOwogICAgZm9udC13ZWlnaHQ6IDYwMDsKICAgIHRleHQtYWxpZ246IGNlbnRlcjsKICAgIHRleHQtc2hhZG93OiAwIDJweCA2cHggcmdiYSgwLCAwLCAwLCAwLjgpOwogICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4Owp9CgouaG9zdC1zdGF0dXMtaW5kaWNhdG9yIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogdmFyKC0tc3BhY2Utc20pOwogICAgcmlnaHQ6IHZhcigtLXNwYWNlLXNtKTsKICAgIHdpZHRoOiAxMnB4OwogICAgaGVpZ2h0OiAxMnB4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tdGV4dC0yKTsKICAgIGJveC1zaGFkb3c6IDAgMCA4cHggY3VycmVudENvbG9yOwogICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciB2YXIoLS1kdXItZmFzdCkgZWFzZTsKfQoKLmhvc3Qtc3RhdHVzLWluZGljYXRvci5vbmxpbmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc3RhdHVzLW9ubGluZSk7Cn0KCi5ob3N0LXN0YXR1cy1pbmRpY2F0b3Iub2ZmbGluZSB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdGF0dXMtb2ZmbGluZSk7Cn0KCi5ob3N0LXN0YXR1cy1pbmRpY2F0b3IuY29ubmVjdGluZyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdGF0dXMtY29ubmVjdGluZyk7CiAgICBhbmltYXRpb246IHB1bHNlLXN0YXR1cyAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlOwp9CgpAa2V5ZnJhbWVzIHB1bHNlLXN0YXR1cyB7CgogICAgMCUsCiAgICAxMDAlIHsKICAgICAgICBvcGFjaXR5OiAxOwogICAgfQoKICAgIDUwJSB7CiAgICAgICAgb3BhY2l0eTogMC40OwogICAgfQp9CgovKiogQXBwcyAqLwouYXBwLWxpc3QgewogICAgbGlzdC1zdHlsZS10eXBlOiBub25lOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICBmbGV4LXdyYXA6IHdyYXA7CiAgICBnYXA6IDEwcHg7Cn0KCi5hcHAtZWxlbWVudCB7CiAgICBmbGV4OiAwIDEgMjAwcHg7CiAgICAvKiogc3VidHJhY3QgaGFsZiB0aGUgZmxleCBnYXAgKi8KICAgIG1heC13aWR0aDogY2FsYyg1MCUgLSAoMTBweCAvIDIpKTsKfQoKLmFwcC1lbGVtZW50PmRpdiB7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgICBtYXJnaW46IDEwcHg7Cn0KCi5hcHAtZWxlbWVudDpob3ZlciB7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC4yczsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKfQoKLmFwcC1pbWFnZSB7CiAgICAvKiogUmF0aW86IHc6aCAyMDA6MjY2ICovCiAgICB3aWR0aDogMTAwJTsKICAgIGFzcGVjdC1yYXRpbzogMjAwIC8gMjY2OwogICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAvKiogYW5pbWF0aW9uICovCiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBsaW5lYXI7CiAgICBvcGFjaXR5OiAwOwp9CgouYXBwLWltYWdlLWxvYWRlZCB7CiAgICAvKiogYW5pbWF0aW9uICovCiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjFzIGVhc2UtaW47Cn0KCi5hcHAgewogICAgdHJhbnNpdGlvbjogYWxsIDAuNHMgbGluZWFyOwp9CgouYXBwLWFjdGl2ZSAuYXBwLWltYWdlIHsKICAgIGJvcmRlci1zdHlsZTogc29saWQ7CiAgICBib3JkZXItY29sb3I6ICMwMGY1ZmY7CiAgICBib3JkZXItd2lkdGg6IDRweDsKICAgIGJvcmRlci1yYWRpdXM6IDRweDsKICAgIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMCwgMjQ1LCAyNTUsIDAuNik7CiAgICB0cmFuc2l0aW9uOiBhbGwgMC40cyBlYXNlLWluOwp9CgouYXBwLWluYWN0aXZlIHsKICAgIGZpbHRlcjogYnJpZ2h0bmVzcygzMCUpOwoKICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW47Cn0KCi8qKiBTdHJlYW0gQ29ubmVjdCBNb2RhbCAqLwoubW9kYWwtdmlkZW8tY29ubmVjdCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OwogICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwoKICAgIG1heC13aWR0aDogMTAwJTsKICAgIG1heC1oZWlnaHQ6IDEwMCU7Cn0KCi5tb2RhbC12aWRlby1jb25uZWN0IC5tb2RhbC12aWRlby1jb25uZWN0LW9wdGlvbnMgewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCi5tb2RhbC12aWRlby1jb25uZWN0IC5tb2RhbC12aWRlby1jb25uZWN0LWRlYnVnIHsKICAgIG1heC13aWR0aDogNzV2dzsKICAgIG1heC1oZWlnaHQ6IDQwdmg7Cn0KCi8qIENvbm5lY3Rpbmcgc3Bpbm5lciBvdmVybGF5IGZvciBob3N0IHRpbGVzICovCkBrZXlmcmFtZXMgbW9vbmxpZ2h0LXNwaW4gewogICAgdG8gewogICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgICB9Cn0KCi5ob3N0LWVsZW1lbnQuY29ubmVjdGluZyB7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoKLmhvc3QtZWxlbWVudC5jb25uZWN0aW5nOjphZnRlciB7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjUpOwogICAgYm9yZGVyLXJhZGl1czogOHB4Owp9CgouaG9zdC1lbGVtZW50LmNvbm5lY3Rpbmc6OmJlZm9yZSB7CiAgICBjb250ZW50OiAiIjsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogNTAlOwogICAgbGVmdDogNTAlOwogICAgd2lkdGg6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBtYXJnaW46IC0xNHB4IDAgMCAtMTRweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJvcmRlcjogM3B4IHNvbGlkICMwMGQ0ZmY7CiAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogICAgYW5pbWF0aW9uOiBtb29ubGlnaHQtc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7CiAgICBib3gtc2hhZG93OiAwIDAgMTJweCAjMDBkNGZmOwp9CgovKiBMb2FkaW5nIE92ZXJsYXkgKi8KLmhvc3QtbG9hZGluZy1vdmVybGF5IHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGluc2V0OiAwOwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBnYXA6IHZhcigtLXNwYWNlLW1kKTsKICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC42KTsKICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1tZCk7CiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNXB4KTsKICAgIHotaW5kZXg6IDEwMDsKICAgIGFuaW1hdGlvbjogZmFkZUluIHZhcigtLWR1ci1tZWQpIGVhc2U7Cn0KCi5ob3N0LWxvYWRpbmctc3Bpbm5lciB7CiAgICB3aWR0aDogMzJweDsKICAgIGhlaWdodDogMzJweDsKICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoMCwgMjEyLCAyNTUsIDAuMik7CiAgICBib3JkZXItdG9wLWNvbG9yOiB2YXIoLS1hY2NlbnQtY3lhbi0yKTsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGFuaW1hdGlvbjogbW9vbmxpZ2h0LXNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7Cn0KCi5ob3N0LWxvYWRpbmctdGV4dCB7CiAgICBmb250LXNpemU6IDAuODVyZW07CiAgICBjb2xvcjogdmFyKC0tYWNjZW50LWN5YW4tMik7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCi5ob3N0LWxvYWRpbmctY2FuY2VsIHsKICAgIHBhZGRpbmc6IHZhcigtLXNwYWNlLXNtKSB2YXIoLS1zcGFjZS1tZCk7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDI1NSwgMTQwLCA2NiwgMC4xOCksIHJnYmEoMjU1LCAxMjAsIDQwLCAwLjA2KSk7CiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMTQwLCA2NiwgMC45NSk7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtbWQpOwogICAgY29sb3I6ICNmZmZmZmY7CiAgICBmb250LXNpemU6IDAuOXJlbTsKICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tZHVyLWZhc3QpIGVhc2UsIGJveC1zaGFkb3cgdmFyKC0tZHVyLWZhc3QpIGVhc2UsIGJhY2tncm91bmQgdmFyKC0tZHVyLWZhc3QpIGVhc2U7CiAgICBib3gtc2hhZG93OiAwIDhweCAyMHB4IHJnYmEoMCwgMCwgMCwgMC41NSksIGluc2V0IDAgMXB4IDAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA0KTsKICAgIHRleHQtc2hhZG93OiAwIDFweCAwIHJnYmEoMCwgMCwgMCwgMC42KTsKfQoKLmhvc3QtbG9hZGluZy1jYW5jZWw6aG92ZXIgewogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zcHgpOwogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDE0MCwgNjYsIDAuMjgpLCByZ2JhKDI1NSwgMTIwLCA0MCwgMC4wOCkpOwogICAgYm94LXNoYWRvdzogMCAxNHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjY1KSwgMCAycHggOHB4IHJnYmEoMjU1LCAxNDAsIDY2LCAwLjA2KSBpbnNldDsKfQoKLmhvc3QtbG9hZGluZy1jYW5jZWw6YWN0aXZlIHsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsKICAgIGJveC1zaGFkb3c6IDAgNnB4IDE0cHggcmdiYSgwLCAwLCAwLCAwLjU1KSBpbnNldDsKfQoKLmhvc3QtbG9hZGluZy1jYW5jZWw6Zm9jdXMgewogICAgb3V0bGluZTogbm9uZTsKICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDI1NSwgMTQwLCA2NiwgMC4xMiksIDAgOHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjU1KTsKfQoKLyoqIFN0cmVhbSAqLwoudmlkZW8tc3RyZWFtIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogdmFyKC0tc3RyZWFtLXZpZGVvLXRvcCwgNTAlKTsKICAgIGxlZnQ6IDUwJTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOwogICAgbWF4LXdpZHRoOiAxMDB2dzsKICAgIG1heC1oZWlnaHQ6IDEwMHZoOwogICAgbWluLXdpZHRoOiAxMDB2bWluOwogICAgbWluLWhlaWdodDogMTAwdm1pbjsKICAgIHdpZHRoOiBhdXRvOwogICAgaGVpZ2h0OiBhdXRvOwogICAgb3V0bGluZTogbm9uZTsKfQoKY2FudmFzLnZpZGVvLXN0cmVhbSB7CiAgICB3aWR0aDogMTAwJTsKICAgIGhlaWdodDogMTAwJTsKICAgIG9iamVjdC1maXQ6IGNvbnRhaW47Cn0KCi5hdWRpby1zdHJlYW0gewogICAgZGlzcGxheTogbm9uZTsKfQoKLnZpZGVvLXN0YXRzIHsKICAgIGN1cnNvcjogZGVmYXVsdDsKICAgIHBvaW50ZXItZXZlbnRzOiBub25lOwoKICAgIGNvbG9yOiAjMDBmN2ZmOwogICAgdGV4dC1zaGFkb3c6IDAgMCA0cHggYmxhY2ssIDJweCAycHggNHB4IGJsYWNrLCAtMnB4IC0ycHggNHB4IGJsYWNrLCAycHggLTJweCA0cHggYmxhY2ssIC0ycHggMnB4IDRweCBibGFjazsKCiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB6LWluZGV4OiAxOwp9CgoubG9jYWwtdG91Y2gtY3Vyc29yIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHdpZHRoOiAxMHB4OwogICAgaGVpZ2h0OiAxNXB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICB6LWluZGV4OiAzOwogICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDEyIDE4JyUzRSUzQ3BhdGggZmlsbD0nJTIzZmZmJyBkPSdNMCAwTDAgMTNMMy44IDkuOEw2LjEgMTdMOC41IDE1LjlMNi4yIDguOUwxMSA4LjlaJy8lM0UlM0Mvc3ZnJTNFIik7CiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogICAgYmFja2dyb3VuZC1zaXplOiAxMDAlIDEwMCU7CiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgwLCAwLCAwLCAwLjk1KSkgZHJvcC1zaGFkb3coMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC40NSkpOwp9Cgouc2lkZWJhci1zdHJlYW0gewogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCi5zaWRlYmFyLXN0cmVhbS1idXR0b25zIHsKICAgIGRpc3BsYXk6IGdyaWQ7CiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDUwJSA1MCU7Cn0KCi5oaWRkZW5pbnB1dCB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB6LWluZGV4OiAtMTAwMDsKICAgIHJlc2l6ZTogbm9uZTsKICAgIHRyYW5zbGF0ZTogMjAwdncgMjAwdmg7Cn0KCi5zdHJlYW0ta2V5Ym9hcmQtZmxvYXRpbmctYnV0dG9uIHsKICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgIHRvcDogdmFyKC0tc3RyZWFtLWtleWJvYXJkLWJ1dHRvbi10b3AsIDUwJSk7CiAgICByaWdodDogMTJweDsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7CiAgICB3aWR0aDogNDRweDsKICAgIGhlaWdodDogNDRweDsKICAgIHotaW5kZXg6IDEwMDA7CiAgICBkaXNwbGF5OiBub25lOwogICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYWNjZW50LWN5YW4pOwogICAgYm9yZGVyLXJhZGl1czogOTk5cHg7CiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNTUpOwogICAgY29sb3I6IHZhcigtLXRleHQtMSk7CiAgICBmb250LXNpemU6IDE4cHg7CiAgICBvcGFjaXR5OiAwLjc4OwogICAgY3Vyc29yOiBwb2ludGVyOwogICAgY29udGFpbjogbGF5b3V0IHBhaW50IHN0eWxlOwogICAgdG91Y2gtYWN0aW9uOiBub25lOwogICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKfQoKLnN0cmVhbS1rZXlib2FyZC1mbG9hdGluZy1idXR0b24udmlzaWJsZSB7CiAgICBkaXNwbGF5OiBmbGV4Owp9Cgouc3RyZWFtLWtleWJvYXJkLWZsb2F0aW5nLWJ1dHRvbjphY3RpdmUgewogICAgb3BhY2l0eTogMTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSkgc2NhbGUoMC45NSk7Cn0KCi8qIFByZXZlbnQgc3RhcnRpbmcgYW5pbWF0aW9uIGZvciBlbGVtZW50cyAqLwoucHJldmVudC1zdGFydC10cmFuc2l0aW9uIHsKICAgIHRyYW5zaXRpb246IG5vbmU7Cn0KCi8qIEFkbWluICovCi51c2VyLWJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIi4uL3Jlc291cmNlcy9uZXcvdXNlci5zdmciKTsKICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsKICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CiAgICBiYWNrZ3JvdW5kLXNpemU6IDYwcHg7CiAgICB3aWR0aDogNzBweDsKICAgIGhlaWdodDogNzBweDsKfQoKLnVzZXItcGFuZWwsCi5yb2xlLXBhbmVsIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgbWF4LXdpZHRoOiAyMjVweDsKfQoKLnVzZXItbGlzdCwKLnJvbGUtbGlzdCB7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGZsZXg6IDE7CiAgICBtaW4taGVpZ2h0OiAwOwogICAgb3ZlcmZsb3cteTogYXV0bzsKfQoKLnVzZXItZWxlbWVudCwKLnJvbGUtZWxlbWVudCB7CiAgICBtYXJnaW46IDA7CiAgICBwYWRkaW5nOiAxMHB4OwogICAgbWluLXdpZHRoOiAxMTBweDsKICAgIGN1cnNvcjogcG9pbnRlcjsKICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIC8qKiBhbmltYXRpb24gKi8KICAgIHRyYW5zaXRpb246IGFsbCAwLjE1czsKICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7Cn0KCi51c2VyLWVsZW1lbnQ6aG92ZXIsCi5yb2xlLWVsZW1lbnQ6aG92ZXIgewogICAgLyoqIGFuaW1hdGlvbiAqLwogICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7Cn0KCi51c2VyLWVsZW1lbnQgcCwKLnJvbGUtZWxlbWVudCBwIHsKICAgIHBhZGRpbmc6IDA7CiAgICBtYXJnaW46IDA7Cn0KCi5hZG1pbi1wYW5lbC11c2VycywKLmFkbWluLXBhbmVsLXJvbGVzIHsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgoudXNlci1pbmZvLWRlbGV0ZSwKLnJvbGUtaW5mby1kZWxldGUgewogICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOwp9Cg=="},{"path":"web/util.ts","sha256":"9b581e5a044a7568913bd5d102afffee50d9f26b2cc9018eaececa48fa482260","contentBase64":"CmV4cG9ydCBmdW5jdGlvbiBnbG9iYWxPYmplY3QoKTogYW55IHsKICAgIGlmICh0eXBlb2Ygc2VsZiAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICByZXR1cm4gc2VsZgogICAgfQoKICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykgewogICAgICAgIHJldHVybiB3aW5kb3cKICAgIH0KCiAgICByZXR1cm4gZ2xvYmFsVGhpczsKfQoKZXhwb3J0IGZ1bmN0aW9uIGRvd25sb2FkKGRhdGE6IFVpbnQ4QXJyYXksIGZpbGVuYW1lOiBzdHJpbmcsIG1pbWU6IHN0cmluZyA9ICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKSB7CiAgICBjb25zdCBibG9iID0gZGF0YSBpbnN0YW5jZW9mIEJsb2IgPyBkYXRhIDogbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGU6IG1pbWUgfSkKICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikKCiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpCiAgICBhLmhyZWYgPSB1cmwKICAgIGEuZG93bmxvYWQgPSBmaWxlbmFtZQogICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKQogICAgYS5jbGljaygpCiAgICBhLnJlbW92ZSgpCgogICAgVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpCn0KCmV4cG9ydCBmdW5jdGlvbiBudW1Ub0hleChuOiBudW1iZXIpOiBzdHJpbmcgewogICAgY29uc3QgaGV4ID0gbi50b1N0cmluZygxNikKICAgIHJldHVybiBoZXgubGVuZ3RoID09PSAxID8gIjAiICsgaGV4IDogaGV4Cn0K"}]}