bw0NCgAAAACiNI1jYh4AAOMAAAAAAAAAAAAAAAAAAAAAAwAAAEAAAABzdAAAAGQAWgBkAWQCbAFaAWQBZAJsAloCZAFkA2wDbQRaBG0FWgUBAGQBZARsBm0HWgcBAGkAYQhkE2QHZAiEAVoJZBNkCWQKhAFaCgkGCQFkFGQLZAyEAVoLZA1kDoQAWgxkFWQPZBCEAVoNZBFkEoQAWg5kAlMAKRZ6V2Rpc3R1dGlscy5kaXJfdXRpbAoKVXRpbGl0eSBmdW5jdGlvbnMgZm9yIG1hbmlwdWxhdGluZyBkaXJlY3RvcmllcyBhbmQgZGlyZWN0b3J5IHRyZWVzLukAAAAATikC2hJEaXN0dXRpbHNGaWxlRXJyb3LaFkRpc3R1dGlsc0ludGVybmFsRXJyb3IpAdoDbG9n6f8BAADpAQAAAGMEAAAAAAAAAAAAAAALAAAACwAAAEMAAABzcgEAAHQAfAB0AYMCcwx0AmQBfABmARYAgwGCAXQDagSgBXwAoQF9AGcAfQR0A2oEoAZ8AKEBcx58AGQCawJyIHwEUwB0B6AIdANqBKAJfAChAaEBcit8BFMAdANqBKAKfAChAVwCfQV9BnwGZwF9B3wFclh8BnJYdANqBKAGfAWhAXNYdANqBKAKfAWhAVwCfQV9BnwHoAtkA3wGoQIBAHwFclh8BnJYdANqBKAGfAWhAXJAfAdEAF1cfQh0A2oEoAx8BXwIoQJ9BXQDagSgCXwFoQF9CXQHoAh8CaEBcm9xWnwCZARrBXJ5dA2gDmQFfAWhAgEAfANzsnoIdAOgD3wFfAGhAgEAVwBuKQQAdBB5rAEAfQoBAHodfApqEXQRahJrAnKXdANqBKAGfAWhAXOidBNkBnwFfApqFGQHGQBmAhYAgwGCAVcAWQBkCH0KfgpuBWQIfQp+CncBdwB8BKAVfAWhAQEAZAR0B3wJPABxWnwEUwApCWHsAQAAQ3JlYXRlIGEgZGlyZWN0b3J5IGFuZCBhbnkgbWlzc2luZyBhbmNlc3RvciBkaXJlY3Rvcmllcy4KCiAgICBJZiB0aGUgZGlyZWN0b3J5IGFscmVhZHkgZXhpc3RzIChvciBpZiAnbmFtZScgaXMgdGhlIGVtcHR5IHN0cmluZywgd2hpY2gKICAgIG1lYW5zIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgd2hpY2ggb2YgY291cnNlIGV4aXN0cyksIHRoZW4gZG8gbm90aGluZy4KICAgIFJhaXNlIERpc3R1dGlsc0ZpbGVFcnJvciBpZiB1bmFibGUgdG8gY3JlYXRlIHNvbWUgZGlyZWN0b3J5IGFsb25nIHRoZSB3YXkKICAgIChlZy4gc29tZSBzdWItcGF0aCBleGlzdHMsIGJ1dCBpcyBhIGZpbGUgcmF0aGVyIHRoYW4gYSBkaXJlY3RvcnkpLgogICAgSWYgJ3ZlcmJvc2UnIGlzIHRydWUsIHByaW50IGEgb25lLWxpbmUgc3VtbWFyeSBvZiBlYWNoIG1rZGlyIHRvIHN0ZG91dC4KICAgIFJldHVybiB0aGUgbGlzdCBvZiBkaXJlY3RvcmllcyBhY3R1YWxseSBjcmVhdGVkLgogICAgeihta3BhdGg6ICduYW1lJyBtdXN0IGJlIGEgc3RyaW5nIChnb3QgJXIp2gByAQAAAHIGAAAAegtjcmVhdGluZyAlc3oZY291bGQgbm90IGNyZWF0ZSAnJXMnOiAlc+n/////TikW2gppc2luc3RhbmNl2gNzdHJyAwAAANoCb3PaBHBhdGjaCG5vcm1wYXRo2gVpc2RpctoNX3BhdGhfY3JlYXRlZNoDZ2V02gdhYnNwYXRo2gVzcGxpdNoGaW5zZXJ02gRqb2lucgQAAADaBGluZm/aBW1rZGly2gdPU0Vycm9y2gVlcnJub9oGRUVYSVNUcgIAAADaBGFyZ3PaBmFwcGVuZCkL2gRuYW1l2gRtb2Rl2gd2ZXJib3Nl2gdkcnlfcnVu2gxjcmVhdGVkX2RpcnPaBGhlYWTaBHRhaWzaBXRhaWxz2gFk2ghhYnNfaGVhZNoDZXhjqQByJwAAAPppL3Jvb3QvZ2YxODAtZGVtby9jYXJhdmVsX3VzZXJfcHJvamVjdC92ZW52L2xpYi9weXRob24zLjEwL3NpdGUtcGFja2FnZXMvc2V0dXB0b29scy9fZGlzdHV0aWxzL2Rpcl91dGlsLnB52gZta3BhdGgRAAAAc0oAAAAKDgIBCAEE/wwIBAEUAQQBEgEEARACBgEUAhABDAEU/ggHDgIMAQoCAgEIAgwBBAICARABDgEYAQIBEAEE/wz/CIAC/woECgIEAXIpAAAAYwUAAAAAAAAAAAAAAAgAAAAJAAAAQwAA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