LyogQm9vc3QgaW50ZXJ2YWwvZGV0YWlsL2M5OV9yb3VuZGluZ19jb250cm9sLmhwcCBmaWxlCiAqCiAqIENvcHlyaWdodCAyMDAwIEplbnMgTWF1cmVyCiAqIENvcHlyaWdodCAyMDAyIEhlcnbpIEJy9m5uaW1hbm4sIEd1aWxsYXVtZSBNZWxxdWlvbmQsIFN5bHZhaW4gUGlvbgogKgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCiAqIChTZWUgYWNjb21wYW55aW5nIGZpbGUgTElDRU5TRV8xXzAudHh0IG9yCiAqIGNvcHkgYXQgaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAudHh0KQogKi8KCiNpZm5kZWYgQk9PU1RfTlVNRVJJQ19JTlRFUlZBTF9ERVRBSUxfQzk5X1JPVU5ESU5HX0NPTlRST0xfSFBQCiNkZWZpbmUgQk9PU1RfTlVNRVJJQ19JTlRFUlZBTF9ERVRBSUxfQzk5X1JPVU5ESU5HX0NPTlRST0xfSFBQCgojaW5jbHVkZSA8Ym9vc3QvbnVtZXJpYy9pbnRlcnZhbC9kZXRhaWwvYzk5c3ViX3JvdW5kaW5nX2NvbnRyb2wuaHBwPgoKbmFtZXNwYWNlIGJvb3N0IHsKbmFtZXNwYWNlIG51bWVyaWMgewpuYW1lc3BhY2UgaW50ZXJ2YWxfbGliIHsKbmFtZXNwYWNlIGRldGFpbCB7CgpzdHJ1Y3QgYzk5X3JvdW5kaW5nX2NvbnRyb2w6IGM5OV9yb3VuZGluZwp7CiAgdGVtcGxhdGU8Y2xhc3MgVD4KICBzdGF0aWMgVCBmb3JjZV9yb3VuZGluZyhjb25zdCBUJiByKSB7IHZvbGF0aWxlIFQgcl8gPSByOyByZXR1cm4gcl87IH0KfTsKCn0gLy8gbmFtZXNwYWNlIGRldGFpbAoKdGVtcGxhdGU8PgpzdHJ1Y3Qgcm91bmRpbmdfY29udHJvbDxmbG9hdD46CiAgZGV0YWlsOjpjOTlfcm91bmRpbmdfY29udHJvbCB7IH07Cgp0ZW1wbGF0ZTw+CnN0cnVjdCByb3VuZGluZ19jb250cm9sPGRvdWJsZT46CiAgZGV0YWlsOjpjOTlfcm91bmRpbmdfY29udHJvbCB7IH07Cgp0ZW1wbGF0ZTw+CnN0cnVjdCByb3VuZGluZ19jb250cm9sPGxvbmcgZG91YmxlPjoKICBkZXRhaWw6OmM5OV9yb3VuZGluZ19jb250cm9sIHsgfTsKCn0gLy8gbmFtZXNwYWNlIGludGVydmFsX2xpYgp9IC8vIG5hbWVzcGFjZSBudW1lcmljCn0gLy8gbmFtZXNwYWNlIGJvb3N0CgojdW5kZWYgQk9PU1RfTlVNRVJJQ19JTlRFUlZBTF9OT19IQVJEV0FSRQoKI2VuZGlmIC8vIEJPT1NUX05VTUVSSUNfSU5URVJWQUxfREVUQUlMX0M5OV9ST1VORElOR19DT05UUk9MX0hQUAo=