LyogRHJpdmVyIGZvciBVU0IgTWFzcyBTdG9yYWdlIGNvbXBsaWFudCBkZXZpY2VzCiAqIFVudXN1YWwgRGV2aWNlcyBGaWxlCiAqCiAqICRJZDogdW51c3VhbF9kZXZzLmgsdiAxLjMyIDIwMDIvMDIvMjUgMDI6NDE6MjQgbWRoYXJtIEV4cCAkCiAqCiAqIEN1cnJlbnQgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIGJ5OgogKiAgIChjKSAyMDAwLTIwMDIgTWF0dGhldyBEaGFybSAobWRoYXJtLXVzYkBvbmUtZXllZC1hbGllbi5uZXQpCiAqCiAqIEluaXRpYWwgd29yayBieToKICogICAoYykgMjAwMCBBZGFtIEouIFJpY2h0ZXIgKGFkYW1AeWdnZHJhc2lsLmNvbSksIFlnZ2RyYXNpbCBDb21wdXRpbmcsIEluYy4KICoKICogUGxlYXNlIHNlZSBodHRwOi8vd3d3Lm9uZS1leWVkLWFsaWVuLm5ldC9+bWRoYXJtL2xpbnV4LXVzYiBmb3IgbW9yZQogKiBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGRyaXZlci4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKICogbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKICogd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICogNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAqLwoKLyogSU1QT1JUQU5UIE5PVEU6IFRoaXMgZmlsZSBtdXN0IGJlIGluY2x1ZGVkIGluIGFub3RoZXIgZmlsZSB3aGljaCBkb2VzCiAqIHRoZSBmb2xsb3dpbmcgdGhpbmcgZm9yIGl0IHRvIHdvcms6CiAqIFRoZSBtYWNybyBVTlVTVUFMX0RFVigpIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgdGhpcyBmaWxlIGlzIGluY2x1ZGVkCiAqLwoKLyogSWYgeW91IGVkaXQgdGhpcyBmaWxlLCBwbGVhc2UgdHJ5IHRvIGtlZXAgaXQgc29ydGVkIGZpcnN0IGJ5IFZlbmRvcklELAogKiB0aGVuIGJ5IFByb2R1Y3RJRC4KICoKICogSWYgeW91IHdhbnQgdG8gYWRkIGFuIGVudHJ5IGZvciB0aGlzIGZpbGUsIGJlIHN1cmUgdG8gaW5jbHVkZSB0aGUKICogZm9sbG93aW5nIGluZm9ybWF0aW9uOgogKgktIGEgcGF0Y2ggdGhhdCBhZGRzIHRoZSBlbnRyeSBmb3IgeW91ciBkZXZpY2UsIGluY2x1ZGluZyB5b3VyCiAqCSAgZW1haWwgYWRkcmVzcyByaWdodCBhYm92ZSB0aGUgZW50cnkgKHBsdXMgbWF5YmUgYSBicmllZgogKgkgIGV4cGxhbmF0aW9uIG9mIHRoZSByZWFzb24gZm9yIHRoZSBlbnRyeSksCiAqCS0gYSBjb3B5IG9mIC9wcm9jL2J1cy91c2IvZGV2aWNlcyB3aXRoIHlvdXIgZGV2aWNlIHBsdWdnZWQgaW4KICoJICBydW5uaW5nIHdpdGggdGhpcyBwYXRjaC4KICogU2VuZCB5b3VyIHN1Ym1pc3Npb24gdG8gZWl0aGVyIFBoaWwgRGlib3dpdHogPHBoaWxAaXBvbS5jb20+IG9yCiAqIEFsYW4gU3Rlcm4gPHN0ZXJuQHJvd2xhbmQuaGFydmFyZC5lZHU+LCBhbmQgZG9uJ3QgZm9yZ2V0IHRvIENDOiB0aGUKICogVVNCIGRldmVsb3BtZW50IGxpc3QgPGxpbnV4LXVzYi1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+LgogKi8KCi8qIHBhdGNoIHN1Ym1pdHRlZCBieSBWaXZpYW4gQnJlZ2llciA8Vml2aWFuLkJyZWdpZXJAaW1hZy5mcj4KICovClVOVVNVQUxfREVWKCAgMHgwM2ViLCAweDIwMDIsIDB4MDEwMCwgMHgwMTAwLAogICAgICAgICAgICAgICAgIkFUTUVMIiwKICAgICAgICAgICAgICAgICJTTkQxIFN0b3JhZ2UiLAogICAgICAgICAgICAgICAgVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgICBVU19GTF9JR05PUkVfUkVTSURVRSksCgpVTlVTVUFMX0RFViggIDB4MDNlZSwgMHg2OTAxLCAweDAwMDAsIDB4MDEwMCwKCQkiTWl0c3VtaSIsCgkJIlVTQiBGREQiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCi8qIFJlcG9ydGVkIGJ5IFJvZG9sZm8gUXVlc2FkYSA8cnF1ZXNhZGFAcm9xei5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwM2VlLCAweDY5MDYsIDB4MDAwMywgMHgwMDAzLAoJCSJWSUEgVGVjaG5vbG9naWVzIEluYy4iLAoJCSJNaXRzdW1pIG11bHRpIGNhcmRyZWFkZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgpVTlVTVUFMX0RFViggIDB4MDNmMCwgMHgwMTA3LCAweDAyMDAsIDB4MDIwMCwgCgkJIkhQIiwKCQkiQ0QtV3JpdGVyKyIsCgkJVVNfU0NfODA3MCwgVVNfUFJfQ0IsIE5VTEwsIDApLCAKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQKVU5VU1VBTF9ERVYoICAweDAzZjAsIDB4MDIwNywgMHgwMDAxLCAweDAwMDEsIAoJCSJIUCIsCgkJIkNELVdyaXRlcisgODIwMGUiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX1VTQkFULCBpbml0X3VzYmF0X2NkLCAwKSwKClVOVVNVQUxfREVWKCAgMHgwM2YwLCAweDAzMDcsIDB4MDAwMSwgMHgwMDAxLCAKCQkiSFAiLAoJCSJDRC1Xcml0ZXIrIENELTRlIiwKCQlVU19TQ184MDcwLCBVU19QUl9VU0JBVCwgaW5pdF91c2JhdF9jZCwgMCksCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgU2ViYXN0aWFuIEthcGZlciA8c2ViYXN0aWFuX2thcGZlckBnbXgubmV0PgogKiBhbmQgT2xhZiBIZXJpbmcgPG9saEBzdXNlLmRlPiAoZGlmZmVyZW50IGJjZCdzLCBzYW1lIHZlbmRvci9wcm9kdWN0KQogKiBmb3IgVVNCIGZsb3BwaWVzIHRoYXQgbmVlZCB0aGUgU0lOR0xFX0xVTiBlbmZvcmNlbWVudC4KICovClVOVVNVQUxfREVWKCAgMHgwNDA5LCAweDAwNDAsIDB4MDAwMCwgMHg5OTk5LAoJCSJORUMiLAoJCSJORUMgVVNCIFVGMDAweCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IE1paG5lYS1Db3N0aW4gR3JpZ29yZSA8bWlobmVhQHp1bHUucm8+ICovClVOVVNVQUxfREVWKCAgMHgwNDBkLCAweDYyMDUsIDB4MDAwMywgMHgwMDAzLAoJCSJWSUEgVGVjaG5vbG9naWVzIEluYy4iLAoJCSJVU0IgMi4wIENhcmQgUmVhZGVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogRGVkdWNlZCBieSBKb25hdGhhbiBXb2l0aGUgPGp3b2l0aGVAcGh5c2ljcy5hZGVsYWlkZS5lZHUuYXU+CiAqIEVudHJ5IG5lZWRlZCBmb3IgZmxhZ3M6IFVTX0ZMX0ZJWF9JTlFVSVJZIGJlY2F1c2UgaW5pdGlhbCBpbnF1aXJ5IG1lc3NhZ2UKICogYWx3YXlzIGZhaWxzIGFuZCBjb25mdXNlcyBkcml2ZS4KICovClVOVVNVQUxfREVWKCAgMHgwNDExLCAweDAwMWMsIDB4MDExMywgMHgwMTEzLAoJCSJCdWZmYWxvIiwKCQkiRFVCLVA0MEcgSEREIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogU3VibWl0dGVkIGJ5IEVybmVzdGFzIFZhaWNpdWtldmljaXVzIDxlcm5pc3ZAZ21haWwuY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MDQxOSwgMHgwMTAwLCAweDAxMDAsIDB4MDEwMCwKICAgICAgICAgICAgICAgICJTYW1zdW5nIEluZm8uIFN5c3RlbXMgQW1lcmljYSwgSW5jLiIsCiAgICAgICAgICAgICAgICAiTVAzIFBsYXllciIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBPcmdhZCBTaGFuZWggPG9yZ2Fkc0BnbWFpbC5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNDE5LCAweGFhY2UsIDB4MDEwMCwgMHgwMTAwLAoJCSJTYW1zdW5nIiwgIk1QMyBQbGF5ZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBDaHJpc3RpYW4gTGViZXIgPGNocmlzdGlhbkBsZWJlci5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0MTksIDB4YWFmNSwgMHgwMTAwLCAweDAxMDAsCgkJIlRyZWtTdG9yIiwKCQkiaS5CZWF0IDExNSAyLjAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFIHwgVVNfRkxfTk9UX0xPQ0tBQkxFICksCgovKiBSZXBvcnRlZCBieSBTdGVmYW4gV2VybmVyIDxkdXN0YmxuQGdteC5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0MTksIDB4YWFmNiwgMHgwMTAwLCAweDAxMDAsCgkJIlRyZWtTdG9yIiwKCQkiaS5CZWF0IEpveSAyLjAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBQZXRlIFphaXRjZXYgPHphaXRjZXZAcmVkaGF0LmNvbT4sIGJ6IzE3NjU4NCAqLwpVTlVTVUFMX0RFViggIDB4MDQyMCwgMHgwMDAxLCAweDAxMDAsIDB4MDEwMCwKCQkiR0VORVJJQyIsICJNUDMgUExBWUVSIiwgLyogTXlNdXNpeCBQRC0yMDUgb24gdGhlIG91dHNpZGUuICovCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IE1hcmlvIFJldHRpZyA8bWFyaW9yZXR0aWdAd2ViLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDQyMSwgMHgwNDJlLCAweDAxMDAsIDB4MDEwMCwKCQkiTm9raWEiLAoJCSJOb2tpYSAzMjUwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSB8IFVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKLyogUmVwb3J0ZWQgYnkgU3VtZWRoYSBTd2FteSA8c3VtZWRoYXN3YW15QGdtYWlsLmNvbT4gYW5kCiAqIEVpbmFyIFRoLiBFaW5hcnNzb24gPGVpbmFydGhlcmVkQGdtYWlsLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA0MjEsIDB4MDQ0NCwgMHgwMTAwLCAweDAxMDAsCgkJIk5va2lhIiwKCQkiTjkxIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSB8IFVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKLyogUmVwb3J0ZWQgYnkgSmlyaSBTbGFieSA8amlyaXNsYWJ5QGdtYWlsLmNvbT4gYW5kCiAqIFJlbmUgQy4gQ2FzdGJlcmcgPFJlbmVAQ2FzdGJlcmcub3JnPiAqLwpVTlVTVUFMX0RFViggIDB4MDQyMSwgMHgwNDQ2LCAweDAxMDAsIDB4MDEwMCwKCQkiTm9raWEiLAoJCSJOODAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFIHwgVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBSZXBvcnRlZCBieSBNYXR0aGV3IEJsb2NoIDxtYXR0aGV3QGJ5dGVtYXJrLmNvLnVrPiAqLwpVTlVTVUFMX0RFViggIDB4MDQyMSwgMHgwNDRlLCAweDAxMDAsIDB4MDEwMCwKCQkiTm9raWEiLAoJCSJFNjEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFIHwgVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBSZXBvcnRlZCBieSBPbGFmIEhlcmluZyA8b2xoQHN1c2UuZGU+IGZyb20gbm92ZWxsIGJ1ZyAjMTA1ODc4ICovClVOVVNVQUxfREVWKCAgMHgwNDI0LCAweDBmZGMsIDB4MDIxMCwgMHgwMjEwLAoJCSJTTVNDIiwKCQkiRkRDIEdPTEQtMi4zMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EUENNClVOVVNVQUxfREVWKCAgMHgwNDM2LCAweDAwMDUsIDB4MDEwMCwgMHgwMTAwLAoJCSJNaWNyb3RlY2giLAoJCSJDYW1lcmFNYXRlIChEUENNX1VTQikiLAogCQlVU19TQ19TQ1NJLCBVU19QUl9EUENNX1VTQiwgTlVMTCwgMCApLAojZW5kaWYKCi8qIFBhdGNoIHN1Ym1pdHRlZCBieSBEYW5pZWwgRHJha2UgPGRzZEBnZW50b28ub3JnPgogKiBEZXZpY2UgcmVwb3J0cyBub25zZW5zZSBiSW50ZXJmYWNlUHJvdG9jb2wgNiB3aGVuIGNvbm5lY3RlZCBvdmVyIFVTQjIgKi8KVU5VU1VBTF9ERVYoICAweDA0NTEsIDB4NTQxNiwgMHgwMTAwLCAweDAxMDAsCgkJIk5ldXJvcyBBdWRpbyIsCgkJIlVTQiAyLjAgSEQgMi41IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0JVTEssIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSApLAoKLyoKICogUGV0ZSBaYWl0Y2V2IDx6YWl0Y2V2QHlhaG9vLmNvbT4sIGZyb20gUGF0cmljayBDLiBGLiBFcm56ZXIsIGJ6IzE2MjU1OS4KICogVGhlIGtleSBkb2VzIG5vdCBhY3R1YWxseSBicmVhaywgYnV0IGl0IHJldHVybnMgemVybyBzZW5zZSB3aGljaAogKiBtYWtlcyBvdXIgU0NTSSBzdGFjayB0byBwcmludCBjb25mdXNpbmcgbWVzc2FnZXMuCiAqLwpVTlVTVUFMX0RFViggIDB4MDQ1NywgMHgwMTUwLCAweDAxMDAsIDB4MDEwMCwKCQkiVVNCZXN0IFRlY2hub2xvZ3kiLAkvKiBzb2xkIGJ5IFRyYW5zY2VuZCAqLwoJCSJVU0IgTWFzcyBTdG9yYWdlIERldmljZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyoKKiBCb2hkYW4gTGluZGEgPGJvaGRhbi5saW5kYUBnbWFpbC5jb20+CiogMUdCIFVTQiBzdGlja3MgTXlGbGFzaCBIaWdoIFNwZWVkLiBJIGhhdmUgcmVzdHJpY3RlZAoqIHRoZSByZXZpc2lvbiB0byBteSBtb2RlbCBvbmx5CiovClVOVVNVQUxfREVWKCAgMHgwNDU3LCAweDAxNTEsIDB4MDEwMCwgMHgwMTAwLAogICAgICAgICAgICAgICAgIlVTQiAyLjAiLAogICAgICAgICAgICAgICAgIkZsYXNoIERpc2siLAogICAgICAgICAgICAgICAgVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgICBVU19GTF9OT1RfTE9DS0FCTEUgKSwKClVOVVNVQUxfREVWKCAgMHgwNDVhLCAweDUyMTAsIDB4MDEwMSwgMHgwMTAxLAoJCSJSaW8iLAoJCSJSaW8gS2FybWEiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIHJpb19rYXJtYV9pbml0LCAwKSwKCi8qIFBhdGNoIHN1Ym1pdHRlZCBieSBQaGlsaXBwIEZyaWVkcmljaCA8cGhpbGlwcEB2b2lkLmF0PiAqLwpVTlVTVUFMX0RFViggIDB4MDQ4MiwgMHgwMTAwLCAweDAxMDAsIDB4MDEwMCwKCQkiS3lvY2VyYSIsCgkJIkZpbmVjYW0gUzN4IiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IFBoaWxpcHAgRnJpZWRyaWNoIDxwaGlsaXBwQHZvaWQuYXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNDgyLCAweDAxMDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJLeW9jZXJhIiwKCQkiRmluZWNhbSBTNCIsCgkJVVNfU0NfODA3MCwgVVNfUFJfQ0IsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFBhdGNoIHN1Ym1pdHRlZCBieSBTdGVwaGFuZSBHYWxsZXMgPHN0ZXBoYW5lLmdhbGxlc0BmcmVlLmZyPiAqLwpVTlVTVUFMX0RFViggIDB4MDQ4MiwgMHgwMTAzLCAweDAxMDAsIDB4MDEwMCwKCQkiS3lvY2VyYSIsCgkJIkZpbmVjYW0gUzUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBQYXRjaCBmb3IgS3lvY2VyYSBGaW5lY2FtIEwzCiAqIFN1Ym1pdHRlZCBieSBNaWNoYWVsIEtyYXV0aCA8bWljaGFlbC5rcmF1dGhAd2ViLmRlPgogKiBhbmQgQWxlc3NhbmRybyBGcmFjY2hldHRpIDxhbC5mcmFjY2hldHRpQHRpbi5pdD4KICovClVOVVNVQUxfREVWKCAgMHgwNDgyLCAweDAxMDUsIDB4MDEwMCwgMHgwMTAwLAoJCSJLeW9jZXJhIiwKCQkiRmluZWNhbSBMMyIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBQYXVsIFN0ZXdhcnQgPHN0ZXdhcnRAd2V0bG9naWMubmV0PgogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBkZXZpY2UgcmVwb3J0cyBTdWI9ZmYgKi8KVU5VU1VBTF9ERVYoICAweDA0YTQsIDB4MDAwNCwgMHgwMDAxLCAweDAwMDEsCgkJIkhpdGFjaGkiLAoJCSJEVkQtQ0FNIERaLU1WMTAwQSBDYW1jb3JkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLCBVU19GTF9TSU5HTEVfTFVOKSwKCi8qIFBhdGNoIGZvciBOaWtvbiBjb29scGl4IDIwMDAKICogU3VibWl0dGVkIGJ5IEZhYmllbiBDb3NzZSA8ZmFiaWVuLmNvc3NlQHdhbmFkb28uZnI+Ki8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDMwMSwgMHgwMDEwLCAweDAwMTAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEUyMDAwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSxOVUxMLAoJCVVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogUmVwb3J0ZWQgYnkgQW5kcmVhcyBCb2NraG9sZCA8YW5kcmVhc0Bib2NraW9ubGluZS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDQwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEQ3MCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZKSwKCi8qIFJlcG9ydGVkIGJ5IEphbWllIEtpdHNvbiA8amFtaWVAc3RhYmVyaW5kZS5mc25ldC5jby51az4gKi8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDQwZCwgMHgwMTAwLCAweDAxMDAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEQ3MHMiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSksCgovKiBCRU5RIERDNTMzMAogKiBSZXBvcnRlZCBieSBNYW51ZWwgRm9tYnVlbmEgPG1mb21idWVuYUB5YS5jb20+IGFuZAogKiBGcmFuayBDb3BlbGFuZCA8ZmpjQHRoaW5neS5hcGFuYS5vcmcuYXU+ICovClVOVVNVQUxfREVWKCAgMHgwNGE1LCAweDMwMTAsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBTaW1vbiBMZXZpdHQgPHNpbW9uQHdoYXR0Zi5jb20+CiAqIFRoaXMgZW50cnkgbmVlZHMgU3ViIGFuZCBQcm90byBmaWVsZHMgKi8KVU5VU1VBTF9ERVYoICAweDA0YjgsIDB4MDYwMSwgMHgwMTAwLCAweDAxMDAsCgkJIkVwc29uIiwKCQkiODc1REMgU3RvcmFnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFJlcG9ydGVkIGJ5IEtoYWxpZCBBeml6IDxraGFsaWRAZ29uZWhpa2luZy5vcmc+CiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDRiOCwgMHgwNjAyLCAweDAxMTAsIDB4MDExMCwKCQkiRXBzb24iLAoJCSI3ODVFUFggU3RvcmFnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwgVVNfRkxfU0lOR0xFX0xVTiksCgovKiBOb3Qgc3VyZSB3aG8gcmVwb3J0ZWQgdGhpcyBvcmlnaW5hbGx5IGJ1dAogKiBQYXZlbCBNYWNoZWsgPHBhdmVsQHVjdy5jej4gcmVwb3J0ZWQgdGhhdCB0aGUgZXh0cmEgVVNfRkxfU0lOR0xFX0xVTgogKiBmbGFnIGJlIGFkZGVkICovClVOVVNVQUxfREVWKCAgMHgwNGNiLCAweDAxMDAsIDB4MDAwMCwgMHgyMjEwLAoJCSJGdWppZmlsbSIsCgkJIkZpbmVQaXggMTQwMFpvb20iLAoJCVVTX1NDX1VGSSwgVVNfUFJfREVWSUNFLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSB8IFVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogUmVwb3J0ZWQgYnkgUGV0ZXIgV+RjaHRsZXIgPHB3YWVjaHRsZXJAbG9ld2Uta29tcC5kZT4KICogVGhlIGRldmljZSBuZWVkcyB0aGUgZmxhZ3Mgb25seS4KICovClVOVVNVQUxfREVWKCAgMHgwNGNlLCAweDAwMDIsIDB4MDA3NCwgMHgwMDc0LAoJCSJTY2FuTG9naWMiLAoJCSJTTDExUi1JREUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFJlcG9ydGVkIGJ5IEtyaXN0b24gRmluY2hlciA8a3Jpc3RvbkBhaXJtYWlsLm5ldD4KICogUGF0Y2ggc3VibWl0dGVkIGJ5IFNlYW4gTWlsbGljaGFtcCA8c2VhbkBicnVlbm9yLm9yZz4KICogVGhpcyBpcyB0byBzdXBwb3J0IHRoZSBQYW5hc29uaWMgUGFsbUNhbSBQVi1TRDQwOTAKICogVGhpcyBlbnRyeSBpcyBuZWVkZWQgYmVjYXVzZSB0aGUgZGV2aWNlIHJlcG9ydHMgU3ViPWZmIAogKi8KVU5VU1VBTF9ERVYoICAweDA0ZGEsIDB4MDkwMSwgMHgwMTAwLCAweDAyMDAsCgkJIlBhbmFzb25pYyIsCgkJIkxTLTEyMCBDYW1lcmEiLAoJCVVTX1NDX1VGSSwgVVNfUFJfREVWSUNFLCBOVUxMLCAwKSwKCi8qIEZyb20gWXVraWhpcm8gTmFrYWksIHZpYSB6YWl0Y2V2QHlhaG9vLmNvbS4KICogVGhpcyBpcyBuZWVkZWQgZm9yIENCIGluc3RlYWQgb2YgQ0JJICovClVOVVNVQUxfREVWKCAgMHgwNGRhLCAweDBkMDUsIDB4MDAwMCwgMHgwMDAwLAoJCSJTaGFycCBDRS1DVzA1IiwKCQkiQ0QtUi9SVyBEcml2ZSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKLyogUmVwb3J0ZWQgYnkgQWRyaWFhbiBQZW5uaW5nIDxhLnBlbm5pbmdAbHVvbi5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNGRhLCAweDIzNzIsIDB4MDAwMCwgMHg5OTk5LAoJCSJQYW5hc29uaWMiLAoJCSJETUMtTEN4IENhbWVyYSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZIHwgVVNfRkxfTk9UX0xPQ0tBQkxFICksCgovKiBSZXBvcnRlZCBieSBTaW1lb24gU2ltZW9ub3YgPHNpbWVvbm92XzIwMDBAeWFob28uY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MDRkYSwgMHgyMzczLCAweDAwMDAsIDB4OTk5OSwKCQkiTEVJQ0EiLAoJCSJELUxVWCBDYW1lcmEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIGVudHJpZXMgd2VyZSBkZXZlbG9wZWQgd2l0aCB0aGUgaGVscCBvZgogKiBTaHV0dGxlL1NDTSBkaXJlY3RseS4KICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiTWF0c2hpdGEiLAoJCSJMUy0xMjAiLAoJCVVTX1NDXzgwMjAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDIsIDB4MDEwMCwgMHgwMTAwLCAKCQkiU2h1dHRsZSIsCgkJImVVU0NTSSBCcmlkZ2UiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwgCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5ClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDMsIDB4MDAwMCwgMHg5OTk5LCAKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSMDkiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0VVU0JfU0REUjA5LCB1c2Jfc3Rvcl9zZGRyMDlfaW5pdCwKCQkwKSwKCi8qIFRoaXMgZW50cnkgaXMgZnJvbSBBbmRyaWVzLkJyb3V3ZXJAY3dpLm5sICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDUsIDB4MDEwMCwgMHgwMjA4LAoJCSJTQ00gTWljcm9zeXN0ZW1zIiwKCQkiZVVTQiBTbWFydE1lZGlhIC8gQ29tcGFjdEZsYXNoIEFkYXB0ZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RQQ01fVVNCLCB1c2Jfc3Rvcl9zZGRyMDlfZHBjbV9pbml0LAoJCTApLCAKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBNYXJrdXMgRGVtbGVpdG5lciA8bXNkZW1sZWlAY2wudW5pLWhlaWRlbGJlcmcuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDYsIDB4MDEwMCwgMHgwMTAwLCAKCQkiU0NNIE1pY3Jvc3lzdGVtcyBJbmMuIiwKCQkiZVVTQiBNTUMgQWRhcHRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIAoJCVVTX0ZMX1NJTkdMRV9MVU4pLCAKCi8qIFJlcG9ydGVkIGJ5IERhbmllbCBOb3VyaSA8ZHB1bmt0bnB1bmt0QHdlYi5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwNiwgMHgwMjA1LCAweDAyMDUsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBNTUMgQWRhcHRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLCAKCQlVU19GTF9TSU5HTEVfTFVOKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA3LCAweDAxMDAsIDB4MDIwMCwgCgkJIlNvbnkiLAoJCSJIaWZkIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9DQiwgTlVMTCwgCgkJVVNfRkxfU0lOR0xFX0xVTiksIAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwOSwgMHgwMjAwLCAweDAyMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBBVEEvQVRBUEkgQWRhcHRlciIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwYSwgMHgwMjAwLCAweDAyMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQiBDb21wYWN0Rmxhc2ggQWRhcHRlciIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwQiwgMHgwMTAwLCAweDAxMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQ1NJIEJyaWRnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDBDLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNodXR0bGUiLAoJCSJlVVNDU0kgQnJpZGdlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwgCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAxMDEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiU2h1dHRsZSIsCgkJIkNELVJXIERldmljZSIsCgkJVVNfU0NfODAyMCwgVVNfUFJfQ0IsIE5VTEwsIDApLAoKLyogRW50cnkgYW5kIHN1cHBvcnRpbmcgcGF0Y2ggYnkgVGhlb2RvcmUgS2lsZ29yZSA8a2lsZ290YUBhdWJ1cm4uZWR1Pi4KICogRGV2aWNlIHVzZXMgc3RhbmRhcmRzLXZpb2xhdGluZyAzMi1ieXRlIEJ1bGsgQ29tbWFuZCBCbG9jayBXcmFwcGVycyBhbmQKICogcmVwb3J0cyBpdHNlbGYgYXMgIlByb3ByaWV0YXJ5IFNDU0kgQnVsay4iIENmLiBkZXZpY2UgZW50cnkgMHgwODRkOjB4MDAxMS4KICovCgpVTlVTVUFMX0RFViggIDB4MDRmYywgMHg4MGMyLCAweDAxMDAsIDB4MDEwMCwKCQkiS29iaWFuIE1lcmN1cnkiLAoJCSJCaW5vY2FtIERDQi0xMzIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0JVTEszMiksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDEwMTAsIDB4MDAwMCwgMHg5OTk5LAoJCSJTaHV0dGxlL1NDTSIsCgkJIlVTQkFULTAyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9VU0JBVCwgaW5pdF91c2JhdF9mbGFzaCwKCQlVU19GTF9TSU5HTEVfTFVOKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBCb2IgU2FzcyA8cmxzQHZlY3RvcmRiLmNvbT4gLS0gb25seSByZXYgMS4zMyB0ZXN0ZWQgKi8KVU5VU1VBTF9ERVYoICAweDA1MGQsIDB4MDExNSwgMHgwMTMzLCAweDAxMzMsCgkJIkJlbGtpbiIsCgkJIlVTQiBTQ1NJIEFkYXB0b3IiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIHVzYl9zdG9yX2V1c2NzaV9pbml0LAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwKCi8qIElvbWVnYSBDbGlrISBEcml2ZSAKICogUmVwb3J0ZWQgYnkgRGF2aWQgQ2hhdGVuYXkgPGRjaGF0ZW5heUBob3RtYWlsLmNvbT4KICogVGhlIHJlYXNvbiB0aGlzIGlzIG5lZWRlZCBpcyBub3QgZnVsbHkga25vd24uCiAqLwpVTlVTVUFMX0RFViggIDB4MDUyNSwgMHhhMTQwLCAweDAxMDAsIDB4MDEwMCwKCQkiSW9tZWdhIiwKCQkiVVNCIENsaWshIDQwIiwKCQlVU19TQ184MDcwLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFlha3VtbyBNZWdhIEltYWdlIDM3CiAqIFN1Ym1pdHRlZCBieSBTdGVwaGFuIEZ1aHJtYW5uIDxhdG9tZW5lcmdpZUB0LW9ubGluZS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTgwMSwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiMzAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIEFub3RoZXIgWWFrdW1vIGNhbWVyYS4KICogUmVwb3J0ZWQgYnkgTWljaGVsZSBBbHpldHRhIDxtaWNoZWxlLmFsemV0dGFAYWxpY2Vwb3N0YS5pdD4gKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTgwNCwgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiMzAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IElhY29wbyBTcGFsbGV0dGkgPGF2dmlzaUBzcGFsbGV0dGkuaXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE4MDcsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjMwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBZYWt1bW8gTWVnYSBJbWFnZSA0NwogKiBSZXBvcnRlZCBieSBCam9lcm4gUGFldHplbCA8a29scmFiaUBrb2xyYWJpLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDUyYiwgMHgxOTA1LCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSI0MDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgUGF1bCBPcnR5bCA8b3J0eWxwQDNtaWFzdG8ubmV0PgogKiBOb3RlIHRoYXQgaXQncyBzaW1pbGFyIHRvIHRoZSBkZXZpY2UgYWJvdmUsIG9ubHkgZGlmZmVyZW50IHByb2RJRCAqLwpVTlVTVUFMX0RFViggIDB4MDUyYiwgMHgxOTExLCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSI0MDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAxMCwgMHgwMTA2LCAweDA0NTAsIAoJCSJTb255IiwKCQkiRFNDLVMzMC9TNzAvUzc1LzUwNVYvRjUwNS9GNzA3L0Y3MTcvUDgiLCAKCQlVU19TQ19TQ1NJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiB8IFVTX0ZMX05PVF9MT0NLQUJMRSB8IFVTX0ZMX05PX1dQX0RFVEVDVCApLAoKLyogU3VibWl0dGVkIGJ5IExhcnMgSmFjb2IgPGphY29iLmxhcnNAZ29vZ2xlbWFpbC5jb20+CiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDEwLCAweDA1MDAsIDB4MDYxMCwKCQkiU29ueSIsCgkJIkRTQy1UMS9UNS9INSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCgovKiBSZXBvcnRlZCBieSB3aW1AZ2Vla3MubmwgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyNSwgMHgwMTAwLCAweDAxMDAsIAoJCSJTb255IiwKCQkiTWVtb3J5c3RpY2sgTlctTVM3IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMApVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJiLCAweDAxMDAsIDB4MDExMCwKCQkiU29ueSIsCgkJIlBvcnRhYmxlIFVTQiBIYXJkZHJpdmUgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnkgT2xhZiBIZXJpbmcsIDxvbGhAc3VzZS5kZT4gU3VTRSBCdWd6aWxsYSAjNDkwNDkgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyYywgMHgwNTAxLCAweDA1MDEsCgkJIlNvbnkiLAoJCSJVU0IgRmxvcHB5IERyaXZlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJkLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0FDLVVTMSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IEtsYXVzIE11ZWxsZXIgPGsubXVlbGxlckBpbnRlcnNob3AuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMmUsIDB4MDEwNiwgMHgwMzEwLCAKCQkiU29ueSIsCgkJIkhhbmR5Y2FtIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IFJhamVzaCBLdW1ibGUgTmF5YWsgPG5heWFrQG9icy1uaWNlLmZyPiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJlLCAweDA1MDAsIDB4MDUwMCwgCgkJIlNvbnkiLAoJCSJIYW5keWNhbSBIQy04NSIsCgkJVVNfU0NfVUZJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAzMiwgMHgwMDAwLCAweDk5OTksCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0MtVTAxTiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE1pY2hhbCBNbG90ZWsgPG1sb3Rla0Bmb29iYXIucGw+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNTgsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE43NjBjIE1lbW9yeXN0aWNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoJCQpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDY5LCAweDAwMDAsIDB4OTk5OSwKCQkiU29ueSIsCgkJIk1lbW9yeXN0aWNrIE1TQy1VMDMiLAoJCVVTX1NDX1VGSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKLyogU3VibWl0dGVkIGJ5IE5hdGhhbiBCYWJiIDxuYXRoYW5AbGV4aS5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwNmQsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBNaWtlIEFsYm9ybiA8bWFsYm9ybkBkZWFuZHJhLmhvbWVpcC5uZXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAxNmEsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiUEVHIE1hc3MgU3RvcmFnZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCQkKLyogU3VibWl0dGVkIGJ5IEZyYW5rIEVuZ2VsIDxmcmFua2llQGNzZS51bnN3LmVkdS5hdT4gKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDA5OSwgMHgwMDAwLCAweDk5OTksCiAgICAgICAgICAgICAgICAiU29ueSIsCiAgICAgICAgICAgICAgICAiUEVHIE1hc3MgU3RvcmFnZSIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgoJCQpVTlVTVUFMX0RFViggIDB4MDU3YiwgMHgwMDAwLCAweDAwMDAsIDB4MDI5OSwgCgkJIlktRSBEYXRhIiwKCQkiRmxhc2hidXN0ZXItVSIsCgkJVVNfU0NfREVWSUNFLCAgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiksCgpVTlVTVUFMX0RFViggIDB4MDU3YiwgMHgwMDAwLCAweDAzMDAsIDB4OTk5OSwgCgkJIlktRSBEYXRhIiwKCQkiRmxhc2hidXN0ZXItVSIsCgkJVVNfU0NfREVWSUNFLCAgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogUmVwb3J0ZWQgYnkgSm9oYW5uIENhcmRvbiA8am9oYW5uLmNhcmRvbkBmcmVlLmZyPgogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBvbmx5IGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzCiAqIGJJbnRlcmZhY2VDbGFzcyA9IDB4ZmYgKHZlbmRvci1zcGVjaWZpYykKICovClVOVVNVQUxfREVWKCAgMHgwNTdiLCAweDAwMjIsIDB4MDAwMCwgMHg5OTk5LCAKCQkiWS1FIERhdGEiLAoJCSJTaWxpY29uIE1lZGlhIFIvVyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIDApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9BTEFVREEKVU5VU1VBTF9ERVYoICAweDA1ODQsIDB4MDAwOCwgMHgwMTAyLCAweDAxMDIsCgkJIkZ1amlmaWxtIiwKCQkiRFBDLVIxIChBbGF1ZGEpIiwKIAkJVVNfU0NfU0NTSSwgVVNfUFJfQUxBVURBLCBpbml0X2FsYXVkYSwgMCApLAojZW5kaWYKCi8qIEZhYnJpemlvIEZlbGxpbmkgPGZlbGxvQGxpYmVyby5pdD4gKi8KVU5VU1VBTF9ERVYoICAweDA1OTUsIDB4NDM0MywgMHgwMDAwLCAweDIyMTAsCgkJIkZ1amlmaWxtIiwKCQkiRGlnaXRhbCBDYW1lcmEgRVgtMjAgRFNDIiwKCQlVU19TQ184MDcwLCBVU19QUl9ERVZJQ0UsIE5VTEwsIDAgKSwKCi8qIFN1Ym1pdHRlZCBieSBKb2VsIEJvdXJxdWFyZCA8bnVtbG9ja0BmcmVlc3VyZi5jaD4KICogU29tZSB2ZXJzaW9ucyBvZiB0aGlzIGRldmljZSBuZWVkIHRoZSBTdWJDbGFzcyBhbmQgUHJvdG9jb2wgb3ZlcnJpZGVzCiAqIHdoaWxlIG90aGVycyBkb24ndC4KICovClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDAwNjAsIDB4MTEwNCwgMHgxMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJQeXJvR2F0ZSBFeHRlcm5hbCBDRC1ST00gRW5jbG9zdXJlIChGQ0QtNTIzKSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMApVTlVTVUFMX0RFViggIDB4MDVhYiwgMHgwMDMxLCAweDAxMDAsIDB4MDExMCwKCQkiSW4tU3lzdGVtIiwKCQkiVVNCL0lERSBCcmlkZ2UgKEFUQS9BVEFQSSkiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDAzMDEsIDB4MDEwMCwgMHgwMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJQb3J0YWJsZSBVU0IgSGFyZGRyaXZlIFYyIiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCgpVTlVTVUFMX0RFViggIDB4MDVhYiwgMHgwMzUxLCAweDAxMDAsIDB4MDExMCwKCQkiSW4tU3lzdGVtIiwKCQkiUG9ydGFibGUgVVNCIEhhcmRkcml2ZSBWMiIsCgkJVVNfU0NfSVNEMjAwLCBVU19QUl9CVUxLLCBpc2QyMDBfSW5pdGlhbGl6YXRpb24sCgkJMCApLAoKVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4NTcwMSwgMHgwMTAwLCAweDAxMTAsCgkJIkluLVN5c3RlbSIsCgkJIlVTQiBTdG9yYWdlIEFkYXB0ZXIgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKI2VuZGlmCgovKiBTdWJtaXR0ZWQgYnkgU3ZlbiBBbmRlcnNvbiA8c3Zlbi1saW51eEBhbmRlcnNvbi5kZT4KICogVGhlcmUgYXJlIGF0IGxlYXN0IGZvdXIgUHJvZHVjdElEcyB1c2VkIGZvciBpUG9kcywgc28gSSBhZGRlZCAweDEyMDIgYW5kCiAqIDB4MTIwNC4gVGhleSBqdXN0IG5lZWQgdGhlIFVTX0ZMX0ZJWF9DQVBBQ0lUWS4gQXMgdGhlIGJjZERldmljZSBhcHBlYXJzCiAqIHRvIGNoYW5nZSB3aXRoIGZpcm13YXJlIHVwZGF0ZXMsIEkgY2hhbmdlZCB0aGUgcmFuZ2UgdG8gbWF4aW11bSBmb3IgYWxsCiAqIGlQb2QgZW50cmllcy4KICovClVOVVNVQUxfREVWKCAweDA1YWMsIDB4MTIwMiwgMHgwMDAwLCAweDk5OTksCgkJIkFwcGxlIiwKCQkiaVBvZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBSZXBvcnRlZCBieSBBdmkgS2l2aXR5IDxhdmlAYXJnby5jby5pbD4gKi8KVU5VU1VBTF9ERVYoIDB4MDVhYywgMHgxMjAzLCAweDAwMDAsIDB4OTk5OSwKCQkiQXBwbGUiLAoJCSJpUG9kIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKClVOVVNVQUxfREVWKCAweDA1YWMsIDB4MTIwNCwgMHgwMDAwLCAweDk5OTksCgkJIkFwcGxlIiwKCQkiaVBvZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMDUsIDB4MDAwMCwgMHg5OTk5LAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKLyoKICogUmVwb3J0ZWQgYnkgVHlzb24gVmluc29uIDxsb3Jub3NzQGdtYWlsLmNvbT4KICogVGhpcyBwYXJ0aWN1bGFyIHByb2R1Y3RJZCBpcyB0aGUgaVBvZCBOYW5vCiAqLwpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMGEsIDB4MDAwMCwgMHg5OTk5LAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9KVU1QU0hPVApVTlVTVUFMX0RFViggIDB4MDVkYywgMHgwMDAxLCAweDAwMDAsIDB4MDAwMSwKCQkiTGV4YXIiLAoJCSJKdW1wc2hvdCBVU0IgQ0YgUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9KVU1QU0hPVCwgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFICksCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgQmxha2UgTWF0aGVueSA8Ym1hdGhlbnlAcHVyZHVlLmVkdT4gKi8KVU5VU1VBTF9ERVYoICAweDA1ZGMsIDB4YjAwMiwgMHgwMDAwLCAweDAxMTMsCgkJIkxleGFyIiwKCQkiVVNCIENGIFJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFRoZSBmb2xsb3dpbmcgdHdvIGVudHJpZXMgYXJlIGZvciBhIEdlbmVzeXMgVVNCIHRvIElERQogKiBjb252ZXJ0ZXIgY2hpcCwgYnV0IGl0IGNoYW5nZXMgaXRzIFByb2R1Y3RJZCBkZXBlbmRpbmcKICogb24gd2hldGhlciBvciBub3QgYSBkaXNrIG9yIGFuIG9wdGljYWwgZGV2aWNlIGlzIGVuY2xvc2VkCiAqIFRoZXkgd2VyZSBvcmlnaW5hbGx5IHJlcG9ydGVkIGJ5IEFsZXhhbmRlciBPbHR1CiAqIDxhbGV4YW5kZXJAYWxsLTIuY29tPiBhbmQgUGV0ZXIgTWFya3MgPHBldGVyLm1hcmtzQHR1cm5lci5jb20+CiAqIHJlc3BlY3RpdmVseS4KICoKICogVVNfRkxfR09fU0xPVyBhbmQgVVNfRkxfTUFYX1NFQ1RPUlNfNjQgYWRkZWQgYnkgUGhpbCBEaWJvd2l0egogKiA8cGhpbEBpcG9tLmNvbT4gYXMgdGhlc2UgZmxhZ3Mgd2VyZSBtYWRlIGFuZCBoYXJkLWNvZGVkCiAqIHNwZWNpYWwtY2FzZXMgd2VyZSBwdWxsZWQgZnJvbSBzY3NpZ2x1ZS5jLgogKi8KVU5VU1VBTF9ERVYoICAweDA1ZTMsIDB4MDcwMSwgMHgwMDAwLCAweGZmZmYsCgkJIkdlbmVzeXMgTG9naWMiLAoJCSJVU0IgdG8gSURFIE9wdGljYWwiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0dPX1NMT1cgfCBVU19GTF9NQVhfU0VDVE9SU182NCApLAoKVU5VU1VBTF9ERVYoICAweDA1ZTMsIDB4MDcwMiwgMHgwMDAwLCAweGZmZmYsCgkJIkdlbmVzeXMgTG9naWMiLAoJCSJVU0IgdG8gSURFIERpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0dPX1NMT1cgfCBVU19GTF9NQVhfU0VDVE9SU182NCApLAoKLyogUmVwb3J0ZWQgYnkgSGFubm8gQm9lY2sgPGhhbm5vQGdteC5kZT4KICogVGFrZW4gZnJvbSB0aGUgTHljb3JpcyBLZXJuZWwgKi8KVU5VU1VBTF9ERVYoICAweDA2MzYsIDB4MDAwMywgMHgwMDAwLCAweDk5OTksCgkJIlZpdml0YXIiLAoJCSJWaXZpY2FtIDM1WHgiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKClVOVVNVQUxfREVWKCAgMHgwNjQ0LCAweDAwMDAsIDB4MDEwMCwgMHgwMTAwLCAKCQkiVEVBQyIsCgkJIkZsb3BweSBEcml2ZSIsCgkJVVNfU0NfVUZJLCBVU19QUl9DQiwgTlVMTCwgMCApLCAKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjA5ClVOVVNVQUxfREVWKCAgMHgwNjZiLCAweDAxMDUsIDB4MDEwMCwgMHgwMTAwLCAKCQkiT2x5bXB1cyIsCgkJIkNhbWVkaWEgTUFVU0ItMiIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfRVVTQl9TRERSMDksIHVzYl9zdG9yX3NkZHIwOV9pbml0LAoJCTApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IERhcnNlbiBMdSA8ZGFyc2VuQG1pY3JvLmVlLm50aHUuZWR1LnR3PiAqLwpVTlVTVUFMX0RFViggMHgwNjZmLCAweDgwMDAsIDB4MDAwMSwgMHgwMDAxLAoJCSJTaWdtYVRlbCIsCgkJIlVTQk1TQyBBdWRpbyBQbGF5ZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKLyogUmVwb3J0ZWQgYnkgUmljaGFyZCAtPVtdPS0gPG1pY3JvX2ZseWVyQGhvdG1haWwuY29tPiAqLwpVTlVTVUFMX0RFViggMHgwNjdiLCAweDI1MDcsIDB4MDEwMCwgMHgwMTAwLAoJCSJQcm9saWZpYyBUZWNobm9sb2d5IEluYy4iLAoJCSJNYXNzIFN0b3JhZ2UgRGV2aWNlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgfCBVU19GTF9HT19TTE9XICksCgovKiBSZXBvcnRlZCBieSBBbGV4IEJ1dGNoZXIgPGFsZXguYnV0Y2hlckBhc3N1cnN5cy5jby51az4gKi8KVU5VU1VBTF9ERVYoIDB4MDY3YiwgMHgzNTA3LCAweDAwMDEsIDB4MDAwMSwKCQkiUHJvbGlmaWMgVGVjaG5vbG9neSBJbmMuIiwKCQkiQVRBUEktNiBCcmlkZ2UgQ29udHJvbGxlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZIHwgVVNfRkxfR09fU0xPVyApLAoKLyogU3VibWl0dGVkIGJ5IEJlbm55IFNqb3N0cmFuZCA8YmVubnlAaG9zdG1vYmlsaXR5LmNvbT4gKi8KVU5VU1VBTF9ERVYoIDB4MDY4NiwgMHg0MDExLCAweDAwMDEsIDB4MDAwMSwKCQkiTWlub2x0YSIsCgkJIkRpbWFnZSBGMzAwIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLCAwICksCgovKiBSZXBvcnRlZCBieSBNaWd1ZWwgQS4gRm9zYXMgPGFtbjNzMWFAb25vLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA2ODYsIDB4NDAxNywgMHgwMDAxLCAweDAwMDEsCiAgICAgICAgICAgICAgICAiTWlub2x0YSIsCiAgICAgICAgICAgICAgICAiRElNQUdFIEUyMjMiLAogICAgICAgICAgICAgICAgVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLCAwICksCgpVTlVTVUFMX0RFViggIDB4MDY5MywgMHgwMDA1LCAweDAxMDAsIDB4MDEwMCwKCQkiSGFnaXdhcmEiLAoJCSJGbGFzaGdhdGUiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsIDAgKSwgCgovKiBSZXBvcnRlZCBieSBEYXZpZCBIYW1pbHRvbiA8bmlmdGltdXNtYXhpbXVzQGx5Y29zLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA2OWIsIDB4MzAwNCwgMHgwMDAxLCAweDAwMDEsCgkJIlRob21zb24gTXVsdGltZWRpYSBJbmMuIiwKCQkiUkNBIFJEMTA4MCBNUDMgUGxheWVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IE9saXZpZXIgQmxvbmRlYXUgPHplaXRvdW5AZ21haWwuY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MDcyNywgMHgwMzA2LCAweDAxMDAsIDB4MDEwMCwKCQkiQVRNRUwiLAoJCSJTTkQxIFN0b3JhZ2UiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFKSwKCi8qIFN1Ym1pdHRlZCBieSBSb21hbiBIb2RlayA8cm9tYW5AaG9kZWsubmV0PiAqLwpVTlVTVUFMX0RFViggIDB4MDc4MSwgMHgwMDAxLCAweDAyMDAsIDB4MDIwMCwKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSLTA1YSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDA3ODEsIDB4MDAwMiwgMHgwMDA5LCAweDAwMDksCgkJIlNhbkRpc2sgQ29ycG9yYXRpb24iLAoJCSJJbWFnZU1hdGUgQ29tcGFjdEZsYXNoIFVTQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUClVOVVNVQUxfREVWKCAgMHgwNzgxLCAweDAwMDUsIDB4MDAwNSwgMHgwMDA1LAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFItMDViIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9VU0JBVCwgaW5pdF91c2JhdF9mbGFzaCwKCQlVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgoKVU5VU1VBTF9ERVYoICAweDA3ODEsIDB4MDEwMCwgMHgwMTAwLCAweDAxMDAsCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUi0xMiIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSMDkKVU5VU1VBTF9ERVYoICAweDA3ODEsIDB4MDIwMCwgMHgwMDAwLCAweDk5OTksIAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFItMDkiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0VVU0JfU0REUjA5LCB1c2Jfc3Rvcl9zZGRyMDlfaW5pdCwKCQkwKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0ZSRUVDT00KVU5VU1VBTF9ERVYoICAweDA3YWIsIDB4ZmMwMSwgMHgwMDAwLCAweDk5OTksCgkJIkZyZWVjb20iLAoJCSJVU0ItSURFIiwKCQlVU19TQ19RSUMsIFVTX1BSX0ZSRUVDT00sIGZyZWVjb21faW5pdCwgMCksCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgRWVybyBWb2xvdGluZW4gPGVlcm9AcGluZy12aWluaS5vcmc+ICovClVOVVNVQUxfREVWKCAgMHgwN2FiLCAweGZjY2QsIDB4MDAwMCwgMHg5OTk5LAoJCSJGcmVlY29tIFRlY2hub2xvZ2llcyIsCgkJIkZIRC1DbGFzc2ljIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkpLAoKVU5VU1VBTF9ERVYoICAweDA3YWYsIDB4MDAwNCwgMHgwMTAwLCAweDAxMzMsIAoJCSJNaWNyb3RlY2giLAoJCSJVU0ItU0NTSS1EQjI1IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwKCQlVU19GTF9TQ01fTVVMVF9UQVJHICksIAoKVU5VU1VBTF9ERVYoICAweDA3YWYsIDB4MDAwNSwgMHgwMTAwLCAweDAxMDAsIAoJCSJNaWNyb3RlY2giLAoJCSJVU0ItU0NTSS1IRDUwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgdXNiX3N0b3JfZXVzY3NpX2luaXQsCgkJVVNfRkxfU0NNX01VTFRfVEFSRyApLCAKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfRFBDTQpVTlVTVUFMX0RFViggIDB4MDdhZiwgMHgwMDA2LCAweDAxMDAsIDB4MDEwMCwKCQkiTWljcm90ZWNoIiwKCQkiQ2FtZXJhTWF0ZSAoRFBDTV9VU0IpIiwKIAkJVVNfU0NfU0NTSSwgVVNfUFJfRFBDTV9VU0IsIE5VTEwsIDAgKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0FMQVVEQQpVTlVTVUFMX0RFViggIDB4MDdiNCwgMHgwMTBhLCAweDAxMDIsIDB4MDEwMiwKCQkiT2x5bXB1cyIsCgkJIk1BVVNCLTEwIChBbGF1ZGEpIiwKIAkJVVNfU0NfU0NTSSwgVVNfUFJfQUxBVURBLCBpbml0X2FsYXVkYSwgMCApLAojZW5kaWYKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQgpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhMDAwLCAweDAwMDAsIDB4MDAxNSwKCQkiRGF0YWZhYiIsCgkJIk1EQ0ZFLUIgVVNCIENGIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgovKgogKiBUaGUgZm9sbG93aW5nIERhdGFmYWItYmFzZWQgZGV2aWNlcyBtYXkgb3IgbWF5IG5vdCB3b3JrCiAqIHVzaW5nIHRoZSBjdXJyZW50IGRyaXZlci4uLnRoZSAweGZmZmYgaXMgYXJiaXRyYXJ5IHNpbmNlIEkKICogZG9uJ3Qga25vdyB3aGF0IGRldmljZSB2ZXJzaW9ucyBleGlzdCBmb3IgdGhlc2UgZ3V5cy4KICoKICogVGhlIDB4YTAwMyBhbmQgMHhhMDA0IGRldmljZXMgaW4gcGFydGljdWxhciBJJ20gY3VyaW91cyBhYm91dC4KICogSSdtIHRvbGQgdGhleSBleGlzdCBidXQgc28gZmFyIG5vYm9keSBoYXMgY29tZSBmb3J3YXJkIHRvIHNheSB0aGF0CiAqIHRoZXkgd29yayB3aXRoIHRoaXMgZHJpdmVyLiAgR2l2ZW4gdGhlIHN1Y2Nlc3Mgd2UndmUgaGFkIGdldHRpbmcKICogb3RoZXIgRGF0YWZhYi1iYXNlZCBjYXJkcyBvcGVyYXRpb25hbCB3aXRoIHRoaXMgZHJpdmVyLCBJJ3ZlIGRlY2lkZWQKICogdG8gbGVhdmUgdGhlc2UgdHdvIGRldmljZXMgaW4gdGhlIGxpc3QuCiAqLwpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDEsIDB4MDAwMCwgMHhmZmZmLAoJCSJTSUlHL0RhdGFmYWIiLAoJCSJTSUlHL0RhdGFmYWIgTWVtb3J5IFN0aWNrK0NGIFJlYWRlci9Xcml0ZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAoKLyogUmVwb3J0ZWQgYnkgSm9zZWYgUmVpc2luZ2VyIDxqb3NlZi5yZWlzaW5nZXJAbmV0Y29sb2duZS5kZT4gKi8KVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMDAyLCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYi9Vbmtub3duIiwKCQkiTUQyL01EMyBEaXNrIGVuY2xvc3VyZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDMsIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiL1Vua25vd24iLAoJCSJEYXRhZmFiLWJhc2VkIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDQsIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiL1Vua25vd24iLAoJCSJEYXRhZmFiLWJhc2VkIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDUsIDB4MDAwMCwgMHhmZmZmLAoJCSJQTlkvRGF0YWZhYiIsCgkJIlBOWS9EYXRhZmFiIENGK1NNIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDYsIDB4MDAwMCwgMHhmZmZmLAoJCSJTaW1wbGUgVGVjaC9EYXRhZmFiIiwKCQkiU2ltcGxlIFRlY2gvRGF0YWZhYiBDRitTTSBSZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAojZW5kaWYKCQkKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKLyogQ29udHJpYnV0ZWQgYnkgUGV0ZXIgV2FlY2h0bGVyICovClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTEwMywgMHgwMDAwLCAweDk5OTksCgkJIkRhdGFmYWIiLAoJCSJNRFNNLUIgcmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9TRERSNTUsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIKLyogU3VibWl0dGVkIGJ5IE9sYWYgSGVyaW5nIDxvbGhAc3VzZS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTEwOSwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIgU3lzdGVtcywgSW5jLiIsCgkJIlVTQiB0byBDRiArIFNNIENvbWJvIChMQzEpIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKI2VuZGlmCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1Ci8qIFNNIHBhcnQgLSBhZWIgPEFuZHJpZXMuQnJvdXdlckBjd2kubmw+ICovClVOVVNVQUxfREVWKCAgMHgwN2M0LCAweGExMDksIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiIFN5c3RlbXMsIEluYy4iLAoJCSJVU0IgdG8gQ0YgKyBTTSBDb21ibyAoTEMxKSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIKLyogUmVwb3J0ZWQgYnkgRmVsaXggTW9lbGxlciA8ZmVsaXhAZGVya2xlY2tzLmRlPgogKiBpbiBHZXJtYW55IHRoaXMgaXMgc29sZCBieSBIYW1hIHdpdGggdGhlIHByb2R1Y3RudW1iZXIgNDY5NTIKICogYXMgIkR1YWxTbG90IENvbXBhY3RGbGFzaChUTSkgJiBNU3RpY2sgRHJpdmUgVVNCIgogKi8KVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTEwYiwgMHgwMDAwLCAweGZmZmYsCiAgICAgICAgICAgICAgICAiRGF0YUZhYiBTeXN0ZW1zIEluYy4iLAogICAgICAgICAgICAgICAgIlVTQiBDRitNUyIsCiAgICAgICAgICAgICAgICBVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAogICAgICAgICAgICAgICAgMCApLAoKI2VuZGlmCgovKiBEYXRhZmFiIEtFQ0YtVVNCIC8gU2FnYXRlayBEQ1MtQ0YgLyBTaW1wbGV0ZWNoIEZsYXNobGluayBVQ0YtMTAwCiAqIE9ubHkgcmV2aXNpb24gMS4xMyB0ZXN0ZWQgKHNhbWUgZm9yIGFsbCBvZiB0aGUgYWJvdmUgZGV2aWNlcywKICogYmFzZWQgb24gdGhlIERhdGFmYWIgREYtVUctMDcgY2hpcCkuICBOZWVkZWQgZm9yIFVTX0ZMX0ZJWF9JTlFVSVJZLgogKiBTdWJtaXR0ZWQgYnkgTWFyZWsgTWljaGFsa2lld2ljeiA8bWFyZWttQGFtZWxlay5nZGEucGw+LgogKiBTZWUgYWxzbyBodHRwOi8vbWFydGluLndpbGNrLmJlaS50LW9ubGluZS5kZS8ja2VjZiAuCiAqLwpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhNDAwLCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYiIsCgkJIktFQ0YtVVNCIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogQ2FzaW8gUVYgMngwMC8zeDAwLzQwMDAvODAwMCBkaWdpdGFsIHN0aWxsIGNhbWVyYXMgYXJlIG5vdCBjb25mb3JtYW50CiAqIHRvIHRoZSBVU0Igc3RvcmFnZSBzcGVjaWZpY2F0aW9uIGluIHR3byB3YXlzOgogKiAtIFRoZXkgdGVsbCB1cyB0aGV5IGFyZSB1c2luZyB0cmFuc3BvcnQgcHJvdG9jb2wgQ0JJLiBJbiByZWFsaXR5IHRoZXkKICogICBhcmUgdXNpbmcgdHJhbnNwb3J0IHByb3RvY29sIENCLgogKiAtIFRoZXkgZG9uJ3QgbGlrZSB0aGUgSU5RVUlSWSBjb21tYW5kLiBTbyB3ZSBtdXN0IGhhbmRsZSB0aGlzIGNvbW1hbmQKICogICBvZiB0aGUgU0NTSSBsYXllciBvdXJzZWx2ZXMuCiAqIC0gU29tZSBjYW1lcmFzIHdpdGggaWRQcm9kdWN0PTB4MTAwMSBhbmQgYmNkRGV2aWNlPTB4MTAwMCBoYXZlCiAqICAgYkludGVyZmFjZVByb3RvY29sPTB4MDAgKFVTX1BSX0NCSSkgd2hpbGUgb3RoZXJzIGhhdmUgMHgwMSAoVVNfUFJfQ0IpLgogKiAgIFNvIGRvbid0IHJlbW92ZSB0aGUgVVNfUFJfQ0Igb3ZlcnJpZGUhCiAqIC0gQ2FtZXJhcyB3aXRoIGJjZERldmljZT0weDkwMDkgcmVxdWlyZSB0aGUgVVNfU0NfODA3MCBvdmVycmlkZS4KICovClVOVVNVQUxfREVWKCAweDA3Y2YsIDB4MTAwMSwgMHgxMDAwLCAweDk5OTksCgkJIkNhc2lvIiwKCQkiUVYgRGlnaXRhbENhbWVyYSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfQ0IsIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSB8IFVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBTdWJtaXR0ZWQgYnkgSGFydG11dCBXYWhsIDxod2FobEBod2FobC5kZT4qLwpVTlVTVUFMX0RFViggMHgwODM5LCAweDAwMGEsIDB4MDAwMSwgMHgwMDAxLAoJCSJTYW1zdW5nIiwKCQkiRGlnaW1heCA0MTAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIEVudHJ5IGFuZCBzdXBwb3J0aW5nIHBhdGNoIGJ5IFRoZW9kb3JlIEtpbGdvcmUgPGtpbGdvdGFAYXVidXJuLmVkdT4uCiAqIEZsYWcgd2lsbCBzdXBwb3J0IEJ1bGsgZGV2aWNlcyB3aGljaCB1c2UgYSBzdGFuZGFyZHMtdmlvbGF0aW5nIDMyLWJ5dGUKICogQ29tbWFuZCBCbG9jayBXcmFwcGVyLiBIZXJlLCB0aGUgIkRDMk1FR0EiIGNhbWVyYXMgKHNldmVyYWwgYnJhbmRzKSB3aXRoCiAqIEdyYW5kdGVjaCBHVDg5MnggY2hpcCwgd2hpY2ggcmVxdWVzdCAiUHJvcHJpZXRhcnkgU0NTSSBCdWxrIiBzdXBwb3J0LgogKi8KClVOVVNVQUxfREVWKCAgMHgwODRkLCAweDAwMTEsIDB4MDExMCwgMHgwMTEwLAoJCSJHcmFuZHRlY2giLAoJCSJEQzJNRUdBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9CVUxLMzIpLAoKLyogU3VibWl0dGVkIGJ5IEphbiBEZSBMdXljayA8bGttbEBrY29yZS5vcmc+ICovClVOVVNVQUxfREVWKCAgMHgwOGJkLCAweDExMDAsIDB4MDAwMCwgMHgwMDAwLAoJCSJDSVRJWkVOIiwKCQkiWDFERS1VU0IiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogRW50cnkgbmVlZGVkIGZvciBmbGFncy4gTW9yZW92ZXIsIGFsbCBkZXZpY2VzIHdpdGggdGhpcyBJRCB1c2UKICogYnVsay1vbmx5IHRyYW5zcG9ydCwgYnV0IF9zb21lXyBmYWxzZWx5IHJlcG9ydCBDb250cm9sL0J1bGsgaW5zdGVhZC4KICogT25lIGV4YW1wbGUgaXMgIlRydW1waW9uIERpZ2l0YWwgUmVzZWFyY2ggTVlNUDMiLgogKiBTdWJtaXR0ZWQgYnkgQmpvZXJuIEJyaWxsIDxicmlsbChhdClmcy5tYXRoLnVuaS1mcmFua2Z1cnQuZGU+CiAqLwpVTlVTVUFMX0RFViggIDB4MDkwYSwgMHgxMDAxLCAweDAxMDAsIDB4MDEwMCwKCQkiVHJ1bXBpb24iLAoJCSJ0MzM1MjAgVVNCIEZsYXNoIENhcmQgQ29udHJvbGxlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX05FRURfT1ZFUlJJREUgKSwKCi8qIFJlcG9ydGVkIGJ5IEZpbGlwcG8gQmFyZGVsbGkgPGZpbGliYXJkQGxpYmVyby5pdD4KICogVGhlIGRldmljZSByZXBvcnRzIGEgc3ViY2xhc3Mgb2YgUkJDLCB3aGljaCBpcyB3cm9uZy4KICovClVOVVNVQUxfREVWKCAgMHgwOTBhLCAweDEwNTAsIDB4MDEwMCwgMHgwMTAwLAoJCSJUcnVtcGlvbiBNaWNyb2VsZWN0cm9uaWNzLCBJbmMuIiwKCQkiMzM1MjAgVVNCIERpZ2l0YWwgVm9pY2UgUmVjb3JkZXIiLAoJCVVTX1NDX1VGSSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCTApLAoKLyogVHJ1bXBpb24gTWljcm9lbGVjdHJvbmljcyBNUDMgcGxheWVyIChmZWxpcGVfYWxmYXJvQGxpbnV4bWFpbC5vcmcpICovClVOVVNVQUxfREVWKCAweDA5MGEsIDB4MTIwMCwgMHgwMDAwLCAweDk5OTksCgkJIlRydW1waW9uIiwKCQkiTVAzIHBsYXllciIsCgkJVVNfU0NfUkJDLCBVU19QUl9CVUxLLCBOVUxMLAoJCTAgKSwKCi8qIGFlYiAqLwpVTlVTVUFMX0RFViggMHgwOTBjLCAweDExMzIsIDB4MDAwMCwgMHhmZmZmLAoJCSJGZWl5YSIsCgkJIjUtaW4tMSBDYXJkIFJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgovKiBUaGlzIFBlbnRheCBzdGlsbCBjYW1lcmEgaXMgbm90IGNvbmZvcm1hbnQKICogdG8gdGhlIFVTQiBzdG9yYWdlIHNwZWNpZmljYXRpb246IC0KICogLSBJdCBkb2VzIG5vdCBsaWtlIHRoZSBJTlFVSVJZIGNvbW1hbmQuIFNvIHdlIG11c3QgaGFuZGxlIHRoaXMgY29tbWFuZAogKiAgIG9mIHRoZSBTQ1NJIGxheWVyIG91cnNlbHZlcy4KICogVGVzdGVkIG9uIFJldi4gMTAuMDAgKDB4MTAwMCkKICogU3VibWl0dGVkIGJ5IEphbWVzIENvdXJ0aWVyLUR1dHRvbiA8SmFtZXNAc3VwZXJidWcuZGVtb24uY28udWs+CiAqLwpVTlVTVUFMX0RFViggMHgwYTE3LCAweDAwMDQsIDB4MTAwMCwgMHgxMDAwLAogICAgICAgICAgICAgICAgIlBlbnRheCIsCiAgICAgICAgICAgICAgICAiT3B0aW8gMi8zLzQwMCIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgoKLyogU3VibWl0dGVkIGJ5IFBlciBXaW5rdmlzdCA8cGVyLndpbmt2aXN0QHVrLmNvbT4gKi8KVU5VU1VBTF9ERVYoIDB4MGExNywgMHgwMDYsIDB4MDAwMCwgMHhmZmZmLAogICAgICAgICAgICAgICAgIlBlbnRheCIsCiAgICAgICAgICAgICAgICAiT3B0aW8gUy9TNCIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBUaGlzIGlzIGEgdmlydHVhbCB3aW5kb3dzIGRyaXZlciBDRCwgd2hpY2ggdGhlIHpkMTIxMXJ3IGRyaXZlciBhdXRvbWF0aWNhbGx5CiAqIGNvbnZlcnRzIGludG8gYSBXTEFOIGRldmljZS4gKi8KVU5VU1VBTF9ERVYoIDB4MGFjZSwgMHgyMDExLCAweDAxMDEsIDB4MDEwMSwKICAgICAgICAgICAgICAgICJaeVhFTCIsCiAgICAgICAgICAgICAgICAiRy0yMjBGIFVTQi1XTEFOIEluc3RhbGwiLAogICAgICAgICAgICAgICAgVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgICBVU19GTF9JR05PUkVfREVWSUNFICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0lTRDIwMApVTlVTVUFMX0RFViggIDB4MGJmNiwgMHhhMDAxLCAweDAxMDAsIDB4MDExMCwKCQkiQVRJIiwKCQkiVVNCIENhYmxlIDIwNSIsCgkJVVNfU0NfSVNEMjAwLCBVU19QUl9CVUxLLCBpc2QyMDBfSW5pdGlhbGl6YXRpb24sCgkJMCApLAojZW5kaWYKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQgpVTlVTVUFMX0RFViggMHgwYzBiLCAweGExMDksIDB4MDAwMCwgMHhmZmZmLAoJICAgICAgICJBY29tZGF0YSIsCgkgICAgICAgIkNGIiwKCSAgICAgICBVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJICAgICAgIFVTX0ZMX1NJTkdMRV9MVU4gKSwKI2VuZGlmCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfU0REUjU1ClVOVVNVQUxfREVWKCAweDBjMGIsIDB4YTEwOSwgMHgwMDAwLCAweGZmZmYsCgkgICAgICAgIkFjb21kYXRhIiwKCSAgICAgICAiU00iLAoJICAgICAgIFVTX1NDX1NDU0ksIFVTX1BSX1NERFI1NSwgTlVMTCwKCSAgICAgICBVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgoKLyogU3VibWl0dGVkIGJ5OiBOaWNrIFNpbGxpayA8bi5zaWxsaWtAdGVtcGxlLmVkdT4KICogTmVlZGVkIGZvciBPbmVUb3VjaCBleHRlbnNpb24gdG8gdXNiLXN0b3JhZ2UKICoKICovCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfT05FVE9VQ0gKCVVOVVNVQUxfREVWKCAgMHgwZDQ5LCAweDcwMDAsIDB4MDAwMCwgMHg5OTk5LAoJCQkiTWF4dG9yIiwKCQkJIk9uZVRvdWNoIEV4dGVybmFsIEhhcmRkcml2ZSIsCgkJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBvbmV0b3VjaF9jb25uZWN0X2lucHV0LAoJCQkwKSwKCVVOVVNVQUxfREVWKCAgMHgwZDQ5LCAweDcwMTAsIDB4MDAwMCwgMHg5OTk5LAoJCQkiTWF4dG9yIiwKCQkJIk9uZVRvdWNoIEV4dGVybmFsIEhhcmRkcml2ZSIsCgkJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBvbmV0b3VjaF9jb25uZWN0X2lucHV0LAoJCQkwKSwKI2VuZGlmCgovKgogKiBQZXRlIFphaXRjZXYgPHphaXRjZXZAeWFob28uY29tPiwgYnojMTY0Njg4LgogKiBUaGUgZGV2aWNlIGJsYXRhbnRseSBpZ25vcmVzIExVTiBhbmQgcmV0dXJucyAxIGluIEdldE1heExVTi4KICovClVOVVNVQUxfREVWKCAweDBjNDUsIDB4MTA2MCwgMHgwMTAwLCAweDAxMDAsCgkJIlVua25vd24iLAoJCSJVbmtub3duIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgovKiBTdWJtaXR0ZWQgYnkgSm9yaXMgU3RydXl2ZSA8am9yaXNAc3RydXl2ZS5iZT4gKi8KVU5VU1VBTF9ERVYoIDB4MGQ5NiwgMHg0MTBhLCAweDAwMDEsIDB4ZmZmZiwKCQkiTWVkaW9uIiwKCQkiTUQgNzQyNSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkpLAoKLyoKICogRW50cnkgZm9yIEplbm9wdGlrIEpEIDUyMDB6MwogKgogKiBlbWFpbDogY2FyLmJ1c3NlQGdteC5kZQogKi8KVU5VU1VBTF9ERVYoICAweDBkOTYsIDB4NTIwMCwgMHgwMDAxLCAweDAyMDAsCgkJIkplbm9wdGlrIiwKCQkiSkQgNTIwMCB6MyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFJlcG9ydGVkIGJ5IEx1Ym9taXIgQmxhaGEgPHRyaXRvbEB0cmlsb2dpYy5jej4KICogSSBfUkVBTExZXyBkb24ndCBrbm93IHdoYXQgM3JkLCA0dGggbnVtYmVyIGFuZCBhbGwgZGVmaW5lcyBtZWFuLCBidXQgdGhpcwogKiB3b3JrcyBmb3IgbWUuIENhbiBhbnlib2R5IGNvcnJlY3QgdGhlc2UgdmFsdWVzPyAoSSBhYmxlIHRvIHRlc3QgY29ycmVjdGVkCiAqIHZlcnNpb24uKQogKi8KVU5VU1VBTF9ERVYoIDB4MGRkOCwgMHgxMDYwLCAweDAwMDAsIDB4ZmZmZiwKCQkiTmV0YWMiLAoJCSJVU0ItQ0YtQ2FyZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFBhdGNoIGJ5IFN0ZXBoYW4gV2FsdGVyIDxzdGVwaGFuLndhbHRlckBlcGZsLmNoPgogKiBJIGRvbid0IGtub3cgd2h5LCBidXQgaXQgd29ya3MuLi4gKi8KVU5VU1VBTF9ERVYoIDB4MGRkYSwgMHgwMDAxLCAweDAwMTIsIDB4MDAxMiwKCQkiV0lOV0FSRCIsCgkJIk11c2ljIERpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBJYW4gTWNDb25uZWxsIDxpYW4gYXQgZW1pdC5kZW1vbi5jby51az4gKi8KVU5VU1VBTF9ERVYoICAweDBkZGEsIDB4MDMwMSwgMHgwMDEyLCAweDAwMTIsCgkJIlBOUF9NUDMiLAoJCSJQTlBfTVAzIFBMQVlFUiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IEppbSBNY0Nsb3NrZXkgPG1jY2xvc2tAdWNzYy5lZHU+ICovClVOVVNVQUxfREVWKCAweDBlMjEsIDB4MDUyMCwgMHgwMTAwLCAweDAxMDAsCgkJIkNvd29uIFN5c3RlbXMiLAoJCSJpQVVESU8gTTUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfQlVMSywgTlVMTCwKCQkwICksCgovKiBTdWJtaXR0ZWQgYnkgQW50b2luZSBNYWlyZXNzZSA8YW50b2luZS5tYWlyZXNzZUBmcmVlLmZyPiAqLwpVTlVTVUFMX0RFViggMHgwZWQxLCAweDY2NjAsIDB4MDEwMCwgMHgwMzAwLAoJCSJVU0IiLAoJCSJTb2xpZCBzdGF0ZSBkaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogU3VibWl0dGVkIGJ5IERhbmllbCBEcmFrZSA8ZHNkQGdlbnRvby5vcmc+CiAqIFJlcG9ydGVkIGJ5IGRheXVsIG9uIHRoZSBHZW50b28gRm9ydW1zICovClVOVVNVQUxfREVWKCAgMHgwZWEwLCAweDIxNjgsIDB4MDExMCwgMHgwMTEwLAoJCSJPdXJzIFRlY2hub2xvZ3kiLAoJCSJGbGFzaCBEaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgUmFzdGlzbGF2IFN0YW5payA8cnNfa2VybmVsQHlhaG9vLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDBlYTAsIDB4NjgyOCwgMHgwMTEwLCAweDAxMTAsCgkJIlVTQiIsCgkJIkZsYXNoIERpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBCZW5qYW1pbiBTY2hpbGxlciA8c2Jlbm5pQGdteC5kZT4KICogSXQgaXMgYWxzbyBzb2xkIGJ5IEVhc3lsaXRlIGFzIERKIDIwICovClVOVVNVQUxfREVWKCAgMHgwZWQxLCAweDc2MzYsIDB4MDEwMywgMHgwMTAzLAoJCSJUeXBob29uIiwKCQkiTXkgREogMTgyMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgfCBVU19GTF9HT19TTE9XIHwgVVNfRkxfTUFYX1NFQ1RPUlNfNjQpLAoKLyogRGF2aWQgS3VlaGxpbmcgPGR2ZGtobG5nQGdteC5kZT46CiAqIGZvciBNUDMtUGxheWVyIEFWT1ggV1NYLTMwMEVSIChib3VnaHQgaW4gSmFwYW4pLiAgUmVwb3J0cyBsb3RzIG9mIFNDU0kKICogZXJyb3JzIHdoZW4gdHJ5aW5nIHRvIHdyaXRlLgogKi8KVU5VU1VBTF9ERVYoICAweDBmMTksIDB4MDEwNSwgMHgwMTAwLCAweDAxMDAsCgkJIkMtTUVYIiwKCQkiQS1WT1giLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBNaWNoYWVsIFN0YXR0bWFubiA8bWljaGFlbEBzdGF0dG1hbm4uY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MGZjZSwgMHhkMDA4LCAweDAwMDAsIDB4MDAwMCwKCQkiU29ueSBFcmljc3NvbiIsCgkJIlY4MDAtVm9kYWZvbmUgODAyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9OT19XUF9ERVRFQ1QgKSwKCi8qIFJlcG9ydGVkIGJ5IEtldmluIENlcm5la2VlIDxrcGMtdXNiZGV2QGdlbGF0by51aXVjLmVkdT4KICogVGVzdGVkIG9uIGhhcmR3YXJlIHZlcnNpb24gMS4xMC4KICogRW50cnkgaXMgbmVlZGVkIG9ubHkgZm9yIHRoZSBpbml0aWFsaXplciBmdW5jdGlvbiBvdmVycmlkZS4KICovClVOVVNVQUxfREVWKCAgMHgxMDE5LCAweDBjNTUsIDB4MDAwMCwgMHg5OTk5LAoJCSJEZXNrbm90ZSIsCgkJIlVDUi02MVMyQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIHVzYl9zdG9yX3VjcjYxczJiX2luaXQsCgkJMCApLAoKLyogUmVwb3J0ZWQgYnkgVmlsaXVzIEJpbGlua2V2aWNpdXMgPHZpbGlzYXMgQVQgeHh4IERPVCBsdCkgKi8KVU5VU1VBTF9ERVYoICAweDEzMmIsIDB4MDAwYiwgMHgwMDAxLCAweDAwMDEsCgkJIk1pbm9sdGEiLAoJCSJEaW1hZ2UgWjEwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQkwICksCgovKiBSZXBvcnRlZCBieSBLb3RybGEgVml0ZXpzbGF2IDxrb3RybGFAY2ViLmN6PiAqLwpVTlVTVUFMX0RFViggIDB4MTM3MCwgMHg2ODI4LCAweDAxMTAsIDB4MDExMCwKCQkiU1dJU1NCSVQiLAoJCSJCbGFjayBTaWx2ZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBwYXRjaCBzdWJtaXR0ZWQgYnkgRGF2aWRlIFBlcmluaSA8cGVyaW5pLmRhdmlkZUBkcHNvZnR3YXJlLm9yZz4KICogYW5kIFJlbmF0byBQZXJpbmkgPHJwZXJpbmlAZW1haWwuaXQ+CiAqLwpVTlVTVUFMX0RFViggIDB4MjJiOCwgMHgzMDEwLCAweDAwMDEsIDB4MDAwMSwKCQkiTW90b3JvbGEiLAoJCSJSQVpSIFYzeCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZIHwgVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFJhZG92YW4gR2FyYWJpayA8Z2FyYWJpa0BrYXNzaW9wZWlhLmp1bHMuc2F2YmEuc2s+ICovClVOVVNVQUxfREVWKCAgMHgyNzM1LCAweDEwMGIsIDB4MDAwMCwgMHg5OTk5LAoJCSJNUElPIiwKCQkiSFMyMDAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0dPX1NMT1cgKSwKCi8qCiAqIERhdmlkIEjkcmRlbWFuIDxkYXZpZEAyZ2VuLmNvbT4KICogVGhlIGtleSBtYWtlcyB0aGUgU0NTSSBzdGFjayBwcmludCBjb25mdXNpbmcgKGJ1dCBoYXJtbGVzcykgbWVzc2FnZXMKICovClVOVVNVQUxfREVWKCAgMHg0MTQ2LCAweGJhMDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJJb21lZ2EiLAoJCSJNaWNybyBNaW5pIDFHQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKVU5VU1VBTF9ERVYoICAweDU1YWEsIDB4YTEwMywgMHgwMDAwLCAweDk5OTksIAoJCSJTYW5kaXNrIiwKCQkiSW1hZ2VNYXRlIFNERFI1NSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfU0REUjU1LCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEFuZHJldyBTaW1tb25zIDxhbmRyZXcuc2ltbW9uc0BnbWFpbC5jb20+ICovClVOVVNVQUxfREVWKCAgMHhlZDA2LCAweDQ1MDAsIDB4MDAwMSwgMHgwMDAxLAoJCSJEYXRhU3RvciIsCgkJIlVTQjQ1MDAgRlcxLjA0IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkpLAoKLyogQ29udHJvbC9CdWxrIHRyYW5zcG9ydCBmb3IgYWxsIFN1YkNsYXNzIHZhbHVlcyAqLwpVU1VBTF9ERVYoVVNfU0NfUkJDLCBVU19QUl9DQiwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDIwLCBVU19QUl9DQiwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19RSUMsIFVTX1BSX0NCLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1VGSSwgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfODA3MCwgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLAoKLyogQ29udHJvbC9CdWxrL0ludGVycnVwdCB0cmFuc3BvcnQgZm9yIGFsbCBTdWJDbGFzcyB2YWx1ZXMgKi8KVVNVQUxfREVWKFVTX1NDX1JCQywgVVNfUFJfQ0JJLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDXzgwMjAsIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19RSUMsIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19VRkksIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDcwLCBVU19QUl9DQkksIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfU0NTSSwgVVNfUFJfQ0JJLCBVU0JfVVNfVFlQRV9TVE9SKSwKCi8qIEJ1bGstb25seSB0cmFuc3BvcnQgZm9yIGFsbCBTdWJDbGFzcyB2YWx1ZXMgKi8KVVNVQUxfREVWKFVTX1NDX1JCQywgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDIwLCBVU19QUl9CVUxLLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1FJQywgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19VRkksIFVTX1BSX0JVTEssIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfODA3MCwgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCAwKSwK