public static function configuration()
    {
        //====================================================================//
        // Configuration Array Already Exists
        //====================================================================//
        if (isset(self::core()->conf)) {
            return self::core()->conf;
        }

        //====================================================================//
        // Load Module Core Configuration
        //====================================================================//

        //====================================================================//
        // Initialize Empty Configuration
        self::core()->conf = new ArrayObject(array(), ArrayObject::ARRAY_AS_PROPS);
        $config = &self::core()->conf;

        //====================================================================//
        // Load Module Core Configuration from Definition File
        //====================================================================//
        // Translations Parameters
        $config->DefaultLanguage = SPLASH_DF_LANG;

        //====================================================================//
        // WebService Core Parameters
        $config->WsMethod = SPLASH_WS_METHOD;
        $config->WsTimout = SPLASH_TIMEOUT;
        $config->WsCrypt = SPLASH_CRYPT_METHOD;
        $config->WsEncode = SPLASH_ENCODE;
        $config->WsHost = 'www.splashsync.com/ws/soap';

        //====================================================================//
        // Activity Logging Parameters
        $config->Logging = SPLASH_LOGGING;
        $config->TraceIn = SPLASH_TRACE_IN;
        $config->TraceOut = SPLASH_TRACE_OUT;
        $config->TraceTasks = SPLASH_TRACE_TASKS;

        //====================================================================//
        // Custom Parameters Configurator
        $config->Configurator = JsonConfigurator::class;

        //====================================================================//
        // Server Requests Configuration
        $config->server = array();

        //====================================================================//
        // Load Module Local Configuration (In Safe Mode)
        //====================================================================//
        $localConf = self::local()->Parameters();
        //====================================================================//
        // Validate Local Parameters
        if (self::validate()->isValidLocalParameterArray($localConf)) {
            //====================================================================//
            // Import Local Parameters
            foreach ($localConf as $key => $value) {
                $config->{$key} = trim($value);
            }
        }

        //====================================================================//
        // Load Module Local Custom Configuration (from Configurator)
        //====================================================================//
        $customConf = self::configurator()->getParameters();
        //====================================================================//
        // Import Local Parameters
        foreach ($customConf as $key => $value) {
            $config->{$key} = trim($value);
        }

        return self::core()->conf;
    }