LyoqCiAqIEBmaWxlIG1lc3NhZ2UuaAogKiBAYnJpZWYgtqjS5dOm08O5q7myz/vPorbTwdBrZXksIM/7z6LM5Swgz/vPosP8we5JRCwgt6LLzc/7z6K1xEFQSb3Tv9oKICogQ29weXJpZ2h0IChDKSAyMDE3IFNhbmVjaGlwcyBUZWNobm9sb2d5IENvLiwgTHRkLgogKiBAYXV0aG9yCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCiAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKgogKi8KCiNpZm5kZWYgX01FU1NBR0VfSF8KI2RlZmluZSBfTUVTU0FHRV9IXwoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCgojaW5jbHVkZSAibWF4X21hY3JvLmgiCgovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSBkZWZpbml0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaWZuZGVmIERPWFlHRU5fU0hPVUxEX1NLSVBfVEhJUwovKioKICogQGJyaWVmILj306bTw8Sjv+m1xM/7z6JJRKOs08PT2s/7z6K208HQtcTJ+rPJo6zS1Lyw1rjKvs/7z6LK1beixKO/6QogKiBAbm90ZSBNT0RVTEVfSURfVVNFUl9CQVNFse3Kvr/Nu6e/qrei06bTw9fUtqjS5cSjv+nP+8+iSUS1xMbwyry14wogKi8KCi8qIC0tIEFQusu05tTatcTEo7/pSUSjrNPDu6fQwtT206bTw8Sjv+lJRNDo0qq2qNLl1Nq0y2VudW3W0LXETU9EVUxFX0lEX1VTRVJfQkFTRbbOIC0tICovCnR5cGVkZWYgZW51bSBBUF9Nb2R1bGVfSUR7CglNT0RVTEVfSURfQVBCQVNFID0gMHgxMDAwLAkJLypBULrLxKO/6UlExvDKvLXY1rejrNfutPPWtTwweDIwMDAoTU9EVUxFX0lEX0NQQkFTRSkqLwoJTU9EVUxFX0lEX1dFQl9DR0ksCQkJCS8qV0VCIENHScSjv+m1xM/7z6K208HQSUQqLwoJTU9EVUxFX0lEX1NMQUFDLAoJTU9EVUxFX0lEX1dJRkksCQkJCQkvKndpZmkgY29udHJvbCovCglNT0RVTEVfSURfV0xBTl9TRVJWRVIsCQkJLyp3aWZp19S8urj419S8ureiz/vPorao0uW1xG1zZyBpZCovCglNT0RVTEVfSURfTU1JLAoJTU9EVUxFX0lEX0ZMVVhTVEFULAkJCQkvKmZsdXhzdGF0Ki8KCU1PRFVMRV9JRF9BUF9SVENfU0VSVklDRSwKCU1PRFVMRV9JRF9TTVMsCQkJCQkvKlNNU8/7z6K208HQw/uzxiovCglNT0RVTEVfSURfU01TX0xPQ0FMLAkJCS8qU01Tz/vPorbTwdDD+7PGLCBTTVPEo7/pxNqyv8q508OjrLfFtMu0prHj09rNs9K7udzA7SovCglNT0RVTEVfSURfUEIsCQkJCQkvKlBCz/vPorbTwdDD+7PGKi8KCU1PRFVMRV9JRF9QQl9MT0NBTCwJCQkJLypQQs/7z6K208HQw/uzxiwgUELEo7/pxNqyv8q508OjrLfFtMu0prHj09rNs9K7udzA7SovCglNT0RVTEVfSURfU05UUCwKCU1PRFVMRV9JRF9QUFBELAoJTU9EVUxFX0lEX1dEVCwKCglNT0RVTEVfSURfQVBfQVRfQ1RMLAkJCS8qYXQgY3RsxKO/6UlEKi8KCU1PRFVMRV9JRF9TTElDLAkJCQkJLypzbGljxKO/6bXEz/vPorbTwdBJRCovCglNT0RVTEVfSURfRE0sCQkJCQkvKkRNxKO/6SovCglNT0RVTEVfSURfRE1fUE9MTElORywJCQkvKkRNIFBPTExJTkcqLwoJTU9EVUxFX0lEX0RNX1dFQlVJX0FULAoJTU9EVUxFX0lEX0ZBQ19ESUFMLAkJCQkvKsn6svqy4srUxKO/6SC1xM/7z6K208HQSUQqLwoJTU9EVUxFX0lEX1RSMDY5LAkJCQkvKlRSMDY5IMSjv+kqLwoJTU9EVUxFX0lEX01BSU5fQ1RSTCwJCQkvKtb3v9jEo7/pSUQqLwoJTU9EVUxFX0lEX1pTU0lELAoJTU9EVUxFX0lEX0xPR19BR0VOVCwKCU1PRFVMRV9JRF9MT0NBTFVQREFURSwJCQkvKmxvY2FsVXBkYXRlSUQqLwoJTU9EVUxFX0lEX1BBUkVOVF9DT05UUk9MX1NFVCwKCU1PRFVMRV9JRF9XUEFfU1VQUExJQ0FOVCwKCU1PRFVMRV9JRF9FTUJNU19DVFJMLAoJTU9EVUxFX0lEX0hPVFBMVUcsCQkJCS8qyMiy5bDOxKO/6UlEKi8KCU1PRFVMRV9JRF9WT0xURSwKCU1PRFVMRV9JRF9WT0xURV9URU1QMSwJLyq3z8b6o6zKudPDTU9EVUxFX0lEX0FUQ1RMX1RPX1ZPTFRFICovCglNT0RVTEVfSURfVk9MVEVfVEVNUDIsICAvKrfPxvqjrMq508NNT0RVTEVfSURfVk9MVEVfVE9fQVRDVEwgKi8KCglNT0RVTEVfSURfVVNCQ0ZHTU5HLCAgLyogtMu0psjntMu2qNLlysfOqsHLuPhWT0xURdSkwfTOsc2otcC6xSAqLwoJTU9EVUxFX0lEX0RSVkNPTU1ORywKCQoKCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCS8vtffTw834wue907/ayrG9q8Sjv+lJRNf3zqqyzsr9tKu13bj4zfjC58Sjv+kKCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCU1PRFVMRV9JRF9DQUxMX0NUUkwsCglNT0RVTEVfSURfQ0FMTF9DVFJMX0xPQ0FMLAoJTU9EVUxFX0lEX0NBTExfQ1RSTF9SU1AsCglNT0RVTEVfSURfTlYsCglNT0RVTEVfSURfVUlDVEwsCglNT0RVTEVfSURfSVNNUywKCU1PRFVMRV9JRF9ETVJFRywKCU1PRFVMRV9JRF9ETVNFTkRNU0csCglNT0RVTEVfSURfU0FGRUNBUkUsCglNT0RVTEVfSURfQ09ERUMsCQkJCS8qYXVkaW/W97/YKi8KCU1PRFVMRV9JRF9BVF9UT09MLAkJCQkvKtPD09q/2NbGyuTI62F0w/zB7rXE06bTwyovCglNT0RVTEVfSURfQVRfVEVTVCwJCQkJLyrTw9Pav9jWxsrkyOthdMP8we61xNOm08MqLwoJTU9EVUxFX0lEX0lQX1BST1hZLCAgICAgICAgICAgICAvKmlwIHByb3h5xKO/6UlEKi8KCglNT0RVTEVfSURfQklQLAkJCQkJLyogQklQ06bTwyAqLwoJTU9EVUxFX0lEX01ORVRfV0hJVEVMSVNULAkJLy93aGl0ZWxpc3TEo7/pCgoJLyogLS0tLS0gxr3MqMTasr++ssysxKO/6UlEtcS94c6yo6zGvcyoxNqyv9DC1PZJRNDozO2809Tayc+3vSAtLS0tLS0gKi8KCQoJLy/S1M/Czqq2r8ysttPB0LXESUSx6sq2o6y2r8ystLS9qLrNudix1aOssrvE3NPrvrLMrMSjv+lJRNK71sKjrMjOus7Ksb/MtePWu8Tc09DSu7j2yrnTw7e9CgkvL6OosrvXvNTa1tC85LLlyOvQwklEo6kKCU1PRFVMRV9JRF9TT0ZUVElNRVJfQkFTRSwJCQkJCQkJCQkJCQkvKkFQsuDI7baoyrHG97avzKxJRMbwyrzWtSovCglNT0RVTEVfSURfU09GVFRJTUVSX0VORCA9IE1PRFVMRV9JRF9TT0ZUVElNRVJfQkFTRSArIDB4MTAwLAkJCQkvKkFQsuDI7baoyrHG97avzKxJRL3hyvjWtSovCglNT0RVTEVfSURfQVBfQVREWU5BTUlDX0JBU0UsCQkJCQkJCQkJCQkvKkFQsuCy6dGvYXTD/MHutq/MrElExvDKvNa1Ki8KCU1PRFVMRV9JRF9BUF9BVERZTkFNSUNfRU5EID0gTU9EVUxFX0lEX0FQX0FURFlOQU1JQ19CQVNFICsgMHgxMDAsCQkvKkFQsuCy6dGvYXTD/MHutq/MrElEveHK+Na1Ki8KCU1PRFVMRV9JRF9BUF9BVURJT0RZTkFNSUNfQkFTRSwJCQkJCQkJCQkJCS8qQVCy4GF1ZGlvtq/MrElExvDKvNa1Ki8KCU1PRFVMRV9JRF9BUF9BVURJT0RZTkFNSUNfRU5EID0gTU9EVUxFX0lEX0FQX0FVRElPRFlOQU1JQ19CQVNFICsgMHgxMDAsCS8qQVCy4GF1ZGlvtq/MrElExvDKvNa1Ki8KCU1PRFVMRV9JRF9BUF9HRVRIT1NUQllOQU1FX0JBU0UsCQkJCQkJCQkJCSAvKmFwsuBnZXRob3N0YnluYW1ltq/MrElExvDKvNa1Ki8KCU1PRFVMRV9JRF9BUF9HRVRIT1NUQllOQU1FX0VORCA9IE1PRFVMRV9JRF9BUF9HRVRIT1NUQllOQU1FX0JBU0UgKyAweDEwMCwgLyphcLLgZ2V0aG9zdGJ5bmFtZbavzKxJRL3hyvjWtSovCgkvL0FQtq/MrLbTwdBFTkQKCgkvL7Wxx7BjbXV41+6089ans9Y0wrejrNDo0qrG9LavNLj2c29ja2V0IHByb3h5vfizzKOsyOe5+7rz0PhjbXV41+6089ans9a1xM2otcDK/dPQuMSx5KOs1PLV4sDv0rLQ6NKq0N64xAoJTU9EVUxFX0lEX1NPQ0tFVF9QUk9YWSwgICAgLy+/zbuntv60zr+qt6LTptPDuPbK/dans9YweDEwMLj2o6y/ybavzKzQ3rjECglNT0RVTEVfSURfU09DS0VUX1BST1hZX0VORCA9IE1PRFVMRV9JRF9TT0NLRVRfUFJPWFkgKyAzLCAKCU1PRFVMRV9JRF9HVU9ESUFOX0JBU0UsCglNT0RVTEVfSURfR1BTLCAgLy8JR1BT06bTw8Sjv+lJRAoJCgkvL2Fic3ZyCglNT0RVTEVfSURfQUJTVlIsCglNT0RVTEVfSURfQUJDTElFTlQsCgkKCS8vIGZvciBhdWRpby1jdHJsCglNT0RVTEVfSURfWkNPUkUsCglNT0RVTEVfSURfQ0FMTF8yM0csCglNT0RVTEVfSURfQ0xBTF9WT0xURSwKCU1PRFVMRV9JRF9aQ09SRV9URU1QLAoJTU9EVUxFX0lEX0NBTExfMjNHX1RFTVAsCglNT0RVTEVfSURfQ0xBTF9WT0xURV9URU1QLAoJTU9EVUxFX0lEX0xPQ0tORVQsCgkvL2t3YXRjaHRlc3QKCU1PRFVMRV9JRF9LV0FUQ0hfQ1RSTCwgLyq2+c2vytax7brzzKi3/s7xxKO/6UlEKi8KCU1PRFVMRV9JRF9LV0FUQ0hfQ1RSTF9MT0NBTCwKCU1PRFVMRV9JRF9NTUlfU1ZSLCAvKnp0ZV9waG9uZSBNTUm3/s7xsuPEo7/pSUQqLwoJTU9EVUxFX0lEX01NSV9TVlJfTE9DQUwsCgoJTU9EVUxFX0lEX0FNVCwJCgkKCS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCS8vv827p7b+tM6/qrei06bTw7XEz/vPorbTwdBJRMbwyryjrNfutPPWtbHY0Os8MHgyMDAwKE1PRFVMRV9JRF9DUEJBU0UpCgkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCglNT0RVTEVfSURfVVNFUl9CQVNFLAoJTU9EVUxFX0lEX0FQX0dQU19BUFAsCglNT0RVTEVfSURfVVNFUl9FTkQgPSBNT0RVTEVfSURfVVNFUl9CQVNFICsgMHgxMDAsCgoJTU9EVUxFX0lEX0FUQ1RMX1RPX1ZPTFRFLCAvKrK7ttTTpsq1vMrTptPDo6zWu8rH08PAtLHqyrbT61ZPTFRFzajRtrXEzrHNqLXAusWjrLTLTU9EVUxFSUS21NOmYXRfY3Rs1ve2r7eiy83H68fzuPhWT0xURbXEzrHNqLXAICovCglNT0RVTEVfSURfVk9MVEVfVE9fQVRDVEwgPSBNT0RVTEVfSURfQVRDVExfVE9fVk9MVEUgKzEwLCAvKrK7ttTTpsq1vMrTptPDo6zWu8rH08PAtLHqyrbT61ZPTFRFzajRtrXEzrHNqLXAusWjrLTLTU9EVUxFSUS21NOmVk9MVEXW97avt6LLzcfrx/O4+GF0X2N0bLXEzrHNqLXAICovCglNT0RVTEVfSURfVVNCSE9UUExVRywKCU1PRFVMRV9JRF9QT0NfQ1RSTCwgLypQT0O688yot/7O8cSjv+lJRCovCglNT0RVTEVfSURfU0VDVVJJVFlfTE9HLAoJTU9EVUxFX0lEX01CSU0sCglNT0RVTEVfSURfVlNJTSwKCiAgICAvL3ZvaWNlCiAgICBNT0RVTEVfSURfVk9JQ0VfU0VSVkVSLAogICAgTU9EVUxFX0lEX1ZPSUNFX0NMSUVOVCwKCU1PRFVMRV9JRF9XTEFOX1BST1hZLAkJLy9jYXCy4HdpZmm0+sDtCglNT0RVTEVfSURfTU5FVF9XSElURUxJU1RfUFJPWFksCQkvL2NhcLLgd2hpdGVsaXN0tPrA7Qp9IFRfQVBfTW9kdWxlX0lEOwoKLyogLS0tLS0tLS0tLS0tLSBDULrLtObU2rXExKO/6UlEo6zGvcyoxNqyv8q508OjrLK7v6q3xbj4v827pyAtLS0tLS0tLS0tLS0tICovCnR5cGVkZWYgZW51bSB7CglNT0RVTEVfSURfQ1BCQVNFID0gMHgyMDAwLAkJLypDULrLxKO/6UlExvDKvLXY1rcqLwoJTU9EVUxFX0lEX0JMLAoJTU9EVUxFX0lEX0ZQX0NMT0NLLAkJCQkvKsTW1tPEo7/pSUQqLwovLwlNT0RVTEVfSURfWkNPUkUsCglNT0RVTEVfSURfQ1BfQVRfQ1RMLAoJTU9EVUxFX0lEX0NQX1JUQ19TRVJWSUNFLAoJTU9EVUxFX0lEX0NQX01NSSwKCU1PRFVFTF9JRF9UQ0FSRCwKCU1PRFVMRV9JRF9DUF9HUFNfQVBQLAoKCS8vIGZvciBhdWRpbyBjdHJsCi8vCU1PRFVMRV9JRF9DQUxMXzIzRywKLy8JTU9EVUxFX0lEX0NMQUxfVk9MVEUsCi8vCU1PRFVMRV9JRF9aQ09SRV9URU1QLAovLwlNT0RVTEVfSURfQ0FMTF8yM0dfVEVNUCwKLy8JTU9EVUxFX0lEX0NMQUxfVk9MVEVfVEVNUCwKCQoJLy8vLy/S1M/Czqq2r8ysttPB0LXESUSx6sq2o6y2r8ystLS9qLrNudix1aOssrvE3NPrvrLMrMSjv+lJRNK71sKjrMjOus7Ksb/MtePWu8Tc09DSu7j2yrnTw7e9CgkvL6OosrvXvNTa1tC85LLlyOvQwklEo6kKCS8vTU9EVUxFX0lEX1NPRlRUSU1FUl9CQVNFLAoJLy9NT0RVTEVfSURfU09GVFRJTUVSX0VORCA9IE1PRFVMRV9JRF9TT0ZUVElNRVJfQkFTRSArIDB4MTAwLAoJTU9EVUxFX0lEX0NQX0FURFlOQU1JQ19CQVNFLAkJCQkJCQkJCQkJLypjcLLgsunRr2F0w/zB7ravzKxJRMbwyrzWtSovCglNT0RVTEVfSURfQ1BfQVREWU5BTUlDX0VORCA9IE1PRFVMRV9JRF9DUF9BVERZTkFNSUNfQkFTRSArIDB4MTAwLAkJLypjcLLgsunRr2F0w/zB7ravzKxJRL3hyvjWtSovCglNT0RVTEVfSURfQ1BfQVVESU9EWU5BTUlDX0JBU0UsCQkJCQkJCQkJCQkvKmNwsuBhdWRpb7avzKxJRMbwyrzWtSovCglNT0RVTEVfSURfQ1BfQVVESU9EWU5BTUlDX0VORCA9IE1PRFVMRV9JRF9DUF9BVURJT0RZTkFNSUNfQkFTRSArIDB4MTAwLAkvKmNwsuBhdWRpb7avzKxJRL3hyvjWtSovCgkvL0NQtq/MrLbTwdBFTkQKCglNT0RVTEVfSURfTUFYLCAvKtPQ0KdtZG91bGVpZLXE1+6089a1Ki8KfSBUX0NQX01vZHVsZV9JRDsKCiNpZiAwLy8oQVBQX09TX1RZUEUgPT0gQVBQX09TX1RPUykKI2RlZmluZSAgTU9EVUxFX0lEX0FUX0NUTCAgTU9EVUxFX0lEX0FQX0FUX0NUTAojZGVmaW5lICBNT0RVTEVfSURfRVhURVJOQUxfQVRfQ1RMICBNT0RVTEVfSURfQVBfQVRfQ1RMCiNkZWZpbmUgIE1PRFVMRV9JRF9SVENfU0VSVklDRSBNT0RVTEVfSURfQ1BfUlRDX1NFUlZJQ0UKI2RlZmluZSAgTU9EVUxFX0lEX0VYVEVSTkFMX1JUQ19TRVJWSUNFIE1PRFVMRV9JRF9BUF9SVENfU0VSVklDRQojZGVmaW5lICBNT0RVTEVfSURfQVREWU5BTUlDX0JBU0UgTU9EVUxFX0lEX0NQX0FURFlOQU1JQ19CQVNFCiNkZWZpbmUgIE1PRFVMRV9JRF9BVERZTkFNSUNfRU5EIE1PRFVMRV9JRF9DUF9BVERZTkFNSUNfRU5ECiNkZWZpbmUgIE1PRFVMRV9JRF9BVURJT0RZTkFNSUNfQkFTRSBNT0RVTEVfSURfQ1BfQVVESU9EWU5BTUlDX0JBU0UKI2RlZmluZSAgTU9EVUxFX0lEX0FVRElPRFlOQU1JQ19FTkQgTU9EVUxFX0lEX0NQX0FVRElPRFlOQU1JQ19FTkQKI2RlZmluZSAgTU9EVUxFX0lEX0dQU19BUFAgIE1PRFVMRV9JRF9DUF9HUFNfQVBQCi8vI2VsaWYoQVBQX09TX1RZUEUgPT0gQVBQX09TX0xJTlVYKQojZWxzZQojZGVmaW5lICBNT0RVTEVfSURfQVRfQ1RMICBNT0RVTEVfSURfQVBfQVRfQ1RMCiNkZWZpbmUgIE1PRFVMRV9JRF9FWFRFUk5BTF9BVF9DVEwgIE1PRFVMRV9JRF9BUF9BVF9DVEwKI2RlZmluZSAgTU9EVUxFX0lEX1JUQ19TRVJWSUNFIE1PRFVMRV9JRF9BUF9SVENfU0VSVklDRQojZGVmaW5lICBNT0RVTEVfSURfRVhURVJOQUxfUlRDX1NFUlZJQ0UgTU9EVUxFX0lEX0FQX1JUQ19TRVJWSUNFCiNkZWZpbmUgIE1PRFVMRV9JRF9BVERZTkFNSUNfQkFTRSBNT0RVTEVfSURfQVBfQVREWU5BTUlDX0JBU0UKI2RlZmluZSAgTU9EVUxFX0lEX0FURFlOQU1JQ19FTkQgTU9EVUxFX0lEX0FQX0FURFlOQU1JQ19FTkQKI2RlZmluZSAgTU9EVUxFX0lEX0FVRElPRFlOQU1JQ19CQVNFIE1PRFVMRV9JRF9BUF9BVURJT0RZTkFNSUNfQkFTRQojZGVmaW5lICBNT0RVTEVfSURfQVVESU9EWU5BTUlDX0VORCBNT0RVTEVfSURfQVBfQVVESU9EWU5BTUlDX0VORAojZGVmaW5lICBNT0RVTEVfSURfR1BTX0FQUCAgTU9EVUxFX0lEX0FQX0dQU19BUFAKI2VuZGlmCgovKiC2qNLluPfEo7/pSUS0psDttcTP+8+iwusgTVNHIENNRLe2zqcgKi8KZW51bSBNU0dfQ0RNX1NDT1BFIHsKCS8qKi8KCU1TR19DTURfTUFJTkNUUkxfQkFTRSAJPSAweDEwMDAsCglNU0dfQ01EX01BSU5DVFJMX0VORAk9IDB4MTUwMCwKCS8qKi8KCU1TR19DTURfQVRDVExfQkFTRSAJCT0gMHgxNTAxLAoJTVNHX0NNRF9BVENUTF9FTkQJCT0gMHgxODAwLAoJLyoqLwoJTVNHX0NNRF9BVENUTF9JTk5FUl9CQVNFID0gMHgxODAxLAoJTVNHX0NNRF9BVENUTF9JTk5FUl9FTkQJPSAweDIwMDAsCgkvKiovCglNU0dfQ01EX1NNU19CQVNFIAkJPSAweDIwMDEsCglNU0dfQ01EX1NNU19FTkQJCQk9IDB4MjIwMCwKCS8qKi8KCU1TR19DTURfUEJfQkFTRSAJCT0gMHgyMjAxLAoJTVNHX0NNRF9QQl9FTkQJCQk9IDB4MjQwMCwKCS8qKi8KCU1TR19DTURfQkxfQkFTRSAJCT0gMHgyNDAxLAoJTVNHX0NNRF9CTF9FTkQJCQk9IDB4MzUwMCwKCS8qKi8KCU1TR19DTURfT1RIRVJfQkFTRSAgCT0gMHgzNTAxLAoJTVNHX0NNRF9PVEhFUl9FTkQJCT0gMHg0MDAwLAoJLyoqLwoJTVNHX0NNRF9XSUZJX0JBU0UgCQk9IDB4NDAwMSwKCU1TR19DTURfV0lGSV9FTkQJCT0gMHg0MjAwLAoJLyoqLwoJTVNHX0NNRF9NTUlfQkFTRQkJPSAweDQyMDEsCglNU0dfQ01EX01NSV9FTkQJCQk9IDB4NDQwMCwKCS8qKi8KCU1TR19DTURfRk9UQV9CQVNFIAkJPSAweDQ0MDEsCglNU0dfQ01EX0ZPVEFfRU5ECQk9IDB4NDYwMCwKCgkvKiovCglNU0dfQ01EX0RNX0JBU0UgCQk9IDB4NDgwMSwKCU1TR19DTURfRE1fRU5ECQkJPSAweDUwMDAsCgkvKiovCglNU0dfQ01EX1JUQ19CQVNFIAkJPSAweDUwMDEsCglNU0dfQ01EX1JUQ19FTkQJCQk9IDB4NTIwMCwKCS8qKi8KCU1TR19DTURfVVNFUl9CQVNFIAkJPSAweDUyMDEsCglNU0dfQ01EX1VTRVJfRU5ECQk9IDB4NTcwMCwKCS8qKi8KCU1TR19DTURfRVhUQVRfQkFTRSAJCT0gMHg1NzAxLAoJTVNHX0NNRF9FWFRBVF9FTkQJCT0gMHg2MDAwLAoKCS8qKi8KCU1TR19DTURfU09DTVNHX0JBU0UJCT0gMHg2MDAxLAoJTVNHX0NNRF9TT0NNU0dfRU5ECQk9IDB4NjgwMCwKCQoJLyoqLwoJTVNHX0NNRF9MUV9CQVNFCQkgICAgPSAweDY4MDEsCglNU0dfQ01EX0xRX0VORAkJICAgID0gMHg2OTAwLAoKCS8qKi8KCU1TR19DTURfRFJWX0JBU0UgCQk9IDB4NjkwMSwKCU1TR19DTURfRFJWX0VORAkJCT0gMHg3MDAwLAoKCS8qd2lmaSBjYXAgaW50ZXIqLwoJTVNHX0NNRF9XSUZJX0NBUF9CQVNFIAkJPSAweDcyMDEsCglNU0dfQ01EX1dJRklfQ0FQX0VORAkJPSAweDc0MDAsCgoJLy9rd2F0Y2h0ZXN0CglNU0dfQ01EX0tXQVRDSF9CQVNFICAgICAgPSAweDgwMDEsCglNU0dfQ01EX0tXQVRDSF9FTkQgICAgICA9IDB4OTAwMCwKCgkvL2FtdCBkZXZpY2UgdGVzdAoJTVNHX0NNRF9BTVRfREVWSUNFX1RFU1RfQkFTRSAgICAgID0gMHg5MDAxLAoJTVNHX0NNRF9BTVRfREVWSUNFX1RFU1RfRU5EICAgICAgPSAweDkwQzgsCgogICAgLy9WT0lDRQoJTVNHX0NNRF9WT0lDRV9CQVNFICAgICAgPSAweDkwRDAsCglNU0dfQ01EX1ZPSUNFX0VORCAgICAgID0gMHg5MEZGLAoJCgkvL3BvY3N2cgoJTVNHX0NNRF9QT0NTVlJfQkFTRSAgICAgID0gMHg5MTAxLAoJTVNHX0NNRF9QT0NTVlJfRU5EICAgICAgPSAweDkyMDAsCgkKCS8vYWJzdnIKCU1TR19DTURfQUJTVlJfQkFTRSAgICAgID0gMHg5MjAxLAoJTVNHX0NNRF9BQlNWUl9FTkQgICAgICA9IDB4OTMwMCwKCgkvL21uZXRfd2hpdGVsaXN0CglNU0dfQ01EX01ORVRfV0hJVEVMSVNUX0JBU0UgICAgICA9IDB4OTMwMSwKCU1TR19DTURfTU5FVF9XSElURUxJU1RfRU5EICAgICAgPSAweDk0MDAsCn07CiNlbmRpZgoKI2RlZmluZSBNU0dfTUFHSUNfV09SRCAgICAgICAweDNBM0EzQTNBICAvKsixyqHEp8r119YqLwojZGVmaW5lIE1TR19UWVBFX0RFRkFVTFQgICAgIDEgICAvKmxNc2dUeXBlxKzIz7XEz/vPosDg0M0qLwojZGVmaW5lIE1TR19UWVBFX1NPRlRUSU1FUl9USU1FT1VUICAyICAgICAvKnNvZnQgdGltZXKzrMqxz/vPoizJvrP9tqjKscb3yb6z/bOsyrHP+8+iyrHQ6NKq1ri2qMDg0M0qLwoKLyq2qNLlzajTw7XEz/vPor3hubkqLwoKLyoqCiAqIEBicmllZiBtZXNzYWdlIHF1ZXVlIGJvZHkgZm9yIHByb2Nlc3NlcyB0byBleGNoYW5nZSBkYXRhCiAqIEBwYXJhbSBsTXNnVHlwZSDP+8+iwODQzaOs1eK49srH08PAtL/Y1sbP+8+iytXIobXE08XPyMuz0PK1xAogKiBAcGFyYW0gdXNUYXJnZXRNb2R1bGVJRCDEv7XExKO/6c/7z6K208HQSUQKICogQHBhcmFtIHVzU291cmNlTW9kdWxlSUQg1LTEo7/pz/vPorbTwdBJRAogKiBAcGFyYW0gdXNNc2dDbWQgz/vPosLro6zV4rj2ysfTw8C01rjKvs/7z6K1xMTayN3Kx8qyw7S1xAogKiBAcGFyYW0gdXNEYXRhTGVuINCvtPi1xNPQ0KfK/b7ds6S2yAogKiBAcGFyYW0gYXVjRGF0YUJ1ZiDQr7T4tcTT0NCnyv2+3WJ1ZmZlcgogKiBAcGFyYW0gdWxNYWdpYyDEp8r119ajrNX9s6PH6b/2z8LWtc6qTVNHX01BR0lDX1dPUkQKICovCnR5cGVkZWYgc3RydWN0IHRhZ01TR19CVUYgewoJbG9uZyAgIGxNc2dUeXBlOyAgICAgICAgICAgICAgICAvKs/7z6LA4NDNo6zV4rj2ysfTw8C0v9jWxs/7z6LK1cihtcTTxc/Iy7PQ8rXEKi8KCWludCBkc3RfaWQ7ICAgICAgICAgICAgICAgICAgICAgLyrEv7XExKO/6c/7z6K208HQSUQqLwoJaW50IHNyY19pZDsgICAgICAgICAgICAgICAgICAgICAvKtS0xKO/6c/7z6K208HQSUQqLwoJdW5zaWduZWQgc2hvcnQgdXNNc2dDbWQ7ICAgICAgICAvKs/7z6LC66Os1eK49srH08PAtNa4yr7P+8+itcTE2sjdysfKssO0tcQqLwoJdW5zaWduZWQgc2hvcnQgdXNEYXRhTGVuOyAgICAgICAvKtCvtPi1xNPQ0KfK/b7ds6S2yCovCgl1bnNpZ25lZCBsb25nICB1bE1hZ2ljOyAgICAgICAgIC8qxKfK9dfWo6zV/bOjx+m/9s/C1rXOqk1TR19NQUdJQ19XT1JEKi8KCXVuc2lnbmVkIGNoYXIgIGF1Y0RhdGFCdWZbTVNHX0RBVEFfTUFYX0xFTl07IC8q0K+0+LXE09DQp8r9vt1idWZmZXIqLwp9IE1TR19CVUY7CgoKCiNpZm5kZWYgRE9YWUdFTl9TSE9VTERfU0tJUF9USElTCi8qKgogKiBAYnJpZWYgzai5/UFUw/zB7reiy821xLrLvOTP+8+iCiAqIEBwYXJhbSB0YXJnZXRJZCC908rVz/vPorXExKO/6brFCiAqIEBwYXJhbSBwb3NpdGlvbiAgz/vPoreiy821xLe9z/IKICogQHBhcmFtIG1zZ19jbWQgIM/7z6JpZAogKiBAcGFyYW0gbGVuICDK/b7ds6S2yAogKiBAcGFyYW0gbXNnICDK/b7dxNrI3QogKi8KdHlwZWRlZiBzdHJ1Y3QgewoJaW50IHNyY0lkOwoJaW50IHRhcmdldElkOwoJdW5zaWduZWQgc2hvcnQgcG9zaXRpb247Cgl1bnNpZ25lZCBzaG9ydCBtc2dfY21kOwoJdW5zaWduZWQgc2hvcnQgbGVuOwoJdW5zaWduZWQgY2hhciAgbXNnW1NPQ19NU0dfTUFYX0xFTl07Cn0gVF9Tb2NfTXNnOwojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZgoKI2VuZGlmCgo=