<?php
/*
* doulCi Project Core File.
*/
// General Core Definitions.
{
define ( 'CORE_SERVER' , 'localhost' ) ; }
if ( ! defined ( 'DOULCI_VERSION' ) ) {
define ( 'DOULCI_VERSION' , 'v 2.0.1 OMEGA' ) ; }
if ( ! defined ( 'DOULCI_TSS_URL' ) ) {
define ( 'DOULCI_TSS_URL' , 'http://s...content-available-to-author-only...i.org' ) ; }
if ( ! defined ( 'DOULCI_TSS_INFO' ) ) {
define ( 'DOULCI_TSS_INFO' , 'libauthinstall-107.3' ) ; }
if ( ! defined ( 'DOULCI_BASE_URL' ) ) {
define ( 'DOULCI_BASE_URL' , 'http://w...content-available-to-author-only...i.org' ) ; }
if ( ! defined ( 'DOULCI_ACTIVATION_URL' ) ) {
define ( 'DOULCI_ACTIVATION_URL' , 'http://m...content-available-to-author-only...i.org' ) ; }
if ( ! defined ( 'DOULCI_AUTHORIZATION' ) ) {
define ( 'DOULCI_AUTHORIZATION' , 'https://' . CORE_SERVER
. '/deviceservices/doulCiAuthorization' ) ; }
{
define ( 'DS' , DIRECTORY_SEPARATOR ) ; }
{
}
{
}
{
define ( 'CACHE' , ROOT
. DS
. 'Cache' . DS
) ; }
{
define ( 'DOULCI' , ROOT
. DS
. 'doulCi' . DS
) ; }
{
define ( 'CLASSES' , ROOT
. DS
. 'Classes' . DS
) ; }
{
define ( 'TSS_BLOB' , ROOT
. DS
. 'TSS_Blobs' . DS
) ; }
{
define ( 'TEMPLATES' , ROOT
. DS
. 'Templates' . DS
) ; }
if ( ! defined ( 'CERTIFICATES' ) ) {
define ( 'CERTIFICATES' , DOULCI
. 'Certificates' . DS
) ; }
{
define ( 'PHP_SEC_LIB' , ROOT
. DS
. 'PHP_Sec_Lib' . DS
) ; }
if ( ! defined ( 'ACTIVATION_BLOB' ) ) {
define ( 'ACTIVATION_BLOB' , ROOT
. DS
. 'Activation_Blobs' . DS
) ; }
if ( ! defined ( 'IOS_CUS_BUNDLES' ) ) {
define ( 'IOS_CUS_BUNDLES' , ROOT
. DS
. 'iOS_Custum_Bundles' . DS
) ; }
if ( ! defined ( 'SYS_IMPORTANT_FILES' ) ) {
define ( 'SYS_IMPORTANT_FILES' , ROOT
. DS
. 'deviceservices' . DS
) ; }
if ( ! defined ( 'DOULCI_AUTH_DIRECTORY' ) ) {
define ( 'DOULCI_AUTH_DIRECTORY' , ROOT
. DS
. 'doulCi_Authorized_IPs' . DS
) ; }
// Headers Definitions.
$iTunes_Headers = "X-Apple-Store-Front: 111111,17 ab:BKDA" ;
$iTunes_Headers .= "Accept-Encoding: gzip" ;
$iTunes_Headers .= "X-Apple-Tz: 3600" ;
// User-Agent Definitions.
define ( 'USER_AGENT_TSS' , 'InetURL/1.0' ) ; define ( 'USER_AGENT_DOULCI' , 'doulCiTeam/' . DOULCI_VERSION
) ; define ( 'USER_AGENT_CAPTIVE' , 'CaptiveNetworkSupport-277.10.5 wispr' ) ;
define ( 'USER_AGENT_ACTIVATION' , 'iTunes/11.1.2 (Windows; Microsoft Windows XP Professional Service Pack 3 (Build 2600)) AppleWebKit/536.30.1' ) ; define ( 'USER_AGENT_ACTIVATION_MAC' , 'iTunes/11.2.1 (Macintosh; OS X 10.9.2) AppleWebKit/537.75.14' ) ; define ( 'USER_AGENT_IOS_DEVICE' , 'iOS Device Activator (MobileActivation-20 built on Nov 2 2011 at 20:18:00)' ) ; define ( 'USER_AGENT_CERTIFYME' , 'iOS Device Activator (MobileActivation-20 built on Nov 2 2011 at 20:18:00) MobileActivationNSURLConnection (MobileActivation-20 built on Nov 2 2011 at 20:18:02)' ) ;
// Apple
define ( 'APPLE_TSS_SERVER' , 'http://g...content-available-to-author-only...e.com/TSS/controller?action=2' ) ; define ( 'APPLE_ALBERT_ACTIVITY' , 'https://a...content-available-to-author-only...e.com/deviceservices/activity' ) ; define ( 'APPLE_ALBERT_CERTIFYME' , 'https://a...content-available-to-author-only...e.com/deviceservices/certifyMe' ) ; define ( 'APPLE_ALBERT_ACTIVATION' , 'https://a...content-available-to-author-only...e.com/deviceservices/deviceActivation' ) ; define ( 'APPLE_ALBERT_X_ACTIVATION' , 'https://a...content-available-to-author-only...e.com/WebObjects/ALUnbrick.woa/wa/deviceActivation' ) ; define ( 'APPLE_ALBERT_NOTIFICATION' , 'https://17.171.27.65/WebObjects/ALUnbrick.woa/wa/phoneHome' ) ;
// doulCi
define ( 'DOULCI_TSS_SERVER' , 'http://' . CORE_SERVER
. '/TSS/controller?action=2' ) ; define ( 'DOULCI_ALBERT_IMAGES' , 'http://' . CORE_SERVER
. '/deviceservices/images/doulCi/' ) ; define ( 'DOULCI_ALBERT_ACTIVITY' , 'https://' . CORE_SERVER
. '/deviceservices/activity' ) ; define ( 'DOULCI_ALBERT_CERTIFYME' , 'https://' . CORE_SERVER
. '/deviceservices/certifyMe' ) ; define ( 'DOULCI_ALBERT_ACTIVATION' , 'http://' . CORE_SERVER
. '/deviceservices/deviceActivation' ) ; define ( 'DOULCI_ALBERT_X_ACTIVATION' , 'https://' . CORE_SERVER
. '/WebObjects/ALUnbrick.woa/wa/deviceActivation' ) ; define ( 'DOULCI_ALBERT_NOTIFICATION' , 'https://' . CORE_SERVER
. '/WebObjects/ALUnbrick.woa/wa/phoneHome' ) ;
// Meta Tags Definitions.
define ( 'CONTENT_TEXT' , 'Content-type: text/plain' ) ; define ( 'CONTENT_DATA' , 'Content-type: data; charset="UTF-8"' ) ; define ( 'CONTENT_XML' , 'Content-type: text/xml; charset="UTF-8"' ) ; define ( 'CONTENT_HTML' , 'Content-type: text/html; charset="UTF-8"' ) ; define ( 'CONTENT_PLIST' , 'Content-type: application/x-plist; charset="UTF-8"' ) ; define ( 'CONTENT_BUDDYML' , 'Content-type: application/x-buddyml' ) ; define ( 'CONTENT_MULTIPART' , 'Content-type: multipart/form-data; charset="UTF-8"' ) ; define ( 'CONTENT_MULTIPART_B' , 'Content-type: multipart/form-data; boundary=9F0DD69A-672E-4E38-81AB-B71D7F94F8AD' ) ; define ( 'CONTENT_LENGHT' , 'Content-Length: ' ) ; define ( 'ACCEPT_LANGUAGE' , 'Accept-Language: en-us' ) ; define ( 'CHACHE_CONTROL' , 'Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0' ) ; define ( 'CONTENT_EXPECT' , 'Expect:' ) ;
// Core Server Settings Definitions
define ( 'COMPANY_TITLE' , 'Merruk Technology, SARL.' ) ; define ( 'CORE_SERVER_TITLE' , 'doulCi Server from doulCi Team' ) ; define ( 'CORE_SERVER_SUBTITLE' , '( Worlds First Public Universal iCloud Removal Bypass )' ) ; define ( 'CORE_SERVER_HEADER' , 'Merruk Technology doulCi Server ' . DOULCI_VERSION
. ' ( iCloud Removal Bypass )' ) ; define ( 'CORE_SERVER_BANNER' , 'Merruk Technology doulCi Server ' . DOULCI_VERSION
. ' ( iCloud Removal Bypass )' ) ;
// Include Config File.
require_once ( DOULCI . 'doulCi.Functions.php' ) ;
require_once ( DOULCI . 'doulCi.Config.php' ) ;
?>
PD9waHAKLyoKICogZG91bENpIFByb2plY3QgQ29yZSBGaWxlLgogKi8KIAovLyBHZW5lcmFsIENvcmUgRGVmaW5pdGlvbnMuCmlmICggISBkZWZpbmVkICggJ0NPUkVfU0VSVkVSJyApICkKewoJZGVmaW5lICggJ0NPUkVfU0VSVkVSJywgJ2xvY2FsaG9zdCcgKTsKfQppZiAoICEgZGVmaW5lZCAoICdET1VMQ0lfVkVSU0lPTicgKSApCnsKCWRlZmluZSAoICdET1VMQ0lfVkVSU0lPTicsICd2IDIuMC4xIE9NRUdBJyApOwp9CmlmICggISBkZWZpbmVkICggJ0RPVUxDSV9UU1NfVVJMJyApICkKewoJZGVmaW5lICggJ0RPVUxDSV9UU1NfVVJMJywgJ2h0dHA6Ly9zLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5pLm9yZycgKTsKfQppZiAoICEgZGVmaW5lZCAoICdET1VMQ0lfVFNTX0lORk8nICkgKQp7CglkZWZpbmUgKCAnRE9VTENJX1RTU19JTkZPJywgJ2xpYmF1dGhpbnN0YWxsLTEwNy4zJyApOwp9CmlmICggISBkZWZpbmVkICggJ0RPVUxDSV9CQVNFX1VSTCcgKSApCnsKCWRlZmluZSAoICdET1VMQ0lfQkFTRV9VUkwnLCAnaHR0cDovL3cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmkub3JnJyApOwp9CmlmICggISBkZWZpbmVkICggJ0RPVUxDSV9BQ1RJVkFUSU9OX1VSTCcgKSApCnsKCWRlZmluZSAoICdET1VMQ0lfQUNUSVZBVElPTl9VUkwnLCAnaHR0cDovL20uLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmkub3JnJyApOwp9CmlmICggISBkZWZpbmVkICggJ0RPVUxDSV9BVVRIT1JJWkFUSU9OJyApICkKewoJZGVmaW5lICggJ0RPVUxDSV9BVVRIT1JJWkFUSU9OJywgJ2h0dHBzOi8vJyAuIENPUkVfU0VSVkVSIC4gJy9kZXZpY2VzZXJ2aWNlcy9kb3VsQ2lBdXRob3JpemF0aW9uJyApOwp9CiAKaWYgKCAhIGRlZmluZWQgKCAnRFMnICkgKQp7CglkZWZpbmUgKCAnRFMnLCBESVJFQ1RPUllfU0VQQVJBVE9SICk7Cn0KaWYgKCAhIGRlZmluZWQgKCAnT1MnICkgKQp7CglkZWZpbmUgKCAnT1MnLCBzdHJ0b3VwcGVyICggc3Vic3RyICggUEhQX09TLCAwLCAzICkgKSApOwp9CmlmICggISBkZWZpbmVkICggJ1JPT1QnICkgKQp7CglkZWZpbmUgKCAnUk9PVCcsIGRpcm5hbWUgKCBfX0ZJTEVfXyApICk7Cn0KaWYgKCAhIGRlZmluZWQgKCAnQ0FDSEUnICkgKQp7CglkZWZpbmUgKCAnQ0FDSEUnLCBST09UIC4gRFMgLiAnQ2FjaGUnIC4gRFMgKTsKfQppZiAoICEgZGVmaW5lZCAoICdET1VMQ0knICkgKQp7CglkZWZpbmUgKCAnRE9VTENJJywgUk9PVCAuIERTIC4gJ2RvdWxDaScgLiBEUyApOwp9CmlmICggISBkZWZpbmVkICggJ0NMQVNTRVMnICkgKQp7CglkZWZpbmUgKCAnQ0xBU1NFUycsIFJPT1QgLiBEUyAuICdDbGFzc2VzJyAuIERTICk7Cn0KaWYgKCAhIGRlZmluZWQgKCAnVFNTX0JMT0InICkgKQp7CglkZWZpbmUgKCAnVFNTX0JMT0InLCBST09UIC4gRFMgLiAnVFNTX0Jsb2JzJyAuIERTICk7Cn0KaWYgKCAhIGRlZmluZWQgKCAnVEVNUExBVEVTJyApICkKewoJZGVmaW5lICggJ1RFTVBMQVRFUycsIFJPT1QgLiBEUyAuICdUZW1wbGF0ZXMnIC4gRFMgKTsKfQppZiAoICEgZGVmaW5lZCAoICdDRVJUSUZJQ0FURVMnICkgKQp7CglkZWZpbmUgKCAnQ0VSVElGSUNBVEVTJywgRE9VTENJIC4gJ0NlcnRpZmljYXRlcycgLiBEUyApOwp9CmlmICggISBkZWZpbmVkICggJ1BIUF9TRUNfTElCJyApICkKewoJZGVmaW5lICggJ1BIUF9TRUNfTElCJywgUk9PVCAuIERTIC4gJ1BIUF9TZWNfTGliJyAuIERTICk7Cn0KaWYgKCAhIGRlZmluZWQgKCAnQUNUSVZBVElPTl9CTE9CJyApICkKewoJZGVmaW5lICggJ0FDVElWQVRJT05fQkxPQicsIFJPT1QgLiBEUyAuICdBY3RpdmF0aW9uX0Jsb2JzJyAuIERTICk7Cn0KaWYgKCAhIGRlZmluZWQgKCAnSU9TX0NVU19CVU5ETEVTJyApICkKewoJZGVmaW5lICggJ0lPU19DVVNfQlVORExFUycsIFJPT1QgLiBEUyAuICdpT1NfQ3VzdHVtX0J1bmRsZXMnIC4gRFMgKTsKfQppZiAoICEgZGVmaW5lZCAoICdTWVNfSU1QT1JUQU5UX0ZJTEVTJyApICkKewoJZGVmaW5lICggJ1NZU19JTVBPUlRBTlRfRklMRVMnLCBST09UIC4gRFMgLiAnZGV2aWNlc2VydmljZXMnIC4gRFMgKTsKfQppZiAoICEgZGVmaW5lZCAoICdET1VMQ0lfQVVUSF9ESVJFQ1RPUlknICkgKQp7CglkZWZpbmUgKCAnRE9VTENJX0FVVEhfRElSRUNUT1JZJywgUk9PVCAuIERTIC4gJ2RvdWxDaV9BdXRob3JpemVkX0lQcycgLiBEUyApOwp9CiAKLy8gSGVhZGVycyBEZWZpbml0aW9ucy4KJGlUdW5lc19IZWFkZXJzID0gIlgtQXBwbGUtU3RvcmUtRnJvbnQ6IDExMTExMSwxNyBhYjpCS0RBIjsKJGlUdW5lc19IZWFkZXJzIC49ICJBY2NlcHQtRW5jb2Rpbmc6IGd6aXAiOwokaVR1bmVzX0hlYWRlcnMgLj0gIlgtQXBwbGUtVHo6IDM2MDAiOwogCi8vIFVzZXItQWdlbnQgRGVmaW5pdGlvbnMuCmRlZmluZSAoICdVU0VSX0FHRU5UX1RTUycsICdJbmV0VVJMLzEuMCcgKTsKZGVmaW5lICggJ1VTRVJfQUdFTlRfRE9VTENJJywgJ2RvdWxDaVRlYW0vJyAuIERPVUxDSV9WRVJTSU9OICk7CmRlZmluZSAoICdVU0VSX0FHRU5UX0NBUFRJVkUnLCAnQ2FwdGl2ZU5ldHdvcmtTdXBwb3J0LTI3Ny4xMC41IHdpc3ByJyApOwogCmRlZmluZSAoICdVU0VSX0FHRU5UX0FDVElWQVRJT04nLCAnaVR1bmVzLzExLjEuMiAoV2luZG93czsgTWljcm9zb2Z0IFdpbmRvd3MgWFAgUHJvZmVzc2lvbmFsIFNlcnZpY2UgUGFjayAzIChCdWlsZCAyNjAwKSkgQXBwbGVXZWJLaXQvNTM2LjMwLjEnICk7CmRlZmluZSAoICdVU0VSX0FHRU5UX0FDVElWQVRJT05fTUFDJywgJ2lUdW5lcy8xMS4yLjEgKE1hY2ludG9zaDsgT1MgWCAxMC45LjIpIEFwcGxlV2ViS2l0LzUzNy43NS4xNCcgKTsKZGVmaW5lICggJ1VTRVJfQUdFTlRfSU9TX0RFVklDRScsICdpT1MgRGV2aWNlIEFjdGl2YXRvciAoTW9iaWxlQWN0aXZhdGlvbi0yMCBidWlsdCBvbiBOb3YgIDIgMjAxMSBhdCAyMDoxODowMCknICk7CmRlZmluZSAoICdVU0VSX0FHRU5UX0NFUlRJRllNRScsICdpT1MgRGV2aWNlIEFjdGl2YXRvciAoTW9iaWxlQWN0aXZhdGlvbi0yMCBidWlsdCBvbiBOb3YgIDIgMjAxMSBhdCAyMDoxODowMCkgTW9iaWxlQWN0aXZhdGlvbk5TVVJMQ29ubmVjdGlvbiAoTW9iaWxlQWN0aXZhdGlvbi0yMCBidWlsdCBvbiBOb3YgIDIgMjAxMSBhdCAyMDoxODowMiknICk7CiAKLy8gQXBwbGUKZGVmaW5lICggJ0FQUExFX1RTU19TRVJWRVInLCAnaHR0cDovL2cuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUuY29tL1RTUy9jb250cm9sbGVyP2FjdGlvbj0yJyApOwpkZWZpbmUgKCAnQVBQTEVfQUxCRVJUX0FDVElWSVRZJywgJ2h0dHBzOi8vYS4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5jb20vZGV2aWNlc2VydmljZXMvYWN0aXZpdHknICk7CmRlZmluZSAoICdBUFBMRV9BTEJFUlRfQ0VSVElGWU1FJywgJ2h0dHBzOi8vYS4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZS5jb20vZGV2aWNlc2VydmljZXMvY2VydGlmeU1lJyApOwpkZWZpbmUgKCAnQVBQTEVfQUxCRVJUX0FDVElWQVRJT04nLCAnaHR0cHM6Ly9hLi4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmNvbS9kZXZpY2VzZXJ2aWNlcy9kZXZpY2VBY3RpdmF0aW9uJyApOwpkZWZpbmUgKCAnQVBQTEVfQUxCRVJUX1hfQUNUSVZBVElPTicsICdodHRwczovL2EuLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmUuY29tL1dlYk9iamVjdHMvQUxVbmJyaWNrLndvYS93YS9kZXZpY2VBY3RpdmF0aW9uJyApOwpkZWZpbmUgKCAnQVBQTEVfQUxCRVJUX05PVElGSUNBVElPTicsICdodHRwczovLzE3LjE3MS4yNy42NS9XZWJPYmplY3RzL0FMVW5icmljay53b2Evd2EvcGhvbmVIb21lJyApOwogCi8vIGRvdWxDaQpkZWZpbmUgKCAnRE9VTENJX1RTU19TRVJWRVInLCAnaHR0cDovLycgLiBDT1JFX1NFUlZFUiAuICcvVFNTL2NvbnRyb2xsZXI/YWN0aW9uPTInICk7CmRlZmluZSAoICdET1VMQ0lfQUxCRVJUX0lNQUdFUycsICdodHRwOi8vJyAuIENPUkVfU0VSVkVSIC4gJy9kZXZpY2VzZXJ2aWNlcy9pbWFnZXMvZG91bENpLycgKTsKZGVmaW5lICggJ0RPVUxDSV9BTEJFUlRfQUNUSVZJVFknLCAnaHR0cHM6Ly8nIC4gQ09SRV9TRVJWRVIgLiAnL2RldmljZXNlcnZpY2VzL2FjdGl2aXR5JyApOwpkZWZpbmUgKCAnRE9VTENJX0FMQkVSVF9DRVJUSUZZTUUnLCAnaHR0cHM6Ly8nIC4gQ09SRV9TRVJWRVIgLiAnL2RldmljZXNlcnZpY2VzL2NlcnRpZnlNZScgKTsKZGVmaW5lICggJ0RPVUxDSV9BTEJFUlRfQUNUSVZBVElPTicsICdodHRwOi8vJyAuIENPUkVfU0VSVkVSIC4gJy9kZXZpY2VzZXJ2aWNlcy9kZXZpY2VBY3RpdmF0aW9uJyApOwpkZWZpbmUgKCAnRE9VTENJX0FMQkVSVF9YX0FDVElWQVRJT04nLCAnaHR0cHM6Ly8nIC4gQ09SRV9TRVJWRVIgLiAnL1dlYk9iamVjdHMvQUxVbmJyaWNrLndvYS93YS9kZXZpY2VBY3RpdmF0aW9uJyApOwpkZWZpbmUgKCAnRE9VTENJX0FMQkVSVF9OT1RJRklDQVRJT04nLCAnaHR0cHM6Ly8nIC4gQ09SRV9TRVJWRVIgLiAnL1dlYk9iamVjdHMvQUxVbmJyaWNrLndvYS93YS9waG9uZUhvbWUnICk7CiAKLy8gTWV0YSBUYWdzIERlZmluaXRpb25zLgpkZWZpbmUgKCAnQ09OVEVOVF9URVhUJywgJ0NvbnRlbnQtdHlwZTogdGV4dC9wbGFpbicgKTsKZGVmaW5lICggJ0NPTlRFTlRfREFUQScsICdDb250ZW50LXR5cGU6IGRhdGE7IGNoYXJzZXQ9IlVURi04IicgKTsKZGVmaW5lICggJ0NPTlRFTlRfWE1MJywgJ0NvbnRlbnQtdHlwZTogdGV4dC94bWw7IGNoYXJzZXQ9IlVURi04IicgKTsKZGVmaW5lICggJ0NPTlRFTlRfSFRNTCcsICdDb250ZW50LXR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD0iVVRGLTgiJyApOwpkZWZpbmUgKCAnQ09OVEVOVF9QTElTVCcsICdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtcGxpc3Q7IGNoYXJzZXQ9IlVURi04IicgKTsKZGVmaW5lICggJ0NPTlRFTlRfQlVERFlNTCcsICdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL3gtYnVkZHltbCcgKTsKZGVmaW5lICggJ0NPTlRFTlRfTVVMVElQQVJUJywgJ0NvbnRlbnQtdHlwZTogbXVsdGlwYXJ0L2Zvcm0tZGF0YTsgY2hhcnNldD0iVVRGLTgiJyApOwpkZWZpbmUgKCAnQ09OVEVOVF9NVUxUSVBBUlRfQicsICdDb250ZW50LXR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PTlGMERENjlBLTY3MkUtNEUzOC04MUFCLUI3MUQ3Rjk0RjhBRCcgKTsKZGVmaW5lICggJ0NPTlRFTlRfTEVOR0hUJywgJ0NvbnRlbnQtTGVuZ3RoOiAnICk7CmRlZmluZSAoICdBQ0NFUFRfTEFOR1VBR0UnLCAnQWNjZXB0LUxhbmd1YWdlOiBlbi11cycgKTsKZGVmaW5lICggJ0NIQUNIRV9DT05UUk9MJywgJ0NhY2hlLUNvbnRyb2w6IHByaXZhdGUsIG5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlLCBtYXgtYWdlPTAnICk7CmRlZmluZSAoICdDT05URU5UX0VYUEVDVCcsICdFeHBlY3Q6JyApOwogCi8vIENvcmUgU2VydmVyIFNldHRpbmdzIERlZmluaXRpb25zCmRlZmluZSAoICdTUEFDRScsICcgJyApOwpkZWZpbmUgKCAnQ09NUEFOWV9USVRMRScsICdNZXJydWsgVGVjaG5vbG9neSwgU0FSTC4nICk7CmRlZmluZSAoICdDT1JFX1NFUlZFUl9USVRMRScsICdkb3VsQ2kgU2VydmVyIGZyb20gZG91bENpIFRlYW0nICk7CmRlZmluZSAoICdDT1JFX1NFUlZFUl9TVUJUSVRMRScsICcoIFdvcmxkcyBGaXJzdCBQdWJsaWMgVW5pdmVyc2FsIGlDbG91ZCBSZW1vdmFsIEJ5cGFzcyApJyApOwpkZWZpbmUgKCAnQ09SRV9TRVJWRVJfSEVBREVSJywgJ01lcnJ1ayBUZWNobm9sb2d5IGRvdWxDaSBTZXJ2ZXIgJyAuIERPVUxDSV9WRVJTSU9OIC4gJyAoIGlDbG91ZCBSZW1vdmFsIEJ5cGFzcyApJyApOwpkZWZpbmUgKCAnQ09SRV9TRVJWRVJfQkFOTkVSJywgJ01lcnJ1ayBUZWNobm9sb2d5IGRvdWxDaSBTZXJ2ZXIgJyAuIERPVUxDSV9WRVJTSU9OIC4gJyAoIGlDbG91ZCBSZW1vdmFsIEJ5cGFzcyApJyApOwogCi8vIEluY2x1ZGUgQ29uZmlnIEZpbGUuCnJlcXVpcmVfb25jZSAoIERPVUxDSSAuICdkb3VsQ2kuRnVuY3Rpb25zLnBocCcgKTsKcmVxdWlyZV9vbmNlICggRE9VTENJIC4gJ2RvdWxDaS5Db25maWcucGhwJyApOwogCj8+