LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IKkgMTk5Ny0yMDA3IEFsYWNyaXRlY2gsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZAogKgogKiAkSWQ6IHN4Z2h3LmgsdiAxLjIgMjAwOC8wNy8yNCAxNzoyNDoyMyBjaHJpcyBFeHAgJAogKgogKiBzeGdody5oOgogKgogKiBUaGlzIGZpbGUgY29udGFpbnMgc3RydWN0dXJlcyBhbmQgZGVmaW5pdGlvbnMgZm9yIHRoZQogKiBBbGFjcml0ZWNoIFNhaGFyYSBoYXJkd2FyZQogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgovKiBQQ0kgQ29uZmlndXJhdGlvbiBzcGFjZSAqLwovKiAgUENJIFZlbmRvciBJRCAqLwojZGVmaW5lIFNYR19WRU5ET1JfSUQJCQkweDEzOUEJLyogQWxhY3JpdGVjaCdzIFZlbmRvciBJRCAqLwoKLyogIFBDSSBEZXZpY2UgSUQgKi8KI2RlZmluZSBTWEdfREVWSUNFX0lECQkJMHgwMDA5CS8qIFNhaGFyYSBEZXZpY2UgSUQgKi8KCgovKiBUeXBlIG9mIEFTSUMgaW4gdXNlICovCmVudW0gYXNpY190eXBlIHsKCVNBSEFSQV9SRVZfQSwKCVNBSEFSQV9SRVZfQgp9OwoKLyogVHlwZSBvZiBYY3ZyIGluIGZpYmVyIGNhcmQgKi8KZW51bSB4Y3ZyX3R5cGUgewoJWENWUl9VTktOT1dOLAoJWENWUl9OT05FLAoJWENWUl9TUiwKCVhDVlJfTFIsCglYQ1ZSX0xSTSwKCVhDVlJfQ1IKfTsKLyoKICogU3Vic3lzdGVtIElEcy4KICoKICogVGhlIHN1YnN5c3RlbSBJRCB2YWx1ZSBpcyBicm9rZW4gaW50byBiaXQgZmllbGRzIGFzIGZvbGxvd3M6CiAqCQlCaXRzIFsxNToxMl0gLSBGdW5jdGlvbgogKgkJQml0cyBbMTE6OF0gIC0gT0VNIGFuZC9vciBvcGVyYXRpbmcgc3lzdGVtLgogKgkJQml0cyBbNzowXSAgIC0gQmFzZSBTSUQuCiAqLwoKLyogU1NJRCBmaWVsZCAoYml0KSBtYXNrcyAqLwojZGVmaW5lIFNTSURfQkFTRV9NQVNLCQkweDAwRkYJLyogQmFzZSBzdWJzeXN0ZW0gSUQgbWFzayAqLwojZGVmaW5lIFNTSURfT0VNX01BU0sJCTB4MEYwMAkvKiBTdWJzeXN0ZW0gT0VNIG1hc2sgKi8KI2RlZmluZSBTU0lEX0ZVTkNfTUFTSwkJMHhGMDAwCS8qIFN1YnN5c3RlbSBmdW5jdGlvbiBtYXNrICovCgovKiBCYXNlIFNTSUQncyAqLwovKiAxMDAwMjIgU2FoYXJhIHByb3RvdHlwZSAoWGVuUGFrKSBib2FyZCAqLwojZGVmaW5lIFNTSURfU0FIQVJBX1BST1RPCTB4MDAxOAojZGVmaW5lIFNTSURfU0FIQVJBX0ZJQkVSCTB4MDAxOQkvKiAxMDAwMjMgU2FoYXJhIDEtcG9ydCBmaWJlciBib2FyZCAqLwojZGVmaW5lIFNTSURfU0FIQVJBX0NPUFBFUgkweDAwMUEJLyogMTAwMDI0IFNhaGFyYSAxLXBvcnQgY29wcGVyIGJvYXJkICovCgovKiBVc2VmdWwgU1NJRCBtYWNyb3MgKi8KLyogaXNvbGF0ZSBiYXNlIFNTSUQgYml0cyAqLwojZGVmaW5lCVNTSURfQkFTRShzc2lkKQkJKChzc2lkKSAmIFNTSURfQkFTRV9NQVNLKQovKiBpc29sYXRlIFNTSUQgT0VNIGJpdHMgKi8KI2RlZmluZQlTU0lEX09FTShzc2lkKQkJKChzc2lkKSAmIFNTSURfT0VNX01BU0spCi8qIGlzb2xhdGUgU1NJRCBmdW5jdGlvbiBiaXRzICovCiNkZWZpbmUJU1NJRF9GVU5DKHNzaWQpCQkoKHNzaWQpICYgU1NJRF9GVU5DX01BU0spCgoKLyogSFcgUmVnaXN0ZXIgU3BhY2UgKi8KI2RlZmluZSBTWEdfSFdSRUdfTUVNU0laRQkweDQwMDAJCS8qIDE2ayAqLwoKI3ByYWdtYSBwYWNrKHB1c2gsIDEpCnN0cnVjdCBzeGdfaHdfcmVncyB7Cgl1MzIJUmVzZXQ7CQkvKiBXcml0ZSAweGRlYWQgdG8gaW52b2tlIHNvZnQgcmVzZXQgKi8KCXUzMglQYWQxOwkJLyogTm8gcmVnaXN0ZXIgZGVmaW5lZCBhdCBvZmZzZXQgNCAqLwoJdTMyCUludGVycnVwdE1hc2swOwkvKiBEZWFzc2VydCBsZWdhY3kgaW50ZXJydXB0IG9uIGZ1bmN0aW9uIDAgKi8KCXUzMglJbnRlcnJ1cHRNYXNrMTsJLyogRGVhc3NlcnQgbGVnYWN5IGludGVycnVwdCBvbiBmdW5jdGlvbiAxICovCgl1MzIJVWNvZGVEYXRhTG93OwkvKiBTdG9yZSBtaWNyb2NvZGUgaW5zdHJ1Y3Rpb24gYml0cyAzMS0wICovCgl1MzIJVWNvZGVEYXRhTWlkZGxlOwkvKiBTdG9yZSBtaWNyb2NvZGUgaW5zdHJ1Y3Rpb24gYml0cyA2My0zMiAqLwoJdTMyCVVjb2RlRGF0YUhpZ2g7CS8qIFN0b3JlIG1pY3JvY29kZSBpbnN0cnVjdGlvbiBiaXRzIDk1LTY0ICovCgl1MzIJVWNvZGVBZGRyOwkvKiBTdG9yZSBtaWNyb2NvZGUgYWRkcmVzcyAtIFNlZSBmbGFncyBiZWxvdyAqLwoJdTMyCVBhZFRvMHg4MFsyNF07CS8qIFBhZCB0byBYY3YgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgKi8KCXUzMglNYWNDb25maWcwOwkvKiAweDgwIC0gQVhHTUFDIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMCAqLwoJdTMyCU1hY0NvbmZpZzE7CS8qIDB4ODQgLSBBWEdNQUMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAxICovCgl1MzIJTWFjQ29uZmlnMjsJLyogMHg4OCAtIEFYR01BQyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDIgKi8KCXUzMglNYWNDb25maWczOwkvKiAweDhDIC0gQVhHTUFDIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMyAqLwoJdTMyCU1hY0FkZHJlc3NMb3c7CS8qIDB4OTAgLSBBWEdNQUMgTUFDIFN0YXRpb24gQWRkcmVzcyAtIG9jdGV0cyAxLTQgKi8KCXUzMglNYWNBZGRyZXNzSGlnaDsJLyogMHg5NCAtIEFYR01BQyBNQUMgU3RhdGlvbiBBZGRyZXNzIC0gb2N0ZXRzIDUtNiAqLwoJdTMyCU1hY1Jlc2VydmVkMVsyXTsJLyogMHg5OCAtIEFYR01BQyBSZXNlcnZlZCAqLwoJdTMyCU1hY01heEZyYW1lTGVuOwkvKiAweEEwIC0gQVhHTUFDIE1heGltdW0gRnJhbWUgTGVuZ3RoICovCgl1MzIJTWFjUmVzZXJ2ZWQyWzJdOwkvKiAweEE0IC0gQVhHTUFDIFJlc2VydmVkICovCgl1MzIJTWFjUmV2aXNpb247CS8qIDB4QUMgLSBBWEdNQUMgUmV2aXNpb24gTGV2ZWwgUmVnaXN0ZXIgKi8KCXUzMglNYWNSZXNlcnZlZDNbNF07CS8qIDB4QjAgLSBBWEdNQUMgUmVzZXJ2ZWQgKi8KCXUzMglNYWNBbWlpbUNtZDsJLyogMHhDMCAtIEFYR01BQyBBTUlJTSBDb21tYW5kIFJlZ2lzdGVyICovCgl1MzIJTWFjQW1paW1GaWVsZDsJLyogMHhDNCAtIEFYR01BQyBBTUlJTSBGaWVsZCBSZWdpc3RlciAqLwoJdTMyCU1hY0FtaWltQ29uZmlnOwkvKiAweEM4IC0gQVhHTUFDIEFNSUlNIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KCXUzMglNYWNBbWlpbUxpbms7CS8qIDB4Q0MgLSBBWEdNQUMgQU1JSU0gTGluayBGYWlsIFZlY3RvciBSZWdpc3RlciAqLwoJdTMyCU1hY0FtaWltSW5kaWNhdG9yOwkvKiAweEQwIC0gQVhHTUFDIEFNSUlNIEluZGljYXRvciBSZWdpc3RvciAqLwoJdTMyCVBhZFRvMHgxMDBbMTFdOwkJLyogMHhENCAtIDB4MTAwIC0gUGFkICovCgl1MzIJWG10Q29uZmlnOwkvKiAweDEwMCAtIFRyYW5zbWl0IENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KCXUzMglSY3ZDb25maWc7CS8qIDB4MTA0IC0gUmVjZWl2ZSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDEgKi8KCXUzMglMaW5rQWRkcmVzczBMb3c7CS8qIDB4MTA4IC0gTGluayBhZGRyZXNzIDAgKi8KCXUzMglMaW5rQWRkcmVzczBIaWdoOwkvKiAweDEwQyAtIExpbmsgYWRkcmVzcyAwICovCgl1MzIJTGlua0FkZHJlc3MxTG93OwkvKiAweDExMCAtIExpbmsgYWRkcmVzcyAxICovCgl1MzIJTGlua0FkZHJlc3MxSGlnaDsJLyogMHgxMTQgLSBMaW5rIGFkZHJlc3MgMSAqLwoJdTMyCUxpbmtBZGRyZXNzMkxvdzsJLyogMHgxMTggLSBMaW5rIGFkZHJlc3MgMiAqLwoJdTMyCUxpbmtBZGRyZXNzMkhpZ2g7CS8qIDB4MTFDIC0gTGluayBhZGRyZXNzIDIgKi8KCXUzMglMaW5rQWRkcmVzczNMb3c7CS8qIDB4MTIwIC0gTGluayBhZGRyZXNzIDMgKi8KCXUzMglMaW5rQWRkcmVzczNIaWdoOwkvKiAweDEyNCAtIExpbmsgYWRkcmVzcyAzICovCgl1MzIJVG9lcGxpdHpLZXlbMTBdOwkvKiAweDEyOCAtIDB4MTUwIC0gVG9lcGxpdHoga2V5ICovCgl1MzIJU29ja2V0S2V5WzEwXTsJCS8qIDB4MTUwIC0gMHgxNzggLSBTb2NrZXQgS2V5ICovCgl1MzIJTGlua1N0YXR1czsJCS8qIDB4MTc4IC0gTGluayBzdGF0dXMgKi8KCXUzMglDbGVhclN0YXRzOwkJLyogMHgxN0MgLSBDbGVhciBTdGF0cyAqLwoJdTMyCVhtdEVycm9yc0xvdzsJCS8qIDB4MTgwIC0gVHJhbnNtaXQgc3RhdHMgLSBlcnJvcnMgKi8KCXUzMglYbXRFcnJvcnNIaWdoOwkJLyogMHgxODQgLSBUcmFuc21pdCBzdGF0cyAtIGVycm9ycyAqLwoJdTMyCVhtdEZyYW1lc0xvdzsJLyogMHgxODggLSBUcmFuc21pdCBzdGF0cyAtIGZyYW1lIGNvdW50ICovCgl1MzIJWG10RnJhbWVzSGlnaDsJLyogMHgxOEMgLSBUcmFuc21pdCBzdGF0cyAtIGZyYW1lIGNvdW50ICovCgl1MzIJWG10Qnl0ZXNMb3c7CS8qIDB4MTkwIC0gVHJhbnNtaXQgc3RhdHMgLSBieXRlIGNvdW50ICovCgl1MzIJWG10Qnl0ZXNIaWdoOwkvKiAweDE5NCAtIFRyYW5zbWl0IHN0YXRzIC0gYnl0ZSBjb3VudCAqLwoJdTMyCVhtdFRjcFNlZ21lbnRzTG93OwkvKiAweDE5OCAtIFRyYW5zbWl0IHN0YXRzIC0gVENQIHNlZ21lbnRzICovCgl1MzIJWG10VGNwU2VnbWVudHNIaWdoOwkvKiAweDE5QyAtIFRyYW5zbWl0IHN0YXRzIC0gVENQIHNlZ21lbnRzICovCgl1MzIJWG10VGNwQnl0ZXNMb3c7CQkvKiAweDFBMCAtIFRyYW5zbWl0IHN0YXRzIC0gVENQIGJ5dGVzICovCgl1MzIJWG10VGNwQnl0ZXNIaWdoOwkvKiAweDFBNCAtIFRyYW5zbWl0IHN0YXRzIC0gVENQIGJ5dGVzICovCgl1MzIJUmN2RXJyb3JzTG93OwkJLyogMHgxQTggLSBSZWNlaXZlIHN0YXRzIC0gZXJyb3JzICovCgl1MzIJUmN2RXJyb3JzSGlnaDsJCS8qIDB4MUFDIC0gUmVjZWl2ZSBzdGF0cyAtIGVycm9ycyAqLwoJdTMyCVJjdkZyYW1lc0xvdzsJCS8qIDB4MUIwIC0gUmVjZWl2ZSBzdGF0cyAtIGZyYW1lIGNvdW50ICovCgl1MzIJUmN2RnJhbWVzSGlnaDsJCS8qIDB4MUI0IC0gUmVjZWl2ZSBzdGF0cyAtIGZyYW1lIGNvdW50ICovCgl1MzIJUmN2Qnl0ZXNMb3c7CQkvKiAweDFCOCAtIFJlY2VpdmUgc3RhdHMgLSBieXRlIGNvdW50ICovCgl1MzIJUmN2Qnl0ZXNIaWdoOwkJLyogMHgxQkMgLSBSZWNlaXZlIHN0YXRzIC0gYnl0ZSBjb3VudCAqLwoJdTMyCVJjdlRjcFNlZ21lbnRzTG93OwkvKiAweDFDMCAtIFJlY2VpdmUgc3RhdHMgLSBUQ1Agc2VnbWVudHMgKi8KCXUzMglSY3ZUY3BTZWdtZW50c0hpZ2g7CS8qIDB4MUM0IC0gUmVjZWl2ZSBzdGF0cyAtIFRDUCBzZWdtZW50cyAqLwoJdTMyCVJjdlRjcEJ5dGVzTG93OwkJLyogMHgxQzggLSBSZWNlaXZlIHN0YXRzIC0gVENQIGJ5dGVzICovCgl1MzIJUmN2VGNwQnl0ZXNIaWdoOwkvKiAweDFDQyAtIFJlY2VpdmUgc3RhdHMgLSBUQ1AgYnl0ZXMgKi8KCXUzMglQYWRUbzB4MjAwWzEyXTsJCS8qIDB4MUQwIC0gMHgyMDAgLSBQYWQgKi8KCXUzMglTb2Z0d2FyZVsxOTIwXTsJCS8qIDB4MjAwIC0gMHgyMDAwIC0gU29mdHdhcmUgZGVmaW5lZCAobm90IHVzZWQpICovCgl1MzIJTXNpeFRhYmxlWzEwMjRdOwkvKiAweDIwMDAgLSAweDMwMDAgLSBNU0lYIFRhYmxlICovCgl1MzIJTXNpeEJpdEFycmF5WzEwMjRdOwkvKiAweDMwMDAgLSAweDQwMDAgLSBNU0lYIFBlbmRpbmcgQml0IEFycmF5ICovCn07CiNwcmFnbWEgcGFjayhwb3ApCgovKiBNaWNyb2NvZGUgQWRkcmVzcyBGbGFncyAqLwojZGVmaW5lCU1JQ1JPQ09ERV9BRERSRVNTX0dPCQkweDgwMDAwMDAwCS8qIFN0YXJ0IG1pY3JvY29kZSAqLwojZGVmaW5lCU1JQ1JPQ09ERV9BRERSRVNTX1dSSVRFCQkweDQwMDAwMDAwCS8qIFN0b3JlIG1pY3JvY29kZSAqLwojZGVmaW5lCU1JQ1JPQ09ERV9BRERSRVNTX1JFQUQJCTB4MjAwMDAwMDAJLyogUmVhZCBtaWNyb2NvZGUgKi8KI2RlZmluZQlNSUNST0NPREVfQUREUkVTU19QQVJJVFkJMHgxMDAwMDAwMC8qIFBhcml0eSBlcnJvciBkZXRlY3RlZCAqLwojZGVmaW5lCU1JQ1JPQ09ERV9BRERSRVNTX01BU0sJCTB4MDAwMDFGRkYJLyogQWRkcmVzcyBiaXRzICovCgovKiBMaW5rIEFkZHJlc3MgUmVnaXN0ZXJzICovCi8qIEFwcGxpZWQgdG8gbGluayBhZGRyZXNzIGhpZ2ggKi8KI2RlZmluZSBMSU5LX0FERFJFU1NfRU5BQkxFCTB4ODAwMDAwMDAKCi8qIE1pY3Jvc29mdCByZWdpc3RlciBzcGFjZSBzaXplICovCiNkZWZpbmUgU1hHX1VDT0RFUkVHX01FTVNJWkUJMHg0MDAwMAkJLyogMjU2ayAqLwoKLyoKICogU2FoYXJhIG1pY3JvY29kZSByZWdpc3RlciBhZGRyZXNzIGZvcm1hdC4gIFRoZSBjb21tYW5kIGNvZGUsCiAqIGV4dGVuZGVkIGNvbW1hbmQgY29kZSwgYW5kIGFzc29jaWF0ZWQgcHJvY2Vzc29yIGFyZSBlbmNvZGVkIGluCiAqIHRoZSBhZGRyZXNzIGJpdHMgYXMgZm9sbG93cwogKi8KI2RlZmluZSBTWEdfQUREUkVTU19DT0RFX1NISUZUCQkyCQkvKiBCYXNlIGNvbW1hbmQgY29kZSAqLwojZGVmaW5lIFNYR19BRERSRVNTX0NPREVfTUFTSwkJMHgwMDAwMDAzQwovKiBFeHRlbmRlZCAob3Igc3ViKSBjb21tYW5kIGNvZGUgKi8KI2RlZmluZSBTWEdfQUREUkVTU19FWENPREVfU0hJRlQJNgojZGVmaW5lIFNYR19BRERSRVNTX0VYQ09ERV9NQVNLCQkweDAwMDAxRkMwCiNkZWZpbmUJU1hHX0FERFJFU1NfQ1BVSURfU0hJRlQJCTEzCQkvKiBDUFUgKi8KI2RlZmluZSBTWEdfQUREUkVTU19DUFVJRF9NQVNLCQkweDAwMDNFMDAwCi8qIFVzZWQgdG8gc2FuaXR5IGNoZWNrIFVDT0RFX1JFR1Mgc3RydWN0dXJlICovCiNkZWZpbmUgU1hHX1JFR0lTVEVSX1NJWkVfUEVSX0NQVQkweDAwMDAyMDAwCgovKiBTYWhhcmEgcmVjZWl2ZSBzZXF1ZW5jZXIgc3RhdHVzIHZhbHVlcyAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX0FUVE4JCQkweDgwMDAwMDAwIC8qIEF0dGVudGlvbiAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX1RSQU5TUE9SVF9NQVNLCQkweDNGMDAwMDAwIC8qIFRyYW5zcG9ydCBtYXNrICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfVFJBTlNQT1JUX0VSUk9SCQkweDIwMDAwMDAwIC8qIFRyYW5zcG9ydCBlcnJvciAqLwovKiBUcmFuc3BvcnQgY2tzdW0gZXJyb3IgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19UUkFOU1BPUlRfQ1NVTQkJMHgyMzAwMDAwMAovKiBUcmFuc3BvcnQgdW5kZXJmbG93ICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfVFJBTlNQT1JUX1VGTE9XCQkweDIyMDAwMDAwCiAvKiBUcmFuc3BvcnQgaGVhZGVyIGxlbmd0aCAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX1RSQU5TUE9SVF9IRFJMRU4JCTB4MjAwMDAwMDAKLyogVHJhbnNwb3J0IGZsYWdzIGRldGVjdGVkICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfVFJBTlNQT1JUX0ZMQUdTCQkweDEwMDAwMDAwCiAvKiBUcmFuc3BvcnQgb3B0aW9ucyBkZXRlY3RlZCAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX1RSQU5TUE9SVF9PUFRTCQkweDA4MDAwMDAwCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfVFJBTlNQT1JUX1NFU1NfTUFTSwkweDA3MDAwMDAwIC8qIFRyYW5zcG9ydCBERFAgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19UUkFOU1BPUlRfRERQCQkweDA2MDAwMDAwIC8qIFRyYW5zcG9ydCBERFAgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19UUkFOU1BPUlRfaVNDU0kJCTB4MDUwMDAwMDAgLyogVHJhbnNwb3J0IGlTQ1NJICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfVFJBTlNQT1JUX05GUwkJMHgwNDAwMDAwMCAvKiBUcmFuc3BvcnQgTkZTICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfVFJBTlNQT1JUX0ZUUAkJMHgwMzAwMDAwMCAvKiBUcmFuc3BvcnQgRlRQICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfVFJBTlNQT1JUX0hUVFAJCTB4MDIwMDAwMDAgLyogVHJhbnNwb3J0IEhUVFAgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19UUkFOU1BPUlRfU01CCQkweDAxMDAwMDAwIC8qIFRyYW5zcG9ydCBTTUIgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19ORVRXT1JLX01BU0sJCTB4MDBGRjAwMDAgLyogTmV0d29yayBtYXNrICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTkVUV09SS19FUlJPUgkJMHgwMDgwMDAwMCAvKiBOZXR3b3JrIGVycm9yICovCi8qIE5ldHdvcmsgY2tzdW0gZXJyb3IgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19ORVRXT1JLX0NTVU0JCTB4MDA4MzAwMDAKLyogTmV0d29yayB1bmRlcmZsb3cgZXJyb3IgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19ORVRXT1JLX1VGTE9XCQkweDAwODIwMDAwCiAvKiBOZXR3b3JrIGhlYWRlciBsZW5ndGggKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19ORVRXT1JLX0hEUkxFTgkJMHgwMDgwMDAwMAogLyogTmV0d29yayBvdmVyZmxvdyBkZXRlY3RlZCAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX05FVFdPUktfT0ZMT1cJCTB4MDA0MDAwMDAKLyogTmV0d29yayBtdWx0aWNhc3QgZGV0ZWN0ZWQgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19ORVRXT1JLX01DQVNUCQkweDAwMjAwMDAwCi8qIE5ldHdvcmsgb3B0aW9ucyBkZXRlY3RlZCAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX05FVFdPUktfT1BUSU9OUwkJMHgwMDEwMDAwMAovKiBOZXR3b3JrIG9mZnNldCBkZXRlY3RlZCAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX05FVFdPUktfT0ZGU0VUCQkweDAwMDgwMDAwCi8qIE5ldHdvcmsgZnJhZ21lbnQgZGV0ZWN0ZWQgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19ORVRXT1JLX0ZSQUdNRU5UCQkweDAwMDQwMDAwCi8qIE5ldHdvcmsgdHJhbnNwb3J0IHR5cGUgbWFzayAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX05FVFdPUktfVFJBTlNfTUFTSwkweDAwMDMwMDAwCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTkVUV09SS19VRFAJCTB4MDAwMjAwMDAgLyogVURQICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTkVUV09SS19UQ1AJCTB4MDAwMTAwMDAgLyogVENQICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfSVBPTkxZCQkJMHgwMDAwODAwMCAvKiBJUC1vbmx5IG5vdCBUQ1AgKi8KLyogUmVjZWl2ZSBwcmlvcml0eSAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX1BLVF9QUkkJCQkweDAwMDA2MDAwCi8qIFJlY2VpdmUgcHJpb3JpdHkgc2hpZnQgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19QS1RfUFJJX1NIRlQJCTEzCi8qIE1BQyBSZWNlaXZlIFJBTSBwYXJpdHkgZXJyb3IgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19QQVJJVFkJCQkweDAwMDAxMDAwCi8qIExpbmsgYWRkcmVzcyBkZXRlY3Rpb24gbWFzayAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX0FERFJFU1NfTUFTSwkJMHgwMDAwMEYwMAoKI2RlZmluZSBTWEdfUkNWX1NUQVRVU19BRERSRVNTX0QJCTB4MDAwMDBCMDAgLyogTGluayBhZGRyZXNzIEQgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19BRERSRVNTX0MJCTB4MDAwMDBBMDAgLyogTGluayBhZGRyZXNzIEMgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19BRERSRVNTX0IJCTB4MDAwMDA5MDAgLyogTGluayBhZGRyZXNzIEIgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19BRERSRVNTX0EJCTB4MDAwMDA4MDAgLyogTGluayBhZGRyZXNzIEEgKi8KLyogTGluayBhZGRyZXNzIGJyb2FkY2FzdCAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX0FERFJFU1NfQkNBU1QJCTB4MDAwMDAzMDAKIC8qIExpbmsgYWRkcmVzcyBtdWx0aWNhc3QgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19BRERSRVNTX01DQVNUCQkweDAwMDAwMjAwCi8qIExpbmsgY29udHJvbCBtdWx0aWNhc3QgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19BRERSRVNTX0NNQ0FTVAkJMHgwMDAwMDEwMAovKiBMaW5rIHN0YXR1cyBtYXNrICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTElOS19NQVNLCQkweDAwMDAwMEZGCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTElOS19FUlJPUgkJMHgwMDAwMDA4MCAvKiBMaW5rIGVycm9yICovCi8qIExpbmsgc3RhdHVzIG1hc2sgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19MSU5LX01BU0sJCTB4MDAwMDAwRkYKLyogUmN2TWFjUSBwYXJpdHkgZXJyb3IgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19MSU5LX1BBUklUWQkJMHgwMDAwMDA4NwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX0xJTktfRUFSTFkJCTB4MDAwMDAwODYgLyogRGF0YSBlYXJseSAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX0xJTktfQlVGT0ZMT1cJCTB4MDAwMDAwODUgLyogQnVmZmVyIG92ZXJmbG93ICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTElOS19DT0RFCQkweDAwMDAwMDg0IC8qIExpbmsgY29kZSBlcnJvciAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX0xJTktfRFJJQkJMRQkJMHgwMDAwMDA4MyAvKiBEcmliYmxlIG5pYmJsZSAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX0xJTktfQ1JDCQkJMHgwMDAwMDA4MiAvKiBDUkMgZXJyb3IgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19MSU5LX09GTE9XCQkweDAwMDAwMDgxIC8qIExpbmsgb3ZlcmZsb3cgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19MSU5LX1VGTE9XCQkweDAwMDAwMDgwIC8qIExpbmsgdW5kZXJmbG93ICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTElOS184MDIzCQkweDAwMDAwMDIwIC8qIDgwMi4zICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTElOS19TTkFQCQkweDAwMDAwMDEwIC8qIFNuYXAgKi8KI2RlZmluZSBTWEdfUkNWX1NUQVRVU19MSU5LX1ZMQU4JCTB4MDAwMDAwMDggLyogVkxBTiAqLwovKiBOZXR3b3JrIHR5cGUgbWFzayAqLwojZGVmaW5lIFNYR19SQ1ZfU1RBVFVTX0xJTktfVFlQRV9NQVNLCQkweDAwMDAwMDA3CiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTElOS19DT05UUk9MCQkweDAwMDAwMDAzIC8qIENvbnRyb2wgcGFja2V0ICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTElOS19JUFY2CQkweDAwMDAwMDAyIC8qIElQdjYgcGFja2V0ICovCiNkZWZpbmUgU1hHX1JDVl9TVEFUVVNfTElOS19JUFY0CQkweDAwMDAwMDAxIC8qIElQdjQgcGFja2V0ICovCgovKiBTYWhhcmEgcmVjZWl2ZSBhbmQgdHJhbnNtaXQgY29uZmlndXJhdGlvbiByZWdpc3RlcnMgKi8KLyogUmN2Q29uZmlnIHJlZ2lzdGVyIHJlc2V0ICovCiNkZWZpbmUJUkNWX0NPTkZJR19SRVNFVAkJMHg4MDAwMDAwMAovKiBFbmFibGUgdGhlIHJlY2VpdmUgbG9naWMgKi8KI2RlZmluZQlSQ1ZfQ09ORklHX0VOQUJMRQkJMHg0MDAwMDAwMAovKiBFbmFibGUgdGhlIHJlY2VpdmUgcGFyc2VyICovCiNkZWZpbmUJUkNWX0NPTkZJR19FTlBBUlNFCQkweDIwMDAwMDAwCi8qIEVuYWJsZSB0aGUgc29ja2V0IGRldGVjdG9yICovCiNkZWZpbmUJUkNWX0NPTkZJR19TT0NLRVQJCTB4MTAwMDAwMDAKI2RlZmluZQlSQ1ZfQ09ORklHX1JDVkJBRAkJMHgwODAwMDAwMCAvKiBSZWNlaXZlIGFsbCBiYWQgZnJhbWVzICovCi8qIFJlY2VpdmUgYWxsIGNvbnRyb2wgZnJhbWVzICovCiNkZWZpbmUJUkNWX0NPTkZJR19DT05UUk9MCQkweDA0MDAwMDAwCi8qIEVuYWJsZSBwYXVzZSB0cmFuc21pdCB3aGVuIGF0dG4gKi8KI2RlZmluZQlSQ1ZfQ09ORklHX1JDVlBBVVNFCQkweDAyMDAwMDAwCi8qIEluY2x1ZGUgVENQIHBvcnQgdy8gSVB2NiB0b2VwbGl0eiAqLwojZGVmaW5lCVJDVl9DT05GSUdfVFpJUFY2CQkweDAxMDAwMDAwCi8qIEluY2x1ZGUgVENQIHBvcnQgdy8gSVB2NCB0b2VwbGl0eiAqLwojZGVmaW5lCVJDVl9DT05GSUdfVFpJUFY0CQkweDAwODAwMDAwCiNkZWZpbmUJUkNWX0NPTkZJR19GTFVTSAkJMHgwMDQwMDAwMCAvKiBGbHVzaCBidWZmZXJzICovCiNkZWZpbmUJUkNWX0NPTkZJR19QUklPUklUWV9NQVNLCTB4MDAzMDAwMDAgLyogUHJpb3JpdHkgbGV2ZWwgKi8KI2RlZmluZQlSQ1ZfQ09ORklHX0NPTk5fTUFTSwkJMHgwMDBDMDAwMCAvKiBOdW1iZXIgb2YgY29ubmVjdGlvbnMgKi8KI2RlZmluZQlSQ1ZfQ09ORklHX0NPTk5fNEsJCTB4MDAwMDAwMDAgLyogNGsgY29ubmVjdGlvbnMgKi8KI2RlZmluZQlSQ1ZfQ09ORklHX0NPTk5fMksJCTB4MDAwNDAwMDAgLyogMmsgY29ubmVjdGlvbnMgKi8KI2RlZmluZQlSQ1ZfQ09ORklHX0NPTk5fMUsJCTB4MDAwODAwMDAgLyogMWsgY29ubmVjdGlvbnMgKi8KI2RlZmluZQlSQ1ZfQ09ORklHX0NPTk5fNTEyCQkweDAwMEMwMDAwIC8qIDUxMiBjb25uZWN0aW9ucyAqLwojZGVmaW5lCVJDVl9DT05GSUdfSEFTSF9NQVNLCQkweDAwMDMwMDAwIC8qIEhhc2ggZGVwdGggKi8KI2RlZmluZQlSQ1ZfQ09ORklHX0hBU0hfOAkJMHgwMDAwMDAwMCAvKiBIYXNoIGRlcHRoIDggKi8KI2RlZmluZQlSQ1ZfQ09ORklHX0hBU0hfMTYJCTB4MDAwMTAwMDAgLyogSGFzaCBkZXB0aCAxNiAqLwojZGVmaW5lCVJDVl9DT05GSUdfSEFTSF80CQkweDAwMDIwMDAwIC8qIEhhc2ggZGVwdGggNCAqLwojZGVmaW5lCVJDVl9DT05GSUdfSEFTSF8yCQkweDAwMDMwMDAwIC8qIEhhc2ggZGVwdGggMiAqLwovKiBCdWZmZXIgbGVuZ3RoIGJpdHMgMTU6NC4gaWUgbXVsdGlwbGUgb2YgMTYuICovCiNkZWZpbmUJUkNWX0NPTkZJR19CVUZMRU5fTUFTSwkJMHgwMDAwRkZFMAovKiBEaXNhYmxlIHNvY2tldCBkZXRlY3Rpb24gb24gYXR0biAqLwojZGVmaW5lIFJDVl9DT05GSUdfU0tUX0RJUwkJMHgwMDAwMDAwOAojZGVmaW5lIFJDVl9DT05GSUdfSElQUklDVEwgICAgIDB4MDAwMDAwMDIgLyogQ3RybCBmcmFtZXMgb24gaGlnaC1wcmlvaXJ0eSBSY3ZRICovCiNkZWZpbmUgUkNWX0NPTkZJR19ORVdTVEFUVVNGTVQgMHgwMDAwMDAwMSAvKiBVc2UgUmV2QiBzdGF0dXMgZm9ybWF0ICovCi8qCiAqIE1hY3JvIHRvIGRldGVybWluZSBSQ1ZfQ09ORklHX0JVRkxFTiBiYXNlZCBvbiBtYXhpbXVtIGZyYW1lIHNpemUuCiAqIFdlIGFkZCAxOCBieXRlcyBmb3IgU2FoYXJhIHJlY2VpdmUgc3RhdHVzIGFuZCBwYWRkaW5nLCBwbHVzIDQgYnl0ZXMgZm9yIENSQywKICogYW5kIHJvdW5kIHVwIHRvIG5lYXJlc3QgMzIgYnl0ZSBib3VuZGFyeQogKi8KI2RlZmluZSBSQ1ZfQ09ORklHX0JVRlNJWkUoX01heEZyYW1lKQkJCQkJXAoJCSgoKChfTWF4RnJhbWUpICsgMjIpICsgMzEpICYgUkNWX0NPTkZJR19CVUZMRU5fTUFTSykKCi8qIFhtdENvbmZpZyByZWdpc3RlciByZXNldCAqLwojZGVmaW5lCVhNVF9DT05GSUdfUkVTRVQJCTB4ODAwMDAwMDAKI2RlZmluZQlYTVRfQ09ORklHX0VOQUJMRQkJMHg0MDAwMDAwMCAvKiBFbmFibGUgdHJhbnNtaXQgbG9naWMgKi8KLyogSW5oaWJpdCBNQUMgUkFNIHBhcml0eSBlcnJvciAqLwojZGVmaW5lCVhNVF9DT05GSUdfTUFDX1BBUklUWQkJMHgyMDAwMDAwMAovKiBJbmhpYml0IEQyRiBidWZmZXIgcGFyaXR5IGVycm9yICovCiNkZWZpbmUJWE1UX0NPTkZJR19CVUZfUEFSSVRZCQkweDEwMDAwMDAwCi8qIEluaGliaXQgMVQgU1JBTSBwYXJpdHkgZXJyb3IgKi8KI2RlZmluZQlYTVRfQ09ORklHX01FTV9QQVJJVFkJCTB4MDgwMDAwMDAKI2RlZmluZQlYTVRfQ09ORklHX0lOVkVSVF9QQVJJVFkJMHgwNDAwMDAwMCAvKiBJbnZlcnQgTUFDIFJBTSBwYXJpdHkgKi8KI2RlZmluZQlYTVRfQ09ORklHX0lOSVRJQUxfSVBJRAkJMHgwMDAwRkZGRiAvKiBJbml0aWFsIElQSUQgKi8KCi8qCiAqIEEtWEdNQUMgUmVnaXN0ZXJzIC0gT2NjdXB5IDB4ODAgLSAweEQ0IG9mIHRoZSBzdHJ1Y3Qgc3hnX2h3X3JlZ3MKICoKICogRnVsbCByZWdpc3RlciBkZXNjcmlwdGlvbnMgY2FuIGJlIGZvdW5kIGluIGF4Z21hYy5wZGYKICovCi8qIEEtWEdNQUMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAwICovCiNkZWZpbmUgQVhHTUFDX0NGRzBfU1VCX1JFU0VUCQkweDgwMDAwMDAwIC8qIFN1YiBtb2R1bGUgcmVzZXQgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMF9SQ05UUkxfUkVTRVQJMHgwMDQwMDAwMCAvKiBSZWNlaXZlIGNvbnRyb2wgcmVzZXQgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMF9SRlVOQ19SRVNFVAkJMHgwMDIwMDAwMCAvKiBSZWNlaXZlIGZ1bmN0aW9uIHJlc2V0ICovCiNkZWZpbmUgQVhHTUFDX0NGRzBfVENOVFJMX1JFU0VUCTB4MDAwNDAwMDAgLyogVHJhbnNtaXQgY29udHJvbCByZXNldCAqLwojZGVmaW5lIEFYR01BQ19DRkcwX1RGVU5DX1JFU0VUCQkweDAwMDIwMDAwIC8qIFRyYW5zbWl0IGZ1bmN0aW9uIHJlc2V0ICovCiNkZWZpbmUgQVhHTUFDX0NGRzBfTUlJX1JFU0VUCQkweDAwMDEwMDAwIC8qIE1JSSBNYW5hZ2VtZW50IHJlc2V0ICovCgovKiBBLVhHTUFDIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgMSAqLwovKiBBbGxvdyB0aGUgc2VuZGluZyBvZiBQYXVzZSBmcmFtZXMgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMV9YTVRfUEFVU0UJCTB4ODAwMDAwMDAKI2RlZmluZSBBWEdNQUNfQ0ZHMV9YTVRfRU4JCTB4NDAwMDAwMDAgLyogRW5hYmxlIHRyYW5zbWl0ICovCi8qIEFsbG93IHRoZSBkZXRlY3Rpb24gb2YgUGF1c2UgZnJhbWVzICovCiNkZWZpbmUgQVhHTUFDX0NGRzFfUkNWX1BBVVNFCQkweDIwMDAwMDAwCiNkZWZpbmUgQVhHTUFDX0NGRzFfUkNWX0VOCQkweDEwMDAwMDAwIC8qIEVuYWJsZSByZWNlaXZlICovCi8qIEN1cnJlbnQgdHJhbnNtaXQgc3RhdGUgLSBSRUFEIE9OTFkgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMV9YTVRfU1RBVEUJCTB4MDQwMDAwMDAKLyogQ3VycmVudCByZWNlaXZlIHN0YXRlIC0gUkVBRCBPTkxZICovCiNkZWZpbmUgQVhHTUFDX0NGRzFfUkNWX1NUQVRFCQkweDAxMDAwMDAwCi8qIE9ubHkgcGF1c2UgZm9yIDY0IHNsb3Qgb24gWE9GRiAqLwojZGVmaW5lIEFYR01BQ19DRkcxX1hPRkZfU0hPUlQJCTB4MDAwMDEwMDAKLyogRGVsYXkgdHJhbnNtaXQgRkNTIDEgNC1ieXRlIHdvcmQgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMV9YTUdfRkNTMQkJMHgwMDAwMDQwMAovKiBEZWxheSB0cmFuc21pdCBGQ1MgMiA0LWJ5dGUgd29yZHMgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMV9YTUdfRkNTMgkJMHgwMDAwMDgwMAovKiBEZWxheSB0cmFuc21pdCBGQ1MgMyA0LWJ5dGUgd29yZHMgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMV9YTUdfRkNTMwkJMHgwMDAwMEMwMAovKiBEZWxheSByZWNlaXZlIEZDUyAxIDQtYnl0ZSB3b3JkICovCiNkZWZpbmUgQVhHTUFDX0NGRzFfUkNWX0ZDUzEJCTB4MDAwMDAxMDAKLyogRGVsYXkgcmVjZWl2ZSBGQ1MgMiA0LWJ5dGUgd29yZHMgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMV9SQ1ZfRkNTMgkJMHgwMDAwMDIwMAovKiBEZWxheSByZWNlaXZlIEZDUyAzIDQtYnl0ZSB3b3JkcyAqLwojZGVmaW5lIEFYR01BQ19DRkcxX1JDVl9GQ1MzCQkweDAwMDAwMzAwCi8qIFBlci1wYWNrZXQgb3ZlcnJpZGUgZW5hYmxlICovCiNkZWZpbmUgQVhHTUFDX0NGRzFfUEtUX09WRVJSSURFCTB4MDAwMDAwODAKI2RlZmluZSBBWEdNQUNfQ0ZHMV9TV0FQCQkweDAwMDAwMDQwIC8qIEJ5dGUgc3dhcCBlbmFibGUgKi8KLyogQVNTRVJUIHNyZHJwZnJtIG9uIHNob3J0IGZyYW1lICg8NjQpICovCiNkZWZpbmUgQVhHTUFDX0NGRzFfU0hPUlRfQVNTRVJUCTB4MDAwMDAwMjAKLyogUkNWIG9ubHkgODAyLjNBRSB3aGVuIENMRUFSICovCiNkZWZpbmUgQVhHTUFDX0NGRzFfUkNWX1NUUklDVAkJMHgwMDAwMDAxMAojZGVmaW5lIEFYR01BQ19DRkcxX0NIRUNLX0xFTgkJMHgwMDAwMDAwOCAvKiBWZXJpZnkgZnJhbWUgbGVuZ3RoICovCiNkZWZpbmUgQVhHTUFDX0NGRzFfR0VOX0ZDUwkJMHgwMDAwMDAwNCAvKiBHZW5lcmF0ZSBGQ1MgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMV9QQURfTUFTSwkJMHgwMDAwMDAwMyAvKiBNYXNrIGZvciBwYWQgYml0cyAqLwojZGVmaW5lIEFYR01BQ19DRkcxX1BBRF82NAkJMHgwMDAwMDAwMSAvKiBQYWQgZnJhbWVzIHRvIDY0IGJ5dGVzICovCi8qIERldGVjdCBWTEFOIGFuZCBwYWQgdG8gNjggYnl0ZXMgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMV9QQURfVkxBTgkJMHgwMDAwMDAwMgojZGVmaW5lIEFYR01BQ19DRkcxX1BBRF82OAkJMHgwMDAwMDAwMyAvKiBQYWQgdG8gNjggYnl0ZXMgKi8KCi8qIEEtWEdNQUMgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAyICovCi8qIEdlbmVyYXRlIHNpbmdsZSBwYXVzZSBmcmFtZSAodGVzdCkgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMl9HRU5fUEFVU0UJCTB4ODAwMDAwMDAKLyogTWFudWFsIGxpbmsgZmF1bHQgc2VxdWVuY2UgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHMl9MRl9NQU5VQUwJCTB4MDgwMDAwMDAKLyogQXV0byBsaW5rIGZhdWx0IHNlcXVlbmNlICovCiNkZWZpbmUgQVhHTUFDX0NGRzJfTEZfQVVUTwkJMHgwNDAwMDAwMAovKiBSZW1vdGUgbGluayBmYXVsdCAoUkVBRCBPTkxZKSAqLwojZGVmaW5lIEFYR01BQ19DRkcyX0xGX1JFTU9URQkJMHgwMjAwMDAwMAovKiBMb2NhbCBsaW5rIGZhdWx0IChSRUFEIE9OTFkpICovCiNkZWZpbmUgQVhHTUFDX0NGRzJfTEZfTE9DQUwJCTB4MDEwMDAwMDAKI2RlZmluZSBBWEdNQUNfQ0ZHMl9JUEdfTUFTSwkJMHgwMDFGMDAwMCAvKiBJbnRlciBwYWNrZXQgZ2FwICovCiNkZWZpbmUgQVhHTUFDX0NGRzJfSVBHX1NISUZUCQkJMTYKI2RlZmluZSBBWEdNQUNfQ0ZHMl9QQVVTRV9YTVQJCTB4MDAwMDgwMDAgLyogUGF1c2UgdHJhbnNtaXQgbW9kdWxlICovCi8qIEVuYWJsZSBJUEcgZXh0ZW5zaW9uIGFsZ29yaXRobSAqLwojZGVmaW5lIEFYR01BQ19DRkcyX0lQR19FWFRFTgkJMHgwMDAwMDAyMAojZGVmaW5lIEFYR01BQ19DRkcyX0lQR0VYX01BU0sJCTB4MDAwMDAwMUYgLyogSVBHIGV4dGVuc2lvbiAqLwoKLyogQS1YR01BQyBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIDMgKi8KLyogUmVjZWl2ZSBmcmFtZSBkcm9wIGZpbHRlciAqLwojZGVmaW5lIEFYR01BQ19DRkczX1JDVl9EUk9QCQkweEZGRkYwMDAwCi8qIFJlY2VpdmUgZnJhbWUgZG9uJ3QgY2FyZSBmaWx0ZXIgKi8KI2RlZmluZSBBWEdNQUNfQ0ZHM19SQ1ZfRE9OVF9DQVJFCTB4MDAwMEZGRkYKCi8qIEEtWEdNQUMgU3RhdGlvbiBBZGRyZXNzIFJlZ2lzdGVyIC0gT2N0ZXRzIDEtNCAqLwojZGVmaW5lIEFYR01BQ19TQVJMT1dfT0NURVRfT05FCQkweEZGMDAwMDAwCS8qIEZpcnN0IG9jdGV0ICovCiNkZWZpbmUgQVhHTUFDX1NBUkxPV19PQ1RFVF9UV08JCTB4MDBGRjAwMDAJLyogU2Vjb25kIG9jdGV0ICovCiNkZWZpbmUgQVhHTUFDX1NBUkxPV19PQ1RFVF9USFJFRQkweDAwMDBGRjAwCS8qIFRoaXJkIG9jdGV0ICovCiNkZWZpbmUgQVhHTUFDX1NBUkxPV19PQ1RFVF9GT1VSCTB4MDAwMDAwRkYJLyogRm91cnRoIG9jdGV0ICovCgovKiBBLVhHTUFDIFN0YXRpb24gQWRkcmVzcyBSZWdpc3RlciAtIE9jdGV0cyA1LTYgKi8KI2RlZmluZSBBWEdNQUNfU0FSSElHSF9PQ1RFVF9GSVZFCTB4RkYwMDAwMDAJLyogRmlmdGggb2N0ZXQgKi8KI2RlZmluZSBBWEdNQUNfU0FSSElHSF9PQ1RFVF9TSVgJMHgwMEZGMDAwMAkvKiBTaXh0aCBvY3RldCAqLwoKLyogQS1YR01BQyBNYXhpbXVtIGZyYW1lIGxlbmd0aCByZWdpc3RlciAqLwovKiBNYXhpbXVtIHRyYW5zbWl0IGZyYW1lIGxlbmd0aCAqLwojZGVmaW5lIEFYR01BQ19NQVhGUkFNRV9YTVQJCTB4M0ZGRjAwMDAKI2RlZmluZSBBWEdNQUNfTUFYRlJBTUVfWE1UX1NISUZUCTE2Ci8qIE1heGltdW0gcmVjZWl2ZSBmcmFtZSBsZW5ndGggKi8KI2RlZmluZSBBWEdNQUNfTUFYRlJBTUVfUkNWCQkweDAwMDBGRkZGCi8qCiAqIFRoaXMgcmVnaXN0ZXIgZG9lc24ndCBuZWVkIHRvIGJlIHdyaXR0ZW4gZm9yIHN0YW5kYXJkIE1UVS4KICogRm9yIGp1bWJvLCBJJ2xsIGp1c3Qgc3RhdGljYWxseSBkZWZpbmUgdGhlIHZhbHVlIGhlcmUuICBUaGlzCiAqIHZhbHVlIHNldHMgdGhlIHJlY2VpdmUgYnl0ZSBjb3VudCB0byA5MDM2ICgweDIzNEMpIGFuZCB0aGUKICogdHJhbnNtaXQgV09SRCBjb3VudCB0byAyMjU5ICgweDhEMykuICBUaGVzZSB2YWx1ZXMgaW5jbHVkZSAyMgogKiBieXRlcyBvZiBwYWRkaW5nIGJleW9uZCB0aGUganVtYm8gTVRVIG9mIDkwMTQKICovCiNkZWZpbmUgQVhHTUFDX01BWEZSQU1FX0pVTUJPCQkweDA4RDMyMzRDCgovKiBBLVhHTUFDIFJldmlzaW9uIGxldmVsICovCiNkZWZpbmUgQVhHTUFDX1JFVklTSU9OX01BU0sJCTB4MDAwMEZGRkYJLyogUmV2aXNpb24gbGV2ZWwgKi8KCi8qIEEtWEdNQUMgQU1JSU0gQ29tbWFuZCBSZWdpc3RlciAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9DTURfU1RBUlQJCTB4MDAwMDAwMDgJLyogQ29tbWFuZCBzdGFydCAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9DTURfTUFTSwkJMHgwMDAwMDAwNwkvKiBDb21tYW5kICovCi8qIDEwLzEwMC8xMDAwIE1icHMgUGh5IFdyaXRlICovCiNkZWZpbmUgQVhHTUFDX0FNSUlNX0NNRF9MRUdBQ1lfV1JJVEUJCTEKLyogMTAvMTAwLzEwMDAgTWJwcyBQaHkgUmVhZCAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9DTURfTEVHQUNZX1JFQUQJCTIKI2RlZmluZSBBWEdNQUNfQU1JSU1fQ01EX01PTklUT1JfU0lOR0xFCQkzCS8qIE1vbml0b3Igc2luZ2xlIFBIWSAqLwovKiBNb25pdG9yIG11bHRpcGxlIGNvbnRpZ3VvdXMgUEhZcyAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9DTURfTU9OSVRPUl9NVUxUSVBMRQk0Ci8qIFByZXNlbnQgQU1JSU0gRmllbGQgUmVnICovCiNkZWZpbmUgQVhHTUFDX0FNSUlNX0NNRF8xMEdfT1BFUkFUSU9OCQk1Ci8qIENsZWFyIExpbmsgRmFpbCBCaXQgaW4gTUlJTSAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9DTURfQ0xFQVJfTElOS19GQUlMCTYKCi8qIEEtWEdNQUMgQU1JSU0gRmllbGQgUmVnaXN0ZXIgKi8KI2RlZmluZSBBWEdNQUNfQU1JSU1fRklFTERfU1QJCTB4QzAwMDAwMDAJLyogMi1iaXQgU1QgZmllbGQgKi8KI2RlZmluZSBBWEdNQUNfQU1JSU1fRklFTERfU1RfU0hJRlQJCTMwCiNkZWZpbmUgQVhHTUFDX0FNSUlNX0ZJRUxEX09QCQkweDMwMDAwMDAwCS8qIDItYml0IE9QIGZpZWxkICovCiNkZWZpbmUgQVhHTUFDX0FNSUlNX0ZJRUxEX09QX1NISUZUCQkyOAovKiBQb3J0IGFkZHJlc3MgZmllbGQgKGhzdHBoeWFkeCBpbiBzcGVjKSAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9GSUVMRF9QT1JUX0FERFIgCTB4MEY4MDAwMDAKI2RlZmluZSBBWEdNQUNfQU1JSU1fRklFTERfUE9SVF9TSElGVAkJMjMKLyogRGV2aWNlIGFkZHJlc3MgZmllbGQgKGhzdHJlZ2FkeCBpbiBzcGVjKSAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9GSUVMRF9ERVZfQUREUgkweDAwN0MwMDAwCiNkZWZpbmUgQVhHTUFDX0FNSUlNX0ZJRUxEX0RFVl9TSElGVAkJMTgKI2RlZmluZSBBWEdNQUNfQU1JSU1fRklFTERfVEEJCTB4MDAwMzAwMDAJLyogMi1iaXQgVEEgZmllbGQgKi8KI2RlZmluZSBBWEdNQUNfQU1JSU1fRklFTERfVEFfU0hJRlQJCTE2CiNkZWZpbmUgQVhHTUFDX0FNSUlNX0ZJRUxEX0RBVEEJCTB4MDAwMEZGRkYJLyogRGF0YSBmaWVsZCAqLwoKLyogVmFsdWVzIGZvciB0aGUgQVhHTUFDX0FNSUlNX0ZJRUxEX09QIGZpZWxkIGluIHRoZSBBLVhHTUFDIEFNSUlNIEZpZWxkIFJlZ2lzdGVyICovCiNkZWZpbmUJTUlJTV9PUF9BRERSCQkwCS8qIE1JSU0gQWRkcmVzcyBzZXQgb3BlcmF0aW9uICovCiNkZWZpbmUJTUlJTV9PUF9XUklURQkJMQkvKiBNSUlNIFdyaXRlIHJlZ2lzdGVyIG9wZXJhdGlvbiAqLwojZGVmaW5lCU1JSU1fT1BfUkVBRAkJMgkvKiBNSUlNIFJlYWQgcmVnaXN0ZXIgb3BlcmF0aW9uICovCiNkZWZpbmUJTUlJTV9PUF9BRERSX1NISUZUCShNSUlNX09QX0FERFIgPDwgQVhHTUFDX0FNSUlNX0ZJRUxEX09QX1NISUZUKQoKLyoKICogVmFsdWVzIGZvciB0aGUgQVhHTUFDX0FNSUlNX0ZJRUxEX1BPUlRfQUREUiBmaWVsZCBpbiB0aGUgQS1YR01BQyBBTUlJTQogKiBGaWVsZCBSZWdpc3RlcgogKi8KI2RlZmluZQlNSUlNX1BPUlRfTlVNCQkxCS8qIEFsbCBTYWhhcmEgTUlJTSBtb2R1bGVzIHVzZSBwb3J0IDEgKi8KCi8qCiAqIFZhbHVlcyBmb3IgdGhlIEFYR01BQ19BTUlJTV9GSUVMRF9ERVZfQUREUiBmaWVsZCBpbiB0aGUgQS1YR01BQyBBTUlJTQogKiBGaWVsZCBSZWdpc3RlcgogKi8KLyogUEhZIFBNQS9QTUQgbW9kdWxlIE1JSU0gZGV2aWNlIG51bWJlciAqLwojZGVmaW5lCU1JSU1fREVWX1BIWV9QTUEJMQovKiBQSFkgUENTIG1vZHVsZSBNSUlNIGRldmljZSBudW1iZXIgKi8KI2RlZmluZQlNSUlNX0RFVl9QSFlfUENTCTMKLyogUEhZIFhTIG1vZHVsZSBNSUlNIGRldmljZSBudW1iZXIgKi8KI2RlZmluZQlNSUlNX0RFVl9QSFlfWFMJCTQKI2RlZmluZQlNSUlNX0RFVl9YR1hTCQk1CS8qIFhHWFMgTUlJTSBkZXZpY2UgbnVtYmVyICovCgovKgogKiBWYWx1ZXMgZm9yIHRoZSBBWEdNQUNfQU1JSU1fRklFTERfVEEgZmllbGQgaW4gdGhlIEEtWEdNQUMgQU1JSU0gRmllbGQKICogUmVnaXN0ZXIKICovCiNkZWZpbmUJTUlJTV9UQV8xMEdCCQkyCS8qIHNldCB0byAyIGZvciAxMCBHQiBvcGVyYXRpb24gKi8KCi8qIEEtWEdNQUMgQU1JSU0gQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwovKiBCeXBhc3MgcHJlYW1ibGUgb2YgbW5nbXQgZnJhbWUgKi8KI2RlZmluZSBBWEdNQUNfQU1JSU1fQ0ZHX05PUFJFQU0JMHgwMDAwMDA4MAovKiBoYWxmLWNsb2NrIGR1cmF0aW9uIG9mIE1EQyBvdXRwdXQgKi8KI2RlZmluZSBBWEdNQUNfQU1JSU1fQ0ZHX0hBTEZfQ0xPQ0sJMHgwMDAwMDA3RgoKLyogQS1YR01BQyBBTUlJTSBJbmRpY2F0b3IgUmVnaXN0ZXIgKi8KLyogTGluayBzdGF0dXMgZnJvbSBsZWdhY3kgUEhZIG9yIE1NRCAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9JTkRDX0xJTksJCTB4MDAwMDAwMTAKLyogTXVsdGlwbGUgcGh5IG9wZXJhdGlvbiBpbiBwcm9ncmVzcyAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9JTkRDX01QSFkJCTB4MDAwMDAwMDgKLyogU2luZ2xlIHBoeSBvcGVyYXRpb24gaW4gcHJvZ3Jlc3MgKi8KI2RlZmluZSBBWEdNQUNfQU1JSU1fSU5EQ19TUEhZCQkweDAwMDAwMDA0Ci8qIFNpbmdsZSBvciBtdWx0aXBsZSBtb25pdG9yIGNtZCAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9JTkRDX01PTgkJMHgwMDAwMDAwMgovKiBTZXQgdW50aWwgY21kIG9wZXJhdGlvbiBjb21wbGV0ZSAqLwojZGVmaW5lIEFYR01BQ19BTUlJTV9JTkRDX0JVU1kJCTB4MDAwMDAwMDEKCi8qIExpbmsgU3RhdHVzIGFuZCBDb250cm9sIFJlZ2lzdGVyICovCiNkZWZpbmUJTFNfUEhZX0NMUl9SRVNFVAkweDgwMDAwMDAwCS8qIENsZWFyIHJlc2V0IHNpZ25hbCB0byBQSFkgKi8KI2RlZmluZQlMU19TRVJERVNfUE9XRVJfRE9XTgkweDQwMDAwMDAwCS8qIFBvd2VyIGRvd24gdGhlIFNhaGFyYSBTZXJkZXMgKi8KI2RlZmluZQlMU19YR1hTX0VOQUJMRQkJMHgyMDAwMDAwMAkvKiBFbmFibGUgdGhlIFhBVUkgWEdYUyBsb2dpYyAqLwovKiBIb2xkIFhBVUkgWEdYUyBsb2dpYyByZXNldCB1bnRpbCBTZXJkZXMgaXMgdXAgKi8KI2RlZmluZQlMU19YR1hTX0NUTAkJMHgxMDAwMDAwMAovKiBXaGVuIDAsIFhBVUkgU2VyZGVzIGlzIHVwIGFuZCBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZSAqLwojZGVmaW5lCUxTX1NFUkRFU19ET1dOCQkweDA4MDAwMDAwCi8qIFdoZW4gMCwgVHJhY2UgU2VyZGVzIGlzIHVwIGFuZCBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZSAqLwojZGVmaW5lCUxTX1RSQUNFX0RPV04JCTB4MDQwMDAwMDAKLyogU2V0IFBIWSBjbG9jayB0byAyNSBNSHogKGVsc2UgMTU2LjEyNSBNSHopICovCiNkZWZpbmUJTFNfUEhZX0NMS18yNU1IWgkweDAyMDAwMDAwCiNkZWZpbmUJTFNfUEhZX0NMS19FTgkJMHgwMTAwMDAwMAkvKiBFbmFibGUgY2xvY2sgdG8gUEhZICovCiNkZWZpbmUJTFNfWEFVSV9MSU5LX1VQCQkweDAwMDAwMDEwCS8qIFhBVUkgbGluayBpcyB1cCAqLwovKiBYQVVJIGxpbmsgc3RhdHVzIGhhcyBjaGFuZ2VkICovCiNkZWZpbmUJTFNfWEFVSV9MSU5LX0NITkcJMHgwMDAwMDAwOAojZGVmaW5lCUxTX0xJTktfQUxBUk0JCTB4MDAwMDAwMDQJLyogTGluayBhbGFybSBwaW4gKi8KLyogTWFzayBsaW5rIGF0dGVudGlvbiBjb250cm9sIGJpdHMgKi8KI2RlZmluZQlMU19BVFROX0NUUkxfTUFTSwkweDAwMDAwMDAzCiNkZWZpbmUJTFNfQVRUTl9BTEFSTQkJMHgwMDAwMDAwMAkvKiAwMCA9PiBBdHRuIG9uIGxpbmsgYWxhcm0gKi8KLyogMDEgPT4gQXR0biBvbiBsaW5rIGFsYXJtIG9yIHN0YXR1cyBjaGFuZ2UgKi8KI2RlZmluZQlMU19BVFROX0FMQVJNX09SX1NUQVRfQ0hORwkweDAwMDAwMDAxCi8qIDEwID0+IEF0dG4gb24gbGluayBzdGF0dXMgY2hhbmdlICovCiNkZWZpbmUJTFNfQVRUTl9TVEFUX0NITkcJMHgwMDAwMDAwMgojZGVmaW5lCUxTX0FUVE5fTk9ORQkJMHgwMDAwMDAwMwkvKiAxMSA9PiBubyBBdHRuICovCgovKiBMaW5rIEFkZHJlc3MgSGlnaCBSZWdpc3RlcnMgKi8KI2RlZmluZQlMSU5LX0FERFJfRU5BQkxFCTB4ODAwMDAwMDAJLyogRW5hYmxlIHRoaXMgbGluayBhZGRyZXNzICovCgoKLyoKICogWEdYUyBYQVVJIFhHTUlJIEV4dGVuZGVyIHJlZ2lzdGVycwogKgogKiBGdWxsIHJlZ2lzdGVyIGRlc2NyaXB0aW9ucyBjYW4gYmUgZm91bmQgaW4gbXhneHMucGRmCiAqLwovKiBYR1hTIFJlZ2lzdGVyIE1hcCAqLwojZGVmaW5lIFhHWFNfQUREUkVTU19DT05UUk9MMQkweDAwMDAJCS8qIFhTIENvbnRyb2wgMSAqLwojZGVmaW5lIFhHWFNfQUREUkVTU19TVEFUVVMxCTB4MDAwMQkJLyogWFMgU3RhdHVzIDEgKi8KI2RlZmluZSBYR1hTX0FERFJFU1NfREVWSURfTE9XCTB4MDAwMgkJLyogWFMgRGV2aWNlIElEIChsb3cpICovCiNkZWZpbmUgWEdYU19BRERSRVNTX0RFVklEX0hJR0gJMHgwMDAzCQkvKiBYUyBEZXZpY2UgSUQgKGhpZ2gpICovCiNkZWZpbmUgWEdYU19BRERSRVNTX1NQRUVECTB4MDAwNAkJLyogWFMgU3BlZWQgYWJpbGl0eSAqLwojZGVmaW5lIFhHWFNfQUREUkVTU19ERVZfTE9XCTB4MDAwNQkJLyogWFMgRGV2aWNlcyBpbiBwYWNrYWdlICovCiNkZWZpbmUgWEdYU19BRERSRVNTX0RFVl9ISUdICTB4MDAwNgkJLyogWFMgRGV2aWNlcyBpbiBwYWNrYWdlICovCiNkZWZpbmUgWEdYU19BRERSRVNTX1NUQVRVUzIJMHgwMDA4CQkvKiBYUyBTdGF0dXMgMiAqLwojZGVmaW5lIFhHWFNfQUREUkVTU19QS0dJRF9sT1cJMHgwMDBFCQkvKiBYUyBQYWNrYWdlIElkZW50aWZpZXIgKi8KI2RlZmluZSBYR1hTX0FERFJFU1NfUEtHSURfSElHSAkweDAwMEYJCS8qIFhTIFBhY2thZ2UgSWRlbnRpZmllciAqLwojZGVmaW5lIFhHWFNfQUREUkVTU19MQU5FX1NUQVRVUwkweDAwMTgJLyogMTBHIFhHWFMgTGFuZSBTdGF0dXMgKi8KI2RlZmluZSBYR1hTX0FERFJFU1NfVEVTVF9DVFJMCTB4MDAxOQkJLyogMTBHIFhHWFMgVGVzdCBDb250cm9sICovCiNkZWZpbmUgWEdYU19BRERSRVNTX1JFU0VUX0xPMQkweDgwMDAJCS8qIFZlbmRvci1TcGVjaWZpYyBSZXNldCBMbyAxICovCiNkZWZpbmUgWEdYU19BRERSRVNTX1JFU0VUX0xPMgkweDgwMDEJCS8qIFZlbmRvci1TcGVjaWZpYyBSZXNldCBMbyAyICovCiNkZWZpbmUgWEdYU19BRERSRVNTX1JFU0VUX0hJMQkweDgwMDIJCS8qIFZlbmRvci1TcGVjaWZpYyBSZXNldCBIaSAxICovCiNkZWZpbmUgWEdYU19BRERSRVNTX1JFU0VUX0hJMgkweDgwMDMJCS8qIFZlbmRvci1TcGVjaWZpYyBSZXNldCBIaSAyICovCgovKiBYUyBDb250cm9sIDEgcmVnaXN0ZXIgYml0IGRlZmluaXRpb25zICovCiNkZWZpbmUgWEdYU19DT05UUk9MMV9SRVNFVAkweDgwMDAJCS8qIFJlc2V0IC0gc2VsZiBjbGVhcmluZyAqLwojZGVmaW5lIFhHWFNfQ09OVFJPTDFfTE9PUEJBQ0sJMHg0MDAwCQkvKiBFbmFibGUgbG9vcGJhY2sgKi8KI2RlZmluZSBYR1hTX0NPTlRST0wxX1NQRUVEMQkweDIwMDAJCS8qIDAgPSB1bnNwZWNpZmllZCwgMSA9IDEwR2IrICovCiNkZWZpbmUgWEdYU19DT05UUk9MMV9MT1dQT1dFUgkweDA0MDAJCS8qIDEgPSBMb3cgcG93ZXIgbW9kZSAqLwojZGVmaW5lIFhHWFNfQ09OVFJPTDFfU1BFRUQyCTB4MDA0MAkJLyogU2FtZSBhcyBTUEVFRDEgKD8pICovCi8qIEV2ZXJ5dGhpbmcgcmVzZXJ2ZWQgZXhjZXB0IHplcm8gKD8pICovCiNkZWZpbmUgWEdYU19DT05UUk9MMV9TUEVFRAkweDAwM0MKCi8qIFhTIFN0YXR1cyAxIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucyAqLwojZGVmaW5lIFhHWFNfU1RBVFVTMV9GQVVMVAkweDAwODAJCS8qIEZhdWx0IGRldGVjdGVkICovCiNkZWZpbmUgWEdYU19TVEFUVVMxX0xJTksJMHgwMDA0CQkvKiAxID0gTGluayB1cCAqLwojZGVmaW5lIFhHWFNfU1RBVFVTMV9MT1dQT1dFUgkweDAwMDIJCS8qIDEgPSBMb3cgcG93ZXIgc3VwcG9ydGVkICovCgovKiBYUyBTcGVlZCByZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMgKi8KI2RlZmluZSBYR1hTX1NQRUVEXzEwRwkJMHgwMDAxCQkvKiAxID0gMTBHIGNhcGFibGUgKi8KCi8qIFhTIERldmljZXMgcmVnaXN0ZXIgYml0IGRlZmluaXRpb25zICovCiNkZWZpbmUgWEdYU19ERVZJQ0VTX0RURQkweDAwMjAJCS8qIERURSBYUyBQcmVzZW50ICovCiNkZWZpbmUgWEdYU19ERVZJQ0VTX1BIWQkweDAwMTAJCS8qIFBIWSBYUyBQcmVzZW50ICovCiNkZWZpbmUgWEdYU19ERVZJQ0VTX1BDUwkweDAwMDgJCS8qIFBDUyBQcmVzZW50ICovCiNkZWZpbmUgWEdYU19ERVZJQ0VTX1dJUwkweDAwMDQJCS8qIFdJUyBQcmVzZW50ICovCiNkZWZpbmUgWEdYU19ERVZJQ0VTX1BNRAkweDAwMDIJCS8qIFBNRC9QTUEgUHJlc2VudCAqLwojZGVmaW5lIFhHWFNfREVWSUNFU19DTEFVU0UyMgkweDAwMDEJCS8qIENsYXVzZSAyMiByZWdpc3RlcnMgcHJlc2VudCovCgovKiBYUyBEZXZpY2VzIEhpZ2ggcmVnaXN0ZXIgYml0IGRlZmluaXRpb25zICovCiNkZWZpbmUgWEdYU19ERVZJQ0VTX1ZFTkRPUjIJMHg4MDAwCQkvKiBWZW5kb3Igc3BlY2lmaWMgZGV2aWNlIDIgKi8KI2RlZmluZSBYR1hTX0RFVklDRVNfVkVORE9SMQkweDQwMDAJCS8qIFZlbmRvciBzcGVjaWZpYyBkZXZpY2UgMSAqLwoKLyogWFMgU3RhdHVzIDIgcmVnaXN0ZXIgYml0IGRlZmluaXRpb25zICovCiNkZWZpbmUgWEdYU19TVEFUVVMyX0RFVl9NQVNLCTB4QzAwMAkJLyogRGV2aWNlIHByZXNlbnQgbWFzayAqLwojZGVmaW5lIFhHWFNfU1RBVFVTMl9ERVZfUkVTUE9ORAkweDgwMDAJLyogRGV2aWNlIHJlc3BvbmRpbmcgKi8KI2RlZmluZSBYR1hTX1NUQVRVUzJfWE1UX0ZBVUxUCTB4MDgwMAkJLyogVHJhbnNtaXQgZmF1bHQgKi8KI2RlZmluZSBYR1hTX1NUQVRVUzJfUkNWX0ZBVUxUCTB4MDQwMAkJLyogUmVjZWl2ZSBmYXVsdCAqLwoKLyogWFMgUGFja2FnZSBJRCBIaWdoIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucyAqLwojZGVmaW5lIFhHWFNfUEtHSURfSElHSF9PUkcJMHhGQzAwCQkvKiBPcmdhbml6YXRpb25hbGx5IFVuaXF1ZSAqLwojZGVmaW5lIFhHWFNfUEtHSURfSElHSF9NRkcJMHgwM0YwCQkvKiBNYW51ZmFjdHVyZXIgTW9kZWwgKi8KI2RlZmluZSBYR1hTX1BLR0lEX0hJR0hfUkVWCTB4MDAwRgkJLyogUmV2aXNpb24gTnVtYmVyICovCgovKiBYUyBMYW5lIFN0YXR1cyByZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMgKi8KI2RlZmluZSBYR1hTX0xBTkVfUEhZCQkweDEwMDAJLyogUEhZL0RURSBsYW5lIGFsaWdubWVudCBzdGF0dXMgKi8KI2RlZmluZSBYR1hTX0xBTkVfUEFUVEVSTgkweDA4MDAJCS8qIFBhdHRlcm4gdGVzdGluZyBhYmlsaXR5ICovCiNkZWZpbmUgWEdYU19MQU5FX0xPT1BCQUNLCTB4MDQwMAkJLyogUEhZIGxvb3BiYWNrIGFiaWxpdHkgKi8KI2RlZmluZSBYR1hTX0xBTkVfU1lOQzMJCTB4MDAwOAkJLyogTGFuZSAzIHN5bmMgKi8KI2RlZmluZSBYR1hTX0xBTkVfU1lOQzIJCTB4MDAwNAkJLyogTGFuZSAyIHN5bmMgKi8KI2RlZmluZSBYR1hTX0xBTkVfU1lOQzEJCTB4MDAwMgkJLyogTGFuZSAxIHN5bmMgKi8KI2RlZmluZSBYR1hTX0xBTkVfU1lOQzAJCTB4MDAwMQkJLyogTGFuZSAwIHN5bmMgKi8KCi8qIFhTIFRlc3QgQ29udHJvbCByZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMgKi8KI2RlZmluZSBYR1hTX1RFU1RfUEFUVEVSTl9FTkFCTEUJMHgwMDA0CS8qIFRlc3QgcGF0dGVybiBlbmFibGVkICovCiNkZWZpbmUgWEdYU19URVNUX1BBVFRFUk5fTUFTSwkweDAwMDMJCS8qIFRlc3QgcGF0dGVybnMgKi8KI2RlZmluZSBYR1hTX1RFU1RfUEFUVEVSTl9SU1ZECTB4MDAwMwkJLyogVGVzdCBwYXR0ZXJuIC0gcmVzZXJ2ZWQgKi8KI2RlZmluZSBYR1hTX1RFU1RfUEFUVEVSTl9NSVgJMHgwMDAyCQkvKiBUZXN0IHBhdHRlcm4gLSBtaXhlZCAqLwojZGVmaW5lIFhHWFNfVEVTVF9QQVRURVJOX0xPVwkweDAwMDEJCS8qIFRlc3QgcGF0dGVybiAtIGxvdyAqLwojZGVmaW5lIFhHWFNfVEVTVF9QQVRURVJOX0hJR0gJMHgwMDAxCQkvKiBUZXN0IHBhdHRlcm4gLSBoaWdoICovCgovKgogKiBFeHRlcm5hbCBNRElPIEJ1cyBSZWdpc3RlcnMKICoKICogRnVsbCByZWdpc3RlciBkZXNjcmlwdGlvbnMgY2FuIGJlIGZvdW5kIGluIFBIWS9YRU5QQUsvSUVFRSBzcGVjcwogKi8KLyoKICogTEFTSSAoTGluayBBbGFybSBTdGF0dXMgSW50ZXJydXB0KSBSZWdpc3RlcnMgKGxvY2F0ZWQgaW4KICogTUlJTV9ERVZfUEhZX1BNQSBkZXZpY2UpCiAqLwojZGVmaW5lIExBU0lfUlhfQUxBUk1fQ09OVFJPTAkweDkwMDAJCS8qIExBU0kgUlhfQUxBUk0gQ29udHJvbCAqLwojZGVmaW5lIExBU0lfVFhfQUxBUk1fQ09OVFJPTAkweDkwMDEJCS8qIExBU0kgVFhfQUxBUk0gQ29udHJvbCAqLwojZGVmaW5lIExBU0lfQ09OVFJPTAkJMHg5MDAyCQkvKiBMQVNJIENvbnRyb2wgKi8KI2RlZmluZSBMQVNJX1JYX0FMQVJNX1NUQVRVUwkweDkwMDMJCS8qIExBU0kgUlhfQUxBUk0gU3RhdHVzICovCiNkZWZpbmUgTEFTSV9UWF9BTEFSTV9TVEFUVVMJMHg5MDA0CQkvKiBMQVNJIFRYX0FMQVJNIFN0YXR1cyAqLwojZGVmaW5lIExBU0lfU1RBVFVTCQkweDkwMDUJCS8qIExBU0kgU3RhdHVzICovCgovKiBMQVNJX0NPTlRST0wgYml0IGRlZmluaXRpb25zICovCi8qIEVuYWJsZSBSWF9BTEFSTSBpbnRlcnJ1cHRzICovCiNkZWZpbmUJTEFTSV9DVExfUlhfQUxBUk1fRU5BQkxFCTB4MDAwNAovKiBFbmFibGUgVFhfQUxBUk0gaW50ZXJydXB0cyAqLwojZGVmaW5lCUxBU0lfQ1RMX1RYX0FMQVJNX0VOQUJMRQkweDAwMDIKLyogRW5hYmxlIExpbmsgU3RhdHVzIGludGVycnVwdHMgKi8KI2RlZmluZQlMQVNJX0NUTF9MU19BTEFSTV9FTkFCTEUJMHgwMDAxCgovKiBMQVNJX1NUQVRVUyBiaXQgZGVmaW5pdGlvbnMgKi8KI2RlZmluZQlMQVNJX1NUQVRVU19SWF9BTEFSTQkweDAwMDQJCS8qIFJYX0FMQVJNIHN0YXR1cyAqLwojZGVmaW5lCUxBU0lfU1RBVFVTX1RYX0FMQVJNCTB4MDAwMgkJLyogVFhfQUxBUk0gc3RhdHVzICovCiNkZWZpbmUJTEFTSV9TVEFUVVNfTFNfQUxBUk0JMHgwMDAxCQkvKiBMaW5rIFN0YXR1cyAqLwoKLyogUEhZIHJlZ2lzdGVycyAtIFBNQS9QTUQgKGRldmljZSAxKSAqLwojZGVmaW5lCVBIWV9QTUFfQ09OVFJPTDEJMHgwMDAwCQkvKiBQTUEvUE1EIENvbnRyb2wgMSAqLwojZGVmaW5lCVBIWV9QTUFfU1RBVFVTMQkJMHgwMDAxCQkvKiBQTUEvUE1EIFN0YXR1cyAxICovCiNkZWZpbmUJUEhZX1BNQV9SQ1ZfREVUCQkweDAwMEEJLyogUE1BL1BNRCBSZWNlaXZlIFNpZ25hbCBEZXRlY3QgKi8KCQkvKiBvdGhlciBQTUEvUE1EIHJlZ2lzdGVycyBleGlzdCBhbmQgY2FuIGJlIGRlZmluZWQgYXMgbmVlZGVkICovCgovKiBQSFkgcmVnaXN0ZXJzIC0gUENTIChkZXZpY2UgMykgKi8KI2RlZmluZQlQSFlfUENTX0NPTlRST0wxCTB4MDAwMAkJLyogUENTIENvbnRyb2wgMSAqLwojZGVmaW5lCVBIWV9QQ1NfU1RBVFVTMQkJMHgwMDAxCQkvKiBQQ1MgU3RhdHVzIDEgKi8KI2RlZmluZQlQSFlfUENTXzEwR19TVEFUVVMxCTB4MDAyMAkJLyogUENTIDEwR0JBU0UtUiBTdGF0dXMgMSAqLwoJCS8qIG90aGVyIFBDUyByZWdpc3RlcnMgZXhpc3QgYW5kIGNhbiBiZSBkZWZpbmVkIGFzIG5lZWRlZCAqLwoKLyogUEhZIHJlZ2lzdGVycyAtIFhTIChkZXZpY2UgNCkgKi8KI2RlZmluZQlQSFlfWFNfQ09OVFJPTDEJCTB4MDAwMAkJLyogWFMgQ29udHJvbCAxICovCiNkZWZpbmUJUEhZX1hTX1NUQVRVUzEJCTB4MDAwMQkJLyogWFMgU3RhdHVzIDEgKi8KI2RlZmluZQlQSFlfWFNfTEFORV9TVEFUVVMJMHgwMDE4CQkvKiBYUyBMYW5lIFN0YXR1cyAqLwoJCS8qIG90aGVyIFhTIHJlZ2lzdGVycyBleGlzdCBhbmQgY2FuIGJlIGRlZmluZWQgYXMgbmVlZGVkICovCgovKiBQSFlfUE1BX0NPTlRST0wxIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucyAqLwojZGVmaW5lCVBNQV9DT05UUk9MMV9SRVNFVAkweDgwMDAJCS8qIFBNQS9QTUQgcmVzZXQgKi8KCi8qIFBIWV9QTUFfUkNWX0RFVCByZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMgKi8KI2RlZmluZQlQTUFfUkNWX0RFVEVDVAkJMHgwMDAxCS8qIFBNQS9QTUQgcmVjZWl2ZSBzaWduYWwgZGV0ZWN0ICovCgovKiBQSFlfUENTXzEwR19TVEFUVVMxIHJlZ2lzdGVyIGJpdCBkZWZpbml0aW9ucyAqLwojZGVmaW5lCVBDU18xMEJfQkxPQ0tfTE9DSwkweDAwMDEJLyogUENTIDEwR0JBU0UtUiBsb2NrZWQgdG8gcmVjZWl2ZSBibG9ja3MgKi8KCi8qIFBIWV9YU19MQU5FX1NUQVRVUyByZWdpc3RlciBiaXQgZGVmaW5pdGlvbnMgKi8KI2RlZmluZQlYU19MQU5FX0FMSUdOCQkweDEwMDAJCS8qIFhTIHRyYW5zbWl0IGxhbmVzIGFsaWduZWQgKi8KCiNkZWZpbmUgWENWUl9WRU5ET1JfTEVOCQkxNiAgLyogeGN2ciB2ZW5kb3IgbGVuICovCiNkZWZpbmUgWENWUl9NT0RFTF9MRU4JCTE2ICAvKiB4Y3ZyIG1vZGVsIGxlbiAqLwoKLyogUEhZIE1pY3JvY29kZSBkb3dubG9hZCBkYXRhIHN0cnVjdHVyZSAqLwpzdHJ1Y3QgcGh5X3Vjb2RlIHsKCXVzaG9ydAlBZGRyOwoJdXNob3J0CURhdGE7Cn07CgovKiBTbG93IEJ1cyBSZWdpc3RlciBEZWZpbml0aW9ucyAqLwoKLyogTW9kdWxlIDAgcmVnaXN0ZXJzICovCiNkZWZpbmUgR1BJT19MX0lOCQkweDE1CQkvKiBHUElPIGlucHV0IChsb3cpICovCiNkZWZpbmUgR1BJT19MX09VVAkJMHgxNgkJLyogR1BJTyBvdXRwdXQgKGxvdykgKi8KI2RlZmluZSBHUElPX0xfRElSCQkweDE3CQkvKiBHUElPIGRpcmVjdGlvbiAobG93KSAqLwojZGVmaW5lIEdQSU9fSF9JTgkJMHgxOQkJLyogR1BJTyBpbnB1dCAoaGlnaCkgKi8KI2RlZmluZSBHUElPX0hfT1VUCQkweDFBCQkvKiBHUElPIG91dHB1dCAoaGlnaCkgKi8KI2RlZmluZSBHUElPX0hfRElSCQkweDFCCQkvKiBHUElPIGRpcmVjdGlvbiAoaGlnaCkgKi8KCi8qIERlZmluaXRpb25zIGZvciBvdGhlciBzbG93IGJ1cyByZWdpc3RlcnMgY2FuIGJlIGFkZGVkIGFzIG5lZWRlZCAqLwoKCi8qCiAqIFRyYW5zbWl0IFNlcXVlbmNlciBDb21tYW5kIERlc2NyaXB0b3IgZGVmaW5pdGlvbnMKICoKICogVGhpcyBkZXNjcmlwdG9yIG11c3QgYmUgcGxhY2VkIGluIEdSQU0uICBUaGUgYWRkcmVzcyBvZiB0aGlzIGRlc2NyaXB0b3IKICogKGFsb25nIHdpdGggYSBjb3VwbGUgb2YgY29udHJvbCBiaXRzKSBpcyBwdXNoZWQgb250byB0aGUgUHhoQ21kUSBvciBQeGxDbWRRCiAqIChQcm94eSBoaWdoIG9yIGxvdyBjb21tYW5kIHF1ZXVlKS4gIFRoaXMgZGF0YSBpcyByZWFkIGJ5IHRoZSBQcm94eSBTZXF1ZW5jZXIsCiAqIHdoaWNoIHB1c2hlcyBpdCBvbnRvIHRoZSBYbXRDbWRRLCB3aGljaCBpcyAoZXZlbnR1YWxseSkgcmVhZCBieSB0aGUgVHJhbnNtaXQKICogU2VxdWVuY2VyLCBjYXVzaW5nIGEgcGFja2V0IHRvIGJlIHRyYW5zbWl0dGVkLiAgTm90IGFsbCBmaWVsZHMgYXJlIHZhbGlkIGZvcgogKiBhbGwgY29tbWFuZHMgLSBzZWUgdGhlIFNhaGFyYSBzcGVjIGZvciBkZXRhaWxzLiAgTm90ZSB0aGF0IHRoaXMgc3RydWN0dXJlIGlzCiAqIG9ubHkgdmFsaWQgd2hlbiBjb21waWxlZCBvbiBhIGxpdHRsZSBlbmRpYW4gbWFjaGluZS4KICovCiNwcmFnbWEgcGFjayhwdXNoLCAxKQpzdHJ1Y3QgeG10X2Rlc2MgewoJdXNob3J0CSAgICAgICAgWG10TGVuOwkgICAgLyogd29yZCAwLCBiaXRzIFsxNTowXSAtICB0cmFuc21pdCBsZW5ndGggKi8KCS8qIHdvcmQgMCwgYml0cyBbMjM6MTZdIC0gdHJhbnNtaXQgY29udHJvbCBieXRlICovCgl1bnNpZ25lZCBjaGFyCVhtdEN0bDsKCS8qIHdvcmQgMCwgYml0cyBbMzE6MjRdIC0gdHJhbnNtaXQgY29tbWFuZCBwbHVzIG1pc2MuICovCgl1bnNpZ25lZCBjaGFyCUNtZDsKCS8qIHdvcmQgMSwgYml0cyBbMzE6MF0gLSAgdHJhbnNtaXQgYnVmZmVyIElEICovCgl1MzIJWG10QnVmSWQ7CgkvKiB3b3JkIDIsIGJpdHMgWzc6MF0gLSAgIGJ5dGUgYWRkcmVzcyBvZiBUQ1AgaGVhZGVyICovCgl1bnNpZ25lZCBjaGFyCVRjcFN0cnQ7CgkvKiB3b3JkIDIsIGJpdHMgWzE1OjhdIC0gIGJ5dGUgYWRkcmVzcyBvZiBJUCBoZWFkZXIgKi8KCXVuc2lnbmVkIGNoYXIJSXBTdHJ0OwoJLyogd29yZCAyLCBiaXRzIFszMToxNl0gLSBwYXJ0aWFsIElQIGNoZWNrc3VtICovCgl1c2hvcnQJSXBDa1N1bTsKCS8qIHdvcmQgMywgYml0cyBbMTU6MF0gLSAgcGFydGlhbCBUQ1AgY2hlY2tzdW0gKi8KCXVzaG9ydAlUY3BDa1N1bTsKCXVzaG9ydAlSc3ZkMTsJCSAgICAvKiB3b3JkIDMsIGJpdHMgWzMxOjE2XSAtIFBBRCAqLwoJdTMyCVJzdmQyOwkJICAgIC8qIHdvcmQgNCwgYml0cyBbMzE6MF0gLSAgUEFEICovCgl1MzIJUnN2ZDM7CQkgICAgLyogd29yZCA1LCBiaXRzIFszMTowXSAtICBQQUQgKi8KCXUzMglSc3ZkNDsJCSAgICAvKiB3b3JkIDYsIGJpdHMgWzMxOjBdIC0gIFBBRCAqLwoJdTMyCVJzdmQ1OwkJICAgIC8qIHdvcmQgNywgYml0cyBbMzE6MF0gLSAgUEFEICovCn07CiNwcmFnbWEgcGFjayhwb3ApCgovKiBzdHJ1Y3QgeG10X2Rlc2MgQ21kIGJ5dGUgZGVmaW5pdGlvbnMgKi8KCQkvKiBjb21tYW5kIGNvZGVzICovCiNkZWZpbmUgWE1UX0RFU0NfQ01EX1JBV19TRU5ECQkwCS8qIHJhdyBzZW5kIGRlc2NyaXB0b3IgKi8KI2RlZmluZSBYTVRfREVTQ19DTURfQ1NVTV9JTlNFUlQJMQkvKiBjaGVja3N1bSBpbnNlcnQgZGVzY3JpcHRvciAqLwojZGVmaW5lIFhNVF9ERVNDX0NNRF9GT1JNQVQJCTIJLyogZm9ybWF0IGRlc2NyaXB0b3IgKi8KI2RlZmluZSBYTVRfREVTQ19DTURfUFJJTUUJCTMJLyogcHJpbWUgZGVzY3JpcHRvciAqLwovKiBjb21hbmQgY29kZSBzaGlmdCAoc2hpZnQgdG8gYml0cyBbMzE6MzBdIGluIHdvcmQgMCkgKi8KI2RlZmluZSBYTVRfREVTQ19DTURfQ09ERV9TSEZUCQk2CgkJLyogc2hpZnRlZCBjb21tYW5kIGNvZGVzICovCiNkZWZpbmUgWE1UX1JBV19TRU5ECShYTVRfREVTQ19DTURfUkFXX1NFTkQgICAgPDwgWE1UX0RFU0NfQ01EX0NPREVfU0hGVCkKI2RlZmluZSBYTVRfQ1NVTV9JTlNFUlQJKFhNVF9ERVNDX0NNRF9DU1VNX0lOU0VSVCA8PCBYTVRfREVTQ19DTURfQ09ERV9TSEZUKQojZGVmaW5lIFhNVF9GT1JNQVQJKFhNVF9ERVNDX0NNRF9GT1JNQVQgICAgICA8PCBYTVRfREVTQ19DTURfQ09ERV9TSEZUKQojZGVmaW5lIFhNVF9QUklNRQkoWE1UX0RFU0NfQ01EX1BSSU1FICAgICAgIDw8IFhNVF9ERVNDX0NNRF9DT0RFX1NIRlQpCgovKgogKiBzdHJ1Y3QgeG10X2Rlc2MgQ29udHJvbCBCeXRlIChYbXRDdGwpIGRlZmluaXRpb25zCiAqIE5PVEU6ICBUaGVzZSBiaXRzIGRvIG5vdCB3b3JrIG9uIFNhaGFyYSAoUmV2IEEpIQogKi8KLyogY3VycmVudCBmcmFtZSBpcyBhIHBhdXNlIGNvbnRyb2wgZnJhbWUgKGZvciBzdGF0aXN0aWNzKSAqLwojZGVmaW5lCVhNVF9DVExfUEFVU0VfRlJBTUUJCTB4ODAKLyogY3VycmVudCBmcmFtZSBpcyBhIGNvbnRyb2wgZnJhbWUgKGZvciBzdGF0aXN0aWNzKSAqLwojZGVmaW5lCVhNVF9DVExfQ09OVFJPTF9GUkFNRQkJMHg0MAojZGVmaW5lCVhNVF9DVExfUEVSX1BLVF9RVUFMCQkweDIwCS8qIHBlciBwYWNrZXQgcXVhbGlmaWVyICovCiNkZWZpbmUJWE1UX0NUTF9QQURfTU9ERV9OT05FCQkweDAwCS8qIGRvIG5vdCBwYWQgZnJhbWUgKi8KI2RlZmluZQlYTVRfQ1RMX1BBRF9NT0RFXzY0CQkweDA4CS8qIHBhZCBmcmFtZSB0byA2NCBieXRlcyAqLwovKiBwYWQgZnJhbWUgdG8gNjQgYnl0ZXMsIGFuZCBWTEFOIGZyYW1lcyB0byA2OCBieXRlcyAqLwojZGVmaW5lCVhNVF9DVExfUEFEX01PREVfVkxBTl82OAkweDEwCiNkZWZpbmUJWE1UX0NUTF9QQURfTU9ERV82OAkJMHgxOAkvKiBwYWQgZnJhbWUgdG8gNjggYnl0ZXMgKi8KLyogZ2VuZXJhdGUgRkNTIChDUkMpIGZvciB0aGlzIGZyYW1lICovCiNkZWZpbmUJWE1UX0NUTF9HRU5fRkNTCQkJMHgwNAojZGVmaW5lCVhNVF9DVExfREVMQVlfRkNTXzAJCTB4MDAJLyogZG8gbm90IGRlbGF5IEZDUyBjYWxjdXRpb24gKi8KLyogZGVsYXkgRkNTIGNhbGN1bGF0aW9uIGJ5IDEgKDQtYnl0ZSkgd29yZCAqLwojZGVmaW5lCVhNVF9DVExfREVMQVlfRkNTXzEJCTB4MDEKLyogZGVsYXkgRkNTIGNhbGN1bGF0aW9uIGJ5IDIgKDQtYnl0ZSkgd29yZHMgKi8KI2RlZmluZQlYTVRfQ1RMX0RFTEFZX0ZDU18yCQkweDAyCi8qIGRlbGF5IEZDUyBjYWxjdWxhdGlvbiBieSAzICg0LWJ5dGUpIHdvcmRzICovCiNkZWZpbmUJWE1UX0NUTF9ERUxBWV9GQ1NfMwkJMHgwMwoKLyogc3RydWN0IHhtdF9kZXNjIFhtdEJ1ZklkIGRlZmluaXRpb24gKi8KLyoKICogVGhlIFhtdCBidWZmZXIgSUQgaXMgZm9ybWVkIGJ5IGRpdmlkaW5nIHRoZSBidWZmZXIgKERSQU0pIGFkZHJlc3MKICogYnkgMjU2IChvciA8PCA4KQogKi8KCiNkZWZpbmUgWE1UX0JVRl9JRF9TSEZUCQk4CgovKiBSZWNlaXZlciBTZXF1ZW5jZXIgRGVmaW5pdGlvbnMgKi8KCi8qIFJlY2VpdmUgRXZlbnQgUXVldWUgKHF1ZXVlcyAzIC0gNikgYml0IGRlZmluaXRpb25zICovCi8qIGJpdCBtYXNrIGZvciB0aGUgUmVjZWl2ZSBCdWZmZXIgSUQgKi8KI2RlZmluZQlSQ1ZfRVZUUV9SQkZJRF9NQVNLCTB4MDAwMEZGRkYKCi8qIFJlY2VpdmUgQnVmZmVyIElEIGRlZmluaXRpb24gKi8KLyoKICogVGhlIFJjdiBidWZmZXIgSUQgaXMgZm9ybWVkIGJ5IGRpdmlkaW5nIHRoZSBidWZmZXIgKERSQU0pIGFkZHJlc3MKICogYnkgMzIgKG9yIDw8IDUpCiAqLwojZGVmaW5lIFJDVl9CVUZfSURfU0hGVAkJNQoKLyoKICogRm9ybWF0IG9mIHRoZSAxOCBieXRlIFJlY2VpdmUgQnVmZmVyIHJldHVybmVkIGJ5IHRoZQogKiBSZWNlaXZlIFNlcXVlbmNlciBmb3IgcmVjZWl2ZWQgcGFja2V0cwogKi8KI3ByYWdtYSBwYWNrKHB1c2gsIDEpCnN0cnVjdCByY3ZfYnVmX2hkciB7Cgl1MzIJU3RhdHVzOwkJLyogU3RhdHVzIHdvcmQgZnJvbSBSY3YgU2VxIFBhcnNlciAqLwoJdXNob3J0CUxlbmd0aDsJCS8qIFJjdiBwYWNrZXQgYnl0ZSBjb3VudCAqLwoJdW5pb24gewoJCXVzaG9ydAkJVGNwQ3N1bTsJLyogVENQIGNoZWNrc3VtICovCgkJc3RydWN0IHsKCQkJLyogbG93ZXIgOCBiaXRzIG9mIHRoZSBUQ1AgY2hlY2tzdW0gKi8KCQkJdW5zaWduZWQgY2hhcglUY3BDc3VtTDsKCQkJLyogTGluayBoYXNoIChtdWx0aWNhc3QgZnJhbWVzIG9ubHkpICovCgkJCXVuc2lnbmVkIGNoYXIJTGlua0hhc2g7CgkJfTsKCX07Cgl1c2hvcnQJU2t0SGFzaDsJCS8qIFNvY2tldCBoYXNoICovCgl1bnNpZ25lZCBjaGFyCVRjcEhkck9mZnNldDsJLyogVENQIGhlYWRlciBvZmZzZXQgaW50byBwYWNrZXQgKi8KCXVuc2lnbmVkIGNoYXIJSXBIZHJPZmZzZXQ7CS8qIElQIGhlYWRlciBvZmZzZXQgaW50byBwYWNrZXQgKi8KCXUzMgkgICAgICAgCVRwekhhc2g7CS8qIFRvZXBsaXR6IGhhc2ggKi8KCXVzaG9ydAkgICAgICAgIFJlc2VydmVkOwkvKiBSZXNlcnZlZCAqLwp9OwojcHJhZ21hIHBhY2socG9wKQoKLyogUXVldWUgZGVmaW5pdGlvbnMgKi8KCi8qIEluZ3Jlc3MgKHJlYWQgb25seSkgcXVldWUgbnVtYmVycyAqLwojZGVmaW5lIFBYWV9CVUZfUQkwCS8qIFByb3h5IEJ1ZmZlciBRdWV1ZSAqLwojZGVmaW5lIEhTVF9FVlRfUQkxCS8qIEhvc3QgRXZlbnQgUXVldWUgKi8KI2RlZmluZSBYTVRfQlVGX1EJMgkvKiBUcmFuc21pdCBCdWZmZXIgUXVldWUgKi8KI2RlZmluZSBTS1RfRVZMX1EJMwkvKiBSY3ZTcXIgU29ja2V0IEV2ZW50IExvdyBQcmlvcml0eSBRdWV1ZSAqLwojZGVmaW5lIFJDVl9FVkxfUQk0CS8qIFJjdlNxciBSY3YgRXZlbnQgTG93IFByaW9yaXR5IFF1ZXVlICovCiNkZWZpbmUgU0tUX0VWSF9RCTUJLyogUmN2U3FyIFNvY2tldCBFdmVudCBIaWdoIFByaW9yaXR5IFF1ZXVlICovCiNkZWZpbmUgUkNWX0VWSF9RCTYJLyogUmN2U3FyIFJjdiBFdmVudCBIaWdoIFByaW9yaXR5IFF1ZXVlICovCiNkZWZpbmUgRE1BX1JTUF9RCTcJLyogRG1hIFJlc3BvbnNlIFF1ZXVlIC0gb25lIHBlciBDUFUgY29udGV4dCAqLwovKiBMb2NhbCAocmVhZC93cml0ZSkgcXVldWUgbnVtYmVycyAqLwojZGVmaW5lIExPQ0FMX0FfUQk4CS8qIFNwYXJlIGxvY2FsIFF1ZXVlICovCiNkZWZpbmUgTE9DQUxfQl9RCTkJLyogU3BhcmUgbG9jYWwgUXVldWUgKi8KI2RlZmluZSBMT0NBTF9DX1EJMTAJLyogU3BhcmUgbG9jYWwgUXVldWUgKi8KI2RlZmluZSBGU01fRVZUX1EJMTEJLyogRmluaXRlLVN0YXRlLU1hY2hpbmUgRXZlbnQgUXVldWUgKi8KI2RlZmluZSBTQkZfUEFMX1EJMTIJLyogU3lzdGVtIEJ1ZmZlciBQaHlzaWNhbCBBZGRyZXNzIChsb3cpIFF1ZXVlICovCiNkZWZpbmUgU0JGX1BBSF9RCTEzCS8qIFN5c3RlbSBCdWZmZXIgUGh5c2ljYWwgQWRkcmVzcyAoaGlnaCkgUXVldWUqLwojZGVmaW5lIFNCRl9WQUxfUQkxNAkvKiBTeXN0ZW0gQnVmZmVyIFZpcnR1YWwgQWRkcmVzcyAobG93KSBRdWV1ZSAqLwojZGVmaW5lIFNCRl9WQUhfUQkxNQkvKiBTeXN0ZW0gQnVmZmVyIFZpcnR1YWwgQWRkcmVzcyAoaGlnaCkgUXVldWUgKi8KLyogRWdyZXNzICh3cml0ZSBvbmx5KSBxdWV1ZSBudW1iZXJzICovCiNkZWZpbmUgSDJHX0NNRF9RCTE2CS8qIEhvc3QgdG8gR2xiUmFtIERNQSBDb21tYW5kIFF1ZXVlICovCiNkZWZpbmUgSDJEX0NNRF9RCTE3CS8qIEhvc3QgdG8gRFJBTSBETUEgQ29tbWFuZCBRdWV1ZSAqLwojZGVmaW5lIEcySF9DTURfUQkxOAkvKiBHbGJSYW0gdG8gSG9zdCBETUEgQ29tbWFuZCBRdWV1ZSAqLwojZGVmaW5lIEcyRF9DTURfUQkxOQkvKiBHbGJSYW0gdG8gRFJBTSBETUEgQ29tbWFuZCBRdWV1ZSAqLwojZGVmaW5lIEQySF9DTURfUQkyMAkvKiBEUkFNIHRvIEhvc3QgRE1BIENvbW1hbmQgUXVldWUgKi8KI2RlZmluZSBEMkdfQ01EX1EJMjEJLyogRFJBTSB0byBHbGJSYW0gRE1BIENvbW1hbmQgUXVldWUgKi8KI2RlZmluZSBEMkRfQ01EX1EJMjIJLyogRFJBTSB0byBEUkFNIERNQSBDb21tYW5kIFF1ZXVlICovCiNkZWZpbmUgUFhMX0NNRF9RCTIzCS8qIExvdyBQcmlvcml0eSBQcm94eSBDb21tYW5kIFF1ZXVlICovCiNkZWZpbmUgUFhIX0NNRF9RCTI0CS8qIEhpZ2ggUHJpb3JpdHkgUHJveHkgQ29tbWFuZCBRdWV1ZSAqLwojZGVmaW5lIFJTUV9DTURfUQkyNQkvKiBSZWNlaXZlIFNlcXVlbmNlciBDb21tYW5kIFF1ZXVlICovCiNkZWZpbmUgUkNWX0JVRl9RCTI2CS8qIFJlY2VpdmUgQnVmZmVyIFF1ZXVlICovCgovKiBCaXQgZGVmaW5pdGlvbnMgZm9yIHRoZSBQcm94eSBDb21tYW5kIHF1ZXVlcyAoUFhMX0NNRF9RIGFuZCBQWEhfQ01EX1EpICovCi8qIGVuYWJsZSBjb3B5IG9mIHhtdCBkZXNjcmlwdG9yIHRvIHhtdCBjb21tYW5kIHF1ZXVlICovCiNkZWZpbmUgUFhZX0NPUFlfRU4JMHgwMDIwMDAwMAojZGVmaW5lIFBYWV9TSVpFXzE2CTB4MDAwMDAwMDAJLyogY29weSAxNiBieXRlcyAqLwojZGVmaW5lIFBYWV9TSVpFXzMyCTB4MDAxMDAwMDAJLyogY29weSAzMiBieXRlcyAqLwoKLyogU1hHIEVFUFJPTS9GbGFzaCBDb25maWd1cmF0aW9uIERlZmluaXRpb25zICovCgovKiBMb2NhdGlvbiBvZiBjb25maWd1cmF0aW9uIGRhdGEgaW4gRUVQUk9NIG9yIEZsYXNoICovCi8qIHN0YXJ0IGFkZHIgZm9yIGNvbmZpZyBpbmZvIGluIEVFUFJPTSAqLwojZGVmaW5lCUVFUFJPTV9DT05GSUdfU1RBUlRfQUREUgkweDAwCi8qIHN0YXJ0IGFkZHIgZm9yIGNvbmZpZyBpbmZvIGluIEZsYXNoICovCiNkZWZpbmUJRkxBU0hfQ09ORklHX1NUQVJUX0FERFIJCTB4ODAKCi8qIENvbmZpZ3VyYXRpb24gZGF0YSBzZWN0aW9uIGRlZmluZXMgKi8KI2RlZmluZQlIV19DRkdfU0VDVElPTl9TSVpFCTUxMgkvKiBzaXplIG9mIEgvVyBzZWN0aW9uICovCiNkZWZpbmUJSFdfQ0ZHX1NFQ1RJT05fU0laRV9BCTI1NgkvKiBzaXplIG9mIEgvVyBzZWN0aW9uIChTYWhhcmEgcmV2IEEpICovCi8qIHN0YXJ0aW5nIGxvY2F0aW9uIChvZmZzZXQpIG9mIFMvVyBzZWN0aW9uICovCiNkZWZpbmUJU1dfQ0ZHX1NFQ1RJT05fU1RBUlQJNTEyCi8qIHN0YXJ0aW5nIGxvY2F0aW9uIChvZmZzZXQpIG9mIFMvVyBzZWN0aW9uIChTYWhhcmEgcmV2IEEpICovCiNkZWZpbmUJU1dfQ0ZHX1NFQ1RJT05fU1RBUlRfQQkyNTYKI2RlZmluZQlTV19DRkdfU0VDVElPTl9TSVpFCTEyOAkvKiBzaXplIG9mIFMvVyBzZWN0aW9uICovCi8qCiAqIEgvVyBjb25maWd1cmF0aW9uIGRhdGEgbWFnaWMgd29yZCBHb2VzIGluIEFkZHIgZmllbGQgb2YgZmlyc3QKICogc3RydWN0IGh3X2NmZ19kYXRhIGVudHJ5CiAqLwojZGVmaW5lCUhXX0NGR19NQUdJQ19XT1JECTB4QTVBNQovKgogKiBIL1cgY29uZmlndXJhdGlvbiBkYXRhIHRlcm1pbmF0b3IgIEdvZXMgaW4gQWRkciBmaWVsZCBvZiBsYXN0CiAqIHN0cnVjdCBod19jZmdfZGF0YSBlbnRyeQogKi8KI2RlZmluZQlIV19DRkdfVEVSTUlOQVRPUgkweEZGRkYKCiNkZWZpbmUJU1dfQ0ZHX01BR0lDX1dPUkQJMHg1QTVBCS8qIFMvVyBjb25maWd1cmF0aW9uIGRhdGEgbWFnaWMgd29yZCAqLwoKI3ByYWdtYSBwYWNrKHB1c2gsIDEpCi8qCiAqIFN0cnVjdHVyZSBmb3IgYW4gZWxlbWVudCBvZiBIL1cgY29uZmlndXJhdGlvbiBkYXRhLgogKiBSZWFkIGJ5IHRoZSBTYWhhcmEgaGFyZHdhcmUKICovCnN0cnVjdCBod19jZmdfZGF0YSB7Cgl1c2hvcnQJQWRkcjsKCXVzaG9ydAlEYXRhOwp9OwoKLyoKICogTnVtYmVyIG9mIHN0cnVjdCBod19jZmdfZGF0YSBzdHJ1Y3R1cmVzIHRvIHB1dCBpbiB0aGUgY29uZmlndXJhdGlvbiBkYXRhCiAqIGRhdGEgc3RydWN0dXJlIChzdHJ1Y3Qgc3hnX2NvbmZpZyBvciBzdHJ1Y3Qgc3hnX2NvbmZpZ19hKS4gIFRoZSBudW1iZXIgaXMKICogY29tcHV0ZWQgdG8gZmlsbCB0aGUgZW50aXJlIEgvVyBjb25maWcgc2VjdGlvbiBvZiB0aGUgc3RydWN0dXJlLgogKi8KI2RlZmluZQlOVU1fSFdfQ0ZHX0VOVFJJRVMJCQkJCQlcCgkJCShIV19DRkdfU0VDVElPTl9TSVpFIC8gc2l6ZW9mKHN0cnVjdCBod19jZmdfZGF0YSkpCiNkZWZpbmUJTlVNX0hXX0NGR19FTlRSSUVTX0EJCQkJCQlcCgkJCShIV19DRkdfU0VDVElPTl9TSVpFX0EgLyBzaXplb2Yoc3RydWN0IGh3X2NmZ19kYXRhKSkKCi8qIE1BQyBhZGRyZXNzIHN0cnVjdHVyZSAqLwpzdHJ1Y3Qgc3hnX2NvbmZpZ19tYWMgewoJdW5zaWduZWQgY2hhcglNYWNBZGRyWzZdOwkvKiBNQUMgQWRkcmVzcyAqLwp9OwoKLyogRlJVIGRhdGEgc3RydWN0dXJlICovCnN0cnVjdCBhdGtfZnJ1IHsKCXVuc2lnbmVkIGNoYXIJCVBhcnROdW1bNl07Cgl1bnNpZ25lZCBjaGFyCQlSZXZpc2lvblsyXTsKCXVuc2lnbmVkIGNoYXIJCVNlcmlhbFsxNF07Cn07CgovKiBPRU0gRlJVIEZvcm1hdCB0eXBlcyAqLwojZGVmaW5lCUFUS19GUlVfRk9STUFUCQkweDAwMDAKI2RlZmluZSBDUFFfRlJVX0ZPUk1BVAkJMHgwMDAxCiNkZWZpbmUgREVMTF9GUlVfRk9STUFUCQkweDAwMDIKI2RlZmluZSBIUF9GUlVfRk9STUFUCQkweDAwMDMKI2RlZmluZSBJQk1fRlJVX0ZPUk1BVAkJMHgwMDA0CiNkZWZpbmUgRU1DX0ZSVV9GT1JNQVQJCTB4MDAwNQojZGVmaW5lIE5PX0ZSVV9GT1JNQVQJCTB4RkZGRgoKI2RlZmluZQlBVEtfT0VNX0FTU1lfU0laRQkxMAkvKiBhc3N5IG51bSBpcyA5IGNoYXJzIHBsdXMgXDAgKi8KCi8qIE9FTSBGUlUgc3RydWN0dXJlIGZvciBBbGFjcml0ZWNoICovCnN0cnVjdCBhdGtfb2VtIHsKCXVuc2lnbmVkIGNoYXIgQXNzeVtBVEtfT0VNX0FTU1lfU0laRV07Cn07CgojZGVmaW5lCU9FTV9FRVBST01fRlJVU0laRQk3NAkvKiBzaXplIG9mIE9FTSBmcnUgaW5mbyAtIHNpemUgKi8KLyogY2hvc2VuIHRvIGZpbGwgb3V0IHRoZSBTL1cgc2VjdGlvbiAqLwoKdW5pb24gb2VtX2ZydSB7CQkJLyogT0VNIEZSVSBpbmZvcm1hdGlvbiAqLwoJdW5zaWduZWQgY2hhciBPZW1GcnVbT0VNX0VFUFJPTV9GUlVTSVpFXTsKCXN0cnVjdCBhdGtfb2VtIEF0a09lbTsKfTsKCi8qIFN0cnVjdHVyZSB0byBob2xkIHRoZSBTL1cgY29uZmlndXJhdGlvbiBkYXRhLiAqLwpzdHJ1Y3Qgc3dfY2ZnX2RhdGEgewoJdXNob3J0CQkJTWFnaWNXb3JkOwkvKiBNYWdpYyB3b3JkIGZvciBzZWN0aW9uIDIgKi8KCXVzaG9ydAkJCVZlcnNpb247CS8qIEZvcm1hdCB2ZXJzaW9uICovCglzdHJ1Y3Qgc3hnX2NvbmZpZ19tYWMJTWFjQWRkcls0XTsJLyogc3BhY2UgZm9yIDQgTUFDIGFkZHJlc3NlcyAqLwoJc3RydWN0IGF0a19mcnUJCUF0a0ZydTsJCS8qIEZSVSBpbmZvcm1hdGlvbiAqLwoJdXNob3J0CQkJT2VtRnJ1Rm9ybWF0OwkvKiBPRU0gRlJVIGZvcm1hdCB0eXBlICovCgl1bmlvbiBvZW1fZnJ1CQlPZW1GcnU7CQkvKiBPRU0gRlJVIGluZm9ybWF0aW9uICovCgl1c2hvcnQJCQlDaGVja3N1bTsJLyogQ2hlY2tzdW0gb2Ygc2VjdGlvbiAyICovCn07CgoKLyogRUVQUk9NL0ZsYXNoIEZvcm1hdCAqLwpzdHJ1Y3Qgc3hnX2NvbmZpZyB7CgkvKiBIL1cgU2VjdGlvbiAtIFJlYWQgYnkgU2FoYXJhIGhhcmR3YXJlICg1MTIgYnl0ZXMpICovCglzdHJ1Y3QgaHdfY2ZnX2RhdGEJCUh3Q2ZnW05VTV9IV19DRkdfRU5UUklFU107CgkvKiBTL1cgU2VjdGlvbiAtIE90aGVyIGNvbmZpZ3VyYXRpb24gZGF0YSAoMTI4IGJ5dGVzKSAqLwoJc3RydWN0IHN3X2NmZ19kYXRhCVN3Q2ZnOwp9OwoKI2lmZGVmIFdJTkRPV1NfQ09NUElMRVIKLyoKICogIFRoZSBmb2xsb3dpbmcgbWFjcm8gaXMgc29tZXRoaW5nIG9mIGEga2x1ZGdlLCBidXQgaXQgaXMgdGhlIG9ubHkgd2F5CiAqIHRoYXQgSSBjb3VsZCBmaW5kIHRvIGNhdGNoIGNlcnRhaW4gcHJvZ3JhbW1pbmcgZXJyb3JzIGF0IGNvbXBpbGUgdGltZS4KICogSWYgdGhlIGFzc2VydGVkIGNvbmRpdGlvbiBpcyB0cnVlLCB0aGVuIG5vdGhpbmcgaGFwcGVucy4gIElmIGZhbHNlLCB0aGVuCiAqIHRoZSBjb21waWxlciB0cmllcyB0byB0eXBlZGVmIGFuIGFycmF5IHdpdGggLTEgbWVtYmVycywgd2hpY2ggZ2VuZXJhdGVzCiAqIGFuIGVycm9yLiAgVW5mb3J0dW5hdGVseSwgdGhlIGVycm9yIG1lc3NhZ2UgaXMgbWVhbmluZ2xlc3MsIGJ1dCBhdCBsZWFzdAogKiBpdCBjYXRjaGVzIHRoZSBwcm9ibGVtLiAgVGhpcyBtYWNybyB3b3VsZCBiZSB1bm5lY2Vzc2FyeSBpZiB0aGUgY29tcGlsZXIKICogYWxsb3dlZCB0aGUgc2l6ZW9mIGFuZCBvZmZzZXRvZiBtYWNyb3MgdG8gYmUgdXNlZCBpbiB0aGUgI2lmIGRpcmVjdGl2ZS4KICovCiNkZWZpbmUgY29tcGlsZV90aW1lX2Fzc2VydChjb25kKSBcCiAgICB0eXBlZGVmIGNoYXIgY29tcF9lcnJvclsoY29uZCkgPyAxIDogLTFdCgovKgogKiBBIGNvbXBpbGVyIGVycm9yIG9uIGVpdGhlciBvZiB0aGUgbmV4dCB0d28gbGluZXMgaW5kaWNhdGVzIHRoYXQgdGhlIHN0cnVjdCBzeGdfY29uZmlnCiAqIHN0cnVjdHVyZSB3YXMgYnVpbHQgaW5jb3JyZWN0bHkuICBVbmZvcnR1bmF0ZWx5LCB0aGUgZXJyb3IgbWVzc2FnZSBwcm9kdWNlZAogKiBpcyBtZWFuaW5nbGVzcy4gIEJ1dCB0aGlzIGlzIGFwcGFyZW50bHkgdGhlIG9ubHkgd2F5IHRvIGNhdGNoIHRoaXMgcHJvYmxlbQogKiBhdCBjb21waWxlIHRpbWUuCiAqLwpjb21waWxlX3RpbWVfYXNzZXJ0IChvZmZzZXRvZihzdHJ1Y3Qgc3hnX2NvbmZpZywgU3dDZmcpID09IFNXX0NGR19TRUNUSU9OX1NUQVJUKTsKY29tcGlsZV90aW1lX2Fzc2VydCAoc2l6ZW9mKHN0cnVjdCBzeGdfY29uZmlnKSA9PSBIV19DRkdfU0VDVElPTl9TSVpFCgkJCQkJCQkrIFNXX0NGR19TRUNUSU9OX1NJWkUpOwoKY29tcGlsZV90aW1lX2Fzc2VydCAob2Zmc2V0b2Yoc3RydWN0IHN4Z19jb25maWdfYSwgU3dDZmcpCgkJCQkJCSA9PSBTV19DRkdfU0VDVElPTl9TVEFSVF9BKTsKY29tcGlsZV90aW1lX2Fzc2VydCAoc2l6ZW9mKHN0cnVjdCBzeGdfY29uZmlnX2EpID09IEhXX0NGR19TRUNUSU9OX1NJWkVfQQoJCQkJCQkgKyBTV19DRkdfU0VDVElPTl9TSVpFKTsKI2VuZGlmCi8qCiAqIFN0cnVjdHVyZSB1c2VkIHRvIHBhc3MgaW5mb3JtYXRpb24gYmV0d2VlbiBkcml2ZXIgYW5kIHVzZXItbW9kZQogKiBjb250cm9sIGFwcGxpY2F0aW9uCiAqLwpzdHJ1Y3QgYWRhcHRfdXNlcmluZm8gewoJYm9vbAkJICAgIExpbmtVcDsKCS8qIHVzZSBMaW5rVXAgLSBhbnkgbmVlZCBmb3Igb3RoZXIgc3RhdGVzPyAqLwoJLyogdTMyICAJICAgIExpbmtTdGF0ZTsgKi8KCXUzMiAJCSAgICBMaW5rU3BlZWQ7CQkvKiBub3QgY3VycmVudGx5IG5lZWRlZCAqLwoJdTMyIAkJICAgIExpbmtEdXBsZXg7CQkvKiBub3QgY3VycmVudGx5IG5lZWRlZCAqLwogCWVudW0geGN2cl90eXBlCSAgICBYY3ZyVHlwZTsJCS8qIHR5cGUgb2YgeGN2ciBvbiBmaWJlciBjYXJkICovCgkvKiBmaWJlciBjYXJkIHhjdnIgdmVuZG9yICovCgl1bnNpZ25lZCBjaGFyCQlYY3ZyVmVuZG9yW1hDVlJfVkVORE9SX0xFTl07Cgl1bnNpZ25lZCBjaGFyCQlYY3ZyTW9kZVtYQ1ZSX01PREVMX0xFTl07Cgl1MzIgCQkgICAgUG9ydDsJCS8qIG5vdCBjdXJyZW50bHkgbmVlZGVkICovCgl1MzIgCQkgICAgUGh5c1BvcnQ7CQkvKiBub3QgY3VycmVudGx5IG5lZWRlZCAqLwoJdXNob3J0CQkgICAgUGNpTGFuZXM7Cgl1bnNpZ25lZCBjaGFyCU1hY0FkZHJbNl07Cgl1bnNpZ25lZCBjaGFyICAgQ3Vyck1hY0FkZHJbNl07CglzdHJ1Y3QgYXRrX2ZydQkgICAgQXRrRnJ1OwoJdXNob3J0ICAJICAgIE9lbUZydUZvcm1hdDsKCXVuaW9uIG9lbV9mcnUJICAgIE9lbUZydTsKfTsKCiNwcmFnbWEgcGFjayhwb3ApCgovKiBNaXNjZWxsYW5lb3VzIEhhcmR3YXJlIGRlZmluaXRpb25zICovCgovKiBIYXJkd2FyZSBUeXBlIGRlZmluaXRpb25zICAqLwoKLyogU2FoYXJhIChBU0lDIGxldmVsKSBkZWZpbmVzICovCiNkZWZpbmUgU0FIQVJBX0dSQU1fU0laRQkweDAyMDAwMAkvKiBHUkFNIHNpemUgLSAxMjggS0IgKi8KI2RlZmluZSBTQUhBUkFfRFJBTV9TSVpFCTB4MjAwMDAwCS8qIERSQU0gc2l6ZSAtIDIgTUIgKi8KLyogUVJBTSBzaXplIC0gMTZLIGVudHJpZXMgKDY0IEtCKSAqLwojZGVmaW5lIFNBSEFSQV9RUkFNX1NJWkUJMHgwMDQwMDAKLyogV0NTIC0gOEsgaW5zdHJ1Y3Rpb25zICh4IDEwOCBiaXRzKSAqLwojZGVmaW5lIFNBSEFSQV9XQ1NfU0laRQkJMHgwMDIwMDAKCi8qIEFyYWJpYSAoYm9hcmQgbGV2ZWwpIGRlZmluZXMgKi8KI2RlZmluZQlGTEFTSF9TSVpFCQkweDA4MDAwMAkvKiA1MTIgS0IgKDQgTWIpICovCi8qIEVFUFJPTSBzaXplIChieXRlcyksIGluY2x1ZGluZyB4Zm1yIGFyZWEgKi8KI2RlZmluZQlFRVBST01fU0laRV9YRk1SCTEwMjQKLyogRUVQUk9NIHNpemUgZXhjbHVkaW5nIHhmbXIgYXJlYSAoNTEyICsgMTI4KSAqLwojZGVmaW5lCUVFUFJPTV9TSVpFX05PX1hGTVIJNjQwCi8qIEVFUFJPTSBzaXplIGZvciBTYWhhcmEgcmV2IEEgKi8KI2RlZmluZQlFRVBST01fU0laRV9SRVZfQQk1MTIK