f0VMRgIBAQAAAAAAAAAAAAMAPgABAAAAwAsAAAAAAABAAAAAAAAAAEjuAwAAAAAAAAAAAEAAOAAHAEAAIwAiAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBoAAAAAAAAcGgAAAAAAAAAAIAAAAAAAAQAAAAYAAACoHQAAAAAAAKgdIAAAAAAAqB0gAAAAAADoAgAAAAAAAFgDAAAAAAAAAAAgAAAAAAACAAAABgAAAMgdAAAAAAAAyB0gAAAAAADIHSAAAAAAAAACAAAAAAAAAAIAAAAAAAAIAAAAAAAAAAQAAAAEAAAAyAEAAAAAAADIAQAAAAAAAMgBAAAAAAAAJAAAAAAAAAAkAAAAAAAAAAQAAAAAAAAAUOV0ZAQAAAAkGQAAAAAAACQZAAAAAAAAJBkAAAAAAAA0AAAAAAAAADQAAAAAAAAABAAAAAAAAABR5XRkBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFLldGQEAAAAqB0AAAAAAACoHSAAAAAAAKgdIAAAAAAAWAIAAAAAAABYAgAAAAAAAAEAAAAAAAAABAAAABQAAAADAAAAR05VAN+IqaDKp80bHmR6gBeDVh/m+b9rAAAAAAMAAAAVAAAAAQAAAAYAAACo0CBJAARwCRUAAAAaAAAAHAAAANQwvs5CRdXsmvfNjzQ9QIa745J82HFYHLmN8Q4EQy6v69PvDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIMBAAASAAAAAAAAAAAAAAAAAAAAAAAAAFUCAAASAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAKQBAAASAAAAAAAAAAAAAAAAAAAAAAAAAGQCAAASAAAAAAAAAAAAAAAAAAAAAAAAAH8CAAASAAAAAAAAAAAAAAAAAAAAAAAAAGwBAAASAAAAAAAAAAAAAAAAAAAAAAAAAEUCAAASAAAAAAAAAAAAAAAAAAAAAAAAAI4BAAASAAAAAAAAAAAAAAAAAAAAAAAAADUCAAASAAAAAAAAAAAAAAAAAAAAAAAAAA4BAAASAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAgAAAAAAAAAAAAAAAAAAAAAAAAACECAAASAAAAAAAAAAAAAAAAAAAAAAAAAHQCAAASAAAAAAAAAAAAAAAAAAAAAAAAAKsBAAASAAAAAAAAAAAAAAAAAAAAAAAAAPgAAAASAAAAAAAAAAAAAAAAAAAAAAAAAGEAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAFIAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAcBAAARAAAAAAAAAAAAAAAAAAAAAAAAAL4BAAASAAwAjBUAAAAAAACCAAAAAAAAAJYCAAAQABcAkCAgAAAAAAAAAAAAAAAAAKoAAAASAAwApQwAAAAAAACPAwAAAAAAABYBAAASAAwANBAAAAAAAABYBQAAAAAAAKkCAAAQABgAACEgAAAAAAAAAAAAAAAAAJ0CAAAQABgAkCAgAAAAAAAAAAAAAAAAABAAAAASAAkAiAoAAAAAAAAAAAAAAAAAAMcBAAASAAwADhYAAAAAAAA5AQAAAAAAABYAAAASAA0ASBcAAAAAAAAAAAAAAAAAAABfX2dtb25fc3RhcnRfXwBfaW5pdABfZmluaQBfSVRNX2RlcmVnaXN0ZXJUTUNsb25lVGFibGUAX0lUTV9yZWdpc3RlclRNQ2xvbmVUYWJsZQBfX2N4YV9maW5hbGl6ZQBfSnZfUmVnaXN0ZXJDbGFzc2VzAGxpYmdpby0yLjAuc28uMABsaWJnb2JqZWN0LTIuMC5zby4wAGxpYmdsaWItMi4wLnNvLjAASmF2YV9vcmdfZWNsaXBzZV9jb3JlX2ludGVybmFsX25ldF9wcm94eV91bml4X1VuaXhQcm94eVByb3ZpZGVyX2dzZXR0aW5nc0luaXQAZ19zZXR0aW5nc19uZXcAc3RkZXJyAGZwcmludGYASmF2YV9vcmdfZWNsaXBzZV9jb3JlX2ludGVybmFsX25ldF9wcm94eV91bml4X1VuaXhQcm94eVByb3ZpZGVyX2dldEdTZXR0aW5nc1Byb3h5SW5mbwBnX3NldHRpbmdzX2dldF9ib29sZWFuAHN0cmNhc2VjbXAAZ19zZXR0aW5nc19nZXRfc3RyaW5nAGdfZnJlZQBnX3NldHRpbmdzX2dldF9pbnQAbGlzdFByb2MASmF2YV9vcmdfZWNsaXBzZV9jb3JlX2ludGVybmFsX25ldF9wcm94eV91bml4X1VuaXhQcm94eVByb3ZpZGVyX2dldEdTZXR0aW5nc05vblByb3h5SG9zdHMAZ19zZXR0aW5nc19nZXRfc3RydgBnX3NsaXN0X3ByZXBlbmQAZ19zbGlzdF9yZXZlcnNlAGdfc2xpc3RfbGVuZ3RoAGdfc2xpc3RfZm9yZWFjaABnX3N0cmZyZWV2AGdfc2xpc3RfZnJlZQBsaWJjLnNvLjYAX2VkYXRhAF9fYnNzX3N0YXJ0AF9lbmQAZ25vbWVwcm94eS5zbwBHTElCQ18yLjIuNQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAgABAAEAAQABAAEAAQABAAEAAQAAAAAAAQABAIwCAAAQAAAAAAAAAHUaaQkAAAIAvAIAAAAAAACoHSAAAAAAAAgAAAAAAAAAcAwAAAAAAACwHSAAAAAAAAgAAAAAAAAAMAwAAAAAAADAHSAAAAAAAAgAAAAAAAAAwB0gAAAAAADIHyAAAAAAAAYAAAAVAAAAAAAAAAAAAADQHyAAAAAAAAYAAAADAAAAAAAAAAAAAADYHyAAAAAAAAYAAAAMAAAAAAAAAAAAAADgHyAAAAAAAAYAAAARAAAAAAAAAAAAAADoHyAAAAAAAAYAAAASAAAAAAAAAAAAAADwHyAAAAAAAAYAAAATAAAAAAAAAAAAAAD4HyAAAAAAAAYAAAAUAAAAAAAAAAAAAAAYICAAAAAAAAcAAAABAAAAAAAAAAAAAAAgICAAAAAAAAcAAAACAAAAAAAAAAAAAAAoICAAAAAAAAcAAAAEAAAAAAAAAAAAAAAwICAAAAAAAAcAAAAFAAAAAAAAAAAAAAA4ICAAAAAAAAcAAAAGAAAAAAAAAAAAAABAICAAAAAAAAcAAAAHAAAAAAAAAAAAAABIICAAAAAAAAcAAAAIAAAAAAAAAAAAAABQICAAAAAAAAcAAAAXAAAAAAAAAAAAAABYICAAAAAAAAcAAAAJAAAAAAAAAAAAAABgICAAAAAAAAcAAAAKAAAAAAAAAAAAAABoICAAAAAAAAcAAAALAAAAAAAAAAAAAABwICAAAAAAAAcAAAANAAAAAAAAAAAAAAB4ICAAAAAAAAcAAAAOAAAAAAAAAAAAAACAICAAAAAAAAcAAAAPAAAAAAAAAAAAAACIICAAAAAAAAcAAAAQAAAAAAAAAAAAAABIg+wISIsFRRUgAEiFwHQF6BMBAABIg8QIwwAAAAAAAAAAAAAAAAAA/zVSFSAA/yVUFSAADx9AAP8lUhUgAGgAAAAA6eD/////JUoVIABoAQAAAOnQ/////yVCFSAAaAIAAADpwP////8lOhUgAGgDAAAA6bD/////JTIVIABoBAAAAOmg/////yUqFSAAaAUAAADpkP////8lIhUgAGgGAAAA6YD/////JRoVIABoBwAAAOlw/////yUSFSAAaAgAAADpYP////8lChUgAGgJAAAA6VD/////JQIVIABoCgAAAOlA/////yX6FCAAaAsAAADpMP////8l8hQgAGgMAAAA6SD/////JeoUIABoDQAAAOkQ/////yXiFCAAaA4AAADpAP////8lIhQgAGaQ/yUyFCAAZpBIjQXQFCAASI09whQgAFVIKfhIieVIg/gOdwJdw0iLBewTIABIhcB08l3/4A8fQABIjQWZFCAASI09khQgAFVIKfhIieVIwfgDSInCSMHqP0gB0EjR+HUCXcNIixXHEyAASIXSdPJdSInG/+IPH0AAgD1ZFCAAAHUnSIM9rxMgAABVSInldAxIjT1yESAA6GX////oaP///13GBTAUIAAB88MPH0AAZi4PH4QAAAAAAEiDPUARIAAAdCZIiwVfEyAASIXAdBpVSI09KhEgAEiJ5f/QXelX////Dx+AAAAAAOlL////VUiJ5UiD7CBIiX3oSIl14EiNPZwKAADo3/7//0iJBdATIABIjT2gCgAA6Mz+//9IiQXFEyAASI09qQoAAOi5/v//SIkFuhMgAEiNPbMKAADopv7//0iJBa8TIABIjT29CgAA6JP+//9IiQWkEyAASMdF+AAAAABIi0XoSIsASItAMEiLVehIjTWuCgAASInX/9BIiUX4SIN9+AB1I0iLBa8SIABIiwC6OgAAAEiNNbAKAABIice4AAAAAOj7/f//SItF6EiLAEiLgKgAAABIi034SItV6EiJzkiJ1//QSIkFNhMgAEiLRehIiwBIi0AwSItV6EiNNX4KAABIidf/0EiJRfhIg334AHUjSIsFQRIgAEiLALo9AAAASI01QgoAAEiJx7gAAAAA6I39//9Ii0XoSIsASIuAqAAAAEiLTfhIi1XoSInOSInX/9BIiQXQEiAASItF6EiLAEiLgAgBAABIizWzEiAASIt96EiNDRcKAABIjRUmCgAA/9BIiQWoEiAASIsFoRIgAEiFwHUjSIsFvREgAEiLALpAAAAASI01vgkAAEiJx7gAAAAA6An9//9Ii0XoSIsASIuACAEAAEiLNVQSIABIi33oSI0N1QkAAEiNFeMJAAD/0EiJBVESIABIiwVKEiAASIXAdSNIiwVeESAASIsAukIAAABIjTVfCQAASInHuAAAAADoqvz//0iLRehIiwBIi4AIAQAASIs19REgAEiLfehIjQ1ZCQAASI0VjQkAAP/QSIkF+hEgAEiLBfMRIABIhcB1I0iLBf8QIABIiwC6RQAAAEiNNQAJAABIice4AAAAAOhL/P//SItF6EiLAEiLgAgBAABIizWWESAASIt96EiNDT0JAABIjRU7CQAA/9BIiQWjESAASIsFnBEgAEiFwHUjSIsFoBAgAEiLALpHAAAASI01oQgAAEiJx7gAAAAA6Oz7//9Ii0XoSIsASIuACAEAAEiLNTcRIABIi33oSI0NmwgAAEiNFeQIAAD/0EiJBUwRIABIiwVFESAASIXAdSNIiwVBECAASIsAukkAAABIjTVCCAAASInHuAAAAADojfv//0iLRehIiwBIi4AIAQAASIs12BAgAEiLfehIjQ08CAAASI0VjwgAAP/QSIkF9RAgAEiLBe4QIABIhcB1I0iLBeIPIABIiwC6SwAAAEiNNeMHAABIice4AAAAAOgu+///ycNVSInlSIHsoAAAAEiJvXj///9IibVw////SImVaP///0jHRfgAAAAASIsFNRAgAEiFwHUZSIuVcP///0iLhXj///9IidZIicfor/r//0iLhXj///9IiwBMi4DgAAAASIsVNxAgAEiLNSAQIABIi41o////SIuFeP///0iJx7gAAAAAQf/QSIlF+EiDffgAdSNIiwUtDyAASIsAul8AAABIjTUuBwAASInHuAAAAADoefr//0iLhXj///9IiwBIi4BIBQAASI1Vh0iLtWj///9Ii414////SInP/9BIiUXgSIN94AB1CrgAAAAA6WYEAABIiwVtDyAASI01YwcAAEiJx+jW+f//iUXcSItF4EiNNVwHAABIicfocPn//4XAdAqDfdwAD4QjAgAASIsFOw8gAEiNNT0HAABIicfonPn//4lFxIN9xAB1DUjHRfgAAAAA6cwDAABIiwUPDyAASI01GQcAAEiJx+ig+f//SIlFuEiLhXj///9IiwBIi4A4BQAASItNuEiLlXj///9Iic5Iidf/0EiJRbBIi4V4////SIsATIuA6AEAAEiLFfwOIABIi02wSIt1+EiLhXj///9Iice4AAAAAEH/0EiLRbhIicfo1vj//0iLBY8OIABIjTWeBgAASInH6HD5//+JRaxIi4V4////SIsATIuA6AEAAEiLFa0OIACLTaxIi3X4SIuFeP///0iJx7gAAAAAQf/QSIsFRQ4gAEiNNVkGAABIicfopvj//4lFqIN9qAAPhAUBAABIiwUiDiAASI01SQYAAEiJx+iz+P//SIlFoEiLhXj///9IiwBIi4A4BQAASItNoEiLlXj///9Iic5Iidf/0EiJRZhIi4V4////SIsATIuA6AEAAEiLFR8OIABIi02YSIt1+EiLhXj///9Iice4AAAAAEH/0EiLBa4NIABIjTXpBQAASInH6D/4//9IiUWQSIuFeP///0iLAEiLgDgFAABIi02QSIuVeP///0iJzkiJ1//QSIlFiEiLhXj///9IiwBMi4DoAQAASIsVsw0gAEiLTYhIi3X4SIuFeP///0iJx7gAAAAAQf/QSItFoEiJx+h19///SItFkEiJx+hp9///6doBAADp1QEAAEiLBRANIABIjTVrBQAASInH6Kn3//9IiUXQSItF0EiNNVkFAABIicfoEvf//4XAdA1Ix0X4AAAAAOmXAQAASItF0EiJx+gV9///SItF4EiNNTAFAABIicfo4vb//4XAdThIiwW/DCAASI01wQQAAEiJx+hI9///SIlF8EiLBaUMIABIjTWsBAAASInH6H73//+JRezppQAAAEiLReBIjTXnBAAASInH6JP2//+FwHU1SIsFeAwgAEiNNXIEAABIicfo+fb//0iJRfBIiwVeDCAASI01XQQAAEiJx+gv9///iUXs61lIi0XgSI01oQQAAEiJx+hH9v//hcB1NUiLBTQMIABIjTUmBAAASInH6K32//9IiUXwSIsFGgwgAEiNNREEAABIicfo4/b//4lF7OsNSMdF+AAAAADplwAAAEiLhXj///9IiwBIi4A4BQAASItN8EiLlXj///9Iic5Iidf/0EiJRchIi4V4////SIsATIuA6AEAAEiLFeELIABIi03ISIt1+EiLhXj///9Iice4AAAAAEH/0EiLhXj///9IiwBMi4DoAQAASIsVtwsgAItN7EiLdfhIi4V4////SInHuAAAAABB/9BIi0XwSInH6Ir1//8PtkWHPAF1KEiLhXj///9IiwBIi4BQBQAASItV4EiLtWj///9Ii414////SInP/9BIi0X4ycNVSInlSIPsIEiJfehIiXXgSItF4EiJRfhIi0X4SItACEiLAEiLgDgFAABIi1X4SItSCEiLTehIic5Iidf/0EiJRfBIi0X4SItACEiLAEyLgHAFAABIi0X4i0AQjUgBSItV+IlKEEiLVfhIizJIi1X4SIt6CEiLVfBIidGJwkH/0MnDVUiJ5UiD7FBIiX24SIl1sEiLBXMKIABIhcB1E0iLVbBIi0W4SInWSInH6PP0//9Ix0X4AAAAAEiLBUwKIABIjTXDAgAASInH6BX1//9IiUXox0X0AAAAAOsui0X0SJhIjRTFAAAAAEiLRehIAdBIixBIi0X4SInWSInH6ML0//9IiUX4g0X0AYtF9EiYSI0UxQAAAABIi0XoSAHQSIsASIXAdbZIi0X4SInH6GL0//9IiUX4SItF+EiJx+gC9P//iUXkSItFuEiLAEiLgGAFAABIixXiCSAAi3XkSIt9uLkAAAAA/9BIiUXYSItFuEiJRchIi0XYSIlFwMdF0AAAAABIjVXASItF+EiLDaoIIABIic5Iicfox/P//0iLRehIicfoS/T//0iLRfhIicfov/P//0iLRdjJwwBIg+wISIPECMMAAAAAAAAAb3JnLmdub21lLnN5c3RlbS5wcm94eQBvcmcuZ25vbWUuc3lzdGVtLnByb3h5Lmh0dHAAb3JnLmdub21lLnN5c3RlbS5wcm94eS5odHRwcwBvcmcuZ25vbWUuc3lzdGVtLnByb3h5LnNvY2tzAG9yZy5nbm9tZS5zeXN0ZW0ucHJveHkuZnRwAG9yZy9lY2xpcHNlL2NvcmUvaW50ZXJuYWwvbmV0L1Byb3h5RGF0YQBKTkkgZXJyb3IgYXQgbGluZSAlZAoAamF2YS9sYW5nL1N0cmluZwAoTGphdmEvbGFuZy9TdHJpbmc7KVYAPGluaXQ+ACgpTGphdmEvbGFuZy9TdHJpbmc7AHRvU3RyaW5nAHNldEhvc3QAKEkpVgBzZXRQb3J0AHNldFVzZXJpZABzZXRQYXNzd29yZAB1c2Utc2FtZS1wcm94eQBodHRwAGVuYWJsZWQAaG9zdABwb3J0AHVzZS1hdXRoZW50aWNhdGlvbgBhdXRoZW50aWNhdGlvbi11c2VyAGF1dGhlbnRpY2F0aW9uLXBhc3N3b3JkAG1vZGUAbWFudWFsAGh0dHBzAHNvY2tzAGZ0cABpZ25vcmUtaG9zdHMAAAEbAzswAAAABQAAAIzx//9MAAAAgfP//3QAAAAQ9///lAAAAGj8//+0AAAA6vz//9QAAAAUAAAAAAAAAAF6UgABeBABGwwHCJABAAAkAAAAHAAAADjx//8AAQAAAA4QRg4YSg8LdwiAAD8aOyozJCIAAAAAHAAAAEQAAAAF8///jwMAAABBDhCGAkMNBgOKAwwHCAAcAAAAZAAAAHT2//9YBQAAAEEOEIYCQw0GA1MFDAcIABwAAACEAAAArPv//4IAAAAAQQ4QhgJDDQYCfQwHCAAAHAAAAKQAAAAO/P//OQEAAABBDhCGAkMNBgM0AQwHCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwDAAAAAAAADAMAAAAAAAAAAAAAAAAAADAHSAAAAAAAAEAAAAAAAAAdQAAAAAAAAABAAAAAAAAAIUAAAAAAAAAAQAAAAAAAACZAAAAAAAAAAEAAAAAAAAAjAIAAAAAAAAOAAAAAAAAAK4CAAAAAAAADAAAAAAAAACICgAAAAAAAA0AAAAAAAAASBcAAAAAAAAZAAAAAAAAAKgdIAAAAAAAGwAAAAAAAAAIAAAAAAAAABoAAAAAAAAAsB0gAAAAAAAcAAAAAAAAAAgAAAAAAAAA9f7/bwAAAADwAQAAAAAAAAUAAAAAAAAACAUAAAAAAAAGAAAAAAAAADgCAAAAAAAACgAAAAAAAADIAgAAAAAAAAsAAAAAAAAAGAAAAAAAAAADAAAAAAAAAAAgIAAAAAAAAgAAAAAAAABoAQAAAAAAABQAAAAAAAAABwAAAAAAAAAXAAAAAAAAACAJAAAAAAAABwAAAAAAAAAwCAAAAAAAAAgAAAAAAAAA8AAAAAAAAAAJAAAAAAAAABgAAAAAAAAA/v//bwAAAAAQCAAAAAAAAP///28AAAAAAQAAAAAAAADw//9vAAAAANAHAAAAAAAA+f//bwAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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L3Vzci9saWIvanZtL2phdmEvaW5jbHVkZQAvdXNyL2xpYjY0L2dsaWItMi4wL2luY2x1ZGUAL3Vzci9pbmNsdWRlL2dsaWItMi4wL2dsaWIAL3Vzci9pbmNsdWRlL2dsaWItMi4wL2dvYmplY3QAL3Vzci9pbmNsdWRlL2dsaWItMi4wL2dpbwAvdXNyL2luY2x1ZGUvc3lzAC91c3IvaW5jbHVkZS9nbnUAL3Vzci9pbmNsdWRlL2dsaWItMi4wAC91c3IvaW5jbHVkZS9saW51eAAvdXNyL2luY2x1ZGUvZ2xpYi0yLjAvZ2xpYi9kZXByZWNhdGVkAABnbm9tZXByb3h5LmMAAQAAc3RkZGVmLmgAAgAAdHlwZXMuaAADAABsaWJpby5oAAQAADxidWlsdC1pbj4AAAAAam5pX21kLmgABQAAam5pLmgABgAAZ2xpYmNvbmZpZy5oAAcAAGd0eXBlcy5oAAgAAGdkYXRhc2V0LmgACAAAZ3NsaXN0LmgACAAAZ3R5cGUuaAAJAABnb2JqZWN0LmgACQAAZ2lvdHlwZXMuaAAKAABnc2V0dGluZ3MuaAAKAABzdGRpby5oAAQAAHN0ZGMtcHJlZGVmLmgABAAAZmVhdHVyZXMuaAAEAABjZGVmcy5oAAsAAHdvcmRzaXplLmgAAwAAc3R1YnMuaAAMAABzdHVicy02NC5oAAwAAHR5cGVzaXplcy5oAAMAAF9HX2NvbmZpZy5oAAQAAHdjaGFyLmgABAAAc3RkYXJnLmgAAgAAc3RkaW9fbGltLmgAAwAAc3lzX2Vycmxpc3QuaAADAABnbGliLmgADQAAZ2FsbG9jYS5oAAgAAGdtYWNyb3MuaAAIAABsaW1pdHMuaAACAABzeXNsaW1pdHMuaAACAABsaW1pdHMuaAAEAABwb3NpeDFfbGltLmgAAwAAbG9jYWxfbGltLmgAAwAAbGltaXRzLmgADgAAcG9zaXgyX2xpbS5oAAMAAGZsb2F0LmgAAgAAZ3ZlcnNpb25tYWNyb3MuaAAIAAB0aW1lLmgABAAAdGltZS5oAAMAAHhsb2NhbGUuaAAEAABnYXJyYXkuaAAIAABnYXN5bmNxdWV1ZS5oAAgAAGd0aHJlYWQuaAAIAABnYXRvbWljLmgACAAAZ2Vycm9yLmgACAAAZ3F1YXJrLmgACAAAZ3V0aWxzLmgACAAAZ2JhY2t0cmFjZS5oAAgAAHNpZ25hbC5oAAQAAHNpZ3NldC5oAAMAAHNpZ251bS5oAAMAAHNpZ2luZm8uaAADAABzaWdhY3Rpb24uaAADAABzaWdjb250ZXh0LmgAAwAAc2lnc3RhY2suaAADAAB1Y29udGV4dC5oAAsAAHB0aHJlYWR0eXBlcy5oAAMAAHNpZ3RocmVhZC5oAAMAAGdiYXNlNjQuaAAIAABnYml0bG9jay5oAAgAAGdib29rbWFya2ZpbGUuaAAIAABnYnl0ZXMuaAAIAABnY2hhcnNldC5oAAgAAGdjaGVja3N1bS5oAAgAAGdjb252ZXJ0LmgACAAAZ2RhdGUuaAAIAABnZGF0ZXRpbWUuaAAIAABndGltZXpvbmUuaAAIAABnZGlyLmgACAAAZGlyZW50LmgABAAAZGlyZW50LmgAAwAAZ2Vudmlyb24uaAAIAABnZmlsZXV0aWxzLmgACAAAZ2dldHRleHQuaAAIAABnaGFzaC5oAAgAAGdsaXN0LmgACAAAZ21lbS5oAAgAAGdub2RlLmgACAAAZ2htYWMuaAAIAABnaG9vay5oAAgAAGdob3N0dXRpbHMuaAAIAABnaW9jaGFubmVsLmgACAAAZ21haW4uaAAIAABncG9sbC5oAAgAAGdzdHJpbmcuaAAIAABndW5pY29kZS5oAAgAAGdrZXlmaWxlLmgACAAAZ21hcHBlZGZpbGUuaAAIAABnbWFya3VwLmgACAAAZ21lc3NhZ2VzLmgACAAAZ3ZhcmlhbnQuaAAIAABndmFyaWFudHR5cGUuaAAIAABnb3B0aW9uLmgACAAAZ3BhdHRlcm4uaAAIAABncHJpbWVzLmgACAAAZ3Fzb3J0LmgACAAAZ3F1ZXVlLmgACAAAZ3JhbmQuaAAIAABncmVnZXguaAAIAABnc2Nhbm5lci5oAAgAAGdzZXF1ZW5jZS5oAAgAAGdzaGVsbC5oAAgAAGdzbGljZS5oAAgAAGdzcGF3bi5oAAgAAGdzdHJmdW5jcy5oAAgAAGdzdHJpbmdjaHVuay5oAAgAAGd0ZXN0dXRpbHMuaAAIAABndGhyZWFkcG9vbC5oAAgAAGd0aW1lci5oAAgAAGd0cmFzaHN0YWNrLmgACAAAZ3RyZWUuaAAIAABndXJpZnVuY3MuaAAIAABndXVpZC5oAAgAAGd2ZXJzaW9uLmgACAAAZ2FsbG9jYXRvci5oAA8AAGdjYWNoZS5oAA8AAGdjb21wbGV0aW9uLmgADwAAZ21haW4uaAAPAABncmVsLmgADwAAZ3RocmVhZC5oAA8AAHR5cGVzLmgACwAAZW5kaWFuLmgABAAAZW5kaWFuLmgAAwAAYnl0ZXN3YXAuaAADAABieXRlc3dhcC0xNi5oAAMAAHNlbGVjdC5oAAsAAHNlbGVjdC5oAAMAAHN5c21hY3Jvcy5oAAsAAHB0aHJlYWQuaAAEAABzY2hlZC5oAAQAAHNjaGVkLmgAAwAAc2V0am1wLmgAAwAAZ2xpYi1hdXRvY2xlYW51cHMuaAAIAABnaW8uaAAKAABnaW9lbnVtcy5oAAoAAGdsaWItb2JqZWN0LmgADQAAZ2JpbmRpbmcuaAAJAABndmFsdWUuaAAJAABncGFyYW0uaAAJAABnY2xvc3VyZS5oAAkAAGdzaWduYWwuaAAJAABnbWFyc2hhbC5oAAkAAGdib3hlZC5oAAkAAGdsaWItdHlwZXMuaAAJAABnZW51bXMuaAAJAABncGFyYW1zcGVjcy5oAAkAAGdzb3VyY2VjbG9zdXJlLmgACQAAZ3R5cGVtb2R1bGUuaAAJAABndHlwZXBsdWdpbi5oAAkAAGd2YWx1ZWFycmF5LmgACQAAZ3ZhbHVldHlwZXMuaAAJAABnb2JqZWN0LWF1dG9jbGVhbnVwcy5oAAkAAGdhY3Rpb24uaAAKAABnYWN0aW9uZ3JvdXAuaAAKAABnYWN0aW9uZ3JvdXBleHBvcnRlci5oAAoAAGdhY3Rpb25tYXAuaAAKAABnYXBwaW5mby5oAAoAAGdhcHBsaWNhdGlvbi5oAAoAAGdhcHBsaWNhdGlvbmNvbW1hbmRsaW5lLmgACgAAZ2FzeW5jaW5pdGFibGUuaAAKAABnaW5pdGFibGUuaAAKAABnYXN5bmNyZXN1bHQuaAAKAABnYnVmZmVyZWRpbnB1dHN0cmVhbS5oAAoAAGdmaWx0ZXJpbnB1dHN0cmVhbS5oAAoAAGdpbnB1dHN0cmVhbS5oAAoAAGdidWZmZXJlZG91dHB1dHN0cmVhbS5oAAoAAGdmaWx0ZXJvdXRwdXRzdHJlYW0uaAAKAABnb3V0cHV0c3RyZWFtLmgACgAAZ2J5dGVzaWNvbi5oAAoAAGdjYW5jZWxsYWJsZS5oAAoAAGdjaGFyc2V0Y29udmVydGVyLmgACgAAZ2NvbnZlcnRlci5oAAoAAGdjb250ZW50dHlwZS5oAAoAAGdjb252ZXJ0ZXJpbnB1dHN0cmVhbS5oAAoAAGdjb252ZXJ0ZXJvdXRwdXRzdHJlYW0uaAAKAABnY3JlZGVudGlhbHMuaAAKAAB1bmlzdGQuaAAEAABwb3NpeF9vcHQuaAADAABlbnZpcm9ubWVudHMuaAADAABjb25mbmFtZS5oAAMAAGdldG9wdC5oAAQAAGdkYXRhZ3JhbWJhc2VkLmgACgAAZ2RhdGFpbnB1dHN0cmVhbS5oAAoAAGdkYXRhb3V0cHV0c3RyZWFtLmgACgAAZ2RidXNhZGRyZXNzLmgACgAAZ2RidXNhdXRob2JzZXJ2ZXIuaAAKAABnZGJ1c2Nvbm5lY3Rpb24uaAAKAABnZGJ1c2Vycm9yLmgACgAAZ2RidXNpbnRyb3NwZWN0aW9uLmgACgAAZ2RidXNtZXNzYWdlLmgACgAAZ2RidXNtZXRob2RpbnZvY2F0aW9uLmgACgAAZ2RidXNuYW1lb3duaW5nLmgACgAAZ2RidXNuYW1ld2F0Y2hpbmcuaAAKAABnZGJ1c3Byb3h5LmgACgAAZ2RidXNzZXJ2ZXIuaAAKAABnZGJ1c3V0aWxzLmgACgAAZ2RyaXZlLmgACgAAZ2R0bHNjbGllbnRjb25uZWN0aW9uLmgACgAAZ2R0bHNjb25uZWN0aW9uLmgACgAAZ2R0bHNzZXJ2ZXJjb25uZWN0aW9uLmgACgAAZ2VtYmxlbWVkaWNvbi5oAAoAAGdpY29uLmgACgAAZ2VtYmxlbS5oAAoAAGdmaWxlYXR0cmlidXRlLmgACgAAZ2ZpbGVlbnVtZXJhdG9yLmgACgAAZ2ZpbGUuaAAKAABnZmlsZWljb24uaAAKAABnZmlsZWluZm8uaAAKAABnZmlsZWlucHV0c3RyZWFtLmgACgAAZ2ZpbGVpb3N0cmVhbS5oAAoAAGdpb3N0cmVhbS5oAAoAAGdpb2Vycm9yLmgACgAAZ2ZpbGVtb25pdG9yLmgACgAAZ2ZpbGVuYW1lY29tcGxldGVyLmgACgAAZ2ZpbGVvdXRwdXRzdHJlYW0uaAAKAABnaW5ldGFkZHJlc3MuaAAKAABnaW5ldGFkZHJlc3NtYXNrLmgACgAAZ2luZXRzb2NrZXRhZGRyZXNzLmgACgAAZ3NvY2tldGFkZHJlc3MuaAAKAABnaW9lbnVtdHlwZXMuaAAKAABnaW9tb2R1bGUuaAAKAABnbW9kdWxlLmgADQAAZ2lvc2NoZWR1bGVyLmgACgAAZ2xvYWRhYmxlaWNvbi5oAAoAAGdtZW1vcnlpbnB1dHN0cmVhbS5oAAoAAGdtZW1vcnlvdXRwdXRzdHJlYW0uaAAKAABnbW91bnQuaAAKAABnbW91bnRvcGVyYXRpb24uaAAKAABnbmF0aXZldm9sdW1lbW9uaXRvci5oAAoAAGd2b2x1bWVtb25pdG9yLmgACgAAZ25ldHdvcmthZGRyZXNzLmgACgAAZ25ldHdvcmttb25pdG9yLmgACgAAZ25ldHdvcmtzZXJ2aWNlLmgACgAAZ3Blcm1pc3Npb24uaAAKAABncG9sbGFibGVpbnB1dHN0cmVhbS5oAAoAAGdwb2xsYWJsZW91dHB1dHN0cmVhbS5oAAoAAGdwb2xsYWJsZXV0aWxzLmgACgAAZ3Byb3BlcnR5YWN0aW9uLmgACgAAZ3Byb3h5LmgACgAAZ3Byb3h5YWRkcmVzcy5oAAoAAGdwcm94eWFkZHJlc3NlbnVtZXJhdG9yLmgACgAAZ3NvY2tldGFkZHJlc3NlbnVtZXJhdG9yLmgACgAAZ3Byb3h5cmVzb2x2ZXIuaAAKAABncmVzb2x2ZXIuaAAKAABncmVzb3VyY2UuaAAKAABnc2Vla2FibGUuaAAKAABnc2V0dGluZ3NzY2hlbWEuaAAKAABnc2ltcGxlYWN0aW9uLmgACgAAZ3NpbXBsZWFjdGlvbmdyb3VwLmgACgAAZ3NpbXBsZWFzeW5jcmVzdWx0LmgACgAAZ3NpbXBsZWlvc3RyZWFtLmgACgAAZ3NpbXBsZXBlcm1pc3Npb24uaAAKAABnc29ja2V0Y2xpZW50LmgACgAAZ3NvY2tldGNvbm5lY3RhYmxlLmgACgAAZ3NvY2tldGNvbm5lY3Rpb24uaAAKAABnc29ja2V0LmgACgAAZ3NvY2tldGNvbnRyb2xtZXNzYWdlLmgACgAAZ3NvY2tldGxpc3RlbmVyLmgACgAAZ3NvY2tldHNlcnZpY2UuaAAKAABnc3J2dGFyZ2V0LmgACgAAZ3NpbXBsZXByb3h5cmVzb2x2ZXIuaAAKAABndGFzay5oAAoAAGdzdWJwcm9jZXNzLmgACgAAZ3N1YnByb2Nlc3NsYXVuY2hlci5oAAoAAGd0Y3Bjb25uZWN0aW9uLmgACgAAZ3RjcHdyYXBwZXJjb25uZWN0aW9uLmgACgAAZ3Rlc3RkYnVzLmgACgAAZ3RoZW1lZGljb24uaAAKAABndGhyZWFkZWRzb2NrZXRzZXJ2aWNlLmgACgAAZ3Rsc2JhY2tlbmQuaAAKAABndGxzY2VydGlmaWNhdGUuaAAKAABndGxzY2xpZW50Y29ubmVjdGlvbi5oAAoAAGd0bHNjb25uZWN0aW9uLmgACgAAZ3Rsc2RhdGFiYXNlLmgACgAAZ3Rsc2ZpbGVkYXRhYmFzZS5oAAoAAGd0bHNpbnRlcmFjdGlvbi5oAAoAAGd0bHNzZXJ2ZXJjb25uZWN0aW9uLmgACgAAZ3Rsc3Bhc3N3b3JkLmgACgAAZ3Zmcy5oAAoAAGd2b2x1bWUuaAAKAABnemxpYmNvbXByZXNzb3IuaAAKAABnemxpYmRlY29tcHJlc3Nvci5oAAoAAGdkYnVzaW50ZXJmYWNlLmgACgAAZ2RidXNpbnRlcmZhY2Vza2VsZXRvbi5oAAoAAGdkYnVzb2JqZWN0LmgACgAAZ2RidXNvYmplY3Rza2VsZXRvbi5oAAoAAGdkYnVzb2JqZWN0cHJveHkuaAAKAABnZGJ1c29iamVjdG1hbmFnZXIuaAAKAABnZGJ1c29iamVjdG1hbmFnZXJjbGllbnQuaAAKAABnZGJ1c29iamVjdG1hbmFnZXJzZXJ2ZXIuaAAKAABnZGJ1c2FjdGlvbmdyb3VwLmgACgAAZ3JlbW90ZWFjdGlvbmdyb3VwLmgACgAAZ21lbnVtb2RlbC5oAAoAAGdtZW51LmgACgAAZ21lbnVleHBvcnRlci5oAAoAAGdkYnVzbWVudW1vZGVsLmgACgAAZ25vdGlmaWNhdGlvbi5oAAoAAGdsaXN0bW9kZWwuaAAKAABnbGlzdHN0b3JlLmgACgAAZ2lvLWF1dG9jbGVhbnVwcy5oAAoAAHN0cmluZy5oAAQAAAAACQKlDAAAAAAAAAMxAfQILwgvCC8ILwgvgwACBAEGAiYSBgIjEwIlFAACBAEGAiYSBgIjEwIlFAACBAEGAjwSBgIjFAACBAEGAjwSBgIjFAACBAEGAjwSBgIjFAACBAEGAjwSBgIjFAACBAEGAjwSBgIjFAACBAEGAjwSBgIjFDYI6YS7CIUAAgQBBgJDEgYCIxQCLBN1oAiFAAIEAQYIZgafCIRng1sIkgIoEwIyE7wIgwIxFAiEnwiSAigTAjIUCJICKBMCMhS7vKIIkQhng1q+CGcIkQjJCGcIkQifCGcIkQigg1sCKBMCMhMCMRO8gwIoE0sDCS7zgwIqEwghcwIlFDb0uwgyhQiSAAIEApEAAgQCAioRAAIEAQZKBgiw8+UCJxWDg3YIkbu7SwICAAEBX19JTlQ2NF9NQVhfXyA5MjIzMzcyMDM2ODU0Nzc1ODA3TABfUE9TSVhfUkFXX1NPQ0tFVFMgMjAwODA5TABnX2RhdGVfc3VuZGF5X3dlZWtzX2luX3llYXIgZ19kYXRlX2dldF9zdW5kYXlfd2Vla3NfaW5feWVhcgBsb25nIGxvbmcgaW50AF9DU19QT1NJWF9WN19MUDY0X09GRjY0X0xJTlRGTEFHUyBfQ1NfUE9TSVhfVjdfTFA2NF9PRkY2NF9MSU5URkxBR1MAZ19hc3NlcnRfY21wbWVtKG0xLGwxLG0yLGwyKSBHX1NUTVRfU1RBUlQgeyBnY29uc3Rwb2ludGVyIF9fbTEgPSBtMSwgX19tMiA9IG0yOyBpbnQgX19sMSA9IGwxLCBfX2wyID0gbDI7IGlmIChfX2wxICE9IF9fbDIpIGdfYXNzZXJ0aW9uX21lc3NhZ2VfY21wbnVtIChHX0xPR19ET01BSU4sIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DLCAjbDEgIiAobGVuKCIgI20xICIpKSA9PSAiICNsMiAiIChsZW4oIiAjbTIgIikpIiwgX19sMSwgIj09IiwgX19sMiwgJ2knKTsgZWxzZSBpZiAoX19sMSAhPSAwICYmIG1lbWNtcCAoX19tMSwgX19tMiwgX19sMSkgIT0gMCkgZ19hc3NlcnRpb25fbWVzc2FnZSAoR19MT0dfRE9NQUlOLCBfX0ZJTEVfXywgX19MSU5FX18sIEdfU1RSRlVOQywgImFzc2VydGlvbiBmYWlsZWQgKCIgI20xICIgPT0gIiAjbTIgIikiKTsgfSBHX1NUTVRfRU5EAF9QT1NJWF9WNl9MUEJJR19PRkZCSUcgLTEAR19URVNUX0RCVVMob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmopLCBHX1RZUEVfVEVTVF9EQlVTLCBHVGVzdERCdXMpKQBfU0NfMl9GT1JUX1JVTiBfU0NfMl9GT1JUX1JVTgBfQlNEX1BUUkRJRkZfVF8gAF9fR19JTkVUX0FERFJFU1NfTUFTS19IX18gAF9qb2JqZWN0AF9HT2JqZWN0AE5ld09iamVjdEFycmF5AF9TQ19USFJFQURfUFJJT19QUk9URUNUIF9TQ19USFJFQURfUFJJT19QUk9URUNUAF9HX0RFRklORV9UWVBFX0VYVEVOREVEX0JFR0lOKFR5cGVOYW1lLHR5cGVfbmFtZSxUWVBFX1BBUkVOVCxmbGFncykgX0dfREVGSU5FX1RZUEVfRVhURU5ERURfQkVHSU5fUFJFKFR5cGVOYW1lLCB0eXBlX25hbWUsIFRZUEVfUEFSRU5UKSBfR19ERUZJTkVfVFlQRV9FWFRFTkRFRF9CRUdJTl9SRUdJU1RFUihUeXBlTmFtZSwgdHlwZV9uYW1lLCBUWVBFX1BBUkVOVCwgZmxhZ3MpAEdfR05VQ19DT05TVCBfX2F0dHJpYnV0ZV9fKChfX2NvbnN0X18pKQBHX1RZUEVfQVBQX0lORk8gKGdfYXBwX2luZm9fZ2V0X3R5cGUgKCkpAGdfc2xpc3RfZnJlZTEgZ19zbGlzdF9mcmVlXzEARkxUX1JBRElYIF9fRkxUX1JBRElYX18AX1RfV0NIQVIgAEdfVFlQRV9UTFNfUEFTU1dPUkRfRkxBR1MgKGdfdGxzX3Bhc3N3b3JkX2ZsYWdzX2dldF90eXBlICgpKQBfX0dfQVBQX0lORk9fSF9fIABHX1ZBUklBTlRfVFlQRV9VSU5UMzIgKChjb25zdCBHVmFyaWFudFR5cGUgKikgInUiKQBfX0dfVU5JQ09ERV9IX18gAGdfdGVzdF90cmFwX2Fzc2VydF9zdGRlcnJfdW5tYXRjaGVkKHNlcnJwYXR0ZXJuKSBnX3Rlc3RfdHJhcF9hc3NlcnRpb25zIChHX0xPR19ET01BSU4sIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DLCA1LCBzZXJycGF0dGVybikAcmVmX2NvdW50AF9fRkxUX01BWF8xMF9FWFBfXyAzOABfX0dDQ19IQVZFX1NZTkNfQ09NUEFSRV9BTkRfU1dBUF84IDEAX19TSUdfQVRPTUlDX01BWF9fIDIxNDc0ODM2NDcAX1NDX1NJTkdMRV9QUk9DRVNTIF9TQ19TSU5HTEVfUFJPQ0VTUwBHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX0NPTU1FTlQgIkNvbW1lbnQiAEdfSU5FVF9BRERSRVNTX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9JTkVUX0FERFJFU1MsIEdJbmV0QWRkcmVzc0NsYXNzKSkAZ19udG9ocyh2YWwpIChHVUlOVDE2X0ZST01fQkUgKHZhbCkpAEdfVFlQRV9FTUJMRU0gKGdfZW1ibGVtX2dldF90eXBlICgpKQBCQ19TQ0FMRV9NQVggX1BPU0lYMl9CQ19TQ0FMRV9NQVgAX19JTlQzMl9DKGMpIGMAR19aTElCX0NPTVBSRVNTT1JfR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9aTElCX0NPTVBSRVNTT1IsIEdabGliQ29tcHJlc3NvckNsYXNzKSkAX19wYWQxAF9fcGFkMgBfX3BhZDMAX19wYWQ0AF9fcGFkNQBfX1NURENfSUVDXzU1OV9DT01QTEVYX18gMQBDT0xMX1dFSUdIVFNfTUFYIDI1NQBfX0dfSEFTSF9IX18gAF9fR19USFJFQURQT09MX0hfXyAAaHR0cFByb3h5U2V0dGluZ3MAR2V0RG91YmxlQXJyYXlSZWdpb24AX0lPU19CSU4gMTI4AENMT0NLU19QRVJfU0VDIDEwMDAwMDBsAEdfSVNfTU9VTlQob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmopLCBHX1RZUEVfTU9VTlQpKQBQdXNoTG9jYWxGcmFtZQBfX0dfREJVU19FUlJPUl9IX18gAF9fd2NoYXJfdF9fIABpbmxpbmUgX19pbmxpbmUAX19EQkxfTUlOX18gKChkb3VibGUpMi4yMjUwNzM4NTg1MDcyMDEzODMwOWUtMzA4TCkAR19GSUxFX0FUVFJJQlVURV9TRUxJTlVYX0NPTlRFWFQgInNlbGludXg6OmNvbnRleHQiAF9fU0laRU9GX1dDSEFSX1RfXyA0AEdfSVNfVkZTKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfVkZTKSkAc2lfb3ZlcnJ1biBfc2lmaWVsZHMuX3RpbWVyLnNpX292ZXJydW4AR19UWVBFX0ZST01fSU5TVEFOQ0UoaW5zdGFuY2UpIChHX1RZUEVfRlJPTV9DTEFTUyAoKChHVHlwZUluc3RhbmNlKikgKGluc3RhbmNlKSktPmdfY2xhc3MpKQBfU0NfMl9DX0RFViBfU0NfMl9DX0RFVgBHX01FTlVfTElOS19TRUNUSU9OICJzZWN0aW9uIgBfX0dfSU9fU1RSRUFNX0hfXyAAR19PQkpFQ1RfVFlQRV9OQU1FKG9iamVjdCkgKGdfdHlwZV9uYW1lIChHX09CSkVDVF9UWVBFIChvYmplY3QpKSkAR19DT05WRVJURVIob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmopLCBHX1RZUEVfQ09OVkVSVEVSLCBHQ29udmVydGVyKSkAR19JU19UWVBFX1BMVUdJTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX1RZUEVfUExVR0lOKSkAX1NDX1hPUEVOX1JFQUxUSU1FIF9TQ19YT1BFTl9SRUFMVElNRQBHX1RIUkVBRFNfSU1QTF9QT1NJWCAAR19UWVBFX1NUUlYgKGdfc3Rydl9nZXRfdHlwZSAoKSkARGVsZXRlR2xvYmFsUmVmAF9DU19YQlM1X0lMUDMyX09GRjMyX0xJQlMgX0NTX1hCUzVfSUxQMzJfT0ZGMzJfTElCUwBfUE9TSVhfUlRTSUdfTUFYIDgAR1VJTlQxNl9TV0FQX0xFX0JFX0NPTlNUQU5UKHZhbCkgKChndWludDE2KSAoIChndWludDE2KSAoKGd1aW50MTYpICh2YWwpID4+IDgpIHwgKGd1aW50MTYpICgoZ3VpbnQxNikgKHZhbCkgPDwgOCkpKQBHX0lTX1BBUkFNX1NQRUNfVU5JQ0hBUihwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fVU5JQ0hBUikpAF9fREVDMzJfTUlOX0VYUF9fICgtOTQpAF9TQ18yX1BCU19BQ0NPVU5USU5HIF9TQ18yX1BCU19BQ0NPVU5USU5HAENhbGxOb252aXJ0dWFsVm9pZE1ldGhvZEEAR19UWVBFX0JJTkRJTkdfRkxBR1MgKGdfYmluZGluZ19mbGFnc19nZXRfdHlwZSAoKSkAX19HX0JZVEVTX0hfXyAAR19ERUZJTkVfSU5URVJGQUNFKFROLHRfbixUX1ApIEdfREVGSU5FX0lOVEVSRkFDRV9XSVRIX0NPREUoVE4sIHRfbiwgVF9QLCA7KQBHX1NUUkZVTkMgKChjb25zdCBjaGFyKikgKF9fRlVOQ1RJT05fXykpAENhbGxOb252aXJ0dWFsVm9pZE1ldGhvZABfX1VJTlQ2NF9DKGMpIGMgIyMgVUwAR19JU19GSUxFX0lORk9fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9GSUxFX0lORk8pKQBnX3dhcm5faWZfcmVhY2hlZCgpIGRvIHsgZ193YXJuX21lc3NhZ2UgKEdfTE9HX0RPTUFJTiwgX19GSUxFX18sIF9fTElORV9fLCBHX1NUUkZVTkMsIE5VTEwpOyB9IHdoaWxlICgwKQBHZXRTdHJpbmdVVEZSZWdpb24AQ2FsbE5vbnZpcnR1YWxWb2lkTWV0aG9kVgBnX21lbW1vdmUoZGVzdCxzcmMsbGVuKSBHX1NUTVRfU1RBUlQgeyBtZW1tb3ZlICgoZGVzdCksIChzcmMpLCAobGVuKSk7IH0gR19TVE1UX0VORABHX0FQUExJQ0FUSU9OX0NPTU1BTkRfTElORShpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX0FQUExJQ0FUSU9OX0NPTU1BTkRfTElORSwgR0FwcGxpY2F0aW9uQ29tbWFuZExpbmUpKQBHX0lTX1RMU19QQVNTV09SRF9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX1RMU19QQVNTV09SRCkpAF9fTElUVExFX0VORElBTiAxMjM0AF9fR19QUk9YWV9BRERSRVNTX0hfXyAAZ2V0YyhfZnApIF9JT19nZXRjIChfZnApAEpOSV9FRVhJU1QgKC01KQBHX0lTX1BFUk1JU1NJT05fQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGNsYXNzKSwgR19UWVBFX1BFUk1JU1NJT04pKQBMX1hUTkQgU0VFS19FTkQAX0NTX1Y2X1dJRFRIX1JFU1RSSUNURURfRU5WUyBfQ1NfVjZfV0lEVEhfUkVTVFJJQ1RFRF9FTlZTAEJVU19PQkpFUlIgQlVTX09CSkVSUgBfU0NfU1BJTl9MT0NLUyBfU0NfU1BJTl9MT0NLUwBSZWxlYXNlUHJpbWl0aXZlQXJyYXlDcml0aWNhbABfWE9QRU5fU1RSRUFNUyAtMQBnX25vZGVfaW5zZXJ0X2RhdGFfYWZ0ZXIocGFyZW50LHNpYmxpbmcsZGF0YSkgZ19ub2RlX2luc2VydF9hZnRlciAoKHBhcmVudCksIChzaWJsaW5nKSwgZ19ub2RlX25ldyAoZGF0YSkpAEdMSUJfU1lTREVGX01TR19PT0IgMQBHX1NPQ0tFVF9DTElFTlQoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9TT0NLRVRfQ0xJRU5ULCBHU29ja2V0Q2xpZW50KSkAU0lHV0lOQ0ggMjgAR1VJTlQxNl9GUk9NX0xFKHZhbCkgKEdVSU5UMTZfVE9fTEUgKHZhbCkpAEdfVFlQRV9TRVRUSU5HUyAoZ19zZXR0aW5nc19nZXRfdHlwZSAoKSkAX19HX0lPX01PRFVMRV9IX18gAEdfRElSX1NFUEFSQVRPUiAnLycATERCTF9NSU5fMTBfRVhQIF9fTERCTF9NSU5fMTBfRVhQX18AX0NTX1Y2X0VOViBfQ1NfVjZfRU5WAEdfSVNfU09DS0VUX0xJU1RFTkVSX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9TT0NLRVRfTElTVEVORVIpKQBHX1RZUEVfVExTX1NFUlZFUl9DT05ORUNUSU9OIChnX3Rsc19zZXJ2ZXJfY29ubmVjdGlvbl9nZXRfdHlwZSAoKSkAX19VU0VfWE9QRU4ySzgAR0xJQl9ERVBSRUNBVEVEX0lOXzJfMjggR0xJQl9ERVBSRUNBVEVEAEdfRklMRV9BVFRSSUJVVEVfTU9VTlRBQkxFX0NBTl9NT1VOVCAibW91bnRhYmxlOjpjYW4tbW91bnQiAEdfVFlQRV9TT0NLRVRfTElTVEVORVJfRVZFTlQgKGdfc29ja2V0X2xpc3RlbmVyX2V2ZW50X2dldF90eXBlICgpKQBHX0lTX0FQUF9JTkZPX01PTklUT1IoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9BUFBfSU5GT19NT05JVE9SKSkAX19HX1BFUk1JU1NJT05fSF9fIABzaV91dGltZSBfc2lmaWVsZHMuX3NpZ2NobGQuc2lfdXRpbWUAdmFfZW5kKHYpIF9fYnVpbHRpbl92YV9lbmQodikAR1VJTlRfVE9fTEUodmFsKSAoKGd1aW50KSBHVUlOVDMyX1RPX0xFICh2YWwpKQBzaV9iYW5kIF9zaWZpZWxkcy5fc2lncG9sbC5zaV9iYW5kAEdfQU5BTFlaRVJfTk9SRVRVUk4gAHByb3h5SW5mb0NsYXNzAEdTSVpFX1RPX1BPSU5URVIocykgKChncG9pbnRlcikgKGdzaXplKSAocykpAF9QT1NJWF9USFJFQURfUFJJT19JTkhFUklUIDIwMDgwOUwAX1BDX1BBVEhfTUFYIF9QQ19QQVRIX01BWABfUE9TSVhfUkVBREVSX1dSSVRFUl9MT0NLUyAyMDA4MDlMAF9QQ19OT19UUlVOQyBfUENfTk9fVFJVTkMAR19JTlBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9JTlBVVF9TVFJFQU0sIEdJbnB1dFN0cmVhbSkpAF9fR19GSUxFVVRJTFNfSF9fIABfX0RFQzMyX0VQU0lMT05fXyAxRS02REYAX1BPU0lYX0JBUlJJRVJTIDIwMDgwOUwAR19ERUZJTkVfQUJTVFJBQ1RfVFlQRV9XSVRIX0NPREUoVE4sdF9uLFRfUCxfQ18pIF9HX0RFRklORV9UWVBFX0VYVEVOREVEX0JFR0lOIChUTiwgdF9uLCBUX1AsIEdfVFlQRV9GTEFHX0FCU1RSQUNUKSB7X0NfO30gX0dfREVGSU5FX1RZUEVfRVhURU5ERURfRU5EKCkAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9GQVNUX0NPTlRFTlRfVFlQRSAic3RhbmRhcmQ6OmZhc3QtY29udGVudC10eXBlIgBfX0dfU0lHTkFMX0hfXyAAR19JU19GSUxFX0lORk8obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9GSUxFX0lORk8pKQBHX01BWFVJTlQ4ICgoZ3VpbnQ4KSAweGZmKQBHX0ZJTEVfQVRUUklCVVRFX09XTkVSX1VTRVJfUkVBTCAib3duZXI6OnVzZXItcmVhbCIAR19JU19EQVRBR1JBTV9CQVNFRChpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX0RBVEFHUkFNX0JBU0VEKSkAcG9ydE1ldGhvZABHTElCX0RFUFJFQ0FURURfSU5fMl80Nl9GT1IoZikgR0xJQl9ERVBSRUNBVEVEX0ZPUihmKQBKTklFWFBPUlQgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkAX19VU0VfQlNEAF9fdW5kZWZfQVJHX01BWCAAUFRIUkVBRF9USFJFQURTX01BWABfX1NJR0VWX01BWF9TSVpFIDY0AEpOSV9BQk9SVCAyAEhPU1RfTkFNRV9NQVggNjQAX19HX0NMT1NVUkVfSF9fIABfX0dfVExTX0ZJTEVfREFUQUJBU0VfSF9fIABfU0NfU1BBV04gX1NDX1NQQVdOAFNJR1FVSVQgMwBHX1NPQ0tFVF9BRERSRVNTX0VOVU1FUkFUT1JfR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9TT0NLRVRfQUREUkVTU19FTlVNRVJBVE9SLCBHU29ja2V0QWRkcmVzc0VudW1lcmF0b3JDbGFzcykpAF9HX0RFRklORV9CT1hFRF9UWVBFX0JFR0lOKFR5cGVOYW1lLHR5cGVfbmFtZSxjb3B5X2Z1bmMsZnJlZV9mdW5jKSBHVHlwZSB0eXBlX25hbWUgIyNfZ2V0X3R5cGUgKHZvaWQpIHsgc3RhdGljIHZvbGF0aWxlIGdzaXplIGdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlID0gMDsgaWYgKGdfb25jZV9pbml0X2VudGVyICgmZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUpKSB7IEdUeXBlICgqIF9nX3JlZ2lzdGVyX2JveGVkKSAoY29uc3QgZ2NoYXIgKiwgdW5pb24geyBUeXBlTmFtZSAqICgqZG9fY29weV90eXBlKSAoVHlwZU5hbWUgKik7IFR5cGVOYW1lICogKCpkb19jb25zdF9jb3B5X3R5cGUpIChjb25zdCBUeXBlTmFtZSAqKTsgR0JveGVkQ29weUZ1bmMgZG9fY29weV9ib3hlZDsgfSBfX2F0dHJpYnV0ZV9fKChfX3RyYW5zcGFyZW50X3VuaW9uX18pKSwgdW5pb24geyB2b2lkICgqIGRvX2ZyZWVfdHlwZSkgKFR5cGVOYW1lICopOyBHQm94ZWRGcmVlRnVuYyBkb19mcmVlX2JveGVkOyB9IF9fYXR0cmlidXRlX18oKF9fdHJhbnNwYXJlbnRfdW5pb25fXykpICkgPSBnX2JveGVkX3R5cGVfcmVnaXN0ZXJfc3RhdGljOyBHVHlwZSBnX2RlZmluZV90eXBlX2lkID0gX2dfcmVnaXN0ZXJfYm94ZWQgKGdfaW50ZXJuX3N0YXRpY19zdHJpbmcgKCNUeXBlTmFtZSksIGNvcHlfZnVuYywgZnJlZV9mdW5jKTsgewBDYWxsTm9udmlydHVhbEZsb2F0TWV0aG9kQQBfX2JvczAocHRyKSBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKHB0ciwgMCkAR19OQVRJVkVfVk9MVU1FX01PTklUT1JfRVhURU5TSU9OX1BPSU5UX05BTUUgImdpby1uYXRpdmUtdm9sdW1lLW1vbml0b3IiAEdfSVNfRklMRV9NT05JVE9SX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfRklMRV9NT05JVE9SKSkARXhjZXB0aW9uRGVzY3JpYmUAX1NDXzJfVkVSU0lPTiBfU0NfMl9WRVJTSU9OAF9TQ18yX1BCU19NRVNTQUdFIF9TQ18yX1BCU19NRVNTQUdFAF9fVVNFX1hPUEVOAF9fSU5UMTZfTUFYX18gMzI3NjcAR19UWVBFX0tFWV9GSUxFIChnX2tleV9maWxlX2dldF90eXBlICgpKQBDYWxsTm9udmlydHVhbEZsb2F0TWV0aG9kVgBHX1RZUEVfQ1JFREVOVElBTFMgKGdfY3JlZGVudGlhbHNfZ2V0X3R5cGUgKCkpAEdfSVNfREJVU19QUk9YWV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX0RCVVNfUFJPWFkpKQBHX1BSSU9SSVRZX0hJR0ggLTEwMABHX0lTX0RCVVNfSU5URVJGQUNFKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfREJVU19JTlRFUkZBQ0UpKQBodG9sZTE2KHgpICh4KQBMREJMX0RJRyBfX0xEQkxfRElHX18AU0NIQVJfTUlOICgtU0NIQVJfTUFYIC0gMSkAR19JU19EQlVTX01FVEhPRF9JTlZPQ0FUSU9OKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfREJVU19NRVRIT0RfSU5WT0NBVElPTikpAEdMSUJfU1lTREVGX1BPTExQUkkgPTIAR19UWVBFX0NIRUNLX0lOU1RBTkNFX0ZVTkRBTUVOVEFMX1RZUEUoaW5zdGFuY2UsZ190eXBlKSAoX0dfVFlQRV9DSUZUICgoaW5zdGFuY2UpLCAoZ190eXBlKSkpAF9fTERCTF9NQVhfMTBfRVhQX18gNDkzMgBfX1VJTlRfRkFTVDhfVFlQRV9fIHVuc2lnbmVkIGNoYXIAX0dfVFlQRV9DVkgodmwsZ3QpIChHX0dOVUNfRVhURU5TSU9OICh7IEdWYWx1ZSAqX192YWwgPSAoR1ZhbHVlKikgdmw7IEdUeXBlIF9fdCA9IGd0OyBnYm9vbGVhbiBfX3I7IGlmICghX192YWwpIF9fciA9IEZBTFNFOyBlbHNlIGlmIChfX3ZhbC0+Z190eXBlID09IF9fdCkgX19yID0gVFJVRTsgZWxzZSBfX3IgPSBnX3R5cGVfY2hlY2tfdmFsdWVfaG9sZHMgKF9fdmFsLCBfX3QpOyBfX3I7IH0pKQBfX0lOVF9MRUFTVDE2X1RZUEVfXyBzaG9ydCBpbnQAR19IQVZFX0lTT19WQVJBUkdTIDEAR19JU19UTFNfREFUQUJBU0UoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9UTFNfREFUQUJBU0UpKQBfX3VfY2hhcl9kZWZpbmVkIABHX1ZBUklBTlRfVFlQRV9JTlQxNiAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAibiIpAF9fR19UUkFTSF9TVEFDS19IX18gAF9HX0RFRklORV9UWVBFX0VYVEVOREVEX0JFR0lOX1BSRShUeXBlTmFtZSx0eXBlX25hbWUsVFlQRV9QQVJFTlQpIHN0YXRpYyB2b2lkIHR5cGVfbmFtZSAjI19pbml0IChUeXBlTmFtZSAqc2VsZik7IHN0YXRpYyB2b2lkIHR5cGVfbmFtZSAjI19jbGFzc19pbml0IChUeXBlTmFtZSAjI0NsYXNzICprbGFzcyk7IHN0YXRpYyBncG9pbnRlciB0eXBlX25hbWUgIyNfcGFyZW50X2NsYXNzID0gTlVMTDsgc3RhdGljIGdpbnQgVHlwZU5hbWUgIyNfcHJpdmF0ZV9vZmZzZXQ7IF9HX0RFRklORV9UWVBFX0VYVEVOREVEX0NMQVNTX0lOSVQoVHlwZU5hbWUsIHR5cGVfbmFtZSkgR19HTlVDX1VOVVNFRCBzdGF0aWMgaW5saW5lIGdwb2ludGVyIHR5cGVfbmFtZSAjI19nZXRfaW5zdGFuY2VfcHJpdmF0ZSAoVHlwZU5hbWUgKnNlbGYpIHsgcmV0dXJuIChHX1NUUlVDVF9NRU1CRVJfUCAoc2VsZiwgVHlwZU5hbWUgIyNfcHJpdmF0ZV9vZmZzZXQpKTsgfSBHVHlwZSB0eXBlX25hbWUgIyNfZ2V0X3R5cGUgKHZvaWQpIHsgc3RhdGljIHZvbGF0aWxlIGdzaXplIGdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlID0gMDsAX0NTX1hCUzVfSUxQMzJfT0ZGQklHX0xERkxBR1MgX0NTX1hCUzVfSUxQMzJfT0ZGQklHX0xERkxBR1MAX1BPU0lYX1BSSU9SSVRZX1NDSEVEVUxJTkcgMjAwODA5TABHX0lTX1RZUEVfTU9EVUxFX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9UWVBFX01PRFVMRSkpAF9fR19UTFNfQ0VSVElGSUNBVEVfSF9fIABnX2FzY2lpX2lzcHVuY3QoYykgKChnX2FzY2lpX3RhYmxlWyhndWNoYXIpIChjKV0gJiBHX0FTQ0lJX1BVTkNUKSAhPSAwKQBKREsxXzIgAENhbGxOb252aXJ0dWFsQm9vbGVhbk1ldGhvZABfX0dfREJVU19OQU1FX09XTklOR19IX18gAENhbGxMb25nTWV0aG9kQQBHX1RZUEVfREJVU19DT05ORUNUSU9OIChnX2RidXNfY29ubmVjdGlvbl9nZXRfdHlwZSAoKSkAX19zdHViX3NldGxvZ2luIABKTklfRU5PTUVNICgtNCkAX19JTlRfTEVBU1Q2NF9UWVBFX18gbG9uZyBpbnQAX0NTX1BPU0lYX1Y2X0xQNjRfT0ZGNjRfTElOVEZMQUdTIF9DU19QT1NJWF9WNl9MUDY0X09GRjY0X0xJTlRGTEFHUwBfX2Jzd2FwX2NvbnN0YW50XzY0KHgpIChfX2V4dGVuc2lvbl9fICgoKCh4KSAmIDB4ZmYwMDAwMDAwMDAwMDAwMHVsbCkgPj4gNTYpIHwgKCgoeCkgJiAweDAwZmYwMDAwMDAwMDAwMDB1bGwpID4+IDQwKSB8ICgoKHgpICYgMHgwMDAwZmYwMDAwMDAwMDAwdWxsKSA+PiAyNCkgfCAoKCh4KSAmIDB4MDAwMDAwZmYwMDAwMDAwMHVsbCkgPj4gOCkgfCAoKCh4KSAmIDB4MDAwMDAwMDBmZjAwMDAwMHVsbCkgPDwgOCkgfCAoKCh4KSAmIDB4MDAwMDAwMDAwMGZmMDAwMHVsbCkgPDwgMjQpIHwgKCgoeCkgJiAweDAwMDAwMDAwMDAwMGZmMDB1bGwpIDw8IDQwKSB8ICgoKHgpICYgMHgwMDAwMDAwMDAwMDAwMGZmdWxsKSA8PCA1NikpKQBDYWxsTG9uZ01ldGhvZFYAX19HTlVDX1BSRVJFUShtYWosbWluKSAoKF9fR05VQ19fIDw8IDE2KSArIF9fR05VQ19NSU5PUl9fID49ICgobWFqKSA8PCAxNikgKyAobWluKSkAanNpemUAX19VU0VfQU5TSSAxAEdfVkFMVUVfSE9MRFNfQk9YRUQodmFsdWUpIChHX1RZUEVfQ0hFQ0tfVkFMVUVfVFlQRSAoKHZhbHVlKSwgR19UWVBFX0JPWEVEKSkAR0lOVDE2X1RPX0xFKHZhbCkgKChnaW50MTYpICh2YWwpKQBHVUlOVDY0X1NXQVBfTEVfQkUodmFsKSAoR1VJTlQ2NF9TV0FQX0xFX0JFX0NPTlNUQU5UICh2YWwpKQBnX2RhdGVfbW9uZGF5X3dlZWtfb2ZfeWVhciBnX2RhdGVfZ2V0X21vbmRheV93ZWVrX29mX3llYXIAR19GSUxFX0VOVU1FUkFUT1IobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9GSUxFX0VOVU1FUkFUT1IsIEdGaWxlRW51bWVyYXRvcikpAF9fVVNFX1JFRU5UUkFOVCAxAEdVTE9OR19UT19CRSh2YWwpICgoZ3Vsb25nKSBHVUlOVDY0X1RPX0JFICh2YWwpKQBfU0NfUElJX09TSV9NIF9TQ19QSUlfT1NJX00AR2V0U2hvcnRBcnJheVJlZ2lvbgBfX0RFVl9UX1RZUEUgX19VUVVBRF9UWVBFAF9YT1BFTl9YQ1VfVkVSU0lPTiA0AF9JT19VTklUQlVGIDAyMDAwMABfX0dfREFURV9USU1FX0hfXyAAX0NTX1BPU0lYX1Y2X0xQQklHX09GRkJJR19DRkxBR1MgX0NTX1BPU0lYX1Y2X0xQQklHX09GRkJJR19DRkxBR1MAX19HTElCQ19NSU5PUl9fIDE3AGxlMzJ0b2goeCkgKHgpAF9DU19YQlM1X0xQNjRfT0ZGNjRfTElCUyBfQ1NfWEJTNV9MUDY0X09GRjY0X0xJQlMAbnBIb3N0QXJyYXkAX19HX0ZJTEVfSF9fIABHX1RZUEVfSU9fU1RSRUFNIChnX2lvX3N0cmVhbV9nZXRfdHlwZSAoKSkAR19JU19EQlVTX09CSkVDVF9QUk9YWV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX0RCVVNfT0JKRUNUX1BST1hZKSkAX19TSUdfQVRPTUlDX1RZUEVfXyBpbnQAX19ibGtjbnRfdF9kZWZpbmVkIABHX1RZUEVfVkFMVUUgKGdfdmFsdWVfZ2V0X3R5cGUgKCkpAENMQU1QKHgsbG93LGhpZ2gpICgoKHgpID4gKGhpZ2gpKSA/IChoaWdoKSA6ICgoKHgpIDwgKGxvdykpID8gKGxvdykgOiAoeCkpKQBHX0lTX0ZJTFRFUl9JTlBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9GSUxURVJfSU5QVVRfU1RSRUFNKSkAX1BPU0lYX05HUk9VUFNfTUFYIDgAX1BPU0lYX1RIUkVBRF9ST0JVU1RfUFJJT19JTkhFUklUIDIwMDgwOUwAR2V0SW50RmllbGQAR19SRU1PVEVfQUNUSU9OX0dST1VQX0dFVF9JRkFDRShpbnN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKChpbnN0KSwgR19UWVBFX1JFTU9URV9BQ1RJT05fR1JPVVAsIEdSZW1vdGVBY3Rpb25Hcm91cEludGVyZmFjZSkpAEdfVFlQRV9QQVJBTV9PQkpFQ1QgKGdfcGFyYW1fc3BlY190eXBlc1sxOV0pAGdfcmV0dXJuX3ZhbF9pZl9yZWFjaGVkKHZhbCkgR19TVE1UX1NUQVJUeyBnX2xvZyAoR19MT0dfRE9NQUlOLCBHX0xPR19MRVZFTF9DUklUSUNBTCwgImZpbGUgJXM6IGxpbmUgJWQgKCVzKTogc2hvdWxkIG5vdCBiZSByZWFjaGVkIiwgX19GSUxFX18sIF9fTElORV9fLCBHX1NUUkZVTkMpOyByZXR1cm4gKHZhbCk7IH1HX1NUTVRfRU5EAEdfSVNfVEFTSyhvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX1RBU0spKQBHX0FQUExJQ0FUSU9OX0NPTU1BTkRfTElORV9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoY2xhc3MpLCBHX1RZUEVfQVBQTElDQVRJT05fQ09NTUFORF9MSU5FLCBHQXBwbGljYXRpb25Db21tYW5kTGluZUNsYXNzKSkAR19DT05WRVJURVJfR0VUX0lGQUNFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgob2JqKSwgR19UWVBFX0NPTlZFUlRFUiwgR0NvbnZlcnRlcklmYWNlKSkAX19TU0laRV9UX1RZUEUgX19TV09SRF9UWVBFAEZpbmRDbGFzcwBTSV9TSUdJTyBTSV9TSUdJTwBfQ1NfWEJTNV9MUEJJR19PRkZCSUdfQ0ZMQUdTIF9DU19YQlM1X0xQQklHX09GRkJJR19DRkxBR1MAR2V0RW52AFBUSFJFQURfU1RBQ0tfTUlOIDE2Mzg0AGdfY3JpdGljYWwoLi4uKSBnX2xvZyAoR19MT0dfRE9NQUlOLCBHX0xPR19MRVZFTF9DUklUSUNBTCwgX19WQV9BUkdTX18pAEdfSVNfTUVNT1JZX0lOUFVUX1NUUkVBTV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX01FTU9SWV9JTlBVVF9TVFJFQU0pKQBHX1NPQ0tFVF9DT05UUk9MX01FU1NBR0UoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9TT0NLRVRfQ09OVFJPTF9NRVNTQUdFLCBHU29ja2V0Q29udHJvbE1lc3NhZ2UpKQBKREsxXzQgAENMT0NLX1JFQUxUSU1FX0FMQVJNIDgAZ19kYXRlX21vbnRoIGdfZGF0ZV9nZXRfbW9udGgAX19HX0FMTE9DQV9IX18gAGpkb3VibGVBcnJheQBHX1RZUEVfRklMRV9JQ09OIChnX2ZpbGVfaWNvbl9nZXRfdHlwZSAoKSkAX19HX0VOVklST05fSF9fIABHX1RZUEVfREFURSAoZ19kYXRlX2dldF90eXBlICgpKQBfWE9QRU5fWFBHNCAxAF9fSUxQMzJfT0ZGMzJfQ0ZMQUdTICItbTMyIgBfX0dfU09DS0VUX0FERFJFU1NfSF9fIABHZXRTdGF0aWNDaGFyRmllbGQAR19EQlVTX0FDVElPTl9HUk9VUF9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoY2xhc3MpLCBHX1RZUEVfREJVU19BQ1RJT05fR1JPVVAsIEdEQnVzQWN0aW9uR3JvdXBDbGFzcykpAF9fR19CWVRFU19JQ09OX0hfXyAAR19WT0xVTUVfSURFTlRJRklFUl9LSU5EX1VVSUQgInV1aWQiAEdfVFlQRV9SRVNPVVJDRSAoZ19yZXNvdXJjZV9nZXRfdHlwZSAoKSkAX19mb3J0aWZ5X2Z1bmN0aW9uIF9fZXh0ZXJuX2Fsd2F5c19pbmxpbmUgX19hdHRyaWJ1dGVfYXJ0aWZpY2lhbF9fAF9fdmFfbGlzdF90YWcAR19UWVBFX1RMU19DRVJUSUZJQ0FURV9SRVFVRVNUX0ZMQUdTIChnX3Rsc19jZXJ0aWZpY2F0ZV9yZXF1ZXN0X2ZsYWdzX2dldF90eXBlICgpKQBnX2FzY2lpX2lzeGRpZ2l0KGMpICgoZ19hc2NpaV90YWJsZVsoZ3VjaGFyKSAoYyldICYgR19BU0NJSV9YRElHSVQpICE9IDApAEdUeXBlAF9fR19WQUxVRV9IX18gAGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChpbnN0YW5jZSxkZXRhaWxlZF9zaWduYWwsY19oYW5kbGVyLGRhdGEpIGdfc2lnbmFsX2Nvbm5lY3RfZGF0YSAoKGluc3RhbmNlKSwgKGRldGFpbGVkX3NpZ25hbCksIChjX2hhbmRsZXIpLCAoZGF0YSksIE5VTEwsIEdfQ09OTkVDVF9TV0FQUEVEKQBHX1RZUEVfRlJPTV9DTEFTUyhnX2NsYXNzKSAoKChHVHlwZUNsYXNzKikgKGdfY2xhc3MpKS0+Z190eXBlKQBHX1RZUEVfQVNLX1BBU1NXT1JEX0ZMQUdTIChnX2Fza19wYXNzd29yZF9mbGFnc19nZXRfdHlwZSAoKSkAR19UWVBFX0ZJTEVfQ09QWV9GTEFHUyAoZ19maWxlX2NvcHlfZmxhZ3NfZ2V0X3R5cGUgKCkpAEdfVFlQRV9GSUxFX0FUVFJJQlVURV9TVEFUVVMgKGdfZmlsZV9hdHRyaWJ1dGVfc3RhdHVzX2dldF90eXBlICgpKQBQT0xMX0hVUCBQT0xMX0hVUABfSU9fc3Rkb3V0ICgoX0lPX0ZJTEUqKSgmX0lPXzJfMV9zdGRvdXRfKSkASk5JSU1QT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpAGdfYXNzZXJ0X25vdF9yZWFjaGVkKCkgR19TVE1UX1NUQVJUIHsgZ19hc3NlcnRpb25fbWVzc2FnZV9leHByIChHX0xPR19ET01BSU4sIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DLCBOVUxMKTsgfSBHX1NUTVRfRU5EAF9fQ1BVX1NFVF9TKGNwdSxzZXRzaXplLGNwdXNldHApIChfX2V4dGVuc2lvbl9fICh7IHNpemVfdCBfX2NwdSA9IChjcHUpOyBfX2NwdSA8IDggKiAoc2V0c2l6ZSkgPyAoKChfX2NwdV9tYXNrICopICgoY3B1c2V0cCktPl9fYml0cykpW19fQ1BVRUxUIChfX2NwdSldIHw9IF9fQ1BVTUFTSyAoX19jcHUpKSA6IDA7IH0pKQBfX0ZEX0NMUihkLHNldCkgKCh2b2lkKSAoX19GRFNfQklUUyAoc2V0KVtfX0ZEX0VMVCAoZCldICY9IH5fX0ZEX01BU0sgKGQpKSkAU0lHUE9MTCBTSUdJTwBfX3NpZ3dvcmQoc2lnKSAoKChzaWcpIC0gMSkgLyAoOCAqIHNpemVvZiAodW5zaWduZWQgbG9uZyBpbnQpKSkAdXNlU2FtZQBfX0dfTkFUSVZFX1ZPTFVNRV9NT05JVE9SX0hfXyAAZ190ZXN0X3Nsb3coKSAoIWdfdGVzdF9jb25maWdfdmFycy0+dGVzdF9xdWljaykAR19EVExTX0NPTk5FQ1RJT05fR0VUX0lOVEVSRkFDRShpbnN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKChpbnN0KSwgR19UWVBFX0RUTFNfQ09OTkVDVElPTiwgR0R0bHNDb25uZWN0aW9uSW50ZXJmYWNlKSkAR0xJQl9WRVJTSU9OXzJfNDYgKEdfRU5DT0RFX1ZFUlNJT04gKDIsIDQ2KSkAX0NTX0xGUzY0X0xJQlMgX0NTX0xGUzY0X0xJQlMAR19DTE9TVVJFX05fTk9USUZJRVJTKGNsKSAoKChjbCktPm5fZ3VhcmRzIDw8IDFMKSArIChjbCktPm5fZm5vdGlmaWVycyArIChjbCktPm5faW5vdGlmaWVycykAR0xJQl9WRVJTSU9OXzJfMzggKEdfRU5DT0RFX1ZFUlNJT04gKDIsIDM4KSkAR19JU19JTkVUX0FERFJFU1NfTUFTSyhvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0lORVRfQUREUkVTU19NQVNLKSkAX19HX01BUktVUF9IX18gAGdfcG9pbnRlcl9iaXRfdHJ5bG9jayhhZGRyZXNzLGxvY2tfYml0KSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGFkZHJlc3MpID09IHNpemVvZiAoZ3BvaW50ZXIpKTsgZ19wb2ludGVyX2JpdF90cnlsb2NrICgoYWRkcmVzcyksIChsb2NrX2JpdCkpOyB9KSkAR2V0U3RyaW5nQ2hhcnMATERCTF9NQU5UX0RJRyBfX0xEQkxfTUFOVF9ESUdfXwBfX1VJTlRfRkFTVDY0X1RZUEVfXyBsb25nIHVuc2lnbmVkIGludABTQ0hFRF9GSUZPIDEAX0lPX0xJTktFRCAweDgwAF9QQ19NQVhfSU5QVVQgX1BDX01BWF9JTlBVVABHX01BWExPTkcgTE9OR19NQVgAR19QUk9YWV9BRERSRVNTX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfUFJPWFlfQUREUkVTUywgR1Byb3h5QWRkcmVzc0NsYXNzKSkAX19uZWVkX2Nsb2NrX3QgAF9fR19BU1lOQ1FVRVVFX0hfXyAAZ19kYXRhbGlzdF9zZXRfZGF0YV9mdWxsKGRsLGssZCxmKSBnX2RhdGFsaXN0X2lkX3NldF9kYXRhX2Z1bGwgKChkbCksIGdfcXVhcmtfZnJvbV9zdHJpbmcgKGspLCAoZCksIChmKSkAR19USU1FX1NQQU5fREFZIChHX0dJTlQ2NF9DT05TVEFOVCAoODY0MDAwMDAwMDApKQBHX1NFQVJDSFBBVEhfU0VQQVJBVE9SICc6JwBGSUxFTkFNRV9NQVggNDA5NgBHX1NPQ0tFVF9BRERSRVNTX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfU09DS0VUX0FERFJFU1MsIEdTb2NrZXRBZGRyZXNzQ2xhc3MpKQBfX0dDQ19BVE9NSUNfTE9OR19MT0NLX0ZSRUUgMgBHX1NPQ0tFVF9DT05UUk9MX01FU1NBR0VfQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGNsYXNzKSwgR19UWVBFX1NPQ0tFVF9DT05UUk9MX01FU1NBR0UsIEdTb2NrZXRDb250cm9sTWVzc2FnZUNsYXNzKSkAX19CSUdHRVNUX0FMSUdOTUVOVF9fIDE2AF9QT1NJWF9PUEVOX01BWCAyMABodG9sZTMyKHgpICh4KQBHX01FTlVfQVRUUklCVVRFX0xBQkVMICJsYWJlbCIAR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCxwcm9wZXJ0eV9pZCxwc3BlYykgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BTUEVDICgob2JqZWN0KSwgInByb3BlcnR5IiwgKHByb3BlcnR5X2lkKSwgKHBzcGVjKSkARkxUX01BWCBfX0ZMVF9NQVhfXwBfX2F0dHJpYnV0ZV9mb3JtYXRfc3RyZm1vbl9fKGEsYikgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fc3RyZm1vbl9fLCBhLCBiKSkpAEdfVExTX0NMSUVOVF9DT05ORUNUSU9OX0dFVF9JTlRFUkZBQ0UoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgoaW5zdCksIEdfVFlQRV9UTFNfQ0xJRU5UX0NPTk5FQ1RJT04sIEdUbHNDbGllbnRDb25uZWN0aW9uSW50ZXJmYWNlKSkAR19UTFNfUEFTU1dPUkRfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX1RMU19QQVNTV09SRCwgR1Rsc1Bhc3N3b3JkQ2xhc3MpKQBHTElCX1ZFUlNJT05fMl81NCAoR19FTkNPREVfVkVSU0lPTiAoMiwgNTQpKQBfU0lHTkFMX0ggAEdfVkFSSUFOVF9UWVBFX0RJQ1RJT05BUlkgKChjb25zdCBHVmFyaWFudFR5cGUgKikgImF7Pyp9IikAX19HX0lORVRfU09DS0VUX0FERFJFU1NfSF9fIABfR19UWVBFX0NDQyhjcCxndCxjdCkgKChjdCopIGdfdHlwZV9jaGVja19jbGFzc19jYXN0ICgoR1R5cGVDbGFzcyopIGNwLCBndCkpAE1vbml0b3JFbnRlcgBHX0RCVVNfRVJST1IgZ19kYnVzX2Vycm9yX3F1YXJrKCkAR0xJQl9TWVNERUZfUE9MTEVSUiA9OABHTElCX0RFUFJFQ0FURURfSU5fMl8zMl9GT1IoZikgR0xJQl9ERVBSRUNBVEVEX0ZPUihmKQBHX1ZBTFVFX1RZUEVfTkFNRSh2YWx1ZSkgKGdfdHlwZV9uYW1lIChHX1ZBTFVFX1RZUEUgKHZhbHVlKSkpAF9MRlM2NF9TVERJTyAxAEdfU09VUkNFX1JFTU9WRSBGQUxTRQBfR0NDX1BUUkRJRkZfVCAAZ19hc2NpaV9pc2FsbnVtKGMpICgoZ19hc2NpaV90YWJsZVsoZ3VjaGFyKSAoYyldICYgR19BU0NJSV9BTE5VTSkgIT0gMCkAX19HTElCX0dPQkpFQ1RfSF9JTlNJREVfXwBnX3N0cmluZ19zcHJpbnRmYSBnX3N0cmluZ19hcHBlbmRfcHJpbnRmAERUX0xOSyBEVF9MTksAR19JU19QQVJBTV9TUEVDX0JPWEVEKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9CT1hFRCkpAEdfRklMRV9BVFRSSUJVVEVfVElNRV9DUkVBVEVEX1VTRUMgInRpbWU6OmNyZWF0ZWQtdXNlYyIAX19MREJMX01JTl9FWFBfXyAoLTE2MzgxKQBHVUlOVDE2X0ZST01fQkUodmFsKSAoR1VJTlQxNl9UT19CRSAodmFsKSkAR0xJQl9BVkFJTEFCTEVfSU5fMl8zOCBfR0xJQl9FWFRFUk4ASk5JX09LIDAAR19TT0NLRVRfQ09OTkVDVEFCTEVfR0VUX0lGQUNFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgob2JqKSwgR19UWVBFX1NPQ0tFVF9DT05ORUNUQUJMRSwgR1NvY2tldENvbm5lY3RhYmxlSWZhY2UpKQBHZXRTdGF0aWNGaWVsZElEAEdMSUJfREVQUkVDQVRFRF9JTl8yXzMwIEdMSUJfREVQUkVDQVRFRABfX0RFQzEyOF9NQVhfRVhQX18gNjE0NQBfX0dfU0hFTExfSF9fIABfX0NQVU1BU0soY3B1KSAoKF9fY3B1X21hc2spIDEgPDwgKChjcHUpICUgX19OQ1BVQklUUykpAEdfQ1JFREVOVElBTFNfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX0NSRURFTlRJQUxTLCBHQ3JlZGVudGlhbHNDbGFzcykpAEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfRURJVF9OQU1FICJzdGFuZGFyZDo6ZWRpdC1uYW1lIgBfX0dfUFJJTUVTX0hfXyAAR19JU19EQlVTX01FU1NBR0UobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9EQlVTX01FU1NBR0UpKQBfX0dfRElSX0hfXyAAX1NDXzJfVVBFIF9TQ18yX1VQRQBTVERJTl9GSUxFTk8gMABHX0lTX01PVU5UX09QRVJBVElPTihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX01PVU5UX09QRVJBVElPTikpAF9TQ19WNl9JTFAzMl9PRkYzMiBfU0NfVjZfSUxQMzJfT0ZGMzIAX19uZWVkX2Nsb2NrX3QAR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlMgX1ByYWdtYSAoIkdDQyBkaWFnbm9zdGljIHB1c2giKSBfUHJhZ21hICgiR0NDIGRpYWdub3N0aWMgaWdub3JlZCBcIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnNcIiIpAEdfSVNfTUVOVV9BVFRSSUJVVEVfSVRFUihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX01FTlVfQVRUUklCVVRFX0lURVIpKQBHX0RFRklORV9BVVRPX0NMRUFOVVBfQ0xFQVJfRlVOQyhUeXBlTmFtZSxmdW5jKSBHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUyBzdGF0aWMgaW5saW5lIHZvaWQgX0dMSUJfQVVUT19GVU5DX05BTUUoVHlwZU5hbWUpIChUeXBlTmFtZSAqX3B0cikgeyAoZnVuYykgKF9wdHIpOyB9IEdfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUwBHX0lTX1BBUkFNX1NQRUNfR1RZUEUocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX0dUWVBFKSkAR19WQUxVRV9IT0xEUyh2YWx1ZSx0eXBlKSAoR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKCh2YWx1ZSksICh0eXBlKSkpAEdfUFJJT1JJVFlfREVGQVVMVF9JRExFIDIwMABOUl9PUEVOIDEwMjQAX0lPX0lTX0FQUEVORElORyAweDEwMDAAc2lfaW50IF9zaWZpZWxkcy5fcnQuc2lfc2lndmFsLnNpdmFsX2ludABsZTE2dG9oKHgpICh4KQBHX1NPQ0tFVF9MSVNURU5FUihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1NPQ0tFVF9MSVNURU5FUiwgR1NvY2tldExpc3RlbmVyKSkAZm5QdHIAR19UWVBFX01BUFBFRF9GSUxFIChnX21hcHBlZF9maWxlX2dldF90eXBlICgpKQBHX1RZUEVfUEFSQU1fVkFMVUVfQVJSQVkgKGdfcGFyYW1fc3BlY190eXBlc1sxOF0pAEdVTE9OR19GUk9NX0JFKHZhbCkgKEdVTE9OR19UT19CRSAodmFsKSkAR19UTFNfU0VSVkVSX0NPTk5FQ1RJT05fR0VUX0lOVEVSRkFDRShpbnN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKChpbnN0KSwgR19UWVBFX1RMU19TRVJWRVJfQ09OTkVDVElPTiwgR1Rsc1NlcnZlckNvbm5lY3Rpb25JbnRlcmZhY2UpKQBHX05FVFdPUktfU0VSVklDRShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX05FVFdPUktfU0VSVklDRSwgR05ldHdvcmtTZXJ2aWNlKSkAX19tb2RlX3RfZGVmaW5lZCAAX1hPUEVOX1NITSAxAF9fR19EQlVTX0NPTk5FQ1RJT05fSF9fIABQVEhSRUFEX09OQ0VfSU5JVCAwAGdfYXJyYXlfaW5zZXJ0X3ZhbChhLGksdikgZ19hcnJheV9pbnNlcnRfdmFscyAoYSwgaSwgJih2KSwgMSkAX19JTlRfRkFTVDY0X01BWF9fIDkyMjMzNzIwMzY4NTQ3NzU4MDdMAEdfVFlQRV9HU1RSSU5HIChnX2dzdHJpbmdfZ2V0X3R5cGUgKCkpAF9QT1NJWF9USFJFQURfQVRUUl9TVEFDS0FERFIgMjAwODA5TABHX1NUUlVDVF9NRU1CRVJfUChzdHJ1Y3RfcCxzdHJ1Y3Rfb2Zmc2V0KSAoKGdwb2ludGVyKSAoKGd1aW50OCopIChzdHJ1Y3RfcCkgKyAoZ2xvbmcpIChzdHJ1Y3Rfb2Zmc2V0KSkpAEdfVFlQRV9UTFNfQVVUSEVOVElDQVRJT05fTU9ERSAoZ190bHNfYXV0aGVudGljYXRpb25fbW9kZV9nZXRfdHlwZSAoKSkAZ19hdG9taWNfaW50X2FuZChhdG9taWMsdmFsKSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6ZW9mIChnaW50KSk7ICh2b2lkKSAoMCA/ICooYXRvbWljKSBeICh2YWwpIDogMCk7IChndWludCkgX19zeW5jX2ZldGNoX2FuZF9hbmQgKChhdG9taWMpLCAodmFsKSk7IH0pKQBHX1JFU09MVkVSX0VSUk9SIChnX3Jlc29sdmVyX2Vycm9yX3F1YXJrICgpKQBHX1NJTVBMRV9BU1lOQ19SRVNVTFRfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX1NJTVBMRV9BU1lOQ19SRVNVTFQsIEdTaW1wbGVBc3luY1Jlc3VsdENsYXNzKSkAR1VMT05HX1RPX0xFKHZhbCkgKChndWxvbmcpIEdVSU5UNjRfVE9fTEUgKHZhbCkpAF9fdGltZXNwZWNfZGVmaW5lZCAxAF9QT1NJWF9NQVhfSU5QVVQgMjU1AEdfS0VZX0ZJTEVfREVTS1RPUF9LRVlfTk9UX1NIT1dfSU4gIk5vdFNob3dJbiIAR19UWVBFX0lTX0RFUklWQUJMRSh0eXBlKSAoZ190eXBlX3Rlc3RfZmxhZ3MgKCh0eXBlKSwgR19UWVBFX0ZMQUdfREVSSVZBQkxFKSkAX19uZWVkX3RpbWV2YWwgAEdfREVGSU5FX0RZTkFNSUNfVFlQRShUTix0X24sVF9QKSBHX0RFRklORV9EWU5BTUlDX1RZUEVfRVhURU5ERUQgKFROLCB0X24sIFRfUCwgMCwge30pAF9fQ0hBUjMyX1RZUEVfXyB1bnNpZ25lZCBpbnQAX0lPX3BlZWtjKF9mcCkgX0lPX3BlZWtjX3VubG9ja2VkIChfZnApAF9fREVDMTI4X0VQU0lMT05fXyAxRS0zM0RMAF9fVUlOVDE2X1RZUEVfXyBzaG9ydCB1bnNpZ25lZCBpbnQAR19EQlVTX01FTlVfTU9ERUwoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9EQlVTX01FTlVfTU9ERUwsIEdEQnVzTWVudU1vZGVsKSkAR19GSUxFX0FUVFJJQlVURV9PV05FUl9HUk9VUCAib3duZXI6Omdyb3VwIgBfU1RSVUNUX1RJTUVWQUwgMQBfX0ZMVF9NSU5fRVhQX18gKC0xMjUpAF9fSU5UX01BWF9fIDIxNDc0ODM2NDcAR19UWVBFX0lTX1BBUkFNKHR5cGUpIChHX1RZUEVfRlVOREFNRU5UQUwgKHR5cGUpID09IEdfVFlQRV9QQVJBTSkAX19VSU5UX0xFQVNUNjRfVFlQRV9fIGxvbmcgdW5zaWduZWQgaW50AEdfTUVOVV9BVFRSSUJVVEVfQUNUSU9OX05BTUVTUEFDRSAiYWN0aW9uLW5hbWVzcGFjZSIAR19UWVBFX0NIRUNLX0lOU1RBTkNFKGluc3RhbmNlKSAoX0dfVFlQRV9DSEkgKChHVHlwZUluc3RhbmNlKikgKGluc3RhbmNlKSkpAF9DU19MRlNfTERGTEFHUyBfQ1NfTEZTX0xERkxBR1MAR19CVUZGRVJFRF9PVVRQVVRfU1RSRUFNKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfQlVGRkVSRURfT1VUUFVUX1NUUkVBTSwgR0J1ZmZlcmVkT3V0cHV0U3RyZWFtKSkAR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoZ19jbGFzcyxnX3R5cGUsY190eXBlKSAoX0dfVFlQRV9DQ0MgKChnX2NsYXNzKSwgKGdfdHlwZSksIGNfdHlwZSkpAENMT0NLX0JPT1RUSU1FIDcAR0xJQl9TWVNERUZfUE9MTE9VVCA9NABfX0dDQ19BVE9NSUNfVEVTVF9BTkRfU0VUX1RSVUVWQUwgMQBHX0lTX0FQUExJQ0FUSU9OX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9BUFBMSUNBVElPTikpAF9fR19UWVBFU19IX18gAF9fTFA2NF9PRkY2NF9MREZMQUdTICItbTY0IgBfX0NQVV9DTFJfUyhjcHUsc2V0c2l6ZSxjcHVzZXRwKSAoX19leHRlbnNpb25fXyAoeyBzaXplX3QgX19jcHUgPSAoY3B1KTsgX19jcHUgPCA4ICogKHNldHNpemUpID8gKCgoX19jcHVfbWFzayAqKSAoKGNwdXNldHApLT5fX2JpdHMpKVtfX0NQVUVMVCAoX19jcHUpXSAmPSB+X19DUFVNQVNLIChfX2NwdSkpIDogMDsgfSkpAF9TQ19YQlM1X0xQQklHX09GRkJJRyBfU0NfWEJTNV9MUEJJR19PRkZCSUcAX19TWVNDQUxMX1NMT05HX1RZUEUgX19TTE9OR1dPUkRfVFlQRQBfUE9TSVhfUkVfRFVQX01BWCAyNTUAR19EUklWRV9HRVRfSUZBQ0Uob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKChvYmopLCBHX1RZUEVfRFJJVkUsIEdEcml2ZUlmYWNlKSkAX0dfREVGSU5FX1RZUEVfRVhURU5ERURfQkVHSU5fUkVHSVNURVIoVHlwZU5hbWUsdHlwZV9uYW1lLFRZUEVfUEFSRU5ULGZsYWdzKSBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSkpIHsgR1R5cGUgZ19kZWZpbmVfdHlwZV9pZCA9IGdfdHlwZV9yZWdpc3Rlcl9zdGF0aWNfc2ltcGxlIChUWVBFX1BBUkVOVCwgZ19pbnRlcm5fc3RhdGljX3N0cmluZyAoI1R5cGVOYW1lKSwgc2l6ZW9mIChUeXBlTmFtZSAjI0NsYXNzKSwgKEdDbGFzc0luaXRGdW5jKSB0eXBlX25hbWUgIyNfY2xhc3NfaW50ZXJuX2luaXQsIHNpemVvZiAoVHlwZU5hbWUpLCAoR0luc3RhbmNlSW5pdEZ1bmMpIHR5cGVfbmFtZSAjI19pbml0LCAoR1R5cGVGbGFncykgZmxhZ3MpOyB7AERlZmluZUNsYXNzAF9fVVNFQ09ORFNfVF9UWVBFIF9fVTMyX1RZUEUAU0FfSU5URVJSVVBUIDB4MjAwMDAwMDAAU0VFS19DVVIgMQBHX1NUUkxPQyBfX0ZJTEVfXyAiOiIgR19TVFJJTkdJRlkgKF9fTElORV9fKQBHX1RZUEVfUEFSQU1fUEFSQU0gKGdfcGFyYW1fc3BlY190eXBlc1sxNV0pAF9fU1REQ19OT19USFJFQURTX18gMQBfX1dDSEFSX01BWF9fIDIxNDc0ODM2NDcAX19HTlVfTElCUkFSWV9fIDYAR19EVExTX0NMSUVOVF9DT05ORUNUSU9OX0dFVF9JTlRFUkZBQ0UoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgoaW5zdCksIEdfVFlQRV9EVExTX0NMSUVOVF9DT05ORUNUSU9OLCBHRHRsc0NsaWVudENvbm5lY3Rpb25JbnRlcmZhY2UpKQBfX0dfU0lNUExFX1BST1hZX1JFU09MVkVSX0hfXyAAR19JU19NT1VOVF9PUEVSQVRJT05fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9NT1VOVF9PUEVSQVRJT04pKQBnX3VpbnRfY2hlY2tlZF9tdWwoZGVzdCxhLGIpIF9HTElCX0NIRUNLRURfTVVMX1UzMihkZXN0LCBhLCBiKQBHX1RZUEVfREJVU19NRVNTQUdFX0hFQURFUl9GSUVMRCAoZ19kYnVzX21lc3NhZ2VfaGVhZGVyX2ZpZWxkX2dldF90eXBlICgpKQBfX3d1ciAAX19OT19JTkxJTkVfXyAxAEdldFN0YXRpY0xvbmdGaWVsZABfX0dfUEFUVEVSTl9IX18gAEdfRklMRV9BVFRSSUJVVEVfVU5JWF9VSUQgInVuaXg6OnVpZCIARk9QRU5fTUFYIDE2AF9TQ19WN19MUDY0X09GRjY0IF9TQ19WN19MUDY0X09GRjY0AF9fR05VQ19SSF9SRUxFQVNFX18gMjgAR19GSUxFX0FUVFJJQlVURV9BQ0NFU1NfQ0FOX1JFTkFNRSAiYWNjZXNzOjpjYW4tcmVuYW1lIgBfUE9TSVhfU0VNX05TRU1TX01BWCAyNTYAR2V0RmllbGRJRABHX0lTX1ZPTFVNRShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIEdfVFlQRV9WT0xVTUUpKQBHX01FTlVfQVRUUklCVVRFX0FDVElPTiAiYWN0aW9uIgBfX0dfQ1JFREVOVElBTFNfSF9fIABnX2h0b25zKHZhbCkgKEdVSU5UMTZfVE9fQkUgKHZhbCkpAEdfSVNfTkVUV09SS19BRERSRVNTKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfTkVUV09SS19BRERSRVNTKSkAR19GSUxFX0FUVFJJQlVURV9NT1VOVEFCTEVfQ0FOX1VOTU9VTlQgIm1vdW50YWJsZTo6Y2FuLXVubW91bnQiAFJlbGVhc2VTdHJpbmdDcml0aWNhbABHVUlOVDE2X1RPX0xFKHZhbCkgKChndWludDE2KSAodmFsKSkAX19CWVRFX09SREVSX18gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18AR19RVUVVRV9JTklUIHsgTlVMTCwgTlVMTCwgMCB9AENhbGxOb252aXJ0dWFsU2hvcnRNZXRob2QAZ19hdG9taWNfaW50X2FkZChhdG9taWMsdmFsKSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6ZW9mIChnaW50KSk7ICh2b2lkKSAoMCA/ICooYXRvbWljKSBeICh2YWwpIDogMCk7IChnaW50KSBfX3N5bmNfZmV0Y2hfYW5kX2FkZCAoKGF0b21pYyksICh2YWwpKTsgfSkpAF9fR19BUFBMSUNBVElPTl9IX18gAGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGV4cHIsdmFsKSBHX1NUTVRfU1RBUlR7IGlmIEdfTElLRUxZKGV4cHIpIHsgfSBlbHNlIHsgZ19yZXR1cm5faWZfZmFpbF93YXJuaW5nIChHX0xPR19ET01BSU4sIEdfU1RSRlVOQywgI2V4cHIpOyByZXR1cm4gKHZhbCk7IH07IH1HX1NUTVRfRU5EAF9fR19EQlVTX01FU1NBR0VfSF9fIABfX0ZEX1NFVFNJWkUgMTAyNABHX0ZJTEVfQVRUUklCVVRFX1VOSVhfREVWSUNFICJ1bml4OjpkZXZpY2UiAEdfTUlOT0ZGU0VUIEdfTUlOSU5UNjQAR19OT1RJRklDQVRJT04obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9OT1RJRklDQVRJT04sIEdOb3RpZmljYXRpb24pKQBHX0dOVUNfTk9SRVRVUk4gX19hdHRyaWJ1dGVfXygoX19ub3JldHVybl9fKSkAR19JU19QQVJBTV9TUEVDX1VDSEFSKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9VQ0hBUikpAEdfVkFSSUFOVF9UWVBFX1RVUExFICgoY29uc3QgR1ZhcmlhbnRUeXBlICopICJyIikAc2Ffc2lnYWN0aW9uIF9fc2lnYWN0aW9uX2hhbmRsZXIuc2Ffc2lnYWN0aW9uAF9fU1REQ19fIDEAX0lPX0RPTlRfQ0xPU0UgMDEwMDAwMABfUE9TSVhfU1lOQ0hST05JWkVEX0lPIDIwMDgwOUwAQ2FsbE5vbnZpcnR1YWxCb29sZWFuTWV0aG9kQQBfX0dJT19FTlVNX1RZUEVTX0hfXyAAR2V0U3RyaW5nVVRGTGVuZ3RoAEdfUFJJT1JJVFlfREVGQVVMVCAwAEdfQ0hBUlNFVF9DT05WRVJURVJfR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9DSEFSU0VUX0NPTlZFUlRFUiwgR0NoYXJzZXRDb252ZXJ0ZXJDbGFzcykpAF9fR19TRVRUSU5HU19TQ0hFTUFfSF9fIABHX0lTX0RBVEFfSU5QVVRfU1RSRUFNKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfREFUQV9JTlBVVF9TVFJFQU0pKQBHX0RCVVNfTUVUSE9EX0lOVk9DQVRJT04obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9EQlVTX01FVEhPRF9JTlZPQ0FUSU9OLCBHREJ1c01ldGhvZEludm9jYXRpb24pKQBfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTiBfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTgBDSEFSX01JTiBTQ0hBUl9NSU4AZ19zbGljZV9mcmVlKHR5cGUsbWVtKSBHX1NUTVRfU1RBUlQgeyBpZiAoMSkgZ19zbGljZV9mcmVlMSAoc2l6ZW9mICh0eXBlKSwgKG1lbSkpOyBlbHNlICh2b2lkKSAoKHR5cGUqKSAwID09IChtZW0pKTsgfSBHX1NUTVRfRU5EAGdfZGF0ZV9tb25kYXlfd2Vla3NfaW5feWVhciBnX2RhdGVfZ2V0X21vbmRheV93ZWVrc19pbl95ZWFyAF9YT1BFTl9YUEczIDEAR2V0TG9uZ0FycmF5RWxlbWVudHMAQ2FsbE5vbnZpcnR1YWxCb29sZWFuTWV0aG9kVgBKTklfVkVSU0lPTl8xXzIgMHgwMDAxMDAwMgBJTExfSUxMVFJQIElMTF9JTExUUlAAR19EQVRBX09VVFBVVF9TVFJFQU1fR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9EQVRBX09VVFBVVF9TVFJFQU0sIEdEYXRhT3V0cHV0U3RyZWFtQ2xhc3MpKQBfUE9TSVhfQVNZTkNIUk9OT1VTX0lPIDIwMDgwOUwAamJvb2xlYW4AX19HX0FDVElPTl9HUk9VUF9FWFBPUlRFUl9IX18gAF9JT1NfVFJVTkMgMTYATVFfUFJJT19NQVggMzI3NjgAYWxsb2NhKHNpemUpIF9fYnVpbHRpbl9hbGxvY2EgKHNpemUpAGdfYXNzZXJ0X2Vycm9yKGVycixkb20sYykgR19TVE1UX1NUQVJUIHsgaWYgKCFlcnIgfHwgKGVyciktPmRvbWFpbiAhPSBkb20gfHwgKGVyciktPmNvZGUgIT0gYykgZ19hc3NlcnRpb25fbWVzc2FnZV9lcnJvciAoR19MT0dfRE9NQUlOLCBfX0ZJTEVfXywgX19MSU5FX18sIEdfU1RSRlVOQywgI2VyciwgZXJyLCBkb20sIGMpOyB9IEdfU1RNVF9FTkQAX0xJQkNfTElNSVRTX0hfIDEAX1NDX1RSQUNFX0lOSEVSSVQgX1NDX1RSQUNFX0lOSEVSSVQAR19WQVJJQU5UX1RZUEUodHlwZV9zdHJpbmcpIChnX3ZhcmlhbnRfdHlwZV9jaGVja2VkXyAoKHR5cGVfc3RyaW5nKSkpAEdfS0VZX0ZJTEVfREVTS1RPUF9LRVlfUEFUSCAiUGF0aCIAX19HX05FVFdPUktfQUREUkVTU19IX18gAEdfVFlQRV9aTElCX0NPTVBSRVNTT1JfRk9STUFUIChnX3psaWJfY29tcHJlc3Nvcl9mb3JtYXRfZ2V0X3R5cGUgKCkpAEdfREJVU19PQkpFQ1QobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9EQlVTX09CSkVDVCwgR0RCdXNPYmplY3QpKQBfX1NMT05HV09SRF9UWVBFIGxvbmcgaW50AF9fSU5PNjRfVF9UWVBFIF9fVVFVQURfVFlQRQBfX0dfUE9MTEFCTEVfSU5QVVRfU1RSRUFNX0hfXyAAR19IT09LX0lTX1ZBTElEKGhvb2spIChHX0hPT0sgKGhvb2spLT5ob29rX2lkICE9IDAgJiYgKEdfSE9PS19GTEFHUyAoaG9vaykgJiBHX0hPT0tfRkxBR19BQ1RJVkUpKQBfT0xEX1NURElPX01BR0lDIDB4RkFCQzAwMDAARGVzdHJveUphdmFWTQBnX3RyeV9uZXcoc3RydWN0X3R5cGUsbl9zdHJ1Y3RzKSBfR19ORVcgKHN0cnVjdF90eXBlLCBuX3N0cnVjdHMsIHRyeV9tYWxsb2MpAF9fTkxJTktfVF9UWVBFIF9fU1lTQ0FMTF9VTE9OR19UWVBFAEdfQ09OVkVSVEVSX0lOUFVUX1NUUkVBTV9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0NPTlZFUlRFUl9JTlBVVF9TVFJFQU0sIEdDb252ZXJ0ZXJJbnB1dFN0cmVhbUNsYXNzKSkAR19QQVJBTV9TUEVDX1BBUkFNKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9QQVJBTSwgR1BhcmFtU3BlY1BhcmFtKSkAR19UWVBFX0lTX0ZVTkRBTUVOVEFMKHR5cGUpICgodHlwZSkgPD0gR19UWVBFX0ZVTkRBTUVOVEFMX01BWCkAX19waWRfdF9kZWZpbmVkIABfRU5ESUFOX0ggMQBHX1RZUEVfUEFSQU1fQ0hBUiAoZ19wYXJhbV9zcGVjX3R5cGVzWzBdKQBfU0NfU0VMRUNUIF9TQ19TRUxFQ1QAX19HSU9fR0lPX0hfSU5TSURFX18AX19HTElCX0hfSU5TSURFX18gAEdMSUJfREVQUkVDQVRFRF9JTl8yXzM4X0ZPUihmKSBHTElCX0RFUFJFQ0FURURfRk9SKGYpAE5VTEwgKCh2b2lkICopMCkAX19CTEtDTlRfVF9UWVBFIF9fU1lTQ0FMTF9TTE9OR19UWVBFAEdfSVNfU0lNUExFX1BST1hZX1JFU09MVkVSX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfU0lNUExFX1BST1hZX1JFU09MVkVSKSkAX19BU01OQU1FKGNuYW1lKSBfX0FTTU5BTUUyIChfX1VTRVJfTEFCRUxfUFJFRklYX18sIGNuYW1lKQBfX0dfS0VZX0ZJTEVfSF9fIABHX1ZBUklBTlRfVFlQRV9WQVJJQU5UICgoY29uc3QgR1ZhcmlhbnRUeXBlICopICJ2IikAZ190ZXN0X3F1aWV0KCkgKGdfdGVzdF9jb25maWdfdmFycy0+dGVzdF9xdWlldCkAX19TSVpFT0ZfTE9OR19MT05HX18gOABfX0dfRklMRV9JTkZPX0hfXyAAR19GSUxFX0FUVFJJQlVURV9VTklYX0JMT0NLUyAidW5peDo6YmxvY2tzIgBHZXREb3VibGVBcnJheUVsZW1lbnRzAGdfbm9kZV9pbnNlcnRfZGF0YV9iZWZvcmUocGFyZW50LHNpYmxpbmcsZGF0YSkgZ19ub2RlX2luc2VydF9iZWZvcmUgKChwYXJlbnQpLCAoc2libGluZyksIGdfbm9kZV9uZXcgKGRhdGEpKQBfU0NfTUVNT1JZX1BST1RFQ1RJT04gX1NDX01FTU9SWV9QUk9URUNUSU9OAGdfYXRvbWljX2ludF9vcihhdG9taWMsdmFsKSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6ZW9mIChnaW50KSk7ICh2b2lkKSAoMCA/ICooYXRvbWljKSBeICh2YWwpIDogMCk7IChndWludCkgX19zeW5jX2ZldGNoX2FuZF9vciAoKGF0b21pYyksICh2YWwpKTsgfSkpAF9fR19IT09LX0hfXyAAR19JU19NRU5VX0xJTktfSVRFUl9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoY2xhc3MpLCBHX1RZUEVfTUVOVV9MSU5LX0lURVIpKQBKTklMb2NhbFJlZlR5cGUAX3VudXNlZDIAX19zdHViX3N0dHkgAEdfTkVUV09SS19TRVJWSUNFX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9ORVRXT1JLX1NFUlZJQ0UsIEdOZXR3b3JrU2VydmljZUNsYXNzKSkAX1NDX1Y3X0xQQklHX09GRkJJRyBfU0NfVjdfTFBCSUdfT0ZGQklHAEdfVk9MVU1FKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwgR19UWVBFX1ZPTFVNRSwgR1ZvbHVtZSkpAF9TQ19YQlM1X0lMUDMyX09GRkJJRyBfU0NfWEJTNV9JTFAzMl9PRkZCSUcAX0FURklMRV9TT1VSQ0UAX19zb2NrbGVuX3RfZGVmaW5lZCAAX19HX0ZJTEVfT1VUUFVUX1NUUkVBTV9IX18gAF9DU19YQlM1X0xQQklHX09GRkJJR19MREZMQUdTIF9DU19YQlM1X0xQQklHX09GRkJJR19MREZMQUdTAEdfUEFSQU1fU1BFQ19ET1VCTEUocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX0RPVUJMRSwgR1BhcmFtU3BlY0RvdWJsZSkpAF9fdW5ib3VuZGVkIABfUE9TSVhfQUlPX0xJU1RJT19NQVggMgBfX1dPUkRTSVpFX1RJTUU2NF9DT01QQVQzMiAxAF9QT1NJWF9TUEFXTiAyMDA4MDlMAEdfR1VJTlQzMl9GT1JNQVQgInUiAF9fVVNFUl9MQUJFTF9QUkVGSVhfXyAAX19HSU9fRU5VTVNfSF9fIABHX1BST1hZX1JFU09MVkVSX0VYVEVOU0lPTl9QT0lOVF9OQU1FICJnaW8tcHJveHktcmVzb2x2ZXIiAEdfREFURV9CQURfWUVBUiAwVQBzaV91aWQgX3NpZmllbGRzLl9raWxsLnNpX3VpZABfX3VuZGVmX09QRU5fTUFYAGpmbG9hdEFycmF5AF9fU0lHUlRNSU4gMzIAX19HX0RUTFNfQ09OTkVDVElPTl9IX18gAEZMVF9FUFNJTE9OIF9fRkxUX0VQU0lMT05fXwBfX1VTRV9JU09DOTUgMQBHTElCX1NZU0RFRl9BRl9JTkVUIDIAL2hvbWUvZXJpY3dpbGwvZ2l0L2VjbGlwc2UucGxhdGZvcm0udGVhbS9idW5kbGVzL29yZy5lY2xpcHNlLmNvcmUubmV0L25hdGl2ZXMvdW5peC9saW51eABfSU9fVVNFUl9CVUYgMQBfU0NfTUJfTEVOX01BWCBfU0NfTUJfTEVOX01BWABzaV9zdGltZSBfc2lmaWVsZHMuX3NpZ2NobGQuc2lfc3RpbWUAR19JTkxJTkVfRlVOQyBzdGF0aWMgaW5saW5lAGdfY2xlYXJfcG9pbnRlcihwcCxkZXN0cm95KSBHX1NUTVRfU1RBUlQgeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKHBwKSA9PSBzaXplb2YgKGdwb2ludGVyKSk7IGdwb2ludGVyICpfcHAgPSAoZ3BvaW50ZXIgKikgKHBwKTsgZ3BvaW50ZXIgX3A7IEdEZXN0cm95Tm90aWZ5IF9kZXN0cm95ID0gKEdEZXN0cm95Tm90aWZ5KSAoZGVzdHJveSk7IF9wID0gKl9wcDsgaWYgKF9wKSB7ICpfcHAgPSBOVUxMOyBfZGVzdHJveSAoX3ApOyB9IH0gR19TVE1UX0VORABHX1RZUEVfQlVTX1RZUEUgKGdfYnVzX3R5cGVfZ2V0X3R5cGUgKCkpAGdfc2l6ZV9jaGVja2VkX211bChkZXN0LGEsYikgX0dMSUJfQ0hFQ0tFRF9NVUxfVTY0KGRlc3QsIGEsIGIpAEdfVFlQRV9TSU1QTEVfUFJPWFlfUkVTT0xWRVIgKGdfc2ltcGxlX3Byb3h5X3Jlc29sdmVyX2dldF90eXBlICgpKQBHX1RIUkVBRF9FUlJPUiBnX3RocmVhZF9lcnJvcl9xdWFyayAoKQBHX1RZUEVfQ0hBUiBHX1RZUEVfTUFLRV9GVU5EQU1FTlRBTCAoMykAX19uZWVkX05VTEwAX0dDQ19ORVhUX0xJTUlUU19IIABHTElCX0RFUFJFQ0FURURfSU5fMl8zNCBHTElCX0RFUFJFQ0FURUQAQ2FsbEludE1ldGhvZEEAR19NT0RVTEVfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpAF9QT1NJWF9USFJFQURfREVTVFJVQ1RPUl9JVEVSQVRJT05TIDQAX19saW51eF9fIDEAX1BPU0lYX1NIRUxMIDEAR19CVUZGRVJFRF9JTlBVVF9TVFJFQU1fR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9CVUZGRVJFRF9JTlBVVF9TVFJFQU0sIEdCdWZmZXJlZElucHV0U3RyZWFtQ2xhc3MpKQBfSU9fc3RkaW4gKChfSU9fRklMRSopKCZfSU9fMl8xX3N0ZGluXykpAEdfVFlQRV9EQlVTX1BST1hZX0ZMQUdTIChnX2RidXNfcHJveHlfZmxhZ3NfZ2V0X3R5cGUgKCkpAEdfU09DS0VUX0FERFJFU1MobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9TT0NLRVRfQUREUkVTUywgR1NvY2tldEFkZHJlc3MpKQBHX1RZUEVfTkVUV09SS19NT05JVE9SIChnX25ldHdvcmtfbW9uaXRvcl9nZXRfdHlwZSAoKSkAX0lPTEJGIDEAR19UWVBFX1RJTUVfWk9ORSAoZ190aW1lX3pvbmVfZ2V0X3R5cGUgKCkpAF9FWFRFUk5fSU5MSU5FIF9fZXh0ZXJuX2lubGluZQBDYWxsSW50TWV0aG9kVgBfQU5TSV9TVERBUkdfSF8gAGV4aXQAX1BPU0lYX1BBVEhfTUFYIDI1NgBHZXRTdGF0aWNJbnRGaWVsZABHX1RZUEVfTUVNT1JZX0lOUFVUX1NUUkVBTSAoZ19tZW1vcnlfaW5wdXRfc3RyZWFtX2dldF90eXBlICgpKQBHX0RCVVNfSU5URVJGQUNFX1NLRUxFVE9OX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfREJVU19JTlRFUkZBQ0VfU0tFTEVUT04sIEdEQnVzSW50ZXJmYWNlU2tlbGV0b25DbGFzcykpAEdMT05HX1RPX0JFKHZhbCkgKChnbG9uZykgR0lOVDY0X1RPX0JFICh2YWwpKQBfUE9TSVgyX0JDX1NUUklOR19NQVggMTAwMABfX2RlZmluZWRfc2NoZWRwYXJhbSAxAEdfVFlQRV9GSUxFX0FUVFJJQlVURV9NQVRDSEVSIChnX2ZpbGVfYXR0cmlidXRlX21hdGNoZXJfZ2V0X3R5cGUgKCkpAF9HX0hBVkVfTU1BUCAxAEdfVFlQRV9QT0xMQUJMRV9PVVRQVVRfU1RSRUFNIChnX3BvbGxhYmxlX291dHB1dF9zdHJlYW1fZ2V0X3R5cGUgKCkpAF9tb2RlAFBEUF9FTkRJQU4gX19QRFBfRU5ESUFOAFNJR1NZUyAzMQBHX1RZUEVfSVNfRU5VTSh0eXBlKSAoR19UWVBFX0ZVTkRBTUVOVEFMICh0eXBlKSA9PSBHX1RZUEVfRU5VTSkAX1BPU0lYX0ZTWU5DIDIwMDgwOUwAX19VU0VfU1ZJRABHX0dOVUNfTUFMTE9DIF9fYXR0cmlidXRlX18oKF9fbWFsbG9jX18pKQBfR19ERUZJTkVfSU5URVJGQUNFX0VYVEVOREVEX0JFR0lOKFR5cGVOYW1lLHR5cGVfbmFtZSxUWVBFX1BSRVJFUSkgc3RhdGljIHZvaWQgdHlwZV9uYW1lICMjX2RlZmF1bHRfaW5pdCAoVHlwZU5hbWUgIyNJbnRlcmZhY2UgKmtsYXNzKTsgR1R5cGUgdHlwZV9uYW1lICMjX2dldF90eXBlICh2b2lkKSB7IHN0YXRpYyB2b2xhdGlsZSBnc2l6ZSBnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSA9IDA7IGlmIChnX29uY2VfaW5pdF9lbnRlciAoJmdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlKSkgeyBHVHlwZSBnX2RlZmluZV90eXBlX2lkID0gZ190eXBlX3JlZ2lzdGVyX3N0YXRpY19zaW1wbGUgKEdfVFlQRV9JTlRFUkZBQ0UsIGdfaW50ZXJuX3N0YXRpY19zdHJpbmcgKCNUeXBlTmFtZSksIHNpemVvZiAoVHlwZU5hbWUgIyNJbnRlcmZhY2UpLCAoR0NsYXNzSW5pdEZ1bmMpdHlwZV9uYW1lICMjX2RlZmF1bHRfaW5pdCwgMCwgKEdJbnN0YW5jZUluaXRGdW5jKU5VTEwsIChHVHlwZUZsYWdzKSAwKTsgaWYgKFRZUEVfUFJFUkVRKSBnX3R5cGVfaW50ZXJmYWNlX2FkZF9wcmVyZXF1aXNpdGUgKGdfZGVmaW5lX3R5cGVfaWQsIFRZUEVfUFJFUkVRKTsgewBHX0lTX01FTU9SWV9PVVRQVVRfU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfTUVNT1JZX09VVFBVVF9TVFJFQU0pKQBfR19CVUZTSVogODE5MgBnX21haW5fcnVuKGxvb3ApIGdfbWFpbl9sb29wX3J1bihsb29wKQBHX1BBUkFNX1NQRUNfVkFMVUVfQVJSQVkocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX1ZBTFVFX0FSUkFZLCBHUGFyYW1TcGVjVmFsdWVBcnJheSkpAF9TQ19TSUdOQUxTIF9TQ19TSUdOQUxTAF9fSU5UNjRfQyhjKSBjICMjIEwAR19WQVJJQU5UX1RZUEVfQk9PTEVBTiAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAiYiIpAEdfRklMRV9JQ09OX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9GSUxFX0lDT04sIEdGaWxlSWNvbkNsYXNzKSkAUFRIUkVBRF9DT05EX0lOSVRJQUxJWkVSIHsgeyAwLCAwLCAwLCAwLCAwLCAodm9pZCAqKSAwLCAwLCAwIH0gfQBfX0dfVkFSSUFOVF9UWVBFX0hfXyAAX19TSVpFT0ZfUFRIUkVBRF9CQVJSSUVSQVRUUl9UIDQAR19GSUxFX0FUVFJJQlVURV9VTklYX0dJRCAidW5peDo6Z2lkIgBfUE9TSVhfVFlQRURfTUVNT1JZX09CSkVDVFMgLTEAX1NDX1NIQVJFRF9NRU1PUllfT0JKRUNUUyBfU0NfU0hBUkVEX01FTU9SWV9PQkpFQ1RTAF9fVUlOVDY0X1RZUEVfXyBsb25nIHVuc2lnbmVkIGludABCVVNfQURSQUxOIEJVU19BRFJBTE4AR19UTFNfREFUQUJBU0VfQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGNsYXNzKSwgR19UWVBFX1RMU19EQVRBQkFTRSwgR1Rsc0RhdGFiYXNlQ2xhc3MpKQBHX1RZUEVfQ0FOQ0VMTEFCTEUgKGdfY2FuY2VsbGFibGVfZ2V0X3R5cGUgKCkpAEdfR0lOVDMyX0ZPUk1BVCAiaSIAR19BUFBfTEFVTkNIX0NPTlRFWFQobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9BUFBfTEFVTkNIX0NPTlRFWFQsIEdBcHBMYXVuY2hDb250ZXh0KSkAX0dfUkVORVcoc3RydWN0X3R5cGUsbWVtLG5fc3RydWN0cyxmdW5jKSAoKHN0cnVjdF90eXBlICopIGdfICMjZnVuYyAjI19uIChtZW0sIChuX3N0cnVjdHMpLCBzaXplb2YgKHN0cnVjdF90eXBlKSkpAF9fR19EQlVTX09CSkVDVF9NQU5BR0VSX1NFUlZFUl9IX18gAFNJR1VOVVNFRCAzMQBHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX05PX0RJU1BMQVkgIk5vRGlzcGxheSIAR19JU19QQVJBTV9TUEVDKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0ZVTkRBTUVOVEFMX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTSkpAF9fREJMX01BWF8xMF9FWFBfXyAzMDgAR19VTkxJS0VMWShleHByKSAoZXhwcikAU0lHRVZfVEhSRUFEIFNJR0VWX1RIUkVBRABfUE9TSVhfVFJBQ0VfSU5IRVJJVCAtMQBfX25lZWRfX19GSUxFIABfX0NQVV9PUF9TKHNldHNpemUsZGVzdHNldCxzcmNzZXQxLHNyY3NldDIsb3ApIChfX2V4dGVuc2lvbl9fICh7IGNwdV9zZXRfdCAqX19kZXN0ID0gKGRlc3RzZXQpOyBjb25zdCBfX2NwdV9tYXNrICpfX2FycjEgPSAoc3Jjc2V0MSktPl9fYml0czsgY29uc3QgX19jcHVfbWFzayAqX19hcnIyID0gKHNyY3NldDIpLT5fX2JpdHM7IHNpemVfdCBfX2ltYXggPSAoc2V0c2l6ZSkgLyBzaXplb2YgKF9fY3B1X21hc2spOyBzaXplX3QgX19pOyBmb3IgKF9faSA9IDA7IF9faSA8IF9faW1heDsgKytfX2kpICgoX19jcHVfbWFzayAqKSBfX2Rlc3QtPl9fYml0cylbX19pXSA9IF9fYXJyMVtfX2ldIG9wIF9fYXJyMltfX2ldOyBfX2Rlc3Q7IH0pKQBHX1ZBTFVFX0hPTERTX0lOVCh2YWx1ZSkgKEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICgodmFsdWUpLCBHX1RZUEVfSU5UKSkAU0lHU1RPUCAxOQBfX0VORF9OQU1FU1BBQ0VfQzk5IABHX1RZUEVfTE9ORyBHX1RZUEVfTUFLRV9GVU5EQU1FTlRBTCAoOCkAR19JU19UTFNfQ09OTkVDVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX1RMU19DT05ORUNUSU9OKSkAX19zdHViX2ZhdHRhY2ggAEdfVkFMVUVfSE9MRFNfQ0hBUih2YWx1ZSkgKEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICgodmFsdWUpLCBHX1RZUEVfQ0hBUikpAEdfSVNfU09DS0VUX1NFUlZJQ0UoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9TT0NLRVRfU0VSVklDRSkpAEdldFN0YXRpY0RvdWJsZUZpZWxkAEdfVFlQRV9UWVBFX1BMVUdJTiAoZ190eXBlX3BsdWdpbl9nZXRfdHlwZSAoKSkAX1NDX0JBUlJJRVJTIF9TQ19CQVJSSUVSUwBnX2NjbG9zdXJlX21hcnNoYWxfQk9PTF9fRkxBR1MgZ19jY2xvc3VyZV9tYXJzaGFsX0JPT0xFQU5fX0ZMQUdTAF9fR19JT0NIQU5ORUxfSF9fIABHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX1NUQVJUVVBfV01fQ0xBU1MgIlN0YXJ0dXBXTUNsYXNzIgBHX1ZBUklBTlRfVFlQRV9JTlQ2NCAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAieCIpAExEQkxfTUFYIF9fTERCTF9NQVhfXwBHX1ZBTFVFX0hPTERTX0xPTkcodmFsdWUpIChHX1RZUEVfQ0hFQ0tfVkFMVUVfVFlQRSAoKHZhbHVlKSwgR19UWVBFX0xPTkcpKQBfX0lOVF9GQVNUMTZfTUFYX18gOTIyMzM3MjAzNjg1NDc3NTgwN0wAX19HX1NJTVBMRV9QRVJNSVNTSU9OX0hfXyAAR19UWVBFX0RCVVNfUFJPWFkgKGdfZGJ1c19wcm94eV9nZXRfdHlwZSAoKSkAU0VFS19TRVQgMABHX0RBVEVfQkFEX0pVTElBTiAwVQBnX3NldF9vYmplY3Qob2JqZWN0X3B0cixuZXdfb2JqZWN0KSAoIDAgPyAqKG9iamVjdF9wdHIpID0gKG5ld19vYmplY3QpLCBGQUxTRSA6IChnX3NldF9vYmplY3QpICgoR09iamVjdCAqKikgKG9iamVjdF9wdHIpLCAoR09iamVjdCAqKSAobmV3X29iamVjdCkpICkAX19leHRlcm5faW5saW5lIGV4dGVybiBfX2lubGluZQBzaV9jYWxsX2FkZHIgX3NpZmllbGRzLl9zaWdzeXMuX2NhbGxfYWRkcgBfU0NfQUlPX1BSSU9fREVMVEFfTUFYIF9TQ19BSU9fUFJJT19ERUxUQV9NQVgAR0xJQl9ERVBSRUNBVEVEX0lOXzJfNTRfRk9SKGYpIEdMSUJfREVQUkVDQVRFRF9GT1IoZikAX19HQ0NfSEFWRV9TWU5DX0NPTVBBUkVfQU5EX1NXQVBfMSAxAFNldFN0YXRpY0NoYXJGaWVsZABHX0xPQ0tfREVGSU5FX1NUQVRJQyhuYW1lKSBzdGF0aWMgR19MT0NLX0RFRklORSAobmFtZSkAX19ERUM2NF9NSU5fRVhQX18gKC0zODIpAEdfVFlQRV9UTFNfQ0VSVElGSUNBVEUgKGdfdGxzX2NlcnRpZmljYXRlX2dldF90eXBlICgpKQBfX1JFRElSRUNUX05USF9MREJMKG5hbWUscHJvdG8sYWxpYXMpIF9fUkVESVJFQ1RfTlRIIChuYW1lLCBwcm90bywgYWxpYXMpAFBUSFJFQURfUFJPQ0VTU19TSEFSRUQgUFRIUkVBRF9QUk9DRVNTX1NIQVJFRABTU0laRV9NQVggTE9OR19NQVgAZ19zY2FubmVyX3JlbW92ZV9zeW1ib2woc2Nhbm5lcixzeW1ib2wpIEdfU1RNVF9TVEFSVCB7IGdfc2Nhbm5lcl9zY29wZV9yZW1vdmVfc3ltYm9sICgoc2Nhbm5lciksIDAsIChzeW1ib2wpKTsgfSBHX1NUTVRfRU5EAF9fR19TVUJQUk9DRVNTX0xBVU5DSEVSX0hfXyAAX1BPU0lYMl9DX0RFViBfX1BPU0lYMl9USElTX1ZFUlNJT04AX19HX0RBVEFfSU5QVVRfU1RSRUFNX0hfXyAAR19UWVBFX0FDVElPTiAoZ19hY3Rpb25fZ2V0X3R5cGUgKCkpAFNldEJvb2xlYW5GaWVsZABOZXdJbnRBcnJheQBHX1NJTVBMRV9BQ1RJT05fR1JPVVBfR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9TSU1QTEVfQUNUSU9OX0dST1VQLCBHU2ltcGxlQWN0aW9uR3JvdXBDbGFzcykpAF9fQ1BVRUxUKGNwdSkgKChjcHUpIC8gX19OQ1BVQklUUykAR2V0T2JqZWN0QXJyYXlFbGVtZW50AF9fa2V5X3RfZGVmaW5lZCAAR19USFJFQURFRF9TT0NLRVRfU0VSVklDRShpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1RIUkVBREVEX1NPQ0tFVF9TRVJWSUNFLCBHVGhyZWFkZWRTb2NrZXRTZXJ2aWNlKSkAX19HSURfVF9UWVBFIF9fVTMyX1RZUEUAU0lHWEZTWiAyNQBHX1RZUEVfVUNIQVIgR19UWVBFX01BS0VfRlVOREFNRU5UQUwgKDQpAF9TSUdTRVRfSF9mbnMgMQBHX0ZJTEVfRU5VTUVSQVRPUl9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0ZJTEVfRU5VTUVSQVRPUiwgR0ZpbGVFbnVtZXJhdG9yQ2xhc3MpKQBfSU9fTEVGVCAwMgBJc1NhbWVPYmplY3QAR19WQVJJQU5UX1RZUEVfSU5UMzIgKChjb25zdCBHVmFyaWFudFR5cGUgKikgImkiKQBHTElCX0FWQUlMQUJMRV9JTl8yXzMwIF9HTElCX0VYVEVSTgBfSU9fY2xlYW51cF9yZWdpb25fZW5kKF9Eb2l0KSAAX19HX0NIRUNLU1VNX0hfXyAAR19WQVJJQU5UX1RZUEVfVUlOVDY0ICgoY29uc3QgR1ZhcmlhbnRUeXBlICopICJ0IikAX0JJVFNfU0lHVEhSRUFEX0ggMQBHX1RSWUxPQ0sobmFtZSkgZ19tdXRleF90cnlsb2NrICgmR19MT0NLX05BTUUgKG5hbWUpKQBHX0ZJTFRFUl9PVVRQVVRfU1RSRUFNX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfRklMVEVSX09VVFBVVF9TVFJFQU0sIEdGaWx0ZXJPdXRwdXRTdHJlYW1DbGFzcykpAEdfTUFYRkxPQVQgRkxUX01BWABHX0tFWV9GSUxFX0RFU0tUT1BfVFlQRV9MSU5LICJMaW5rIgBSRV9EVVBfTUFYICgweDdmZmYpAF9fR19TT0NLRVRfQ09OTkVDVElPTl9IX18gAF9fQ1BVX0FMTE9DX1NJWkUoY291bnQpICgoKChjb3VudCkgKyBfX05DUFVCSVRTIC0gMSkgLyBfX05DUFVCSVRTKSAqIHNpemVvZiAoX19jcHVfbWFzaykpAEdfSUNPTihvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIEdfVFlQRV9JQ09OLCBHSWNvbikpAF9fR19WRVJTSU9OX0hfXyAAZ19hc3NlcnQoZXhwcikgR19TVE1UX1NUQVJUIHsgaWYgR19MSUtFTFkgKGV4cHIpIDsgZWxzZSBnX2Fzc2VydGlvbl9tZXNzYWdlX2V4cHIgKEdfTE9HX0RPTUFJTiwgX19GSUxFX18sIF9fTElORV9fLCBHX1NUUkZVTkMsICNleHByKTsgfSBHX1NUTVRfRU5EAF9DU19WN19FTlYgX0NTX1Y3X0VOVgBfSU9fRkxBR1MyX05PVENBTkNFTCAyAF9fbmVlZF93aW50X3QAX19GTFRfSEFTX1FVSUVUX05BTl9fIDEAX19HX0FDVElPTl9HUk9VUF9IX18gAEdfVFlQRV9JTkVUX0FERFJFU1MgKGdfaW5ldF9hZGRyZXNzX2dldF90eXBlICgpKQBHX0FTWU5DX1JFU1VMVChvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIEdfVFlQRV9BU1lOQ19SRVNVTFQsIEdBc3luY1Jlc3VsdCkpAEdldEZsb2F0RmllbGQAR19GSUxFX0FUVFJJQlVURV9BQ0NFU1NfQ0FOX0RFTEVURSAiYWNjZXNzOjpjYW4tZGVsZXRlIgBHX1RZUEVfRklMRSAoZ19maWxlX2dldF90eXBlICgpKQBHX01BWFNTSVpFIEdfTUFYTE9ORwBXX09LIDIAR2V0T2JqZWN0Q2xhc3MAU0lHWENQVSAyNABnX2F0b21pY19pbnRfeG9yKGF0b21pYyx2YWwpIChHX0dOVUNfRVhURU5TSU9OICh7IEdfU1RBVElDX0FTU0VSVCAoc2l6ZW9mICooYXRvbWljKSA9PSBzaXplb2YgKGdpbnQpKTsgKHZvaWQpICgwID8gKihhdG9taWMpIF4gKHZhbCkgOiAwKTsgKGd1aW50KSBfX3N5bmNfZmV0Y2hfYW5kX3hvciAoKGF0b21pYyksICh2YWwpKTsgfSkpAF9fRlNXT1JEX1RfVFlQRSBfX1NZU0NBTExfU0xPTkdfVFlQRQBHX0RFUFJFQ0FURURfRk9SKGYpIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJVc2UgJyIgI2YgIicgaW5zdGVhZCIpKSkAR19USU1FX1NQQU5fTUlOVVRFIChHX0dJTlQ2NF9DT05TVEFOVCAoNjAwMDAwMDApKQBHX0lTX0RCVVNfSU5URVJGQUNFX1NLRUxFVE9OX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfREJVU19JTlRFUkZBQ0VfU0tFTEVUT04pKQBHTElCX1NZU0RFRl9QT0xMTlZBTCA9MzIAX19HX0NPTlZFUlRfSF9fIABfX0xEQkxfRElHX18gMTgAX1hPUEVOX1JFQUxUSU1FIDEAR19EQlVTX09CSkVDVF9TS0VMRVRPTihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX0RCVVNfT0JKRUNUX1NLRUxFVE9OLCBHREJ1c09iamVjdFNrZWxldG9uKSkAX19HX0RCVVNfUFJPWFlfSF9fIABqdGhyb3dhYmxlAF9TQ19OTF9TRVRNQVggX1NDX05MX1NFVE1BWABTQ0hFRF9SUiAyAF9fdXNlY29uZHNfdF9kZWZpbmVkIABfX0dfRklMVEVSX09VVFBVVF9TVFJFQU1fSF9fIABHZXREb3VibGVGaWVsZABfU0NfTkVUV09SS0lORyBfU0NfTkVUV09SS0lORwBnX3VpbnQ2NF9jaGVja2VkX211bChkZXN0LGEsYikgX0dMSUJfQ0hFQ0tFRF9NVUxfVTY0KGRlc3QsIGEsIGIpAEdfVEFTS19DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfVEFTSywgR1Rhc2tDbGFzcykpAF9fR19EQVRBX09VVFBVVF9TVFJFQU1fSF9fIABfX0lOT19UX1RZUEUgX19TWVNDQUxMX1VMT05HX1RZUEUAX0lPX2dldGNfdW5sb2NrZWQoX2ZwKSAoX0lPX0JFICgoX2ZwKS0+X0lPX3JlYWRfcHRyID49IChfZnApLT5fSU9fcmVhZF9lbmQsIDApID8gX191ZmxvdyAoX2ZwKSA6ICoodW5zaWduZWQgY2hhciAqKSAoX2ZwKS0+X0lPX3JlYWRfcHRyKyspAGdfc2xpc3RfbmV4dChzbGlzdCkgKChzbGlzdCkgPyAoKChHU0xpc3QgKikoc2xpc3QpKS0+bmV4dCkgOiBOVUxMKQBHX0ZJTEVfQVRUUklCVVRFX1RJTUVfQ1JFQVRFRCAidGltZTo6Y3JlYXRlZCIAR19EQVRBR1JBTV9CQVNFRChpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX0RBVEFHUkFNX0JBU0VELCBHRGF0YWdyYW1CYXNlZCkpAEdfSU5MSU5FX0RFRklORV9ORUVERUQgAEdfVFlQRV9JTlQgR19UWVBFX01BS0VfRlVOREFNRU5UQUwgKDYpAEdfUEFSQU1fU1BFQ19PQkpFQ1QocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX09CSkVDVCwgR1BhcmFtU3BlY09iamVjdCkpAGdfc3RhdGljX211dGV4X2xvY2sobXV0ZXgpIGdfbXV0ZXhfbG9jayAoZ19zdGF0aWNfbXV0ZXhfZ2V0X211dGV4IChtdXRleCkpAF9faXNsZWFwKHllYXIpICgoeWVhcikgJSA0ID09IDAgJiYgKCh5ZWFyKSAlIDEwMCAhPSAwIHx8ICh5ZWFyKSAlIDQwMCA9PSAwKSkAU0lHSU5UIDIAR19GSUxFX0FUVFJJQlVURV9GSUxFU1lTVEVNX1VTRUQgImZpbGVzeXN0ZW06OnVzZWQiAEdfSVNfVEhSRUFERURfU09DS0VUX1NFUlZJQ0VfQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGNsYXNzKSwgR19UWVBFX1RIUkVBREVEX1NPQ0tFVF9TRVJWSUNFKSkAX0lPX3NzaXplX3QgX19zc2l6ZV90AEdfREJVU19JTlRFUkZBQ0VfU0tFTEVUT05fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX0RCVVNfSU5URVJGQUNFX1NLRUxFVE9OLCBHREJ1c0ludGVyZmFjZVNrZWxldG9uQ2xhc3MpKQBHX0dVSU5UNjRfRk9STUFUICJsdSIAX19HX1BBUkFNX0hfXyAARkxUX01BWF9FWFAgX19GTFRfTUFYX0VYUF9fAEdfTUVOVV9JVEVNKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKGluc3QpLCBHX1RZUEVfTUVOVV9JVEVNLCBHTWVudUl0ZW0pKQBfX0FUT01JQ19ITEVfQUNRVUlSRSA2NTUzNgBnX2Fzc2VydF90cnVlKGV4cHIpIEdfU1RNVF9TVEFSVCB7IGlmIEdfTElLRUxZIChleHByKSA7IGVsc2UgZ19hc3NlcnRpb25fbWVzc2FnZSAoR19MT0dfRE9NQUlOLCBfX0ZJTEVfXywgX19MSU5FX18sIEdfU1RSRlVOQywgIiciICNleHByICInIHNob3VsZCBiZSBUUlVFIik7IH0gR19TVE1UX0VORABfX0lOVDhfTUFYX18gMTI3AGdfdGVzdF9xdWV1ZV91bnJlZihnb2JqZWN0KSBnX3Rlc3RfcXVldWVfZGVzdHJveSAoZ19vYmplY3RfdW5yZWYsIGdvYmplY3QpAF9fbmxpbmtfdF9kZWZpbmVkIABHTElCX0FWQUlMQUJMRV9JTl8yXzI2IF9HTElCX0VYVEVSTgBHSU5UMzJfVE9fTEUodmFsKSAoKGdpbnQzMikgKHZhbCkpAFBUSFJFQURfQkFSUklFUl9TRVJJQUxfVEhSRUFEIC0xAEdfVk9MVU1FX01PTklUT1JfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX1ZPTFVNRV9NT05JVE9SLCBHVm9sdW1lTW9uaXRvckNsYXNzKSkAX19JTlQzMl9NQVhfXyAyMTQ3NDgzNjQ3AF9TQ19NRU1MT0NLIF9TQ19NRU1MT0NLAF9fR0xJQkNfXyAyAEdVSU5UMTZfU1dBUF9MRV9CRSh2YWwpIChHVUlOVDE2X1NXQVBfTEVfQkVfQ09OU1RBTlQgKHZhbCkpAEdfVFlQRV9EQlVTX1NJR05BTF9JTkZPIChnX2RidXNfc2lnbmFsX2luZm9fZ2V0X3R5cGUgKCkpAEdfVFlQRV9EQlVTX09CSkVDVF9QUk9YWSAoZ19kYnVzX29iamVjdF9wcm94eV9nZXRfdHlwZSAoKSkAX19HX0RCVVNfT0JKRUNUX1NLRUxFVE9OX0hfXyAAcG9ydABfX3B0cnZhbHVlIABHTElCX0RFUFJFQ0FURURfSU5fMl8zOCBHTElCX0RFUFJFQ0FURUQAR19JU19TSU1QTEVfSU9fU1RSRUFNKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgR19UWVBFX1NJTVBMRV9JT19TVFJFQU0pKQBHX1RZUEVfREJVU19NRVRIT0RfSU5WT0NBVElPTiAoZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX2dldF90eXBlICgpKQBHX1RZUEVfQ09OVkVSVEVSX1JFU1VMVCAoZ19jb252ZXJ0ZXJfcmVzdWx0X2dldF90eXBlICgpKQBfX1NJWkVPRl9QVEhSRUFEX0NPTkRfVCA0OABHX0lTX1NJTVBMRV9BQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9TSU1QTEVfQUNUSU9OKSkAR19QQVJBTV9TUEVDX0JPWEVEKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9CT1hFRCwgR1BhcmFtU3BlY0JveGVkKSkARmF0YWxFcnJvcgBKTklJbnZva2VJbnRlcmZhY2VfAF9fSU5UTUFYX0MoYykgYyAjIyBMAF9QT1NJWDJfTElORV9NQVggMjA0OABQVEhSRUFEX0NSRUFURV9KT0lOQUJMRSBQVEhSRUFEX0NSRUFURV9KT0lOQUJMRQBHX1RZUEVfREJVU19PQkpFQ1RfTUFOQUdFUl9DTElFTlQgKGdfZGJ1c19vYmplY3RfbWFuYWdlcl9jbGllbnRfZ2V0X3R5cGUgKCkpAEdfVFlQRV9DT05WRVJURVJfSU5QVVRfU1RSRUFNIChnX2NvbnZlcnRlcl9pbnB1dF9zdHJlYW1fZ2V0X3R5cGUgKCkpAF92dGFibGVfb2Zmc2V0AEdfVExTX0NPTk5FQ1RJT05fQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGNsYXNzKSwgR19UWVBFX1RMU19DT05ORUNUSU9OLCBHVGxzQ29ubmVjdGlvbkNsYXNzKSkAX1NDX1JFR0VYUCBfU0NfUkVHRVhQAEdfQ1NFVF9BXzJfWiAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiAEdldEJvb2xlYW5GaWVsZABHX1RZUEVfT1VUUFVUX1NUUkVBTSAoZ19vdXRwdXRfc3RyZWFtX2dldF90eXBlICgpKQBHX01FTlUoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9NRU5VLCBHTWVudSkpAEdfQ09OU1RfUkVUVVJOIGNvbnN0AF9fV0NIQVJfVFlQRV9fIGludABfX0dfQlVGRkVSRURfSU5QVVRfU1RSRUFNX0hfXyAAaHRvYmUxNih4KSBfX2Jzd2FwXzE2ICh4KQBHX1RZUEVfUEFSQU1fRE9VQkxFIChnX3BhcmFtX3NwZWNfdHlwZXNbMTNdKQBGTFRfTUlOX0VYUCBfX0ZMVF9NSU5fRVhQX18AR19DQU5DRUxMQUJMRV9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0NBTkNFTExBQkxFLCBHQ2FuY2VsbGFibGVDbGFzcykpAEdfSVNfQ09OVkVSVEVSX09VVFBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9DT05WRVJURVJfT1VUUFVUX1NUUkVBTSkpAEdfVFlQRV9CSU5ESU5HIChnX2JpbmRpbmdfZ2V0X3R5cGUgKCkpAEdfVFlQRV9QQVJBTV9QT0lOVEVSIChnX3BhcmFtX3NwZWNfdHlwZXNbMTddKQBHX0lTX1RMU19DTElFTlRfQ09OTkVDVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX1RMU19DTElFTlRfQ09OTkVDVElPTikpAF9fYmxrc2l6ZV90X2RlZmluZWQgAGdfYXNjaWlfaXNwcmludChjKSAoKGdfYXNjaWlfdGFibGVbKGd1Y2hhcikgKGMpXSAmIEdfQVNDSUlfUFJJTlQpICE9IDApAEdfVFlQRV9GTE9BVCBHX1RZUEVfTUFLRV9GVU5EQU1FTlRBTCAoMTQpAF9fR19UWVBFX0hfXyAAR0xJQl9ERVBSRUNBVEVEX0ZPUihmKSBHX0RFUFJFQ0FURURfRk9SKGYpIF9HTElCX0VYVEVSTgBTZXRTdGF0aWNMb25nRmllbGQAX19TU0VfTUFUSF9fIDEAR19NRU5VX01PREVMX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChjbGFzcyksIEdfVFlQRV9NRU5VX01PREVMLCBHTWVudU1vZGVsQ2xhc3MpKQBfU0NfUlRTSUdfTUFYIF9TQ19SVFNJR19NQVgAR19ORVRXT1JLX01PTklUT1IobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9ORVRXT1JLX01PTklUT1IsIEdOZXR3b3JrTW9uaXRvcikpAEdfU09DS0VUX0xJU1RFTkVSX0dFVF9DTEFTUyhpbnN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKGluc3QpLCBHX1RZUEVfU09DS0VUX0xJU1RFTkVSLCBHU29ja2V0TGlzdGVuZXJDbGFzcykpAF9QT1NJWF9NRU1PUllfUFJPVEVDVElPTiAyMDA4MDlMAF9TQ19OWkVSTyBfU0NfTlpFUk8AZ19kYXRhc2V0X3JlbW92ZV9kYXRhKGwsaykgZ19kYXRhc2V0X2lkX3NldF9kYXRhICgobCksIGdfcXVhcmtfdHJ5X3N0cmluZyAoayksIE5VTEwpAGxpc3RQcm9jAFVOVVNFRCh4KSBVTlVTRURfICMjIHggX19hdHRyaWJ1dGVfXygoX191bnVzZWRfXykpAF9fU0laRU9GX1BUSFJFQURfQ09OREFUVFJfVCA0AF9fU1lTQ0FMTF9VTE9OR19UWVBFIF9fVUxPTkdXT1JEX1RZUEUAR19JU19UQVNLX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfVEFTSykpAF9MRlM2NF9BU1lOQ0hST05PVVNfSU8gMQBfX3B0cl90IHZvaWQgKgBnX3Rlc3RfdHJhcF9hc3NlcnRfc3Rkb3V0X3VubWF0Y2hlZChzb3V0cGF0dGVybikgZ190ZXN0X3RyYXBfYXNzZXJ0aW9ucyAoR19MT0dfRE9NQUlOLCBfX0ZJTEVfXywgX19MSU5FX18sIEdfU1RSRlVOQywgMywgc291dHBhdHRlcm4pAF9fQkVHSU5fREVDTFMgAExfU0VUIFNFRUtfU0VUAEdMT05HX1RPX0xFKHZhbCkgKChnbG9uZykgR0lOVDY0X1RPX0xFICh2YWwpKQBQT0xMX0VSUiBQT0xMX0VSUgBHX0ZJTEVfQVRUUklCVVRFX01PVU5UQUJMRV9JU19NRURJQV9DSEVDS19BVVRPTUFUSUMgIm1vdW50YWJsZTo6aXMtbWVkaWEtY2hlY2stYXV0b21hdGljIgBqbG9uZwBfQ1NfWEJTNV9JTFAzMl9PRkZCSUdfTElOVEZMQUdTIF9DU19YQlM1X0lMUDMyX09GRkJJR19MSU5URkxBR1MAR19NSU5TU0laRSBHX01JTkxPTkcAX0NTX1hCUzVfTFA2NF9PRkY2NF9MREZMQUdTIF9DU19YQlM1X0xQNjRfT0ZGNjRfTERGTEFHUwBfX0dfU1JWX1RBUkdFVF9IX18gAF9TQ19UUkFDRV9TWVNfTUFYIF9TQ19UUkFDRV9TWVNfTUFYAEZMVF9NQVhfMTBfRVhQIF9fRkxUX01BWF8xMF9FWFBfXwBHX1RMU19QQVNTV09SRF9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX1RMU19QQVNTV09SRCwgR1Rsc1Bhc3N3b3JkQ2xhc3MpKQBnX3Rlc3RfdW5kZWZpbmVkKCkgKGdfdGVzdF9jb25maWdfdmFycy0+dGVzdF91bmRlZmluZWQpAEdfR05VQ19QUklOVEYoZm9ybWF0X2lkeCxhcmdfaWR4KSBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCBmb3JtYXRfaWR4LCBhcmdfaWR4KSkpAF9QT1NJWF9USU1FUlMgMjAwODA5TABHX1ZBTFVFX0hPTERTX0lOVDY0KHZhbHVlKSAoR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKCh2YWx1ZSksIEdfVFlQRV9JTlQ2NCkpAEdfRklMRV9BVFRSSUJVVEVfTU9VTlRBQkxFX1VOSVhfREVWSUNFX0ZJTEUgIm1vdW50YWJsZTo6dW5peC1kZXZpY2UtZmlsZSIAR19UWVBFX1NFRUtBQkxFIChnX3NlZWthYmxlX2dldF90eXBlICgpKQBfX0dfUVVBUktfSF9fIABfX1VTRV9QT1NJWDIgMQBfX0RCTF9IQVNfSU5GSU5JVFlfXyAxAFNWX09OU1RBQ0sgKDEgPDwgMCkAR19JU19BQ1RJT05fR1JPVVAoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9BQ1RJT05fR1JPVVApKQBfX0RFQzY0X1NVQk5PUk1BTF9NSU5fXyAwLjAwMDAwMDAwMDAwMDAwMUUtMzgzREQAR1NTSVpFX0ZST01fQkUodmFsKSAoR1NTSVpFX1RPX0JFICh2YWwpKQBHX1BBUkFNX1NQRUNfT1ZFUlJJREUocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX09WRVJSSURFLCBHUGFyYW1TcGVjT3ZlcnJpZGUpKQBHX0FDVElPTl9HUk9VUF9HRVRfSUZBQ0UoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgoaW5zdCksIEdfVFlQRV9BQ1RJT05fR1JPVVAsIEdBY3Rpb25Hcm91cEludGVyZmFjZSkpAGdfdGVzdF9hZGQodGVzdHBhdGgsRml4dHVyZSx0ZGF0YSxmc2V0dXAsZnRlc3QsZnRlYXJkb3duKSBHX1NUTVRfU1RBUlQgeyB2b2lkICgqYWRkX3Z0YWJsZSkgKGNvbnN0IGNoYXIqLCBnc2l6ZSwgZ2NvbnN0cG9pbnRlciwgdm9pZCAoKikgKEZpeHR1cmUqLCBnY29uc3Rwb2ludGVyKSwgdm9pZCAoKikgKEZpeHR1cmUqLCBnY29uc3Rwb2ludGVyKSwgdm9pZCAoKikgKEZpeHR1cmUqLCBnY29uc3Rwb2ludGVyKSkgPSAodm9pZCAoKikgKGNvbnN0IGdjaGFyICosIGdzaXplLCBnY29uc3Rwb2ludGVyLCB2b2lkICgqKSAoRml4dHVyZSosIGdjb25zdHBvaW50ZXIpLCB2b2lkICgqKSAoRml4dHVyZSosIGdjb25zdHBvaW50ZXIpLCB2b2lkICgqKSAoRml4dHVyZSosIGdjb25zdHBvaW50ZXIpKSkgZ190ZXN0X2FkZF92dGFibGU7IGFkZF92dGFibGUgKHRlc3RwYXRoLCBzaXplb2YgKEZpeHR1cmUpLCB0ZGF0YSwgZnNldHVwLCBmdGVzdCwgZnRlYXJkb3duKTsgfSBHX1NUTVRfRU5EAF9QQ19WRElTQUJMRSBfUENfVkRJU0FCTEUAR19GSUxFX0FUVFJJQlVURV9USFVNQk5BSUxJTkdfRkFJTEVEICJ0aHVtYm5haWw6OmZhaWxlZCIAR19GSUxFX01PTklUT1JfR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9GSUxFX01PTklUT1IsIEdGaWxlTW9uaXRvckNsYXNzKSkAR19UWVBFX0lTX1ZBTFVFKHR5cGUpIChnX3R5cGVfY2hlY2tfaXNfdmFsdWVfdHlwZSAodHlwZSkpAEdfRU1CTEVNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9FTUJMRU0sIEdFbWJsZW1DbGFzcykpAF9HQ0NfV0NIQVJfVCAAX1NDX0NQVVRJTUUgX1NDX0NQVVRJTUUAR19JU19USEVNRURfSUNPTl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX1RIRU1FRF9JQ09OKSkAX1NDX05MX1RFWFRNQVggX1NDX05MX1RFWFRNQVgAX19HX0ZJTEVfQVRUUklCVVRFX0hfXyAAR19UWVBFX0RCVVNfRVJST1IgKGdfZGJ1c19lcnJvcl9nZXRfdHlwZSAoKSkAX1NDX0xFVkVMNF9DQUNIRV9TSVpFIF9TQ19MRVZFTDRfQ0FDSEVfU0laRQBEQkxfRVBTSUxPTiBfX0RCTF9FUFNJTE9OX18AR19MT0FEQUJMRV9JQ09OKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwgR19UWVBFX0xPQURBQkxFX0lDT04sIEdMb2FkYWJsZUljb24pKQBFeGNlcHRpb25DbGVhcgBHTElCX1NZU0RFRl9BRl9JTkVUNiAxMABfSU9fUklHSFQgMDQAR19BVE9NSUNfTE9DS19GUkVFIABfX3N0dWJfZmRldGFjaCAAR19UWVBFX0RSSVZFX1NUQVJUX0ZMQUdTIChnX2RyaXZlX3N0YXJ0X2ZsYWdzX2dldF90eXBlICgpKQBfX0lOVF9MRUFTVDE2X01BWF9fIDMyNzY3AF9TQ19QSVBFIF9TQ19QSVBFAENIQVJfTUFYIFNDSEFSX01BWABYQVRUUl9MSVNUX01BWCA2NTUzNgBfX1VJTlRfRkFTVDMyX01BWF9fIDE4NDQ2NzQ0MDczNzA5NTUxNjE1VUwAR19GSUxURVJfSU5QVVRfU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9GSUxURVJfSU5QVVRfU1RSRUFNLCBHRmlsdGVySW5wdXRTdHJlYW1DbGFzcykpAF9TQ19USFJFQURfU1BPUkFESUNfU0VSVkVSIF9TQ19USFJFQURfU1BPUkFESUNfU0VSVkVSAF9TQ19OTF9NU0dNQVggX1NDX05MX01TR01BWABTRU1fVkFMVUVfTUFYICgyMTQ3NDgzNjQ3KQBfWE9QRU5fRU5IX0kxOE4gMQBfSU9fSEFWRV9TVF9CTEtTSVpFIF9HX0hBVkVfU1RfQkxLU0laRQBHX1RZUEVfRlVOREFNRU5UQUxfTUFYICgyNTUgPDwgR19UWVBFX0ZVTkRBTUVOVEFMX1NISUZUKQBfRElSRU5UX0hBVkVfRF9SRUNMRU4gAF9fR19FTlVNU19IX18gAEdfQVBQX0xBVU5DSF9DT05URVhUX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9BUFBfTEFVTkNIX0NPTlRFWFQsIEdBcHBMYXVuY2hDb250ZXh0Q2xhc3MpKQBnX3V0ZjhfbmV4dF9jaGFyKHApIChjaGFyICopKChwKSArIGdfdXRmOF9za2lwWyooY29uc3QgZ3VjaGFyICopKHApXSkAZ193YXJuaW5nKC4uLikgZ19sb2cgKEdfTE9HX0RPTUFJTiwgR19MT0dfTEVWRUxfV0FSTklORywgX19WQV9BUkdTX18pAF9JT0ZCRiAwAEdfVVJJX1JFU0VSVkVEX0NIQVJTX0FMTE9XRURfSU5fUEFUSF9FTEVNRU5UIEdfVVJJX1JFU0VSVkVEX0NIQVJTX1NVQkNPTVBPTkVOVF9ERUxJTUlURVJTICI6QCIAUE9MTF9QUkkgUE9MTF9QUkkAc2lfYXJjaCBfc2lmaWVsZHMuX3NpZ3N5cy5fYXJjaABHX0lTX0FTWU5DX0lOSVRBQkxFKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgR19UWVBFX0FTWU5DX0lOSVRBQkxFKSkAR19JU19QQVJBTV9TUEVDX0ZMT0FUKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9GTE9BVCkpAF9QT1NJWF9OQU1FX01BWCAxNABDYWxsU3RhdGljRG91YmxlTWV0aG9kQQBJc0luc3RhbmNlT2YAX1NJWkVfVF9ERUZJTkVEIABUb1JlZmxlY3RlZEZpZWxkAGdfaHRvbmwodmFsKSAoR1VJTlQzMl9UT19CRSAodmFsKSkAX1NDX1hPUEVOX1VOSVggX1NDX1hPUEVOX1VOSVgAR19IT09LX0lTX1VOTElOS0VEKGhvb2spIChHX0hPT0sgKGhvb2spLT5uZXh0ID09IE5VTEwgJiYgR19IT09LIChob29rKS0+cHJldiA9PSBOVUxMICYmIEdfSE9PSyAoaG9vayktPmhvb2tfaWQgPT0gMCAmJiBHX0hPT0sgKGhvb2spLT5yZWZfY291bnQgPT0gMCkAX1NDX1hPUEVOX0xFR0FDWSBfU0NfWE9QRU5fTEVHQUNZAFNJX0FTWU5DTkwgU0lfQVNZTkNOTABfX0dfU09DS0VUX0FERFJFU1NfRU5VTUVSQVRPUl9IX18gAEdMSUJfREVQUkVDQVRFRF9JTl8yXzUwX0ZPUihmKSBHTElCX0RFUFJFQ0FURURfRk9SKGYpAGdfcmFuZF9ib29sZWFuKHJhbmRfKSAoKGdfcmFuZF9pbnQgKHJhbmRfKSAmICgxIDw8IDE1KSkgIT0gMCkAX19saW51eCAxAF9TQ19SRV9EVVBfTUFYIF9TQ19SRV9EVVBfTUFYAENhbGxTdGF0aWNEb3VibGVNZXRob2RWAEdfRklMRV9JQ09OX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfRklMRV9JQ09OLCBHRmlsZUljb25DbGFzcykpAEdfUEFSQU1fU1BFQ19HVFlQRShwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fR1RZUEUsIEdQYXJhbVNwZWNHVHlwZSkpAF9TQ19MRVZFTDFfRENBQ0hFX1NJWkUgX1NDX0xFVkVMMV9EQ0FDSEVfU0laRQBHX1RZUEVfVExTX0VSUk9SIChnX3Rsc19lcnJvcl9nZXRfdHlwZSAoKSkAR19UQVNLKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfVEFTSywgR1Rhc2spKQBfX0dfQ0FDSEVfSF9fIABfX1NJWkVPRl9MT05HX18gOABfUENfTUFYX0NBTk9OIF9QQ19NQVhfQ0FOT04AR19GSUxFX0FUVFJJQlVURV9NT1VOVEFCTEVfQ0FOX1NUQVJUX0RFR1JBREVEICJtb3VudGFibGU6OmNhbi1zdGFydC1kZWdyYWRlZCIAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9JU19ISURERU4gInN0YW5kYXJkOjppcy1oaWRkZW4iAF9BVEZJTEVfU09VUkNFIDEAZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKGluc3RhbmNlLGZ1bmMsZGF0YSkgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9tYXRjaGVkICgoaW5zdGFuY2UpLCAoR1NpZ25hbE1hdGNoVHlwZSkgKEdfU0lHTkFMX01BVENIX0ZVTkMgfCBHX1NJR05BTF9NQVRDSF9EQVRBKSwgMCwgMCwgTlVMTCwgKGZ1bmMpLCAoZGF0YSkpAF9HX1RZUEVfQ0lGVChpcCxmdCkgKGdfdHlwZV9jaGVja19pbnN0YW5jZV9pc19mdW5kYW1lbnRhbGx5X2EgKChHVHlwZUluc3RhbmNlKikgaXAsIGZ0KSkAR19UWVBFX01PVU5UX01PVU5UX0ZMQUdTIChnX21vdW50X21vdW50X2ZsYWdzX2dldF90eXBlICgpKQBHX1RZUEVfQ09OVkVSVEVSX0ZMQUdTIChnX2NvbnZlcnRlcl9mbGFnc19nZXRfdHlwZSAoKSkAZ19saXN0X2ZyZWUxIGdfbGlzdF9mcmVlXzEAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9TSVpFICJzdGFuZGFyZDo6c2l6ZSIAR19NRU5VX0FUVFJJQlVURV9UQVJHRVQgInRhcmdldCIAX1NDXzJfTE9DQUxFREVGIF9TQ18yX0xPQ0FMRURFRgBHX0FQUF9JTkZPX0dFVF9JRkFDRShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0lOVEVSRkFDRSAoKG9iaiksIEdfVFlQRV9BUFBfSU5GTywgR0FwcEluZm9JZmFjZSkpAF9fUFRSRElGRl9UWVBFX18gbG9uZyBpbnQAX19FTkRfREVDTFMgAEphdmFfb3JnX2VjbGlwc2VfY29yZV9pbnRlcm5hbF9uZXRfcHJveHlfdW5peF9Vbml4UHJveHlQcm92aWRlcl9nc2V0dGluZ3NJbml0AHN0ZGluIHN0ZGluAEdfRklMRV9NT05JVE9SX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9GSUxFX01PTklUT1IsIEdGaWxlTW9uaXRvckNsYXNzKSkAU0hSVF9NSU4gKC1TSFJUX01BWCAtIDEpAGRfZmlsZW5vIGRfaW5vAFNJR1BJUEUgMTMAU2V0Q2hhckZpZWxkAF9fU0laRU9GX0lOVDEyOF9fIDE2AEdfUElfNCAwLjc4NTM5ODE2MzM5NzQ0ODMwOTYxNTY2MDg0NTgxOTg3NTcyMTA0OTI5MjM0OTg0Mzc4AEdfUEFSQU1fTUFTSyAoMHgwMDAwMDBmZikAR2V0U3RhdGljRmxvYXRGaWVsZABHX0ZJTEVfQVRUUklCVVRFX0VUQUdfVkFMVUUgImV0YWc6OnZhbHVlIgBHX0lPX1NUUkVBTV9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0lPX1NUUkVBTSwgR0lPU3RyZWFtQ2xhc3MpKQBDTERfU1RPUFBFRCBDTERfU1RPUFBFRABqY2hhckFycmF5AEdfSVNfUE9MTEFCTEVfT1VUUFVUX1NUUkVBTShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIEdfVFlQRV9QT0xMQUJMRV9PVVRQVVRfU1RSRUFNKSkAR19QSV8yIDEuNTcwNzk2MzI2Nzk0ODk2NjE5MjMxMzIxNjkxNjM5NzUxNDQyMDk4NTg0Njk5Njg3NgBfTElOVVhfTElNSVRTX0ggAF9JT19vZmY2NF90IF9fb2ZmNjRfdABfX0dfUkVNT1RFX0FDVElPTl9HUk9VUF9IX18gAGdfdGVzdF9xdWljaygpIChnX3Rlc3RfY29uZmlnX3ZhcnMtPnRlc3RfcXVpY2spAF9HQ0NfTkVYVF9MSU1JVFNfSABnX2FycmF5X2FwcGVuZF92YWwoYSx2KSBnX2FycmF5X2FwcGVuZF92YWxzIChhLCAmKHYpLCAxKQBfX19fRklMRV9kZWZpbmVkIDEAX19zdHViX3NpZ3JldHVybiAAX19NTVhfXyAxAEdldFNob3J0QXJyYXlFbGVtZW50cwBfU0NfVjdfSUxQMzJfT0ZGMzIgX1NDX1Y3X0lMUDMyX09GRjMyAF9QT1NJWF9TU0laRV9NQVggMzI3NjcAZ19hc2NpaV9pc2dyYXBoKGMpICgoZ19hc2NpaV90YWJsZVsoZ3VjaGFyKSAoYyldICYgR19BU0NJSV9HUkFQSCkgIT0gMCkAX19JTlRQVFJfVFlQRV9fIGxvbmcgaW50AEdfVENQX0NPTk5FQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9UQ1BfQ09OTkVDVElPTiwgR1RjcENvbm5lY3Rpb24pKQBHTE9OR19GUk9NX0JFKHZhbCkgKEdMT05HX1RPX0JFICh2YWwpKQBfR0xJQl9BVVRPX0ZVTkNfTkFNRShUeXBlTmFtZSkgZ2xpYl9hdXRvX2NsZWFudXBfICMjVHlwZU5hbWUAR19UWVBFX1VMT05HIEdfVFlQRV9NQUtFX0ZVTkRBTUVOVEFMICg5KQBfU0NfUElJX09TSV9DT1RTIF9TQ19QSUlfT1NJX0NPVFMAR19QQVJBTV9TUEVDX1RZUEUocHNwZWMpIChHX1RZUEVfRlJPTV9JTlNUQU5DRSAocHNwZWMpKQBfQ1NfWEJTNV9MUDY0X09GRjY0X0NGTEFHUyBfQ1NfWEJTNV9MUDY0X09GRjY0X0NGTEFHUwBHX1RZUEVfUkVTT1VSQ0VfRkxBR1MgKGdfcmVzb3VyY2VfZmxhZ3NfZ2V0X3R5cGUgKCkpAEdldEFycmF5TGVuZ3RoAF9fREVDMzJfTUFOVF9ESUdfXyA3AEdfRklMRV9BVFRSSUJVVEVfVElNRV9DSEFOR0VEX1VTRUMgInRpbWU6OmNoYW5nZWQtdXNlYyIAX1NDXzJfUEJTX0xPQ0FURSBfU0NfMl9QQlNfTE9DQVRFAGdfZGF0YXNldF9pZF9zZXRfZGF0YShsLGssZCkgZ19kYXRhc2V0X2lkX3NldF9kYXRhX2Z1bGwgKChsKSwgKGspLCAoZCksIE5VTEwpAEdfVExTX0NPTk5FQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9UTFNfQ09OTkVDVElPTiwgR1Rsc0Nvbm5lY3Rpb24pKQBHX01BWERPVUJMRSBEQkxfTUFYAEdfVFlQRV9EQlVTX1NJR05BTF9GTEFHUyAoZ19kYnVzX3NpZ25hbF9mbGFnc19nZXRfdHlwZSAoKSkALi4vZ25vbWVwcm94eS5jAF9fUERQX0VORElBTiAzNDEyAEdfSVNfWkxJQl9DT01QUkVTU09SX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfWkxJQl9DT01QUkVTU09SKSkAR19UWVBFX1BBUkFNX1VJTlQ2NCAoZ19wYXJhbV9zcGVjX3R5cGVzWzhdKQBGUEVfRkxURElWIEZQRV9GTFRESVYAR19TVEFUSUNfUFJJVkFURV9JTklUIHsgMCB9AEdfVk9MVU1FX01PTklUT1IobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9WT0xVTUVfTU9OSVRPUiwgR1ZvbHVtZU1vbml0b3IpKQBHX0dOVUNfRk9STUFUKGFyZ19pZHgpIF9fYXR0cmlidXRlX18oKF9fZm9ybWF0X2FyZ19fIChhcmdfaWR4KSkpAEdfVFlQRV9ORVRXT1JLX1NFUlZJQ0UgKGdfbmV0d29ya19zZXJ2aWNlX2dldF90eXBlICgpKQBnX2F0b21pY19pbnRfaW5jKGF0b21pYykgKEdfR05VQ19FWFRFTlNJT04gKHsgR19TVEFUSUNfQVNTRVJUIChzaXplb2YgKihhdG9taWMpID09IHNpemVvZiAoZ2ludCkpOyAodm9pZCkgKDAgPyAqKGF0b21pYykgXiAqKGF0b21pYykgOiAwKTsgKHZvaWQpIF9fc3luY19mZXRjaF9hbmRfYWRkICgoYXRvbWljKSwgMSk7IH0pKQBfX0lOVF9XQ0hBUl9UX0ggAF9QT1NJWF9DTE9DS1JFU19NSU4gMjAwMDAwMDAAX19HX0RCVVNfVVRJTFNfSF9fIABfX1JMSU1fVF9UWVBFIF9fU1lTQ0FMTF9VTE9OR19UWVBFAEdVSU5UMzJfU1dBUF9CRV9QRFAodmFsKSAoKGd1aW50MzIpICggKCgoZ3VpbnQzMikgKHZhbCkgJiAoZ3VpbnQzMikgMHgwMGZmMDBmZlUpIDw8IDgpIHwgKCgoZ3VpbnQzMikgKHZhbCkgJiAoZ3VpbnQzMikgMHhmZjAwZmYwMFUpID4+IDgpKSkAR19UQ1BfV1JBUFBFUl9DT05ORUNUSU9OX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChjbGFzcyksIEdfVFlQRV9UQ1BfV1JBUFBFUl9DT05ORUNUSU9OLCBHVGNwV3JhcHBlckNvbm5lY3Rpb25DbGFzcykpAF9fR0lPX1RZUEVTX0hfXyAAX1NDX0xFVkVMMV9EQ0FDSEVfQVNTT0MgX1NDX0xFVkVMMV9EQ0FDSEVfQVNTT0MAR19BU1lOQ19JTklUQUJMRV9HRVRfSUZBQ0Uob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKChvYmopLCBHX1RZUEVfQVNZTkNfSU5JVEFCTEUsIEdBc3luY0luaXRhYmxlSWZhY2UpKQBDYWxsTm9udmlydHVhbExvbmdNZXRob2QAQ2FsbERvdWJsZU1ldGhvZEEAX19HX1ZFUlNJT05fTUFDUk9TX0hfXyAAX0lPX0JBRF9TRUVOIDB4NDAwMABfU1lTX0NERUZTX0ggMQBHX0ZJTEVfQVRUUklCVVRFX1VOSVhfTU9ERSAidW5peDo6bW9kZSIAR19WQUxVRV9JTklUIHsgMCwgeyB7IDAgfSB9IH0AX1NDX1VJT19NQVhJT1YgX1NDX1VJT19NQVhJT1YAU0FfUkVTRVRIQU5EIDB4ODAwMDAwMDAAR19QQVJBTV9TUEVDX0xPTkcocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX0xPTkcsIEdQYXJhbVNwZWNMb25nKSkAR19DUkVERU5USUFMUyhvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX0NSRURFTlRJQUxTLCBHQ3JlZGVudGlhbHMpKQBHX1RZUEVfU09DS0VUX01TR19GTEFHUyAoZ19zb2NrZXRfbXNnX2ZsYWdzX2dldF90eXBlICgpKQBHX0lTX0lPX1NUUkVBTV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX0lPX1NUUkVBTSkpAEdfSU9fU1RSRUFNKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfSU9fU1RSRUFNLCBHSU9TdHJlYW0pKQBHX1RZUEVfUEFSQU1fQk9PTEVBTiAoZ19wYXJhbV9zcGVjX3R5cGVzWzJdKQBDYWxsRG91YmxlTWV0aG9kVgBHX0RCVVNfU0VSVkVSKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfREJVU19TRVJWRVIsIEdEQnVzU2VydmVyKSkAX0lPX2JhY2t1cF9iYXNlAHJlc2VydmVkMQByZXNlcnZlZDIAcmVzZXJ2ZWQzAF9QT1NJWF9USU1FT1VUUyAyMDA4MDlMAF9fVUlOVF9MRUFTVDhfVFlQRV9fIHVuc2lnbmVkIGNoYXIATERCTF9NQVgAX19faW50X3NpemVfdF9oIABnX25vZGVfbmV4dF9zaWJsaW5nKG5vZGUpICgobm9kZSkgPyAoKEdOb2RlKikgKG5vZGUpKS0+bmV4dCA6IE5VTEwpAF9fR19TT0NLRVRfQ0xJRU5UX0hfXyAAX1NDX1BJSV9JTlRFUk5FVF9ER1JBTSBfU0NfUElJX0lOVEVSTkVUX0RHUkFNAERlbGV0ZVdlYWtHbG9iYWxSZWYAR19EQlVTX09CSkVDVF9QUk9YWV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfREJVU19PQkpFQ1RfUFJPWFksIEdEQnVzT2JqZWN0UHJveHlDbGFzcykpAF9fVUlOVFBUUl9NQVhfXyAxODQ0Njc0NDA3MzcwOTU1MTYxNVVMAEdfSVNfU0lNUExFX0FDVElPTl9HUk9VUChpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX1NJTVBMRV9BQ1RJT05fR1JPVVApKQBfX0dOVUNfR05VX0lOTElORV9fIDEAR19UWVBFX1RMU19EQVRBQkFTRV9WRVJJRllfRkxBR1MgKGdfdGxzX2RhdGFiYXNlX3ZlcmlmeV9mbGFnc19nZXRfdHlwZSAoKSkARlBfWFNUQVRFX01BR0lDMSAweDQ2NTA1ODUzVQBfX0NQVV9DT1VOVF9TKHNldHNpemUsY3B1c2V0cCkgX19zY2hlZF9jcHVjb3VudCAoc2V0c2l6ZSwgY3B1c2V0cCkAU2V0T2JqZWN0QXJyYXlFbGVtZW50AHByb3h5SW5mb0NvbnN0cnVjdG9yAF9TQ19BSU9fTElTVElPX01BWCBfU0NfQUlPX0xJU1RJT19NQVgAR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyhpbnN0YW5jZSxnX3R5cGUsY190eXBlKSAoX0dfVFlQRV9JR0MgKChpbnN0YW5jZSksIChnX3R5cGUpLCBjX3R5cGUpKQBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGMzJfTERGTEFHUyBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGMzJfTERGTEFHUwBHX1RZUEVfU0VUVElOR1NfU0NIRU1BIChnX3NldHRpbmdzX3NjaGVtYV9nZXRfdHlwZSAoKSkAX0NTX1BPU0lYX1Y1X1dJRFRIX1JFU1RSSUNURURfRU5WUyBfQ1NfVjVfV0lEVEhfUkVTVFJJQ1RFRF9FTlZTAGdfY2Nsb3N1cmVfbWFyc2hhbF9CT09MX19CT1hFRF9CT1hFRCBnX2NjbG9zdXJlX21hcnNoYWxfQk9PTEVBTl9fQk9YRURfQk9YRUQAR19TT0NLRVRfU0VSVklDRV9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoY2xhc3MpLCBHX1RZUEVfU09DS0VUX1NFUlZJQ0UsIEdTb2NrZXRTZXJ2aWNlQ2xhc3MpKQBiZTY0dG9oKHgpIF9fYnN3YXBfNjQgKHgpAEdfREFUQV9JTlBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX0RBVEFfSU5QVVRfU1RSRUFNLCBHRGF0YUlucHV0U3RyZWFtQ2xhc3MpKQBHX1RZUEVfREJVU19BUkdfSU5GTyAoZ19kYnVzX2FyZ19pbmZvX2dldF90eXBlICgpKQBfX0ZMVF9IQVNfSU5GSU5JVFlfXyAxAF9fdW5kZWZfTElOS19NQVgAX19JTlRfRkFTVDE2X1RZUEVfXyBsb25nIGludABzaWdldl9ub3RpZnlfZnVuY3Rpb24gX3NpZ2V2X3VuLl9zaWdldl90aHJlYWQuX2Z1bmN0aW9uAF9feDg2XzY0X18gMQBfUE9TSVhfUElQRV9CVUYgNTEyAF9fRlhTUl9fIDEARFRfUkVHIERUX1JFRwBfUE9TSVhfVEhSRUFEX1NBRkVfRlVOQ1RJT05TIDIwMDgwOUwAQ2FsbE5vbnZpcnR1YWxCeXRlTWV0aG9kAF9fR19EQlVTX09CSkVDVF9NQU5BR0VSX0NMSUVOVF9IX18gAGdfZGF0YXNldF9nZXRfZGF0YShsLGspIChnX2RhdGFzZXRfaWRfZ2V0X2RhdGEgKChsKSwgZ19xdWFya190cnlfc3RyaW5nIChrKSkpAEdfWkxJQl9ERUNPTVBSRVNTT1IobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9aTElCX0RFQ09NUFJFU1NPUiwgR1psaWJEZWNvbXByZXNzb3IpKQBnX2F0b21pY19wb2ludGVyX3hvcihhdG9taWMsdmFsKSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6ZW9mIChncG9pbnRlcikpOyAodm9pZCkgKDAgPyAoZ3BvaW50ZXIpICooYXRvbWljKSA6IDApOyAodm9pZCkgKDAgPyAodmFsKSBeICh2YWwpIDogMCk7IChnc2l6ZSkgX19zeW5jX2ZldGNoX2FuZF94b3IgKChhdG9taWMpLCAodmFsKSk7IH0pKQBEVF9XSFQgRFRfV0hUAEdfVFlQRV9SRU1PVEVfQUNUSU9OX0dST1VQIChnX3JlbW90ZV9hY3Rpb25fZ3JvdXBfZ2V0X3R5cGUgKCkpAEdfSVNfUFJPWFlfQUREUkVTU19DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX1BST1hZX0FERFJFU1MpKQBGX1RFU1QgMwBHTElCX0RFUFJFQ0FURURfSU5fMl80MCBHTElCX0RFUFJFQ0FURUQAR19BU0NJSV9EVE9TVFJfQlVGX1NJWkUgKDI5ICsgMTApAEdfVkFMVUVfSE9MRFNfR1RZUEUodmFsdWUpIChHX1RZUEVfQ0hFQ0tfVkFMVUVfVFlQRSAoKHZhbHVlKSwgR19UWVBFX0dUWVBFKSkAX19HX0xPQURBQkxFX0lDT05fSF9fIABHX1RMU19JTlRFUkFDVElPTl9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX1RMU19JTlRFUkFDVElPTiwgR1Rsc0ludGVyYWN0aW9uQ2xhc3MpKQBHX0lTX0ZJTEVfSU9fU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfRklMRV9JT19TVFJFQU0pKQBEQkxfTUFYX0VYUCBfX0RCTF9NQVhfRVhQX18AR19ERUZJTkVfQUJTVFJBQ1RfVFlQRShUTix0X24sVF9QKSBHX0RFRklORV9UWVBFX0VYVEVOREVEIChUTiwgdF9uLCBUX1AsIEdfVFlQRV9GTEFHX0FCU1RSQUNULCB7fSkAX19HX1NPQ0tFVF9MSVNURU5FUl9IX18gAEdfUEVSTUlTU0lPTl9HRVRfQ0xBU1MoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChpbnN0KSwgR19UWVBFX1BFUk1JU1NJT04sIEdQZXJtaXNzaW9uQ2xhc3MpKQBHTElCX1NZU0RFRl9NU0dfUEVFSyAyAF9fSU5UMzJfVFlQRV9fIGludABfU0NfTE9HSU5fTkFNRV9NQVggX1NDX0xPR0lOX05BTUVfTUFYAENhbGxWb2lkTWV0aG9kQQBHX0lTX1pMSUJfREVDT01QUkVTU09SX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfWkxJQl9ERUNPTVBSRVNTT1IpKQBHTElCX0RFUFJFQ0FURUQgR19ERVBSRUNBVEVEIF9HTElCX0VYVEVSTgBHTElCX1ZFUlNJT05fMl80MCAoR19FTkNPREVfVkVSU0lPTiAoMiwgNDApKQBHX1ZBUklBTlRfVFlQRV9CWVRFICgoY29uc3QgR1ZhcmlhbnRUeXBlICopICJ5IikAR19CVUZGRVJFRF9PVVRQVVRfU1RSRUFNX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfQlVGRkVSRURfT1VUUFVUX1NUUkVBTSwgR0J1ZmZlcmVkT3V0cHV0U3RyZWFtQ2xhc3MpKQBHX1NPQ0tFVF9DT05ORUNUQUJMRShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIEdfVFlQRV9TT0NLRVRfQ09OTkVDVEFCTEUsIEdTb2NrZXRDb25uZWN0YWJsZSkpAEdMSUJfVkVSU0lPTl8yXzMyIChHX0VOQ09ERV9WRVJTSU9OICgyLCAzMikpAEdJTlQzMl9GUk9NX0JFKHZhbCkgKEdJTlQzMl9UT19CRSAodmFsKSkAQ2FsbFZvaWRNZXRob2RWAERCTF9NSU5fRVhQIF9fREJMX01JTl9FWFBfXwBfX0dfVFlQRV9NT0RVTEVfSF9fIABHX1RZUEVfU1RSSU5HIEdfVFlQRV9NQUtFX0ZVTkRBTUVOVEFMICgxNikAREJMX01BWF8xMF9FWFAgX19EQkxfTUFYXzEwX0VYUF9fAF9fRkxUX0RJR19fIDYAR19LRVlfRklMRV9ERVNLVE9QX0tFWV9ISURERU4gIkhpZGRlbiIAR0lOVF9GUk9NX0xFKHZhbCkgKEdJTlRfVE9fTEUgKHZhbCkpAEdfUE9MTEFCTEVfSU5QVVRfU1RSRUFNX0dFVF9JTlRFUkZBQ0Uob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKChvYmopLCBHX1RZUEVfUE9MTEFCTEVfSU5QVVRfU1RSRUFNLCBHUG9sbGFibGVJbnB1dFN0cmVhbUludGVyZmFjZSkpAEdfVFlQRV9JTlQ2NCBHX1RZUEVfTUFLRV9GVU5EQU1FTlRBTCAoMTApAEdfSVNfVk9MVU1FX01PTklUT1IobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9WT0xVTUVfTU9OSVRPUikpAEdfSVNfQ1JFREVOVElBTFMobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9DUkVERU5USUFMUykpAEdfTUFYT0ZGU0VUIEdfTUFYSU5UNjQAR19TUEFXTl9FUlJPUiBnX3NwYXduX2Vycm9yX3F1YXJrICgpAENhbGxTdGF0aWNCb29sZWFuTWV0aG9kQQBfRElSRU5UX0hBVkVfRF9PRkYgAEdVSU5UX0ZST01fTEUodmFsKSAoR1VJTlRfVE9fTEUgKHZhbCkpAEdJTlRfVE9fUE9JTlRFUihpKSAoKGdwb2ludGVyKSAoZ2xvbmcpIChpKSkAZ19tYWluX3NldF9wb2xsX2Z1bmMoZnVuYykgZ19tYWluX2NvbnRleHRfc2V0X3BvbGxfZnVuYyAoTlVMTCwgZnVuYykAR19UWVBFX1BMVUdJTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1RZUEVfUExVR0lOLCBHVHlwZVBsdWdpbikpAF9JT19yZWFkX2VuZABHX0lTX0lOSVRJQUxMWV9VTk9XTkVEX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9JTklUSUFMTFlfVU5PV05FRCkpAF9YT1BFTl9SRUFMVElNRV9USFJFQURTIDEARlBFX0ZMVElOViBGUEVfRkxUSU5WAENhbGxTdGF0aWNCb29sZWFuTWV0aG9kVgBfX0dfREJVU19PQkpFQ1RfTUFOQUdFUl9IX18gAF9fVVNJTkdfTkFNRVNQQUNFX1NURChuYW1lKSAAX19GRF9JU1NFVChkLHNldCkgKChfX0ZEU19CSVRTIChzZXQpW19fRkRfRUxUIChkKV0gJiBfX0ZEX01BU0sgKGQpKSAhPSAwKQBHX0lTX1BST1hZKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfUFJPWFkpKQBfX0dfREJVU19TRVJWRVJfSF9fIABfX0xPTkdfTE9OR19NQVhfXyA5MjIzMzcyMDM2ODU0Nzc1ODA3TEwAX19HX0hNQUNfSF9fIABfX0dfUE9MTEFCTEVfT1VUUFVUX1NUUkVBTV9IX18gAEdfTE9HX0ZBVEFMX01BU0sgKEdfTE9HX0ZMQUdfUkVDVVJTSU9OIHwgR19MT0dfTEVWRUxfRVJST1IpAEZyb21SZWZsZWN0ZWRNZXRob2QAU2V0TG9uZ0ZpZWxkAF9TQ19WN19JTFAzMl9PRkZCSUcgX1NDX1Y3X0lMUDMyX09GRkJJRwBfSU9fTk9fUkVBRFMgNABfX25lZWRfZ2V0b3B0AEphdmFfb3JnX2VjbGlwc2VfY29yZV9pbnRlcm5hbF9uZXRfcHJveHlfdW5peF9Vbml4UHJveHlQcm92aWRlcl9nZXRHU2V0dGluZ3NQcm94eUluZm8AX19MREJMX01BWF9FWFBfXyAxNjM4NABHX0lTX0RCVVNfT0JKRUNUX01BTkFHRVJfQ0xJRU5UKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfREJVU19PQkpFQ1RfTUFOQUdFUl9DTElFTlQpKQBTVERPVVRfRklMRU5PIDEARVhQUl9ORVNUX01BWCBfUE9TSVgyX0VYUFJfTkVTVF9NQVgAQ2FsbE5vbnZpcnR1YWxJbnRNZXRob2QAamxvbmdBcnJheQBfSU9fc2F2ZV9iYXNlAEdldEJ5dGVBcnJheUVsZW1lbnRzAEdfSVNfQVBQTElDQVRJT05fQ09NTUFORF9MSU5FX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9BUFBMSUNBVElPTl9DT01NQU5EX0xJTkUpKQBHX1NIRUxMX0VSUk9SIGdfc2hlbGxfZXJyb3JfcXVhcmsgKCkAR19UWVBFX0FQUExJQ0FUSU9OIChnX2FwcGxpY2F0aW9uX2dldF90eXBlICgpKQBHX01JTklOVDY0ICgoZ2ludDY0KSBHX0dJTlQ2NF9DT05TVEFOVCgtMHg4MDAwMDAwMDAwMDAwMDAwKSkAX1NDXzJfUEJTIF9TQ18yX1BCUwBfX2JvdW5kZWQgAENhbGxTdGF0aWNJbnRNZXRob2RBAF9faGF2ZV9zaWdldmVudF90IDEAR19GSUxFX0dFVF9JRkFDRShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0lOVEVSRkFDRSAoKG9iaiksIEdfVFlQRV9GSUxFLCBHRmlsZUlmYWNlKSkAR19JU19EQlVTX09CSkVDVChvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0RCVVNfT0JKRUNUKSkAR19GSUxFX0lPX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX0ZJTEVfSU9fU1RSRUFNLCBHRmlsZUlPU3RyZWFtKSkAR19UWVBFX1VJTlQ2NCBHX1RZUEVfTUFLRV9GVU5EQU1FTlRBTCAoMTEpAEdfTkVUV09SS19NT05JVE9SX0VYVEVOU0lPTl9QT0lOVF9OQU1FICJnaW8tbmV0d29yay1tb25pdG9yIgBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xJTlRGTEFHUyBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xJTlRGTEFHUwBfX0lOVDE2X0MoYykgYwBfU0NfTEVWRUwzX0NBQ0hFX0xJTkVTSVpFIF9TQ19MRVZFTDNfQ0FDSEVfTElORVNJWkUAQ2FsbFN0YXRpY0J5dGVNZXRob2RBAF9CSVRTX1BPU0lYMl9MSU1fSCAxAF9XQ0hBUl9UX0RFRklORUQgAENhbGxTdGF0aWNJbnRNZXRob2RWAEdfREJVU19JTlRFUkZBQ0UobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9EQlVTX0lOVEVSRkFDRSwgR0RCdXNJbnRlcmZhY2UpKQBfU0NfU1lTVEVNX0RBVEFCQVNFX1IgX1NDX1NZU1RFTV9EQVRBQkFTRV9SAGdfYXNjaWlfaXN1cHBlcihjKSAoKGdfYXNjaWlfdGFibGVbKGd1Y2hhcikgKGMpXSAmIEdfQVNDSUlfVVBQRVIpICE9IDApAF9fc3R1Yl9ndHR5IABfUE9TSVhfUkVFTlRSQU5UX0ZVTkNUSU9OUyAxAE5ld09iamVjdABfX1VMT05HMzJfVFlQRSB1bnNpZ25lZCBpbnQAQ2FsbFN0YXRpY0J5dGVNZXRob2RWAEdfVFlQRV9CT09MRUFOIEdfVFlQRV9NQUtFX0ZVTkRBTUVOVEFMICg1KQBfX1VTRV9JU09DMTEAX19HX0ZJTFRFUl9JTlBVVF9TVFJFQU1fSF9fIABfX0dOVV9MSUJSQVJZX18AX19USU1FUl9UX1RZUEUgdm9pZCAqAEdfSU5JVElBTExZX1VOT1dORUQob2JqZWN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmplY3QpLCBHX1RZUEVfSU5JVElBTExZX1VOT1dORUQsIEdJbml0aWFsbHlVbm93bmVkKSkAX0dMSUJfREVGSU5FX0FVVE9QVFJfQ0hBSU5VUChNb2R1bGVPYmpOYW1lLFBhcmVudE5hbWUpIHR5cGVkZWYgTW9kdWxlT2JqTmFtZSAqX0dMSUJfQVVUT1BUUl9UWVBFTkFNRShNb2R1bGVPYmpOYW1lKTsgc3RhdGljIGlubGluZSB2b2lkIF9HTElCX0FVVE9QVFJfRlVOQ19OQU1FKE1vZHVsZU9iak5hbWUpIChNb2R1bGVPYmpOYW1lICoqX3B0cikgeyBfR0xJQl9BVVRPUFRSX0ZVTkNfTkFNRShQYXJlbnROYW1lKSAoKFBhcmVudE5hbWUgKiopIF9wdHIpOyB9AENhbGxOb252aXJ0dWFsQ2hhck1ldGhvZABfX0ZEX01BU0soZCkgKChfX2ZkX21hc2spIDEgPDwgKChkKSAlIF9fTkZEQklUUykpAEdfVFlQRV9ET1VCTEUgR19UWVBFX01BS0VfRlVOREFNRU5UQUwgKDE1KQBfamZpZWxkSUQAX0dfREVGSU5FX1RZUEVfRVhURU5ERURfQ0xBU1NfSU5JVChUeXBlTmFtZSx0eXBlX25hbWUpIHN0YXRpYyB2b2lkIHR5cGVfbmFtZSAjI19jbGFzc19pbnRlcm5faW5pdCAoZ3BvaW50ZXIga2xhc3MpIHsgdHlwZV9uYW1lICMjX3BhcmVudF9jbGFzcyA9IGdfdHlwZV9jbGFzc19wZWVrX3BhcmVudCAoa2xhc3MpOyBpZiAoVHlwZU5hbWUgIyNfcHJpdmF0ZV9vZmZzZXQgIT0gMCkgZ190eXBlX2NsYXNzX2FkanVzdF9wcml2YXRlX29mZnNldCAoa2xhc3MsICZUeXBlTmFtZSAjI19wcml2YXRlX29mZnNldCk7IHR5cGVfbmFtZSAjI19jbGFzc19pbml0ICgoVHlwZU5hbWUgIyNDbGFzcyopIGtsYXNzKTsgfQBfU0NfTEVWRUw0X0NBQ0hFX0xJTkVTSVpFIF9TQ19MRVZFTDRfQ0FDSEVfTElORVNJWkUAX0lPX3dyaXRlX2VuZABHX0ZJTEVfQVRUUklCVVRFX01PVU5UQUJMRV9TVEFSVF9TVE9QX1RZUEUgIm1vdW50YWJsZTo6c3RhcnQtc3RvcC10eXBlIgBfU0NfTkxfQVJHTUFYIF9TQ19OTF9BUkdNQVgAX1BPU0lYX1RJTUVSX01BWCAzMgBHTElCX0FWQUlMQUJMRV9JTl8yXzQ0IF9HTElCX0VYVEVSTgBnX25ld2Eoc3RydWN0X3R5cGUsbl9zdHJ1Y3RzKSAoKHN0cnVjdF90eXBlKikgZ19hbGxvY2EgKHNpemVvZiAoc3RydWN0X3R5cGUpICogKGdzaXplKSAobl9zdHJ1Y3RzKSkpAEdfR1VJTlQ2NF9DT05TVEFOVCh2YWwpICh2YWwgIyNVTCkAX19JTlRfTEVBU1Q4X1RZUEVfXyBzaWduZWQgY2hhcgBGRF9DTFIoZmQsZmRzZXRwKSBfX0ZEX0NMUiAoZmQsIGZkc2V0cCkAR19GTEFHU19DTEFTU19UWVBFX05BTUUoY2xhc3MpIChnX3R5cGVfbmFtZSAoR19GTEFHU19DTEFTU19UWVBFIChjbGFzcykpKQBQVEhSRUFEX0lOSEVSSVRfU0NIRUQgUFRIUkVBRF9JTkhFUklUX1NDSEVEAEdldFByaW1pdGl2ZUFycmF5Q3JpdGljYWwARkxUX01JTl9FWFAAR19QQVJBTV9TVEFUSUNfU1RSSU5HUyAoR19QQVJBTV9TVEFUSUNfTkFNRSB8IEdfUEFSQU1fU1RBVElDX05JQ0sgfCBHX1BBUkFNX1NUQVRJQ19CTFVSQikAZ190ZXN0X3ZlcmJvc2UoKSAoZ190ZXN0X2NvbmZpZ192YXJzLT50ZXN0X3ZlcmJvc2UpAGdfY2h1bmtfbmV3MCh0eXBlLGNodW5rKSAoKHR5cGUgKikgZ19tZW1fY2h1bmtfYWxsb2MwIChjaHVuaykpAEdfSVNfQ1JFREVOVElBTFNfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9DUkVERU5USUFMUykpAEdfSU5FVF9BRERSRVNTKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfSU5FVF9BRERSRVNTLCBHSW5ldEFkZHJlc3MpKQBfX3VpZF90X2RlZmluZWQgAF9fUFRSRElGRl9UIABHX1RZUEVfU1JWX1RBUkdFVCAoZ19zcnZfdGFyZ2V0X2dldF90eXBlICgpKQBDYWxsU3RhdGljQm9vbGVhbk1ldGhvZABnYm9vbGVhbgBfSU9fU0hPV1BPUyAwMjAwMABHX1RZUEVfREJVU19NRVNTQUdFIChnX2RidXNfbWVzc2FnZV9nZXRfdHlwZSAoKSkAR19ERUZJTkVfUE9JTlRFUl9UWVBFX1dJVEhfQ09ERShUeXBlTmFtZSx0eXBlX25hbWUsX0NfKSBfR19ERUZJTkVfUE9JTlRFUl9UWVBFX0JFR0lOIChUeXBlTmFtZSwgdHlwZV9uYW1lKSB7X0NfO30gX0dfREVGSU5FX1RZUEVfRVhURU5ERURfRU5EKCkAX19HX05PVElGSUNBVElPTl9IX18gAEdfRklMRV9JT19TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX0ZJTEVfSU9fU1RSRUFNLCBHRmlsZUlPU3RyZWFtQ2xhc3MpKQBfX1NJWkVPRl9QVEhSRUFEX01VVEVYX1QgNDAAX19HX0xJQl9IX18gAEdfRklMRV9BVFRSSUJVVEVfQUNDRVNTX0NBTl9XUklURSAiYWNjZXNzOjpjYW4td3JpdGUiAEdfUE9MTEZEX0ZPUk1BVCAiJWQiAF9fR19EQlVTX09CSkVDVF9QUk9YWV9IX18gAF9fREVDNjRfTUFYX0VYUF9fIDM4NQBfX0dfUkVTT0xWRVJfSF9fIABfSU9fTUFHSUNfTUFTSyAweEZGRkYwMDAwAFNJR1RSQVAgNQBfX3N0dWJfc3N0ayAAR2V0SmF2YVZNAGpmbG9hdABnX21haW5faXRlcmF0aW9uKG1heV9ibG9jaykgZ19tYWluX2NvbnRleHRfaXRlcmF0aW9uIChOVUxMLCBtYXlfYmxvY2spAEdfREJVU19QUk9YWV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfREJVU19QUk9YWSwgR0RCdXNQcm94eUNsYXNzKSkAX0lPU19OT0NSRUFURSAzMgBHX0lTX05FVFdPUktfU0VSVklDRV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX05FVFdPUktfU0VSVklDRSkpAFNldERvdWJsZUFycmF5UmVnaW9uAF9fR19JQ09OX0hfXyAAX19TQ0hBUl9NQVhfXyAxMjcAR0xJQl9ERVBSRUNBVEVEX0lOXzJfNTIgR0xJQl9ERVBSRUNBVEVEAF9fbmVlZF90aW1lX3QAX19VV09SRF9UWVBFIHVuc2lnbmVkIGxvbmcgaW50AEdfSU5JVEFCTEVfR0VUX0lGQUNFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgob2JqKSwgR19UWVBFX0lOSVRBQkxFLCBHSW5pdGFibGVJZmFjZSkpAGdfYXV0b2ZyZWUgX0dMSUJfQ0xFQU5VUChnX2F1dG9wdHJfY2xlYW51cF9nZW5lcmljX2dmcmVlKQBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NPUlRfT1JERVIgInN0YW5kYXJkOjpzb3J0LW9yZGVyIgBfX2dsaWJjX2xpa2VseShjb25kKSBfX2J1aWx0aW5fZXhwZWN0KChjb25kKSwgMSkAX0lPX1NLSVBXUyAwMQBHX0lTX1pMSUJfQ09NUFJFU1NPUihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX1pMSUJfQ09NUFJFU1NPUikpAF9TQ19NT05PVE9OSUNfQ0xPQ0sgX1NDX01PTk9UT05JQ19DTE9DSwBfSU9fYnVmX2Jhc2UATlNJRyBfTlNJRwBHX0tFWV9GSUxFX0RFU0tUT1BfVFlQRV9BUFBMSUNBVElPTiAiQXBwbGljYXRpb24iAF9QQ19GSUxFU0laRUJJVFMgX1BDX0ZJTEVTSVpFQklUUwBHX1ZBUklBTlRfVFlQRV9CQVNJQyAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAiPyIpAEdfVFlQRV9DTEFTU19HRVRfUFJJVkFURShrbGFzcyxnX3R5cGUsY190eXBlKSAoKGNfdHlwZSopIGdfdHlwZV9jbGFzc19nZXRfcHJpdmF0ZSAoKEdUeXBlQ2xhc3MqKSAoa2xhc3MpLCAoZ190eXBlKSkpAEdfVFlQRV9EQlVTX0lOVEVSRkFDRV9JTkZPIChnX2RidXNfaW50ZXJmYWNlX2luZm9fZ2V0X3R5cGUgKCkpAF9KQVZBU09GVF9KTklfTURfSF8gAF9DU19QT1NJWF9WN19MUEJJR19PRkZCSUdfQ0ZMQUdTIF9DU19QT1NJWF9WN19MUEJJR19PRkZCSUdfQ0ZMQUdTAEdfSUNPTl9HRVRfSUZBQ0Uob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKChvYmopLCBHX1RZUEVfSUNPTiwgR0ljb25JZmFjZSkpAEdfVkFMVUVfSE9MRFNfUE9JTlRFUih2YWx1ZSkgKEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICgodmFsdWUpLCBHX1RZUEVfUE9JTlRFUikpAEdfSVNfVExTX0RBVEFCQVNFX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9UTFNfREFUQUJBU0UpKQBfU0NfVFJBQ0UgX1NDX1RSQUNFAGdfY2h1bmtfZnJlZShtZW0sbWVtX2NodW5rKSAoZ19tZW1fY2h1bmtfZnJlZSAobWVtX2NodW5rLCBtZW0pKQBfUENfU09DS19NQVhCVUYgX1BDX1NPQ0tfTUFYQlVGAExEQkxfTUFYX0VYUCBfX0xEQkxfTUFYX0VYUF9fAEdfQ09OVkVSVEVSX0lOUFVUX1NUUkVBTV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfQ09OVkVSVEVSX0lOUFVUX1NUUkVBTSwgR0NvbnZlcnRlcklucHV0U3RyZWFtQ2xhc3MpKQBfU0NfVFRZX05BTUVfTUFYIF9TQ19UVFlfTkFNRV9NQVgAUFRIUkVBRF9SV0xPQ0tfSU5JVElBTElaRVIgeyB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfSB9AGdfdGVzdF90cmFwX2Fzc2VydF9zdGRvdXQoc291dHBhdHRlcm4pIGdfdGVzdF90cmFwX2Fzc2VydGlvbnMgKEdfTE9HX0RPTUFJTiwgX19GSUxFX18sIF9fTElORV9fLCBHX1NUUkZVTkMsIDIsIHNvdXRwYXR0ZXJuKQBfU0NfWE9QRU5fU0hNIF9TQ19YT1BFTl9TSE0AX1NDX05MX05NQVggX1NDX05MX05NQVgAX19HX0VSUk9SX0hfXyAAX19HX0lOUFVUX1NUUkVBTV9IX18gAF9TQ19YT1BFTl9YUEcyIF9TQ19YT1BFTl9YUEcyAF9TQ19YQlM1X0xQNjRfT0ZGNjQgX1NDX1hCUzVfTFA2NF9PRkY2NABfU0NfU1lOQ0hST05JWkVEX0lPIF9TQ19TWU5DSFJPTklaRURfSU8AR19UWVBFX0RCVVNfT0JKRUNUX01BTkFHRVIgKGdfZGJ1c19vYmplY3RfbWFuYWdlcl9nZXRfdHlwZSgpKQBHX1BBUkFNX1NQRUNfVUlOVDY0KHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9VSU5UNjQsIEdQYXJhbVNwZWNVSW50NjQpKQBfX0xEQkxfSEFTX0lORklOSVRZX18gMQBucEhvc3RzAEdfSVNfU1VCUFJPQ0VTUyhvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX1NVQlBST0NFU1MpKQBHX0xOMiAwLjY5MzE0NzE4MDU1OTk0NTMwOTQxNzIzMjEyMTQ1ODE3NjU2ODA3NTUwMDEzNDM2MDI2AGpjbGFzcwBfX1NJWkVPRl9TSE9SVF9fIDIAX19zc2l6ZV90X2RlZmluZWQgAF9TQ19DSEFSX0JJVCBfU0NfQ0hBUl9CSVQAX19JTlRNQVhfVFlQRV9fIGxvbmcgaW50AF9JT19QRU5ESU5HX09VVFBVVF9DT1VOVChfZnApICgoX2ZwKS0+X0lPX3dyaXRlX3B0ciAtIChfZnApLT5fSU9fd3JpdGVfYmFzZSkAR0xJQl9ERVBSRUNBVEVEX0lOXzJfNDQgR0xJQl9ERVBSRUNBVEVEAF9TVERBUkdfSCAAR19DUkVERU5USUFMU19HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0NSRURFTlRJQUxTLCBHQ3JlZGVudGlhbHNDbGFzcykpAF9fUkVESVJFQ1QobmFtZSxwcm90byxhbGlhcykgbmFtZSBwcm90byBfX2FzbV9fIChfX0FTTU5BTUUgKCNhbGlhcykpAF9fV0lOVF9UWVBFX18gdW5zaWduZWQgaW50AExEQkxfTUlOAF9fVUlOVF9GQVNUMzJfVFlQRV9fIGxvbmcgdW5zaWduZWQgaW50AEdfSVNfRklMRV9JQ09OX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfRklMRV9JQ09OKSkAX19VU0VfVU5JWDk4AFNldFN0YXRpY0ludEZpZWxkAENMT0NLX01PTk9UT05JQ19SQVcgNABfU0NfUElJX09TSSBfU0NfUElJX09TSQBnX2Fzc2VydF9jbXBzdHIoczEsY21wLHMyKSBHX1NUTVRfU1RBUlQgeyBjb25zdCBjaGFyICpfX3MxID0gKHMxKSwgKl9fczIgPSAoczIpOyBpZiAoZ19zdHJjbXAwIChfX3MxLCBfX3MyKSBjbXAgMCkgOyBlbHNlIGdfYXNzZXJ0aW9uX21lc3NhZ2VfY21wc3RyIChHX0xPR19ET01BSU4sIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DLCAjczEgIiAiICNjbXAgIiAiICNzMiwgX19zMSwgI2NtcCwgX19zMik7IH0gR19TVE1UX0VORABKTklfVFJVRSAxAF9TQ19YT1BFTl9YUEc0IF9TQ19YT1BFTl9YUEc0AF9JT19mZXJyb3JfdW5sb2NrZWQoX19mcCkgKCgoX19mcCktPl9mbGFncyAmIF9JT19FUlJfU0VFTikgIT0gMCkAX19HX01FTlVfRVhQT1JURVJfSF9fIABHX1ZPTFVNRV9JREVOVElGSUVSX0tJTkRfVU5JWF9ERVZJQ0UgInVuaXgtZGV2aWNlIgBfX0dfT1BUSU9OX0hfXyAAQ2FsbEJvb2xlYW5NZXRob2QAR19GSUxFX0FUVFJJQlVURV9GSUxFU1lTVEVNX1VTRV9QUkVWSUVXICJmaWxlc3lzdGVtOjp1c2UtcHJldmlldyIAR19QUk9YWV9BRERSRVNTX0VOVU1FUkFUT1IobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9QUk9YWV9BRERSRVNTX0VOVU1FUkFUT1IsIEdQcm94eUFkZHJlc3NFbnVtZXJhdG9yKSkAX1NDX1RIUkVBRF9BVFRSX1NUQUNLQUREUiBfU0NfVEhSRUFEX0FUVFJfU1RBQ0tBRERSAF9QQ19SRUNfTUFYX1hGRVJfU0laRSBfUENfUkVDX01BWF9YRkVSX1NJWkUAR19IT09LX0FDVElWRShob29rKSAoKEdfSE9PS19GTEFHUyAoaG9vaykgJiBHX0hPT0tfRkxBR19BQ1RJVkUpICE9IDApAF9fRkxUX01JTl8xMF9FWFBfXyAoLTM3KQBHX0lTX0VNQkxFTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0VNQkxFTSkpAEpOSUNBTEwgAEdfR0lOVFBUUl9GT1JNQVQgImxpIgBfUE9TSVhfQ1BVVElNRSAwAEdfTUFYU0hPUlQgU0hSVF9NQVgAX19SRURJUkVDVF9MREJMKG5hbWUscHJvdG8sYWxpYXMpIF9fUkVESVJFQ1QgKG5hbWUsIHByb3RvLCBhbGlhcykAR19JU19EQlVTX09CSkVDVF9NQU5BR0VSKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfREJVU19PQkpFQ1RfTUFOQUdFUikpAEdMSUJfQVZBSUxBQkxFX0lOXzJfNDIgX0dMSUJfRVhURVJOAF9fU0hSVF9NQVhfXyAzMjc2NwBfX3N0dWJfbGNobW9kIABHX09VVFBVVF9TVFJFQU1fR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9PVVRQVVRfU1RSRUFNLCBHT3V0cHV0U3RyZWFtQ2xhc3MpKQBnX2FzY2lpX2lzYWxwaGEoYykgKChnX2FzY2lpX3RhYmxlWyhndWNoYXIpIChjKV0gJiBHX0FTQ0lJX0FMUEhBKSAhPSAwKQBHX1ZBUklBTlRfVFlQRV9PQkpFQ1RfUEFUSF9BUlJBWSAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAiYW8iKQBHTElCX0RFUFJFQ0FURURfSU5fMl80Ml9GT1IoZikgR0xJQl9ERVBSRUNBVEVEX0ZPUihmKQBnX2RlYnVnKC4uLikgZ19sb2cgKEdfTE9HX0RPTUFJTiwgR19MT0dfTEVWRUxfREVCVUcsIF9fVkFfQVJHU19fKQBHTElCX0hBVkVfQUxMT0NBX0ggAEdfSVNfREJVU19DT05ORUNUSU9OKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfREJVU19DT05ORUNUSU9OKSkAR19NQVhJTlQgSU5UX01BWABMREJMX0VQU0lMT04gX19MREJMX0VQU0lMT05fXwBHX0RUTFNfQ0xJRU5UX0NPTk5FQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9EVExTX0NMSUVOVF9DT05ORUNUSU9OLCBHRHRsc0NsaWVudENvbm5lY3Rpb24pKQBHX1RZUEVfRklMRU5BTUVfQ09NUExFVEVSIChnX2ZpbGVuYW1lX2NvbXBsZXRlcl9nZXRfdHlwZSAoKSkAR19NRU1PUllfSU5QVVRfU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9NRU1PUllfSU5QVVRfU1RSRUFNLCBHTWVtb3J5SW5wdXRTdHJlYW1DbGFzcykpAEpOSV9GQUxTRSAwAGdfbm9kZV9hcHBlbmQocGFyZW50LG5vZGUpIGdfbm9kZV9pbnNlcnRfYmVmb3JlICgocGFyZW50KSwgTlVMTCwgKG5vZGUpKQBHX01BWFVJTlQzMiAoKGd1aW50MzIpIDB4ZmZmZmZmZmYpAEdfREJVU19PQkpFQ1RfUFJPWFkobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9EQlVTX09CSkVDVF9QUk9YWSwgR0RCdXNPYmplY3RQcm94eSkpAF9TQ19GU1lOQyBfU0NfRlNZTkMAX19HX0lOSVRBQkxFX0hfXyAAX1NDX1JBV19TT0NLRVRTIF9TQ19SQVdfU09DS0VUUwBHX0RCVVNfT0JKRUNUX01BTkFHRVJfU0VSVkVSX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfREJVU19PQkpFQ1RfTUFOQUdFUl9TRVJWRVIsIEdEQnVzT2JqZWN0TWFuYWdlclNlcnZlckNsYXNzKSkAX19ub25udWxsKHBhcmFtcykgX19hdHRyaWJ1dGVfXyAoKF9fbm9ubnVsbF9fIHBhcmFtcykpAEdfVFlQRV9TRVRUSU5HU19CSU5EX0ZMQUdTIChnX3NldHRpbmdzX2JpbmRfZmxhZ3NfZ2V0X3R5cGUgKCkpAEdfVVJJX1JFU0VSVkVEX0NIQVJTX0FMTE9XRURfSU5fUEFUSCBHX1VSSV9SRVNFUlZFRF9DSEFSU19BTExPV0VEX0lOX1BBVEhfRUxFTUVOVCAiLyIATUlOU0lHU1RLU1ogMjA0OABfX25lZWRfc2l6ZV90AEdfR1VJTlQxNl9GT1JNQVQgImh1IgBfU0NfQkNfQkFTRV9NQVggX1NDX0JDX0JBU0VfTUFYAEZMVF9NQVhfRVhQAEdfVFlQRV9EQlVTX1NVQlRSRUVfRkxBR1MgKGdfZGJ1c19zdWJ0cmVlX2ZsYWdzX2dldF90eXBlICgpKQBfX1VTRV9JU09DOTkgMQBHX1NUUlVDVF9NRU1CRVIobWVtYmVyX3R5cGUsc3RydWN0X3Asc3RydWN0X29mZnNldCkgKCoobWVtYmVyX3R5cGUqKSBHX1NUUlVDVF9NRU1CRVJfUCAoKHN0cnVjdF9wKSwgKHN0cnVjdF9vZmZzZXQpKSkAR19GSUxFX0FUVFJJQlVURV9USU1FX0FDQ0VTUyAidGltZTo6YWNjZXNzIgBfSU9fbWFya2VyAF9fVUlOVDE2X01BWF9fIDY1NTM1AE5ld1N0cmluZ1VURgBHX0FQUF9JTkZPKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwgR19UWVBFX0FQUF9JTkZPLCBHQXBwSW5mbykpAEdfSVNfQllURVNfSUNPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX0JZVEVTX0lDT04pKQBHX01PVU5UX09QRVJBVElPTihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX01PVU5UX09QRVJBVElPTiwgR01vdW50T3BlcmF0aW9uKSkAR19GSUxFX0FUVFJJQlVURV9UUkFTSF9ERUxFVElPTl9EQVRFICJ0cmFzaDo6ZGVsZXRpb24tZGF0ZSIARkxUX1JPVU5EUyAxAEdfREVCVUdfSEVSRSgpIGdfbG9nX3N0cnVjdHVyZWQgKEdfTE9HX0RPTUFJTiwgR19MT0dfTEVWRUxfREVCVUcsICJDT0RFX0ZJTEUiLCBfX0ZJTEVfXywgIkNPREVfTElORSIsIEdfU1RSSU5HSUZZIChfX0xJTkVfXyksICJDT0RFX0ZVTkMiLCBHX1NUUkZVTkMsICJNRVNTQUdFIiwgIiUiIEdfR0lOVDY0X0ZPUk1BVCAiOiAlcyIsIGdfZ2V0X21vbm90b25pY190aW1lICgpLCBHX1NUUkxPQykAVW5yZWdpc3Rlck5hdGl2ZXMAQlVTX0FEUkVSUiBCVVNfQURSRVJSAGdjaGFyAExPTkdfTUlOICgtTE9OR19NQVggLSAxTCkATmV3RGlyZWN0Qnl0ZUJ1ZmZlcgBfQ1NfTEZTX0xJQlMgX0NTX0xGU19MSUJTAEdfSVNfUEFSQU1fU1BFQ19PVkVSUklERShwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fT1ZFUlJJREUpKQBHX0lTX0RCVVNfT0JKRUNUX01BTkFHRVJfU0VSVkVSKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfREJVU19PQkpFQ1RfTUFOQUdFUl9TRVJWRVIpKQBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX0lDT04gInN0YW5kYXJkOjppY29uIgBOZXdTdHJpbmcAU0FfTk9DTERTVE9QIDEAR19UWVBFX0lTX0FCU1RSQUNUKHR5cGUpIChnX3R5cGVfdGVzdF9mbGFncyAoKHR5cGUpLCBHX1RZUEVfRkxBR19BQlNUUkFDVCkpAF9fVUlOVDMyX0MoYykgYyAjIyBVAEdfVkFMVUVfSE9MRFNfUEFSQU0odmFsdWUpIChHX1RZUEVfQ0hFQ0tfVkFMVUVfVFlQRSAoKHZhbHVlKSwgR19UWVBFX1BBUkFNKSkAR2V0Q2hhckFycmF5RWxlbWVudHMAR19TT0NLRVRfQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGNsYXNzKSwgR19UWVBFX1NPQ0tFVCwgR1NvY2tldENsYXNzKSkAX19VSU5UX0ZBU1QxNl9NQVhfXyAxODQ0Njc0NDA3MzcwOTU1MTYxNVVMAEdfQUNUSU9OX0dST1VQKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKGluc3QpLCBHX1RZUEVfQUNUSU9OX0dST1VQLCBHQWN0aW9uR3JvdXApKQBHX1RZUEVfTk9USUZJQ0FUSU9OX1BSSU9SSVRZIChnX25vdGlmaWNhdGlvbl9wcmlvcml0eV9nZXRfdHlwZSAoKSkAR19UTFNfQ0VSVElGSUNBVEVfR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9UTFNfQ0VSVElGSUNBVEUsIEdUbHNDZXJ0aWZpY2F0ZUNsYXNzKSkAX19TSVpFT0ZfV0lOVF9UX18gNABfUENfU1lOQ19JTyBfUENfU1lOQ19JTwBHX01FTU9SWV9PVVRQVVRfU1RSRUFNKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfTUVNT1JZX09VVFBVVF9TVFJFQU0sIEdNZW1vcnlPdXRwdXRTdHJlYW0pKQBfX1VTRV9QT1NJWDIAX19VSU5UX0ZBU1QxNl9UWVBFX18gbG9uZyB1bnNpZ25lZCBpbnQAUmVsZWFzZUludEFycmF5RWxlbWVudHMAR19UWVBFX0RCVVNfSU5URVJGQUNFX1NLRUxFVE9OX0ZMQUdTIChnX2RidXNfaW50ZXJmYWNlX3NrZWxldG9uX2ZsYWdzX2dldF90eXBlICgpKQBGUEVfRkxUVU5EIEZQRV9GTFRVTkQAR0lOVDE2X0ZST01fQkUodmFsKSAoR0lOVDE2X1RPX0JFICh2YWwpKQBnX2JpdF9udGhfbXNmKG1hc2ssbnRoX2JpdCkgZ19iaXRfbnRoX21zZl9pbXBsKG1hc2ssIG50aF9iaXQpAEdfRklMVEVSX0lOUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX0ZJTFRFUl9JTlBVVF9TVFJFQU0sIEdGaWx0ZXJJbnB1dFN0cmVhbSkpAF9fR19NRU1fSF9fIABHX0lTX09VVFBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9PVVRQVVRfU1RSRUFNKSkAX19CRUdJTl9OQU1FU1BBQ0VfQzk5IABfUE9TSVgyX0JDX0RJTV9NQVggMjA0OABfX1NURENfSVNPXzEwNjQ2X18gMjAxMTAzTABOZXdCeXRlQXJyYXkAX1NDX0ZJTEVfU1lTVEVNIF9TQ19GSUxFX1NZU1RFTQBHX1RZUEVfSVNfQVNZTkNfSU5JVEFCTEUodHlwZSkgKGdfdHlwZV9pc19hICgodHlwZSksIEdfVFlQRV9BU1lOQ19JTklUQUJMRSkpAF9fR0NDX0FUT01JQ19JTlRfTE9DS19GUkVFIDIAZ19kYXRlX2RheXNfaW5fbW9udGggZ19kYXRlX2dldF9kYXlzX2luX21vbnRoAF9fTEVBRiAsIF9fbGVhZl9fAF9fQ0hBUjE2X1RZUEVfXyBzaG9ydCB1bnNpZ25lZCBpbnQAX0lPU19OT1JFUExBQ0UgNjQATW9uaXRvckV4aXQAR19UWVBFX1NFVFRJTkdTX1NDSEVNQV9TT1VSQ0UgKGdfc2V0dGluZ3Nfc2NoZW1hX3NvdXJjZV9nZXRfdHlwZSAoKSkAX19HX1BST1BFUlRZX0FDVElPTl9IX18gAF9fUFRSRElGRl9NQVhfXyA5MjIzMzcyMDM2ODU0Nzc1ODA3TABfQklUU19UWVBFU0laRVNfSCAxAEdJTlQ2NF9GUk9NX0JFKHZhbCkgKEdJTlQ2NF9UT19CRSAodmFsKSkAX0lPX29mZl90IF9fb2ZmX3QAU0lHU1RLRkxUIDE2AF9fc3R1Yl9iZGZsdXNoIABfX0dfU09DS0VUX0NPTk5FQ1RBQkxFX0hfXyAAR19JU19NRU5VX01PREVMX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9NRU5VX01PREVMKSkAR19UWVBFX1ZBUklBTlQgR19UWVBFX01BS0VfRlVOREFNRU5UQUwgKDIxKQBHX0lTX1BBUkFNX1NQRUNfRE9VQkxFKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9ET1VCTEUpKQBHX1NPQ0tFVF9HRVRfQ0xBU1MoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChpbnN0KSwgR19UWVBFX1NPQ0tFVCwgR1NvY2tldENsYXNzKSkAX19HX1RIRU1FRF9JQ09OX0hfXyAAR19JU19UQ1BfQ09OTkVDVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX1RDUF9DT05ORUNUSU9OKSkAX19HX0JVRkZFUkVEX09VVFBVVF9TVFJFQU1fSF9fIABTSV9BU1lOQ0lPIFNJX0FTWU5DSU8AZ19hc3NlcnRfY21wZmxvYXQobjEsY21wLG4yKSBHX1NUTVRfU1RBUlQgeyBsb25nIGRvdWJsZSBfX24xID0gKG4xKSwgX19uMiA9IChuMik7IGlmIChfX24xIGNtcCBfX24yKSA7IGVsc2UgZ19hc3NlcnRpb25fbWVzc2FnZV9jbXBudW0gKEdfTE9HX0RPTUFJTiwgX19GSUxFX18sIF9fTElORV9fLCBHX1NUUkZVTkMsICNuMSAiICIgI2NtcCAiICIgI24yLCBfX24xLCAjY21wLCBfX24yLCAnZicpOyB9IEdfU1RNVF9FTkQAX19CSUdfRU5ESUFOIDQzMjEAR19HTlVDX0FMTE9DX1NJWkUyKHgseSkgX19hdHRyaWJ1dGVfXygoX19hbGxvY19zaXplX18oeCx5KSkpAEdfVFlQRV9TVUJQUk9DRVNTX0ZMQUdTIChnX3N1YnByb2Nlc3NfZmxhZ3NfZ2V0X3R5cGUgKCkpAF9JT19sb2NrX3QAR19LRVlfRklMRV9ERVNLVE9QX0tFWV9TVEFSVFVQX05PVElGWSAiU3RhcnR1cE5vdGlmeSIAX19HX1VSSV9GVU5DU19IX18gAF9TQ19QQUdFX1NJWkUgX1NDX1BBR0VTSVpFAF9CSVRTX1BPU0lYX09QVF9IIDEAX0lPX3JlYWRfcHRyAF9fVVNFX0lTT0M5NQBHX1NPQ0tFVF9DTElFTlRfR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9TT0NLRVRfQ0xJRU5ULCBHU29ja2V0Q2xpZW50Q2xhc3MpKQBfX1VTRV9JU09DOTkAQklHX0VORElBTiBfX0JJR19FTkRJQU4AX19JTFAzMl9PRkZCSUdfQ0ZMQUdTICItbTMyIC1EX0xBUkdFRklMRV9TT1VSQ0UgLURfRklMRV9PRkZTRVRfQklUUz02NCIAX19HX0RBVEVfSF9fIABfU0NfQ0hBUl9NSU4gX1NDX0NIQVJfTUlOAEdfTl9FTEVNRU5UUyhhcnIpIChzaXplb2YgKGFycikgLyBzaXplb2YgKChhcnIpWzBdKSkAR19HTlVDX1VOVVNFRCBfX2F0dHJpYnV0ZV9fKChfX3VudXNlZF9fKSkAZ19kYXRlX3N1bmRheV93ZWVrX29mX3llYXIgZ19kYXRlX2dldF9zdW5kYXlfd2Vla19vZl95ZWFyAEdMSUJfREVQUkVDQVRFRF9JTl8yXzU0IEdMSUJfREVQUkVDQVRFRABfX3ZhX2NvcHkoZCxzKSBfX2J1aWx0aW5fdmFfY29weShkLHMpAF9JT19CRShleHByLHJlcykgX19idWlsdGluX2V4cGVjdCAoKGV4cHIpLCByZXMpAEdMSUJfVkVSU0lPTl9DVVJfU1RBQkxFIChHX0VOQ09ERV9WRVJTSU9OIChHTElCX01BSk9SX1ZFUlNJT04sIEdMSUJfTUlOT1JfVkVSU0lPTikpAEdfVFlQRV9TT0NLRVRfU0VSVklDRSAoZ19zb2NrZXRfc2VydmljZV9nZXRfdHlwZSAoKSkAX0NTX1Y1X1dJRFRIX1JFU1RSSUNURURfRU5WUyBfQ1NfVjVfV0lEVEhfUkVTVFJJQ1RFRF9FTlZTAF9TWVNfVUNPTlRFWFRfSCAxAFNBX1NUQUNLIFNBX09OU1RBQ0sAR19WQVJJQU5UX1RZUEVfQVJSQVkgKChjb25zdCBHVmFyaWFudFR5cGUgKikgImEqIikARXhjZXB0aW9uQ2hlY2sAX19HTlVDX01JTk9SX18gOABnX3RocmVhZF9zdXBwb3J0ZWQoKSAoMSkAR19QQVJBTV9TUEVDX1NUUklORyhwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fU1RSSU5HLCBHUGFyYW1TcGVjU3RyaW5nKSkAX1NDX1RIUkVBRF9ST0JVU1RfUFJJT19JTkhFUklUIF9TQ19USFJFQURfUk9CVVNUX1BSSU9fSU5IRVJJVABDYWxsU2hvcnRNZXRob2QAR19HT0ZGU0VUX0NPTlNUQU5UKHZhbCkgR19HSU5UNjRfQ09OU1RBTlQodmFsKQBfX2FtZDY0IDEAX2ZsYWdzMgBfX0dfUE9MTEFCTEVfVVRJTFNfSF9fIABTSV9RVUVVRSBTSV9RVUVVRQBHX1ZPTFVNRV9JREVOVElGSUVSX0tJTkRfTkZTX01PVU5UICJuZnMtbW91bnQiAEdldERpcmVjdEJ1ZmZlckFkZHJlc3MAR19WQUxVRV9IT0xEU19GTEFHUyh2YWx1ZSkgKEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICgodmFsdWUpLCBHX1RZUEVfRkxBR1MpKQBHX0lTX0lDT04ob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmopLCBHX1RZUEVfSUNPTikpAF9fSU5UOF9UWVBFX18gc2lnbmVkIGNoYXIAX1NDXzJfU1dfREVWIF9TQ18yX1NXX0RFVgBHX0lTX1BST1hZX0FERFJFU1NfRU5VTUVSQVRPUl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX1BST1hZX0FERFJFU1NfRU5VTUVSQVRPUikpAF9JT19FUlJfU0VFTiAweDIwAEdfU09DS0VUX0FERFJFU1NfRU5VTUVSQVRPUihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX1NPQ0tFVF9BRERSRVNTX0VOVU1FUkFUT1IsIEdTb2NrZXRBZGRyZXNzRW51bWVyYXRvcikpAEdOVSBDIDQuOC41IDIwMTUwNjIzIChSZWQgSGF0IDQuOC41LTI4KSAtbXR1bmU9Z2VuZXJpYyAtbWFyY2g9eDg2LTY0IC1nMyAtTzAgLWZQSUMgLWZtZXNzYWdlLWxlbmd0aD0wAEdfRklMVEVSX09VVFBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9GSUxURVJfT1VUUFVUX1NUUkVBTSwgR0ZpbHRlck91dHB1dFN0cmVhbSkpAF9WQV9MSVNUX0RFRklORUQgAFNDSEVEX09USEVSIDAAX193YXJuYXR0cihtc2cpIF9fYXR0cmlidXRlX18oKF9fd2FybmluZ19fIChtc2cpKSkAR19UWVBFX0lPX0NPTkRJVElPTiAoZ19pb19jb25kaXRpb25fZ2V0X3R5cGUgKCkpAEdfVFlQRV9QQVJBTV9MT05HIChnX3BhcmFtX3NwZWNfdHlwZXNbNV0pAEdfR05VQ19DSEVDS19WRVJTSU9OKG1ham9yLG1pbm9yKSAoZGVmaW5lZChfX0dOVUNfXykgJiYgKChfX0dOVUNfXyA+IChtYWpvcikpIHx8ICgoX19HTlVDX18gPT0gKG1ham9yKSkgJiYgKF9fR05VQ19NSU5PUl9fID49IChtaW5vcikpKSkpAEdVTE9OR19GUk9NX0xFKHZhbCkgKEdVTE9OR19UT19MRSAodmFsKSkAR19HTlVDX05VTExfVEVSTUlOQVRFRCBfX2F0dHJpYnV0ZV9fKChfX3NlbnRpbmVsX18pKQBiZTE2dG9oKHgpIF9fYnN3YXBfMTYgKHgpAF9fR19WQUxVRVRZUEVTX0hfXyAAQ0xEX0NPTlRJTlVFRCBDTERfQ09OVElOVUVEAENMRF9EVU1QRUQgQ0xEX0RVTVBFRABHX0VOVU1fQ0xBU1NfVFlQRV9OQU1FKGNsYXNzKSAoZ190eXBlX25hbWUgKEdfRU5VTV9DTEFTU19UWVBFIChjbGFzcykpKQBfX0dfREJVU19BVVRIX09CU0VSVkVSX0hfXyAAU0lHSUxMIDQAX1NDXzJfQ19CSU5EIF9TQ18yX0NfQklORABfX1NJWkVfVFlQRV9fIGxvbmcgdW5zaWduZWQgaW50AENMT0NLX1RIUkVBRF9DUFVUSU1FX0lEIDMAR19BTExPQ0FUT1JfU0xJU1QgMgBfSU9fSEVYIDAxMDAAX19TWVNDQUxMX1dPUkRTSVpFIDY0AF9TQ18yX0NfVkVSU0lPTiBfU0NfMl9DX1ZFUlNJT04AR19HU1NJWkVfTU9ESUZJRVIgImwiAEdfREVQUkVDQVRFRCBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXykpAEdfR05VQ19XQVJOX1VOVVNFRF9SRVNVTFQgX19hdHRyaWJ1dGVfXygod2Fybl91bnVzZWRfcmVzdWx0KSkAR19JU19QUk9QRVJUWV9BQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9QUk9QRVJUWV9BQ1RJT04pKQBfU0NfUEFTU19NQVggX1NDX1BBU1NfTUFYAEdfVFlQRV9BU1lOQ19SRVNVTFQgKGdfYXN5bmNfcmVzdWx0X2dldF90eXBlICgpKQBfX1VJTlQ4X01BWF9fIDI1NQBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX0NPUFlfTkFNRSAic3RhbmRhcmQ6OmNvcHktbmFtZSIAR19JTkVUX1NPQ0tFVF9BRERSRVNTX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfSU5FVF9TT0NLRVRfQUREUkVTUywgR0luZXRTb2NrZXRBZGRyZXNzQ2xhc3MpKQBfSU9fd3JpdGVfcHRyAEdldExvbmdBcnJheVJlZ2lvbgBHX1RZUEVfSEFTSF9UQUJMRSAoZ19oYXNoX3RhYmxlX2dldF90eXBlICgpKQBfUE9TSVhfU0lHUVVFVUVfTUFYIDMyAFNBX05PTUFTSyBTQV9OT0RFRkVSAEdfSE9PSyhob29rKSAoKEdIb29rKikgKGhvb2spKQBHX0lTX1NPQ0tFVF9BRERSRVNTKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfU09DS0VUX0FERFJFU1MpKQBfX0hBVkVfQ09MVU1OIABHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NZTUJPTElDX0lDT04gInN0YW5kYXJkOjpzeW1ib2xpYy1pY29uIgBfX0RFQzEyOF9NQU5UX0RJR19fIDM0AEdfREJVU19BQ1RJT05fR1JPVVAoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9EQlVTX0FDVElPTl9HUk9VUCwgR0RCdXNBY3Rpb25Hcm91cCkpAF9HX0RFRklORV9JTlRFUkZBQ0VfRVhURU5ERURfRU5EKCkgfSBnX29uY2VfaW5pdF9sZWF2ZSAoJmdfZGVmaW5lX3R5cGVfaWRfX3ZvbGF0aWxlLCBnX2RlZmluZV90eXBlX2lkKTsgfSByZXR1cm4gZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGU7IH0AR19UWVBFX1RDUF9DT05ORUNUSU9OIChnX3RjcF9jb25uZWN0aW9uX2dldF90eXBlICgpKQBHX0JVRkZFUkVEX0lOUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX0JVRkZFUkVEX0lOUFVUX1NUUkVBTSwgR0J1ZmZlcmVkSW5wdXRTdHJlYW0pKQBHTElCX0RFUFJFQ0FURURfSU5fMl80OCBHTElCX0RFUFJFQ0FURUQAX19JTFAzMl9PRkYzMl9MREZMQUdTICItbTMyIgBfSU9fdWlkX3QgX191aWRfdABHX1RZUEVfRkxBR1MgR19UWVBFX01BS0VfRlVOREFNRU5UQUwgKDEzKQBfUE9TSVgyX0VYUFJfTkVTVF9NQVggMzIAR1VJTlQ2NF9UT19CRSh2YWwpIChHVUlOVDY0X1NXQVBfTEVfQkUgKHZhbCkpAGpob3N0AGp2YWx1ZQBHX0JJTkRJTkcob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmopLCBHX1RZUEVfQklORElORywgR0JpbmRpbmcpKQBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xJQlMgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRkJJR19MSUJTAF9fYnN3YXBfMTYoeCkgKF9fZXh0ZW5zaW9uX18gKHsgcmVnaXN0ZXIgdW5zaWduZWQgc2hvcnQgaW50IF9fdiwgX194ID0gKHVuc2lnbmVkIHNob3J0IGludCkgKHgpOyBpZiAoX19idWlsdGluX2NvbnN0YW50X3AgKF9feCkpIF9fdiA9IF9fYnN3YXBfY29uc3RhbnRfMTYgKF9feCk7IGVsc2UgX19hc21fXyAoInJvcncgJDgsICV3MCIgOiAiPXIiIChfX3YpIDogIjAiIChfX3gpIDogImNjIik7IF9fdjsgfSkpAEdfVFlQRV9DUkVERU5USUFMU19UWVBFIChnX2NyZWRlbnRpYWxzX3R5cGVfZ2V0X3R5cGUgKCkpAEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QU1BFQyhvYmplY3QscG5hbWUscHJvcGVydHlfaWQscHNwZWMpIEdfU1RNVF9TVEFSVCB7IEdPYmplY3QgKl9nbGliX19vYmplY3QgPSAoR09iamVjdCopIChvYmplY3QpOyBHUGFyYW1TcGVjICpfZ2xpYl9fcHNwZWMgPSAoR1BhcmFtU3BlYyopIChwc3BlYyk7IGd1aW50IF9nbGliX19wcm9wZXJ0eV9pZCA9IChwcm9wZXJ0eV9pZCk7IGdfd2FybmluZyAoIiVzOiVkOiBpbnZhbGlkICVzIGlkICV1IGZvciBcIiVzXCIgb2YgdHlwZSAnJXMnIGluICclcyciLCBfX0ZJTEVfXywgX19MSU5FX18sIChwbmFtZSksIF9nbGliX19wcm9wZXJ0eV9pZCwgX2dsaWJfX3BzcGVjLT5uYW1lLCBnX3R5cGVfbmFtZSAoR19QQVJBTV9TUEVDX1RZUEUgKF9nbGliX19wc3BlYykpLCBHX09CSkVDVF9UWVBFX05BTUUgKF9nbGliX19vYmplY3QpKTsgfSBHX1NUTVRfRU5EAEdfVEhSRUFERURfU09DS0VUX1NFUlZJQ0VfR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9USFJFQURFRF9TT0NLRVRfU0VSVklDRSwgR1RocmVhZGVkU29ja2V0U2VydmljZUNsYXNzKSkAR19TSUdOQUxfVFlQRV9TVEFUSUNfU0NPUEUgKEdfVFlQRV9GTEFHX1JFU0VSVkVEX0lEX0JJVCkAR1VJTlQ2NF9UT19MRSh2YWwpICgoZ3VpbnQ2NCkgKHZhbCkpAF9fSU5UUFRSX01BWF9fIDkyMjMzNzIwMzY4NTQ3NzU4MDdMAEdfVkFSSUFOVF9UWVBFX1NUUklOR19BUlJBWSAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAiYXMiKQBHX0lTX1BBUkFNX1NQRUNfVUlOVDY0KHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9VSU5UNjQpKQBfR19UWVBFX0NIVih2bCkgKGdfdHlwZV9jaGVja192YWx1ZSAoKEdWYWx1ZSopIHZsKSkAX19TSVpFX01BWF9fIDE4NDQ2NzQ0MDczNzA5NTUxNjE1VUwAX19MREJMX0VQU0lMT05fXyAxLjA4NDIwMjE3MjQ4NTUwNDQzNDAxZS0xOUwATmV3V2Vha0dsb2JhbFJlZgBTSUdFVl9OT05FIFNJR0VWX05PTkUASU5UX01BWCBfX0lOVF9NQVhfXwBHX1NPQ0tFVChpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1NPQ0tFVCwgR1NvY2tldCkpAEdfSVNfQklORElORyhvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIEdfVFlQRV9CSU5ESU5HKSkAX0JTRF9XQ0hBUl9UXwBHX0ZJTFRFUl9JTlBVVF9TVFJFQU1fR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9GSUxURVJfSU5QVVRfU1RSRUFNLCBHRmlsdGVySW5wdXRTdHJlYW1DbGFzcykpAEdfRklMVEVSX09VVFBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX0ZJTFRFUl9PVVRQVVRfU1RSRUFNLCBHRmlsdGVyT3V0cHV0U3RyZWFtQ2xhc3MpKQBHX1RZUEVfVExTX0RBVEFCQVNFIChnX3Rsc19kYXRhYmFzZV9nZXRfdHlwZSAoKSkAX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0xJQlMgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0xJQlMAZ19pbmZvKC4uLikgZ19sb2cgKEdfTE9HX0RPTUFJTiwgR19MT0dfTEVWRUxfSU5GTywgX19WQV9BUkdTX18pAExEQkxfRElHAEdfRklMRV9BVFRSSUJVVEVfR1ZGU19CQUNLRU5EICJndmZzOjpiYWNrZW5kIgBHX1RZUEVfTUVOVV9BVFRSSUJVVEVfSVRFUiAoZ19tZW51X2F0dHJpYnV0ZV9pdGVyX2dldF90eXBlICgpKQBHX1RIRU1FRF9JQ09OX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfVEhFTUVEX0lDT04sIEdUaGVtZWRJY29uQ2xhc3MpKQBHZXRTdXBlcmNsYXNzAEdfVkFMVUVfTk9DT1BZX0NPTlRFTlRTICgxIDw8IDI3KQBfX2s4IDEAR19QUk9YWV9SRVNPTFZFUihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX1BST1hZX1JFU09MVkVSLCBHUHJveHlSZXNvbHZlcikpAEZfTE9DSyAxAEdfSVNfRklMRV9JQ09OKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfRklMRV9JQ09OKSkAR19UWVBFX0lDT04gKGdfaWNvbl9nZXRfdHlwZSAoKSkAR19UWVBFX0NMT1NVUkUgKGdfY2xvc3VyZV9nZXRfdHlwZSAoKSkAR19PQkpFQ1RfQ0xBU1NfVFlQRShjbGFzcykgKEdfVFlQRV9GUk9NX0NMQVNTIChjbGFzcykpAEdfQUREX1BSSVZBVEVfRFlOQU1JQyhUeXBlTmFtZSkgeyBUeXBlTmFtZSAjI19wcml2YXRlX29mZnNldCA9IHNpemVvZiAoVHlwZU5hbWUgIyNQcml2YXRlKTsgfQBfU0NfR0VUR1JfUl9TSVpFX01BWCBfU0NfR0VUR1JfUl9TSVpFX01BWABHX1RZUEVfUEFSQU1fQk9YRUQgKGdfcGFyYW1fc3BlY190eXBlc1sxNl0pAEpOSV9FREVUQUNIRUQgKC0yKQBfU0NfVjZfSUxQMzJfT0ZGQklHIF9TQ19WNl9JTFAzMl9PRkZCSUcAX19VSU5UOF9UWVBFX18gdW5zaWduZWQgY2hhcgBDYWxsVm9pZE1ldGhvZABHX1NJTVBMRV9QUk9YWV9SRVNPTFZFUl9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX1NJTVBMRV9QUk9YWV9SRVNPTFZFUiwgR1NpbXBsZVByb3h5UmVzb2x2ZXJDbGFzcykpAEdfVkFMVUVfSE9MRFNfQk9PTEVBTih2YWx1ZSkgKEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICgodmFsdWUpLCBHX1RZUEVfQk9PTEVBTikpAF9fSU5UOF9DKGMpIGMAX0dfVFlQRV9DSEkoaXApIChnX3R5cGVfY2hlY2tfaW5zdGFuY2UgKChHVHlwZUluc3RhbmNlKikgaXApKQBDYWxsU3RhdGljRmxvYXRNZXRob2QAR19JU19DSEFSU0VUX0NPTlZFUlRFUihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0NIQVJTRVRfQ09OVkVSVEVSKSkAX19VSU5UUFRSX1RZUEVfXyBsb25nIHVuc2lnbmVkIGludABHX0lOSVRJQUxMWV9VTk9XTkVEX0dFVF9DTEFTUyhvYmplY3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgob2JqZWN0KSwgR19UWVBFX0lOSVRJQUxMWV9VTk9XTkVELCBHSW5pdGlhbGx5VW5vd25lZENsYXNzKSkAX1NDX0xFVkVMMV9JQ0FDSEVfTElORVNJWkUgX1NDX0xFVkVMMV9JQ0FDSEVfTElORVNJWkUAR19TSU1QTEVfQVNZTkNfUkVTVUxUKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfU0lNUExFX0FTWU5DX1JFU1VMVCwgR1NpbXBsZUFzeW5jUmVzdWx0KSkAX19VU0VfQVRGSUxFIDEAX1BPU0lYX0NISUxEX01BWCAyNQBMREJMX01JTl9FWFAgX19MREJMX01JTl9FWFBfXwBfX0ZEU19CSVRTKHNldCkgKChzZXQpLT5fX2Zkc19iaXRzKQBHX1RZUEVfTUFJTl9MT09QIChnX21haW5fbG9vcF9nZXRfdHlwZSAoKSkAR19UWVBFX05PVElGSUNBVElPTiAoZ19ub3RpZmljYXRpb25fZ2V0X3R5cGUgKCkpAERCTF9NSU5fMTBfRVhQIF9fREJMX01JTl8xMF9FWFBfXwBfQ1NfUE9TSVhfVjZfTFA2NF9PRkY2NF9MREZMQUdTIF9DU19QT1NJWF9WNl9MUDY0X09GRjY0X0xERkxBR1MASU5UX01JTiAoLUlOVF9NQVggLSAxKQBpbmRleABHX1RZUEVfREJVU19QUk9QRVJUWV9JTkZPIChnX2RidXNfcHJvcGVydHlfaW5mb19nZXRfdHlwZSAoKSkAU0FfTk9ERUZFUiAweDQwMDAwMDAwAF9fR19DT01QTEVUSU9OX0hfXyAAX19CTEtDTlQ2NF9UX1RZUEUgX19TUVVBRF9UWVBFAFNBX09ORVNIT1QgU0FfUkVTRVRIQU5EAF9CSVRTX1BUSFJFQURUWVBFU19IIDEAanBhc3N3b3JkAGdfb25jZV9pbml0X2VudGVyKGxvY2F0aW9uKSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGxvY2F0aW9uKSA9PSBzaXplb2YgKGdwb2ludGVyKSk7ICh2b2lkKSAoMCA/IChncG9pbnRlcikgKihsb2NhdGlvbikgOiAwKTsgKCFnX2F0b21pY19wb2ludGVyX2dldCAobG9jYXRpb24pICYmIGdfb25jZV9pbml0X2VudGVyIChsb2NhdGlvbikpOyB9KSkAR19UWVBFX01PVU5UIChnX21vdW50X2dldF90eXBlICgpKQBfX0dfU0xJQ0VfSF9fIABHX1RZUEVfTkVUV09SS19BRERSRVNTIChnX25ldHdvcmtfYWRkcmVzc19nZXRfdHlwZSAoKSkAZ19yYW5kb21fYm9vbGVhbigpICgoZ19yYW5kb21faW50ICgpICYgKDEgPDwgMTUpKSAhPSAwKQBMTE9OR19NSU4gKC1MTE9OR19NQVgtMSkAR19JTkxJTkVfREVGSU5FX05FRURFRABHX0lTX0lORVRfQUREUkVTU19DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX0lORVRfQUREUkVTUykpAF9fVkVSU0lPTl9fICI0LjguNSAyMDE1MDYyMyAoUmVkIEhhdCA0LjguNS0yOCkiAF9fYXR0cmlidXRlX3VzZWRfXyBfX2F0dHJpYnV0ZV9fICgoX191c2VkX18pKQBnX25vZGVfcHJldl9zaWJsaW5nKG5vZGUpICgobm9kZSkgPyAoKEdOb2RlKikgKG5vZGUpKS0+cHJldiA6IE5VTEwpAEdfVFlQRV9GSUxURVJfT1VUUFVUX1NUUkVBTSAoZ19maWx0ZXJfb3V0cHV0X3N0cmVhbV9nZXRfdHlwZSAoKSkAUFRIUkVBRF9DQU5DRUxfRElTQUJMRSBQVEhSRUFEX0NBTkNFTF9ESVNBQkxFAF9CU0RfU0laRV9UXyAAR19JU19EUklWRShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIEdfVFlQRV9EUklWRSkpAGdfc2Nhbm5lcl9mb3JlYWNoX3N5bWJvbChzY2FubmVyLGZ1bmMsZGF0YSkgR19TVE1UX1NUQVJUIHsgZ19zY2FubmVyX3Njb3BlX2ZvcmVhY2hfc3ltYm9sICgoc2Nhbm5lciksIDAsIChmdW5jKSwgKGRhdGEpKTsgfSBHX1NUTVRfRU5EAEdfVFlQRV9BUlJBWSAoZ19hcnJheV9nZXRfdHlwZSAoKSkAX0xQNjQgMQBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGMzJfTERGTEFHUyBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGMzJfTERGTEFHUwBzdHJpbmdDbGFzcwBHX1RZUEVfUEFSQU1fRU5VTSAoZ19wYXJhbV9zcGVjX3R5cGVzWzEwXSkAZ19tZW1fY2h1bmtfY3JlYXRlKHR5cGUseCx5KSAoZ19tZW1fY2h1bmtfbmV3IChOVUxMLCBzaXplb2YgKHR5cGUpLCAwLCAwKSkAX19JTlQxNl9UWVBFX18gc2hvcnQgaW50AEdfS0VZX0ZJTEVfREVTS1RPUF9LRVlfVEVSTUlOQUwgIlRlcm1pbmFsIgBHTElCX0FWQUlMQUJMRV9JTl8yXzMyIF9HTElCX0VYVEVSTgBfU0NfRklGTyBfU0NfRklGTwBtYWpvcihkZXYpIGdudV9kZXZfbWFqb3IgKGRldikAdG9TdHJpbmcAX19HX1RDUF9DT05ORUNUSU9OX0hfXyAAR19JU19UTFNfQ0VSVElGSUNBVEUoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9UTFNfQ0VSVElGSUNBVEUpKQBnX3Rlc3RfaW5pdGlhbGl6ZWQoKSAoZ190ZXN0X2NvbmZpZ192YXJzLT50ZXN0X2luaXRpYWxpemVkKQBfX1dJTlRfTUlOX18gMFUAZ190eXBlX2luc3RhbmNlAEdfR1NJWkVfTU9ESUZJRVIgImwiAF9fc2lnbWFzayhzaWcpICgoKHVuc2lnbmVkIGxvbmcgaW50KSAxKSA8PCAoKChzaWcpIC0gMSkgJSAoOCAqIHNpemVvZiAodW5zaWduZWQgbG9uZyBpbnQpKSkpAF9JT1NfSU5QVVQgMQBHX1NUUl9ERUxJTUlURVJTICJfLXw+IDwuIgBfX1VTRV9MQVJHRUZJTEUAR19WT0xVTUVfSURFTlRJRklFUl9LSU5EX0NMQVNTICJjbGFzcyIAX19MREJMX1JFRElSKG5hbWUscHJvdG8pIG5hbWUgcHJvdG8AX1NDX0JDX1NUUklOR19NQVggX1NDX0JDX1NUUklOR19NQVgAR19WQVJJQU5UX0RJQ1RfSU5JVChhc3YpIHsgeyB7IGFzdiwgMzQ4ODY5ODY2OXUsIHsgMCwgfSB9IH0gfQBfX0dfTElTVF9NT0RFTF9IX18gAEdfTUlOSU5UIElOVF9NSU4AR19EQVRBX0lOUFVUX1NUUkVBTV9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0RBVEFfSU5QVVRfU1RSRUFNLCBHRGF0YUlucHV0U3RyZWFtQ2xhc3MpKQBTSUdfRVJSICgoX19zaWdoYW5kbGVyX3QpIC0xKQBfX25lZWRfcHRyZGlmZl90AEdfVFlQRV9WQVJJQU5UX1RZUEUgKGdfdmFyaWFudF90eXBlX2dldF9ndHlwZSAoKSkAZ2ludABfR0xJQl9BVVRPUFRSX0ZVTkNfTkFNRShUeXBlTmFtZSkgZ2xpYl9hdXRvcHRyX2NsZWFudXBfICMjVHlwZU5hbWUAZ19lcnJvciguLi4pIEdfU1RNVF9TVEFSVCB7IGdfbG9nIChHX0xPR19ET01BSU4sIEdfTE9HX0xFVkVMX0VSUk9SLCBfX1ZBX0FSR1NfXyk7IGZvciAoOzspIDsgfSBHX1NUTVRfRU5EAEdfSVNfRFRMU19DTElFTlRfQ09OTkVDVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX0RUTFNfQ0xJRU5UX0NPTk5FQ1RJT04pKQBHX0xPQ0sobmFtZSkgZ19tdXRleF9sb2NrICgmR19MT0NLX05BTUUgKG5hbWUpKQBfX1dDSEFSX01JTl9fICgtX19XQ0hBUl9NQVhfXyAtIDEpAFNBX09OU1RBQ0sgMHgwODAwMDAwMABMREJMX0VQU0lMT04AX19HX1JFTF9IX18gAEdfTU9VTlRfT1BFUkFUSU9OX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9NT1VOVF9PUEVSQVRJT04sIEdNb3VudE9wZXJhdGlvbkNsYXNzKSkAX0lPX3ZhX2xpc3QgX19nbnVjX3ZhX2xpc3QAX0dTZXR0aW5ncwBHX1RZUEVfQk9YRUQgR19UWVBFX01BS0VfRlVOREFNRU5UQUwgKDE4KQBfX0dfTUFSU0hBTF9IX18gAE5ld0dsb2JhbFJlZgBHX1RZUEVfTUVOVSAoZ19tZW51X2dldF90eXBlICgpKQBfX1NUUklORyh4KSAjeABfQ1NfUE9TSVhfVjdfTFBCSUdfT0ZGQklHX0xERkxBR1MgX0NTX1BPU0lYX1Y3X0xQQklHX09GRkJJR19MREZMQUdTAEdfVFlQRV9EQVRBR1JBTV9CQVNFRCAoZ19kYXRhZ3JhbV9iYXNlZF9nZXRfdHlwZSAoKSkAR19JU19UTFNfUEFTU1dPUkQobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9UTFNfUEFTU1dPUkQpKQBHTElCX1VTSU5HX1NZU1RFTV9QUklOVEYgAEdfR0lOVDY0X0ZPUk1BVCAibGkiAEdfVFlQRV9QQVJBTV9HVFlQRSAoZ19wYXJhbV9zcGVjX3R5cGVzWzIxXSkAR19UWVBFX0RCVVNfQVVUSF9PQlNFUlZFUiAoZ19kYnVzX2F1dGhfb2JzZXJ2ZXJfZ2V0X3R5cGUgKCkpAEdfVk9MVU1FX0dFVF9JRkFDRShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0lOVEVSRkFDRSAoKG9iaiksIEdfVFlQRV9WT0xVTUUsIEdWb2x1bWVJZmFjZSkpAEdfREJVU19NRVNTQUdFKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfREJVU19NRVNTQUdFLCBHREJ1c01lc3NhZ2UpKQBfUENfTElOS19NQVggX1BDX0xJTktfTUFYAGdfbGlzdF9uZXh0KGxpc3QpICgobGlzdCkgPyAoKChHTGlzdCAqKShsaXN0KSktPm5leHQpIDogTlVMTCkAR19QQVJBTV9TUEVDX1ZBTFVFX1RZUEUocHNwZWMpIChHX1BBUkFNX1NQRUMgKHBzcGVjKS0+dmFsdWVfdHlwZSkAR0xJQl9NSUNST19WRVJTSU9OIDIAR19UWVBFX0RCVVNfQ0FQQUJJTElUWV9GTEFHUyAoZ19kYnVzX2NhcGFiaWxpdHlfZmxhZ3NfZ2V0X3R5cGUgKCkpAEdfVFlQRV9EQlVTX0NPTk5FQ1RJT05fRkxBR1MgKGdfZGJ1c19jb25uZWN0aW9uX2ZsYWdzX2dldF90eXBlICgpKQBGTFRfTUFOVF9ESUcAX1NDX1RIUkVBRFMgX1NDX1RIUkVBRFMAX19uZWVkX3RpbWVfdCAAX19HX01FTU9SWV9PVVRQVVRfU1RSRUFNX0hfXyAAX1BPU0lYMl9CQ19CQVNFX01BWCA5OQBfX2ZzYmxrY250X3RfZGVmaW5lZCAAb2Zmc2V0b2YoVFlQRSxNRU1CRVIpIF9fYnVpbHRpbl9vZmZzZXRvZiAoVFlQRSwgTUVNQkVSKQBfX3N0dWJfY2hmbGFncyAAX19DUFVfSVNTRVRfUyhjcHUsc2V0c2l6ZSxjcHVzZXRwKSAoX19leHRlbnNpb25fXyAoeyBzaXplX3QgX19jcHUgPSAoY3B1KTsgX19jcHUgPCA4ICogKHNldHNpemUpID8gKCgoKGNvbnN0IF9fY3B1X21hc2sgKikgKChjcHVzZXRwKS0+X19iaXRzKSlbX19DUFVFTFQgKF9fY3B1KV0gJiBfX0NQVU1BU0sgKF9fY3B1KSkpICE9IDAgOiAwOyB9KSkAX1BDX1JFQ19JTkNSX1hGRVJfU0laRSBfUENfUkVDX0lOQ1JfWEZFUl9TSVpFAF9faGF2ZV9zaWdpbmZvX3QgMQBfQlNEX1NJWkVfVF9ERUZJTkVEXyAAR19QUk9QRVJUWV9BQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9QUk9QRVJUWV9BQ1RJT04sIEdQcm9wZXJ0eUFjdGlvbikpAF9QT1NJWF9UUkFDRSAtMQBHX0ZJTEVfQVRUUklCVVRFX1JFQ0VOVF9NT0RJRklFRCAicmVjZW50Ojptb2RpZmllZCIAc2lfc3lzY2FsbCBfc2lmaWVsZHMuX3NpZ3N5cy5fc3lzY2FsbABHX0xJVFRMRV9FTkRJQU4gMTIzNABfX0dfRklMRV9JQ09OX0hfXyAATkdSRUcgMjMAX1NDX1hPUEVOX1NUUkVBTVMgX1NDX1hPUEVOX1NUUkVBTVMAR19UWVBFX0VOVU0gR19UWVBFX01BS0VfRlVOREFNRU5UQUwgKDEyKQBHX01FTlVfQVRUUklCVVRFX0lURVJfR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9NRU5VX0FUVFJJQlVURV9JVEVSLCBHTWVudUF0dHJpYnV0ZUl0ZXJDbGFzcykpAEdfR0lOVDE2X01PRElGSUVSICJoIgBDYWxsTm9udmlydHVhbE9iamVjdE1ldGhvZEEAR19WQVJJQU5UX1RZUEVfU0lHTkFUVVJFICgoY29uc3QgR1ZhcmlhbnRUeXBlICopICJnIikAX0NTX1hCUzVfTFA2NF9PRkY2NF9MSU5URkxBR1MgX0NTX1hCUzVfTFA2NF9PRkY2NF9MSU5URkxBR1MAR0xJQl9ERVBSRUNBVEVEX0lOXzJfNDhfRk9SKGYpIEdMSUJfREVQUkVDQVRFRF9GT1IoZikAR19JU19GSUxFX0VOVU1FUkFUT1JfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9GSUxFX0VOVU1FUkFUT1IpKQBHX1RZUEVfVExTX0JBQ0tFTkQgKGdfdGxzX2JhY2tlbmRfZ2V0X3R5cGUgKCkpAEdfRkxBR1NfQ0xBU1NfVFlQRShjbGFzcykgKEdfVFlQRV9GUk9NX0NMQVNTIChjbGFzcykpAF9fR05VQ19QQVRDSExFVkVMX18gNQBfX0ZEX1pFUk8oZmRzcCkgZG8geyBpbnQgX19kMCwgX19kMTsgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJjbGQ7IHJlcDsgIiBfX0ZEX1pFUk9fU1RPUyA6ICI9YyIgKF9fZDApLCAiPUQiIChfX2QxKSA6ICJhIiAoMCksICIwIiAoc2l6ZW9mIChmZF9zZXQpIC8gc2l6ZW9mIChfX2ZkX21hc2spKSwgIjEiICgmX19GRFNfQklUUyAoZmRzcClbMF0pIDogIm1lbW9yeSIpOyB9IHdoaWxlICgwKQBDYWxsTm9udmlydHVhbE9iamVjdE1ldGhvZFYAc2lnbmF0dXJlAE1BWChhLGIpICgoKGEpID4gKGIpKSA/IChhKSA6IChiKSkAR19UWVBFX1JFU0VSVkVEX0JTRV9MQVNUICg0OCkARlBFX0lOVE9WRiBGUEVfSU5UT1ZGAEdMSUJfQVZBSUxBQkxFX0lOXzJfMjggX0dMSUJfRVhURVJOAEdfU0lNUExFX1BFUk1JU1NJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9TSU1QTEVfUEVSTUlTU0lPTiwgR1NpbXBsZVBlcm1pc3Npb24pKQBHX1RZUEVfUkVTT1VSQ0VfRVJST1IgKGdfcmVzb3VyY2VfZXJyb3JfZ2V0X3R5cGUgKCkpAEdMSUJfREVQUkVDQVRFRF9JTl8yXzM0X0ZPUihmKSBHTElCX0RFUFJFQ0FURURfRk9SKGYpAEdfRklMRV9BVFRSSUJVVEVfSURfRklMRVNZU1RFTSAiaWQ6OmZpbGVzeXN0ZW0iAEdfVElNRV9TUEFOX1NFQ09ORCAoR19HSU5UNjRfQ09OU1RBTlQgKDEwMDAwMDApKQBJTExfQ09QUk9DIElMTF9DT1BST0MAR19JU19GSUxFTkFNRV9DT01QTEVURVIobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9GSUxFTkFNRV9DT01QTEVURVIpKQBfU0NfTEVWRUwyX0NBQ0hFX1NJWkUgX1NDX0xFVkVMMl9DQUNIRV9TSVpFAF9fb2ZmX3RfZGVmaW5lZCAAX19VU0VfWE9QRU4ySyAxAF9fSU5UX0ZBU1Q4X01BWF9fIDEyNwBHX0dTSVpFX0ZPUk1BVCAibHUiAF9TQ19MRVZFTDRfQ0FDSEVfQVNTT0MgX1NDX0xFVkVMNF9DQUNIRV9BU1NPQwBHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX0dFTkVSSUNfTkFNRSAiR2VuZXJpY05hbWUiAF9fR19WT0xVTUVfSF9fIABHX0lTX05BVElWRV9WT0xVTUVfTU9OSVRPUihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX05BVElWRV9WT0xVTUVfTU9OSVRPUikpAF9fbmVlZF9tYnN0YXRlX3QAX0NTX1BPU0lYX1Y2X0xQNjRfT0ZGNjRfTElCUyBfQ1NfUE9TSVhfVjZfTFA2NF9PRkY2NF9MSUJTAF9QT1NJWF9NUV9PUEVOX01BWCA4AEdfVkFMVUVfSE9MRFNfVUxPTkcodmFsdWUpIChHX1RZUEVfQ0hFQ0tfVkFMVUVfVFlQRSAoKHZhbHVlKSwgR19UWVBFX1VMT05HKSkAYWxsb2NhAEdfVFlQRV9QQVJBTV9JTlQ2NCAoZ19wYXJhbV9zcGVjX3R5cGVzWzddKQBfX1VJTlRfTEVBU1QxNl9UWVBFX18gc2hvcnQgdW5zaWduZWQgaW50AF9fU0lfTUFYX1NJWkUgMTI4AEdfREJVU19DT05ORUNUSU9OKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfREJVU19DT05ORUNUSU9OLCBHREJ1c0Nvbm5lY3Rpb24pKQBHX0RBVEFfSU5QVVRfU1RSRUFNKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfREFUQV9JTlBVVF9TVFJFQU0sIEdEYXRhSW5wdXRTdHJlYW0pKQBfX0xEQkxfSEFTX1FVSUVUX05BTl9fIDEAX19VSU5UTUFYX0MoYykgYyAjIyBVTABHX1ZBUklBTlRfUEFSU0VfRVJST1IgKGdfdmFyaWFudF9wYXJzZV9lcnJvcl9xdWFyayAoKSkAR19QUklWQVRFX0ZJRUxEX1AoVHlwZU5hbWUsaW5zdCxmaWVsZF9uYW1lKSBHX1NUUlVDVF9NRU1CRVJfUCAoaW5zdCwgR19QUklWQVRFX09GRlNFVCAoVHlwZU5hbWUsIGZpZWxkX25hbWUpKQBnX0FURVhJVChwcm9jKSAoYXRleGl0IChwcm9jKSkAR19UWVBFX01FTlVfTElOS19JVEVSIChnX21lbnVfbGlua19pdGVyX2dldF90eXBlICgpKQBtaW5vcihkZXYpIGdudV9kZXZfbWlub3IgKGRldikAR19ORVRXT1JLX0FERFJFU1NfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX05FVFdPUktfQUREUkVTUywgR05ldHdvcmtBZGRyZXNzQ2xhc3MpKQBfX0dfUFJPWFlfUkVTT0xWRVJfSF9fIABHX0NTRVRfRElHSVRTICIwMTIzNDU2Nzg5IgBzaV9zdGF0dXMgX3NpZmllbGRzLl9zaWdjaGxkLnNpX3N0YXR1cwBHX1RZUEVfU09DS0VUX0NPTlRST0xfTUVTU0FHRSAoZ19zb2NrZXRfY29udHJvbF9tZXNzYWdlX2dldF90eXBlICgpKQBHX0RCVVNfT0JKRUNUX0dFVF9JRkFDRShvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UoKG8pLCBHX1RZUEVfREJVU19PQkpFQ1QsIEdEQnVzT2JqZWN0SWZhY2UpKQBHX0lTX1NPQ0tFVF9BRERSRVNTX0VOVU1FUkFUT1IobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9TT0NLRVRfQUREUkVTU19FTlVNRVJBVE9SKSkAc3RkZXJyIHN0ZGVycgBHX1RZUEVfUEFSQU1fVUlOVCAoZ19wYXJhbV9zcGVjX3R5cGVzWzRdKQBUTVBfTUFYIDIzODMyOABHX1RZUEVfUEFTU1dPUkRfU0FWRSAoZ19wYXNzd29yZF9zYXZlX2dldF90eXBlICgpKQBHTElCX0RFUFJFQ0FURURfSU5fMl81MCBHTElCX0RFUFJFQ0FURUQAX1BPU0lYMl9MT0NBTEVERUYgX19QT1NJWDJfVEhJU19WRVJTSU9OAGdfc2lnbmFsX2Nvbm5lY3RfYWZ0ZXIoaW5zdGFuY2UsZGV0YWlsZWRfc2lnbmFsLGNfaGFuZGxlcixkYXRhKSBnX3NpZ25hbF9jb25uZWN0X2RhdGEgKChpbnN0YW5jZSksIChkZXRhaWxlZF9zaWduYWwpLCAoY19oYW5kbGVyKSwgKGRhdGEpLCBOVUxMLCBHX0NPTk5FQ1RfQUZURVIpAF9QT1NJWF9JUFY2IDIwMDgwOUwAR19EQVRFX0JBRF9EQVkgMFUAX19HX0dFVFRFWFRfSF9fIABfR192YV9saXN0IF9fZ251Y192YV9saXN0AF9DU19YQlM1X0lMUDMyX09GRjMyX0xJTlRGTEFHUyBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9MSU5URkxBR1MAR19UQVNLX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfVEFTSywgR1Rhc2tDbGFzcykpAEdfU1VCUFJPQ0VTUyhvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX1NVQlBST0NFU1MsIEdTdWJwcm9jZXNzKSkAR19UWVBFX05FVFdPUktfQ09OTkVDVElWSVRZIChnX25ldHdvcmtfY29ubmVjdGl2aXR5X2dldF90eXBlICgpKQBfSU9fU1RESU8gMDQwMDAwAEdfQ09OVkVSVEVSX09VVFBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX0NPTlZFUlRFUl9PVVRQVVRfU1RSRUFNLCBHQ29udmVydGVyT3V0cHV0U3RyZWFtQ2xhc3MpKQBHX1ZBUklBTlRfVFlQRV9NQVlCRSAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAibSoiKQBfU1RSSU5HX0ggMQBfX0dfQVNZTkNfUkVTVUxUX0hfXyAAU0lfVEtJTEwgU0lfVEtJTEwAZ19hdG9taWNfcG9pbnRlcl9vcihhdG9taWMsdmFsKSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6ZW9mIChncG9pbnRlcikpOyAodm9pZCkgKDAgPyAoZ3BvaW50ZXIpICooYXRvbWljKSA6IDApOyAodm9pZCkgKDAgPyAodmFsKSBeICh2YWwpIDogMCk7IChnc2l6ZSkgX19zeW5jX2ZldGNoX2FuZF9vciAoKGF0b21pYyksICh2YWwpKTsgfSkpAF9TQ19UUkFDRV9FVkVOVF9OQU1FX01BWCBfU0NfVFJBQ0VfRVZFTlRfTkFNRV9NQVgAX19VU0VfUE9TSVgxOTk1MDYgMQBHX1JFU09MVkVSX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfUkVTT0xWRVIsIEdSZXNvbHZlckNsYXNzKSkARkxUX01JTl8xMF9FWFAgX19GTFRfTUlOXzEwX0VYUF9fAF9QT1NJWF9BU1lOQ19JTyAxAEdfQ0FMTEJBQ0soZikgKChHQ2FsbGJhY2spIChmKSkAX1BPU0lYX1NQT1JBRElDX1NFUlZFUiAtMQBHX1RZUEVfTkFUSVZFX1ZPTFVNRV9NT05JVE9SIChnX25hdGl2ZV92b2x1bWVfbW9uaXRvcl9nZXRfdHlwZSAoKSkAX0lPX2J1Zl9lbmQAX1NDX1NUUkVBTV9NQVggX1NDX1NUUkVBTV9NQVgAX19GTFRfTUFYX18gMy40MDI4MjM0NjYzODUyODg1OTgxMmUrMzhGAF9fR19ERVBSRUNBVEVEX01BSU5fSF9fIABfX3N0dWJfZ2V0bXNnIABHX1BBUkFNX1NQRUNfVUlOVChwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fVUlOVCwgR1BhcmFtU3BlY1VJbnQpKQBHX01PRFVMRV9JTVBPUlQgZXh0ZXJuAFNJX1VTRVIgU0lfVVNFUgBnX3NjYW5uZXJfdGhhd19zeW1ib2xfdGFibGUoc2Nhbm5lcikgKCh2b2lkKTApAEdfRklMRV9BVFRSSUJVVEVfVElNRV9NT0RJRklFRF9VU0VDICJ0aW1lOjptb2RpZmllZC11c2VjIgBHX0lTX0RCVVNfUFJPWFkobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9EQlVTX1BST1hZKSkAZ19kYXRlX2RheSBnX2RhdGVfZ2V0X2RheQBfX0dDQ19BVE9NSUNfU0hPUlRfTE9DS19GUkVFIDIAR19GSUxFX0FUVFJJQlVURV9GSUxFU1lTVEVNX1JFQURPTkxZICJmaWxlc3lzdGVtOjpyZWFkb25seSIAX1BPU0lYX01PTk9UT05JQ19DTE9DSyAwAF9QQ19BTExPQ19TSVpFX01JTiBfUENfQUxMT0NfU0laRV9NSU4AZ190cnlfbmV3MChzdHJ1Y3RfdHlwZSxuX3N0cnVjdHMpIF9HX05FVyAoc3RydWN0X3R5cGUsIG5fc3RydWN0cywgdHJ5X21hbGxvYzApAEdfSVNfRklMRV9JTlBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9GSUxFX0lOUFVUX1NUUkVBTSkpAF9fT0ZGNjRfVF9UWVBFIF9fU1FVQURfVFlQRQBHX0lTX0ZJTFRFUl9PVVRQVVRfU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfRklMVEVSX09VVFBVVF9TVFJFQU0pKQBfR19UWVBFX0lHQyhpcCxndCxjdCkgKChjdCopICgoKEdUeXBlSW5zdGFuY2UqKSBpcCktPmdfY2xhc3MpKQBMX3RtcG5hbSAyMABfX0NQVV9TRVRTSVpFIDEwMjQAR19UWVBFX1RMU19DRVJUSUZJQ0FURV9GTEFHUyAoZ190bHNfY2VydGlmaWNhdGVfZmxhZ3NfZ2V0X3R5cGUgKCkpAF9faGF2ZV9wdGhyZWFkX2F0dHJfdCAxAEdfRU1CTEVNX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfRU1CTEVNLCBHRW1ibGVtQ2xhc3MpKQBfR19UWVBFX0NJQyhpcCxndCxjdCkgKChjdCopIGdfdHlwZV9jaGVja19pbnN0YW5jZV9jYXN0ICgoR1R5cGVJbnN0YW5jZSopIGlwLCBndCkpAEdfSVNfUE9MTEFCTEVfSU5QVVRfU1RSRUFNKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgR19UWVBFX1BPTExBQkxFX0lOUFVUX1NUUkVBTSkpAEdfVFlQRV9JU19ERUVQX0RFUklWQUJMRSh0eXBlKSAoZ190eXBlX3Rlc3RfZmxhZ3MgKCh0eXBlKSwgR19UWVBFX0ZMQUdfREVFUF9ERVJJVkFCTEUpKQBfX0dDQ19IQVZFX0RXQVJGMl9DRklfQVNNIDEAR19UWVBFX09VVFBVVF9TVFJFQU1fU1BMSUNFX0ZMQUdTIChnX291dHB1dF9zdHJlYW1fc3BsaWNlX2ZsYWdzX2dldF90eXBlICgpKQBfQklUU19USU1FX0ggMQBHX01JTklOVDE2ICgoZ2ludDE2KSAtMHg4MDAwKQBnX2Fzc2VydF9ub25udWxsKGV4cHIpIEdfU1RNVF9TVEFSVCB7IGlmIEdfTElLRUxZICgoZXhwcikgIT0gTlVMTCkgOyBlbHNlIGdfYXNzZXJ0aW9uX21lc3NhZ2UgKEdfTE9HX0RPTUFJTiwgX19GSUxFX18sIF9fTElORV9fLCBHX1NUUkZVTkMsICInIiAjZXhwciAiJyBzaG91bGQgbm90IGJlIE5VTEwiKTsgfSBHX1NUTVRfRU5EAF9TQ19BVEVYSVRfTUFYIF9TQ19BVEVYSVRfTUFYAF9fU1NFX18gMQBfRElSRU5UX0hBVkVfRF9UWVBFIABHX1RMU19EQVRBQkFTRV9QVVJQT1NFX0FVVEhFTlRJQ0FURV9TRVJWRVIgIjEuMy42LjEuNS41LjcuMy4xIgBHX0lORVRfQUREUkVTU19HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0lORVRfQUREUkVTUywgR0luZXRBZGRyZXNzQ2xhc3MpKQBHX0VNQkxFTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX0VNQkxFTSwgR0VtYmxlbSkpAF9fVEhST1cgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fIF9fTEVBRikpAF9OU0lHIDY1AEdfVFlQRV9JT19DSEFOTkVMIChnX2lvX2NoYW5uZWxfZ2V0X3R5cGUgKCkpAEdldEJ5dGVGaWVsZABHX1RZUEVfTU9EVUxFX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChjbGFzcyksIEdfVFlQRV9UWVBFX01PRFVMRSwgR1R5cGVNb2R1bGVDbGFzcykpAF9fR19USU1FUl9IX18gAF9DU19QT1NJWF9WNl9MUEJJR19PRkZCSUdfTElOVEZMQUdTIF9DU19QT1NJWF9WNl9MUEJJR19PRkZCSUdfTElOVEZMQUdTAGdfZGF0YXNldF9zZXRfZGF0YShsLGssZCkgZ19kYXRhc2V0X3NldF9kYXRhX2Z1bGwgKChsKSwgKGspLCAoZCksIE5VTEwpAF9JT19yZWFkX2Jhc2UAX19sb25nX2RvdWJsZV90IGxvbmcgZG91YmxlAEdfSVNfTUVNT1JZX0lOUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX01FTU9SWV9JTlBVVF9TVFJFQU0pKQBfSU9OQkYgMgBfX2NvZGVfbW9kZWxfc21hbGxfXyAxAF9fdW5kZWZfTlJfT1BFTgBHX0NBTkNFTExBQkxFKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfQ0FOQ0VMTEFCTEUsIEdDYW5jZWxsYWJsZSkpAF9fYm9zKHB0cikgX19idWlsdGluX29iamVjdF9zaXplIChwdHIsIF9fVVNFX0ZPUlRJRllfTEVWRUwgPiAxKQBHX1NUUklOR0lGWShtYWNyb19vcl9zdHJpbmcpIEdfU1RSSU5HSUZZX0FSRyAobWFjcm9fb3Jfc3RyaW5nKQBfX1VTRV9GSUxFX09GRlNFVDY0AF9fRkxUX0VQU0lMT05fXyAxLjE5MjA5Mjg5NTUwNzgxMjUwMDAwZS03RgBfR0xJQl9DTEVBTlVQKGZ1bmMpIF9fYXR0cmlidXRlX18oKGNsZWFudXAoZnVuYykpKQBHX0xPR18yX0JBU0VfMTAgKDAuMzAxMDI5OTk1NjYzOTgxMTk1MjEpAE5ld1Nob3J0QXJyYXkAR19UWVBFX1NPQ0tFVF9BRERSRVNTX0VOVU1FUkFUT1IgKGdfc29ja2V0X2FkZHJlc3NfZW51bWVyYXRvcl9nZXRfdHlwZSAoKSkAR19TT0NLRVRfQ0xJRU5UX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChjbGFzcyksIEdfVFlQRV9TT0NLRVRfQ0xJRU5ULCBHU29ja2V0Q2xpZW50Q2xhc3MpKQBodG9iZTY0KHgpIF9fYnN3YXBfNjQgKHgpAFNJR19ERkwgKChfX3NpZ2hhbmRsZXJfdCkgMCkAX1BPU0lYX01BWF9DQU5PTiAyNTUAR19UWVBFX0ZJTEVfUVVFUllfSU5GT19GTEFHUyAoZ19maWxlX3F1ZXJ5X2luZm9fZmxhZ3NfZ2V0X3R5cGUgKCkpAEdfVFlQRV9TT0NLRVRfRkFNSUxZIChnX3NvY2tldF9mYW1pbHlfZ2V0X3R5cGUgKCkpAF9fR19TT0NLRVRfSF9fIABfX1VJTlRfTEVBU1QzMl9NQVhfXyA0Mjk0OTY3Mjk1VQBHX0lORVRfQUREUkVTU19NQVNLX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9JTkVUX0FERFJFU1NfTUFTSywgR0luZXRBZGRyZXNzTWFza0NsYXNzKSkAX19jbG9ja190X2RlZmluZWQgMQBnX3JlbmV3KHN0cnVjdF90eXBlLG1lbSxuX3N0cnVjdHMpIF9HX1JFTkVXIChzdHJ1Y3RfdHlwZSwgbWVtLCBuX3N0cnVjdHMsIHJlYWxsb2MpAEdldEludEFycmF5UmVnaW9uAEdfSU9fVFlQRV9NT0RVTEUgKGdfaW9fbW9kdWxlX2dldF90eXBlICgpKQBTSUdSVE1JTiAoX19saWJjX2N1cnJlbnRfc2lncnRtaW4gKCkpAEdfQkVHSU5fREVDTFMgAEdfQlVGRkVSRURfSU5QVVRfU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9CVUZGRVJFRF9JTlBVVF9TVFJFQU0sIEdCdWZmZXJlZElucHV0U3RyZWFtQ2xhc3MpKQBfQ1NfUE9TSVhfVjZfTFBCSUdfT0ZGQklHX0xERkxBR1MgX0NTX1BPU0lYX1Y2X0xQQklHX09GRkJJR19MREZMQUdTAEdMSUJfVkVSU0lPTl8yXzI4IChHX0VOQ09ERV9WRVJTSU9OICgyLCAyOCkpAEdfS0VZX0ZJTEVfREVTS1RPUF9LRVlfRVhFQyAiRXhlYyIAR19CVUZGRVJFRF9PVVRQVVRfU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9CVUZGRVJFRF9PVVRQVVRfU1RSRUFNLCBHQnVmZmVyZWRPdXRwdXRTdHJlYW1DbGFzcykpAEdfSVNfREJVU19PQkpFQ1RfTUFOQUdFUl9TRVJWRVJfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9EQlVTX09CSkVDVF9NQU5BR0VSX1NFUlZFUikpAEdfREVGSU5FX0JPWEVEX1RZUEUoVHlwZU5hbWUsdHlwZV9uYW1lLGNvcHlfZnVuYyxmcmVlX2Z1bmMpIEdfREVGSU5FX0JPWEVEX1RZUEVfV0lUSF9DT0RFIChUeXBlTmFtZSwgdHlwZV9uYW1lLCBjb3B5X2Z1bmMsIGZyZWVfZnVuYywge30pAEdfVEhFTUVEX0lDT05fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX1RIRU1FRF9JQ09OLCBHVGhlbWVkSWNvbkNsYXNzKSkAR19JU19FTUJMRU1FRF9JQ09OKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfRU1CTEVNRURfSUNPTikpAF9QT1NJWF9TRU1BUEhPUkVTIDIwMDgwOUwAVUlOVF9NQVggKElOVF9NQVggKiAyVSArIDFVKQBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX0lTX0JBQ0tVUCAic3RhbmRhcmQ6OmlzLWJhY2t1cCIATERCTF9NQVhfMTBfRVhQAF9fTE9OR19NQVhfXyA5MjIzMzcyMDM2ODU0Nzc1ODA3TABHZXRCeXRlQXJyYXlSZWdpb24AR19UTFNfQkFDS0VORChvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIEdfVFlQRV9UTFNfQkFDS0VORCwgR1Rsc0JhY2tlbmQpKQBHX01FTU9SWV9PVVRQVVRfU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9NRU1PUllfT1VUUFVUX1NUUkVBTSwgR01lbW9yeU91dHB1dFN0cmVhbUNsYXNzKSkAR19WQVJJQU5UX1RZUEVfRE9VQkxFICgoY29uc3QgR1ZhcmlhbnRUeXBlICopICJkIikAR19FTlVNX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChjbGFzcyksIEdfVFlQRV9FTlVNLCBHRW51bUNsYXNzKSkAR19GSUxFX0FUVFJJQlVURV9UUkFTSF9JVEVNX0NPVU5UICJ0cmFzaDo6aXRlbS1jb3VudCIAX1NDX1RSQUNFX0VWRU5UX0ZJTFRFUiBfU0NfVFJBQ0VfRVZFTlRfRklMVEVSAFNldFN0YXRpY0RvdWJsZUZpZWxkAF9TQ19USFJFQURfUk9CVVNUX1BSSU9fUFJPVEVDVCBfU0NfVEhSRUFEX1JPQlVTVF9QUklPX1BST1RFQ1QAR19LRVlfRklMRV9ERVNLVE9QX0tFWV9UWVBFICJUeXBlIgBfU0NfU0lHUVVFVUVfTUFYIF9TQ19TSUdRVUVVRV9NQVgAR19EUklWRShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIEdfVFlQRV9EUklWRSwgR0RyaXZlKSkAX0JTRF9TT1VSQ0UgMQBnX3RyeV9yZW5ldyhzdHJ1Y3RfdHlwZSxtZW0sbl9zdHJ1Y3RzKSBfR19SRU5FVyAoc3RydWN0X3R5cGUsIG1lbSwgbl9zdHJ1Y3RzLCB0cnlfcmVhbGxvYykAUFRIUkVBRF9DQU5DRUxFRCAoKHZvaWQgKikgLTEpAEdfVFlQRV9CVUZGRVJFRF9PVVRQVVRfU1RSRUFNIChnX2J1ZmZlcmVkX291dHB1dF9zdHJlYW1fZ2V0X3R5cGUgKCkpAF9fR19BTExPQ0FUT1JfSF9fIABHX1RZUEVfREJVU19TRVJWRVJfRkxBR1MgKGdfZGJ1c19zZXJ2ZXJfZmxhZ3NfZ2V0X3R5cGUgKCkpAEdfTkVUV09SS19BRERSRVNTX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfTkVUV09SS19BRERSRVNTLCBHTmV0d29ya0FkZHJlc3NDbGFzcykpAEdfSVNfREJVU19PQkpFQ1RfTUFOQUdFUl9DTElFTlRfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9EQlVTX09CSkVDVF9NQU5BR0VSX0NMSUVOVCkpAEdVSU5UX0ZST01fQkUodmFsKSAoR1VJTlRfVE9fQkUgKHZhbCkpAEdfTE4xMCAyLjMwMjU4NTA5Mjk5NDA0NTY4NDAxNzk5MTQ1NDY4NDM2NDIwNzYwMTEwMTQ4ODYyODgARl9UTE9DSyAyAF9fU1REQ19IT1NURURfXyAxAEdfU09DS0VUX0FERFJFU1NfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX1NPQ0tFVF9BRERSRVNTLCBHU29ja2V0QWRkcmVzc0NsYXNzKSkAZ19ub2RlX2luc2VydF9kYXRhKHBhcmVudCxwb3NpdGlvbixkYXRhKSBnX25vZGVfaW5zZXJ0ICgocGFyZW50KSwgKHBvc2l0aW9uKSwgZ19ub2RlX25ldyAoZGF0YSkpAEdMSUJfVkVSU0lPTl8yXzM2IChHX0VOQ09ERV9WRVJTSU9OICgyLCAzNikpAF9QT1NJWDJfUkVfRFVQX01BWCAyNTUAX19HX1BST1hZX0hfXyAAR1VJTlQzMl9TV0FQX0xFX0JFKHZhbCkgKEdVSU5UMzJfU1dBUF9MRV9CRV9DT05TVEFOVCAodmFsKSkAX0lPU19BVEVORCA0AF9TQ19NRU1MT0NLX1JBTkdFIF9TQ19NRU1MT0NLX1JBTkdFAEFSR19NQVggMTMxMDcyAEdfVFlQRV9EVExTX1NFUlZFUl9DT05ORUNUSU9OIChnX2R0bHNfc2VydmVyX2Nvbm5lY3Rpb25fZ2V0X3R5cGUgKCkpAFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVEIFBUSFJFQURfQ1JFQVRFX0RFVEFDSEVEAF9fR19WRlNfSF9fIABDTERfVFJBUFBFRCBDTERfVFJBUFBFRABHX1RZUEVfVExTX0ZJTEVfREFUQUJBU0UgKGdfdGxzX2ZpbGVfZGF0YWJhc2VfZ2V0X3R5cGUgKCkpAEFCUyhhKSAoKChhKSA8IDApID8gLShhKSA6IChhKSkAR19JU19JTklUQUJMRShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIEdfVFlQRV9JTklUQUJMRSkpAEdfTE9HX0RPTUFJTiAoKGdjaGFyKikgMCkAX19rOF9fIDEAR19TVE1UX0VORCB3aGlsZSAoMCkAR19EQVRBTElTVF9GTEFHU19NQVNLIDB4MwBTZXRMb25nQXJyYXlSZWdpb24AX19HX0RUTFNfU0VSVkVSX0NPTk5FQ1RJT05fSF9fIABHX0ZJTEVfQVRUUklCVVRFX0ZJTEVTWVNURU1fUkVNT1RFICJmaWxlc3lzdGVtOjpyZW1vdGUiAFRSQVBfVFJBQ0UgVFJBUF9UUkFDRQBHX1BST1hZX0FERFJFU1NfRU5VTUVSQVRPUl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfUFJPWFlfQUREUkVTU19FTlVNRVJBVE9SLCBHUHJveHlBZGRyZXNzRW51bWVyYXRvckNsYXNzKSkAX19LRVlfVF9UWVBFIF9fUzMyX1RZUEUAZ19hdXRvKFR5cGVOYW1lKSBfR0xJQl9DTEVBTlVQKF9HTElCX0FVVE9fRlVOQ19OQU1FKFR5cGVOYW1lKSkgVHlwZU5hbWUAX19JTlRfTEVBU1Q2NF9NQVhfXyA5MjIzMzcyMDM2ODU0Nzc1ODA3TABHTElCX1ZFUlNJT05fMl80NCAoR19FTkNPREVfVkVSU0lPTiAoMiwgNDQpKQBHX0lTX0NIQVJTRVRfQ09OVkVSVEVSX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfQ0hBUlNFVF9DT05WRVJURVIpKQBHX1ZBUklBTlRfVFlQRV9VSU5UMTYgKChjb25zdCBHVmFyaWFudFR5cGUgKikgInEiKQBHX0RCVVNfT0JKRUNUX01BTkFHRVJfQ0xJRU5UKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfREJVU19PQkpFQ1RfTUFOQUdFUl9DTElFTlQsIEdEQnVzT2JqZWN0TWFuYWdlckNsaWVudCkpAEdfSVNfRklMRV9FTlVNRVJBVE9SKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfRklMRV9FTlVNRVJBVE9SKSkAX3Nob3J0YnVmAFNldFNob3J0RmllbGQAX3NidWYAUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUiB7IHsgMCwgMCwgMCwgMCwgMCwgX19QVEhSRUFEX1NQSU5TLCB7IDAsIDAgfSB9IH0AX19HX01FU1NBR0VTX0hfXyAAR19HTlVDX05PX0lOU1RSVU1FTlQgX19hdHRyaWJ1dGVfXygoX19ub19pbnN0cnVtZW50X2Z1bmN0aW9uX18pKQBDTE9DS19SRUFMVElNRSAwAEdfSVNfU0lNUExFX1BFUk1JU1NJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9TSU1QTEVfUEVSTUlTU0lPTikpAFJlbGVhc2VTdHJpbmdVVEZDaGFycwBfU0NfV09SRF9CSVQgX1NDX1dPUkRfQklUAEdfR0lOVDY0X01PRElGSUVSICJsIgBHX0RFRklORV9UWVBFX0VYVEVOREVEKFROLHRfbixUX1AsX2ZfLF9DXykgX0dfREVGSU5FX1RZUEVfRVhURU5ERURfQkVHSU4gKFROLCB0X24sIFRfUCwgX2ZfKSB7X0NfO30gX0dfREVGSU5FX1RZUEVfRVhURU5ERURfRU5EKCkAZ19zdHJpbmdfc3ByaW50ZiBnX3N0cmluZ19wcmludGYAX19HX1NJTVBMRV9BU1lOQ19SRVNVTFRfSF9fIABfX1VTRV9QT1NJWABHX1NFVFRJTkdTX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChjbGFzcyksIEdfVFlQRV9TRVRUSU5HUywgR1NldHRpbmdzQ2xhc3MpKQBHX0lORVRfQUREUkVTU19NQVNLX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfSU5FVF9BRERSRVNTX01BU0ssIEdJbmV0QWRkcmVzc01hc2tDbGFzcykpAEdMSUJfVkVSU0lPTl9NQVhfQUxMT1dFRABHX1NUQVRJQ19SRUNfTVVURVhfSU5JVCB7IEdfU1RBVElDX01VVEVYX0lOSVQgfQBfR19ERUZJTkVfVFlQRV9FWFRFTkRFRF9FTkQoKSB9IGdfb25jZV9pbml0X2xlYXZlICgmZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUsIGdfZGVmaW5lX3R5cGVfaWQpOyB9IHJldHVybiBnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZTsgfQBQVEhSRUFEX0NBTkNFTF9ERUZFUlJFRCBQVEhSRUFEX0NBTkNFTF9ERUZFUlJFRABHX0ZJTEVOQU1FX0NPTVBMRVRFUl9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0ZJTEVOQU1FX0NPTVBMRVRFUiwgR0ZpbGVuYW1lQ29tcGxldGVyQ2xhc3MpKQBHX1BEUF9FTkRJQU4gMzQxMgBHX1BST1hZKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfUFJPWFksIEdQcm94eSkpAHNpX2ZkIF9zaWZpZWxkcy5fc2lncG9sbC5zaV9mZABYX09LIDEAX19VSU5UX0xFQVNUOF9NQVhfXyAyNTUAX1NDX0NMT0NLX1NFTEVDVElPTiBfU0NfQ0xPQ0tfU0VMRUNUSU9OAF9JT19CT09MQUxQSEEgMDIwMDAwMABqYXJyYXkAR19UWVBFX0VNQkxFTV9PUklHSU4gKGdfZW1ibGVtX29yaWdpbl9nZXRfdHlwZSAoKSkAR19EQlVTX09CSkVDVF9TS0VMRVRPTl9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0RCVVNfT0JKRUNUX1NLRUxFVE9OLCBHREJ1c09iamVjdFNrZWxldG9uQ2xhc3MpKQBnX2F0b21pY19pbnRfY29tcGFyZV9hbmRfZXhjaGFuZ2UoYXRvbWljLG9sZHZhbCxuZXd2YWwpIChHX0dOVUNfRVhURU5TSU9OICh7IEdfU1RBVElDX0FTU0VSVCAoc2l6ZW9mICooYXRvbWljKSA9PSBzaXplb2YgKGdpbnQpKTsgKHZvaWQpICgwID8gKihhdG9taWMpIF4gKG5ld3ZhbCkgXiAob2xkdmFsKSA6IDApOyAoZ2Jvb2xlYW4pIF9fc3luY19ib29sX2NvbXBhcmVfYW5kX3N3YXAgKChhdG9taWMpLCAob2xkdmFsKSwgKG5ld3ZhbCkpOyB9KSkAX19TVERfVFlQRSB0eXBlZGVmAEdfVFlQRV9SRVNFUlZFRF9HTElCX0xBU1QgKDMxKQBfU0NfVEhSRUFEX1BST0NFU1NfU0hBUkVEIF9TQ19USFJFQURfUFJPQ0VTU19TSEFSRUQAamJvb2xlYW5BcnJheQBHX1BBUkFNX1NQRUNfR0VUX0NMQVNTKHBzcGVjKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKHBzcGVjKSwgR19UWVBFX1BBUkFNLCBHUGFyYW1TcGVjQ2xhc3MpKQBEZXRhY2hDdXJyZW50VGhyZWFkAF9DU19QT1NJWF9WN19MUDY0X09GRjY0X0xERkxBR1MgX0NTX1BPU0lYX1Y3X0xQNjRfT0ZGNjRfTERGTEFHUwBfX1VTRV9YT1BFTjJLAF9fYW1kNjRfXyAxAEdfREVGSU5FX0lOVEVSRkFDRV9XSVRIX0NPREUoVE4sdF9uLFRfUCxfQ18pIF9HX0RFRklORV9JTlRFUkZBQ0VfRVhURU5ERURfQkVHSU4oVE4sIHRfbiwgVF9QKSB7X0NfO30gX0dfREVGSU5FX0lOVEVSRkFDRV9FWFRFTkRFRF9FTkQoKQBHX1RZUEVfRFRMU19DTElFTlRfQ09OTkVDVElPTiAoZ19kdGxzX2NsaWVudF9jb25uZWN0aW9uX2dldF90eXBlICgpKQBHX0lTX0FQUExJQ0FUSU9OX0NPTU1BTkRfTElORShpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX0FQUExJQ0FUSU9OX0NPTU1BTkRfTElORSkpAF9JT19TSE9XQkFTRSAwMjAwAF9TQ19YT1BFTl9YQ1VfVkVSU0lPTiBfU0NfWE9QRU5fWENVX1ZFUlNJT04AR19LRVlfRklMRV9ERVNLVE9QX0tFWV9PTkxZX1NIT1dfSU4gIk9ubHlTaG93SW4iAGdfdWludF9jaGVja2VkX2FkZChkZXN0LGEsYikgX0dMSUJfQ0hFQ0tFRF9BRERfVTMyKGRlc3QsIGEsIGIpAEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DKFR5cGVOYW1lLGZ1bmMpIHR5cGVkZWYgVHlwZU5hbWUgKl9HTElCX0FVVE9QVFJfVFlQRU5BTUUoVHlwZU5hbWUpOyBHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUyBzdGF0aWMgaW5saW5lIHZvaWQgX0dMSUJfQVVUT1BUUl9GVU5DX05BTUUoVHlwZU5hbWUpIChUeXBlTmFtZSAqKl9wdHIpIHsgaWYgKCpfcHRyKSAoZnVuYykgKCpfcHRyKTsgfSBHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlMAR19HT0ZGU0VUX0ZPUk1BVCBHX0dJTlQ2NF9GT1JNQVQAX0ZFQVRVUkVTX0ggMQBfUE9TSVhfUFJJT1JJVElaRURfSU8gMjAwODA5TABzb2Nrc1Byb3h5U2V0dGluZ3MAam9iamVjdEFycmF5AGdfc2Nhbm5lcl9hZGRfc3ltYm9sKHNjYW5uZXIsc3ltYm9sLHZhbHVlKSBHX1NUTVRfU1RBUlQgeyBnX3NjYW5uZXJfc2NvcGVfYWRkX3N5bWJvbCAoKHNjYW5uZXIpLCAwLCAoc3ltYm9sKSwgKHZhbHVlKSk7IH0gR19TVE1UX0VORABHX0lTX0VNQkxFTV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX0VNQkxFTSkpAEdfVFlQRV9URVNUX0RCVVNfRkxBR1MgKGdfdGVzdF9kYnVzX2ZsYWdzX2dldF90eXBlICgpKQBHX0RCVVNfSU5URVJGQUNFX1NLRUxFVE9OKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfREJVU19JTlRFUkZBQ0VfU0tFTEVUT04sIEdEQnVzSW50ZXJmYWNlU2tlbGV0b24pKQBHX1RZUEVfSU5WQUxJRCBHX1RZUEVfTUFLRV9GVU5EQU1FTlRBTCAoMCkAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9JU19WSVJUVUFMICJzdGFuZGFyZDo6aXMtdmlydHVhbCIASk5JV2Vha0dsb2JhbFJlZlR5cGUAQkNfU1RSSU5HX01BWCBfUE9TSVgyX0JDX1NUUklOR19NQVgAZ190ZXN0X3BlcmYoKSAoZ190ZXN0X2NvbmZpZ192YXJzLT50ZXN0X3BlcmYpAEdfS0VZX0ZJTEVfREVTS1RPUF9LRVlfTUlNRV9UWVBFICJNaW1lVHlwZSIAQ2FsbE5vbnZpcnR1YWxCeXRlTWV0aG9kQQBQSVBFX0JVRiA0MDk2AEdfVFlQRV9TT0NLRVRfQ09OTkVDVEFCTEUgKGdfc29ja2V0X2Nvbm5lY3RhYmxlX2dldF90eXBlICgpKQBfUE9TSVhfVFpOQU1FX01BWCA2AF9fUElDX18gMgBHX1BBUkFNX1NQRUNfQ0hBUihwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fQ0hBUiwgR1BhcmFtU3BlY0NoYXIpKQBfX0dMSUJfR09CSkVDVF9IX18gAF9faGFzX2J1aWx0aW4oeCkgMABSZWxlYXNlU2hvcnRBcnJheUVsZW1lbnRzAF9wb3MAQ2FsbE5vbnZpcnR1YWxCeXRlTWV0aG9kVgBfX0RFQzMyX01JTl9fIDFFLTk1REYAX1NDX0VYUFJfTkVTVF9NQVggX1NDX0VYUFJfTkVTVF9NQVgAR0xJQl9BVkFJTEFCTEVfSU5fMl81MCBfR0xJQl9FWFRFUk4AX19uZWVkX3NpemVfdCAAR19UWVBFX1NPQ0tFVF9MSVNURU5FUiAoZ19zb2NrZXRfbGlzdGVuZXJfZ2V0X3R5cGUgKCkpAEdfSVNfU09DS0VUX1NFUlZJQ0VfQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGNsYXNzKSwgR19UWVBFX1NPQ0tFVF9TRVJWSUNFKSkAR19UWVBFX0RSSVZFX1NUQVJUX1NUT1BfVFlQRSAoZ19kcml2ZV9zdGFydF9zdG9wX3R5cGVfZ2V0X3R5cGUgKCkpAF9fVUlOVF9MRUFTVDMyX1RZUEVfXyB1bnNpZ25lZCBpbnQAR19FTkRfREVDTFMgAEdfTUVNT1JZX0lOUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX01FTU9SWV9JTlBVVF9TVFJFQU0sIEdNZW1vcnlJbnB1dFN0cmVhbSkpAF9fR0lPX0dJT19IX0lOU0lERV9fIABHX1ZBUklBTlRfVFlQRV9CWVRFU1RSSU5HX0FSUkFZICgoY29uc3QgR1ZhcmlhbnRUeXBlICopICJhYXkiKQBHSU5UMzJfRlJPTV9MRSh2YWwpIChHSU5UMzJfVE9fTEUgKHZhbCkpAFNJR1ZUQUxSTSAyNgBfX0ZTQkxLQ05UX1RfVFlQRSBfX1NZU0NBTExfVUxPTkdfVFlQRQBGUEVfRkxUU1VCIEZQRV9GTFRTVUIAR1NJWkVfRlJPTV9CRSh2YWwpIChHU0laRV9UT19CRSAodmFsKSkAQ2FsbERvdWJsZU1ldGhvZABfX0dfSU5FVF9BRERSRVNTX0hfXyAAR19UWVBFX0RCVVNfT0JKRUNUX1NLRUxFVE9OIChnX2RidXNfb2JqZWN0X3NrZWxldG9uX2dldF90eXBlICgpKQBodHRwc1Byb3h5U2V0dGluZ3MAX19HX01FTlVfTU9ERUxfSF9fIABfX2Nsb2NraWRfdGltZV90AF9fR19ORVRXT1JLX01PTklUT1JfSF9fIABfSU9fZmlsZV9mbGFncyBfZmxhZ3MAX19ic3dhcF9jb25zdGFudF8xNih4KSAoKHVuc2lnbmVkIHNob3J0IGludCkgKCgoKHgpID4+IDgpICYgMHhmZikgfCAoKCh4KSAmIDB4ZmYpIDw8IDgpKSkAX1NDX1VTRVJfR1JPVVBTX1IgX1NDX1VTRVJfR1JPVVBTX1IAR19JU19UQ1BfV1JBUFBFUl9DT05ORUNUSU9OX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9UQ1BfV1JBUFBFUl9DT05ORUNUSU9OKSkAR19JTklUQUJMRShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIEdfVFlQRV9JTklUQUJMRSwgR0luaXRhYmxlKSkAU0lHQUxSTSAxNABHX1NUQVRJQ19SV19MT0NLX0lOSVQgeyBHX1NUQVRJQ19NVVRFWF9JTklULCBOVUxMLCBOVUxMLCAwLCBGQUxTRSwgMCwgMCB9AEpOSV9WRVJTSU9OXzFfMSAweDAwMDEwMDAxAEdfUkVHRVhfRVJST1IgZ19yZWdleF9lcnJvcl9xdWFyayAoKQBHX1RZUEVfSEFTX1ZBTFVFX1RBQkxFKHR5cGUpIChnX3R5cGVfdmFsdWVfdGFibGVfcGVlayAodHlwZSkgIT0gTlVMTCkAR19UWVBFX1BPSU5URVIgR19UWVBFX01BS0VfRlVOREFNRU5UQUwgKDE3KQBHX1RZUEVfUFJPWFlfQUREUkVTUyAoZ19wcm94eV9hZGRyZXNzX2dldF90eXBlICgpKQBHX0lFRUU3NTRfRE9VQkxFX0JJQVMgKDEwMjMpAF9XQ0hBUl9UX0RFQ0xBUkVEIABfU0NfRklMRV9MT0NLSU5HIF9TQ19GSUxFX0xPQ0tJTkcAX19HX1NPQ0tFVF9DT05UUk9MX01FU1NBR0VfSF9fIABfUE9TSVhfQ19TT1VSQ0UgMjAwODA5TABHX0lTX01FTlVfQVRUUklCVVRFX0lURVJfQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGNsYXNzKSwgR19UWVBFX01FTlVfQVRUUklCVVRFX0lURVIpKQBHX1ZBTFVFX0hPTERTX1VJTlQ2NCh2YWx1ZSkgKEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICgodmFsdWUpLCBHX1RZUEVfVUlOVDY0KSkAX19HX0lPX0VSUk9SX0hfXyAAZ19zdGF0aWNfbXV0ZXhfdHJ5bG9jayhtdXRleCkgZ19tdXRleF90cnlsb2NrIChnX3N0YXRpY19tdXRleF9nZXRfbXV0ZXggKG11dGV4KSkAX0NTX1hCUzVfSUxQMzJfT0ZGQklHX0xJQlMgX0NTX1hCUzVfSUxQMzJfT0ZGQklHX0xJQlMAR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoZ19jbGFzcyxnX3R5cGUpIChfR19UWVBFX0NDVCAoKGdfY2xhc3MpLCAoZ190eXBlKSkpAF9fUFRIUkVBRF9SV0xPQ0tfSU5UX0ZMQUdTX1NIQVJFRCAxAF9fR05VQ19WQV9MSVNUIABHX0lTX0NPTlZFUlRFUl9JTlBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9DT05WRVJURVJfSU5QVVRfU1RSRUFNKSkAR19UWVBFX1ZBTFVFX0FSUkFZIChnX3ZhbHVlX2FycmF5X2dldF90eXBlICgpKQBHX09CSkVDVF9DTEFTU19OQU1FKGNsYXNzKSAoZ190eXBlX25hbWUgKEdfT0JKRUNUX0NMQVNTX1RZUEUgKGNsYXNzKSkpAF9JT19VTkJVRkZFUkVEIDIAR19JU19UTFNfSU5URVJBQ1RJT04obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9UTFNfSU5URVJBQ1RJT04pKQBnX2NodW5rX25ldyh0eXBlLGNodW5rKSAoKHR5cGUgKikgZ19tZW1fY2h1bmtfYWxsb2MgKGNodW5rKSkAX0lPX2ljb252X3QgX0dfaWNvbnZfdABHX0lTX1BBUkFNX1NQRUNfQk9PTEVBTihwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fQk9PTEVBTikpAEdfVFlQRV9BUFBMSUNBVElPTl9GTEFHUyAoZ19hcHBsaWNhdGlvbl9mbGFnc19nZXRfdHlwZSAoKSkAX1NDX0FTWU5DSFJPTk9VU19JTyBfU0NfQVNZTkNIUk9OT1VTX0lPAGdfbWFpbl9xdWl0KGxvb3ApIGdfbWFpbl9sb29wX3F1aXQobG9vcCkAR19UWVBFX0RCVVNfTk9ERV9JTkZPIChnX2RidXNfbm9kZV9pbmZvX2dldF90eXBlICgpKQBHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVChpbnN0YW5jZSxnX3R5cGUsY190eXBlKSAoX0dfVFlQRV9DSUMgKChpbnN0YW5jZSksIChnX3R5cGUpLCBjX3R5cGUpKQBHX0dOVUNfUFJFVFRZX0ZVTkNUSU9OICIiAF9fUFJBR01BX1JFREVGSU5FX0VYVE5BTUUgMQBHX1BBUkFNX1NQRUNfVkFSSUFOVChwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fVkFSSUFOVCwgR1BhcmFtU3BlY1ZhcmlhbnQpKQBHX1BFUk1JU1NJT05fQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGNsYXNzKSwgR19UWVBFX1BFUk1JU1NJT04sIEdQZXJtaXNzaW9uQ2xhc3MpKQBGTFRfUk9VTkRTAEdfSVNfREFUQV9JTlBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9EQVRBX0lOUFVUX1NUUkVBTSkpAF9fSUxQMzJfT0ZGQklHX0xERkxBR1MgIi1tMzIiAF9TQ19NVUxUSV9QUk9DRVNTIF9TQ19NVUxUSV9QUk9DRVNTAEdMSUJfQVZBSUxBQkxFX0lOXzJfNDYgX0dMSUJfRVhURVJOAENhbGxTaG9ydE1ldGhvZEEAZ19ub2RlX3ByZXBlbmRfZGF0YShwYXJlbnQsZGF0YSkgZ19ub2RlX3ByZXBlbmQgKChwYXJlbnQpLCBnX25vZGVfbmV3IChkYXRhKSkAR19EQlVTX1BST1hZKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfREJVU19QUk9YWSwgR0RCdXNQcm94eSkpAEdfSU5FVF9TT0NLRVRfQUREUkVTU19DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfSU5FVF9TT0NLRVRfQUREUkVTUywgR0luZXRTb2NrZXRBZGRyZXNzQ2xhc3MpKQBHX1ZGU19HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX1ZGUywgR1Zmc0NsYXNzKSkAX1NDX1BJSV9PU0lfQ0xUUyBfU0NfUElJX09TSV9DTFRTAEdfVkFSSUFOVF9UWVBFX0hBTkRMRSAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAiaCIpAEdfVFlQRV9TT1VSQ0UgKGdfc291cmNlX2dldF90eXBlICgpKQBDYWxsU2hvcnRNZXRob2RWAEdfTUFYSU5UMzIgKChnaW50MzIpIDB4N2ZmZmZmZmYpAF9fU0laRV9UIABHX1RZUEVfUkVTT1VSQ0VfTE9PS1VQX0ZMQUdTIChnX3Jlc291cmNlX2xvb2t1cF9mbGFnc19nZXRfdHlwZSAoKSkAR19LRVlfRklMRV9ERVNLVE9QX1RZUEVfRElSRUNUT1JZICJEaXJlY3RvcnkiAF9QQ18yX1NZTUxJTktTIF9QQ18yX1NZTUxJTktTAHNpX3B0ciBfc2lmaWVsZHMuX3J0LnNpX3NpZ3ZhbC5zaXZhbF9wdHIAX19HX05PREVfSF9fIABHX0NPTlZFUlRFUl9PVVRQVVRfU1RSRUFNKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfQ09OVkVSVEVSX09VVFBVVF9TVFJFQU0sIEdDb252ZXJ0ZXJPdXRwdXRTdHJlYW0pKQBHX1RZUEVfRklMRV9JTlBVVF9TVFJFQU0gKGdfZmlsZV9pbnB1dF9zdHJlYW1fZ2V0X3R5cGUgKCkpAF9fUkVESVJFQ1RfTlRITkwobmFtZSxwcm90byxhbGlhcykgbmFtZSBwcm90byBfX2FzbV9fIChfX0FTTU5BTUUgKCNhbGlhcykpIF9fVEhST1dOTABfU0NfTEVWRUwzX0NBQ0hFX0FTU09DIF9TQ19MRVZFTDNfQ0FDSEVfQVNTT0MAX1hCUzVfTFA2NF9PRkY2NCAxAEJDX0RJTV9NQVggX1BPU0lYMl9CQ19ESU1fTUFYAF9faGFzX2ZlYXR1cmUoeCkgMABHX1RMU19QQVNTV09SRChvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX1RMU19QQVNTV09SRCwgR1Rsc1Bhc3N3b3JkKSkAX0NTX1BPU0lYX1Y3X0lMUDMyX09GRkJJR19DRkxBR1MgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRkJJR19DRkxBR1MAX19zdHViX2ZjaGZsYWdzIABDTE9DS19NT05PVE9OSUMgMQBHX1BBUkFNX1NQRUNfRkxPQVQocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX0ZMT0FULCBHUGFyYW1TcGVjRmxvYXQpKQBfRElSRU5UX01BVENIRVNfRElSRU5UNjQgMQBHX1RZUEVfREJVU19NRVNTQUdFX0JZVEVfT1JERVIgKGdfZGJ1c19tZXNzYWdlX2J5dGVfb3JkZXJfZ2V0X3R5cGUgKCkpAEdfRU5VTV9DTEFTU19UWVBFKGNsYXNzKSAoR19UWVBFX0ZST01fQ0xBU1MgKGNsYXNzKSkAX1BPU0lYX1RIUkVBRF9QUklPUklUWV9TQ0hFRFVMSU5HIDIwMDgwOUwAX0lPX0JVRlNJWiBfR19CVUZTSVoAR19MT0NLX05BTUUobmFtZSkgZ19fICMjIG5hbWUgIyMgX2xvY2sAandlYWsAX19HQ0NfQVRPTUlDX1dDSEFSX1RfTE9DS19GUkVFIDIAX0lPX3N0ZGVyciAoKF9JT19GSUxFKikoJl9JT18yXzFfc3RkZXJyXykpAEdfVExTX0NPTk5FQ1RJT05fR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9UTFNfQ09OTkVDVElPTiwgR1Rsc0Nvbm5lY3Rpb25DbGFzcykpAEdfU0lNUExFX0FDVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1NJTVBMRV9BQ1RJT04sIEdTaW1wbGVBY3Rpb24pKQBHX0lTX1RMU19JTlRFUkFDVElPTl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX1RMU19JTlRFUkFDVElPTikpAGdfc2l6ZV9jaGVja2VkX2FkZChkZXN0LGEsYikgX0dMSUJfQ0hFQ0tFRF9BRERfVTY0KGRlc3QsIGEsIGIpAF9fRlNGSUxDTlRfVF9UWVBFIF9fU1lTQ0FMTF9VTE9OR19UWVBFAENhbGxTdGF0aWNDaGFyTWV0aG9kQQBHX1NUTVRfU1RBUlQgZG8ATUJfTEVOX01BWCAxNgBHX0lTX09CSkVDVChvYmplY3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfRlVOREFNRU5UQUxfVFlQRSAoKG9iamVjdCksIEdfVFlQRV9PQkpFQ1QpKQBHX1RZUEVfUkVTRVJWRURfVVNFUl9GSVJTVCAoNDkpAEdfVFlQRV9GSUxFX01FQVNVUkVfRkxBR1MgKGdfZmlsZV9tZWFzdXJlX2ZsYWdzX2dldF90eXBlICgpKQBfVF9QVFJESUZGXyAAX0pOSV9JTVBPUlRfT1JfRVhQT1JUXyBKTklJTVBPUlQAZ19hc2NpaV9pc2NudHJsKGMpICgoZ19hc2NpaV90YWJsZVsoZ3VjaGFyKSAoYyldICYgR19BU0NJSV9DTlRSTCkgIT0gMCkAR19UWVBFX0FQUF9JTkZPX01PTklUT1IgKGdfYXBwX2luZm9fbW9uaXRvcl9nZXRfdHlwZSAoKSkAX1NDX0NIQVJfTUFYIF9TQ19DSEFSX01BWABDYWxsU3RhdGljQ2hhck1ldGhvZFYAU1ZfUkVTRVRIQU5EICgxIDw8IDIpAEdfVFlQRV9EQlVTX0lOVEVSRkFDRSAoZ19kYnVzX2ludGVyZmFjZV9nZXRfdHlwZSgpKQBfU0NfQVZQSFlTX1BBR0VTIF9TQ19BVlBIWVNfUEFHRVMAQ0xEX0VYSVRFRCBDTERfRVhJVEVEAEdfVFlQRV9EQVRBX1NUUkVBTV9ORVdMSU5FX1RZUEUgKGdfZGF0YV9zdHJlYW1fbmV3bGluZV90eXBlX2dldF90eXBlICgpKQBHX0dOVUNfRVhURU5TSU9OIF9fZXh0ZW5zaW9uX18AR0xJQl9ERVBSRUNBVEVEX0lOXzJfMjZfRk9SKGYpIEdMSUJfREVQUkVDQVRFRF9GT1IoZikAR19NQVhJTlQ2NCBHX0dJTlQ2NF9DT05TVEFOVCgweDdmZmZmZmZmZmZmZmZmZmYpAF9fVElNRV9UX1RZUEUgX19TWVNDQUxMX1NMT05HX1RZUEUAX19TSVpFT0ZfTE9OR19ET1VCTEVfXyAxNgBfX1NJWkVPRl9ET1VCTEVfXyA4AF9HTElCX0VYVEVSTiBleHRlcm4AX19GTFRfTUFYX0VYUF9fIDEyOABDYWxsU3RhdGljVm9pZE1ldGhvZABHX1ZBX0NPUFlfQVNfQVJSQVkgMQBHX0lTX1BBUkFNX1NQRUNfSU5UNjQocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX0lOVDY0KSkAR19GSUxFX0lDT04obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9GSUxFX0lDT04sIEdGaWxlSWNvbikpAExJVFRMRV9FTkRJQU4gX19MSVRUTEVfRU5ESUFOAGdfbm9kZV9maXJzdF9jaGlsZChub2RlKSAoKG5vZGUpID8gKChHTm9kZSopIChub2RlKSktPmNoaWxkcmVuIDogTlVMTCkAX19GTFRfUkFESVhfXyAyAEdfVFlQRV9VSU5UIEdfVFlQRV9NQUtFX0ZVTkRBTUVOVEFMICg3KQBnX2NsZWFyX29iamVjdChvYmplY3RfcHRyKSBnX2NsZWFyX3BvaW50ZXIgKChvYmplY3RfcHRyKSwgZ19vYmplY3RfdW5yZWYpAEdfRklMRV9BVFRSSUJVVEVfTU9VTlRBQkxFX0NBTl9QT0xMICJtb3VudGFibGU6OmNhbi1wb2xsIgBfX0dfUFJPWFlfQUREUkVTU19FTlVNRVJBVE9SX0hfXyAAX19HX0FSUkFZX0hfXyAAX191bmRlZl9PUEVOX01BWCAAR19FIDIuNzE4MjgxODI4NDU5MDQ1MjM1MzYwMjg3NDcxMzUyNjYyNDk3NzU3MjQ3MDkzNzAwMABTSUdUU1RQIDIwAEdMSUJfTUFKT1JfVkVSU0lPTiAyAENMT0NLX0JPT1RUSU1FX0FMQVJNIDkASUxMX0lMTE9QQyBJTExfSUxMT1BDAEdfSVNfREJVU19PQkpFQ1RfU0tFTEVUT05fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9EQlVTX09CSkVDVF9TS0VMRVRPTikpAEdfSVNfU09DS0VUX0NPTk5FQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9TT0NLRVRfQ09OTkVDVElPTikpAEdfRklMRV9BVFRSSUJVVEVfVFJBU0hfT1JJR19QQVRIICJ0cmFzaDo6b3JpZy1wYXRoIgBHX1RIUkVBREVEX1NPQ0tFVF9TRVJWSUNFX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChjbGFzcyksIEdfVFlQRV9USFJFQURFRF9TT0NLRVRfU0VSVklDRSwgR1RocmVhZGVkU29ja2V0U2VydmljZUNsYXNzKSkAX19hbHdheXNfaW5saW5lIF9faW5saW5lIF9fYXR0cmlidXRlX18gKChfX2Fsd2F5c19pbmxpbmVfXykpAEdfQk9PS01BUktfRklMRV9FUlJPUiAoZ19ib29rbWFya19maWxlX2Vycm9yX3F1YXJrICgpKQBfam1ldGhvZElEAEdfVENQX0NPTk5FQ1RJT05fR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9UQ1BfQ09OTkVDVElPTiwgR1RjcENvbm5lY3Rpb25DbGFzcykpAF9HQ0NfTElNSVRTX0hfIAB2YV9hcmcodixsKSBfX2J1aWx0aW5fdmFfYXJnKHYsbCkAX19HX1RMU19QQVNTV09SRF9IX18gAEdfREVGSU5FX1RZUEVfV0lUSF9QUklWQVRFKFROLHRfbixUX1ApIEdfREVGSU5FX1RZUEVfRVhURU5ERUQgKFROLCB0X24sIFRfUCwgMCwgR19BRERfUFJJVkFURSAoVE4pKQBfX1VMT05HV09SRF9UWVBFIHVuc2lnbmVkIGxvbmcgaW50AEdfTUlOSU5UMzIgKChnaW50MzIpIC0weDgwMDAwMDAwKQBfX0dfVExTX0lOVEVSQUNUSU9OX0hfXyAAR19UWVBFX1ZBUklBTlRfQlVJTERFUiAoZ192YXJpYW50X2J1aWxkZXJfZ2V0X3R5cGUgKCkpAE5ld09iamVjdEEAX19hdHRyaWJ1dGVfbWFsbG9jX18gX19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKQBfU0NfTEVWRUwyX0NBQ0hFX0xJTkVTSVpFIF9TQ19MRVZFTDJfQ0FDSEVfTElORVNJWkUAX19BVE9NSUNfQ09OU1VNRSAxAEdfVFlQRV9BUFBMSUNBVElPTl9DT01NQU5EX0xJTkUgKGdfYXBwbGljYXRpb25fY29tbWFuZF9saW5lX2dldF90eXBlICgpKQBHX1RZUEVfQ09OVkVSVEVSX09VVFBVVF9TVFJFQU0gKGdfY29udmVydGVyX291dHB1dF9zdHJlYW1fZ2V0X3R5cGUgKCkpAEdfSVNfUFJPWFlfQUREUkVTUyhvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX1BST1hZX0FERFJFU1MpKQBfUE9TSVhfVjZfTFA2NF9PRkY2NCAxAF9TQ19TU0laRV9NQVggX1NDX1NTSVpFX01BWABHX1RZUEVfSVNfVkFMVUVfQUJTVFJBQ1QodHlwZSkgKGdfdHlwZV90ZXN0X2ZsYWdzICgodHlwZSksIEdfVFlQRV9GTEFHX1ZBTFVFX0FCU1RSQUNUKSkAX0xGUzY0X0xBUkdFRklMRSAxAFNBX05PQ0xEV0FJVCAyAE5ld09iamVjdFYAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9UWVBFICJzdGFuZGFyZDo6dHlwZSIAR19UWVBFX1RMU19DT05ORUNUSU9OIChnX3Rsc19jb25uZWN0aW9uX2dldF90eXBlICgpKQBHX0lTX0VNQkxFTUVEX0lDT05fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9FTUJMRU1FRF9JQ09OKSkAR19UWVBFX0lTX0lOVEVSRkFDRSh0eXBlKSAoR19UWVBFX0ZVTkRBTUVOVEFMICh0eXBlKSA9PSBHX1RZUEVfSU5URVJGQUNFKQBHX0ZJTEVfQVRUUklCVVRFX1VOSVhfQkxPQ0tfU0laRSAidW5peDo6YmxvY2stc2l6ZSIAX19CWVRFX09SREVSIF9fTElUVExFX0VORElBTgBfU0NfTE9OR19CSVQgX1NDX0xPTkdfQklUAEdfRFRMU19TRVJWRVJfQ09OTkVDVElPTl9HRVRfSU5URVJGQUNFKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0lOVEVSRkFDRSAoKGluc3QpLCBHX1RZUEVfRFRMU19TRVJWRVJfQ09OTkVDVElPTiwgR0R0bHNTZXJ2ZXJDb25uZWN0aW9uSW50ZXJmYWNlKSkAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9ERVNDUklQVElPTiAic3RhbmRhcmQ6OmRlc2NyaXB0aW9uIgBfX0dfVVVJRF9IX18gAEdfSVNfTkVUV09SS19TRVJWSUNFKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfTkVUV09SS19TRVJWSUNFKSkAc2lfdmFsdWUgX3NpZmllbGRzLl9ydC5zaV9zaWd2YWwAX19FTkRfTkFNRVNQQUNFX1NURCAAR19DQU5fSU5MSU5FIABsZTY0dG9oKHgpICh4KQBfQ1NfUE9TSVhfVjdfTFBCSUdfT0ZGQklHX0xJQlMgX0NTX1BPU0lYX1Y3X0xQQklHX09GRkJJR19MSUJTAF9TQ19MRVZFTDFfRENBQ0hFX0xJTkVTSVpFIF9TQ19MRVZFTDFfRENBQ0hFX0xJTkVTSVpFAF9fQVRPTUlDX0FDUVVJUkUgMgBHU1NJWkVfVE9fQkUodmFsKSAoKGdzc2l6ZSkgR0lOVDY0X1RPX0JFICh2YWwpKQBfWE9QRU5fTEVHQUNZIDEAX19HX1NPQ0tFVF9TRVJWSUNFX0hfXyAAR19JU19PQkpFQ1RfQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGNsYXNzKSwgR19UWVBFX09CSkVDVCkpAEdJTlQxNl9UT19CRSh2YWwpICgoZ2ludDE2KSBHVUlOVDE2X1NXQVBfTEVfQkUgKHZhbCkpAF9fTERCTF9NSU5fMTBfRVhQX18gKC00OTMxKQBqYnl0ZQBKTklFbnYAR19UWVBFX0NIRUNLU1VNIChnX2NoZWNrc3VtX2dldF90eXBlICgpKQBHX0VOQ09ERV9WRVJTSU9OKG1ham9yLG1pbm9yKSAoKG1ham9yKSA8PCAxNiB8IChtaW5vcikgPDwgOCkAR0xJQl9WRVJTSU9OXzJfNTIgKEdfRU5DT0RFX1ZFUlNJT04gKDIsIDUyKSkAX19HX0RCVVNfSU5UUk9TUEVDVElPTl9IX18gAEdfSUVFRTc1NF9GTE9BVF9CSUFTICgxMjcpAF9QT1NJWDJfQ0hBUl9URVJNIDIwMDgwOUwAU1RERVJSX0ZJTEVOTyAyAGZwX29mZnNldABHX1RZUEVfTUFJTl9DT05URVhUIChnX21haW5fY29udGV4dF9nZXRfdHlwZSAoKSkAR19QUklPUklUWV9ISUdIX0lETEUgMTAwAFNTX0RJU0FCTEUgU1NfRElTQUJMRQBHX0RCVVNfT0JKRUNUX1BST1hZX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfREJVU19PQkpFQ1RfUFJPWFksIEdEQnVzT2JqZWN0UHJveHlDbGFzcykpAFNldERvdWJsZUZpZWxkAEdfQ0NMT1NVUkVfU1dBUF9EQVRBKGNjbG9zdXJlKSAoKChHQ2xvc3VyZSopIChjY2xvc3VyZSkpLT5kZXJpdmF0aXZlX2ZsYWcpAEdfUkVNT1RFX0FDVElPTl9HUk9VUChpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1JFTU9URV9BQ1RJT05fR1JPVVAsIEdSZW1vdGVBY3Rpb25Hcm91cCkpAF9uZXh0AF9fUFRIUkVBRF9TUElOUyAwLCAwAGdfYml0X3N0b3JhZ2UobnVtYmVyKSBnX2JpdF9zdG9yYWdlX2ltcGwobnVtYmVyKQBHX1RMU19EQVRBQkFTRV9QVVJQT1NFX0FVVEhFTlRJQ0FURV9DTElFTlQgIjEuMy42LjEuNS41LjcuMy4yIgBHX0JZVEVfT1JERVIgR19MSVRUTEVfRU5ESUFOAEdfSVNfQVNZTkNfUkVTVUxUKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgR19UWVBFX0FTWU5DX1JFU1VMVCkpAEdfVFlQRV9JTlNUQU5DRV9HRVRfUFJJVkFURShpbnN0YW5jZSxnX3R5cGUsY190eXBlKSAoKGNfdHlwZSopIGdfdHlwZV9pbnN0YW5jZV9nZXRfcHJpdmF0ZSAoKEdUeXBlSW5zdGFuY2UqKSAoaW5zdGFuY2UpLCAoZ190eXBlKSkpAF9fS0VSTkVMX1NUUklDVF9OQU1FUwBTSUdJTyAyOQBfX0dfVEhSRUFEX0hfXyAAREJMX0RJRyBfX0RCTF9ESUdfXwBGQUxTRSAoMCkAR19JU19JT19TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9JT19TVFJFQU0pKQBfR19UWVBFX0lHSShpcCxndCxjdCkgKChjdCopIGdfdHlwZV9pbnRlcmZhY2VfcGVlayAoKChHVHlwZUluc3RhbmNlKikgaXApLT5nX2NsYXNzLCBndCkpAEdfVFlQRV9TSU1QTEVfQVNZTkNfUkVTVUxUIChnX3NpbXBsZV9hc3luY19yZXN1bHRfZ2V0X3R5cGUgKCkpAGNsYXp6AF9TQ19DX0xBTkdfU1VQUE9SVCBfU0NfQ19MQU5HX1NVUFBPUlQAX0dfSEFWRV9TVF9CTEtTSVpFIGRlZmluZWQgKF9TVEFUQlVGX1NUX0JMS1NJWkUpAF9fUE9TSVgyX1RISVNfVkVSU0lPTiAyMDA4MDlMAF9fREVDSU1BTF9CSURfRk9STUFUX18gMQBTSUdTRUdWIDExAF9fSU5UX0ZBU1QzMl9UWVBFX18gbG9uZyBpbnQAX0NTX1BPU0lYX1Y3X0xQNjRfT0ZGNjRfQ0ZMQUdTIF9DU19QT1NJWF9WN19MUDY0X09GRjY0X0NGTEFHUwBfX0dfVEVTVF9VVElMU19IX18gAF9fYnN3YXBfY29uc3RhbnRfMzIoeCkgKCgoKHgpICYgMHhmZjAwMDAwMCkgPj4gMjQpIHwgKCgoeCkgJiAweDAwZmYwMDAwKSA+PiA4KSB8ICgoKHgpICYgMHgwMDAwZmYwMCkgPDwgOCkgfCAoKCh4KSAmIDB4MDAwMDAwZmYpIDw8IDI0KSkAR19JU19EVExTX0NPTk5FQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9EVExTX0NPTk5FQ1RJT04pKQBfX0RCTF9NSU5fRVhQX18gKC0xMDIxKQBDYWxsT2JqZWN0TWV0aG9kAGppbnQAX19oYXZlX3NpZ3ZhbF90IDEAX19BVE9NSUNfU0VRX0NTVCA1AEdfVFlQRV9QQVJBTV9GTE9BVCAoZ19wYXJhbV9zcGVjX3R5cGVzWzEyXSkAR19TRVRUSU5HU19HRVRfQ0xBU1MoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChpbnN0KSwgR19UWVBFX1NFVFRJTkdTLCBHU2V0dGluZ3NDbGFzcykpAEdfVFlQRV9EQlVTX0FOTk9UQVRJT05fSU5GTyAoZ19kYnVzX2Fubm90YXRpb25faW5mb19nZXRfdHlwZSAoKSkAX19MREJMX01JTl9fIDMuMzYyMTAzMTQzMTEyMDkzNTA2MjZlLTQ5MzJMAF9fVUlOVF9MRUFTVDY0X01BWF9fIDE4NDQ2NzQ0MDczNzA5NTUxNjE1VUwATmV3RG91YmxlQXJyYXkAR19UWVBFX0RBVEFfSU5QVVRfU1RSRUFNIChnX2RhdGFfaW5wdXRfc3RyZWFtX2dldF90eXBlICgpKQBfX0dfU1VCUFJPQ0VTU19IX18gAFNldEZsb2F0QXJyYXlSZWdpb24AR19GSUxFX0FUVFJJQlVURV9GSUxFU1lTVEVNX1RZUEUgImZpbGVzeXN0ZW06OnR5cGUiAF9fdmFfYXJnX3BhY2tfbGVuKCkgX19idWlsdGluX3ZhX2FyZ19wYWNrX2xlbiAoKQBfX0dfQ09OVkVSVEVSX0lOUFVUX1NUUkVBTV9IX18gAF9QT1NJWF9USFJFQURfUFJJT19QUk9URUNUIDIwMDgwOUwAZ19tYWluX2lzX3J1bm5pbmcobG9vcCkgZ19tYWluX2xvb3BfaXNfcnVubmluZyhsb29wKQBqc2hvcnQAU2V0Qnl0ZUFycmF5UmVnaW9uAEdfSVNfTkVUV09SS19BRERSRVNTX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfTkVUV09SS19BRERSRVNTKSkAR19FTUJMRU1FRF9JQ09OX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9FTUJMRU1FRF9JQ09OLCBHRW1ibGVtZWRJY29uQ2xhc3MpKQBfX0dfQ0hBUlNFVF9DT05WRVJURVJfSF9fIABHX1RZUEVfU0lNUExFX0lPX1NUUkVBTSAoZ19zaW1wbGVfaW9fc3RyZWFtX2dldF90eXBlICgpKQBfU0NfTUFQUEVEX0ZJTEVTIF9TQ19NQVBQRURfRklMRVMAX1RfU0laRSAAR19PU19VTklYIABfX0dfUkVHRVhfSF9fIABHX1RZUEVfVk9MVU1FIChnX3ZvbHVtZV9nZXRfdHlwZSAoKSkARkRfWkVSTyhmZHNldHApIF9fRkRfWkVSTyAoZmRzZXRwKQBEVF9VTktOT1dOIERUX1VOS05PV04AR19SRVNPVVJDRV9FUlJPUiAoZ19yZXNvdXJjZV9lcnJvcl9xdWFyayAoKSkAX1NURERFRl9IXyAAcmVzZXJ2ZWQwAF9QQ19DSE9XTl9SRVNUUklDVEVEIF9QQ19DSE9XTl9SRVNUUklDVEVEAExpc3RQcm9jQ29udGV4dABJRlRPRFQobW9kZSkgKCgobW9kZSkgJiAwMTcwMDAwKSA+PiAxMikAX19HX1BBUkFNU1BFQ1NfSF9fIABHX1NPQ0tFVF9TRVJWSUNFX0dFVF9DTEFTUyhpbnN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKGluc3QpLCBHX1RZUEVfU09DS0VUX1NFUlZJQ0UsIEdTb2NrZXRTZXJ2aWNlQ2xhc3MpKQBnX2RhdGVfanVsaWFuIGdfZGF0ZV9nZXRfanVsaWFuAEdfVFlQRV9BU1lOQ19JTklUQUJMRSAoZ19hc3luY19pbml0YWJsZV9nZXRfdHlwZSAoKSkAX0NTX1BPU0lYX1Y3X1dJRFRIX1JFU1RSSUNURURfRU5WUyBfQ1NfVjdfV0lEVEhfUkVTVFJJQ1RFRF9FTlZTAEpOSV9FUlIgKC0xKQBHX1RZUEVfVEVTVF9EQlVTIChnX3Rlc3RfZGJ1c19nZXRfdHlwZSAoKSkAX1NDX1RSQUNFX05BTUVfTUFYIF9TQ19UUkFDRV9OQU1FX01BWABfX1VJTlRfTEVBU1QxNl9NQVhfXyA2NTUzNQBHX0lTX1RMU19DRVJUSUZJQ0FURV9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoY2xhc3MpLCBHX1RZUEVfVExTX0NFUlRJRklDQVRFKSkARlBFX0ZMVE9WRiBGUEVfRkxUT1ZGAEdfVFlQRV9QQVJBTV9TVFJJTkcgKGdfcGFyYW1fc3BlY190eXBlc1sxNF0pAEdfTUVOVV9MSU5LX0lURVJfR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9NRU5VX0xJTktfSVRFUiwgR01lbnVMaW5rSXRlckNsYXNzKSkAX19VSU5UMzJfTUFYX18gNDI5NDk2NzI5NVUAX19HX0RBVEFHUkFNX0JBU0VEX0hfXyAAR0xJQl9ERVBSRUNBVEVEX0lOXzJfNTJfRk9SKGYpIEdMSUJfREVQUkVDQVRFRF9GT1IoZikAX1NDX1NUUkVBTVMgX1NDX1NUUkVBTVMAR19DT05WRVJUX0VSUk9SIGdfY29udmVydF9lcnJvcl9xdWFyaygpAEpOSV9WRVJTSU9OXzFfNiAweDAwMDEwMDA2AEdfSVNfSU5FVF9TT0NLRVRfQUREUkVTUyhvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0lORVRfU09DS0VUX0FERFJFU1MpKQBfU0NfUElJX1hUSSBfU0NfUElJX1hUSQBnX3NsaWNlX25ldyh0eXBlKSAoKHR5cGUqKSBnX3NsaWNlX2FsbG9jIChzaXplb2YgKHR5cGUpKSkAX19HX09CSkVDVF9IX18gAF9fU0laRU9GX1BUUkRJRkZfVF9fIDgAX19XSU5UX01BWF9fIDQyOTQ5NjcyOTVVAF9QT1NJWF9USFJFQURfUFJPQ0VTU19TSEFSRUQgMjAwODA5TABfU0NfTVFfT1BFTl9NQVggX1NDX01RX09QRU5fTUFYAF9fUzE2X1RZUEUgc2hvcnQgaW50AF9fZ2xpYmNfdW5saWtlbHkoY29uZCkgX19idWlsdGluX2V4cGVjdCgoY29uZCksIDApAF9TQ19OR1JPVVBTX01BWCBfU0NfTkdST1VQU19NQVgAR2V0VmVyc2lvbgBKYXZhX29yZ19lY2xpcHNlX2NvcmVfaW50ZXJuYWxfbmV0X3Byb3h5X3VuaXhfVW5peFByb3h5UHJvdmlkZXJfZ2V0R1NldHRpbmdzTm9uUHJveHlIb3N0cwBfU1lTX1NZU01BQ1JPU19IIDEAR19UWVBFX0lTX0lOSVRBQkxFKHR5cGUpIChnX3R5cGVfaXNfYSAoKHR5cGUpLCBHX1RZUEVfSU5JVEFCTEUpKQBTQV9SRVNUQVJUIDB4MTAwMDAwMDAAR19DSEFSU0VUX0NPTlZFUlRFUl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfQ0hBUlNFVF9DT05WRVJURVIsIEdDaGFyc2V0Q29udmVydGVyQ2xhc3MpKQBQT0xMX0lOIFBPTExfSU4AX19PUkRFUl9MSVRUTEVfRU5ESUFOX18gMTIzNABHX1VSSV9SRVNFUlZFRF9DSEFSU19HRU5FUklDX0RFTElNSVRFUlMgIjovPyNbXUAiAEdldENoYXJBcnJheVJlZ2lvbgBHX0lTX0FDVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX0FDVElPTikpAEdfVFlQRV9SRVNFUlZFRF9CU0VfRklSU1QgKDMyKQBfU0laRV9UX0RFQ0xBUkVEIABTSUdFVl9USFJFQURfSUQgU0lHRVZfVEhSRUFEX0lEAEdfRklMRShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIEdfVFlQRV9GSUxFLCBHRmlsZSkpAF9vbGRfb2Zmc2V0AF9DU19MRlM2NF9MSU5URkxBR1MgX0NTX0xGUzY0X0xJTlRGTEFHUwBHZXRTdHJpbmdSZWdpb24AZ190ZXN0X3JhbmRfYml0KCkgKDAgIT0gKGdfdGVzdF9yYW5kX2ludCgpICYgKDEgPDwgMTUpKSkAZ3NpemUAX0NTX1hCUzVfSUxQMzJfT0ZGQklHX0NGTEFHUyBfQ1NfWEJTNV9JTFAzMl9PRkZCSUdfQ0ZMQUdTAENhbGxTdGF0aWNMb25nTWV0aG9kQQBHX1RJTUVfU1BBTl9IT1VSIChHX0dJTlQ2NF9DT05TVEFOVCAoMzYwMDAwMDAwMCkpAHN0ZG91dCBzdGRvdXQAX19HTElCQ09ORklHX0hfXyAAcHRocmVhZF9jbGVhbnVwX3BvcChleGVjdXRlKSBkbyB7IH0gd2hpbGUgKDApOyB9IHdoaWxlICgwKTsgX19wdGhyZWFkX3VucmVnaXN0ZXJfY2FuY2VsICgmX19jYW5jZWxfYnVmKTsgaWYgKGV4ZWN1dGUpIF9fY2FuY2VsX3JvdXRpbmUgKF9fY2FuY2VsX2FyZyk7IH0gd2hpbGUgKDApAEdfU0lNUExFX0FDVElPTl9HUk9VUChpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1NJTVBMRV9BQ1RJT05fR1JPVVAsIEdTaW1wbGVBY3Rpb25Hcm91cCkpAGdfd2Fybl9pZl9mYWlsKGV4cHIpIGRvIHsgaWYgR19MSUtFTFkgKGV4cHIpIDsgZWxzZSBnX3dhcm5fbWVzc2FnZSAoR19MT0dfRE9NQUlOLCBfX0ZJTEVfXywgX19MSU5FX18sIEdfU1RSRlVOQywgI2V4cHIpOyB9IHdoaWxlICgwKQBfRF9FWEFDVF9OQU1MRU4oZCkgKHN0cmxlbiAoKGQpLT5kX25hbWUpKQBHX0xPQ0tfREVGSU5FKG5hbWUpIEdNdXRleCBHX0xPQ0tfTkFNRSAobmFtZSkAQ2FsbFN0YXRpY0xvbmdNZXRob2RWAF9fR19TT1VSQ0VDTE9TVVJFX0hfXyAAR19BU1lOQ19SRVNVTFRfR0VUX0lGQUNFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgob2JqKSwgR19UWVBFX0FTWU5DX1JFU1VMVCwgR0FzeW5jUmVzdWx0SWZhY2UpKQBfUE9TSVhfVEhSRUFEX0tFWVNfTUFYIDEyOABHX0lTX1NPQ0tFVF9BRERSRVNTX0VOVU1FUkFUT1JfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9TT0NLRVRfQUREUkVTU19FTlVNRVJBVE9SKSkARl9VTE9DSyAwAF9fR19UTFNfQ09OTkVDVElPTl9IX18gAF9fR19EQlVTX01FTlVfTU9ERUxfSF9fIABHX1RZUEVfTElTVF9NT0RFTCBnX2xpc3RfbW9kZWxfZ2V0X3R5cGUgKCkAR1BPSU5URVJfVE9fU0laRShwKSAoKGdzaXplKSAocCkpAEdfRklMRV9JTkZPX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9GSUxFX0lORk8sIEdGaWxlSW5mb0NsYXNzKSkAX19HX0VNQkxFTUVEX0lDT05fSF9fIABfX0dfQklUTE9DS19IX18gAENhbGxOb252aXJ0dWFsRmxvYXRNZXRob2QAR19JU19JTkVUX1NPQ0tFVF9BRERSRVNTX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfSU5FVF9TT0NLRVRfQUREUkVTUykpAFNJR0JVUyA3AF9fQ0xPQ0tfVF9UWVBFIF9fU1lTQ0FMTF9TTE9OR19UWVBFAENMT0NLX01PTk9UT05JQ19DT0FSU0UgNgBHZXRTdGF0aWNPYmplY3RGaWVsZABHX1RMU19TRVJWRVJfQ09OTkVDVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1RMU19TRVJWRVJfQ09OTkVDVElPTiwgR1Rsc1NlcnZlckNvbm5lY3Rpb24pKQBYQVRUUl9OQU1FX01BWCAyNTUAZ19hYm9ydCgpIGFib3J0ICgpAF9fREJMX01BTlRfRElHX18gNTMAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9BTExPQ0FURURfU0laRSAic3RhbmRhcmQ6OmFsbG9jYXRlZC1zaXplIgBHX0JZVEVTX0lDT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9CWVRFU19JQ09OLCBHQnl0ZXNJY29uKSkATERCTF9NSU4gX19MREJMX01JTl9fAEdfVFlQRV9CWVRFX0FSUkFZIChnX2J5dGVfYXJyYXlfZ2V0X3R5cGUgKCkpAFBUSFJFQURfS0VZU19NQVggMTAyNABHX1RZUEVfUEFSQU1fT1ZFUlJJREUgKGdfcGFyYW1fc3BlY190eXBlc1syMF0pAF9TQ19USFJFQURfUFJJT19JTkhFUklUIF9TQ19USFJFQURfUFJJT19JTkhFUklUAGdfZGF0ZV9kYXlfb2ZfeWVhciBnX2RhdGVfZ2V0X2RheV9vZl95ZWFyAEZMVF9NQVhfMTBfRVhQAGdfYXRvbWljX2ludF9kZWNfYW5kX3Rlc3QoYXRvbWljKSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6ZW9mIChnaW50KSk7ICh2b2lkKSAoMCA/ICooYXRvbWljKSBeICooYXRvbWljKSA6IDApOyBfX3N5bmNfZmV0Y2hfYW5kX3N1YiAoKGF0b21pYyksIDEpID09IDE7IH0pKQBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGQklHX0xJTlRGTEFHUyBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGQklHX0xJTlRGTEFHUwBHX0lTX05FVFdPUktfTU9OSVRPUihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX05FVFdPUktfTU9OSVRPUikpAF9TQ19DSElMRF9NQVggX1NDX0NISUxEX01BWABUaHJvdwBHX0lTX1BBUkFNX1NQRUNfUE9JTlRFUihwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fUE9JTlRFUikpAF9TQ19DX0xBTkdfU1VQUE9SVF9SIF9TQ19DX0xBTkdfU1VQUE9SVF9SAEdfSVNfVExTX1NFUlZFUl9DT05ORUNUSU9OKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKGluc3QpLCBHX1RZUEVfVExTX1NFUlZFUl9DT05ORUNUSU9OKSkAR19UWVBFX0ZJTEVfT1VUUFVUX1NUUkVBTSAoZ19maWxlX291dHB1dF9zdHJlYW1fZ2V0X3R5cGUgKCkpAEdfTU9VTlRfR0VUX0lGQUNFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgob2JqKSwgR19UWVBFX01PVU5ULCBHTW91bnRJZmFjZSkpAEpOSV9DT01NSVQgMQBHX1RDUF9XUkFQUEVSX0NPTk5FQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9UQ1BfV1JBUFBFUl9DT05ORUNUSU9OLCBHVGNwV3JhcHBlckNvbm5lY3Rpb24pKQBHSU5UX1RPX0xFKHZhbCkgKChnaW50KSBHSU5UMzJfVE9fTEUgKHZhbCkpAF9fRlNJRF9UX1RZUEUgc3RydWN0IHsgaW50IF9fdmFsWzJdOyB9AEdfSVNfVFlQRV9NT0RVTEUobW9kdWxlKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChtb2R1bGUpLCBHX1RZUEVfVFlQRV9NT0RVTEUpKQBfU0NfVUxPTkdfTUFYIF9TQ19VTE9OR19NQVgAX1NDX09QRU5fTUFYIF9TQ19PUEVOX01BWABHX01BWFVTSE9SVCBVU0hSVF9NQVgAX0lPX3NhdmVfZW5kAEZQRV9GTFRSRVMgRlBFX0ZMVFJFUwBfR19UWVBFX0NDVChjcCxndCkgKEdfR05VQ19FWFRFTlNJT04gKHsgR1R5cGVDbGFzcyAqX19jbGFzcyA9IChHVHlwZUNsYXNzKikgY3A7IEdUeXBlIF9fdCA9IGd0OyBnYm9vbGVhbiBfX3I7IGlmICghX19jbGFzcykgX19yID0gRkFMU0U7IGVsc2UgaWYgKF9fY2xhc3MtPmdfdHlwZSA9PSBfX3QpIF9fciA9IFRSVUU7IGVsc2UgX19yID0gZ190eXBlX2NoZWNrX2NsYXNzX2lzX2EgKF9fY2xhc3MsIF9fdCk7IF9fcjsgfSkpAENIQVJfQklUIF9fQ0hBUl9CSVRfXwBfX0dfTU9VTlRfT1BFUkFUSU9OX0hfXyAAR19VUklfUkVTRVJWRURfQ0hBUlNfU1VCQ09NUE9ORU5UX0RFTElNSVRFUlMgIiEkJicoKSorLDs9IgBfRkxPQVRfSF9fXyAAX19MUDY0X09GRjY0X0NGTEFHUyAiLW02NCIAR19JU19QQVJBTV9TUEVDX0xPTkcocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX0xPTkcpKQBHX09CSkVDVF9UWVBFKG9iamVjdCkgKEdfVFlQRV9GUk9NX0lOU1RBTkNFIChvYmplY3QpKQBnX3Rlc3RfdHJhcF9hc3NlcnRfc3RkZXJyKHNlcnJwYXR0ZXJuKSBnX3Rlc3RfdHJhcF9hc3NlcnRpb25zIChHX0xPR19ET01BSU4sIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DLCA0LCBzZXJycGF0dGVybikAQ0hFQ0tfTlVMTChYKSB7IGlmICgoWCkgPT0gTlVMTCkgZnByaW50ZiAoc3RkZXJyLCJKTkkgZXJyb3IgYXQgbGluZSAlZFxuIiwgX19MSU5FX18pOyB9AF9TQ19DSEFSQ0xBU1NfTkFNRV9NQVggX1NDX0NIQVJDTEFTU19OQU1FX01BWABHX0dOVUNfUFVSRSBfX2F0dHJpYnV0ZV9fKChfX3B1cmVfXykpAF9fR19EQlVTX0FERFJFU1NfSF9fIABnX3BvaW50ZXJfYml0X3VubG9jayhhZGRyZXNzLGxvY2tfYml0KSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGFkZHJlc3MpID09IHNpemVvZiAoZ3BvaW50ZXIpKTsgZ19wb2ludGVyX2JpdF91bmxvY2sgKChhZGRyZXNzKSwgKGxvY2tfYml0KSk7IH0pKQBHVUlOVDMyX1NXQVBfTEVfQkVfQ09OU1RBTlQodmFsKSAoKGd1aW50MzIpICggKCgoZ3VpbnQzMikgKHZhbCkgJiAoZ3VpbnQzMikgMHgwMDAwMDBmZlUpIDw8IDI0KSB8ICgoKGd1aW50MzIpICh2YWwpICYgKGd1aW50MzIpIDB4MDAwMGZmMDBVKSA8PCA4KSB8ICgoKGd1aW50MzIpICh2YWwpICYgKGd1aW50MzIpIDB4MDBmZjAwMDBVKSA+PiA4KSB8ICgoKGd1aW50MzIpICh2YWwpICYgKGd1aW50MzIpIDB4ZmYwMDAwMDBVKSA+PiAyNCkpKQBHT0JKRUNUX1ZBUiBfR0xJQl9FWFRFUk4AR19EQlVTX09CSkVDVF9NQU5BR0VSX0NMSUVOVF9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfREJVU19PQkpFQ1RfTUFOQUdFUl9DTElFTlQsIEdEQnVzT2JqZWN0TWFuYWdlckNsaWVudENsYXNzKSkAR19UWVBFX0NIQVJTRVRfQ09OVkVSVEVSIChnX2NoYXJzZXRfY29udmVydGVyX2dldF90eXBlICgpKQBHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX1VSTCAiVVJMIgBfX0dfQ0hBUlNFVF9IX18gAEdfSVNfSU5QVVRfU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfSU5QVVRfU1RSRUFNKSkAR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TIF9QcmFnbWEgKCJHQ0MgZGlhZ25vc3RpYyBwb3AiKQBfU0NfVEhSRUFEX0NQVVRJTUUgX1NDX1RIUkVBRF9DUFVUSU1FAF9fRkxUX0VWQUxfTUVUSE9EX18gMABHX0lTX0RCVVNfT0JKRUNUX1BST1hZKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfREJVU19PQkpFQ1RfUFJPWFkpKQBHU0laRV9UT19MRSh2YWwpICgoZ3NpemUpIEdVSU5UNjRfVE9fTEUgKHZhbCkpAF9DU19YQlM1X0xQQklHX09GRkJJR19MSUJTIF9DU19YQlM1X0xQQklHX09GRkJJR19MSUJTAF9fSU5UX0ZBU1Q2NF9UWVBFX18gbG9uZyBpbnQAR19JU19OQVRJVkVfVk9MVU1FX01PTklUT1JfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9OQVRJVkVfVk9MVU1FX01PTklUT1IpKQBBSU9fUFJJT19ERUxUQV9NQVggMjAAZ19hcnJheV9pbmRleChhLHQsaSkgKCgodCopICh2b2lkICopIChhKS0+ZGF0YSkgWyhpKV0pAEdfQ1NFVF9MQVRJTkMgIlwzMDBcMzAxXDMwMlwzMDNcMzA0XDMwNVwzMDYiICJcMzA3XDMxMFwzMTFcMzEyXDMxM1wzMTRcMzE1XDMxNlwzMTdcMzIwIiAiXDMyMVwzMjJcMzIzXDMyNFwzMjVcMzI2IiAiXDMzMFwzMzFcMzMyXDMzM1wzMzRcMzM1XDMzNiIAX1NDX1NBVkVEX0lEUyBfU0NfU0FWRURfSURTAEdfREVGSU5FX1BPSU5URVJfVFlQRShUeXBlTmFtZSx0eXBlX25hbWUpIEdfREVGSU5FX1BPSU5URVJfVFlQRV9XSVRIX0NPREUgKFR5cGVOYW1lLCB0eXBlX25hbWUsIHt9KQBnX3VpbnQ2NF9jaGVja2VkX2FkZChkZXN0LGEsYikgX0dMSUJfQ0hFQ0tFRF9BRERfVTY0KGRlc3QsIGEsIGIpAEdfSVNfREJVU19BQ1RJT05fR1JPVVAoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9EQlVTX0FDVElPTl9HUk9VUCkpAF9TQ19OTF9MQU5HTUFYIF9TQ19OTF9MQU5HTUFYAF9fYXR0cmlidXRlX2RlcHJlY2F0ZWRfXyBfX2F0dHJpYnV0ZV9fICgoX19kZXByZWNhdGVkX18pKQBHTElCX0FWQUlMQUJMRV9JTl9BTEwgX0dMSUJfRVhURVJOAF9fbmVlZF9zaWdfYXRvbWljX3QAX1NDX0JBU0UgX1NDX0JBU0UAR19UWVBFX0JVRkZFUkVEX0lOUFVUX1NUUkVBTSAoZ19idWZmZXJlZF9pbnB1dF9zdHJlYW1fZ2V0X3R5cGUgKCkpAF9QT1NJWF9DSE9XTl9SRVNUUklDVEVEIDAAR19WRlNfRVhURU5TSU9OX1BPSU5UX05BTUUgImdpby12ZnMiAEdfSVNfVEhFTUVEX0lDT04obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9USEVNRURfSUNPTikpAF9fR19TRVFVRU5DRV9IX18gAGdfZGF0YWxpc3Rfc2V0X2RhdGEoZGwsayxkKSBnX2RhdGFsaXN0X3NldF9kYXRhX2Z1bGwgKChkbCksIChrKSwgKGQpLCBOVUxMKQBTSUdQUk9GIDI3AEdMSUJfREVQUkVDQVRFRF9JTl8yXzMyIEdMSUJfREVQUkVDQVRFRABfX2ZsZXhhcnIgW10AR19NRU5VX0xJTktfSVRFUihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX01FTlVfTElOS19JVEVSLCBHTWVudUxpbmtJdGVyKSkAR19UWVBFX0RCVVNfUFJPUEVSVFlfSU5GT19GTEFHUyAoZ19kYnVzX3Byb3BlcnR5X2luZm9fZmxhZ3NfZ2V0X3R5cGUgKCkpAGdfdGVzdF90cmFwX2Fzc2VydF9wYXNzZWQoKSBnX3Rlc3RfdHJhcF9hc3NlcnRpb25zIChHX0xPR19ET01BSU4sIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DLCAwLCAwKQBfSU9fSVNfRklMRUJVRiAweDIwMDAAQXR0YWNoQ3VycmVudFRocmVhZEFzRGFlbW9uAF9fR19DT05URU5UX1RZUEVfSF9fIABfU0NfQUlPX01BWCBfU0NfQUlPX01BWABERUxBWVRJTUVSX01BWCAyMTQ3NDgzNjQ3AF9fR0NDX0FUT01JQ19DSEFSMTZfVF9MT0NLX0ZSRUUgMgBnX2JpdF9udGhfbHNmKG1hc2ssbnRoX2JpdCkgZ19iaXRfbnRoX2xzZl9pbXBsKG1hc2ssIG50aF9iaXQpAEdldE9iamVjdEZpZWxkAEdfU0lNUExFX1BST1hZX1JFU09MVkVSX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9TSU1QTEVfUFJPWFlfUkVTT0xWRVIsIEdTaW1wbGVQcm94eVJlc29sdmVyQ2xhc3MpKQBTZXRTdGF0aWNTaG9ydEZpZWxkAF9fR19CQVNFNjRfSF9fIABfX0FUT01JQ19SRUxBWEVEIDAAX1hPUEVOX0NSWVBUIDEAX19EQkxfSEFTX0RFTk9STV9fIDEAX19HX0RBVEFTRVRfSF9fIABTZXRJbnRBcnJheVJlZ2lvbgBfU0NfTEVWRUwyX0NBQ0hFX0FTU09DIF9TQ19MRVZFTDJfQ0FDSEVfQVNTT0MAX19NT0RFX1RfVFlQRSBfX1UzMl9UWVBFAEdVSU5UNjRfRlJPTV9MRSh2YWwpIChHVUlOVDY0X1RPX0xFICh2YWwpKQBHX0lTX1BBUkFNX1NQRUNfT0JKRUNUKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9PQkpFQ1QpKQBfU0NfTVFfUFJJT19NQVggX1NDX01RX1BSSU9fTUFYAF9fU0laRU9GX1BUSFJFQURfQVRUUl9UIDU2AF9QT1NJWF9USFJFQURTIDIwMDgwOUwAR19UWVBFX1JFU09MVkVSX0VSUk9SIChnX3Jlc29sdmVyX2Vycm9yX2dldF90eXBlICgpKQBHZXRPYmplY3RSZWZUeXBlAG5wZkhvc3RzQXJyYXkAR19ERUNMQVJFX0ZJTkFMX1RZUEUoTW9kdWxlT2JqTmFtZSxtb2R1bGVfb2JqX25hbWUsTU9EVUxFLE9CSl9OQU1FLFBhcmVudE5hbWUpIEdUeXBlIG1vZHVsZV9vYmpfbmFtZSAjI19nZXRfdHlwZSAodm9pZCk7IEdfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TIHR5cGVkZWYgc3RydWN0IF8gIyNNb2R1bGVPYmpOYW1lIE1vZHVsZU9iak5hbWU7IHR5cGVkZWYgc3RydWN0IHsgUGFyZW50TmFtZSAjI0NsYXNzIHBhcmVudF9jbGFzczsgfSBNb2R1bGVPYmpOYW1lICMjQ2xhc3M7IF9HTElCX0RFRklORV9BVVRPUFRSX0NIQUlOVVAgKE1vZHVsZU9iak5hbWUsIFBhcmVudE5hbWUpIHN0YXRpYyBpbmxpbmUgTW9kdWxlT2JqTmFtZSAqIE1PRFVMRSAjI18gIyNPQkpfTkFNRSAoZ3BvaW50ZXIgcHRyKSB7IHJldHVybiBHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAocHRyLCBtb2R1bGVfb2JqX25hbWUgIyNfZ2V0X3R5cGUgKCksIE1vZHVsZU9iak5hbWUpOyB9IHN0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4gTU9EVUxFICMjX0lTXyAjI09CSl9OQU1FIChncG9pbnRlciBwdHIpIHsgcmV0dXJuIEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFIChwdHIsIG1vZHVsZV9vYmpfbmFtZSAjI19nZXRfdHlwZSAoKSk7IH0gR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TAEdfU09DS0VUX1NFUlZJQ0UoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9TT0NLRVRfU0VSVklDRSwgR1NvY2tldFNlcnZpY2UpKQBfSU9TX0FQUEVORCA4AF9DU19QT1NJWF9WNl9JTFAzMl9PRkYzMl9MSU5URkxBR1MgX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0xJTlRGTEFHUwBfUE9TSVgyX0NPTExfV0VJR0hUU19NQVggMgBHTElCX0FWQUlMQUJMRV9JTl8yXzM0IF9HTElCX0VYVEVSTgBHX1RZUEVfU0lNUExFX0FDVElPTl9HUk9VUCAoZ19zaW1wbGVfYWN0aW9uX2dyb3VwX2dldF90eXBlICgpKQBTSUdGUEUgOABHX1BPTExBQkxFX0lOUFVUX1NUUkVBTShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIEdfVFlQRV9QT0xMQUJMRV9JTlBVVF9TVFJFQU0sIEdQb2xsYWJsZUlucHV0U3RyZWFtKSkAR19UWVBFX1JFR0VYIChnX3JlZ2V4X2dldF90eXBlICgpKQBfU1lTX1NFTEVDVF9IIDEAR19WQUxVRV9IT0xEU19FTlVNKHZhbHVlKSAoR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKCh2YWx1ZSksIEdfVFlQRV9FTlVNKSkAX0JTRF9XQ0hBUl9UXyAAR19UWVBFX0ZJTEVfTU9OSVRPUl9GTEFHUyAoZ19maWxlX21vbml0b3JfZmxhZ3NfZ2V0X3R5cGUgKCkpAEpOSV9WRVJTSU9OXzFfNCAweDAwMDEwMDA0AEdfVkFSSUFOVF9UWVBFX0FOWSAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAiKiIpAEdfVFlQRV9JTklUSUFMTFlfVU5PV05FRCAoZ19pbml0aWFsbHlfdW5vd25lZF9nZXRfdHlwZSgpKQBHX1NFVFRJTkdTKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKGluc3QpLCBHX1RZUEVfU0VUVElOR1MsIEdTZXR0aW5ncykpAEdfSEFWRV9HTlVDX1ZBUkFSR1MgMQBDYWxsU3RhdGljRG91YmxlTWV0aG9kAF9fR19NRU5VX0hfXyAAQ2FsbExvbmdNZXRob2QAR19UWVBFX0ZVTkRBTUVOVEFMX1NISUZUICgyKQBfUE9TSVhfVkRJU0FCTEUgJ1wwJwBnX3JldHVybl9pZl9mYWlsKGV4cHIpIEdfU1RNVF9TVEFSVHsgaWYgR19MSUtFTFkoZXhwcikgeyB9IGVsc2UgeyBnX3JldHVybl9pZl9mYWlsX3dhcm5pbmcgKEdfTE9HX0RPTUFJTiwgR19TVFJGVU5DLCAjZXhwcik7IHJldHVybjsgfTsgfUdfU1RNVF9FTkQAX1BPU0lYX1RIUkVBRF9ST0JVU1RfUFJJT19QUk9URUNUIC0xAFVTSFJUX01BWCAoU0hSVF9NQVggKiAyICsgMSkAX19TVERfVFlQRQBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX1NZTUxJTktfVEFSR0VUICJzdGFuZGFyZDo6c3ltbGluay10YXJnZXQiAEdfSVNfU09DS0VUKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKGluc3QpLCBHX1RZUEVfU09DS0VUKSkAR19UWVBFX0lTX0RFUklWRUQodHlwZSkgKCh0eXBlKSA+IEdfVFlQRV9GVU5EQU1FTlRBTF9NQVgpAF9CSVRTX1NFVEpNUF9IIDEAR2V0SW50QXJyYXlFbGVtZW50cwBHX0lOSVRJQUxMWV9VTk9XTkVEX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChjbGFzcyksIEdfVFlQRV9JTklUSUFMTFlfVU5PV05FRCwgR0luaXRpYWxseVVub3duZWRDbGFzcykpAF9JT19mZW9mX3VubG9ja2VkKF9fZnApICgoKF9fZnApLT5fZmxhZ3MgJiBfSU9fRU9GX1NFRU4pICE9IDApAEdfTUVOVV9BVFRSSUJVVEVfSVRFUl9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoY2xhc3MpLCBHX1RZUEVfTUVOVV9BVFRSSUJVVEVfSVRFUiwgR01lbnVBdHRyaWJ1dGVJdGVyQ2xhc3MpKQBHZXRNZXRob2RJRABHU1NJWkVfVE9fTEUodmFsKSAoKGdzc2l6ZSkgR0lOVDY0X1RPX0xFICh2YWwpKQBHX1RZUEVfSVNfVkFMVUVfVFlQRSh0eXBlKSAoZ190eXBlX2NoZWNrX2lzX3ZhbHVlX3R5cGUgKHR5cGUpKQBHX1RZUEVfREJVU19PQkpFQ1QgKGdfZGJ1c19vYmplY3RfZ2V0X3R5cGUoKSkAX19JTlRfRkFTVDhfVFlQRV9fIHNpZ25lZCBjaGFyAENhbGxCeXRlTWV0aG9kAEdfRklMRV9FUlJPUiBnX2ZpbGVfZXJyb3JfcXVhcmsgKCkAX0NTX0dOVV9MSUJDX1ZFUlNJT04gX0NTX0dOVV9MSUJDX1ZFUlNJT04AZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9kYXRhKGluc3RhbmNlLGRhdGEpIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZCAoKGluc3RhbmNlKSwgR19TSUdOQUxfTUFUQ0hfREFUQSwgMCwgMCwgTlVMTCwgTlVMTCwgKGRhdGEpKQBfQ1NfUE9TSVhfVjdfTFBCSUdfT0ZGQklHX0xJTlRGTEFHUyBfQ1NfUE9TSVhfVjdfTFBCSUdfT0ZGQklHX0xJTlRGTEFHUwBfSU9fdmFfbGlzdCBfR192YV9saXN0AEdfVU5MT0NLKG5hbWUpIGdfbXV0ZXhfdW5sb2NrICgmR19MT0NLX05BTUUgKG5hbWUpKQBfX1VJTlQ2NF9NQVhfXyAxODQ0Njc0NDA3MzcwOTU1MTYxNVVMAEdfVkFMVUVfVFlQRSh2YWx1ZSkgKCgoR1ZhbHVlKikgKHZhbHVlKSktPmdfdHlwZSkAR19GSUxFX0FUVFJJQlVURV9NT1VOVEFCTEVfQ0FOX0VKRUNUICJtb3VudGFibGU6OmNhbi1lamVjdCIAR19WQUxVRV9IT0xEU19VSU5UKHZhbHVlKSAoR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKCh2YWx1ZSksIEdfVFlQRV9VSU5UKSkAZ19ub2RlX2FwcGVuZF9kYXRhKHBhcmVudCxkYXRhKSBnX25vZGVfaW5zZXJ0X2JlZm9yZSAoKHBhcmVudCksIE5VTEwsIGdfbm9kZV9uZXcgKGRhdGEpKQBfU0NfTElORV9NQVggX1NDX0xJTkVfTUFYAF9TQ19VSU5UX01BWCBfU0NfVUlOVF9NQVgAR19UWVBFX0ZJTEVTWVNURU1fUFJFVklFV19UWVBFIChnX2ZpbGVzeXN0ZW1fcHJldmlld190eXBlX2dldF90eXBlICgpKQBKTklJbnZhbGlkUmVmVHlwZQBNQVhOQU1MRU4gTkFNRV9NQVgAX1NDX0VRVUlWX0NMQVNTX01BWCBfU0NfRVFVSVZfQ0xBU1NfTUFYAF9fR05VQ19fIDQAZ190eXBlAF9fVUlOVDMyX1RZUEVfXyB1bnNpZ25lZCBpbnQAX19HX1NUUklOR19IX18gAF9MSU1JVFNfSF9fXyAAX19uZWVkX3RpbWVzcGVjAF9fVVNJTkdfTkFNRVNQQUNFX0M5OShuYW1lKSAAR19NRU5VX01PREVMX0dFVF9DTEFTUyhpbnN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKGluc3QpLCBHX1RZUEVfTUVOVV9NT0RFTCwgR01lbnVNb2RlbENsYXNzKSkAX19TSUdfQVRPTUlDX01JTl9fICgtX19TSUdfQVRPTUlDX01BWF9fIC0gMSkAX19HX1ZBUklBTlRfSF9fIABVTE9OR19NQVggKExPTkdfTUFYICogMlVMICsgMVVMKQBfX0ZMVF9IQVNfREVOT1JNX18gMQBMREJMX01JTl8xMF9FWFAAR0xJQl9TSVpFT0ZfVk9JRF9QIDgAQ2FsbFN0YXRpY1Nob3J0TWV0aG9kQQBfX0dfVFlQRV9QTFVHSU5fSF9fIABHX1NQQVdOX0VYSVRfRVJST1IgZ19zcGF3bl9leGl0X2Vycm9yX3F1YXJrICgpAEdVSU5UMzJfRlJPTV9MRSh2YWwpIChHVUlOVDMyX1RPX0xFICh2YWwpKQBHX0RCVVNfT0JKRUNUX01BTkFHRVIobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9EQlVTX09CSkVDVF9NQU5BR0VSLCBHREJ1c09iamVjdE1hbmFnZXIpKQBfX1VTRV9CU0QgMQBHX0lTX05PVElGSUNBVElPTihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX05PVElGSUNBVElPTikpAEdfVExTX0ZJTEVfREFUQUJBU0UoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9UTFNfRklMRV9EQVRBQkFTRSwgR1Rsc0ZpbGVEYXRhYmFzZSkpAEdfRklMRV9BVFRSSUJVVEVfRklMRVNZU1RFTV9TSVpFICJmaWxlc3lzdGVtOjpzaXplIgBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9DRkxBR1MgX0NTX1hCUzVfSUxQMzJfT0ZGMzJfQ0ZMQUdTAF9XQ0hBUl9UX0RFRklORURfIABHX0lTX01FTlUoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9NRU5VKSkAR19UWVBFX0ZJTEVfQVRUUklCVVRFX1RZUEUgKGdfZmlsZV9hdHRyaWJ1dGVfdHlwZV9nZXRfdHlwZSAoKSkAR19NSU5ET1VCTEUgREJMX01JTgBDYWxsU3RhdGljU2hvcnRNZXRob2RWAF9TQ19TSEVMTCBfU0NfU0hFTEwAaXNDb3B5AGdfZGF0YWxpc3RfaWRfc2V0X2RhdGEoZGwscSxkKSBnX2RhdGFsaXN0X2lkX3NldF9kYXRhX2Z1bGwgKChkbCksIChxKSwgKGQpLCBOVUxMKQBfX0dfVEhSRUFERURfU09DS0VUX1NFUlZJQ0VfSF9fIABjcHJvdG9jb2wAX0JJVFNfU0lHQ09OVEVYVF9IIDEARW5zdXJlTG9jYWxDYXBhY2l0eQBHX0ZJTEVfQVRUUklCVVRFX1VOSVhfSU5PREUgInVuaXg6Omlub2RlIgBfQ1NfWEJTNV9MUEJJR19PRkZCSUdfTElOVEZMQUdTIF9DU19YQlM1X0xQQklHX09GRkJJR19MSU5URkxBR1MAX19jcHVfc2V0X3RfZGVmaW5lZCAAR19JU19TT0NLRVRfQUREUkVTU19DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX1NPQ0tFVF9BRERSRVNTKSkAR19UWVBFX0ZST01fSU5URVJGQUNFKGdfaWZhY2UpICgoKEdUeXBlSW50ZXJmYWNlKikgKGdfaWZhY2UpKS0+Z190eXBlKQBfU0NfQVJHX01BWCBfU0NfQVJHX01BWABHX1ZBTFVFX0hPTERTX0ZMT0FUKHZhbHVlKSAoR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKCh2YWx1ZSksIEdfVFlQRV9GTE9BVCkpAEdldFN0YXRpY0J5dGVGaWVsZABfX1VTRV9YT1BFTjJLOFhTSQBHX1RZUEVfREFUQV9PVVRQVVRfU1RSRUFNIChnX2RhdGFfb3V0cHV0X3N0cmVhbV9nZXRfdHlwZSAoKSkAR1VJTlQxNl9UT19CRSh2YWwpIChHVUlOVDE2X1NXQVBfTEVfQkUgKHZhbCkpAHB1dGMoX2NoLF9mcCkgX0lPX3B1dGMgKF9jaCwgX2ZwKQBfSU9fQ1VSUkVOVExZX1BVVFRJTkcgMHg4MDAAX1BPU0lYX1RIUkVBRF9TUE9SQURJQ19TRVJWRVIgLTEAX1NDX1RIUkVBRF9QUklPUklUWV9TQ0hFRFVMSU5HIF9TQ19USFJFQURfUFJJT1JJVFlfU0NIRURVTElORwBfX0RFQzMyX1NVQk5PUk1BTF9NSU5fXyAwLjAwMDAwMUUtOTVERgBHZXREaXJlY3RCdWZmZXJDYXBhY2l0eQBHX0FDVElPTl9HRVRfSUZBQ0UoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgoaW5zdCksIEdfVFlQRV9BQ1RJT04sIEdBY3Rpb25JbnRlcmZhY2UpKQBfSU9fTk9fV1JJVEVTIDgAX1ZBX0xJU1RfVF9IIABEQkxfTUFOVF9ESUcgX19EQkxfTUFOVF9ESUdfXwBHX1BST1hZX0dFVF9JRkFDRShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0lOVEVSRkFDRSAoKG9iaiksIEdfVFlQRV9QUk9YWSwgR1Byb3h5SW50ZXJmYWNlKSkASk5JR2xvYmFsUmVmVHlwZQBfX1NJWkVPRl9QVEhSRUFEX01VVEVYQVRUUl9UIDQAX19MREJMX1JFRElSMShuYW1lLHByb3RvLGFsaWFzKSBuYW1lIHByb3RvAF9fREVDMTI4X01JTl9fIDFFLTYxNDNETABfU0NfQ0xLX1RDSyBfU0NfQ0xLX1RDSwBfU0NfRklMRV9BVFRSSUJVVEVTIF9TQ19GSUxFX0FUVFJJQlVURVMAX19TSVpFT0ZfUFRIUkVBRF9SV0xPQ0tfVCA1NgBHX1ZPTFVNRV9NT05JVE9SX0VYVEVOU0lPTl9QT0lOVF9OQU1FICJnaW8tdm9sdW1lLW1vbml0b3IiAF9QT1NJWF9UVFlfTkFNRV9NQVggOQBHX1RZUEVfRklMRV9JTkZPIChnX2ZpbGVfaW5mb19nZXRfdHlwZSAoKSkAX0NTX0xGUzY0X0xERkxBR1MgX0NTX0xGUzY0X0xERkxBR1MAX19TSVpFT0ZfUFRIUkVBRF9SV0xPQ0tBVFRSX1QgOABHX0lTX0FQUF9MQVVOQ0hfQ09OVEVYVF9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX0FQUF9MQVVOQ0hfQ09OVEVYVCkpAF9fR19GSUxFTkFNRV9DT01QTEVURVJfSF9fIABHX0lORVRfQUREUkVTU19NQVNLKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfSU5FVF9BRERSRVNTX01BU0ssIEdJbmV0QWRkcmVzc01hc2spKQBQT0xMX01TRyBQT0xMX01TRwBHX1NUUlVDVF9PRkZTRVQoc3RydWN0X3R5cGUsbWVtYmVyKSAoKGdsb25nKSBvZmZzZXRvZiAoc3RydWN0X3R5cGUsIG1lbWJlcikpAEdfVFlQRV9GSUxFX0NSRUFURV9GTEFHUyAoZ19maWxlX2NyZWF0ZV9mbGFnc19nZXRfdHlwZSAoKSkAX19GTE9BVF9XT1JEX09SREVSX18gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18AR19EVExTX0NPTk5FQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9EVExTX0NPTk5FQ1RJT04sIEdEdGxzQ29ubmVjdGlvbikpAEdfS0VZX0ZJTEVfREVTS1RPUF9LRVlfQUNUSU9OUyAiQWN0aW9ucyIAdXNlcl9kYXRhAEdMSUJfU1lTREVGX01TR19ET05UUk9VVEUgNABHX09VVFBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX09VVFBVVF9TVFJFQU0sIEdPdXRwdXRTdHJlYW1DbGFzcykpAGdfc3RyaW5nX2FwcGVuZF9jKGdzdHIsYykgZ19zdHJpbmdfYXBwZW5kX2NfaW5saW5lIChnc3RyLCBjKQBfUE9TSVhfVjdfTFA2NF9PRkY2NCAxAF9VTklTVERfSCAxAF9QT1NJWF9ERUxBWVRJTUVSX01BWCAzMgBfX3N1c2Vjb25kc190X2RlZmluZWQgAF9fTE9OR19MT05HX1BBSVIoSEksTE8pIExPLCBISQBHX1RZUEVfTUFLRV9GVU5EQU1FTlRBTCh4KSAoKEdUeXBlKSAoKHgpIDw8IEdfVFlQRV9GVU5EQU1FTlRBTF9TSElGVCkpAEdfTlVNQkVSX1BBUlNFUl9FUlJPUiAoZ19udW1iZXJfcGFyc2VyX2Vycm9yX3F1YXJrICgpKQBfU0lHU0VUX05XT1JEUyAoMTAyNCAvICg4ICogc2l6ZW9mICh1bnNpZ25lZCBsb25nIGludCkpKQBHX0hBVkVfR0lOVDY0IDEAR19TRUVLQUJMRV9HRVRfSUZBQ0Uob2JqKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKChvYmopLCBHX1RZUEVfU0VFS0FCTEUsIEdTZWVrYWJsZUlmYWNlKSkAR19EQlVTX0FVVEhfT0JTRVJWRVIobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9EQlVTX0FVVEhfT0JTRVJWRVIsIEdEQnVzQXV0aE9ic2VydmVyKSkAR19OQVRJVkVfVk9MVU1FX01PTklUT1JfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX05BVElWRV9WT0xVTUVfTU9OSVRPUiwgR05hdGl2ZVZvbHVtZU1vbml0b3JDbGFzcykpAFJlbGVhc2VTdHJpbmdDaGFycwBfR1R5cGVDbGFzcwBHZXRTdHJpbmdVVEZDaGFycwBfUE9TSVhfUkVBTFRJTUVfU0lHTkFMUyAyMDA4MDlMAEdfQlJFQUtQT0lOVCgpIEdfU1RNVF9TVEFSVHsgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJpbnQgJDAzIik7IH1HX1NUTVRfRU5EAF9TQ19UWVBFRF9NRU1PUllfT0JKRUNUUyBfU0NfVFlQRURfTUVNT1JZX09CSkVDVFMAX0lPX1VTRVJfTE9DSyAweDgwMDAARU9GICgtMSkAR19UWVBFX1NPQ0tFVF9DT05ORUNUSU9OIChnX3NvY2tldF9jb25uZWN0aW9uX2dldF90eXBlICgpKQBHX1RZUEVfSVNfRkxBR1ModHlwZSkgKEdfVFlQRV9GVU5EQU1FTlRBTCAodHlwZSkgPT0gR19UWVBFX0ZMQUdTKQBfX1NJWkVfVF9fIABfVF9XQ0hBUl8gAFNFR1ZfTUFQRVJSIFNFR1ZfTUFQRVJSAF9TQ19HRVRQV19SX1NJWkVfTUFYIF9TQ19HRVRQV19SX1NJWkVfTUFYAEdfSVNfRklMRV9PVVRQVVRfU1RSRUFNKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfRklMRV9PVVRQVVRfU1RSRUFNKSkAX19zaXplX3RfXyAAR19ORVRXT1JLX1NFUlZJQ0VfR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9ORVRXT1JLX1NFUlZJQ0UsIEdOZXR3b3JrU2VydmljZUNsYXNzKSkAR19UWVBFX1NPQ0tFVF9DTElFTlRfRVZFTlQgKGdfc29ja2V0X2NsaWVudF9ldmVudF9nZXRfdHlwZSAoKSkAR19GSUxFX01PTklUT1IobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9GSUxFX01PTklUT1IsIEdGaWxlTW9uaXRvcikpAF9fR19aTElCX0RFQ09NUFJFU1NPUl9IX18gAGdfc3RhdGljX211dGV4X3VubG9jayhtdXRleCkgZ19tdXRleF91bmxvY2sgKGdfc3RhdGljX211dGV4X2dldF9tdXRleCAobXV0ZXgpKQBHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRShpbnN0YW5jZSxnX3R5cGUpIChfR19UWVBFX0NJVCAoKGluc3RhbmNlKSwgKGdfdHlwZSkpKQBfX3N0dWJfcHV0bXNnIABfX0RCTF9FUFNJTE9OX18gKChkb3VibGUpMi4yMjA0NDYwNDkyNTAzMTMwODA4NWUtMTZMKQBfX0dfRFRMU19DTElFTlRfQ09OTkVDVElPTl9IX18gAF9TQ19KT0JfQ09OVFJPTCBfU0NfSk9CX0NPTlRST0wAX19HX0RCVVNfTUVUSE9EX0lOVk9DQVRJT05fSF9fIABHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX0RCVVNfQUNUSVZBVEFCTEUgIkRCdXNBY3RpdmF0YWJsZSIAR19JU19GSUxFX09VVFBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9GSUxFX09VVFBVVF9TVFJFQU0pKQBHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX05BTUUgIk5hbWUiAEdMSUJfVkVSU0lPTl8yXzMwIChHX0VOQ09ERV9WRVJTSU9OICgyLCAzMCkpAF9fbmVlZF90aW1lcl90AF9QT1NJWF9USFJFQURfQ1BVVElNRSAwAEdfVFlQRV9GSUxFX0VOVU1FUkFUT1IgKGdfZmlsZV9lbnVtZXJhdG9yX2dldF90eXBlICgpKQBHX1RZUEVfTU9VTlRfT1BFUkFUSU9OX1JFU1VMVCAoZ19tb3VudF9vcGVyYXRpb25fcmVzdWx0X2dldF90eXBlICgpKQBHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX0NBVEVHT1JJRVMgIkNhdGVnb3JpZXMiAF9ESVJFTlRfSEFWRV9EX05BTUxFTgBHTElCX1ZFUlNJT05fUFJFVl9TVEFCTEUgKEdfRU5DT0RFX1ZFUlNJT04gKEdMSUJfTUFKT1JfVkVSU0lPTiwgR0xJQl9NSU5PUl9WRVJTSU9OIC0gMikpAF9fREJMX0RFTk9STV9NSU5fXyAoKGRvdWJsZSk0Ljk0MDY1NjQ1ODQxMjQ2NTQ0MTc3ZS0zMjRMKQBnX29uY2Uob25jZSxmdW5jLGFyZykgKCgob25jZSktPnN0YXR1cyA9PSBHX09OQ0VfU1RBVFVTX1JFQURZKSA/IChvbmNlKS0+cmV0dmFsIDogZ19vbmNlX2ltcGwgKChvbmNlKSwgKGZ1bmMpLCAoYXJnKSkpAE5GREJJVFMgX19ORkRCSVRTAEdfSE9PS19JTl9DQUxMKGhvb2spICgoR19IT09LX0ZMQUdTIChob29rKSAmIEdfSE9PS19GTEFHX0lOX0NBTEwpICE9IDApAEdfTUVNT1JZX0lOUFVUX1NUUkVBTV9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX01FTU9SWV9JTlBVVF9TVFJFQU0sIEdNZW1vcnlJbnB1dFN0cmVhbUNsYXNzKSkAX19LRVJORUxfU1RSSUNUX05BTUVTIABHX0FQUExJQ0FUSU9OX0NPTU1BTkRfTElORV9HRVRfQ0xBU1MoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChpbnN0KSwgR19UWVBFX0FQUExJQ0FUSU9OX0NPTU1BTkRfTElORSwgR0FwcGxpY2F0aW9uQ29tbWFuZExpbmVDbGFzcykpAEdfSVNfVExTX0JBQ0tFTkQob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmopLCBHX1RZUEVfVExTX0JBQ0tFTkQpKQBHX09CSkVDVF9HRVRfQ0xBU1Mob2JqZWN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG9iamVjdCksIEdfVFlQRV9PQkpFQ1QsIEdPYmplY3RDbGFzcykpAENhbGxDaGFyTWV0aG9kAF9JT19zaXplX3Qgc2l6ZV90AF9QT1NJWDJfU1dfREVWIF9fUE9TSVgyX1RISVNfVkVSU0lPTgBHX0FTWU5DX0lOSVRBQkxFKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwgR19UWVBFX0FTWU5DX0lOSVRBQkxFLCBHQXN5bmNJbml0YWJsZSkpAENhbGxTdGF0aWNPYmplY3RNZXRob2RBAEdfVExTX0lOVEVSQUNUSU9OX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9UTFNfSU5URVJBQ1RJT04sIEdUbHNJbnRlcmFjdGlvbkNsYXNzKSkAX19QKGFyZ3MpIGFyZ3MAUlRTSUdfTUFYIDMyAEdJTlQ2NF9UT19CRSh2YWwpICgoZ2ludDY0KSBHVUlOVDY0X1NXQVBfTEVfQkUgKHZhbCkpAF9TQ19IT1NUX05BTUVfTUFYIF9TQ19IT1NUX05BTUVfTUFYAEdfV0lOMzJfRExMTUFJTl9GT1JfRExMX05BTUUoc3RhdGljLGRsbF9uYW1lKSAAX21hcmtlcnMARFRfRElSIERUX0RJUgBHX01PVU5UKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwgR19UWVBFX01PVU5ULCBHTW91bnQpKQBfU1RESU9fSCAxAENhbGxTdGF0aWNPYmplY3RNZXRob2RWAF9fRklOSVRFX01BVEhfT05MWV9fIDAAX2ZpbGVubwBHX0lTX1NJTVBMRV9QUk9YWV9SRVNPTFZFUihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX1NJTVBMRV9QUk9YWV9SRVNPTFZFUikpAEdMSUJfVkVSU0lPTl8yXzQ4IChHX0VOQ09ERV9WRVJTSU9OICgyLCA0OCkpAF9fVUlOVE1BWF9UWVBFX18gbG9uZyB1bnNpZ25lZCBpbnQAQ2FsbFN0YXRpY09iamVjdE1ldGhvZABHX0lTX1NPQ0tFVF9DT05UUk9MX01FU1NBR0VfQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGNsYXNzKSwgR19UWVBFX1NPQ0tFVF9DT05UUk9MX01FU1NBR0UpKQBfX0dfT1VUUFVUX1NUUkVBTV9IX18gAFNJR1RUT1UgMjIAR19UWVBFX0RCVVNfT0JKRUNUX01BTkFHRVJfQ0xJRU5UX0ZMQUdTIChnX2RidXNfb2JqZWN0X21hbmFnZXJfY2xpZW50X2ZsYWdzX2dldF90eXBlICgpKQBHX0lTX1BST1hZX1JFU09MVkVSKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfUFJPWFlfUkVTT0xWRVIpKQBHX1RZUEVfRklMRV9NT05JVE9SX0VWRU5UIChnX2ZpbGVfbW9uaXRvcl9ldmVudF9nZXRfdHlwZSAoKSkAR19JU19QQVJBTV9TUEVDX1VMT05HKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9VTE9ORykpAF9fSU5PX1RfTUFUQ0hFU19JTk82NF9UIDEAR0xPTkdfRlJPTV9MRSh2YWwpIChHTE9OR19UT19MRSAodmFsKSkAR0xJQl9ERVBSRUNBVEVEX0lOXzJfNDRfRk9SKGYpIEdMSUJfREVQUkVDQVRFRF9GT1IoZikAX19DUFVfRlJFRShjcHVzZXQpIF9fc2NoZWRfY3B1ZnJlZSAoY3B1c2V0KQBTZXRDaGFyQXJyYXlSZWdpb24AZ19hc3NlcnRfZmFsc2UoZXhwcikgR19TVE1UX1NUQVJUIHsgaWYgR19MSUtFTFkgKCEoZXhwcikpIDsgZWxzZSBnX2Fzc2VydGlvbl9tZXNzYWdlIChHX0xPR19ET01BSU4sIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DLCAiJyIgI2V4cHIgIicgc2hvdWxkIGJlIEZBTFNFIik7IH0gR19TVE1UX0VORABfX0dfVElNRV9aT05FX0hfXyAAX1NDX1BJSV9TT0NLRVQgX1NDX1BJSV9TT0NLRVQAR19JU19CVUZGRVJFRF9JTlBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9CVUZGRVJFRF9JTlBVVF9TVFJFQU0pKQBfU0NfMl9GT1JUX0RFViBfU0NfMl9GT1JUX0RFVgBfX3BpY19fIDIAX19HX1JBTkRfSF9fIABfX1BJRF9UX1RZUEUgX19TMzJfVFlQRQBTSFJUX01BWCBfX1NIUlRfTUFYX18AX19CTEtTSVpFX1RfVFlQRSBfX1NZU0NBTExfU0xPTkdfVFlQRQBHX0ZJTEVfT1VUUFVUX1NUUkVBTV9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0ZJTEVfT1VUUFVUX1NUUkVBTSwgR0ZpbGVPdXRwdXRTdHJlYW1DbGFzcykpAF9fVTMyX1RZUEUgdW5zaWduZWQgaW50AF9fbmVlZF9tYnN0YXRlX3QgAEdMSUJfVkVSU0lPTl9NSU5fUkVRVUlSRUQgKEdMSUJfVkVSU0lPTl9DVVJfU1RBQkxFKQBfX0dfQ0FOQ0VMTEFCTEVfSF9fIABDYWxsSW50TWV0aG9kAEdfRklMRV9BVFRSSUJVVEVfVU5JWF9SREVWICJ1bml4OjpyZGV2IgBnX29uY2VfaW5pdF9sZWF2ZShsb2NhdGlvbixyZXN1bHQpIChHX0dOVUNfRVhURU5TSU9OICh7IEdfU1RBVElDX0FTU0VSVCAoc2l6ZW9mICoobG9jYXRpb24pID09IHNpemVvZiAoZ3BvaW50ZXIpKTsgKHZvaWQpICgwID8gKihsb2NhdGlvbikgPSAocmVzdWx0KSA6IDApOyBnX29uY2VfaW5pdF9sZWF2ZSAoKGxvY2F0aW9uKSwgKGdzaXplKSAocmVzdWx0KSk7IH0pKQBob3N0TWV0aG9kAF9TVERJT19VU0VTX0lPU1RSRUFNIABfUE9TSVhfU09VUkNFIDEAX1NDX0RFVklDRV9JTyBfU0NfREVWSUNFX0lPAF9QT1NJWF9TRU1fVkFMVUVfTUFYIDMyNzY3AGh0b2JlMzIoeCkgX19ic3dhcF8zMiAoeCkAR19PQkpFQ1Qob2JqZWN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmplY3QpLCBHX1RZUEVfT0JKRUNULCBHT2JqZWN0KSkAR19JT19JU19NT0RVTEVfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfSU9fVFlQRV9NT0RVTEUpKQBHX0lTX0JVRkZFUkVEX0lOUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0JVRkZFUkVEX0lOUFVUX1NUUkVBTSkpAEdfRklMRV9BVFRSSUJVVEVfQUNDRVNTX0NBTl9UUkFTSCAiYWNjZXNzOjpjYW4tdHJhc2giAEdfQ09OVkVSVEVSX0lOUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX0NPTlZFUlRFUl9JTlBVVF9TVFJFQU0sIEdDb252ZXJ0ZXJJbnB1dFN0cmVhbSkpAEdfTUVNX0FMSUdOIEdMSUJfU0laRU9GX0xPTkcAX19MREJMX0hBU19ERU5PUk1fXyAxAF9JT193aW50X3Qgd2ludF90AEdfVkFfQ09QWSB2YV9jb3B5AEdfQUNUSU9OX01BUF9HRVRfSUZBQ0UoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgoaW5zdCksIEdfVFlQRV9BQ1RJT05fTUFQLCBHQWN0aW9uTWFwSW50ZXJmYWNlKSkAYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQBHZXRTdHJpbmdMZW5ndGgAX19HX0NPTlZFUlRFUl9PVVRQVVRfU1RSRUFNX0hfXyAAR19HU1NJWkVfRk9STUFUICJsaSIAX19TUVVBRF9UWVBFIGxvbmcgaW50AF9fR19CT1hFRF9IX18gAFNJR0NPTlQgMTgAX0lPX0ZMQUdTMl9VU0VSX1dCVUYgOABfX0RFQzEyOF9NSU5fRVhQX18gKC02MTQyKQBHX01BWFVJTlQ2NCBHX0dVSU5UNjRfQ09OU1RBTlQoMHhmZmZmZmZmZmZmZmZmZmZmKQBHX0lTX1NJTVBMRV9BU1lOQ19SRVNVTFRfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9TSU1QTEVfQVNZTkNfUkVTVUxUKSkAR19TRUFSQ0hQQVRIX1NFUEFSQVRPUl9TICI6IgBHX0ZJTEVfQVRUUklCVVRFX1RJTUVfQ0hBTkdFRCAidGltZTo6Y2hhbmdlZCIAR1VJTlQ2NF9GUk9NX0JFKHZhbCkgKEdVSU5UNjRfVE9fQkUgKHZhbCkpAF9fdW5kZWZfTElOS19NQVggAF9fZ2lkX3RfZGVmaW5lZCAAR19JT19NT0RVTEVfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19JT19UWVBFX01PRFVMRSwgR0lPTW9kdWxlQ2xhc3MpKQBfSU9fdmFfbGlzdABHX1RZUEVfTUVOVV9NT0RFTCAoZ19tZW51X21vZGVsX2dldF90eXBlICgpKQBzaWdldl9ub3RpZnlfYXR0cmlidXRlcyBfc2lnZXZfdW4uX3NpZ2V2X3RocmVhZC5fYXR0cmlidXRlAEdfVU5JQ09ERV9DT01CSU5JTkdfTUFSSyBHX1VOSUNPREVfU1BBQ0lOR19NQVJLAEdfSVNfREJVU19JTlRFUkZBQ0VfU0tFTEVUT04obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9EQlVTX0lOVEVSRkFDRV9TS0VMRVRPTikpAEdfRklMRV9BVFRSSUJVVEVfVU5JWF9JU19NT1VOVFBPSU5UICJ1bml4Ojppcy1tb3VudHBvaW50IgBfX1NJR0VWX1BBRF9TSVpFICgoX19TSUdFVl9NQVhfU0laRSAvIHNpemVvZiAoaW50KSkgLSA0KQBfX0dfU1RSRlVOQ1NfSF9fIABHUE9JTlRFUl9UT19VSU5UKHApICgoZ3VpbnQpIChndWxvbmcpIChwKSkAX19HX0ZJTEVfRU5VTUVSQVRPUl9IX18gAENhbGxPYmplY3RNZXRob2RBAHNpX3RpbWVyaWQgX3NpZmllbGRzLl90aW1lci5zaV90aWQASUxMX1BSVlJFRyBJTExfUFJWUkVHAF9TQ19TSFJUX01BWCBfU0NfU0hSVF9NQVgAU0lHQ0hMRCAxNwBHX1JFU09MVkVSKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfUkVTT0xWRVIsIEdSZXNvbHZlcikpAF9TQ19QSUlfSU5URVJORVQgX1NDX1BJSV9JTlRFUk5FVABfX1U2NF9UWVBFIHVuc2lnbmVkIGxvbmcgaW50AF9fZ251X2xpbnV4X18gMQBDYWxsTm9udmlydHVhbERvdWJsZU1ldGhvZABfUE9TSVhfTUFQUEVEX0ZJTEVTIDIwMDgwOUwAR19UTFNfRklMRV9EQVRBQkFTRV9HRVRfSU5URVJGQUNFKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0lOVEVSRkFDRSAoKGluc3QpLCBHX1RZUEVfVExTX0ZJTEVfREFUQUJBU0UsIEdUbHNGaWxlRGF0YWJhc2VJbnRlcmZhY2UpKQBfX0dfTUFQUEVEX0ZJTEVfSF9fIABDYWxsT2JqZWN0TWV0aG9kVgBYQVRUUl9TSVpFX01BWCA2NTUzNgBHX1NUQVRJQ19BU1NFUlRfRVhQUihleHByKSAoKHZvaWQpIHNpemVvZiAoY2hhclsoZXhwcikgPyAxIDogLTFdKSkAX19TSVpFT0ZfUE9JTlRFUl9fIDgAR19EQVRBX09VVFBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9EQVRBX09VVFBVVF9TVFJFQU0sIEdEYXRhT3V0cHV0U3RyZWFtKSkAU0lHVEVSTSAxNQBHX0xPQURBQkxFX0lDT05fR0VUX0lGQUNFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgob2JqKSwgR19UWVBFX0xPQURBQkxFX0lDT04sIEdMb2FkYWJsZUljb25JZmFjZSkpAF9fR19WT0xVTUVfTU9OSVRPUl9IX18gAEdfQ0xPU1VSRV9ORUVEU19NQVJTSEFMKGNsb3N1cmUpICgoKEdDbG9zdXJlKikgKGNsb3N1cmUpKS0+bWFyc2hhbCA9PSBOVUxMKQBHX1RZUEVfQllURVMgKGdfYnl0ZXNfZ2V0X3R5cGUgKCkpAEdfREJVU19PQkpFQ1RfTUFOQUdFUl9TRVJWRVIobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9EQlVTX09CSkVDVF9NQU5BR0VSX1NFUlZFUiwgR0RCdXNPYmplY3RNYW5hZ2VyU2VydmVyKSkATmV3TG9jYWxSZWYAX0NTX1BPU0lYX1Y2X0lMUDMyX09GRjMyX0NGTEFHUyBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGMzJfQ0ZMQUdTAEdfVFlQRV9QQVJBTV9VTE9ORyAoZ19wYXJhbV9zcGVjX3R5cGVzWzZdKQBHX0RCVVNfT0JKRUNUX1NLRUxFVE9OX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9EQlVTX09CSkVDVF9TS0VMRVRPTiwgR0RCdXNPYmplY3RTa2VsZXRvbkNsYXNzKSkAR1VJTlQzMl9GUk9NX0JFKHZhbCkgKEdVSU5UMzJfVE9fQkUgKHZhbCkpAEdfVFlQRV9EQlVTX0lOVEVSRkFDRV9TS0VMRVRPTiAoZ19kYnVzX2ludGVyZmFjZV9za2VsZXRvbl9nZXRfdHlwZSAoKSkAR19NRU5VX01PREVMKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKGluc3QpLCBHX1RZUEVfTUVOVV9NT0RFTCwgR01lbnVNb2RlbCkpAF9fU0lHUlRNQVggKF9OU0lHIC0gMSkAR1VJTlRfVE9fUE9JTlRFUih1KSAoKGdwb2ludGVyKSAoZ3Vsb25nKSAodSkpAGdfc3RhdGljX211dGV4X2dldF9tdXRleCBnX3N0YXRpY19tdXRleF9nZXRfbXV0ZXhfaW1wbABHX0lTX0RCVVNfTUVOVV9NT0RFTChpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX0RCVVNfTUVOVV9NT0RFTCkpAEdfVFlQRV9EQlVTX09CSkVDVF9NQU5BR0VSX1NFUlZFUiAoZ19kYnVzX29iamVjdF9tYW5hZ2VyX3NlcnZlcl9nZXRfdHlwZSAoKSkAX1NDX1BSSU9SSVRJWkVEX0lPIF9TQ19QUklPUklUSVpFRF9JTwBHX0ZJTEVOQU1FX0NPTVBMRVRFUl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfRklMRU5BTUVfQ09NUExFVEVSLCBHRmlsZW5hbWVDb21wbGV0ZXJDbGFzcykpAEdfSVNfU09DS0VUX0NMSUVOVF9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoY2xhc3MpLCBHX1RZUEVfU09DS0VUX0NMSUVOVCkpAF9faW5vX3RfZGVmaW5lZCAAX0FOU0lfU1REREVGX0ggAF9TQ19TWU1MT09QX01BWCBfU0NfU1lNTE9PUF9NQVgAR19JT19FUlJPUiBnX2lvX2Vycm9yX3F1YXJrKCkAdXNlck1ldGhvZABfX1dDSEFSX1RfXyAAR19GSUxFX0FUVFJJQlVURV9JRF9GSUxFICJpZDo6ZmlsZSIAR19NRU5VX0xJTktfU1VCTUVOVSAic3VibWVudSIAX19GTFRfTUlOX18gMS4xNzU0OTQzNTA4MjIyODc1MDc5N2UtMzhGAFNFRUtfRU5EIDIAX19HX05FVFdPUktfU0VSVklDRV9IX18gAEdfSVNfREJVU19PQkpFQ1RfU0tFTEVUT04obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9EQlVTX09CSkVDVF9TS0VMRVRPTikpAEdfSVNfQ09OVkVSVEVSX0lOUFVUX1NUUkVBTV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX0NPTlZFUlRFUl9JTlBVVF9TVFJFQU0pKQBDYWxsTm9udmlydHVhbFNob3J0TWV0aG9kQQBfU0NfU0VNX1ZBTFVFX01BWCBfU0NfU0VNX1ZBTFVFX01BWABHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX1ZFUlNJT04gIlZlcnNpb24iAERCTF9NSU4gX19EQkxfTUlOX18AX1NDX0RFVklDRV9TUEVDSUZJQ19SIF9TQ19ERVZJQ0VfU1BFQ0lGSUNfUgBTSUdDTEQgU0lHQ0hMRABDTE9DS19SRUFMVElNRV9DT0FSU0UgNQBHX0ZJTEVfSU5QVVRfU1RSRUFNX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfRklMRV9JTlBVVF9TVFJFQU0sIEdGaWxlSW5wdXRTdHJlYW1DbGFzcykpAEdfQklHX0VORElBTiA0MzIxAENhbGxOb252aXJ0dWFsU2hvcnRNZXRob2RWAEdfSVNfQVBQTElDQVRJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9BUFBMSUNBVElPTikpAF9fVVNFX0xBUkdFRklMRTY0AF9fbmVlZF9fX0ZJTEUAZ19kYXRhbGlzdF9pZF9yZW1vdmVfZGF0YShkbCxxKSBnX2RhdGFsaXN0X2lkX3NldF9kYXRhICgoZGwpLCAocSksIE5VTEwpAGh0b2xlNjQoeCkgKHgpAF9fR0NDX0hBVkVfU1lOQ19DT01QQVJFX0FORF9TV0FQXzIgMQBfX1VTRV9QT1NJWDE5OTMwOQBfU0NfWE9QRU5fWFBHMyBfU0NfWE9QRU5fWFBHMwBnX2RhdGFsaXN0X3JlbW92ZV9ub19ub3RpZnkoZGwsaykgZ19kYXRhbGlzdF9pZF9yZW1vdmVfbm9fbm90aWZ5ICgoZGwpLCBnX3F1YXJrX3RyeV9zdHJpbmcgKGspKQBHX1RZUEVfSVNfSU5TVEFOVElBVEFCTEUodHlwZSkgKGdfdHlwZV90ZXN0X2ZsYWdzICgodHlwZSksIEdfVFlQRV9GTEFHX0lOU1RBTlRJQVRBQkxFKSkAX0lPX1RJRURfUFVUX0dFVCAweDQwMABGTFRfTUlOXzEwX0VYUABfX0dfU0xJU1RfSF9fIABfUENfU1lNTElOS19NQVggX1BDX1NZTUxJTktfTUFYAEpOSV9FSU5WQUwgKC02KQBfSU9fd3JpdGVfYmFzZQBHX1RZUEVfVkZTIChnX3Zmc19nZXRfdHlwZSAoKSkAZ19yZXR1cm5faWZfcmVhY2hlZCgpIEdfU1RNVF9TVEFSVHsgZ19sb2cgKEdfTE9HX0RPTUFJTiwgR19MT0dfTEVWRUxfQ1JJVElDQUwsICJmaWxlICVzOiBsaW5lICVkICglcyk6IHNob3VsZCBub3QgYmUgcmVhY2hlZCIsIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DKTsgcmV0dXJuOyB9R19TVE1UX0VORABHX0lTX0RCVVNfQUNUSU9OX0dST1VQX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9EQlVTX0FDVElPTl9HUk9VUCkpAEdfSVNfREJVU19BVVRIX09CU0VSVkVSKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfREJVU19BVVRIX09CU0VSVkVSKSkASXNBc3NpZ25hYmxlRnJvbQBfU0NfRkRfTUdNVCBfU0NfRkRfTUdNVAB2YV9zdGFydCh2LGwpIF9fYnVpbHRpbl92YV9zdGFydCh2LGwpAF9JT19ERUxFVEVfRE9OVF9DTE9TRSAweDQwAEdfSVNfUkVTT0xWRVIobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9SRVNPTFZFUikpAF9fbmVlZF90aW1lcl90IABnX2RhdGFzZXRfc2V0X2RhdGFfZnVsbChsLGssZCxmKSBnX2RhdGFzZXRfaWRfc2V0X2RhdGFfZnVsbCAoKGwpLCBnX3F1YXJrX2Zyb21fc3RyaW5nIChrKSwgKGQpLCAoZikpAEdMSUJfU1lTREVGX1BPTExJTiA9MQBfU0NIRURfSCAxAEdfREVGSU5FX1FVQVJLKFFOLHFfbikgR1F1YXJrIHFfbiAjI19xdWFyayAodm9pZCkgeyBzdGF0aWMgR1F1YXJrIHE7IGlmIEdfVU5MSUtFTFkgKHEgPT0gMCkgcSA9IGdfcXVhcmtfZnJvbV9zdGF0aWNfc3RyaW5nICgjUU4pOyByZXR1cm4gcTsgfQBfX0dfREJVU19BQ1RJT05fR1JPVVBfSF9fIABfU0NfVkVSU0lPTiBfU0NfVkVSU0lPTgBHX1BBUkFNX1NQRUNfVU5JQ0hBUihwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fVU5JQ0hBUiwgR1BhcmFtU3BlY1VuaWNoYXIpKQBHX1NVQlBST0NFU1NfTEFVTkNIRVIobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9TVUJQUk9DRVNTX0xBVU5DSEVSLCBHU3VicHJvY2Vzc0xhdW5jaGVyKSkAU0lHVFRJTiAyMQBfTEZTX0xBUkdFRklMRSAxAF9QT1NJWF9BRFZJU09SWV9JTkZPIDIwMDgwOUwAQ0xBTVAAR19WQUxVRV9IT0xEU19VQ0hBUih2YWx1ZSkgKEdfVFlQRV9DSEVDS19WQUxVRV9UWVBFICgodmFsdWUpLCBHX1RZUEVfVUNIQVIpKQBTSUdVU1IyIDEyAF9fVUlOVDhfQyhjKSBjAEdfSVNfRklMVEVSX09VVFBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9GSUxURVJfT1VUUFVUX1NUUkVBTSkpAF9fREVDMTI4X01BWF9fIDkuOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5RTYxNDRETABHX1RDUF9XUkFQUEVSX0NPTk5FQ1RJT05fR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9UQ1BfV1JBUFBFUl9DT05ORUNUSU9OLCBHVGNwV3JhcHBlckNvbm5lY3Rpb25DbGFzcykpAEdldEZsb2F0QXJyYXlFbGVtZW50cwBfU0NfVEhSRUFEX0FUVFJfU1RBQ0tTSVpFIF9TQ19USFJFQURfQVRUUl9TVEFDS1NJWkUAc2l6ZXR5cGUAX0lPX0ZJWEVEIDAxMDAwMABnX25ldzAoc3RydWN0X3R5cGUsbl9zdHJ1Y3RzKSBfR19ORVcgKHN0cnVjdF90eXBlLCBuX3N0cnVjdHMsIG1hbGxvYzApAF9fREJMX0RJR19fIDE1AG1ha2VkZXYobWFqLG1pbikgZ251X2Rldl9tYWtlZGV2IChtYWosIG1pbikAX19DUFVfWkVST19TKHNldHNpemUsY3B1c2V0cCkgZG8gX19idWlsdGluX21lbXNldCAoY3B1c2V0cCwgJ1wwJywgc2V0c2l6ZSk7IHdoaWxlICgwKQBfSU9fVVBQRVJDQVNFIDAxMDAwAF9fU1dPUkRfVFlQRSBsb25nIGludABfX05GREJJVFMgKDggKiAoaW50KSBzaXplb2YgKF9fZmRfbWFzaykpAGdfZGF0YXNldF9yZW1vdmVfbm9fbm90aWZ5KGwsaykgZ19kYXRhc2V0X2lkX3JlbW92ZV9ub19ub3RpZnkgKChsKSwgZ19xdWFya190cnlfc3RyaW5nIChrKSkAX19QVEhSRUFEX01VVEVYX0hBVkVfRUxJU0lPTiAxAF9TQ19MRVZFTDFfSUNBQ0hFX1NJWkUgX1NDX0xFVkVMMV9JQ0FDSEVfU0laRQBHTElCX0FWQUlMQUJMRV9JTl8yXzUyIF9HTElCX0VYVEVSTgBHX1RZUEVfQVBQX0xBVU5DSF9DT05URVhUIChnX2FwcF9sYXVuY2hfY29udGV4dF9nZXRfdHlwZSAoKSkAR19JU19JTkVUX0FERFJFU1NfTUFTS19DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX0lORVRfQUREUkVTU19NQVNLKSkAc3Zfb25zdGFjayBzdl9mbGFncwBHX1BBU1RFX0FSR1MoaWRlbnRpZmllcjEsaWRlbnRpZmllcjIpIGlkZW50aWZpZXIxICMjIGlkZW50aWZpZXIyAExMT05HX01BWCBfX0xPTkdfTE9OR19NQVhfXwBHTElCX0RFUFJFQ0FURURfSU5fMl8zMF9GT1IoZikgR0xJQl9ERVBSRUNBVEVEX0ZPUihmKQBfX2F0dHJpYnV0ZV9hcnRpZmljaWFsX18gX19hdHRyaWJ1dGVfXyAoKF9fYXJ0aWZpY2lhbF9fKSkAR19UWVBFX09CSkVDVCBHX1RZUEVfTUFLRV9GVU5EQU1FTlRBTCAoMjApAEdfUFJJVkFURV9PRkZTRVQoVHlwZU5hbWUsZmllbGQpIChUeXBlTmFtZSAjI19wcml2YXRlX29mZnNldCArIChHX1NUUlVDVF9PRkZTRVQgKFR5cGVOYW1lICMjUHJpdmF0ZSwgZmllbGQpKSkAX19uZWVkX3NpZ3NldF90AF9fQkVHSU5fTkFNRVNQQUNFX1NURCAATF9jdGVybWlkIDkAR19UWVBFX1RIUkVBRCAoZ190aHJlYWRfZ2V0X3R5cGUgKCkpAGdfYXNjaWlfaXNkaWdpdChjKSAoKGdfYXNjaWlfdGFibGVbKGd1Y2hhcikgKGMpXSAmIEdfQVNDSUlfRElHSVQpICE9IDApAF9TQ19OUFJPQ0VTU09SU19PTkxOIF9TQ19OUFJPQ0VTU09SU19PTkxOAEdfRklMRV9FTlVNRVJBVE9SX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9GSUxFX0VOVU1FUkFUT1IsIEdGaWxlRW51bWVyYXRvckNsYXNzKSkAX19HTElCX0dPQkpFQ1RfSF9JTlNJREVfXyAAR19BQ1RJT04oaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9BQ1RJT04sIEdBY3Rpb24pKQBfX1VTRV9HTlUAR19UWVBFX1BBUkFNX1ZBUklBTlQgKGdfcGFyYW1fc3BlY190eXBlc1syMl0pAFJlbGVhc2VMb25nQXJyYXlFbGVtZW50cwBfX0dfSE9TVF9VVElMU19IX18gAGdfY2xhc3MARkRfU0VUKGZkLGZkc2V0cCkgX19GRF9TRVQgKGZkLCBmZHNldHApAF9fR0xJQkNfUFJFUkVRKG1haixtaW4pICgoX19HTElCQ19fIDw8IDE2KSArIF9fR0xJQkNfTUlOT1JfXyA+PSAoKG1haikgPDwgMTYpICsgKG1pbikpAEdfU09DS0VUX0NPTk5FQ1RJT05fR0VUX0NMQVNTKGluc3QpIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgoaW5zdCksIEdfVFlQRV9TT0NLRVRfQ09OTkVDVElPTiwgR1NvY2tldENvbm5lY3Rpb25DbGFzcykpAEdfRklMRV9JT19TVFJFQU1fR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9GSUxFX0lPX1NUUkVBTSwgR0ZpbGVJT1N0cmVhbUNsYXNzKSkAX19VU0VfTUlTQyAxAEdMSUJfQ0hFQ0tfVkVSU0lPTihtYWpvcixtaW5vcixtaWNybykgKEdMSUJfTUFKT1JfVkVSU0lPTiA+IChtYWpvcikgfHwgKEdMSUJfTUFKT1JfVkVSU0lPTiA9PSAobWFqb3IpICYmIEdMSUJfTUlOT1JfVkVSU0lPTiA+IChtaW5vcikpIHx8IChHTElCX01BSk9SX1ZFUlNJT04gPT0gKG1ham9yKSAmJiBHTElCX01JTk9SX1ZFUlNJT04gPT0gKG1pbm9yKSAmJiBHTElCX01JQ1JPX1ZFUlNJT04gPj0gKG1pY3JvKSkpAF9fUzY0X1RZUEUgbG9uZyBpbnQAU0lHX1NFVE1BU0sgMgBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0NGTEFHUyBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0NGTEFHUwBHX0lTX0JVRkZFUkVEX09VVFBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9CVUZGRVJFRF9PVVRQVVRfU1RSRUFNKSkAZ19hc3NlcnRfY21waW50KG4xLGNtcCxuMikgR19TVE1UX1NUQVJUIHsgZ2ludDY0IF9fbjEgPSAobjEpLCBfX24yID0gKG4yKTsgaWYgKF9fbjEgY21wIF9fbjIpIDsgZWxzZSBnX2Fzc2VydGlvbl9tZXNzYWdlX2NtcG51bSAoR19MT0dfRE9NQUlOLCBfX0ZJTEVfXywgX19MSU5FX18sIEdfU1RSRlVOQywgI24xICIgIiAjY21wICIgIiAjbjIsIF9fbjEsICNjbXAsIF9fbjIsICdpJyk7IH0gR19TVE1UX0VORABfX0RFQzMyX01BWF9FWFBfXyA5NwBfR19ORVcoc3RydWN0X3R5cGUsbl9zdHJ1Y3RzLGZ1bmMpICgoc3RydWN0X3R5cGUgKikgZ18gIyNmdW5jICMjX24gKChuX3N0cnVjdHMpLCBzaXplb2YgKHN0cnVjdF90eXBlKSkpAEdfVFlQRV9FTUJMRU1FRF9JQ09OIChnX2VtYmxlbWVkX2ljb25fZ2V0X3R5cGUgKCkpAEdfVElNRV9TUEFOX01JTExJU0VDT05EIChHX0dJTlQ2NF9DT05TVEFOVCAoMTAwMCkpAEdfR0lOVDMyX01PRElGSUVSICIiAEdfSVNfU09DS0VUX0NPTk5FQ1RBQkxFKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgR19UWVBFX1NPQ0tFVF9DT05ORUNUQUJMRSkpAF9JT19jbGVhbnVwX3JlZ2lvbl9zdGFydChfZmN0LF9mcCkgAEdfU1RBVElDX0FTU0VSVChleHByKSB0eXBlZGVmIGNoYXIgR19QQVNURSAoX0dTdGF0aWNBc3NlcnRDb21waWxlVGltZUFzc2VydGlvbl8sIF9fQ09VTlRFUl9fKVsoZXhwcikgPyAxIDogLTFdIEdfR05VQ19VTlVTRUQAX19TSVpFT0ZfSU5UX18gNABfSU9fZnBvc190IF9HX2Zwb3NfdABfU0NfUElJX0lOVEVSTkVUX1NUUkVBTSBfU0NfUElJX0lOVEVSTkVUX1NUUkVBTQBHX1ZBUklBTlRfVFlQRV9PQkpFQ1RfUEFUSCAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAibyIpAF9fT1JERVJfUERQX0VORElBTl9fIDM0MTIAX19GTFRfREVDSU1BTF9ESUdfXyA5AF9TQ19YQlM1X0lMUDMyX09GRjMyIF9TQ19YQlM1X0lMUDMyX09GRjMyAF9JT19TQ0lFTlRJRklDIDA0MDAwAFNldFN0YXRpY0J5dGVGaWVsZABJTExfSUxMQURSIElMTF9JTExBRFIAX19VU0VfSVNPQ1hYMTEAX19XT1JEU0laRSA2NABHVUlOVDE2X1NXQVBfTEVfUERQKHZhbCkgKChndWludDE2KSAodmFsKSkAX191X2ludE5fdChOLE1PREUpIHR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50ICMjTiAjI190IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoTU9ERSkpKQBHX1RMU19EQVRBQkFTRShpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1RMU19EQVRBQkFTRSwgR1Rsc0RhdGFiYXNlKSkAVG9SZWZsZWN0ZWRNZXRob2QAR2V0U3RyaW5nQ3JpdGljYWwAQ2FsbE5vbnZpcnR1YWxDaGFyTWV0aG9kQQBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGMzJfTElOVEZMQUdTIF9DU19QT1NJWF9WN19JTFAzMl9PRkYzMl9MSU5URkxBR1MAR0xJQl9NSU5PUl9WRVJTSU9OIDU0AEdfVFlQRV9EQlVTX0FDVElPTl9HUk9VUCAoZ19kYnVzX2FjdGlvbl9ncm91cF9nZXRfdHlwZSAoKSkAR19UTFNfQkFDS0VORF9HRVRfSU5URVJGQUNFKG9iaikgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgob2JqKSwgR19UWVBFX1RMU19CQUNLRU5ELCBHVGxzQmFja2VuZEludGVyZmFjZSkpAF9fc2lnX2F0b21pY190X2RlZmluZWQgAEdfVFlQRV9CVVNfTkFNRV9XQVRDSEVSX0ZMQUdTIChnX2J1c19uYW1lX3dhdGNoZXJfZmxhZ3NfZ2V0X3R5cGUgKCkpAEdfRklMRV9BVFRSSUJVVEVfQUNDRVNTX0NBTl9SRUFEICJhY2Nlc3M6OmNhbi1yZWFkIgBHX0dOVUNfU0NBTkYoZm9ybWF0X2lkeCxhcmdfaWR4KSBfX2F0dHJpYnV0ZV9fKChfX2Zvcm1hdF9fIChfX3NjYW5mX18sIGZvcm1hdF9pZHgsIGFyZ19pZHgpKSkAQ2FsbE5vbnZpcnR1YWxDaGFyTWV0aG9kVgBfU0NfU1NfUkVQTF9NQVggX1NDX1NTX1JFUExfTUFYAF9QT1NJWF9BUkdfTUFYIDQwOTYARnJvbVJlZmxlY3RlZEZpZWxkAEdVSU5UNjRfU1dBUF9MRV9CRV9DT05TVEFOVCh2YWwpICgoZ3VpbnQ2NCkgKCAoKChndWludDY0KSAodmFsKSAmIChndWludDY0KSBHX0dJTlQ2NF9DT05TVEFOVCAoMHgwMDAwMDAwMDAwMDAwMGZmVSkpIDw8IDU2KSB8ICgoKGd1aW50NjQpICh2YWwpICYgKGd1aW50NjQpIEdfR0lOVDY0X0NPTlNUQU5UICgweDAwMDAwMDAwMDAwMGZmMDBVKSkgPDwgNDApIHwgKCgoZ3VpbnQ2NCkgKHZhbCkgJiAoZ3VpbnQ2NCkgR19HSU5UNjRfQ09OU1RBTlQgKDB4MDAwMDAwMDAwMGZmMDAwMFUpKSA8PCAyNCkgfCAoKChndWludDY0KSAodmFsKSAmIChndWludDY0KSBHX0dJTlQ2NF9DT05TVEFOVCAoMHgwMDAwMDAwMGZmMDAwMDAwVSkpIDw8IDgpIHwgKCgoZ3VpbnQ2NCkgKHZhbCkgJiAoZ3VpbnQ2NCkgR19HSU5UNjRfQ09OU1RBTlQgKDB4MDAwMDAwZmYwMDAwMDAwMFUpKSA+PiA4KSB8ICgoKGd1aW50NjQpICh2YWwpICYgKGd1aW50NjQpIEdfR0lOVDY0X0NPTlNUQU5UICgweDAwMDBmZjAwMDAwMDAwMDBVKSkgPj4gMjQpIHwgKCgoZ3VpbnQ2NCkgKHZhbCkgJiAoZ3VpbnQ2NCkgR19HSU5UNjRfQ09OU1RBTlQgKDB4MDBmZjAwMDAwMDAwMDAwMFUpKSA+PiA0MCkgfCAoKChndWludDY0KSAodmFsKSAmIChndWludDY0KSBHX0dJTlQ2NF9DT05TVEFOVCAoMHhmZjAwMDAwMDAwMDAwMDAwVSkpID4+IDU2KSkpAF9JT19wdXRjX3VubG9ja2VkKF9jaCxfZnApIChfSU9fQkUgKChfZnApLT5fSU9fd3JpdGVfcHRyID49IChfZnApLT5fSU9fd3JpdGVfZW5kLCAwKSA/IF9fb3ZlcmZsb3cgKF9mcCwgKHVuc2lnbmVkIGNoYXIpIChfY2gpKSA6ICh1bnNpZ25lZCBjaGFyKSAoKihfZnApLT5fSU9fd3JpdGVfcHRyKysgPSAoX2NoKSkpAF9fU0laRU9GX1BUSFJFQURfQkFSUklFUl9UIDMyAEdfVFlQRV9MSVNUX1NUT1JFIChnX2xpc3Rfc3RvcmVfZ2V0X3R5cGUgKCkpAFNldEludEZpZWxkAEZEX1NFVFNJWkUgX19GRF9TRVRTSVpFAEdJTlQ2NF9UT19MRSh2YWwpICgoZ2ludDY0KSAodmFsKSkARkxUX0RJRwBfUE9TSVhfTUVTU0FHRV9QQVNTSU5HIDIwMDgwOUwAX19uZWVkX05VTEwgAF9fRkxPQVRfV09SRF9PUkRFUiBfX0JZVEVfT1JERVIAX19HX0ZJTEVfTU9OSVRPUl9IX18gAF9fVVFVQURfVFlQRSB1bnNpZ25lZCBsb25nIGludABfX09GRl9UX01BVENIRVNfT0ZGNjRfVCAxAF9fU1VTRUNPTkRTX1RfVFlQRSBfX1NZU0NBTExfU0xPTkdfVFlQRQBQb3BMb2NhbEZyYW1lAEdfVFlQRV9NQVJLVVBfUEFSU0VfQ09OVEVYVCAoZ19tYXJrdXBfcGFyc2VfY29udGV4dF9nZXRfdHlwZSAoKSkAX0lPX2Z1bmxvY2tmaWxlKF9mcCkgAF9KQVZBU09GVF9KTklfSF8gAENhbGxCeXRlTWV0aG9kQQBHX0ZJTEVfSU5QVVRfU1RSRUFNKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfRklMRV9JTlBVVF9TVFJFQU0sIEdGaWxlSW5wdXRTdHJlYW0pKQBHX0dPRkZTRVRfTU9ESUZJRVIgR19HSU5UNjRfTU9ESUZJRVIAX2N1cl9jb2x1bW4AR2V0Qm9vbGVhbkFycmF5RWxlbWVudHMAR19JU19GSUxFTkFNRV9DT01QTEVURVJfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9GSUxFTkFNRV9DT01QTEVURVIpKQBHX1RZUEVfTE9BREFCTEVfSUNPTiAoZ19sb2FkYWJsZV9pY29uX2dldF90eXBlICgpKQBfUE9TSVhfSk9CX0NPTlRST0wgMQBDYWxsTm9udmlydHVhbE9iamVjdE1ldGhvZABHX1RZUEVfUFJPWFlfQUREUkVTU19FTlVNRVJBVE9SIChnX3Byb3h5X2FkZHJlc3NfZW51bWVyYXRvcl9nZXRfdHlwZSAoKSkAQ2FsbEJ5dGVNZXRob2RWAF9JT19JTl9CQUNLVVAgMHgxMDAAX1NDX1NDSEFSX01BWCBfU0NfU0NIQVJfTUFYAEdfVFlQRV9UTFNfUEFTU1dPUkQgKGdfdGxzX3Bhc3N3b3JkX2dldF90eXBlICgpKQBfX0lOVF9MRUFTVDhfTUFYX18gMTI3AEdfU0lNUExFX0FDVElPTl9HUk9VUF9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoY2xhc3MpLCBHX1RZUEVfU0lNUExFX0FDVElPTl9HUk9VUCwgR1NpbXBsZUFjdGlvbkdyb3VwQ2xhc3MpKQBfX0RFQzY0X01BTlRfRElHX18gMTYAR19JU19GTEFHU19DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoY2xhc3MpLCBHX1RZUEVfRkxBR1MpKQBHX1NPQ0tFVF9DT05ORUNUSU9OKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKGluc3QpLCBHX1RZUEVfU09DS0VUX0NPTk5FQ1RJT04sIEdTb2NrZXRDb25uZWN0aW9uKSkARkxUX0RJRyBfX0ZMVF9ESUdfXwBHX1RZUEVfVExTX0NMSUVOVF9DT05ORUNUSU9OIChnX3Rsc19jbGllbnRfY29ubmVjdGlvbl9nZXRfdHlwZSAoKSkAR19QQVJBTV9TUEVDX0lOVChwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fSU5ULCBHUGFyYW1TcGVjSW50KSkAQWxsb2NPYmplY3QAX1BPU0lYX1Y3X0xQQklHX09GRkJJRyAtMQBHX0RBVEFfT1VUUFVUX1NUUkVBTV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfREFUQV9PVVRQVVRfU1RSRUFNLCBHRGF0YU91dHB1dFN0cmVhbUNsYXNzKSkAVElNRVJfQUJTVElNRSAxAF9TQ19JT1ZfTUFYIF9TQ19JT1ZfTUFYAF9TQ19UUkFDRV9MT0cgX1NDX1RSQUNFX0xPRwBHX0lTX0RBVEFfT1VUUFVUX1NUUkVBTV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX0RBVEFfT1VUUFVUX1NUUkVBTSkpAGdfc2xpY2VfZHVwKHR5cGUsbWVtKSAoMSA/ICh0eXBlKikgZ19zbGljZV9jb3B5IChzaXplb2YgKHR5cGUpLCAobWVtKSkgOiAoKHZvaWQpICgodHlwZSopIDAgPT0gKG1lbSkpLCAodHlwZSopIDApKQBHX1RZUEVfQlVTX05BTUVfT1dORVJfRkxBR1MgKGdfYnVzX25hbWVfb3duZXJfZmxhZ3NfZ2V0X3R5cGUgKCkpAEdfRFRMU19TRVJWRVJfQ09OTkVDVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX0RUTFNfU0VSVkVSX0NPTk5FQ1RJT04sIEdEdGxzU2VydmVyQ29ubmVjdGlvbikpAFNFR1ZfQUNDRVJSIFNFR1ZfQUNDRVJSAF9JT19mcG9zNjRfdCBfR19mcG9zNjRfdABfSU9fU0hPV1BPSU5UIDA0MDAAX192YV9saXN0X18gAF9QT1NJWF9USFJFQURfQVRUUl9TVEFDS1NJWkUgMjAwODA5TABHX0lTX0FDVElPTl9NQVAoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9BQ1RJT05fTUFQKSkAR19GSUxFX0FUVFJJQlVURV9ET1NfSVNfU1lTVEVNICJkb3M6OmlzLXN5c3RlbSIAR19NSU5MT05HIExPTkdfTUlOAF9fUkVESVJFQ1RfTlRIKG5hbWUscHJvdG8sYWxpYXMpIG5hbWUgcHJvdG8gX19hc21fXyAoX19BU01OQU1FICgjYWxpYXMpKSBfX1RIUk9XAEdfRU1CTEVNRURfSUNPTihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX0VNQkxFTUVEX0lDT04sIEdFbWJsZW1lZEljb24pKQBHX1RZUEVfQ0hFQ0tfVkFMVUVfVFlQRSh2YWx1ZSxnX3R5cGUpIChfR19UWVBFX0NWSCAoKHZhbHVlKSwgKGdfdHlwZSkpKQBHX1RZUEVfU09DS0VUX1RZUEUgKGdfc29ja2V0X3R5cGVfZ2V0X3R5cGUgKCkpAEdfR05VQ19GVU5DVElPTiAiIgBfU0NfVFpOQU1FX01BWCBfU0NfVFpOQU1FX01BWABHX01BWElOVDggKChnaW50OCkgMHg3ZikAQ2FsbE5vbnZpcnR1YWxJbnRNZXRob2RBAENhbGxTdGF0aWNJbnRNZXRob2QAR19GSUxFTkFNRV9DT01QTEVURVIobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9GSUxFTkFNRV9DT01QTEVURVIsIEdGaWxlbmFtZUNvbXBsZXRlcikpAEdfVFlQRV9TT0NLRVRfQ0xJRU5UIChnX3NvY2tldF9jbGllbnRfZ2V0X3R5cGUgKCkpAHByaXYAR19UWVBFX0lPX1NUUkVBTV9TUExJQ0VfRkxBR1MgKGdfaW9fc3RyZWFtX3NwbGljZV9mbGFnc19nZXRfdHlwZSAoKSkAR19JU19QQVJBTV9TUEVDX0ZMQUdTKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9GTEFHUykpAF9fT1JERVJfQklHX0VORElBTl9fIDQzMjEAX19TSVpFT0ZfU0laRV9UX18gOABHX0lTX0RBVEFfT1VUUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0RBVEFfT1VUUFVUX1NUUkVBTSkpAEdfVFlQRV9TSU1QTEVfUEVSTUlTU0lPTiAoZ19zaW1wbGVfcGVybWlzc2lvbl9nZXRfdHlwZSAoKSkAQ2FsbE5vbnZpcnR1YWxJbnRNZXRob2RWAENhbGxTdGF0aWNMb25nTWV0aG9kAF9fREVDMzJfTUFYX18gOS45OTk5OTlFOTZERgBnX2F0b21pY19wb2ludGVyX2dldChhdG9taWMpIChHX0dOVUNfRVhURU5TSU9OICh7IEdfU1RBVElDX0FTU0VSVCAoc2l6ZW9mICooYXRvbWljKSA9PSBzaXplb2YgKGdwb2ludGVyKSk7IChncG9pbnRlcikgX19hdG9taWNfbG9hZF84ICgoYXRvbWljKSwgX19BVE9NSUNfU0VRX0NTVCk7IH0pKQBNSU4oYSxiKSAoKChhKSA8IChiKSkgPyAoYSkgOiAoYikpAEdfU1RBVElDX01VVEVYX0lOSVQgeyBOVUxMIH0AU0lHVVJHIDIzAF9DU19MRlM2NF9DRkxBR1MgX0NTX0xGUzY0X0NGTEFHUwBOZXdDaGFyQXJyYXkAZ19tZXNzYWdlKC4uLikgZ19sb2cgKEdfTE9HX0RPTUFJTiwgR19MT0dfTEVWRUxfTUVTU0FHRSwgX19WQV9BUkdTX18pAExEQkxfTUFOVF9ESUcAcGFyZW50X2luc3RhbmNlAGdfc2xpY2VfbmV3MCh0eXBlKSAoKHR5cGUqKSBnX3NsaWNlX2FsbG9jMCAoc2l6ZW9mICh0eXBlKSkpAEdfRklMRV9JTkZPKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfRklMRV9JTkZPLCBHRmlsZUluZm8pKQBfX0dfQklORElOR19IX18gAEdfRklMRV9BVFRSSUJVVEVfUFJFVklFV19JQ09OICJwcmV2aWV3OjppY29uIgBHX0tFWV9GSUxFX0RFU0tUT1BfR1JPVVAgIkRlc2t0b3AgRW50cnkiAF9fREJMX0hBU19RVUlFVF9OQU5fXyAxAF9fYXR0cmlidXRlX3B1cmVfXyBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKQBfX0dfTUFJTl9IX18gAF9fVTE2X1RZUEUgdW5zaWduZWQgc2hvcnQgaW50AGdfdGVzdF9hc3NlcnRfZXhwZWN0ZWRfbWVzc2FnZXMoKSBnX3Rlc3RfYXNzZXJ0X2V4cGVjdGVkX21lc3NhZ2VzX2ludGVybmFsIChHX0xPR19ET01BSU4sIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DKQBHX1BPTExBQkxFX09VVFBVVF9TVFJFQU1fR0VUX0lOVEVSRkFDRShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0lOVEVSRkFDRSAoKG9iaiksIEdfVFlQRV9QT0xMQUJMRV9PVVRQVVRfU1RSRUFNLCBHUG9sbGFibGVPdXRwdXRTdHJlYW1JbnRlcmZhY2UpKQBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGQklHX0xERkxBR1MgX0NTX1BPU0lYX1Y3X0lMUDMyX09GRkJJR19MREZMQUdTAEdfTUlOU0hPUlQgU0hSVF9NSU4AR19UWVBFX0ZVTkRBTUVOVEFMKHR5cGUpIChnX3R5cGVfZnVuZGFtZW50YWwgKHR5cGUpKQBHX1BBUkFNX1NQRUNfVFlQRV9OQU1FKHBzcGVjKSAoZ190eXBlX25hbWUgKEdfUEFSQU1fU1BFQ19UWVBFIChwc3BlYykpKQBfU0NfSU5UX01BWCBfU0NfSU5UX01BWABfX0dfREVQUkVDQVRFRF9USFJFQURfSF9fIABHX1BBUkFNX1NQRUNfVUNIQVIocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX1VDSEFSLCBHUGFyYW1TcGVjVUNoYXIpKQBHX1NJR05BTF9GTEFHU19NQVNLIDB4MWZmAFNldFNob3J0QXJyYXlSZWdpb24AcWRhdGEAX192YV9hcmdfcGFjaygpIF9fYnVpbHRpbl92YV9hcmdfcGFjayAoKQBQX3RtcGRpciAiL3RtcCIAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9JU19WT0xBVElMRSAic3RhbmRhcmQ6OmlzLXZvbGF0aWxlIgBfU0NfVElNRVJTIF9TQ19USU1FUlMAVUNIQVJfTUFYIChTQ0hBUl9NQVggKiAyICsgMSkAR19JTlBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX0lOUFVUX1NUUkVBTSwgR0lucHV0U3RyZWFtQ2xhc3MpKQBfX0lEX1RfVFlQRSBfX1UzMl9UWVBFAEdfUElEX0ZPUk1BVCAiaSIAX19VU0VfUE9TSVgxOTkzMDkgMQBHX1RZUEVfWkxJQl9DT01QUkVTU09SIChnX3psaWJfY29tcHJlc3Nvcl9nZXRfdHlwZSAoKSkAX0dfREVGSU5FX1BPSU5URVJfVFlQRV9CRUdJTihUeXBlTmFtZSx0eXBlX25hbWUpIEdUeXBlIHR5cGVfbmFtZSAjI19nZXRfdHlwZSAodm9pZCkgeyBzdGF0aWMgdm9sYXRpbGUgZ3NpemUgZ19kZWZpbmVfdHlwZV9pZF9fdm9sYXRpbGUgPSAwOyBpZiAoZ19vbmNlX2luaXRfZW50ZXIgKCZnX2RlZmluZV90eXBlX2lkX192b2xhdGlsZSkpIHsgR1R5cGUgZ19kZWZpbmVfdHlwZV9pZCA9IGdfcG9pbnRlcl90eXBlX3JlZ2lzdGVyX3N0YXRpYyAoZ19pbnRlcm5fc3RhdGljX3N0cmluZyAoI1R5cGVOYW1lKSk7IHsAX1NDX1VTSFJUX01BWCBfU0NfVVNIUlRfTUFYAF9fY2xvY2tpZF90X2RlZmluZWQgMQBfQ1NfUE9TSVhfVjdfTFA2NF9PRkY2NF9MSUJTIF9DU19QT1NJWF9WN19MUDY0X09GRjY0X0xJQlMAR0xJQl9ERVBSRUNBVEVEX0lOXzJfMzZfRk9SKGYpIEdMSUJfREVQUkVDQVRFRF9GT1IoZikAR0xJQl9WRVJTSU9OX01BWF9BTExPV0VEIChHTElCX1ZFUlNJT05fQ1VSX1NUQUJMRSkAR19JU19TVUJQUk9DRVNTX0xBVU5DSEVSKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfU1VCUFJPQ0VTU19MQVVOQ0hFUikpAF9TQ18yX0NIQVJfVEVSTSBfU0NfMl9DSEFSX1RFUk0AR19ERUZJTkVfQVVUT19DTEVBTlVQX0ZSRUVfRlVOQyhUeXBlTmFtZSxmdW5jLG5vbmUpIEdfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TIHN0YXRpYyBpbmxpbmUgdm9pZCBfR0xJQl9BVVRPX0ZVTkNfTkFNRShUeXBlTmFtZSkgKFR5cGVOYW1lICpfcHRyKSB7IGlmICgqX3B0ciAhPSBub25lKSAoZnVuYykgKCpfcHRyKTsgfSBHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlMAR19UWVBFX01PRFVMRShtb2R1bGUpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG1vZHVsZSksIEdfVFlQRV9UWVBFX01PRFVMRSwgR1R5cGVNb2R1bGUpKQBfX1VJTlRfRkFTVDhfTUFYX18gMjU1AF9QT1NJWF9NUV9QUklPX01BWCAzMgBDYWxsU3RhdGljQnl0ZU1ldGhvZABfUE9TSVhfSE9TVF9OQU1FX01BWCAyNTUAR19UWVBFX1NFVFRJTkdTX1NDSEVNQV9LRVkgKGdfc2V0dGluZ3Nfc2NoZW1hX2tleV9nZXRfdHlwZSAoKSkAR19HVUlOVFBUUl9GT1JNQVQgImx1IgBHX0ZJTEVfQVRUUklCVVRFX1NUQU5EQVJEX0NPTlRFTlRfVFlQRSAic3RhbmRhcmQ6OmNvbnRlbnQtdHlwZSIAZ19tYWluX25ldyhpc19ydW5uaW5nKSBnX21haW5fbG9vcF9uZXcgKE5VTEwsIGlzX3J1bm5pbmcpAHVzZVByb3h5AEZPUEVOX01BWABzaV9waWQgX3NpZmllbGRzLl9raWxsLnNpX3BpZABfU0NfMl9QQlNfVFJBQ0sgX1NDXzJfUEJTX1RSQUNLAENhbGxCb29sZWFuTWV0aG9kQQBHX0RFRklORV9BQlNUUkFDVF9UWVBFX1dJVEhfUFJJVkFURShUTix0X24sVF9QKSBHX0RFRklORV9UWVBFX0VYVEVOREVEIChUTiwgdF9uLCBUX1AsIEdfVFlQRV9GTEFHX0FCU1RSQUNULCBHX0FERF9QUklWQVRFIChUTikpAEdfWkxJQl9DT01QUkVTU09SKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfWkxJQl9DT01QUkVTU09SLCBHWmxpYkNvbXByZXNzb3IpKQBTSUdSVE1BWCAoX19saWJjX2N1cnJlbnRfc2lncnRtYXggKCkpAEdfSVNfUEFSQU1fU1BFQ19TVFJJTkcocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX1NUUklORykpAEdfVFlQRV9UTFNfSU5URVJBQ1RJT04gKGdfdGxzX2ludGVyYWN0aW9uX2dldF90eXBlICgpKQBnX2xpc3RfcHJldmlvdXMobGlzdCkgKChsaXN0KSA/ICgoKEdMaXN0ICopKGxpc3QpKS0+cHJldikgOiBOVUxMKQBHX0NTRVRfTEFUSU5TICJcMzM3XDM0MFwzNDFcMzQyXDM0M1wzNDRcMzQ1XDM0NiIgIlwzNDdcMzUwXDM1MVwzNTJcMzUzXDM1NFwzNTVcMzU2XDM1N1wzNjAiICJcMzYxXDM2MlwzNjNcMzY0XDM2NVwzNjYiICJcMzcwXDM3MVwzNzJcMzczXDM3NFwzNzVcMzc2XDM3NyIAR19QQVNURShpZGVudGlmaWVyMSxpZGVudGlmaWVyMikgR19QQVNURV9BUkdTIChpZGVudGlmaWVyMSwgaWRlbnRpZmllcjIpAEFURVhJVChwcm9jKSBnX0FURVhJVChwcm9jKQBGUEVfSU5URElWIEZQRV9JTlRESVYAQ2FsbEJvb2xlYW5NZXRob2RWAE5ld0Zsb2F0QXJyYXkAR19SRVNPTFZFUl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfUkVTT0xWRVIsIEdSZXNvbHZlckNsYXNzKSkAZ19hdG9taWNfcG9pbnRlcl9jb21wYXJlX2FuZF9leGNoYW5nZShhdG9taWMsb2xkdmFsLG5ld3ZhbCkgKEdfR05VQ19FWFRFTlNJT04gKHsgR19TVEFUSUNfQVNTRVJUIChzaXplb2YgKihhdG9taWMpID09IHNpemVvZiAoZ3BvaW50ZXIpKTsgKHZvaWQpICgwID8gKGdwb2ludGVyKSAqKGF0b21pYykgOiAwKTsgKGdib29sZWFuKSBfX3N5bmNfYm9vbF9jb21wYXJlX2FuZF9zd2FwICgoYXRvbWljKSwgKG9sZHZhbCksIChuZXd2YWwpKTsgfSkpAF9JT1NfT1VUUFVUIDIAR19LRVlfRklMRV9FUlJPUiBnX2tleV9maWxlX2Vycm9yX3F1YXJrKCkAX1BDX05BTUVfTUFYIF9QQ19OQU1FX01BWABnX2Rpcm5hbWUgZ19wYXRoX2dldF9kaXJuYW1lAF9fREJMX01JTl8xMF9FWFBfXyAoLTMwNykAX19HX1NDQU5ORVJfSF9fIABfX1NMT05HMzJfVFlQRSBpbnQAZ19wdHJfYXJyYXlfaW5kZXgoYXJyYXksaW5kZXhfKSAoKGFycmF5KS0+cGRhdGEpW2luZGV4X10AR19EQlVTX09CSkVDVF9NQU5BR0VSX0dFVF9JRkFDRShvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UoKG8pLCBHX1RZUEVfREJVU19PQkpFQ1RfTUFOQUdFUiwgR0RCdXNPYmplY3RNYW5hZ2VySWZhY2UpKQBHX1pMSUJfREVDT01QUkVTU09SX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfWkxJQl9ERUNPTVBSRVNTT1IsIEdabGliRGVjb21wcmVzc29yQ2xhc3MpKQBfUE9TSVhfUkVHRVhQIDEAX190aW1lcl90X2RlZmluZWQgMQBHX1RZUEVfUEFSQU1fVUNIQVIgKGdfcGFyYW1fc3BlY190eXBlc1sxXSkAX19HX0RCVVNfSU5URVJGQUNFX0hfXyAAR19QUk9YWV9FWFRFTlNJT05fUE9JTlRfTkFNRSAiZ2lvLXByb3h5IgBKTklOYXRpdmVJbnRlcmZhY2VfAGdfYXNzZXJ0X25vX2Vycm9yKGVycikgR19TVE1UX1NUQVJUIHsgaWYgKGVycikgZ19hc3NlcnRpb25fbWVzc2FnZV9lcnJvciAoR19MT0dfRE9NQUlOLCBfX0ZJTEVfXywgX19MSU5FX18sIEdfU1RSRlVOQywgI2VyciwgZXJyLCAwLCAwKTsgfSBHX1NUTVRfRU5EAEdfVFlQRV9QT0xMQUJMRV9JTlBVVF9TVFJFQU0gKGdfcG9sbGFibGVfaW5wdXRfc3RyZWFtX2dldF90eXBlICgpKQBHX1ZPTFVNRV9JREVOVElGSUVSX0tJTkRfTEFCRUwgImxhYmVsIgBHZXRTdGF0aWNNZXRob2RJRABfSU9fVU5JRklFRF9KVU1QVEFCTEVTIDEAX1BPU0lYX1RSQUNFX0xPRyAtMQBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGMzJfTElCUyBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGMzJfTElCUwBfX2ZzZmlsY250X3RfZGVmaW5lZCAAR19HTlVDX0FMTE9DX1NJWkUoeCkgX19hdHRyaWJ1dGVfXygoX19hbGxvY19zaXplX18oeCkpKQBHX0FMTE9DQVRPUl9OT0RFIDMAR0xJQl9ERVBSRUNBVEVEX0lOXzJfNDIgR0xJQl9ERVBSRUNBVEVEAEdfUEFSQU1fU1BFQ19DTEFTUyhwY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKHBjbGFzcyksIEdfVFlQRV9QQVJBTSwgR1BhcmFtU3BlY0NsYXNzKSkAQlVGU0laIF9JT19CVUZTSVoAR19UWVBFX0lORVRfU09DS0VUX0FERFJFU1MgKGdfaW5ldF9zb2NrZXRfYWRkcmVzc19nZXRfdHlwZSAoKSkAX19QVEhSRUFEX01VVEVYX0hBVkVfUFJFViAxAF9fYXR0cmlidXRlX3dhcm5fdW51c2VkX3Jlc3VsdF9fIF9fYXR0cmlidXRlX18gKChfX3dhcm5fdW51c2VkX3Jlc3VsdF9fKSkAR19JU19DQU5DRUxMQUJMRShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0NBTkNFTExBQkxFKSkAR19QQVJBTV9TUEVDX0lOVDY0KHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9JTlQ2NCwgR1BhcmFtU3BlY0ludDY0KSkAR19UWVBFX1NVQlBST0NFU1NfTEFVTkNIRVIgKGdfc3VicHJvY2Vzc19sYXVuY2hlcl9nZXRfdHlwZSAoKSkAR19MT0NLX0VYVEVSTihuYW1lKSBleHRlcm4gR011dGV4IEdfTE9DS19OQU1FIChuYW1lKQBHX1RZUEVfT1BUSU9OX0dST1VQIChnX29wdGlvbl9ncm91cF9nZXRfdHlwZSAoKSkAZ19hdG9taWNfcG9pbnRlcl9hZGQoYXRvbWljLHZhbCkgKEdfR05VQ19FWFRFTlNJT04gKHsgR19TVEFUSUNfQVNTRVJUIChzaXplb2YgKihhdG9taWMpID09IHNpemVvZiAoZ3BvaW50ZXIpKTsgKHZvaWQpICgwID8gKGdwb2ludGVyKSAqKGF0b21pYykgOiAwKTsgKHZvaWQpICgwID8gKHZhbCkgXiAodmFsKSA6IDApOyAoZ3NzaXplKSBfX3N5bmNfZmV0Y2hfYW5kX2FkZCAoKGF0b21pYyksICh2YWwpKTsgfSkpAENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRCAyAEdfSEFWRV9HTlVDX1ZJU0lCSUxJVFkgMQBqdXNlcgBfX0xFQUZfQVRUUiBfX2F0dHJpYnV0ZV9fICgoX19sZWFmX18pKQBHX1RZUEVfRVJST1IgKGdfZXJyb3JfZ2V0X3R5cGUgKCkpAF9TSUdTRVRfSF90eXBlcyAxAF9fdW5peCAxAEdfVFlQRV9TT0NLRVQgKGdfc29ja2V0X2dldF90eXBlICgpKQBfU0NfVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUyBfU0NfVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUwBfX1VTRV9NSVNDAEdfSVNfVFlQRV9QTFVHSU5fQ0xBU1ModnRhYmxlKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKCh2dGFibGUpLCBHX1RZUEVfVFlQRV9QTFVHSU4pKQBzaV9hZGRyIF9zaWZpZWxkcy5fc2lnZmF1bHQuc2lfYWRkcgBqY2hhcgBfX25lZWRfX192YV9saXN0AEdfVkFMVUVfSE9MRFNfRE9VQkxFKHZhbHVlKSAoR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKCh2YWx1ZSksIEdfVFlQRV9ET1VCTEUpKQBfX2hhc19hdHRyaWJ1dGUoeCkgMABHX0lPX01PRFVMRShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19JT19UWVBFX01PRFVMRSwgR0lPTW9kdWxlKSkAR19UWVBFX0JZVEVTX0lDT04gKGdfYnl0ZXNfaWNvbl9nZXRfdHlwZSAoKSkAR1NTSVpFX0ZST01fTEUodmFsKSAoR1NTSVpFX1RPX0xFICh2YWwpKQBHX0FDVElPTl9NQVAoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9BQ1RJT05fTUFQLCBHQWN0aW9uTWFwKSkAQ2FsbE5vbnZpcnR1YWxMb25nTWV0aG9kQQBfUE9TSVhfVkVSU0lPTiAyMDA4MDlMAEdldFN0YXRpY0Jvb2xlYW5GaWVsZABHX0RFQ0xBUkVfREVSSVZBQkxFX1RZUEUoTW9kdWxlT2JqTmFtZSxtb2R1bGVfb2JqX25hbWUsTU9EVUxFLE9CSl9OQU1FLFBhcmVudE5hbWUpIEdUeXBlIG1vZHVsZV9vYmpfbmFtZSAjI19nZXRfdHlwZSAodm9pZCk7IEdfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TIHR5cGVkZWYgc3RydWN0IF8gIyNNb2R1bGVPYmpOYW1lIE1vZHVsZU9iak5hbWU7IHR5cGVkZWYgc3RydWN0IF8gIyNNb2R1bGVPYmpOYW1lICMjQ2xhc3MgTW9kdWxlT2JqTmFtZSAjI0NsYXNzOyBzdHJ1Y3QgXyAjI01vZHVsZU9iak5hbWUgeyBQYXJlbnROYW1lIHBhcmVudF9pbnN0YW5jZTsgfTsgX0dMSUJfREVGSU5FX0FVVE9QVFJfQ0hBSU5VUCAoTW9kdWxlT2JqTmFtZSwgUGFyZW50TmFtZSkgc3RhdGljIGlubGluZSBNb2R1bGVPYmpOYW1lICogTU9EVUxFICMjXyAjI09CSl9OQU1FIChncG9pbnRlciBwdHIpIHsgcmV0dXJuIEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUIChwdHIsIG1vZHVsZV9vYmpfbmFtZSAjI19nZXRfdHlwZSAoKSwgTW9kdWxlT2JqTmFtZSk7IH0gc3RhdGljIGlubGluZSBNb2R1bGVPYmpOYW1lICMjQ2xhc3MgKiBNT0RVTEUgIyNfICMjT0JKX05BTUUgIyNfQ0xBU1MgKGdwb2ludGVyIHB0cikgeyByZXR1cm4gR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKHB0ciwgbW9kdWxlX29ial9uYW1lICMjX2dldF90eXBlICgpLCBNb2R1bGVPYmpOYW1lICMjQ2xhc3MpOyB9IHN0YXRpYyBpbmxpbmUgZ2Jvb2xlYW4gTU9EVUxFICMjX0lTXyAjI09CSl9OQU1FIChncG9pbnRlciBwdHIpIHsgcmV0dXJuIEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFIChwdHIsIG1vZHVsZV9vYmpfbmFtZSAjI19nZXRfdHlwZSAoKSk7IH0gc3RhdGljIGlubGluZSBnYm9vbGVhbiBNT0RVTEUgIyNfSVNfICMjT0JKX05BTUUgIyNfQ0xBU1MgKGdwb2ludGVyIHB0cikgeyByZXR1cm4gR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKHB0ciwgbW9kdWxlX29ial9uYW1lICMjX2dldF90eXBlICgpKTsgfSBzdGF0aWMgaW5saW5lIE1vZHVsZU9iak5hbWUgIyNDbGFzcyAqIE1PRFVMRSAjI18gIyNPQkpfTkFNRSAjI19HRVRfQ0xBU1MgKGdwb2ludGVyIHB0cikgeyByZXR1cm4gR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAocHRyLCBtb2R1bGVfb2JqX25hbWUgIyNfZ2V0X3R5cGUgKCksIE1vZHVsZU9iak5hbWUgIyNDbGFzcyk7IH0gR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TAF9fQVRPTUlDX0FDUV9SRUwgNABfX3VuZGVmX0FSR19NQVgAQ2FsbFN0YXRpY1ZvaWRNZXRob2RBAHNjaGVkX3ByaW9yaXR5IF9fc2NoZWRfcHJpb3JpdHkAX19VU0VfRk9SVElGWV9MRVZFTABfR1R5cGVJbnN0YW5jZQBfQ1NfUE9TSVhfVjdfSUxQMzJfT0ZGMzJfQ0ZMQUdTIF9DU19QT1NJWF9WN19JTFAzMl9PRkYzMl9DRkxBR1MAX19HX1JFU09VUkNFX0hfXyAAQ2FsbE5vbnZpcnR1YWxMb25nTWV0aG9kVgBqc2hvcnRBcnJheQBHX1RZUEVfUFJPWFkgKGdfcHJveHlfZ2V0X3R5cGUgKCkpAF9fR19EQlVTX0lOVEVSRkFDRV9TS0VMRVRPTl9IX18gAEdfRklMRV9JTkZPX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfRklMRV9JTkZPLCBHRmlsZUluZm9DbGFzcykpAEdfUEFSQU1fU1BFQ19QT0lOVEVSKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9QT0lOVEVSLCBHUGFyYW1TcGVjUG9pbnRlcikpAENhbGxTdGF0aWNWb2lkTWV0aG9kVgBfX25lZWRfc2lnaW5mb190AFBUSFJFQURfU0NPUEVfU1lTVEVNIFBUSFJFQURfU0NPUEVfU1lTVEVNAEdMSUJfU0laRU9GX0xPTkcgOABKTklfVkVSU0lPTl8xXzggMHgwMDAxMDAwOABfX0dMSUJDX0hBVkVfTE9OR19MT05HIDEAR19UWVBFX1BMVUdJTl9HRVRfQ0xBU1MoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgoaW5zdCksIEdfVFlQRV9UWVBFX1BMVUdJTiwgR1R5cGVQbHVnaW5DbGFzcykpAEdfSVNfUkVNT1RFX0FDVElPTl9HUk9VUChpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX1JFTU9URV9BQ1RJT05fR1JPVVApKQBCQ19CQVNFX01BWCBfUE9TSVgyX0JDX0JBU0VfTUFYAEdfSVNfSU5JVElBTExZX1VOT1dORUQob2JqZWN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmplY3QpLCBHX1RZUEVfSU5JVElBTExZX1VOT1dORUQpKQBfX0dfQUNUSU9OX01BUF9IX18gAEdfU09DS0VUX0NPTk5FQ1RJT05fQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGNsYXNzKSwgR19UWVBFX1NPQ0tFVF9DT05ORUNUSU9OLCBHU29ja2V0Q29ubmVjdGlvbkNsYXNzKSkAR19NQVhVSU5UIFVJTlRfTUFYAF9fQ1BVX0FMTE9DKGNvdW50KSBfX3NjaGVkX2NwdWFsbG9jIChjb3VudCkAR19JU19GSUxFX0lOUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0ZJTEVfSU5QVVRfU1RSRUFNKSkATmV3TG9uZ0FycmF5AEdfSVNfUEFSQU1fU1BFQ19QQVJBTShwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fUEFSQU0pKQBHX0xJS0VMWShleHByKSAoZXhwcikAX19VU0VfUkVFTlRSQU5UAEdfVFlQRV9WT0xVTUVfTU9OSVRPUiAoZ192b2x1bWVfbW9uaXRvcl9nZXRfdHlwZSAoKSkAX0NTX1BPU0lYX1Y2X0xQNjRfT0ZGNjRfQ0ZMQUdTIF9DU19QT1NJWF9WNl9MUDY0X09GRjY0X0NGTEFHUwBHX0FQUF9JTkZPX01PTklUT1IoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgoaW5zdCksIEdfVFlQRV9BUFBfSU5GT19NT05JVE9SLCBHQXBwSW5mb01vbml0b3IpKQBHX0ZJTEVfT1VUUFVUX1NUUkVBTV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfRklMRV9PVVRQVVRfU1RSRUFNLCBHRmlsZU91dHB1dFN0cmVhbUNsYXNzKSkAX1NDX1NFTUFQSE9SRVMgX1NDX1NFTUFQSE9SRVMAX19HX1NUUklOR0NIVU5LX0hfXyAAR19TSU1QTEVfSU9fU1RSRUFNKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgob2JqKSwgR19UWVBFX1NJTVBMRV9JT19TVFJFQU0sIEdTaW1wbGVJT1N0cmVhbSkpAGdfc2xpY2VfZnJlZV9jaGFpbih0eXBlLG1lbV9jaGFpbixuZXh0KSBHX1NUTVRfU1RBUlQgeyBpZiAoMSkgZ19zbGljZV9mcmVlX2NoYWluX3dpdGhfb2Zmc2V0IChzaXplb2YgKHR5cGUpLCAobWVtX2NoYWluKSwgR19TVFJVQ1RfT0ZGU0VUICh0eXBlLCBuZXh0KSk7IGVsc2UgKHZvaWQpICgodHlwZSopIDAgPT0gKG1lbV9jaGFpbikpOyB9IEdfU1RNVF9FTkQAR19USEVNRURfSUNPTihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX1RIRU1FRF9JQ09OLCBHVGhlbWVkSWNvbikpAEdfVVJJX1JFU0VSVkVEX0NIQVJTX0FMTE9XRURfSU5fVVNFUklORk8gR19VUklfUkVTRVJWRURfQ0hBUlNfU1VCQ09NUE9ORU5UX0RFTElNSVRFUlMgIjoiAENhbGxTdGF0aWNDaGFyTWV0aG9kAF9fR0NDX0hBVkVfU1lOQ19DT01QQVJFX0FORF9TV0FQXzQgMQBfX0dfVExTX0JBQ0tFTkRfSF9fIABHX0lTX1NFVFRJTkdTX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9TRVRUSU5HUykpAF9JT19ERUMgMDIwAF9YTE9DQUxFX0ggMQBHX0RBVEFHUkFNX0JBU0VEX0dFVF9JRkFDRShpbnN0KSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKChpbnN0KSwgR19UWVBFX0RBVEFHUkFNX0JBU0VELCBHRGF0YWdyYW1CYXNlZEludGVyZmFjZSkpAEdMSUJfREVQUkVDQVRFRF9JTl8yXzI2IEdMSUJfREVQUkVDQVRFRABfX0dfSU9fSF9fIABHX1RZUEVfSVNfREFUQUdSQU1fQkFTRUQodHlwZSkgKGdfdHlwZV9pc19hICgodHlwZSksIEdfVFlQRV9EQVRBR1JBTV9CQVNFRCkpAF9fUkVHSVNURVJfUFJFRklYX18gAEdfSVNfU0VUVElOR1MoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9TRVRUSU5HUykpAF9fU0laRU9GX0ZMT0FUX18gNABHX1RZUEVfUEFSQU0gR19UWVBFX01BS0VfRlVOREFNRU5UQUwgKDE5KQBfU0NfQURWSVNPUllfSU5GTyBfU0NfQURWSVNPUllfSU5GTwBHX1RZUEVfU09DS0VUX0FERFJFU1MgKGdfc29ja2V0X2FkZHJlc3NfZ2V0X3R5cGUgKCkpAFNldEZsb2F0RmllbGQAR19JU19DT05WRVJURVIob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmopLCBHX1RZUEVfQ09OVkVSVEVSKSkAR19UWVBFX1NPQ0tFVF9QUk9UT0NPTCAoZ19zb2NrZXRfcHJvdG9jb2xfZ2V0X3R5cGUgKCkpAGdfYXRvbWljX2ludF9nZXQoYXRvbWljKSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6ZW9mIChnaW50KSk7ICh2b2lkKSAoMCA/ICooYXRvbWljKSBeICooYXRvbWljKSA6IDApOyAoZ2ludCkgX19hdG9taWNfbG9hZF80ICgoYXRvbWljKSwgX19BVE9NSUNfU0VRX0NTVCk7IH0pKQBfX3NpZ2ZpbGxzZXQoc2V0KSAoX19leHRlbnNpb25fXyAoeyBpbnQgX19jbnQgPSBfU0lHU0VUX05XT1JEUzsgc2lnc2V0X3QgKl9fc2V0ID0gKHNldCk7IHdoaWxlICgtLV9fY250ID49IDApIF9fc2V0LT5fX3ZhbFtfX2NudF0gPSB+MFVMOyAwOyB9KSkASk5JTmF0aXZlTWV0aG9kAF9fTERCTF9SRURJUjFfTlRIKG5hbWUscHJvdG8sYWxpYXMpIG5hbWUgcHJvdG8gX19USFJPVwBTZXRCeXRlRmllbGQAR19VTkFWQUlMQUJMRShtYWosbWluKSBfX2F0dHJpYnV0ZV9fKChkZXByZWNhdGVkKCJOb3QgYXZhaWxhYmxlIGJlZm9yZSAiICNtYWogIi4iICNtaW4pKSkAR19QUk9YWV9BRERSRVNTX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9QUk9YWV9BRERSRVNTLCBHUHJveHlBZGRyZXNzQ2xhc3MpKQBHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX1RSWV9FWEVDICJUcnlFeGVjIgBHX0lPX1NUUkVBTV9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfSU9fU1RSRUFNLCBHSU9TdHJlYW1DbGFzcykpAF9TQ19QSUkgX1NDX1BJSQBfX25lZWRfRklMRQBfX3g4Nl82NCAxAFBPTExfT1VUIFBPTExfT1VUAGpieXRlQXJyYXkAX19GRF9aRVJPX1NUT1MgInN0b3NxIgBfU0NfTEVWRUwzX0NBQ0hFX1NJWkUgX1NDX0xFVkVMM19DQUNIRV9TSVpFAEdfVFlQRV9GSUxFX0FUVFJJQlVURV9JTkZPX0xJU1QgKGdfZmlsZV9hdHRyaWJ1dGVfaW5mb19saXN0X2dldF90eXBlICgpKQBfX0dMSUJfVFlQRVNfSF9fIABfSU9fRU9GX1NFRU4gMHgxMABfX1VTRV9QT1NJWDE5OTUwNgBHX0ZJTEVfQVRUUklCVVRFX09XTkVSX1VTRVIgIm93bmVyOjp1c2VyIgBSZWxlYXNlRG91YmxlQXJyYXlFbGVtZW50cwBMREJMX01JTl9FWFAAX19GQVZPUl9CU0QAU0lHS0lMTCA5AEdfSU1QTEVNRU5UX0lOVEVSRkFDRShUWVBFX0lGQUNFLGlmYWNlX2luaXQpIHsgY29uc3QgR0ludGVyZmFjZUluZm8gZ19pbXBsZW1lbnRfaW50ZXJmYWNlX2luZm8gPSB7IChHSW50ZXJmYWNlSW5pdEZ1bmMpIGlmYWNlX2luaXQsIE5VTEwsIE5VTEwgfTsgZ190eXBlX2FkZF9pbnRlcmZhY2Vfc3RhdGljIChnX2RlZmluZV90eXBlX2lkLCBUWVBFX0lGQUNFLCAmZ19pbXBsZW1lbnRfaW50ZXJmYWNlX2luZm8pOyB9AExEQkxfTUFYXzEwX0VYUCBfX0xEQkxfTUFYXzEwX0VYUF9fAGdfbWFpbl9kZXN0cm95KGxvb3ApIGdfbWFpbl9sb29wX3VucmVmKGxvb3ApAF9fQ0hBUl9CSVRfXyA4AExPTkdfTUFYIF9fTE9OR19NQVhfXwBHX0RFRklORV9UWVBFKFROLHRfbixUX1ApIEdfREVGSU5FX1RZUEVfRVhURU5ERUQgKFROLCB0X24sIFRfUCwgMCwge30pAF9HRGF0YQBfX0ZMVF9ERU5PUk1fTUlOX18gMS40MDEyOTg0NjQzMjQ4MTcwNzA5MmUtNDVGAEdfSVNfQlVGRkVSRURfT1VUUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0JVRkZFUkVEX09VVFBVVF9TVFJFQU0pKQBzaWdtYXNrKHNpZykgX19zaWdtYXNrKHNpZykAR19EQlVTX0FDVElPTl9HUk9VUF9HRVRfQ0xBU1MoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChpbnN0KSwgR19UWVBFX0RCVVNfQUNUSU9OX0dST1VQLCBHREJ1c0FjdGlvbkdyb3VwQ2xhc3MpKQBHX1RIUkVBRFNfRU5BQkxFRCAAR19JU19FTlVNX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9FTlVNKSkAX19HX1RSRUVfSF9fIABHX0FOQUxZWkVSX0FOQUxZWklORyAwAF9fR19UTFNfQ0xJRU5UX0NPTk5FQ1RJT05fSF9fIABUUlVFICghRkFMU0UpAF9fZXJyb3JkZWNsKG5hbWUsbXNnKSBleHRlcm4gdm9pZCBuYW1lICh2b2lkKSBfX2F0dHJpYnV0ZV9fKChfX2Vycm9yX18gKG1zZykpKQBmdHBQcm94eVNldHRpbmdzAENMT0NLX1RBSSAxMQBHX1RZUEVfRFRMU19DT05ORUNUSU9OIChnX2R0bHNfY29ubmVjdGlvbl9nZXRfdHlwZSAoKSkAR1VJTlQxNl9TV0FQX0JFX1BEUCh2YWwpIChHVUlOVDE2X1NXQVBfTEVfQkUgKHZhbCkpAEdfSVNfTUVOVV9JVEVNKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKGluc3QpLCBHX1RZUEVfTUVOVV9JVEVNKSkAR19UWVBFX0dUWVBFIChnX2d0eXBlX2dldF90eXBlKCkpAEdfVkFMVUVfSE9MRFNfU1RSSU5HKHZhbHVlKSAoR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKCh2YWx1ZSksIEdfVFlQRV9TVFJJTkcpKQBHX1ZPTFVNRV9NT05JVE9SX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfVk9MVU1FX01PTklUT1IsIEdWb2x1bWVNb25pdG9yQ2xhc3MpKQBsb25nIGxvbmcgdW5zaWduZWQgaW50AEdfRklMRV9BVFRSSUJVVEVfQUNDRVNTX0NBTl9FWEVDVVRFICJhY2Nlc3M6OmNhbi1leGVjdXRlIgBHX0FMTE9DQVRPUl9MSVNUIDEAX19HX1VUSUxTX0hfXyAAVUxMT05HX01BWCAoTExPTkdfTUFYICogMlVMTCArIDEpAEdfVFlQRV9QQVJBTV9VTklDSEFSIChnX3BhcmFtX3NwZWNfdHlwZXNbOV0pAEdfVFlQRV9QRVJNSVNTSU9OIChnX3Blcm1pc3Npb25fZ2V0X3R5cGUgKCkpAEdfVkFMVUVfSE9MRFNfT0JKRUNUKHZhbHVlKSAoR19UWVBFX0NIRUNLX1ZBTFVFX1RZUEUgKCh2YWx1ZSksIEdfVFlQRV9PQkpFQ1QpKQBHX0tFWV9GSUxFX0RFU0tUT1BfS0VZX0lDT04gIkljb24iAF9fR0NDX0FUT01JQ19CT09MX0xPQ0tfRlJFRSAyAF9DU19QT1NJWF9WNl9JTFAzMl9PRkZCSUdfTERGTEFHUyBfQ1NfUE9TSVhfVjZfSUxQMzJfT0ZGQklHX0xERkxBR1MAX0lPX0xJTkVfQlVGIDB4MjAwAF9fTERCTF9NQU5UX0RJR19fIDY0AEdfT1BUSU9OX1JFTUFJTklORyAiIgBfR19IQVZFX01SRU1BUCAxAEdfVFlQRV9OT05FIEdfVFlQRV9NQUtFX0ZVTkRBTUVOVEFMICgxKQBHX0RCVVNfSU5URVJGQUNFX0dFVF9JRkFDRShvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UoKG8pLCBHX1RZUEVfREJVU19JTlRFUkZBQ0UsIEdEQnVzSW50ZXJmYWNlSWZhY2UpKQBGUF9YU1RBVEVfTUFHSUMyX1NJWkUgc2l6ZW9mKEZQX1hTVEFURV9NQUdJQzIpAGdfc2lnbmFsX2hhbmRsZXJzX3VuYmxvY2tfYnlfZnVuYyhpbnN0YW5jZSxmdW5jLGRhdGEpIGdfc2lnbmFsX2hhbmRsZXJzX3VuYmxvY2tfbWF0Y2hlZCAoKGluc3RhbmNlKSwgKEdTaWduYWxNYXRjaFR5cGUpIChHX1NJR05BTF9NQVRDSF9GVU5DIHwgR19TSUdOQUxfTUFUQ0hfREFUQSksIDAsIDAsIE5VTEwsIChmdW5jKSwgKGRhdGEpKQBHX1RZUEVfRklMRV9UWVBFIChnX2ZpbGVfdHlwZV9nZXRfdHlwZSAoKSkAR0xJQl9BVkFJTEFCTEVfSU5fMl80MCBfR0xJQl9FWFRFUk4AX2pvYmplY3RUeXBlAF9fR19MSVNUX0hfXyAAX19JTlRfTEVBU1QzMl9NQVhfXyAyMTQ3NDgzNjQ3AF9fTERCTF9SRURJUl9OVEgobmFtZSxwcm90bykgbmFtZSBwcm90byBfX1RIUk9XAF9fbmVlZF9GSUxFIABHX01BUktVUF9FUlJPUiBnX21hcmt1cF9lcnJvcl9xdWFyayAoKQBUaHJvd05ldwBHSU5UMzJfVE9fQkUodmFsKSAoKGdpbnQzMikgR1VJTlQzMl9TV0FQX0xFX0JFICh2YWwpKQBHX0lTX1BBUkFNX1NQRUNfRU5VTShwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fRU5VTSkpAF9TQ19VQ0hBUl9NQVggX1NDX1VDSEFSX01BWABHX1RZUEVfRkxBR19SRVNFUlZFRF9JRF9CSVQgKChHVHlwZSkgKDEgPDwgMCkpAF9fU1NFMl9NQVRIX18gMQBfR0xJQl9BVVRPUFRSX1RZUEVOQU1FKFR5cGVOYW1lKSBUeXBlTmFtZSAjI19hdXRvcHRyAF9fVVNFX1BPU0lYIDEASUxMX0JBRFNUSyBJTExfQkFEU1RLAEdfVFlQRV9JT19FUlJPUl9FTlVNIChnX2lvX2Vycm9yX2VudW1fZ2V0X3R5cGUgKCkpAF9TQ19USFJFQURfU1RBQ0tfTUlOIF9TQ19USFJFQURfU1RBQ0tfTUlOAF9fRUxGX18gMQBHX0lTX1NPQ0tFVF9DT05UUk9MX01FU1NBR0UoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9TT0NLRVRfQ09OVFJPTF9NRVNTQUdFKSkAR19UWVBFX1BMVUdJTl9DTEFTUyh2dGFibGUpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKHZ0YWJsZSksIEdfVFlQRV9UWVBFX1BMVUdJTiwgR1R5cGVQbHVnaW5DbGFzcykpAF9JT19JTlRFUk5BTCAwMTAAX1BPU0lYX1NUUkVBTV9NQVggOABfX0lOVDY0X1RZUEVfXyBsb25nIGludABqZG91YmxlAFRSQVBfQlJLUFQgVFJBUF9CUktQVABJTExfUFJWT1BDIElMTF9QUlZPUEMAR19BRERfUFJJVkFURShUeXBlTmFtZSkgeyBUeXBlTmFtZSAjI19wcml2YXRlX29mZnNldCA9IGdfdHlwZV9hZGRfaW5zdGFuY2VfcHJpdmF0ZSAoZ19kZWZpbmVfdHlwZV9pZCwgc2l6ZW9mIChUeXBlTmFtZSAjI1ByaXZhdGUpKTsgfQBHX1RZUEVfREJVU19NRU5VX01PREVMIChnX2RidXNfbWVudV9tb2RlbF9nZXRfdHlwZSAoKSkAQ0hBUkNMQVNTX05BTUVfTUFYIDIwNDgAX19hdHRyaWJ1dGVfY29uc3RfXyBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSkAR19UWVBFX0RCVVNfQ0FMTF9GTEFHUyAoZ19kYnVzX2NhbGxfZmxhZ3NfZ2V0X3R5cGUgKCkpAGdfc3RlYWxfcG9pbnRlcihwcCkgKDAgPyAoKihwcCkpIDogKGdfc3RlYWxfcG9pbnRlcikgKHBwKSkAX19USFJPV05MIF9fYXR0cmlidXRlX18gKChfX25vdGhyb3dfXykpAENhbGxGbG9hdE1ldGhvZEEAR2V0U2hvcnRGaWVsZABHX1ZBTFVFX0hPTERTX1ZBUklBTlQodmFsdWUpIChHX1RZUEVfQ0hFQ0tfVkFMVUVfVFlQRSAoKHZhbHVlKSwgR19UWVBFX1ZBUklBTlQpKQBfX0dfVkFMVUVfQVJSQVlfSF9fIABfX3N0dWJfcmV2b2tlIABwcm94eVNldHRpbmdzAEdfRklMRV9BVFRSSUJVVEVfVU5JWF9OTElOSyAidW5peDo6bmxpbmsiAEdMSUJfREVQUkVDQVRFRF9JTl8yXzQ2IEdMSUJfREVQUkVDQVRFRABfX0dfQ09OVkVSVEVSX0hfXyAAR19UWVBFX1BBUkFNX0lOVCAoZ19wYXJhbV9zcGVjX3R5cGVzWzNdKQBfX0xEQkxfUkVESVJfREVDTChuYW1lKSAAX19HX1FVRVVFX0hfXyAAQ2FsbEZsb2F0TWV0aG9kVgBHX1BBUkFNX1NQRUNfVUxPTkcocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX1VMT05HLCBHUGFyYW1TcGVjVUxvbmcpKQBHX0lORVRfU09DS0VUX0FERFJFU1MobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9JTkVUX1NPQ0tFVF9BRERSRVNTLCBHSW5ldFNvY2tldEFkZHJlc3MpKQBDYWxsRmxvYXRNZXRob2QAR19NQVhVSU5UMTYgKChndWludDE2KSAweGZmZmYpAF9faWRfdF9kZWZpbmVkIABfX1dDSEFSX1QgAEdfTkVUV09SS19NT05JVE9SX0dFVF9JTlRFUkZBQ0UobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgobyksIEdfVFlQRV9ORVRXT1JLX01PTklUT1IsIEdOZXR3b3JrTW9uaXRvckludGVyZmFjZSkpAF9HU0xpc3QAX0NTX0xGU19MSU5URkxBR1MgX0NTX0xGU19MSU5URkxBR1MAR19UWVBFX0lOUFVUX1NUUkVBTSAoZ19pbnB1dF9zdHJlYW1fZ2V0X3R5cGUgKCkpAF9fTlRIKGZjdCkgX19hdHRyaWJ1dGVfXyAoKF9fbm90aHJvd19fIF9fTEVBRikpIGZjdABfVkFfTElTVF8gAEdfT0JKRUNUX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QgKChjbGFzcyksIEdfVFlQRV9PQkpFQ1QsIEdPYmplY3RDbGFzcykpAEdldEJvb2xlYW5BcnJheVJlZ2lvbgBfX2F0dHJpYnV0ZV9ub2lubGluZV9fIF9fYXR0cmlidXRlX18gKChfX25vaW5saW5lX18pKQBHZXRGbG9hdEFycmF5UmVnaW9uAEdfUEFSQU1fU1BFQ19GTEFHUyhwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fRkxBR1MsIEdQYXJhbVNwZWNGbGFncykpAEdfVFlQRV9VTklYX1NPQ0tFVF9BRERSRVNTX1RZUEUgKGdfdW5peF9zb2NrZXRfYWRkcmVzc190eXBlX2dldF90eXBlICgpKQBHX1RZUEVfUkVTT0xWRVIgKGdfcmVzb2x2ZXJfZ2V0X3R5cGUgKCkpAF9TQ19SRUFERVJfV1JJVEVSX0xPQ0tTIF9TQ19SRUFERVJfV1JJVEVSX0xPQ0tTAF9fbmVlZF9fX3ZhX2xpc3QgAEdfVkFSSUFOVF9UWVBFX1ZBUkRJQ1QgKChjb25zdCBHVmFyaWFudFR5cGUgKikgImF7c3Z9IikAX19kZXZfdF9kZWZpbmVkIABfX0NQVV9FUVVBTF9TKHNldHNpemUsY3B1c2V0cDEsY3B1c2V0cDIpIChfX2J1aWx0aW5fbWVtY21wIChjcHVzZXRwMSwgY3B1c2V0cDIsIHNldHNpemUpID09IDApAEdfVExTX0JBQ0tFTkRfRVhURU5TSU9OX1BPSU5UX05BTUUgImdpby10bHMtYmFja2VuZCIAX19HX0ZJTEVfSU5QVVRfU1RSRUFNX0hfXyAAX19MUDY0X18gMQBHTElCX1NZU0RFRl9QT0xMSFVQID0xNgBfUE9TSVhfU1BJTl9MT0NLUyAyMDA4MDlMAHB0aHJlYWRfY2xlYW51cF9wdXNoKHJvdXRpbmUsYXJnKSBkbyB7IF9fcHRocmVhZF91bndpbmRfYnVmX3QgX19jYW5jZWxfYnVmOyB2b2lkICgqX19jYW5jZWxfcm91dGluZSkgKHZvaWQgKikgPSAocm91dGluZSk7IHZvaWQgKl9fY2FuY2VsX2FyZyA9IChhcmcpOyBpbnQgX19ub3RfZmlyc3RfY2FsbCA9IF9fc2lnc2V0am1wICgoc3RydWN0IF9fam1wX2J1Zl90YWcgKikgKHZvaWQgKikgX19jYW5jZWxfYnVmLl9fY2FuY2VsX2ptcF9idWYsIDApOyBpZiAoX19nbGliY191bmxpa2VseSAoX19ub3RfZmlyc3RfY2FsbCkpIHsgX19jYW5jZWxfcm91dGluZSAoX19jYW5jZWxfYXJnKTsgX19wdGhyZWFkX3Vud2luZF9uZXh0ICgmX19jYW5jZWxfYnVmKTsgfSBfX3B0aHJlYWRfcmVnaXN0ZXJfY2FuY2VsICgmX19jYW5jZWxfYnVmKTsgZG8gewBfU0NfVEhSRUFEX0tFWVNfTUFYIF9TQ19USFJFQURfS0VZU19NQVgAR19OT0RFX0lTX1JPT1Qobm9kZSkgKCgoR05vZGUqKSAobm9kZSkpLT5wYXJlbnQgPT0gTlVMTCAmJiAoKEdOb2RlKikgKG5vZGUpKS0+cHJldiA9PSBOVUxMICYmICgoR05vZGUqKSAobm9kZSkpLT5uZXh0ID09IE5VTEwpAFNJR1VTUjEgMTAAR19TSU1QTEVfQVNZTkNfUkVTVUxUX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfU0lNUExFX0FTWU5DX1JFU1VMVCwgR1NpbXBsZUFzeW5jUmVzdWx0Q2xhc3MpKQBHX1RZUEVfSU5URVJGQUNFIEdfVFlQRV9NQUtFX0ZVTkRBTUVOVEFMICgyKQBHX1RZUEVfQ0hFQ0tfVkFMVUUodmFsdWUpIChfR19UWVBFX0NIViAoKHZhbHVlKSkpAEdfSVNfVkZTX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGspLCBHX1RZUEVfVkZTKSkAX1BPU0lYX0NMT0NLX1NFTEVDVElPTiAyMDA4MDlMAEZEX0lTU0VUKGZkLGZkc2V0cCkgX19GRF9JU1NFVCAoZmQsIGZkc2V0cCkATERCTF9NQVhfRVhQAFRUWV9OQU1FX01BWCAzMgBfX0dfVExTX0RBVEFCQVNFX0hfXyAAR0xJQl9BVkFJTEFCTEVfSU5fMl8zNiBfR0xJQl9FWFRFUk4AR19UWVBFX01FTU9SWV9PVVRQVVRfU1RSRUFNIChnX21lbW9yeV9vdXRwdXRfc3RyZWFtX2dldF90eXBlICgpKQBfU1lTX1RZUEVTX0ggMQBfX0ZTQkxLQ05UNjRfVF9UWVBFIF9fVVFVQURfVFlQRQBHX0lTX09VVFBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9PVVRQVVRfU1RSRUFNKSkAR19UWVBFX01FTlVfSVRFTSAoZ19tZW51X2l0ZW1fZ2V0X3R5cGUgKCkpAGdfYXNzZXJ0X251bGwoZXhwcikgR19TVE1UX1NUQVJUIHsgaWYgR19MSUtFTFkgKChleHByKSA9PSBOVUxMKSA7IGVsc2UgZ19hc3NlcnRpb25fbWVzc2FnZSAoR19MT0dfRE9NQUlOLCBfX0ZJTEVfXywgX19MSU5FX18sIEdfU1RSRlVOQywgIiciICNleHByICInIHNob3VsZCBiZSBOVUxMIik7IH0gR19TVE1UX0VORABHX0FMTE9DX09OTFkgMQBHX1RZUEVfREJVU19NRVNTQUdFX1RZUEUgKGdfZGJ1c19tZXNzYWdlX3R5cGVfZ2V0X3R5cGUgKCkpAF9fdGltZV90X2RlZmluZWQgMQBfX3Jlc3RyaWN0X2FyciBfX3Jlc3RyaWN0AEdfU09DS0VUX0NPTlRST0xfTUVTU0FHRV9HRVRfQ0xBU1MoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChpbnN0KSwgR19UWVBFX1NPQ0tFVF9DT05UUk9MX01FU1NBR0UsIEdTb2NrZXRDb250cm9sTWVzc2FnZUNsYXNzKSkAR19NRU5VX0FUVFJJQlVURV9JQ09OICJpY29uIgBQVEhSRUFEX0NBTkNFTF9BU1lOQ0hST05PVVMgUFRIUkVBRF9DQU5DRUxfQVNZTkNIUk9OT1VTAEdfTUVOVV9BVFRSSUJVVEVfSVRFUihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX01FTlVfQVRUUklCVVRFX0lURVIsIEdNZW51QXR0cmlidXRlSXRlcikpAEdfSVNfVExTX0ZJTEVfREFUQUJBU0UoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9UTFNfRklMRV9EQVRBQkFTRSkpAEdVSU5UX1RPX0JFKHZhbCkgKChndWludCkgR1VJTlQzMl9UT19CRSAodmFsKSkARlBfWFNUQVRFX01BR0lDMiAweDQ2NTA1ODQ1VQBHX0lTX1BBUkFNX1NQRUNfSU5UKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9JTlQpKQBfU0NfREVMQVlUSU1FUl9NQVggX1NDX0RFTEFZVElNRVJfTUFYAEdfTU9EVUxFX1NVRkZJWCAic28iAF9faW50OF90X2RlZmluZWQgAGdfZGF0YWxpc3RfcmVtb3ZlX2RhdGEoZGwsaykgZ19kYXRhbGlzdF9pZF9zZXRfZGF0YSAoKGRsKSwgZ19xdWFya190cnlfc3RyaW5nIChrKSwgTlVMTCkAR19QUklWQVRFX0lOSVQobm90aWZ5KSB7IE5VTEwsIChub3RpZnkpLCB7IE5VTEwsIE5VTEwgfSB9AF9fVVNFX1hPUEVOX0VYVEVOREVEAF9fR19EQlVTX09CSkVDVF9IX18gAEZMVF9SQURJWABHX1ZPTFVNRV9JREVOVElGSUVSX0tJTkRfSEFMX1VESSAiaGFsLXVkaSIAR0xJQl9WRVJTSU9OXzJfMzQgKEdfRU5DT0RFX1ZFUlNJT04gKDIsIDM0KSkAR0xJQl9WRVJTSU9OXzJfMjYgKEdfRU5DT0RFX1ZFUlNJT04gKDIsIDI2KSkAX1NDXzJfUEJTX0NIRUNLUE9JTlQgX1NDXzJfUEJTX0NIRUNLUE9JTlQAZ3BvaW50ZXIAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9ESVNQTEFZX05BTUUgInN0YW5kYXJkOjpkaXNwbGF5LW5hbWUiAEdfSVNfUEFSQU1fU1BFQ19WQVJJQU5UKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9WQVJJQU5UKSkAX19GRF9TRVQoZCxzZXQpICgodm9pZCkgKF9fRkRTX0JJVFMgKHNldClbX19GRF9FTFQgKGQpXSB8PSBfX0ZEX01BU0sgKGQpKSkAR19UWVBFX1BUUl9BUlJBWSAoZ19wdHJfYXJyYXlfZ2V0X3R5cGUgKCkpAF9QT1NJWF9USFJFQURfVEhSRUFEU19NQVggNjQAX19jbGVhbnVwX2ZjdF9hdHRyaWJ1dGUgAEdfTkFUSVZFX1ZPTFVNRV9NT05JVE9SKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfTkFUSVZFX1ZPTFVNRV9NT05JVE9SLCBHTmF0aXZlVm9sdW1lTW9uaXRvcikpAEdfRU1CTEVNRURfSUNPTl9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0VNQkxFTUVEX0lDT04sIEdFbWJsZW1lZEljb25DbGFzcykpAF9fSU5UX0xFQVNUMzJfVFlQRV9fIGludABHX0lTX1ZBTFVFKHZhbHVlKSAoR19UWVBFX0NIRUNLX1ZBTFVFICh2YWx1ZSkpAF9fR19NT1VOVF9IX18gAFBUSFJFQURfUFJPQ0VTU19QUklWQVRFIFBUSFJFQURfUFJPQ0VTU19QUklWQVRFAGdfc2lnbmFsX2Nvbm5lY3QoaW5zdGFuY2UsZGV0YWlsZWRfc2lnbmFsLGNfaGFuZGxlcixkYXRhKSBnX3NpZ25hbF9jb25uZWN0X2RhdGEgKChpbnN0YW5jZSksIChkZXRhaWxlZF9zaWduYWwpLCAoY19oYW5kbGVyKSwgKGRhdGEpLCBOVUxMLCAoR0Nvbm5lY3RGbGFncykgMCkAR2V0Q2hhckZpZWxkAEdfUFJJVkFURV9GSUVMRChUeXBlTmFtZSxpbnN0LGZpZWxkX3R5cGUsZmllbGRfbmFtZSkgR19TVFJVQ1RfTUVNQkVSIChmaWVsZF90eXBlLCBpbnN0LCBHX1BSSVZBVEVfT0ZGU0VUIChUeXBlTmFtZSwgZmllbGRfbmFtZSkpAEdfUFJJT1JJVFlfTE9XIDMwMABfX0dfU0lNUExFX0FDVElPTl9IX18gAEdfVExTX0lOVEVSQUNUSU9OKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfVExTX0lOVEVSQUNUSU9OLCBHVGxzSW50ZXJhY3Rpb24pKQBHX1RZUEVfSU9fTU9EVUxFX1NDT1BFX0ZMQUdTIChnX2lvX21vZHVsZV9zY29wZV9mbGFnc19nZXRfdHlwZSAoKSkAU0lHX0lHTiAoKF9fc2lnaGFuZGxlcl90KSAxKQBGX09LIDAAR19TUVJUMiAxLjQxNDIxMzU2MjM3MzA5NTA0ODgwMTY4ODcyNDIwOTY5ODA3ODU2OTY3MTg3NTM3NjkAR19HTlVDX0RFUFJFQ0FURURfRk9SKGYpIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoIlVzZSAiICNmICIgaW5zdGVhZCIpKSkAX19faW50X3djaGFyX3RfaCAAU0lHQUJSVCA2AExPR0lOX05BTUVfTUFYIDI1NgBfX09GRl9UX1RZUEUgX19TWVNDQUxMX1NMT05HX1RZUEUAX1NDX0xFVkVMMV9JQ0FDSEVfQVNTT0MgX1NDX0xFVkVMMV9JQ0FDSEVfQVNTT0MAR0xJQl9WRVJTSU9OXzJfNDIgKEdfRU5DT0RFX1ZFUlNJT04gKDIsIDQyKSkAX0lPX09DVCAwNDAAR19TT0NLRVRfQUREUkVTU19FTlVNRVJBVE9SX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9TT0NLRVRfQUREUkVTU19FTlVNRVJBVE9SLCBHU29ja2V0QWRkcmVzc0VudW1lcmF0b3JDbGFzcykpAFNJR0hVUCAxAEdfSVNfWkxJQl9ERUNPTVBSRVNTT1IobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9aTElCX0RFQ09NUFJFU1NPUikpAF9fR19EQlVTX05BTUVfV0FUQ0hJTkdfSF9fIABfX25lZWRfdGltZXZhbABfUE9TSVhfVFJBQ0VfRVZFTlRfRklMVEVSIC0xAEdVSU5UMzJfVE9fQkUodmFsKSAoR1VJTlQzMl9TV0FQX0xFX0JFICh2YWwpKQBfWE9QRU5fVkVSU0lPTiA3MDAATElORV9NQVggX1BPU0lYMl9MSU5FX01BWABHX1RZUEVfRFJJVkUgKGdfZHJpdmVfZ2V0X3R5cGUgKCkpAF9QQ19QUklPX0lPIF9QQ19QUklPX0lPAEdfSVNfVEhSRUFERURfU09DS0VUX1NFUlZJQ0UoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9USFJFQURFRF9TT0NLRVRfU0VSVklDRSkpAEdfT05DRV9JTklUIHsgR19PTkNFX1NUQVRVU19OT1RDQUxMRUQsIE5VTEwgfQBnX2FycmF5X3ByZXBlbmRfdmFsKGEsdikgZ19hcnJheV9wcmVwZW5kX3ZhbHMgKGEsICYodiksIDEpAEdfSVNfUFJPWFlfQUREUkVTU19FTlVNRVJBVE9SKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG8pLCBHX1RZUEVfUFJPWFlfQUREUkVTU19FTlVNRVJBVE9SKSkAX1NDX1hPUEVOX1JFQUxUSU1FX1RIUkVBRFMgX1NDX1hPUEVOX1JFQUxUSU1FX1RIUkVBRFMAR19ERUZJTkVfRFlOQU1JQ19UWVBFX0VYVEVOREVEKFR5cGVOYW1lLHR5cGVfbmFtZSxUWVBFX1BBUkVOVCxmbGFncyxDT0RFKSBzdGF0aWMgdm9pZCB0eXBlX25hbWUgIyNfaW5pdCAoVHlwZU5hbWUgKnNlbGYpOyBzdGF0aWMgdm9pZCB0eXBlX25hbWUgIyNfY2xhc3NfaW5pdCAoVHlwZU5hbWUgIyNDbGFzcyAqa2xhc3MpOyBzdGF0aWMgdm9pZCB0eXBlX25hbWUgIyNfY2xhc3NfZmluYWxpemUgKFR5cGVOYW1lICMjQ2xhc3MgKmtsYXNzKTsgc3RhdGljIGdwb2ludGVyIHR5cGVfbmFtZSAjI19wYXJlbnRfY2xhc3MgPSBOVUxMOyBzdGF0aWMgR1R5cGUgdHlwZV9uYW1lICMjX3R5cGVfaWQgPSAwOyBzdGF0aWMgZ2ludCBUeXBlTmFtZSAjI19wcml2YXRlX29mZnNldDsgX0dfREVGSU5FX1RZUEVfRVhURU5ERURfQ0xBU1NfSU5JVChUeXBlTmFtZSwgdHlwZV9uYW1lKSBHX0dOVUNfVU5VU0VEIHN0YXRpYyBpbmxpbmUgZ3BvaW50ZXIgdHlwZV9uYW1lICMjX2dldF9pbnN0YW5jZV9wcml2YXRlIChUeXBlTmFtZSAqc2VsZikgeyByZXR1cm4gKEdfU1RSVUNUX01FTUJFUl9QIChzZWxmLCBUeXBlTmFtZSAjI19wcml2YXRlX29mZnNldCkpOyB9IEdUeXBlIHR5cGVfbmFtZSAjI19nZXRfdHlwZSAodm9pZCkgeyByZXR1cm4gdHlwZV9uYW1lICMjX3R5cGVfaWQ7IH0gc3RhdGljIHZvaWQgdHlwZV9uYW1lICMjX3JlZ2lzdGVyX3R5cGUgKEdUeXBlTW9kdWxlICp0eXBlX21vZHVsZSkgeyBHVHlwZSBnX2RlZmluZV90eXBlX2lkIEdfR05VQ19VTlVTRUQ7IGNvbnN0IEdUeXBlSW5mbyBnX2RlZmluZV90eXBlX2luZm8gPSB7IHNpemVvZiAoVHlwZU5hbWUgIyNDbGFzcyksIChHQmFzZUluaXRGdW5jKSBOVUxMLCAoR0Jhc2VGaW5hbGl6ZUZ1bmMpIE5VTEwsIChHQ2xhc3NJbml0RnVuYykgdHlwZV9uYW1lICMjX2NsYXNzX2ludGVybl9pbml0LCAoR0NsYXNzRmluYWxpemVGdW5jKSB0eXBlX25hbWUgIyNfY2xhc3NfZmluYWxpemUsIE5VTEwsIHNpemVvZiAoVHlwZU5hbWUpLCAwLCAoR0luc3RhbmNlSW5pdEZ1bmMpIHR5cGVfbmFtZSAjI19pbml0LCBOVUxMIH07IHR5cGVfbmFtZSAjI190eXBlX2lkID0gZ190eXBlX21vZHVsZV9yZWdpc3Rlcl90eXBlICh0eXBlX21vZHVsZSwgVFlQRV9QQVJFTlQsICNUeXBlTmFtZSwgJmdfZGVmaW5lX3R5cGVfaW5mbywgKEdUeXBlRmxhZ3MpIGZsYWdzKTsgZ19kZWZpbmVfdHlwZV9pZCA9IHR5cGVfbmFtZSAjI190eXBlX2lkOyB7IENPREUgOyB9IH0AX19CSVRfVFlQRVNfREVGSU5FRF9fIDEAR0xJQl9ERVBSRUNBVEVEX0lOXzJfMjhfRk9SKGYpIEdMSUJfREVQUkVDQVRFRF9GT1IoZikAX19VSU5UTUFYX01BWF9fIDE4NDQ2NzQ0MDczNzA5NTUxNjE1VUwAX0JJVFNfUE9TSVgxX0xJTV9IIDEAR19EQlVTX09CSkVDVF9NQU5BR0VSX0NMSUVOVF9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0RCVVNfT0JKRUNUX01BTkFHRVJfQ0xJRU5ULCBHREJ1c09iamVjdE1hbmFnZXJDbGllbnRDbGFzcykpAF9TQ19TUE9SQURJQ19TRVJWRVIgX1NDX1NQT1JBRElDX1NFUlZFUgBfX0dfRklMRV9JT19TVFJFQU1fSF9fIABnX2F0b21pY19wb2ludGVyX2FuZChhdG9taWMsdmFsKSAoR19HTlVDX0VYVEVOU0lPTiAoeyBHX1NUQVRJQ19BU1NFUlQgKHNpemVvZiAqKGF0b21pYykgPT0gc2l6ZW9mIChncG9pbnRlcikpOyAodm9pZCkgKDAgPyAoZ3BvaW50ZXIpICooYXRvbWljKSA6IDApOyAodm9pZCkgKDAgPyAodmFsKSBeICh2YWwpIDogMCk7IChnc2l6ZSkgX19zeW5jX2ZldGNoX2FuZF9hbmQgKChhdG9taWMpLCAodmFsKSk7IH0pKQBHTElCX1ZFUlNJT05fMl81MCAoR19FTkNPREVfVkVSU0lPTiAoMiwgNTApKQBfUE9TSVgyX0NfQklORCBfX1BPU0lYMl9USElTX1ZFUlNJT04AX1NDX1BBR0VTSVpFIF9TQ19QQUdFU0laRQBHX0lNUExFTUVOVF9JTlRFUkZBQ0VfRFlOQU1JQyhUWVBFX0lGQUNFLGlmYWNlX2luaXQpIHsgY29uc3QgR0ludGVyZmFjZUluZm8gZ19pbXBsZW1lbnRfaW50ZXJmYWNlX2luZm8gPSB7IChHSW50ZXJmYWNlSW5pdEZ1bmMpIGlmYWNlX2luaXQsIE5VTEwsIE5VTEwgfTsgZ190eXBlX21vZHVsZV9hZGRfaW50ZXJmYWNlICh0eXBlX21vZHVsZSwgZ19kZWZpbmVfdHlwZV9pZCwgVFlQRV9JRkFDRSwgJmdfaW1wbGVtZW50X2ludGVyZmFjZV9pbmZvKTsgfQBHX1RZUEVfUFJPWFlfUkVTT0xWRVIgKGdfcHJveHlfcmVzb2x2ZXJfZ2V0X3R5cGUgKCkpAF9JT19NQUdJQyAweEZCQUQwMDAwAEZMVF9FUFNJTE9OAEdfVFlQRV9WQVJJQU5UX0RJQ1QgKGdfdmFyaWFudF9kaWN0X2dldF90eXBlICgpKQBnX2FzY2lpX2lzc3BhY2UoYykgKChnX2FzY2lpX3RhYmxlWyhndWNoYXIpIChjKV0gJiBHX0FTQ0lJX1NQQUNFKSAhPSAwKQByZXFBdXRoAEdfVkZTKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfVkZTLCBHVmZzKSkAR19NQVhTSVpFIEdfTUFYVUxPTkcAX19kYWRkcl90X2RlZmluZWQgAF9HX0lPX0lPX0ZJTEVfVkVSU0lPTiAweDIwMDAxAEdfSVNfRklMRV9JT19TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9GSUxFX0lPX1NUUkVBTSkpAEdfRklMRV9BVFRSSUJVVEVfVElNRV9BQ0NFU1NfVVNFQyAidGltZTo6YWNjZXNzLXVzZWMiAF9fRlNGSUxDTlQ2NF9UX1RZUEUgX19VUVVBRF9UWVBFAF9EX0FMTE9DX05BTUxFTihkKSAoKChjaGFyICopIChkKSArIChkKS0+ZF9yZWNsZW4pIC0gJihkKS0+ZF9uYW1lWzBdKQBHX0lTX01FTlVfTU9ERUwoaW5zdCkgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgoaW5zdCksIEdfVFlQRV9NRU5VX01PREVMKSkAX1BPU0lYX1NZTUxJTktfTUFYIDI1NQBHX0dOVUNfREVQUkVDQVRFRCBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXykpAF9QT1NJWF9TSEFSRURfTUVNT1JZX09CSkVDVFMgMjAwODA5TABTSUdFVl9TSUdOQUwgU0lHRVZfU0lHTkFMAEdfSVNfQ09OVkVSVEVSX09VVFBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9DT05WRVJURVJfT1VUUFVUX1NUUkVBTSkpAEdfVFlQRV9UWVBFX01PRFVMRSAoZ190eXBlX21vZHVsZV9nZXRfdHlwZSAoKSkAR19DSEFSU0VUX0NPTlZFUlRFUihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX0NIQVJTRVRfQ09OVkVSVEVSLCBHQ2hhcnNldENvbnZlcnRlcikpAGdfbmV3KHN0cnVjdF90eXBlLG5fc3RydWN0cykgX0dfTkVXIChzdHJ1Y3RfdHlwZSwgbl9zdHJ1Y3RzLCBtYWxsb2MpAFNldFN0YXRpY0Jvb2xlYW5GaWVsZABHX1ZBUklBTlRfQlVJTERFUl9JTklUKHZhcmlhbnRfdHlwZSkgeyB7IHsgMjk0Mjc1MTAyMXUsIHZhcmlhbnRfdHlwZSwgeyAwLCB9IH0gfSB9AFNJR1BXUiAzMABfX1VTRV9YT1BFTjJLWFNJAEdfU0lNUExFX1BST1hZX1JFU09MVkVSKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfU0lNUExFX1BST1hZX1JFU09MVkVSLCBHU2ltcGxlUHJveHlSZXNvbHZlcikpAF9TQ19USU1FUl9NQVggX1NDX1RJTUVSX01BWABTSV9LRVJORUwgU0lfS0VSTkVMAEdfVFlQRV9BUFBfSU5GT19DUkVBVEVfRkxBR1MgKGdfYXBwX2luZm9fY3JlYXRlX2ZsYWdzX2dldF90eXBlICgpKQBEQkxfTUFYIF9fREJMX01BWF9fAERUX0JMSyBEVF9CTEsAR19WQVJJQU5UX1RZUEVfVU5JVCAoKGNvbnN0IEdWYXJpYW50VHlwZSAqKSAiKCkiKQBnX2Fzc2VydF9jbXB1aW50KG4xLGNtcCxuMikgR19TVE1UX1NUQVJUIHsgZ3VpbnQ2NCBfX24xID0gKG4xKSwgX19uMiA9IChuMik7IGlmIChfX24xIGNtcCBfX24yKSA7IGVsc2UgZ19hc3NlcnRpb25fbWVzc2FnZV9jbXBudW0gKEdfTE9HX0RPTUFJTiwgX19GSUxFX18sIF9fTElORV9fLCBHX1NUUkZVTkMsICNuMSAiICIgI2NtcCAiICIgI24yLCBfX24xLCAjY21wLCBfX24yLCAnaScpOyB9IEdfU1RNVF9FTkQAR19aTElCX0RFQ09NUFJFU1NPUl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfWkxJQl9ERUNPTVBSRVNTT1IsIEdabGliRGVjb21wcmVzc29yQ2xhc3MpKQBHX0lTX0lORVRfQUREUkVTUyhvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0lORVRfQUREUkVTUykpAF9faW50Tl90KE4sTU9ERSkgdHlwZWRlZiBpbnQgaW50ICMjTiAjI190IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoTU9ERSkpKQBHVUlOVDMyX1NXQVBfTEVfUERQKHZhbCkgKChndWludDMyKSAoICgoKGd1aW50MzIpICh2YWwpICYgKGd1aW50MzIpIDB4MDAwMGZmZmZVKSA8PCAxNikgfCAoKChndWludDMyKSAodmFsKSAmIChndWludDMyKSAweGZmZmYwMDAwVSkgPj4gMTYpKSkAX19OQ1BVQklUUyAoOCAqIHNpemVvZiAoX19jcHVfbWFzaykpAFBUSFJFQURfU0NPUEVfUFJPQ0VTUyBQVEhSRUFEX1NDT1BFX1BST0NFU1MAamludEFycmF5AGdfYXV0b3B0cihUeXBlTmFtZSkgX0dMSUJfQ0xFQU5VUChfR0xJQl9BVVRPUFRSX0ZVTkNfTkFNRShUeXBlTmFtZSkpIF9HTElCX0FVVE9QVFJfVFlQRU5BTUUoVHlwZU5hbWUpAEdfQVBQTElDQVRJT05fQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGNsYXNzKSwgR19UWVBFX0FQUExJQ0FUSU9OLCBHQXBwbGljYXRpb25DbGFzcykpAEdfQ0FOQ0VMTEFCTEVfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX0NBTkNFTExBQkxFLCBHQ2FuY2VsbGFibGVDbGFzcykpAF9fR0NDX0FUT01JQ19MTE9OR19MT0NLX0ZSRUUgMgBfR0NDX1NJWkVfVCAAR19JT19NT0RVTEVfR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfSU9fVFlQRV9NT0RVTEUsIEdJT01vZHVsZUNsYXNzKSkAUmVsZWFzZUJ5dGVBcnJheUVsZW1lbnRzAEdfR0lOVDY0X0NPTlNUQU5UKHZhbCkgKHZhbCAjI0wpAEdfVVNFQ19QRVJfU0VDIDEwMDAwMDAAX19HWFhfQUJJX1ZFUlNJT04gMTAwMgBHX0ZJTEVfQVRUUklCVVRFX01PVU5UQUJMRV9VTklYX0RFVklDRSAibW91bnRhYmxlOjp1bml4LWRldmljZSIAX19uZWVkX3djaGFyX3QAX19BU01OQU1FMihwcmVmaXgsY25hbWUpIF9fU1RSSU5HIChwcmVmaXgpIGNuYW1lAEdfVExTX0NFUlRJRklDQVRFKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKGluc3QpLCBHX1RZUEVfVExTX0NFUlRJRklDQVRFLCBHVGxzQ2VydGlmaWNhdGUpKQBfSU9fZmxvY2tmaWxlKF9mcCkgAF9JT19TVERJT19IIABfX0dfRFJJVkVfSF9fIABHX1RMU19DTElFTlRfQ09OTkVDVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX1RMU19DTElFTlRfQ09OTkVDVElPTiwgR1Rsc0NsaWVudENvbm5lY3Rpb24pKQBHX1RZUEVfVExTX0lOVEVSQUNUSU9OX1JFU1VMVCAoZ190bHNfaW50ZXJhY3Rpb25fcmVzdWx0X2dldF90eXBlICgpKQBfU0NfU1lTVEVNX0RBVEFCQVNFIF9TQ19TWVNURU1fREFUQUJBU0UAX0NTX1hCUzVfSUxQMzJfT0ZGMzJfTERGTEFHUyBfQ1NfWEJTNV9JTFAzMl9PRkYzMl9MREZMQUdTAExJTktfTUFYIDEyNwBfX1MzMl9UWVBFIGludABfX3VuZGVmX05SX09QRU4gAEdfVFlQRV9GSUxFX0FUVFJJQlVURV9JTkZPX0ZMQUdTIChnX2ZpbGVfYXR0cmlidXRlX2luZm9fZmxhZ3NfZ2V0X3R5cGUgKCkpAEdMSUJfQVZBSUxBQkxFX0lOXzJfNDggX0dMSUJfRVhURVJOAEdfSVNfUEVSTUlTU0lPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX1BFUk1JU1NJT04pKQBTZXRTdGF0aWNPYmplY3RGaWVsZABfU1lTX1NJWkVfVF9IIABTSUdfQkxPQ0sgMABHX1RZUEVfSU5TVEFOQ0VfR0VUX0lOVEVSRkFDRShpbnN0YW5jZSxnX3R5cGUsY190eXBlKSAoX0dfVFlQRV9JR0kgKChpbnN0YW5jZSksIChnX3R5cGUpLCBjX3R5cGUpKQBfX0dfQUNUSU9OX0hfXyAAX19TU0UyX18gMQBGTFRfTUlOIF9fRkxUX01JTl9fAEdfVFlQRV9EQlVTX1NFTkRfTUVTU0FHRV9GTEFHUyAoZ19kYnVzX3NlbmRfbWVzc2FnZV9mbGFnc19nZXRfdHlwZSAoKSkAQ2FsbFN0YXRpY1Nob3J0TWV0aG9kAF9UX1BUUkRJRkYgAF9TQ19USFJFQURfU0FGRV9GVU5DVElPTlMgX1NDX1RIUkVBRF9TQUZFX0ZVTkNUSU9OUwBfX1NURENfSUVDXzU1OV9fIDEAU0lHX1VOQkxPQ0sgMQBTSV9USU1FUiBTSV9USU1FUgBHX1RZUEVfWkxJQl9ERUNPTVBSRVNTT1IgKGdfemxpYl9kZWNvbXByZXNzb3JfZ2V0X3R5cGUgKCkpAF9QQ19BU1lOQ19JTyBfUENfQVNZTkNfSU8AX1NDX1NDSEFSX01JTiBfU0NfU0NIQVJfTUlOAF9QT1NJWF9NRU1MT0NLIDIwMDgwOUwAX19HX1NFVFRJTkdTX0hfXyAAR19NT1VOVF9PUEVSQVRJT05fR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9NT1VOVF9PUEVSQVRJT04sIEdNb3VudE9wZXJhdGlvbkNsYXNzKSkAR19JU19ESVJfU0VQQVJBVE9SKGMpICgoYykgPT0gR19ESVJfU0VQQVJBVE9SKQBfUE9TSVgyX1ZFUlNJT04gX19QT1NJWDJfVEhJU19WRVJTSU9OAF9fREJMX0RFQ0lNQUxfRElHX18gMTcAX1NDX1hPUEVOX0VOSF9JMThOIF9TQ19YT1BFTl9FTkhfSTE4TgBfX0dDQ19BVE9NSUNfQ0hBUl9MT0NLX0ZSRUUgMgBHZXRTdGF0aWNTaG9ydEZpZWxkAEdfVENQX0NPTk5FQ1RJT05fQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGNsYXNzKSwgR19UWVBFX1RDUF9DT05ORUNUSU9OLCBHVGNwQ29ubmVjdGlvbkNsYXNzKSkAX19HX0JBQ0tUUkFDRV9IX18gAF9YQlM1X0xQQklHX09GRkJJRyAtMQBHX1ZBUklBTlRfVFlQRV9ESUNUX0VOVFJZICgoY29uc3QgR1ZhcmlhbnRUeXBlICopICJ7Pyp9IikAZ190ZXN0X3RyYXBfYXNzZXJ0X2ZhaWxlZCgpIGdfdGVzdF90cmFwX2Fzc2VydGlvbnMgKEdfTE9HX0RPTUFJTiwgX19GSUxFX18sIF9fTElORV9fLCBHX1NUUkZVTkMsIDEsIDApAEdfRklMRV9BVFRSSUJVVEVfU1RBTkRBUkRfTkFNRSAic3RhbmRhcmQ6Om5hbWUiAEdfVFlQRV9JU19DTEFTU0VEKHR5cGUpIChnX3R5cGVfdGVzdF9mbGFncyAoKHR5cGUpLCBHX1RZUEVfRkxBR19DTEFTU0VEKSkAU0lHSU9UIDYAR19HTlVDX01BWV9BTElBUyBfX2F0dHJpYnV0ZV9fKChtYXlfYWxpYXMpKQBfX0dfQVNZTkNfSU5JVEFCTEVfSF9fIABHX1RZUEVfSU5JVEFCTEUgKGdfaW5pdGFibGVfZ2V0X3R5cGUgKCkpAEdfSVNfU0lNUExFX0FDVElPTl9HUk9VUF9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoY2xhc3MpLCBHX1RZUEVfU0lNUExFX0FDVElPTl9HUk9VUCkpAF9TQ19CQ19ESU1fTUFYIF9TQ19CQ19ESU1fTUFYAF9QT1NJWDJfQ0hBUkNMQVNTX05BTUVfTUFYIDE0AExfSU5DUiBTRUVLX0NVUgBfX1BNVABfX0dfTUVNT1JZX0lOUFVUX1NUUkVBTV9IX18gAEdfSVNfU09DS0VUX0xJU1RFTkVSKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKGluc3QpLCBHX1RZUEVfU09DS0VUX0xJU1RFTkVSKSkAX1NDX0NPTExfV0VJR0hUU19NQVggX1NDX0NPTExfV0VJR0hUU19NQVgAR19QSSAzLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MzM4MzI3OTUwMjg4NDE5NzE2OTM5OTM3NTEAR19JU19SRVNPTFZFUl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChrKSwgR19UWVBFX1JFU09MVkVSKSkAR19NRU5VX0xJTktfSVRFUl9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoY2xhc3MpLCBHX1RZUEVfTUVOVV9MSU5LX0lURVIsIEdNZW51TGlua0l0ZXJDbGFzcykpAF9HX2NvbmZpZ19oIDEAR19JU19TT0NLRVRfQ0xJRU5UKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKGluc3QpLCBHX1RZUEVfU09DS0VUX0NMSUVOVCkpAF9DU19QT1NJWF9WNl9XSURUSF9SRVNUUklDVEVEX0VOVlMgX0NTX1Y2X1dJRFRIX1JFU1RSSUNURURfRU5WUwBfX0dfU0VFS0FCTEVfSF9fIABfX0RFQzEyOF9TVUJOT1JNQUxfTUlOX18gMC4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDFFLTYxNDNETABfSU9fcGVla2NfdW5sb2NrZWQoX2ZwKSAoX0lPX0JFICgoX2ZwKS0+X0lPX3JlYWRfcHRyID49IChfZnApLT5fSU9fcmVhZF9lbmQsIDApICYmIF9fdW5kZXJmbG93IChfZnApID09IEVPRiA/IEVPRiA6ICoodW5zaWduZWQgY2hhciAqKSAoX2ZwKS0+X0lPX3JlYWRfcHRyKQBHX0RJUl9TRVBBUkFUT1JfUyAiLyIAX1NDX1hPUEVOX0NSWVBUIF9TQ19YT1BFTl9DUllQVABfX0NPTkNBVCh4LHkpIHggIyMgeQBHX1BBUkFNX1NQRUNfQk9PTEVBTihwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fQk9PTEVBTiwgR1BhcmFtU3BlY0Jvb2xlYW4pKQBfUE9TSVhfTk9fVFJVTkMgMQBfU0laRVRfIABHU0laRV9UT19CRSh2YWwpICgoZ3NpemUpIEdVSU5UNjRfVE9fQkUgKHZhbCkpAEdldExvbmdGaWVsZABHX0lTX1NFRUtBQkxFKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgR19UWVBFX1NFRUtBQkxFKSkAZ19hc2NpaV9pc2xvd2VyKGMpICgoZ19hc2NpaV90YWJsZVsoZ3VjaGFyKSAoYyldICYgR19BU0NJSV9MT1dFUikgIT0gMCkAR19GSUxFX0FUVFJJQlVURV9USU1FX01PRElGSUVEICJ0aW1lOjptb2RpZmllZCIAR19JU19GSUxFKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgR19UWVBFX0ZJTEUpKQBnX2hvb2tfYXBwZW5kKGhvb2tfbGlzdCxob29rKSBnX2hvb2tfaW5zZXJ0X2JlZm9yZSAoKGhvb2tfbGlzdCksIE5VTEwsIChob29rKSkAR19JU19EVExTX1NFUlZFUl9DT05ORUNUSU9OKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKGluc3QpLCBHX1RZUEVfRFRMU19TRVJWRVJfQ09OTkVDVElPTikpAF9TQ19ERVZJQ0VfU1BFQ0lGSUMgX1NDX0RFVklDRV9TUEVDSUZJQwBHTElCX1ZBUiBfR0xJQl9FWFRFUk4AR19HSU5UMTZfRk9STUFUICJoaSIAU0lfTUVTR1EgU0lfTUVTR1EAR19JU19JTlBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9JTlBVVF9TVFJFQU0pKQBTU19PTlNUQUNLIFNTX09OU1RBQ0sAR19UWVBFX01PVU5UX1VOTU9VTlRfRkxBR1MgKGdfbW91bnRfdW5tb3VudF9mbGFnc19nZXRfdHlwZSAoKSkAX1RfU0laRV8gAEdfSVNfVENQX0NPTk5FQ1RJT05fQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSAoKGNsYXNzKSwgR19UWVBFX1RDUF9DT05ORUNUSU9OKSkAR19DU0VUX2FfMl96ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIAZ19hdG9taWNfcG9pbnRlcl9zZXQoYXRvbWljLG5ld3ZhbCkgKEdfR05VQ19FWFRFTlNJT04gKHsgR19TVEFUSUNfQVNTRVJUIChzaXplb2YgKihhdG9taWMpID09IHNpemVvZiAoZ3BvaW50ZXIpKTsgKHZvaWQpICgwID8gKGdwb2ludGVyKSAqKGF0b21pYykgOiAwKTsgX19hdG9taWNfc3RvcmVfOCAoKGF0b21pYyksIChnc2l6ZSkgKG5ld3ZhbCksIF9fQVRPTUlDX1NFUV9DU1QpOyB9KSkAR19BUFBMSUNBVElPTl9HRVRfQ0xBU1MoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChpbnN0KSwgR19UWVBFX0FQUExJQ0FUSU9OLCBHQXBwbGljYXRpb25DbGFzcykpAF9TQ19VU0VSX0dST1VQUyBfU0NfVVNFUl9HUk9VUFMAR19DT05WRVJURVJfT1VUUFVUX1NUUkVBTV9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX0NPTlZFUlRFUl9PVVRQVVRfU1RSRUFNLCBHQ29udmVydGVyT3V0cHV0U3RyZWFtQ2xhc3MpKQBfUENfUElQRV9CVUYgX1BDX1BJUEVfQlVGAF9jaGFpbgBfX0dfRU1CTEVNX0hfXyAAX1BPU0lYX0xJTktfTUFYIDgAZ19zdHJzdHJpcChzdHJpbmcpIGdfc3RyY2hvbXAgKGdfc3RyY2h1ZyAoc3RyaW5nKSkAR19UWVBFX01BVENIX0lORk8gKGdfbWF0Y2hfaW5mb19nZXRfdHlwZSAoKSkAX1NDX1RSQUNFX1VTRVJfRVZFTlRfTUFYIF9TQ19UUkFDRV9VU0VSX0VWRU5UX01BWABfU0NfUFJJT1JJVFlfU0NIRURVTElORyBfU0NfUFJJT1JJVFlfU0NIRURVTElORwBHX1NPQ0tFVF9MSVNURU5FUl9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoY2xhc3MpLCBHX1RZUEVfU09DS0VUX0xJU1RFTkVSLCBHU29ja2V0TGlzdGVuZXJDbGFzcykpAEdfSVNfVk9MVU1FX01PTklUT1JfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9WT0xVTUVfTU9OSVRPUikpAEdfSVNfU09DS0VUX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9TT0NLRVQpKQBfX19fbWJzdGF0ZV90X2RlZmluZWQgMQBQVEhSRUFEX0NBTkNFTF9FTkFCTEUgUFRIUkVBRF9DQU5DRUxfRU5BQkxFAF9fR19UQ1BfV1JBUFBFUl9DT05ORUNUSU9OX0hfXyAAU0FfU0lHSU5GTyA0AERUX1NPQ0sgRFRfU09DSwBHX1VOSUNIQVJfTUFYX0RFQ09NUE9TSVRJT05fTEVOR1RIIDE4AEdfUEFSQU1fVVNFUl9TSElGVCAoOCkAZ190ZXN0X3Rob3JvdWdoKCkgKCFnX3Rlc3RfY29uZmlnX3ZhcnMtPnRlc3RfcXVpY2spAEdfVFlQRV9TSU1QTEVfQUNUSU9OIChnX3NpbXBsZV9hY3Rpb25fZ2V0X3R5cGUgKCkpAEdfTUlORkxPQVQgRkxUX01JTgBHX0ZJTEVfQVRUUklCVVRFX0ZJTEVTWVNURU1fRlJFRSAiZmlsZXN5c3RlbTo6ZnJlZSIAX1NDX1NIUlRfTUlOIF9TQ19TSFJUX01JTgBHX0ZJTEVfSU5QVVRfU1RSRUFNX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9GSUxFX0lOUFVUX1NUUkVBTSwgR0ZpbGVJbnB1dFN0cmVhbUNsYXNzKSkARGVsZXRlTG9jYWxSZWYARFRUT0lGKGRpcnR5cGUpICgoZGlydHlwZSkgPDwgMTIpAF9TQ19OUFJPQ0VTU09SU19DT05GIF9TQ19OUFJPQ0VTU09SU19DT05GAEdMSUJfREVQUkVDQVRFRF9JTl8yXzM2IEdMSUJfREVQUkVDQVRFRABfSU9fcGlkX3QgX19waWRfdABHX0RFRklORV9UWVBFX1dJVEhfQ09ERShUTix0X24sVF9QLF9DXykgX0dfREVGSU5FX1RZUEVfRVhURU5ERURfQkVHSU4gKFROLCB0X24sIFRfUCwgMCkge19DXzt9IF9HX0RFRklORV9UWVBFX0VYVEVOREVEX0VORCgpAG92ZXJmbG93X2FyZ19hcmVhAEdfR0lOVFBUUl9NT0RJRklFUiAibCIAcmVnX3NhdmVfYXJlYQBfUE9TSVhfU1lNTE9PUF9NQVggOABndWludABHX1NUUklOR0lGWV9BUkcoY29udGVudHMpICNjb250ZW50cwBfUE9TSVhfU0FWRURfSURTIDEAX19HX0FUT01JQ19IX18gAEdfSVNfQ0FOQ0VMTEFCTEVfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9DQU5DRUxMQUJMRSkpAF9fVVNFX1hPUEVOMks4IDEAR19NRU1PUllfT1VUUFVUX1NUUkVBTV9HRVRfQ0xBU1MobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChvKSwgR19UWVBFX01FTU9SWV9PVVRQVVRfU1RSRUFNLCBHTWVtb3J5T3V0cHV0U3RyZWFtQ2xhc3MpKQBfX0dfUVNPUlRfSF9fIABTQ0hBUl9NQVggX19TQ0hBUl9NQVhfXwBfTEZTX0FTWU5DSFJPTk9VU19JTyAxAEdfVFlQRV9UTFNfUkVIQU5EU0hBS0VfTU9ERSAoZ190bHNfcmVoYW5kc2hha2VfbW9kZV9nZXRfdHlwZSAoKSkAR19GTEFHU19DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUICgoY2xhc3MpLCBHX1RZUEVfRkxBR1MsIEdGbGFnc0NsYXNzKSkARkxUX01BTlRfRElHIF9fRkxUX01BTlRfRElHX18AR19JU19QQVJBTV9TUEVDX0NMQVNTKHBjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgocGNsYXNzKSwgR19UWVBFX1BBUkFNKSkAX0NTX1BPU0lYX1Y3X0lMUDMyX09GRkJJR19MSUJTIF9DU19QT1NJWF9WN19JTFAzMl9PRkZCSUdfTElCUwBHX1BST1hZX0FERFJFU1MobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9QUk9YWV9BRERSRVNTLCBHUHJveHlBZGRyZXNzKSkAX1NDX1hPUEVOX1ZFUlNJT04gX1NDX1hPUEVOX1ZFUlNJT04AX19EQkxfTUFYX0VYUF9fIDEwMjQAR19PUFRJT05fRVJST1IgKGdfb3B0aW9uX2Vycm9yX3F1YXJrICgpKQBfX0dfTElTVF9TVE9SRV9IX18gAF9fbmVlZF9nZXRvcHQgAGdfZGF0ZV93ZWVrZGF5IGdfZGF0ZV9nZXRfd2Vla2RheQBfR1NldHRpbmdzUHJpdmF0ZQBfX0lOVF9GQVNUMzJfTUFYX18gOTIyMzM3MjAzNjg1NDc3NTgwN0wAX1NDX1NFTV9OU0VNU19NQVggX1NDX1NFTV9OU0VNU19NQVgAX1NDX1Y2X0xQQklHX09GRkJJRyBfU0NfVjZfTFBCSUdfT0ZGQklHAGdfZGF0YXNldF9pZF9yZW1vdmVfZGF0YShsLGspIGdfZGF0YXNldF9pZF9zZXRfZGF0YSAoKGwpLCAoayksIE5VTEwpAGdfbnRvaGwodmFsKSAoR1VJTlQzMl9GUk9NX0JFICh2YWwpKQBfU0NfQkNfU0NBTEVfTUFYIF9TQ19CQ19TQ0FMRV9NQVgAX19TSV9QQURfU0laRSAoKF9fU0lfTUFYX1NJWkUgLyBzaXplb2YgKGludCkpIC0gNCkAZ19zY2FubmVyX2ZyZWV6ZV9zeW1ib2xfdGFibGUoc2Nhbm5lcikgKCh2b2lkKTApAFNldEJvb2xlYW5BcnJheVJlZ2lvbgBHX1RZUEVfVEhFTUVEX0lDT04gKGdfdGhlbWVkX2ljb25fZ2V0X3R5cGUgKCkpAEdfVkZTX0NMQVNTKGspIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoayksIEdfVFlQRV9WRlMsIEdWZnNDbGFzcykpAF9fR0NDX0FUT01JQ19QT0lOVEVSX0xPQ0tfRlJFRSAyAF9fVUlEX1RfVFlQRSBfX1UzMl9UWVBFAE5HUk9VUFNfTUFYIDY1NTM2AEF0dGFjaEN1cnJlbnRUaHJlYWQAR0lOVDE2X0ZST01fTEUodmFsKSAoR0lOVDE2X1RPX0xFICh2YWwpKQBHSU5UX1RPX0JFKHZhbCkgKChnaW50KSBHSU5UMzJfVE9fQkUgKHZhbCkpAF9QT1NJWF9BSU9fTUFYIDEAZ19hbGxvY2Eoc2l6ZSkgYWxsb2NhIChzaXplKQBHX0ZJTEVfQVRUUklCVVRFX1RIVU1CTkFJTF9QQVRIICJ0aHVtYm5haWw6OnBhdGgiAF9fX2ludF9wdHJkaWZmX3RfaCAAR19JU19NRU5VX0xJTktfSVRFUihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChpbnN0KSwgR19UWVBFX01FTlVfTElOS19JVEVSKSkAX19QTVQoYXJncykgYXJncwBnX3NpZ25hbF9oYW5kbGVyc19ibG9ja19ieV9mdW5jKGluc3RhbmNlLGZ1bmMsZGF0YSkgZ19zaWduYWxfaGFuZGxlcnNfYmxvY2tfbWF0Y2hlZCAoKGluc3RhbmNlKSwgKEdTaWduYWxNYXRjaFR5cGUpIChHX1NJR05BTF9NQVRDSF9GVU5DIHwgR19TSUdOQUxfTUFUQ0hfREFUQSksIDAsIDAsIE5VTEwsIChmdW5jKSwgKGRhdGEpKQBHVUlOVDMyX1RPX0xFKHZhbCkgKChndWludDMyKSAodmFsKSkAR19UWVBFX1RBU0sgKGdfdGFza19nZXRfdHlwZSAoKSkAR19UTFNfRVJST1IgKGdfdGxzX2Vycm9yX3F1YXJrICgpKQBHX0hBVkVfR1JPV0lOR19TVEFDSyAwAEdfTk9ERV9JU19MRUFGKG5vZGUpICgoKEdOb2RlKikgKG5vZGUpKS0+Y2hpbGRyZW4gPT0gTlVMTCkAR19UWVBFX0lTX09CSkVDVCh0eXBlKSAoR19UWVBFX0ZVTkRBTUVOVEFMICh0eXBlKSA9PSBHX1RZUEVfT0JKRUNUKQBQVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUyBfUE9TSVhfVEhSRUFEX0RFU1RSVUNUT1JfSVRFUkFUSU9OUwBfX0dMSUJfSF9JTlNJREVfXwBfX25lZWRfY2xvY2tpZF90IABfX0FUT01JQ19SRUxFQVNFIDMAR19JU19QQVJBTV9TUEVDX1ZBTFVFX0FSUkFZKHBzcGVjKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChwc3BlYyksIEdfVFlQRV9QQVJBTV9WQUxVRV9BUlJBWSkpAF9fdW5peF9fIDEAR19JU19NRU1PUllfT1VUUFVUX1NUUkVBTShvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX01FTU9SWV9PVVRQVVRfU1RSRUFNKSkAR19BUFBMSUNBVElPTihpbnN0KSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChpbnN0KSwgR19UWVBFX0FQUExJQ0FUSU9OLCBHQXBwbGljYXRpb24pKQBHX0RFQ0xBUkVfSU5URVJGQUNFKE1vZHVsZU9iak5hbWUsbW9kdWxlX29ial9uYW1lLE1PRFVMRSxPQkpfTkFNRSxQcmVyZXF1aXNpdGVOYW1lKSBHVHlwZSBtb2R1bGVfb2JqX25hbWUgIyNfZ2V0X3R5cGUgKHZvaWQpOyBHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUyB0eXBlZGVmIHN0cnVjdCBfICMjTW9kdWxlT2JqTmFtZSBNb2R1bGVPYmpOYW1lOyB0eXBlZGVmIHN0cnVjdCBfICMjTW9kdWxlT2JqTmFtZSAjI0ludGVyZmFjZSBNb2R1bGVPYmpOYW1lICMjSW50ZXJmYWNlOyBfR0xJQl9ERUZJTkVfQVVUT1BUUl9DSEFJTlVQIChNb2R1bGVPYmpOYW1lLCBQcmVyZXF1aXNpdGVOYW1lKSBzdGF0aWMgaW5saW5lIE1vZHVsZU9iak5hbWUgKiBNT0RVTEUgIyNfICMjT0JKX05BTUUgKGdwb2ludGVyIHB0cikgeyByZXR1cm4gR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKHB0ciwgbW9kdWxlX29ial9uYW1lICMjX2dldF90eXBlICgpLCBNb2R1bGVPYmpOYW1lKTsgfSBzdGF0aWMgaW5saW5lIGdib29sZWFuIE1PRFVMRSAjI19JU18gIyNPQkpfTkFNRSAoZ3BvaW50ZXIgcHRyKSB7IHJldHVybiBHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAocHRyLCBtb2R1bGVfb2JqX25hbWUgIyNfZ2V0X3R5cGUgKCkpOyB9IHN0YXRpYyBpbmxpbmUgTW9kdWxlT2JqTmFtZSAjI0ludGVyZmFjZSAqIE1PRFVMRSAjI18gIyNPQkpfTkFNRSAjI19HRVRfSUZBQ0UgKGdwb2ludGVyIHB0cikgeyByZXR1cm4gR19UWVBFX0lOU1RBTkNFX0dFVF9JTlRFUkZBQ0UgKHB0ciwgbW9kdWxlX29ial9uYW1lICMjX2dldF90eXBlICgpLCBNb2R1bGVPYmpOYW1lICMjSW50ZXJmYWNlKTsgfSBHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlMAX1NDX0lQVjYgX1NDX0lQVjYAR19NSU5JTlQ4ICgoZ2ludDgpIC0weDgwKQBfX0RCTF9NQVhfXyAoKGRvdWJsZSkxLjc5NzY5MzEzNDg2MjMxNTcwODE1ZSszMDhMKQBHX1RZUEVfUkVTT0xWRVJfUkVDT1JEX1RZUEUgKGdfcmVzb2x2ZXJfcmVjb3JkX3R5cGVfZ2V0X3R5cGUgKCkpAEdJTlQ2NF9GUk9NX0xFKHZhbCkgKEdJTlQ2NF9UT19MRSAodmFsKSkAX19JTlRNQVhfTUFYX18gOTIyMzM3MjAzNjg1NDc3NTgwN0wAZ19tYWluX3BlbmRpbmcoKSBnX21haW5fY29udGV4dF9wZW5kaW5nIChOVUxMKQBHU0laRV9GUk9NX0xFKHZhbCkgKEdTSVpFX1RPX0xFICh2YWwpKQBfX0dfWkxJQl9DT01QUkVTU09SX0hfXyAAR19JU19EQlVTX1NFUlZFUihvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvKSwgR19UWVBFX0RCVVNfU0VSVkVSKSkAU0lHU1RLU1ogODE5MgBfU0NfUE9MTCBfU0NfUE9MTABHX1RZUEVfRklMVEVSX0lOUFVUX1NUUkVBTSAoZ19maWx0ZXJfaW5wdXRfc3RyZWFtX2dldF90eXBlICgpKQBzYV9oYW5kbGVyIF9fc2lnYWN0aW9uX2hhbmRsZXIuc2FfaGFuZGxlcgBfX0dfQVBQTElDQVRJT05fQ09NTUFORF9MSU5FX0hfXyAAX19ERUNfRVZBTF9NRVRIT0RfXyAyAF9fREFERFJfVF9UWVBFIF9fUzMyX1RZUEUAR19UWVBFX1NVQlBST0NFU1MgKGdfc3VicHJvY2Vzc19nZXRfdHlwZSAoKSkAX19BVE9NSUNfSExFX1JFTEVBU0UgMTMxMDcyAGdfYXNzZXJ0X2NtcGhleChuMSxjbXAsbjIpIEdfU1RNVF9TVEFSVCB7IGd1aW50NjQgX19uMSA9IChuMSksIF9fbjIgPSAobjIpOyBpZiAoX19uMSBjbXAgX19uMikgOyBlbHNlIGdfYXNzZXJ0aW9uX21lc3NhZ2VfY21wbnVtIChHX0xPR19ET01BSU4sIF9fRklMRV9fLCBfX0xJTkVfXywgR19TVFJGVU5DLCAjbjEgIiAiICNjbXAgIiAiICNuMiwgX19uMSwgI2NtcCwgX19uMiwgJ3gnKTsgfSBHX1NUTVRfRU5EAEdfQVBQX0xBVU5DSF9DT05URVhUX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfQVBQX0xBVU5DSF9DT05URVhULCBHQXBwTGF1bmNoQ29udGV4dENsYXNzKSkAX1NDX1JFQUxUSU1FX1NJR05BTFMgX1NDX1JFQUxUSU1FX1NJR05BTFMAR19GSUxFX0FUVFJJQlVURV9ET1NfSVNfQVJDSElWRSAiZG9zOjppcy1hcmNoaXZlIgBfX0RFQ0lNQUxfRElHX18gMjEAR19GSUxFX0FUVFJJQlVURV9NT1VOVEFCTEVfSEFMX1VESSAibW91bnRhYmxlOjpoYWwtdWRpIgBHX1RZUEVfREJVU19NRVNTQUdFX0ZMQUdTIChnX2RidXNfbWVzc2FnZV9mbGFnc19nZXRfdHlwZSAoKSkAX19zaWdlbXB0eXNldChzZXQpIChfX2V4dGVuc2lvbl9fICh7IGludCBfX2NudCA9IF9TSUdTRVRfTldPUkRTOyBzaWdzZXRfdCAqX19zZXQgPSAoc2V0KTsgd2hpbGUgKC0tX19jbnQgPj0gMCkgX19zZXQtPl9fdmFsW19fY250XSA9IDA7IDA7IH0pKQBfX25lZWRfc2NoZWRwYXJhbQBfX25lZWRfdGltZXNwZWMgAF9fR19UTFNfU0VSVkVSX0NPTk5FQ1RJT05fSF9fIABHX1RZUEVfREFUQV9TVFJFQU1fQllURV9PUkRFUiAoZ19kYXRhX3N0cmVhbV9ieXRlX29yZGVyX2dldF90eXBlICgpKQBnX2hhc2hfdGFibGVfdGhhdyhoYXNoX3RhYmxlKSAoKHZvaWQpMCkAX0NTX1Y3X1dJRFRIX1JFU1RSSUNURURfRU5WUyBfQ1NfVjdfV0lEVEhfUkVTVFJJQ1RFRF9FTlZTAEdfVFlQRV9JU19CT1hFRCh0eXBlKSAoR19UWVBFX0ZVTkRBTUVOVEFMICh0eXBlKSA9PSBHX1RZUEVfQk9YRUQpAEdMSUJfU1lTREVGX0FGX1VOSVggMQBfX0RFQzY0X0VQU0lMT05fXyAxRS0xNUREAEdfRklMRV9BVFRSSUJVVEVfTU9VTlRBQkxFX0NBTl9TVEFSVCAibW91bnRhYmxlOjpjYW4tc3RhcnQiAF9fTERCTF9ERU5PUk1fTUlOX18gMy42NDUxOTk1MzE4ODI0NzQ2MDI1M2UtNDk1MUwAX0dfVFlQRV9DSVQoaXAsZ3QpIChHX0dOVUNfRVhURU5TSU9OICh7IEdUeXBlSW5zdGFuY2UgKl9faW5zdCA9IChHVHlwZUluc3RhbmNlKikgaXA7IEdUeXBlIF9fdCA9IGd0OyBnYm9vbGVhbiBfX3I7IGlmICghX19pbnN0KSBfX3IgPSBGQUxTRTsgZWxzZSBpZiAoX19pbnN0LT5nX2NsYXNzICYmIF9faW5zdC0+Z19jbGFzcy0+Z190eXBlID09IF9fdCkgX19yID0gVFJVRTsgZWxzZSBfX3IgPSBnX3R5cGVfY2hlY2tfaW5zdGFuY2VfaXNfYSAoX19pbnN0LCBfX3QpOyBfX3I7IH0pKQBHTElCX1NJWkVPRl9TSVpFX1QgOABHX0lPX0NIQU5ORUxfRVJST1IgZ19pb19jaGFubmVsX2Vycm9yX3F1YXJrKCkAX0lPX0ZJTEUAR19PVVRQVVRfU1RSRUFNKG8pIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG8pLCBHX1RZUEVfT1VUUFVUX1NUUkVBTSwgR091dHB1dFN0cmVhbSkpAEdfU09VUkNFX0NPTlRJTlVFIFRSVUUAR19JT19JU19NT0RVTEUobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfSU9fVFlQRV9NT0RVTEUpKQBfX2F0dHJpYnV0ZV9mb3JtYXRfYXJnX18oeCkgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X2FyZ19fICh4KSkpAEdfVFlQRV9JTkVUX0FERFJFU1NfTUFTSyAoZ19pbmV0X2FkZHJlc3NfbWFza19nZXRfdHlwZSAoKSkAR19UWVBFX1BBUkFNX0ZMQUdTIChnX3BhcmFtX3NwZWNfdHlwZXNbMTFdKQBHUE9JTlRFUl9UT19JTlQocCkgKChnaW50KSAoZ2xvbmcpIChwKSkAX1BPU0lYX01FTUxPQ0tfUkFOR0UgMjAwODA5TABfX1JMSU02NF9UX1RZUEUgX19VUVVBRF9UWVBFAF9fVVNFX0ZPUlRJRllfTEVWRUwgMABnX2hhc2hfdGFibGVfZnJlZXplKGhhc2hfdGFibGUpICgodm9pZCkwKQBfX0dfU0lNUExFX0lPX1NUUkVBTV9IX18gAF9TQ19SRUdFWF9WRVJTSU9OIF9TQ19SRUdFWF9WRVJTSU9OAEdfU0lHTkFMX01BVENIX01BU0sgMHgzZgBHX1RZUEVfREFURV9USU1FIChnX2RhdGVfdGltZV9nZXRfdHlwZSAoKSkAR19UWVBFX1RIUkVBREVEX1NPQ0tFVF9TRVJWSUNFIChnX3RocmVhZGVkX3NvY2tldF9zZXJ2aWNlX2dldF90eXBlICgpKQBSX09LIDQAU2V0U3RhdGljRmxvYXRGaWVsZABFeGNlcHRpb25PY2N1cnJlZABfU0NfVF9JT1ZfTUFYIF9TQ19UX0lPVl9NQVgAR19JTlBVVF9TVFJFQU1fR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9JTlBVVF9TVFJFQU0sIEdJbnB1dFN0cmVhbUNsYXNzKSkAR19QRVJNSVNTSU9OKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKGluc3QpLCBHX1RZUEVfUEVSTUlTU0lPTiwgR1Blcm1pc3Npb24pKQBfX0dfVEFTS19IX18gAEdfTE9HX0xFVkVMX1VTRVJfU0hJRlQgKDgpAEdfUFJPWFlfQUREUkVTU19FTlVNRVJBVE9SX0dFVF9DTEFTUyhvKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG8pLCBHX1RZUEVfUFJPWFlfQUREUkVTU19FTlVNRVJBVE9SLCBHUHJveHlBZGRyZXNzRW51bWVyYXRvckNsYXNzKSkAX19GTFRfTUFOVF9ESUdfXyAyNABfU0NfVEhSRUFEX1RIUkVBRFNfTUFYIF9TQ19USFJFQURfVEhSRUFEU19NQVgAR19QUk9YWV9SRVNPTFZFUl9HRVRfSUZBQ0UobykgKEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgobyksIEdfVFlQRV9QUk9YWV9SRVNPTFZFUiwgR1Byb3h5UmVzb2x2ZXJJbnRlcmZhY2UpKQBqbnBIb3N0AEdfVFlQRV9DT05WRVJURVIgKGdfY29udmVydGVyX2dldF90eXBlICgpKQBSZWxlYXNlQ2hhckFycmF5RWxlbWVudHMAZ3Bfb2Zmc2V0AFNWX0lOVEVSUlVQVCAoMSA8PCAxKQBHTElCX0FWQUlMQUJMRV9JTl8yXzU0IF9HTElCX0VYVEVSTgBfX0dfUE9MTF9IX18gAEdfVFlQRV9BQ1RJT05fTUFQIChnX2FjdGlvbl9tYXBfZ2V0X3R5cGUgKCkpAEdfVFlQRV9UQ1BfV1JBUFBFUl9DT05ORUNUSU9OIChnX3RjcF93cmFwcGVyX2Nvbm5lY3Rpb25fZ2V0X3R5cGUgKCkpAEdfR05VQ19JTlRFUk5BTCBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpAEdfUE9MTEFCTEVfT1VUUFVUX1NUUkVBTShvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKG9iaiksIEdfVFlQRV9QT0xMQUJMRV9PVVRQVVRfU1RSRUFNLCBHUG9sbGFibGVPdXRwdXRTdHJlYW0pKQBJTExfSUxMT1BOIElMTF9JTExPUE4AX19zaXplX3QgAF9fQ0xPQ0tJRF9UX1RZUEUgX19TMzJfVFlQRQBHX1ZBUklBTlRfVFlQRV9TVFJJTkcgKChjb25zdCBHVmFyaWFudFR5cGUgKikgInMiKQBHX1RZUEVfTU9VTlRfT1BFUkFUSU9OIChnX21vdW50X29wZXJhdGlvbl9nZXRfdHlwZSAoKSkAZ19wb2ludGVyX2JpdF9sb2NrKGFkZHJlc3MsbG9ja19iaXQpIChHX0dOVUNfRVhURU5TSU9OICh7IEdfU1RBVElDX0FTU0VSVCAoc2l6ZW9mICooYWRkcmVzcykgPT0gc2l6ZW9mIChncG9pbnRlcikpOyBnX3BvaW50ZXJfYml0X2xvY2sgKChhZGRyZXNzKSwgKGxvY2tfYml0KSk7IH0pKQBHX0lTX1BBUkFNX1NQRUNfVUlOVChwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgocHNwZWMpLCBHX1RZUEVfUEFSQU1fVUlOVCkpAENhbGxOb252aXJ0dWFsRG91YmxlTWV0aG9kQQBCWVRFX09SREVSIF9fQllURV9PUkRFUgBDYWxsU3RhdGljRmxvYXRNZXRob2RBAGpvYmplY3RSZWZUeXBlAF9TQ19USU1FT1VUUyBfU0NfVElNRU9VVFMAX1NDX1Y2X0xQNjRfT0ZGNjQgX1NDX1Y2X0xQNjRfT0ZGNjQAX1hPUEVOX1hQRzIgMQBHX0lTX1RFU1RfREJVUyhvYmopIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKG9iaiksIEdfVFlQRV9URVNUX0RCVVMpKQBHX01BWElOVDE2ICgoZ2ludDE2KSAweDdmZmYpAEpOSV9FVkVSU0lPTiAoLTMpAF9CSVRTX0JZVEVTV0FQX0ggMQBHX0lTX0ZJTFRFUl9JTlBVVF9TVFJFQU1fQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoayksIEdfVFlQRV9GSUxURVJfSU5QVVRfU1RSRUFNKSkAcHJveHlJbmZvAEdfSE9PS19GTEFHX1VTRVJfU0hJRlQgKDQpAENhbGxOb252aXJ0dWFsRG91YmxlTWV0aG9kVgBHX0ZJTEVfQVRUUklCVVRFX01PVU5UQUJMRV9DQU5fU1RPUCAibW91bnRhYmxlOjpjYW4tc3RvcCIAQ2FsbFN0YXRpY0Zsb2F0TWV0aG9kVgBHSU5UX0ZST01fQkUodmFsKSAoR0lOVF9UT19CRSAodmFsKSkAR19EQlVTX09CSkVDVF9NQU5BR0VSX1NFUlZFUl9DTEFTUyhrKSAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGspLCBHX1RZUEVfREJVU19PQkpFQ1RfTUFOQUdFUl9TRVJWRVIsIEdEQnVzT2JqZWN0TWFuYWdlclNlcnZlckNsYXNzKSkAX1NDX0lOVF9NSU4gX1NDX0lOVF9NSU4AcGFzc3dvcmRNZXRob2QAX19VSU5UMTZfQyhjKSBjAEdfVFlQRV9GSUxFX01PTklUT1IgKGdfZmlsZV9tb25pdG9yX2dldF90eXBlICgpKQBHX0lTX0FQUF9JTkZPKG9iaikgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgR19UWVBFX0FQUF9JTkZPKSkAR19aTElCX0NPTVBSRVNTT1JfQ0xBU1MoaykgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrKSwgR19UWVBFX1pMSUJfQ09NUFJFU1NPUiwgR1psaWJDb21wcmVzc29yQ2xhc3MpKQBfX1VTRV9TVklEIDEAX19HX1RFU1RfREJVU19IX18gAF9fd2FybmRlY2wobmFtZSxtc2cpIGV4dGVybiB2b2lkIG5hbWUgKHZvaWQpIF9fYXR0cmlidXRlX18oKF9fd2FybmluZ19fIChtc2cpKSkAX19HX1NQQVdOX0hfXyAAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9JU19TWU1MSU5LICJzdGFuZGFyZDo6aXMtc3ltbGluayIAX19HQ0NfQVRPTUlDX0NIQVIzMl9UX0xPQ0tfRlJFRSAyAF9fR19CT09LTUFSS19GSUxFX0hfXyAAR19JU19BUFBfTEFVTkNIX0NPTlRFWFQobykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgobyksIEdfVFlQRV9BUFBfTEFVTkNIX0NPTlRFWFQpKQBfQ1NfTEZTX0NGTEFHUyBfQ1NfTEZTX0NGTEFHUwBfX0dNT0RVTEVfSF9fIABHX1RMU19EQVRBQkFTRV9HRVRfQ0xBU1MoaW5zdCkgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MgKChpbnN0KSwgR19UWVBFX1RMU19EQVRBQkFTRSwgR1Rsc0RhdGFiYXNlQ2xhc3MpKQBHX1RZUEVfREJVU19TRVJWRVIgKGdfZGJ1c19zZXJ2ZXJfZ2V0X3R5cGUgKCkpAEdfVFlQRV9GSUxFX0lPX1NUUkVBTSAoZ19maWxlX2lvX3N0cmVhbV9nZXRfdHlwZSAoKSkAX1BDX1JFQ19YRkVSX0FMSUdOIF9QQ19SRUNfWEZFUl9BTElHTgBQVEhSRUFEX0VYUExJQ0lUX1NDSEVEIFBUSFJFQURfRVhQTElDSVRfU0NIRUQAQ0xEX0tJTExFRCBDTERfS0lMTEVEAF9TVERDX1BSRURFRl9IIDEAX19VU0VfUE9TSVhfSU1QTElDSVRMWSAxAF9TQ19QSFlTX1BBR0VTIF9TQ19QSFlTX1BBR0VTAGdfZGF0ZV95ZWFyIGdfZGF0ZV9nZXRfeWVhcgBfX0xEQkxfTUFYX18gMS4xODk3MzE0OTUzNTcyMzE3NjUwMmUrNDkzMkwAX19HX01BQ1JPU19IX18gAEdfQUxMT0NfQU5EX0ZSRUUgMgBSZWdpc3Rlck5hdGl2ZXMAUEFUSF9NQVggNDA5NgBfUE9TSVgyX0JDX1NDQUxFX01BWCA5OQBSZWxlYXNlQm9vbGVhbkFycmF5RWxlbWVudHMAR19JU19UTFNfQ09OTkVDVElPTl9DTEFTUyhjbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFICgoY2xhc3MpLCBHX1RZUEVfVExTX0NPTk5FQ1RJT04pKQBHX0ZJTEVfQVRUUklCVVRFX1RIVU1CTkFJTF9JU19WQUxJRCAidGh1bWJuYWlsOjppcy12YWxpZCIAX0NTX1BBVEggX0NTX1BBVEgAR19GSUxFX09VVFBVVF9TVFJFQU0obykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgobyksIEdfVFlQRV9GSUxFX09VVFBVVF9TVFJFQU0sIEdGaWxlT3V0cHV0U3RyZWFtKSkAX19pbnRwdHJfdF9kZWZpbmVkIABHX0lTX1NPQ0tFVF9DT05ORUNUSU9OX0NMQVNTKGNsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUgKChjbGFzcyksIEdfVFlQRV9TT0NLRVRfQ09OTkVDVElPTikpAF9ESVJFTlRfSCAxAF9TVklEX1NPVVJDRSAxAEdMSUJfU0laRU9GX1NTSVpFX1QgOABEVF9GSUZPIERUX0ZJRk8AR19UWVBFX1RMU19EQVRBQkFTRV9MT09LVVBfRkxBR1MgKGdfdGxzX2RhdGFiYXNlX2xvb2t1cF9mbGFnc19nZXRfdHlwZSAoKSkAR19JU19QQVJBTV9TUEVDX0NIQVIocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX0NIQVIpKQBHX0lTX0xPQURBQkxFX0lDT04ob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUgKChvYmopLCBHX1RZUEVfTE9BREFCTEVfSUNPTikpAF9JT19mdHJ5bG9ja2ZpbGUoX2ZwKSAAX19VSU5UX0ZBU1Q2NF9NQVhfXyAxODQ0Njc0NDA3MzcwOTU1MTYxNVVMAEdMSUJfREVQUkVDQVRFRF9JTl8yXzQwX0ZPUihmKSBHTElCX0RFUFJFQ0FURURfRk9SKGYpAF9QT1NJWF9MT0dJTl9OQU1FX01BWCA5AEdfU0VFS0FCTEUob2JqKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvYmopLCBHX1RZUEVfU0VFS0FCTEUsIEdTZWVrYWJsZSkpAF9QQ19SRUNfTUlOX1hGRVJfU0laRSBfUENfUkVDX01JTl9YRkVSX1NJWkUAR19NQVhVTE9ORyBVTE9OR19NQVgAR19JU19UQ1BfV1JBUFBFUl9DT05ORUNUSU9OKGluc3QpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSAoKGluc3QpLCBHX1RZUEVfVENQX1dSQVBQRVJfQ09OTkVDVElPTikpAEdfVFlQRV9QUk9QRVJUWV9BQ1RJT04gKGdfcHJvcGVydHlfYWN0aW9uX2dldF90eXBlICgpKQBHX0RCVVNfUFJPWFlfR0VUX0NMQVNTKG8pIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTICgobyksIEdfVFlQRV9EQlVTX1BST1hZLCBHREJ1c1Byb3h5Q2xhc3MpKQBHX05FVFdPUktfQUREUkVTUyhvKSAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QgKChvKSwgR19UWVBFX05FVFdPUktfQUREUkVTUywgR05ldHdvcmtBZGRyZXNzKSkAR19UWVBFX0RCVVNfTUVUSE9EX0lORk8gKGdfZGJ1c19tZXRob2RfaW5mb19nZXRfdHlwZSAoKSkAX19ERUM2NF9NSU5fXyAxRS0zODNERABfX0ZEX0VMVChkKSAoKGQpIC8gX19ORkRCSVRTKQBfQklUU19UWVBFU19IIDEAX19leHRlcm5fYWx3YXlzX2lubGluZSBleHRlcm4gX19hbHdheXNfaW5saW5lAERUX0NIUiBEVF9DSFIAX1hPUEVOX1VOSVggMQBfX1NJX0FMSUdOTUVOVCAAUmVsZWFzZUZsb2F0QXJyYXlFbGVtZW50cwBfSU9fRkxBR1MyX01NQVAgMQBfX0RFQzY0X01BWF9fIDkuOTk5OTk5OTk5OTk5OTk5RTM4NEREAGdfYXRvbWljX2ludF9zZXQoYXRvbWljLG5ld3ZhbCkgKEdfR05VQ19FWFRFTlNJT04gKHsgR19TVEFUSUNfQVNTRVJUIChzaXplb2YgKihhdG9taWMpID09IHNpemVvZiAoZ2ludCkpOyAodm9pZCkgKDAgPyAqKGF0b21pYykgXiAobmV3dmFsKSA6IDApOyBfX2F0b21pY19zdG9yZV80ICgoYXRvbWljKSwgKG5ld3ZhbCksIF9fQVRPTUlDX1NFUV9DU1QpOyB9KSkAR19QQVJBTV9TUEVDX0VOVU0ocHNwZWMpIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCAoKHBzcGVjKSwgR19UWVBFX1BBUkFNX0VOVU0sIEdQYXJhbVNwZWNFbnVtKSkAR19GSUxFX0FUVFJJQlVURV9TVEFOREFSRF9UQVJHRVRfVVJJICJzdGFuZGFyZDo6dGFyZ2V0LXVyaSIAR19IT09LX0ZMQUdTKGhvb2spIChHX0hPT0sgKGhvb2spLT5mbGFncykAR19UWVBFX1BPTExGRCAoZ19wb2xsZmRfZ2V0X3R5cGUgKCkpAENhbGxDaGFyTWV0aG9kQQBHTElCX1VOQVZBSUxBQkxFKG1haixtaW4pIEdfVU5BVkFJTEFCTEUobWFqLG1pbikgX0dMSUJfRVhURVJOAGpzdHJpbmcAR19ERUZJTkVfQk9YRURfVFlQRV9XSVRIX0NPREUoVHlwZU5hbWUsdHlwZV9uYW1lLGNvcHlfZnVuYyxmcmVlX2Z1bmMsX0NfKSBfR19ERUZJTkVfQk9YRURfVFlQRV9CRUdJTiAoVHlwZU5hbWUsIHR5cGVfbmFtZSwgY29weV9mdW5jLCBmcmVlX2Z1bmMpIHtfQ187fSBfR19ERUZJTkVfVFlQRV9FWFRFTkRFRF9FTkQoKQBTZXRPYmplY3RGaWVsZABHX1RZUEVfQUNUSU9OX0dST1VQIChnX2FjdGlvbl9ncm91cF9nZXRfdHlwZSAoKSkAR19UWVBFX01PRFVMRV9HRVRfQ0xBU1MobW9kdWxlKSAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUyAoKG1vZHVsZSksIEdfVFlQRV9UWVBFX01PRFVMRSwgR1R5cGVNb2R1bGVDbGFzcykpAEdfVkFSSUFOVF9UWVBFX0JZVEVTVFJJTkcgKChjb25zdCBHVmFyaWFudFR5cGUgKikgImF5IikAQ2FsbENoYXJNZXRob2RWAEdfUEFSQU1fU1BFQyhwc3BlYykgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUICgocHNwZWMpLCBHX1RZUEVfUEFSQU0sIEdQYXJhbVNwZWMpKQBfX0dfSU9fU0NIRURVTEVSX0hfXyAAX1NDX01FU1NBR0VfUEFTU0lORyBfU0NfTUVTU0FHRV9QQVNTSU5HAF9QVEhSRUFEX0ggMQBfX1VTRV9BVEZJTEUAR19UTFNfQ0VSVElGSUNBVEVfQ0xBU1MoY2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCAoKGNsYXNzKSwgR19UWVBFX1RMU19DRVJUSUZJQ0FURSwgR1Rs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AAVI8uQAAAVJctEAAAVM4poBAAVPC0gCAAVSfkwAAAVVLRYAAAVZXbcBAAVdhC0AAAVgEuYBAAVkFWwBAAVnBv0BAAVqQWMAAAVroFkBAAVtodMCAAVvhoMBAAVyQKUAAAV14CgCAAV2DakBAAV3Z0IAAAV67LECAAV9aP8AAAWAAVcCAgAFgwE0XwIABYYBahYAAAWJAbBzAAAFjAE1ywAABY8B8ZICAAWSAeZuAAAFlQGRqAAABZgBKxcAAAWbAcw/AgAFngF6vgEABaEBWlwBAAWkAXmWAgAFpwHxKAIABaoBjFUBAAWtASMAAAAFsAGBrgEABbMB0lkBAAW0ATH0AQAFtwGjRwEABbgBZKQCAAW5AQyAAAAFugEDYQIABb0B+nwAAAXAAcwRAAAABAAABThhRQIABTmJAgAABTocwQIABT1X+gEABT6CqAEABT/kmAEABVvUMgAABVwMFwEABV30JQEABV5clAEABV8K0AEABWDRUwAAAAQAAAXSAWRGAAAF0wEM4AAABdQBm64BAAXgAdqHAQAF4QHrPwIAAAQAAAWAAqGSAAAFjAJj+gIABZMCzm0AAAWZAuPrAgAFmgK3jwAABZsCEX0BAAWcAgyiAgAFwgL9pQAABcMCZcMCAAXEAjARAAAABAAABRwjRAEABR5/uAAABSAEPAAABSKUXQIABSRQFgAABSbqzAIABSjBuQEABSqNFgAABSw1rQAABS6xDQEABTAJvwIABTL/pAIABTSl9QAABTby8gAABTjlRgEABTp9/gAABTzv/AIABT7k9wIABUBzXAEABUIqJAIABURZlwEABUv+8gEABU1eywEABU9A9gEABVEHvwEABVNOzgEABVU7WgEABVf4SQIABVkiAQIABVuE1wEABV185AIABV+/zQIABWG2UgIABWMMkgEABWX4HQIABWff9wAABWl3BAEABWvbuAEABW1amgAABW84cwEABXE/awAABXPhAwMABXUsdAIABXcZfQAABXkIzgAABXsJ3AEABX0nhgAABX9/mwIABYEBn74BAAWDAW3eAQAFhQHkJwIABYcB760CAAWIAS8WAQAFigEEowAABYwBNtYCAAWOAcogAgAFkAH4bgEABZIBX7QCAAWXAUwGAQAFmQEpwwIABZsB7NYCAAWdARI+AQAFnwHxwwIABaEBn+wBAAWjAZKH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AQAABAAABQW6XwAABQ2PtAIABQ+PugAABREjnAAABRMx5gIABRVynwEABRe58AEABRl+vAIABRtPNgAABR3+ZgEABR+a+AEABSHUnQEABSNUugAABSUtygIABSdMsAAABSl8iAEABSsYNgAABS3t4wEABS/uhgIABTEz7AEABTPOCgIABTUkiQIABTfbNQAABTlnVAEABTumAgIABT32XwEABT/+SgIABUF1fQEABUO/3gEABUWv4AIABUeiTAEABUnBwQAABUvolgEABU1BZwEABU+2SQIABVGhyQAABVNFeQIABVVNZQAABVcikQIABVn2cQAABVv+RgIABV2aOgIABV9odAAABWEgrwAABWMVRQEABWXSRAEABWfPiwIABWnKmAIABWsj5QIABW0hWQAABW8R2wEABXF4BgEABXNCcAEABXU6wwAABXf+vQIABXkXKAEABXtmmgEABX3RkQEABX/ytwAABYEBHF4BAAWDAQtNAAAFhQG40wIABYcB+QQAAAWJAaq7AgAFiwGEDgEABY0BJAoCAAWPATLNAAAFkQEa+wIABZMBRDQAAAWVAayhAgAFlwFr/wEABZkBlRQAAAWbAY2EAQAFnQGiFQEABZ8B5QwBAAWhAb1WAQAFpQGCBQEAAAQAAAUaBfcCAAUjDFsBAAUnR3MAAAAEAAAFK4toAQAFLDtnAgAFLbAUAgAFLonpAgAFL6sQAgAFMFa5AgAABAAABRay1AAABSAhQgIABSGVrwAABSK7+wIABSOnGQIAAAQAAAUWe8MCAAUg1HUAAAUh74gBAAUiJgMBAAUj82MBAAUkNjEAAAUllAQCAAAEAAAFFoxFAQAFIBuXAgAFIckNAQAFIiRtAQAFIzDcAgAFJJl6AAAFJf3SAgAABAAABRe2nwIABSG1NwEABSJGCAIABSPOCAAABSSozAEAAAQAAAUWqc8BAAUggfACAAUhMggBAAUiCkEBAAUjc0YAAAUkjFgAAAUlaL8CAAAEAAAFGRgaAgAFI+ByAgAFJEvEAAAFJdyZAAAFJumCAgAFJ7baAAAFKGDOAgAFMJ32AQAABAAABSDsWQEABSGTngIABSJc/AEABSPETgEABSRD1gEABSa+HQAAAAQAAAUUNGUAAAUe5zcBAAUfLv4CAAUgTFIBAAUhD1sAAAUiz7cBAAUjfXABAAAEAAAFFOqK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RlJBTUVfRU5EX18AX19KQ1JfRU5EX18AX19kc29faGFuZGxlAF9EWU5BTUlDAF9fR05VX0VIX0ZSQU1FX0hEUgBfX1RNQ19FTkRfXwBfR0xPQkFMX09GRlNFVF9UQUJMRV8AbGlzdFByb2MAc3RyY2FzZWNtcEBAR0xJQkNfMi4yLjUAZ19zbGlzdF9sZW5ndGgAX0lUTV9kZXJlZ2lzdGVyVE1DbG9uZVRhYmxlAGdfZnJlZQBKYXZhX29yZ19lY2xpcHNlX2NvcmVfaW50ZXJuYWxfbmV0X3Byb3h5X3VuaXhfVW5peFByb3h5UHJvdmlkZXJfZ2V0R1NldHRpbmdzTm9uUHJveHlIb3N0cwBnX3NsaXN0X2ZvcmVhY2gAZ19zbGlzdF9mcmVlAGdfc2V0dGluZ3NfZ2V0X2Jvb2xlYW4AX2VkYXRhAGdfc2xpc3RfcmV2ZXJzZQBfZmluaQBKYXZhX29yZ19lY2xpcHNlX2NvcmVfaW50ZXJuYWxfbmV0X3Byb3h5X3VuaXhfVW5peFByb3h5UHJvdmlkZXJfZ3NldHRpbmdzSW5pdABnX3NldHRpbmdzX2dldF9zdHJpbmcASmF2YV9vcmdfZWNsaXBzZV9jb3JlX2ludGVybmFsX25ldF9wcm94eV91bml4X1VuaXhQcm94eVByb3ZpZGVyX2dldEdTZXR0aW5nc1Byb3h5SW5mbwBnX3NsaXN0X3ByZXBlbmQAZnByaW50ZkBAR0xJQkNfMi4yLjUAX19nbW9uX3N0YXJ0X18AZ19zZXR0aW5nc19nZXRfc3RydgBfZW5kAGdfc3RyZnJlZXYAX19ic3Nfc3RhcnQAZ19zZXR0aW5nc19nZXRfaW50AGdfc2V0dGluZ3NfbmV3AF9Kdl9SZWdpc3RlckNsYXNzZXMAX0lUTV9yZWdpc3RlclRNQ2xvbmVUYWJsZQBfX2N4YV9maW5hbGl6ZUBAR0xJQkNfMi4yLjUAX2luaXQAc3RkZXJyQEBHTElCQ18yLjIuNQAALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAubm90ZS5nbnUuYnVpbGQtaWQALmdudS5oYXNoAC5keW5zeW0ALmR5bnN0cgAuZ251LnZlcnNpb24ALmdudS52ZXJzaW9uX3IALnJlbGEuZHluAC5yZWxhLnBsdAAuaW5pdAAucGx0LmdvdAAudGV4dAAuZmluaQAucm9kYXRhAC5laF9mcmFtZV9oZHIALmVoX2ZyYW1lAC5pbml0X2FycmF5AC5maW5pX2FycmF5AC5qY3IALmRhdGEucmVsLnJvAC5keW5hbWljAC5nb3QucGx0AC5ic3MALmNvbW1lbnQALmRlYnVnX2FyYW5nZXMALmRlYnVnX2luZm8ALmRlYnVnX2FiYnJldgAuZGVidWdfbGluZQAuZGVidWdfc3RyAC5kZWJ1Z19tYWNybwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAABwAAAAIAAAAAAAAAyAEAAAAAAADIAQAAAAAAACQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALgAAAPb//28CAAAAAAAAAPABAAAAAAAA8AEAAAAAAABIAAAAAAAAAAMAAAAAAAAACAAAAAAAAAAAAAAAAAAAADgAAAALAAAAAgAAAAAAAAA4AgAAAAAAADgCAAAAAAAA0AIAAAAAAAAEAAAAAQAAAAgAAAAAAAAAGAAAAAAAAABAAAAAAwAAAAIAAAAAAAAACAUAAAAAAAAIBQAAAAAAAMgCAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAASAAAAP///28CAAAAAAAAANAHAAAAAAAA0AcAAAAAAAA8AAAAAAAAAAMAAAAAAAAAAgAAAAAAAAACAAAAAAAAAFUAAAD+//9vAgAAAAAAAAAQCAAAAAAAABAIAAAAAAAAIAAAAAAAAAAEAAAAAQAAAAgAAAAAAAAAAAAAAAAAAABkAAAABAAAAAIAAAAAAAAAMAgAAAAAAAAwCAAAAAAAAPAAAAAAAAAAAwAAAAAAAAAIAAAAAAAAABgAAAAAAAAAbgAAAAQAAABCAAAAAAAAACAJAAAAAAAAIAkAAAAAAABoAQAAAAAAAAMAAAAXAAAACAAAAAAAAAAYAAAAAAAAAHgAAAABAAAABgAAAAAAAACICgAAAAAAAIgKAAAAAAAAGgAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABzAAAAAQAAAAYAAAAAAAAAsAoAAAAAAACwCgAAAAAAAAABAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAfgAAAAEAAAAGAAAAAAAAALALAAAAAAAAsAsAAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAIcAAAABAAAABgAAAAAAAADACwAAAAAAAMALAAAAAAAAhwsAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACNAAAAAQAAAAYAAAAAAAAASBcAAAAAAABIFwAAAAAAAAkAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAkwAAAAEAAAACAAAAAAAAAFgXAAAAAAAAWBcAAAAAAADLAQAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAJsAAAABAAAAAgAAAAAAAAAkGQAAAAAAACQZAAAAAAAANAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACpAAAAAQAAAAIAAAAAAAAAWBkAAAAAAABYGQAAAAAAAMQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAswAAAA4AAAADAAAAAAAAAKgdIAAAAAAAqB0AAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAL8AAAAPAAAAAwAAAAAAAACwHSAAAAAAALAdAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAADLAAAAAQAAAAMAAAAAAAAAuB0gAAAAAAC4HQAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAA0AAAAAEAAAADAAAAAAAAAMAdIAAAAAAAwB0AAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAN0AAAAGAAAAAwAAAAAAAADIHSAAAAAAAMgdAAAAAAAAAAIAAAAAAAAEAAAAAAAAAAgAAAAAAAAAEAAAAAAAAACCAAAAAQAAAAMAAAAAAAAAyB8gAAAAAADIHwAAAAAAADgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA5gAAAAEAAAADAAAAAAAAAAAgIAAAAAAAACAAAAAAAACQAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAO8AAAAIAAAAAwAAAAAAAACQICAAAAAAAJAgAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAD0AAAAAQAAADAAAAAAAAAAAAAAAAAAAACQIAAAAAAAAC0AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAA/QAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAvSAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwBAAABAAAAAAAAAAAAAAAAAAAAAAAAAO0gAAAAAAAAfTQAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAYAQAAAQAAAAAAAAAAAAAAAAAAAAAAAABqVQAAAAAAAO4BAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAJgEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAWFcAAAAAAACUFgAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAADIBAAABAAAAMAAAAAAAAAAAAAAAAAAAAOxtAAAAAAAA2wUDAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAA9AQAAAQAAAAAAAAAAAAAAAAAAAAAAAADHcwMAAAAAAP5rAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAyN8DAAAAAAC4CAAAAAAAACEAAABAAAAACAAAAAAAAAAYAAAAAAAAAAkAAAADAAAAAAAAAAAAAAAAAAAAAAAAAIDoAwAAAAAAeQQAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAD57AMAAAAAAEoBAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA