LyogRHJpdmVyIGZvciBVU0IgTWFzcyBTdG9yYWdlIGNvbXBsaWFudCBkZXZpY2VzCiAqIFVudXN1YWwgRGV2aWNlcyBGaWxlCiAqCiAqICRJZDogdW51c3VhbF9kZXZzLmgsdiAxLjMyIDIwMDIvMDIvMjUgMDI6NDE6MjQgbWRoYXJtIEV4cCAkCiAqCiAqIEN1cnJlbnQgZGV2ZWxvcG1lbnQgYW5kIG1haW50ZW5hbmNlIGJ5OgogKiAgIChjKSAyMDAwLTIwMDIgTWF0dGhldyBEaGFybSAobWRoYXJtLXVzYkBvbmUtZXllZC1hbGllbi5uZXQpCiAqCiAqIEluaXRpYWwgd29yayBieToKICogICAoYykgMjAwMCBBZGFtIEouIFJpY2h0ZXIgKGFkYW1AeWdnZHJhc2lsLmNvbSksIFlnZ2RyYXNpbCBDb21wdXRpbmcsIEluYy4KICoKICogUGxlYXNlIHNlZSBodHRwOi8vd3d3Lm9uZS1leWVkLWFsaWVuLm5ldC9+bWRoYXJtL2xpbnV4LXVzYiBmb3IgbW9yZQogKiBpbmZvcm1hdGlvbiBhYm91dCB0aGlzIGRyaXZlci4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICogdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCiAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkKICogbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKICogd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKICogNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0EuCiAqLwoKLyogSU1QT1JUQU5UIE5PVEU6IFRoaXMgZmlsZSBtdXN0IGJlIGluY2x1ZGVkIGluIGFub3RoZXIgZmlsZSB3aGljaCBkb2VzCiAqIHRoZSBmb2xsb3dpbmcgdGhpbmcgZm9yIGl0IHRvIHdvcms6CiAqIFRoZSBtYWNybyBVTlVTVUFMX0RFVigpIG11c3QgYmUgZGVmaW5lZCBiZWZvcmUgdGhpcyBmaWxlIGlzIGluY2x1ZGVkCiAqLwojaW5jbHVkZSA8bGludXgvY29uZmlnLmg+CgovKiBJZiB5b3UgZWRpdCB0aGlzIGZpbGUsIHBsZWFzZSB0cnkgdG8ga2VlcCBpdCBzb3J0ZWQgZmlyc3QgYnkgVmVuZG9ySUQsCiAqIHRoZW4gYnkgUHJvZHVjdElELgogKgogKiBJZiB5b3Ugd2FudCB0byBhZGQgYW4gZW50cnkgZm9yIHRoaXMgZmlsZSwgYmUgc3VyZSB0byBpbmNsdWRlIHRoZQogKiBmb2xsb3dpbmcgaW5mb3JtYXRpb246CiAqCS0gYSBwYXRjaCB0aGF0IGFkZHMgdGhlIGVudHJ5IGZvciB5b3VyIGRldmljZSwgaW5jbHVkaW5nIHlvdXIKICoJICBlbWFpbCBhZGRyZXNzIHJpZ2h0IGFib3ZlIHRoZSBlbnRyeSAocGx1cyBtYXliZSBhIGJyaWVmCiAqCSAgZXhwbGFuYXRpb24gb2YgdGhlIHJlYXNvbiBmb3IgdGhlIGVudHJ5KSwKICoJLSBhIGNvcHkgb2YgL3Byb2MvYnVzL3VzYi9kZXZpY2VzIHdpdGggeW91ciBkZXZpY2UgcGx1Z2dlZCBpbgogKgkgIHJ1bm5pbmcgd2l0aCB0aGlzIHBhdGNoLgogKiBTZW5kIHlvdXIgc3VibWlzc2lvbiB0byBlaXRoZXIgUGhpbCBEaWJvd2l0eiA8cGhpbEBpcG9tLmNvbT4gb3IKICogQWxhbiBTdGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4sIGFuZCBkb24ndCBmb3JnZXQgdG8gQ0M6IHRoZQogKiBVU0IgZGV2ZWxvcG1lbnQgbGlzdCA8bGludXgtdXNiLWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD4uCiAqLwoKLyogcGF0Y2ggc3VibWl0dGVkIGJ5IFZpdmlhbiBCcmVnaWVyIDxWaXZpYW4uQnJlZ2llckBpbWFnLmZyPgogKi8KVU5VU1VBTF9ERVYoICAweDAzZWIsIDB4MjAwMiwgMHgwMTAwLCAweDAxMDAsCiAgICAgICAgICAgICAgICAiQVRNRUwiLAogICAgICAgICAgICAgICAgIlNORDEgU3RvcmFnZSIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX0lHTk9SRV9SRVNJRFVFKSwKClVOVVNVQUxfREVWKCAgMHgwM2VlLCAweDY5MDEsIDB4MDAwMCwgMHgwMTAwLAoJCSJNaXRzdW1pIiwKCQkiVVNCIEZERCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDAzZjAsIDB4MDEwNywgMHgwMjAwLCAweDAyMDAsIAoJCSJIUCIsCgkJIkNELVdyaXRlcisiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCAwKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1VTQkFUClVOVVNVQUxfREVWKCAgMHgwM2YwLCAweDAyMDcsIDB4MDAwMSwgMHgwMDAxLCAKCQkiSFAiLAoJCSJDRC1Xcml0ZXIrIDgyMDBlIiwKCQlVU19TQ184MDcwLCBVU19QUl9VU0JBVCwgaW5pdF91c2JhdCwgMCksCgpVTlVTVUFMX0RFViggIDB4MDNmMCwgMHgwMzA3LCAweDAwMDEsIDB4MDAwMSwgCgkJIkhQIiwKCQkiQ0QtV3JpdGVyKyBDRC00ZSIsCgkJVVNfU0NfODA3MCwgVVNfUFJfVVNCQVQsIGluaXRfdXNiYXQsIDApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IFNlYmFzdGlhbiBLYXBmZXIgPHNlYmFzdGlhbl9rYXBmZXJAZ214Lm5ldD4KICogYW5kIE9sYWYgSGVyaW5nIDxvbGhAc3VzZS5kZT4gKGRpZmZlcmVudCBiY2Qncywgc2FtZSB2ZW5kb3IvcHJvZHVjdCkKICogZm9yIFVTQiBmbG9wcGllcyB0aGF0IG5lZWQgdGhlIFNJTkdMRV9MVU4gZW5mb3JjZW1lbnQuCiAqLwpVTlVTVUFMX0RFViggIDB4MDQwOSwgMHgwMDQwLCAweDAwMDAsIDB4OTk5OSwKCQkiTkVDIiwKCQkiTkVDIFVTQiBVRjAwMHgiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCi8qIFBhdGNoIHN1Ym1pdHRlZCBieSBNaWhuZWEtQ29zdGluIEdyaWdvcmUgPG1paG5lYUB6dWx1LnJvPiAqLwpVTlVTVUFMX0RFViggIDB4MDQwZCwgMHg2MjA1LCAweDAwMDMsIDB4MDAwMywKCQkiVklBIFRlY2hub2xvZ2llcyBJbmMuIiwKCQkiVVNCIDIuMCBDYXJkIFJlYWRlciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIERlZHVjZWQgYnkgSm9uYXRoYW4gV29pdGhlIDxqd29pdGhlQHBoeXNpY3MuYWRlbGFpZGUuZWR1LmF1PgogKiBFbnRyeSBuZWVkZWQgZm9yIGZsYWdzOiBVU19GTF9GSVhfSU5RVUlSWSBiZWNhdXNlIGluaXRpYWwgaW5xdWlyeSBtZXNzYWdlCiAqIGFsd2F5cyBmYWlscyBhbmQgY29uZnVzZXMgZHJpdmUuCiAqLwpVTlVTVUFMX0RFViggIDB4MDQxMSwgMHgwMDFjLCAweDAxMTMsIDB4MDExMywKCQkiQnVmZmFsbyIsCgkJIkRVQi1QNDBHIEhERCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFJlcG9ydGVkIGJ5IENocmlzdGlhbiBMZWJlciA8Y2hyaXN0aWFuQGxlYmVyLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDQxOSwgMHhhYWY1LCAweDAxMDAsIDB4MDEwMCwKCQkiVHJla1N0b3IiLAoJCSJpLkJlYXQgMTE1IDIuMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgfCBVU19GTF9OT1RfTE9DS0FCTEUgKSwKCi8qIFJlcG9ydGVkIGJ5IFN0ZWZhbiBXZXJuZXIgPGR1c3RibG5AZ214LmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDQxOSwgMHhhYWY2LCAweDAxMDAsIDB4MDEwMCwKCQkiVHJla1N0b3IiLAoJCSJpLkJlYXQgSm95IDIuMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IE9sYWYgSGVyaW5nIDxvbGhAc3VzZS5kZT4gZnJvbSBub3ZlbGwgYnVnICMxMDU4NzggKi8KVU5VU1VBTF9ERVYoICAweDA0MjQsIDB4MGZkYywgMHgwMjEwLCAweDAyMTAsCgkJIlNNU0MiLAoJCSJGREMgR09MRC0yLjMwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RQQ00KVU5VU1VBTF9ERVYoICAweDA0MzYsIDB4MDAwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk1pY3JvdGVjaCIsCgkJIkNhbWVyYU1hdGUgKERQQ01fVVNCKSIsCiAJCVVTX1NDX1NDU0ksIFVTX1BSX0RQQ01fVVNCLCBOVUxMLCAwICksCiNlbmRpZgoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IERhbmllbCBEcmFrZSA8ZHNkQGdlbnRvby5vcmc+CiAqIERldmljZSByZXBvcnRzIG5vbnNlbnNlIGJJbnRlcmZhY2VQcm90b2NvbCA2IHdoZW4gY29ubmVjdGVkIG92ZXIgVVNCMiAqLwpVTlVTVUFMX0RFViggIDB4MDQ1MSwgMHg1NDE2LCAweDAxMDAsIDB4MDEwMCwKCQkiTmV1cm9zIEF1ZGlvIiwKCQkiVVNCIDIuMCBIRCAyLjUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFICksCgovKgogKiBQZXRlIFphaXRjZXYgPHphaXRjZXZAeWFob28uY29tPiwgZnJvbSBQYXRyaWNrIEMuIEYuIEVybnplciwgYnojMTYyNTU5LgogKiBUaGUga2V5IGRvZXMgbm90IGFjdHVhbGx5IGJyZWFrLCBidXQgaXQgcmV0dXJucyB6ZXJvIHNlbnNlIHdoaWNoCiAqIG1ha2VzIG91ciBTQ1NJIHN0YWNrIHRvIHByaW50IGNvbmZ1c2luZyBtZXNzYWdlcy4KICovClVOVVNVQUxfREVWKCAgMHgwNDU3LCAweDAxNTAsIDB4MDEwMCwgMHgwMTAwLAoJCSJVU0Jlc3QgVGVjaG5vbG9neSIsCS8qIHNvbGQgYnkgVHJhbnNjZW5kICovCgkJIlVTQiBNYXNzIFN0b3JhZ2UgRGV2aWNlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfTk9UX0xPQ0tBQkxFICksCgovKgoqIEJvaGRhbiBMaW5kYSA8Ym9oZGFuLmxpbmRhQGdtYWlsLmNvbT4KKiAxR0IgVVNCIHN0aWNrcyBNeUZsYXNoIEhpZ2ggU3BlZWQuIEkgaGF2ZSByZXN0cmljdGVkCiogdGhlIHJldmlzaW9uIHRvIG15IG1vZGVsIG9ubHkKKi8KVU5VU1VBTF9ERVYoICAweDA0NTcsIDB4MDE1MSwgMHgwMTAwLCAweDAxMDAsCiAgICAgICAgICAgICAgICAiVVNCIDIuMCIsCiAgICAgICAgICAgICAgICAiRmxhc2ggRGlzayIsCiAgICAgICAgICAgICAgICBVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKICAgICAgICAgICAgICAgIFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKVU5VU1VBTF9ERVYoICAweDA0NWEsIDB4NTIxMCwgMHgwMTAxLCAweDAxMDEsCgkJIlJpbyIsCgkJIlJpbyBLYXJtYSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgcmlvX2thcm1hX2luaXQsIDApLAoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IFBoaWxpcHAgRnJpZWRyaWNoIDxwaGlsaXBwQHZvaWQuYXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNDgyLCAweDAxMDAsIDB4MDEwMCwgMHgwMTAwLAoJCSJLeW9jZXJhIiwKCQkiRmluZWNhbSBTM3giLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBQYXRjaCBzdWJtaXR0ZWQgYnkgUGhpbGlwcCBGcmllZHJpY2ggPHBoaWxpcHBAdm9pZC5hdD4gKi8KVU5VU1VBTF9ERVYoICAweDA0ODIsIDB4MDEwMSwgMHgwMTAwLCAweDAxMDAsCgkJIkt5b2NlcmEiLAoJCSJGaW5lY2FtIFM0IiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogUGF0Y2ggc3VibWl0dGVkIGJ5IFN0ZXBoYW5lIEdhbGxlcyA8c3RlcGhhbmUuZ2FsbGVzQGZyZWUuZnI+ICovClVOVVNVQUxfREVWKCAgMHgwNDgyLCAweDAxMDMsIDB4MDEwMCwgMHgwMTAwLAoJCSJLeW9jZXJhIiwKCQkiRmluZWNhbSBTNSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsIFVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFBhdGNoIGZvciBLeW9jZXJhIEZpbmVjYW0gTDMKICogU3VibWl0dGVkIGJ5IE1pY2hhZWwgS3JhdXRoIDxtaWNoYWVsLmtyYXV0aEB3ZWIuZGU+CiAqIGFuZCBBbGVzc2FuZHJvIEZyYWNjaGV0dGkgPGFsLmZyYWNjaGV0dGlAdGluLml0PgogKi8KVU5VU1VBTF9ERVYoICAweDA0ODIsIDB4MDEwNSwgMHgwMTAwLCAweDAxMDAsCgkJIkt5b2NlcmEiLAoJCSJGaW5lY2FtIEwzIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qIFJlcG9ydGVkIGJ5IFBhdWwgU3Rld2FydCA8c3Rld2FydEB3ZXRsb2dpYy5uZXQ+CiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAqLwpVTlVTVUFMX0RFViggIDB4MDRhNCwgMHgwMDA0LCAweDAwMDEsIDB4MDAwMSwKCQkiSGl0YWNoaSIsCgkJIkRWRC1DQU0gRFotTVYxMDBBIENhbWNvcmRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIFVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogUmVwb3J0ZWQgYnkgQW5kcmVhcyBCb2NraG9sZCA8YW5kcmVhc0Bib2NraW9ubGluZS5kZT4gKi8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDQwNSwgMHgwMTAwLCAweDAxMDAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEQ3MCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZKSwKCi8qIFBhdGNoIGZvciBOaWtvbiBjb29scGl4IDIwMDAKICogU3VibWl0dGVkIGJ5IEZhYmllbiBDb3NzZSA8ZmFiaWVuLmNvc3NlQHdhbmFkb28uZnI+Ki8KVU5VU1VBTF9ERVYoICAweDA0YjAsIDB4MDMwMSwgMHgwMDEwLCAweDAwMTAsCgkJIk5JS09OIiwKCQkiTklLT04gRFNDIEUyMDAwIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSxOVUxMLAoJCVVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogQkVOUSBEQzUzMzAKICogUmVwb3J0ZWQgYnkgTWFudWVsIEZvbWJ1ZW5hIDxtZm9tYnVlbmFAeWEuY29tPiBhbmQKICogRnJhbmsgQ29wZWxhbmQgPGZqY0B0aGluZ3kuYXBhbmEub3JnLmF1PiAqLwpVTlVTVUFMX0RFViggIDB4MDRhNSwgMHgzMDEwLCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSIzMDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgU2ltb24gTGV2aXR0IDxzaW1vbkB3aGF0dGYuY29tPgogKiBUaGlzIGVudHJ5IG5lZWRzIFN1YiBhbmQgUHJvdG8gZmllbGRzICovClVOVVNVQUxfREVWKCAgMHgwNGI4LCAweDA2MDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJFcHNvbiIsCgkJIjg3NURDIFN0b3JhZ2UiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBLaGFsaWQgQXppeiA8a2hhbGlkQGdvbmVoaWtpbmcub3JnPgogKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBkZXZpY2UgcmVwb3J0cyBTdWI9ZmYgKi8KVU5VU1VBTF9ERVYoICAweDA0YjgsIDB4MDYwMiwgMHgwMTEwLCAweDAxMTAsCgkJIkVwc29uIiwKCQkiNzg1RVBYIFN0b3JhZ2UiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsIFVTX0ZMX1NJTkdMRV9MVU4pLAoKLyogTm90IHN1cmUgd2hvIHJlcG9ydGVkIHRoaXMgb3JpZ2luYWxseSBidXQKICogUGF2ZWwgTWFjaGVrIDxwYXZlbEB1Y3cuY3o+IHJlcG9ydGVkIHRoYXQgdGhlIGV4dHJhIFVTX0ZMX1NJTkdMRV9MVU4KICogZmxhZyBiZSBhZGRlZCAqLwpVTlVTVUFMX0RFViggIDB4MDRjYiwgMHgwMTAwLCAweDAwMDAsIDB4MjIxMCwKCQkiRnVqaWZpbG0iLAoJCSJGaW5lUGl4IDE0MDBab29tIiwKCQlVU19TQ19VRkksIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfRklYX0lOUVVJUlkgfCBVU19GTF9TSU5HTEVfTFVOKSwKCi8qIFJlcG9ydGVkIGJ5IFBldGVyIFfkY2h0bGVyIDxwd2FlY2h0bGVyQGxvZXdlLWtvbXAuZGU+CiAqIFRoZSBkZXZpY2UgbmVlZHMgdGhlIGZsYWdzIG9ubHkuCiAqLwpVTlVTVUFMX0RFViggIDB4MDRjZSwgMHgwMDAyLCAweDAwNzQsIDB4MDA3NCwKCQkiU2NhbkxvZ2ljIiwKCQkiU0wxMVItSURFIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBLcmlzdG9uIEZpbmNoZXIgPGtyaXN0b25AYWlybWFpbC5uZXQ+CiAqIFBhdGNoIHN1Ym1pdHRlZCBieSBTZWFuIE1pbGxpY2hhbXAgPHNlYW5AYnJ1ZW5vci5vcmc+CiAqIFRoaXMgaXMgdG8gc3VwcG9ydCB0aGUgUGFuYXNvbmljIFBhbG1DYW0gUFYtU0Q0MDkwCiAqIFRoaXMgZW50cnkgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIGRldmljZSByZXBvcnRzIFN1Yj1mZiAKICovClVOVVNVQUxfREVWKCAgMHgwNGRhLCAweDA5MDEsIDB4MDEwMCwgMHgwMjAwLAoJCSJQYW5hc29uaWMiLAoJCSJMUy0xMjAgQ2FtZXJhIiwKCQlVU19TQ19VRkksIFVTX1BSX0RFVklDRSwgTlVMTCwgMCksCgovKiBGcm9tIFl1a2loaXJvIE5ha2FpLCB2aWEgemFpdGNldkB5YWhvby5jb20uCiAqIFRoaXMgaXMgbmVlZGVkIGZvciBDQiBpbnN0ZWFkIG9mIENCSSAqLwpVTlVTVUFMX0RFViggIDB4MDRkYSwgMHgwZDA1LCAweDAwMDAsIDB4MDAwMCwKCQkiU2hhcnAgQ0UtQ1cwNSIsCgkJIkNELVIvUlcgRHJpdmUiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKCi8qIFJlcG9ydGVkIGJ5IEFkcmlhYW4gUGVubmluZyA8YS5wZW5uaW5nQGx1b24ubmV0PiAqLwpVTlVTVUFMX0RFViggIDB4MDRkYSwgMHgyMzcyLCAweDAwMDAsIDB4OTk5OSwKCQkiUGFuYXNvbmljIiwKCQkiRE1DLUxDeCBDYW1lcmEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX05PVF9MT0NLQUJMRSApLAoKLyogUmVwb3J0ZWQgYnkgU2ltZW9uIFNpbWVvbm92IDxzaW1lb25vdl8yMDAwQHlhaG9vLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDA0ZGEsIDB4MjM3MywgMHgwMDAwLCAweDk5OTksCgkJIkxFSUNBIiwKCQkiRC1MVVggQ2FtZXJhIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgfCBVU19GTF9OT1RfTE9DS0FCTEUgKSwKCi8qIE1vc3Qgb2YgdGhlIGZvbGxvd2luZyBlbnRyaWVzIHdlcmUgZGV2ZWxvcGVkIHdpdGggdGhlIGhlbHAgb2YKICogU2h1dHRsZS9TQ00gZGlyZWN0bHkuCiAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIk1hdHNoaXRhIiwKCQkiTFMtMTIwIiwKCQlVU19TQ184MDIwLCBVU19QUl9DQiwgTlVMTCwgMCksCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAyLCAweDAxMDAsIDB4MDEwMCwgCgkJIlNodXR0bGUiLAoJCSJlVVNDU0kgQnJpZGdlIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOQpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDAzLCAweDAwMDAsIDB4OTk5OSwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUjA5IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9FVVNCX1NERFIwOSwgdXNiX3N0b3Jfc2RkcjA5X2luaXQsCgkJMCksCgovKiBUaGlzIGVudHJ5IGlzIGZyb20gQW5kcmllcy5Ccm91d2VyQGN3aS5ubCAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA1LCAweDAxMDAsIDB4MDIwOCwKCQkiU0NNIE1pY3Jvc3lzdGVtcyIsCgkJImVVU0IgU21hcnRNZWRpYSAvIENvbXBhY3RGbGFzaCBBZGFwdGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EUENNX1VTQiwgdXNiX3N0b3Jfc2RkcjA5X2RwY21faW5pdCwKCQkwKSwgCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgTWFya3VzIERlbWxlaXRuZXIgPG1zZGVtbGVpQGNsLnVuaS1oZWlkZWxiZXJnLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMDA2LCAweDAxMDAsIDB4MDEwMCwgCgkJIlNDTSBNaWNyb3N5c3RlbXMgSW5jLiIsCgkJImVVU0IgTU1DIEFkYXB0ZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLCAKCQlVU19GTF9TSU5HTEVfTFVOKSwgCgovKiBSZXBvcnRlZCBieSBEYW5pZWwgTm91cmkgPGRwdW5rdG5wdW5rdEB3ZWIuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDYsIDB4MDIwNSwgMHgwMjA1LCAKCQkiU2h1dHRsZSIsCgkJImVVU0IgTU1DIEFkYXB0ZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RFVklDRSwgTlVMTCwgCgkJVVNfRkxfU0lOR0xFX0xVTiksIAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwNywgMHgwMTAwLCAweDAyMDAsIAoJCSJTb255IiwKCQkiSGlmZCIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQ0IsIE5VTEwsIAoJCVVTX0ZMX1NJTkdMRV9MVU4pLCAKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMDksIDB4MDIwMCwgMHgwMjAwLCAKCQkiU2h1dHRsZSIsCgkJImVVU0IgQVRBL0FUQVBJIEFkYXB0ZXIiLAoJCVVTX1NDXzgwMjAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMGEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiU2h1dHRsZSIsCgkJImVVU0IgQ29tcGFjdEZsYXNoIEFkYXB0ZXIiLAoJCVVTX1NDXzgwMjAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKClVOVVNVQUxfREVWKCAgMHgwNGU2LCAweDAwMEIsIDB4MDEwMCwgMHgwMTAwLCAKCQkiU2h1dHRsZSIsCgkJImVVU0NTSSBCcmlkZ2UiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIHVzYl9zdG9yX2V1c2NzaV9pbml0LCAKCQlVU19GTF9TQ01fTVVMVF9UQVJHICksIAoKVU5VU1VBTF9ERVYoICAweDA0ZTYsIDB4MDAwQywgMHgwMTAwLCAweDAxMDAsIAoJCSJTaHV0dGxlIiwKCQkiZVVTQ1NJIEJyaWRnZSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgdXNiX3N0b3JfZXVzY3NpX2luaXQsIAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgpVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgwMTAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIlNodXR0bGUiLAoJCSJDRC1SVyBEZXZpY2UiLAoJCVVTX1NDXzgwMjAsIFVTX1BSX0NCLCBOVUxMLCAwKSwKCi8qIEVudHJ5IGFuZCBzdXBwb3J0aW5nIHBhdGNoIGJ5IFRoZW9kb3JlIEtpbGdvcmUgPGtpbGdvdGFAYXVidXJuLmVkdT4uCiAqIERldmljZSB1c2VzIHN0YW5kYXJkcy12aW9sYXRpbmcgMzItYnl0ZSBCdWxrIENvbW1hbmQgQmxvY2sgV3JhcHBlcnMgYW5kCiAqIHJlcG9ydHMgaXRzZWxmIGFzICJQcm9wcmlldGFyeSBTQ1NJIEJ1bGsuIiBDZi4gZGV2aWNlIGVudHJ5IDB4MDg0ZDoweDAwMTEuCiAqLwoKVU5VU1VBTF9ERVYoICAweDA0ZmMsIDB4ODBjMiwgMHgwMTAwLCAweDAxMDAsCgkJIktvYmlhbiBNZXJjdXJ5IiwKCQkiQmlub2NhbSBEQ0ItMTMyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9CVUxLMzIpLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9VU0JBVApVTlVTVUFMX0RFViggIDB4MDRlNiwgMHgxMDEwLCAweDAwMDAsIDB4OTk5OSwKCQkiU2h1dHRsZS9TQ00iLAoJCSJVU0JBVC0wMiIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfVVNCQVQsIGluaXRfdXNiYXQsCgkJVVNfRkxfU0lOR0xFX0xVTiksCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgQm9iIFNhc3MgPHJsc0B2ZWN0b3JkYi5jb20+IC0tIG9ubHkgcmV2IDEuMzMgdGVzdGVkICovClVOVVNVQUxfREVWKCAgMHgwNTBkLCAweDAxMTUsIDB4MDEzMywgMHgwMTMzLAoJCSJCZWxraW4iLAoJCSJVU0IgU0NTSSBBZGFwdG9yIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwKCQlVU19GTF9TQ01fTVVMVF9UQVJHICksCgovKiBJb21lZ2EgQ2xpayEgRHJpdmUgCiAqIFJlcG9ydGVkIGJ5IERhdmlkIENoYXRlbmF5IDxkY2hhdGVuYXlAaG90bWFpbC5jb20+CiAqIFRoZSByZWFzb24gdGhpcyBpcyBuZWVkZWQgaXMgbm90IGZ1bGx5IGtub3duLgogKi8KVU5VU1VBTF9ERVYoICAweDA1MjUsIDB4YTE0MCwgMHgwMTAwLCAweDAxMDAsCgkJIklvbWVnYSIsCgkJIlVTQiBDbGlrISA0MCIsCgkJVVNfU0NfODA3MCwgVVNfUFJfQlVMSywgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAoKLyogWWFrdW1vIE1lZ2EgSW1hZ2UgMzcKICogU3VibWl0dGVkIGJ5IFN0ZXBoYW4gRnVocm1hbm4gPGF0b21lbmVyZ2llQHQtb25saW5lLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDUyYiwgMHgxODAxLCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSIzMDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogQW5vdGhlciBZYWt1bW8gY2FtZXJhLgogKiBSZXBvcnRlZCBieSBNaWNoZWxlIEFsemV0dGEgPG1pY2hlbGUuYWx6ZXR0YUBhbGljZXBvc3RhLml0PiAqLwpVTlVTVUFMX0RFViggIDB4MDUyYiwgMHgxODA0LCAweDAxMDAsIDB4MDEwMCwKCQkiVGVrb20gVGVjaG5vbG9naWVzLCBJbmMiLAoJCSIzMDBfQ0FNRVJBIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgSWFjb3BvIFNwYWxsZXR0aSA8YXZ2aXNpQHNwYWxsZXR0aS5pdD4gKi8KVU5VU1VBTF9ERVYoICAweDA1MmIsIDB4MTgwNywgMHgwMTAwLCAweDAxMDAsCgkJIlRla29tIFRlY2hub2xvZ2llcywgSW5jIiwKCQkiMzAwX0NBTUVSQSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFlha3VtbyBNZWdhIEltYWdlIDQ3CiAqIFJlcG9ydGVkIGJ5IEJqb2VybiBQYWV0emVsIDxrb2xyYWJpQGtvbHJhYmkuZGU+ICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE5MDUsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjQwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBQYXVsIE9ydHlsIDxvcnR5bHBAM21pYXN0by5uZXQ+CiAqIE5vdGUgdGhhdCBpdCdzIHNpbWlsYXIgdG8gdGhlIGRldmljZSBhYm92ZSwgb25seSBkaWZmZXJlbnQgcHJvZElEICovClVOVVNVQUxfREVWKCAgMHgwNTJiLCAweDE5MTEsIDB4MDEwMCwgMHgwMTAwLAoJCSJUZWtvbSBUZWNobm9sb2dpZXMsIEluYyIsCgkJIjQwMF9DQU1FUkEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDEwLCAweDAxMDYsIDB4MDQ1MCwgCgkJIlNvbnkiLAoJCSJEU0MtUzMwL1M3MC9TNzUvNTA1Vi9GNTA1L0Y3MDcvRjcxNy9QOCIsIAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOIHwgVVNfRkxfTk9UX0xPQ0tBQkxFIHwgVVNfRkxfTk9fV1BfREVURUNUICksCgovKiBUaGlzIGVudHJ5IGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBkZXZpY2UgcmVwb3J0cyBTdWI9ZmYgKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAxMCwgMHgwNTAwLCAweDA2MDAsCgkJIlNvbnkiLAoJCSJEU0MtVDEvVDUiLAoJCVVTX1NDXzgwNzAsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgoKLyogUmVwb3J0ZWQgYnkgd2ltQGdlZWtzLm5sICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMjUsIDB4MDEwMCwgMHgwMTAwLCAKCQkiU29ueSIsCgkJIk1lbW9yeXN0aWNrIE5XLU1TNyIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyYiwgMHgwMTAwLCAweDAxMTAsCgkJIlNvbnkiLAoJCSJQb3J0YWJsZSBVU0IgSGFyZGRyaXZlIFYyIiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCiNlbmRpZgoKLyogU3VibWl0dGVkIGJ5IE9sYWYgSGVyaW5nLCA8b2xoQHN1c2UuZGU+IFN1U0UgQnVnemlsbGEgIzQ5MDQ5ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMmMsIDB4MDUwMSwgMHgwNTAxLAoJCSJTb255IiwKCQkiVVNCIEZsb3BweSBEcml2ZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAoKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyZCwgMHgwMTAwLCAweDAxMDAsIAoJCSJTb255IiwKCQkiTWVtb3J5c3RpY2sgTVNBQy1VUzEiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCi8qIFN1Ym1pdHRlZCBieSBLbGF1cyBNdWVsbGVyIDxrLm11ZWxsZXJAaW50ZXJzaG9wLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDJlLCAweDAxMDYsIDB4MDMxMCwgCgkJIlNvbnkiLAoJCSJIYW5keWNhbSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCi8qIFN1Ym1pdHRlZCBieSBSYWplc2ggS3VtYmxlIE5heWFrIDxuYXlha0BvYnMtbmljZS5mcj4gKi8KVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDAyZSwgMHgwNTAwLCAweDA1MDAsIAoJCSJTb255IiwKCQkiSGFuZHljYW0gSEMtODUiLAoJCVVTX1NDX1VGSSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwMzIsIDB4MDAwMCwgMHg5OTk5LAoJCSJTb255IiwKCQkiTWVtb3J5c3RpY2sgTVNDLVUwMU4iLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCi8qIFN1Ym1pdHRlZCBieSBNaWNoYWwgTWxvdGVrIDxtbG90ZWtAZm9vYmFyLnBsPiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDU4LCAweDAwMDAsIDB4OTk5OSwKCQkiU29ueSIsCgkJIlBFRyBONzYwYyBNZW1vcnlzdGljayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCQkKVU5VU1VBTF9ERVYoICAweDA1NGMsIDB4MDA2OSwgMHgwMDAwLCAweDk5OTksCgkJIlNvbnkiLAoJCSJNZW1vcnlzdGljayBNU0MtVTAzIiwKCQlVU19TQ19VRkksIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCi8qIFN1Ym1pdHRlZCBieSBOYXRoYW4gQmFiYiA8bmF0aGFuQGxleGkuY29tPiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMDZkLCAweDAwMDAsIDB4OTk5OSwKCQkiU29ueSIsCgkJIlBFRyBNYXNzIFN0b3JhZ2UiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBTdWJtaXR0ZWQgYnkgTWlrZSBBbGJvcm4gPG1hbGJvcm5AZGVhbmRyYS5ob21laXAubmV0PiAqLwpVTlVTVUFMX0RFViggIDB4MDU0YywgMHgwMTZhLCAweDAwMDAsIDB4OTk5OSwKCQkiU29ueSIsCgkJIlBFRyBNYXNzIFN0b3JhZ2UiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgkJCi8qIFN1Ym1pdHRlZCBieSBGcmFuayBFbmdlbCA8ZnJhbmtpZUBjc2UudW5zdy5lZHUuYXU+ICovClVOVVNVQUxfREVWKCAgMHgwNTRjLCAweDAwOTksIDB4MDAwMCwgMHg5OTk5LAogICAgICAgICAgICAgICAgIlNvbnkiLAogICAgICAgICAgICAgICAgIlBFRyBNYXNzIFN0b3JhZ2UiLAogICAgICAgICAgICAgICAgVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCiAgICAgICAgICAgICAgICBVU19GTF9GSVhfSU5RVUlSWSApLAoKCQkKVU5VU1VBTF9ERVYoICAweDA1N2IsIDB4MDAwMCwgMHgwMDAwLCAweDAyOTksIAoJCSJZLUUgRGF0YSIsCgkJIkZsYXNoYnVzdGVyLVUiLAoJCVVTX1NDX0RFVklDRSwgIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4pLAoKVU5VU1VBTF9ERVYoICAweDA1N2IsIDB4MDAwMCwgMHgwMzAwLCAweDk5OTksIAoJCSJZLUUgRGF0YSIsCgkJIkZsYXNoYnVzdGVyLVUiLAoJCVVTX1NDX0RFVklDRSwgIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOKSwKCi8qIFJlcG9ydGVkIGJ5IEpvaGFubiBDYXJkb24gPGpvaGFubi5jYXJkb25AZnJlZS5mcj4KICogVGhpcyBlbnRyeSBpcyBuZWVkZWQgb25seSBiZWNhdXNlIHRoZSBkZXZpY2UgcmVwb3J0cwogKiBiSW50ZXJmYWNlQ2xhc3MgPSAweGZmICh2ZW5kb3Itc3BlY2lmaWMpCiAqLwpVTlVTVUFMX0RFViggIDB4MDU3YiwgMHgwMDIyLCAweDAwMDAsIDB4OTk5OSwgCgkJIlktRSBEYXRhIiwKCQkiU2lsaWNvbiBNZWRpYSBSL1ciLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLCAwKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBClVOVVNVQUxfREVWKCAgMHgwNTg0LCAweDAwMDgsIDB4MDEwMiwgMHgwMTAyLAoJCSJGdWppZmlsbSIsCgkJIkRQQy1SMSAoQWxhdWRhKSIsCiAJCVVTX1NDX1NDU0ksIFVTX1BSX0FMQVVEQSwgaW5pdF9hbGF1ZGEsIDAgKSwKI2VuZGlmCgovKiBGYWJyaXppbyBGZWxsaW5pIDxmZWxsb0BsaWJlcm8uaXQ+ICovClVOVVNVQUxfREVWKCAgMHgwNTk1LCAweDQzNDMsIDB4MDAwMCwgMHgyMjEwLAoJCSJGdWppZmlsbSIsCgkJIkRpZ2l0YWwgQ2FtZXJhIEVYLTIwIERTQyIsCgkJVVNfU0NfODA3MCwgVVNfUFJfREVWSUNFLCBOVUxMLCAwICksCgovKiBUaGUgZW50cnkgd2FzIGhlcmUgYmVmb3JlIEkgdG9vayBvdmVyLCBhbmQgaGFkIFVTX1NDX1JCQy4gSXQgdHVybnMKICogb3V0IHRoYXQgaXNuJ3QgbmVlZGVkLiBBZGRpdGlvbmFsbHksIFRvcnN0ZW4gRXJpa3Nzb24KICogPFRvcnN0ZW4uRXJpa3Nzb25AYmVyZ2lhbnNrYS5zZT4gaXMgYWJsZSB0byB1c2UgaGlzIGRldmljZSBmaW5lCiAqIHdpdGhvdXQgdGhpcyBlbnRyeSBhdCBhbGwgLSBidXQgSSBkb24ndCBzdXNwZWN0IHRoYXQgd2lsbCBiZSB0cnVlCiAqIGZvciBhbGwgdXNlcnMgKHRoZSBwcm90b2NvbCBpcyBsaWtlbHkgbmVlZGVkKSwgc28gaXMgc3RheWluZyBhdAogKiB0aGlzIHRpbWUuIC0gUGhpbCBEaWJvd2l0eiA8cGhpbEBpcG9tLmNvbT4KICovClVOVVNVQUxfREVWKCAgMHgwNTlmLCAweGE2MDEsIDB4MDIwMCwgMHgwMjAwLCAKCQkiTGFDaWUiLAoJCSJVU0IgSGFyZCBEaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0NCLCBOVUxMLCAwICksCgovKiBTdWJtaXR0ZWQgYnkgSm9lbCBCb3VycXVhcmQgPG51bWxvY2tAZnJlZXN1cmYuY2g+CiAqIFNvbWUgdmVyc2lvbnMgb2YgdGhpcyBkZXZpY2UgbmVlZCB0aGUgU3ViQ2xhc3MgYW5kIFByb3RvY29sIG92ZXJyaWRlcwogKiB3aGlsZSBvdGhlcnMgZG9uJ3QuCiAqLwpVTlVTVUFMX0RFViggIDB4MDVhYiwgMHgwMDYwLCAweDExMDQsIDB4MTExMCwKCQkiSW4tU3lzdGVtIiwKCQkiUHlyb0dhdGUgRXh0ZXJuYWwgQ0QtUk9NIEVuY2xvc3VyZSAoRkNELTUyMykiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSApLAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAKVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4MDAzMSwgMHgwMTAwLCAweDAxMTAsCgkJIkluLVN5c3RlbSIsCgkJIlVTQi9JREUgQnJpZGdlIChBVEEvQVRBUEkpIiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCgpVTlVTVUFMX0RFViggIDB4MDVhYiwgMHgwMzAxLCAweDAxMDAsIDB4MDExMCwKCQkiSW4tU3lzdGVtIiwKCQkiUG9ydGFibGUgVVNCIEhhcmRkcml2ZSBWMiIsCgkJVVNfU0NfSVNEMjAwLCBVU19QUl9CVUxLLCBpc2QyMDBfSW5pdGlhbGl6YXRpb24sCgkJMCApLAoKVU5VU1VBTF9ERVYoICAweDA1YWIsIDB4MDM1MSwgMHgwMTAwLCAweDAxMTAsCgkJIkluLVN5c3RlbSIsCgkJIlBvcnRhYmxlIFVTQiBIYXJkZHJpdmUgVjIiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKClVOVVNVQUxfREVWKCAgMHgwNWFiLCAweDU3MDEsIDB4MDEwMCwgMHgwMTEwLAoJCSJJbi1TeXN0ZW0iLAoJCSJVU0IgU3RvcmFnZSBBZGFwdGVyIFYyIiwKCQlVU19TQ19JU0QyMDAsIFVTX1BSX0JVTEssIGlzZDIwMF9Jbml0aWFsaXphdGlvbiwKCQkwICksCiNlbmRpZgoKLyogU3VibWl0dGVkIGJ5IFN2ZW4gQW5kZXJzb24gPHN2ZW4tbGludXhAYW5kZXJzb24uZGU+CiAqIFRoZXJlIGFyZSBhdCBsZWFzdCBmb3VyIFByb2R1Y3RJRHMgdXNlZCBmb3IgaVBvZHMsIHNvIEkgYWRkZWQgMHgxMjAyIGFuZAogKiAweDEyMDQuIFRoZXkganVzdCBuZWVkIHRoZSBVU19GTF9GSVhfQ0FQQUNJVFkuIEFzIHRoZSBiY2REZXZpY2UgYXBwZWFycwogKiB0byBjaGFuZ2Ugd2l0aCBmaXJtd2FyZSB1cGRhdGVzLCBJIGNoYW5nZWQgdGhlIHJhbmdlIHRvIG1heGltdW0gZm9yIGFsbAogKiBpUG9kIGVudHJpZXMuCiAqLwpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMDIsIDB4MDAwMCwgMHg5OTk5LAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKLyogUmVwb3J0ZWQgYnkgQXZpIEtpdml0eSA8YXZpQGFyZ28uY28uaWw+ICovClVOVVNVQUxfREVWKCAweDA1YWMsIDB4MTIwMywgMHgwMDAwLCAweDk5OTksCgkJIkFwcGxlIiwKCQkiaVBvZCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgpVTlVTVUFMX0RFViggMHgwNWFjLCAweDEyMDQsIDB4MDAwMCwgMHg5OTk5LAoJCSJBcHBsZSIsCgkJImlQb2QiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSApLAoKVU5VU1VBTF9ERVYoIDB4MDVhYywgMHgxMjA1LCAweDAwMDAsIDB4OTk5OSwKCQkiQXBwbGUiLAoJCSJpUG9kIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qCiAqIFJlcG9ydGVkIGJ5IFR5c29uIFZpbnNvbiA8bG9ybm9zc0BnbWFpbC5jb20+CiAqIFRoaXMgcGFydGljdWxhciBwcm9kdWN0SWQgaXMgdGhlIGlQb2QgTmFubwogKi8KVU5VU1VBTF9ERVYoIDB4MDVhYywgMHgxMjBhLCAweDAwMDAsIDB4OTk5OSwKCQkiQXBwbGUiLAoJCSJpUG9kIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfSlVNUFNIT1QKVU5VU1VBTF9ERVYoICAweDA1ZGMsIDB4MDAwMSwgMHgwMDAwLCAweDAwMDEsCgkJIkxleGFyIiwKCQkiSnVtcHNob3QgVVNCIENGIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfSlVNUFNIT1QsIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSApLAojZW5kaWYKCi8qIFJlcG9ydGVkIGJ5IEJsYWtlIE1hdGhlbnkgPGJtYXRoZW55QHB1cmR1ZS5lZHU+ICovClVOVVNVQUxfREVWKCAgMHgwNWRjLCAweGIwMDIsIDB4MDAwMCwgMHgwMTEzLAoJCSJMZXhhciIsCgkJIlVTQiBDRiBSZWFkZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBUaGUgZm9sbG93aW5nIHR3byBlbnRyaWVzIGFyZSBmb3IgYSBHZW5lc3lzIFVTQiB0byBJREUKICogY29udmVydGVyIGNoaXAsIGJ1dCBpdCBjaGFuZ2VzIGl0cyBQcm9kdWN0SWQgZGVwZW5kaW5nCiAqIG9uIHdoZXRoZXIgb3Igbm90IGEgZGlzayBvciBhbiBvcHRpY2FsIGRldmljZSBpcyBlbmNsb3NlZAogKiBUaGV5IHdlcmUgb3JpZ2luYWxseSByZXBvcnRlZCBieSBBbGV4YW5kZXIgT2x0dQogKiA8YWxleGFuZGVyQGFsbC0yLmNvbT4gYW5kIFBldGVyIE1hcmtzIDxwZXRlci5tYXJrc0B0dXJuZXIuY29tPgogKiByZXNwZWN0aXZlbHkuCiAqLwpVTlVTVUFMX0RFViggIDB4MDVlMywgMHgwNzAxLCAweDAwMDAsIDB4ZmZmZiwKCQkiR2VuZXN5cyBMb2dpYyIsCgkJIlVTQiB0byBJREUgT3B0aWNhbCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfR09fU0xPVyApLAoKVU5VU1VBTF9ERVYoICAweDA1ZTMsIDB4MDcwMiwgMHgwMDAwLCAweGZmZmYsCgkJIkdlbmVzeXMgTG9naWMiLAoJCSJVU0IgdG8gSURFIERpc2siLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0dPX1NMT1cgKSwKCi8qIFJlcG9ydGVkIGJ5IEhhbm5vIEJvZWNrIDxoYW5ub0BnbXguZGU+CiAqIFRha2VuIGZyb20gdGhlIEx5Y29yaXMgS2VybmVsICovClVOVVNVQUxfREVWKCAgMHgwNjM2LCAweDAwMDMsIDB4MDAwMCwgMHg5OTk5LAoJCSJWaXZpdGFyIiwKCQkiVml2aWNhbSAzNVh4IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgpVTlVTVUFMX0RFViggIDB4MDY0NCwgMHgwMDAwLCAweDAxMDAsIDB4MDEwMCwgCgkJIlRFQUMiLAoJCSJGbG9wcHkgRHJpdmUiLAoJCVVTX1NDX1VGSSwgVVNfUFJfQ0IsIE5VTEwsIDAgKSwgCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOQpVTlVTVUFMX0RFViggIDB4MDY2YiwgMHgwMTA1LCAweDAxMDAsIDB4MDEwMCwgCgkJIk9seW1wdXMiLAoJCSJDYW1lZGlhIE1BVVNCLTIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0VVU0JfU0REUjA5LCB1c2Jfc3Rvcl9zZGRyMDlfaW5pdCwKCQkwKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBEYXJzZW4gTHUgPGRhcnNlbkBtaWNyby5lZS5udGh1LmVkdS50dz4gKi8KVU5VU1VBTF9ERVYoIDB4MDY2ZiwgMHg4MDAwLCAweDAwMDEsIDB4MDAwMSwKCQkiU2lnbWFUZWwiLAoJCSJVU0JNU0MgQXVkaW8gUGxheWVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFJlcG9ydGVkIGJ5IFJpY2hhcmQgLT1bXT0tIDxtaWNyb19mbHllckBob3RtYWlsLmNvbT4gKi8KVU5VU1VBTF9ERVYoIDB4MDY3YiwgMHgyNTA3LCAweDAxMDAsIDB4MDEwMCwKCQkiUHJvbGlmaWMgVGVjaG5vbG9neSBJbmMuIiwKCQkiTWFzcyBTdG9yYWdlIERldmljZSIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZIHwgVVNfRkxfR09fU0xPVyApLAoKLyogUmVwb3J0ZWQgYnkgQWxleCBCdXRjaGVyIDxhbGV4LmJ1dGNoZXJAYXNzdXJzeXMuY28udWs+ICovClVOVVNVQUxfREVWKCAweDA2N2IsIDB4MzUwNywgMHgwMDAxLCAweDAwMDEsCgkJIlByb2xpZmljIFRlY2hub2xvZ3kgSW5jLiIsCgkJIkFUQVBJLTYgQnJpZGdlIENvbnRyb2xsZXIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSB8IFVTX0ZMX0dPX1NMT1cgKSwKCi8qIFN1Ym1pdHRlZCBieSBCZW5ueSBTam9zdHJhbmQgPGJlbm55QGhvc3Rtb2JpbGl0eS5jb20+ICovClVOVVNVQUxfREVWKCAweDA2ODYsIDB4NDAxMSwgMHgwMDAxLCAweDAwMDEsCgkJIk1pbm9sdGEiLAoJCSJEaW1hZ2UgRjMwMCIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfQlVMSywgTlVMTCwgMCApLAoKLyogUmVwb3J0ZWQgYnkgTWlndWVsIEEuIEZvc2FzIDxhbW4zczFhQG9uby5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNjg2LCAweDQwMTcsIDB4MDAwMSwgMHgwMDAxLAogICAgICAgICAgICAgICAgIk1pbm9sdGEiLAogICAgICAgICAgICAgICAgIkRJTUFHRSBFMjIzIiwKICAgICAgICAgICAgICAgIFVTX1NDX1NDU0ksIFVTX1BSX0RFVklDRSwgTlVMTCwgMCApLAoKVU5VU1VBTF9ERVYoICAweDA2OTMsIDB4MDAwNSwgMHgwMTAwLCAweDAxMDAsCgkJIkhhZ2l3YXJhIiwKCQkiRmxhc2hnYXRlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9CVUxLLCBOVUxMLCAwICksIAoKLyogUmVwb3J0ZWQgYnkgRGF2aWQgSGFtaWx0b24gPG5pZnRpbXVzbWF4aW11c0BseWNvcy5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwNjliLCAweDMwMDQsIDB4MDAwMSwgMHgwMDAxLAoJCSJUaG9tc29uIE11bHRpbWVkaWEgSW5jLiIsCgkJIlJDQSBSRDEwODAgTVAzIFBsYXllciIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0NBUEFDSVRZICksCgpVTlVTVUFMX0RFViggIDB4MDc4MSwgMHgwMDAxLCAweDAyMDAsIDB4MDIwMCwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUi0wNWEiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0NCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfVVNCQVQKVU5VU1VBTF9ERVYoICAweDA3ODEsIDB4MDAwNSwgMHgwMDA1LCAweDAwMDUsCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUi0wNWIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX1VTQkFULCBpbml0X3VzYmF0LAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKI2VuZGlmCgpVTlVTVUFMX0RFViggIDB4MDc4MSwgMHgwMTAwLCAweDAxMDAsIDB4MDEwMCwKCQkiU2FuZGlzayIsCgkJIkltYWdlTWF0ZSBTRERSLTEyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9DQiwgTlVMTCwKCQlVU19GTF9TSU5HTEVfTFVOICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFIwOQpVTlVTVUFMX0RFViggIDB4MDc4MSwgMHgwMjAwLCAweDAwMDAsIDB4OTk5OSwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUi0wOSIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfRVVTQl9TRERSMDksIHVzYl9zdG9yX3NkZHIwOV9pbml0LAoJCTApLAojZW5kaWYKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfRlJFRUNPTQpVTlVTVUFMX0RFViggIDB4MDdhYiwgMHhmYzAxLCAweDAwMDAsIDB4OTk5OSwKCQkiRnJlZWNvbSIsCgkJIlVTQi1JREUiLAoJCVVTX1NDX1FJQywgVVNfUFJfRlJFRUNPTSwgZnJlZWNvbV9pbml0LCAwKSwKI2VuZGlmCgovKiBSZXBvcnRlZCBieSBFZXJvIFZvbG90aW5lbiA8ZWVyb0BwaW5nLXZpaW5pLm9yZz4gKi8KVU5VU1VBTF9ERVYoICAweDA3YWIsIDB4ZmNjZCwgMHgwMDAwLCAweDk5OTksCgkJIkZyZWVjb20gVGVjaG5vbG9naWVzIiwKCQkiRkhELUNsYXNzaWMiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSksCgpVTlVTVUFMX0RFViggIDB4MDdhZiwgMHgwMDA0LCAweDAxMDAsIDB4MDEzMywgCgkJIk1pY3JvdGVjaCIsCgkJIlVTQi1TQ1NJLURCMjUiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIHVzYl9zdG9yX2V1c2NzaV9pbml0LAoJCVVTX0ZMX1NDTV9NVUxUX1RBUkcgKSwgCgpVTlVTVUFMX0RFViggIDB4MDdhZiwgMHgwMDA1LCAweDAxMDAsIDB4MDEwMCwgCgkJIk1pY3JvdGVjaCIsCgkJIlVTQi1TQ1NJLUhENTAiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCB1c2Jfc3Rvcl9ldXNjc2lfaW5pdCwKCQlVU19GTF9TQ01fTVVMVF9UQVJHICksIAoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EUENNClVOVVNVQUxfREVWKCAgMHgwN2FmLCAweDAwMDYsIDB4MDEwMCwgMHgwMTAwLAoJCSJNaWNyb3RlY2giLAoJCSJDYW1lcmFNYXRlIChEUENNX1VTQikiLAogCQlVU19TQ19TQ1NJLCBVU19QUl9EUENNX1VTQiwgTlVMTCwgMCApLAojZW5kaWYKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfQUxBVURBClVOVVNVQUxfREVWKCAgMHgwN2I0LCAweDAxMGEsIDB4MDEwMiwgMHgwMTAyLAoJCSJPbHltcHVzIiwKCQkiTUFVU0ItMTAgKEFsYXVkYSkiLAogCQlVU19TQ19TQ1NJLCBVU19QUl9BTEFVREEsIGluaXRfYWxhdWRhLCAwICksCiNlbmRpZgoKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9EQVRBRkFCClVOVVNVQUxfREVWKCAgMHgwN2M0LCAweGEwMDAsIDB4MDAwMCwgMHgwMDE1LAoJCSJEYXRhZmFiIiwKCQkiTURDRkUtQiBVU0IgQ0YgUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKCi8qCiAqIFRoZSBmb2xsb3dpbmcgRGF0YWZhYi1iYXNlZCBkZXZpY2VzIG1heSBvciBtYXkgbm90IHdvcmsKICogdXNpbmcgdGhlIGN1cnJlbnQgZHJpdmVyLi4udGhlIDB4ZmZmZiBpcyBhcmJpdHJhcnkgc2luY2UgSQogKiBkb24ndCBrbm93IHdoYXQgZGV2aWNlIHZlcnNpb25zIGV4aXN0IGZvciB0aGVzZSBndXlzLgogKgogKiBUaGUgMHhhMDAzIGFuZCAweGEwMDQgZGV2aWNlcyBpbiBwYXJ0aWN1bGFyIEknbSBjdXJpb3VzIGFib3V0LgogKiBJJ20gdG9sZCB0aGV5IGV4aXN0IGJ1dCBzbyBmYXIgbm9ib2R5IGhhcyBjb21lIGZvcndhcmQgdG8gc2F5IHRoYXQKICogdGhleSB3b3JrIHdpdGggdGhpcyBkcml2ZXIuICBHaXZlbiB0aGUgc3VjY2VzcyB3ZSd2ZSBoYWQgZ2V0dGluZwogKiBvdGhlciBEYXRhZmFiLWJhc2VkIGNhcmRzIG9wZXJhdGlvbmFsIHdpdGggdGhpcyBkcml2ZXIsIEkndmUgZGVjaWRlZAogKiB0byBsZWF2ZSB0aGVzZSB0d28gZGV2aWNlcyBpbiB0aGUgbGlzdC4KICovClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwMSwgMHgwMDAwLCAweGZmZmYsCgkJIlNJSUcvRGF0YWZhYiIsCgkJIlNJSUcvRGF0YWZhYiBNZW1vcnkgU3RpY2srQ0YgUmVhZGVyL1dyaXRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCgovKiBSZXBvcnRlZCBieSBKb3NlZiBSZWlzaW5nZXIgPGpvc2VmLnJlaXNpbmdlckBuZXRjb2xvZ25lLmRlPiAqLwpVTlVTVUFMX0RFViggMHgwN2M0LCAweGEwMDIsIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiL1Vua25vd24iLAoJCSJNRDIvTUQzIERpc2sgZW5jbG9zdXJlIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCVVTX0ZMX1NJTkdMRV9MVU4gKSwKClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwMywgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIvVW5rbm93biIsCgkJIkRhdGFmYWItYmFzZWQgUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwNCwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIvVW5rbm93biIsCgkJIkRhdGFmYWItYmFzZWQgUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwNSwgMHgwMDAwLCAweGZmZmYsCgkJIlBOWS9EYXRhZmFiIiwKCQkiUE5ZL0RhdGFmYWIgQ0YrU00gUmVhZGVyIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9EQVRBRkFCLCBOVUxMLAoJCTAgKSwKClVOVVNVQUxfREVWKCAweDA3YzQsIDB4YTAwNiwgMHgwMDAwLCAweGZmZmYsCgkJIlNpbXBsZSBUZWNoL0RhdGFmYWIiLAoJCSJTaW1wbGUgVGVjaC9EYXRhZmFiIENGK1NNIFJlYWRlciIsCgkJVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCQkwICksCiNlbmRpZgoJCQojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NQovKiBDb250cmlidXRlZCBieSBQZXRlciBXYWVjaHRsZXIgKi8KVU5VU1VBTF9ERVYoIDB4MDdjNCwgMHhhMTAzLCAweDAwMDAsIDB4OTk5OSwKCQkiRGF0YWZhYiIsCgkJIk1EU00tQiByZWFkZXIiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX1NERFI1NSwgTlVMTCwKCQlVU19GTF9GSVhfSU5RVUlSWSApLAojZW5kaWYKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQgovKiBTdWJtaXR0ZWQgYnkgT2xhZiBIZXJpbmcgPG9saEBzdXNlLmRlPiAqLwpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhMTA5LCAweDAwMDAsIDB4ZmZmZiwKCQkiRGF0YWZhYiBTeXN0ZW1zLCBJbmMuIiwKCQkiVVNCIHRvIENGICsgU00gQ29tYm8gKExDMSkiLAoJCVVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCgkJMCApLAojZW5kaWYKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9TRERSNTUKLyogU00gcGFydCAtIGFlYiA8QW5kcmllcy5Ccm91d2VyQGN3aS5ubD4gKi8KVU5VU1VBTF9ERVYoICAweDA3YzQsIDB4YTEwOSwgMHgwMDAwLCAweGZmZmYsCgkJIkRhdGFmYWIgU3lzdGVtcywgSW5jLiIsCgkJIlVTQiB0byBDRiArIFNNIENvbWJvIChMQzEpIiwKCQlVU19TQ19TQ1NJLCBVU19QUl9TRERSNTUsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiApLAojZW5kaWYKCiNpZmRlZiBDT05GSUdfVVNCX1NUT1JBR0VfREFUQUZBQgovKiBSZXBvcnRlZCBieSBGZWxpeCBNb2VsbGVyIDxmZWxpeEBkZXJrbGVja3MuZGU+CiAqIGluIEdlcm1hbnkgdGhpcyBpcyBzb2xkIGJ5IEhhbWEgd2l0aCB0aGUgcHJvZHVjdG51bWJlciA0Njk1MgogKiBhcyAiRHVhbFNsb3QgQ29tcGFjdEZsYXNoKFRNKSAmIE1TdGljayBEcml2ZSBVU0IiCiAqLwpVTlVTVUFMX0RFViggIDB4MDdjNCwgMHhhMTBiLCAweDAwMDAsIDB4ZmZmZiwKICAgICAgICAgICAgICAgICJEYXRhRmFiIFN5c3RlbXMgSW5jLiIsCiAgICAgICAgICAgICAgICAiVVNCIENGK01TIiwKICAgICAgICAgICAgICAgIFVTX1NDX1NDU0ksIFVTX1BSX0RBVEFGQUIsIE5VTEwsCiAgICAgICAgICAgICAgICAwICksCgojZW5kaWYKCi8qIERhdGFmYWIgS0VDRi1VU0IgLyBTYWdhdGVrIERDUy1DRiAvIFNpbXBsZXRlY2ggRmxhc2hsaW5rIFVDRi0xMDAKICogT25seSByZXZpc2lvbiAxLjEzIHRlc3RlZCAoc2FtZSBmb3IgYWxsIG9mIHRoZSBhYm92ZSBkZXZpY2VzLAogKiBiYXNlZCBvbiB0aGUgRGF0YWZhYiBERi1VRy0wNyBjaGlwKS4gIE5lZWRlZCBmb3IgVVNfRkxfRklYX0lOUVVJUlkuCiAqIFN1Ym1pdHRlZCBieSBNYXJlayBNaWNoYWxraWV3aWN6IDxtYXJla21AYW1lbGVrLmdkYS5wbD4uCiAqIFNlZSBhbHNvIGh0dHA6Ly9tYXJ0aW4ud2lsY2suYmVpLnQtb25saW5lLmRlLyNrZWNmIC4KICovClVOVVNVQUxfREVWKCAgMHgwN2M0LCAweGE0MDAsIDB4MDAwMCwgMHhmZmZmLAoJCSJEYXRhZmFiIiwKCQkiS0VDRi1VU0IiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBDYXNpbyBRViAyeDAwLzN4MDAvNDAwMC84MDAwIGRpZ2l0YWwgc3RpbGwgY2FtZXJhcyBhcmUgbm90IGNvbmZvcm1hbnQKICogdG8gdGhlIFVTQiBzdG9yYWdlIHNwZWNpZmljYXRpb24gaW4gdHdvIHdheXM6CiAqIC0gVGhleSB0ZWxsIHVzIHRoZXkgYXJlIHVzaW5nIHRyYW5zcG9ydCBwcm90b2NvbCBDQkkuIEluIHJlYWxpdHkgdGhleQogKiAgIGFyZSB1c2luZyB0cmFuc3BvcnQgcHJvdG9jb2wgQ0IuCiAqIC0gVGhleSBkb24ndCBsaWtlIHRoZSBJTlFVSVJZIGNvbW1hbmQuIFNvIHdlIG11c3QgaGFuZGxlIHRoaXMgY29tbWFuZAogKiAgIG9mIHRoZSBTQ1NJIGxheWVyIG91cnNlbHZlcy4KICogLSBTb21lIGNhbWVyYXMgd2l0aCBpZFByb2R1Y3Q9MHgxMDAxIGFuZCBiY2REZXZpY2U9MHgxMDAwIGhhdmUKICogICBiSW50ZXJmYWNlUHJvdG9jb2w9MHgwMCAoVVNfUFJfQ0JJKSB3aGlsZSBvdGhlcnMgaGF2ZSAweDAxIChVU19QUl9DQikuCiAqICAgU28gZG9uJ3QgcmVtb3ZlIHRoZSBVU19QUl9DQiBvdmVycmlkZSEKICogLSBDYW1lcmFzIHdpdGggYmNkRGV2aWNlPTB4OTAwOSByZXF1aXJlIHRoZSBVU19TQ184MDcwIG92ZXJyaWRlLgogKi8KVU5VU1VBTF9ERVYoIDB4MDdjZiwgMHgxMDAxLCAweDEwMDAsIDB4OTk5OSwKCQkiQ2FzaW8iLAoJCSJRViBEaWdpdGFsQ2FtZXJhIiwKCQlVU19TQ184MDcwLCBVU19QUl9DQiwgTlVMTCwKCQlVU19GTF9ORUVEX09WRVJSSURFIHwgVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBIYXJ0bXV0IFdhaGwgPGh3YWhsQGh3YWhsLmRlPiovClVOVVNVQUxfREVWKCAweDA4MzksIDB4MDAwYSwgMHgwMDAxLCAweDAwMDEsCgkJIlNhbXN1bmciLAoJCSJEaWdpbWF4IDQxMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkpLAoKLyogRW50cnkgYW5kIHN1cHBvcnRpbmcgcGF0Y2ggYnkgVGhlb2RvcmUgS2lsZ29yZSA8a2lsZ290YUBhdWJ1cm4uZWR1Pi4KICogRmxhZyB3aWxsIHN1cHBvcnQgQnVsayBkZXZpY2VzIHdoaWNoIHVzZSBhIHN0YW5kYXJkcy12aW9sYXRpbmcgMzItYnl0ZQogKiBDb21tYW5kIEJsb2NrIFdyYXBwZXIuIEhlcmUsIHRoZSAiREMyTUVHQSIgY2FtZXJhcyAoc2V2ZXJhbCBicmFuZHMpIHdpdGgKICogR3JhbmR0ZWNoIEdUODkyeCBjaGlwLCB3aGljaCByZXF1ZXN0ICJQcm9wcmlldGFyeSBTQ1NJIEJ1bGsiIHN1cHBvcnQuCiAqLwoKVU5VU1VBTF9ERVYoICAweDA4NGQsIDB4MDAxMSwgMHgwMTEwLCAweDAxMTAsCgkJIkdyYW5kdGVjaCIsCgkJIkRDMk1FR0EiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0JVTEszMiksCgovKiBTdWJtaXR0ZWQgYnkgSmFuIERlIEx1eWNrIDxsa21sQGtjb3JlLm9yZz4gKi8KVU5VU1VBTF9ERVYoICAweDA4YmQsIDB4MTEwMCwgMHgwMDAwLCAweDAwMDAsCgkJIkNJVElaRU4iLAoJCSJYMURFLVVTQiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiksCgovKiBFbnRyeSBuZWVkZWQgZm9yIGZsYWdzLiBNb3Jlb3ZlciwgYWxsIGRldmljZXMgd2l0aCB0aGlzIElEIHVzZQogKiBidWxrLW9ubHkgdHJhbnNwb3J0LCBidXQgX3NvbWVfIGZhbHNlbHkgcmVwb3J0IENvbnRyb2wvQnVsayBpbnN0ZWFkLgogKiBPbmUgZXhhbXBsZSBpcyAiVHJ1bXBpb24gRGlnaXRhbCBSZXNlYXJjaCBNWU1QMyIuCiAqIFN1Ym1pdHRlZCBieSBCam9lcm4gQnJpbGwgPGJyaWxsKGF0KWZzLm1hdGgudW5pLWZyYW5rZnVydC5kZT4KICovClVOVVNVQUxfREVWKCAgMHgwOTBhLCAweDEwMDEsIDB4MDEwMCwgMHgwMTAwLAoJCSJUcnVtcGlvbiIsCgkJInQzMzUyMCBVU0IgRmxhc2ggQ2FyZCBDb250cm9sbGVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0JVTEssIE5VTEwsCgkJVVNfRkxfTkVFRF9PVkVSUklERSApLAoKLyogUmVwb3J0ZWQgYnkgRmlsaXBwbyBCYXJkZWxsaSA8ZmlsaWJhcmRAbGliZXJvLml0PgogKiBUaGUgZGV2aWNlIHJlcG9ydHMgYSBzdWJjbGFzcyBvZiBSQkMsIHdoaWNoIGlzIHdyb25nLgogKi8KVU5VU1VBTF9ERVYoICAweDA5MGEsIDB4MTA1MCwgMHgwMTAwLCAweDAxMDAsCgkJIlRydW1waW9uIE1pY3JvZWxlY3Ryb25pY3MsIEluYy4iLAoJCSIzMzUyMCBVU0IgRGlnaXRhbCBWb2ljZSBSZWNvcmRlciIsCgkJVVNfU0NfVUZJLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJMCksCgovKiBUcnVtcGlvbiBNaWNyb2VsZWN0cm9uaWNzIE1QMyBwbGF5ZXIgKGZlbGlwZV9hbGZhcm9AbGludXhtYWlsLm9yZykgKi8KVU5VU1VBTF9ERVYoIDB4MDkwYSwgMHgxMjAwLCAweDAwMDAsIDB4OTk5OSwKCQkiVHJ1bXBpb24iLAoJCSJNUDMgcGxheWVyIiwKCQlVU19TQ19SQkMsIFVTX1BSX0JVTEssIE5VTEwsCgkJMCApLAoKLyogYWViICovClVOVVNVQUxfREVWKCAweDA5MGMsIDB4MTEzMiwgMHgwMDAwLCAweGZmZmYsCgkJIkZlaXlhIiwKCQkiNS1pbi0xIENhcmQgUmVhZGVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9GSVhfQ0FQQUNJVFkgKSwKCi8qIFRoaXMgUGVudGF4IHN0aWxsIGNhbWVyYSBpcyBub3QgY29uZm9ybWFudAogKiB0byB0aGUgVVNCIHN0b3JhZ2Ugc3BlY2lmaWNhdGlvbjogLQogKiAtIEl0IGRvZXMgbm90IGxpa2UgdGhlIElOUVVJUlkgY29tbWFuZC4gU28gd2UgbXVzdCBoYW5kbGUgdGhpcyBjb21tYW5kCiAqICAgb2YgdGhlIFNDU0kgbGF5ZXIgb3Vyc2VsdmVzLgogKiBUZXN0ZWQgb24gUmV2LiAxMC4wMCAoMHgxMDAwKQogKiBTdWJtaXR0ZWQgYnkgSmFtZXMgQ291cnRpZXItRHV0dG9uIDxKYW1lc0BzdXBlcmJ1Zy5kZW1vbi5jby51az4KICovClVOVVNVQUxfREVWKCAweDBhMTcsIDB4MDAwNCwgMHgxMDAwLCAweDEwMDAsCiAgICAgICAgICAgICAgICAiUGVudGF4IiwKICAgICAgICAgICAgICAgICJPcHRpbyAyLzMvNDAwIiwKICAgICAgICAgICAgICAgIFVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAogICAgICAgICAgICAgICAgVVNfRkxfRklYX0lOUVVJUlkgKSwKCgovKiBTdWJtaXR0ZWQgYnkgUGVyIFdpbmt2aXN0IDxwZXIud2lua3Zpc3RAdWsuY29tPiAqLwpVTlVTVUFMX0RFViggMHgwYTE3LCAweDAwNiwgMHgwMDAwLCAweGZmZmYsCiAgICAgICAgICAgICAgICAiUGVudGF4IiwKICAgICAgICAgICAgICAgICJPcHRpbyBTL1M0IiwKICAgICAgICAgICAgICAgIFVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAogICAgICAgICAgICAgICAgVVNfRkxfRklYX0lOUVVJUlkgKSwKCQkKI2lmZGVmIENPTkZJR19VU0JfU1RPUkFHRV9JU0QyMDAKVU5VU1VBTF9ERVYoICAweDBiZjYsIDB4YTAwMSwgMHgwMTAwLCAweDAxMTAsCgkJIkFUSSIsCgkJIlVTQiBDYWJsZSAyMDUiLAoJCVVTX1NDX0lTRDIwMCwgVVNfUFJfQlVMSywgaXNkMjAwX0luaXRpYWxpemF0aW9uLAoJCTAgKSwKI2VuZGlmCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX0RBVEFGQUIKVU5VU1VBTF9ERVYoIDB4MGMwYiwgMHhhMTA5LCAweDAwMDAsIDB4ZmZmZiwKCSAgICAgICAiQWNvbWRhdGEiLAoJICAgICAgICJDRiIsCgkgICAgICAgVVNfU0NfU0NTSSwgVVNfUFJfREFUQUZBQiwgTlVMTCwKCSAgICAgICBVU19GTF9TSU5HTEVfTFVOICksCiNlbmRpZgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NQpVTlVTVUFMX0RFViggMHgwYzBiLCAweGExMDksIDB4MDAwMCwgMHhmZmZmLAoJICAgICAgICJBY29tZGF0YSIsCgkgICAgICAgIlNNIiwKCSAgICAgICBVU19TQ19TQ1NJLCBVU19QUl9TRERSNTUsIE5VTEwsCgkgICAgICAgVVNfRkxfU0lOR0xFX0xVTiApLAojZW5kaWYKCi8qIFN1Ym1pdHRlZCBieTogTmljayBTaWxsaWsgPG4uc2lsbGlrQHRlbXBsZS5lZHU+CiAqIE5lZWRlZCBmb3IgT25lVG91Y2ggZXh0ZW5zaW9uIHRvIHVzYi1zdG9yYWdlCiAqCiAqLwojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX09ORVRPVUNICglVTlVTVUFMX0RFViggIDB4MGQ0OSwgMHg3MDAwLCAweDAwMDAsIDB4OTk5OSwKCQkJIk1heHRvciIsCgkJCSJPbmVUb3VjaCBFeHRlcm5hbCBIYXJkZHJpdmUiLAoJCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgb25ldG91Y2hfY29ubmVjdF9pbnB1dCwKCQkJMCksCglVTlVTVUFMX0RFViggIDB4MGQ0OSwgMHg3MDEwLCAweDAwMDAsIDB4OTk5OSwKCQkJIk1heHRvciIsCgkJCSJPbmVUb3VjaCBFeHRlcm5hbCBIYXJkZHJpdmUiLAoJCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgb25ldG91Y2hfY29ubmVjdF9pbnB1dCwKCQkJMCksCiNlbmRpZgoKLyogU3VibWl0dGVkIGJ5IEpvcmlzIFN0cnV5dmUgPGpvcmlzQHN0cnV5dmUuYmU+ICovClVOVVNVQUxfREVWKCAweDBkOTYsIDB4NDEwYSwgMHgwMDAxLCAweGZmZmYsCgkJIk1lZGlvbiIsCgkJIk1EIDc0MjUiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZKSwKCi8qCiAqIEVudHJ5IGZvciBKZW5vcHRpayBKRCA1MjAwejMKICoKICogZW1haWw6IGNhci5idXNzZUBnbXguZGUKICovClVOVVNVQUxfREVWKCAgMHgwZDk2LCAweDUyMDAsIDB4MDAwMSwgMHgwMjAwLAoJCSJKZW5vcHRpayIsCgkJIkpEIDUyMDAgejMiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLCBVU19GTF9GSVhfSU5RVUlSWSksCgovKiBSZXBvcnRlZCBieSBMdWJvbWlyIEJsYWhhIDx0cml0b2xAdHJpbG9naWMuY3o+CiAqIEkgX1JFQUxMWV8gZG9uJ3Qga25vdyB3aGF0IDNyZCwgNHRoIG51bWJlciBhbmQgYWxsIGRlZmluZXMgbWVhbiwgYnV0IHRoaXMKICogd29ya3MgZm9yIG1lLiBDYW4gYW55Ym9keSBjb3JyZWN0IHRoZXNlIHZhbHVlcz8gKEkgYWJsZSB0byB0ZXN0IGNvcnJlY3RlZAogKiB2ZXJzaW9uLikKICovClVOVVNVQUxfREVWKCAweDBkZDgsIDB4MTA2MCwgMHgwMDAwLCAweGZmZmYsCgkJIk5ldGFjIiwKCQkiVVNCLUNGLUNhcmQiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9JTlFVSVJZICksCgovKiBQYXRjaCBieSBTdGVwaGFuIFdhbHRlciA8c3RlcGhhbi53YWx0ZXJAZXBmbC5jaD4KICogSSBkb24ndCBrbm93IHdoeSwgYnV0IGl0IHdvcmtzLi4uICovClVOVVNVQUxfREVWKCAweDBkZGEsIDB4MDAwMSwgMHgwMDEyLCAweDAwMTIsCgkJIldJTldBUkQiLAoJCSJNdXNpYyBEaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgSWFuIE1jQ29ubmVsbCA8aWFuIGF0IGVtaXQuZGVtb24uY28udWs+ICovClVOVVNVQUxfREVWKCAgMHgwZGRhLCAweDAzMDEsIDB4MDAxMiwgMHgwMDEyLAoJCSJQTlBfTVAzIiwKCQkiUE5QX01QMyBQTEFZRVIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0lHTk9SRV9SRVNJRFVFICksCgovKiBSZXBvcnRlZCBieSBKaW0gTWNDbG9za2V5IDxtY2Nsb3NrQHVjc2MuZWR1PiAqLwpVTlVTVUFMX0RFViggMHgwZTIxLCAweDA1MjAsIDB4MDEwMCwgMHgwMTAwLAoJCSJDb3dvbiBTeXN0ZW1zIiwKCQkiaUFVRElPIE01IiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0JVTEssIE5VTEwsCgkJMCApLAoKLyogU3VibWl0dGVkIGJ5IEFudG9pbmUgTWFpcmVzc2UgPGFudG9pbmUubWFpcmVzc2VAZnJlZS5mcj4gKi8KVU5VU1VBTF9ERVYoIDB4MGVkMSwgMHg2NjYwLCAweDAxMDAsIDB4MDMwMCwKCQkiVVNCIiwKCQkiU29saWQgc3RhdGUgZGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfRklYX0lOUVVJUlkgKSwKCi8qIFN1Ym1pdHRlZCBieSBEYW5pZWwgRHJha2UgPGRzZEBnZW50b28ub3JnPgogKiBSZXBvcnRlZCBieSBkYXl1bCBvbiB0aGUgR2VudG9vIEZvcnVtcyAqLwpVTlVTVUFMX0RFViggIDB4MGVhMCwgMHgyMTY4LCAweDAxMTAsIDB4MDExMCwKCQkiT3VycyBUZWNobm9sb2d5IiwKCQkiRmxhc2ggRGlzayIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfSUdOT1JFX1JFU0lEVUUgKSwKCi8qIFJlcG9ydGVkIGJ5IFJhc3Rpc2xhdiBTdGFuaWsgPHJzX2tlcm5lbEB5YWhvby5jb20+ICovClVOVVNVQUxfREVWKCAgMHgwZWEwLCAweDY4MjgsIDB4MDExMCwgMHgwMTEwLAoJCSJVU0IiLAoJCSJGbGFzaCBEaXNrIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgTWljaGFlbCBTdGF0dG1hbm4gPG1pY2hhZWxAc3RhdHRtYW5uLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweDBmY2UsIDB4ZDAwOCwgMHgwMDAwLCAweDAwMDAsCgkJIlNvbnkgRXJpY3Nzb24iLAoJCSJWODAwLVZvZGFmb25lIDgwMiIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfTk9fV1BfREVURUNUICksCgovKiBSZXBvcnRlZCBieSBLZXZpbiBDZXJuZWtlZSA8a3BjLXVzYmRldkBnZWxhdG8udWl1Yy5lZHU+CiAqIFRlc3RlZCBvbiBoYXJkd2FyZSB2ZXJzaW9uIDEuMTAuCiAqIEVudHJ5IGlzIG5lZWRlZCBvbmx5IGZvciB0aGUgaW5pdGlhbGl6ZXIgZnVuY3Rpb24gb3ZlcnJpZGUuCiAqLwpVTlVTVUFMX0RFViggIDB4MTAxOSwgMHgwYzU1LCAweDAwMDAsIDB4OTk5OSwKCQkiRGVza25vdGUiLAoJCSJVQ1ItNjFTMkIiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCB1c2Jfc3Rvcl91Y3I2MXMyYl9pbml0LAoJCTAgKSwKCi8qIFJlcG9ydGVkIGJ5IFZpbGl1cyBCaWxpbmtldmljaXVzIDx2aWxpc2FzIEFUIHh4eCBET1QgbHQpICovClVOVVNVQUxfREVWKCAgMHgxMzJiLCAweDAwMGIsIDB4MDAwMSwgMHgwMDAxLAoJCSJNaW5vbHRhIiwKCQkiRGltYWdlIFoxMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJMCApLAoKLyogUmVwb3J0ZWQgYnkgS290cmxhIFZpdGV6c2xhdiA8a290cmxhQGNlYi5jej4gKi8KVU5VU1VBTF9ERVYoICAweDEzNzAsIDB4NjgyOCwgMHgwMTEwLCAweDAxMTAsCgkJIlNXSVNTQklUIiwKCQkiQmxhY2sgU2lsdmVyIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwKCQlVU19GTF9JR05PUkVfUkVTSURVRSApLAoKLyogUmVwb3J0ZWQgYnkgUmFkb3ZhbiBHYXJhYmlrIDxnYXJhYmlrQGthc3Npb3BlaWEuanVscy5zYXZiYS5zaz4gKi8KVU5VU1VBTF9ERVYoICAweDI3MzUsIDB4MTAwYiwgMHgwMDAwLCAweDk5OTksCgkJIk1QSU8iLAoJCSJIUzIwMCIsCgkJVVNfU0NfREVWSUNFLCBVU19QUl9ERVZJQ0UsIE5VTEwsCgkJVVNfRkxfR09fU0xPVyApLAoKLyoKICogRGF2aWQgSORyZGVtYW4gPGRhdmlkQDJnZW4uY29tPgogKiBUaGUga2V5IG1ha2VzIHRoZSBTQ1NJIHN0YWNrIHByaW50IGNvbmZ1c2luZyAoYnV0IGhhcm1sZXNzKSBtZXNzYWdlcwogKi8KVU5VU1VBTF9ERVYoICAweDQxNDYsIDB4YmEwMSwgMHgwMTAwLCAweDAxMDAsCgkJIklvbWVnYSIsCgkJIk1pY3JvIE1pbmkgMUdCIiwKCQlVU19TQ19ERVZJQ0UsIFVTX1BSX0RFVklDRSwgTlVMTCwgVVNfRkxfTk9UX0xPQ0tBQkxFICksCgojaWZkZWYgQ09ORklHX1VTQl9TVE9SQUdFX1NERFI1NQpVTlVTVUFMX0RFViggIDB4NTVhYSwgMHhhMTAzLCAweDAwMDAsIDB4OTk5OSwgCgkJIlNhbmRpc2siLAoJCSJJbWFnZU1hdGUgU0REUjU1IiwKCQlVU19TQ19TQ1NJLCBVU19QUl9TRERSNTUsIE5VTEwsCgkJVVNfRkxfU0lOR0xFX0xVTiksCiNlbmRpZgoKLyogUmVwb3J0ZWQgYnkgQW5kcmV3IFNpbW1vbnMgPGFuZHJldy5zaW1tb25zQGdtYWlsLmNvbT4gKi8KVU5VU1VBTF9ERVYoICAweGVkMDYsIDB4NDUwMCwgMHgwMDAxLCAweDAwMDEsCgkJIkRhdGFTdG9yIiwKCQkiVVNCNDUwMCBGVzEuMDQiLAoJCVVTX1NDX0RFVklDRSwgVVNfUFJfREVWSUNFLCBOVUxMLAoJCVVTX0ZMX0ZJWF9DQVBBQ0lUWSksCgovKiBDb250cm9sL0J1bGsgdHJhbnNwb3J0IGZvciBhbGwgU3ViQ2xhc3MgdmFsdWVzICovClVTVUFMX0RFVihVU19TQ19SQkMsIFVTX1BSX0NCLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDXzgwMjAsIFVTX1BSX0NCLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1FJQywgVVNfUFJfQ0IsIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfVUZJLCBVU19QUl9DQiwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDcwLCBVU19QUl9DQiwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19TQ1NJLCBVU19QUl9DQiwgVVNCX1VTX1RZUEVfU1RPUiksCgovKiBDb250cm9sL0J1bGsvSW50ZXJydXB0IHRyYW5zcG9ydCBmb3IgYWxsIFN1YkNsYXNzIHZhbHVlcyAqLwpVU1VBTF9ERVYoVVNfU0NfUkJDLCBVU19QUl9DQkksIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfODAyMCwgVVNfUFJfQ0JJLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1FJQywgVVNfUFJfQ0JJLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1VGSSwgVVNfUFJfQ0JJLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDXzgwNzAsIFVTX1BSX0NCSSwgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ19TQ1NJLCBVU19QUl9DQkksIFVTQl9VU19UWVBFX1NUT1IpLAoKLyogQnVsay1vbmx5IHRyYW5zcG9ydCBmb3IgYWxsIFN1YkNsYXNzIHZhbHVlcyAqLwpVU1VBTF9ERVYoVVNfU0NfUkJDLCBVU19QUl9CVUxLLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDXzgwMjAsIFVTX1BSX0JVTEssIFVTQl9VU19UWVBFX1NUT1IpLApVU1VBTF9ERVYoVVNfU0NfUUlDLCBVU19QUl9CVUxLLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1VGSSwgVVNfUFJfQlVMSywgVVNCX1VTX1RZUEVfU1RPUiksClVTVUFMX0RFVihVU19TQ184MDcwLCBVU19QUl9CVUxLLCBVU0JfVVNfVFlQRV9TVE9SKSwKVVNVQUxfREVWKFVTX1NDX1NDU0ksIFVTX1BSX0JVTEssIDApLAo=