IAAAAFNMUFAAABYAKAAEAAgADAAQABQAGAAcACAAJAAWAAAAXAkAAEQJAAA8CQAAjAUAACAAAAAgAAAAFAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADgAAABMBQAAOAUAACQFAAAQBQAABAUAAPQEAADoBAAApAQAAFQEAAAMBAAA/AMAAOgDAADQAwAAuAMAAKgDAACYAwAAiAMAAHgDAABoAwAAWAMAAEgDAAA4AwAAIAMAAAgDAAD0AgAA4AIAAMQCAACoAgAAmAIAAHwCAABcAgAAPAIAACQCAAAMAgAA9AEAAOABAADMAQAAtAEAAKQBAACUAQAAeAEAAFwBAABAAQAAKAEAABgBAAAEAQAA8AAAANwAAADEAAAAqAAAAIwAAABsAAAAVAAAADgAAAAgAAAABAAAABEAAABub3JlbW92ZV9uZXRuYW1lcwAAAA4AAAByZW1vdmVfbmV0bmFtZQAAEgAAAG5vcmVtb3ZlX2dhdGVuYW1lcwAADwAAAHJlbW92ZV9nYXRlbmFtZQAVAAAAYXV0b2V4cGFuZF92ZWN0b3JuZXRzAAAAEwAAAG5vZXhwYW5kX3ZlY3Rvcm5ldHMAEQAAAGV4cGFuZF92ZWN0b3JuZXRzAAAADAAAAGVuZHByb3RlY3RlZAAAAAAJAAAAcHJvdGVjdGVkAAAACgAAAGVuZHByb3RlY3QAAAgAAAB1bnNpZ25lZAAAAAAGAAAAc2lnbmVkAAAPAAAAc3VwcHJlc3NfZmF1bHRzABEAAABub3N1cHByZXNzX2ZhdWx0cwAAABEAAABlbmFibGVfcG9ydGZhdWx0cwAAABIAAABkaXNhYmxlX3BvcnRmYXVsdHMAAAYAAAB1c2VsaWIAAAcAAABwcm90ZWN0AAwAAABub2FjY2VsZXJhdGUAAAAACgAAAGFjY2VsZXJhdGUAAAsAAAB1bmRlZmluZWFsbAAPAAAAZGVsYXlfbW9kZV96ZXJvAA8AAABkZWxheV9tb2RlX3VuaXQADwAAAGRlbGF5X21vZGVfcGF0aAAWAAAAZGVsYXlfbW9kZV9kaXN0cmlidXRlZAAAFwAAAGRlZmF1bHRfdHJpcmVnX3N0cmVuZ3RoABIAAABkZWZhdWx0X2RlY2F5X3RpbWUAAAQAAABsaW5lAAAAABMAAABub3VuY29ubmVjdGVkX2RyaXZlABEAAAB1bmNvbm5lY3RlZF9kcml2ZQAAAAkAAAB0aW1lc2NhbGUAAAAIAAAAcmVzZXRhbGwAAAAADAAAAGVuZF9rZXl3b3JkcwAAAAAOAAAAYmVnaW5fa2V5d29yZHMAAAYAAABwcmFnbWEAAAcAAABpbmNsdWRlAAUAAABlbmRpZgAAAAUAAABlbHNpZgAAAAQAAABlbHNlAAAAAAYAAABpZm5kZWYAAAUAAABpZmRlZgAAAAUAAAB1bmRlZgAAAA8AAABkZWZhdWx0X25ldHR5cGUADQAAAGVuZGNlbGxkZWZpbmUAAAAKAAAAY2VsbGRlZmluZQAABgAAAGRlZmluZQAAPwAAAC9ob21lL2FsYWluL3N1cmVsb2dfYmFzZS9TVkluY0NvbXBpbC9kaXN0L3N1cmVsb2cvc3YvYnVpbHRpbi5zdgBGAAAAL2hvbWUvYWxhaW4vc3VyZWxvZ19iYXNlL1NWSW5jQ29tcGlsL2Rpc3Qvc3VyZWxvZy9iaW4vLi4vc3YvYnVpbHRpbi5zdgAAOgAAAC9ob21lL2FsYWluL3N1cmVsb2dfYmFzZS9TVkluY0NvbXBpbC9kaXN0L3N1cmVsb2cvYmluL3BrZy8AAAMAAABwa2cABgAAAGNhY2hlLwAAAgAAAC4vAAAJAAAAc2xwcF9hbGwvAAAACgAAAHNscHBfdW5pdC8AAAsAAABzdXJlbG9nLmxvZwAOAAAAQEBCQURfU1lNQk9MQEAAAKYDAAAvLyBTVVJFTE9HIAovLyBCdWlsdGluIFN5c3RlbVZlcmlsb2cgY2xhc3NlcwoKY2xhc3MgbWFpbGJveDsKCiAgZnVuY3Rpb24gbmV3IChpbnQgYm91bmQgPSAwKTsKICBlbmRmdW5jdGlvbgoKICBmdW5jdGlvbiBpbnQgbnVtKCk7CiAgZW5kZnVuY3Rpb24KCiAgdGFzayBwdXQgKG1lc3NhZ2UpOwogIGVuZHRhc2sKCiAgZnVuY3Rpb24gdHJ5X3B1dCAobWVzc2FnZSk7CiAgZW5kZnVuY3Rpb24KCiAgdGFzayBnZXQgKHJlZiBtZXNzYWdlKTsKICBlbmR0YXNrCgogIGZ1bmN0aW9uIGludCB0cnlfZ2V0IChyZWYgbWVzc2FnZSk7CiAgZW5kZnVuY3Rpb24KCiAgdGFzayBwZWVrIChyZWYgbWVzc2FnZSk7CiAgZW5kdGFzawoKICBmdW5jdGlvbiBpbnQgdHJ5X3BlZWsocmVmIG1lc3NhZ2UpOwogIGVuZGZ1bmN0aW9uCgplbmRjbGFzcwoKCmNsYXNzIHByb2Nlc3M7CgogIHR5cGVkZWYgZW51bSB7IEZJTklTSEVELCBSVU5OSU5HLCBXQUlUSU5HLCBTVVNQRU5ERUQsIEtJTExFRCB9IHN0YXRlOwoKICBzdGF0aWMgZnVuY3Rpb24gcHJvY2VzcyBzZWxmKCk7CiAgZW5kZnVuY3Rpb24KCiAgZnVuY3Rpb24gc3RhdGUgc3RhdHVzKCk7CiAgZW5kZnVuY3Rpb24KCiAgdGFzayBraWxsKCk7CiAgZW5kdGFzawoKICB0YXNrIGF3YWl0KCk7CiAgZW5kdGFzawoKICB0YXNrIHN1c3BlbmQoKTsKICBlbmR0YXNrCgogIHRhc2sgcmVzdW1lKCk7CiAgZW5kdGFzawoKZW5kY2xhc3MKCgpjbGFzcyBzZW1hcGhvcmU7CgogIGZ1bmN0aW9uIG5ldyhpbnQga2V5Q291bnQgPSAwICk7CiAgZW5kZnVuY3Rpb24KCiAgdGFzayBwdXQoaW50IGtleUNvdW50ID0gMSk7CiAgZW5kdGFzawoKICB0YXNrIGdldChpbnQga2V5Q291bnQgPSAxKTsKICBlbmR0YXNrCgogIGZ1bmN0aW9uIGludCB0cnlfZ2V0KGludCBrZXlDb3VudCA9IDEpOwogIGVuZGZ1bmN0aW9uCgplbmRjbGFzcwoKAAAAAAAAAAAAAAAADgAYAAQACAAMABAAFAAOAAAASAAAACAAAAAkAAAACAAAAEQAAAAKAAAAMTU1NzcyMjQ5MAAAAwAAADEuMAAUAAAATWF5IDExIDIwMTktMjI6MTk6MDUAAAAABAAAADAuMDEAAAAARgAAAC9ob21lL2FsYWluL3N1cmVsb2dfYmFzZS9TVkluY0NvbXBpbC9kaXN0L3N1cmVsb2cvYmluLy4uL3N2L2J1aWx0aW4uc3YAAA==