LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQoqIKkgMjAxNSBNaWNyb2NoaXAgVGVjaG5vbG9neSBJbmMuIGFuZCBpdHMgc3Vic2lkaWFyaWVzLg0KKiBZb3UgbWF5IHVzZSB0aGlzIHNvZnR3YXJlIGFuZCBhbnkgZGVyaXZhdGl2ZXMgZXhjbHVzaXZlbHkgd2l0aA0KKiBNaWNyb2NoaXAgcHJvZHVjdHMuDQoqIFRISVMgU09GVFdBUkUgSVMgU1VQUExJRUQgQlkgTUlDUk9DSElQICJBUyBJUyIuDQoqIE5PIFdBUlJBTlRJRVMsIFdIRVRIRVIgRVhQUkVTUywgSU1QTElFRCBPUiBTVEFUVVRPUlksIEFQUExZIFRPIFRISVMgU09GVFdBUkUsDQoqIElOQ0xVRElORyBBTlkgSU1QTElFRCBXQVJSQU5USUVTIE9GIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWSwNCiogQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLCBPUiBJVFMgSU5URVJBQ1RJT04gV0lUSCBNSUNST0NISVANCiogUFJPRFVDVFMsIENPTUJJTkFUSU9OIFdJVEggQU5ZIE9USEVSIFBST0RVQ1RTLCBPUiBVU0UgSU4gQU5ZIEFQUExJQ0FUSU9OLg0KKiBJTiBOTyBFVkVOVCBXSUxMIE1JQ1JPQ0hJUCBCRSBMSUFCTEUgRk9SIEFOWSBJTkRJUkVDVCwgU1BFQ0lBTCwgUFVOSVRJVkUsDQoqIElOQ0lERU5UQUwgT1IgQ09OU0VRVUVOVElBTCBMT1NTLCBEQU1BR0UsIENPU1QgT1IgRVhQRU5TRSBPRiBBTlkgS0lORA0KKiBXSEFUU09FVkVSIFJFTEFURUQgVE8gVEhFIFNPRlRXQVJFLCBIT1dFVkVSIENBVVNFRCwgRVZFTiBJRiBNSUNST0NISVAgSEFTDQoqIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT1IgVEhFIERBTUFHRVMgQVJFIEZPUkVTRUVBQkxFLg0KKiBUTyBUSEUgRlVMTEVTVCBFWFRFTlQgQUxMT1dFRCBCWSBMQVcsIE1JQ1JPQ0hJUCdTIFRPVEFMIExJQUJJTElUWSBPTiBBTEwNCiogQ0xBSU1TIElOIEFOWSBXQVkgUkVMQVRFRCBUTyBUSElTIFNPRlRXQVJFIFdJTEwgTk9UIEVYQ0VFRCBUSEUgQU1PVU5UIE9GDQoqIEZFRVMsIElGIEFOWSwgVEhBVCBZT1UgSEFWRSBQQUlEIERJUkVDVExZIFRPIE1JQ1JPQ0hJUCBGT1IgVEhJUyBTT0ZUV0FSRS4NCiogTUlDUk9DSElQIFBST1ZJREVTIFRISVMgU09GVFdBUkUgQ09ORElUSU9OQUxMWSBVUE9OIFlPVVIgQUNDRVBUQU5DRQ0KKiBPRiBUSEVTRSBURVJNUy4NCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KDQpWZXJzaW9uIENvbnRyb2wgSW5mb3JtYXRpb24gKFBlcmZvcmNlKQ0KKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQokUmV2aXNpb246ICMxICQgDQokRGF0ZVRpbWU6IDIwMTYvMDkvMjIgMDg6MDM6NDkgJCANCiRBdXRob3I6IHByYW1hbnMgJA0KTGFzdCBDaGFuZ2U6IFJlbmFtZWQgZWNpYV9pbml0IHRvIGludGVycnVwdF9pbml0DQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQovKiogQGZpbGUgaW50ZXJydXB0LmgNCiogXGJyaWVmIEludGVycnVwdCBIZWFkZXIgRmlsZQ0KKiBcYXV0aG9yIGp2YXNhbnRoDQoqIA0KKiBUaGlzIGZpbGUgaW1wbGVtZW50cyB0aGUgSW50ZXJydXB0IE1vZHVsZSBIZWFkZXIgZmlsZSAgDQoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQoNCi8qKiBAZGVmZ3JvdXAgSW50ZXJydXB0DQogKiAgQHsNCiAqLw0KDQojaWZuZGVmIF9JTlRFUlJVUFRfSA0KI2RlZmluZSBfSU5URVJSVVBUX0gNCg0KLy8gR0lSUSBJRHMgZm9yIEVDIEludGVycnVwdCBBZ2dyZWdhdG9yDQplbnVtIE1FQ19HSVJRX0lEUw0Kew0KICAgIE1FQ19HSVJRMDhfSUQgPSAwLA0KICAgIE1FQ19HSVJRMDlfSUQsICAgICAgICAgICAgICAgICAgDQogICAgTUVDX0dJUlExMF9JRCwgICAgICAgICAgICAgICAgICANCiAgICBNRUNfR0lSUTExX0lELCAgICAgICAgICAgICAgICAgIA0KICAgIE1FQ19HSVJRMTJfSUQsICAgICAgICAgICAgICAgICAgDQogICAgTUVDX0dJUlExM19JRCwgICAgICAgICAgICAgICAgICANCiAgICBNRUNfR0lSUTE0X0lELCAgICAgICAgICAgICAgICAgIA0KICAgIE1FQ19HSVJRMTVfSUQsICAgICAgICAgICAgICAgICAgDQogICAgTUVDX0dJUlExNl9JRCwgICAgICAgICAgICAgICAgICANCiAgICBNRUNfR0lSUTE3X0lELCAgICAgICAgICAgICAgICAgIA0KICAgIE1FQ19HSVJRMThfSUQsICAgICAgICAgICAgICAgICAgDQogICAgTUVDX0dJUlExOV9JRCwgICAgICAgICAgICAgICAgICANCiAgICBNRUNfR0lSUTIwX0lELCAgICAgICAgICAgICAgICAgIA0KICAgIE1FQ19HSVJRMjFfSUQsICAgICAgICAgICAgICAgICAgDQogICAgTUVDX0dJUlEyMl9JRCwgICAgICAgICAgICAgICAgICANCiAgICBNRUNfR0lSUTIzX0lELCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgTUVDX0dJUlFfSURfTUFYDQp9Ow0KDQovL0JpdG1hc2sgb2YgR0lSUSBpbiBFQ0lBIEJsb2NrIFJlZ2lzdGVycw0KI2RlZmluZSBNRUNfR0lSUTA4X0JJVE1BU0sgICAgICAgICAgKDFVTCA8PCAoTUVDX0dJUlEwOF9JRCArIDgpKQ0KI2RlZmluZSBNRUNfR0lSUTA5X0JJVE1BU0sgICAgICAgICAgKDFVTCA8PCAoTUVDX0dJUlEwOV9JRCArIDgpKSAgDQojZGVmaW5lIE1FQ19HSVJRMTBfQklUTUFTSyAgICAgICAgICAoMVVMIDw8IChNRUNfR0lSUTEwX0lEICsgOCkpICANCiNkZWZpbmUgTUVDX0dJUlExMV9CSVRNQVNLICAgICAgICAgICgxVUwgPDwgKE1FQ19HSVJRMTFfSUQgKyA4KSkgDQojZGVmaW5lIE1FQ19HSVJRMTJfQklUTUFTSyAgICAgICAgICAoMVVMIDw8IChNRUNfR0lSUTEyX0lEICsgOCkpIA0KI2RlZmluZSBNRUNfR0lSUTEzX0JJVE1BU0sgICAgICAgICAgKDFVTCA8PCAoTUVDX0dJUlExM19JRCArIDgpKSANCiNkZWZpbmUgTUVDX0dJUlExNF9CSVRNQVNLICAgICAgICAgICgxVUwgPDwgKE1FQ19HSVJRMTRfSUQgKyA4KSkgDQojZGVmaW5lIE1FQ19HSVJRMTVfQklUTUFTSyAgICAgICAgICAoMVVMIDw8IChNRUNfR0lSUTE1X0lEICsgOCkpIA0KI2RlZmluZSBNRUNfR0lSUTE2X0JJVE1BU0sgICAgICAgICAgKDFVTCA8PCAoTUVDX0dJUlExNl9JRCArIDgpKSANCiNkZWZpbmUgTUVDX0dJUlExN19CSVRNQVNLICAgICAgICAgICgxVUwgPDwgKE1FQ19HSVJRMTdfSUQgKyA4KSkgDQojZGVmaW5lIE1FQ19HSVJRMThfQklUTUFTSyAgICAgICAgICAoMVVMIDw8IChNRUNfR0lSUTE4X0lEICsgOCkpIA0KI2RlZmluZSBNRUNfR0lSUTE5X0JJVE1BU0sgICAgICAgICAgKDFVTCA8PCAoTUVDX0dJUlExOV9JRCArIDgpKSANCiNkZWZpbmUgTUVDX0dJUlEyMF9CSVRNQVNLICAgICAgICAgICgxVUwgPDwgKE1FQ19HSVJRMjBfSUQgKyA4KSkgDQojZGVmaW5lIE1FQ19HSVJRMjFfQklUTUFTSyAgICAgICAgICAoMVVMIDw8IChNRUNfR0lSUTIxX0lEICsgOCkpIA0KI2RlZmluZSBNRUNfR0lSUTIyX0JJVE1BU0sgICAgICAgICAgKDFVTCA8PCAoTUVDX0dJUlEyMl9JRCArIDgpKSANCiNkZWZpbmUgTUVDX0dJUlEyM19CSVRNQVNLICAgICAgICAgICgxVUwgPDwgKE1FQ19HSVJRMjNfSUQgKyA4KSkgDQoNCiNkZWZpbmUgSU5URVJSVVBUX01PREVfQUxMX0FHR1JFR0FURUQgICAgICAgICgwdSkNCiNkZWZpbmUgSU5URVJSVVBUX01PREVfRElSRUNUICAgICAgICAgICAgICAgICgxdSkNCg0KLy8gQml0IG1hcCBvZiBHSVJRcyB3aG9zZSBzb3VyY2VzIGNhbiBiZSBkaXJlY3RseSBjb25uZWN0ZWQgdG8gdGhlIE5WSUMNCi8vIEdJUlFzIDEzIC0gMTksIDIxLCAyMywgMjQtMjYNCiNkZWZpbmUgRUNJQV9HSVJRX0RJUkVDVF9CSVRNQVAgICAgICgweDA3QUZFMDAwdWwpDQoNCi8qDQogKiAgbiA9IGJbNzowXSAgID0gemVyby1iYXNlZCBkaXJlY3QgbWFwcGVkIE5WSUMgSUQNCiAqICBtID0gYlsxNTo4XSAgPSB6ZXJvLWJhc2VkIGFnZ3JlZ2F0ZWQgTlZJQyBJRA0KICogIGEgPSBiWzIzOjE2XSA9IGJsb2NrIEFnZ3JlZ2F0b3IgcmVnaXN0ZXIgYmxvY2sgSUQNCiAqICBiID0gYlszMToyNF0gPSBibG9jayBiaXQgcG9zaXRpb24gaW4gQWdncmVnYXRvciByZWdpc3RlcnMNCiovDQojZGVmaW5lIElST1VURShiLGEsbSxuKSAJKCgodWludDMyX3QpKG4pJjB4RkZ1bCkgKyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgodWludDMyX3QpKG0pJjB4RkZ1bCk8PDh1KSArIFwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCgodWludDMyX3QpKGEpLTh1bCkmMHgwRik8PDE2dSkgKyBcDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgodWludDMyX3QpKGIpJjB4MUZ1bCk8PDI0KSkNCg0KI2RlZmluZSBFQ0lBX05WSUNfSURfQklUUE9TICAgICAgICAgICAgICgwdSkNCiNkZWZpbmUgRUNJQV9JQV9OVklDX0lEX0JJVFBPUyAgICAgICAgICAoOHUpDQojZGVmaW5lIEVDSUFfR0lSUV9JRF9CSVRQT1MgICAgICAgICAgICAgKDE2dSkNCiNkZWZpbmUgRUNJQV9HSVJRX0JJVF9CSVRQT1MgICAgICAgICAgICAoMjR1KQ0KDQovLw0KLy8gR0lSUTA4DQovLw0KI2RlZmluZSBHUElPXzAxNDBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgwLDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNDFfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxLDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNDJfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyLDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNDNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgzLDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNDRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg0LDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNDVfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg1LDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNDdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg3LDgsMCwwKQ0KLy8NCiNkZWZpbmUgR1BJT18wMTUwX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoOCw4LDAsMCkNCiNkZWZpbmUgR1BJT18wMTUxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoOSw4LDAsMCkNCiNkZWZpbmUgR1BJT18wMTUyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTAsOCwwLDApDQojZGVmaW5lIEdQSU9fMDE1M19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDExLDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNTRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxMiw4LDAsMCkNCiNkZWZpbmUgR1BJT18wMTU1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTMsOCwwLDApDQojZGVmaW5lIEdQSU9fMDE1Nl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE0LDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNTdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNSw4LDAsMCkNCi8vDQojZGVmaW5lIEdQSU9fMDE2MF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE2LDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNjFfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNyw4LDAsMCkNCiNkZWZpbmUgR1BJT18wMTYyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTgsOCwwLDApDQojZGVmaW5lIEdQSU9fMDE2M19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE5LDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNjRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMCw4LDAsMCkNCiNkZWZpbmUgR1BJT18wMTY1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjEsOCwwLDApDQojZGVmaW5lIEdQSU9fMDE2Nl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIyLDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNjdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMyw4LDAsMCkNCg0KI2RlZmluZSBHUElPXzAxNzBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyNCw4LDAsMCkNCiNkZWZpbmUgR1BJT18wMTcxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjUsOCwwLDApDQojZGVmaW5lIEdQSU9fMDE3Ml9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI2LDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNzNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyNyw4LDAsMCkNCiNkZWZpbmUgR1BJT18wMTc0X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjgsOCwwLDApDQojZGVmaW5lIEdQSU9fMDE3NV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI5LDgsMCwwKQ0KI2RlZmluZSBHUElPXzAxNzZfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgzMCw4LDAsMCkNCg0KLy8NCi8vIEdJUlEwOQ0KLy8NCiNkZWZpbmUgR1BJT18wMTAwX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMCw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTAxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMSw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTAyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMiw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTAzX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMyw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTA0X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoNCw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTA1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoNSw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTA1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoNSw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTA3X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoNyw5LDEsMSkNCi8vDQojZGVmaW5lIEdQSU9fMDExMF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDgsOSwxLDEpDQojZGVmaW5lIEdQSU9fMDExMV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDksOSwxLDEpDQojZGVmaW5lIEdQSU9fMDExMl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDEwLDksMSwxKQ0KI2RlZmluZSBHUElPXzAxMTNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxMSw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTE0X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTIsOSwxLDEpDQojZGVmaW5lIEdQSU9fMDExNV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDEzLDksMSwxKQ0KI2RlZmluZSBHUElPXzAxMTZfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNCw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTE3X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTUsOSwxLDEpDQovLw0KI2RlZmluZSBHUElPXzAxMjBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNiw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTIxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTcsOSwxLDEpDQojZGVmaW5lIEdQSU9fMDEyMl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE4LDksMSwxKQ0KI2RlZmluZSBHUElPXzAxMjRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMCw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTI1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjEsOSwxLDEpDQojZGVmaW5lIEdQSU9fMDEyNl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIyLDksMSwxKQ0KI2RlZmluZSBHUElPXzAxMjdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMyw5LDEsMSkNCi8vDQojZGVmaW5lIEdQSU9fMDEzMF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI0LDksMSwxKQ0KI2RlZmluZSBHUElPXzAxMzFfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyNSw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTMyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjYsOSwxLDEpDQojZGVmaW5lIEdQSU9fMDEzM19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI3LDksMSwxKQ0KI2RlZmluZSBHUElPXzAxMzRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyOCw5LDEsMSkNCiNkZWZpbmUgR1BJT18wMTM1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjksOSwxLDEpDQojZGVmaW5lIEdQSU9fMDEzNl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDMwLDksMSwxKQ0KDQovLw0KLy8gR0lSUTEwDQovLw0KI2RlZmluZSBHUElPXzAwNDBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgwLDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDQxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMSwxMCwyLDIpDQojZGVmaW5lIEdQSU9fMDA0Ml9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIsMTAsMiwyKQ0KI2RlZmluZSBHUElPXzAwNDNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgzLDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDQ0X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoNCwxMCwyLDIpDQojZGVmaW5lIEdQSU9fMDA0NV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDUsMTAsMiwyKQ0KI2RlZmluZSBHUElPXzAwNDVfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg1LDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDQ3X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoNywxMCwyLDIpDQovLw0KI2RlZmluZSBHUElPXzAwNTBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg4LDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDUxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoOSwxMCwyLDIpDQojZGVmaW5lIEdQSU9fMDA1Ml9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDEwLDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDUzX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTEsMTAsMiwyKQ0KI2RlZmluZSBHUElPXzAwNTRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxMiwxMCwyLDIpDQojZGVmaW5lIEdQSU9fMDA1NV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDEzLDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDU2X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTQsMTAsMiwyKQ0KI2RlZmluZSBHUElPXzAwNTdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNSwxMCwyLDIpDQovLw0KI2RlZmluZSBHUElPXzAwNjBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNiwxMCwyLDIpDQojZGVmaW5lIEdQSU9fMDA2MV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE3LDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDYyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTgsMTAsMiwyKQ0KI2RlZmluZSBHUElPXzAwNjNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxOSwxMCwyLDIpDQojZGVmaW5lIEdQSU9fMDA2NF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIwLDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDY1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjEsMTAsMiwyKQ0KI2RlZmluZSBHUElPXzAwNjZfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMiwxMCwyLDIpDQojZGVmaW5lIEdQSU9fMDA2N19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIzLDEwLDIsMikNCi8vDQojZGVmaW5lIEdQSU9fMDA3MF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI0LDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDcxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjUsMTAsMiwyKQ0KI2RlZmluZSBHUElPXzAwNzJfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyNiwxMCwyLDIpDQojZGVmaW5lIEdQSU9fMDA3M19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI3LDEwLDIsMikNCiNkZWZpbmUgR1BJT18wMDc0X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjgsMTAsMiwyKQ0KI2RlZmluZSBHUElPXzAwNzVfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyOSwxMCwyLDIpDQojZGVmaW5lIEdQSU9fMDA3Nl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDMwLDEwLDIsMikNCg0KLy8NCi8vIEdJUlExMQ0KLy8NCiNkZWZpbmUgR1BJT18wMDAwX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMCwxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAwMV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDEsMTEsMywzKQ0KI2RlZmluZSBHUElPXzAwMDJfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyLDExLDMsMykNCiNkZWZpbmUgR1BJT18wMDAzX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMywxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAwNF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDQsMTEsMywzKQ0KI2RlZmluZSBHUElPXzAwMDVfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg1LDExLDMsMykNCiNkZWZpbmUgR1BJT18wMDA2X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoNiwxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAwN19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDcsMTEsMywzKQ0KLy8NCiNkZWZpbmUgR1BJT18wMDEwX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoOCwxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAxMV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDksMTEsMywzKQ0KI2RlZmluZSBHUElPXzAwMTJfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxMCwxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAxM19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDExLDExLDMsMykNCiNkZWZpbmUgR1BJT18wMDE0X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTIsMTEsMywzKQ0KI2RlZmluZSBHUElPXzAwMTVfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxMywxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAxNl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE0LDExLDMsMykNCiNkZWZpbmUgR1BJT18wMDE3X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTUsMTEsMywzKQ0KLy8NCiNkZWZpbmUgR1BJT18wMDIwX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTYsMTEsMywzKQ0KI2RlZmluZSBHUElPXzAwMjFfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNywxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAyMl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE4LDExLDMsMykNCiNkZWZpbmUgR1BJT18wMDIzX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTksMTEsMywzKQ0KI2RlZmluZSBHUElPXzAwMjRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMCwxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAyNV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIxLDExLDMsMykNCiNkZWZpbmUgR1BJT18wMDI2X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjIsMTEsMywzKQ0KI2RlZmluZSBHUElPXzAwMjdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMywxMSwzLDMpDQovLw0KI2RlZmluZSBHUElPXzAwMzBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyNCwxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAzMV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI1LDExLDMsMykNCiNkZWZpbmUgR1BJT18wMDMyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjYsMTEsMywzKQ0KI2RlZmluZSBHUElPXzAwMzNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyNywxMSwzLDMpDQojZGVmaW5lIEdQSU9fMDAzNF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI4LDExLDMsMykNCiNkZWZpbmUgR1BJT18wMDM1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjksMTEsMywzKQ0KI2RlZmluZSBHUElPXzAwMzZfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgzMCwxMSwzLDMpDQoNCg0KLy8gR0lSUTEyDQovLw0KI2RlZmluZSBHUElPXzAyMDBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgwLDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjAxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMSwxMiw0LDQpDQojZGVmaW5lIEdQSU9fMDIwMl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIsMTIsNCw0KQ0KI2RlZmluZSBHUElPXzAyMDNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgzLDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjA0X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoNCwxMiw0LDQpDQojZGVmaW5lIEdQSU9fMDIwNV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDUsMTIsNCw0KQ0KI2RlZmluZSBHUElPXzAyMDZfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg2LDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjA3X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoNywxMiw0LDQpDQovLw0KI2RlZmluZSBHUElPXzAyMTBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg4LDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjExX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoOSwxMiw0LDQpDQojZGVmaW5lIEdQSU9fMDIxMl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDEwLDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjEzX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTEsMTIsNCw0KQ0KI2RlZmluZSBHUElPXzAyMTRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxMiwxMiw0LDQpDQojZGVmaW5lIEdQSU9fMDIxNV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDEzLDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjE2X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTQsMTIsNCw0KQ0KI2RlZmluZSBHUElPXzAyMTdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNSwxMiw0LDQpDQovLw0KI2RlZmluZSBHUElPXzAyMjBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNiwxMiw0LDQpDQojZGVmaW5lIEdQSU9fMDIyMV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE3LDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjIyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTgsMTIsNCw0KQ0KI2RlZmluZSBHUElPXzAyMjNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxOSwxMiw0LDQpDQojZGVmaW5lIEdQSU9fMDIyNF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIwLDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjI1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjEsMTIsNCw0KQ0KI2RlZmluZSBHUElPXzAyMjZfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMiwxMiw0LDQpDQojZGVmaW5lIEdQSU9fMDIyN19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIzLDEyLDQsNCkNCi8vDQojZGVmaW5lIEdQSU9fMDIzMF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI0LDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjMxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjUsMTIsNCw0KQ0KI2RlZmluZSBHUElPXzAyMzJfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyNiwxMiw0LDQpDQojZGVmaW5lIEdQSU9fMDIzM19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI3LDEyLDQsNCkNCiNkZWZpbmUgR1BJT18wMjM0X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjgsMTIsNCw0KQ0KI2RlZmluZSBHUElPXzAyMzVfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyOSwxMiw0LDQpDQojZGVmaW5lIEdQSU9fMDIzNl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDMwLDEyLDQsNCkNCg0KDQoNCi8vDQovLyBHSVJRMTMNCi8vDQojZGVmaW5lIFNNQjBfSVJPVVRFICAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDAsMTMsNSwyMCkNCiNkZWZpbmUgU01CMV9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMSwxMyw1LDIxKQ0KI2RlZmluZSBTTUIyX0lST1VURSAgICAgICAgICAgICAgICAgICAgIElST1VURSgyLDEzLDUsMjIpDQojZGVmaW5lIFNNQjNfSVJPVVRFICAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDMsMTMsNSwyMykNCg0KLy8NCi8vIEdJUlExNA0KLy8NCiNkZWZpbmUgRE1BMF9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMCwxNCw2LDI0KQ0KI2RlZmluZSBETUExX0lST1VURSAgICAgICAgICAgICAgICAgICAgIElST1VURSgxLDE0LDYsMjUpDQojZGVmaW5lIERNQTJfSVJPVVRFICAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDIsMTQsNiwyNikNCiNkZWZpbmUgRE1BM19JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMywxNCw2LDI3KQ0KI2RlZmluZSBETUE0X0lST1VURSAgICAgICAgICAgICAgICAgICAgIElST1VURSg0LDE0LDYsMjgpDQojZGVmaW5lIERNQTVfSVJPVVRFICAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDUsMTQsNiwyOSkNCiNkZWZpbmUgRE1BNl9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoNiwxNCw2LDMwKQ0KI2RlZmluZSBETUE3X0lST1VURSAgICAgICAgICAgICAgICAgICAgIElST1VURSg3LDE0LDYsMzEpDQojZGVmaW5lIERNQThfSVJPVVRFICAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDgsMTQsNiwzMykNCiNkZWZpbmUgRE1BOV9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoOSwxNCw2LDMzKQ0KI2RlZmluZSBETUExMF9JUk9VVEUgICAgICAgICAgICAgICAgICAgIElST1VURSgxMCwxNCw2LDM0KQ0KI2RlZmluZSBETUExMV9JUk9VVEUgICAgICAgICAgICAgICAgICAgIElST1VURSgxMSwxNCw2LDM1KQ0KI2RlZmluZSBETUExMl9JUk9VVEUgICAgICAgICAgICAgICAgICAgIElST1VURSgxMiwxNCw2LDM2KQ0KI2RlZmluZSBETUExM19JUk9VVEUgICAgICAgICAgICAgICAgICAgIElST1VURSgxMywxNCw2LDM3KQ0KDQoNCi8vDQovLyBHSVJRMTUNCi8vDQojZGVmaW5lIFVBUlQwX0lST1VURSAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDAsMTUsNyw0MCkNCiNkZWZpbmUgVUFSVDFfSVJPVVRFICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMSwxNSw3LDQxKQ0KI2RlZmluZSBFTUkwX0lST1VURSAgICAgICAgICAgICAgICAgICAgIElST1VURSgyLDE1LDcsNDIpDQojZGVmaW5lIEVNSTFfSVJPVVRFICAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDMsMTUsNyw0MykNCiNkZWZpbmUgRU1JMl9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoNCwxNSw3LDQ0KQ0KI2RlZmluZSBBQ1BJX0VDMF9JQkZfSVJPVVRFICAgICAgICAgICAgIElST1VURSg1LDE1LDcsNDUpDQojZGVmaW5lIEFDUElfRUMwX09CRl9JUk9VVEUgICAgICAgICAgICAgSVJPVVRFKDYsMTUsNyw0NikNCiNkZWZpbmUgQUNQSV9FQzFfSUJGX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoNywxNSw3LDQ3KQ0KI2RlZmluZSBBQ1BJX0VDMV9PQkZfSVJPVVRFICAgICAgICAgICAgIElST1VURSg4LDE1LDcsNDgpDQojZGVmaW5lIEFDUElfRUMyX0lCRl9JUk9VVEUgICAgICAgICAgICAgSVJPVVRFKDksMTUsNyw0OSkNCiNkZWZpbmUgQUNQSV9FQzJfT0JGX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTAsMTUsNyw1MCkNCiNkZWZpbmUgQUNQSV9FQzNfSUJGX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTEsMTUsNyw1MSkNCiNkZWZpbmUgQUNQSV9FQzNfT0JGX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTIsMTUsNyw1MikNCiNkZWZpbmUgQUNQSV9FQzRfSUJGX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTMsMTUsNyw1MykNCiNkZWZpbmUgQUNQSV9FQzRfT0JGX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTQsMTUsNyw1NCkNCiNkZWZpbmUgQUNQSV9QTTFfQ1RMX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTUsMTUsNyw1NSkNCiNkZWZpbmUgQUNQSV9QTTFfRU5fSVJPVVRFICAgICAgICAgICAgICBJUk9VVEUoMTYsMTUsNyw1NikNCiNkZWZpbmUgQUNQSV9QTTFfU1RTX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTcsMTUsNyw1NykNCiNkZWZpbmUgRU04MDQyX09CRl9JUk9VVEUgICAgICAgICAgICAgICBJUk9VVEUoMTgsMTUsNyw1OCkNCiNkZWZpbmUgRU04MDQyX0lCRl9JUk9VVEUgICAgICAgICAgICAgICBJUk9VVEUoMTksMTUsNyw1OSkNCiNkZWZpbmUgTUJPWF9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMjAsMTUsNyw2MCkNCiNkZWZpbmUgUE9SVDgwX0RCRzBfQkRQSU5UX0lST1VURSAgICAgICBJUk9VVEUoMjIsMTUsNyw2MikNCiNkZWZpbmUgUE9SVDgwX0RCRzFfQkRQSU5UX0lST1VURSAgICAgICBJUk9VVEUoMjMsMTUsNyw2MykNCiNkZWZpbmUgVEVTVF9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMjQsMTUsNyw2NCkNCg0KLy8NCi8vIEdJUlExNg0KLy8NCiNkZWZpbmUgUEtFX0VSUk9SX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMCwxNiw4LDY1KQ0KI2RlZmluZSBQS0VfRU5EX0lST1VURSAgICAgICAgICAgICAgICAgIElST1VURSgxLDE2LDgsNjYpDQojZGVmaW5lIFJOR19JUk9VVEUgICAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDIsMTYsOCw2NykNCiNkZWZpbmUgQUVTX0lST1VURSAgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMywxNiw4LDY4KQ0KI2RlZmluZSBIQVNIX0lST1VURSAgICAgICAgICAgICAgICAgICAgIElST1VURSg0LDE2LDgsNjkpDQoNCi8vDQovLyBHSVJRMTcNCi8vDQojZGVmaW5lIFBFQ0lfSVJPVVRFICAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDAsMTcsOSw3MCkNCiNkZWZpbmUgVEFDSDBfSVJPVVRFICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMSwxNyw5LDcxKQ0KI2RlZmluZSBUQUNIMV9JUk9VVEUgICAgICAgICAgICAgICAgICAgIElST1VURSgyLDE3LDksNzIpDQojZGVmaW5lIFRBQ0gyX0lST1VURSAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDMsMTcsOSw3MykNCiNkZWZpbmUgUlBNMlBXTTBfRkFJTF9JUk9VVEUgICAgICAgICAgICBJUk9VVEUoNCwxNyw5LDc0KQ0KI2RlZmluZSBSUE0yUFdNMF9TVEFMTF9JUk9VVEUgICAgICAgICAgIElST1VURSg1LDE3LDksNzUpDQojZGVmaW5lIFJQTTJQV00xX0ZBSUxfSVJPVVRFICAgICAgICAgICAgSVJPVVRFKDYsMTcsOSw3NikNCiNkZWZpbmUgUlBNMlBXTTFfU1RBTExfSVJPVVRFICAgICAgICAgICBJUk9VVEUoNywxNyw5LDc3KQ0KI2RlZmluZSBBRENfU05HTF9JUk9VVEUgICAgICAgICAgICAgICAgIElST1VURSg4LDE3LDksNzgpDQojZGVmaW5lIEFEQ19SUFRfSVJPVVRFICAgICAgICAgICAgICAgICAgSVJPVVRFKDksMTcsOSw3OSkNCiNkZWZpbmUgUkNfSUQwX0lST1VURSAgICAgICAgICAgICAgICAgICBJUk9VVEUoMTAsMTcsOSw4MCkNCiNkZWZpbmUgUkNfSUQxX0lST1VURSAgICAgICAgICAgICAgICAgICBJUk9VVEUoMTEsMTcsOSw4MSkNCiNkZWZpbmUgUkNfSUQyX0lST1VURSAgICAgICAgICAgICAgICAgICBJUk9VVEUoMTIsMTcsOSw4MikNCiNkZWZpbmUgTEVEMF9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMTMsMTcsOSw4MykNCiNkZWZpbmUgTEVEMV9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMTQsMTcsOSw4NCkNCiNkZWZpbmUgTEVEMl9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMTUsMTcsOSw4NSkNCiNkZWZpbmUgTEVEM19JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMTYsMTcsOSw4NikNCiNkZWZpbmUgUEhPVF9JUk9VVEUgICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMTcsMTcsOSw4NykNCiNkZWZpbmUgUE9XRVJfR1VBUkQwX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTgsMTcsOSw4OCkNCiNkZWZpbmUgUE9XRVJfR1VBUkQxX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTksMTcsOSw4OSkNCiNkZWZpbmUgUlRPU19TV0kwX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjUsMTcsOSw5KQ0KI2RlZmluZSBSVE9TX1NXSTFfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyNiwxNyw5LDkpDQojZGVmaW5lIFJUT1NfU1dJMl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI3LDE3LDksOSkNCiNkZWZpbmUgUlRPU19TV0kzX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjgsMTcsOSw5KQ0KDQovLw0KLy8gR0lSUTE4IA0KLy8NCiNkZWZpbmUgTFBDX0lOVF9FUlJfSVJPVVRFICAgICAgICAgICAgICBJUk9VVEUoMCwxOCwxMCw5MCkNCiNkZWZpbmUgUU1TUElfSU5UX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMSwxOCwxMCw5MSkNCiNkZWZpbmUgR1BfU1BJMF9UWEJFX1NUU19JUk9VVEUgICAgICAgICBJUk9VVEUoMiwxOCwxMCw5MikNCiNkZWZpbmUgR1BfU1BJMF9SWEJGX1NUU19JUk9VVEUgICAgICAgICBJUk9VVEUoMywxOCwxMCw5MykNCiNkZWZpbmUgR1BfU1BJMV9UWEJFX1NUU19JUk9VVEUgICAgICAgICBJUk9VVEUoNCwxOCwxMCw5NCkNCiNkZWZpbmUgR1BfU1BJMV9SWEJGX1NUU19JUk9VVEUgICAgICAgICBJUk9VVEUoNSwxOCwxMCw5NSkNCiNkZWZpbmUgQkNMSU5LMF9CQ01fRVJSX0lST1VURSAgICAgICAgICBJUk9VVEUoNiwxOCwxMCw5NikNCiNkZWZpbmUgQkNMSU5LMF9CVVNZX0NMUl9JUk9VVEUgICAgICAgICBJUk9VVEUoNywxOCwxMCw5NykNCiNkZWZpbmUgQkNMSU5LMV9CQ01fRVJSX0lST1VURSAgICAgICAgICBJUk9VVEUoOCwxOCwxMCw5OCkNCiNkZWZpbmUgQkNMSU5LMV9CVVNZX0NMUl9JUk9VVEUgICAgICAgICBJUk9VVEUoOSwxOCwxMCw5OSkNCiNkZWZpbmUgUFMyX0lGQUNFMF9BQ1RfSVJPVVRFICAgICAgICAgICBJUk9VVEUoMTAsMTgsMTAsMTAwKQ0KI2RlZmluZSBQUzJfSUZBQ0UxX0FDVF9JUk9VVEUgICAgICAgICAgIElST1VURSgxMSwxOCwxMCwxMDEpDQojZGVmaW5lIFBTMl9JRkFDRTJfQUNUX0lST1VURSAgICAgICAgICAgSVJPVVRFKDEyLDE4LDEwLDEwMikNCiNkZWZpbmUgRUVQUk9NX0lST1VURSAgICAgICAgICAgICAgICAgICBJUk9VVEUoMTMsMTgsMTAsMTU1KQ0KDQoNCi8vDQovLyBHSVJRMTkNCi8vDQojZGVmaW5lIEVTUElfU0xBVkVfSU5UUl9QQ19JUk9VVEUgICAgICAgSVJPVVRFKDAsMTksMTEsMTAzKQ0KI2RlZmluZSBFU1BJX1NMQVZFX0lOVFJfQk0xX0lST1VURSAgICAgIElST1VURSgxLDE5LDExLDEwNCkNCiNkZWZpbmUgRVNQSV9TTEFWRV9JTlRSX0JNMl9JUk9VVEUgICAgICBJUk9VVEUoMiwxOSwxMSwxMDUpDQojZGVmaW5lIEVTUElfU0xBVkVfSU5UUl9MVFJfSVJPVVRFICAgICAgSVJPVVRFKDMsMTksMTEsMTA2KQ0KI2RlZmluZSBFU1BJX1NMQVZFX0lOVFJfT09CX1VQX0lST1VURSAgIElST1VURSg0LDE5LDExLDEwNykNCiNkZWZpbmUgRVNQSV9TTEFWRV9JTlRSX09PQl9ETl9JUk9VVEUgICBJUk9VVEUoNSwxOSwxMSwxMDgpDQojZGVmaW5lIEVTUElfU0xBVkVfSU5UUl9GTEFTSF9JUk9VVEUgICAgSVJPVVRFKDYsMTksMTEsMTA5KQ0KI2RlZmluZSBFU1BJX1NMQVZFX0VTUElfUkVTRVRfSVJPVVRFICAgIElST1VURSg3LDE5LDExLDExMCkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WV19FTkFCTEVfSVJPVVRFICAgICBJUk9VVEUoOCwxOSwxMSwxNTYpDQoNCi8vDQovLyBHSVJRMjANCi8vDQoNCg0KLy8NCi8vIEdJUlEyMQ0KLy8NCiNkZWZpbmUgUlRPU19USU1FUl9JUk9VVEUgICAgICAgICAgICAgICBJUk9VVEUoMCwyMSwxMywxMTEpDQojZGVmaW5lIEhUSU1FUjBfSVJPVVRFICAgICAgICAgICAgICAgICAgSVJPVVRFKDEsMjEsMTMsMTEyKQ0KI2RlZmluZSBIVElNRVIxX0lST1VURSAgICAgICAgICAgICAgICAgIElST1VURSgyLDIxLDEzLDExMykNCiNkZWZpbmUgV0VFS19BTEFSTV9JTlRfSVJPVVRFICAgICAgICAgICBJUk9VVEUoMywyMSwxMywxMTQpDQojZGVmaW5lIFNVQl9XRUVLX0FMQVJNX0lOX0lST1VURSAgICAgICAgSVJPVVRFKDQsMjEsMTMsMTE1KQ0KI2RlZmluZSBXRUVLX0FMQVJNX09ORV9TRUNPTkRfSVJPVVRFICAgIElST1VURSg1LDIxLDEzLDExNikNCiNkZWZpbmUgV0VFS19BTEFSTV9TVUJfU0VDT05EX0lST1VURSAgICBJUk9VVEUoNiwyMSwxMywxMTcpDQojZGVmaW5lIFdFRUtfQUxBUk1fU1lTUFdSX1BSRVNfSVJPVVRFICAgSVJPVVRFKDcsMjEsMTMsMTE4KQ0KI2RlZmluZSBSVENfSVJPVVRFICAgICAgICAgICAgICAgICAgICAgIElST1VURSg4LDIxLDEzLDExOSkNCiNkZWZpbmUgUlRDX0FMQVJNX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoOSwyMSwxMywxMjApDQojZGVmaW5lIFZCQVRfVkNJX09WUkRfSU5fSVJPVVRFICAgICAgICAgSVJPVVRFKDEwLDIxLDEzLDEyMSkNCiNkZWZpbmUgVkJBVF9WQ0lfSU4wX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTEsMjEsMTMsMTIyKQ0KI2RlZmluZSBWQkFUX1ZDSV9JTjFfSVJPVVRFICAgICAgICAgICAgIElST1VURSgxMiwyMSwxMywxMjMpDQojZGVmaW5lIFZCQVRfVkNJX0lOMl9JUk9VVEUgICAgICAgICAgICAgSVJPVVRFKDEzLDIxLDEzLDEyNCkNCiNkZWZpbmUgVkJBVF9WQ0lfSU4zX0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTQsMjEsMTMsMTI1KQ0KI2RlZmluZSBWQkFUX1ZDSV9JTjRfSVJPVVRFICAgICAgICAgICAgIElST1VURSgxNSwyMSwxMywxMjYpDQojZGVmaW5lIFZCQVRfVkNJX0lONV9JUk9VVEUgICAgICAgICAgICAgSVJPVVRFKDE2LDIxLDEzLDEyNykNCiNkZWZpbmUgVkJBVF9WQ0lfSU42X0lST1VURSAgICAgICAgICAgICBJUk9VVEUoMTcsMjEsMTMsMTI4KQ0KI2RlZmluZSBQUzJfMEFfV0tfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxOCwyMSwxMywxMjkpDQojZGVmaW5lIFBTMl8wQl9XS19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE5LDIxLDEzLDEzMCkNCiNkZWZpbmUgUFMyXzFBX1dLX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjAsMjEsMTMsMTMxKQ0KI2RlZmluZSBQUzJfMUJfV0tfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMSwyMSwxMywxMzIpDQojZGVmaW5lIFBTMl8yX1dLX0lST1VURSAgICAgICAgICAgICAgICAgSVJPVVRFKDIyLDIxLDEzLDEzMykNCiNkZWZpbmUgRU5WTU9OX0lST1VURSAgICAgICAgICAgICAgICAgICBJUk9VVEUoMjQsMjEsMTMsMTM0KQ0KI2RlZmluZSBLU0NfSU5UX0lST1VURSAgICAgICAgICAgICAgICAgIElST1VURSgyNSwyMSwxMywxMzUpDQoNCg0KLy8NCi8vIEdJUlEyMiAoTm8gQWdncmVnYXRlZCAmIE5vIGRpcmVjdCBzb3VyY2UsIFdBS0UgT05MWSBFVkVOVFMpDQovLw0KI2RlZmluZSBMUENfV0FLRV9PTkxZX0lST1VURSAgICAgICAgICAgIElST1VURSgwLDIyLDIyLDIyKQ0KI2RlZmluZSBTTUIwX1dBS0VfT05MWV9JUk9VVEUgICAgICAgICAgIElST1VURSgxLDIyLDIyLDIyKQ0KI2RlZmluZSBTTUIxX1dBS0VfT05MWV9JUk9VVEUgICAgICAgICAgIElST1VURSgyLDIyLDIyLDIyKQ0KI2RlZmluZSBTTUIyX1dBS0VfT05MWV9JUk9VVEUgICAgICAgICAgIElST1VURSgzLDIyLDIyLDIyKQ0KI2RlZmluZSBTTUIzX1dBS0VfT05MWV9JUk9VVEUgICAgICAgICAgIElST1VURSg0LDIyLDIyLDIyKQ0KI2RlZmluZSBFU1BJX1dBS0VfT05MWV9JUk9VVEUgICAgICAgICAgIElST1VURSg5LDIyLDIyLDIyKQ0KDQovLw0KLy8gR0lSUTIzDQovLw0KI2RlZmluZSBCVE1SMF9JUk9VVEUgICAgICAgICAgICAgICAgICAgIElST1VURSgwLDIzLDE0LDEzNikNCiNkZWZpbmUgQlRNUjFfSVJPVVRFICAgICAgICAgICAgICAgICAgICBJUk9VVEUoMSwyMywxNCwxMzcpDQojZGVmaW5lIEJUTVIyX0lST1VURSAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDIsMjMsMTQsMTM4KQ0KI2RlZmluZSBCVE1SM19JUk9VVEUgICAgICAgICAgICAgICAgICAgIElST1VURSgzLDIzLDE0LDEzOSkNCiNkZWZpbmUgQlRNUjRfSVJPVVRFICAgICAgICAgICAgICAgICAgICBJUk9VVEUoNCwyMywxNCwxNDApDQojZGVmaW5lIEJUTVI1X0lST1VURSAgICAgICAgICAgICAgICAgICAgSVJPVVRFKDUsMjMsMTQsMTQxKQ0KI2RlZmluZSBDVElNRVIwX0lST1VURSAgICAgICAgICAgICAgICAgIElST1VURSg2LDIzLDE0LDE0MikNCiNkZWZpbmUgQ1RJTUVSMV9JUk9VVEUgICAgICAgICAgICAgICAgICBJUk9VVEUoNywyMywxNCwxNDMpDQojZGVmaW5lIENUSU1FUjJfSVJPVVRFICAgICAgICAgICAgICAgICAgSVJPVVRFKDgsMjMsMTQsMTQ0KQ0KI2RlZmluZSBDVElNRVIzX0lST1VURSAgICAgICAgICAgICAgICAgIElST1VURSg5LDIzLDE0LDE0NSkNCiNkZWZpbmUgQ0FQX1RJTUVSX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTAsMjMsMTQsMTQ2KQ0KI2RlZmluZSBDQ19USU1FUjBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxMSwyMywxNCwxNDcpDQojZGVmaW5lIENDX1RJTUVSMV9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDEyLDIzLDE0LDE0OCkNCiNkZWZpbmUgQ0NfVElNRVIyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTMsMjMsMTQsMTQ5KQ0KI2RlZmluZSBDQ19USU1FUjNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNCwyMywxNCwxNTApDQojZGVmaW5lIENDX1RJTUVSNF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE1LDIzLDE0LDE1MSkNCiNkZWZpbmUgQ0NfVElNRVI1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTYsMjMsMTQsMTUyKQ0KI2RlZmluZSBDQ19USU1FUl9DTVAwX0lST1VURSAgICAgICAgICAgIElST1VURSgxNywyMywxNCwxNTMpDQojZGVmaW5lIENDX1RJTUVSX0NNUDFfSVJPVVRFICAgICAgICAgICAgSVJPVVRFKDE4LDIzLDE0LDE1NCkNCg0KLy8NCi8vIEdJUlEyMw0KLy8NCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAwX1NSQzBfSVJPVVRFICAgICBJUk9VVEUoMCwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAwX1NSQzFfSVJPVVRFICAgICBJUk9VVEUoMSwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAwX1NSQzJfSVJPVVRFICAgICBJUk9VVEUoMiwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAwX1NSQzNfSVJPVVRFICAgICBJUk9VVEUoMywyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAxX1NSQzBfSVJPVVRFICAgICBJUk9VVEUoNCwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAxX1NSQzFfSVJPVVRFICAgICBJUk9VVEUoNSwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAxX1NSQzJfSVJPVVRFICAgICBJUk9VVEUoNiwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAxX1NSQzNfSVJPVVRFICAgICBJUk9VVEUoNywyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAyX1NSQzBfSVJPVVRFICAgICBJUk9VVEUoOCwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAyX1NSQzFfSVJPVVRFICAgICBJUk9VVEUoOSwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAyX1NSQzJfSVJPVVRFICAgICBJUk9VVEUoMTAsMjQsMTUsMTUpDQojZGVmaW5lIEVTUElfU0xBVkVfVlcwMl9TUkMzX0lST1VURSAgICAgSVJPVVRFKDExLDI0LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDNfU1JDMF9JUk9VVEUgICAgIElST1VURSgxMiwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzAzX1NSQzFfSVJPVVRFICAgICBJUk9VVEUoMTMsMjQsMTUsMTUpDQojZGVmaW5lIEVTUElfU0xBVkVfVlcwM19TUkMyX0lST1VURSAgICAgSVJPVVRFKDE0LDI0LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDNfU1JDM19JUk9VVEUgICAgIElST1VURSgxNSwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzA0X1NSQzBfSVJPVVRFICAgICBJUk9VVEUoMTYsMjQsMTUsMTUpDQojZGVmaW5lIEVTUElfU0xBVkVfVlcwNF9TUkMxX0lST1VURSAgICAgSVJPVVRFKDE3LDI0LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDRfU1JDMl9JUk9VVEUgICAgIElST1VURSgxOCwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzA0X1NSQzNfSVJPVVRFICAgICBJUk9VVEUoMTksMjQsMTUsMTUpDQojZGVmaW5lIEVTUElfU0xBVkVfVlcwNV9TUkMwX0lST1VURSAgICAgSVJPVVRFKDIwLDI0LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDVfU1JDMV9JUk9VVEUgICAgIElST1VURSgyMSwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzA1X1NSQzJfSVJPVVRFICAgICBJUk9VVEUoMjIsMjQsMTUsMTUpDQojZGVmaW5lIEVTUElfU0xBVkVfVlcwNV9TUkMzX0lST1VURSAgICAgSVJPVVRFKDIzLDI0LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDZfU1JDMF9JUk9VVEUgICAgIElST1VURSgyNCwyNCwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzA2X1NSQzFfSVJPVVRFICAgICBJUk9VVEUoMjUsMjQsMTUsMTUpDQojZGVmaW5lIEVTUElfU0xBVkVfVlcwNl9TUkMyX0lST1VURSAgICAgSVJPVVRFKDI2LDI0LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDZfU1JDM19JUk9VVEUgICAgIElST1VURSgyNywyNCwxNSwxNSkNCg0KDQovLw0KLy8gR0lSUTI1DQovLw0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDdfU1JDMF9JUk9VVEUgICAgIElST1VURSgwLDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDdfU1JDMV9JUk9VVEUgICAgIElST1VURSgxLDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDdfU1JDMl9JUk9VVEUgICAgIElST1VURSgyLDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDdfU1JDM19JUk9VVEUgICAgIElST1VURSgzLDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDhfU1JDMF9JUk9VVEUgICAgIElST1VURSg0LDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDhfU1JDMV9JUk9VVEUgICAgIElST1VURSg1LDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDhfU1JDMl9JUk9VVEUgICAgIElST1VURSg2LDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDhfU1JDM19JUk9VVEUgICAgIElST1VURSg3LDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDlfU1JDMF9JUk9VVEUgICAgIElST1VURSg4LDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDlfU1JDMV9JUk9VVEUgICAgIElST1VURSg5LDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMDlfU1JDMl9JUk9VVEUgICAgIElST1VURSgxMCwyNSwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzA5X1NSQzNfSVJPVVRFICAgICBJUk9VVEUoMTEsMjUsMTUsMTUpDQojZGVmaW5lIEVTUElfU0xBVkVfVlcxMF9TUkMwX0lST1VURSAgICAgSVJPVVRFKDEyLDI1LDE1LDE1KQ0KI2RlZmluZSBFU1BJX1NMQVZFX1ZXMTBfU1JDMV9JUk9VVEUgICAgIElST1VURSgxMywyNSwxNSwxNSkNCiNkZWZpbmUgRVNQSV9TTEFWRV9WVzEwX1NSQzJfSVJPVVRFICAgICBJUk9VVEUoMTQsMjUsMTUsMTUpDQojZGVmaW5lIEVTUElfU0xBVkVfVlcxMF9TUkMzX0lST1VURSAgICAgSVJPVVRFKDE1LDI1LDE1LDE1KQ0KDQovLw0KLy8gR0lSUTI2DQovLw0KI2RlZmluZSBHUElPXzAyNDBfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgwLDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNDFfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxLDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNDJfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyLDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNDNfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgzLDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNDRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg0LDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNDVfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg1LDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNDZfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg2LDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNDdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSg3LDI2LDE3LDE3KQ0KLy8NCiNkZWZpbmUgR1BJT18wMjUwX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoOCwyNiwxNywxNykNCiNkZWZpbmUgR1BJT18wMjUxX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoOSwyNiwxNywxNykNCiNkZWZpbmUgR1BJT18wMjUyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTAsMjYsMTcsMTcpDQojZGVmaW5lIEdQSU9fMDI1M19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDExLDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNTRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxMiwyNiwxNywxNykNCiNkZWZpbmUgR1BJT18wMjU1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTMsMjYsMTcsMTcpDQojZGVmaW5lIEdQSU9fMDI1Nl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE0LDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNTdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNSwyNiwxNywxNykNCi8vDQojZGVmaW5lIEdQSU9fMDI2MF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE2LDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNjFfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgxNywyNiwxNywxNykNCiNkZWZpbmUgR1BJT18wMjYyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMTgsMjYsMTcsMTcpDQojZGVmaW5lIEdQSU9fMDI2M19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDE5LDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNjRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMCwyNiwxNywxNykNCiNkZWZpbmUgR1BJT18wMjY1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjEsMjYsMTcsMTcpDQojZGVmaW5lIEdQSU9fMDI2Nl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDIyLDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNjdfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyMywyNiwxNywxNykNCi8vDQojZGVmaW5lIEdQSU9fMDI3MF9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI0LDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNzFfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyNSwyNiwxNywxNykNCiNkZWZpbmUgR1BJT18wMjcyX0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjYsMjYsMTcsMTcpDQojZGVmaW5lIEdQSU9fMDI3M19JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDI3LDI2LDE3LDE3KQ0KI2RlZmluZSBHUElPXzAyNzRfSVJPVVRFICAgICAgICAgICAgICAgIElST1VURSgyOCwyNiwxNywxNykNCiNkZWZpbmUgR1BJT18wMjc1X0lST1VURSAgICAgICAgICAgICAgICBJUk9VVEUoMjksMjYsMTcsMTcpDQojZGVmaW5lIEdQSU9fMDI3Nl9JUk9VVEUgICAgICAgICAgICAgICAgSVJPVVRFKDMwLDI2LDE3LDE3KQ0KDQoNCi8vIEdJUlEwOCBCaXQgUG9zaXRpb25zIA0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTQwX0JJVFBPUyAgICAgICAgICgwKQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTQxX0JJVFBPUyAgICAgICAgICgxKQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTQyX0JJVFBPUyAgICAgICAgICgyKQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTQzX0JJVFBPUyAgICAgICAgICgzKQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTQ0X0JJVFBPUyAgICAgICAgICg0KQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTQ1X0JJVFBPUyAgICAgICAgICg1KQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTQ2X0JJVFBPUyAgICAgICAgICg2KQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTQ3X0JJVFBPUyAgICAgICAgICg3KQ0KLy8NCiNkZWZpbmUgR0lSUTA4X0dQSU9fMDE1MF9CSVRQT1MgICAgICAgICAoOCkNCiNkZWZpbmUgR0lSUTA4X0dQSU9fMDE1MV9CSVRQT1MgICAgICAgICAoOSkNCiNkZWZpbmUgR0lSUTA4X0dQSU9fMDE1Ml9CSVRQT1MgICAgICAgICAoMTApDQojZGVmaW5lIEdJUlEwOF9HUElPXzAxNTNfQklUUE9TICAgICAgICAgKDExKQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTU0X0JJVFBPUyAgICAgICAgICgxMikNCiNkZWZpbmUgR0lSUTA4X0dQSU9fMDE1NV9CSVRQT1MgICAgICAgICAoMTMpDQojZGVmaW5lIEdJUlEwOF9HUElPXzAxNTZfQklUUE9TICAgICAgICAgKDE0KSANCiNkZWZpbmUgR0lSUTA4X0dQSU9fMDE1N19CSVRQT1MgICAgICAgICAoMTUpDQovLw0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTYwX0JJVFBPUyAgICAgICAgICgxNikNCiNkZWZpbmUgR0lSUTA4X0dQSU9fMDE2MV9CSVRQT1MgICAgICAgICAoMTcpDQojZGVmaW5lIEdJUlEwOF9HUElPXzAxNjJfQklUUE9TICAgICAgICAgKDE4KQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTYzX0JJVFBPUyAgICAgICAgICgxOSkNCiNkZWZpbmUgR0lSUTA4X0dQSU9fMDE2NF9CSVRQT1MgICAgICAgICAoMjApDQojZGVmaW5lIEdJUlEwOF9HUElPXzAxNjVfQklUUE9TICAgICAgICAgKDIxKQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTY2X0JJVFBPUyAgICAgICAgICgyMikgDQojZGVmaW5lIEdJUlEwOF9HUElPXzAxNjdfQklUUE9TICAgICAgICAgKDIzKQ0KDQojZGVmaW5lIEdJUlEwOF9HUElPXzAxNzBfQklUUE9TICAgICAgICAgKDI0KQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTcxX0JJVFBPUyAgICAgICAgICgyNSkNCiNkZWZpbmUgR0lSUTA4X0dQSU9fMDE3Ml9CSVRQT1MgICAgICAgICAoMjYpDQojZGVmaW5lIEdJUlEwOF9HUElPXzAxNzNfQklUUE9TICAgICAgICAgKDI3KQ0KI2RlZmluZSBHSVJRMDhfR1BJT18wMTc0X0JJVFBPUyAgICAgICAgICgyOCkNCiNkZWZpbmUgR0lSUTA4X0dQSU9fMDE3NV9CSVRQT1MgICAgICAgICAoMjkpDQojZGVmaW5lIEdJUlEwOF9HUElPXzAxNzZfQklUUE9TICAgICAgICAgKDMwKSANCg0KLy8NCiNkZWZpbmUgR0lSUTA4X01BU0sgICAgICAgICAgICAgICAgICAgICAoMHg3RkZGRkZGRnVsKQ0KI2RlZmluZSBHSVJRMDhfV0FLRV9DQVBBQkxFX01BU0sgICAgICAgICgweDdGRkZGRkZGdWwpDQovLw0KDQovLyBHSVJRMDkgQml0IFBvc2l0aW9ucyANCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEwMF9CSVRQT1MgICAgICAgICAoMCkNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEwMV9CSVRQT1MgICAgICAgICAoMSkNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEwMl9CSVRQT1MgICAgICAgICAoMikNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEwM19CSVRQT1MgICAgICAgICAoMykNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEwNF9CSVRQT1MgICAgICAgICAoNCkNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEwNV9CSVRQT1MgICAgICAgICAoNSkNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEwNl9CSVRQT1MgICAgICAgICAoNikgDQojZGVmaW5lIEdJUlEwOV9HUElPXzAxMDdfQklUUE9TICAgICAgICAgKDcpDQovLw0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTEwX0JJVFBPUyAgICAgICAgICg4KQ0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTExX0JJVFBPUyAgICAgICAgICg5KQ0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTEyX0JJVFBPUyAgICAgICAgICgxMCkNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDExM19CSVRQT1MgICAgICAgICAoMTEpDQojZGVmaW5lIEdJUlEwOV9HUElPXzAxMTRfQklUUE9TICAgICAgICAgKDEyKQ0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTE1X0JJVFBPUyAgICAgICAgICgxMykNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDExNl9CSVRQT1MgICAgICAgICAoMTQpIA0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTE3X0JJVFBPUyAgICAgICAgICgxNSkNCi8vDQojZGVmaW5lIEdJUlEwOV9HUElPXzAxMjBfQklUUE9TICAgICAgICAgKDE2KQ0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTIxX0JJVFBPUyAgICAgICAgICgxNykNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEyMl9CSVRQT1MgICAgICAgICAoMTgpDQojZGVmaW5lIEdJUlEwOV9HUElPXzAxMjNfQklUUE9TICAgICAgICAgKDE5KQ0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTI0X0JJVFBPUyAgICAgICAgICgyMCkNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEyNV9CSVRQT1MgICAgICAgICAoMjEpDQojZGVmaW5lIEdJUlEwOV9HUElPXzAxMjZfQklUUE9TICAgICAgICAgKDIyKSANCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEyN19CSVRQT1MgICAgICAgICAoMjMpDQovLw0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTMwX0JJVFBPUyAgICAgICAgICgyNCkNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEzMV9CSVRQT1MgICAgICAgICAoMjUpDQojZGVmaW5lIEdJUlEwOV9HUElPXzAxMzJfQklUUE9TICAgICAgICAgKDI2KQ0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTMzX0JJVFBPUyAgICAgICAgICgyNykNCiNkZWZpbmUgR0lSUTA5X0dQSU9fMDEzNF9CSVRQT1MgICAgICAgICAoMjgpDQojZGVmaW5lIEdJUlEwOV9HUElPXzAxMzVfQklUUE9TICAgICAgICAgKDI5KQ0KI2RlZmluZSBHSVJRMDlfR1BJT18wMTM2X0JJVFBPUyAgICAgICAgICgzMCkgDQoNCi8vDQojZGVmaW5lIEdJUlEwOV9NQVNLICAgICAgICAgICAgICAgICAgICAgKDB4N0ZGRkZGRkZ1bCkNCiNkZWZpbmUgR0lSUTA5X1dBS0VfQ0FQQUJMRV9NQVNLICAgICAgICAoMHg3RkZGRkZGRnVsKQ0KLy8NCg0KLy8gR0lSUTEwIEJpdCBQb3NpdGlvbnMgDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNDBfQklUUE9TICAgICAgICAgKDApDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNDFfQklUUE9TICAgICAgICAgKDEpDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNDJfQklUUE9TICAgICAgICAgKDIpDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNDNfQklUUE9TICAgICAgICAgKDMpDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNDRfQklUUE9TICAgICAgICAgKDQpDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNDVfQklUUE9TICAgICAgICAgKDUpDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNDZfQklUUE9TICAgICAgICAgKDYpIA0KI2RlZmluZSBHSVJRMTBfR1BJT18wMDQ3X0JJVFBPUyAgICAgICAgICg3KQ0KLy8NCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA1MF9CSVRQT1MgICAgICAgICAoOCkNCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA1MV9CSVRQT1MgICAgICAgICAoOSkNCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA1Ml9CSVRQT1MgICAgICAgICAoMTApDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNTNfQklUUE9TICAgICAgICAgKDExKQ0KI2RlZmluZSBHSVJRMTBfR1BJT18wMDU0X0JJVFBPUyAgICAgICAgICgxMikNCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA1NV9CSVRQT1MgICAgICAgICAoMTMpDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNTZfQklUUE9TICAgICAgICAgKDE0KSANCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA1N19CSVRQT1MgICAgICAgICAoMTUpDQovLw0KI2RlZmluZSBHSVJRMTBfR1BJT18wMDYwX0JJVFBPUyAgICAgICAgICgxNikNCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA2MV9CSVRQT1MgICAgICAgICAoMTcpDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNjJfQklUUE9TICAgICAgICAgKDE4KQ0KI2RlZmluZSBHSVJRMTBfR1BJT18wMDYzX0JJVFBPUyAgICAgICAgICgxOSkNCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA2NF9CSVRQT1MgICAgICAgICAoMjApDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNjVfQklUUE9TICAgICAgICAgKDIxKQ0KI2RlZmluZSBHSVJRMTBfR1BJT18wMDY2X0JJVFBPUyAgICAgICAgICgyMikgDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNjdfQklUUE9TICAgICAgICAgKDIzKQ0KLy8NCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA3MF9CSVRQT1MgICAgICAgICAoMjQpDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNzFfQklUUE9TICAgICAgICAgKDI1KQ0KI2RlZmluZSBHSVJRMTBfR1BJT18wMDcyX0JJVFBPUyAgICAgICAgICgyNikNCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA3M19CSVRQT1MgICAgICAgICAoMjcpDQojZGVmaW5lIEdJUlExMF9HUElPXzAwNzRfQklUUE9TICAgICAgICAgKDI4KQ0KI2RlZmluZSBHSVJRMTBfR1BJT18wMDc1X0JJVFBPUyAgICAgICAgICgyOSkNCiNkZWZpbmUgR0lSUTEwX0dQSU9fMDA3Nl9CSVRQT1MgICAgICAgICAoMzApIA0KDQovLw0KI2RlZmluZSBHSVJRMTBfTUFTSyAgICAgICAgICAgICAgICAgICAgICgweDdGRkZGRkZGdWwpDQojZGVmaW5lIEdJUlExMF9XQUtFX0NBUEFCTEVfTUFTSyAgICAgICAgKDB4N0ZGRkZGRkZ1bCkNCi8vDQoNCi8vIEdJUlExMSBCaXQgUG9zaXRpb25zIA0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDAwX0JJVFBPUyAgICAgICAgICgwKQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDAxX0JJVFBPUyAgICAgICAgICgxKQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDAyX0JJVFBPUyAgICAgICAgICgyKQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDAzX0JJVFBPUyAgICAgICAgICgzKQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDA0X0JJVFBPUyAgICAgICAgICg0KQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDA1X0JJVFBPUyAgICAgICAgICg1KQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDA2X0JJVFBPUyAgICAgICAgICg2KSANCiNkZWZpbmUgR0lSUTExX0dQSU9fMDAwN19CSVRQT1MgICAgICAgICAoNykNCi8vDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMTBfQklUUE9TICAgICAgICAgKDgpDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMTFfQklUUE9TICAgICAgICAgKDkpDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMTJfQklUUE9TICAgICAgICAgKDEwKQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDEzX0JJVFBPUyAgICAgICAgICgxMSkNCiNkZWZpbmUgR0lSUTExX0dQSU9fMDAxNF9CSVRQT1MgICAgICAgICAoMTIpDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMTVfQklUUE9TICAgICAgICAgKDEzKQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDE2X0JJVFBPUyAgICAgICAgICgxNCkgDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMTdfQklUUE9TICAgICAgICAgKDE1KQ0KLy8NCiNkZWZpbmUgR0lSUTExX0dQSU9fMDAyMF9CSVRQT1MgICAgICAgICAoMTYpDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMjFfQklUUE9TICAgICAgICAgKDE3KQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDIyX0JJVFBPUyAgICAgICAgICgxOCkNCiNkZWZpbmUgR0lSUTExX0dQSU9fMDAyM19CSVRQT1MgICAgICAgICAoMTkpDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMjRfQklUUE9TICAgICAgICAgKDIwKQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDI1X0JJVFBPUyAgICAgICAgICgyMSkNCiNkZWZpbmUgR0lSUTExX0dQSU9fMDAyNl9CSVRQT1MgICAgICAgICAoMjIpIA0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDI3X0JJVFBPUyAgICAgICAgICgyMykNCi8vDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMzBfQklUUE9TICAgICAgICAgKDI0KQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDMxX0JJVFBPUyAgICAgICAgICgyNSkNCiNkZWZpbmUgR0lSUTExX0dQSU9fMDAzMl9CSVRQT1MgICAgICAgICAoMjYpDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMzNfQklUUE9TICAgICAgICAgKDI3KQ0KI2RlZmluZSBHSVJRMTFfR1BJT18wMDM0X0JJVFBPUyAgICAgICAgICgyOCkNCiNkZWZpbmUgR0lSUTExX0dQSU9fMDAzNV9CSVRQT1MgICAgICAgICAoMjkpDQojZGVmaW5lIEdJUlExMV9HUElPXzAwMzZfQklUUE9TICAgICAgICAgKDMwKSANCg0KLy8NCiNkZWZpbmUgR0lSUTExX01BU0sgICAgICAgICAgICAgICAgICAgICAoMHg3RkZGRkZGRnVsKQ0KI2RlZmluZSBHSVJRMTFfV0FLRV9DQVBBQkxFX01BU0sgICAgICAgICgweDdGRkZGRkZGdWwpDQovLw0KDQovLyBHSVJRMTIgQml0IFBvc2l0aW9ucyANCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIwMF9CSVRQT1MgICAgICAgICAoMCkNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIwMV9CSVRQT1MgICAgICAgICAoMSkNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIwMl9CSVRQT1MgICAgICAgICAoMikNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIwM19CSVRQT1MgICAgICAgICAoMykNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIwNF9CSVRQT1MgICAgICAgICAoNCkNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIwNV9CSVRQT1MgICAgICAgICAoNSkNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIwNl9CSVRQT1MgICAgICAgICAoNikgDQojZGVmaW5lIEdJUlExMl9HUElPXzAyMDdfQklUUE9TICAgICAgICAgKDcpDQovLw0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjEwX0JJVFBPUyAgICAgICAgICg4KQ0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjExX0JJVFBPUyAgICAgICAgICg5KQ0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjEyX0JJVFBPUyAgICAgICAgICgxMCkNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIxM19CSVRQT1MgICAgICAgICAoMTEpDQojZGVmaW5lIEdJUlExMl9HUElPXzAyMTRfQklUUE9TICAgICAgICAgKDEyKQ0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjE1X0JJVFBPUyAgICAgICAgICgxMykNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIxNl9CSVRQT1MgICAgICAgICAoMTQpIA0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjE3X0JJVFBPUyAgICAgICAgICgxNSkNCi8vDQojZGVmaW5lIEdJUlExMl9HUElPXzAyMjBfQklUUE9TICAgICAgICAgKDE2KQ0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjIxX0JJVFBPUyAgICAgICAgICgxNykNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIyMl9CSVRQT1MgICAgICAgICAoMTgpDQojZGVmaW5lIEdJUlExMl9HUElPXzAyMjNfQklUUE9TICAgICAgICAgKDE5KQ0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjI0X0JJVFBPUyAgICAgICAgICgyMCkNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIyNV9CSVRQT1MgICAgICAgICAoMjEpDQojZGVmaW5lIEdJUlExMl9HUElPXzAyMjZfQklUUE9TICAgICAgICAgKDIyKSANCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIyN19CSVRQT1MgICAgICAgICAoMjMpDQovLw0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjMwX0JJVFBPUyAgICAgICAgICgyNCkNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIzMV9CSVRQT1MgICAgICAgICAoMjUpDQojZGVmaW5lIEdJUlExMl9HUElPXzAyMzJfQklUUE9TICAgICAgICAgKDI2KQ0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjMzX0JJVFBPUyAgICAgICAgICgyNykNCiNkZWZpbmUgR0lSUTEyX0dQSU9fMDIzNF9CSVRQT1MgICAgICAgICAoMjgpDQojZGVmaW5lIEdJUlExMl9HUElPXzAyMzVfQklUUE9TICAgICAgICAgKDI5KQ0KI2RlZmluZSBHSVJRMTJfR1BJT18wMjM2X0JJVFBPUyAgICAgICAgICgzMCkgDQoNCi8vDQojZGVmaW5lIEdJUlExMl9NQVNLICAgICAgICAgICAgICAgICAgICAgKDB4N0ZGRkZGRkZ1bCkNCiNkZWZpbmUgR0lSUTEyX1dBS0VfQ0FQQUJMRV9NQVNLICAgICAgICAoMHg3RkZGRkZGRnVsKQ0KDQovLyBHSVJRMTMgQml0IFBvc2l0aW9ucyANCiNkZWZpbmUgR0lSUTEzX1NNQlVTMF9CSVRQT1MgICAgICAgICAgICAoMCkNCiNkZWZpbmUgR0lSUTEzX1NNQlVTMV9CSVRQT1MgICAgICAgICAgICAoMSkNCiNkZWZpbmUgR0lSUTEzX1NNQlVTMl9CSVRQT1MgICAgICAgICAgICAoMikNCiNkZWZpbmUgR0lSUTEzX1NNQlVTM19CSVRQT1MgICAgICAgICAgICAoMykNCg0KI2RlZmluZSBHSVJRMTNfTUFTSyAgICAgICAgICAgICAgICAgICAgICgweEZ1bCkNCiNkZWZpbmUgR0lSUTEzX1dBS0VfQ0FQQUJMRV9NQVNLICAgICAgICAoMHgwdWwpDQovLw0KDQovLyBHSVJRMTQgQml0IFBvc2l0aW9ucyANCiNkZWZpbmUgR0lSUTE0X0RNQTBfQklUUE9TICAgICAgICAgICAgICAoMCkNCiNkZWZpbmUgR0lSUTE0X0RNQTFfQklUUE9TICAgICAgICAgICAgICAoMSkNCiNkZWZpbmUgR0lSUTE0X0RNQTJfQklUUE9TICAgICAgICAgICAgICAoMikNCiNkZWZpbmUgR0lSUTE0X0RNQTNfQklUUE9TICAgICAgICAgICAgICAoMykNCiNkZWZpbmUgR0lSUTE0X0RNQTRfQklUUE9TICAgICAgICAgICAgICAoNCkNCiNkZWZpbmUgR0lSUTE0X0RNQTVfQklUUE9TICAgICAgICAgICAgICAoNSkNCiNkZWZpbmUgR0lSUTE0X0RNQTZfQklUUE9TICAgICAgICAgICAgICAoNikNCiNkZWZpbmUgR0lSUTE0X0RNQTdfQklUUE9TICAgICAgICAgICAgICAoNykNCiNkZWZpbmUgR0lSUTE0X0RNQThfQklUUE9TICAgICAgICAgICAgICAoOCkNCiNkZWZpbmUgR0lSUTE0X0RNQTlfQklUUE9TICAgICAgICAgICAgICAoOSkNCiNkZWZpbmUgR0lSUTE0X0RNQTEwX0JJVFBPUyAgICAgICAgICAgICAoMTApDQojZGVmaW5lIEdJUlExNF9ETUExMV9CSVRQT1MgICAgICAgICAgICAgKDExKQ0KI2RlZmluZSBHSVJRMTRfRE1BMTJfQklUUE9TICAgICAgICAgICAgICgxMikNCiNkZWZpbmUgR0lSUTE0X0RNQTEzX0JJVFBPUyAgICAgICAgICAgICAoMTMpDQovLw0KI2RlZmluZSBHSVJRMTRfTUFTSyAgICAgICAgICAgICAgICAgICAgICgweDNGRkZ1bCkNCiNkZWZpbmUgR0lSUTE0X1dBS0VfQ0FQQUJMRV9NQVNLICAgICAgICAoMHgwMDAwMDAwMHVsKQ0KLy8NCg0KDQovLyBHSVJRMTUgQml0IFBvc2l0aW9ucyANCiNkZWZpbmUgR0lSUTE1X1VBUlQwX0JJVFBPUyAgICAgICAgICAgICAoMCkNCiNkZWZpbmUgR0lSUTE1X1VBUlQxX0JJVFBPUyAgICAgICAgICAgICAoMSkNCiNkZWZpbmUgR0lSUTE1X0VNSTBfQklUUE9TICAgICAgICAgICAgICAoMikNCiNkZWZpbmUgR0lSUTE1X0VNSTFfQklUUE9TICAgICAgICAgICAgICAoMykNCiNkZWZpbmUgR0lSUTE1X0VNSTJfQklUUE9TICAgICAgICAgICAgICAoNCkNCiNkZWZpbmUgR0lSUTE1X0FDUEkwX0lCRl9CSVRQT1MgICAgICAgICAoNSkNCiNkZWZpbmUgR0lSUTE1X0FDUEkwX09CRl9CSVRQT1MgICAgICAgICAoNikNCiNkZWZpbmUgR0lSUTE1X0FDUEkxX0lCRl9CSVRQT1MgICAgICAgICAoNykNCiNkZWZpbmUgR0lSUTE1X0FDUEkxX09CRl9CSVRQT1MgICAgICAgICAoOCkNCiNkZWZpbmUgR0lSUTE1X0FDUEkyX0lCRl9CSVRQT1MgICAgICAgICAoOSkNCiNkZWZpbmUgR0lSUTE1X0FDUEkyX09CRl9CSVRQT1MgICAgICAgICAoMTApDQojZGVmaW5lIEdJUlExNV9BQ1BJM19JQkZfQklUUE9TICAgICAgICAgKDExKQ0KI2RlZmluZSBHSVJRMTVfQUNQSTNfT0JGX0JJVFBPUyAgICAgICAgICgxMikNCiNkZWZpbmUgR0lSUTE1X0FDUEk0X0lCRl9CSVRQT1MgICAgICAgICAoMTMpDQojZGVmaW5lIEdJUlExNV9BQ1BJNF9PQkZfQklUUE9TICAgICAgICAgKDE0KQ0KI2RlZmluZSBHSVJRMTVfQUNQSV9QTTFDVExfQklUUE9TICAgICAgICgxNSkNCiNkZWZpbmUgR0lSUTE1X0FDUElfUE0xRU5fQklUUE9TICAgICAgICAoMTYpDQojZGVmaW5lIEdJUlExNV9BQ1BJX1BNMVNUU19CSVRQT1MgICAgICAgKDE3KQ0KI2RlZmluZSBHSVJRMTVfTUY4MDQyX09CRl9CSVRQT1MgICAgICAgICgxOCkNCiNkZWZpbmUgR0lSUTE1X01GODA0Ml9JQkZfQklUUE9TICAgICAgICAoMTkpDQojZGVmaW5lIEdJUlExNV9NQUlMQk9YX0JJVFBPUyAgICAgICAgICAgKDIwKQ0KI2RlZmluZSBHSVJRMTVfUE9SVDgwX0RCRzBfQklUUE9TICAgICAgICgyMikNCiNkZWZpbmUgR0lSUTE1X1BPUlQ4MF9EQkcxX0JJVFBPUyAgICAgICAoMjMpDQojZGVmaW5lIEdJUlExNV9URVNUX0JJVFBPUyAgICAgICAgICAgICAgKDI0KQ0KDQovLw0KI2RlZmluZSBHSVJRMTVfTUFTSyAgICAgICAgICAgICAgICAgICAgICgweDFGRkZGRkZ1bCkNCiNkZWZpbmUgR0lSUTE1X1dBS0VfQ0FQQUJMRV9NQVNLICAgICAgICAoMHgwMDAwMDB1bCkNCi8vDQoNCi8vIEdJUlExNiBCaXQgUG9zaXRpb25zIA0KI2RlZmluZSBQS0VfRVJST1JfQklUUE9TICAgICAgICAgICAgICAgICgwKQ0KI2RlZmluZSBQS0VfRU5EX0JJVFBPUyAgICAgICAgICAgICAgICAgICgxKQ0KI2RlZmluZSBSTkdfQklUUE9TICAgICAgICAgICAgICAgICAgICAgICgyKQ0KI2RlZmluZSBBRVNfQklUUE9TICAgICAgICAgICAgICAgICAgICAgICgzKQ0KI2RlZmluZSBIQVNIX0JJVFBPUyAgICAgICAgICAgICAgICAgICAgICg0KQ0KDQovLw0KI2RlZmluZSBHSVJRMTZfTUFTSyAgICAgICAgICAgICAgICAgICAgICgweDFGdWwpDQojZGVmaW5lIEdJUlExNl9XQUtFX0NBUEFCTEVfTUFTSyAgICAgICAgKDB4MDB1bCkNCi8vDQoNCi8vIEdJUlExNyBCaXQgUG9zaXRpb25zIA0KI2RlZmluZSBHSVJRMTdfUEVDSV9CSVRQT1MgICAgICAgICAgICAgICgwKQ0KI2RlZmluZSBHSVJRMTdfVEFDSDBfQklUUE9TICAgICAgICAgICAgICgxKQ0KI2RlZmluZSBHSVJRMTdfVEFDSDFfQklUUE9TICAgICAgICAgICAgICgyKQ0KI2RlZmluZSBHSVJRMTdfVEFDSDJfQklUUE9TICAgICAgICAgICAgICgzKQ0KI2RlZmluZSBHSVJRMTdfUlBNMlBXTTBfRkFJTF9CSVRQT1MgICAgICg0KQ0KI2RlZmluZSBHSVJRMTdfUlBNMlBXTTBfU1RBTExfQklUUE9TICAgICg1KQ0KI2RlZmluZSBHSVJRMTdfUlBNMlBXTTFfRkFJTF9CSVRQT1MgICAgICg2KQ0KI2RlZmluZSBHSVJRMTdfUlBNMlBXTTFfU1RBTExfQklUUE9TICAgICg3KQ0KI2RlZmluZSBHSVJRMTdfQURDX0lOVDBfQklUUE9TICAgICAgICAgICg4KQ0KI2RlZmluZSBHSVJRMTdfQURDX0lOVDFfQklUUE9TICAgICAgICAgICg5KQ0KI2RlZmluZSBHSVJRMTdfUkNfSUQwX0JJVFBPUyAgICAgICAgICAgICgxMCkNCiNkZWZpbmUgR0lSUTE3X1JDX0lEMV9CSVRQT1MgICAgICAgICAgICAoMTEpDQojZGVmaW5lIEdJUlExN19SQ19JRDJfQklUUE9TICAgICAgICAgICAgKDEyKQ0KI2RlZmluZSBHSVJRMTdfTEVEMF9CSVRQT1MgICAgICAgICAgICAgICgxMykNCiNkZWZpbmUgR0lSUTE3X0xFRDFfQklUUE9TICAgICAgICAgICAgICAoMTQpDQojZGVmaW5lIEdJUlExN19MRUQyX0JJVFBPUyAgICAgICAgICAgICAgKDE1KQ0KI2RlZmluZSBHSVJRMTdfTEVEM19CSVRQT1MgICAgICAgICAgICAgICgxNikNCiNkZWZpbmUgR0lSUTE3X1BIT1RfQklUUE9TICAgICAgICAgICAgICAoMTcpDQojZGVmaW5lIEdJUlExN19QV1JHVUFSRDBfQklUUE9TICAgICAgICAgKDE4KQ0KI2RlZmluZSBHSVJRMTdfUFdSR1VBUkQxX0JJVFBPUyAgICAgICAgICgxOSkNCiNkZWZpbmUgR0lSUTE3X1JUT1NfU1dJMF9CSVRQT1MgICAgICAgICAoMjUpDQojZGVmaW5lIEdJUlExN19SVE9TX1NXSTFfQklUUE9TICAgICAgICAgKDI2KQ0KI2RlZmluZSBHSVJRMTdfUlRPU19TV0kyX0JJVFBPUyAgICAgICAgICgyNykNCiNkZWZpbmUgR0lSUTE3X1JUT1NfU1dJM19CSVRQT1MgICAgICAgICAoMjgpDQoNCi8vDQojZGVmaW5lIEdJUlExN19NQVNLICAgICAgICAgICAgICAgICAgICAgKDB4MUUwRkZGRkZ1bCkNCiNkZWZpbmUgR0lSUTE3X1dBS0VfQ0FQQUJMRV9NQVNLICAgICAgICAoMHgwdWwpDQovLw0KDQovLyBHSVJRMTggQml0IFBvc2l0aW9ucw0KI2RlZmluZSBHSVJRMThfTFBDX0VSUk9SX0JJVFBPUyAgICAgICAgICgwKQ0KI2RlZmluZSBHSVJRMThfUU1TUElfSU5UX0JJVFBPUyAgICAgICAgICgxKQ0KI2RlZmluZSBHSVJRMThfU1BJMF9UWF9CSVRQT1MgICAgICAgICAgICgyKQ0KI2RlZmluZSBHSVJRMThfU1BJMF9SWF9CSVRQT1MgICAgICAgICAgICgzKQ0KI2RlZmluZSBHSVJRMThfU1BJMV9UWF9CSVRQT1MgICAgICAgICAgICg0KQ0KI2RlZmluZSBHSVJRMThfU1BJMV9SWF9CSVRQT1MgICAgICAgICAgICg1KQ0KI2RlZmluZSBHSVJRMThfQkNNMF9CVVNZX0NMUl9CSVRQT1MgICAgICg2KQ0KI2RlZmluZSBHSVJRMThfQkNNMF9FUlJPUl9CSVRQT1MgICAgICAgICg3KQ0KI2RlZmluZSBHSVJRMThfQkNNMV9CVVNZX0NMUl9CSVRQT1MgICAgICg4KQ0KI2RlZmluZSBHSVJRMThfQkNNMV9FUlJPUl9CSVRQT1MgICAgICAgICg5KQ0KI2RlZmluZSBHSVJRMThfUFMyX0FDVDBfQklUUE9TICAgICAgICAgICgxMCkNCiNkZWZpbmUgR0lSUTE4X1BTMl9BQ1QxX0JJVFBPUyAgICAgICAgICAoMTEpDQojZGVmaW5lIEdJUlExOF9QUzJfQUNUMl9CSVRQT1MgICAgICAgICAgKDEyKQ0KI2RlZmluZSBHSVJRMThfRUVQUk9NX0JJVFBPUyAgICAgICAgICAgICgxMykNCg0KLy8NCiNkZWZpbmUgR0lSUTE4X01BU0sgICAgICAgICAgICAgICAgICAgICAoMHgzRkZGdWwpDQojZGVmaW5lIEdJUlExOF9XQUtFX0NBUEFCTEVfTUFTSyAgICAgICAgKDB4MHVsKQ0KLy8NCg0KLy8gR0lSUTE5IEJpdCBQb3NpdGlvbnMgDQojZGVmaW5lIEdJUlExOV9FU1BJX0lOVFJfUENfQklUUE9TICAgICAgICgwKQ0KI2RlZmluZSBHSVJRMTlfRVNQSV9JTlRSX0JNMV9CSVRQT1MgICAgICAoMSkNCiNkZWZpbmUgR0lSUTE5X0VTUElfSU5UUl9CTTJfQklUUE9TICAgICAgKDIpDQojZGVmaW5lIEdJUlExOV9FU1BJX0lOVFJfTFRSX0JJVFBPUyAgICAgICgzKQ0KI2RlZmluZSBHSVJRMTlfRVNQSV9JTlRSX09PQl9VUF9CSVRQT1MgICAoNCkNCiNkZWZpbmUgR0lSUTE5X0VTUElfSU5UUl9PT0JfRE5fQklUUE9TICAgKDUpDQojZGVmaW5lIEdJUlExOV9FU1BJX0lOVFJfRkxBU0hfQklUUE9TICAgICg2KQ0KI2RlZmluZSBHSVJRMTlfRVNQSV9SRVNFVF9CSVRQT1MgICAgICAgICAoNykNCiNkZWZpbmUgR0lSUTE5X0VTUElfVldfRU5BQkxFX0JJVFBPUyAgICAgKDgpDQoNCi8vDQojZGVmaW5lIEdJUlExOV9NQVNLICAgICAgICAgICAgICAgICAgICAgKDB4MDFGRnVsKQ0KI2RlZmluZSBHSVJRMTlfV0FLRV9DQVBBQkxFX01BU0sgICAgICAgICgweDB1bCkNCi8vDQoNCi8vIEdJUlEyMCBCaXQgUG9zaXRpb25zIA0KDQovLyANCiNkZWZpbmUgR0lSUTIwX01BU0sgICAgICAgICAgICAgICAgICAgICAoMHgwdWwpDQojZGVmaW5lIEdJUlEyMF9XQUtFX0NBUEFCTEVfTUFTSyAgICAgICAgKDB4MHVsKQ0KLy8NCg0KLy8gR0lSUTIxIEJpdCBQb3NpdGlvbnMgDQojZGVmaW5lIEdJUlEyMV9SVE9TX1RJTUVSX0JJVFBPUyAgICAgICAgKDApDQojZGVmaW5lIEdJUlEyMV9IVElNRVIwX0JJVFBPUyAgICAgICAgICAgKDEpDQojZGVmaW5lIEdJUlEyMV9IVElNRVIxX0JJVFBPUyAgICAgICAgICAgKDIpDQojZGVmaW5lIEdJUlEyMV9XRUVLX0FMUk1fSU5UX0JJVFBPUyAgICAgKDMpDQojZGVmaW5lIEdJUlEyMV9TVUJfV0VFS19BTFJNX0lOVF9CSVRQT1MgKDQpDQojZGVmaW5lIEdJUlEyMV9PTkVfU0VDT05EX0JJVFBPUyAgICAgICAgKDUpDQojZGVmaW5lIEdJUlEyMV9TVUJfU0VDT05EX0JJVFBPUyAgICAgICAgKDYpDQojZGVmaW5lIEdJUlEyMV9TWVNQV1JfUFJFU19CSVRQT1MgICAgICAgKDcpDQojZGVmaW5lIEdJUlEyMV9SVENfQklUUE9TICAgICAgICAgICAgICAgKDgpDQojZGVmaW5lIEdJUlEyMV9SVENfQUxBUk1fQklUUE9TICAgICAgICAgKDkpDQojZGVmaW5lIEdJUlEyMV9WQkFUX1ZDSV9PVlJEX0lOX0JJVFBPUyAgKDEwKQ0KI2RlZmluZSBHSVJRMjFfVkJBVF9WQ0lfSU4wX0JJVFBPUyAgICAgICgxMSkNCiNkZWZpbmUgR0lSUTIxX1ZCQVRfVkNJX0lOMV9CSVRQT1MgICAgICAoMTIpDQojZGVmaW5lIEdJUlEyMV9WQkFUX1ZDSV9JTjJfQklUUE9TICAgICAgKDEzKQ0KI2RlZmluZSBHSVJRMjFfVkJBVF9WQ0lfSU4zX0JJVFBPUyAgICAgICgxNCkNCiNkZWZpbmUgR0lSUTIxX1ZCQVRfVkNJX0lONF9CSVRQT1MgICAgICAoMTUpDQojZGVmaW5lIEdJUlEyMV9WQkFUX1ZDSV9JTjVfQklUUE9TICAgICAgKDE2KQ0KI2RlZmluZSBHSVJRMjFfVkJBVF9WQ0lfSU42X0JJVFBPUyAgICAgICgxNykNCiNkZWZpbmUgR0lSUTIxX1BTMl8wQV9XS19CSVRQT1MgICAgICAgICAoMTgpDQojZGVmaW5lIEdJUlEyMV9QUzJfMEJfV0tfQklUUE9TICAgICAgICAgKDE5KQ0KI2RlZmluZSBHSVJRMjFfUFMyXzFBX1dLX0JJVFBPUyAgICAgICAgICgyMCkNCiNkZWZpbmUgR0lSUTIxX1BTMl8xQl9XS19CSVRQT1MgICAgICAgICAoMjEpDQojZGVmaW5lIEdJUlEyMV9QUzJfMl9XS19CSVRQT1MgICAgICAgICAgKDIyKQ0KI2RlZmluZSBHSVJRMjFfRU5WTU9OX0JJVFBPUyAgICAgICAgICAgICgyNCkNCiNkZWZpbmUgR0lSUTIxX0tTQ19JTlRfQklUUE9TICAgICAgICAgICAoMjUpDQoNCi8vDQojZGVmaW5lIEdJUlEyMV9NQVNLICAgICAgICAgICAgICAgICAgICAgKDB4MzdGRkZGRnVsKQ0KI2RlZmluZSBHSVJRMjFfV0FLRV9DQVBBQkxFX01BU0sgICAgICAgICgweDM3RkZGRkZ1bCkNCi8vDQoNCi8vIEdJUlEyMiBCaXQgUG9zaXRpb25zIA0KI2RlZmluZSBHSVJRMjJfTFBDX1dBS0VfT05MWV9CSVRQT1MgICAgICgwKQ0KI2RlZmluZSBHSVJRMjJfU01CMF9XQUtFX09OTFlfQklUUE9TICAgICgxKQ0KI2RlZmluZSBHSVJRMjJfU01CMV9XQUtFX09OTFlfQklUUE9TICAgICgyKQ0KI2RlZmluZSBHSVJRMjJfU01CMl9XQUtFX09OTFlfQklUUE9TICAgICgzKQ0KI2RlZmluZSBHSVJRMjJfU01CM19XQUtFX09OTFlfQklUUE9TICAgICg0KQ0KI2RlZmluZSBHSVJRMjJfRVNQSV9XQUtFX09OTFlfQklUUE9TICAgICg5KQ0KDQojZGVmaW5lIEdJUlEyMl9NQVNLICAgICAgICAgICAgICAgICAgICAgKDB4MDIxRnVsKQ0KI2RlZmluZSBHSVJRMjJfV0FLRV9DQVBBQkxFX01BU0sgICAgICAgICgweDAyMUZ1bCkNCg0KLy8gR0lSUTIzIEJpdCBQb3NpdGlvbnMgDQojZGVmaW5lIEdJUlEyM19UTVIwX0JJVFBPUyAgICAgICAgICAgICAgKDApDQojZGVmaW5lIEdJUlEyM19UTVIxX0JJVFBPUyAgICAgICAgICAgICAgKDEpDQojZGVmaW5lIEdJUlEyM19UTVIyX0JJVFBPUyAgICAgICAgICAgICAgKDIpDQojZGVmaW5lIEdJUlEyM19UTVIzX0JJVFBPUyAgICAgICAgICAgICAgKDMpDQojZGVmaW5lIEdJUlEyM19UTVI0X0JJVFBPUyAgICAgICAgICAgICAgKDQpDQojZGVmaW5lIEdJUlEyM19UTVI1X0JJVFBPUyAgICAgICAgICAgICAgKDUpDQojZGVmaW5lIEdJUlEyM19DVElNRVIwX0JJVFBPUyAgICAgICAgICAgKDYpDQojZGVmaW5lIEdJUlEyM19DVElNRVIxX0JJVFBPUyAgICAgICAgICAgKDcpDQojZGVmaW5lIEdJUlEyM19DVElNRVIyX0JJVFBPUyAgICAgICAgICAgKDgpDQojZGVmaW5lIEdJUlEyM19DVElNRVIzX0JJVFBPUyAgICAgICAgICAgKDkpDQojZGVmaW5lIEdJUlEyM19DQVBfVElNRVJfQklUUE9TICAgICAgICAgKDEwKQ0KI2RlZmluZSBHSVJRMjNfQ0NUSU1FUjBfQklUUE9TICAgICAgICAgICgxMSkNCiNkZWZpbmUgR0lSUTIzX0NDVElNRVIxX0JJVFBPUyAgICAgICAgICAoMTIpDQojZGVmaW5lIEdJUlEyM19DQ1RJTUVSMl9CSVRQT1MgICAgICAgICAgKDEzKQ0KI2RlZmluZSBHSVJRMjNfQ0NUSU1FUjNfQklUUE9TICAgICAgICAgICgxNCkNCiNkZWZpbmUgR0lSUTIzX0NDVElNRVI0X0JJVFBPUyAgICAgICAgICAoMTUpDQojZGVmaW5lIEdJUlEyM19DQ1RJTUVSNV9CSVRQT1MgICAgICAgICAgKDE2KQ0KI2RlZmluZSBHSVJRMjNfQ0NUSU1FUjZfQklUUE9TICAgICAgICAgICgxNykNCiNkZWZpbmUgR0lSUTIzX0NDVElNRVI3X0JJVFBPUyAgICAgICAgICAoMTgpDQoNCi8vDQojZGVmaW5lIEdJUlEyM19NQVNLICAgICAgICAgICAgICAgICAgICAgKDB4MDdGRkZGdWwpDQojZGVmaW5lIEdJUlEyM19XQUtFX0NBUEFCTEVfTUFTSyAgICAgICAgKDB4MHVsKQ0KLy8NCg0KLy8gR0lSUTI0IEJpdCBQb3NpdGlvbnMNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwMF9TUkMwX0JJVFBPUyAgICAgKDApDQojZGVmaW5lIEdJUlEyNF9FU1BJX1ZXMDBfU1JDMV9CSVRQT1MgICAgICgxKQ0KI2RlZmluZSBHSVJRMjRfRVNQSV9WVzAwX1NSQzJfQklUUE9TICAgICAoMikNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwMF9TUkMzX0JJVFBPUyAgICAgKDMpDQojZGVmaW5lIEdJUlEyNF9FU1BJX1ZXMDFfU1JDMF9CSVRQT1MgICAgICg0KQ0KI2RlZmluZSBHSVJRMjRfRVNQSV9WVzAxX1NSQzFfQklUUE9TICAgICAoNSkNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwMV9TUkMyX0JJVFBPUyAgICAgKDYpDQojZGVmaW5lIEdJUlEyNF9FU1BJX1ZXMDFfU1JDM19CSVRQT1MgICAgICg3KQ0KI2RlZmluZSBHSVJRMjRfRVNQSV9WVzAyX1NSQzBfQklUUE9TICAgICAoOCkNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwMl9TUkMxX0JJVFBPUyAgICAgKDkpDQojZGVmaW5lIEdJUlEyNF9FU1BJX1ZXMDJfU1JDMl9CSVRQT1MgICAgICgxMCkNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwMl9TUkMzX0JJVFBPUyAgICAgKDExKQ0KI2RlZmluZSBHSVJRMjRfRVNQSV9WVzAzX1NSQzBfQklUUE9TICAgICAoMTIpDQojZGVmaW5lIEdJUlEyNF9FU1BJX1ZXMDNfU1JDMV9CSVRQT1MgICAgICgxMykNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwM19TUkMyX0JJVFBPUyAgICAgKDE0KQ0KI2RlZmluZSBHSVJRMjRfRVNQSV9WVzAzX1NSQzNfQklUUE9TICAgICAoMTUpDQojZGVmaW5lIEdJUlEyNF9FU1BJX1ZXMDRfU1JDMF9CSVRQT1MgICAgICgxNikNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwNF9TUkMxX0JJVFBPUyAgICAgKDE3KQ0KI2RlZmluZSBHSVJRMjRfRVNQSV9WVzA0X1NSQzJfQklUUE9TICAgICAoMTgpDQojZGVmaW5lIEdJUlEyNF9FU1BJX1ZXMDRfU1JDM19CSVRQT1MgICAgICgxOSkNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwNV9TUkMwX0JJVFBPUyAgICAgKDIwKQ0KI2RlZmluZSBHSVJRMjRfRVNQSV9WVzA1X1NSQzFfQklUUE9TICAgICAoMjEpDQojZGVmaW5lIEdJUlEyNF9FU1BJX1ZXMDVfU1JDMl9CSVRQT1MgICAgICgyMikNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwNV9TUkMzX0JJVFBPUyAgICAgKDIzKQ0KI2RlZmluZSBHSVJRMjRfRVNQSV9WVzA2X1NSQzBfQklUUE9TICAgICAoMjQpDQojZGVmaW5lIEdJUlEyNF9FU1BJX1ZXMDZfU1JDMV9CSVRQT1MgICAgICgyNSkNCiNkZWZpbmUgR0lSUTI0X0VTUElfVlcwNl9TUkMyX0JJVFBPUyAgICAgKDI2KQ0KI2RlZmluZSBHSVJRMjRfRVNQSV9WVzA2X1NSQzNfQklUUE9TICAgICAoMjcpDQoNCi8vDQojZGVmaW5lIEdJUlEyNF9NQVNLICAgICAgICAgICAgICAgICAgICAgICgweDBGRkZGRkZGdWwpDQojZGVmaW5lIEdJUlEyNF9XQUtFX0NBUEFCTEVfTUFTSyAgICAgICAgICgweDBGRkZGRkZGdWwpDQovLw0KDQovLyBHSVJRMjUgQml0IFBvc2l0aW9ucw0KI2RlZmluZSBHSVJRMjVfRVNQSV9WVzA3X1NSQzBfQklUUE9TICAgICAoMCkNCiNkZWZpbmUgR0lSUTI1X0VTUElfVlcwN19TUkMxX0JJVFBPUyAgICAgKDEpDQojZGVmaW5lIEdJUlEyNV9FU1BJX1ZXMDdfU1JDMl9CSVRQT1MgICAgICgyKQ0KI2RlZmluZSBHSVJRMjVfRVNQSV9WVzA3X1NSQzNfQklUUE9TICAgICAoMykNCiNkZWZpbmUgR0lSUTI1X0VTUElfVlcwOF9TUkMwX0JJVFBPUyAgICAgKDQpDQojZGVmaW5lIEdJUlEyNV9FU1BJX1ZXMDhfU1JDMV9CSVRQT1MgICAgICg1KQ0KI2RlZmluZSBHSVJRMjVfRVNQSV9WVzA4X1NSQzJfQklUUE9TICAgICAoNikNCiNkZWZpbmUgR0lSUTI1X0VTUElfVlcwOF9TUkMzX0JJVFBPUyAgICAgKDcpDQojZGVmaW5lIEdJUlEyNV9FU1BJX1ZXMDlfU1JDMF9CSVRQT1MgICAgICg4KQ0KI2RlZmluZSBHSVJRMjVfRVNQSV9WVzA5X1NSQzFfQklUUE9TICAgICAoOSkNCiNkZWZpbmUgR0lSUTI1X0VTUElfVlcwOV9TUkMyX0JJVFBPUyAgICAgKDEwKQ0KI2RlZmluZSBHSVJRMjVfRVNQSV9WVzA5X1NSQzNfQklUUE9TICAgICAoMTEpDQojZGVmaW5lIEdJUlEyNV9FU1BJX1ZXMTBfU1JDMF9CSVRQT1MgICAgICgxMikNCiNkZWZpbmUgR0lSUTI1X0VTUElfVlcxMF9TUkMxX0JJVFBPUyAgICAgKDEzKQ0KI2RlZmluZSBHSVJRMjVfRVNQSV9WVzEwX1NSQzJfQklUUE9TICAgICAoMTQpDQojZGVmaW5lIEdJUlEyNV9FU1BJX1ZXMTBfU1JDM19CSVRQT1MgICAgICgxNSkNCg0KLy8NCiNkZWZpbmUgR0lSUTI1X01BU0sgICAgICAgICAgICAgICAgICAgICAgKDB4MEZGRkZ1bCkNCiNkZWZpbmUgR0lSUTI1X1dBS0VfQ0FQQUJMRV9NQVNLICAgICAgICAgKDB4MEZGRkZ1bCkNCi8vDQoNCi8vIEdJUlEyNiBiaXQgcG9zaXRpb25zDQojZGVmaW5lIEdJUlEyNl9HUElPMjQwX0JJVFBPUyAgICAgICAgICAgICgwKQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI0MV9CSVRQT1MgICAgICAgICAgICAoMSkNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNDJfQklUUE9TICAgICAgICAgICAgKDIpDQojZGVmaW5lIEdJUlEyNl9HUElPMjQzX0JJVFBPUyAgICAgICAgICAgICgzKQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI0NF9CSVRQT1MgICAgICAgICAgICAoNCkNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNDVfQklUUE9TICAgICAgICAgICAgKDUpDQojZGVmaW5lIEdJUlEyNl9HUElPMjQ2X0JJVFBPUyAgICAgICAgICAgICg2KQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI0N19CSVRQT1MgICAgICAgICAgICAoNykNCg0KI2RlZmluZSBHSVJRMjZfR1BJTzI1MF9CSVRQT1MgICAgICAgICAgICAoOCkNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNTFfQklUUE9TICAgICAgICAgICAgKDkpDQojZGVmaW5lIEdJUlEyNl9HUElPMjUyX0JJVFBPUyAgICAgICAgICAgICgxMCkNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNTNfQklUUE9TICAgICAgICAgICAgKDExKQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI1NF9CSVRQT1MgICAgICAgICAgICAoMTIpDQojZGVmaW5lIEdJUlEyNl9HUElPMjU1X0JJVFBPUyAgICAgICAgICAgICgxMykNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNTZfQklUUE9TICAgICAgICAgICAgKDE0KQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI1N19CSVRQT1MgICAgICAgICAgICAoMTUpDQoNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNjBfQklUUE9TICAgICAgICAgICAgKDE2KQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI2MV9CSVRQT1MgICAgICAgICAgICAoMTcpDQojZGVmaW5lIEdJUlEyNl9HUElPMjYyX0JJVFBPUyAgICAgICAgICAgICgxOCkNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNjNfQklUUE9TICAgICAgICAgICAgKDE5KQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI2NF9CSVRQT1MgICAgICAgICAgICAoMjApDQojZGVmaW5lIEdJUlEyNl9HUElPMjY1X0JJVFBPUyAgICAgICAgICAgICgyMSkNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNjZfQklUUE9TICAgICAgICAgICAgKDIyKQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI2N19CSVRQT1MgICAgICAgICAgICAoMjMpDQoNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNzBfQklUUE9TICAgICAgICAgICAgKDI0KQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI3MV9CSVRQT1MgICAgICAgICAgICAoMjUpDQojZGVmaW5lIEdJUlEyNl9HUElPMjcyX0JJVFBPUyAgICAgICAgICAgICgyNikNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNzNfQklUUE9TICAgICAgICAgICAgKDI3KQ0KI2RlZmluZSBHSVJRMjZfR1BJTzI3NF9CSVRQT1MgICAgICAgICAgICAoMjgpDQojZGVmaW5lIEdJUlEyNl9HUElPMjc1X0JJVFBPUyAgICAgICAgICAgICgyOSkNCiNkZWZpbmUgR0lSUTI2X0dQSU8yNzZfQklUUE9TICAgICAgICAgICAgKDMwKQ0KDQojZGVmaW5lIEdJUlEyNl9NQVNLICAgICAgICAgICAgICAgICAgICAgICgweDdGRkZGRkZGdWwpDQojZGVmaW5lIEdJUlEyNl9XQUtFX0NBUEFCTEVfTUFTSyAgICAgICAgICgweDdGRkZGRkZGdWwpDQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCi8qICAgICAgICAgICAgICAgICAgTlZJQyxFQ0lBIFJvdXRpbmcgUG9saWN5IGZvciBEaXJlY3QgTW9kZSAgICAgICAgICAgICAgICAgICAgICAgKi8NCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCi8qIEluIERpcmVjdCBNb2RlLCBzb21lIGludGVycnVwdHMgY291bGQgYmUgY29uZmlndXJlZCB0byBiZSB1c2VkIGFzIGFnZ3JlZ2F0ZWQuDQogKiBDb25maWd1cmF0aW9uOg0KICogICAgICAxLiBBbHdheXMgc2V0IEVDUyBJbnRlcnJ1cHQgRGlyZWN0IGVuYWJsZSBiaXQuICAgICAgICAgDQogKiAgICAgIDIuIElmIEdJUlFuIGFnZ3JlZ2F0ZWQgc2V0IEJsb2NrIEVuYWJsZSBiaXQuDQogKiAgICAgIDMuIElmIEdJUlFuIGRpcmVjdCB0aGVuIGNsZWFyIEJsb2NrIEVuYWJsZSBiaXQgYW5kIGVuYWJsZSBpbmRpdmlkdWFsIE5WSUMgaW5wdXRzLg0KICogIFN3aXRjaGluZyBpc3N1ZXM6DQogKiAgQWdncmVnYXRlIGVuYWJsZS9kaXNhYmxlIHJlcXVpcmVzIHNldC9jbGVhciBzaW5nbGUgR0lSUW4gYml0IGluIEdJUlEgQmxvY2sgRW4vQ2xyIHJlZ2lzdGVycy4NCiAqICBBbHNvIHJlcXVpcmVzIHNldC9jbGVhciBvZiBpbmRpdmlkdWFsIE5WSUMgRW5hYmxlcy4NCiAqICANCiAqIE5vdGU6IGludGVycnVwdF9pc19naXJxX2RpcmVjdCgpIGludGVybmFsIGZ1bmN0aW9uIHVzZXMgdGhpcyBwb2xpY3kgdG8gZGV0ZWN0IA0KICogaWYgYW55IGludGVycnVwdCBpcyBjb25maWd1cmVkIGFzIGRpcmVjdCBvciBhZ2dyZWdhdGVkDQoqLw0KDQovKiogSW5pdGlhbGl6ZSBFQyBJbnRlcnJ1cHQgQWdncmVnYXRvcg0KICogQHBhcmFtIG1vZGUgMSAtIERpcmVjdCBNYXAgbW9kZSwgMCAtIEZ1bGx5IEFnZ3JlZ2F0ZWQgTW9kZSANCiAqIEBwYXJhbSBnaXJxX2JpdG1hc2sgLSBCaXRNYXNrIG9mIEdJUlEgdG8gYmUgY29uZmlndXJlZCBhcyBhZ2dyZWdhdGVkIA0KICogICAgICAgICAgICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyBvbmx5IGFwcGxpY2FibGUgaW4gZGlyZWN0IG1vZGUuDQogKiBAbm90ZSBBbGwgR1BJTydzIGFuZCB3YWtlIGNhcGFibGUgc291cmNlcyBhcmUgYWx3YXlzIA0KICogYWdncmVnYXRlZCEgR1BJTydzIGludGVycnVwdHMgd2lsbCBzdGlsbCB3b3JrIGluIGRpcmVjdCBtb2RlLg0KICogQmxvY2sgd2FrZXMgYXJlIG5vdCBiZSByb3V0ZWQgdG8gdGhlIHByb2Nlc3NvciBpbiBkaXJlY3QgDQogKiBtb2RlLiANCiAqIE5vdGUyOiBUaGlzIGZ1bmN0aW9uIGRpc2FibGVzIGFuZCBlbmFibGVzIGdsb2JhbCBpbnRlcnJ1cHQgIA0KICovDQp2b2lkIGludGVycnVwdF9pbml0KHVpbnQ4X3QgbW9kZSwgdWludDMyX3QgZ2lycV9iaXRtYXNrKTsNCg0KLyoqIFNldCBpbnRlcnJ1cHQgcm91dGluZyBtb2RlIHRvIGFnZ3JlZ2F0ZWQgb3IgZGlyZWN0LiANCiAqIEBwYXJhbSBtb2RlIDEgPSBEaXJlY3QgKGV4Y2VwdCBHUElPICYgd2FrZSksIDAgPSBBbGwgQWdncmVnYXRlZCANCiAqIEBub3RlIEluIGRpcmVjdCBtb2RlLCBvbmUgY291bGQgZW5hYmxlIGNlcnRhaW4gR0lSUXMgYXMgYWdncmVnYXRlZCB1c2luZyANCiAqIHBfaW50ZXJydXB0X2VjaWFfYmxvY2tfZW5hYmxlX3NldCBmdW5jdGlvbg0KICovDQp2b2lkIGludGVycnVwdF9tb2RlX3NldCh1aW50OF90IG1vZGUpOw0KDQovKiogQ2xlYXJzIGFsbCBpbmRpdmlkdWFsIGludGVycnVwdHMgRW5hYmxlcyBhbmQgU291cmNlIGluIEVDSUEsDQogKiAgYW5kIENsZWFycyBhbGwgTlZJQyBleHRlcm5hbCBlbmFibGVzIGFuZCBwZW5kaW5nIGJpdHMgIA0KICovDQp2b2lkIGludGVycnVwdF9yZXNldCh2b2lkKTsNCg0KLyoqIEVuYWJsZXMgaW50ZXJydXB0IGZvciBhIGRldmljZSANCiAqIEBwYXJhbSBkZXZfaXJvdXRlIC0gc291cmNlIElST1VUSU5HIGluZm9ybWF0aW9uIA0KICogQG5vdGUgVGhpcyBmdW5jdGlvbiBkaXNhYmxlcyBhbmQgZW5hYmxlcyBnbG9iYWwgaW50ZXJydXB0IA0KICovDQp2b2lkIGludGVycnVwdF9kZXZpY2VfZW5hYmxlKHVpbnQzMl90IGRldl9pcm91dGUpOw0KDQovKiogRGlzYWJsZXMgaW50ZXJydXB0IGZvciBhIGRldmljZQ0KICogQHBhcmFtIGRldl9pcm91dGUgLSBzb3VyY2UgSVJPVVRJTkcgaW5mb3JtYXRpb24gIA0KICogQG5vdGUgVGhpcyBmdW5jdGlvbiBkaXNhYmxlcyBhbmQgZW5hYmxlcyBnbG9iYWwgaW50ZXJydXB0IA0KICovDQp2b2lkIGludGVycnVwdF9kZXZpY2VfZGlzYWJsZSh1aW50MzJfdCBkZXZfaXJvdXRlKTsNCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KLyogICAgICAgICAgICAgICAgICBFQ0lBIEFQSXMgdXNpbmcgZGV2aWNlIElST1VURSgpIGFzIGlucHV0ICAgICAgICAgICAgICAgICAgICAgICAqLyANCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCg0KLyoqIENsZWFyIFNvdXJjZSBpbiB0aGUgRUNJQSBmb3IgdGhlIGRldmljZSAgDQogKiBAcGFyYW0gZGV2aSAtIGRldmljZSBJUk9VVElORyB2YWx1ZSAgDQogKi8NCnZvaWQgaW50ZXJydXB0X2RldmljZV9lY2lhX3NvdXJjZV9jbGVhcihjb25zdCB1aW50MzJfdCBkZXZfaXJvdXRlKTsNCg0KLyoqIEdldCB0aGUgU291cmNlIGJpdCBpbiB0aGUgRUNJQSBmb3IgdGhlIGRldmljZSAgDQogKiBAcGFyYW0gZGV2aSAtIGRldmljZSBJUk9VVElORyB2YWx1ZSAgDQogKiBAcmV0dXJuIDAgaWYgc291cmNlIGJpdCBub3Qgc2V0OyBlbHNlIG5vbi16ZXJvIHZhbHVlDQogKi8NCnVpbnQzMl90IGludGVycnVwdF9kZXZpY2VfZWNpYV9zb3VyY2VfZ2V0KGNvbnN0IHVpbnQzMl90IGRldl9pcm91dGUpOw0KDQovKiogR2V0IHRoZSBSZXN1bHQgYml0IGluIHRoZSBFQ0lBIGZvciB0aGUgZGV2aWNlICANCiAqIEBwYXJhbSBkZXZpIC0gZGV2aWNlIElST1VUSU5HIHZhbHVlICANCiAqIEByZXR1cm4gMCBpZiByZXN1bHQgYml0IG5vdCBzZXQ7IGVsc2Ugbm9uLXplcm8gdmFsdWUNCiAqLw0KdWludDMyX3QgaW50ZXJydXB0X2RldmljZV9lY2lhX3Jlc3VsdF9nZXQoY29uc3QgdWludDMyX3QgZGV2X2lyb3V0ZSk7DQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCi8qICAgICAgICAgICAgICAgICAgTlZJQyBBUElzIHVzaW5nIGRldmljZSBJUk9VVEUoKSBhcyBpbnB1dCAgICAgICAgICAgICAgICAgICAgICAgKi8gDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQovKiBOb3RlIHRoYXQgaWYgdGhlIGRldmljZSBpbnRlcnJ1cHQgaXMgYWdncmVnYXRlZCwgdGhlbiB0aGVzZSBBUElzIHdvdWxkIGFmZmVjdCB0aGUgDQogKiBOVklDIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFnZ3JlZ2F0ZWQgR0lSUSANCiAqLw0KDQovKiogIEVuYWJsZS9EaXNhYmxlIHRoZSBOVklDIChpbiB0aGUgTlZJQyBjb250cm9sbGVyKSBmb3IgdGhlIGRldmljZQ0KICogQHBhcmFtIGRldl9pcm91dGUgOiBzb3VyY2UgSVJPVVRJTkcgaW5mb3JtYXRpb24gKGVuY29kZWQgaW4gYSB1aW50MzJfdCkNCiAqIEBwYXJhbSBlbl9mbGFnIDogMSA9IEVuYWJsZSB0aGUgTlZJQyBJUlEsIDAgPSBEaXNhYmxlIHRoZSBOVklDIElSUSANCiAqIEBub3RlIFJlY29tbWVuZGVkIHRvIHVzZSBpbnRlcnJ1cHRfZGV2aWNlX2VuYWJsZSwgaW50ZXJydXB0X2RldmljZV9kaXNhYmxlDQogKiB0byBlbmFibGUvZGlzYWJsZSBpbnRlcnJ1cHRzIGZvciB0aGUgZGV2aWNlLCBzaW5jZSB0aG9zZSBBUElzIGNvbmZpZ3VyZSBFQ0lBIGFzIHdlbGwNCiAqLw0Kdm9pZCBpbnRlcnJ1cHRfZGV2aWNlX252aWNfZW5hYmxlKHVpbnQzMl90IGRldl9pcm91dGUsIHVpbnQ4X3QgZW5fZmxhZyk7DQoNCi8qKiBTZXQgTlZJQyBwcmlvcml0eSBmb3Igc3BlY2lmaWVkIHBlcmlwaGVyYWwgaW50ZXJydXB0IHNvdXJjZQ0KICogQHBhcmFtIGRldl9pcm91dGUgLSBzb3VyY2UgSVJPVVRJTkcgaW5mb3JtYXRpb24gKGVuY29kZWQgaW4gYSB1aW50MzJfdCkNCiAqIEBwYXJhbSBudmljX3ByaSAtIE5WSUMgUHJpb3JpdHkNCiAqIEBub3RlIDEuIElmIEVDSUEgaXMgaW4gYWdncmVnYXRlZCBtb2RlLCB0aGUgcHJpb3JpdHkgYWZmZWN0cyBhbGwgaW50ZXJydXB0IA0KICogc291cmNlcyBpbiB0aGUgR0lSUS4gDQogKiAyLiBUaGlzIGZ1bmN0aW9uIGRpc2FibGVzIGFuZCBlbmFibGVzIGdsb2JhbCBpbnRlcnJ1cHQgICAgDQogKi8NCnZvaWQgaW50ZXJydXB0X2RldmljZV9udmljX3ByaW9yaXR5X3NldChjb25zdCB1aW50MzJfdCBkZXZfaXJvdXRlLCBjb25zdCB1aW50OF90IG52aWNfcHJpKTsNCg0KLyoqIFJldHVybiBOVklDIHByaW9yaXR5IGZvciBpbnRlcnJ1cHQgc291cmNlDQogKiBAcGFyYW0gZGV2X2lyb3V0ZSAtIHNvdXJjZSBJUk9VVElORyBpbmZvcm1hdGlvbiANCiAqIEByZXR1cm4gdWludDMyX3QgIE5WSUMgcHJpb3JpdHkgDQogKi8NCnVpbnQzMl90IGludGVycnVwdF9kZXZpY2VfbnZpY19wcmlvcml0eV9nZXQoY29uc3QgdWludDMyX3QgZGV2X2lyb3V0ZSk7DQoNCi8qKiBSZXR1cm4gTlZJQyBwZW5kaW5nIGZvciBpbnRlcnJ1cHQgc291cmNlDQogKiBAcGFyYW0gZGV2X2lyb3V0ZSAtIHNvdXJjZSBJUk9VVElORyBpbmZvcm1hdGlvbiANCiAqIEByZXR1cm4gdWludDhfdCAwKG5vdCBwZW5kaW5nKSwgMSAocGVuZGluZyBpbiBOVklDKSANCiAqICANCiAqLw0KdWludDhfdCBpbnRlcnJ1cHRfZGV2aWNlX252aWNfcGVuZGluZ19nZXQoY29uc3QgdWludDMyX3QgZGV2X2lyb3V0ZSk7DQoNCi8qKiBTZXQgTlZJQyBwZW5kaW5nIGZvciBpbnRlcnJ1cHQgc291cmNlDQogKiBAcGFyYW0gZGV2X2lyb3V0ZSAtIHNvdXJjZSBJUk9VVElORyBpbmZvcm1hdGlvbiAgIA0KICovDQp2b2lkIGludGVycnVwdF9kZXZpY2VfbnZpY19wZW5kaW5nX3NldChjb25zdCB1aW50MzJfdCBkZXZfaXJvdXRlKTsNCg0KLyoqIENsZWFycyBOVklDIHBlbmRpbmcgZm9yIGludGVycnVwdCBzb3VyY2UNCiAqIEBwYXJhbSBkZXZfaXJvdXRlIC0gc291cmNlIElST1VUSU5HIGluZm9ybWF0aW9uIA0KICogQHJldHVybiB1aW50OF90IDAobm90IHBlbmRpbmcpLCAxIChwZW5kaW5nIGluIE5WSUMpIC0gYmVmb3JlIGNsZWFyIA0KICogQG5vdGUgVGhpcyBmdW5jdGlvbiBkaXNhYmxlcyBhbmQgZW5hYmxlcyBnbG9iYWwgaW50ZXJydXB0ICAgIA0KICovDQp1aW50OF90IGludGVycnVwdF9kZXZpY2VfbnZpY19wZW5kaW5nX2NsZWFyKGNvbnN0IHVpbnQzMl90IGRldl9pcm91dGUpOw0KICAgIA0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KLyogUGVyaXBoZXJhbCBGdW5jdGlvbnMgLSBPcGVyYXRpb25zIG9uIEdJUlEgQmxvY2sgRW5hYmxlIFNldCwgRW5hYmxlIENsZWFyICAgICAgICAqDQogKiBhbmQgU3RhdHVzIFJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCi8qKiBFbmFibGUgc3BlY2lmaWVkIEdJUlEgaW4gRUNJQSBibG9jaw0KICogQHBhcmFtIGdpcnFfaWQgLSBlbnVtIE1FQ19HSVJRX0lEUyANCiAqLw0KIHZvaWQgcF9pbnRlcnJ1cHRfZWNpYV9ibG9ja19lbmFibGVfc2V0KHVpbnQ4X3QgZ2lycV9pZCk7DQogIA0KIC8qKiBFbmFibGUgR0lSUXMgaW4gRUNJQSBCbG9jayANCiAqIEBwYXJhbSBnaXJxX2JpdG1hc2sgLSBCaXRtYXNrIG9mIEdJUlFzIHRvIGJlIGVuYWJsZWQgaW4gRUNJQSBCbG9jayAgDQogKi8NCnZvaWQgcF9pbnRlcnJ1cHRfZWNpYV9ibG9ja19lbmFibGVfYml0bWFza19zZXQodWludDMyX3QgZ2lycV9iaXRtYXNrKTsNCg0KLyoqIENoZWNrIGlmIHNwZWNpZmllZCBHSVJRIGJsb2NrIGVuYWJsZWQgb3Igbm90DQogKiBAcGFyYW0gZ2lycV9pZCAtIGVudW0gTUVDX0dJUlFfSURTIA0KICogQHJldHVybiByZXRWYWwgLSAxIGlmIHRoZSBwYXJ0aWN1bGFyIEdJUlEgYmxvY2sgZW5hYmxlZCwgZWxzZSAwDQogKi8NCnVpbnQ4X3QgcF9pbnRlcnJ1cHRfZWNpYV9ibG9ja19lbmFibGVfZ2V0KHVpbnQ4X3QgZ2lycV9pZCk7DQoNCi8qKiBTZXQgYWxsIEdJUlEgYmxvY2sgZW5hYmxlcyAqLw0Kdm9pZCBwX2ludGVycnVwdF9lY2lhX2Jsb2NrX2VuYWJsZV9hbGxfc2V0KHZvaWQpOw0KDQovKiogQ2xlYXIgc3BlY2lmaWVkIEdJUlEgaW4gRUNJQSBCbG9jayANCiAqIEBwYXJhbSBnaXJxX2lkIC0gZW51bSBNRUNfR0lSUV9JRFMgDQogKi8NCnZvaWQgcF9pbnRlcnJ1cHRfZWNpYV9ibG9ja19lbmFibGVfY2xyKHVpbnQ4X3QgZ2lycV9pZCk7DQoNCi8qKiBDbGVhciBHSVJRcyBpbiBFQ0lBIEJsb2NrIA0KICogQHBhcmFtIGdpcnFfYml0bWFzayAtIEJpdG1hc2sgb2YgR0lSUXMgdG8gYmUgY2xlYXJlZCBpbiBFQ0lBIEJsb2NrICANCiAqLw0Kdm9pZCBwX2ludGVycnVwdF9lY2lhX2Jsb2NrX2VuYWJsZV9iaXRtYXNrX2Nscih1aW50MzJfdCBnaXJxX2JpdG1hc2spOw0KDQovKiogcF9pbnRlcnJ1cHRfZWNpYV9ibG9ja19lbmFibGVfYWxsX2NsciAtIENsZWFycyBhbGwgR0lSUSBibG9jayBlbmFibGVzICovDQp2b2lkIHBfaW50ZXJydXB0X2VjaWFfYmxvY2tfZW5hYmxlX2FsbF9jbHIodm9pZCk7DQogDQogLyoqIEdldCBzdGF0dXMgb2YgR0lSUSBpbiBFQ0lBIEJsb2NrDQogKiBAcGFyYW0gZ2lycV9pZCAtIGVudW0gTUVDX0dJUlFfSURTICANCiAqIEByZXR1cm4gMCBpZiBzdGF0dXMgYml0IG5vdCBzZXQ7IGVsc2Ugbm9uLXplcm8gdmFsdWUNCiAqLw0KdWludDMyX3QgcF9pbnRlcnJ1cHRfZWNpYV9ibG9ja19pcnFfc3RhdHVzX2dldCh1aW50OF90IGdpcnFfaWQpOw0KDQovKiogUmVhZHMgdGhlIEJsb2NrIElSUSBWZWN0b3IgUmVnaXN0ZXINCiAgKiBAcmV0dXJuIDMyLWJpdCB2YWx1ZQ0KICovDQp1aW50MzJfdCBwX2ludGVycnVwdF9lY2lhX2Jsb2NrX2lycV9hbGxfc3RhdHVzX2dldCh2b2lkKTsNCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KLyogUGVyaXBoZXJhbCBGdW5jdGlvbnMgLSBPcGVyYXRpb25zIG9uIEdJUlF4IFNvdXJjZSwgRW5hYmxlLCBSZXN1bHQgICAgICAgICAgICAqDQogKiBhbmQgRW5hYmxlIFJlZ2lzdGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCi8qKiBDbGVhciBzcGVjaWZpZWQgaW50ZXJydXB0IHNvdXJjZSBiaXQgaW4gR0lSUXgNCiAqIEBwYXJhbSBnaXJxX2lkIC0gZW51bSBNRUNfR0lSUV9JRFMNCiAqIEBwYXJhbSBiaXRudW0gLVswLCAzMV0NCiAqLw0Kdm9pZCBwX2ludGVycnVwdF9lY2lhX2dpcnFfc291cmNlX2NscihpbnQxNl90IGdpcnFfaWQsIHVpbnQ4X3QgYml0bnVtKTsNCg0KLyoqIFJlYWQgdGhlIHNwZWNpZmllZCBpbnRlcnJ1cHQgc291cmNlIGJpdCBpbiBHSVJReA0KICogQHBhcmFtIGdpcnFfaWQgLSBlbnVtIE1FQ19HSVJRX0lEUw0KICogQHBhcmFtIGJpdG51bSAtWzAsIDMxXQ0KICogQHJldHVybiAwIGlmIHNvdXJjZSBiaXQgbm90IHNldDsgZWxzZSBub24temVybyB2YWx1ZQ0KICovDQp1aW50MzJfdCBwX2ludGVycnVwdF9lY2lhX2dpcnFfc291cmNlX2dldChpbnQxNl90IGdpcnFfaWQsIHVpbnQ4X3QgYml0bnVtKTsNCg0KLyoqIEVuYWJsZSB0aGUgc3BlY2lmaWVkIGludGVycnVwdCBpbiBHSVJReA0KICogZ2lycV9pZCAtIGVudW0gTUVDX0dJUlFfSURTDQogKiBiaXRudW0gPSBbMCwgMzFdDQogKi8NCnZvaWQgcF9pbnRlcnJ1cHRfZWNpYV9naXJxX2VuYWJsZV9zZXQodWludDE2X3QgZ2lycV9pZCwgdWludDhfdCBiaXRudW0pOw0KDQovKiogRGlzYWJsZSB0aGUgc3BlY2lmaWVkIGludGVycnVwdCBpbiBHSVJReA0KICogZ2lycV9pZCAtIGVudW0gTUVDX0dJUlFfSURTDQogKiBiaXRudW0gPSBbMCwgMzFdDQogKi8NCnZvaWQgcF9pbnRlcnJ1cHRfZWNpYV9naXJxX2VuYWJsZV9jbHIodWludDE2X3QgZ2lycV9pZCwgdWludDhfdCBiaXRudW0pOw0KDQovKiogUmVhZCB0aGUgc3RhdHVzIG9mIHRoZSBzcGVjaWZpZWQgaW50ZXJydXB0IGluIEdJUlF4DQogKiBnaXJxX2lkIC0gZW51bSBNRUNfR0lSUV9JRFMNCiAqIGJpdG51bSA9IFswLCAzMV0NCiAqIEByZXR1cm4gMCBpZiBlbmFibGUgYml0IG5vdCBzZXQ7IGVsc2Ugbm9uLXplcm8gdmFsdWUNCiAqLw0KdWludDMyX3QgcF9pbnRlcnJ1cHRfZWNpYV9naXJxX2VuYWJsZV9nZXQodWludDE2X3QgZ2lycV9pZCwgdWludDhfdCBiaXRudW0pOw0KDQovKiogUmVhZCB0aGUgcmVzdWx0IGJpdCBvZiB0aGUgaW50ZXJydXB0IGluIEdJUlF4DQogKiBAcGFyYW0gZ2lycV9pZCAtIGVudW0gTUVDX0dJUlFfSURTDQogKiBAcGFyYW0gYml0bnVtIC1bMCwgMzFdDQogKiBAcmV0dXJuIDAgaWYgZW5hYmxlIGJpdCBub3Qgc2V0OyBlbHNlIG5vbi16ZXJvIHZhbHVlDQogKi8NCnVpbnQzMl90IHBfaW50ZXJydXB0X2VjaWFfZ2lycV9yZXN1bHRfZ2V0KGludDE2X3QgZ2lycV9pZCwgdWludDhfdCBiaXRudW0pOw0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQovKiBQZXJpcGhlcmFsIEZ1bmN0aW9uIC0gT3BlcmF0aW9ucyBvbiBhbGwgR0lSUXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCi8qKiBDbGVhciBhbGwgYWdncmVnYXRvciBHSVJRbiBzdGF0dXMgcmVnaXN0ZXJzICovDQp2b2lkIHBfaW50ZXJydXB0X2VjaWFfZ2lycXNfc291cmNlX3Jlc2V0KHZvaWQpOw0KDQovKiogQ2xlYXIgYWxsIGFnZ3JlZ2F0b3IgR0lSUW4gZW5hYmxlcyAqLw0KIHZvaWQgcF9pbnRlcnJ1cHRfZWNpYV9naXJxc19lbmFibGVfcmVzZXQodm9pZCk7DQogDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQovKiBQZXJpcGhlcmFsIEZ1bmN0aW9uIC0gRnVuY3Rpb24gdG8gc2V0IGludGVycnVwdCBjb250cm9sICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCi8qKiBTZXQgaW50ZXJydXB0IGNvbnRyb2wgDQogKiBAcGFyYW0gbnZpY19lbl9mbGFnIDogMCA9IEFsdGVybmF0ZSBOVklDIGRpc2FibGVkLCAxID0gQWx0ZXJuYXRlIE5WSUMgZW5hYmxlZA0KICovDQogdm9pZCBwX2ludGVycnVwdF9jb250cm9sX3NldCh1aW50OF90IG52aWNfZW5fZmxhZyk7DQogICAgIA0KIC8qKiBSZWFkIGludGVycnVwdCBjb250cm9sIA0KICogQHJldHVybiB1aW50OF90IC0gMCA9IEFsdGVybmF0ZSBOVklDIGRpc2FibGVkLCAxID0gQWx0ZXJuYXRlIE5WSUMgZW5hYmxlZA0KICovDQp1aW50OF90IHBfaW50ZXJydXB0X2NvbnRyb2xfZ2V0KHZvaWQpOw0KDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQovKiBQZXJpcGhlcmFsIEZ1bmN0aW9ucyAtIE5WSUMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCi8qKiAgRW5hYmxlL0Rpc2FibGUgdGhlIE5WSUMgSVJRIGluIHRoZSBOVklDIGludGVycnVwdCBjb250cm9sbGVyDQogKiBAcGFyYW0gbnZpY19udW0gOiBOVklDIG51bWJlciAoc2VlIGVudW0gSVJRbl9UeXBlKQ0KICogQHBhcmFtIGVuX2ZsYWcgOiAxID0gRW5hYmxlIHRoZSBOVklDIElSUSwgMCA9IERpc2FibGUgdGhlIE5WSUMgSVJRDQogKiBAbm90ZSBBcHBsaWNhdGlvbiBzaG91bGQgcGVyZm9ybSB0aGlzIG9wZXJhdGlvbg0KICovDQogdm9pZCBwX2ludGVycnVwdF9udmljX2VuYWJsZShJUlFuX1R5cGUgbnZpY19udW0sIHVpbnQ4X3QgZW5fZmxhZyk7DQogICAgIA0KIC8qKiAgZWNpYV9udmljX2Nscl9lbiAtIENsZWFyIGFsbCBOVklDIGV4dGVybmFsIGVuYWJsZXMgKi8gDQp2b2lkIHBfaW50ZXJydXB0X252aWNfZXh0RW5hYmxlc19jbHIodm9pZCk7DQoNCi8qKiBDbGVhciBhbGwgTlZJQyBleHRlcm5hbCBlbmFibGVzIGFuZCBwZW5kaW5nIGJpdHMgKi8NCnZvaWQgcF9pbnRlcnJ1cHRfbnZpY19lbnBlbmRfY2xyKHZvaWQpOw0KDQovKiogU2V0IE5WSUMgZXh0ZXJuYWwgcHJpb3JpdGllcyB0byBQT1IgdmFsdWUgKi8NCnZvaWQgcF9pbnRlcnJ1cHRfbnZpY19wcmlvcml0aWVzX2RlZmF1bHRfc2V0KHZvaWQpOw0KDQovKiogU2V0IE5WSUMgZXh0ZXJuYWwgcHJpb3JpdGllcyB0byBzcGVjaWZpZWQgcHJpb3JpdHkgKDAgLSA3KQ0KICogQHBhcmFtIHplcm8tYmFzZWQgMy1iaXQgcHJpb3JpdHkgdmFsdWU6IDA9aGlnaGVzdCwgNz1sb3dlc3QuDQogKiBAbm90ZSBOVklDIGhpZ2hlc3QgcHJpb3JpdHkgaXMgdGhlIHZhbHVlIDAsIGxvd2VzdCBpcyBhbGwgMSdzLg0KICogRWFjaCBleHRlcm5hbCBpbnRlcnJ1cHQgaGFzIGFuIDgtYml0IHJlZ2lzdGVyIGFuZCB0aGUgcHJpb3JpdHkgDQogKiBpcyBsZWZ0IGp1c3RpZmllZCBpbiB0aGUgcmVnaXN0ZXJzLiBNRUN4eHggaW1wbGVtZW50cyA4IHByaW9yaXR5IA0KICogbGV2ZWxzIG9yIGJpdHMgWzc6NV0gaW4gdGhlIHJlZ2lzdGVyLiBMb3dlc3QgcHJpb3JpdHkgPSAweEUwDQogKi8NCnZvaWQgcF9pbnRlcnJ1cHRfbnZpY19wcmlvcml0aWVzX3NldCh1aW50OF90IG5ld19wcmkpOw0KDQojZW5kaWYgLy8gI2lmbmRlZiBfSU5URVJSVVBUX0gNCi8qIGVuZCBpbnRlcnJ1cHQuaCAqLw0KLyoqICAgQH0NCiAqLw0KDQoNCg0K