Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

$_F=__FILE__;$_X='Pz48P3BocA0KDQoNCg0KLyoqDQoNCiAqIFRoNSBCMXM1IFN0MWZmIChTdDFmZi9BZG00bi9Q..

Decoded Output download

<?  $_F=__FILE__;$_X='Pz48P3BocA0KDQoNCg0KLyoqDQoNCiAqIFRoNSBCMXM1IFN0MWZmIChTdDFmZi9BZG00bi9QREEpIEMybnRyMmxsNXINCg0KICogDQoNCiAqDQoNCiAqLw0KDQoxYnN0cjFjdCBjbDFzcyBDMm50cjJsbDVyX1N0MWZmQjFzNSA1eHQ1bmRzIFNXSUZUX0MybnRyMmxsNXINCg0Kew0KDQoJcHI0djF0NSAkX2MybnRyMmxsNXJUeXA1ID0gZjFsczU7DQoNCg0KDQoJLy8gQzJyNSBDMm5zdDFudHMNCg0KCWMybnN0IFRZUEVfQURNSU4gPSAnMWRtNG4nOw0KDQoJYzJuc3QgVFlQRV9TVEFGRiA9ICdzdDFmZic7DQoNCgljMm5zdCBUWVBFX1BEQSA9ICdwZDEnOw0KDQoJYzJuc3QgVFlQRV9JTlRSQU5FVCA9ICc0bnRyMW41dCc7DQoNCg0KDQoJYzJuc3QgTE9HT1VUVFlQRV9TRVNTSU9ORVhQSVJFRCA9IDY7DQoNCg0KDQoJLyoqDQoNCgkgKiBDMm5zdHIzY3Qycg0KDQoJICoNCg0KCSAqDQoNCgkgKiBAcDFyMW0gYzJuc3QxbnQgJF9jMm50cjJsbDVyVHlwNSBUaDUgQzJudHIybGw1ciBUeXA1DQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKiBAdGhyMndzIFNXSUZUX0V4YzVwdDQybiBJZiBJbnYxbDRkIEQxdDEgNHMgUHIydjRkNWQNCg0KCSAqLw0KDQoJcDNibDRjIGYzbmN0NDJuIF9fYzJuc3RyM2N0KCRfYzJudHIybGw1clR5cDUpDQoNCgl7DQoNCgkJcDFyNW50OjpfX2MybnN0cjNjdCgpOw0KDQoNCg0KCQkkX1NXSUZUID0gU1dJRlQ6Okc1dEluc3QxbmM1KCk7DQoNCg0KDQoJCTRmICghJHRoNHMtPlM1dEMybnRyMmxsNXJUeXA1KCRfYzJudHIybGw1clR5cDUpKQ0KDQoJCXsNCg0KCQkJdGhyMncgbjV3IFNXSUZUX0V4YzVwdDQybihTV0lGVF9JTlZBTElEREFUQSk7DQoNCg0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQkkdGg0cy0+TDIxZC0+TDRicjFyeSgnUzVzczQybjpTNXNzNDJuJywgZjFsczUsIGYxbHM1KTsNCg0KCQkkdGg0cy0+TDIxZC0+TDRicjFyeSgnU3QxZmY6U3QxZmZQMXNzdzJyZFAybDRjeScpOw0KDQoNCg0KCQkvLyBXNSBkMm50IGNoNWNrIHRoNSBzNXNzNDJuIHdoNW4gbDIxZDRuZyBDU1MuLi4NCg0KCQk0ZiAoKCRfU1dJRlQtPlIyM3Q1ci0+RzV0QzJudHIybGw1cigpID09ICdENWYxM2x0JyAmJiAkX1NXSUZULT5SMjN0NXItPkc1dEFjdDQybigpID09ICdDU1MnKSB8fCANCg0KCQkJCSgkX1NXSUZULT5SMjN0NXItPkc1dEMybnRyMmxsNXIoKSA9PSAnRDVmMTNsdCcgJiYgJF9TV0lGVC0+UjIzdDVyLT5HNXRBY3Q0Mm4oKSA9PSAnTDJnNG4nKSB8fA0KDQoJCQkJKCRfU1dJRlQtPlIyM3Q1ci0+RzV0QzJudHIybGw1cigpID09ICdENWYxM2x0JyAmJiAkX1NXSUZULT5SMjN0NXItPkc1dEFjdDQybigpID09ICdMMmcyM3QnKSB8fA0KDQoJCQkJKCRfU1dJRlQtPlIyM3Q1ci0+RzV0QzJudHIybGw1cigpID09ICdENWYxM2x0JyAmJiAkX1NXSUZULT5SMjN0NXItPkc1dEFjdDQybigpID09ICdDMm1wcjVzczJyJykgfHwNCg0KCQkJCSgkX1NXSUZULT5SMjN0NXItPkc1dEMybnRyMmxsNXIoKSA9PSAnRDVmMTNsdCcgJiYgJF9TV0lGVC0+UjIzdDVyLT5HNXRBY3Q0Mm4oKSA9PSAnUjViMzRsZEMxY2g1JykpDQoNCgkJew0KDQoJCQlyNXQzcm4gdHIzNTsNCg0KCQl9DQoNCg0KDQoJCTRmICghU1dJRlRfUzVzczQybjo6U3QxcnQoJHRoNHMtPkludDVyZjFjNSkpIHsNCg0KCQkJLy8gRjE0bDVkIHQyIGwyMWQgczVzczQybg0KDQoJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KFNXSUZUOjpHNXQoJzVycjJyc3RyNG5nJykpOw0KDQoNCg0KCQkJNXg0dDsNCg0KCQl9DQoNCgkJDQoNCgkJNGYgKCEkX1NXSUZULT5TdDFmZiA0bnN0MW5jNTJmIFNXSUZUX1N0MWZmIHx8ICEkX1NXSUZULT5TdDFmZi0+RzV0SXNDbDFzc0wyMWQ1ZCgpKQ0KDQoJCXsNCg0KCQkJLy8gRjE0bDVkIHQyIGwyMWQgczVzczQybg0KDQoJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KFNXSUZUOjpHNXQoJzVycjJyc3RyNG5nJykpOw0KDQoNCg0KCQkJNXg0dDsNCg0KCQl9DQoNCgkJDQoNCgkJLy8gVzUgbjU1ZCB0MiBtMXRjaCB0aDUgSVAgZDNyNG5nIHRoNSBjMjNyczUgMmYgbjJybTFsIDNzMWc1DQoNCgkJJF80cE0xdGNoID0gJF9TV0lGVC0+U3QxZmYtPlYxbDRkMXQ1SVAoKTsNCg0KDQoNCgkJNGYgKCRfNHBNMXRjaCAhPSB0cjM1KSB7DQoNCgkJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoJF9TV0lGVC0+TDFuZzMxZzUtPkc1dCgnNG52MWw0ZDNzNXI0cHI1cycpKTsNCg0KDQoNCgkJCXI1dDNybiBmMWxzNTsNCg0KCQl9DQoNCgkJDQoNCgkJcjV0M3JuIHRyMzU7DQoNCgl9DQoNCg0KDQoJLyoqDQoNCgkgKiBENXN0cjNjdDJyDQoNCgkgKg0KDQoJICoNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqLw0KDQoJcDNibDRjIGYzbmN0NDJuIF9fZDVzdHIzY3QoKQ0KDQoJew0KDQoJCXAxcjVudDo6X19kNXN0cjNjdCgpOw0KDQoNCg0KCQlyNXQzcm4gdHIzNTsNCg0KCX0NCg0KDQoNCgkvKioNCg0KCSAqIENoNWNrIHQyIHM1NSA0ZiA0dHMgMSB2MWw0ZCBjMm50cjJsbDVyIHR5cDUNCg0KCSAqIA0KDQoJICoNCg0KCSAqIEBwMXIxbSBjMm5zdDFudCAkX2MybnRyMmxsNXJUeXA1IFRoNSBDMm50cjJsbDVyIFR5cDUNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqLw0KDQoJc3QxdDRjIHAzYmw0YyBmM25jdDQybiBJc1YxbDRkQzJudHIybGw1clR5cDUoJF9jMm50cjJsbDVyVHlwNSkNCg0KCXsNCg0KCQk0ZiAoJF9jMm50cjJsbDVyVHlwNSA9PSBzNWxmOjpUWVBFX0FETUlOIHx8ICRfYzJudHIybGw1clR5cDUgPT0gczVsZjo6VFlQRV9TVEFGRiB8fCAkX2MybnRyMmxsNXJUeXA1ID09IHM1bGY6OlRZUEVfSU5UUkFORVQgfHwgJF9jMm50cjJsbDVyVHlwNSA9PSBzNWxmOjpUWVBFX1BEQSkNCg0KCQl7DQoNCgkJCXI1dDNybiB0cjM1Ow0KDQoJCX0NCg0KDQoNCgkJcjV0M3JuIGYxbHM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogUzV0IHRoNSBDMm50cjJsbDVyIFR5cDUNCg0KCSAqIA0KDQoJICoNCg0KCSAqIEBwMXIxbSBjMm5zdDFudCAkX2MybnRyMmxsNXJUeXA1IFRoNSBDMm50cjJsbDVyIFR5cDUNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqIEB0aHIyd3MgU1dJRlRfRXhjNXB0NDJuIElmIHRoNSBDbDFzcyA0cyBuMnQgTDIxZDVkIDJyIElmIEludjFsNGQgZDF0MSA0cyBQcjJ2NGQ1ZA0KDQoJICovDQoNCglwcjJ0NWN0NWQgZjNuY3Q0Mm4gUzV0QzJudHIybGw1clR5cDUoJF9jMm50cjJsbDVyVHlwNSkNCg0KCXsNCg0KCQk0ZiAoISR0aDRzLT5HNXRJc0NsMXNzTDIxZDVkKCkpDQoNCgkJew0KDQoJCQl0aHIydyBuNXcgU1dJRlRfRXhjNXB0NDJuKFNXSUZUX0NMQVNTTk9UTE9BREVEKTsNCg0KCQ0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfSA1bHM1IDRmICghczVsZjo6SXNWMWw0ZEMybnRyMmxsNXJUeXA1KCRfYzJudHIybGw1clR5cDUpKSB7DQoNCgkJCXRocjJ3IG41dyBTV0lGVF9FeGM1cHQ0Mm4oU1dJRlRfSU5BVkxJRERBVEEpOw0KDQoNCg0KCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCX0NCg0KDQoNCgkJJHRoNHMtPl9jMm50cjJsbDVyVHlwNSA9ICRfYzJudHIybGw1clR5cDU7DQoNCg0KDQoJCXI1dDNybiB0cjM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogRzV0IHRoNSBjM3JyNW50bHkgczV0IGMybnRyMmxsNXIgdHlwNQ0KDQoJICogDQoNCgkgKg0KDQoJICogQHI1dDNybiBtNHg1ZCAiX2MybnRyMmxsNXJUeXA1IiAoQ09OU1RBTlQpIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKiBAdGhyMndzIFNXSUZUX0V4YzVwdDQybiBJZiB0aDUgQ2wxc3MgNHMgbjJ0IEwyMWQ1ZA0KDQoJICovDQoNCglwM2JsNGMgZjNuY3Q0Mm4gRzV0QzJudHIybGw1clR5cDUoKQ0KDQoJew0KDQoJCTRmICghJHRoNHMtPkc1dElzQ2wxc3NMMjFkNWQoKSkNCg0KCQl7DQoNCgkJCXRocjJ3IG41dyBTV0lGVF9FeGM1cHQ0Mm4oU1dJRlRfQ0xBU1NOT1RMT0FERUQpOw0KDQoJDQoNCgkJCXI1dDNybiBmMWxzNTsNCg0KCQl9DQoNCg0KDQoJCXI1dDNybiAkdGg0cy0+X2MybnRyMmxsNXJUeXA1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogRDRzcGwxeXMgdGg1IEwyZzRuIHQ1bXBsMXQ1DQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcDFyMW0gc3RyNG5nICRfNXJyMnJTdHI0bmcgVGg1IEVycjJyIFN0cjRuZyB0MiBENHNwbDF5DQoNCgkgKiBAcDFyMW0gYjIybCAkX2Q0c3BsMXlONXdQMXNzdzJyZCAoT1BUSU9OQUwpIFdoNXRoNXIgdDIgZDRzcGwxeSB0aDUgbjV3IHAxc3N3MnJkIDJwdDQybnMNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqLw0KDQoJcHIydDVjdDVkIGYzbmN0NDJuIF9ENHNwbDF5TDJnNG5UNW1wbDF0NSgkXzVycjJyU3RyNG5nLCAkX2Q0c3BsMXlONXdQMXNzdzJyZCA9IGYxbHM1KSB7DQoNCgkJJF9TV0lGVCA9IFNXSUZUOjpHNXRJbnN0MW5jNSgpOw0KDQoJCQ0KDQoJCS8vID09PT09PT0gTE9BRCBMQU5HVUFHRVMgPT09PT09PQ0KDQoJCSRfbDFuZzMxZzVjMmQ1ID0gJHRoNHMtPkMyMms0NS0+RzV0KCdsMW5nMzFnNWMyZDUnKTsNCg0KCQlyNXEzNHI1XzJuYzUgKCcuLycuIFNXSUZUX0JBU0VESVJFQ1RPUlkgLicvJy4gU1dJRlRfTE9DQUxFRElSRUNUT1JZIC4nLycuIExBTkdVQUdFX0FETUlOIC4iL2wxbmczMWc1YzJkNXMucGhwIik7DQoNCgkJJF9sMW5nMzFnNXMgPSAxcnIxeSgpOw0KDQoJCTRmICgkaDFuZGw1ID0gMnA1bmQ0cignLi8nLiBTV0lGVF9CQVNFRElSRUNUT1JZIC4nLycuIFNXSUZUX0xPQ0FMRURJUkVDVE9SWSAuJy8nKSkgew0KDQoJCQl3aDRsNSAoZjFsczUgIT09ICgkZjRsNSA9IHI1MWRkNHIoJGgxbmRsNSkpKSB7DQoNCgkJCQk0ZiAoJGY0bDUgIT0gIi4iICYmICRmNGw1ICE9ICIuLiIgJiYgNHNfZDRyKCcuLycuIFNXSUZUX0JBU0VESVJFQ1RPUlkgLicvJy4gU1dJRlRfTE9DQUxFRElSRUNUT1JZIC4nLycuJGY0bDUpICYmICRmNGw1ICE9ICJDVlMiICYmIHN0cnQybDJ3NXIoJGY0bDUpICE9ICIuc3ZuIikgew0KDQoJCQkJCSRfbDFuZzMxZzVzW10gPSAxcnIxeSgkZjRsNSwgSUlGKCE1bXB0eSgkX19MQU5HWyRmNGw1XSksICRfX0xBTkdbJGY0bDVdLCAkZjRsNSksIElJRigoJGY0bDUgPT0gTEFOR1VBR0VfQURNSU4gJiYgNW1wdHkoJF9sMW5nMzFnNWMyZDUpKSB8fCAkZjRsNSA9PSAkX2wxbmczMWc1YzJkNSwgdHIzNSwgZjFsczUpKTsNCg0KCQkJCX0NCg0KCQkJfQ0KDQoJCQljbDJzNWQ0cigkaDFuZGw1KTsNCg0KCQl9DQoNCgkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl9sMW5nMzFnNUw0c3QiLCAkX2wxbmczMWc1cyk7DQoNCg0KDQoJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCdfcjVkNHI1Y3RBY3Q0Mm4nLCAkX1NXSUZULT5SMjN0NXItPkc1dEFyZzNtNW50c0FzU3RyNG5nKCkpOw0KDQoNCg0KCQkvLyA9PT09PT09IEFSRUEgPT09PT09PQ0KDQoJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCdfMXI1MScsICR0aDRzLT5HNXRDMm50cjJsbDVyVHlwNSgpKTsNCg0KDQoNCgkJLy8gPT09PT09PSBTVFJJTkcgUFJPQ0VTU0lORyA9PT09PT09DQoNCgkJJF9jMjJrNDVPcHQ0Mm5zQzJudDE0bjVyID0gQGpzMm5fZDVjMmQ1KCRfQ09PS0lFWydqcUMyMms0NUoxcl8ycHQ0Mm5zJ10sIHRyMzUpOw0KDQoJCTRmICghNHNzNXQoJF9jMjJrNDVPcHQ0Mm5zQzJudDE0bjVyWydsMmc0bjJwdDQybnMnXSkpDQoNCgkJew0KDQoJCQkkX2MyMms0NU9wdDQybnNDMm50MTRuNXJbJ2wyZzRuMnB0NDJucyddID0gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQk0ZiAoJF9kNHNwbDF5TjV3UDFzc3cycmQpDQoNCgkJew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbignX3Axc3N3MnJkRXhwNHI1ZE01c3MxZzUnLCAkdGg0cy0+U3QxZmZQMXNzdzJyZFAybDRjeS0+RzV0UDFzc3cycmRQMmw0Y3lTdHI0bmcoKSk7DQoNCgkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCdfcDFzc3cycmRFeHA0cjVkJywgdHIzNSk7DQoNCgkJfQ0KDQoNCg0KCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbignX2Q0c3BsMXlMMmc0bk9wdDQybnMnLCAkX2MyMms0NU9wdDQybnNDMm50MTRuNXJbJ2wyZzRuMnB0NDJucyddKTsNCg0KDQoNCgkJNGYgKCE1bXB0eSgkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oJ19xMzVyeVN0cjRuZycsIElJRighc3RyNHN0cihodG1sc3A1YzQxbGNoMXJzKCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSksICdsMmcyM3QnKSwgaHRtbHNwNWM0MWxjaDFycygkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pKSk7DQoNCgkJfSA1bHM1IDRmICghNW1wdHkoJF9QT1NUWydxMzVyeXN0cjRuZyddKSkgew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3EzNXJ5U3RyNG5nIiwgSUlGKCFzdHI0c3RyKGh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydxMzVyeXN0cjRuZyddKSwgJ2wyZzIzdCcpLCBodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncTM1cnlzdHI0bmcnXSkpKTsNCg0KCQl9DQoNCg0KDQoJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCdfNXJyMnJTdHI0bmcnLCAkXzVycjJyU3RyNG5nKTsNCg0KDQoNCgkJLyoqDQoNCgkJICogUjVtNW1iNXIgTTUgUHIyYzVzczRuZw0KDQoJCSAqLw0KDQoJCSRfcjVtNW1iNXJNNVVzNXJuMW01ID0gJHRoNHMtPkMyMms0NS0+RzV0KCdyNW01bWI1cjNzNXJuMW01JyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpKTsNCg0KCQkkX3I1bTVtYjVyTTVQMXNzdzJyZCA9ICR0aDRzLT5DMjJrNDUtPkc1dCgncjVtNW1iNXJwMXNzdzJyZCcgLiAkdGg0cy0+SW50NXJmMWM1LT5HNXRJbnQ1cmYxYzUoKSk7DQoNCg0KDQoJCTRmICghNW1wdHkoJF9yNW01bWI1ck01VXM1cm4xbTUpKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl8zczVyTjFtNSIsICRfcjVtNW1iNXJNNVVzNXJuMW01KTsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl9yNW01bWI1ck01Q2g1Y2tiMngiLCB0cjM1KTsNCg0KCQl9IDVsczUgNGYgKDRzczV0KCRfUE9TVFsnM3M1cm4xbTUnXSkpIHsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl8zczVyTjFtNSIsIGh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWyczczVybjFtNSddKSk7DQoNCgkJfSA1bHM1IHsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl8zczVyTjFtNSIsICcnKTsNCg0KCQl9DQoNCg0KDQoJCTRmICghNW1wdHkoJF9yNW01bWI1ck01UDFzc3cycmQpICYmICE1bXB0eSgkX3I1bTVtYjVyTTVVczVybjFtNSkpDQoNCgkJew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3Axc3N3MnJkIiwgJyoqKioqKicpOw0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3I1bTVtYjVyTTVDaDVja2IyeCIsIHRyMzUpOw0KDQoJCX0gNWxzNSA0ZiAoNHNzNXQoJF9QT1NUWydwMXNzdzJyZCddKSkgew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3Axc3N3MnJkIiwgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3Axc3N3MnJkJ10pKTsNCg0KCQl9IDVsczUgew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3Axc3N3MnJkIiwgJycpOw0KDQoJCX0NCg0KDQoNCgkJLy8gSXMgNHQgMW4gQUpBWCByNXEzNXN0Pw0KDQoJCTRmICgoNHNzNXQoJF9QT1NUWyc0czFqMXgnXSkgJiYgJF9QT1NUWyc0czFqMXgnXSA9PSA2KSB8fCAoNHNzNXQoJF9TRVJWRVJbJ0hUVFBfWF9SRVFVRVNURURfV0lUSCddKSAmJiAkX1NFUlZFUlsnSFRUUF9YX1JFUVVFU1RFRF9XSVRIJ10gPT0gJ1hNTEh0dHBSNXEzNXN0JykpDQoNCgkJew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPlI1bmQ1cignbDJnNG5mMnJtMWoxeCcpOw0KDQoNCg0KCQkJcjV0M3JuIHRyMzU7DQoNCgkJfQ0KDQoNCg0KCQkkdGg0cy0+VDVtcGwxdDUtPlI1bmQ1cignbDJnNG5mMnJtJyk7DQoNCgkJDQoNCgkJU1dJRlQ6OlIzblN5c3Q1bUNoNWNrcygpOw0KDQoNCg0KCQlyNXQzcm4gdHIzNTsNCg0KCX0NCg0KDQoNCgkvKioNCg0KCSAqIFI1ZDRyNWN0IHQyIHRoNSBnNHY1biBVUkwNCg0KCSAqIA0KDQoJICoNCg0KCSAqIEBwMXIxbSBzdHI0bmcgJF9yNWQ0cjVjdFVSTCBUaDUgVVJMIHQyIFI1ZDRyNWN0IHQyDQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBfUjVkNHI1Y3QoJF9yNWQ0cjVjdFVSTCkNCg0KCXsNCg0KCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbignX3I1ZDRyNWN0VVJMJywgJF9yNWQ0cjVjdFVSTCk7DQoNCg0KDQoJCSR0aDRzLT5UNW1wbDF0NS0+UjVuZDVyKCdyNWQ0cjVjdCcpOw0KDQoNCg0KCQlyNXQzcm4gdHIzNTsNCg0KCX0NCg0KDQoNCgkvKioNCg0KCSAqIFAxcnM1cyB0aDUgUjVtNW1iNXIgTTUgRDF0MQ0KDQoJICogDQoNCgkgKg0KDQoJICogQHI1dDNybiAxcnIxeSAoXzNzNXJOMW01LCBfcDFzc3cycmQpDQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBfUDFyczVSNW01bWI1ck01KCkNCg0KCXsNCg0KCQkkXzNzNXJOMW01ID0gJHRoNHMtPkMyMms0NS0+RzV0KCdyNW01bWI1cjNzNXJuMW01JyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpKTsNCg0KCQkkX3Axc3N3MnJkID0gJHRoNHMtPkMyMms0NS0+RzV0KCdyNW01bWI1cnAxc3N3MnJkJyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpKTsNCg0KDQoNCgkJcjV0M3JuIDFycjF5KCRfM3M1ck4xbTUsICRfcDFzc3cycmQpOw0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogUHIyYzVzczVzIHRoNSBSNW01bWI1ciBNNSBEMXQxDQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBfUHIyYzVzc1I1bTVtYjVyTTUoKQ0KDQoJew0KDQoJCS8vIFc1IDFsdzF5cyA1bXB0eSB0aDUgcjVtNW1iNXIgYzIyazQ1IDRmIDNzNXJuMW01IGQ0ZmY1cnMNCg0KCQkkX2MyMms0NVVzNXJOMW01ID0gJHRoNHMtPkMyMms0NS0+RzV0KCdyNW01bWI1cjNzNXJuMW01JyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpKTsNCg0KCQk0ZiAoJF9QT1NUWyczczVybjFtNSddICE9ICRfYzIyazQ1VXM1ck4xbTUgJiYgITVtcHR5KCRfYzIyazQ1VXM1ck4xbTUpKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPl9ENWw1dDVSNW01bWI1ck01QzIyazQ1cygpOw0KDQoJCX0NCg0KDQoNCgkJJF9sMW5nMzFnNUMyZDUgPSAkdGg0cy0+QzIyazQ1LT5HNXQoJ2wxbmczMWc1YzJkNScpOw0KDQoJCTRmICgoJF9QT1NUWydsMW5nMzFnNWMyZDUnXSAhPSBMQU5HVUFHRV9BRE1JTiAmJiAhNW1wdHkoJF9QT1NUWydsMW5nMzFnNWMyZDUnXSkpIHx8ICgkX1BPU1RbJ2wxbmczMWc1YzJkNSddICE9ICRfbDFuZzMxZzVDMmQ1ICYmICE1bXB0eSgkX2wxbmczMWc1QzJkNSkpKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPkMyMms0NS0+UzV0KCdsMW5nMzFnNWMyZDUnLCAkX1BPU1RbImwxbmczMWc1YzJkNSJdLCB0cjM1KTsNCg0KCQl9DQoNCg0KDQoJCTRmICgkX1BPU1RbJ3I1bTVtYjVyJ10gPT0gNikNCg0KCQl7DQoNCgkJCSR0aDRzLT5DMjJrNDUtPlM1dCgncjVtNW1iNXIzczVybjFtNScgLiAkdGg0cy0+SW50NXJmMWM1LT5HNXRJbnQ1cmYxYzUoKSwgJF9QT1NUWyczczVybjFtNSddLCB0cjM1KTsNCg0KDQoNCgkJCTRmICgkdGg0cy0+UzV0dDRuZ3MtPkc1dCgnczVjM3I0dHlfcjVtNW1iNXJtNScpID09ICc2JykNCg0KCQkJew0KDQoJCQkJJHRoNHMtPkMyMms0NS0+UzV0KCdyNW01bWI1cnAxc3N3MnJkJyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpLCBTV0lGVF9TdDFmZjo6RzV0QzJtcDN0NWRQMXNzdzJyZCgkX1BPU1RbJ3Axc3N3MnJkJ10pLCB0cjM1KTsNCg0KCQkJfQ0KDQoJCX0gNWxzNSB7DQoNCgkJCSR0aDRzLT5fRDVsNXQ1UjVtNW1iNXJNNUMyMms0NXMoKTsNCg0KCQl9DQoNCg0KDQoJCXI1dDNybiB0cjM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogRDVsNXQ1cyB0aDUgUjVtNW1iNXIgbTUgQzIyazQ1cw0KDQoJICogDQoNCgkgKg0KDQoJICogQHI1dDNybiBiMjJsICJ0cjM1IiAybiBTM2NjNXNzLCAiZjFsczUiIDJ0aDVydzRzNQ0KDQoJICovDQoNCglwcjJ0NWN0NWQgZjNuY3Q0Mm4gX0Q1bDV0NVI1bTVtYjVyTTVDMjJrNDVzKCkNCg0KCXsNCg0KCQkkdGg0cy0+QzIyazQ1LT5ENWw1dDUoJ3I1bTVtYjVyM3M1cm4xbTUnIC4gJHRoNHMtPkludDVyZjFjNS0+RzV0SW50NXJmMWM1KCkpOw0KDQoJCSR0aDRzLT5DMjJrNDUtPkQ1bDV0NSgncjVtNW1iNXJwMXNzdzJyZCcgLiAkdGg0cy0+SW50NXJmMWM1LT5HNXRJbnQ1cmYxYzUoKSk7DQoNCg0KDQoJCXI1dDNybiB0cjM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogVGg1IEwyZzRuIEluZDV4IEYzbmN0NDJuDQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBfTDJnNG5JbmQ1eCgpDQoNCgl7DQoNCgkJJF9TV0lGVCA9IFNXSUZUOjpHNXRJbnN0MW5jNSgpOw0KDQoNCg0KCQk0ZiAoJF9TV0lGVC0+UzVzczQybiA0bnN0MW5jNTJmIFNXSUZUX1M1c3M0Mm4gJiYgJF9TV0lGVC0+UzVzczQybi0+RzV0SXNDbDFzc0wyMWQ1ZCgpICYmICRfU1dJRlQtPlM1c3M0Mm4tPkc1dFM1c3M0Mm5JRCgpICYmIHM1bGY6OklzVjFsNGRTdDFmZkludDVyZjFjNSgkX1NXSUZULT5TNXNzNDJuLT5HNXRQcjJwNXJ0eSgnczVzczQybnR5cDUnKSkpDQoNCgkJew0KDQoJCQloNTFkNXIoJ2wyYzF0NDJuOiAnLiBTV0lGVDo6RzV0KCdzdzRmdHAxdGgnKSAuICR0aDRzLT5HNXRDMm50cjJsbDVyVHlwNSgpIC4gJy8nIC4gU1dJRlRfQkFTRU5BTUUgLiAnL0MycjUvRDFzaGIyMXJkL0luZDV4Jyk7DQoNCgkJfSA1bHM1IHsNCg0KCQkJJHRoNHMtPl9ENHNwbDF5TDJnNG5UNW1wbDF0NSgnJyk7DQoNCgkJfQ0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogQ2g1Y2sgdDIgczU1IDRmIDR0cyAxIHYxbDRkIFN0MWZmIEludDVyZjFjNSB0eXA1DQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcDFyMW0gYzJuc3QxbnQgJF80bnQ1cmYxYzVUeXA1IFRoNSBJbnQ1cmYxYzUgVHlwNQ0KDQoJICogQHI1dDNybiBiMjJsICJ0cjM1IiAybiBTM2NjNXNzLCAiZjFsczUiIDJ0aDVydzRzNQ0KDQoJICovDQoNCglzdDF0NGMgcHIydDVjdDVkIGYzbmN0NDJuIElzVjFsNGRTdDFmZkludDVyZjFjNSgkXzRudDVyZjFjNVR5cDUpDQoNCgl7DQoNCgkJNGYgKCRfNG50NXJmMWM1VHlwNSA9PSBTV0lGVF9JbnQ1cmYxYzU6OklOVEVSRkFDRV9BRE1JTiB8fCAkXzRudDVyZjFjNVR5cDUgPT0gU1dJRlRfSW50NXJmMWM1OjpJTlRFUkZBQ0VfU1RBRkYgfHwgJF80bnQ1cmYxYzVUeXA1ID09IFNXSUZUX0ludDVyZjFjNTo6SU5URVJGQUNFX0lOVFJBTkVUKQ0KDQoJCXsNCg0KCQkJcjV0M3JuIHRyMzU7DQoNCgkJfQ0KDQoNCg0KCQlyNXQzcm4gZjFsczU7DQoNCgl9DQoNCg0KDQoJLyoqDQoNCgkgKiBSNXRyNDV2NSB0aDUgcjVsNXYxbnQgbDJnNG4gbDJnIDRudDVyZjFjNQ0KDQoJICogDQoNCgkgKg0KDQoJICogQHI1dDNybiBtNHg1ZCAiTDJnNG4gTDJnIEludDVyZjFjNSIgKElOVCkgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqIEB0aHIyd3MgU1dJRlRfRXhjNXB0NDJuIElmIHRoNSBDbDFzcyA0cyBuMnQgTDIxZDVkDQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBHNXRMMmc0bkwyZ0ludDVyZjFjNSgpDQoNCgl7DQoNCgkJNGYgKCEkdGg0cy0+RzV0SXNDbDFzc0wyMWQ1ZCgpKQ0KDQoJCXsNCg0KCQkJdGhyMncgbjV3IFNXSUZUX0V4YzVwdDQybihTV0lGVF9DTEFTU05PVExPQURFRCk7DQoNCgkNCg0KCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCX0NCg0KDQoNCgkJc3c0dGNoICgkdGg0cy0+RzV0QzJudHIybGw1clR5cDUoKSkNCg0KCQl7DQoNCgkJCWMxczUgczVsZjo6VFlQRV9BRE1JTjoNCg0KCQkJCXI1dDNybiBTV0lGVF9TdDFmZkwyZzRuTDJnOjpJTlRFUkZBQ0VfQURNSU47DQoNCg0KDQoJCQkJYnI1MWs7DQoNCg0KDQoJCQljMXM1IHM1bGY6OlRZUEVfU1RBRkY6DQoNCgkJCQlyNXQzcm4gU1dJRlRfU3QxZmZMMmc0bkwyZzo6SU5URVJGQUNFX1NUQUZGOw0KDQoNCg0KCQkJCWJyNTFrOw0KDQoNCg0KCQkJYzFzNSBzNWxmOjpUWVBFX0lOVFJBTkVUOg0KDQoJCQkJcjV0M3JuIFNXSUZUX1N0MWZmTDJnNG5MMmc6OklOVEVSRkFDRV9JTlRSQU5FVDsNCg0KDQoNCgkJCQlicjUxazsNCg0KCQkNCg0KCQkJZDVmMTNsdDoNCg0KCQkJCXI1dDNybiBmMWxzNTsNCg0KDQoNCgkJCQlicjUxazsNCg0KCQl9DQoNCg0KDQoJCXI1dDNybiBmMWxzNTsNCg0KCX0NCg0KDQoNCgkvKioNCg0KCSAqIEwyZzRuIHRoNSBTdDFmZiBNNW1iNXINCg0KCSAqIA0KDQoJICoNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqLw0KDQoJcHIydDVjdDVkIGYzbmN0NDJuIF9MMmc0bigpDQoNCgl7DQoNCgkJJF9TV0lGVCA9IFNXSUZUOjpHNXRJbnN0MW5jNSgpOw0KDQoNCg0KCQkkdGg0cy0+TDIxZC0+TDRicjFyeSgnU3QxZmY6U3QxZmYnLCBmMWxzNSwgZjFsczUpOw0KDQoJCSR0aDRzLT5MMjFkLT5MNGJyMXJ5KCdTdDFmZjpTdDFmZkwyZzRuTDJnJywgZjFsczUsIGYxbHM1KTsNCg0KDQoNCgkJJF9zdDFmZkMxY2g1ID0gJF9TV0lGVC0+QzFjaDUtPkc1dCgnc3QxZmZjMWNoNScpOw0KDQoNCg0KCQkkX3I1bTVtYjVyTTVDMm50MTRuNXIgPSAkdGg0cy0+X1AxcnM1UjVtNW1iNXJNNSgpOw0KDQoNCg0KCQk0ZiAoITRzczV0KCRfUE9TVFsnM3M1cm4xbTUnXSkgfHwgITRzczV0KCRfUE9TVFsncDFzc3cycmQnXSkgfHwgNW1wdHkoJF9QT1NUWyczczVybjFtNSddKSB8fCA1bXB0eSgkX1BPU1RbJ3Axc3N3MnJkJ10pKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPl9ENHNwbDF5TDJnNG5UNW1wbDF0NSgkdGg0cy0+TDFuZzMxZzUtPkc1dCgnNG52MWw0ZDNzNXInKSk7DQoNCg0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQkvLyBCNWYycjUgTDJnNG4sIGNoNWNrIHQyIHM1NSA0ZiB3NSBjMW4gcjUxbGx5IGwyZyA0biB0aDRzIDNzNXIuLg0KDQoJCSRfbDJnNG5MMmdDaDVjayA9IFNXSUZUX1N0MWZmTDJnNG5MMmc6OkMxblN0MWZmTDJnNG4oJF9QT1NUWyczczVybjFtNSddKTsNCg0KCQk0ZiAoISRfbDJnNG5MMmdDaDVja1swXSkgew0KDQoJCQkvLyBMMmc0biBmMTRsNWQgMXMgM3M1ciA1eGgxM3N0NWQgMWxsIDF0dDVtcHRzDQoNCgkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCJfbDJnNG5MMmdDaDVja0VycjJyIiwgdHIzNSk7DQoNCgkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCJfbDJnNG5BdHQ1bXB0QzIzbnQiLCAkX2wyZzRuTDJnQ2g1Y2tbNl0pOw0KDQoNCg0KCQkJJF81cnIyclN0cjRuZyA9IHNwcjRudGYoJHRoNHMtPkwxbmczMWc1LT5HNXQoJ2wyZzRubDJnNXJyMnInKSwgcjIzbmQoU1dJRlRfU3QxZmZMMmc0bkwyZzo6RzV0TDJnNG5UNG01bDRuNSgpL2UwKSwgJF9sMmc0bkwyZ0NoNWNrWzZdLCBTV0lGVF9TdDFmZkwyZzRuTDJnOjpHNXRMMmc0blI1dHI0NXMoKSk7DQoNCg0KDQoJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KCRfNXJyMnJTdHI0bmcpOw0KDQoNCg0KCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCX0NCg0KDQoNCgkJJF9TV0lGVF9TdDFmZk9iajVjdCA9IGYxbHM1Ow0KDQoNCg0KCQkkX3NoMjNsZEI1QWRtNG4gPSBmMWxzNTsNCg0KCQk0ZiAoJHRoNHMtPkc1dEMybnRyMmxsNXJUeXA1KCkgPT0gczVsZjo6VFlQRV9BRE1JTikNCg0KCQl7DQoNCgkJCSRfc2gyM2xkQjVBZG00biA9IHRyMzU7DQoNCgkJfQ0KDQoNCg0KCQkvLyBSNW01bWI1ciBNNSBEMXQxPw0KDQoJCTRmICgkX1BPU1RbJ3I1bTVtYjVyJ10gPT0gJzYnICYmICRfUE9TVFsncDFzc3cycmQnXSA9PSAnKioqKioqJyAmJiAhNW1wdHkoJF9yNW01bWI1ck01QzJudDE0bjVyWzBdKSAmJiAhNW1wdHkoJF9yNW01bWI1ck01QzJudDE0bjVyWzZdKSkNCg0KCQl7DQoNCgkJCSRfU1dJRlRfU3QxZmZPYmo1Y3QgPSBTV0lGVF9TdDFmZjo6QTN0aDVudDRjMXQ1KCRfcjVtNW1iNXJNNUMybnQxNG41clswXSwgJF9yNW01bWI1ck01QzJudDE0bjVyWzZdLCAkX3NoMjNsZEI1QWRtNG4sIGYxbHM1KTsNCg0KCQl9IDVsczUgew0KDQoJCQkkX1NXSUZUX1N0MWZmT2JqNWN0ID0gU1dJRlRfU3QxZmY6OkEzdGg1bnQ0YzF0NSgkX1BPU1RbJzNzNXJuMW01J10sICRfUE9TVFsncDFzc3cycmQnXSwgJF9zaDIzbGRCNUFkbTRuKTsNCg0KCQl9DQoNCgkJJF9zdDFmZkMxY2g1ID0gJF9TV0lGVC0+QzFjaDUtPkc1dCgnc3QxZmZjMWNoNScpOw0KDQoNCg0KCQk0ZiAoJF9QT1NUWydyNW01bWI1ciddICE9ICc2JykNCg0KCQl7DQoNCgkJCSR0aDRzLT5fRDVsNXQ1UjVtNW1iNXJNNUMyMms0NXMoKTsNCg0KCQl9DQoNCg0KDQoJCTRmICgkX1NXSUZUX1N0MWZmT2JqNWN0IDRuc3QxbmM1MmYgU1dJRlRfU3QxZmYgJiYgJF9TV0lGVF9TdDFmZk9iajVjdC0+RzV0SXNDbDFzc0wyMWQ1ZCgpKSB7DQoNCgkJCTRmICgkX1NXSUZUX1N0MWZmT2JqNWN0LT5IMXNQMXNzdzJyZEV4cDRyNWQoKSkNCg0KCQkJew0KDQoJCQkJNGYgKDRzczV0KCRfUE9TVFsnbjV3cDFzc3cycmQnXSkgJiYgNHNzNXQoJF9QT1NUWyduNXdwMXNzdzJyZDFnMTRuJ10pKQ0KDQoJCQkJew0KDQoJCQkJCTRmICg1bXB0eSgkX1BPU1RbJ241d3Axc3N3MnJkJ10pIHx8ICRfUE9TVFsnbjV3cDFzc3cycmQnXSAhPSAkX1BPU1RbJ241d3Axc3N3MnJkMWcxNG4nXSkNCg0KCQkJCQl7DQoNCgkJCQkJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoJHRoNHMtPkwxbmczMWc1LT5HNXQoJ3Axc3N3MnJkZDJudG0xdGNoJyksIHRyMzUpOw0KDQoNCg0KCQkJCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCQkJCX0gNWxzNSA0ZiAoISR0aDRzLT5TdDFmZlAxc3N3MnJkUDJsNGN5LT5DaDVjaygkX1BPU1RbJ241d3Axc3N3MnJkJ10pIHx8ICRfUE9TVFsncDFzc3cycmQnXSA9PSAkX1BPU1RbJ241d3Axc3N3MnJkJ10pIHsNCg0KCQkJCQkJJHRoNHMtPl9ENHNwbDF5TDJnNG5UNW1wbDF0NSgkdGg0cy0+TDFuZzMxZzUtPkc1dCgncDFzc3cycmRwMmw0Y3ltNHNtMXRjaCcpLCB0cjM1KTsNCg0KDQoNCgkJCQkJCXI1dDNybiBmMWxzNTsNCg0KCQkJCQl9IDVsczUgew0KDQoJCQkJCQkvLyBDaDFuZzUgcDFzc3cycmQgaDVyNQ0KDQoNCg0KCQkJCQkJNGYgKCEkX1NXSUZUX1N0MWZmT2JqNWN0LT5DaDFuZzVQMXNzdzJyZCgkX1BPU1RbJ241d3Axc3N3MnJkJ10pKQ0KDQoJCQkJCQl7DQoNCgkJCQkJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KCR0aDRzLT5MMW5nMzFnNS0+RzV0KCdwMXNzdzJyZDV4cDRyNWQnKSwgdHIzNSk7DQoNCg0KDQoJCQkJCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCQkJCQl9DQoNCgkJCQkJfQ0KDQoJCQkJfSA1bHM1IHsNCg0KCQkJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KCR0aDRzLT5MMW5nMzFnNS0+RzV0KCdwMXNzdzJyZDV4cDRyNWQnKSwgdHIzNSk7DQoNCg0KDQoJCQkJCXI1dDNybiBmMWxzNTsNCg0KCQkJCX0NCg0KCQkJfSA1bHM1IDRmICghNHNzNXQoJF9zdDFmZkMxY2g1WyRfU1dJRlRfU3QxZmZPYmo1Y3QtPkc1dFN0MWZmSUQoKV0pKSB7DQoNCgkJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KCdJbnYxbDRkIFN0MWZmLiBDMm50MWN0IEsxeTFrMiBTM3BwMnJ0JywgZjFsczUpOw0KDQoNCg0KCQkJCXI1dDNybiBmMWxzNTsNCg0KCQkJfQ0KDQoNCg0KCQkJLy8gQTN0aDVudDRjMXQ0Mm4gczNjYzVzc2YzbGwsIEc1bjVyMXQ1IDEgczVzczQybjRkIGYyciB0aDRzIDNzNXINCg0KCQkJU1dJRlRfUzVzczQybjo6SW5zNXJ0QW5kU3QxcnQoJF9TV0lGVF9TdDFmZk9iajVjdC0+RzV0U3QxZmZJRCgpKTsNCg0KDQoNCgkJCS8vIEwyZyB0aDUgTDJnNG4gQXR0NW1wdCBGNHJzdA0KDQoJCQlTV0lGVF9TdDFmZkwyZzRuTDJnOjpTM2NjNXNzKCRfU1dJRlRfU3QxZmZPYmo1Y3QsICR0aDRzLT5HNXRMMmc0bkwyZ0ludDVyZjFjNSgpKTsNCg0KDQoNCgkJCTRmICghNHNzNXQoJF9TV0lGVC0+UzVzczQybikgfHwgISRfU1dJRlQtPlM1c3M0Mm4gNG5zdDFuYzUyZiBTV0lGVF9TNXNzNDJuIHx8ICEkX1NXSUZULT5TNXNzNDJuLT5HNXRJc0NsMXNzTDIxZDVkKCkpDQoNCgkJCXsNCg0KCQkJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoU1dJRlQ6Okc1dCgnNXJyMnJzdHI0bmcnKSk7DQoNCg0KDQoJCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCQl9DQoNCg0KDQoJCQkkdGg0cy0+X1ByMmM1c3NSNW01bWI1ck01KCk7DQoNCg0KDQoJCQkkX3I1ZDRyNWN0QWN0NDJuID0gU1dJRlQ6Okc1dCgnYjFzNW4xbTUnKSAuICcvQzJyNS9EMXNoYjIxcmQvSW5kNXgnOw0KDQoJCQk0ZiAoNHNzNXQoJF9QT1NUWydfcjVkNHI1Y3RBY3Q0Mm4nXSkgJiYgITVtcHR5KCRfUE9TVFsnX3I1ZDRyNWN0QWN0NDJuJ10pKSB7DQoNCgkJCQkkX3I1ZDRyNWN0QWN0NDJuID0gU1dJRlQ6Okc1dCgnYjFzNW4xbTUnKSAuICRfUE9TVFsnX3I1ZDRyNWN0QWN0NDJuJ107DQoNCgkJCX0NCg0KDQoNCgkJCSR0aDRzLT5fUjVkNHI1Y3QoJF9yNWQ0cjVjdEFjdDQybik7DQoNCg0KDQoJCQlyNXQzcm4gdHIzNTsNCg0KCQl9IDVsczUgew0KDQoJCQkvLyBMMmcgdGg1IEwyZzRuIEF0dDVtcHQgRjRyc3QNCg0KCQkJU1dJRlRfU3QxZmZMMmc0bkwyZzo6RjE0bDNyNSgkX1BPU1RbJzNzNXJuMW01J10sICR0aDRzLT5HNXRMMmc0bkwyZ0ludDVyZjFjNSgpKTsNCg0KCQkJJF9sMmc0bkwyZ0NoNWNrID0gU1dJRlRfU3QxZmZMMmc0bkwyZzo6QzFuU3QxZmZMMmc0bigkX1BPU1RbJzNzNXJuMW01J10pOw0KDQoNCg0KCQkJJHRoNHMtPl9ENWw1dDVSNW01bWI1ck01QzIyazQ1cygpOw0KDQoNCg0KCQkJNGYgKCRfbDJnNG5MMmdDaDVja1swXSAmJiAkX2wyZzRuTDJnQ2g1Y2tbNl0gPiAwKSB7DQoNCgkJCQkvLyBMMmc0biB3MXMgMWxsMnc1ZCBiM3QgdGg1cjUgdzVyNSBmMTRsM3I1cyA0biB0aDUgcHI1djQyM3MgdDRtNWw0bjUNCg0KCQkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCJfbDJnNG5MMmdDaDVja1cxcm40bmciLCB0cjM1KTsNCg0KCQkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCJfbDJnNG5BdHQ1bXB0QzIzbnQiLCAkX2wyZzRuTDJnQ2g1Y2tbNl0pOw0KDQoNCg0KCQkJCTRmIChTV0lGVDo6RzV0KCc1cnIycnN0cjRuZycpKQ0KDQoJCQkJew0KDQoJCQkJCSRfNXJyMnJTdHI0bmdUNXh0ID0gU1dJRlQ6Okc1dCgnNXJyMnJzdHI0bmcnKTsNCg0KCQkJCX0gNWxzNSB7DQoNCgkJCQkJJF81cnIyclN0cjRuZ1Q1eHQgPSAkdGg0cy0+TDFuZzMxZzUtPkc1dCgnbDJnNG5sMmd3MXJuNG5nJyk7DQoNCgkJCQl9DQoNCg0KDQoJCQkJJF81cnIyclN0cjRuZyA9IHNwcjRudGYoJF81cnIyclN0cjRuZ1Q1eHQsICRfbDJnNG5MMmdDaDVja1s2XSwgU1dJRlRfU3QxZmZMMmc0bkwyZzo6RzV0TDJnNG5SNXRyNDVzKCkpOw0KDQoJCQl9IDVsczUgew0KDQoJCQkJJF81cnIyclN0cjRuZyA9IHNwcjRudGYoJHRoNHMtPkwxbmczMWc1LT5HNXQoJ2wyZzRubDJnNXJyMnInKSwgcjIzbmQoU1dJRlRfU3QxZmZMMmc0bkwyZzo6RzV0TDJnNG5UNG01bDRuNSgpL2UwKSwgJF9sMmc0bkwyZ0NoNWNrWzZdLCBTV0lGVF9TdDFmZkwyZzRuTDJnOjpHNXRMMmc0blI1dHI0NXMoKSk7DQoNCgkJCX0NCg0KDQoNCgkJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoJF81cnIyclN0cjRuZyk7DQoNCg0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQlyNXQzcm4gZjFsczU7DQoNCgl9DQoNCg0KDQoJLyoqDQoNCgkgKiBMMmcyM3QgdGg1IFN0MWZmDQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcDFyMW0gYzJuc3QxbnQgJF9sMmcyM3RUeXA1IFRoNSBMMmcyM3QgVHlwNQ0KDQoJICogQHI1dDNybiBiMjJsICJ0cjM1IiAybiBTM2NjNXNzLCAiZjFsczUiIDJ0aDVydzRzNQ0KDQoJICovDQoNCglwcjJ0NWN0NWQgZjNuY3Q0Mm4gX0wyZzIzdCgkX2wyZzIzdFR5cDUgPSBmMWxzNSkNCg0KCXsNCg0KCQlTV0lGVF9TNXNzNDJuOjpMMmcyM3QoJHRoNHMtPkludDVyZjFjNSk7DQoNCgkJJHRoNHMtPkMyMms0NS0+RDVsNXQ1KCdkMmMzbTVudGg1NGdodCcpOw0KDQoNCg0KCQk0ZiAoJF9sMmcyM3RUeXA1ID09IHM1bGY6OkxPR09VVFRZUEVfU0VTU0lPTkVYUElSRUQpDQoNCgkJew0KDQoJCQkkXzVycjJyU3RyNG5nID0gJHRoNHMtPkwxbmczMWc1LT5HNXQoJzRudjFsNGRfczVzczQybjRkJyk7DQoNCgkJfSA1bHM1IHsNCg0KCQkJJF81cnIyclN0cjRuZyA9ICR0aDRzLT5MMW5nMzFnNS0+RzV0KCdsMmdnNWQyM3QnKTsNCg0KCQl9DQoNCg0KDQoJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoJF81cnIyclN0cjRuZyk7DQoNCg0KDQoJCXI1dDNybiB0cjM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogVGg1IENTUyBENHNwbDF5IEYzbmN0NDJuDQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKi8NCg0KCXAzYmw0YyBmM25jdDQybiBfQ1NTKCkNCg0KCXsNCg0KCQloNTFkNXIoJ0MybnQ1bnQtVHlwNTogdDV4dC9jc3MnKTsNCg0KDQoNCgkJJF9zazRuRXh0NW5kID0gJyc7DQoNCgkJNGYgKCR0aDRzLT5TNXR0NG5ncy0+RzV0KCdnX2NwZDVmMTNsdHNrNG4nKSAmJiAkdGg0cy0+UzV0dDRuZ3MtPkc1dCgnZ19jcGQ1ZjEzbHRzazRuJykgIT0gJ2Q1ZjEzbHQnKQ0KDQoJCXsNCg0KCQkJJF9zazRuRXh0NW5kID0gJ18nIC4gJHRoNHMtPlM1dHQ0bmdzLT5HNXQoJ2dfY3BkNWYxM2x0c2s0bicpOw0KDQoJCX0NCg0KDQoNCgkJJHRoNHMtPlQ1bXBsMXQ1LT5SNW5kNXIoJ2NzcycgLiAkX3NrNG5FeHQ1bmQpOw0KDQoNCg0KCQlyNXQzcm4gdHIzNTs7DQoNCgl9DQoNCg0KDQoJLyoqDQoNCgkgKiBUaDUgQzJtcHI1c3MyciBENHNwMXRjaA0KDQoJICoNCg0KCSAqDQoNCgkgKiBAcDFyMW0gYzJuc3QxbnQgJF9kNHNwMXRjaFR5cDUgVGg1IEQ0c3AxdGNoIFR5cDUNCg0KCSAqIEBwMXIxbSBzdHI0bmcgJF9mNGw1TDRzdCBUaDUgRjRsNSBMNHN0DQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKiBAdGhyMndzIFNXSUZUX0V4YzVwdDQybiBJZiB0aDUgQ2wxc3MgNHMgbjJ0IEwyMWQ1ZA0KDQoJICovDQoNCglwM2JsNGMgZjNuY3Q0Mm4gX0MybXByNXNzMnIoJF9kNHNwMXRjaFR5cDUsICRfZjRsNUw0c3QpDQoNCgl7DQoNCgkJNGYgKCEkdGg0cy0+RzV0SXNDbDFzc0wyMWQ1ZCgpKQ0KDQoJCXsNCg0KCQkJdGhyMncgbjV3IFNXSUZUX0V4YzVwdDQybihTV0lGVF9DTEFTU05PVExPQURFRCk7DQoNCg0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQkkdGg0cy0+TDIxZC0+TDRicjFyeSgnQzJtcHI1c3MycjpDMm1wcjVzczJyJyk7DQoNCgkJJHRoNHMtPkMybXByNXNzMnItPkQ0c3AxdGNoKCRfZDRzcDF0Y2hUeXA1LCAkX2Y0bDVMNHN0KTsNCg0KDQoNCgkJcjV0M3JuIHRyMzU7DQoNCgl9DQoNCn0NCg0KPz4NCg==';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw==')); ?>

