LS0tIHBjcmVfY29tcGlsZS5jCTIwMDYtMTAtMTAgMTI6MDA6MDAuMDAwMDAwMDAwICswMjAwCisrKyBwY3JlX2NvbXBpbGUuYwkyMDA2LTEwLTEwIDEyOjAwOjAwLjAwMDAwMDAwMCArMDIwMApAQCAtMjQ2LDEzMCArMjQ2LDYgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmVycm9yX3RleHRzW10gPSB7CiB9OwogCiAKLS8qIFRhYmxlIHRvIGlkZW50aWZ5IGRpZ2l0cyBhbmQgaGV4IGRpZ2l0cy4gVGhpcyBpcyB1c2VkIHdoZW4gY29tcGlsaW5nCi1wYXR0ZXJucy4gTm90ZSB0aGF0IHRoZSB0YWJsZXMgaW4gY2hhcnRhYmxlcyBhcmUgZGVwZW5kZW50IG9uIHRoZSBsb2NhbGUsIGFuZAotbWF5IG1hcmsgYXJiaXRyYXJ5IGNoYXJhY3RlcnMgYXMgZGlnaXRzIC0gYnV0IHRoZSBQQ1JFIGNvbXBpbGluZyBjb2RlIGV4cGVjdHMKLXRvIGhhbmRsZSBvbmx5IDAtOSwgYS16LCBhbmQgQS1aIGFzIGRpZ2l0cyB3aGVuIGNvbXBpbGluZy4gVGhhdCBpcyB3aHkgd2UgaGF2ZQotYSBwcml2YXRlIHRhYmxlIGhlcmUuIEl0IGNvc3RzIDI1NiBieXRlcywgYnV0IGl0IGlzIGEgbG90IGZhc3RlciB0aGFuIGRvaW5nCi1jaGFyYWN0ZXIgdmFsdWUgdGVzdHMgKGF0IGxlYXN0IGluIHNvbWUgc2ltcGxlIGNhc2VzIEkgdGltZWQpLCBhbmQgaW4gc29tZQotYXBwbGljYXRpb25zIG9uZSB3YW50cyBQQ1JFIHRvIGNvbXBpbGUgZWZmaWNpZW50bHkgYXMgd2VsbCBhcyBtYXRjaAotZWZmaWNpZW50bHkuCi0KLUZvciBjb252ZW5pZW5jZSwgd2UgdXNlIHRoZSBzYW1lIGJpdCBkZWZpbml0aW9ucyBhcyBpbiBjaGFydGFibGVzOgotCi0gIDB4MDQgICBkZWNpbWFsIGRpZ2l0Ci0gIDB4MDggICBoZXhhZGVjaW1hbCBkaWdpdAotCi1UaGVuIHdlIGNhbiB1c2UgY3R5cGVfZGlnaXQgYW5kIGN0eXBlX3hkaWdpdCBpbiB0aGUgY29kZS4gKi8KLQotI2lmICFFQkNESUMgICAgLyogVGhpcyBpcyB0aGUgIm5vcm1hbCIgY2FzZSwgZm9yIEFTQ0lJIHN5c3RlbXMgKi8KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGRpZ2l0YWJbXSA9Ci0gIHsKLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgIDAtICA3ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogICA4LSAxNSAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAxNi0gMjMgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgMjQtIDMxICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogICAgLSAnICAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAoIC0gLyAgKi8KLSAgMHgwYywweDBjLDB4MGMsMHgwYywweDBjLDB4MGMsMHgwYywweDBjLCAvKiAgMCAtIDcgICovCi0gIDB4MGMsMHgwYywweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIDggLSA/ICAqLwotICAweDAwLDB4MDgsMHgwOCwweDA4LDB4MDgsMHgwOCwweDA4LDB4MDAsIC8qICBAIC0gRyAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgSCAtIE8gICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIFAgLSBXICAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICBYIC0gXyAgKi8KLSAgMHgwMCwweDA4LDB4MDgsMHgwOCwweDA4LDB4MDgsMHgwOCwweDAwLCAvKiAgYCAtIGcgICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIGggLSBvICAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICBwIC0gdyAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgeCAtMTI3ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMTI4LTEzNSAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qIDEzNi0xNDMgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAxNDQtMTUxICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMTUyLTE1OSAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qIDE2MC0xNjcgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAxNjgtMTc1ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMTc2LTE4MyAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qIDE4NC0xOTEgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAxOTItMTk5ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMjAwLTIwNyAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qIDIwOC0yMTUgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAyMTYtMjIzICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMjI0LTIzMSAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qIDIzMi0yMzkgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAyNDAtMjQ3ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMH07LyogMjQ4LTI1NSAqLwotCi0jZWxzZSAgICAgICAgICAvKiBUaGlzIGlzIHRoZSAiYWJub3JtYWwiIGNhc2UsIGZvciBFQkNESUMgc3lzdGVtcyAqLwotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGlnaXRhYltdID0KLSAgewotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAgMC0gIDcgIDAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgIDgtIDE1ICAgICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIDE2LSAyMyAxMCAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAyNC0gMzEgICAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgMzItIDM5IDIwICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIDQwLSA0NyAgICAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICA0OC0gNTUgMzAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgNTYtIDYzICAgICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogICAgLSA3MSA0MCAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICA3Mi0gfCAgICAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgJiAtIDg3IDUwICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIDg4LSCsICAgICAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAtIC0xMDMgNjAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAxMDQtID8gICAgICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMTEyLTExOSA3MCAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qIDEyMC0gIiAgICAgKi8KLSAgMHgwMCwweDA4LDB4MDgsMHgwOCwweDA4LDB4MDgsMHgwOCwweDAwLCAvKiAxMjgtIGcgIDgwICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIGggLTE0MyAgICAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qIDE0NC0gcCAgOTAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgcSAtMTU5ICAgICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMTYwLSB4ICBBMCAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICB5IC0xNzUgICAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgXiAtMTgzIEIwICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMTg0LTE5MSAgICAqLwotICAweDAwLDB4MDgsMHgwOCwweDA4LDB4MDgsMHgwOCwweDA4LDB4MDAsIC8qICB7IC0gRyAgQzAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgSCAtMjA3ICAgICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIH0gLSBQICBEMCAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICBRIC0yMjMgICAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgXCAtIFggIEUwICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIFkgLTIzOSAgICAqLwotICAweDBjLDB4MGMsMHgwYywweDBjLDB4MGMsMHgwYywweDBjLDB4MGMsIC8qICAwIC0gNyAgRjAgKi8KLSAgMHgwYywweDBjLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfTsvKiAgOCAtMjU1ICAgICovCi0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIGViY2RpY19jaGFydGFiW10gPSB7IC8qIGNoYXJ0YWJsZSBwYXJ0aWFsIGR1cCAqLwotICAweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMSwweDAwLDB4MDAsIC8qICAgMC0gIDcgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MDEsMHgwMCwweDAwLCAvKiAgIDgtIDE1ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAxLDB4MDAsMHgwMCwgLyogIDE2LSAyMyAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAyNC0gMzEgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDEsMHgwMCwweDAwLCAvKiAgMzItIDM5ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIDQwLSA0NyAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICA0OC0gNTUgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgNTYtIDYzICovCi0gIDB4MDEsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogICAgLSA3MSAqLwotICAweDAwLDB4MDAsMHgwMCwweDgwLDB4MDAsMHg4MCwweDgwLDB4ODAsIC8qICA3Mi0gfCAgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgJiAtIDg3ICovCi0gIDB4MDAsMHgwMCwweDAwLDB4ODAsMHg4MCwweDgwLDB4MDAsMHgwMCwgLyogIDg4LSCsICAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICAtIC0xMDMgKi8KLSAgMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MTAsMHgwMCwweDgwLCAvKiAxMDQtID8gICovCi0gIDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMTEyLTExOSAqLwotICAweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qIDEyMC0gIiAgKi8KLSAgMHgwMCwweDFhLDB4MWEsMHgxYSwweDFhLDB4MWEsMHgxYSwweDEyLCAvKiAxMjgtIGcgICovCi0gIDB4MTIsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIGggLTE0MyAqLwotICAweDAwLDB4MTIsMHgxMiwweDEyLDB4MTIsMHgxMiwweDEyLDB4MTIsIC8qIDE0NC0gcCAgKi8KLSAgMHgxMiwweDEyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgcSAtMTU5ICovCi0gIDB4MDAsMHgwMCwweDEyLDB4MTIsMHgxMiwweDEyLDB4MTIsMHgxMiwgLyogMTYwLSB4ICAqLwotICAweDEyLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICB5IC0xNzUgKi8KLSAgMHg4MCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgXiAtMTgzICovCi0gIDB4MDAsMHgwMCwweDgwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogMTg0LTE5MSAqLwotICAweDgwLDB4MWEsMHgxYSwweDFhLDB4MWEsMHgxYSwweDFhLDB4MTIsIC8qICB7IC0gRyAgKi8KLSAgMHgxMiwweDEyLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLCAvKiAgSCAtMjA3ICovCi0gIDB4MDAsMHgxMiwweDEyLDB4MTIsMHgxMiwweDEyLDB4MTIsMHgxMiwgLyogIH0gLSBQICAqLwotICAweDEyLDB4MTIsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsIC8qICBRIC0yMjMgKi8KLSAgMHgwMCwweDAwLDB4MTIsMHgxMiwweDEyLDB4MTIsMHgxMiwweDEyLCAvKiAgXCAtIFggICovCi0gIDB4MTIsMHgxMiwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwgLyogIFkgLTIzOSAqLwotICAweDFjLDB4MWMsMHgxYywweDFjLDB4MWMsMHgxYywweDFjLDB4MWMsIC8qICAwIC0gNyAgKi8KLSAgMHgxYywweDFjLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwfTsvKiAgOCAtMjU1ICovCi0jZW5kaWYKLQotCiAvKiBEZWZpbml0aW9uIHRvIGFsbG93IG11dHVhbCByZWN1cnNpb24gKi8KIAogc3RhdGljIEJPT0wK