Ly9NaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBnZW5lcmF0ZWQgcmVzb3VyY2Ugc2NyaXB0LgovLwojaW5jbHVkZSAicmVzb3VyY2UuaCIKCiNkZWZpbmUgQVBTVFVESU9fUkVBRE9OTFlfU1lNQk9MUwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBHZW5lcmF0ZWQgZnJvbSB0aGUgVEVYVElOQ0xVREUgMiByZXNvdXJjZS4KLy8KI2lmbmRlZiBfX0JPUkxBTkRDX18KIyBpbmNsdWRlICJhZnhyZXMuaCIKI2VuZGlmCgovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwojdW5kZWYgQVBTVFVESU9fUkVBRE9OTFlfU1lNQk9MUwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8gRW5nbGlzaCAoVS5TLikgcmVzb3VyY2VzCgojaWYgIWRlZmluZWQoQUZYX1JFU09VUkNFX0RMTCkgfHwgZGVmaW5lZChBRlhfVEFSR19FTlUpCiNpZmRlZiBfV0lOMzIKTEFOR1VBR0UgTEFOR19FTkdMSVNILCBTVUJMQU5HX0VOR0xJU0hfVVMKI3ByYWdtYSBjb2RlX3BhZ2UoMTI1MikKI2VuZGlmIC8vX1dJTjMyCgojaWZuZGVmIF9NQUMKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8KLy8gVmVyc2lvbgovLwoKVlNfVkVSU0lPTl9JTkZPIFZFUlNJT05JTkZPCiBGSUxFVkVSU0lPTiAxLDAsMCwxCiBQUk9EVUNUVkVSU0lPTiAxLDAsMCwxCiBGSUxFRkxBR1NNQVNLIDB4M2ZMCiNpZmRlZiBfREVCVUcKIEZJTEVGTEFHUyAweDNMCiNlbHNlCiBGSUxFRkxBR1MgMHgyTAojZW5kaWYKIEZJTEVPUyAweDRMCiBGSUxFVFlQRSAweDJMCiBGSUxFU1VCVFlQRSAweDBMCkJFR0lOCiAgICBCTE9DSyAiU3RyaW5nRmlsZUluZm8iCiAgICBCRUdJTgogICAgICAgIEJMT0NLICIwNDA5MDRiMCIKICAgICAgICBCRUdJTgogICAgICAgICAgICBWQUxVRSAiQ29tbWVudHMiLCAiRGV2ZWxvcGVkIHVzaW5nIENPTSBhcmNoaXRlY3R1cmUhXDAiCiAgICAgICAgICAgIFZBTFVFICJDb21wYW55TmFtZSIsICJUaWFubWlhbyBIdSdzIERldmVsb3BlciBTdHVkaW9cMCIKICAgICAgICAgICAgVkFMVUUgIkZpbGVEZXNjcmlwdGlvbiIsICJBIHNtYWxsIHByb2plY3QgZm9yIHRoZSBjb250ZXh0IG1lbnUgb2YgZ3ZpbSFcMCIKICAgICAgICAgICAgVkFMVUUgIkZpbGVWZXJzaW9uIiwgIjEsIDAsIDAsIDFcMCIKICAgICAgICAgICAgVkFMVUUgIkludGVybmFsTmFtZSIsICJndmltIHJpZ2h0LWNsaWNrIG1lbnUgZXh0ZW5zaW9uXDAiCiAgICAgICAgICAgIFZBTFVFICJMZWdhbENvcHlyaWdodCIsICJDb3B5cmlnaHQgqSAxOTk5IFRpYW5taWFvIEh1XDAiCiAgICAgICAgICAgIFZBTFVFICJMZWdhbFRyYWRlbWFya3MiLCAiVGlhbm1pYW8gSHUncyBHdmltIENvbnRleHQgTWVudSBFeHRlbnNpb25cMCIKICAgICAgICAgICAgVkFMVUUgIk9yaWdpbmFsRmlsZW5hbWUiLCAiZ3ZpbWV4dC5kbGxcMCIKICAgICAgICAgICAgVkFMVUUgIlByaXZhdGVCdWlsZCIsICJcMCIKICAgICAgICAgICAgVkFMVUUgIlByb2R1Y3ROYW1lIiwgIlRpYW5taWFvIEh1J3MgIGd2aW1leHQgY29udGV4dCBtZW51IGV4dGVuc2lvblwwIgogICAgICAgICAgICBWQUxVRSAiUHJvZHVjdFZlcnNpb24iLCAiMSwgMCwgMCwgMVwwIgogICAgICAgICAgICBWQUxVRSAiU3BlY2lhbEJ1aWxkIiwgIlwwIgogICAgICAgIEVORAogICAgRU5ECiAgICBCTE9DSyAiVmFyRmlsZUluZm8iCiAgICBCRUdJTgogICAgICAgIFZBTFVFICJUcmFuc2xhdGlvbiIsIDB4NDA5LCAxMjAwCiAgICBFTkQKRU5ECgojZW5kaWYgICAgLy8gIV9NQUMKCgojaWZkZWYgQVBTVFVESU9fSU5WT0tFRAovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLwovLyBURVhUSU5DTFVERQovLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRSAKQkVHSU4KICAgICJyZXNvdXJjZS5oXDAiCkVORAoKMiBURVhUSU5DTFVERSBESVNDQVJEQUJMRSAKQkVHSU4KICAgICIjaW5jbHVkZSAiImFmeHJlcy5oIiJcclxuIgogICAgIlwwIgpFTkQKCjMgVEVYVElOQ0xVREUgRElTQ0FSREFCTEUgCkJFR0lOCiAgICAiXHJcbiIKICAgICJcMCIKRU5ECgojZW5kaWYgICAgLy8gQVBTVFVESU9fSU5WT0tFRAoKI2VuZGlmICAgIC8vIEVuZ2xpc2ggKFUuUy4pIHJlc291cmNlcwovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCgojaWZuZGVmIEFQU1RVRElPX0lOVk9LRUQKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLy8KLy8gR2VuZXJhdGVkIGZyb20gdGhlIFRFWFRJTkNMVURFIDMgcmVzb3VyY2UuCi8vCgoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KI2VuZGlmICAgIC8vIG5vdCBBUFNUVURJT19JTlZPS0VECgo=