bw0NCgAAAAClNI1jHhYAAOMAAAAAAAAAAAAAAAAAAAAAGQAAAEAAAABzZgEAAGQAZAFsAFoAZABkAWwBWgFkAGQCbAJtA1oDbQRaBG0FWgUBAGUBoAZkA6EBoAehAFoICQEJBAkEZCFkBWUJZAZlBGUFZQkZABkAZAdlCmQIZQpkCWUDZQkZAGYKZApkC4QFWgtkBWUJZAZlBWUJGQBkDGUFZQkZAGQNZQlkCWUDZQkZAGYKZA5kD4QEWgxkBWUJZAZlBWUJGQBkCWUDZQkZAGYGZBBkEYQEWg1kBWUJZAZlBWUJGQBkEmUFZQkZAGQHZQpkE2UEZQkZAGQUZQRlCRkAZBVlCmQJZQNlCRkAZhBkFmQXhARaDmQFZQlkGGUEZQkZAGQHZQpkCWUDZQkZAGYIZBlkGoQEWg9kBWUJZAZlBWUJGQBkEmUFZQkZAGQbZQlkHGUEZQkZAGQTZQRlCRkAZB1lBGUJGQBkFGUEZQkZAGQVZQpkB2UKZB5lCmQJZQNlCRkAZhhkH2QghARaEGQBUwApIukAAAAATikD2gRMaXN02ghPcHRpb25hbNoIU2VxdWVuY2VhaAUAAAogICAgZXhlYyhjb21waWxlKCcnJwogICAgIyBUaGlzIGlzIDxwaXAtc2V0dXB0b29scy1jYWxsZXI+IC0tIGEgY2FsbGVyIHRoYXQgcGlwIHVzZXMgdG8gcnVuIHNldHVwLnB5CiAgICAjCiAgICAjIC0gSXQgaW1wb3J0cyBzZXR1cHRvb2xzIGJlZm9yZSBpbnZva2luZyBzZXR1cC5weSwgdG8gZW5hYmxlIHByb2plY3RzIHRoYXQgZGlyZWN0bHkKICAgICMgICBpbXBvcnQgZnJvbSBgZGlzdHV0aWxzLmNvcmVgIHRvIHdvcmsgd2l0aCBuZXdlciBwYWNrYWdpbmcgc3RhbmRhcmRzLgogICAgIyAtIEl0IHByb3ZpZGVzIGEgY2xlYXIgZXJyb3IgbWVzc2FnZSB3aGVuIHNldHVwdG9vbHMgaXMgbm90IGluc3RhbGxlZC4KICAgICMgLSBJdCBzZXRzIGBzeXMuYXJndlswXWAgdG8gdGhlIHVuZGVybHlpbmcgYHNldHVwLnB5YCwgd2hlbiBpbnZva2luZyBgc2V0dXAucHlgIHNvCiAgICAjICAgc2V0dXB0b29scyBkb2Vzbid0IHRoaW5rIHRoZSBzY3JpcHQgaXMgYC1jYC4gVGhpcyBhdm9pZHMgdGhlIGZvbGxvd2luZyB3YXJuaW5nOgogICAgIyAgICAgbWFuaWZlc3RfbWFrZXI6IHN0YW5kYXJkIGZpbGUgJy1jJyBub3QgZm91bmQiLgogICAgIyAtIEl0IGdlbmVyYXRlcyBhIHNoaW0gc2V0dXAucHksIGZvciBoYW5kbGluZyBzZXR1cC5jZmctb25seSBwcm9qZWN0cy4KICAgIGltcG9ydCBvcywgc3lzLCB0b2tlbml6ZQoKICAgIHRyeToKICAgICAgICBpbXBvcnQgc2V0dXB0b29scwogICAgZXhjZXB0IEltcG9ydEVycm9yIGFzIGVycm9yOgogICAgICAgIHByaW50KAogICAgICAgICAgICAiRVJST1I6IENhbiBub3QgZXhlY3V0ZSBgc2V0dXAucHlgIHNpbmNlIHNldHVwdG9vbHMgaXMgbm90IGF2YWlsYWJsZSBpbiAiCiAgICAgICAgICAgICJ0aGUgYnVpbGQgZW52aXJvbm1lbnQuIiwKICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyLAogICAgICAgICkKICAgICAgICBzeXMuZXhpdCgxKQoKICAgIF9fZmlsZV9fID0gJXIKICAgIHN5cy5hcmd2WzBdID0gX19maWxlX18KCiAgICBpZiBvcy5wYXRoLmV4aXN0cyhfX2ZpbGVfXyk6CiAgICAgICAgZmlsZW5hbWUgPSBfX2ZpbGVfXwogICAgICAgIHdpdGggdG9rZW5pemUub3BlbihfX2ZpbGVfXykgYXMgZjoKICAgICAgICAgICAgc2V0dXBfcHlfY29kZSA9IGYucmVhZCgpCiAgICBlbHNlOgogICAgICAgIGZpbGVuYW1lID0gIjxhdXRvLWdlbmVyYXRlZCBzZXR1cHRvb2xzIGNhbGxlcj4iCiAgICAgICAgc2V0dXBfcHlfY29kZSA9ICJmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwOyBzZXR1cCgpIgoKICAgIGV4ZWMoY29tcGlsZShzZXR1cF9weV9jb2RlLCBmaWxlbmFtZSwgImV4ZWMiKSkKICAgICcnJyAlICh7IXJ9LCksICI8cGlwLXNldHVwdG9vbHMtY2FsbGVyPiIsICJleGVjIikpCiAgICBG2g1zZXR1cF9weV9wYXRo2g5nbG9iYWxfb3B0aW9uc9oObm9fdXNlcl9jb25maWfaEXVuYnVmZmVyZWRfb3V0cHV02gZyZXR1cm5jBAAAAAAAAAAAAAAABQAAAAUAAABDAAAAc0YAAAB0AGoBZwF9BHwDcgt8BGQBZwE3AH0EfARkAnQCoAN8AKEBZwI3AH0EfAFyGnwEfAE3AH0EfAJyIXwEZANnATcAfQR8BFMAKQRhbwEAAAogICAgR2V0IHNldHVwdG9vbHMgY29tbWFuZCBhcmd1bWVudHMgd2l0aCBzaGltIHdyYXBwZWQgc2V0dXAgZmlsZSBpbnZvY2F0aW9uLgoKICAgIDpwYXJhbSBzZXR1cF9weV9wYXRoOiBUaGUgcGF0aCB0byBzZXR1cC5weSB0byBiZSB3cmFwcGVkLgogICAgOnBhcmFtIGdsb2JhbF9vcHRpb25zOiBBZGRpdGlvbmFsIGdsb2JhbCBvcHRpb25zLgogICAgOnBhcmFtIG5vX3VzZXJfY29uZmlnOiBJZiBUcnVlLCBkaXNhYmxlcyBwZXJzb25hbCB1c2VyIGNvbmZpZ3VyYXRpb24uCiAgICA6cGFyYW0gdW5idWZmZXJlZF9vdXRwdXQ6IElmIFRydWUsIGFkZHMgdGhlIHVuYnVmZmVyZWQgc3dpdGNoIHRvIHRoZQogICAgIGFyZ3VtZW50IGxpc3QuCiAgICB6Ai11egItY3oNLS1uby11c2VyLWNmZykE2gNzeXPaCmV4ZWN1dGFibGXaEF9TRVRVUFRPT0xTX1NISU3aBmZvcm1hdCkFcgUAAAByBgAAAHIHAAAAcggAAADaBGFyZ3OpAHIPAAAA+m8vcm9vdC9nZjE4MC1kZW1vL2NhcmF2ZWxfdXNlcl9wcm9qZWN0L3ZlbnYvbGliL3B5dGhvbjMuMTAvc2l0ZS1wYWNrYWdlcy9waXAvX2ludGVybmFsL3V0aWxzL3NldHVwdG9vbHNfYnVpbGQucHnaGW1ha2Vfc2V0dXB0b29sc19zaGltX2FyZ3MxAAAAcxIAAAAIDwQBCgESAQQBCAEEAQoBBAFyEQAAANoNYnVpbGRfb3B0aW9uc9oPZGVzdGluYXRpb25fZGlyYwQAAAAAAAAAAAAAAAUA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