LyoKICogRGlyZWN0M0Qgd2luZSB0eXBlcyBpbmNsdWRlIGZpbGUKICoKICogQ29weXJpZ2h0IDIwMDItMjAwMyBUaGUgd2luZS1kM2QgdGVhbQogKiBDb3B5cmlnaHQgMjAwMi0yMDAzIEphc29uIEVkbWVhZGVzCiAqICAgICAgICAgICAgICAgICAgICAgUmFwaGFlbCBKdW5xdWVpcmEKICogQ29weXJpZ2h0IDIwMDUgT2xpdmVyIFN0aWViZXIKICogQ29weXJpZ2h0IDIwMDYgU3RlZmFuIET2c2luZ2VyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCiNpZm5kZWYgX19XSU5FX1dJTkVEM0RfVFlQRVNfSAojZGVmaW5lIF9fV0lORV9XSU5FRDNEX1RZUEVTX0gKCnR5cGVkZWYgRFdPUkQgV0lORUQzRENPTE9SOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNETElHSFRUWVBFIHsKICBXSU5FRDNETElHSFRfUE9JTlQgICAgICAgICAgPSAxLAogIFdJTkVEM0RMSUdIVF9TUE9UICAgICAgICAgICA9IDIsCiAgV0lORUQzRExJR0hUX0RJUkVDVElPTkFMICAgID0gMywKICBXSU5FRDNETElHSFRfUEFSQUxMRUxQT0lOVCAgPSA0LCAvKiBEM0Q3ICovCiAgV0lORUQzRExJR0hUX0dMU1BPVCAgICAgICAgID0gNSwgLyogRDNENyAqLwogIFdJTkVEM0RMSUdIVF9GT1JDRV9EV09SRCAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNETElHSFRUWVBFOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEUFJJTUlUSVZFVFlQRSB7CiAgICBXSU5FRDNEUFRfUE9JTlRMSVNUICAgICAgID0gMSwKICAgIFdJTkVEM0RQVF9MSU5FTElTVCAgICAgICAgPSAyLAogICAgV0lORUQzRFBUX0xJTkVTVFJJUCAgICAgICA9IDMsCiAgICBXSU5FRDNEUFRfVFJJQU5HTEVMSVNUICAgID0gNCwKICAgIFdJTkVEM0RQVF9UUklBTkdMRVNUUklQICAgPSA1LAogICAgV0lORUQzRFBUX1RSSUFOR0xFRkFOICAgICA9IDYsCgogICAgV0lORUQzRFBUX0ZPUkNFX0RXT1JEICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEUFJJTUlUSVZFVFlQRTsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEQ09MT1JWQUxVRSB7CiAgICBmbG9hdCByOwogICAgZmxvYXQgZzsKICAgIGZsb2F0IGI7CiAgICBmbG9hdCBhOwp9IFdJTkVEM0RDT0xPUlZBTFVFOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RWRUNUT1IgewogICAgZmxvYXQgeDsKICAgIGZsb2F0IHk7CiAgICBmbG9hdCB6Owp9IFdJTkVEM0RWRUNUT1I7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRE1BVFJJWCB7CiAgICB1bmlvbiB7CiAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgZmxvYXQgICAgICAgIF8xMSwgXzEyLCBfMTMsIF8xNDsKICAgICAgICAgICAgZmxvYXQgICAgICAgIF8yMSwgXzIyLCBfMjMsIF8yNDsKICAgICAgICAgICAgZmxvYXQgICAgICAgIF8zMSwgXzMyLCBfMzMsIF8zNDsKICAgICAgICAgICAgZmxvYXQgICAgICAgIF80MSwgXzQyLCBfNDMsIF80NDsKICAgICAgICB9IERVTU1ZU1RSVUNUTkFNRTsKICAgICAgICBmbG9hdCBtWzRdWzRdOwogICAgfSBEVU1NWVVOSU9OTkFNRTsKfSBXSU5FRDNETUFUUklYOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RSRUNUIHsKICAgIExPTkcgeDE7CiAgICBMT05HIHkxOwogICAgTE9ORyB4MjsKICAgIExPTkcgeTI7Cn0gV0lORUQzRFJFQ1Q7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRExJR0hUIHsKICAgIFdJTkVEM0RMSUdIVFRZUEUgICAgVHlwZTsKICAgIFdJTkVEM0RDT0xPUlZBTFVFICAgRGlmZnVzZTsKICAgIFdJTkVEM0RDT0xPUlZBTFVFICAgU3BlY3VsYXI7CiAgICBXSU5FRDNEQ09MT1JWQUxVRSAgIEFtYmllbnQ7CiAgICBXSU5FRDNEVkVDVE9SICAgICAgIFBvc2l0aW9uOwogICAgV0lORUQzRFZFQ1RPUiAgICAgICBEaXJlY3Rpb247CiAgICBmbG9hdCAgICAgICAgICAgICAgIFJhbmdlOwogICAgZmxvYXQgICAgICAgICAgICAgICBGYWxsb2ZmOwogICAgZmxvYXQgICAgICAgICAgICAgICBBdHRlbnVhdGlvbjA7CiAgICBmbG9hdCAgICAgICAgICAgICAgIEF0dGVudWF0aW9uMTsKICAgIGZsb2F0ICAgICAgICAgICAgICAgQXR0ZW51YXRpb24yOwogICAgZmxvYXQgICAgICAgICAgICAgICBUaGV0YTsKICAgIGZsb2F0ICAgICAgICAgICAgICAgUGhpOwp9IFdJTkVEM0RMSUdIVDsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNETUFURVJJQUwgewogICAgV0lORUQzRENPTE9SVkFMVUUgICBEaWZmdXNlOwogICAgV0lORUQzRENPTE9SVkFMVUUgICBBbWJpZW50OwogICAgV0lORUQzRENPTE9SVkFMVUUgICBTcGVjdWxhcjsKICAgIFdJTkVEM0RDT0xPUlZBTFVFICAgRW1pc3NpdmU7CiAgICBmbG9hdCAgICAgICAgICAgUG93ZXI7Cn0gV0lORUQzRE1BVEVSSUFMOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RWSUVXUE9SVCB7CiAgICBEV09SRCAgICAgICBYOwogICAgRFdPUkQgICAgICAgWTsKICAgIERXT1JEICAgICAgIFdpZHRoOwogICAgRFdPUkQgICAgICAgSGVpZ2h0OwogICAgZmxvYXQgICAgICAgTWluWjsKICAgIGZsb2F0ICAgICAgIE1heFo7Cn0gV0lORUQzRFZJRVdQT1JUOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RHQU1NQVJBTVAgewogICAgV09SRCAgICAgICAgICAgICAgICByZWQgIFsyNTZdOwogICAgV09SRCAgICAgICAgICAgICAgICBncmVlblsyNTZdOwogICAgV09SRCAgICAgICAgICAgICAgICBibHVlIFsyNTZdOwp9IFdJTkVEM0RHQU1NQVJBTVA7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRExJTkVQQVRURVJOIHsKICAgIFdPUkQgICAgd1JlcGVhdEZhY3RvcjsKICAgIFdPUkQgICAgd0xpbmVQYXR0ZXJuOwp9IFdJTkVEM0RMSU5FUEFUVEVSTjsKCiNkZWZpbmUgV0lORUQzRF9WU0hBREVSX01BWF9DT05TVEFOVFMgOTYKI2RlZmluZSBXSU5FRDNEX1BTSEFERVJfTUFYX0NPTlNUQU5UUyAzMgoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RWRUNUT1JfMyB7CiAgICBmbG9hdCB4OwogICAgZmxvYXQgeTsKICAgIGZsb2F0IHo7Cn0gV0lORUQzRFZFQ1RPUl8zOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RWRUNUT1JfNCB7CiAgICBmbG9hdCB4OwogICAgZmxvYXQgeTsKICAgIGZsb2F0IHo7CiAgICBmbG9hdCB3Owp9IFdJTkVEM0RWRUNUT1JfNDsKCnR5cGVkZWYgc3RydWN0IFdJTkVEM0RTSEFERVJWRUNUT1IgewogIGZsb2F0IHg7CiAgZmxvYXQgeTsKICBmbG9hdCB6OwogIGZsb2F0IHc7Cn0gV0lORUQzRFNIQURFUlZFQ1RPUjsKCnR5cGVkZWYgc3RydWN0IFdJTkVEM0RTSEFERVJTQ0FMQVIgewogIGZsb2F0IHg7Cn0gV0lORUQzRFNIQURFUlNDQUxBUjsKCnR5cGVkZWYgV0lORUQzRFNIQURFUlZFQ1RPUiBXSU5FVlNIQURFUkNPTlNUQU5UUzhbV0lORUQzRF9WU0hBREVSX01BWF9DT05TVEFOVFNdOwoKdHlwZWRlZiBzdHJ1Y3QgVlNIQURFUkRBVEEgewogIC8qKiBSdW4gVGltZSBTaGFkZXIgRnVuY3Rpb24gQ29uc3RhbnRzICovCiAgLypEM0RYQlVGRkVSKiBjb25zdGFudHM7Ki8KICBXSU5FVlNIQURFUkNPTlNUQU5UUzggQzsKICAvKiogU2hhZGVyIENvZGUgYXMgY2hhciAuLi4gKi8KICBDT05TVCBEV09SRCogY29kZTsKICBVSU5UIGNvZGVMZW5ndGg7Cn0gVlNIQURFUkRBVEE7CgovKiogdGVtcG9yYXJ5IGhlcmUgd2FpdGluZyBmb3IgYnVmZmVyIGNvZGUgKi8KdHlwZWRlZiBzdHJ1Y3QgVlNIQURFUklOUFVUREFUQSB7CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBWWzE3XTsKfSBXSU5FVlNIQURFUklOUFVUREFUQTsKCi8qKiB0ZW1wb3JhcnkgaGVyZSB3YWl0aW5nIGZvciBidWZmZXIgY29kZSAqLwp0eXBlZGVmIHN0cnVjdCBWU0hBREVST1VUUFVUREFUQSB7CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBvUG9zOwogIFdJTkVEM0RTSEFERVJWRUNUT1Igb0RbMl07CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBvVFs4XTsKICBXSU5FRDNEU0hBREVSVkVDVE9SIG9Gb2c7CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBvUHRzOwp9IFdJTkVWU0hBREVST1VUUFVUREFUQTsKCnR5cGVkZWYgV0lORUQzRFNIQURFUlZFQ1RPUiBXSU5FUFNIQURFUkNPTlNUQU5UUzhbV0lORUQzRF9QU0hBREVSX01BWF9DT05TVEFOVFNdOwoKdHlwZWRlZiBzdHJ1Y3QgUFNIQURFUkRBVEEgewogIC8qKiBSdW4gVGltZSBTaGFkZXIgRnVuY3Rpb24gQ29uc3RhbnRzICovCiAgLypEM0RYQlVGRkVSKiBjb25zdGFudHM7Ki8KICBXSU5FUFNIQURFUkNPTlNUQU5UUzggQzsKICAvKiogU2hhZGVyIENvZGUgYXMgY2hhciAuLi4gKi8KICBDT05TVCBEV09SRCogY29kZTsKICBVSU5UIGNvZGVMZW5ndGg7Cn0gUFNIQURFUkRBVEE7CgovKiogdGVtcG9yYXJ5IGhlcmUgd2FpdGluZyBmb3IgYnVmZmVyIGNvZGUgKi8KdHlwZWRlZiBzdHJ1Y3QgUFNIQURFUklOUFVUREFUQSB7CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBWWzJdOwogIFdJTkVEM0RTSEFERVJWRUNUT1IgVFs4XTsKICBXSU5FRDNEU0hBREVSVkVDVE9SIFNbMTZdOwogIC8qRDNEU0hBREVSVkVDVE9SIFJbMTJdOyovCn0gV0lORVBTSEFERVJJTlBVVERBVEE7CgovKiogdGVtcG9yYXJ5IGhlcmUgd2FpdGluZyBmb3IgYnVmZmVyIGNvZGUgKi8KdHlwZWRlZiBzdHJ1Y3QgUFNIQURFUk9VVFBVVERBVEEgewogIFdJTkVEM0RTSEFERVJWRUNUT1Igb0NbNF07CiAgV0lORUQzRFNIQURFUlZFQ1RPUiBvRGVwdGg7Cn0gV0lORVBTSEFERVJPVVRQVVREQVRBOwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIFdpbmVEM0QgU3RydWN0dXJlcyB0byBiZSB1c2VkIHdoZW4gZDNkOCBhbmQgZDNkOSBhcmUgaW5jb21wYXRpYmxlCiAqLwoKCnR5cGVkZWYgZW51bSBfV0lORUQzRERFVlRZUEUgewogICAgV0lORUQzRERFVlRZUEVfSEFMICAgICAgICAgPSAxLAogICAgV0lORUQzRERFVlRZUEVfUkVGICAgICAgICAgPSAyLAogICAgV0lORUQzRERFVlRZUEVfU1cgICAgICAgICAgPSAzLAogICAgV0lORUQzRERFVlRZUEVfTlVMTFJFRiAgICAgPSA0LAoKICAgIFdJTkVEM0RERVZUWVBFX0ZPUkNFX0RXT1JEID0gMHhmZmZmZmZmZgp9IFdJTkVEM0RERVZUWVBFOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEREVHUkVFVFlQRSB7CiAgICBXSU5FRDNEREVHUkVFX0xJTkVBUiAgICAgID0gMSwKICAgIFdJTkVEM0RERUdSRUVfUVVBRFJBVElDICAgPSAyLAogICAgV0lORUQzRERFR1JFRV9DVUJJQyAgICAgICA9IDMsCiAgICBXSU5FRDNEREVHUkVFX1FVSU5USUMgICAgID0gNSwKICAgIAogICAgV0lORUQzRERFR1JFRV9GT1JDRV9EV09SRCAgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RERUdSRUVUWVBFOwoKI2RlZmluZSBXSU5FTUFLRUZPVVJDQyhjaDAsIGNoMSwgY2gyLCBjaDMpICBcCiAgICAoKERXT1JEKShCWVRFKShjaDApIHwgKChEV09SRCkoQllURSkoY2gxKSA8PCA4KSB8ICBcCiAgICAoKERXT1JEKShCWVRFKShjaDIpIDw8IDE2KSB8ICgoRFdPUkQpKEJZVEUpKGNoMykgPDwgMjQgKSkKCnR5cGVkZWYgZW51bSBfV0lORUQzREZPUk1BVCB7CiAgICBXSU5FRDNERk1UX1VOS05PV04gICAgICAgICAgICAgID0gICAwLAoKICAgIFdJTkVEM0RGTVRfUjhHOEI4ICAgICAgICAgICAgICAgPSAgMjAsCiAgICBXSU5FRDNERk1UX0E4UjhHOEI4ICAgICAgICAgICAgID0gIDIxLAogICAgV0lORUQzREZNVF9YOFI4RzhCOCAgICAgICAgICAgICA9ICAyMiwKICAgIFdJTkVEM0RGTVRfUjVHNkI1ICAgICAgICAgICAgICAgPSAgMjMsCiAgICBXSU5FRDNERk1UX1gxUjVHNUI1ICAgICAgICAgICAgID0gIDI0LAogICAgV0lORUQzREZNVF9BMVI1RzVCNSAgICAgICAgICAgICA9ICAyNSwKICAgIFdJTkVEM0RGTVRfQTRSNEc0QjQgICAgICAgICAgICAgPSAgMjYsCiAgICBXSU5FRDNERk1UX1IzRzNCMiAgICAgICAgICAgICAgID0gIDI3LAogICAgV0lORUQzREZNVF9BOCAgICAgICAgICAgICAgICAgICA9ICAyOCwKICAgIFdJTkVEM0RGTVRfQThSM0czQjIgICAgICAgICAgICAgPSAgMjksCiAgICBXSU5FRDNERk1UX1g0UjRHNEI0ICAgICAgICAgICAgID0gIDMwLAogICAgV0lORUQzREZNVF9BMkIxMEcxMFIxMCAgICAgICAgICA9ICAzMSwKICAgIFdJTkVEM0RGTVRfQThCOEc4UjggICAgICAgICAgICAgPSAgMzIsCiAgICBXSU5FRDNERk1UX1g4QjhHOFI4ICAgICAgICAgICAgID0gIDMzLAogICAgV0lORUQzREZNVF9HMTZSMTYgICAgICAgICAgICAgICA9ICAzNCwKICAgIFdJTkVEM0RGTVRfQTJSMTBHMTBCMTAgICAgICAgICAgPSAgMzUsCiAgICBXSU5FRDNERk1UX0ExNkIxNkcxNlIxNiAgICAgICAgID0gIDM2LAogIAoKICAgIFdJTkVEM0RGTVRfQThQOCAgICAgICAgICAgICAgICAgPSAgNDAsCiAgICBXSU5FRDNERk1UX1A4ICAgICAgICAgICAgICAgICAgID0gIDQxLAoKICAgIFdJTkVEM0RGTVRfTDggICAgICAgICAgICAgICAgICAgPSAgNTAsCiAgICBXSU5FRDNERk1UX0E4TDggICAgICAgICAgICAgICAgID0gIDUxLAogICAgV0lORUQzREZNVF9BNEw0ICAgICAgICAgICAgICAgICA9ICA1MiwKCiAgICBXSU5FRDNERk1UX1Y4VTggICAgICAgICAgICAgICAgID0gIDYwLAogICAgV0lORUQzREZNVF9MNlY1VTUgICAgICAgICAgICAgICA9ICA2MSwKICAgIFdJTkVEM0RGTVRfWDhMOFY4VTggICAgICAgICAgICAgPSAgNjIsCiAgICBXSU5FRDNERk1UX1E4VzhWOFU4ICAgICAgICAgICAgID0gIDYzLAogICAgV0lORUQzREZNVF9WMTZVMTYgICAgICAgICAgICAgICA9ICA2NCwKICAgIFdJTkVEM0RGTVRfVzExVjExVTEwICAgICAgICAgICAgPSAgNjUsCiAgICBXSU5FRDNERk1UX0EyVzEwVjEwVTEwICAgICAgICAgID0gIDY3LAoKICAgIFdJTkVEM0RGTVRfVVlWWSAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ1UnLCAnWScsICdWJywgJ1knKSwKICAgIFdJTkVEM0RGTVRfWVVZMiAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ1knLCAnVScsICdZJywgJzInKSwKICAgIFdJTkVEM0RGTVRfWVYxMiAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ1knLCAnVicsICcxJywgJzInKSwKICAgIFdJTkVEM0RGTVRfRFhUMSAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzEnKSwKICAgIFdJTkVEM0RGTVRfRFhUMiAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzInKSwKICAgIFdJTkVEM0RGTVRfRFhUMyAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzMnKSwKICAgIFdJTkVEM0RGTVRfRFhUNCAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzQnKSwKICAgIFdJTkVEM0RGTVRfRFhUNSAgICAgICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0QnLCAnWCcsICdUJywgJzUnKSwKICAgIFdJTkVEM0RGTVRfTVVMVEkyX0FSR0I4ICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ00nLCAnRScsICdUJywgJzEnKSwKICAgIFdJTkVEM0RGTVRfRzhSOF9HOEI4ICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ0cnLCAnUicsICdHJywgJ0InKSwKICAgIFdJTkVEM0RGTVRfUjhHOF9COEc4ICAgICAgICAgICAgPSAgV0lORU1BS0VGT1VSQ0MoJ1InLCAnRycsICdCJywgJ0cnKSwKCiAgICBXSU5FRDNERk1UX0QxNl9MT0NLQUJMRSAgICAgICAgID0gIDcwLAogICAgV0lORUQzREZNVF9EMzIgICAgICAgICAgICAgICAgICA9ICA3MSwKICAgIFdJTkVEM0RGTVRfRDE1UzEgICAgICAgICAgICAgICAgPSAgNzMsCiAgICBXSU5FRDNERk1UX0QyNFM4ICAgICAgICAgICAgICAgID0gIDc1LAogICAgV0lORUQzREZNVF9EMjRYOCAgICAgICAgICAgICAgICA9ICA3NywKICAgIFdJTkVEM0RGTVRfRDI0WDRTNCAgICAgICAgICAgICAgPSAgNzksCiAgICBXSU5FRDNERk1UX0QxNiAgICAgICAgICAgICAgICAgID0gIDgwLAogICAgV0lORUQzREZNVF9MMTYgICAgICAgICAgICAgICAgICA9ICA4MSwKICAgIFdJTkVEM0RGTVRfRDMyRl9MT0NLQUJMRSAgICAgICAgPSAgODIsCiAgICBXSU5FRDNERk1UX0QyNEZTOCAgICAgICAgICAgICAgID0gIDgzLAoKICAgIFdJTkVEM0RGTVRfVkVSVEVYREFUQSAgICAgICAgICAgPSAxMDAsCiAgICBXSU5FRDNERk1UX0lOREVYMTYgICAgICAgICAgICAgID0gMTAxLAogICAgV0lORUQzREZNVF9JTkRFWDMyICAgICAgICAgICAgICA9IDEwMiwKICAgIFdJTkVEM0RGTVRfUTE2VzE2VjE2VTE2ICAgICAgICAgPSAxMTAsCiAgICAvKiBGbG9hdGluZyBwb2ludCBmb3JtYXRzICovCiAgICBXSU5FRDNERk1UX1IxNkYgICAgICAgICAgICAgICAgID0gMTExLAogICAgV0lORUQzREZNVF9HMTZSMTZGICAgICAgICAgICAgICA9IDExMiwKICAgIFdJTkVEM0RGTVRfQTE2QjE2RzE2UjE2RiAgICAgICAgPSAxMTMsCiAgICAKICAgIC8qIElFRUUgZm9ybWF0cyAqLwogICAgV0lORUQzREZNVF9SMzJGICAgICAgICAgICAgICAgICA9IDExNCwKICAgIFdJTkVEM0RGTVRfRzMyUjMyRiAgICAgICAgICAgICAgPSAxMTUsCiAgICBXSU5FRDNERk1UX0EzMkIzMkczMlIzMkYgICAgICAgID0gMTE2LAogICAgCiAgICBXSU5FRDNERk1UX0N4VjhVOCAgICAgICAgICAgICAgID0gMTE3LAoKCiAgICBXSU5FRDNERk1UX0ZPUkNFX0RXT1JEICAgICAgICAgID0gMHhGRkZGRkZGRgp9IFdJTkVEM0RGT1JNQVQ7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RSRU5ERVJTVEFURVRZUEUgewogICAgV0lORUQzRFJTX1RFWFRVUkVIQU5ETEUgICAgICAgICAgICAgPSAgIDEsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19BTlRJQUxJQVMgICAgICAgICAgICAgICAgID0gICAyLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfVEVYVFVSRUFERFJFU1MgICAgICAgICAgICA9ICAgMywgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1RFWFRVUkVQRVJTUEVDVElWRSAgICAgICAgPSAgIDQsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19XUkFQVSAgICAgICAgICAgICAgICAgICAgID0gICA1LCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfV1JBUFYgICAgICAgICAgICAgICAgICAgICA9ICAgNiwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1pFTkFCTEUgICAgICAgICAgICAgICAgICAgPSAgIDcsCiAgICBXSU5FRDNEUlNfRklMTE1PREUgICAgICAgICAgICAgICAgICA9ICAgOCwKICAgIFdJTkVEM0RSU19TSEFERU1PREUgICAgICAgICAgICAgICAgID0gICA5LAogICAgV0lORUQzRFJTX0xJTkVQQVRURVJOICAgICAgICAgICAgICAgPSAgMTAsIC8qIGQzZDcsIGQzZDggKi8KICAgIFdJTkVEM0RSU19NT05PRU5BQkxFICAgICAgICAgICAgICAgID0gIDExLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfUk9QMiAgICAgICAgICAgICAgICAgICAgICA9ICAxMiwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1BMQU5FTUFTSyAgICAgICAgICAgICAgICAgPSAgMTMsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19aV1JJVEVFTkFCTEUgICAgICAgICAgICAgID0gIDE0LAogICAgV0lORUQzRFJTX0FMUEhBVEVTVEVOQUJMRSAgICAgICAgICAgPSAgMTUsCiAgICBXSU5FRDNEUlNfTEFTVFBJWEVMICAgICAgICAgICAgICAgICA9ICAxNiwKICAgIFdJTkVEM0RSU19URVhUVVJFTUFHICAgICAgICAgICAgICAgID0gIDE3LCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfVEVYVFVSRU1JTiAgICAgICAgICAgICAgICA9ICAxOCwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1NSQ0JMRU5EICAgICAgICAgICAgICAgICAgPSAgMTksCiAgICBXSU5FRDNEUlNfREVTVEJMRU5EICAgICAgICAgICAgICAgICA9ICAyMCwKICAgIFdJTkVEM0RSU19URVhUVVJFTUFQQkxFTkQgICAgICAgICAgID0gIDIxLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfQ1VMTE1PREUgICAgICAgICAgICAgICAgICA9ICAyMiwKICAgIFdJTkVEM0RSU19aRlVOQyAgICAgICAgICAgICAgICAgICAgID0gIDIzLAogICAgV0lORUQzRFJTX0FMUEhBUkVGICAgICAgICAgICAgICAgICAgPSAgMjQsCiAgICBXSU5FRDNEUlNfQUxQSEFGVU5DICAgICAgICAgICAgICAgICA9ICAyNSwKICAgIFdJTkVEM0RSU19ESVRIRVJFTkFCTEUgICAgICAgICAgICAgID0gIDI2LAogICAgV0lORUQzRFJTX0FMUEhBQkxFTkRFTkFCTEUgICAgICAgICAgPSAgMjcsCiAgICBXSU5FRDNEUlNfRk9HRU5BQkxFICAgICAgICAgICAgICAgICA9ICAyOCwKICAgIFdJTkVEM0RSU19TUEVDVUxBUkVOQUJMRSAgICAgICAgICAgID0gIDI5LAogICAgV0lORUQzRFJTX1pWSVNJQkxFICAgICAgICAgICAgICAgICAgPSAgMzAsIC8qIGQzZDcsIGQzZDggKi8KICAgIFdJTkVEM0RSU19TVUJQSVhFTCAgICAgICAgICAgICAgICAgID0gIDMxLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfU1VCUElYRUxYICAgICAgICAgICAgICAgICA9ICAzMiwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1NUSVBQTEVEQUxQSEEgICAgICAgICAgICAgPSAgMzMsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19GT0dDT0xPUiAgICAgICAgICAgICAgICAgID0gIDM0LAogICAgV0lORUQzRFJTX0ZPR1RBQkxFTU9ERSAgICAgICAgICAgICAgPSAgMzUsCiAgICBXSU5FRDNEUlNfRk9HU1RBUlQgICAgICAgICAgICAgICAgICA9ICAzNiwKICAgIFdJTkVEM0RSU19GT0dFTkQgICAgICAgICAgICAgICAgICAgID0gIDM3LAogICAgV0lORUQzRFJTX0ZPR0RFTlNJVFkgICAgICAgICAgICAgICAgPSAgMzgsCiAgICBXSU5FRDNEUlNfU1RJUFBMRUVOQUJMRSAgICAgICAgICAgICA9ICAzOSwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX0VER0VBTlRJQUxJQVMgICAgICAgICAgICAgPSAgNDAsIC8qIGQzZDcsIGQzZDggKi8KICAgIFdJTkVEM0RSU19DT0xPUktFWUVOQUJMRSAgICAgICAgICAgID0gIDQxLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfQk9SREVSQ09MT1IgICAgICAgICAgICAgICA9ICA0MywgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1RFWFRVUkVBRERSRVNTVSAgICAgICAgICAgPSAgNDQsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19URVhUVVJFQUREUkVTU1YgICAgICAgICAgID0gIDQ1LCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfTUlQTUFQTE9EQklBUyAgICAgICAgICAgICA9ICA0NiwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1pCSUFTICAgICAgICAgICAgICAgICAgICAgPSAgNDcsIC8qIGQzZDcsIGQzZDggKi8KICAgIFdJTkVEM0RSU19SQU5HRUZPR0VOQUJMRSAgICAgICAgICAgID0gIDQ4LAogICAgV0lORUQzRFJTX0FOSVNPVFJPUFkgICAgICAgICAgICAgICAgPSAgNDksIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19GTFVTSEJBVENIICAgICAgICAgICAgICAgID0gIDUwLCAvKiBkM2Q3ICovCiAgICBXSU5FRDNEUlNfVFJBTlNMVUNFTlRTT1JUSU5ERVBFTkRFTlQgPSA1MSwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX1NURU5DSUxFTkFCTEUgICAgICAgICAgICAgPSAgNTIsCiAgICBXSU5FRDNEUlNfU1RFTkNJTEZBSUwgICAgICAgICAgICAgICA9ICA1MywKICAgIFdJTkVEM0RSU19TVEVOQ0lMWkZBSUwgICAgICAgICAgICAgID0gIDU0LAogICAgV0lORUQzRFJTX1NURU5DSUxQQVNTICAgICAgICAgICAgICAgPSAgNTUsCiAgICBXSU5FRDNEUlNfU1RFTkNJTEZVTkMgICAgICAgICAgICAgICA9ICA1NiwKICAgIFdJTkVEM0RSU19TVEVOQ0lMUkVGICAgICAgICAgICAgICAgID0gIDU3LAogICAgV0lORUQzRFJTX1NURU5DSUxNQVNLICAgICAgICAgICAgICAgPSAgNTgsCiAgICBXSU5FRDNEUlNfU1RFTkNJTFdSSVRFTUFTSyAgICAgICAgICA9ICA1OSwKICAgIFdJTkVEM0RSU19URVhUVVJFRkFDVE9SICAgICAgICAgICAgID0gIDYwLAoKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjAwICAgICAgICAgID0gNjQsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4wMSAgICAgICAgICA9IDY1LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMDIgICAgICAgICAgPSA2NiwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjAzICAgICAgICAgID0gNjcsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4wNCAgICAgICAgICA9IDY4LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMDUgICAgICAgICAgPSA2OSwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjA2ICAgICAgICAgID0gNzAsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4wNyAgICAgICAgICA9IDcxLAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMDggICAgICAgICAgPSA3MiwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjA5ICAgICAgICAgID0gNzMsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4xMCAgICAgICAgICA9IDc0LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMTEgICAgICAgICAgPSA3NSwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjEyICAgICAgICAgID0gNzYsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4xMyAgICAgICAgICA9IDc3LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMTQgICAgICAgICAgPSA3OCwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjE1ICAgICAgICAgID0gNzksCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4xNiAgICAgICAgICA9IDgwLAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMTcgICAgICAgICAgPSA4MSwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjE4ICAgICAgICAgID0gODIsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4xOSAgICAgICAgICA9IDgzLAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMjAgICAgICAgICAgPSA4NCwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjIxICAgICAgICAgID0gODUsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4yMiAgICAgICAgICA9IDg2LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMjMgICAgICAgICAgPSA4NywKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjI0ICAgICAgICAgID0gODgsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4yNSAgICAgICAgICA9IDg5LAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMjYgICAgICAgICAgPSA5MCwKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjI3ICAgICAgICAgID0gOTEsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4yOCAgICAgICAgICA9IDkyLAogICAgV0lORUQzRFJTX1NUSVBQTEVQQVRURVJOMjkgICAgICAgICAgPSA5MywKICAgIFdJTkVEM0RSU19TVElQUExFUEFUVEVSTjMwICAgICAgICAgID0gOTQsCiAgICBXSU5FRDNEUlNfU1RJUFBMRVBBVFRFUk4zMSAgICAgICAgICA9IDk1LAoKICAgIFdJTkVEM0RSU19XUkFQMCAgICAgICAgICAgICAgICAgICAgID0gMTI4LAogICAgV0lORUQzRFJTX1dSQVAxICAgICAgICAgICAgICAgICAgICAgPSAxMjksCiAgICBXSU5FRDNEUlNfV1JBUDIgICAgICAgICAgICAgICAgICAgICA9IDEzMCwKICAgIFdJTkVEM0RSU19XUkFQMyAgICAgICAgICAgICAgICAgICAgID0gMTMxLAogICAgV0lORUQzRFJTX1dSQVA0ICAgICAgICAgICAgICAgICAgICAgPSAxMzIsCiAgICBXSU5FRDNEUlNfV1JBUDUgICAgICAgICAgICAgICAgICAgICA9IDEzMywKICAgIFdJTkVEM0RSU19XUkFQNiAgICAgICAgICAgICAgICAgICAgID0gMTM0LAogICAgV0lORUQzRFJTX1dSQVA3ICAgICAgICAgICAgICAgICAgICAgPSAxMzUsCiAgICBXSU5FRDNEUlNfQ0xJUFBJTkcgICAgICAgICAgICAgICAgICA9IDEzNiwKICAgIFdJTkVEM0RSU19MSUdIVElORyAgICAgICAgICAgICAgICAgID0gMTM3LAogICAgV0lORUQzRFJTX0VYVEVOVFMgICAgICAgICAgICAgICAgICAgPSAxMzgsIC8qIGQzZDcgKi8KICAgIFdJTkVEM0RSU19BTUJJRU5UICAgICAgICAgICAgICAgICAgID0gMTM5LAogICAgV0lORUQzRFJTX0ZPR1ZFUlRFWE1PREUgICAgICAgICAgICAgPSAxNDAsCiAgICBXSU5FRDNEUlNfQ09MT1JWRVJURVggICAgICAgICAgICAgICA9IDE0MSwKICAgIFdJTkVEM0RSU19MT0NBTFZJRVdFUiAgICAgICAgICAgICAgID0gMTQyLAogICAgV0lORUQzRFJTX05PUk1BTElaRU5PUk1BTFMgICAgICAgICAgPSAxNDMsCiAgICBXSU5FRDNEUlNfQ09MT1JLRVlCTEVOREVOQUJMRSAgICAgICA9IDE0NCwgLyogZDNkNyAqLwogICAgV0lORUQzRFJTX0RJRkZVU0VNQVRFUklBTFNPVVJDRSAgICAgPSAxNDUsCiAgICBXSU5FRDNEUlNfU1BFQ1VMQVJNQVRFUklBTFNPVVJDRSAgICA9IDE0NiwKICAgIFdJTkVEM0RSU19BTUJJRU5UTUFURVJJQUxTT1VSQ0UgICAgID0gMTQ3LAogICAgV0lORUQzRFJTX0VNSVNTSVZFTUFURVJJQUxTT1VSQ0UgICAgPSAxNDgsCiAgICBXSU5FRDNEUlNfVkVSVEVYQkxFTkQgICAgICAgICAgICAgICA9IDE1MSwKICAgIFdJTkVEM0RSU19DTElQUExBTkVFTkFCTEUgICAgICAgICAgID0gMTUyLCAgCiAgICBXSU5FRDNEUlNfU09GVFdBUkVWRVJURVhQUk9DRVNTSU5HICA9IDE1MywgLyogZDNkOCAqLwogICAgV0lORUQzRFJTX1BPSU5UU0laRSAgICAgICAgICAgICAgICAgPSAxNTQsCiAgICBXSU5FRDNEUlNfUE9JTlRTSVpFX01JTiAgICAgICAgICAgICA9IDE1NSwKICAgIFdJTkVEM0RSU19QT0lOVFNQUklURUVOQUJMRSAgICAgICAgID0gMTU2LAogICAgV0lORUQzRFJTX1BPSU5UU0NBTEVFTkFCTEUgICAgICAgICAgPSAxNTcsCiAgICBXSU5FRDNEUlNfUE9JTlRTQ0FMRV9BICAgICAgICAgICAgICA9IDE1OCwKICAgIFdJTkVEM0RSU19QT0lOVFNDQUxFX0IgICAgICAgICAgICAgID0gMTU5LAogICAgV0lORUQzRFJTX1BPSU5UU0NBTEVfQyAgICAgICAgICAgICAgPSAxNjAsCiAgICBXSU5FRDNEUlNfTVVMVElTQU1QTEVBTlRJQUxJQVMgICAgICA9IDE2MSwKICAgIFdJTkVEM0RSU19NVUxUSVNBTVBMRU1BU0sgICAgICAgICAgID0gMTYyLAogICAgV0lORUQzRFJTX1BBVENIRURHRVNUWUxFICAgICAgICAgICAgPSAxNjMsCiAgICBXSU5FRDNEUlNfUEFUQ0hTRUdNRU5UUyAgICAgICAgICAgICA9IDE2NCwgLyogZDNkOCAqLwogICAgV0lORUQzRFJTX0RFQlVHTU9OSVRPUlRPS0VOICAgICAgICAgPSAxNjUsCiAgICBXSU5FRDNEUlNfUE9JTlRTSVpFX01BWCAgICAgICAgICAgICA9IDE2NiwKICAgIFdJTkVEM0RSU19JTkRFWEVEVkVSVEVYQkxFTkRFTkFCTEUgID0gMTY3LAogICAgV0lORUQzRFJTX0NPTE9SV1JJVEVFTkFCTEUgICAgICAgICAgPSAxNjgsCiAgICBXSU5FRDNEUlNfVFdFRU5GQUNUT1IgICAgICAgICAgICAgICA9IDE3MCwKICAgIFdJTkVEM0RSU19CTEVORE9QICAgICAgICAgICAgICAgICAgID0gMTcxLAogICAgV0lORUQzRFJTX1BPU0lUSU9OT1JERVIgICAgICAgICAgICAgPSAxNzIsCiAgICBXSU5FRDNEUlNfTk9STUFMT1JERVIgICAgICAgICAgICAgICA9IDE3MywKICAgIFdJTkVEM0RSU19QT1NJVElPTkRFR1JFRSAgICAgICAgICAgID0gMTcyLAogICAgV0lORUQzRFJTX05PUk1BTERFR1JFRSAgICAgICAgICAgICAgPSAxNzMsCiAgICBXSU5FRDNEUlNfU0NJU1NPUlRFU1RFTkFCTEUgICAgICAgICA9IDE3NCwKICAgIFdJTkVEM0RSU19TTE9QRVNDQUxFREVQVEhCSUFTICAgICAgID0gMTc1LAogICAgV0lORUQzRFJTX0FOVElBTElBU0VETElORUVOQUJMRSAgICAgPSAxNzYsCiAgICBXSU5FRDNEUlNfTUlOVEVTU0VMTEFUSU9OTEVWRUwgICAgICA9IDE3OCwKICAgIFdJTkVEM0RSU19NQVhURVNTRUxMQVRJT05MRVZFTCAgICAgID0gMTc5LAogICAgV0lORUQzRFJTX0FEQVBUSVZFVEVTU19YICAgICAgICAgICAgPSAxODAsCiAgICBXSU5FRDNEUlNfQURBUFRJVkVURVNTX1kgICAgICAgICAgICA9IDE4MSwKICAgIFdJTkVEM0RSU19BREFQVElWRVRFU1NfWiAgICAgICAgICAgID0gMTgyLAogICAgV0lORUQzRFJTX0FEQVBUSVZFVEVTU19XICAgICAgICAgICAgPSAxODMsCiAgICBXSU5FRDNEUlNfRU5BQkxFQURBUFRJVkVURVNTRUxMQVRJT049IDE4NCwKICAgIFdJTkVEM0RSU19UV09TSURFRFNURU5DSUxNT0RFICAgICAgID0gMTg1LAogICAgV0lORUQzRFJTX0NDV19TVEVOQ0lMRkFJTCAgICAgICAgICAgPSAxODYsCiAgICBXSU5FRDNEUlNfQ0NXX1NURU5DSUxaRkFJTCAgICAgICAgICA9IDE4NywKICAgIFdJTkVEM0RSU19DQ1dfU1RFTkNJTFBBU1MgICAgICAgICAgID0gMTg4LAogICAgV0lORUQzRFJTX0NDV19TVEVOQ0lMRlVOQyAgICAgICAgICAgPSAxODksCiAgICBXSU5FRDNEUlNfQ09MT1JXUklURUVOQUJMRTEgICAgICAgICA9IDE5MCwKICAgIFdJTkVEM0RSU19DT0xPUldSSVRFRU5BQkxFMiAgICAgICAgID0gMTkxLAogICAgV0lORUQzRFJTX0NPTE9SV1JJVEVFTkFCTEUzICAgICAgICAgPSAxOTIsCiAgICBXSU5FRDNEUlNfQkxFTkRGQUNUT1IgICAgICAgICAgICAgICA9IDE5MywKICAgIFdJTkVEM0RSU19TUkdCV1JJVEVFTkFCTEUgICAgICAgICAgID0gMTk0LAogICAgV0lORUQzRFJTX0RFUFRIQklBUyAgICAgICAgICAgICAgICAgPSAxOTUsCiAgICBXSU5FRDNEUlNfV1JBUDggICAgICAgICAgICAgICAgICAgICA9IDE5OCwKICAgIFdJTkVEM0RSU19XUkFQOSAgICAgICAgICAgICAgICAgICAgID0gMTk5LAogICAgV0lORUQzRFJTX1dSQVAxMCAgICAgICAgICAgICAgICAgICAgPSAyMDAsCiAgICBXSU5FRDNEUlNfV1JBUDExICAgICAgICAgICAgICAgICAgICA9IDIwMSwKICAgIFdJTkVEM0RSU19XUkFQMTIgICAgICAgICAgICAgICAgICAgID0gMjAyLAogICAgV0lORUQzRFJTX1dSQVAxMyAgICAgICAgICAgICAgICAgICAgPSAyMDMsCiAgICBXSU5FRDNEUlNfV1JBUDE0ICAgICAgICAgICAgICAgICAgICA9IDIwNCwKICAgIFdJTkVEM0RSU19XUkFQMTUgICAgICAgICAgICAgICAgICAgID0gMjA1LAogICAgV0lORUQzRFJTX1NFUEFSQVRFQUxQSEFCTEVOREVOQUJMRSAgPSAyMDYsCiAgICBXSU5FRDNEUlNfU1JDQkxFTkRBTFBIQSAgICAgICAgICAgICA9IDIwNywKICAgIFdJTkVEM0RSU19ERVNUQkxFTkRBTFBIQSAgICAgICAgICAgID0gMjA4LAogICAgV0lORUQzRFJTX0JMRU5ET1BBTFBIQSAgICAgICAgICAgICAgPSAyMDksCgogICAgV0lORUQzRFJTX0ZPUkNFX0RXT1JEICAgICAgICAgICAgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzRFJFTkRFUlNUQVRFVFlQRTsKCiNkZWZpbmUgV0lORUhJR0hFU1RfUkVOREVSX1NUQVRFICAgV0lORUQzRFJTX0JMRU5ET1BBTFBIQQogICAgICAgIC8qIEhpZ2hlc3QgV0lORUQzRFJTXyB2YWx1ZSAgICovCgojZGVmaW5lIFdJTkVEM0RDT0xPUldSSVRFRU5BQkxFX1JFRCAgICgxPDwwKQojZGVmaW5lIFdJTkVEM0RDT0xPUldSSVRFRU5BQkxFX0dSRUVOICgxPDwxKQojZGVmaW5lIFdJTkVEM0RDT0xPUldSSVRFRU5BQkxFX0JMVUUgICgxPDwyKQojZGVmaW5lIFdJTkVEM0RDT0xPUldSSVRFRU5BQkxFX0FMUEhBICgxPDwzKQoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEQkxFTkQgewogICAgV0lORUQzREJMRU5EX1pFUk8gICAgICAgICAgICAgICA9ICAxLAogICAgV0lORUQzREJMRU5EX09ORSAgICAgICAgICAgICAgICA9ICAyLAogICAgV0lORUQzREJMRU5EX1NSQ0NPTE9SICAgICAgICAgICA9ICAzLAogICAgV0lORUQzREJMRU5EX0lOVlNSQ0NPTE9SICAgICAgICA9ICA0LAogICAgV0lORUQzREJMRU5EX1NSQ0FMUEhBICAgICAgICAgICA9ICA1LAogICAgV0lORUQzREJMRU5EX0lOVlNSQ0FMUEhBICAgICAgICA9ICA2LAogICAgV0lORUQzREJMRU5EX0RFU1RBTFBIQSAgICAgICAgICA9ICA3LAogICAgV0lORUQzREJMRU5EX0lOVkRFU1RBTFBIQSAgICAgICA9ICA4LAogICAgV0lORUQzREJMRU5EX0RFU1RDT0xPUiAgICAgICAgICA9ICA5LAogICAgV0lORUQzREJMRU5EX0lOVkRFU1RDT0xPUiAgICAgICA9IDEwLAogICAgV0lORUQzREJMRU5EX1NSQ0FMUEhBU0FUICAgICAgICA9IDExLAogICAgV0lORUQzREJMRU5EX0JPVEhTUkNBTFBIQSAgICAgICA9IDEyLAogICAgV0lORUQzREJMRU5EX0JPVEhJTlZTUkNBTFBIQSAgICA9IDEzLAogICAgV0lORUQzREJMRU5EX0JMRU5ERkFDVE9SICAgICAgICA9IDE0LAogICAgV0lORUQzREJMRU5EX0lOVkJMRU5ERkFDVE9SICAgICA9IDE1LAogICAgV0lORUQzREJMRU5EX0ZPUkNFX0RXT1JEICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEQkxFTkQ7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RCTEVORE9QIHsKICAgIFdJTkVEM0RCTEVORE9QX0FERCAgICAgICAgICAgICAgPSAxLAogICAgV0lORUQzREJMRU5ET1BfU1VCVFJBQ1QgICAgICAgICA9IDIsCiAgICBXSU5FRDNEQkxFTkRPUF9SRVZTVUJUUkFDVCAgICAgID0gMywKICAgIFdJTkVEM0RCTEVORE9QX01JTiAgICAgICAgICAgICAgPSA0LAogICAgV0lORUQzREJMRU5ET1BfTUFYICAgICAgICAgICAgICA9IDUsCgogICAgV0lORUQzREJMRU5ET1BfRk9SQ0VfRFdPUkQgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEQkxFTkRPUDsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFZFUlRFWEJMRU5ERkxBR1MgewogICAgV0lORUQzRFZCRl9ESVNBQkxFICA9ICAgMCwKICAgIFdJTkVEM0RWQkZfMVdFSUdIVFMgPSAgIDEsCiAgICBXSU5FRDNEVkJGXzJXRUlHSFRTID0gICAyLAogICAgV0lORUQzRFZCRl8zV0VJR0hUUyA9ICAgMywKICAgIFdJTkVEM0RWQkZfVFdFRU5JTkcgPSAyNTUsCiAgICBXSU5FRDNEVkJGXzBXRUlHSFRTID0gMjU2Cn0gV0lORUQzRFZFUlRFWEJMRU5ERkxBR1M7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RDTVBGVU5DIHsKICAgIFdJTkVEM0RDTVBfTkVWRVIgICAgICAgICAgICAgICAgPSAxLAogICAgV0lORUQzRENNUF9MRVNTICAgICAgICAgICAgICAgICA9IDIsCiAgICBXSU5FRDNEQ01QX0VRVUFMICAgICAgICAgICAgICAgID0gMywKICAgIFdJTkVEM0RDTVBfTEVTU0VRVUFMICAgICAgICAgICAgPSA0LAogICAgV0lORUQzRENNUF9HUkVBVEVSICAgICAgICAgICAgICA9IDUsCiAgICBXSU5FRDNEQ01QX05PVEVRVUFMICAgICAgICAgICAgID0gNiwKICAgIFdJTkVEM0RDTVBfR1JFQVRFUkVRVUFMICAgICAgICAgPSA3LAogICAgV0lORUQzRENNUF9BTFdBWVMgICAgICAgICAgICAgICA9IDgsCgogICAgV0lORUQzRENNUF9GT1JDRV9EV09SRCAgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEQ01QRlVOQzsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFpCVUZGRVJUWVBFIHsKICAgIFdJTkVEM0RaQl9GQUxTRSAgICAgICAgICAgICAgICAgPSAwLAogICAgV0lORUQzRFpCX1RSVUUgICAgICAgICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNEWkJfVVNFVyAgICAgICAgICAgICAgICAgID0gMiwKCiAgICBXSU5FRDNEWkJfRk9SQ0VfRFdPUkQgICAgICAgICAgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RaQlVGRkVSVFlQRTsKCnR5cGVkZWYgZW51bSBfV0lORUQzREZPR01PREUgewogICAgV0lORUQzREZPR19OT05FICAgICAgICAgICAgICAgICA9IDAsCiAgICBXSU5FRDNERk9HX0VYUCAgICAgICAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RGT0dfRVhQMiAgICAgICAgICAgICAgICAgPSAyLAogICAgV0lORUQzREZPR19MSU5FQVIgICAgICAgICAgICAgICA9IDMsCgogICAgV0lORUQzREZPR19GT1JDRV9EV09SRCAgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNERk9HTU9ERTsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFNIQURFTU9ERSB7CiAgICBXSU5FRDNEU0hBREVfRkxBVCAgICAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RTSEFERV9HT1VSQVVEICAgICAgICAgICAgPSAyLAogICAgV0lORUQzRFNIQURFX1BIT05HICAgICAgICAgICAgICA9IDMsCgogICAgV0lORUQzRFNIQURFX0ZPUkNFX0RXT1JEICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEU0hBREVNT0RFOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNERklMTE1PREUgewogICAgV0lORUQzREZJTExfUE9JTlQgICAgICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNERklMTF9XSVJFRlJBTUUgICAgICAgICAgID0gMiwKICAgIFdJTkVEM0RGSUxMX1NPTElEICAgICAgICAgICAgICAgPSAzLAoKICAgIFdJTkVEM0RGSUxMX0ZPUkNFX0RXT1JEICAgICAgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzREZJTExNT0RFOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEQ1VMTCB7CiAgICBXSU5FRDNEQ1VMTF9OT05FICAgICAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RDVUxMX0NXICAgICAgICAgICAgICAgICAgPSAyLAogICAgV0lORUQzRENVTExfQ0NXICAgICAgICAgICAgICAgICA9IDMsCgogICAgV0lORUQzRENVTExfRk9SQ0VfRFdPUkQgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEQ1VMTDsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFNURU5DSUxPUCB7CiAgICBXSU5FRDNEU1RFTkNJTE9QX0tFRVAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RTVEVOQ0lMT1BfWkVSTyAgICAgICAgICAgPSAyLAogICAgV0lORUQzRFNURU5DSUxPUF9SRVBMQUNFICAgICAgICA9IDMsCiAgICBXSU5FRDNEU1RFTkNJTE9QX0lOQ1JTQVQgICAgICAgID0gNCwKICAgIFdJTkVEM0RTVEVOQ0lMT1BfREVDUlNBVCAgICAgICAgPSA1LAogICAgV0lORUQzRFNURU5DSUxPUF9JTlZFUlQgICAgICAgICA9IDYsCiAgICBXSU5FRDNEU1RFTkNJTE9QX0lOQ1IgICAgICAgICAgID0gNywKICAgIFdJTkVEM0RTVEVOQ0lMT1BfREVDUiAgICAgICAgICAgPSA4LAoKICAgIFdJTkVEM0RTVEVOQ0lMT1BfRk9SQ0VfRFdPUkQgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzRFNURU5DSUxPUDsKCnR5cGVkZWYgZW51bSBfV0lORUQzRE1BVEVSSUFMQ09MT1JTT1VSQ0UgewogICAgV0lORUQzRE1DU19NQVRFUklBTCAgICAgICAgID0gMCwKICAgIFdJTkVEM0RNQ1NfQ09MT1IxICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNETUNTX0NPTE9SMiAgICAgICAgICAgPSAyLAoKICAgIFdJTkVEM0RNQ1NfRk9SQ0VfRFdPUkQgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNETUFURVJJQUxDT0xPUlNPVVJDRTsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFBBVENIRURHRVNUWUxFIHsKICAgV0lORUQzRFBBVENIRURHRV9ESVNDUkVURSAgICA9IDAsCiAgIFdJTkVEM0RQQVRDSEVER0VfQ09OVElOVU9VUyAgPSAxLAoKICAgV0lORUQzRFBBVENIRURHRV9GT1JDRV9EV09SRCA9IDB4N2ZmZmZmZmYsCn0gV0lORUQzRFBBVENIRURHRVNUWUxFOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RESVNQTEFZTU9ERSB7CiAgICBVSU5UICAgICAgICAgICAgV2lkdGg7CiAgICBVSU5UICAgICAgICAgICAgSGVpZ2h0OwogICAgVUlOVCAgICAgICAgICAgIFJlZnJlc2hSYXRlOwogICAgV0lORUQzREZPUk1BVCAgIEZvcm1hdDsKfSBXSU5FRDNERElTUExBWU1PREU7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RCQUNLQlVGRkVSX1RZUEUgewogICAgV0lORUQzREJBQ0tCVUZGRVJfVFlQRV9NT05PICAgICAgICAgPSAwLAogICAgV0lORUQzREJBQ0tCVUZGRVJfVFlQRV9MRUZUICAgICAgICAgPSAxLAogICAgV0lORUQzREJBQ0tCVUZGRVJfVFlQRV9SSUdIVCAgICAgICAgPSAyLAoKICAgIFdJTkVEM0RCQUNLQlVGRkVSX1RZUEVfRk9SQ0VfRFdPUkQgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RCQUNLQlVGRkVSX1RZUEU7CgojZGVmaW5lIFdJTkVEM0RBREFQVEVSX0RFRkFVTFQgICAgICAgICAgMAojZGVmaW5lIFdJTkVEM0RFTlVNX05PX1dIUUxfTEVWRUwgICAgICAgMgojZGVmaW5lIFdJTkVEM0RQUkVTRU5UX0JBQ0tfQlVGRkVSX01BWCAgMwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEU1dBUEVGRkVDVCB7CiAgICBXSU5FRDNEU1dBUEVGRkVDVF9ESVNDQVJEICAgICAgICAgPSAxLAogICAgV0lORUQzRFNXQVBFRkZFQ1RfRkxJUCAgICAgICAgICAgID0gMiwKICAgIFdJTkVEM0RTV0FQRUZGRUNUX0NPUFkgICAgICAgICAgICA9IDMsCiAgICBXSU5FRDNEU1dBUEVGRkVDVF9DT1BZX1ZTWU5DICAgICAgPSA0LAogICAgV0lORUQzRFNXQVBFRkZFQ1RfRk9SQ0VfRFdPUkQgICAgID0gMHhGRkZGRkZGRgp9IFdJTkVEM0RTV0FQRUZGRUNUOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEU0FNUExFUlNUQVRFVFlQRSB7CiAgICBXSU5FRDNEU0FNUF9BRERSRVNTVSAgICAgICA9IDEsCiAgICBXSU5FRDNEU0FNUF9BRERSRVNTViAgICAgICA9IDIsCiAgICBXSU5FRDNEU0FNUF9BRERSRVNTVyAgICAgICA9IDMsCiAgICBXSU5FRDNEU0FNUF9CT1JERVJDT0xPUiAgICA9IDQsCiAgICBXSU5FRDNEU0FNUF9NQUdGSUxURVIgICAgICA9IDUsCiAgICBXSU5FRDNEU0FNUF9NSU5GSUxURVIgICAgICA9IDYsCiAgICBXSU5FRDNEU0FNUF9NSVBGSUxURVIgICAgICA9IDcsCiAgICBXSU5FRDNEU0FNUF9NSVBNQVBMT0RCSUFTICA9IDgsCiAgICBXSU5FRDNEU0FNUF9NQVhNSVBMRVZFTCAgICA9IDksCiAgICBXSU5FRDNEU0FNUF9NQVhBTklTT1RST1BZICA9IDEwLAogICAgV0lORUQzRFNBTVBfU1JHQlRFWFRVUkUgICAgPSAxMSwKICAgIFdJTkVEM0RTQU1QX0VMRU1FTlRJTkRFWCAgID0gMTIsCiAgICBXSU5FRDNEU0FNUF9ETUFQT0ZGU0VUICAgICA9IDEzLAoKICAgIFdJTkVEM0RTQU1QX0ZPUkNFX0RXT1JEICAgPSAweDdmZmZmZmZmLAp9IFdJTkVEM0RTQU1QTEVSU1RBVEVUWVBFOwojZGVmaW5lIFdJTkVEM0RfSElHSEVTVF9TQU1QTEVSX1NUQVRFIFdJTkVEM0RTQU1QX0RNQVBPRkZTRVQKCnR5cGVkZWYgZW51bSBfV0lORUQzRE1VTFRJU0FNUExFX1RZUEUgewogICAgV0lORUQzRE1VTFRJU0FNUExFX05PTkUgICAgICAgICAgPSAgMCwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV9OT05NQVNLQUJMRSAgID0gIDEsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfMl9TQU1QTEVTICAgICA9ICAyLAogICAgV0lORUQzRE1VTFRJU0FNUExFXzNfU0FNUExFUyAgICAgPSAgMywKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV80X1NBTVBMRVMgICAgID0gIDQsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfNV9TQU1QTEVTICAgICA9ICA1LAogICAgV0lORUQzRE1VTFRJU0FNUExFXzZfU0FNUExFUyAgICAgPSAgNiwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV83X1NBTVBMRVMgICAgID0gIDcsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfOF9TQU1QTEVTICAgICA9ICA4LAogICAgV0lORUQzRE1VTFRJU0FNUExFXzlfU0FNUExFUyAgICAgPSAgOSwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV8xMF9TQU1QTEVTICAgID0gMTAsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfMTFfU0FNUExFUyAgICA9IDExLAogICAgV0lORUQzRE1VTFRJU0FNUExFXzEyX1NBTVBMRVMgICAgPSAxMiwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV8xM19TQU1QTEVTICAgID0gMTMsCiAgICBXSU5FRDNETVVMVElTQU1QTEVfMTRfU0FNUExFUyAgICA9IDE0LAogICAgV0lORUQzRE1VTFRJU0FNUExFXzE1X1NBTVBMRVMgICAgPSAxNSwKICAgIFdJTkVEM0RNVUxUSVNBTVBMRV8xNl9TQU1QTEVTICAgID0gMTYsCgogICAgV0lORUQzRE1VTFRJU0FNUExFX0ZPUkNFX0RXT1JEICAgPSAweGZmZmZmZmZmCn0gV0lORUQzRE1VTFRJU0FNUExFX1RZUEU7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RURVhUVVJFU1RBR0VTVEFURVRZUEUgewogICAgV0lORUQzRFRTU19DT0xPUk9QICAgICAgICAgICAgICAgPSAgMSwKICAgIFdJTkVEM0RUU1NfQ09MT1JBUkcxICAgICAgICAgICAgID0gIDIsCiAgICBXSU5FRDNEVFNTX0NPTE9SQVJHMiAgICAgICAgICAgICA9ICAzLAogICAgV0lORUQzRFRTU19BTFBIQU9QICAgICAgICAgICAgICAgPSAgNCwKICAgIFdJTkVEM0RUU1NfQUxQSEFBUkcxICAgICAgICAgICAgID0gIDUsCiAgICBXSU5FRDNEVFNTX0FMUEhBQVJHMiAgICAgICAgICAgICA9ICA2LAogICAgV0lORUQzRFRTU19CVU1QRU5WTUFUMDAgICAgICAgICAgPSAgNywKICAgIFdJTkVEM0RUU1NfQlVNUEVOVk1BVDAxICAgICAgICAgID0gIDgsCiAgICBXSU5FRDNEVFNTX0JVTVBFTlZNQVQxMCAgICAgICAgICA9ICA5LAogICAgV0lORUQzRFRTU19CVU1QRU5WTUFUMTEgICAgICAgICAgPSAxMCwKICAgIFdJTkVEM0RUU1NfVEVYQ09PUkRJTkRFWCAgICAgICAgID0gMTEsCiAgICBXSU5FRDNEVFNTX0FERFJFU1MgICAgICAgICAgICAgICA9IDEyLAogICAgV0lORUQzRFRTU19BRERSRVNTVSAgICAgICAgICAgICAgPSAxMywKICAgIFdJTkVEM0RUU1NfQUREUkVTU1YgICAgICAgICAgICAgID0gMTQsCiAgICBXSU5FRDNEVFNTX0JPUkRFUkNPTE9SICAgICAgICAgICA9IDE1LAogICAgV0lORUQzRFRTU19NQUdGSUxURVIgICAgICAgICAgICAgPSAxNiwKICAgIFdJTkVEM0RUU1NfTUlORklMVEVSICAgICAgICAgICAgID0gMTcsCiAgICBXSU5FRDNEVFNTX01JUEZJTFRFUiAgICAgICAgICAgICA9IDE4LAogICAgV0lORUQzRFRTU19NSVBNQVBMT0RCSUFTICAgICAgICAgPSAxOSwKICAgIFdJTkVEM0RUU1NfTUFYTUlQTEVWRUwgICAgICAgICAgID0gMjAsCiAgICBXSU5FRDNEVFNTX01BWEFOSVNPVFJPUFkgICAgICAgICA9IDIxLAogICAgV0lORUQzRFRTU19CVU1QRU5WTFNDQUxFICAgICAgICAgPSAyMiwKICAgIFdJTkVEM0RUU1NfQlVNUEVOVkxPRkZTRVQgICAgICAgID0gMjMsCiAgICBXSU5FRDNEVFNTX1RFWFRVUkVUUkFOU0ZPUk1GTEFHUyA9IDI0LAogICAgV0lORUQzRFRTU19BRERSRVNTVyAgICAgICAgICAgICAgPSAyNSwKICAgIFdJTkVEM0RUU1NfQ09MT1JBUkcwICAgICAgICAgICAgID0gMjYsCiAgICBXSU5FRDNEVFNTX0FMUEhBQVJHMCAgICAgICAgICAgICA9IDI3LAogICAgV0lORUQzRFRTU19SRVNVTFRBUkcgICAgICAgICAgICAgPSAyOCwKICAgIFdJTkVEM0RUU1NfQ09OU1RBTlQgICAgICAgICAgICAgID0gMzIsCgogICAgV0lORUQzRFRTU19GT1JDRV9EV09SRCAgICAgICAgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzRFRFWFRVUkVTVEFHRVNUQVRFVFlQRTsKCiNkZWZpbmUgV0lORUQzRFRTU19UQ0lfUEFTU1RIUlUgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAKI2RlZmluZSBXSU5FRDNEVFNTX1RDSV9DQU1FUkFTUEFDRU5PUk1BTCAgICAgICAgICAgICAgMHgxMDAwMAojZGVmaW5lIFdJTkVEM0RUU1NfVENJX0NBTUVSQVNQQUNFUE9TSVRJT04gICAgICAgICAgICAweDIwMDAwCiNkZWZpbmUgV0lORUQzRFRTU19UQ0lfQ0FNRVJBU1BBQ0VSRUZMRUNUSU9OVkVDVE9SICAgIDB4MzAwMDAKI2RlZmluZSBXSU5FRDNEVFNTX1RDSV9TUEhFUkVNQVAgICAgICAgICAgICAgICAgICAgICAgMHg0MDAwMAoKI2RlZmluZSBXSU5FRDNEX0hJR0hFU1RfVEVYVFVSRV9TVEFURSBXSU5FRDNEVFNTX0NPTlNUQU5UCgp0eXBlZGVmIGVudW0gX1dJTkVEM0RURVhUVVJFVFJBTlNGT1JNRkxBR1MgewogICAgV0lORUQzRFRURkZfRElTQUJMRSAgICAgICAgID0gICAwLAogICAgV0lORUQzRFRURkZfQ09VTlQxICAgICAgICAgID0gICAxLAogICAgV0lORUQzRFRURkZfQ09VTlQyICAgICAgICAgID0gICAyLAogICAgV0lORUQzRFRURkZfQ09VTlQzICAgICAgICAgID0gICAzLAogICAgV0lORUQzRFRURkZfQ09VTlQ0ICAgICAgICAgID0gICA0LAogICAgV0lORUQzRFRURkZfUFJPSkVDVEVEICAgICAgID0gMjU2LAoKICAgIFdJTkVEM0RUVEZGX0ZPUkNFX0RXT1JEICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEVEVYVFVSRVRSQU5TRk9STUZMQUdTOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEVEVYVFVSRU9QIHsKICAgIFdJTkVEM0RUT1BfRElTQUJMRSAgICAgICAgICAgICAgICAgICA9ICAxLAogICAgV0lORUQzRFRPUF9TRUxFQ1RBUkcxICAgICAgICAgICAgICAgID0gIDIsCiAgICBXSU5FRDNEVE9QX1NFTEVDVEFSRzIgICAgICAgICAgICAgICAgPSAgMywKICAgIFdJTkVEM0RUT1BfTU9EVUxBVEUgICAgICAgICAgICAgICAgICA9ICA0LAogICAgV0lORUQzRFRPUF9NT0RVTEFURTJYICAgICAgICAgICAgICAgID0gIDUsCiAgICBXSU5FRDNEVE9QX01PRFVMQVRFNFggICAgICAgICAgICAgICAgPSAgNiwKICAgIFdJTkVEM0RUT1BfQUREICAgICAgICAgICAgICAgICAgICAgICA9ICA3LAogICAgV0lORUQzRFRPUF9BRERTSUdORUQgICAgICAgICAgICAgICAgID0gIDgsCiAgICBXSU5FRDNEVE9QX0FERFNJR05FRDJYICAgICAgICAgICAgICAgPSAgOSwKICAgIFdJTkVEM0RUT1BfU1VCVFJBQ1QgICAgICAgICAgICAgICAgICA9IDEwLAogICAgV0lORUQzRFRPUF9BRERTTU9PVEggICAgICAgICAgICAgICAgID0gMTEsCiAgICBXSU5FRDNEVE9QX0JMRU5ERElGRlVTRUFMUEhBICAgICAgICAgPSAxMiwKICAgIFdJTkVEM0RUT1BfQkxFTkRURVhUVVJFQUxQSEEgICAgICAgICA9IDEzLAogICAgV0lORUQzRFRPUF9CTEVOREZBQ1RPUkFMUEhBICAgICAgICAgID0gMTQsCiAgICBXSU5FRDNEVE9QX0JMRU5EVEVYVFVSRUFMUEhBUE0gICAgICAgPSAxNSwKICAgIFdJTkVEM0RUT1BfQkxFTkRDVVJSRU5UQUxQSEEgICAgICAgICA9IDE2LAogICAgV0lORUQzRFRPUF9QUkVNT0RVTEFURSAgICAgICAgICAgICAgID0gMTcsCiAgICBXSU5FRDNEVE9QX01PRFVMQVRFQUxQSEFfQUREQ09MT1IgICAgPSAxOCwKICAgIFdJTkVEM0RUT1BfTU9EVUxBVEVDT0xPUl9BRERBTFBIQSAgICA9IDE5LAogICAgV0lORUQzRFRPUF9NT0RVTEFURUlOVkFMUEhBX0FERENPTE9SID0gMjAsCiAgICBXSU5FRDNEVE9QX01PRFVMQVRFSU5WQ09MT1JfQUREQUxQSEEgPSAyMSwKICAgIFdJTkVEM0RUT1BfQlVNUEVOVk1BUCAgICAgICAgICAgICAgICA9IDIyLAogICAgV0lORUQzRFRPUF9CVU1QRU5WTUFQTFVNSU5BTkNFICAgICAgID0gMjMsCiAgICBXSU5FRDNEVE9QX0RPVFBST0RVQ1QzICAgICAgICAgICAgICAgPSAyNCwKICAgIFdJTkVEM0RUT1BfTVVMVElQTFlBREQgICAgICAgICAgICAgICA9IDI1LAogICAgV0lORUQzRFRPUF9MRVJQICAgICAgICAgICAgICAgICAgICAgID0gMjYsCgogICAgV0lORUQzRFRPUF9GT1JDRV9EV09SRCAgICAgICAgICAgICAgID0gMHg3ZmZmZmZmZiwKfSBXSU5FRDNEVEVYVFVSRU9QOwoKI2RlZmluZSBXSU5FRDNEVEFfU0VMRUNUTUFTSyAgICAgICAgMHgwMDAwMDAwZgojZGVmaW5lIFdJTkVEM0RUQV9ESUZGVVNFICAgICAgICAgICAweDAwMDAwMDAwCiNkZWZpbmUgV0lORUQzRFRBX0NVUlJFTlQgICAgICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBXSU5FRDNEVEFfVEVYVFVSRSAgICAgICAgICAgMHgwMDAwMDAwMgojZGVmaW5lIFdJTkVEM0RUQV9URkFDVE9SICAgICAgICAgICAweDAwMDAwMDAzCiNkZWZpbmUgV0lORUQzRFRBX1NQRUNVTEFSICAgICAgICAgIDB4MDAwMDAwMDQKI2RlZmluZSBXSU5FRDNEVEFfVEVNUCAgICAgICAgICAgICAgMHgwMDAwMDAwNQojZGVmaW5lIFdJTkVEM0RUQV9DT05TVEFOVCAgICAgICAgICAweDAwMDAwMDA2CiNkZWZpbmUgV0lORUQzRFRBX0NPTVBMRU1FTlQgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBXSU5FRDNEVEFfQUxQSEFSRVBMSUNBVEUgICAgMHgwMDAwMDAyMAoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEVEVYVFVSRUFERFJFU1MgewogICAgV0lORUQzRFRBRERSRVNTX1dSQVAgICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNEVEFERFJFU1NfTUlSUk9SICAgICAgICAgID0gMiwKICAgIFdJTkVEM0RUQUREUkVTU19DTEFNUCAgICAgICAgICAgPSAzLAogICAgV0lORUQzRFRBRERSRVNTX0JPUkRFUiAgICAgICAgICA9IDQsCiAgICBXSU5FRDNEVEFERFJFU1NfTUlSUk9ST05DRSAgICAgID0gNSwKCiAgICBXSU5FRDNEVEFERFJFU1NfRk9SQ0VfRFdPUkQgICAgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RURVhUVVJFQUREUkVTUzsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFRSQU5TRk9STVNUQVRFVFlQRSB7CiAgICBXSU5FRDNEVFNfVklFVyAgICAgICAgICAgID0gIDIsCiAgICBXSU5FRDNEVFNfUFJPSkVDVElPTiAgICAgID0gIDMsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTAgICAgICAgID0gMTYsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTEgICAgICAgID0gMTcsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTIgICAgICAgID0gMTgsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTMgICAgICAgID0gMTksCiAgICBXSU5FRDNEVFNfVEVYVFVSRTQgICAgICAgID0gMjAsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTUgICAgICAgID0gMjEsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTYgICAgICAgID0gMjIsCiAgICBXSU5FRDNEVFNfVEVYVFVSRTcgICAgICAgID0gMjMsCgogICAgV0lORUQzRFRTX0ZPUkNFX0RXT1JEICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEVFJBTlNGT1JNU1RBVEVUWVBFOwoKI2RlZmluZSBXSU5FRDNEVFNfV09STEQgIFdJTkVEM0RUU19XT1JMRE1BVFJJWCgwKQojZGVmaW5lIFdJTkVEM0RUU19XT1JMRDEgV0lORUQzRFRTX1dPUkxETUFUUklYKDEpCiNkZWZpbmUgV0lORUQzRFRTX1dPUkxEMiBXSU5FRDNEVFNfV09STERNQVRSSVgoMikKI2RlZmluZSBXSU5FRDNEVFNfV09STEQzIFdJTkVEM0RUU19XT1JMRE1BVFJJWCgzKQojZGVmaW5lIFdJTkVEM0RUU19XT1JMRE1BVFJJWChpbmRleCkgKFdJTkVEM0RUUkFOU0ZPUk1TVEFURVRZUEUpKGluZGV4ICsgMjU2KQoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEQkFTSVNUWVBFIHsKICAgV0lORUQzREJBU0lTX0JFWklFUiAgICAgICAgPSAwLAogICBXSU5FRDNEQkFTSVNfQlNQTElORSAgICAgICA9IDEsCiAgIFdJTkVEM0RCQVNJU19JTlRFUlBPTEFURSAgID0gMiwKCiAgIFdJTkVEM0RCQVNJU19GT1JDRV9EV09SRCAgID0gMHg3ZmZmZmZmZgp9IFdJTkVEM0RCQVNJU1RZUEU7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RDVUJFTUFQX0ZBQ0VTIHsKICAgIFdJTkVEM0RDVUJFTUFQX0ZBQ0VfUE9TSVRJVkVfWCAgICAgPSAwLAogICAgV0lORUQzRENVQkVNQVBfRkFDRV9ORUdBVElWRV9YICAgICA9IDEsCiAgICBXSU5FRDNEQ1VCRU1BUF9GQUNFX1BPU0lUSVZFX1kgICAgID0gMiwKICAgIFdJTkVEM0RDVUJFTUFQX0ZBQ0VfTkVHQVRJVkVfWSAgICAgPSAzLAogICAgV0lORUQzRENVQkVNQVBfRkFDRV9QT1NJVElWRV9aICAgICA9IDQsCiAgICBXSU5FRDNEQ1VCRU1BUF9GQUNFX05FR0FUSVZFX1ogICAgID0gNSwKCiAgICBXSU5FRDNEQ1VCRU1BUF9GQUNFX0ZPUkNFX0RXT1JEICAgID0gMHhmZmZmZmZmZgp9IFdJTkVEM0RDVUJFTUFQX0ZBQ0VTOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEVEVYVFVSRUZJTFRFUlRZUEUgewogICAgV0lORUQzRFRFWEZfTk9ORSAgICAgICAgICAgID0gMCwKICAgIFdJTkVEM0RURVhGX1BPSU5UICAgICAgICAgICA9IDEsCiAgICBXSU5FRDNEVEVYRl9MSU5FQVIgICAgICAgICAgPSAyLAogICAgV0lORUQzRFRFWEZfQU5JU09UUk9QSUMgICAgID0gMywKICAgIFdJTkVEM0RURVhGX0ZMQVRDVUJJQyAgICAgICA9IDQsCiAgICBXSU5FRDNEVEVYRl9HQVVTU0lBTkNVQklDICAgPSA1LAogICAgV0lORUQzRFRFWEZfUFlSQU1JREFMUVVBRCAgID0gNiwKICAgIFdJTkVEM0RURVhGX0dBVVNTSUFOUVVBRCAgICA9IDcsCiAgICBXSU5FRDNEVEVYRl9GT1JDRV9EV09SRCAgICAgPSAweDdmZmZmZmZmCn0gV0lORUQzRFRFWFRVUkVGSUxURVJUWVBFOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVERDNEUkVDVFBBVENIX0lORk8gewogICAgVUlOVCAgICAgICAgICAgICAgICBTdGFydFZlcnRleE9mZnNldFdpZHRoOwogICAgVUlOVCAgICAgICAgICAgICAgICBTdGFydFZlcnRleE9mZnNldEhlaWdodDsKICAgIFVJTlQgICAgICAgICAgICAgICAgV2lkdGg7CiAgICBVSU5UICAgICAgICAgICAgICAgIEhlaWdodDsKICAgIFVJTlQgICAgICAgICAgICAgICAgU3RyaWRlOwogICAgV0lORUQzREJBU0lTVFlQRSAgICBCYXNpczsKICAgIFdJTkVEM0RERUdSRUVUWVBFICAgRGVncmVlOwp9IFdJTkVEM0RSRUNUUEFUQ0hfSU5GTzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEVFJJUEFUQ0hfSU5GTyB7CiAgICBVSU5UICAgICAgICAgICAgICAgIFN0YXJ0VmVydGV4T2Zmc2V0OwogICAgVUlOVCAgICAgICAgICAgICAgICBOdW1WZXJ0aWNlczsKICAgIFdJTkVEM0RCQVNJU1RZUEUgICAgQmFzaXM7CiAgICBXSU5FRDNEREVHUkVFVFlQRSAgIERlZ3JlZTsKfSBXSU5FRDNEVFJJUEFUQ0hfSU5GTzsKCgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzREFEQVBURVJfSURFTlRJRklFUiB7CiAgICBjaGFyICAgICAgICAgICAqRHJpdmVyOwogICAgY2hhciAgICAgICAgICAgKkRlc2NyaXB0aW9uOwogICAgY2hhciAgICAgICAgICAgKkRldmljZU5hbWU7CiAgICBMQVJHRV9JTlRFR0VSICAqRHJpdmVyVmVyc2lvbjsgCiAgICBEV09SRCAgICAgICAgICAqVmVuZG9ySWQ7CiAgICBEV09SRCAgICAgICAgICAqRGV2aWNlSWQ7CiAgICBEV09SRCAgICAgICAgICAqU3ViU3lzSWQ7CiAgICBEV09SRCAgICAgICAgICAqUmV2aXNpb247CiAgICBHVUlEICAgICAgICAgICAqRGV2aWNlSWRlbnRpZmllcjsKICAgIERXT1JEICAgICAgICAgICpXSFFMTGV2ZWw7Cn0gV0lORUQzREFEQVBURVJfSURFTlRJRklFUjsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEUFJFU0VOVF9QQVJBTUVURVJTIHsKICAgIFVJTlQgICAgICAgICAgICAgICAgICAgIEJhY2tCdWZmZXJXaWR0aDsKICAgIFVJTlQgICAgICAgICAgICAgICAgICAgIEJhY2tCdWZmZXJIZWlnaHQ7CiAgICBXSU5FRDNERk9STUFUICAgICAgICAgICBCYWNrQnVmZmVyRm9ybWF0OwogICAgVUlOVCAgICAgICAgICAgICAgICAgICAgQmFja0J1ZmZlckNvdW50OwogICAgV0lORUQzRE1VTFRJU0FNUExFX1RZUEUgTXVsdGlTYW1wbGVUeXBlOwogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgTXVsdGlTYW1wbGVRdWFsaXR5OwogICAgV0lORUQzRFNXQVBFRkZFQ1QgICAgICAgU3dhcEVmZmVjdDsKICAgIEhXTkQgICAgICAgICAgICAgICAgICAgIGhEZXZpY2VXaW5kb3c7CiAgICBCT09MICAgICAgICAgICAgICAgICAgICBXaW5kb3dlZDsKICAgIEJPT0wgICAgICAgICAgICAgICAgICAgIEVuYWJsZUF1dG9EZXB0aFN0ZW5jaWw7CiAgICBXSU5FRDNERk9STUFUICAgICAgICAgICBBdXRvRGVwdGhTdGVuY2lsRm9ybWF0OwogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgRmxhZ3M7CiAgICBVSU5UICAgICAgICAgICAgICAgICAgICBGdWxsU2NyZWVuX1JlZnJlc2hSYXRlSW5IejsKICAgIFVJTlQgICAgICAgICAgICAgICAgICAgIFByZXNlbnRhdGlvbkludGVydmFsOwp9IFdJTkVEM0RQUkVTRU5UX1BBUkFNRVRFUlM7Cgp0eXBlZGVmIGVudW0gX1dJTkVEM0RSRVNPVVJDRVRZUEUgewogICAgV0lORUQzRFJUWVBFX1NVUkZBQ0UgICAgICAgICAgICAgICAgPSAgMSwKICAgIFdJTkVEM0RSVFlQRV9WT0xVTUUgICAgICAgICAgICAgICAgID0gIDIsCiAgICBXSU5FRDNEUlRZUEVfVEVYVFVSRSAgICAgICAgICAgICAgICA9ICAzLAogICAgV0lORUQzRFJUWVBFX1ZPTFVNRVRFWFRVUkUgICAgICAgICAgPSAgNCwKICAgIFdJTkVEM0RSVFlQRV9DVUJFVEVYVFVSRSAgICAgICAgICAgID0gIDUsCiAgICBXSU5FRDNEUlRZUEVfVkVSVEVYQlVGRkVSICAgICAgICAgICA9ICA2LAogICAgV0lORUQzRFJUWVBFX0lOREVYQlVGRkVSICAgICAgICAgICAgPSAgNywKCiAgICBXSU5FRDNEUlRZUEVfRk9SQ0VfRFdPUkQgICAgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEUkVTT1VSQ0VUWVBFOwoKI2RlZmluZSBXSU5FRDNEUlRZUEVDT1VOVCAoV0lORUQzRFJUWVBFX0lOREVYQlVGRkVSKzEpCgp0eXBlZGVmIGVudW0gX1dJTkVEM0RQT09MIHsKICAgIFdJTkVEM0RQT09MX0RFRkFVTFQgICAgICAgICAgICAgICAgID0gMCwKICAgIFdJTkVEM0RQT09MX01BTkFHRUQgICAgICAgICAgICAgICAgID0gMSwKICAgIFdJTkVEM0RQT09MX1NZU1RFTU1FTSAgICAgICAgICAgICAgID0gMiwKICAgIFdJTkVEM0RQT09MX1NDUkFUQ0ggICAgICAgICAgICAgICAgID0gMywKCiAgICBXSU5FRDNEUE9PTF9GT1JDRV9EV09SRCAgICAgICAgICAgICA9IDB4N2ZmZmZmZmYKfSBXSU5FRDNEUE9PTDsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEU1VSRkFDRV9ERVNDCnsKICAgIFdJTkVEM0RGT1JNQVQgICAgICAgICAgICpGb3JtYXQ7CiAgICBXSU5FRDNEUkVTT1VSQ0VUWVBFICAgICAqVHlwZTsKICAgIERXT1JEICAgICAgICAgICAgICAgICAgICpVc2FnZTsKICAgIFdJTkVEM0RQT09MICAgICAgICAgICAgICpQb29sOwogICAgVUlOVCAgICAgICAgICAgICAgICAgICAgKlNpemU7CgogICAgV0lORUQzRE1VTFRJU0FNUExFX1RZUEUgKk11bHRpU2FtcGxlVHlwZTsKICAgIERXT1JEICAgICAgICAgICAgICAgICAgICpNdWx0aVNhbXBsZVF1YWxpdHk7CiAgICBVSU5UICAgICAgICAgICAgICAgICAgICAqV2lkdGg7CiAgICBVSU5UICAgICAgICAgICAgICAgICAgICAqSGVpZ2h0Owp9IFdJTkVEM0RTVVJGQUNFX0RFU0M7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRFZPTFVNRV9ERVNDCnsKICAgIFdJTkVEM0RGT1JNQVQgICAgICAgKkZvcm1hdDsKICAgIFdJTkVEM0RSRVNPVVJDRVRZUEUgKlR5cGU7CiAgICBEV09SRCAgICAgICAgICAgICAgICpVc2FnZTsKICAgIFdJTkVEM0RQT09MICAgICAgICAgKlBvb2w7CiAgICBVSU5UICAgICAgICAgICAgICAgICpTaXplOwoKICAgIFVJTlQgICAgICAgICAgICAgICAgKldpZHRoOwogICAgVUlOVCAgICAgICAgICAgICAgICAqSGVpZ2h0OwogICAgVUlOVCAgICAgICAgICAgICAgICAqRGVwdGg7Cn0gV0lORUQzRFZPTFVNRV9ERVNDOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RDTElQU1RBVFVTIHsKICAgRFdPUkQgQ2xpcFVuaW9uOwogICBEV09SRCBDbGlwSW50ZXJzZWN0aW9uOwp9IFdJTkVEM0RDTElQU1RBVFVTOwoKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEVkVSVEVYRUxFTUVOVCB7CiAgV09SRCAgICBTdHJlYW07CiAgV09SRCAgICBPZmZzZXQ7CiAgQllURSAgICBUeXBlOwogIEJZVEUgICAgTWV0aG9kOwogIEJZVEUgICAgVXNhZ2U7CiAgQllURSAgICBVc2FnZUluZGV4OwogIGludCAgICAgUmVnOyAvKiBEaXJlY3RYIDggKi8KfSBXSU5FRDNEVkVSVEVYRUxFTUVOVCwgKkxQV0lORUQzRFZFUlRFWEVMRU1FTlQ7CgoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEUVVFUllUWVBFIHsKICAgIFdJTkVEM0RRVUVSWVRZUEVfVkNBQ0hFICAgICAgICAgICAgID0gNCwKICAgIFdJTkVEM0RRVUVSWVRZUEVfUkVTT1VSQ0VNQU5BR0VSICAgID0gNSwKICAgIFdJTkVEM0RRVUVSWVRZUEVfVkVSVEVYU1RBVFMgICAgICAgID0gNiwKICAgIFdJTkVEM0RRVUVSWVRZUEVfRVZFTlQgICAgICAgICAgICAgID0gOCwKICAgIFdJTkVEM0RRVUVSWVRZUEVfT0NDTFVTSU9OICAgICAgICAgID0gOSwKICAgIFdJTkVEM0RRVUVSWVRZUEVfVElNRVNUQU1QICAgICAgICAgID0gMTAsCiAgICBXSU5FRDNEUVVFUllUWVBFX1RJTUVTVEFNUERJU0pPSU5UICA9IDExLAogICAgV0lORUQzRFFVRVJZVFlQRV9USU1FU1RBTVBGUkVRICAgICAgPSAxMiwKICAgIFdJTkVEM0RRVUVSWVRZUEVfUElQRUxJTkVUSU1JTkdTICAgID0gMTMsCiAgICBXSU5FRDNEUVVFUllUWVBFX0lOVEVSRkFDRVRJTUlOR1MgICA9IDE0LAogICAgV0lORUQzRFFVRVJZVFlQRV9WRVJURVhUSU1JTkdTICAgICAgPSAxNSwKICAgIFdJTkVEM0RRVUVSWVRZUEVfUElYRUxUSU1JTkdTICAgICAgID0gMTYsCiAgICBXSU5FRDNEUVVFUllUWVBFX0JBTkRXSURUSFRJTUlOR1MgICA9IDE3LAogICAgV0lORUQzRFFVRVJZVFlQRV9DQUNIRVVUSUxJWkFUSU9OICAgPSAxOAp9IFdJTkVEM0RRVUVSWVRZUEU7CgojZGVmaW5lIFdJTkVEM0RJU1NVRV9CRUdJTiAgICgxIDw8IDEpCiNkZWZpbmUgV0lORUQzRElTU1VFX0VORCAgICAgKDEgPDwgMCkKI2RlZmluZSBXSU5FRDNER0VUREFUQV9GTFVTSCAoMSA8PCAwKQoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RERVZJQ0VfQ1JFQVRJT05fUEFSQU1FVEVSUyB7CiAgICBVSU5UICAgICAgICAgICBBZGFwdGVyT3JkaW5hbDsKICAgIFdJTkVEM0RERVZUWVBFIERldmljZVR5cGU7CiAgICBIV05EICAgICAgICAgICBoRm9jdXNXaW5kb3c7CiAgICBEV09SRCAgICAgICAgICBCZWhhdmlvckZsYWdzOwp9IFdJTkVEM0RERVZJQ0VfQ1JFQVRJT05fUEFSQU1FVEVSUzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEREVWSU5GT19CQU5EV0lEVEhUSU1JTkdTIHsKICAgIGZsb2F0ICAgICAgICAgTWF4QmFuZHdpZHRoVXRpbGl6ZWQ7CiAgICBmbG9hdCAgICAgICAgIEZyb250RW5kVXBsb2FkTWVtb3J5VXRpbGl6ZWRQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBWZXJ0ZXhSYXRlVXRpbGl6ZWRQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBUcmlhbmdsZVNldHVwUmF0ZVV0aWxpemVkUGVyY2VudDsKICAgIGZsb2F0ICAgICAgICAgRmlsbFJhdGVVdGlsaXplZFBlcmNlbnQ7Cn0gV0lORUQzRERFVklORk9fQkFORFdJRFRIVElNSU5HUzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEREVWSU5GT19DQUNIRVVUSUxJWkFUSU9OIHsKICAgIGZsb2F0ICAgICAgICAgVGV4dHVyZUNhY2hlSGl0UmF0ZTsKICAgIGZsb2F0ICAgICAgICAgUG9zdFRyYW5zZm9ybVZlcnRleENhY2hlSGl0UmF0ZTsKfSBXSU5FRDNEREVWSU5GT19DQUNIRVVUSUxJWkFUSU9OOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RERVZJTkZPX0lOVEVSRkFDRVRJTUlOR1MgewogICAgZmxvYXQgICAgICAgICBXYWl0aW5nRm9yR1BVVG9Vc2VBcHBsaWNhdGlvblJlc291cmNlVGltZVBlcmNlbnQ7CiAgICBmbG9hdCAgICAgICAgIFdhaXRpbmdGb3JHUFVUb0FjY2VwdE1vcmVDb21tYW5kc1RpbWVQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBXYWl0aW5nRm9yR1BVVG9TdGF5V2l0aGluTGF0ZW5jeVRpbWVQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBXYWl0aW5nRm9yR1BVRXhjbHVzaXZlUmVzb3VyY2VUaW1lUGVyY2VudDsKICAgIGZsb2F0ICAgICAgICAgV2FpdGluZ0ZvckdQVU90aGVyVGltZVBlcmNlbnQ7Cn0gV0lORUQzRERFVklORk9fSU5URVJGQUNFVElNSU5HUzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEREVWSU5GT19QSVBFTElORVRJTUlOR1MgewogICAgZmxvYXQgICAgICAgICBWZXJ0ZXhQcm9jZXNzaW5nVGltZVBlcmNlbnQ7CiAgICBmbG9hdCAgICAgICAgIFBpeGVsUHJvY2Vzc2luZ1RpbWVQZXJjZW50OwogICAgZmxvYXQgICAgICAgICBPdGhlckdQVVByb2Nlc3NpbmdUaW1lUGVyY2VudDsKICAgIGZsb2F0ICAgICAgICAgR1BVSWRsZVRpbWVQZXJjZW50Owp9IFdJTkVEM0RERVZJTkZPX1BJUEVMSU5FVElNSU5HUzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEREVWSU5GT19TVEFHRVRJTUlOR1MgewogICAgZmxvYXQgICAgICAgICBNZW1vcnlQcm9jZXNzaW5nUGVyY2VudDsKICAgIGZsb2F0ICAgICAgICAgQ29tcHV0YXRpb25Qcm9jZXNzaW5nUGVyY2VudDsKfSBXSU5FRDNEREVWSU5GT19TVEFHRVRJTUlOR1M7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRFJBU1RFUl9TVEFUVVMgewogICAgQk9PTCAgICAgICAgICAgIEluVkJsYW5rOwogICAgVUlOVCAgICAgICAgICAgIFNjYW5MaW5lOwp9IFdJTkVEM0RSQVNURVJfU1RBVFVTOwoKCnR5cGVkZWYgc3RydWN0IFdJTkVEM0RSRVNPVVJDRVNUQVRTIHsKICAgIEJPT0wgICAgICAgICAgICAgICAgYlRocmFzaGluZzsKICAgIERXT1JEICAgICAgICAgICAgICAgQXBwcm94Qnl0ZXNEb3dubG9hZGVkOwogICAgRFdPUkQgICAgICAgICAgICAgICBOdW1FdmljdHM7CiAgICBEV09SRCAgICAgICAgICAgICAgIE51bVZpZENyZWF0ZXM7CiAgICBEV09SRCAgICAgICAgICAgICAgIExhc3RQcmk7CiAgICBEV09SRCAgICAgICAgICAgICAgIE51bVVzZWQ7CiAgICBEV09SRCAgICAgICAgICAgICAgIE51bVVzZWRJblZpZE1lbTsKICAgIERXT1JEICAgICAgICAgICAgICAgV29ya2luZ1NldDsKICAgIERXT1JEICAgICAgICAgICAgICAgV29ya2luZ1NldEJ5dGVzOwogICAgRFdPUkQgICAgICAgICAgICAgICBUb3RhbE1hbmFnZWQ7CiAgICBEV09SRCAgICAgICAgICAgICAgIFRvdGFsQnl0ZXM7Cn0gV0lORUQzRFJFU09VUkNFU1RBVFM7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRERFVklORk9fUkVTT1VSQ0VNQU5BR0VSIHsKICAgIFdJTkVEM0RSRVNPVVJDRVNUQVRTIHN0YXRzW1dJTkVEM0RSVFlQRUNPVU5UXTsKfSBXSU5FRDNEREVWSU5GT19SRVNPVVJDRU1BTkFHRVI7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRERFVklORk9fVkVSVEVYU1RBVFMgewogICAgRFdPUkQgTnVtUmVuZGVyZWRUcmlhbmdsZXM7CiAgICBEV09SRCBOdW1FeHRyYUNsaXBwaW5nVHJpYW5nbGVzOwp9IFdJTkVEM0RERVZJTkZPX1ZFUlRFWFNUQVRTOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RMT0NLRURfUkVDVCB7CiAgICBJTlQgICAgICAgICAgICAgICAgIFBpdGNoOwogICAgdm9pZCogICAgICAgICAgICAgICBwQml0czsKfSBXSU5FRDNETE9DS0VEX1JFQ1Q7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRExPQ0tFRF9CT1ggewogICAgSU5UICAgICAgICAgICAgICAgICBSb3dQaXRjaDsKICAgIElOVCAgICAgICAgICAgICAgICAgU2xpY2VQaXRjaDsKICAgIHZvaWQqICAgICAgICAgICAgICAgcEJpdHM7Cn0gV0lORUQzRExPQ0tFRF9CT1g7CgoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RCT1ggewogICAgVUlOVCAgICAgICAgICAgICAgICBMZWZ0OwogICAgVUlOVCAgICAgICAgICAgICAgICBUb3A7CiAgICBVSU5UICAgICAgICAgICAgICAgIFJpZ2h0OwogICAgVUlOVCAgICAgICAgICAgICAgICBCb3R0b207CiAgICBVSU5UICAgICAgICAgICAgICAgIEZyb250OwogICAgVUlOVCAgICAgICAgICAgICAgICBCYWNrOwp9IFdJTkVEM0RCT1g7CgovKlZlcnRleCBjYWNoZSBvcHRpbWl6YXRpb24gaGludHMuKi8KdHlwZWRlZiBzdHJ1Y3QgV0lORUQzRERFVklORk9fVkNBQ0hFIHsKICAgIC8qTXVzdCBiZSBhIDQgY2hhciBjb2RlIEZPVVJDQyAoZS5nLiBDQUNIKSovCiAgICBEV09SRCAgICAgICAgIFBhdHRlcm47IAogICAgLyowIHRvIGdldCB0aGUgbG9uZ2VzdCAgc3RyaXBzLCAxIHZlcnRleCBjYWNoZSovCiAgICBEV09SRCAgICAgICAgIE9wdE1ldGhvZDsgCiAgICAgLypDYWNoZSBzaXplIHRvIHVzZSAob25seSB2YWxpZCBpZiBPcHRNZXRob2Q9PTEpICovCiAgICBEV09SRCAgICAgICAgIENhY2hlU2l6ZTsKICAgIC8qaW50ZXJuYWwgZm9yIGRlY2lkaW5nIHdoZW4gdG8gcmVzdGFydCBzdHJpcHMsIG5vbiB1c2VyIG1vZGlmeWFibGUgKG9ubHkgdmFsaWQgaWYgT3B0TWV0aG9kPT0xKSovCiAgICBEV09SRCAgICAgICAgIE1hZ2ljTnVtYmVyOyAKfSBXSU5FRDNEREVWSU5GT19WQ0FDSEU7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRFZFUlRFWEJVRkZFUl9ERVNDIHsKICAgIFdJTkVEM0RGT1JNQVQgICAgICAgICAgIEZvcm1hdDsKICAgIFdJTkVEM0RSRVNPVVJDRVRZUEUgICAgIFR5cGU7CiAgICBEV09SRCAgICAgICAgICAgICAgICAgICBVc2FnZTsKICAgIFdJTkVEM0RQT09MICAgICAgICAgICAgIFBvb2w7CiAgICBVSU5UICAgICAgICAgICAgICAgICAgICBTaXplOwogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgRlZGOwp9IFdJTkVEM0RWRVJURVhCVUZGRVJfREVTQzsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNESU5ERVhCVUZGRVJfREVTQyB7CiAgICBXSU5FRDNERk9STUFUICAgICAgICAgICBGb3JtYXQ7CiAgICBXSU5FRDNEUkVTT1VSQ0VUWVBFICAgICBUeXBlOwogICAgRFdPUkQgICAgICAgICAgICAgICAgICAgVXNhZ2U7CiAgICBXSU5FRDNEUE9PTCAgICAgICAgICAgICBQb29sOwogICAgVUlOVCAgICAgICAgICAgICAgICAgICAgU2l6ZTsKfSBXSU5FRDNESU5ERVhCVUZGRVJfREVTQzsKCi8qCiAqIFRoZSB3aW5lZDNkY2FwcyBzdHJ1Y3R1cmUKICovCgp0eXBlZGVmIHN0cnVjdCBfV0lORUQzRFZTSEFERVJDQVBTMl8wIHsKICBEV09SRCAgQ2FwczsKICBJTlQgICAgRHluYW1pY0Zsb3dDb250cm9sRGVwdGg7CiAgSU5UICAgIE51bVRlbXBzOwogIElOVCAgICBTdGF0aWNGbG93Q29udHJvbERlcHRoOwp9IFdJTkVEM0RWU0hBREVSQ0FQUzJfMDsKCnR5cGVkZWYgc3RydWN0IF9XSU5FRDNEUFNIQURFUkNBUFMyXzAgewogIERXT1JEICBDYXBzOwogIElOVCAgICBEeW5hbWljRmxvd0NvbnRyb2xEZXB0aDsKICBJTlQgICAgTnVtVGVtcHM7CiAgSU5UICAgIFN0YXRpY0Zsb3dDb250cm9sRGVwdGg7CiAgSU5UICAgIE51bUluc3RydWN0aW9uU2xvdHM7Cn0gV0lORUQzRFBTSEFERVJDQVBTMl8wOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEM0RDQVBTIHsKICBXSU5FRDNEREVWVFlQRSAgICAgIERldmljZVR5cGU7CiAgVUlOVCAgICAgICAgICAgICAgICBBZGFwdGVyT3JkaW5hbDsKCiAgRFdPUkQgICAgICAgICAgICAgICBDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgQ2FwczI7CiAgRFdPUkQgICAgICAgICAgICAgICBDYXBzMzsKICBEV09SRCAgICAgICAgICAgICAgIFByZXNlbnRhdGlvbkludGVydmFsczsKCiAgRFdPUkQgICAgICAgICAgICAgICBDdXJzb3JDYXBzOwoKICBEV09SRCAgICAgICAgICAgICAgIERldkNhcHM7CgogIERXT1JEICAgICAgICAgICAgICAgUHJpbWl0aXZlTWlzY0NhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICBSYXN0ZXJDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgWkNtcENhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICBTcmNCbGVuZENhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICBEZXN0QmxlbmRDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgQWxwaGFDbXBDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgU2hhZGVDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgVGV4dHVyZUNhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICBUZXh0dXJlRmlsdGVyQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgIEN1YmVUZXh0dXJlRmlsdGVyQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgIFZvbHVtZVRleHR1cmVGaWx0ZXJDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgVGV4dHVyZUFkZHJlc3NDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgVm9sdW1lVGV4dHVyZUFkZHJlc3NDYXBzOwoKICBEV09SRCAgICAgICAgICAgICAgIExpbmVDYXBzOwoKICBEV09SRCAgICAgICAgICAgICAgIE1heFRleHR1cmVXaWR0aDsKICBEV09SRCAgICAgICAgICAgICAgIE1heFRleHR1cmVIZWlnaHQ7CiAgRFdPUkQgICAgICAgICAgICAgICBNYXhWb2x1bWVFeHRlbnQ7CgogIERXT1JEICAgICAgICAgICAgICAgTWF4VGV4dHVyZVJlcGVhdDsKICBEV09SRCAgICAgICAgICAgICAgIE1heFRleHR1cmVBc3BlY3RSYXRpbzsKICBEV09SRCAgICAgICAgICAgICAgIE1heEFuaXNvdHJvcHk7CiAgZmxvYXQgICAgICAgICAgICAgICBNYXhWZXJ0ZXhXOwoKICBmbG9hdCAgICAgICAgICAgICAgIEd1YXJkQmFuZExlZnQ7CiAgZmxvYXQgICAgICAgICAgICAgICBHdWFyZEJhbmRUb3A7CiAgZmxvYXQgICAgICAgICAgICAgICBHdWFyZEJhbmRSaWdodDsKICBmbG9hdCAgICAgICAgICAgICAgIEd1YXJkQmFuZEJvdHRvbTsKCiAgZmxvYXQgICAgICAgICAgICAgICBFeHRlbnRzQWRqdXN0OwogIERXT1JEICAgICAgICAgICAgICAgU3RlbmNpbENhcHM7CgogIERXT1JEICAgICAgICAgICAgICAgRlZGQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgIFRleHR1cmVPcENhcHM7CiAgRFdPUkQgICAgICAgICAgICAgICBNYXhUZXh0dXJlQmxlbmRTdGFnZXM7CiAgRFdPUkQgICAgICAgICAgICAgICBNYXhTaW11bHRhbmVvdXNUZXh0dXJlczsKCiAgRFdPUkQgICAgICAgICAgICAgICBWZXJ0ZXhQcm9jZXNzaW5nQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgIE1heEFjdGl2ZUxpZ2h0czsKICBEV09SRCAgICAgICAgICAgICAgIE1heFVzZXJDbGlwUGxhbmVzOwogIERXT1JEICAgICAgICAgICAgICAgTWF4VmVydGV4QmxlbmRNYXRyaWNlczsKICBEV09SRCAgICAgICAgICAgICAgIE1heFZlcnRleEJsZW5kTWF0cml4SW5kZXg7CgogIGZsb2F0ICAgICAgICAgICAgICAgTWF4UG9pbnRTaXplOwoKICBEV09SRCAgICAgICAgICAgICAgIE1heFByaW1pdGl2ZUNvdW50OwogIERXT1JEICAgICAgICAgICAgICAgTWF4VmVydGV4SW5kZXg7CiAgRFdPUkQgICAgICAgICAgICAgICBNYXhTdHJlYW1zOwogIERXT1JEICAgICAgICAgICAgICAgTWF4U3RyZWFtU3RyaWRlOwoKICBEV09SRCAgICAgICAgICAgICAgIFZlcnRleFNoYWRlclZlcnNpb247CiAgRFdPUkQgICAgICAgICAgICAgICBNYXhWZXJ0ZXhTaGFkZXJDb25zdDsKCiAgRFdPUkQgICAgICAgICAgICAgICBQaXhlbFNoYWRlclZlcnNpb247CiAgZmxvYXQgICAgICAgICAgICAgICBQaXhlbFNoYWRlcjF4TWF4VmFsdWU7CgogIC8qIERYIDkgKi8KICBEV09SRCAgICAgICAgICAgICAgIERldkNhcHMyOwoKICBmbG9hdCAgICAgICAgICAgICAgIE1heE5wYXRjaFRlc3NlbGxhdGlvbkxldmVsOwogIERXT1JEICAgICAgICAgICAgICAgUmVzZXJ2ZWQ1OyAvKnVuZG9jdW1lbnRlZCovCgogIFVJTlQgICAgICAgICAgICAgICAgTWFzdGVyQWRhcHRlck9yZGluYWw7CiAgVUlOVCAgICAgICAgICAgICAgICBBZGFwdGVyT3JkaW5hbEluR3JvdXA7CiAgVUlOVCAgICAgICAgICAgICAgICBOdW1iZXJPZkFkYXB0ZXJzSW5Hcm91cDsKICBEV09SRCAgICAgICAgICAgICAgIERlY2xUeXBlczsKICBEV09SRCAgICAgICAgICAgICAgIE51bVNpbXVsdGFuZW91c1JUczsKICBEV09SRCAgICAgICAgICAgICAgIFN0cmV0Y2hSZWN0RmlsdGVyQ2FwczsKICBXSU5FRDNEVlNIQURFUkNBUFMyXzAgICBWUzIwQ2FwczsKICBXSU5FRDNEUFNIQURFUkNBUFMyXzAgICBQUzIwQ2FwczsKICBEV09SRCAgICAgICAgICAgICAgIFZlcnRleFRleHR1cmVGaWx0ZXJDYXBzOwogIERXT1JEICAgICAgICAgICAgICAgTWF4VlNoYWRlckluc3RydWN0aW9uc0V4ZWN1dGVkOwogIERXT1JEICAgICAgICAgICAgICAgTWF4UFNoYWRlckluc3RydWN0aW9uc0V4ZWN1dGVkOwogIERXT1JEICAgICAgICAgICAgICAgTWF4VmVydGV4U2hhZGVyMzBJbnN0cnVjdGlvblNsb3RzOwogIERXT1JEICAgICAgICAgICAgICAgTWF4UGl4ZWxTaGFkZXIzMEluc3RydWN0aW9uU2xvdHM7CiAgRFdPUkQgICAgICAgICAgICAgICBSZXNlcnZlZDI7LyogTm90IGluIHRoZSBtaWNyb3NvZnQgaGVhZGVycyBidXQgZG9jdW1lbnRlZCAqLwogIERXT1JEICAgICAgICAgICAgICAgUmVzZXJ2ZWQzOwoKfSBXSU5FRDNEQ0FQUzsKCnR5cGVkZWYgZW51bSBfV0lORUQzRFNUQVRFQkxPQ0tUWVBFIHsKICAgIFdJTkVEM0RTQlRfSU5JVCAgICAgICAgICA9IDAsCiAgICBXSU5FRDNEU0JUX0FMTCAgICAgICAgICAgPSAxLAogICAgV0lORUQzRFNCVF9QSVhFTFNUQVRFICAgID0gMiwKICAgIFdJTkVEM0RTQlRfVkVSVEVYU1RBVEUgICA9IDMsCiAgICBXSU5FRDNEU0JUX1JFQ09SREVEICAgICAgPSA0LCAgICAgICAvKiBXaW5lRDNEIHByaXZhdGUgKi8KCiAgICBXSU5FRDNEU0JUX0ZPUkNFX0RXT1JEICAgPSAweGZmZmZmZmZmCn0gV0lORUQzRFNUQVRFQkxPQ0tUWVBFOwoKdHlwZWRlZiBzdHJ1Y3QgZ2xEZXNjcmlwdG9yIHsKICAgIFVJTlQgICAgICAgICAgdGV4dHVyZU5hbWU7CiAgICBpbnQgICAgICAgICAgIGxldmVsOwogICAgaW50ICAgICAgICAgICB0YXJnZXQ7CiAgICBpbnQvKkdMZW51bSovIGdsRm9ybWF0OwogICAgaW50LypHTGVudW0qLyBnbEZvcm1hdEludGVybmFsOwogICAgaW50LypHTGVudW0qLyBnbFR5cGU7Cn0gZ2xEZXNjcmlwdG9yOwoKI2RlZmluZSBXSU5FRDNERFBfTUFYVEVYQ09PUkQgOAoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEREVDTE1FVEhPRCB7CiAgICBXSU5FRDNEREVDTE1FVEhPRF9ERUZBVUxUICAgICAgICAgID0gMCwKICAgIFdJTkVEM0RERUNMTUVUSE9EX1BBUlRJQUxVICAgICAgICAgPSAxLAogICAgV0lORUQzRERFQ0xNRVRIT0RfUEFSVElBTFYgICAgICAgICA9IDIsCiAgICBXSU5FRDNEREVDTE1FVEhPRF9DUk9TU1VWICAgICAgICAgID0gMywKICAgIFdJTkVEM0RERUNMTUVUSE9EX1VWICAgICAgICAgICAgICAgPSA0LAogICAgV0lORUQzRERFQ0xNRVRIT0RfTE9PS1VQICAgICAgICAgICA9IDUsCiAgICBXSU5FRDNEREVDTE1FVEhPRF9MT09LVVBQUkVTQU1QTEVEID0gNgp9IFdJTkVEM0RERUNMTUVUSE9EOwoKdHlwZWRlZiBlbnVtIF9XSU5FRDNEREVDTFRZUEUgewogIFdJTkVEM0RERUNMVFlQRV9GTE9BVDEgICAgPSAgMCwKICBXSU5FRDNEREVDTFRZUEVfRkxPQVQyICAgID0gIDEsCiAgV0lORUQzRERFQ0xUWVBFX0ZMT0FUMyAgICA9ICAyLAogIFdJTkVEM0RERUNMVFlQRV9GTE9BVDQgICAgPSAgMywKICBXSU5FRDNEREVDTFRZUEVfRDNEQ09MT1IgID0gIDQsCiAgV0lORUQzRERFQ0xUWVBFX1VCWVRFNCAgICA9ICA1LAogIFdJTkVEM0RERUNMVFlQRV9TSE9SVDIgICAgPSAgNiwKICBXSU5FRDNEREVDTFRZUEVfU0hPUlQ0ICAgID0gIDcsCiAgLyogVlMgMi4wICovCiAgV0lORUQzRERFQ0xUWVBFX1VCWVRFNE4gICA9ICA4LAogIFdJTkVEM0RERUNMVFlQRV9TSE9SVDJOICAgPSAgOSwKICBXSU5FRDNEREVDTFRZUEVfU0hPUlQ0TiAgID0gMTAsCiAgV0lORUQzRERFQ0xUWVBFX1VTSE9SVDJOICA9IDExLAogIFdJTkVEM0RERUNMVFlQRV9VU0hPUlQ0TiAgPSAxMiwKICBXSU5FRDNEREVDTFRZUEVfVURFQzMgICAgID0gMTMsCiAgV0lORUQzRERFQ0xUWVBFX0RFQzNOICAgICA9IDE0LAogIFdJTkVEM0RERUNMVFlQRV9GTE9BVDE2XzIgPSAxNSwKICBXSU5FRDNEREVDTFRZUEVfRkxPQVQxNl80ID0gMTYsCiAgV0lORUQzRERFQ0xUWVBFX1VOVVNFRCAgICA9IDE3LAp9IFdJTkVEM0RERUNMVFlQRTsKCiNkZWZpbmUgV0lORUQzRERFQ0xfRU5EKCkgezB4RkYsMCxXSU5FRDNEREVDTFRZUEVfVU5VU0VELDAsMCwwLC0xfQoKdHlwZWRlZiBzdHJ1Y3QgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgewogICAgQllURSAgICAgKmxwRGF0YTsgICAgICAgIC8qIFBvaW50ZXIgdG8gc3RhcnQgb2YgZGF0YSAgICAgICAgICAgICAgICAqLwogICAgRFdPUkQgICAgIGR3U3RyaWRlOyAgICAgIC8qIFN0cmlkZSBiZXR3ZWVuIG9jY3VycmVuY2VzIG9mIHRoaXMgZGF0YSAqLwogICAgRFdPUkQgICAgIGR3VHlwZTsgICAgICAgIC8qIFR5cGUgKGFzIGluIEQzRFZTRFRfVFlQRSkgICAgICAgICAgICAgICAqLwogICAgaW50ICAgICAgIFZCTzsgICAgICAgICAgIC8qIFZlcnRleCBidWZmZXIgb2JqZWN0IHRoaXMgZGF0YSBpcyBpbiAgICAqLwogICAgVUlOVCAgICAgIHN0cmVhbU5vOyAgICAgIC8qIEQzRCBzdHJlYW0gbnVtYmVyICAgICAgICAgICAgICAgICAgICAgICAqLwp9IFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhOwoKdHlwZWRlZiBzdHJ1Y3QgV2luZURpcmVjdDNEVmVydGV4U3RyaWRlZERhdGEgewogICAgLyogSU1QT1JUQU5UOgogICAgICoKICAgICAqIFRoaXMgc3RydWN0dXJlIGNhbiBiZSBhY2Nlc3NlZCBpbiB0d28gd2F5czogTmFtZWQgYWNjZXNzLCBhbmQgYXJyYXkKICAgICAqIGFjY2Vzcy4gUGxlYXNlIG5vdGUgdGhhdCBuYW1lZCBhY2Nlc3MgaXMgb25seSB2YWxpZCB3aXRoIHRoZSBmaXhlZAogICAgICogZnVuY3Rpb24gdmVydGV4IHBpcGVsaW5lLCBhbmQgdGhlIGFycmF5cyBhcmUgb25seSB2YWxpZCB3aXRoIHRoZQogICAgICogcHJvZ3JhbW1hYmxlIHZlcnRleCBwaXBlbGluZSh2ZXJ0ZXggc2hhZGVycykKICAgICAqLwogICAgdW5pb24gewogICAgICAgIHN0cnVjdCB7CgogICAgICAgICAgICAgLyogRG8gbm90IGFkZCBvciByZW9yZGVyIGZpZWxkcyBoZXJlLAogICAgICAgICAgICAgICogc28gdGhpcyBjYW4gYmUgaW5kZXhlZCBhcyBhbiBhcnJheSAqLwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIHBvc2l0aW9uOwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIGJsZW5kV2VpZ2h0czsKICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICBibGVuZE1hdHJpeEluZGljZXM7CiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgbm9ybWFsOwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIHBTaXplOwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIGRpZmZ1c2U7CiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgc3BlY3VsYXI7CiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgdGV4Q29vcmRzW1dJTkVEM0REUF9NQVhURVhDT09SRF07CiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgcG9zaXRpb24yOyAvKiB0d2VlbiBkYXRhICovCiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgbm9ybWFsMjsgICAvKiB0d2VlbiBkYXRhICovCiAgICAgICAgICAgICBXaW5lRGlyZWN0M0RTdHJpZGVkRGF0YSAgdGFuZ2VudDsKICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICBiaW5vcm1hbDsKICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICB0ZXNzRmFjdG9yOwogICAgICAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgIGZvZzsKICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICBkZXB0aDsKICAgICAgICAgICAgIFdpbmVEaXJlY3QzRFN0cmlkZWREYXRhICBzYW1wbGU7CgogICAgICAgICAgICAgLyogQWRkIGZpZWxkcyBoZXJlICovCiAgICAgICAgICAgICBCT09MIHBvc2l0aW9uX3RyYW5zZm9ybWVkOwoKICAgICAgICB9IHM7CiAgICAgICAgV2luZURpcmVjdDNEU3RyaWRlZERhdGEgaW5wdXRbMTZdOyAgLyogSW5kZXhlZCBieSBjb25zdGFudHMgaW4gRDNEVlNERV9SRUdJU1RFUiAqLwogICAgfSB1Owp9IFdpbmVEaXJlY3QzRFZlcnRleFN0cmlkZWREYXRhOwoKdHlwZWRlZiBlbnVtIHsKICAgIFdJTkVEM0RERUNMVVNBR0VfUE9TSVRJT04gICAgID0gMCwKICAgIFdJTkVEM0RERUNMVVNBR0VfQkxFTkRXRUlHSFQgID0gMSwKICAgIFdJTkVEM0RERUNMVVNBR0VfQkxFTkRJTkRJQ0VTID0gMiwKICAgIFdJTkVEM0RERUNMVVNBR0VfTk9STUFMICAgICAgID0gMywKICAgIFdJTkVEM0RERUNMVVNBR0VfUFNJWkUgICAgICAgID0gNCwKICAgIFdJTkVEM0RERUNMVVNBR0VfVEVYQ09PUkQgICAgID0gNSwKICAgIFdJTkVEM0RERUNMVVNBR0VfVEFOR0VOVCAgICAgID0gNiwKICAgIFdJTkVEM0RERUNMVVNBR0VfQklOT1JNQUwgICAgID0gNywKICAgIFdJTkVEM0RERUNMVVNBR0VfVEVTU0ZBQ1RPUiAgID0gOCwKICAgIFdJTkVEM0RERUNMVVNBR0VfUE9TSVRJT05UICAgID0gOSwKICAgIFdJTkVEM0RERUNMVVNBR0VfQ09MT1IgICAgICAgID0gMTAsCiAgICBXSU5FRDNEREVDTFVTQUdFX0ZPRyAgICAgICAgICA9IDExLAogICAgV0lORUQzRERFQ0xVU0FHRV9ERVBUSCAgICAgICAgPSAxMiwKICAgIFdJTkVEM0RERUNMVVNBR0VfU0FNUExFICAgICAgID0gMTMKfSBXSU5FRDNEREVDTFVTQUdFOwoKI2RlZmluZSBXSU5FRDNEVVNBR0VfUkVOREVSVEFSR0VUICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKI2RlZmluZSBXSU5FRDNEVVNBR0VfREVQVEhTVEVOQ0lMICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKI2RlZmluZSBXSU5FRDNEVVNBR0VfV1JJVEVPTkxZICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfU09GVFdBUkVQUk9DRVNTSU5HICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfRE9OT1RDTElQICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfUE9JTlRTICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfUlRQQVRDSEVTICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfTlBBVENIRVMgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfRFlOQU1JQyAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfQVVUT0dFTk1JUE1BUCAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDQwMEwgCiNkZWZpbmUgV0lORUQzRFVTQUdFX0RNQVAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCiNkZWZpbmUgV0lORUQzRFVTQUdFX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDRGRkZMCiNkZWZpbmUgV0lORUQzRFVTQUdFX09WRVJMQVkgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDBMCgojZGVmaW5lIFdJTkVEM0RVU0FHRV9RVUVSWV9MRUdBQ1lCVU1QTUFQICAgICAgICAgICAgMHgwMDAwODAwMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfUVVFUllfRklMVEVSICAgICAgICAgICAgICAgICAgIDB4MDAwMjAwMDBMCiNkZWZpbmUgV0lORUQzRFVTQUdFX1FVRVJZX1BPU1RQSVhFTFNIQURFUl9CTEVORElORyAweDAwMDgwMDAwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9RVUVSWV9TUkdCUkVBRCAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfUVVFUllfU1JHQldSSVRFICAgICAgICAgICAgICAgIDB4MDAwNDAwMDBMCiNkZWZpbmUgV0lORUQzRFVTQUdFX1FVRVJZX1ZFUlRFWFRFWFRVUkUgICAgICAgICAgICAweDAwMTAwMDAwTAojZGVmaW5lIFdJTkVEM0RVU0FHRV9RVUVSWV9XUkFQQU5ETUlQICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKI2RlZmluZSBXSU5FRDNEVVNBR0VfUVVFUllfTUFTSyAgICAgICAgICAgICAgICAgICAgIDB4MDAyRjgwMDBMCgp0eXBlZGVmIGVudW0gX1dJTkVEM0RTVVJGVFlQRSB7CiAgICBTVVJGQUNFX1VOS05PV04gICAgPSAwLCAgIC8qIERlZmF1bHQgLyBVbmtub3duIHN1cmZhY2UgdHlwZSAqLwogICAgU1VSRkFDRV9PUEVOR0wsICAgICAgICAgICAvKiBPcGVuR0wgc3VyZmFjZTogUmVuZGVycyB1c2luZyBsaWJHTCwgbmVlZGVkIGZvciAzRCAqLwogICAgU1VSRkFDRV9HREksICAgICAgICAgICAgICAvKiBVc2VyIHN1cmZhY2UuIE5vIDNELCBEaXJlY3REcmF3IHJlbmRlcmluZyB3aXRoIEdESSAqLwogICAgU1VSRkFDRV9YUkVOREVSICAgICAgICAgICAvKiBGdXR1cmUgZHJlYW1zOiBVc2UgWFJFTkRFUiAvIEVYQSAvIHdoYXRldmVyIHN0dWZmICovCn0gV0lORUQzRFNVUkZUWVBFOwoKI2RlZmluZSBXSU5FRDNEQ0FQUzJfTk8yRERVUklORzNEU0NFTkUgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCiNkZWZpbmUgV0lORUQzRENBUFMyX0ZVTExTQ1JFRU5HQU1NQSAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwTAojZGVmaW5lIFdJTkVEM0RDQVBTMl9DQU5SRU5ERVJXSU5ET1dFRCAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMEwKI2RlZmluZSBXSU5FRDNEQ0FQUzJfQ0FOQ0FMSUJSQVRFR0FNTUEgICAgICAgICAgICAgICAgIDB4MDAxMDAwMDBMCiNkZWZpbmUgV0lORUQzRENBUFMyX1JFU0VSVkVEICAgICAgICAgICAgICAgICAgICAgICAgICAweDAyMDAwMDAwTAojZGVmaW5lIFdJTkVEM0RDQVBTMl9DQU5NQU5BR0VSRVNPVVJDRSAgICAgICAgICAgICAgICAgMHgxMDAwMDAwMEwKI2RlZmluZSBXSU5FRDNEQ0FQUzJfRFlOQU1JQ1RFWFRVUkVTICAgICAgICAgICAgICAgICAgIDB4MjAwMDAwMDBMCiNkZWZpbmUgV0lORUQzRENBUFMyX0NBTkFVVE9HRU5NSVBNQVAgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwTAoKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfRElUSEVSICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMUwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfUk9QMiAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfWE9SICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfUEFUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfWlRFU1QgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfU1VCUElYRUwgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfU1VCUElYRUxYICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfRk9HVkVSVEVYICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfRk9HVEFCTEUgICAgICAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfU1RJUFBMRSAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfQU5USUFMSUFTU09SVERFUEVOREVOVCAgICAgMHgwMDAwMDQwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfQU5USUFMSUFTU09SVElOREVQRU5ERU5UICAgMHgwMDAwMDgwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfQU5USUFMSUFTRURHRVMgICAgICAgICAgICAgMHgwMDAwMTAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfTUlQTUFQTE9EQklBUyAgICAgICAgICAgICAgMHgwMDAwMjAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfWkJJQVMgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwNDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfWkJVRkZFUkxFU1NIU1IgICAgICAgICAgICAgMHgwMDAwODAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfRk9HUkFOR0UgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfQU5JU09UUk9QWSAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfV0JVRkZFUiAgICAgICAgICAgICAgICAgICAgMHgwMDA0MDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfVFJBTlNMVUNFTlRTT1JUSU5ERVBFTkRFTlQgMHgwMDA4MDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfV0ZPRyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDEwMDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfWkZPRyAgICAgICAgICAgICAgICAgICAgICAgMHgwMDIwMDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfQ09MT1JQRVJTUEVDVElWRSAgICAgICAgICAgMHgwMDQwMDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfU0NJU1NPUlRFU1QgICAgICAgICAgICAgICAgMHgwMTAwMDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfU0xPUEVTQ0FMRURFUFRIQklBUyAgICAgICAgMHgwMjAwMDAwMEwKI2RlZmluZSBXSU5FRDNEUFJBU1RFUkNBUFNfREVQVEhCSUFTICAgICAgICAgICAgICAgICAgMHgwNDAwMDAwMEwgCiNkZWZpbmUgV0lORUQzRFBSQVNURVJDQVBTX01VTFRJU0FNUExFX1RPR0dMRSAgICAgICAgIDB4MDgwMDAwMDBMCgojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0NPTE9SRkxBVE1PTk8gICAgICAgICAgICAgICAweDAwMDAwMQojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0NPTE9SRkxBVFJHQiAgICAgICAgICAgICAgICAweDAwMDAwMgojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0NPTE9SR09VUkFVRE1PTk8gICAgICAgICAgICAweDAwMDAwNAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0NPTE9SR09VUkFVRFJHQiAgICAgICAgICAgICAweDAwMDAwOAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0NPTE9SUEhPTkdNT05PICAgICAgICAgICAgICAweDAwMDAxMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0NPTE9SUEhPTkdSR0IgICAgICAgICAgICAgICAweDAwMDAyMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX1NQRUNVTEFSRkxBVE1PTk8gICAgICAgICAgICAweDAwMDA0MAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX1NQRUNVTEFSRkxBVFJHQiAgICAgICAgICAgICAweDAwMDA4MAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX1NQRUNVTEFSR09VUkFVRE1PTk8gICAgICAgICAweDAwMDEwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX1NQRUNVTEFSR09VUkFVRFJHQiAgICAgICAgICAweDAwMDIwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX1NQRUNVTEFSUEhPTkdNT05PICAgICAgICAgICAweDAwMDQwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX1NQRUNVTEFSUEhPTkdSR0IgICAgICAgICAgICAweDAwMDgwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0FMUEhBRkxBVEJMRU5EICAgICAgICAgICAgICAweDAwMTAwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0FMUEhBRkxBVFNUSVBQTEVEICAgICAgICAgICAweDAwMjAwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0FMUEhBR09VUkFVREJMRU5EICAgICAgICAgICAweDAwNDAwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0FMUEhBR09VUkFVRFNUSVBQTEVEICAgICAgICAweDAwODAwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0FMUEhBUEhPTkdCTEVORCAgICAgICAgICAgICAweDAxMDAwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0FMUEhBUEhPTkdTVElQUExFRCAgICAgICAgICAweDAyMDAwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0ZPR0ZMQVQgICAgICAgICAgICAgICAgICAgICAweDA0MDAwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0ZPR0dPVVJBVUQgICAgICAgICAgICAgICAgICAweDA4MDAwMAojZGVmaW5lIFdJTkVEM0RQU0hBREVDQVBTX0ZPR1BIT05HICAgICAgICAgICAgICAgICAgICAweDEwMDAwMAoKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX1BFUlNQRUNUSVZFICAgICAgICAgICAgICAweDAwMDAwMDAxTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfUE9XMiAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDJMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19BTFBIQSAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX1RSQU5TUEFSRU5DWSAgICAgICAgICAgICAweDAwMDAwMDA4TAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfQk9SREVSICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTBMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19TUVVBUkVPTkxZICAgICAgICAgICAgICAgMHgwMDAwMDAyMEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX1RFWFJFUEVBVE5PVFNDQUxFREJZU0laRSAweDAwMDAwMDQwTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfQUxQSEFQQUxFVFRFICAgICAgICAgICAgIDB4MDAwMDAwODBMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19OT05QT1cyQ09ORElUSU9OQUwgICAgICAgMHgwMDAwMDEwMEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX1BST0pFQ1RFRCAgICAgICAgICAgICAgICAweDAwMDAwNDAwTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfQ1VCRU1BUCAgICAgICAgICAgICAgICAgIDB4MDAwMDA4MDBMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19DT0xPUktFWUJMRU5EICAgICAgICAgICAgMHgwMDAwMTAwMEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX1ZPTFVNRU1BUCAgICAgICAgICAgICAgICAweDAwMDAyMDAwTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfTUlQTUFQICAgICAgICAgICAgICAgICAgIDB4MDAwMDQwMDBMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19NSVBWT0xVTUVNQVAgICAgICAgICAgICAgMHgwMDAwODAwMEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX01JUENVQkVNQVAgICAgICAgICAgICAgICAweDAwMDEwMDAwTAojZGVmaW5lIFdJTkVEM0RQVEVYVFVSRUNBUFNfQ1VCRU1BUF9QT1cyICAgICAgICAgICAgIDB4MDAwMjAwMDBMCiNkZWZpbmUgV0lORUQzRFBURVhUVVJFQ0FQU19WT0xVTUVNQVBfUE9XMiAgICAgICAgICAgMHgwMDA0MDAwMEwKI2RlZmluZSBXSU5FRDNEUFRFWFRVUkVDQVBTX05PUFJPSkVDVEVEQlVNUEVOViAgICAgICAweDAwMjAwMDAwTAoKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX05FQVJFU1QgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19MSU5FQVIgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMgojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTUlQTkVBUkVTVCAgICAgICAgICAgICAgIDB4MDAwMDAwMDQKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX01JUExJTkVBUiAgICAgICAgICAgICAgICAweDAwMDAwMDA4CiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19MSU5FQVJNSVBORUFSRVNUICAgICAgICAgMHgwMDAwMDAxMAojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTElORUFSTUlQTElORUFSICAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX01JTkZQT0lOVCAgICAgICAgICAgICAgICAweDAwMDAwMTAwCiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19NSU5GTElORUFSICAgICAgICAgICAgICAgMHgwMDAwMDIwMAojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTUlORkFOSVNPVFJPUElDICAgICAgICAgIDB4MDAwMDA0MDAKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX01JUEZQT0lOVCAgICAgICAgICAgICAgICAweDAwMDEwMDAwCiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19NSVBGTElORUFSICAgICAgICAgICAgICAgMHgwMDAyMDAwMAojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTUFHRlBPSU5UICAgICAgICAgICAgICAgIDB4MDEwMDAwMDAKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX01BR0ZMSU5FQVIgICAgICAgICAgICAgICAweDAyMDAwMDAwCiNkZWZpbmUgV0lORUQzRFBURklMVEVSQ0FQU19NQUdGQU5JU09UUk9QSUMgICAgICAgICAgMHgwNDAwMDAwMAojZGVmaW5lIFdJTkVEM0RQVEZJTFRFUkNBUFNfTUFHRlBZUkFNSURBTFFVQUQgICAgICAgIDB4MDgwMDAwMDAKI2RlZmluZSBXSU5FRDNEUFRGSUxURVJDQVBTX01BR0ZHQVVTU0lBTlFVQUQgICAgICAgICAweDEwMDAwMDAwCgojZGVmaW5lIFdJTkVEM0RWVFhQQ0FQU19URVhHRU4gICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDFMCiNkZWZpbmUgV0lORUQzRFZUWFBDQVBTX01BVEVSSUFMU09VUkNFNyAgICAgICAgICAgICAgMHgwMDAwMDAwMkwKI2RlZmluZSBXSU5FRDNEVlRYUENBUFNfVkVSVEVYRk9HICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0TAojZGVmaW5lIFdJTkVEM0RWVFhQQ0FQU19ESVJFQ1RJT05BTExJR0hUUyAgICAgICAgICAgIDB4MDAwMDAwMDhMCiNkZWZpbmUgV0lORUQzRFZUWFBDQVBTX1BPU0lUSU9OQUxMSUdIVFMgICAgICAgICAgICAgMHgwMDAwMDAxMEwKI2RlZmluZSBXSU5FRDNEVlRYUENBUFNfTE9DQUxWSUVXRVIgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwTAojZGVmaW5lIFdJTkVEM0RWVFhQQ0FQU19UV0VFTklORyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDBMCiNkZWZpbmUgV0lORUQzRFZUWFBDQVBTX1RFWEdFTl9TUEhFUkVNQVAgICAgICAgICAgICAgMHgwMDAwMDEwMEwKI2RlZmluZSBXSU5FRDNEVlRYUENBUFNfTk9fVEVYR0VOX05PTkxPQ0FMVklFV0VSICAgICAweDAwMDAwMjAwTAoKI2RlZmluZSBXSU5FRDNEQ1VSU09SQ0FQU19DT0xPUiAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAwMQojZGVmaW5lIFdJTkVEM0RDVVJTT1JDQVBTX0xPV1JFUyAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAyCgojZGVmaW5lIFdJTkVEM0RERVZDQVBTX0ZMT0FUVExWRVJURVggICAgICAgICAgICAgICAgIDB4MDAwMDAwMDAxCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfU09SVElOQ1JFQVNJTkdaICAgICAgICAgICAgICAgMHgwMDAwMDAwMDIKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19TT1JUREVDUkVBU0lOR1ogICAgICAgICAgICAgICAwWDAwMDAwMDAwNAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX1NPUlRFWEFDVCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDA4CiNkZWZpbmUgV0lORUQzRERFVkNBUFNfRVhFQ1VURVNZU1RFTU1FTU9SWSAgICAgICAgICAgMHgwMDAwMDAwMTAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19FWEVDVVRFVklERU9NRU1PUlkgICAgICAgICAgICAweDAwMDAwMDAyMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX1RMVkVSVEVYU1lTVEVNTUVNT1JZICAgICAgICAgIDB4MDAwMDAwMDQwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfVExWRVJURVhWSURFT01FTU9SWSAgICAgICAgICAgMHgwMDAwMDAwODAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19URVhUVVJFU1lTVEVNTUVNT1JZICAgICAgICAgICAweDAwMDAwMDEwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX1RFWFRVUkVWSURFT01FTU9SWSAgICAgICAgICAgIDB4MDAwMDAwMjAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfRFJBV1BSSU1UTFZFUlRFWCAgICAgICAgICAgICAgMHgwMDAwMDA0MDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19DQU5SRU5ERVJBRlRFUkZMSVAgICAgICAgICAgICAweDAwMDAwMDgwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX1RFWFRVUkVOT05MT0NBTFZJRE1FTSAgICAgICAgIDB4MDAwMDAxMDAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfRFJBV1BSSU1JVElWRVMyICAgICAgICAgICAgICAgMHgwMDAwMDIwMDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19TRVBBUkFURVRFWFRVUkVNRU1PUklFUyAgICAgICAweDAwMDAwNDAwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX0RSQVdQUklNSVRJVkVTMkVYICAgICAgICAgICAgIDB4MDAwMDA4MDAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfSFdUUkFOU0ZPUk1BTkRMSUdIVCAgICAgICAgICAgMHgwMDAwMTAwMDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19DQU5CTFRTWVNUT05PTkxPQ0FMICAgICAgICAgICAweDAwMDAyMDAwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX0hXUkFTVEVSSVpBVElPTiAgICAgICAgICAgICAgIDB4MDAwMDgwMDAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfUFVSRURFVklDRSAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19RVUlOVElDUlRQQVRDSEVTICAgICAgICAgICAgICAweDAwMDIwMDAwMAojZGVmaW5lIFdJTkVEM0RERVZDQVBTX1JUUEFUQ0hFUyAgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDAwCiNkZWZpbmUgV0lORUQzRERFVkNBUFNfUlRQQVRDSEhBTkRMRVpFUk8gICAgICAgICAgICAgMHgwMDA4MDAwMDAKI2RlZmluZSBXSU5FRDNEREVWQ0FQU19OUEFUQ0hFUyAgICAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwMAoKI2RlZmluZSBXSU5FRDNETE9DS19SRUFET05MWSAgICAgICAgICAgMHgwMDEwCiNkZWZpbmUgV0lORUQzRExPQ0tfTk9TWVNMT0NLICAgICAgICAgIDB4MDgwMAojZGVmaW5lIFdJTkVEM0RMT0NLX05PT1ZFUldSSVRFICAgICAgICAweDEwMDAKI2RlZmluZSBXSU5FRDNETE9DS19ESVNDQVJEICAgICAgICAgICAgMHgyMDAwCiNkZWZpbmUgV0lORUQzRExPQ0tfRE9OT1RXQUlUICAgICAgICAgIDB4NDAwMAojZGVmaW5lIFdJTkVEM0RMT0NLX05PX0RJUlRZX1VQREFURSAgICAweDgwMDAKCiNkZWZpbmUgV0lORUQzRFBSRVNFTlRfUkFURV9ERUZBVUxUICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMDAKCiNkZWZpbmUgV0lORUQzRFBSRVNFTlRfSU5URVJWQUxfREVGQVVMVCAgICAgICAgICAgICAgMHgwMDAwMDAwMAojZGVmaW5lIFdJTkVEM0RQUkVTRU5UX0lOVEVSVkFMX09ORSAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBXSU5FRDNEUFJFU0VOVF9JTlRFUlZBTF9UV08gICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgV0lORUQzRFBSRVNFTlRfSU5URVJWQUxfVEhSRUUgICAgICAgICAgICAgICAgMHgwMDAwMDAwNAojZGVmaW5lIFdJTkVEM0RQUkVTRU5UX0lOVEVSVkFMX0ZPVVIgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKI2RlZmluZSBXSU5FRDNEUFJFU0VOVF9JTlRFUlZBTF9JTU1FRElBVEUgICAgICAgICAgICAweDgwMDAwMDAwCgojZGVmaW5lIFdJTkVEM0RNQVhVU0VSQ0xJUFBMQU5FUyAgICAgICAzMgojZGVmaW5lIFdJTkVEM0RDTElQUExBTkUwICAgICAgICAgICAgICAoMSA8PCAwKQojZGVmaW5lIFdJTkVEM0RDTElQUExBTkUxICAgICAgICAgICAgICAoMSA8PCAxKQojZGVmaW5lIFdJTkVEM0RDTElQUExBTkUyICAgICAgICAgICAgICAoMSA8PCAyKQojZGVmaW5lIFdJTkVEM0RDTElQUExBTkUzICAgICAgICAgICAgICAoMSA8PCAzKQojZGVmaW5lIFdJTkVEM0RDTElQUExBTkU0ICAgICAgICAgICAgICAoMSA8PCA0KQojZGVmaW5lIFdJTkVEM0RDTElQUExBTkU1ICAgICAgICAgICAgICAoMSA8PCA1KQoKLyogRlZGIChGbGV4aWJsZSBWZXJ0ZXggRm9ybWF0KSBjb2RlcyAqLwojZGVmaW5lIFdJTkVEM0RGVkZfUkVTRVJWRUQwICAgICAgICAgICAweDAwMDEKI2RlZmluZSBXSU5FRDNERlZGX1BPU0lUSU9OX01BU0sgICAgICAgMHgwMDBFCiNkZWZpbmUgV0lORUQzREZWRl9YWVogICAgICAgICAgICAgICAgIDB4MDAwMgojZGVmaW5lIFdJTkVEM0RGVkZfWFlaUkhXICAgICAgICAgICAgICAweDAwMDQKI2RlZmluZSBXSU5FRDNERlZGX1hZWkIxICAgICAgICAgICAgICAgMHgwMDA2CiNkZWZpbmUgV0lORUQzREZWRl9YWVpCMiAgICAgICAgICAgICAgIDB4MDAwOAojZGVmaW5lIFdJTkVEM0RGVkZfWFlaQjMgICAgICAgICAgICAgICAweDAwMGEKI2RlZmluZSBXSU5FRDNERlZGX1hZWkI0ICAgICAgICAgICAgICAgMHgwMDBjCiNkZWZpbmUgV0lORUQzREZWRl9YWVpCNSAgICAgICAgICAgICAgIDB4MDAwZQojZGVmaW5lIFdJTkVEM0RGVkZfWFlaVyAgICAgICAgICAgICAgICAweDQwMDIKI2RlZmluZSBXSU5FRDNERlZGX05PUk1BTCAgICAgICAgICAgICAgMHgwMDEwCiNkZWZpbmUgV0lORUQzREZWRl9QU0laRSAgICAgICAgICAgICAgIDB4MDAyMAojZGVmaW5lIFdJTkVEM0RGVkZfRElGRlVTRSAgICAgICAgICAgICAweDAwNDAKI2RlZmluZSBXSU5FRDNERlZGX1NQRUNVTEFSICAgICAgICAgICAgMHgwMDgwCiNkZWZpbmUgV0lORUQzREZWRl9URVhDT1VOVF9NQVNLICAgICAgIDB4MGYwMAojZGVmaW5lIFdJTkVEM0RGVkZfVEVYQ09VTlRfU0hJRlQgICAgICAgICAgIDgKI2RlZmluZSBXSU5FRDNERlZGX1RFWDAgICAgICAgICAgICAgICAgMHgwMDAwCiNkZWZpbmUgV0lORUQzREZWRl9URVgxICAgICAgICAgICAgICAgIDB4MDEwMAojZGVmaW5lIFdJTkVEM0RGVkZfVEVYMiAgICAgICAgICAgICAgICAweDAyMDAKI2RlZmluZSBXSU5FRDNERlZGX1RFWDMgICAgICAgICAgICAgICAgMHgwMzAwCiNkZWZpbmUgV0lORUQzREZWRl9URVg0ICAgICAgICAgICAgICAgIDB4MDQwMAojZGVmaW5lIFdJTkVEM0RGVkZfVEVYNSAgICAgICAgICAgICAgICAweDA1MDAKI2RlZmluZSBXSU5FRDNERlZGX1RFWDYgICAgICAgICAgICAgICAgMHgwNjAwCiNkZWZpbmUgV0lORUQzREZWRl9URVg3ICAgICAgICAgICAgICAgIDB4MDcwMAojZGVmaW5lIFdJTkVEM0RGVkZfVEVYOCAgICAgICAgICAgICAgICAweDA4MDAKI2RlZmluZSBXSU5FRDNERlZGX0xBU1RCRVRBX1VCWVRFNCAgICAgMHgxMDAwCiNkZWZpbmUgV0lORUQzREZWRl9MQVNUQkVUQV9EM0RDT0xPUiAgIDB4ODAwMAojZGVmaW5lIFdJTkVEM0RGVkZfUkVTRVJWRUQyICAgICAgICAgICAweDYwMDAKCiNkZWZpbmUgV0lORUQzREZWRl9URVhUVVJFRk9STUFUMSAzCiNkZWZpbmUgV0lORUQzREZWRl9URVhUVVJFRk9STUFUMiAwCiNkZWZpbmUgV0lORUQzREZWRl9URVhUVVJFRk9STUFUMyAxCiNkZWZpbmUgV0lORUQzREZWRl9URVhUVVJFRk9STUFUNCAyCiNkZWZpbmUgV0lORUQzREZWRl9URVhDT09SRFNJWkUxKENvb3JkSW5kZXgpIChXSU5FRDNERlZGX1RFWFRVUkVGT1JNQVQxIDw8IChDb29yZEluZGV4KjIgKyAxNikpCiNkZWZpbmUgV0lORUQzREZWRl9URVhDT09SRFNJWkUyKENvb3JkSW5kZXgpIChXSU5FRDNERlZGX1RFWFRVUkVGT1JNQVQyKQojZGVmaW5lIFdJTkVEM0RGVkZfVEVYQ09PUkRTSVpFMyhDb29yZEluZGV4KSAoV0lORUQzREZWRl9URVhUVVJFRk9STUFUMyA8PCAoQ29vcmRJbmRleCoyICsgMTYpKQojZGVmaW5lIFdJTkVEM0RGVkZfVEVYQ09PUkRTSVpFNChDb29yZEluZGV4KSAoV0lORUQzREZWRl9URVhUVVJFRk9STUFUNCA8PCAoQ29vcmRJbmRleCoyICsgMTYpKQoKLyogQ2xlYXIgZmxhZ3MgKi8KI2RlZmluZSBXSU5FRDNEQ0xFQVJfVEFSR0VUICAgMHgwMDAwMDAwMQojZGVmaW5lIFdJTkVEM0RDTEVBUl9aQlVGRkVSICAweDAwMDAwMDAyCiNkZWZpbmUgV0lORUQzRENMRUFSX1NURU5DSUwgIDB4MDAwMDAwMDQKCi8qIFN0cmVhbSBzb3VyY2UgZmxhZ3MgKi8KI2RlZmluZSBXSU5FRDNEU1RSRUFNU09VUkNFX0lOREVYRUREQVRBICAoMSA8PCAzMCkKI2RlZmluZSBXSU5FRDNEU1RSRUFNU09VUkNFX0lOU1RBTkNFREFUQSAoMiA8PCAzMCkKCi8qIFNldFByaXZhdGVEYXRhIGZsYWdzICovCiNkZWZpbmUgV0lORUQzRFNQRF9JVU5LTk9XTiAweDAwMDAwMDAxCgovKiBJV2luZUQzRDo6Q3JlYXRlRGV2aWNlIGJlaGF2aW91ciBmbGFncyAqLwojZGVmaW5lIFdJTkVEM0RDUkVBVEVfRlBVX1BSRVNFUlZFICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMgojZGVmaW5lIFdJTkVEM0RDUkVBVEVfUFVSRURFVklDRSAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAxMAojZGVmaW5lIFdJTkVEM0RDUkVBVEVfU09GVFdBUkVfVkVSVEVYUFJPQ0VTU0lORyAgICAgMHgwMDAwMDAyMAojZGVmaW5lIFdJTkVEM0RDUkVBVEVfSEFSRFdBUkVfVkVSVEVYUFJPQ0VTU0lORyAgICAgMHgwMDAwMDA0MAojZGVmaW5lIFdJTkVEM0RDUkVBVEVfTUlYRURfVkVSVEVYUFJPQ0VTU0lORyAgICAgICAgMHgwMDAwMDA4MAojZGVmaW5lIFdJTkVEM0RDUkVBVEVfRElTQUJMRV9EUklWRVJfTUFOQUdFTUVOVCAgICAgMHgwMDAwMDEwMAojZGVmaW5lIFdJTkVEM0RDUkVBVEVfQURBUFRFUkdST1VQX0RFVklDRSAgICAgICAgICAgMHgwMDAwMDIwMAoKLyogVlRGIGRlZmluZXMgKi8KI2RlZmluZSBXSU5FRDNERE1BUFNBTVBMRVIgICAgICAgICAgICAgIDB4MTAwCiNkZWZpbmUgV0lORUQzRFZFUlRFWFRFWFRVUkVTQU1QTEVSMCAgICAoV0lORUQzRERNQVBTQU1QTEVSICsgMSkKI2RlZmluZSBXSU5FRDNEVkVSVEVYVEVYVFVSRVNBTVBMRVIxICAgIChXSU5FRDNERE1BUFNBTVBMRVIgKyAyKQojZGVmaW5lIFdJTkVEM0RWRVJURVhURVhUVVJFU0FNUExFUjIgICAgKFdJTkVEM0RETUFQU0FNUExFUiArIDMpCiNkZWZpbmUgV0lORUQzRFZFUlRFWFRFWFRVUkVTQU1QTEVSMyAgICAoV0lORUQzRERNQVBTQU1QTEVSICsgNCkKCi8qIERpcmVjdERyYXcgdHlwZXMgKi8KCnR5cGVkZWYgc3RydWN0IF9XSU5FRERDT0xPUktFWQp7CiAgICBEV09SRCAgICAgICBkd0NvbG9yU3BhY2VMb3dWYWx1ZTsgICAgICAgICAgIC8qIGxvdyBib3VuZGFyeSBvZiBjb2xvciBzcGFjZSB0aGF0IGlzIHRvCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGJlIHRyZWF0ZWQgYXMgQ29sb3IgS2V5LCBpbmNsdXNpdmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgICBEV09SRCAgICAgICBkd0NvbG9yU3BhY2VIaWdoVmFsdWU7ICAgICAgICAgIC8qIGhpZ2ggYm91bmRhcnkgb2YgY29sb3Igc3BhY2UgdGhhdCBpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0byBiZSB0cmVhdGVkIGFzIENvbG9yIEtleSwgaW5jbHVzaXZlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwp9IFdJTkVERENPTE9SS0VZLCpMUFdJTkVERENPTE9SS0VZOwoKdHlwZWRlZiBzdHJ1Y3QgX1dJTkVEREJMVEZYCnsKICAgIERXT1JEICAgICAgIGR3U2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogc2l6ZSBvZiBzdHJ1Y3R1cmUgKi8KICAgIERXT1JEICAgICAgIGR3RERGWDsgICAgICAgICAgICAgICAgICAgICAgICAgLyogRlggb3BlcmF0aW9ucyAqLwogICAgRFdPUkQgICAgICAgZHdST1A7ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBXaW4zMiByYXN0ZXIgb3BlcmF0aW9ucyAqLwogICAgRFdPUkQgICAgICAgZHdERFJPUDsgICAgICAgICAgICAgICAgICAgICAgICAvKiBSYXN0ZXIgb3BlcmF0aW9ucyBuZXcgZm9yIERpcmVjdERyYXcgKi8KICAgIERXT1JEICAgICAgIGR3Um90YXRpb25BbmdsZTsgICAgICAgICAgICAgICAgLyogUm90YXRpb24gYW5nbGUgZm9yIGJsdCAqLwogICAgRFdPUkQgICAgICAgZHdaQnVmZmVyT3BDb2RlOyAgICAgICAgICAgICAgICAvKiBaQnVmZmVyIGNvbXBhcmVzICovCiAgICBEV09SRCAgICAgICBkd1pCdWZmZXJMb3c7ICAgICAgICAgICAgICAgICAgIC8qIExvdyBsaW1pdCBvZiBaIGJ1ZmZlciAqLwogICAgRFdPUkQgICAgICAgZHdaQnVmZmVySGlnaDsgICAgICAgICAgICAgICAgICAvKiBIaWdoIGxpbWl0IG9mIFogYnVmZmVyICovCiAgICBEV09SRCAgICAgICBkd1pCdWZmZXJCYXNlRGVzdDsgICAgICAgICAgICAgIC8qIERlc3RpbmF0aW9uIGJhc2UgdmFsdWUgKi8KICAgIERXT1JEICAgICAgIGR3WkRlc3RDb25zdEJpdERlcHRoOyAgICAgICAgICAgLyogQml0IGRlcHRoIHVzZWQgdG8gc3BlY2lmeSBaIGNvbnN0YW50IGZvciBkZXN0aW5hdGlvbiAqLwogICAgdW5pb24KICAgIHsKICAgICAgICBEV09SRCAgIGR3WkRlc3RDb25zdDsgICAgICAgICAgICAgICAgICAgLyogQ29uc3RhbnQgdG8gdXNlIGFzIFogYnVmZmVyIGZvciBkZXN0ICovCiAgICAgICAgc3RydWN0IElXaW5lRDNEU3VyZmFjZSAqbHBERFNaQnVmZmVyRGVzdDsgICAgICAvKiBTdXJmYWNlIHRvIHVzZSBhcyBaIGJ1ZmZlciBmb3IgZGVzdCAqLwogICAgfSBEVU1NWVVOSU9OTkFNRTE7CiAgICBEV09SRCAgICAgICBkd1pTcmNDb25zdEJpdERlcHRoOyAgICAgICAgICAgIC8qIEJpdCBkZXB0aCB1c2VkIHRvIHNwZWNpZnkgWiBjb25zdGFudCBmb3Igc291cmNlICovCiAgICB1bmlvbgogICAgewogICAgICAgIERXT1JEICAgZHdaU3JjQ29uc3Q7ICAgICAgICAgICAgICAgICAgICAvKiBDb25zdGFudCB0byB1c2UgYXMgWiBidWZmZXIgZm9yIHNyYyAqLwogICAgICAgIHN0cnVjdCBJV2luZUQzRFN1cmZhY2UgKmxwRERTWkJ1ZmZlclNyYzsvKiBTdXJmYWNlIHRvIHVzZSBhcyBaIGJ1ZmZlciBmb3Igc3JjICovCiAgICB9IERVTU1ZVU5JT05OQU1FMjsKICAgIERXT1JEICAgICAgIGR3QWxwaGFFZGdlQmxlbmRCaXREZXB0aDsgICAgICAgLyogQml0IGRlcHRoIHVzZWQgdG8gc3BlY2lmeSBjb25zdGFudCBmb3IgYWxwaGEgZWRnZSBibGVuZCAqLwogICAgRFdPUkQgICAgICAgZHdBbHBoYUVkZ2VCbGVuZDsgICAgICAgICAgICAgICAvKiBBbHBoYSBmb3IgZWRnZSBibGVuZGluZyAqLwogICAgRFdPUkQgICAgICAgZHdSZXNlcnZlZDsKICAgIERXT1JEICAgICAgIGR3QWxwaGFEZXN0Q29uc3RCaXREZXB0aDsgICAgICAgLyogQml0IGRlcHRoIHVzZWQgdG8gc3BlY2lmeSBhbHBoYSBjb25zdGFudCBmb3IgZGVzdGluYXRpb24gKi8KICAgIHVuaW9uCiAgICB7CiAgICAgICAgRFdPUkQgICBkd0FscGhhRGVzdENvbnN0OyAgICAgICAgICAgICAgIC8qIENvbnN0YW50IHRvIHVzZSBhcyBBbHBoYSBDaGFubmVsICovCiAgICAgICAgc3RydWN0IElXaW5lRDNEU3VyZmFjZSAqbHBERFNBbHBoYURlc3Q7IC8qIFN1cmZhY2UgdG8gdXNlIGFzIEFscGhhIENoYW5uZWwgKi8KICAgIH0gRFVNTVlVTklPTk5BTUUzOwogICAgRFdPUkQgICAgICAgZHdBbHBoYVNyY0NvbnN0Qml0RGVwdGg7ICAgICAgICAvKiBCaXQgZGVwdGggdXNlZCB0byBzcGVjaWZ5IGFscGhhIGNvbnN0YW50IGZvciBzb3VyY2UgKi8KICAgIHVuaW9uCiAgICB7CiAgICAgICAgRFdPUkQgICBkd0FscGhhU3JjQ29uc3Q7ICAgICAgICAgICAgICAgIC8qIENvbnN0YW50IHRvIHVzZSBhcyBBbHBoYSBDaGFubmVsICovCiAgICAgICAgc3RydWN0IElXaW5lRDNEU3VyZmFjZSAqbHBERFNBbHBoYVNyYzsgIC8qIFN1cmZhY2UgdG8gdXNlIGFzIEFscGhhIENoYW5uZWwgKi8KICAgIH0gRFVNTVlVTklPTk5BTUU0OwogICAgdW5pb24KICAgIHsKICAgICAgICBEV09SRCAgIGR3RmlsbENvbG9yOyAgICAgICAgICAgICAgICAgICAgLyogY29sb3IgaW4gUkdCIG9yIFBhbGV0dGl6ZWQgKi8KICAgICAgICBEV09SRCAgIGR3RmlsbERlcHRoOyAgICAgICAgICAgICAgICAgICAgLyogZGVwdGggdmFsdWUgZm9yIHotYnVmZmVyICovCglEV09SRCAgIGR3RmlsbFBpeGVsOwkJCS8qIHBpeGVsIHZhbCBmb3IgUkdCQSBvciBSR0JaICovCiAgICAgICAgc3RydWN0IElXaW5lRDNEU3VyZmFjZSAqbHBERFNQYXR0ZXJuOyAgIC8qIFN1cmZhY2UgdG8gdXNlIGFzIHBhdHRlcm4gKi8KICAgIH0gRFVNTVlVTklPTk5BTUU1OwogICAgV0lORUREQ09MT1JLRVkgIGRkY2tEZXN0Q29sb3JrZXk7ICAgICAgICAgIC8qIERlc3RDb2xvcmtleSBvdmVycmlkZSAqLwogICAgV0lORUREQ09MT1JLRVkgIGRkY2tTcmNDb2xvcmtleTsgICAgICAgICAgIC8qIFNyY0NvbG9ya2V5IG92ZXJyaWRlICovCn0gV0lORUREQkxURlgsKkxQV0lORUREQkxURlg7Cgp0eXBlZGVmIHN0cnVjdCBfV0lORURET1ZFUkxBWUZYCnsKICAgIERXT1JEICAgICAgIGR3U2l6ZTsgICAgICAgICAgICAgICAgICAgICAgICAgLyogc2l6ZSBvZiBzdHJ1Y3R1cmUgKi8KICAgIERXT1JEICAgICAgIGR3QWxwaGFFZGdlQmxlbmRCaXREZXB0aDsgICAgICAgLyogQml0IGRlcHRoIHVzZWQgdG8gc3BlY2lmeSBjb25zdGFudCBmb3IgYWxwaGEgZWRnZSBibGVuZCAqLwogICAgRFdPUkQgICAgICAgZHdBbHBoYUVkZ2VCbGVuZDsgICAgICAgICAgICAgICAvKiBDb25zdGFudCB0byB1c2UgYXMgYWxwaGEgZm9yIGVkZ2UgYmxlbmQgKi8KICAgIERXT1JEICAgICAgIGR3UmVzZXJ2ZWQ7CiAgICBEV09SRCAgICAgICBkd0FscGhhRGVzdENvbnN0Qml0RGVwdGg7ICAgICAgIC8qIEJpdCBkZXB0aCB1c2VkIHRvIHNwZWNpZnkgYWxwaGEgY29uc3RhbnQgZm9yIGRlc3RpbmF0aW9uICovCiAgICB1bmlvbgogICAgewogICAgICAgIERXT1JEICAgZHdBbHBoYURlc3RDb25zdDsgICAgICAgICAgICAgICAvKiBDb25zdGFudCB0byB1c2UgYXMgYWxwaGEgY2hhbm5lbCBmb3IgZGVzdCAqLwogICAgICAgIHN0cnVjdCBJV2luZUQzRFN1cmZhY2UgKmxwRERTQWxwaGFEZXN0OyAvKiBTdXJmYWNlIHRvIHVzZSBhcyBhbHBoYSBjaGFubmVsIGZvciBkZXN0ICovCiAgICB9IERVTU1ZVU5JT05OQU1FMTsKICAgIERXT1JEICAgICAgIGR3QWxwaGFTcmNDb25zdEJpdERlcHRoOyAgICAgICAgLyogQml0IGRlcHRoIHVzZWQgdG8gc3BlY2lmeSBhbHBoYSBjb25zdGFudCBmb3Igc291cmNlICovCiAgICB1bmlvbgogICAgewogICAgICAgIERXT1JEICAgZHdBbHBoYVNyY0NvbnN0OyAgICAgICAgICAgICAgICAvKiBDb25zdGFudCB0byB1c2UgYXMgYWxwaGEgY2hhbm5lbCBmb3Igc3JjICovCiAgICAgICAgc3RydWN0IElXaW5lRDNEU3VyZmFjZSAqbHBERFNBbHBoYVNyYzsgIC8qIFN1cmZhY2UgdG8gdXNlIGFzIGFscGhhIGNoYW5uZWwgZm9yIHNyYyAqLwogICAgfSBEVU1NWVVOSU9OTkFNRTI7CiAgICBXSU5FRERDT0xPUktFWSAgZGNrRGVzdENvbG9ya2V5OyAgICAgICAgICAgIC8qIERlc3RDb2xvcmtleSBvdmVycmlkZSAqLwogICAgV0lORUREQ09MT1JLRVkgIGRja1NyY0NvbG9ya2V5OyAgICAgICAgICAgICAvKiBEZXN0Q29sb3JrZXkgb3ZlcnJpZGUgKi8KICAgIERXT1JEICAgICAgIGR3RERGWDsgICAgICAgICAgICAgICAgICAgICAgICAgLyogT3ZlcmxheSBGWCAqLwogICAgRFdPUkQgICAgICAgZHdGbGFnczsgICAgICAgICAgICAgICAgICAgICAgICAvKiBmbGFncyAqLwp9IFdJTkVERE9WRVJMQVlGWDsKCi8qIGR3RERGWCAqLwovKiBhcml0aG1ldGljIHN0cmV0Y2hpbmcgYWxvbmcgeSBheGlzICovCiNkZWZpbmUgV0lORUREQkxURlhfQVJJVEhTVFJFVENIWSAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKLyogbWlycm9yIG9uIHkgYXhpcyAqLwojZGVmaW5lIFdJTkVEREJMVEZYX01JUlJPUkxFRlRSSUdIVCAgICAgICAgICAgICAweDAwMDAwMDAyCi8qIG1pcnJvciBvbiB4IGF4aXMgKi8KI2RlZmluZSBXSU5FRERCTFRGWF9NSVJST1JVUERPV04gICAgICAgICAgICAgICAgMHgwMDAwMDAwNAovKiBkbyBub3QgdGVhciAqLwojZGVmaW5lIFdJTkVEREJMVEZYX05PVEVBUklORyAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4Ci8qIDE4MCBkZWdyZWVzIGNsb2Nrd2lzZSByb3RhdGlvbiAqLwojZGVmaW5lIFdJTkVEREJMVEZYX1JPVEFURTE4MCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwCi8qIDI3MCBkZWdyZWVzIGNsb2Nrd2lzZSByb3RhdGlvbiAqLwojZGVmaW5lIFdJTkVEREJMVEZYX1JPVEFURTI3MCAgICAgICAgICAgICAgICAgICAweDAwMDAwMDIwCi8qIDkwIGRlZ3JlZXMgY2xvY2t3aXNlIHJvdGF0aW9uICovCiNkZWZpbmUgV0lORUREQkxURlhfUk9UQVRFOTAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwNDAKLyogZHdaQnVmZmVyTG93IGFuZCBkd1pCdWZmZXJIaWdoIHNwZWNpZnkgbGltaXRzIHRvIHRoZSBjb3BpZWQgWiB2YWx1ZXMgKi8KI2RlZmluZSBXSU5FRERCTFRGWF9aQlVGRkVSUkFOR0UgICAgICAgICAgICAgICAgMHgwMDAwMDA4MAovKiBhZGQgZHdaQnVmZmVyQmFzZURlc3QgdG8gZXZlcnkgc291cmNlIHogdmFsdWUgYmVmb3JlIGNvbXBhcmUgKi8KI2RlZmluZSBXSU5FRERCTFRGWF9aQlVGRkVSQkFTRURFU1QgICAgICAgICAgICAgMHgwMDAwMDEwMAoKLyogZHdGbGFncyBmb3IgQmx0KiAqLwojZGVmaW5lIFdJTkVEREJMVF9BTFBIQURFU1QgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiNkZWZpbmUgV0lORUREQkxUX0FMUEhBREVTVENPTlNUT1ZFUlJJREUgICAgICAgIDB4MDAwMDAwMDIKI2RlZmluZSBXSU5FRERCTFRfQUxQSEFERVNUTkVHICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNAojZGVmaW5lIFdJTkVEREJMVF9BTFBIQURFU1RTVVJGQUNFT1ZFUlJJREUgICAgICAweDAwMDAwMDA4CiNkZWZpbmUgV0lORUREQkxUX0FMUEhBRURHRUJMRU5EICAgICAgICAgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBXSU5FRERCTFRfQUxQSEFTUkMgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAyMAojZGVmaW5lIFdJTkVEREJMVF9BTFBIQVNSQ0NPTlNUT1ZFUlJJREUgICAgICAgICAweDAwMDAwMDQwCiNkZWZpbmUgV0lORUREQkxUX0FMUEhBU1JDTkVHICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwODAKI2RlZmluZSBXSU5FRERCTFRfQUxQSEFTUkNTVVJGQUNFT1ZFUlJJREUgICAgICAgMHgwMDAwMDEwMAojZGVmaW5lIFdJTkVEREJMVF9BU1lOQyAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMjAwCiNkZWZpbmUgV0lORUREQkxUX0NPTE9SRklMTCAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDA0MDAKI2RlZmluZSBXSU5FRERCTFRfRERGWCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDgwMAojZGVmaW5lIFdJTkVEREJMVF9ERFJPUFMgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAxMDAwCiNkZWZpbmUgV0lORUREQkxUX0tFWURFU1QgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDIwMDAKI2RlZmluZSBXSU5FRERCTFRfS0VZREVTVE9WRVJSSURFICAgICAgICAgICAgICAgMHgwMDAwNDAwMAojZGVmaW5lIFdJTkVEREJMVF9LRVlTUkMgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDA4MDAwCiNkZWZpbmUgV0lORUREQkxUX0tFWVNSQ09WRVJSSURFICAgICAgICAgICAgICAgIDB4MDAwMTAwMDAKI2RlZmluZSBXSU5FRERCTFRfUk9QICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAyMDAwMAojZGVmaW5lIFdJTkVEREJMVF9ST1RBVElPTkFOR0xFICAgICAgICAgICAgICAgICAweDAwMDQwMDAwCiNkZWZpbmUgV0lORUREQkxUX1pCVUZGRVIgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwODAwMDAKI2RlZmluZSBXSU5FRERCTFRfWkJVRkZFUkRFU1RDT05TVE9WRVJSSURFICAgICAgMHgwMDEwMDAwMAojZGVmaW5lIFdJTkVEREJMVF9aQlVGRkVSREVTVE9WRVJSSURFICAgICAgICAgICAweDAwMjAwMDAwCiNkZWZpbmUgV0lORUREQkxUX1pCVUZGRVJTUkNDT05TVE9WRVJSSURFICAgICAgIDB4MDA0MDAwMDAKI2RlZmluZSBXSU5FRERCTFRfWkJVRkZFUlNSQ09WRVJSSURFICAgICAgICAgICAgMHgwMDgwMDAwMAojZGVmaW5lIFdJTkVEREJMVF9XQUlUICAgICAgICAgICAgICAgICAgICAgICAgICAweDAxMDAwMDAwCiNkZWZpbmUgV0lORUREQkxUX0RFUFRIRklMTCAgICAgICAgICAgICAgICAgICAgIDB4MDIwMDAwMDAKI2RlZmluZSBXSU5FRERCTFRfRE9OT1RXQUlUICAgICAgICAgICAgICAgICAgICAgMHgwODAwMDAwMAoKLyogZHdUcmFucyBmb3IgQmx0RmFzdCAqLwojZGVmaW5lIFdJTkVEREJMVEZBU1RfTk9DT0xPUktFWSAgICAgICAgICAgICAgICAweDAwMDAwMDAwCiNkZWZpbmUgV0lORUREQkxURkFTVF9TUkNDT0xPUktFWSAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBXSU5FRERCTFRGQVNUX0RFU1RDT0xPUktFWSAgICAgICAgICAgICAgMHgwMDAwMDAwMgojZGVmaW5lIFdJTkVEREJMVEZBU1RfV0FJVCAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwCiNkZWZpbmUgV0lORUREQkxURkFTVF9ET05PVFdBSVQgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjAKCi8qIEREQ0FQUy5kd1BhbENhcHMgKi8KI2RlZmluZSBXSU5FRERQQ0FQU180QklUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQojZGVmaW5lIFdJTkVERFBDQVBTXzhCSVRFTlRSSUVTICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgV0lORUREUENBUFNfOEJJVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDQKI2RlZmluZSBXSU5FRERQQ0FQU19JTklUSUFMSVpFICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAojZGVmaW5lIFdJTkVERFBDQVBTX1BSSU1BUllTVVJGQUNFICAgICAgICAgICAgICAweDAwMDAwMDEwCiNkZWZpbmUgV0lORUREUENBUFNfUFJJTUFSWVNVUkZBQ0VMRUZUICAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBXSU5FRERQQ0FQU19BTExPVzI1NiAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDA0MAojZGVmaW5lIFdJTkVERFBDQVBTX1ZTWU5DICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDgwCiNkZWZpbmUgV0lORUREUENBUFNfMUJJVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBXSU5FRERQQ0FQU18yQklUICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDIwMAojZGVmaW5lIFdJTkVERFBDQVBTX0FMUEhBICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwNDAwCgovKiBERFNVUkZBQ0VERVNDLmR3RmxhZ3MgKi8KI2RlZmluZSBXSU5FRERTRF9DQVBTICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQojZGVmaW5lIFdJTkVERFNEX0hFSUdIVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgV0lORUREU0RfV0lEVEggICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDQKI2RlZmluZSBXSU5FRERTRF9QSVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAojZGVmaW5lIFdJTkVERFNEX0JBQ0tCVUZGRVJDT1VOVCAgICAgICAgICAgICAgICAweDAwMDAwMDIwCiNkZWZpbmUgV0lORUREU0RfWkJVRkZFUkJJVERFUFRIICAgICAgICAgICAgICAgIDB4MDAwMDAwNDAKI2RlZmluZSBXSU5FRERTRF9BTFBIQUJJVERFUFRIICAgICAgICAgICAgICAgICAgMHgwMDAwMDA4MAojZGVmaW5lIFdJTkVERFNEX0xQU1VSRkFDRSAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwODAwCiNkZWZpbmUgV0lORUREU0RfUElYRUxGT1JNQVQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDEwMDAKI2RlZmluZSBXSU5FRERTRF9DS0RFU1RPVkVSTEFZICAgICAgICAgICAgICAgICAgMHgwMDAwMjAwMAojZGVmaW5lIFdJTkVERFNEX0NLREVTVEJMVCAgICAgICAgICAgICAgICAgICAgICAweDAwMDA0MDAwCiNkZWZpbmUgV0lORUREU0RfQ0tTUkNPVkVSTEFZICAgICAgICAgICAgICAgICAgIDB4MDAwMDgwMDAKI2RlZmluZSBXSU5FRERTRF9DS1NSQ0JMVCAgICAgICAgICAgICAgICAgICAgICAgMHgwMDAxMDAwMAojZGVmaW5lIFdJTkVERFNEX01JUE1BUENPVU5UICAgICAgICAgICAgICAgICAgICAweDAwMDIwMDAwCiNkZWZpbmUgV0lORUREU0RfUkVGUkVTSFJBVEUgICAgICAgICAgICAgICAgICAgIDB4MDAwNDAwMDAKI2RlZmluZSBXSU5FRERTRF9MSU5FQVJTSVpFICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MDAwMAojZGVmaW5lIFdJTkVERFNEX1RFWFRVUkVTVEFHRSAgICAgICAgICAgICAgICAgICAweDAwMTAwMDAwCiNkZWZpbmUgV0lORUREU0RfRlZGICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAyMDAwMDAKI2RlZmluZSBXSU5FRERTRF9TUkNWQkhBTkRMRSAgICAgICAgICAgICAgICAgICAgMHgwMDQwMDAwMAojZGVmaW5lIFdJTkVERFNEX0FMTCAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwN2ZmOWVlCgovKiBTZXQvR2V0IENvbG91ciBLZXkgRmxhZ3MgKi8KI2RlZmluZSBXSU5FRERDS0VZX0NPTE9SU1BBQ0UgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMSAgLyogU3RydWN0IGlzIHNpbmdsZSBjb2xvdXIgc3BhY2UgKi8KI2RlZmluZSBXSU5FRERDS0VZX0RFU1RCTFQgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMiAgLyogVG8gYmUgdXNlZCBhcyBkZXN0IGZvciBibHQgKi8KI2RlZmluZSBXSU5FRERDS0VZX0RFU1RPVkVSTEFZICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwNCAgLyogVG8gYmUgdXNlZCBhcyBkZXN0IGZvciBDSyBvdmVybGF5cyAqLwojZGVmaW5lIFdJTkVERENLRVlfU1JDQkxUICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA4ICAvKiBUbyBiZSB1c2VkIGFzIHNyYyBmb3IgYmx0ICovCiNkZWZpbmUgV0lORUREQ0tFWV9TUkNPVkVSTEFZICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMTAgIC8qIFRvIGJlIHVzZWQgYXMgc3JjIGZvciBDSyBvdmVybGF5cyAqLwoKLyogZHdGbGFncyBmb3IgR2V0Qmx0U3RhdHVzICovCiNkZWZpbmUgV0lORURER0JTX0NBTkJMVCAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBXSU5FRERHQlNfSVNCTFRET05FICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwMgoKLyogZHdGbGFncyBmb3IgR2V0RmxpcFN0YXR1cyAqLwojZGVmaW5lIFdJTkVEREdGU19DQU5GTElQICAgICAgICAgICAgICAgICAgICAgICAxTAojZGVmaW5lIFdJTkVEREdGU19JU0ZMSVBET05FICAgICAgICAgICAgICAgICAgICAyTAoKLyogZHdGbGFncyBmb3IgRmxpcCAqLwojZGVmaW5lIFdJTkVEREZMSVBfV0FJVCAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAxCiNkZWZpbmUgV0lORURERkxJUF9FVkVOICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDIgLyogb25seSB2YWxpZCBmb3Igb3ZlcmxheSAqLwojZGVmaW5lIFdJTkVEREZMSVBfT0REICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDA0IC8qIG9ubHkgdmFsaWQgZm9yIG92ZXJsYXkgKi8KI2RlZmluZSBXSU5FRERGTElQX05PVlNZTkMgICAgICAgICAgICAgICAgICAgICAgMHgwMDAwMDAwOAojZGVmaW5lIFdJTkVEREZMSVBfU1RFUkVPICAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDEwCiNkZWZpbmUgV0lORURERkxJUF9ET05PVFdBSVQgICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBXSU5FRERGTElQX0lOVEVSVkFMMiAgICAgICAgICAgICAgICAgICAgMHgwMjAwMDAwMAojZGVmaW5lIFdJTkVEREZMSVBfSU5URVJWQUwzICAgICAgICAgICAgICAgICAgICAweDAzMDAwMDAwCiNkZWZpbmUgV0lORURERkxJUF9JTlRFUlZBTDQgICAgICAgICAgICAgICAgICAgIDB4MDQwMDAwMDAKCiNlbmRpZgo=