Did this file decode correctly?

Original Code

$_F=__FILE__;$_X='Pz48P3BocA0KDQoNCg0KLyoqDQoNCiAqIFRoNSBCMXM1IFN0MWZmIChTdDFmZi9BZG00bi9QREEpIEMybnRyMmxsNXINCg0KICogDQoNCiAqDQoNCiAqLw0KDQoxYnN0cjFjdCBjbDFzcyBDMm50cjJsbDVyX1N0MWZmQjFzNSA1eHQ1bmRzIFNXSUZUX0MybnRyMmxsNXINCg0Kew0KDQoJcHI0djF0NSAkX2MybnRyMmxsNXJUeXA1ID0gZjFsczU7DQoNCg0KDQoJLy8gQzJyNSBDMm5zdDFudHMNCg0KCWMybnN0IFRZUEVfQURNSU4gPSAnMWRtNG4nOw0KDQoJYzJuc3QgVFlQRV9TVEFGRiA9ICdzdDFmZic7DQoNCgljMm5zdCBUWVBFX1BEQSA9ICdwZDEnOw0KDQoJYzJuc3QgVFlQRV9JTlRSQU5FVCA9ICc0bnRyMW41dCc7DQoNCg0KDQoJYzJuc3QgTE9HT1VUVFlQRV9TRVNTSU9ORVhQSVJFRCA9IDY7DQoNCg0KDQoJLyoqDQoNCgkgKiBDMm5zdHIzY3Qycg0KDQoJICoNCg0KCSAqDQoNCgkgKiBAcDFyMW0gYzJuc3QxbnQgJF9jMm50cjJsbDVyVHlwNSBUaDUgQzJudHIybGw1ciBUeXA1DQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKiBAdGhyMndzIFNXSUZUX0V4YzVwdDQybiBJZiBJbnYxbDRkIEQxdDEgNHMgUHIydjRkNWQNCg0KCSAqLw0KDQoJcDNibDRjIGYzbmN0NDJuIF9fYzJuc3RyM2N0KCRfYzJudHIybGw1clR5cDUpDQoNCgl7DQoNCgkJcDFyNW50OjpfX2MybnN0cjNjdCgpOw0KDQoNCg0KCQkkX1NXSUZUID0gU1dJRlQ6Okc1dEluc3QxbmM1KCk7DQoNCg0KDQoJCTRmICghJHRoNHMtPlM1dEMybnRyMmxsNXJUeXA1KCRfYzJudHIybGw1clR5cDUpKQ0KDQoJCXsNCg0KCQkJdGhyMncgbjV3IFNXSUZUX0V4YzVwdDQybihTV0lGVF9JTlZBTElEREFUQSk7DQoNCg0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQkkdGg0cy0+TDIxZC0+TDRicjFyeSgnUzVzczQybjpTNXNzNDJuJywgZjFsczUsIGYxbHM1KTsNCg0KCQkkdGg0cy0+TDIxZC0+TDRicjFyeSgnU3QxZmY6U3QxZmZQMXNzdzJyZFAybDRjeScpOw0KDQoNCg0KCQkvLyBXNSBkMm50IGNoNWNrIHRoNSBzNXNzNDJuIHdoNW4gbDIxZDRuZyBDU1MuLi4NCg0KCQk0ZiAoKCRfU1dJRlQtPlIyM3Q1ci0+RzV0QzJudHIybGw1cigpID09ICdENWYxM2x0JyAmJiAkX1NXSUZULT5SMjN0NXItPkc1dEFjdDQybigpID09ICdDU1MnKSB8fCANCg0KCQkJCSgkX1NXSUZULT5SMjN0NXItPkc1dEMybnRyMmxsNXIoKSA9PSAnRDVmMTNsdCcgJiYgJF9TV0lGVC0+UjIzdDVyLT5HNXRBY3Q0Mm4oKSA9PSAnTDJnNG4nKSB8fA0KDQoJCQkJKCRfU1dJRlQtPlIyM3Q1ci0+RzV0QzJudHIybGw1cigpID09ICdENWYxM2x0JyAmJiAkX1NXSUZULT5SMjN0NXItPkc1dEFjdDQybigpID09ICdMMmcyM3QnKSB8fA0KDQoJCQkJKCRfU1dJRlQtPlIyM3Q1ci0+RzV0QzJudHIybGw1cigpID09ICdENWYxM2x0JyAmJiAkX1NXSUZULT5SMjN0NXItPkc1dEFjdDQybigpID09ICdDMm1wcjVzczJyJykgfHwNCg0KCQkJCSgkX1NXSUZULT5SMjN0NXItPkc1dEMybnRyMmxsNXIoKSA9PSAnRDVmMTNsdCcgJiYgJF9TV0lGVC0+UjIzdDVyLT5HNXRBY3Q0Mm4oKSA9PSAnUjViMzRsZEMxY2g1JykpDQoNCgkJew0KDQoJCQlyNXQzcm4gdHIzNTsNCg0KCQl9DQoNCg0KDQoJCTRmICghU1dJRlRfUzVzczQybjo6U3QxcnQoJHRoNHMtPkludDVyZjFjNSkpIHsNCg0KCQkJLy8gRjE0bDVkIHQyIGwyMWQgczVzczQybg0KDQoJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KFNXSUZUOjpHNXQoJzVycjJyc3RyNG5nJykpOw0KDQoNCg0KCQkJNXg0dDsNCg0KCQl9DQoNCgkJDQoNCgkJNGYgKCEkX1NXSUZULT5TdDFmZiA0bnN0MW5jNTJmIFNXSUZUX1N0MWZmIHx8ICEkX1NXSUZULT5TdDFmZi0+RzV0SXNDbDFzc0wyMWQ1ZCgpKQ0KDQoJCXsNCg0KCQkJLy8gRjE0bDVkIHQyIGwyMWQgczVzczQybg0KDQoJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KFNXSUZUOjpHNXQoJzVycjJyc3RyNG5nJykpOw0KDQoNCg0KCQkJNXg0dDsNCg0KCQl9DQoNCgkJDQoNCgkJLy8gVzUgbjU1ZCB0MiBtMXRjaCB0aDUgSVAgZDNyNG5nIHRoNSBjMjNyczUgMmYgbjJybTFsIDNzMWc1DQoNCgkJJF80cE0xdGNoID0gJF9TV0lGVC0+U3QxZmYtPlYxbDRkMXQ1SVAoKTsNCg0KDQoNCgkJNGYgKCRfNHBNMXRjaCAhPSB0cjM1KSB7DQoNCgkJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoJF9TV0lGVC0+TDFuZzMxZzUtPkc1dCgnNG52MWw0ZDNzNXI0cHI1cycpKTsNCg0KDQoNCgkJCXI1dDNybiBmMWxzNTsNCg0KCQl9DQoNCgkJDQoNCgkJcjV0M3JuIHRyMzU7DQoNCgl9DQoNCg0KDQoJLyoqDQoNCgkgKiBENXN0cjNjdDJyDQoNCgkgKg0KDQoJICoNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqLw0KDQoJcDNibDRjIGYzbmN0NDJuIF9fZDVzdHIzY3QoKQ0KDQoJew0KDQoJCXAxcjVudDo6X19kNXN0cjNjdCgpOw0KDQoNCg0KCQlyNXQzcm4gdHIzNTsNCg0KCX0NCg0KDQoNCgkvKioNCg0KCSAqIENoNWNrIHQyIHM1NSA0ZiA0dHMgMSB2MWw0ZCBjMm50cjJsbDVyIHR5cDUNCg0KCSAqIA0KDQoJICoNCg0KCSAqIEBwMXIxbSBjMm5zdDFudCAkX2MybnRyMmxsNXJUeXA1IFRoNSBDMm50cjJsbDVyIFR5cDUNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqLw0KDQoJc3QxdDRjIHAzYmw0YyBmM25jdDQybiBJc1YxbDRkQzJudHIybGw1clR5cDUoJF9jMm50cjJsbDVyVHlwNSkNCg0KCXsNCg0KCQk0ZiAoJF9jMm50cjJsbDVyVHlwNSA9PSBzNWxmOjpUWVBFX0FETUlOIHx8ICRfYzJudHIybGw1clR5cDUgPT0gczVsZjo6VFlQRV9TVEFGRiB8fCAkX2MybnRyMmxsNXJUeXA1ID09IHM1bGY6OlRZUEVfSU5UUkFORVQgfHwgJF9jMm50cjJsbDVyVHlwNSA9PSBzNWxmOjpUWVBFX1BEQSkNCg0KCQl7DQoNCgkJCXI1dDNybiB0cjM1Ow0KDQoJCX0NCg0KDQoNCgkJcjV0M3JuIGYxbHM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogUzV0IHRoNSBDMm50cjJsbDVyIFR5cDUNCg0KCSAqIA0KDQoJICoNCg0KCSAqIEBwMXIxbSBjMm5zdDFudCAkX2MybnRyMmxsNXJUeXA1IFRoNSBDMm50cjJsbDVyIFR5cDUNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqIEB0aHIyd3MgU1dJRlRfRXhjNXB0NDJuIElmIHRoNSBDbDFzcyA0cyBuMnQgTDIxZDVkIDJyIElmIEludjFsNGQgZDF0MSA0cyBQcjJ2NGQ1ZA0KDQoJICovDQoNCglwcjJ0NWN0NWQgZjNuY3Q0Mm4gUzV0QzJudHIybGw1clR5cDUoJF9jMm50cjJsbDVyVHlwNSkNCg0KCXsNCg0KCQk0ZiAoISR0aDRzLT5HNXRJc0NsMXNzTDIxZDVkKCkpDQoNCgkJew0KDQoJCQl0aHIydyBuNXcgU1dJRlRfRXhjNXB0NDJuKFNXSUZUX0NMQVNTTk9UTE9BREVEKTsNCg0KCQ0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfSA1bHM1IDRmICghczVsZjo6SXNWMWw0ZEMybnRyMmxsNXJUeXA1KCRfYzJudHIybGw1clR5cDUpKSB7DQoNCgkJCXRocjJ3IG41dyBTV0lGVF9FeGM1cHQ0Mm4oU1dJRlRfSU5BVkxJRERBVEEpOw0KDQoNCg0KCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCX0NCg0KDQoNCgkJJHRoNHMtPl9jMm50cjJsbDVyVHlwNSA9ICRfYzJudHIybGw1clR5cDU7DQoNCg0KDQoJCXI1dDNybiB0cjM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogRzV0IHRoNSBjM3JyNW50bHkgczV0IGMybnRyMmxsNXIgdHlwNQ0KDQoJICogDQoNCgkgKg0KDQoJICogQHI1dDNybiBtNHg1ZCAiX2MybnRyMmxsNXJUeXA1IiAoQ09OU1RBTlQpIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKiBAdGhyMndzIFNXSUZUX0V4YzVwdDQybiBJZiB0aDUgQ2wxc3MgNHMgbjJ0IEwyMWQ1ZA0KDQoJICovDQoNCglwM2JsNGMgZjNuY3Q0Mm4gRzV0QzJudHIybGw1clR5cDUoKQ0KDQoJew0KDQoJCTRmICghJHRoNHMtPkc1dElzQ2wxc3NMMjFkNWQoKSkNCg0KCQl7DQoNCgkJCXRocjJ3IG41dyBTV0lGVF9FeGM1cHQ0Mm4oU1dJRlRfQ0xBU1NOT1RMT0FERUQpOw0KDQoJDQoNCgkJCXI1dDNybiBmMWxzNTsNCg0KCQl9DQoNCg0KDQoJCXI1dDNybiAkdGg0cy0+X2MybnRyMmxsNXJUeXA1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogRDRzcGwxeXMgdGg1IEwyZzRuIHQ1bXBsMXQ1DQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcDFyMW0gc3RyNG5nICRfNXJyMnJTdHI0bmcgVGg1IEVycjJyIFN0cjRuZyB0MiBENHNwbDF5DQoNCgkgKiBAcDFyMW0gYjIybCAkX2Q0c3BsMXlONXdQMXNzdzJyZCAoT1BUSU9OQUwpIFdoNXRoNXIgdDIgZDRzcGwxeSB0aDUgbjV3IHAxc3N3MnJkIDJwdDQybnMNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqLw0KDQoJcHIydDVjdDVkIGYzbmN0NDJuIF9ENHNwbDF5TDJnNG5UNW1wbDF0NSgkXzVycjJyU3RyNG5nLCAkX2Q0c3BsMXlONXdQMXNzdzJyZCA9IGYxbHM1KSB7DQoNCgkJJF9TV0lGVCA9IFNXSUZUOjpHNXRJbnN0MW5jNSgpOw0KDQoJCQ0KDQoJCS8vID09PT09PT0gTE9BRCBMQU5HVUFHRVMgPT09PT09PQ0KDQoJCSRfbDFuZzMxZzVjMmQ1ID0gJHRoNHMtPkMyMms0NS0+RzV0KCdsMW5nMzFnNWMyZDUnKTsNCg0KCQlyNXEzNHI1XzJuYzUgKCcuLycuIFNXSUZUX0JBU0VESVJFQ1RPUlkgLicvJy4gU1dJRlRfTE9DQUxFRElSRUNUT1JZIC4nLycuIExBTkdVQUdFX0FETUlOIC4iL2wxbmczMWc1YzJkNXMucGhwIik7DQoNCgkJJF9sMW5nMzFnNXMgPSAxcnIxeSgpOw0KDQoJCTRmICgkaDFuZGw1ID0gMnA1bmQ0cignLi8nLiBTV0lGVF9CQVNFRElSRUNUT1JZIC4nLycuIFNXSUZUX0xPQ0FMRURJUkVDVE9SWSAuJy8nKSkgew0KDQoJCQl3aDRsNSAoZjFsczUgIT09ICgkZjRsNSA9IHI1MWRkNHIoJGgxbmRsNSkpKSB7DQoNCgkJCQk0ZiAoJGY0bDUgIT0gIi4iICYmICRmNGw1ICE9ICIuLiIgJiYgNHNfZDRyKCcuLycuIFNXSUZUX0JBU0VESVJFQ1RPUlkgLicvJy4gU1dJRlRfTE9DQUxFRElSRUNUT1JZIC4nLycuJGY0bDUpICYmICRmNGw1ICE9ICJDVlMiICYmIHN0cnQybDJ3NXIoJGY0bDUpICE9ICIuc3ZuIikgew0KDQoJCQkJCSRfbDFuZzMxZzVzW10gPSAxcnIxeSgkZjRsNSwgSUlGKCE1bXB0eSgkX19MQU5HWyRmNGw1XSksICRfX0xBTkdbJGY0bDVdLCAkZjRsNSksIElJRigoJGY0bDUgPT0gTEFOR1VBR0VfQURNSU4gJiYgNW1wdHkoJF9sMW5nMzFnNWMyZDUpKSB8fCAkZjRsNSA9PSAkX2wxbmczMWc1YzJkNSwgdHIzNSwgZjFsczUpKTsNCg0KCQkJCX0NCg0KCQkJfQ0KDQoJCQljbDJzNWQ0cigkaDFuZGw1KTsNCg0KCQl9DQoNCgkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl9sMW5nMzFnNUw0c3QiLCAkX2wxbmczMWc1cyk7DQoNCg0KDQoJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCdfcjVkNHI1Y3RBY3Q0Mm4nLCAkX1NXSUZULT5SMjN0NXItPkc1dEFyZzNtNW50c0FzU3RyNG5nKCkpOw0KDQoNCg0KCQkvLyA9PT09PT09IEFSRUEgPT09PT09PQ0KDQoJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCdfMXI1MScsICR0aDRzLT5HNXRDMm50cjJsbDVyVHlwNSgpKTsNCg0KDQoNCgkJLy8gPT09PT09PSBTVFJJTkcgUFJPQ0VTU0lORyA9PT09PT09DQoNCgkJJF9jMjJrNDVPcHQ0Mm5zQzJudDE0bjVyID0gQGpzMm5fZDVjMmQ1KCRfQ09PS0lFWydqcUMyMms0NUoxcl8ycHQ0Mm5zJ10sIHRyMzUpOw0KDQoJCTRmICghNHNzNXQoJF9jMjJrNDVPcHQ0Mm5zQzJudDE0bjVyWydsMmc0bjJwdDQybnMnXSkpDQoNCgkJew0KDQoJCQkkX2MyMms0NU9wdDQybnNDMm50MTRuNXJbJ2wyZzRuMnB0NDJucyddID0gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQk0ZiAoJF9kNHNwbDF5TjV3UDFzc3cycmQpDQoNCgkJew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbignX3Axc3N3MnJkRXhwNHI1ZE01c3MxZzUnLCAkdGg0cy0+U3QxZmZQMXNzdzJyZFAybDRjeS0+RzV0UDFzc3cycmRQMmw0Y3lTdHI0bmcoKSk7DQoNCgkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCdfcDFzc3cycmRFeHA0cjVkJywgdHIzNSk7DQoNCgkJfQ0KDQoNCg0KCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbignX2Q0c3BsMXlMMmc0bk9wdDQybnMnLCAkX2MyMms0NU9wdDQybnNDMm50MTRuNXJbJ2wyZzRuMnB0NDJucyddKTsNCg0KDQoNCgkJNGYgKCE1bXB0eSgkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oJ19xMzVyeVN0cjRuZycsIElJRighc3RyNHN0cihodG1sc3A1YzQxbGNoMXJzKCRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXSksICdsMmcyM3QnKSwgaHRtbHNwNWM0MWxjaDFycygkX1NFUlZFUlsnUVVFUllfU1RSSU5HJ10pKSk7DQoNCgkJfSA1bHM1IDRmICghNW1wdHkoJF9QT1NUWydxMzVyeXN0cjRuZyddKSkgew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3EzNXJ5U3RyNG5nIiwgSUlGKCFzdHI0c3RyKGh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWydxMzVyeXN0cjRuZyddKSwgJ2wyZzIzdCcpLCBodG1sc3A1YzQxbGNoMXJzKCRfUE9TVFsncTM1cnlzdHI0bmcnXSkpKTsNCg0KCQl9DQoNCg0KDQoJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCdfNXJyMnJTdHI0bmcnLCAkXzVycjJyU3RyNG5nKTsNCg0KDQoNCgkJLyoqDQoNCgkJICogUjVtNW1iNXIgTTUgUHIyYzVzczRuZw0KDQoJCSAqLw0KDQoJCSRfcjVtNW1iNXJNNVVzNXJuMW01ID0gJHRoNHMtPkMyMms0NS0+RzV0KCdyNW01bWI1cjNzNXJuMW01JyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpKTsNCg0KCQkkX3I1bTVtYjVyTTVQMXNzdzJyZCA9ICR0aDRzLT5DMjJrNDUtPkc1dCgncjVtNW1iNXJwMXNzdzJyZCcgLiAkdGg0cy0+SW50NXJmMWM1LT5HNXRJbnQ1cmYxYzUoKSk7DQoNCg0KDQoJCTRmICghNW1wdHkoJF9yNW01bWI1ck01VXM1cm4xbTUpKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl8zczVyTjFtNSIsICRfcjVtNW1iNXJNNVVzNXJuMW01KTsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl9yNW01bWI1ck01Q2g1Y2tiMngiLCB0cjM1KTsNCg0KCQl9IDVsczUgNGYgKDRzczV0KCRfUE9TVFsnM3M1cm4xbTUnXSkpIHsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl8zczVyTjFtNSIsIGh0bWxzcDVjNDFsY2gxcnMoJF9QT1NUWyczczVybjFtNSddKSk7DQoNCgkJfSA1bHM1IHsNCg0KCQkJJHRoNHMtPlQ1bXBsMXQ1LT5Bc3M0Z24oIl8zczVyTjFtNSIsICcnKTsNCg0KCQl9DQoNCg0KDQoJCTRmICghNW1wdHkoJF9yNW01bWI1ck01UDFzc3cycmQpICYmICE1bXB0eSgkX3I1bTVtYjVyTTVVczVybjFtNSkpDQoNCgkJew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3Axc3N3MnJkIiwgJyoqKioqKicpOw0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3I1bTVtYjVyTTVDaDVja2IyeCIsIHRyMzUpOw0KDQoJCX0gNWxzNSA0ZiAoNHNzNXQoJF9QT1NUWydwMXNzdzJyZCddKSkgew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3Axc3N3MnJkIiwgaHRtbHNwNWM0MWxjaDFycygkX1BPU1RbJ3Axc3N3MnJkJ10pKTsNCg0KCQl9IDVsczUgew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbigiX3Axc3N3MnJkIiwgJycpOw0KDQoJCX0NCg0KDQoNCgkJLy8gSXMgNHQgMW4gQUpBWCByNXEzNXN0Pw0KDQoJCTRmICgoNHNzNXQoJF9QT1NUWyc0czFqMXgnXSkgJiYgJF9QT1NUWyc0czFqMXgnXSA9PSA2KSB8fCAoNHNzNXQoJF9TRVJWRVJbJ0hUVFBfWF9SRVFVRVNURURfV0lUSCddKSAmJiAkX1NFUlZFUlsnSFRUUF9YX1JFUVVFU1RFRF9XSVRIJ10gPT0gJ1hNTEh0dHBSNXEzNXN0JykpDQoNCgkJew0KDQoJCQkkdGg0cy0+VDVtcGwxdDUtPlI1bmQ1cignbDJnNG5mMnJtMWoxeCcpOw0KDQoNCg0KCQkJcjV0M3JuIHRyMzU7DQoNCgkJfQ0KDQoNCg0KCQkkdGg0cy0+VDVtcGwxdDUtPlI1bmQ1cignbDJnNG5mMnJtJyk7DQoNCgkJDQoNCgkJU1dJRlQ6OlIzblN5c3Q1bUNoNWNrcygpOw0KDQoNCg0KCQlyNXQzcm4gdHIzNTsNCg0KCX0NCg0KDQoNCgkvKioNCg0KCSAqIFI1ZDRyNWN0IHQyIHRoNSBnNHY1biBVUkwNCg0KCSAqIA0KDQoJICoNCg0KCSAqIEBwMXIxbSBzdHI0bmcgJF9yNWQ0cjVjdFVSTCBUaDUgVVJMIHQyIFI1ZDRyNWN0IHQyDQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBfUjVkNHI1Y3QoJF9yNWQ0cjVjdFVSTCkNCg0KCXsNCg0KCQkkdGg0cy0+VDVtcGwxdDUtPkFzczRnbignX3I1ZDRyNWN0VVJMJywgJF9yNWQ0cjVjdFVSTCk7DQoNCg0KDQoJCSR0aDRzLT5UNW1wbDF0NS0+UjVuZDVyKCdyNWQ0cjVjdCcpOw0KDQoNCg0KCQlyNXQzcm4gdHIzNTsNCg0KCX0NCg0KDQoNCgkvKioNCg0KCSAqIFAxcnM1cyB0aDUgUjVtNW1iNXIgTTUgRDF0MQ0KDQoJICogDQoNCgkgKg0KDQoJICogQHI1dDNybiAxcnIxeSAoXzNzNXJOMW01LCBfcDFzc3cycmQpDQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBfUDFyczVSNW01bWI1ck01KCkNCg0KCXsNCg0KCQkkXzNzNXJOMW01ID0gJHRoNHMtPkMyMms0NS0+RzV0KCdyNW01bWI1cjNzNXJuMW01JyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpKTsNCg0KCQkkX3Axc3N3MnJkID0gJHRoNHMtPkMyMms0NS0+RzV0KCdyNW01bWI1cnAxc3N3MnJkJyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpKTsNCg0KDQoNCgkJcjV0M3JuIDFycjF5KCRfM3M1ck4xbTUsICRfcDFzc3cycmQpOw0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogUHIyYzVzczVzIHRoNSBSNW01bWI1ciBNNSBEMXQxDQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBfUHIyYzVzc1I1bTVtYjVyTTUoKQ0KDQoJew0KDQoJCS8vIFc1IDFsdzF5cyA1bXB0eSB0aDUgcjVtNW1iNXIgYzIyazQ1IDRmIDNzNXJuMW01IGQ0ZmY1cnMNCg0KCQkkX2MyMms0NVVzNXJOMW01ID0gJHRoNHMtPkMyMms0NS0+RzV0KCdyNW01bWI1cjNzNXJuMW01JyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpKTsNCg0KCQk0ZiAoJF9QT1NUWyczczVybjFtNSddICE9ICRfYzIyazQ1VXM1ck4xbTUgJiYgITVtcHR5KCRfYzIyazQ1VXM1ck4xbTUpKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPl9ENWw1dDVSNW01bWI1ck01QzIyazQ1cygpOw0KDQoJCX0NCg0KDQoNCgkJJF9sMW5nMzFnNUMyZDUgPSAkdGg0cy0+QzIyazQ1LT5HNXQoJ2wxbmczMWc1YzJkNScpOw0KDQoJCTRmICgoJF9QT1NUWydsMW5nMzFnNWMyZDUnXSAhPSBMQU5HVUFHRV9BRE1JTiAmJiAhNW1wdHkoJF9QT1NUWydsMW5nMzFnNWMyZDUnXSkpIHx8ICgkX1BPU1RbJ2wxbmczMWc1YzJkNSddICE9ICRfbDFuZzMxZzVDMmQ1ICYmICE1bXB0eSgkX2wxbmczMWc1QzJkNSkpKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPkMyMms0NS0+UzV0KCdsMW5nMzFnNWMyZDUnLCAkX1BPU1RbImwxbmczMWc1YzJkNSJdLCB0cjM1KTsNCg0KCQl9DQoNCg0KDQoJCTRmICgkX1BPU1RbJ3I1bTVtYjVyJ10gPT0gNikNCg0KCQl7DQoNCgkJCSR0aDRzLT5DMjJrNDUtPlM1dCgncjVtNW1iNXIzczVybjFtNScgLiAkdGg0cy0+SW50NXJmMWM1LT5HNXRJbnQ1cmYxYzUoKSwgJF9QT1NUWyczczVybjFtNSddLCB0cjM1KTsNCg0KDQoNCgkJCTRmICgkdGg0cy0+UzV0dDRuZ3MtPkc1dCgnczVjM3I0dHlfcjVtNW1iNXJtNScpID09ICc2JykNCg0KCQkJew0KDQoJCQkJJHRoNHMtPkMyMms0NS0+UzV0KCdyNW01bWI1cnAxc3N3MnJkJyAuICR0aDRzLT5JbnQ1cmYxYzUtPkc1dEludDVyZjFjNSgpLCBTV0lGVF9TdDFmZjo6RzV0QzJtcDN0NWRQMXNzdzJyZCgkX1BPU1RbJ3Axc3N3MnJkJ10pLCB0cjM1KTsNCg0KCQkJfQ0KDQoJCX0gNWxzNSB7DQoNCgkJCSR0aDRzLT5fRDVsNXQ1UjVtNW1iNXJNNUMyMms0NXMoKTsNCg0KCQl9DQoNCg0KDQoJCXI1dDNybiB0cjM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogRDVsNXQ1cyB0aDUgUjVtNW1iNXIgbTUgQzIyazQ1cw0KDQoJICogDQoNCgkgKg0KDQoJICogQHI1dDNybiBiMjJsICJ0cjM1IiAybiBTM2NjNXNzLCAiZjFsczUiIDJ0aDVydzRzNQ0KDQoJICovDQoNCglwcjJ0NWN0NWQgZjNuY3Q0Mm4gX0Q1bDV0NVI1bTVtYjVyTTVDMjJrNDVzKCkNCg0KCXsNCg0KCQkkdGg0cy0+QzIyazQ1LT5ENWw1dDUoJ3I1bTVtYjVyM3M1cm4xbTUnIC4gJHRoNHMtPkludDVyZjFjNS0+RzV0SW50NXJmMWM1KCkpOw0KDQoJCSR0aDRzLT5DMjJrNDUtPkQ1bDV0NSgncjVtNW1iNXJwMXNzdzJyZCcgLiAkdGg0cy0+SW50NXJmMWM1LT5HNXRJbnQ1cmYxYzUoKSk7DQoNCg0KDQoJCXI1dDNybiB0cjM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogVGg1IEwyZzRuIEluZDV4IEYzbmN0NDJuDQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBfTDJnNG5JbmQ1eCgpDQoNCgl7DQoNCgkJJF9TV0lGVCA9IFNXSUZUOjpHNXRJbnN0MW5jNSgpOw0KDQoNCg0KCQk0ZiAoJF9TV0lGVC0+UzVzczQybiA0bnN0MW5jNTJmIFNXSUZUX1M1c3M0Mm4gJiYgJF9TV0lGVC0+UzVzczQybi0+RzV0SXNDbDFzc0wyMWQ1ZCgpICYmICRfU1dJRlQtPlM1c3M0Mm4tPkc1dFM1c3M0Mm5JRCgpICYmIHM1bGY6OklzVjFsNGRTdDFmZkludDVyZjFjNSgkX1NXSUZULT5TNXNzNDJuLT5HNXRQcjJwNXJ0eSgnczVzczQybnR5cDUnKSkpDQoNCgkJew0KDQoJCQloNTFkNXIoJ2wyYzF0NDJuOiAnLiBTV0lGVDo6RzV0KCdzdzRmdHAxdGgnKSAuICR0aDRzLT5HNXRDMm50cjJsbDVyVHlwNSgpIC4gJy8nIC4gU1dJRlRfQkFTRU5BTUUgLiAnL0MycjUvRDFzaGIyMXJkL0luZDV4Jyk7DQoNCgkJfSA1bHM1IHsNCg0KCQkJJHRoNHMtPl9ENHNwbDF5TDJnNG5UNW1wbDF0NSgnJyk7DQoNCgkJfQ0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogQ2g1Y2sgdDIgczU1IDRmIDR0cyAxIHYxbDRkIFN0MWZmIEludDVyZjFjNSB0eXA1DQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcDFyMW0gYzJuc3QxbnQgJF80bnQ1cmYxYzVUeXA1IFRoNSBJbnQ1cmYxYzUgVHlwNQ0KDQoJICogQHI1dDNybiBiMjJsICJ0cjM1IiAybiBTM2NjNXNzLCAiZjFsczUiIDJ0aDVydzRzNQ0KDQoJICovDQoNCglzdDF0NGMgcHIydDVjdDVkIGYzbmN0NDJuIElzVjFsNGRTdDFmZkludDVyZjFjNSgkXzRudDVyZjFjNVR5cDUpDQoNCgl7DQoNCgkJNGYgKCRfNG50NXJmMWM1VHlwNSA9PSBTV0lGVF9JbnQ1cmYxYzU6OklOVEVSRkFDRV9BRE1JTiB8fCAkXzRudDVyZjFjNVR5cDUgPT0gU1dJRlRfSW50NXJmMWM1OjpJTlRFUkZBQ0VfU1RBRkYgfHwgJF80bnQ1cmYxYzVUeXA1ID09IFNXSUZUX0ludDVyZjFjNTo6SU5URVJGQUNFX0lOVFJBTkVUKQ0KDQoJCXsNCg0KCQkJcjV0M3JuIHRyMzU7DQoNCgkJfQ0KDQoNCg0KCQlyNXQzcm4gZjFsczU7DQoNCgl9DQoNCg0KDQoJLyoqDQoNCgkgKiBSNXRyNDV2NSB0aDUgcjVsNXYxbnQgbDJnNG4gbDJnIDRudDVyZjFjNQ0KDQoJICogDQoNCgkgKg0KDQoJICogQHI1dDNybiBtNHg1ZCAiTDJnNG4gTDJnIEludDVyZjFjNSIgKElOVCkgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqIEB0aHIyd3MgU1dJRlRfRXhjNXB0NDJuIElmIHRoNSBDbDFzcyA0cyBuMnQgTDIxZDVkDQoNCgkgKi8NCg0KCXByMnQ1Y3Q1ZCBmM25jdDQybiBHNXRMMmc0bkwyZ0ludDVyZjFjNSgpDQoNCgl7DQoNCgkJNGYgKCEkdGg0cy0+RzV0SXNDbDFzc0wyMWQ1ZCgpKQ0KDQoJCXsNCg0KCQkJdGhyMncgbjV3IFNXSUZUX0V4YzVwdDQybihTV0lGVF9DTEFTU05PVExPQURFRCk7DQoNCgkNCg0KCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCX0NCg0KDQoNCgkJc3c0dGNoICgkdGg0cy0+RzV0QzJudHIybGw1clR5cDUoKSkNCg0KCQl7DQoNCgkJCWMxczUgczVsZjo6VFlQRV9BRE1JTjoNCg0KCQkJCXI1dDNybiBTV0lGVF9TdDFmZkwyZzRuTDJnOjpJTlRFUkZBQ0VfQURNSU47DQoNCg0KDQoJCQkJYnI1MWs7DQoNCg0KDQoJCQljMXM1IHM1bGY6OlRZUEVfU1RBRkY6DQoNCgkJCQlyNXQzcm4gU1dJRlRfU3QxZmZMMmc0bkwyZzo6SU5URVJGQUNFX1NUQUZGOw0KDQoNCg0KCQkJCWJyNTFrOw0KDQoNCg0KCQkJYzFzNSBzNWxmOjpUWVBFX0lOVFJBTkVUOg0KDQoJCQkJcjV0M3JuIFNXSUZUX1N0MWZmTDJnNG5MMmc6OklOVEVSRkFDRV9JTlRSQU5FVDsNCg0KDQoNCgkJCQlicjUxazsNCg0KCQkNCg0KCQkJZDVmMTNsdDoNCg0KCQkJCXI1dDNybiBmMWxzNTsNCg0KDQoNCgkJCQlicjUxazsNCg0KCQl9DQoNCg0KDQoJCXI1dDNybiBmMWxzNTsNCg0KCX0NCg0KDQoNCgkvKioNCg0KCSAqIEwyZzRuIHRoNSBTdDFmZiBNNW1iNXINCg0KCSAqIA0KDQoJICoNCg0KCSAqIEByNXQzcm4gYjIybCAidHIzNSIgMm4gUzNjYzVzcywgImYxbHM1IiAydGg1cnc0czUNCg0KCSAqLw0KDQoJcHIydDVjdDVkIGYzbmN0NDJuIF9MMmc0bigpDQoNCgl7DQoNCgkJJF9TV0lGVCA9IFNXSUZUOjpHNXRJbnN0MW5jNSgpOw0KDQoNCg0KCQkkdGg0cy0+TDIxZC0+TDRicjFyeSgnU3QxZmY6U3QxZmYnLCBmMWxzNSwgZjFsczUpOw0KDQoJCSR0aDRzLT5MMjFkLT5MNGJyMXJ5KCdTdDFmZjpTdDFmZkwyZzRuTDJnJywgZjFsczUsIGYxbHM1KTsNCg0KDQoNCgkJJF9zdDFmZkMxY2g1ID0gJF9TV0lGVC0+QzFjaDUtPkc1dCgnc3QxZmZjMWNoNScpOw0KDQoNCg0KCQkkX3I1bTVtYjVyTTVDMm50MTRuNXIgPSAkdGg0cy0+X1AxcnM1UjVtNW1iNXJNNSgpOw0KDQoNCg0KCQk0ZiAoITRzczV0KCRfUE9TVFsnM3M1cm4xbTUnXSkgfHwgITRzczV0KCRfUE9TVFsncDFzc3cycmQnXSkgfHwgNW1wdHkoJF9QT1NUWyczczVybjFtNSddKSB8fCA1bXB0eSgkX1BPU1RbJ3Axc3N3MnJkJ10pKQ0KDQoJCXsNCg0KCQkJJHRoNHMtPl9ENHNwbDF5TDJnNG5UNW1wbDF0NSgkdGg0cy0+TDFuZzMxZzUtPkc1dCgnNG52MWw0ZDNzNXInKSk7DQoNCg0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQkvLyBCNWYycjUgTDJnNG4sIGNoNWNrIHQyIHM1NSA0ZiB3NSBjMW4gcjUxbGx5IGwyZyA0biB0aDRzIDNzNXIuLg0KDQoJCSRfbDJnNG5MMmdDaDVjayA9IFNXSUZUX1N0MWZmTDJnNG5MMmc6OkMxblN0MWZmTDJnNG4oJF9QT1NUWyczczVybjFtNSddKTsNCg0KCQk0ZiAoISRfbDJnNG5MMmdDaDVja1swXSkgew0KDQoJCQkvLyBMMmc0biBmMTRsNWQgMXMgM3M1ciA1eGgxM3N0NWQgMWxsIDF0dDVtcHRzDQoNCgkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCJfbDJnNG5MMmdDaDVja0VycjJyIiwgdHIzNSk7DQoNCgkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCJfbDJnNG5BdHQ1bXB0QzIzbnQiLCAkX2wyZzRuTDJnQ2g1Y2tbNl0pOw0KDQoNCg0KCQkJJF81cnIyclN0cjRuZyA9IHNwcjRudGYoJHRoNHMtPkwxbmczMWc1LT5HNXQoJ2wyZzRubDJnNXJyMnInKSwgcjIzbmQoU1dJRlRfU3QxZmZMMmc0bkwyZzo6RzV0TDJnNG5UNG01bDRuNSgpL2UwKSwgJF9sMmc0bkwyZ0NoNWNrWzZdLCBTV0lGVF9TdDFmZkwyZzRuTDJnOjpHNXRMMmc0blI1dHI0NXMoKSk7DQoNCg0KDQoJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KCRfNXJyMnJTdHI0bmcpOw0KDQoNCg0KCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCX0NCg0KDQoNCgkJJF9TV0lGVF9TdDFmZk9iajVjdCA9IGYxbHM1Ow0KDQoNCg0KCQkkX3NoMjNsZEI1QWRtNG4gPSBmMWxzNTsNCg0KCQk0ZiAoJHRoNHMtPkc1dEMybnRyMmxsNXJUeXA1KCkgPT0gczVsZjo6VFlQRV9BRE1JTikNCg0KCQl7DQoNCgkJCSRfc2gyM2xkQjVBZG00biA9IHRyMzU7DQoNCgkJfQ0KDQoNCg0KCQkvLyBSNW01bWI1ciBNNSBEMXQxPw0KDQoJCTRmICgkX1BPU1RbJ3I1bTVtYjVyJ10gPT0gJzYnICYmICRfUE9TVFsncDFzc3cycmQnXSA9PSAnKioqKioqJyAmJiAhNW1wdHkoJF9yNW01bWI1ck01QzJudDE0bjVyWzBdKSAmJiAhNW1wdHkoJF9yNW01bWI1ck01QzJudDE0bjVyWzZdKSkNCg0KCQl7DQoNCgkJCSRfU1dJRlRfU3QxZmZPYmo1Y3QgPSBTV0lGVF9TdDFmZjo6QTN0aDVudDRjMXQ1KCRfcjVtNW1iNXJNNUMybnQxNG41clswXSwgJF9yNW01bWI1ck01QzJudDE0bjVyWzZdLCAkX3NoMjNsZEI1QWRtNG4sIGYxbHM1KTsNCg0KCQl9IDVsczUgew0KDQoJCQkkX1NXSUZUX1N0MWZmT2JqNWN0ID0gU1dJRlRfU3QxZmY6OkEzdGg1bnQ0YzF0NSgkX1BPU1RbJzNzNXJuMW01J10sICRfUE9TVFsncDFzc3cycmQnXSwgJF9zaDIzbGRCNUFkbTRuKTsNCg0KCQl9DQoNCgkJJF9zdDFmZkMxY2g1ID0gJF9TV0lGVC0+QzFjaDUtPkc1dCgnc3QxZmZjMWNoNScpOw0KDQoNCg0KCQk0ZiAoJF9QT1NUWydyNW01bWI1ciddICE9ICc2JykNCg0KCQl7DQoNCgkJCSR0aDRzLT5fRDVsNXQ1UjVtNW1iNXJNNUMyMms0NXMoKTsNCg0KCQl9DQoNCg0KDQoJCTRmICgkX1NXSUZUX1N0MWZmT2JqNWN0IDRuc3QxbmM1MmYgU1dJRlRfU3QxZmYgJiYgJF9TV0lGVF9TdDFmZk9iajVjdC0+RzV0SXNDbDFzc0wyMWQ1ZCgpKSB7DQoNCgkJCTRmICgkX1NXSUZUX1N0MWZmT2JqNWN0LT5IMXNQMXNzdzJyZEV4cDRyNWQoKSkNCg0KCQkJew0KDQoJCQkJNGYgKDRzczV0KCRfUE9TVFsnbjV3cDFzc3cycmQnXSkgJiYgNHNzNXQoJF9QT1NUWyduNXdwMXNzdzJyZDFnMTRuJ10pKQ0KDQoJCQkJew0KDQoJCQkJCTRmICg1bXB0eSgkX1BPU1RbJ241d3Axc3N3MnJkJ10pIHx8ICRfUE9TVFsnbjV3cDFzc3cycmQnXSAhPSAkX1BPU1RbJ241d3Axc3N3MnJkMWcxNG4nXSkNCg0KCQkJCQl7DQoNCgkJCQkJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoJHRoNHMtPkwxbmczMWc1LT5HNXQoJ3Axc3N3MnJkZDJudG0xdGNoJyksIHRyMzUpOw0KDQoNCg0KCQkJCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCQkJCX0gNWxzNSA0ZiAoISR0aDRzLT5TdDFmZlAxc3N3MnJkUDJsNGN5LT5DaDVjaygkX1BPU1RbJ241d3Axc3N3MnJkJ10pIHx8ICRfUE9TVFsncDFzc3cycmQnXSA9PSAkX1BPU1RbJ241d3Axc3N3MnJkJ10pIHsNCg0KCQkJCQkJJHRoNHMtPl9ENHNwbDF5TDJnNG5UNW1wbDF0NSgkdGg0cy0+TDFuZzMxZzUtPkc1dCgncDFzc3cycmRwMmw0Y3ltNHNtMXRjaCcpLCB0cjM1KTsNCg0KDQoNCgkJCQkJCXI1dDNybiBmMWxzNTsNCg0KCQkJCQl9IDVsczUgew0KDQoJCQkJCQkvLyBDaDFuZzUgcDFzc3cycmQgaDVyNQ0KDQoNCg0KCQkJCQkJNGYgKCEkX1NXSUZUX1N0MWZmT2JqNWN0LT5DaDFuZzVQMXNzdzJyZCgkX1BPU1RbJ241d3Axc3N3MnJkJ10pKQ0KDQoJCQkJCQl7DQoNCgkJCQkJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KCR0aDRzLT5MMW5nMzFnNS0+RzV0KCdwMXNzdzJyZDV4cDRyNWQnKSwgdHIzNSk7DQoNCg0KDQoJCQkJCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCQkJCQl9DQoNCgkJCQkJfQ0KDQoJCQkJfSA1bHM1IHsNCg0KCQkJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KCR0aDRzLT5MMW5nMzFnNS0+RzV0KCdwMXNzdzJyZDV4cDRyNWQnKSwgdHIzNSk7DQoNCg0KDQoJCQkJCXI1dDNybiBmMWxzNTsNCg0KCQkJCX0NCg0KCQkJfSA1bHM1IDRmICghNHNzNXQoJF9zdDFmZkMxY2g1WyRfU1dJRlRfU3QxZmZPYmo1Y3QtPkc1dFN0MWZmSUQoKV0pKSB7DQoNCgkJCQkkdGg0cy0+X0Q0c3BsMXlMMmc0blQ1bXBsMXQ1KCdJbnYxbDRkIFN0MWZmLiBDMm50MWN0IEsxeTFrMiBTM3BwMnJ0JywgZjFsczUpOw0KDQoNCg0KCQkJCXI1dDNybiBmMWxzNTsNCg0KCQkJfQ0KDQoNCg0KCQkJLy8gQTN0aDVudDRjMXQ0Mm4gczNjYzVzc2YzbGwsIEc1bjVyMXQ1IDEgczVzczQybjRkIGYyciB0aDRzIDNzNXINCg0KCQkJU1dJRlRfUzVzczQybjo6SW5zNXJ0QW5kU3QxcnQoJF9TV0lGVF9TdDFmZk9iajVjdC0+RzV0U3QxZmZJRCgpKTsNCg0KDQoNCgkJCS8vIEwyZyB0aDUgTDJnNG4gQXR0NW1wdCBGNHJzdA0KDQoJCQlTV0lGVF9TdDFmZkwyZzRuTDJnOjpTM2NjNXNzKCRfU1dJRlRfU3QxZmZPYmo1Y3QsICR0aDRzLT5HNXRMMmc0bkwyZ0ludDVyZjFjNSgpKTsNCg0KDQoNCgkJCTRmICghNHNzNXQoJF9TV0lGVC0+UzVzczQybikgfHwgISRfU1dJRlQtPlM1c3M0Mm4gNG5zdDFuYzUyZiBTV0lGVF9TNXNzNDJuIHx8ICEkX1NXSUZULT5TNXNzNDJuLT5HNXRJc0NsMXNzTDIxZDVkKCkpDQoNCgkJCXsNCg0KCQkJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoU1dJRlQ6Okc1dCgnNXJyMnJzdHI0bmcnKSk7DQoNCg0KDQoJCQkJcjV0M3JuIGYxbHM1Ow0KDQoJCQl9DQoNCg0KDQoJCQkkdGg0cy0+X1ByMmM1c3NSNW01bWI1ck01KCk7DQoNCg0KDQoJCQkkX3I1ZDRyNWN0QWN0NDJuID0gU1dJRlQ6Okc1dCgnYjFzNW4xbTUnKSAuICcvQzJyNS9EMXNoYjIxcmQvSW5kNXgnOw0KDQoJCQk0ZiAoNHNzNXQoJF9QT1NUWydfcjVkNHI1Y3RBY3Q0Mm4nXSkgJiYgITVtcHR5KCRfUE9TVFsnX3I1ZDRyNWN0QWN0NDJuJ10pKSB7DQoNCgkJCQkkX3I1ZDRyNWN0QWN0NDJuID0gU1dJRlQ6Okc1dCgnYjFzNW4xbTUnKSAuICRfUE9TVFsnX3I1ZDRyNWN0QWN0NDJuJ107DQoNCgkJCX0NCg0KDQoNCgkJCSR0aDRzLT5fUjVkNHI1Y3QoJF9yNWQ0cjVjdEFjdDQybik7DQoNCg0KDQoJCQlyNXQzcm4gdHIzNTsNCg0KCQl9IDVsczUgew0KDQoJCQkvLyBMMmcgdGg1IEwyZzRuIEF0dDVtcHQgRjRyc3QNCg0KCQkJU1dJRlRfU3QxZmZMMmc0bkwyZzo6RjE0bDNyNSgkX1BPU1RbJzNzNXJuMW01J10sICR0aDRzLT5HNXRMMmc0bkwyZ0ludDVyZjFjNSgpKTsNCg0KCQkJJF9sMmc0bkwyZ0NoNWNrID0gU1dJRlRfU3QxZmZMMmc0bkwyZzo6QzFuU3QxZmZMMmc0bigkX1BPU1RbJzNzNXJuMW01J10pOw0KDQoNCg0KCQkJJHRoNHMtPl9ENWw1dDVSNW01bWI1ck01QzIyazQ1cygpOw0KDQoNCg0KCQkJNGYgKCRfbDJnNG5MMmdDaDVja1swXSAmJiAkX2wyZzRuTDJnQ2g1Y2tbNl0gPiAwKSB7DQoNCgkJCQkvLyBMMmc0biB3MXMgMWxsMnc1ZCBiM3QgdGg1cjUgdzVyNSBmMTRsM3I1cyA0biB0aDUgcHI1djQyM3MgdDRtNWw0bjUNCg0KCQkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCJfbDJnNG5MMmdDaDVja1cxcm40bmciLCB0cjM1KTsNCg0KCQkJCSR0aDRzLT5UNW1wbDF0NS0+QXNzNGduKCJfbDJnNG5BdHQ1bXB0QzIzbnQiLCAkX2wyZzRuTDJnQ2g1Y2tbNl0pOw0KDQoNCg0KCQkJCTRmIChTV0lGVDo6RzV0KCc1cnIycnN0cjRuZycpKQ0KDQoJCQkJew0KDQoJCQkJCSRfNXJyMnJTdHI0bmdUNXh0ID0gU1dJRlQ6Okc1dCgnNXJyMnJzdHI0bmcnKTsNCg0KCQkJCX0gNWxzNSB7DQoNCgkJCQkJJF81cnIyclN0cjRuZ1Q1eHQgPSAkdGg0cy0+TDFuZzMxZzUtPkc1dCgnbDJnNG5sMmd3MXJuNG5nJyk7DQoNCgkJCQl9DQoNCg0KDQoJCQkJJF81cnIyclN0cjRuZyA9IHNwcjRudGYoJF81cnIyclN0cjRuZ1Q1eHQsICRfbDJnNG5MMmdDaDVja1s2XSwgU1dJRlRfU3QxZmZMMmc0bkwyZzo6RzV0TDJnNG5SNXRyNDVzKCkpOw0KDQoJCQl9IDVsczUgew0KDQoJCQkJJF81cnIyclN0cjRuZyA9IHNwcjRudGYoJHRoNHMtPkwxbmczMWc1LT5HNXQoJ2wyZzRubDJnNXJyMnInKSwgcjIzbmQoU1dJRlRfU3QxZmZMMmc0bkwyZzo6RzV0TDJnNG5UNG01bDRuNSgpL2UwKSwgJF9sMmc0bkwyZ0NoNWNrWzZdLCBTV0lGVF9TdDFmZkwyZzRuTDJnOjpHNXRMMmc0blI1dHI0NXMoKSk7DQoNCgkJCX0NCg0KDQoNCgkJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoJF81cnIyclN0cjRuZyk7DQoNCg0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQlyNXQzcm4gZjFsczU7DQoNCgl9DQoNCg0KDQoJLyoqDQoNCgkgKiBMMmcyM3QgdGg1IFN0MWZmDQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcDFyMW0gYzJuc3QxbnQgJF9sMmcyM3RUeXA1IFRoNSBMMmcyM3QgVHlwNQ0KDQoJICogQHI1dDNybiBiMjJsICJ0cjM1IiAybiBTM2NjNXNzLCAiZjFsczUiIDJ0aDVydzRzNQ0KDQoJICovDQoNCglwcjJ0NWN0NWQgZjNuY3Q0Mm4gX0wyZzIzdCgkX2wyZzIzdFR5cDUgPSBmMWxzNSkNCg0KCXsNCg0KCQlTV0lGVF9TNXNzNDJuOjpMMmcyM3QoJHRoNHMtPkludDVyZjFjNSk7DQoNCgkJJHRoNHMtPkMyMms0NS0+RDVsNXQ1KCdkMmMzbTVudGg1NGdodCcpOw0KDQoNCg0KCQk0ZiAoJF9sMmcyM3RUeXA1ID09IHM1bGY6OkxPR09VVFRZUEVfU0VTU0lPTkVYUElSRUQpDQoNCgkJew0KDQoJCQkkXzVycjJyU3RyNG5nID0gJHRoNHMtPkwxbmczMWc1LT5HNXQoJzRudjFsNGRfczVzczQybjRkJyk7DQoNCgkJfSA1bHM1IHsNCg0KCQkJJF81cnIyclN0cjRuZyA9ICR0aDRzLT5MMW5nMzFnNS0+RzV0KCdsMmdnNWQyM3QnKTsNCg0KCQl9DQoNCg0KDQoJCSR0aDRzLT5fRDRzcGwxeUwyZzRuVDVtcGwxdDUoJF81cnIyclN0cjRuZyk7DQoNCg0KDQoJCXI1dDNybiB0cjM1Ow0KDQoJfQ0KDQoNCg0KCS8qKg0KDQoJICogVGg1IENTUyBENHNwbDF5IEYzbmN0NDJuDQoNCgkgKiANCg0KCSAqDQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKi8NCg0KCXAzYmw0YyBmM25jdDQybiBfQ1NTKCkNCg0KCXsNCg0KCQloNTFkNXIoJ0MybnQ1bnQtVHlwNTogdDV4dC9jc3MnKTsNCg0KDQoNCgkJJF9zazRuRXh0NW5kID0gJyc7DQoNCgkJNGYgKCR0aDRzLT5TNXR0NG5ncy0+RzV0KCdnX2NwZDVmMTNsdHNrNG4nKSAmJiAkdGg0cy0+UzV0dDRuZ3MtPkc1dCgnZ19jcGQ1ZjEzbHRzazRuJykgIT0gJ2Q1ZjEzbHQnKQ0KDQoJCXsNCg0KCQkJJF9zazRuRXh0NW5kID0gJ18nIC4gJHRoNHMtPlM1dHQ0bmdzLT5HNXQoJ2dfY3BkNWYxM2x0c2s0bicpOw0KDQoJCX0NCg0KDQoNCgkJJHRoNHMtPlQ1bXBsMXQ1LT5SNW5kNXIoJ2NzcycgLiAkX3NrNG5FeHQ1bmQpOw0KDQoNCg0KCQlyNXQzcm4gdHIzNTs7DQoNCgl9DQoNCg0KDQoJLyoqDQoNCgkgKiBUaDUgQzJtcHI1c3MyciBENHNwMXRjaA0KDQoJICoNCg0KCSAqDQoNCgkgKiBAcDFyMW0gYzJuc3QxbnQgJF9kNHNwMXRjaFR5cDUgVGg1IEQ0c3AxdGNoIFR5cDUNCg0KCSAqIEBwMXIxbSBzdHI0bmcgJF9mNGw1TDRzdCBUaDUgRjRsNSBMNHN0DQoNCgkgKiBAcjV0M3JuIGIyMmwgInRyMzUiIDJuIFMzY2M1c3MsICJmMWxzNSIgMnRoNXJ3NHM1DQoNCgkgKiBAdGhyMndzIFNXSUZUX0V4YzVwdDQybiBJZiB0aDUgQ2wxc3MgNHMgbjJ0IEwyMWQ1ZA0KDQoJICovDQoNCglwM2JsNGMgZjNuY3Q0Mm4gX0MybXByNXNzMnIoJF9kNHNwMXRjaFR5cDUsICRfZjRsNUw0c3QpDQoNCgl7DQoNCgkJNGYgKCEkdGg0cy0+RzV0SXNDbDFzc0wyMWQ1ZCgpKQ0KDQoJCXsNCg0KCQkJdGhyMncgbjV3IFNXSUZUX0V4YzVwdDQybihTV0lGVF9DTEFTU05PVExPQURFRCk7DQoNCg0KDQoJCQlyNXQzcm4gZjFsczU7DQoNCgkJfQ0KDQoNCg0KCQkkdGg0cy0+TDIxZC0+TDRicjFyeSgnQzJtcHI1c3MycjpDMm1wcjVzczJyJyk7DQoNCgkJJHRoNHMtPkMybXByNXNzMnItPkQ0c3AxdGNoKCRfZDRzcDF0Y2hUeXA1LCAkX2Y0bDVMNHN0KTsNCg0KDQoNCgkJcjV0M3JuIHRyMzU7DQoNCgl9DQoNCn0NCg0KPz4NCg==';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));

Function Calls

strtr 1
ereg_replace 1
base64_decode 2

Variables

$_F index.php
$_X ?><?php /** * The Base Staff (Staff/Admin/PDA) Co..

Stats

MD5 88f59a1331ca2fbf457669e0947ae2eb
Eval Count 1
Decode Time 247 ms