LyogVGhpcyBpbnRlcmZhY2UgZmlsZSB0ZXN0cyB3aGV0aGVyIGNoYXJhY3RlciBjb25zdGFudHMgYXJlIGNvcnJlY3RseQogICB3cmFwcGVkIGFzIHByb2NlZHVyZXMgcmV0dXJuaW5nIFNjaGVtZSBjaGFyYWN0ZXJzIChyYXRoZXIgdGhhbgogICBTY2hlbWUgc3RyaW5ncykuIAoqLwoKJW1vZHVsZSBjaGFyX2NvbnN0YW50CgojZGVmaW5lIENIQVJfQ09OU1RBTlQgJ3gnCgojZGVmaW5lIFNUUklOR19DT05TVEFOVCAieHl6enkiCgojZGVmaW5lIEVTQ19DT05TVCAgJ1wxJwojZGVmaW5lIE5VTExfQ09OU1QgJ1wwJwojZGVmaW5lIFNQRUNJQUxDSEFSICfhJwojZGVmaW5lIFNQRUNJQUxDSEFSMiAnXG4nCiNkZWZpbmUgU1BFQ0lBTENIQVJBICdBJwojZGVmaW5lIFNQRUNJQUxDSEFSQiAnXDEwMicgLy8gQgojZGVmaW5lIFNQRUNJQUxDSEFSQyAnXHg0MycgLy8gQwojZGVmaW5lIFNQRUNJQUxDSEFSRCAweDQ0IC8vIEQKI2RlZmluZSBTUEVDSUFMQ0hBUkUgNjkgLy8gRQojZGVmaW5lIFNQRUNJQUxDSEFSQUUxICfGJyAvLyBBRSAobGF0aW4xIGVuY29kZWQpCiNkZWZpbmUgU1BFQ0lBTENIQVJBRTIgJ1wzMDYnIC8vIEFFIChsYXRpbjEgZW5jb2RlZCkKI2RlZmluZSBTUEVDSUFMQ0hBUkFFMyAnXHhDNicgLy8gQUUgKGxhdGluMSBlbmNvZGVkKQoKI2lmIGRlZmluZWQoU1dJR0pBVkEpCiVqYXZhY29uc3QoMSk7CiNlbGlmIFNXSUdDU0hBUlAKJWNzY29uc3QoMSk7CiNlbGlmIFNXSUdECiVkbWFuaWZlc3Rjb25zdDsKI2VuZGlmCgojZGVmaW5lIFhfRVNDX0NPTlNUICAnXDEnCiNkZWZpbmUgWF9OVUxMX0NPTlNUICdcMCcKI2RlZmluZSBYX1NQRUNJQUxDSEFSICfhJwojZGVmaW5lIFhfU1BFQ0lBTENIQVIyICdcbicKI2RlZmluZSBYX1NQRUNJQUxDSEFSQSAnQScKI2RlZmluZSBYX1NQRUNJQUxDSEFSQiAnXDEwMicgLy8gQgojZGVmaW5lIFhfU1BFQ0lBTENIQVJDICdceDQzJyAvLyBDCiNkZWZpbmUgWF9TUEVDSUFMQ0hBUkQgMHg0NCAvLyBECiNkZWZpbmUgWF9TUEVDSUFMQ0hBUkUgNjkgLy8gRQojZGVmaW5lIFhfU1BFQ0lBTENIQVJBRTEgJ8YnIC8vIEFFIChsYXRpbjEgZW5jb2RlZCkKI2RlZmluZSBYX1NQRUNJQUxDSEFSQUUyICdcMzA2JyAvLyBBRSAobGF0aW4xIGVuY29kZWQpCiNkZWZpbmUgWF9TUEVDSUFMQ0hBUkFFMyAnXHhDNicgLy8gQUUgKGxhdGluMSBlbmNvZGVkKQoKJWlubGluZSAKewogIGNvbnN0IGludCBpYSA9IChpbnQpJ2EnOwogIGNvbnN0IGludCBpYiA9ICdiJzsKfQo=