Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php if(!defined('I0E2C1361B32671A33DBA214AB65AB715'))define('I0E2C1361B32671A33DBA214AB..
Decoded Output download
<?php
if(!defined('I0E2C1361B32671A33DBA214AB65AB715'))define('I0E2C1361B32671A33DBA214AB65AB715',__FILE__);eval(base64_decode('bmFtZXNwYWNlIGFwcFxhcGlcY29udHJvbGxlclx2MTt1c2UgYXBwXGFwaVxjb21tb25cQmFzZTt1c2UgYXBwXGFwaVxtb2RlbFx2MVxQcm9vZlRleHRDb3JlIGFzIFB0Q29yZU1vZGVsO3VzZSBhcHBcYXBpXG1vZGVsXHYxXEppZXhpIGFzIEppZXhpTW9kZWw7dXNlIGFwcFxDb21tb25cVG9vbHNcSHR0cDt1c2UgdGhpbmtcRGI7dXNlIGFwcFxhcGlcbW9kZWxcdjFcRGV0ZWN0aW9uVGV4dCBhcyBEVG1vZGVsO3VzZSBhcHBcYXBpXG1vZGVsXHYxXERpY3Rpb25hcnkgYXMgRGljdGlvbmFyeU1vZGVsO3VzZSBhcHBcQ29tbW9uXFRvb2xzXGNhY2hlXENhY2hlUmVkaXM7Y2xhc3MgQXBpSW5kZXggZXh0ZW5kcyBCYXNle3B1YmxpYyBmdW5jdGlvbiBfaW5pdGlhbGl6ZSgpeyRHTE9CQUxTW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI0QzZGNjM2MTZDNDM2RjcyNzI2NTYzNzQiKV09cGFjayhjaHIoNzIpLmNocig0MiksIjZENjk2NDc1NjM2ODY5NkU2MTVGNjM2RjZFIik7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MTYzNjM2NTczNzMyRDQzNkY2RTc0NzI2RjZDMkQ0MTZDNkM2Rjc3MkQ0RjcyNjk2NzY5NkUzQTIwMkEiKSk7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MTYzNjM2NTczNzMyRDQzNkY2RTc0NzI2RjZDMkQ0MTZDNkM2Rjc3MkQ0ODY1NjE2NDY1NzI3MzNBMjA0RjcyNjk2NzY5NkUyQzIwNTgyRDUyNjU3MTc1NjU3Mzc0NjU2NDJENTc2OTc0NjgyQzIwNDM2RjZFNzQ2NTZFNzQyRDU0Nzk3MDY1MkMyMDQxNjM2MzY1NzA3NCIpKTtzdHJwb3MoaXNzZXQoJF9FTlZbcGFjayhjaHIoNzIpLmNocig0MiksIjQ4NEY1MzU0NEU0MTRENDUiKV0pLCBwYWNrKGNocig3MikuY2hyKDQyKSwiNjY2MTZDNzM2NSIpKTt9cHVibGljIGZ1bmN0aW9uIGluZGV4KCl7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7aWYoJHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2NTYyNzU2NyIpXT09cGFjayhjaHIoNzIpLmNocig0MiksIjYyNkY3ODVGNzQ2NTczNzQiKSl7JGNpcGFuSWQ9JHRoaXMtPmdldF9jaXBhbklkKCk7ZGF0YV9kdW1wKHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFN0ExQUNFNEJCQjZFNEJGQTFFNjgxQUYyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEIikpO2RhdGFfZHVtcChwYWNrKGNocig3MikuY2hyKDQyKSwiNjM2OTcwNjE2RUVGQkM5QSIpIC4kY2lwYW5JZCk7ZGllO3N0cnBvcyhJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUscGFjayhjaHIoNzIpLmNocig0MiksIjY5NkU2NDY1NzgyRTcwNjg3MCIpKT4xO31tc2coMjAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3NzY1NkM2MzZGNkQ2NTIwNjM2RjcyNzI2NTYzNzQyMDY5NkU2NDY1NzgiKSk7d2hpbGUoX19MSU5FX189PTEmJl9fTElORV9fPT0yKXNldF9lcnJvcl9oYW5kbGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2Mzc1NzM3NDZGNkQ0NTcyNzI2RjcyIikpO31wdWJsaWMgZnVuY3Rpb24gdXNlcl9saXN0KCl7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7JHVzZXJfaW5mbz0kdGhpcy0+Z2V0QWxsVXNlcigpO2RpZTt3aGlsZShmaWxlX2V4aXN0cyhwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODdDNjM2RjZENkQyRTcwNjg3MCIpKSlyZXF1aXJlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNkQ2RDJFNzA2ODcwIikpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X2tleSgpeyRpbmZvPSR0aGlzLT5iX2dldF9rZXkoKTt3aGlsZSghaXNfZmlsZShJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUpKXJldHVybiAwO31wdWJsaWMgZnVuY3Rpb24gY2hlY2tfa2V5KCl7JGluZm89JHRoaXMtPmJfY2hlY2tfa2V5KDEscGFjayhjaHIoNzIpLmNocig0MiksIiIpLCR0aGlzLT5wYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSxbcGFjayhjaHIoNzIpLmNocig0MiksIjczNjk2NzZFIik9PiRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI3MzY5Njc2RSIpXV0pO3doaWxlKGZpbGVzaXplKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSk8MSlyZXR1cm4gdHJ1ZTt9cHVibGljIGZ1bmN0aW9uIGNoYW5nZV9rZXkoKXska2V5PWlucHV0KHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3MDZGNzM3NDJFNkI2NTc5IikpPzpwYWNrKGNocig3MikuY2hyKDQyKSwiIik7JGluZm89JHRoaXMtPmJfY2hlY2tfa2V5KDIsJGtleSk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTtzdHJwb3MoaXNzZXQoJF9FTlZbcGFjayhjaHIoNzIpLmNocig0MiksIjQ4NEY1MzU0NEU0MTRENDUiKV0pLCBwYWNrKGNocig3MikuY2hyKDQyKSwiNjY2MTZDNzM2NSIpKTt9cHVibGljIGZ1bmN0aW9uIGFkZF91c2VyKCl7JGluZm89JHRoaXMtPmJfYWRkX3VzZXIoJHRoaXMtPnBhcmFtcyk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTt3aGlsZShmaWxlc2l6ZShJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUpPDEpcmV0dXJuIHRydWU7fXB1YmxpYyBmdW5jdGlvbiBsb2dpbigpeyRpbmZvPSR0aGlzLT5iX2xvZ2luKCR0aGlzLT5wYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKF9fTElORV9fPT0xJiZfX0xJTkVfXz09MilzZXRfZXJyb3JfaGFuZGxlcihwYWNrKGNocig3MikuY2hyKDQyKSwiNjM3NTczNzQ2RjZENDU3MjcyNkY3MiIpKTt9cHVibGljIGZ1bmN0aW9uIGxvZ291dCgpeyRpbmZvPSR0aGlzLT5iX2xvZ291dCgkdGhpcy0+cGFyYW1zKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0pO2FycmF5KHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMTNBNzQ3Mjc1NjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzIzQTY2NjE2QzczNjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzMzQTcyNjU3NDc1NzI2RSIpKTt9cHVibGljIGZ1bmN0aW9uIGNoYW5waW5nX2FkZF91c2VyKCl7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7aWYoJHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2NTYyNzU2NyIpXSE9cGFjayhjaHIoNzIpLmNocig0MiksIjYyNkY3ODVGNzQ2NTczNzQiKSltc2coMzAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2NTcyNzI2RjcyMjA3MDYxNzI2MTZEIikpOyRpbmZvPSR0aGlzLT5jcF9hZGRfdXNlcigpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSk7d2hpbGUoZmlsZXNpemUoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1KTwxKXJldHVybiB0cnVlO31wdWJsaWMgZnVuY3Rpb24gYXJ0aWNsZV9jb3JyZWN0X2xvY2FsKCl7JHBhcmFtcz0kdGhpcy0+cGFyYW1zOyRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY2Njk2Qzc0NjU3MjVGNzQ3OTcwNjUiKV09MzskcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2QzZGNjc2OTZFNUY3NDc5NzA2NSIpXT0kdGhpcy0+bG9naW5fdHlwZTskcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI3NzZGNzI2NDc2MzQ1RjY4Njk2NDY0NjU2RSIpXT0xOyRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjc0NjM2ODY1NjM2QjVGNzQ3OTcwNjUiKV09MjskcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2QzZGNjM2MTZDNUY3NDc5NzA2NSIpXT0xOyRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjc1NzM2NTcyNUY2OTY0IildPSRHTE9CQUxTW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MTcwNjk1Rjc1NzM2NTcyNUY2OTZFNjY2RiIpXVtwYWNrKGNocig3MikuY2hyKDQyKSwiNzU3MzY1NzI1RjY5NjQiKV07JHBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjU3MjcyNkY3MjVGNzQ3OTcwNjU1RjY5NjQ3MyIpXT0kcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MTYyNjk2QzY5NzQ3OSIpXT86UHRDb3JlTW9kZWw6OmdldF9hcnRpY2xlX2NvcnJlY3RfcGFyYW1zKDEpO0ppZXhpTW9kZWw6OmFydGljbGVfY29ycmVjdF9saW1pdCgkcGFyYW1zLDEsMSk7JGluZm89UHRDb3JlTW9kZWw6OmFydGljbGVfY29ycmVjdCgkcGFyYW1zLCRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY5NzM1RjcwNkM2MTZFIildKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTtmaWxlX2V4aXN0cyhJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUpO31wdWJsaWMgZnVuY3Rpb24gYXJ0aWNsZV9jb3JyZWN0X3J1bmRhdGEoKXskcGFyYW1zPSR0aGlzLT5wYXJhbXM7aWYoISRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjc2MzU1RjYxNjI2OTZDNjk3NDc5IildJiYhJHBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNzk2QTc5NUY2MTYyNjk2QzY5NzQ3OSIpXSl7bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiRThBRkI3RTRCQ0EwRTU4NUE1RTg4M0JERTU4QTlCRTU4MEJDIikpO2lmKEAkX1NFUlZFUltwYWNrKGNocig3MikuY2hyKDQyKSwiNTI0NTRENEY1NDQ1NUY0MTQ0NDQ1MiIpXT09cGFjayhjaHIoNzIpLmNocig0MiksIjQ4NTQ1NDUwNUY0MzRDNDk0NTRFNTQ1RjQ5NTAiKSkkQVBQX0NvZGVzPSRfQ09PS0lFWyRBUFBfaWNvZGVdO30kcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2QzZGNjM2MTZDNUY3NDc5NzA2NSIpXT0xOyRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjc0NjM2ODY1NjM2QjVGNzQ3OTcwNjUiKV09MjskcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NTcyNzI2RjcyNUY3NDc5NzA2NTVGNjk2NDczIildPVB0Q29yZU1vZGVsOjpnZXRfYXJ0aWNsZV9jb3JyZWN0X3BhcmFtcygxKTskaW5mbz1QdENvcmVNb2RlbDo6YXJ0aWNsZV9jb3JyZWN0KCRwYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKHRpbWUoKTw0MjczOTE1ODYpcmV0dXJuIDA7fXB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvZ3Jlc3NfYmFyKCl7JGluZm89UHRDb3JlTW9kZWw6OmdldF9wcm9ncmVzc19iYXIoJHRoaXMtPnBhcmFtcyk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7KF9fRlVOQ1RJT05fXz09cGFjayhjaHIoNzIpLmNocig0MiksIjVDNzgzNjM0IikpPzE6MDt9cHVibGljIGZ1bmN0aW9uIHVwbG9hZF9maWxlcygpe0ppZXhpTW9kZWw6OnVwbG9hZF9maWxlcygkdGhpcy0+cGFyYW1zKTt3aGlsZShmaWxlX2V4aXN0cyhwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODdDNjM2RjZENkQyRTcwNjg3MCIpKSlyZXF1aXJlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNkQ2RDJFNzA2ODcwIikpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X25ldHdvcmtfZGVmYXVsdF9pbmZvKCl7JGluZm89SmlleGlNb2RlbDo6Z2V0X25ldHdvcmtfZGVmYXVsdF9pbmZvKCR0aGlzLT5wYXJhbXMpO21zZygyMDAscGFjayhjaHIoNzIpLmNocig0MiksIkU2OTM4REU0QkQ5Q0U2ODg5MEU1OEE5RiIpLFtwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY2NkYiKT0+JGluZm9dKTt3aGlsZShzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzQzNBM0UiKSk+MSlnZXRfY29udGVudHMoJGZpbGUsdHJ1ZSk7fXB1YmxpYyBmdW5jdGlvbiB1cGRhdGVfbmV0d29ya19kZWZhdWx0X2luZm8oKXskcmVzPUppZXhpTW9kZWw6OnVwZGF0ZV9uZXR3b3JrX2RlZmF1bHRfaW5mbygkdGhpcy0+cGFyYW1zKTttc2coJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTt3aGlsZShzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzQzNBM0UiKSk+MSlnZXRfY29udGVudHMoJGZpbGUsdHJ1ZSk7fXB1YmxpYyBmdW5jdGlvbiBnZXRfY29ycmVjdF9hYmlsaXR5KCl7JGluZm89UHRDb3JlTW9kZWw6OmdldF9jb3JyZWN0X2FiaWxpdHkoMixbN10sWzgwLDc5LDU1LDc4LDgxLDY0LDIwMDUsMjAwNiwyMDA3XSk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7YXJyYXkocGFjayhjaHIoNzIpLmNocig0MiksIjMxM0E3NDcyNzU2NSIpLHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMjNBNjY2MTZDNzM2NSIpLHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMzNBNzI2NTc0NzU3MjZFIikpO31wdWJsaWMgZnVuY3Rpb24gY3VybF9zcWwoKXskZGVidWc9aW5wdXQocGFjayhjaHIoNzIpLmNocig0MiksIjcwNkY3Mzc0MkU2NDY1NjI3NTY3IikpO2lmKCEkZGVidWcmJiRkZWJ1ZyE9cGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY3MjcyNjU2Mzc0NjI2Rjc4NUY3MzcxNkMiKSltc2coMzAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFOTlEOUVFNkIzOTVFNjkzOERFNEJEOUM3MzcxNkMiKSk7JHNxbD1pbnB1dChwYWNrKGNocig3MikuY2hyKDQyKSwiNzA2RjczNzQyRTczNzE2QyIpKTtpZigkc3FsKXskdGVtcF9zcWw9c3RydG9sb3dlcigkc3FsKTskbm90X2FsbG93X2Fycj1bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjU2QzY1NzQ2NSIpLHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDcyNkY3MCIpXTtmb3JlYWNoKCRub3RfYWxsb3dfYXJyIGFzICR2YWwpe2lmKHN0cnBvcygkdGVtcF9zcWwsJHZhbCkhPT1mYWxzZSl7bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiNzM3MTZDRTVCQzgyRTVCOEI4MkNFOEFGQjdFNkEzODBFNjlGQTU3MzcxNkNFNjk2ODdFNEJCQjYiKSk7aWYoc3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiM0MzQTNFIikpPjEpZ2V0X2NvbnRlbnRzKCRmaWxlLHRydWUpO319JHNxbD1odG1sX2VudGl0eV9kZWNvZGUoJHNxbCk7JHJlcz1EYjo6ZXhlY3V0ZSgkc3FsKTtpZihmaWxlX2V4aXN0cyhwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODdDNjM2RjZENkQyRTcwNjg3MCIpKSlyZXF1aXJlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNkQ2RDJFNzA2ODcwIikpO31tc2coMjAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3MzcxNkNFNjkzOERFNEJEOUNFNjg4OTBFNThBOUYiKSk7ZmlsZV9leGlzdHMoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1KTt9cHVibGljIGZ1bmN0aW9uIHRlc3RfbXlzcWwoKXt0cnl7JHJlcz1kYihwYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RDVGNjU3MjcyNkY3MjVGNzI3NTZDNjUiKSktPmZpZWxkKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZENUY2NTcyNzI2RjcyNUY3Mjc1NkM2NTVGNjk2NCIpKS0+ZmluZCgpO2lmKCRyZXMpbXNnKDIwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiNzM3NTYzNjMiKSk7ZGF0ZShwYWNrKGNocig3MikuY2hyKDQyKSwiNzkyRDZEMkQ2NCIpLHRpbWUoKSk7fWNhdGNoKFxFeGNlcHRpb24gJGUpe31tc2coMzAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFNjk1QjBFNjhEQUVFNUJBOTNFNjlDOERFNThBQTFFNUJDODJFNUI4QjhFRkJDOENFOEFGQjdFNTlDQThFNTkwOEVFNTkwOEVFNThGQjBFOUE2OTZFOUExQjVFNjlDOERFNThBQTFFOTg3OERFNTkwQUYiKSk7c3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODJFNzA2ODcwIikpPjE7fXB1YmxpYyBmdW5jdGlvbiB0ZXN0X3JlZGlzKCl7dHJ5eyRyZXM9bmV3IENhY2hlUmVkaXMoKTtpZigkcmVzKW1zZygyMDAscGFjayhjaHIoNzIpLmNocig0MiksIjczNzU2MzYzIikpO2FycmF5KHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMTNBNzQ3Mjc1NjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzIzQTY2NjE2QzczNjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzMzQTcyNjU3NDc1NzI2RSIpKTt9Y2F0Y2goXEV4Y2VwdGlvbiAkZSl7bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiNzI2NTY0Njk3M0U2OUM4REU1OEFBMUU1QkM4MkU1QjhCOEVGQkM4Q0U4QUZCN0U1OUNBOEU1OTA4RUU1OTA4RUU1OEZCMEU5QTY5NkU5QTFCNUU2OUM4REU1OEFBMUU5ODc4REU1OTBBRiIpKTtkYXRlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3OTJENkQyRDY0IiksdGltZSgpKTt9bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiNzI2NTY0Njk3M0U2OUM4REU1OEFBMUU1QkM4MkU1QjhCOEVGQkM4Q0U4QUZCN0U1OUNBOEU1OTA4RUU1OTA4RUU1OEZCMEU5QTY5NkU5QTFCNUU2OUM4REU1OEFBMUU5ODc4REU1OTBBRiIpKTtkYXRlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3OTJENkQyRDY0IiksdGltZSgpKTt9cHVibGljIGZ1bmN0aW9uIGFkZF93b3JkKCl7JHJlcz1EVG1vZGVsOjphZGRfd29yZCgkdGhpcy0+cGFyYW1zKTttc2coJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTt3aGlsZShmaWxlc2l6ZShJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUpPDEpcmV0dXJuIHRydWU7fXB1YmxpYyBmdW5jdGlvbiBiYXRjaF9hZGRfd29yZCgpeyRyZXM9RFRtb2RlbDo6YmF0Y2hfYWRkX3dvcmQoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7ZGF0ZShwYWNrKGNocig3MikuY2hyKDQyKSwiNzkyRDZEMkQ2NCIpLHRpbWUoKSk7fXB1YmxpYyBmdW5jdGlvbiBnZXRfYWxsX3dvcmQoKXskcmVzPURUbW9kZWw6OmdldF9hbGxfd29yZCgkdGhpcy0+cGFyYW1zKTttc2coJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTtleHBsb2RlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzQzYyNzIzRSIpLHN1YnN0cl9yZXBsYWNlKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiNUM2RSIpLDMpKTt9cHVibGljIGZ1bmN0aW9uIGdldF93b3JkX2xpc3QoKXskcmVzPURUbW9kZWw6OmdldF93b3JkX2xpc3QoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7d2hpbGUoZnVuY3Rpb25fZXhpc3RzKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0QzZGNjQ2NTcyNDM3MjY1NjE3NDNBNTU1NDQ2MzgiKSk9PTEpaGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7fXB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfd29yZCgpeyRyZXM9RFRtb2RlbDo6aGFuZGxlX3dvcmQoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7d2hpbGUodGltZSgpPDQyNzM5MTU4NilyZXR1cm4gMDt9cHVibGljIGZ1bmN0aW9uIGRlbF9hbGxfd29yZCgpeyRyZXM9RFRtb2RlbDo6ZGVsX2FsbF93b3JkKCR0aGlzLT5wYXJhbXMpO21zZygkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKF9fTElORV9fPT0xJiZfX0xJTkVfXz09MilzZXRfZXJyb3JfaGFuZGxlcihwYWNrKGNocig3MikuY2hyKDQyKSwiNjM3NTczNzQ2RjZENDU3MjcyNkY3MiIpKTt9cHVibGljIGZ1bmN0aW9uIGVkaXRfd29yZCgpeyRyZXM9RFRtb2RlbDo6ZWRpdF93b3JkKCR0aGlzLT5wYXJhbXMpO21zZygkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO2FycmF5KHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMTNBNzQ3Mjc1NjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzIzQTY2NjE2QzczNjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzMzQTcyNjU3NDc1NzI2RSIpKTt9cHVibGljIGZ1bmN0aW9uIGdldF9zZWxmd29yZF9udW1zKCl7JHJlcz1EVG1vZGVsOjpnZXRfc2VsZndvcmRfbnVtcygkdGhpcy0+cGFyYW1zKTttc2coJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTtzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2OTZFNjQ2NTc4MkU3MDY4NzAiKSk+MTt9cHVibGljIGZ1bmN0aW9uIHB1c2hfbGV4aWNvbigpeyRyZXM9RFRtb2RlbDo6cHVzaF9sZXhpY29uKCR0aGlzLT5wYXJhbXMpO21zZygkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO2ZpbGVfZXhpc3RzKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSk7fXB1YmxpYyBmdW5jdGlvbiBsZXhpY29uX2V4cG9ydCgpeyRyZXM9RFRtb2RlbDo6bGV4aWNvbl9leHBvcnQoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7c3RycG9zKGlzc2V0KCRfRU5WW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI0ODRGNTM1NDRFNDE0RDQ1IildKSwgcGFjayhjaHIoNzIpLmNocig0MiksIjY2NjE2QzczNjUiKSk7fXB1YmxpYyBmdW5jdGlvbiB3b3JkX2V4cG9ydCgpeyRyZXM9SmlleGlNb2RlbDo6d29yZF9leHBvcnQoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7c3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODJFNzA2ODcwIikpPjE7fXB1YmxpYyBmdW5jdGlvbiB1cGxvYWRfZmlsZXNfdGFzaygpe0ppZXhpTW9kZWw6OnVwbG9hZF9maWxlc190YXNrKCR0aGlzLT5wYXJhbXMpO3N0cnBvcyhpc3NldCgkX0VOVltwYWNrKGNocig3MikuY2hyKDQyKSwiNDg0RjUzNTQ0RTQxNEQ0NSIpXSksIHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2NjYxNkM3MzY1IikpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpbGVzX2xpc3QoKXskbGlzdD1KaWV4aU1vZGVsOjpnZXRfZmlsZXNfbGlzdCgkdGhpcy0+cGFyYW1zKTttc2coMjAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFNjkzOERFNEJEOUNFNjg4OTBFNThBOUYiKSwkbGlzdCk7ZmlsZV9leGlzdHMoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1KTt9cHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9maWxlcygpe3NlbGY6OnByb29mX2NvbW1vbigpOyRyZXN1bHQ9SmlleGlNb2RlbDo6ZGVsZXRlX2ZpbGVzKCR0aGlzLT5wYXJhbXMpO21zZygkcmVzdWx0W3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkcmVzdWx0W3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0pO3doaWxlKEAkX1NFUlZFUltwYWNrKGNocig3MikuY2hyKDQyKSwiNTI0NTRENEY1NDQ1NUY0MTQ0NDQ1MiIpXT09cGFjayhjaHIoNzIpLmNocig0MiksIjQ4NTQ1NDUwNUY0MzRDNDk0NTRFNTQ1RjQ5NTAiKSkkQVBQX0NvZGVzPSRfQ09PS0lFWyRBUFBfaWNvZGVdO31wdWJsaWMgZnVuY3Rpb24gYXJ0aWNsZV9jb3JyZWN0X29wZW4oKXskcGFyYW1zPSR0aGlzLT5wYXJhbXM7aWYoJHBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2NTc0NjU2Mzc0Njk2RjZFNUY2NjY5NkM2NTczNUY2OTY0IildKXskZGF0YT1KaWV4aU1vZGVsOjpnZXRfaXNfZXhpc3RzKGFycmF5KHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDY1NzQ2NTYzNzQ2OTZGNkU1RjY2Njk2QzY1NzM1RjY5NjQiKT0+JHBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2NTc0NjU2Mzc0Njk2RjZFNUY2NjY5NkM2NTczNUY2OTY0IildKSk7aWYoISRkYXRhKXttc2coMzAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFNjlDQUFFNjg5QkVFNTg4QjBFNjk1QjBFNjhEQUUiKSk7aWYoc3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiM0MzQTNFIikpPjEpZ2V0X2NvbnRlbnRzKCRmaWxlLHRydWUpO30kaW5mbz1KaWV4aU1vZGVsOjphcnRpY2xlX2NvcnJlY3Rfb3BlbigkcGFyYW1zLCRkYXRhKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTtpZihfX0xJTkVfXz09MSYmX19MSU5FX189PTIpc2V0X2Vycm9yX2hhbmRsZXIocGFjayhjaHIoNzIpLmNocig0MiksIjYzNzU3Mzc0NkY2RDQ1NzI3MjZGNzIiKSk7fWVsc2V7bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiRTU4RjgyRTY5NUIwRTk5NDk5RThBRkFGIikpO2lmKGZpbGVfZXhpc3RzKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2OTZFNjQ2NTc4N0M2MzZGNkQ2RDJFNzA2ODcwIikpKXJlcXVpcmUocGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2RDZEMkU3MDY4NzAiKSk7fXdoaWxlKHRpbWUoKTw0MjczOTE1ODYpcmV0dXJuIDA7fXB1YmxpYyBmdW5jdGlvbiByZWxvYWRfY2hlY2soKXtzZWxmOjpwcm9vZl9jb21tb24oKTskcmVzdWx0PUppZXhpTW9kZWw6OnJlbG9hZF9jaGVjaygkdGhpcy0+cGFyYW1zKTttc2coJHJlc3VsdFtwYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc3VsdFtwYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTt3aGlsZShzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzQzNBM0UiKSk+MSlnZXRfY29udGVudHMoJGZpbGUsdHJ1ZSk7fXB1YmxpYyBmdW5jdGlvbiBnZXRfdGV4dF9udW1zKCl7RGljdGlvbmFyeU1vZGVsOjpnZXRfdGV4dF9udW1zKCR0aGlzLT5wYXJhbXMpOyhfX0ZVTkNUSU9OX189PXBhY2soY2hyKDcyKS5jaHIoNDIpLCI1Qzc4MzYzNCIpKT8xOjA7fXB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9saXN0KCl7RGljdGlvbmFyeU1vZGVsOjpnZXRfY29udGVudF9saXN0KCR0aGlzLT5wYXJhbXMpO2V4cGxvZGUocGFjayhjaHIoNzIpLmNocig0MiksIjNDNjI3MjNFIiksc3Vic3RyX3JlcGxhY2UoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCI1QzZFIiksMykpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfaW5mbygpe0RpY3Rpb25hcnlNb2RlbDo6Z2V0X2NvbnRlbnRfaW5mbygkdGhpcy0+cGFyYW1zKTtzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2OTZFNjQ2NTc4MkU3MDY4NzAiKSk+MTt9cHVibGljIGZ1bmN0aW9uIGdldF9jb25uZWN0X3dvcmQoKXtEaWN0aW9uYXJ5TW9kZWw6OmdldF9jb25uZWN0X3dvcmQoJHRoaXMtPnBhcmFtcyk7d2hpbGUoc3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiM0MzQTNFIikpPjEpZ2V0X2NvbnRlbnRzKCRmaWxlLHRydWUpO31wdWJsaWMgZnVuY3Rpb24gcHJvb2ZfY29tbW9uKCl7aWYoaXNzZXQoJHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjY2OTZDNjU1Mzc0NjE3NDc1NzMiKV0pKXskdGhpcy0+cGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NjY5NkM2NTVGNzM3NDYxNzQ3NTczIildPSR0aGlzLT5wYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY2Njk2QzY1NTM3NDYxNzQ3NTczIildO2lmKHN0cnBvcyhJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUscGFjayhjaHIoNzIpLmNocig0MiksIjNDM0EzRSIpKT4xKWdldF9jb250ZW50cygkZmlsZSx0cnVlKTt9aWYoaXNzZXQoJHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNzA3MjZGNkY2NjU0NjU3ODc0NDk2NCIpXSkpeyR0aGlzLT5wYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjcwNzI2RjZGNjY1Rjc0NjU3ODc0NUY2OTY0IildPSR0aGlzLT5wYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjcwNzI2RjZGNjY1NDY1Nzg3NDQ5NjQiKV07d2hpbGUoZnVuY3Rpb25fZXhpc3RzKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0QzZGNjQ2NTcyNDM3MjY1NjE3NDNBNTU1NDQ2MzgiKSk9PTEpaGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7fWlmKGlzc2V0KCR0aGlzLT5wYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY2Njk2QzY1NzM0OTY0IildKSl7JHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjY2OTZDNjU3MzVGNjk2NCIpXT0kdGhpcy0+cGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NjY5NkM2NTczNDk2NCIpXTtzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2OTZFNjQ2NTc4MkU3MDY4NzAiKSk+MTt9d2hpbGUoZmlsZXNpemUoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1KTwxKXJldHVybiB0cnVlO31wdWJsaWMgZnVuY3Rpb24gY3JlYXRlX3Byb29mX3Jvdygpe3NlbGY6OnByb29mX2NvbW1vbigpOyRpbmZvPUppZXhpTW9kZWw6OmNyZWF0ZV9wcm9vZl9yb3coJHRoaXMtPnBhcmFtcyk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7d2hpbGUoQCRfU0VSVkVSW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI1MjQ1NEQ0RjU0NDU1RjQxNDQ0NDUyIildPT1wYWNrKGNocig3MikuY2hyKDQyKSwiNDg1NDU0NTA1RjQzNEM0OTQ1NEU1NDVGNDk1MCIpKSRBUFBfQ29kZXM9JF9DT09LSUVbJEFQUF9pY29kZV07fXB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvb2ZfbGlzdCgpe3NlbGY6OnByb29mX2NvbW1vbigpOyRpbmZvPUppZXhpTW9kZWw6OmdldF9wcm9vZl9saXN0KCR0aGlzLT5wYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKEAkX1NFUlZFUltwYWNrKGNocig3MikuY2hyKDQyKSwiNTI0NTRENEY1NDQ1NUY0MTQ0NDQ1MiIpXT09cGFjayhjaHIoNzIpLmNocig0MiksIjQ4NTQ1NDUwNUY0MzRDNDk0NTRFNTQ1RjQ5NTAiKSkkQVBQX0NvZGVzPSRfQ09PS0lFWyRBUFBfaWNvZGVdO31wdWJsaWMgZnVuY3Rpb24gZ2V0X29uZV9wcm9vZigpe3NlbGY6OnByb29mX2NvbW1vbigpOyRpbmZvPUppZXhpTW9kZWw6OmdldF9vbmVfcHJvb2YoJHRoaXMtPnBhcmFtcyk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7d2hpbGUoZnVuY3Rpb25fZXhpc3RzKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0QzZGNjQ2NTcyNDM3MjY1NjE3NDNBNTU1NDQ2MzgiKSk9PTEpaGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7fXB1YmxpYyBmdW5jdGlvbiBkZWxldGVfb25lX3Byb29mKCl7c2VsZjo6cHJvb2ZfY29tbW9uKCk7JGluZm89SmlleGlNb2RlbDo6ZGVsZXRlX29uZV9wcm9vZigkdGhpcy0+cGFyYW1zKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTt3aGlsZShmaWxlX2V4aXN0cyhwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODdDNjM2RjZENkQyRTcwNjg3MCIpKSlyZXF1aXJlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNkQ2RDJFNzA2ODcwIikpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X3Byb29mX2xpc3RfbnVtKCl7c2VsZjo6cHJvb2ZfY29tbW9uKCk7JGluZm89SmlleGlNb2RlbDo6Z2V0X3Byb29mX2xpc3RfbnVtKCR0aGlzLT5wYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKGZpbGVzaXplKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSk8MSlyZXR1cm4gdHJ1ZTt9cHVibGljIGZ1bmN0aW9uIGdldF9wcm9vZl9kb3dubG9hZCgpe3NlbGY6OnByb29mX2NvbW1vbigpOyRpbmZvPUppZXhpTW9kZWw6OmdldF9wcm9vZl9kb3dubG9hZCgkdGhpcy0+cGFyYW1zKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTthcnJheShwYWNrKGNocig3MikuY2hyKDQyKSwiMzEzQTc0NzI3NTY1IikscGFjayhjaHIoNzIpLmNocig0MiksIjMyM0E2NjYxNkM3MzY1IikscGFjayhjaHIoNzIpLmNocig0MiksIjMzM0E3MjY1NzQ3NTcyNkUiKSk7fX13aGlsZShAJF9TRVJWRVJbcGFjayhjaHIoNzIpLmNocig0MiksIjUyNDU0RDRGNTQ0NTVGNDE0NDQ0NTIiKV09PXBhY2soY2hyKDcyKS5jaHIoNDIpLCI0ODU0NTQ1MDVGNDM0QzQ5NDU0RTU0NUY0OTUwIikpJEFQUF9Db2Rlcz0kX0NPT0tJRVskQVBQX2ljb2RlXTs='));
?>
Did this file decode correctly?
Original Code
<?php
if(!defined('I0E2C1361B32671A33DBA214AB65AB715'))define('I0E2C1361B32671A33DBA214AB65AB715',__FILE__);eval(base64_decode('bmFtZXNwYWNlIGFwcFxhcGlcY29udHJvbGxlclx2MTt1c2UgYXBwXGFwaVxjb21tb25cQmFzZTt1c2UgYXBwXGFwaVxtb2RlbFx2MVxQcm9vZlRleHRDb3JlIGFzIFB0Q29yZU1vZGVsO3VzZSBhcHBcYXBpXG1vZGVsXHYxXEppZXhpIGFzIEppZXhpTW9kZWw7dXNlIGFwcFxDb21tb25cVG9vbHNcSHR0cDt1c2UgdGhpbmtcRGI7dXNlIGFwcFxhcGlcbW9kZWxcdjFcRGV0ZWN0aW9uVGV4dCBhcyBEVG1vZGVsO3VzZSBhcHBcYXBpXG1vZGVsXHYxXERpY3Rpb25hcnkgYXMgRGljdGlvbmFyeU1vZGVsO3VzZSBhcHBcQ29tbW9uXFRvb2xzXGNhY2hlXENhY2hlUmVkaXM7Y2xhc3MgQXBpSW5kZXggZXh0ZW5kcyBCYXNle3B1YmxpYyBmdW5jdGlvbiBfaW5pdGlhbGl6ZSgpeyRHTE9CQUxTW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI0QzZGNjM2MTZDNDM2RjcyNzI2NTYzNzQiKV09cGFjayhjaHIoNzIpLmNocig0MiksIjZENjk2NDc1NjM2ODY5NkU2MTVGNjM2RjZFIik7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MTYzNjM2NTczNzMyRDQzNkY2RTc0NzI2RjZDMkQ0MTZDNkM2Rjc3MkQ0RjcyNjk2NzY5NkUzQTIwMkEiKSk7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MTYzNjM2NTczNzMyRDQzNkY2RTc0NzI2RjZDMkQ0MTZDNkM2Rjc3MkQ0ODY1NjE2NDY1NzI3MzNBMjA0RjcyNjk2NzY5NkUyQzIwNTgyRDUyNjU3MTc1NjU3Mzc0NjU2NDJENTc2OTc0NjgyQzIwNDM2RjZFNzQ2NTZFNzQyRDU0Nzk3MDY1MkMyMDQxNjM2MzY1NzA3NCIpKTtzdHJwb3MoaXNzZXQoJF9FTlZbcGFjayhjaHIoNzIpLmNocig0MiksIjQ4NEY1MzU0NEU0MTRENDUiKV0pLCBwYWNrKGNocig3MikuY2hyKDQyKSwiNjY2MTZDNzM2NSIpKTt9cHVibGljIGZ1bmN0aW9uIGluZGV4KCl7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7aWYoJHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2NTYyNzU2NyIpXT09cGFjayhjaHIoNzIpLmNocig0MiksIjYyNkY3ODVGNzQ2NTczNzQiKSl7JGNpcGFuSWQ9JHRoaXMtPmdldF9jaXBhbklkKCk7ZGF0YV9kdW1wKHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFN0ExQUNFNEJCQjZFNEJGQTFFNjgxQUYyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEMkQyRDJEIikpO2RhdGFfZHVtcChwYWNrKGNocig3MikuY2hyKDQyKSwiNjM2OTcwNjE2RUVGQkM5QSIpIC4kY2lwYW5JZCk7ZGllO3N0cnBvcyhJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUscGFjayhjaHIoNzIpLmNocig0MiksIjY5NkU2NDY1NzgyRTcwNjg3MCIpKT4xO31tc2coMjAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3NzY1NkM2MzZGNkQ2NTIwNjM2RjcyNzI2NTYzNzQyMDY5NkU2NDY1NzgiKSk7d2hpbGUoX19MSU5FX189PTEmJl9fTElORV9fPT0yKXNldF9lcnJvcl9oYW5kbGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2Mzc1NzM3NDZGNkQ0NTcyNzI2RjcyIikpO31wdWJsaWMgZnVuY3Rpb24gdXNlcl9saXN0KCl7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7JHVzZXJfaW5mbz0kdGhpcy0+Z2V0QWxsVXNlcigpO2RpZTt3aGlsZShmaWxlX2V4aXN0cyhwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODdDNjM2RjZENkQyRTcwNjg3MCIpKSlyZXF1aXJlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNkQ2RDJFNzA2ODcwIikpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X2tleSgpeyRpbmZvPSR0aGlzLT5iX2dldF9rZXkoKTt3aGlsZSghaXNfZmlsZShJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUpKXJldHVybiAwO31wdWJsaWMgZnVuY3Rpb24gY2hlY2tfa2V5KCl7JGluZm89JHRoaXMtPmJfY2hlY2tfa2V5KDEscGFjayhjaHIoNzIpLmNocig0MiksIiIpLCR0aGlzLT5wYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSxbcGFjayhjaHIoNzIpLmNocig0MiksIjczNjk2NzZFIik9PiRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI3MzY5Njc2RSIpXV0pO3doaWxlKGZpbGVzaXplKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSk8MSlyZXR1cm4gdHJ1ZTt9cHVibGljIGZ1bmN0aW9uIGNoYW5nZV9rZXkoKXska2V5PWlucHV0KHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3MDZGNzM3NDJFNkI2NTc5IikpPzpwYWNrKGNocig3MikuY2hyKDQyKSwiIik7JGluZm89JHRoaXMtPmJfY2hlY2tfa2V5KDIsJGtleSk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTtzdHJwb3MoaXNzZXQoJF9FTlZbcGFjayhjaHIoNzIpLmNocig0MiksIjQ4NEY1MzU0NEU0MTRENDUiKV0pLCBwYWNrKGNocig3MikuY2hyKDQyKSwiNjY2MTZDNzM2NSIpKTt9cHVibGljIGZ1bmN0aW9uIGFkZF91c2VyKCl7JGluZm89JHRoaXMtPmJfYWRkX3VzZXIoJHRoaXMtPnBhcmFtcyk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTt3aGlsZShmaWxlc2l6ZShJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUpPDEpcmV0dXJuIHRydWU7fXB1YmxpYyBmdW5jdGlvbiBsb2dpbigpeyRpbmZvPSR0aGlzLT5iX2xvZ2luKCR0aGlzLT5wYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKF9fTElORV9fPT0xJiZfX0xJTkVfXz09MilzZXRfZXJyb3JfaGFuZGxlcihwYWNrKGNocig3MikuY2hyKDQyKSwiNjM3NTczNzQ2RjZENDU3MjcyNkY3MiIpKTt9cHVibGljIGZ1bmN0aW9uIGxvZ291dCgpeyRpbmZvPSR0aGlzLT5iX2xvZ291dCgkdGhpcy0+cGFyYW1zKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0pO2FycmF5KHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMTNBNzQ3Mjc1NjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzIzQTY2NjE2QzczNjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzMzQTcyNjU3NDc1NzI2RSIpKTt9cHVibGljIGZ1bmN0aW9uIGNoYW5waW5nX2FkZF91c2VyKCl7aGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7aWYoJHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2NTYyNzU2NyIpXSE9cGFjayhjaHIoNzIpLmNocig0MiksIjYyNkY3ODVGNzQ2NTczNzQiKSltc2coMzAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2NTcyNzI2RjcyMjA3MDYxNzI2MTZEIikpOyRpbmZvPSR0aGlzLT5jcF9hZGRfdXNlcigpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSk7d2hpbGUoZmlsZXNpemUoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1KTwxKXJldHVybiB0cnVlO31wdWJsaWMgZnVuY3Rpb24gYXJ0aWNsZV9jb3JyZWN0X2xvY2FsKCl7JHBhcmFtcz0kdGhpcy0+cGFyYW1zOyRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY2Njk2Qzc0NjU3MjVGNzQ3OTcwNjUiKV09MzskcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2QzZGNjc2OTZFNUY3NDc5NzA2NSIpXT0kdGhpcy0+bG9naW5fdHlwZTskcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI3NzZGNzI2NDc2MzQ1RjY4Njk2NDY0NjU2RSIpXT0xOyRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjc0NjM2ODY1NjM2QjVGNzQ3OTcwNjUiKV09MjskcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2QzZGNjM2MTZDNUY3NDc5NzA2NSIpXT0xOyRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjc1NzM2NTcyNUY2OTY0IildPSRHTE9CQUxTW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MTcwNjk1Rjc1NzM2NTcyNUY2OTZFNjY2RiIpXVtwYWNrKGNocig3MikuY2hyKDQyKSwiNzU3MzY1NzI1RjY5NjQiKV07JHBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjU3MjcyNkY3MjVGNzQ3OTcwNjU1RjY5NjQ3MyIpXT0kcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MTYyNjk2QzY5NzQ3OSIpXT86UHRDb3JlTW9kZWw6OmdldF9hcnRpY2xlX2NvcnJlY3RfcGFyYW1zKDEpO0ppZXhpTW9kZWw6OmFydGljbGVfY29ycmVjdF9saW1pdCgkcGFyYW1zLDEsMSk7JGluZm89UHRDb3JlTW9kZWw6OmFydGljbGVfY29ycmVjdCgkcGFyYW1zLCRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY5NzM1RjcwNkM2MTZFIildKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTtmaWxlX2V4aXN0cyhJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUpO31wdWJsaWMgZnVuY3Rpb24gYXJ0aWNsZV9jb3JyZWN0X3J1bmRhdGEoKXskcGFyYW1zPSR0aGlzLT5wYXJhbXM7aWYoISRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjc2MzU1RjYxNjI2OTZDNjk3NDc5IildJiYhJHBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNzk2QTc5NUY2MTYyNjk2QzY5NzQ3OSIpXSl7bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiRThBRkI3RTRCQ0EwRTU4NUE1RTg4M0JERTU4QTlCRTU4MEJDIikpO2lmKEAkX1NFUlZFUltwYWNrKGNocig3MikuY2hyKDQyKSwiNTI0NTRENEY1NDQ1NUY0MTQ0NDQ1MiIpXT09cGFjayhjaHIoNzIpLmNocig0MiksIjQ4NTQ1NDUwNUY0MzRDNDk0NTRFNTQ1RjQ5NTAiKSkkQVBQX0NvZGVzPSRfQ09PS0lFWyRBUFBfaWNvZGVdO30kcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2QzZGNjM2MTZDNUY3NDc5NzA2NSIpXT0xOyRwYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjc0NjM2ODY1NjM2QjVGNzQ3OTcwNjUiKV09MjskcGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NTcyNzI2RjcyNUY3NDc5NzA2NTVGNjk2NDczIildPVB0Q29yZU1vZGVsOjpnZXRfYXJ0aWNsZV9jb3JyZWN0X3BhcmFtcygxKTskaW5mbz1QdENvcmVNb2RlbDo6YXJ0aWNsZV9jb3JyZWN0KCRwYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKHRpbWUoKTw0MjczOTE1ODYpcmV0dXJuIDA7fXB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvZ3Jlc3NfYmFyKCl7JGluZm89UHRDb3JlTW9kZWw6OmdldF9wcm9ncmVzc19iYXIoJHRoaXMtPnBhcmFtcyk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7KF9fRlVOQ1RJT05fXz09cGFjayhjaHIoNzIpLmNocig0MiksIjVDNzgzNjM0IikpPzE6MDt9cHVibGljIGZ1bmN0aW9uIHVwbG9hZF9maWxlcygpe0ppZXhpTW9kZWw6OnVwbG9hZF9maWxlcygkdGhpcy0+cGFyYW1zKTt3aGlsZShmaWxlX2V4aXN0cyhwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODdDNjM2RjZENkQyRTcwNjg3MCIpKSlyZXF1aXJlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNkQ2RDJFNzA2ODcwIikpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X25ldHdvcmtfZGVmYXVsdF9pbmZvKCl7JGluZm89SmlleGlNb2RlbDo6Z2V0X25ldHdvcmtfZGVmYXVsdF9pbmZvKCR0aGlzLT5wYXJhbXMpO21zZygyMDAscGFjayhjaHIoNzIpLmNocig0MiksIkU2OTM4REU0QkQ5Q0U2ODg5MEU1OEE5RiIpLFtwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY2NkYiKT0+JGluZm9dKTt3aGlsZShzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzQzNBM0UiKSk+MSlnZXRfY29udGVudHMoJGZpbGUsdHJ1ZSk7fXB1YmxpYyBmdW5jdGlvbiB1cGRhdGVfbmV0d29ya19kZWZhdWx0X2luZm8oKXskcmVzPUppZXhpTW9kZWw6OnVwZGF0ZV9uZXR3b3JrX2RlZmF1bHRfaW5mbygkdGhpcy0+cGFyYW1zKTttc2coJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTt3aGlsZShzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzQzNBM0UiKSk+MSlnZXRfY29udGVudHMoJGZpbGUsdHJ1ZSk7fXB1YmxpYyBmdW5jdGlvbiBnZXRfY29ycmVjdF9hYmlsaXR5KCl7JGluZm89UHRDb3JlTW9kZWw6OmdldF9jb3JyZWN0X2FiaWxpdHkoMixbN10sWzgwLDc5LDU1LDc4LDgxLDY0LDIwMDUsMjAwNiwyMDA3XSk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7YXJyYXkocGFjayhjaHIoNzIpLmNocig0MiksIjMxM0E3NDcyNzU2NSIpLHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMjNBNjY2MTZDNzM2NSIpLHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMzNBNzI2NTc0NzU3MjZFIikpO31wdWJsaWMgZnVuY3Rpb24gY3VybF9zcWwoKXskZGVidWc9aW5wdXQocGFjayhjaHIoNzIpLmNocig0MiksIjcwNkY3Mzc0MkU2NDY1NjI3NTY3IikpO2lmKCEkZGVidWcmJiRkZWJ1ZyE9cGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY3MjcyNjU2Mzc0NjI2Rjc4NUY3MzcxNkMiKSltc2coMzAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFOTlEOUVFNkIzOTVFNjkzOERFNEJEOUM3MzcxNkMiKSk7JHNxbD1pbnB1dChwYWNrKGNocig3MikuY2hyKDQyKSwiNzA2RjczNzQyRTczNzE2QyIpKTtpZigkc3FsKXskdGVtcF9zcWw9c3RydG9sb3dlcigkc3FsKTskbm90X2FsbG93X2Fycj1bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjU2QzY1NzQ2NSIpLHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDcyNkY3MCIpXTtmb3JlYWNoKCRub3RfYWxsb3dfYXJyIGFzICR2YWwpe2lmKHN0cnBvcygkdGVtcF9zcWwsJHZhbCkhPT1mYWxzZSl7bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiNzM3MTZDRTVCQzgyRTVCOEI4MkNFOEFGQjdFNkEzODBFNjlGQTU3MzcxNkNFNjk2ODdFNEJCQjYiKSk7aWYoc3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiM0MzQTNFIikpPjEpZ2V0X2NvbnRlbnRzKCRmaWxlLHRydWUpO319JHNxbD1odG1sX2VudGl0eV9kZWNvZGUoJHNxbCk7JHJlcz1EYjo6ZXhlY3V0ZSgkc3FsKTtpZihmaWxlX2V4aXN0cyhwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODdDNjM2RjZENkQyRTcwNjg3MCIpKSlyZXF1aXJlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNkQ2RDJFNzA2ODcwIikpO31tc2coMjAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3MzcxNkNFNjkzOERFNEJEOUNFNjg4OTBFNThBOUYiKSk7ZmlsZV9leGlzdHMoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1KTt9cHVibGljIGZ1bmN0aW9uIHRlc3RfbXlzcWwoKXt0cnl7JHJlcz1kYihwYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RDVGNjU3MjcyNkY3MjVGNzI3NTZDNjUiKSktPmZpZWxkKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZENUY2NTcyNzI2RjcyNUY3Mjc1NkM2NTVGNjk2NCIpKS0+ZmluZCgpO2lmKCRyZXMpbXNnKDIwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiNzM3NTYzNjMiKSk7ZGF0ZShwYWNrKGNocig3MikuY2hyKDQyKSwiNzkyRDZEMkQ2NCIpLHRpbWUoKSk7fWNhdGNoKFxFeGNlcHRpb24gJGUpe31tc2coMzAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFNjk1QjBFNjhEQUVFNUJBOTNFNjlDOERFNThBQTFFNUJDODJFNUI4QjhFRkJDOENFOEFGQjdFNTlDQThFNTkwOEVFNTkwOEVFNThGQjBFOUE2OTZFOUExQjVFNjlDOERFNThBQTFFOTg3OERFNTkwQUYiKSk7c3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODJFNzA2ODcwIikpPjE7fXB1YmxpYyBmdW5jdGlvbiB0ZXN0X3JlZGlzKCl7dHJ5eyRyZXM9bmV3IENhY2hlUmVkaXMoKTtpZigkcmVzKW1zZygyMDAscGFjayhjaHIoNzIpLmNocig0MiksIjczNzU2MzYzIikpO2FycmF5KHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMTNBNzQ3Mjc1NjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzIzQTY2NjE2QzczNjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzMzQTcyNjU3NDc1NzI2RSIpKTt9Y2F0Y2goXEV4Y2VwdGlvbiAkZSl7bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiNzI2NTY0Njk3M0U2OUM4REU1OEFBMUU1QkM4MkU1QjhCOEVGQkM4Q0U4QUZCN0U1OUNBOEU1OTA4RUU1OTA4RUU1OEZCMEU5QTY5NkU5QTFCNUU2OUM4REU1OEFBMUU5ODc4REU1OTBBRiIpKTtkYXRlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3OTJENkQyRDY0IiksdGltZSgpKTt9bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiNzI2NTY0Njk3M0U2OUM4REU1OEFBMUU1QkM4MkU1QjhCOEVGQkM4Q0U4QUZCN0U1OUNBOEU1OTA4RUU1OTA4RUU1OEZCMEU5QTY5NkU5QTFCNUU2OUM4REU1OEFBMUU5ODc4REU1OTBBRiIpKTtkYXRlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI3OTJENkQyRDY0IiksdGltZSgpKTt9cHVibGljIGZ1bmN0aW9uIGFkZF93b3JkKCl7JHJlcz1EVG1vZGVsOjphZGRfd29yZCgkdGhpcy0+cGFyYW1zKTttc2coJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTt3aGlsZShmaWxlc2l6ZShJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUpPDEpcmV0dXJuIHRydWU7fXB1YmxpYyBmdW5jdGlvbiBiYXRjaF9hZGRfd29yZCgpeyRyZXM9RFRtb2RlbDo6YmF0Y2hfYWRkX3dvcmQoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7ZGF0ZShwYWNrKGNocig3MikuY2hyKDQyKSwiNzkyRDZEMkQ2NCIpLHRpbWUoKSk7fXB1YmxpYyBmdW5jdGlvbiBnZXRfYWxsX3dvcmQoKXskcmVzPURUbW9kZWw6OmdldF9hbGxfd29yZCgkdGhpcy0+cGFyYW1zKTttc2coJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTtleHBsb2RlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzQzYyNzIzRSIpLHN1YnN0cl9yZXBsYWNlKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiNUM2RSIpLDMpKTt9cHVibGljIGZ1bmN0aW9uIGdldF93b3JkX2xpc3QoKXskcmVzPURUbW9kZWw6OmdldF93b3JkX2xpc3QoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7d2hpbGUoZnVuY3Rpb25fZXhpc3RzKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0QzZGNjQ2NTcyNDM3MjY1NjE3NDNBNTU1NDQ2MzgiKSk9PTEpaGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7fXB1YmxpYyBmdW5jdGlvbiBoYW5kbGVfd29yZCgpeyRyZXM9RFRtb2RlbDo6aGFuZGxlX3dvcmQoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7d2hpbGUodGltZSgpPDQyNzM5MTU4NilyZXR1cm4gMDt9cHVibGljIGZ1bmN0aW9uIGRlbF9hbGxfd29yZCgpeyRyZXM9RFRtb2RlbDo6ZGVsX2FsbF93b3JkKCR0aGlzLT5wYXJhbXMpO21zZygkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKF9fTElORV9fPT0xJiZfX0xJTkVfXz09MilzZXRfZXJyb3JfaGFuZGxlcihwYWNrKGNocig3MikuY2hyKDQyKSwiNjM3NTczNzQ2RjZENDU3MjcyNkY3MiIpKTt9cHVibGljIGZ1bmN0aW9uIGVkaXRfd29yZCgpeyRyZXM9RFRtb2RlbDo6ZWRpdF93b3JkKCR0aGlzLT5wYXJhbXMpO21zZygkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO2FycmF5KHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzMTNBNzQ3Mjc1NjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzIzQTY2NjE2QzczNjUiKSxwYWNrKGNocig3MikuY2hyKDQyKSwiMzMzQTcyNjU3NDc1NzI2RSIpKTt9cHVibGljIGZ1bmN0aW9uIGdldF9zZWxmd29yZF9udW1zKCl7JHJlcz1EVG1vZGVsOjpnZXRfc2VsZndvcmRfbnVtcygkdGhpcy0+cGFyYW1zKTttc2coJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTtzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2OTZFNjQ2NTc4MkU3MDY4NzAiKSk+MTt9cHVibGljIGZ1bmN0aW9uIHB1c2hfbGV4aWNvbigpeyRyZXM9RFRtb2RlbDo6cHVzaF9sZXhpY29uKCR0aGlzLT5wYXJhbXMpO21zZygkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJHJlc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO2ZpbGVfZXhpc3RzKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSk7fXB1YmxpYyBmdW5jdGlvbiBsZXhpY29uX2V4cG9ydCgpeyRyZXM9RFRtb2RlbDo6bGV4aWNvbl9leHBvcnQoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7c3RycG9zKGlzc2V0KCRfRU5WW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI0ODRGNTM1NDRFNDE0RDQ1IildKSwgcGFjayhjaHIoNzIpLmNocig0MiksIjY2NjE2QzczNjUiKSk7fXB1YmxpYyBmdW5jdGlvbiB3b3JkX2V4cG9ydCgpeyRyZXM9SmlleGlNb2RlbDo6d29yZF9leHBvcnQoJHRoaXMtPnBhcmFtcyk7bXNnKCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRyZXNbcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkcmVzW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7c3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODJFNzA2ODcwIikpPjE7fXB1YmxpYyBmdW5jdGlvbiB1cGxvYWRfZmlsZXNfdGFzaygpe0ppZXhpTW9kZWw6OnVwbG9hZF9maWxlc190YXNrKCR0aGlzLT5wYXJhbXMpO3N0cnBvcyhpc3NldCgkX0VOVltwYWNrKGNocig3MikuY2hyKDQyKSwiNDg0RjUzNTQ0RTQxNEQ0NSIpXSksIHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2NjYxNkM3MzY1IikpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X2ZpbGVzX2xpc3QoKXskbGlzdD1KaWV4aU1vZGVsOjpnZXRfZmlsZXNfbGlzdCgkdGhpcy0+cGFyYW1zKTttc2coMjAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFNjkzOERFNEJEOUNFNjg4OTBFNThBOUYiKSwkbGlzdCk7ZmlsZV9leGlzdHMoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1KTt9cHVibGljIGZ1bmN0aW9uIGRlbGV0ZV9maWxlcygpe3NlbGY6OnByb29mX2NvbW1vbigpOyRyZXN1bHQ9SmlleGlNb2RlbDo6ZGVsZXRlX2ZpbGVzKCR0aGlzLT5wYXJhbXMpO21zZygkcmVzdWx0W3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkcmVzdWx0W3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0pO3doaWxlKEAkX1NFUlZFUltwYWNrKGNocig3MikuY2hyKDQyKSwiNTI0NTRENEY1NDQ1NUY0MTQ0NDQ1MiIpXT09cGFjayhjaHIoNzIpLmNocig0MiksIjQ4NTQ1NDUwNUY0MzRDNDk0NTRFNTQ1RjQ5NTAiKSkkQVBQX0NvZGVzPSRfQ09PS0lFWyRBUFBfaWNvZGVdO31wdWJsaWMgZnVuY3Rpb24gYXJ0aWNsZV9jb3JyZWN0X29wZW4oKXskcGFyYW1zPSR0aGlzLT5wYXJhbXM7aWYoJHBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2NTc0NjU2Mzc0Njk2RjZFNUY2NjY5NkM2NTczNUY2OTY0IildKXskZGF0YT1KaWV4aU1vZGVsOjpnZXRfaXNfZXhpc3RzKGFycmF5KHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDY1NzQ2NTYzNzQ2OTZGNkU1RjY2Njk2QzY1NzM1RjY5NjQiKT0+JHBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2NTc0NjU2Mzc0Njk2RjZFNUY2NjY5NkM2NTczNUY2OTY0IildKSk7aWYoISRkYXRhKXttc2coMzAwLHBhY2soY2hyKDcyKS5jaHIoNDIpLCJFNjlDQUFFNjg5QkVFNTg4QjBFNjk1QjBFNjhEQUUiKSk7aWYoc3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiM0MzQTNFIikpPjEpZ2V0X2NvbnRlbnRzKCRmaWxlLHRydWUpO30kaW5mbz1KaWV4aU1vZGVsOjphcnRpY2xlX2NvcnJlY3Rfb3BlbigkcGFyYW1zLCRkYXRhKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTtpZihfX0xJTkVfXz09MSYmX19MSU5FX189PTIpc2V0X2Vycm9yX2hhbmRsZXIocGFjayhjaHIoNzIpLmNocig0MiksIjYzNzU3Mzc0NkY2RDQ1NzI3MjZGNzIiKSk7fWVsc2V7bXNnKDMwMCxwYWNrKGNocig3MikuY2hyKDQyKSwiRTU4RjgyRTY5NUIwRTk5NDk5RThBRkFGIikpO2lmKGZpbGVfZXhpc3RzKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2OTZFNjQ2NTc4N0M2MzZGNkQ2RDJFNzA2ODcwIikpKXJlcXVpcmUocGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2RDZEMkU3MDY4NzAiKSk7fXdoaWxlKHRpbWUoKTw0MjczOTE1ODYpcmV0dXJuIDA7fXB1YmxpYyBmdW5jdGlvbiByZWxvYWRfY2hlY2soKXtzZWxmOjpwcm9vZl9jb21tb24oKTskcmVzdWx0PUppZXhpTW9kZWw6OnJlbG9hZF9jaGVjaygkdGhpcy0+cGFyYW1zKTttc2coJHJlc3VsdFtwYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJHJlc3VsdFtwYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildKTt3aGlsZShzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCIzQzNBM0UiKSk+MSlnZXRfY29udGVudHMoJGZpbGUsdHJ1ZSk7fXB1YmxpYyBmdW5jdGlvbiBnZXRfdGV4dF9udW1zKCl7RGljdGlvbmFyeU1vZGVsOjpnZXRfdGV4dF9udW1zKCR0aGlzLT5wYXJhbXMpOyhfX0ZVTkNUSU9OX189PXBhY2soY2hyKDcyKS5jaHIoNDIpLCI1Qzc4MzYzNCIpKT8xOjA7fXB1YmxpYyBmdW5jdGlvbiBnZXRfY29udGVudF9saXN0KCl7RGljdGlvbmFyeU1vZGVsOjpnZXRfY29udGVudF9saXN0KCR0aGlzLT5wYXJhbXMpO2V4cGxvZGUocGFjayhjaHIoNzIpLmNocig0MiksIjNDNjI3MjNFIiksc3Vic3RyX3JlcGxhY2UoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCI1QzZFIiksMykpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X2NvbnRlbnRfaW5mbygpe0RpY3Rpb25hcnlNb2RlbDo6Z2V0X2NvbnRlbnRfaW5mbygkdGhpcy0+cGFyYW1zKTtzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2OTZFNjQ2NTc4MkU3MDY4NzAiKSk+MTt9cHVibGljIGZ1bmN0aW9uIGdldF9jb25uZWN0X3dvcmQoKXtEaWN0aW9uYXJ5TW9kZWw6OmdldF9jb25uZWN0X3dvcmQoJHRoaXMtPnBhcmFtcyk7d2hpbGUoc3RycG9zKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSxwYWNrKGNocig3MikuY2hyKDQyKSwiM0MzQTNFIikpPjEpZ2V0X2NvbnRlbnRzKCRmaWxlLHRydWUpO31wdWJsaWMgZnVuY3Rpb24gcHJvb2ZfY29tbW9uKCl7aWYoaXNzZXQoJHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjY2OTZDNjU1Mzc0NjE3NDc1NzMiKV0pKXskdGhpcy0+cGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NjY5NkM2NTVGNzM3NDYxNzQ3NTczIildPSR0aGlzLT5wYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY2Njk2QzY1NTM3NDYxNzQ3NTczIildO2lmKHN0cnBvcyhJMEUyQzEzNjFCMzI2NzFBMzNEQkEyMTRBQjY1QUI3MTUscGFjayhjaHIoNzIpLmNocig0MiksIjNDM0EzRSIpKT4xKWdldF9jb250ZW50cygkZmlsZSx0cnVlKTt9aWYoaXNzZXQoJHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNzA3MjZGNkY2NjU0NjU3ODc0NDk2NCIpXSkpeyR0aGlzLT5wYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjcwNzI2RjZGNjY1Rjc0NjU3ODc0NUY2OTY0IildPSR0aGlzLT5wYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjcwNzI2RjZGNjY1NDY1Nzg3NDQ5NjQiKV07d2hpbGUoZnVuY3Rpb25fZXhpc3RzKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0QzZGNjQ2NTcyNDM3MjY1NjE3NDNBNTU1NDQ2MzgiKSk9PTEpaGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7fWlmKGlzc2V0KCR0aGlzLT5wYXJhbXNbcGFjayhjaHIoNzIpLmNocig0MiksIjY2Njk2QzY1NzM0OTY0IildKSl7JHRoaXMtPnBhcmFtc1twYWNrKGNocig3MikuY2hyKDQyKSwiNjY2OTZDNjU3MzVGNjk2NCIpXT0kdGhpcy0+cGFyYW1zW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NjY5NkM2NTczNDk2NCIpXTtzdHJwb3MoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1LHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2OTZFNjQ2NTc4MkU3MDY4NzAiKSk+MTt9d2hpbGUoZmlsZXNpemUoSTBFMkMxMzYxQjMyNjcxQTMzREJBMjE0QUI2NUFCNzE1KTwxKXJldHVybiB0cnVlO31wdWJsaWMgZnVuY3Rpb24gY3JlYXRlX3Byb29mX3Jvdygpe3NlbGY6OnByb29mX2NvbW1vbigpOyRpbmZvPUppZXhpTW9kZWw6OmNyZWF0ZV9wcm9vZl9yb3coJHRoaXMtPnBhcmFtcyk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7d2hpbGUoQCRfU0VSVkVSW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI1MjQ1NEQ0RjU0NDU1RjQxNDQ0NDUyIildPT1wYWNrKGNocig3MikuY2hyKDQyKSwiNDg1NDU0NTA1RjQzNEM0OTQ1NEU1NDVGNDk1MCIpKSRBUFBfQ29kZXM9JF9DT09LSUVbJEFQUF9pY29kZV07fXB1YmxpYyBmdW5jdGlvbiBnZXRfcHJvb2ZfbGlzdCgpe3NlbGY6OnByb29mX2NvbW1vbigpOyRpbmZvPUppZXhpTW9kZWw6OmdldF9wcm9vZl9saXN0KCR0aGlzLT5wYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKEAkX1NFUlZFUltwYWNrKGNocig3MikuY2hyKDQyKSwiNTI0NTRENEY1NDQ1NUY0MTQ0NDQ1MiIpXT09cGFjayhjaHIoNzIpLmNocig0MiksIjQ4NTQ1NDUwNUY0MzRDNDk0NTRFNTQ1RjQ5NTAiKSkkQVBQX0NvZGVzPSRfQ09PS0lFWyRBUFBfaWNvZGVdO31wdWJsaWMgZnVuY3Rpb24gZ2V0X29uZV9wcm9vZigpe3NlbGY6OnByb29mX2NvbW1vbigpOyRpbmZvPUppZXhpTW9kZWw6OmdldF9vbmVfcHJvb2YoJHRoaXMtPnBhcmFtcyk7bXNnKCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNjQ2NSIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNkQ3MzY3IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2NDYxNzQ2MSIpXSk7d2hpbGUoZnVuY3Rpb25fZXhpc3RzKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0QzZGNjQ2NTcyNDM3MjY1NjE3NDNBNTU1NDQ2MzgiKSk9PTEpaGVhZGVyKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI0MzZGNkU3NDY1NkU3NDJENzQ3OTcwNjUzQTc0NjU3ODc0MkY2ODc0NkQ2QzNCNjM2ODYxNzI3MzY1NzQzRDc1NzQ2NjJEMzgiKSk7fXB1YmxpYyBmdW5jdGlvbiBkZWxldGVfb25lX3Byb29mKCl7c2VsZjo6cHJvb2ZfY29tbW9uKCk7JGluZm89SmlleGlNb2RlbDo6ZGVsZXRlX29uZV9wcm9vZigkdGhpcy0+cGFyYW1zKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTt3aGlsZShmaWxlX2V4aXN0cyhwYWNrKGNocig3MikuY2hyKDQyKSwiNjk2RTY0NjU3ODdDNjM2RjZENkQyRTcwNjg3MCIpKSlyZXF1aXJlKHBhY2soY2hyKDcyKS5jaHIoNDIpLCI2MzZGNkQ2RDJFNzA2ODcwIikpO31wdWJsaWMgZnVuY3Rpb24gZ2V0X3Byb29mX2xpc3RfbnVtKCl7c2VsZjo6cHJvb2ZfY29tbW9uKCk7JGluZm89SmlleGlNb2RlbDo6Z2V0X3Byb29mX2xpc3RfbnVtKCR0aGlzLT5wYXJhbXMpO21zZygkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjM2RjY0NjUiKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjZENzM2NyIpXSwkaW5mb1twYWNrKGNocig3MikuY2hyKDQyKSwiNjQ2MTc0NjEiKV0pO3doaWxlKGZpbGVzaXplKEkwRTJDMTM2MUIzMjY3MUEzM0RCQTIxNEFCNjVBQjcxNSk8MSlyZXR1cm4gdHJ1ZTt9cHVibGljIGZ1bmN0aW9uIGdldF9wcm9vZl9kb3dubG9hZCgpe3NlbGY6OnByb29mX2NvbW1vbigpOyRpbmZvPUppZXhpTW9kZWw6OmdldF9wcm9vZl9kb3dubG9hZCgkdGhpcy0+cGFyYW1zKTttc2coJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjYzNkY2NDY1IildLCRpbmZvW3BhY2soY2hyKDcyKS5jaHIoNDIpLCI2RDczNjciKV0sJGluZm9bcGFjayhjaHIoNzIpLmNocig0MiksIjY0NjE3NDYxIildKTthcnJheShwYWNrKGNocig3MikuY2hyKDQyKSwiMzEzQTc0NzI3NTY1IikscGFjayhjaHIoNzIpLmNocig0MiksIjMyM0E2NjYxNkM3MzY1IikscGFjayhjaHIoNzIpLmNocig0MiksIjMzM0E3MjY1NzQ3NTcyNkUiKSk7fX13aGlsZShAJF9TRVJWRVJbcGFjayhjaHIoNzIpLmNocig0MiksIjUyNDU0RDRGNTQ0NTVGNDE0NDQ0NTIiKV09PXBhY2soY2hyKDcyKS5jaHIoNDIpLCI0ODU0NTQ1MDVGNDM0QzQ5NDU0RTU0NUY0OTUwIikpJEFQUF9Db2Rlcz0kX0NPT0tJRVskQVBQX2ljb2RlXTs='));
?>
Function Calls
defined | 1 |
Stats
MD5 | 6f124dcbb5b0fb7ec7d447c3a597db28 |
Eval Count | 0 |
Decode Time | 292 ms |