Mw0NCgxae2PbOQAA4wAAAAAAAAAAAAAAAAQAAABAAAAAc6QAAABkAFoAZAFkAmwBWgFkAWQCbAJaAmQBZAJsA1oDZAFkAmwEWgRkAWQCbAVaBWQDZARsBm0HWgcBAGQDZAVsCG0JWgkBAGQDZAZsCm0LWgsBAGQHZwFaDGUCag1lDoMBWg9lBGoQZAhlBGoRgwJaEmUEahBkCWUEahFlBGoTQgCDAloUZQVqFWQCZAqFAhkAWhZHAGQLZAeEAGQHZReDA1oYZAJTACkMenUKQ2xhc3MgcmVwcmVzZW50aW5nIHRoZSBsaXN0IG9mIGZpbGVzIGluIGEgZGlzdHJpYnV0aW9uLgoKRXF1aXZhbGVudCB0byBkaXN0dXRpbHMuZmlsZWxpc3QsIGJ1dCBmaXhlcyBzb21lIHByb2JsZW1zLgrpAAAAAE7pAQAAACkB2hBEaXN0bGliRXhjZXB0aW9uKQHaCGZzZGVjb2RlKQHaDGNvbnZlcnRfcGF0aNoITWFuaWZlc3R6BVxcdyoKehAjLio/KD89Cil8Cig/PSQp6QIAAABjAAAAAAAAAAAAAAAAAwAAAEAAAABzegAAAGUAWgFkAFoCZAFaA2QdZANkBIQBWgRkBWQGhABaBWQHZAiEAFoGZAlkCoQAWgdkHmQMZA2EAVoIZA5kD4QAWglkEGQRhABaCmQSZBOEAFoLZB9kFWQWhAFaDGQgZBdkGIQBWg1kIWQZZBqEAVoOZBtkHIQAWg9kAlMAKSJyBgAAAHp+QSBsaXN0IG9mIGZpbGVzIGJ1aWx0IGJ5IG9uIGV4cGxvcmluZyB0aGUgZmlsZXN5c3RlbSBhbmQgZmlsdGVyZWQgYnkKICAgIGFwcGx5aW5nIHZhcmlvdXMgcGF0dGVybnMgdG8gd2hhdCB3ZSBmaW5kIHRoZXJlLgogICAgTmMCAAAAAAAAAAIAAAADAAAAQwAAAHM+AAAAdABqAWoCdABqAWoDfAFwFnQAagSDAIMBgwF8AF8FfABqBXQAagYXAHwAXwdkAXwAXwh0CYMAfABfCmQBUwApAnpkCiAgICAgICAgSW5pdGlhbGlzZSBhbiBpbnN0YW5jZS4KCiAgICAgICAgOnBhcmFtIGJhc2U6IFRoZSBiYXNlIGRpcmVjdG9yeSB0byBleHBsb3JlIHVuZGVyLgogICAgICAgIE4pC9oCb3PaBHBhdGjaB2Fic3BhdGjaCG5vcm1wYXRo2gZnZXRjd2TaBGJhc2XaA3NlcNoGcHJlZml42ghhbGxmaWxlc9oDc2V02gVmaWxlcykC2gRzZWxmcg0AAACpAHIUAAAA+jsvdG1wL3BpcC1idWlsZC0xZmljb2o0cy9waXAvcGlwL192ZW5kb3IvZGlzdGxpYi9tYW5pZmVzdC5wedoIX19pbml0X18qAAAAcwgAAAAABh4BDgEGAXoRTWFuaWZlc3QuX19pbml0X19jAQAAAAAAAAAOAAAABAAAAEMAAABzsgAAAGQBZAJsAG0BfQFtAn0CbQN9AwEAZwAEAHwAXwR9BHwAagV9BXwFZwF9BnwGagZ9B3wGagd9CHh2fAZyrHwHgwB9BXQIagl8BYMBfQl4XHwJRABdVH0KdAhqCmoLfAV8CoMCfQt0CGoAfAuDAX0MfAxqDH0NfAF8DYMBcox8BGoHdA18C4MBgwEBAHFSfAJ8DYMBclJ8A3wNgwEMAHJSfAh8C4MBAQBxUlcAcThXAGQDUwApBHptRmluZCBhbGwgZmlsZXMgdW5kZXIgdGhlIGJhc2UgYW5kIHNldCBgYGFsbGZpbGVzYGAgdG8gdGhlIGFic29sdXRlCiAgICAgICAgcGF0aG5hbWVzIG9mIGZpbGVzIGZvdW5kLgogICAgICAgIHIBAAAAKQPaB1NfSVNSRUfaB1NfSVNESVLaB1NfSVNMTktOKQ7aBHN0YXRyFwAAAHIYAAAAchkAAAByEAAAAHINAAAA2gNwb3DaBmFwcGVuZHIIAAAA2gdsaXN0ZGlycgkAAADaBGpvaW7aB3N0X21vZGVyBAAAACkOchMAAAByFwAAAHIYAAAAchkAAAByEAAAANoEcm9vdNoFc3RhY2tyGwAAANoEcHVzaNoFbmFtZXPaBG5hbWXaCGZ1bGxuYW1lchoAAADaBG1vZGVyFAAAAHIUAAAAchUAAADaB2ZpbmRhbGw5AAAAcyIAAAAABBQCCgEGAQYBBgEGAgYBBgEKAgoBDgMKAQYBCAEQARIBehBNYW5pZmVzdC5maW5kYWxsYwIAAAAAAAAAAgAAAAMAAABDAAAAczQAAAB8AWoAfABqAYMBcxx0AmoDagR8AGoFfAGDAn0BfABqBmoHdAJqA2oIfAGDAYMBAQBkAVMAKQJ6egogICAgICAgIEFkZCBhIGZpbGUgdG8gdGhlIG1hbmlmZXN0LgoKICAgICAgICA6cGFyYW0gaXRlbTogVGhlIHBhdGhuYW1lIHRvIGFkZC4gVGhpcyBjYW4gYmUgcmVsYXRpdmUgdG8gdGhlIGJhc2UuCiAgICAgICAgTikJ2gpzdGFydHN3aXRocg8AAAByCAAAAHIJAAAAch4AAAByDQAAAHISAAAA2gNhZGRyCwAAACkCchMAAADaBGl0ZW1yFAAAAHIUAAAAchUAAAByKQAAAFQAAABzBgAAAAAGDAEQAXoMTWFuaWZlc3QuYWRkYwIAAAAAAAAAAwAAAAMAAABDAAAAcxwAAAB4FnwBRABdDn0CfABqAHwCgwEBAHEGVwBkAVMAKQJ6hgogICAgICAgIEFkZCBhIGxpc3Qgb2YgZmlsZXMgdG8gdGhlIG1hbmlmZXN0LgoKICAgICAgICA6cGFyYW0gaXRlbXM6IFRoZSBwYXRobmFtZXMgdG8gYWRkLiBUaGVzZSBjYW4gYmUgcmVsYXRpdmUgdG8gdGhlIGJhc2UuCiAgICAgICAgTikBcikAAAApA3ITAAAA2gVpdGVtc3IqAAAAchQAAAByFAAAAHIVAAAA2ghhZGRfbWFueV4AAABzBAAAAAAGCgF6EU1hbmlmZXN0LmFkZF9tYW55RmMCAAAAAAAAAAUAAAAFAAAAAwAAAHNmAAAAhwCHAWYCZAFkAoQIiQB0AIgBagGDAX0CfAFySnQAgwB9A3gefAJEAF0WfQSIAHwDdAJqA2oEfASDAYMCAQBxKFcAfAJ8A08AfQJkA2QEhAB0BWQFZAaEAHwCRACDAYMBRACDAVMAKQd6OAogICAgICAgIFJldHVybiBzb3J0ZWQgZmlsZXMgaW4gZGlyZWN0b3J5IG9yZGVyCiAgICAgICAgYwIAAAAAAAAABAAAAAMAAAATAAAAc0oAAAB8AGoAfAGDAQEAdAFqAmQBfAGDAgEAfAGIAWoDawNyRnQEagVqBnwBgwFcAn0CfQN8AmQEawdzPHQHggGIAHwAfAKDAgEAZABTACkFTnoQYWRkX2RpciBhZGRlZCAlc9oA+gEvKQJyLQAAAHIuAAAAKQhyKQAAANoGbG9nZ2Vy2gVkZWJ1Z3INAAAAcggAAAByCQAAANoFc3BsaXTaDkFzc2VydGlvbkVycm9yKQTaBGRpcnPaAWTaBnBhcmVudNoBXykC2gdhZGRfZGlychMAAAByFAAAAHIVAAAAcjcAAABsAAAAcwwAAAAAAQoBDAEKARABDAF6IE1hbmlmZXN0LnNvcnRlZC48bG9jYWxzPi5hZGRfZGlyYwEAAAAAAAAAAgAAAAQAAABTAAAAcxgAAABnAHwAXRB9AXQAagFqAnwBjgCRAnEEUwByFAAAACkDcggAAAByCQAAAHIeAAAAKQLaAi4wWgpwYXRoX3R1cGxlchQAAAByFAAAAHIVAAAA+go8bGlzdGNvbXA+egAAAHMCAAAABgB6I01hbmlmZXN0LnNvcnRlZC48bG9jYWxzPi48bGlzdGNvbXA+YwEAAAAAAAAAAgAAAAMAAABzAAAAcxoAAAB8AF0SfQF0AGoBagJ8AYMBVgABAHECZABTACkBTikDcggAAAByCQAAAHIxAAAAKQJyOAAAAHIJAAAAchQAAAByFAAAAHIVAAAA+gk8Z2VuZXhwcj57AAAAcwIAAAAEAHoiTWFuaWZlc3Quc29ydGVkLjxsb2NhbHM+LjxnZW5leHByPikGchEAAAByEgAAAHIIAAAAcgkAAADaB2Rpcm5hbWXaBnNvcnRlZCkFchMAAABaCHdhbnRkaXJz2gZyZXN1bHRyMwAAANoBZnIUAAAAKQJyNwAAAHITAAAAchUAAAByPAAAAGcAAABzEgAAAAAFDggKAQQBBgEKARYBCAEGAXoPTWFuaWZlc3Quc29ydGVkYwEAAAAAAAAAAQAAAAIAAABDAAAAcxIAAAB0AIMAfABfAWcAfABfAmQBUwApAnoaQ2xlYXIgYWxsIGNvbGxlY3RlZCBmaWxlcy5OKQNyEQAAAHISAAAAchAAAAApAXITAAAAchQAAAByFAAAAHIVAAAA2gVjbGVhcn0AAABzBAAAAAACCAF6Dk1hbmlmZXN0LmNsZWFyYwIAAAAAAAAACAAAAAUAAABDAAAAc4YBAAB8AGoAfAGDAVwEfQJ9A30EfQV8AmQBawJyRngmfANEAF0efQZ8AGoBfAZkAmQDjQJzIHQCagNkBHwGgwIBAHEgVwCQAW48fAJkBWsCcm54GnwDRABdEn0GfABqBHwGZAJkA40CfQdxVFcAkAFuFHwCZAZrAnKgeCZ8A0QAXR59BnwAagF8BmQHZAONAnN8dAJqA2QIfAaDAgEAcXxXAG7ifAJkCWsCcsZ42HwDRABdEn0GfABqBHwGZAdkA40CfQdxrlcAbrx8AmQKawKQAHL8eLB8A0QAXSB9BnwAagF8BnwEZAuNAnPWdAJqA2QMfAZ8BIMDAQBx1lcAboZ8AmQNawKQAXImeHp8A0QAXRR9BnwAagR8BnwEZAuNAn0HkAFxDFcAblx8AmQOawKQAXJOfABqAWQPfAVkC40CkAFzgnQCagNkEHwFgwIBAG40fAJkEWsCkAFydnwAagRkD3wFZAuNApABc4J0AmoDZBJ8BYMCAQBuDHQFZBN8AhYAgwGCAWQPUwApFGF2AQAACiAgICAgICAgUHJvY2VzcyBhIGRpcmVjdGl2ZSB3aGljaCBlaXRoZXIgYWRkcyBzb21lIGZpbGVzIGZyb20gYGBhbGxmaWxlc2BgIHRvCiAgICAgICAgYGBmaWxlc2BgLCBvciByZW1vdmVzIHNvbWUgZmlsZXMgZnJvbSBgYGZpbGVzYGAuCgogICAgICAgIDpwYXJhbSBkaXJlY3RpdmU6IFRoZSBkaXJlY3RpdmUgdG8gcHJvY2Vzcy4gVGhpcyBzaG91bGQgYmUgaW4gYSBmb3JtYXQKICAgICAgICAgICAgICAgICAgICAgY29tcGF0aWJsZSB3aXRoIGRpc3R1dGlscyBgYE1BTklGRVNULmluYGAgZmlsZXM6CgogICAgICAgICAgICAgICAgICAgICBodHRwOi8vZG9jcy5weXRob24ub3JnL2Rpc3R1dGlscy9zb3VyY2VkaXN0Lmh0bWwjY29tbWFuZHMKICAgICAgICDaB2luY2x1ZGVUKQHaBmFuY2hvcnoabm8gZmlsZXMgZm91bmQgbWF0Y2hpbmcgJXLaB2V4Y2x1ZGV6Dmdsb2JhbC1pbmNsdWRlRnozbm8gZmlsZXMgZm91bmQgbWF0Y2hpbmcgJXIgYW55d2hlcmUgaW4gZGlzdHJpYnV0aW9ueg5nbG9iYWwtZXhjbHVkZXoRcmVjdXJzaXZlLWluY2x1ZGUpAXIPAAAAei1ubyBmaWxlcyBmb3VuZCBtYXRjaGluZyAlciB1bmRlciBkaXJlY3RvcnkgJXJ6EXJlY3Vyc2l2ZS1leGNsdWRl2gVncmFmdE56IG5vIGRpcmVjdG9yaWVzIGZvdW5kIG1hdGNoaW5nICVy2gVwcnVu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ZSB3aWxkY2FyZCAoZ2xvYikgcGF0dGVybi4KCiAgICAgICAgUGF0dGVybnMgYXJlIG5vdCBxdWl0ZSB0aGUgc2FtZSBhcyBpbXBsZW1lbnRlZCBieSB0aGUgJ2ZubWF0Y2gnCiAgICAgICAgbW9kdWxlOiAnKicgYW5kICc/JyAgbWF0Y2ggbm9uLXNwZWNpYWwgY2hhcmFjdGVycywgd2hlcmUgInNwZWNpYWwiCiAgICAgICAgaXMgcGxhdGZvcm0tZGVwZW5kZW50OiBzbGFzaCBvbiBVbml4OyBjb2xvbiwgc2xhc2gsIGFuZCBiYWNrc2xhc2ggb24KICAgICAgICBET1MvV2luZG93czsgYW5kIGNvbG9uIG9uIE1hYyBPUy4KCiAgICAgICAgSWYgJ2FuY2hvcicgaXMgdHJ1ZSAodGhlIGRlZmF1bHQpLCB0aGVuIHRoZSBwYXR0ZXJuIG1hdGNoIGlzIG1vcmUKICAgICAgICBzdHJpbmdlbnQ6ICIqLnB5IiB3aWxsIG1hdGNoICJmb28ucHkiIGJ1dCBub3QgImZvby9iYXIucHkiLiAgSWYKICAgICAgICAnYW5jaG9yJyBpcyBmYWxzZSwgYm90aCBvZiB0aGVzZSB3aWxsIG1hdGNoLgoKICAgICAgICBJZiAncHJlZml4JyBpcyBzdXBwbGllZCwgdGhlbiBvbmx5IGZpbGVuYW1lcyBzdGFydGluZyB3aXRoICdwcmVmaXgnCiAgICAgICAgKGl0c2VsZiBhIHBhdHRlcm4pIGFuZCBlbmRpbmcgd2l0aCAncGF0dGVybicsIHdpdGggYW55dGhpbmcgaW4gYmV0d2VlbgogICAgICAgIHRoZW0sIHdpbGwgbWF0Y2guICAnYW5jaG9yJyBpcyBpZ25vcmVkIGluIHRoaXMgY2FzZS4KCiAgICAgICAgSWYgJ2lzX3JlZ2V4JyBpcyB0cnVlLCAnYW5jaG9yJyBhbmQgJ3ByZWZpeCcgYXJlIGlnbm9yZWQsIGFuZAogICAgICAgICdwYXR0ZXJuJyBpcyBhc3N1bWVkIHRvIGJlIGVpdGhlciBhIHN0cmluZyBjb250YWluaW5nIGEgcmVnZXggb3IgYQogICAgICAgIHJlZ2V4IG9iamVjdCAtLSBubyB0cmFuc2xhdGlvbiBpcyBk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