Version Description
19/Dec/2018 =
FEATURE: Added the abilty to create and restore Incremental Backups
FIX: Work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one
TWEAK: Improve performance by aggregating separate SQL SELECT queries (previously one for each backup) when loading the settings page
TWEAK: internal backup extradata parameter to prevent unwanted PHP notices
TWEAK: Fork a method UpdraftPlus_Filesystem_Functions::unzip_file() to allow for future enhancements
TWEAK: Periodic purging of obsolete job data that didn't get cleaned when expected was not happening on multisite
TWEAK: Improve logging when the initial call to jobdata_set_multi fails
TWEAK: Any stored backup/restore progress log files will now be deleted after 40 days. (Since they are attached to email reports, you can keep and retrieve them from those if needed). Over-ride this with the filter updraftplus_log_delete_age if desired.
Release Info
Developer | DavidAnderson |
Plugin | UpdraftPlus WordPress Backup Plugin |
Version | 1.16.0 |
Comparing to | |
See all releases |
Code changes from version 1.15.6 to 1.16.0
- admin.php +78 -76
- backup.php +7 -8
- central/bootstrap.php +1 -1
- central/listener.php +3 -3
- central/modules/plugin.php +2 -2
- central/modules/posts.php +2 -2
- central/modules/theme.php +2 -2
- class-updraftplus.php +51 -22
- css/updraftplus-admin.css +16 -4
- css/updraftplus-admin.min.css +1 -1
- css/updraftplus-admin.min.css.map +1 -1
- includes/class-backup-history.php +139 -11
- includes/class-commands.php +5 -1
- includes/class-filesystem-functions.php +212 -5
- includes/class-remote-send.php +1 -1
- includes/class-wpadmin-commands.php +1 -1
- includes/{updraftplus-admin-common.js → updraft-admin-common.js} +99 -9
- includes/updraft-admin-common.min.js +4 -0
- includes/updraftplus-admin-common.min.js +0 -4
- languages/updraftplus-el.mo +0 -0
- languages/updraftplus-el.po +252 -252
- languages/updraftplus-fi.mo +0 -0
- languages/updraftplus-fi.po +87 -87
- languages/updraftplus-it_IT.mo +0 -0
- languages/updraftplus-it_IT.po +94 -94
- languages/updraftplus-ja.mo +0 -0
- languages/updraftplus-ja.po +2 -2
- languages/updraftplus-vi.mo +0 -0
- languages/updraftplus-vi.po +220 -220
- languages/updraftplus.pot +612 -568
- readme.txt +18 -3
- restorer.php +5 -5
- templates/wp-admin/settings/backupnow-modal.php +68 -0
- templates/wp-admin/settings/delete-and-restore-modals.php +1 -1
- templates/wp-admin/settings/existing-backups-table.php +5 -7
- templates/wp-admin/settings/form-contents.php +1 -1
- templates/wp-admin/settings/tab-addons.php +16 -0
- templates/wp-admin/settings/take-backup.php +7 -2
- updraftplus.php +1 -1
- vendor/composer/installed.json +11 -11
- vendor/phpseclib/phpseclib/CHANGELOG.md +214 -0
- vendor/phpseclib/phpseclib/README.md +1 -1
- vendor/phpseclib/phpseclib/appveyor.yml +0 -27
- vendor/phpseclib/phpseclib/build/build.xml +32 -0
- vendor/phpseclib/phpseclib/build/code-sniffer-ruleset-tests.xml +11 -0
- vendor/phpseclib/phpseclib/build/code-sniffer-ruleset.xml +39 -0
- vendor/phpseclib/phpseclib/build/sami.conf.php +32 -0
- vendor/phpseclib/phpseclib/phpseclib/Crypt/Base.php +4 -4
- vendor/phpseclib/phpseclib/phpseclib/Crypt/Hash.php +20 -78
- vendor/phpseclib/phpseclib/phpseclib/File/ASN1.php +0 -12
- vendor/phpseclib/phpseclib/phpseclib/File/X509.php +8 -14
- vendor/phpseclib/phpseclib/phpseclib/Math/BigInteger.php +1 -0
- vendor/phpseclib/phpseclib/phpseclib/Net/SFTP.php +1 -11
- vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php +22 -177
- vendor/phpseclib/phpseclib/phpseclib/System/SSH/Agent.php +0 -14
- vendor/phpseclib/phpseclib/phpunit.xml.dist +21 -0
- vendor/phpseclib/phpseclib/tests/Functional/Net/SCPSSH2UserStoryTest.php +88 -0
- vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPLargeFileTest.php +42 -0
- vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPStreamTest.php +48 -0
- vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPTestCase.php +39 -0
- vendor/phpseclib/phpseclib/tests/Functional/Net/SFTPUserStoryTest.php +726 -0
- vendor/phpseclib/phpseclib/tests/Functional/Net/SSH2AgentTest.php +52 -0
- vendor/phpseclib/phpseclib/tests/Functional/Net/SSH2Test.php +172 -0
- vendor/phpseclib/phpseclib/tests/PhpseclibFunctionalTestCase.php +72 -0
- vendor/phpseclib/phpseclib/tests/PhpseclibTestCase.php +104 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/InternalTest.php +14 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/McryptTest.php +14 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/OpenSSLTest.php +14 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/AES/TestCase.php +388 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/BlowfishTest.php +130 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/DESTest.php +77 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/MD5Test.php +47 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA256Test.php +79 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA256_96Test.php +30 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA512Test.php +79 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/SHA512_96Test.php +30 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/Hash/TestCase.php +52 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/RC2Test.php +127 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/RC4Test.php +250 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/RSA/LoadKeyTest.php +422 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/RSA/ModeTest.php +97 -0
- vendor/phpseclib/phpseclib/tests/Unit/Crypt/RandomTest.php +30 -0
@@ -227,7 +227,7 @@ class UpdraftPlus_Admin {
|
|
227 |
if ($this->disk_space_check(1048576*35) === false) add_action('all_admin_notices', array($this, 'show_admin_warning_diskspace'));
|
228 |
}
|
229 |
|
230 |
-
private function setup_all_admin_notices_udonly($service, $override = false) {
|
231 |
global $updraftplus;
|
232 |
|
233 |
if (UpdraftPlus_Options::user_can_manage() && defined('DISABLE_WP_CRON') && DISABLE_WP_CRON && (!defined('UPDRAFTPLUS_DISABLE_WP_CRON_NOTICE') || !UPDRAFTPLUS_DISABLE_WP_CRON_NOTICE)) {
|
@@ -733,9 +733,9 @@ class UpdraftPlus_Admin {
|
|
733 |
wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery'.$min_or_not.'.js', false, $jquery_enqueue_version, false);
|
734 |
wp_enqueue_script('jquery');
|
735 |
// No plupload until 3.3
|
736 |
-
wp_enqueue_script('
|
737 |
} else {
|
738 |
-
wp_enqueue_script('
|
739 |
}
|
740 |
|
741 |
}
|
@@ -787,7 +787,7 @@ class UpdraftPlus_Admin {
|
|
787 |
}
|
788 |
$remote_storage_options_and_templates = UpdraftPlus_Storage_Methods_Interface::get_remote_storage_options_and_templates();
|
789 |
$main_tabs = $this->get_main_tabs_array();
|
790 |
-
wp_localize_script('
|
791 |
'tab' => empty($_GET['tab']) ? 'backups' : $_GET['tab'],
|
792 |
'sendonlyonwarnings' => __('Send a report only when there are warnings/errors', 'updraftplus'),
|
793 |
'wholebackup' => __('When the Email storage method is enabled, also send the backup', 'updraftplus'),
|
@@ -922,7 +922,7 @@ class UpdraftPlus_Admin {
|
|
922 |
'remote_storage_templates' => $remote_storage_options_and_templates['templates'],
|
923 |
'instance_enabled' => __('Currently enabled', 'updraftplus'),
|
924 |
'instance_disabled' => __('Currently disabled', 'updraftplus'),
|
925 |
-
'local_upload_started' => __('Local backup upload has started; please check the
|
926 |
'local_upload_error' => __('You must select at least one remote storage destination to upload this backup set to.', 'updraftplus'),
|
927 |
'already_uploaded' => __('(already uploaded)', 'updraftplus'),
|
928 |
'onedrive_folder_url_warning' => __('Please specify the Microsoft OneDrive folder name, not the URL.', 'updraftplus'),
|
@@ -951,6 +951,8 @@ class UpdraftPlus_Admin {
|
|
951 |
'exclude_prefix_error_msg' => __('Please enter a valid file name prefix', 'updraftplus'),
|
952 |
'duplicate_exclude_rule_error_msg' => __('The exclusion rule which you are trying to add already exists', 'updraftplus'),
|
953 |
'clone_key_required' => __('UpdraftClone key is required.', 'updraftplus'),
|
|
|
|
|
954 |
));
|
955 |
}
|
956 |
|
@@ -2038,9 +2040,16 @@ class UpdraftPlus_Admin {
|
|
2038 |
*/
|
2039 |
public function request_backupnow($request, $close_connection_callable = false) {
|
2040 |
global $updraftplus;
|
2041 |
-
|
2042 |
-
$
|
|
|
2043 |
$event = (!empty($request['backupnow_nofiles'])) ? 'updraft_backupnow_backup_database' : ((!empty($request['backupnow_nodb'])) ? 'updraft_backupnow_backup' : 'updraft_backupnow_backup_all');
|
|
|
|
|
|
|
|
|
|
|
|
|
2044 |
|
2045 |
// The call to backup_time_nonce() allows us to know the nonce in advance, and return it
|
2046 |
$nonce = $updraftplus->backup_time_nonce();
|
@@ -2049,6 +2058,13 @@ class UpdraftPlus_Admin {
|
|
2049 |
'nonce' => $nonce,
|
2050 |
'm' => apply_filters('updraftplus_backupnow_start_message', '<strong>'.__('Start backup', 'updraftplus').':</strong> '.htmlspecialchars(__('OK. You should soon see activity in the "Last log message" field below.', 'updraftplus')), $nonce)
|
2051 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2052 |
|
2053 |
if ($close_connection_callable && is_callable($close_connection_callable)) {
|
2054 |
call_user_func($close_connection_callable, $msg);
|
@@ -2056,6 +2072,8 @@ class UpdraftPlus_Admin {
|
|
2056 |
$updraftplus->close_browser_connection(json_encode($msg));
|
2057 |
}
|
2058 |
|
|
|
|
|
2059 |
$options = array('nocloud' => $backupnow_nocloud, 'use_nonce' => $nonce);
|
2060 |
if (!empty($request['onlythisfileentity']) && is_string($request['onlythisfileentity'])) {
|
2061 |
// Something to see in the 'last log' field when it first appears, before the backup actually starts
|
@@ -2063,9 +2081,12 @@ class UpdraftPlus_Admin {
|
|
2063 |
$options['restrict_files_to_override'] = explode(',', $request['onlythisfileentity']);
|
2064 |
}
|
2065 |
|
2066 |
-
if (
|
2067 |
-
$
|
|
|
2068 |
}
|
|
|
|
|
2069 |
|
2070 |
$options['always_keep'] = empty($request['always_keep']) ? false : true;
|
2071 |
|
@@ -2211,6 +2232,13 @@ class UpdraftPlus_Admin {
|
|
2211 |
return $response;
|
2212 |
}
|
2213 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2214 |
public function upload_dir($uploads) {
|
2215 |
global $updraftplus;
|
2216 |
$updraft_dir = $updraftplus->backups_dir_location();
|
@@ -2224,9 +2252,10 @@ class UpdraftPlus_Admin {
|
|
2224 |
* @param String $dir Directory
|
2225 |
* @param String $name Name
|
2226 |
* @param String $ext File extension
|
|
|
2227 |
* @return String
|
2228 |
*/
|
2229 |
-
public function unique_filename_callback($dir, $name, $ext) {
|
2230 |
return $name.$ext;
|
2231 |
}
|
2232 |
|
@@ -2804,6 +2833,9 @@ class UpdraftPlus_Admin {
|
|
2804 |
);
|
2805 |
}
|
2806 |
|
|
|
|
|
|
|
2807 |
private function print_restore_in_progress_box_if_needed() {
|
2808 |
$restore_in_progress = get_site_option('updraft_restore_in_progress');
|
2809 |
if (empty($restore_in_progress)) return;
|
@@ -3004,42 +3036,9 @@ class UpdraftPlus_Admin {
|
|
3004 |
* @return String
|
3005 |
*/
|
3006 |
public function backupnow_modal_contents() {
|
3007 |
-
return $this->
|
3008 |
}
|
3009 |
|
3010 |
-
private function backup_now_widgetry() {
|
3011 |
-
|
3012 |
-
$ret = '';
|
3013 |
-
|
3014 |
-
$ret .= '<p><input type="checkbox" id="backupnow_includedb" checked="checked"> <label for="backupnow_includedb">'.__("Include the database in the backup", 'updraftplus').'</label> '."\n";
|
3015 |
-
|
3016 |
-
$ret .= '(<a href="'.UpdraftPlus::get_current_clean_url().'" id="backupnow_database_showmoreoptions">...</a>)<br>'."\n";
|
3017 |
-
|
3018 |
-
$ret .= '<div id="backupnow_database_moreoptions" class="updraft-hidden" style="display:none;">'."\n";
|
3019 |
-
|
3020 |
-
$premium_link = apply_filters('updraftplus_com_link', 'https://updraftplus.com/landing/updraftplus-premium');
|
3021 |
-
|
3022 |
-
$free_ret = '<em>'.__('All WordPress tables will be backed up.', 'updraftplus').' <a href="'.$premium_link.'">'. __('With UpdraftPlus Premium, you can choose to backup non-WordPress tables, backup only specified tables, and backup other databases too.', 'updraftplus').'</a></em>'."\n";
|
3023 |
-
|
3024 |
-
$ret .= apply_filters('updraft_backupnow_database_showmoreoptions', $free_ret, '')."\n";
|
3025 |
-
|
3026 |
-
$ret .= '</div>';
|
3027 |
-
|
3028 |
-
$ret .= '</p>';
|
3029 |
-
|
3030 |
-
$ret .= '<p><input type="checkbox" id="backupnow_includefiles" checked="checked"> <label for="backupnow_includefiles">'.__("Include any files in the backup", 'updraftplus').'</label> (<a href="'.UpdraftPlus::get_current_clean_url().'" id="backupnow_includefiles_showmoreoptions">...</a>)<br>';
|
3031 |
-
|
3032 |
-
$ret .= '<div id="backupnow_includefiles_moreoptions" class="updraft-hidden" style="display:none;"><em>'.__('Your saved settings also affect what is backed up - e.g. files excluded.', 'updraftplus').'</em><br>'.$this->files_selector_widgetry('backupnow_files_', false, 'sometimes').'</div></p>';
|
3033 |
-
|
3034 |
-
$ret .= '<span id="backupnow_remote_container">'.$this->backup_now_remote_message().'</span>';
|
3035 |
-
|
3036 |
-
$ret .= '<p><input type="checkbox" id="always_keep"> <label for="always_keep">'.__("Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit).", 'updraftplus').'</label> ';
|
3037 |
-
|
3038 |
-
$ret .= apply_filters('updraft_backupnow_modal_afteroptions', '', '');
|
3039 |
-
|
3040 |
-
return $ret;
|
3041 |
-
}
|
3042 |
-
|
3043 |
/**
|
3044 |
* Also used by the auto-backups add-on
|
3045 |
*
|
@@ -3412,7 +3411,10 @@ class UpdraftPlus_Admin {
|
|
3412 |
|
3413 |
$ret .= $show_inline_info;
|
3414 |
if (!empty($show_inline_info)) $ret .= ' - ';
|
3415 |
-
|
|
|
|
|
|
|
3416 |
if (!$is_oneshot) $ret .=' - <a href="#" data-jobid="'.$job_id.'" title="'.esc_attr(__('Note: the progress bar below is based on stages, NOT time. Do not stop the backup simply because it seems to have remained in the same place for a while - that is normal.', 'updraftplus')).'" class="updraft_jobinfo_delete">'.__('stop', 'updraftplus').'</a>';
|
3417 |
$ret .= '</div>';
|
3418 |
|
@@ -3754,7 +3756,7 @@ class UpdraftPlus_Admin {
|
|
3754 |
}
|
3755 |
}
|
3756 |
|
3757 |
-
public function get_settings_js($method_objects, $really_is_writable, $updraft_dir, $active_service) {
|
3758 |
|
3759 |
global $updraftplus;
|
3760 |
|
@@ -3792,12 +3794,13 @@ class UpdraftPlus_Admin {
|
|
3792 |
}
|
3793 |
|
3794 |
/**
|
3795 |
-
*
|
|
|
|
|
|
|
|
|
3796 |
*
|
3797 |
-
* @
|
3798 |
-
* @param boolean $show_exclusion_options True or False for exclusion options
|
3799 |
-
* @param boolean $include_more $include_more can be (bool) or (string)"sometimes"
|
3800 |
-
* @return string
|
3801 |
*/
|
3802 |
public function files_selector_widgetry($prefix = '', $show_exclusion_options = true, $include_more = true) {
|
3803 |
|
@@ -3931,18 +3934,20 @@ class UpdraftPlus_Admin {
|
|
3931 |
/**
|
3932 |
* Get backup information in HTML format for a specific backup
|
3933 |
*
|
3934 |
-
* @param
|
3935 |
-
* @param
|
3936 |
-
* @param
|
|
|
|
|
3937 |
* @return string HTML-formatted backup information
|
3938 |
*/
|
3939 |
-
public function raw_backup_info($backup_history, $key, $nonce) {
|
3940 |
|
3941 |
global $updraftplus;
|
3942 |
|
3943 |
$backup = $backup_history[$key];
|
3944 |
|
3945 |
-
$only_remote_sent =
|
3946 |
|
3947 |
$pretty_date = get_date_from_gmt(gmdate('Y-m-d H:i:s', (int) $key), 'M d, Y G:i');
|
3948 |
|
@@ -3950,11 +3955,7 @@ class UpdraftPlus_Admin {
|
|
3950 |
|
3951 |
if (!empty($backup['label'])) $rawbackup .= '<span class="raw-backup-info">'.$backup['label'].'</span>';
|
3952 |
|
3953 |
-
if (
|
3954 |
-
$jd = $updraftplus->jobdata_getarray($nonce);
|
3955 |
-
} else {
|
3956 |
-
$jd = array();
|
3957 |
-
}
|
3958 |
|
3959 |
if (!$only_remote_sent) {
|
3960 |
$rawbackup .= '<hr>';
|
@@ -3970,13 +3971,13 @@ class UpdraftPlus_Admin {
|
|
3970 |
foreach ($backupable_entities as $type => $info) {
|
3971 |
if (!isset($backup[$type])) continue;
|
3972 |
|
3973 |
-
$rawbackup .= $updraftplus->printfile($info['description'], $backup, $type, $checksums, $
|
3974 |
}
|
3975 |
|
3976 |
$total_size = 0;
|
3977 |
foreach ($backup as $ekey => $files) {
|
3978 |
if ('db' == strtolower(substr($ekey, 0, 2)) && '-size' != substr($ekey, -5, 5)) {
|
3979 |
-
$rawbackup .= $updraftplus->printfile(__('Database', 'updraftplus'), $backup, $ekey, $checksums, $
|
3980 |
}
|
3981 |
if (!isset($backupable_entities[$ekey]) && ('db' != substr($ekey, 0, 2) || '-size' == substr($ekey, -5, 5))) continue;
|
3982 |
if (is_string($files)) $files = array($files);
|
@@ -4011,8 +4012,8 @@ class UpdraftPlus_Admin {
|
|
4011 |
|
4012 |
$rawbackup .= '</p><hr><p><pre>'.print_r($backup, true).'</p></pre>';
|
4013 |
|
4014 |
-
if (!empty($
|
4015 |
-
$rawbackup .= '<p><pre>'.print_r($
|
4016 |
}
|
4017 |
|
4018 |
return esc_attr($rawbackup);
|
@@ -4145,7 +4146,7 @@ class UpdraftPlus_Admin {
|
|
4145 |
return $ret;
|
4146 |
}
|
4147 |
|
4148 |
-
public function download_button($type, $backup_timestamp, $findex, $info, $title, $pdescrip, $esc_pretty_date, $set_contents) {
|
4149 |
|
4150 |
$ret = '';
|
4151 |
|
@@ -4176,17 +4177,18 @@ class UpdraftPlus_Admin {
|
|
4176 |
/**
|
4177 |
* Get HTML for the 'Upload' button for a particular backup in the 'Existing Backups' tab
|
4178 |
*
|
4179 |
-
* @param Integer
|
4180 |
-
* @param String
|
4181 |
-
* @param Array
|
|
|
4182 |
*
|
4183 |
* @return String - the resulting HTML
|
4184 |
*/
|
4185 |
-
public function upload_button($backup_time, $nonce, $backup) {
|
4186 |
global $updraftplus;
|
4187 |
|
4188 |
// Check the job is not still running.
|
4189 |
-
$jobdata = $updraftplus->jobdata_getarray($nonce);
|
4190 |
|
4191 |
if (!empty($jobdata) && 'finished' != $jobdata['jobstatus']) return '';
|
4192 |
|
@@ -4365,7 +4367,7 @@ ENDHERE;
|
|
4365 |
*
|
4366 |
* @return string - the new filename or the original if the blog name from the job data is not set
|
4367 |
*/
|
4368 |
-
public function upload_local_backup_name($backup_name, $use_time, $blog_name) {
|
4369 |
global $updraftplus;
|
4370 |
|
4371 |
$backup_blog_name = $updraftplus->jobdata_get('blog_name', '');
|
@@ -4662,22 +4664,22 @@ ENDHERE;
|
|
4662 |
|
4663 |
}
|
4664 |
|
4665 |
-
public function option_filter_template($val) {
|
4666 |
global $updraftplus;
|
4667 |
return $updraftplus->option_filter_get('template');
|
4668 |
}
|
4669 |
|
4670 |
-
public function option_filter_stylesheet($val) {
|
4671 |
global $updraftplus;
|
4672 |
return $updraftplus->option_filter_get('stylesheet');
|
4673 |
}
|
4674 |
|
4675 |
-
public function option_filter_template_root($val) {
|
4676 |
global $updraftplus;
|
4677 |
return $updraftplus->option_filter_get('template_root');
|
4678 |
}
|
4679 |
|
4680 |
-
public function option_filter_stylesheet_root($val) {
|
4681 |
global $updraftplus;
|
4682 |
return $updraftplus->option_filter_get('stylesheet_root');
|
4683 |
}
|
227 |
if ($this->disk_space_check(1048576*35) === false) add_action('all_admin_notices', array($this, 'show_admin_warning_diskspace'));
|
228 |
}
|
229 |
|
230 |
+
private function setup_all_admin_notices_udonly($service, $override = false) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
231 |
global $updraftplus;
|
232 |
|
233 |
if (UpdraftPlus_Options::user_can_manage() && defined('DISABLE_WP_CRON') && DISABLE_WP_CRON && (!defined('UPDRAFTPLUS_DISABLE_WP_CRON_NOTICE') || !UPDRAFTPLUS_DISABLE_WP_CRON_NOTICE)) {
|
733 |
wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery'.$min_or_not.'.js', false, $jquery_enqueue_version, false);
|
734 |
wp_enqueue_script('jquery');
|
735 |
// No plupload until 3.3
|
736 |
+
wp_enqueue_script('updraft-admin-common', UPDRAFTPLUS_URL.'/includes/updraft-admin-common'.$min_or_not.'.js', array('jquery', 'jquery-ui-dialog', 'jquery-ui-core', 'jquery-ui-accordion'), $enqueue_version, true);
|
737 |
} else {
|
738 |
+
wp_enqueue_script('updraft-admin-common', UPDRAFTPLUS_URL.'/includes/updraft-admin-common'.$min_or_not.'.js', array('jquery', 'jquery-ui-dialog', 'jquery-ui-core', 'jquery-ui-accordion', 'plupload-all'), $enqueue_version);
|
739 |
}
|
740 |
|
741 |
}
|
787 |
}
|
788 |
$remote_storage_options_and_templates = UpdraftPlus_Storage_Methods_Interface::get_remote_storage_options_and_templates();
|
789 |
$main_tabs = $this->get_main_tabs_array();
|
790 |
+
wp_localize_script('updraft-admin-common', 'updraftlion', array(
|
791 |
'tab' => empty($_GET['tab']) ? 'backups' : $_GET['tab'],
|
792 |
'sendonlyonwarnings' => __('Send a report only when there are warnings/errors', 'updraftplus'),
|
793 |
'wholebackup' => __('When the Email storage method is enabled, also send the backup', 'updraftplus'),
|
922 |
'remote_storage_templates' => $remote_storage_options_and_templates['templates'],
|
923 |
'instance_enabled' => __('Currently enabled', 'updraftplus'),
|
924 |
'instance_disabled' => __('Currently disabled', 'updraftplus'),
|
925 |
+
'local_upload_started' => __('Local backup upload has started; please check the log file to see the upload progress', 'updraftplus'),
|
926 |
'local_upload_error' => __('You must select at least one remote storage destination to upload this backup set to.', 'updraftplus'),
|
927 |
'already_uploaded' => __('(already uploaded)', 'updraftplus'),
|
928 |
'onedrive_folder_url_warning' => __('Please specify the Microsoft OneDrive folder name, not the URL.', 'updraftplus'),
|
951 |
'exclude_prefix_error_msg' => __('Please enter a valid file name prefix', 'updraftplus'),
|
952 |
'duplicate_exclude_rule_error_msg' => __('The exclusion rule which you are trying to add already exists', 'updraftplus'),
|
953 |
'clone_key_required' => __('UpdraftClone key is required.', 'updraftplus'),
|
954 |
+
'files_new_backup' => __('Include your files in the backup', 'updraftplus'),
|
955 |
+
'files_incremental_backup' => __('File backup options', 'updraftplus'),
|
956 |
));
|
957 |
}
|
958 |
|
2040 |
*/
|
2041 |
public function request_backupnow($request, $close_connection_callable = false) {
|
2042 |
global $updraftplus;
|
2043 |
+
|
2044 |
+
$abort = false;
|
2045 |
+
$backupnow_nocloud = !empty($request['backupnow_nocloud']);
|
2046 |
$event = (!empty($request['backupnow_nofiles'])) ? 'updraft_backupnow_backup_database' : ((!empty($request['backupnow_nodb'])) ? 'updraft_backupnow_backup' : 'updraft_backupnow_backup_all');
|
2047 |
+
|
2048 |
+
$request['incremental'] = !empty($request['incremental']);
|
2049 |
+
|
2050 |
+
$entities = !empty($request['onlythisfileentity']) ? explode(',', $request['onlythisfileentity']) : array();
|
2051 |
+
|
2052 |
+
$incremental = $request['incremental'] ? apply_filters('updraftplus_prepare_incremental_run', false, $entities) : false;
|
2053 |
|
2054 |
// The call to backup_time_nonce() allows us to know the nonce in advance, and return it
|
2055 |
$nonce = $updraftplus->backup_time_nonce();
|
2058 |
'nonce' => $nonce,
|
2059 |
'm' => apply_filters('updraftplus_backupnow_start_message', '<strong>'.__('Start backup', 'updraftplus').':</strong> '.htmlspecialchars(__('OK. You should soon see activity in the "Last log message" field below.', 'updraftplus')), $nonce)
|
2060 |
);
|
2061 |
+
|
2062 |
+
if (!empty($request['incremental']) && !$incremental) {
|
2063 |
+
$msg = array(
|
2064 |
+
'error' => __('No suitable backup set (that already contains a full backup of all the requested file component types) was found, to add increments to. Aborting this backup.', 'updaftplus')
|
2065 |
+
);
|
2066 |
+
$abort = true;
|
2067 |
+
}
|
2068 |
|
2069 |
if ($close_connection_callable && is_callable($close_connection_callable)) {
|
2070 |
call_user_func($close_connection_callable, $msg);
|
2072 |
$updraftplus->close_browser_connection(json_encode($msg));
|
2073 |
}
|
2074 |
|
2075 |
+
if ($abort) die;
|
2076 |
+
|
2077 |
$options = array('nocloud' => $backupnow_nocloud, 'use_nonce' => $nonce);
|
2078 |
if (!empty($request['onlythisfileentity']) && is_string($request['onlythisfileentity'])) {
|
2079 |
// Something to see in the 'last log' field when it first appears, before the backup actually starts
|
2081 |
$options['restrict_files_to_override'] = explode(',', $request['onlythisfileentity']);
|
2082 |
}
|
2083 |
|
2084 |
+
if ($request['incremental'] && !$incremental) {
|
2085 |
+
$updraftplus->log('An incremental backup was requested but no suitable backup found to add increments to; will proceed with a new backup');
|
2086 |
+
$request['incremental'] = false;
|
2087 |
}
|
2088 |
+
|
2089 |
+
if (!empty($request['extradata'])) $options['extradata'] = $request['extradata'];
|
2090 |
|
2091 |
$options['always_keep'] = empty($request['always_keep']) ? false : true;
|
2092 |
|
2232 |
return $response;
|
2233 |
}
|
2234 |
|
2235 |
+
/**
|
2236 |
+
* Used with the WP filter upload_dir to adjust where uploads go to when uploading a backup
|
2237 |
+
*
|
2238 |
+
* @param Array $uploads - pre-filter array
|
2239 |
+
*
|
2240 |
+
* @return Array - filtered array
|
2241 |
+
*/
|
2242 |
public function upload_dir($uploads) {
|
2243 |
global $updraftplus;
|
2244 |
$updraft_dir = $updraftplus->backups_dir_location();
|
2252 |
* @param String $dir Directory
|
2253 |
* @param String $name Name
|
2254 |
* @param String $ext File extension
|
2255 |
+
*
|
2256 |
* @return String
|
2257 |
*/
|
2258 |
+
public function unique_filename_callback($dir, $name, $ext) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
2259 |
return $name.$ext;
|
2260 |
}
|
2261 |
|
2833 |
);
|
2834 |
}
|
2835 |
|
2836 |
+
/**
|
2837 |
+
* Potentially register an action for showing restore progress
|
2838 |
+
*/
|
2839 |
private function print_restore_in_progress_box_if_needed() {
|
2840 |
$restore_in_progress = get_site_option('updraft_restore_in_progress');
|
2841 |
if (empty($restore_in_progress)) return;
|
3036 |
* @return String
|
3037 |
*/
|
3038 |
public function backupnow_modal_contents() {
|
3039 |
+
return $this->include_template('wp-admin/settings/backupnow-modal.php', true);
|
3040 |
}
|
3041 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3042 |
/**
|
3043 |
* Also used by the auto-backups add-on
|
3044 |
*
|
3411 |
|
3412 |
$ret .= $show_inline_info;
|
3413 |
if (!empty($show_inline_info)) $ret .= ' - ';
|
3414 |
+
|
3415 |
+
$file_nonce = empty($jobdata['file_nonce']) ? $job_id : $jobdata['file_nonce'];
|
3416 |
+
|
3417 |
+
$ret .= '<a data-fileid="'.$file_nonce.'" data-jobid="'.$job_id.'" href="'.UpdraftPlus_Options::admin_page_url().'?page=updraftplus&action=downloadlog&updraftplus_backup_nonce='.$file_nonce.'" class="updraft-log-link">'.__('show log', 'updraftplus').'</a>';
|
3418 |
if (!$is_oneshot) $ret .=' - <a href="#" data-jobid="'.$job_id.'" title="'.esc_attr(__('Note: the progress bar below is based on stages, NOT time. Do not stop the backup simply because it seems to have remained in the same place for a while - that is normal.', 'updraftplus')).'" class="updraft_jobinfo_delete">'.__('stop', 'updraftplus').'</a>';
|
3419 |
$ret .= '</div>';
|
3420 |
|
3756 |
}
|
3757 |
}
|
3758 |
|
3759 |
+
public function get_settings_js($method_objects, $really_is_writable, $updraft_dir, $active_service) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
3760 |
|
3761 |
global $updraftplus;
|
3762 |
|
3794 |
}
|
3795 |
|
3796 |
/**
|
3797 |
+
* Return the HTML for the files selector widget
|
3798 |
+
*
|
3799 |
+
* @param String $prefix Prefix for the ID
|
3800 |
+
* @param Boolean $show_exclusion_options True or False for exclusion options
|
3801 |
+
* @param Boolean|String $include_more $include_more can be (bool) or (string)"sometimes"
|
3802 |
*
|
3803 |
+
* @return String
|
|
|
|
|
|
|
3804 |
*/
|
3805 |
public function files_selector_widgetry($prefix = '', $show_exclusion_options = true, $include_more = true) {
|
3806 |
|
3934 |
/**
|
3935 |
* Get backup information in HTML format for a specific backup
|
3936 |
*
|
3937 |
+
* @param Array $backup_history all backups history
|
3938 |
+
* @param String $key backup timestamp
|
3939 |
+
* @param String $nonce backup nonce (job ID)
|
3940 |
+
* @param Array|Null $job_data if an array, then use this as the job data (if null, then it will be fetched directly)
|
3941 |
+
*
|
3942 |
* @return string HTML-formatted backup information
|
3943 |
*/
|
3944 |
+
public function raw_backup_info($backup_history, $key, $nonce, $job_data = null) {
|
3945 |
|
3946 |
global $updraftplus;
|
3947 |
|
3948 |
$backup = $backup_history[$key];
|
3949 |
|
3950 |
+
$only_remote_sent = !empty($backup['service']) && (array('remotesend') === $backup['service'] || 'remotesend' === $backup['service']);
|
3951 |
|
3952 |
$pretty_date = get_date_from_gmt(gmdate('Y-m-d H:i:s', (int) $key), 'M d, Y G:i');
|
3953 |
|
3955 |
|
3956 |
if (!empty($backup['label'])) $rawbackup .= '<span class="raw-backup-info">'.$backup['label'].'</span>';
|
3957 |
|
3958 |
+
if (null === $job_data) $job_data = empty($nonce) ? array() : $updraftplus->jobdata_getarray($nonce);
|
|
|
|
|
|
|
|
|
3959 |
|
3960 |
if (!$only_remote_sent) {
|
3961 |
$rawbackup .= '<hr>';
|
3971 |
foreach ($backupable_entities as $type => $info) {
|
3972 |
if (!isset($backup[$type])) continue;
|
3973 |
|
3974 |
+
$rawbackup .= $updraftplus->printfile($info['description'], $backup, $type, $checksums, $job_data, true);
|
3975 |
}
|
3976 |
|
3977 |
$total_size = 0;
|
3978 |
foreach ($backup as $ekey => $files) {
|
3979 |
if ('db' == strtolower(substr($ekey, 0, 2)) && '-size' != substr($ekey, -5, 5)) {
|
3980 |
+
$rawbackup .= $updraftplus->printfile(__('Database', 'updraftplus'), $backup, $ekey, $checksums, $job_data, true);
|
3981 |
}
|
3982 |
if (!isset($backupable_entities[$ekey]) && ('db' != substr($ekey, 0, 2) || '-size' == substr($ekey, -5, 5))) continue;
|
3983 |
if (is_string($files)) $files = array($files);
|
4012 |
|
4013 |
$rawbackup .= '</p><hr><p><pre>'.print_r($backup, true).'</p></pre>';
|
4014 |
|
4015 |
+
if (!empty($job_data) && is_array($job_data)) {
|
4016 |
+
$rawbackup .= '<p><pre>'.htmlspecialchars(print_r($job_data, true)).'</pre></p>';
|
4017 |
}
|
4018 |
|
4019 |
return esc_attr($rawbackup);
|
4146 |
return $ret;
|
4147 |
}
|
4148 |
|
4149 |
+
public function download_button($type, $backup_timestamp, $findex, $info, $title, $pdescrip, $esc_pretty_date, $set_contents) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4150 |
|
4151 |
$ret = '';
|
4152 |
|
4177 |
/**
|
4178 |
* Get HTML for the 'Upload' button for a particular backup in the 'Existing Backups' tab
|
4179 |
*
|
4180 |
+
* @param Integer $backup_time - backup timestamp (epoch time)
|
4181 |
+
* @param String $nonce - backup nonce
|
4182 |
+
* @param Array $backup - backup information array
|
4183 |
+
* @param Null|Array $jobdata - if not null, then use as the job data instead of fetching
|
4184 |
*
|
4185 |
* @return String - the resulting HTML
|
4186 |
*/
|
4187 |
+
public function upload_button($backup_time, $nonce, $backup, $jobdata = null) {
|
4188 |
global $updraftplus;
|
4189 |
|
4190 |
// Check the job is not still running.
|
4191 |
+
if (null === $jobdata) $jobdata = $updraftplus->jobdata_getarray($nonce);
|
4192 |
|
4193 |
if (!empty($jobdata) && 'finished' != $jobdata['jobstatus']) return '';
|
4194 |
|
4367 |
*
|
4368 |
* @return string - the new filename or the original if the blog name from the job data is not set
|
4369 |
*/
|
4370 |
+
public function upload_local_backup_name($backup_name, $use_time, $blog_name) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4371 |
global $updraftplus;
|
4372 |
|
4373 |
$backup_blog_name = $updraftplus->jobdata_get('blog_name', '');
|
4664 |
|
4665 |
}
|
4666 |
|
4667 |
+
public function option_filter_template($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4668 |
global $updraftplus;
|
4669 |
return $updraftplus->option_filter_get('template');
|
4670 |
}
|
4671 |
|
4672 |
+
public function option_filter_stylesheet($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4673 |
global $updraftplus;
|
4674 |
return $updraftplus->option_filter_get('stylesheet');
|
4675 |
}
|
4676 |
|
4677 |
+
public function option_filter_template_root($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4678 |
global $updraftplus;
|
4679 |
return $updraftplus->option_filter_get('template_root');
|
4680 |
}
|
4681 |
|
4682 |
+
public function option_filter_stylesheet_root($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4683 |
global $updraftplus;
|
4684 |
return $updraftplus->option_filter_get('stylesheet_root');
|
4685 |
}
|
@@ -654,7 +654,7 @@ class UpdraftPlus_Backup {
|
|
654 |
|
655 |
if (empty($database_backups_found[$key])) $database_backups_found[$key] = 0;
|
656 |
|
657 |
-
if ($nonce == $updraftplus->nonce) {
|
658 |
$this->log_with_db_occasionally("This backup set is the backup set just made, so will not be deleted.");
|
659 |
$database_backups_found[$key]++;
|
660 |
continue;
|
@@ -741,7 +741,7 @@ class UpdraftPlus_Backup {
|
|
741 |
$database_backups_found[$key]++;
|
742 |
}
|
743 |
|
744 |
-
$backup_to_examine = $this->remove_backup_set_if_empty($backup_to_examine, $
|
745 |
if (empty($backup_to_examine)) {
|
746 |
unset($functional_backup_history[$backup_datestamp]);
|
747 |
unset($backup_history[$backup_datestamp]);
|
@@ -801,7 +801,7 @@ class UpdraftPlus_Backup {
|
|
801 |
if (!empty($backup_to_examine[$entity])) {
|
802 |
|
803 |
// This should only be able to happen if you import backups with a future timestamp
|
804 |
-
if ($nonce == $updraftplus->nonce) {
|
805 |
$updraftplus->log("This backup set is the backup set just made, so will not be deleted.");
|
806 |
$file_entities_backups_found[$entity]++;
|
807 |
continue;
|
@@ -895,7 +895,7 @@ class UpdraftPlus_Backup {
|
|
895 |
}
|
896 |
}
|
897 |
|
898 |
-
$backup_to_examine = $this->remove_backup_set_if_empty($backup_to_examine, $
|
899 |
if (empty($backup_to_examine)) {
|
900 |
// unset($functional_backup_history[$backup_datestamp]);
|
901 |
unset($backup_history[$backup_datestamp]);
|
@@ -937,7 +937,7 @@ class UpdraftPlus_Backup {
|
|
937 |
}
|
938 |
}
|
939 |
|
940 |
-
private function remove_backup_set_if_empty($backup_to_examine, $
|
941 |
|
942 |
global $updraftplus;
|
943 |
|
@@ -973,7 +973,6 @@ class UpdraftPlus_Backup {
|
|
973 |
} else {
|
974 |
$updraftplus->log("No nonce record found in the backup set, so cannot delete any remaining log file");
|
975 |
}
|
976 |
-
// unset($backup_history[$backup_datestamp]);
|
977 |
return false;
|
978 |
} else {
|
979 |
$updraftplus->log("This backup set remains non-empty (f=$contains_files/d=$contains_db); will retain in history");
|
@@ -1321,7 +1320,7 @@ class UpdraftPlus_Backup {
|
|
1321 |
|
1322 |
if (!$updraftplus->backup_time) $updraftplus->backup_time_nonce();
|
1323 |
|
1324 |
-
$use_time =
|
1325 |
$backup_file_basename = $this->get_backup_file_basename_from_time($use_time);
|
1326 |
|
1327 |
$backup_array = array();
|
@@ -1611,7 +1610,7 @@ class UpdraftPlus_Backup {
|
|
1611 |
|
1612 |
$errors = 0;
|
1613 |
|
1614 |
-
$use_time = apply_filters('
|
1615 |
$file_base = $this->get_backup_file_basename_from_time($use_time);
|
1616 |
$backup_file_base = $this->updraft_dir.'/'.$file_base;
|
1617 |
|
654 |
|
655 |
if (empty($database_backups_found[$key])) $database_backups_found[$key] = 0;
|
656 |
|
657 |
+
if ($nonce == $updraftplus->nonce || $nonce == $updraftplus->file_nonce) {
|
658 |
$this->log_with_db_occasionally("This backup set is the backup set just made, so will not be deleted.");
|
659 |
$database_backups_found[$key]++;
|
660 |
continue;
|
741 |
$database_backups_found[$key]++;
|
742 |
}
|
743 |
|
744 |
+
$backup_to_examine = $this->remove_backup_set_if_empty($backup_to_examine, $backupable_entities);
|
745 |
if (empty($backup_to_examine)) {
|
746 |
unset($functional_backup_history[$backup_datestamp]);
|
747 |
unset($backup_history[$backup_datestamp]);
|
801 |
if (!empty($backup_to_examine[$entity])) {
|
802 |
|
803 |
// This should only be able to happen if you import backups with a future timestamp
|
804 |
+
if ($nonce == $updraftplus->nonce || $nonce == $updraftplus->file_nonce) {
|
805 |
$updraftplus->log("This backup set is the backup set just made, so will not be deleted.");
|
806 |
$file_entities_backups_found[$entity]++;
|
807 |
continue;
|
895 |
}
|
896 |
}
|
897 |
|
898 |
+
$backup_to_examine = $this->remove_backup_set_if_empty($backup_to_examine, $backupable_entities);
|
899 |
if (empty($backup_to_examine)) {
|
900 |
// unset($functional_backup_history[$backup_datestamp]);
|
901 |
unset($backup_history[$backup_datestamp]);
|
937 |
}
|
938 |
}
|
939 |
|
940 |
+
private function remove_backup_set_if_empty($backup_to_examine, $backupable_entities) {
|
941 |
|
942 |
global $updraftplus;
|
943 |
|
973 |
} else {
|
974 |
$updraftplus->log("No nonce record found in the backup set, so cannot delete any remaining log file");
|
975 |
}
|
|
|
976 |
return false;
|
977 |
} else {
|
978 |
$updraftplus->log("This backup set remains non-empty (f=$contains_files/d=$contains_db); will retain in history");
|
1320 |
|
1321 |
if (!$updraftplus->backup_time) $updraftplus->backup_time_nonce();
|
1322 |
|
1323 |
+
$use_time = $updraftplus->backup_time;
|
1324 |
$backup_file_basename = $this->get_backup_file_basename_from_time($use_time);
|
1325 |
|
1326 |
$backup_array = array();
|
1610 |
|
1611 |
$errors = 0;
|
1612 |
|
1613 |
+
$use_time = apply_filters('updraftplus_base_backup_timestamp', $updraftplus->backup_time);
|
1614 |
$file_base = $this->get_backup_file_basename_from_time($use_time);
|
1615 |
$backup_file_base = $this->updraft_dir.'/'.$file_base;
|
1616 |
|
@@ -173,7 +173,7 @@ class UpdraftPlus_UpdraftCentral_Main {
|
|
173 |
* @param array $params which have action, subaction and nonce
|
174 |
* @return array which contains log_contents. If error, Returns array which contains fatal_error flag and fatal_error_message
|
175 |
*/
|
176 |
-
public function get_log($params) {
|
177 |
|
178 |
$udrpc_log = get_site_option('updraftcentral_client_log');
|
179 |
if (!is_array($udrpc_log)) $udrpc_log = array();
|
173 |
* @param array $params which have action, subaction and nonce
|
174 |
* @return array which contains log_contents. If error, Returns array which contains fatal_error flag and fatal_error_message
|
175 |
*/
|
176 |
+
public function get_log($params) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
177 |
|
178 |
$udrpc_log = get_site_option('updraftcentral_client_log');
|
179 |
if (!is_array($udrpc_log)) $udrpc_log = array();
|
@@ -167,7 +167,7 @@ class UpdraftPlus_UpdraftCentral_Listener {
|
|
167 |
// This can be used to detect an UpdraftCentral context
|
168 |
if (!defined('UPDRAFTCENTRAL_COMMAND')) define('UPDRAFTCENTRAL_COMMAND', $command);
|
169 |
|
170 |
-
$this->initialise_listener_error_handling(
|
171 |
|
172 |
$command_info = apply_filters('updraftcentral_get_command_info', false, $command);
|
173 |
if (!$command_info) return $response;
|
@@ -215,7 +215,7 @@ class UpdraftPlus_UpdraftCentral_Listener {
|
|
215 |
return $this->current_udrpc;
|
216 |
}
|
217 |
|
218 |
-
private function initialise_listener_error_handling(
|
219 |
$this->ud->error_reporting_stop_when_logged = true;
|
220 |
set_error_handler(array($this->ud, 'php_error'), E_ALL & ~E_STRICT);
|
221 |
$this->php_events = array();
|
@@ -224,7 +224,7 @@ class UpdraftPlus_UpdraftCentral_Listener {
|
|
224 |
if (!UpdraftPlus_Options::get_updraft_option('updraft_debug_mode')) return;
|
225 |
}
|
226 |
|
227 |
-
public function updraftplus_logline($line, $nonce, $level, $uniq_id) {
|
228 |
if ('notice' === $level && 'php_event' === $uniq_id) {
|
229 |
$this->php_events[] = $line;
|
230 |
}
|
167 |
// This can be used to detect an UpdraftCentral context
|
168 |
if (!defined('UPDRAFTCENTRAL_COMMAND')) define('UPDRAFTCENTRAL_COMMAND', $command);
|
169 |
|
170 |
+
$this->initialise_listener_error_handling();
|
171 |
|
172 |
$command_info = apply_filters('updraftcentral_get_command_info', false, $command);
|
173 |
if (!$command_info) return $response;
|
215 |
return $this->current_udrpc;
|
216 |
}
|
217 |
|
218 |
+
private function initialise_listener_error_handling() {
|
219 |
$this->ud->error_reporting_stop_when_logged = true;
|
220 |
set_error_handler(array($this->ud, 'php_error'), E_ALL & ~E_STRICT);
|
221 |
$this->php_events = array();
|
224 |
if (!UpdraftPlus_Options::get_updraft_option('updraft_debug_mode')) return;
|
225 |
}
|
226 |
|
227 |
+
public function updraftplus_logline($line, $nonce, $level, $uniq_id) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
228 |
if ('notice' === $level && 'php_event' === $uniq_id) {
|
229 |
$this->php_events[] = $line;
|
230 |
}
|
@@ -19,7 +19,7 @@ class UpdraftCentral_Plugin_Commands extends UpdraftCentral_Commands {
|
|
19 |
*
|
20 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
21 |
*/
|
22 |
-
public function _pre_action($command, $data, $extra_info) {
|
23 |
// Here we assign the current blog_id to a variable $blog_id
|
24 |
$blog_id = get_current_blog_id();
|
25 |
if (!empty($data['site_id'])) $blog_id = $data['site_id'];
|
@@ -38,7 +38,7 @@ class UpdraftCentral_Plugin_Commands extends UpdraftCentral_Commands {
|
|
38 |
*
|
39 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
40 |
*/
|
41 |
-
public function _post_action($command, $data, $extra_info) {
|
42 |
// Here, we're restoring to the current (default) blog before we switched
|
43 |
if ($this->switched) restore_current_blog();
|
44 |
}
|
19 |
*
|
20 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
21 |
*/
|
22 |
+
public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
23 |
// Here we assign the current blog_id to a variable $blog_id
|
24 |
$blog_id = get_current_blog_id();
|
25 |
if (!empty($data['site_id'])) $blog_id = $data['site_id'];
|
38 |
*
|
39 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
40 |
*/
|
41 |
+
public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
42 |
// Here, we're restoring to the current (default) blog before we switched
|
43 |
if ($this->switched) restore_current_blog();
|
44 |
}
|
@@ -18,7 +18,7 @@ class UpdraftCentral_Posts_Commands extends UpdraftCentral_Commands {
|
|
18 |
*
|
19 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
20 |
*/
|
21 |
-
public function _pre_action($command, $data, $extra_info) {
|
22 |
// Here we assign the current blog_id to a variable $blog_id
|
23 |
$blog_id = get_current_blog_id();
|
24 |
if (!empty($data['site_id'])) $blog_id = $data['site_id'];
|
@@ -37,7 +37,7 @@ class UpdraftCentral_Posts_Commands extends UpdraftCentral_Commands {
|
|
37 |
*
|
38 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
39 |
*/
|
40 |
-
public function _post_action($command, $data, $extra_info) {
|
41 |
// Here, we're restoring to the current (default) blog before we switched
|
42 |
if ($this->switched) restore_current_blog();
|
43 |
}
|
18 |
*
|
19 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
20 |
*/
|
21 |
+
public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
22 |
// Here we assign the current blog_id to a variable $blog_id
|
23 |
$blog_id = get_current_blog_id();
|
24 |
if (!empty($data['site_id'])) $blog_id = $data['site_id'];
|
37 |
*
|
38 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
39 |
*/
|
40 |
+
public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
41 |
// Here, we're restoring to the current (default) blog before we switched
|
42 |
if ($this->switched) restore_current_blog();
|
43 |
}
|
@@ -19,7 +19,7 @@ class UpdraftCentral_Theme_Commands extends UpdraftCentral_Commands {
|
|
19 |
*
|
20 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
21 |
*/
|
22 |
-
public function _pre_action($command, $data, $extra_info) {
|
23 |
// Here we assign the current blog_id to a variable $blog_id
|
24 |
$blog_id = get_current_blog_id();
|
25 |
if (!empty($data['site_id'])) $blog_id = $data['site_id'];
|
@@ -38,7 +38,7 @@ class UpdraftCentral_Theme_Commands extends UpdraftCentral_Commands {
|
|
38 |
*
|
39 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
40 |
*/
|
41 |
-
public function _post_action($command, $data, $extra_info) {
|
42 |
// Here, we're restoring to the current (default) blog before we switched
|
43 |
if ($this->switched) restore_current_blog();
|
44 |
}
|
19 |
*
|
20 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
21 |
*/
|
22 |
+
public function _pre_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
23 |
// Here we assign the current blog_id to a variable $blog_id
|
24 |
$blog_id = get_current_blog_id();
|
25 |
if (!empty($data['site_id'])) $blog_id = $data['site_id'];
|
38 |
*
|
39 |
* link to udrpc_action main function in class UpdraftPlus_UpdraftCentral_Listener
|
40 |
*/
|
41 |
+
public function _post_action($command, $data, $extra_info) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
42 |
// Here, we're restoring to the current (default) blog before we switched
|
43 |
if ($this->switched) restore_current_blog();
|
44 |
}
|
@@ -171,7 +171,7 @@ class UpdraftPlus {
|
|
171 |
*
|
172 |
* @return String - filtered value
|
173 |
*/
|
174 |
-
public function upgrader_source_selection($source, $remote_source, $upgrader_object, $hook_extra = array()) {
|
175 |
|
176 |
static $been_here_already = false;
|
177 |
|
@@ -198,7 +198,7 @@ class UpdraftPlus {
|
|
198 |
*
|
199 |
* @return Boolean - filtered value
|
200 |
*/
|
201 |
-
public function itsec_scheduled_external_backup($x) {
|
202 |
return wp_next_scheduled('updraft_backup') ? true : false;
|
203 |
}
|
204 |
|
@@ -209,7 +209,7 @@ class UpdraftPlus {
|
|
209 |
*
|
210 |
* @return String - filtered value
|
211 |
*/
|
212 |
-
public function itsec_external_backup_link($x) {
|
213 |
return UpdraftPlus_Options::admin_page_url().'?page=updraftplus';
|
214 |
}
|
215 |
|
@@ -1911,15 +1911,16 @@ class UpdraftPlus {
|
|
1911 |
$label = $this->jobdata_get('label');
|
1912 |
if ($label) $resumption_extralog = ", label=$label";
|
1913 |
} else {
|
1914 |
-
$this->file_nonce = apply_filters('updraftplus_incremental_backup_file_nonce', $bnonce);
|
1915 |
$this->nonce = $bnonce;
|
|
|
|
|
1916 |
$this->backup_time = $this->jobdata_get('backup_time');
|
1917 |
$this->job_time_ms = $this->jobdata_get('job_time_ms');
|
1918 |
|
1919 |
// Get the warnings before opening the log file, as opening the log file may generate new ones (which then leads to $this->errors having duplicate entries when they are copied over below)
|
1920 |
$warnings = $this->jobdata_get('warnings');
|
1921 |
|
1922 |
-
$this->logfile_open($
|
1923 |
|
1924 |
// Import existing warnings. The purpose of this is so that when save_backup_to_history() is called, it has a complete set - because job data expires quickly, whilst the warnings of the last backup run need to persist
|
1925 |
if (is_array($warnings)) {
|
@@ -1998,7 +1999,7 @@ class UpdraftPlus {
|
|
1998 |
|
1999 |
$time_ago = time()-$btime;
|
2000 |
|
2001 |
-
$this->log("Backup run: resumption=$resumption_no, nonce=$bnonce, begun at=$btime (${time_ago}s ago), job type=$job_type".$resumption_extralog);
|
2002 |
|
2003 |
// This works round a bizarre bug seen in one WP install, where delete_transient and wp_clear_scheduled_hook both took no effect, and upon 'resumption' the entire backup would repeat.
|
2004 |
// Argh. In fact, this has limited effect, as apparently (at least on another install seen), the saving of the updated transient via jobdata_set() also took no effect. Still, it does not hurt.
|
@@ -2330,8 +2331,15 @@ class UpdraftPlus {
|
|
2330 |
|
2331 |
}
|
2332 |
|
2333 |
-
|
2334 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2335 |
}
|
2336 |
|
2337 |
public function jobdata_set_from_array($array) {
|
@@ -2367,13 +2375,21 @@ class UpdraftPlus {
|
|
2367 |
if (!empty($this->nonce)) update_site_option('updraft_jobdata_'.$this->nonce, $this->jobdata);
|
2368 |
}
|
2369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2370 |
public function jobdata_set($key, $value) {
|
2371 |
if (empty($this->jobdata)) {
|
2372 |
-
$this->jobdata = empty($this->nonce) ? array() : get_site_option(
|
2373 |
if (!is_array($this->jobdata)) $this->jobdata = array();
|
2374 |
}
|
2375 |
$this->jobdata[$key] = $value;
|
2376 |
-
if ($this->nonce) update_site_option(
|
2377 |
}
|
2378 |
|
2379 |
public function jobdata_delete($key) {
|
@@ -2388,7 +2404,7 @@ class UpdraftPlus {
|
|
2388 |
public function get_job_option($opt) {
|
2389 |
// These are meant to be read-only
|
2390 |
if (empty($this->jobdata['option_cache']) || !is_array($this->jobdata['option_cache'])) {
|
2391 |
-
if (!is_array($this->jobdata)) $this->jobdata = get_site_option("updraft_jobdata_".$this->nonce, array());
|
2392 |
$this->jobdata['option_cache'] = array();
|
2393 |
}
|
2394 |
return isset($this->jobdata['option_cache'][$opt]) ? $this->jobdata['option_cache'][$opt] : UpdraftPlus_Options::get_updraft_option($opt);
|
@@ -2402,6 +2418,9 @@ class UpdraftPlus {
|
|
2402 |
return isset($this->jobdata[$key]) ? $this->jobdata[$key] : $default;
|
2403 |
}
|
2404 |
|
|
|
|
|
|
|
2405 |
public function jobdata_reset() {
|
2406 |
$this->jobdata = null;
|
2407 |
}
|
@@ -2493,6 +2512,8 @@ class UpdraftPlus {
|
|
2493 |
'db_backups' => $db_backups
|
2494 |
);
|
2495 |
|
|
|
|
|
2496 |
/*
|
2497 |
We need to tweak the database array here by setting each database entity to finished or encrypted if it's an encrypted archive.
|
2498 |
I also grab the backups blog name here ready to be used later, just in case this backup set is from another site.
|
@@ -2668,12 +2689,12 @@ class UpdraftPlus {
|
|
2668 |
|
2669 |
if (false === $restrict_files_to_override && isset($options['restrict_files_to_override'])) $restrict_files_to_override = $options['restrict_files_to_override'];
|
2670 |
// Generate backup information
|
2671 |
-
$use_nonce =
|
2672 |
-
$use_timestamp =
|
2673 |
$this->backup_time_nonce($use_nonce, $use_timestamp);
|
2674 |
// The current_resumption is consulted within logfile_open()
|
2675 |
$this->current_resumption = 0;
|
2676 |
-
$this->logfile_open($this->
|
2677 |
|
2678 |
if (!is_file($this->logfile_name)) {
|
2679 |
$this->log('Failed to open log file ('.$this->logfile_name.') - you need to check your UpdraftPlus settings (your chosen directory for creating files in is not writable, or you ran out of disk space). Backup aborted.');
|
@@ -2754,7 +2775,7 @@ class UpdraftPlus {
|
|
2754 |
if (is_string($service)) $service = array($service);
|
2755 |
if (!is_array($service)) $service = array('none');
|
2756 |
|
2757 |
-
if (!empty($options['extradata']) && preg_match('#
|
2758 |
if (array('none') === $service) $service = array();
|
2759 |
$service[] = 'remotesend';
|
2760 |
}
|
@@ -2849,8 +2870,10 @@ class UpdraftPlus {
|
|
2849 |
|
2850 |
if ($one_shot) update_site_option('updraft_oneshotnonce', $this->nonce);
|
2851 |
|
2852 |
-
if (
|
2853 |
-
|
|
|
|
|
2854 |
// Save what *should* be done, to make it resumable from this point on
|
2855 |
if ($backup_database) {
|
2856 |
$dbs = apply_filters('updraft_backup_databases', array('wp' => 'begun'));
|
@@ -2874,7 +2897,7 @@ class UpdraftPlus {
|
|
2874 |
// Use of jobdata_set_multi saves around 200ms
|
2875 |
call_user_func_array(array($this, 'jobdata_set_multi'), apply_filters('updraftplus_initial_jobdata', $initial_jobdata, $options, $split_every));
|
2876 |
} catch (Exception $e) {
|
2877 |
-
$this->log(
|
2878 |
return false;
|
2879 |
}
|
2880 |
|
@@ -3408,11 +3431,13 @@ class UpdraftPlus {
|
|
3408 |
$this->log(__('Could not save backup history because we have no backup array. Backup probably failed.', 'updraftplus'), 'error');
|
3409 |
return;
|
3410 |
}
|
|
|
|
|
3411 |
|
3412 |
$backup_array['nonce'] = $this->file_nonce;
|
3413 |
$backup_array['service'] = $this->jobdata_get('service');
|
3414 |
$backup_array['service_instance_ids'] = array();
|
3415 |
-
$backup_array['always_keep'] = $this->jobdata_get('always_keep', false);
|
3416 |
$backup_array['files_enumerated_at'] = $this->jobdata_get('files_enumerated_at');
|
3417 |
|
3418 |
// N.B. Though the saved 'service' option can have various forms (especially if upgrading from (very) old versions), in the jobdata, it is always an array.
|
@@ -3424,8 +3449,9 @@ class UpdraftPlus {
|
|
3424 |
$backup_array['service_instance_ids'][$method] = array_keys($method_information['instance_settings']);
|
3425 |
}
|
3426 |
|
3427 |
-
if ('' != ($label = $this->jobdata_get('label', ''))) $backup_array['label'] = $label;
|
3428 |
-
$backup_array['created_by_version'] = $this->version;
|
|
|
3429 |
$backup_array['is_multisite'] = is_multisite() ? true : false;
|
3430 |
$remotesend_info = $this->jobdata_get('remotesend_info');
|
3431 |
if (is_array($remotesend_info) && !empty($remotesend_info['url'])) $backup_array['remotesend_url'] = $remotesend_info['url'];
|
@@ -3434,7 +3460,7 @@ class UpdraftPlus {
|
|
3434 |
if (false != ($morefiles_linked_indexes = $this->jobdata_get('morefiles_linked_indexes', false))) $backup_array['morefiles_linked_indexes'] = $morefiles_linked_indexes;
|
3435 |
if (false != ($morefiles_more_locations = $this->jobdata_get('morefiles_more_locations', false))) $backup_array['morefiles_more_locations'] = $morefiles_more_locations;
|
3436 |
|
3437 |
-
UpdraftPlus_Backup_History::save_backup(apply_filters('
|
3438 |
}
|
3439 |
|
3440 |
/**
|
@@ -4541,6 +4567,9 @@ class UpdraftPlus {
|
|
4541 |
case 'shop':
|
4542 |
return apply_filters('updraftplus_com_shop', 'https://updraftplus.com/shop/');
|
4543 |
break;
|
|
|
|
|
|
|
4544 |
case 'buy-tokens':
|
4545 |
return apply_filters('updraftplus_com_updraftclone_tokens', 'https://updraftplus.com/shop/updraftclone-tokens/');
|
4546 |
break;
|
171 |
*
|
172 |
* @return String - filtered value
|
173 |
*/
|
174 |
+
public function upgrader_source_selection($source, $remote_source, $upgrader_object, $hook_extra = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
175 |
|
176 |
static $been_here_already = false;
|
177 |
|
198 |
*
|
199 |
* @return Boolean - filtered value
|
200 |
*/
|
201 |
+
public function itsec_scheduled_external_backup($x) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
202 |
return wp_next_scheduled('updraft_backup') ? true : false;
|
203 |
}
|
204 |
|
209 |
*
|
210 |
* @return String - filtered value
|
211 |
*/
|
212 |
+
public function itsec_external_backup_link($x) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
213 |
return UpdraftPlus_Options::admin_page_url().'?page=updraftplus';
|
214 |
}
|
215 |
|
1911 |
$label = $this->jobdata_get('label');
|
1912 |
if ($label) $resumption_extralog = ", label=$label";
|
1913 |
} else {
|
|
|
1914 |
$this->nonce = $bnonce;
|
1915 |
+
$file_nonce = $this->jobdata_get('file_nonce');
|
1916 |
+
$this->file_nonce = $file_nonce ? $file_nonce : $bnonce;
|
1917 |
$this->backup_time = $this->jobdata_get('backup_time');
|
1918 |
$this->job_time_ms = $this->jobdata_get('job_time_ms');
|
1919 |
|
1920 |
// Get the warnings before opening the log file, as opening the log file may generate new ones (which then leads to $this->errors having duplicate entries when they are copied over below)
|
1921 |
$warnings = $this->jobdata_get('warnings');
|
1922 |
|
1923 |
+
$this->logfile_open($this->file_nonce);
|
1924 |
|
1925 |
// Import existing warnings. The purpose of this is so that when save_backup_to_history() is called, it has a complete set - because job data expires quickly, whilst the warnings of the last backup run need to persist
|
1926 |
if (is_array($warnings)) {
|
1999 |
|
2000 |
$time_ago = time()-$btime;
|
2001 |
|
2002 |
+
$this->log("Backup run: resumption=$resumption_no, nonce=$bnonce, file_nonce=".$this->file_nonce." begun at=$btime (${time_ago}s ago), job type=$job_type".$resumption_extralog);
|
2003 |
|
2004 |
// This works round a bizarre bug seen in one WP install, where delete_transient and wp_clear_scheduled_hook both took no effect, and upon 'resumption' the entire backup would repeat.
|
2005 |
// Argh. In fact, this has limited effect, as apparently (at least on another install seen), the saving of the updated transient via jobdata_set() also took no effect. Still, it does not hurt.
|
2331 |
|
2332 |
}
|
2333 |
|
2334 |
+
/**
|
2335 |
+
* Get all the job data in a single array
|
2336 |
+
*
|
2337 |
+
* @param String $job_id - the job identifier (nonce) for the job whose data is to be retrieved
|
2338 |
+
*
|
2339 |
+
* @return Array
|
2340 |
+
*/
|
2341 |
+
public function jobdata_getarray($job_id) {
|
2342 |
+
return get_site_option('updraft_jobdata_'.$job_id, array());
|
2343 |
}
|
2344 |
|
2345 |
public function jobdata_set_from_array($array) {
|
2375 |
if (!empty($this->nonce)) update_site_option('updraft_jobdata_'.$this->nonce, $this->jobdata);
|
2376 |
}
|
2377 |
|
2378 |
+
/**
|
2379 |
+
* Set a job-data key/value pair for the current job
|
2380 |
+
*
|
2381 |
+
* @param String $key - the key
|
2382 |
+
* @param Mixed $value - needs to be serializable
|
2383 |
+
*
|
2384 |
+
* @uses update_site_option()
|
2385 |
+
*/
|
2386 |
public function jobdata_set($key, $value) {
|
2387 |
if (empty($this->jobdata)) {
|
2388 |
+
$this->jobdata = empty($this->nonce) ? array() : get_site_option('updraft_jobdata_'.$this->nonce);
|
2389 |
if (!is_array($this->jobdata)) $this->jobdata = array();
|
2390 |
}
|
2391 |
$this->jobdata[$key] = $value;
|
2392 |
+
if ($this->nonce) update_site_option('updraft_jobdata_'.$this->nonce, $this->jobdata);
|
2393 |
}
|
2394 |
|
2395 |
public function jobdata_delete($key) {
|
2404 |
public function get_job_option($opt) {
|
2405 |
// These are meant to be read-only
|
2406 |
if (empty($this->jobdata['option_cache']) || !is_array($this->jobdata['option_cache'])) {
|
2407 |
+
if (!is_array($this->jobdata) && $this->nonce) $this->jobdata = get_site_option("updraft_jobdata_".$this->nonce, array());
|
2408 |
$this->jobdata['option_cache'] = array();
|
2409 |
}
|
2410 |
return isset($this->jobdata['option_cache'][$opt]) ? $this->jobdata['option_cache'][$opt] : UpdraftPlus_Options::get_updraft_option($opt);
|
2418 |
return isset($this->jobdata[$key]) ? $this->jobdata[$key] : $default;
|
2419 |
}
|
2420 |
|
2421 |
+
/**
|
2422 |
+
* Reset the job data for the currently active job
|
2423 |
+
*/
|
2424 |
public function jobdata_reset() {
|
2425 |
$this->jobdata = null;
|
2426 |
}
|
2512 |
'db_backups' => $db_backups
|
2513 |
);
|
2514 |
|
2515 |
+
if (!is_array($db_backups)) return $backup_database_info;
|
2516 |
+
|
2517 |
/*
|
2518 |
We need to tweak the database array here by setting each database entity to finished or encrypted if it's an encrypted archive.
|
2519 |
I also grab the backups blog name here ready to be used later, just in case this backup set is from another site.
|
2689 |
|
2690 |
if (false === $restrict_files_to_override && isset($options['restrict_files_to_override'])) $restrict_files_to_override = $options['restrict_files_to_override'];
|
2691 |
// Generate backup information
|
2692 |
+
$use_nonce = empty($options['use_nonce']) ? false : $options['use_nonce'];
|
2693 |
+
$use_timestamp = empty($options['use_timestamp']) ? false : $options['use_timestamp'];
|
2694 |
$this->backup_time_nonce($use_nonce, $use_timestamp);
|
2695 |
// The current_resumption is consulted within logfile_open()
|
2696 |
$this->current_resumption = 0;
|
2697 |
+
$this->logfile_open($this->file_nonce);
|
2698 |
|
2699 |
if (!is_file($this->logfile_name)) {
|
2700 |
$this->log('Failed to open log file ('.$this->logfile_name.') - you need to check your UpdraftPlus settings (your chosen directory for creating files in is not writable, or you ran out of disk space). Backup aborted.');
|
2775 |
if (is_string($service)) $service = array($service);
|
2776 |
if (!is_array($service)) $service = array('none');
|
2777 |
|
2778 |
+
if (!empty($options['extradata']) && !empty($options['extradata']['services']) && preg_match('#remotesend/(\d+)#', $options['extradata']['services'])) {
|
2779 |
if (array('none') === $service) $service = array();
|
2780 |
$service[] = 'remotesend';
|
2781 |
}
|
2870 |
|
2871 |
if ($one_shot) update_site_option('updraft_oneshotnonce', $this->nonce);
|
2872 |
|
2873 |
+
if ($this->file_nonce && $this->file_nonce != $this->nonce) array_push($initial_jobdata, 'file_nonce', $this->file_nonce);
|
2874 |
+
|
2875 |
+
// 'autobackup' == $options['extradata'] might be set from another plugin so keeping here to keep support
|
2876 |
+
if (!empty($options['extradata']) && (!empty($options['extradata']['autobackup']) || 'autobackup' === $options['extradata'])) array_push($initial_jobdata, 'is_autobackup', true);
|
2877 |
// Save what *should* be done, to make it resumable from this point on
|
2878 |
if ($backup_database) {
|
2879 |
$dbs = apply_filters('updraft_backup_databases', array('wp' => 'begun'));
|
2897 |
// Use of jobdata_set_multi saves around 200ms
|
2898 |
call_user_func_array(array($this, 'jobdata_set_multi'), apply_filters('updraftplus_initial_jobdata', $initial_jobdata, $options, $split_every));
|
2899 |
} catch (Exception $e) {
|
2900 |
+
$this->log("Exception when calling jobdata_set_multi: ".$e->getMessage().' ('.$e->getCode().', line '.$e->getLine().' in '.$e->getFile().')');
|
2901 |
return false;
|
2902 |
}
|
2903 |
|
3431 |
$this->log(__('Could not save backup history because we have no backup array. Backup probably failed.', 'updraftplus'), 'error');
|
3432 |
return;
|
3433 |
}
|
3434 |
+
|
3435 |
+
$job_type = $this->jobdata_get('job_type');
|
3436 |
|
3437 |
$backup_array['nonce'] = $this->file_nonce;
|
3438 |
$backup_array['service'] = $this->jobdata_get('service');
|
3439 |
$backup_array['service_instance_ids'] = array();
|
3440 |
+
if ('incremental' != $job_type) $backup_array['always_keep'] = $this->jobdata_get('always_keep', false);
|
3441 |
$backup_array['files_enumerated_at'] = $this->jobdata_get('files_enumerated_at');
|
3442 |
|
3443 |
// N.B. Though the saved 'service' option can have various forms (especially if upgrading from (very) old versions), in the jobdata, it is always an array.
|
3449 |
$backup_array['service_instance_ids'][$method] = array_keys($method_information['instance_settings']);
|
3450 |
}
|
3451 |
|
3452 |
+
if ('incremental' != $job_type && '' != ($label = $this->jobdata_get('label', ''))) $backup_array['label'] = $label;
|
3453 |
+
if (!isset($backup_array['created_by_version'])) $backup_array['created_by_version'] = $this->version;
|
3454 |
+
$backup_array['last_saved_by_version'] = $this->version;
|
3455 |
$backup_array['is_multisite'] = is_multisite() ? true : false;
|
3456 |
$remotesend_info = $this->jobdata_get('remotesend_info');
|
3457 |
if (is_array($remotesend_info) && !empty($remotesend_info['url'])) $backup_array['remotesend_url'] = $remotesend_info['url'];
|
3460 |
if (false != ($morefiles_linked_indexes = $this->jobdata_get('morefiles_linked_indexes', false))) $backup_array['morefiles_linked_indexes'] = $morefiles_linked_indexes;
|
3461 |
if (false != ($morefiles_more_locations = $this->jobdata_get('morefiles_more_locations', false))) $backup_array['morefiles_more_locations'] = $morefiles_more_locations;
|
3462 |
|
3463 |
+
UpdraftPlus_Backup_History::save_backup(apply_filters('updraftplus_save_backup_history_timestamp', $this->backup_time), $backup_array);
|
3464 |
}
|
3465 |
|
3466 |
/**
|
4567 |
case 'shop':
|
4568 |
return apply_filters('updraftplus_com_shop', 'https://updraftplus.com/shop/');
|
4569 |
break;
|
4570 |
+
case 'premium':
|
4571 |
+
return apply_filters('updraftplus_com_premium', 'https://updraftplus.com/shop/updraftplus-premium/');
|
4572 |
+
break;
|
4573 |
case 'buy-tokens':
|
4574 |
return apply_filters('updraftplus_com_updraftclone_tokens', 'https://updraftplus.com/shop/updraftclone-tokens/');
|
4575 |
break;
|
@@ -537,14 +537,26 @@ jquery UI Accordion module
|
|
537 |
.updraft_backup_btn_wrapper {
|
538 |
text-align: center;
|
539 |
border-left: 1px solid #F1F1F1;
|
540 |
-
display: -ms-flexbox;
|
541 |
-
display: flex;
|
542 |
-ms-flex-pack: center;
|
543 |
justify-content: center;
|
544 |
-ms-flex-align: center;
|
545 |
align-items: center;
|
546 |
}
|
547 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
548 |
#updraft-delete-waitwarning span.spinner {
|
549 |
visibility: visible;
|
550 |
float: none;
|
@@ -819,7 +831,7 @@ span#updraft_lastlogcontainer {
|
|
819 |
clear: right;
|
820 |
}
|
821 |
|
822 |
-
.existing-backups-table .backup_date_label > div {
|
823 |
font-weight: bold;
|
824 |
}
|
825 |
|
@@ -2964,7 +2976,7 @@ div#updraft-wrap a {
|
|
2964 |
min-width: 100%;
|
2965 |
}*/
|
2966 |
|
2967 |
-
.existing-backups-table .backup_date_label > div {
|
2968 |
font-weight: normal;
|
2969 |
}
|
2970 |
|
537 |
.updraft_backup_btn_wrapper {
|
538 |
text-align: center;
|
539 |
border-left: 1px solid #F1F1F1;
|
|
|
|
|
540 |
-ms-flex-pack: center;
|
541 |
justify-content: center;
|
542 |
-ms-flex-align: center;
|
543 |
align-items: center;
|
544 |
}
|
545 |
|
546 |
+
.incremental-backups-only {
|
547 |
+
display: none;
|
548 |
+
}
|
549 |
+
|
550 |
+
.incremental-free-only {
|
551 |
+
display: none;
|
552 |
+
}
|
553 |
+
|
554 |
+
.incremental-free-only p {
|
555 |
+
padding: 5px;
|
556 |
+
background: rgba(255, 0, 0, 0.06);
|
557 |
+
border: 1px solid #BFBFBF;
|
558 |
+
}
|
559 |
+
|
560 |
#updraft-delete-waitwarning span.spinner {
|
561 |
visibility: visible;
|
562 |
float: none;
|
831 |
clear: right;
|
832 |
}
|
833 |
|
834 |
+
.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {
|
835 |
font-weight: bold;
|
836 |
}
|
837 |
|
2976 |
min-width: 100%;
|
2977 |
}*/
|
2978 |
|
2979 |
+
.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {
|
2980 |
font-weight: normal;
|
2981 |
}
|
2982 |
|
@@ -1,2 +1,2 @@
|
|
1 |
-
@keyframes udp_blink{from{opacity:1;transform:scale(1)}to{opacity:.4;transform:scale(0.85)}}.max-width-600{max-width:600px}.width-900{max-width:900px}.width-80{width:80%}.no-decoration{text-decoration:none}.bold{font-weight:bold}.center-align-td{text-align:center}.remove-padding{padding:0 !important}.updraft-text-center{text-align:center}.autobackup{padding:6px;margin:8px 0}ul .disc{list-style:disc inside}.dashicons-log-fix{display:inherit}.udpdraft__lifted{box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#updraft-wrap a .dashicons{text-decoration:none}.updraft-field-description,table.form-table td p.updraft-field-description{font-size:90%;line-height:1.2;font-style:italic;margin-bottom:5px}label.updraft_checkbox{display:block;margin-bottom:4px;margin-left:26px}label.updraft_checkbox>input[type=checkbox]{margin-left:-25px}div[id*="updraft_include_"]{margin-bottom:9px}.settings_page_updraftplus input[type="file"]{border:0}.settings_page_updraftplus .wipe_settings{padding-bottom:10px}.settings_page_updraftplus input[type="text"]{font-size:14px}.settings_page_updraftplus select{border-radius:4px;max-width:100%}input.updraft_input--wide,textarea.updraft_input--wide{max-width:442px;width:100%}#updraft-wrap .button-large{font-size:1.3em}.main-dashboard-buttons{border-width:4px;border-radius:12px;letter-spacing:0;font-size:17px;font-weight:bold;padding-left:.7em;padding-right:2em;padding:.3em 1em;line-height:1.7em;background:transparent;position:relative;border:2px solid;transition:all .2s;vertical-align:baseline;box-sizing:border-box;text-align:center;line-height:1.3em;margin-left:.3em;text-transform:none;line-height:1;text-decoration:none}.button-restore{border-color:#629ec0;color:#629ec0}.dashboard-main-sizing{border-width:4px;width:190px;line-height:1.7em}p.updraftplus-option{margin-top:0;margin-bottom:5px}p.updraftplus-option-inline{display:inline-block;padding-right:20px}span.updraftplus-option-label{display:block}#updraft-navtab-migrate-content .postbox{padding:18px}.updraftclone-main-row{display:-ms-flexbox;display:flex}.updraftclone-tokens{background:#f5f5f5;padding:20px;border-radius:10px;margin-right:20px;max-width:300px}.updraftclone-tokens p{margin:0}.updraftclone_action_box{background:#f5f5f5;padding:20px;border-radius:10px;-ms-flex:1;flex:1}.updraftclone_action_box p:first-child{margin-top:0}.updraftclone_action_box p:last-child{margin-bottom:0}span.tokens-number{font-size:46px;display:block}.button.updraft_migrate_widget_temporary_clone_show_stage0{display:none;position:absolute;right:0;top:0;height:100%;border-left:1px solid #CCC;padding-left:10px;padding-right:10px}.updraft_migrate_widget_temporary_clone_stage0_container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.updraft_migrate_widget_temporary_clone_stage0_box{margin-right:20px;width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:none}@media(min-width:1024px){.updraft_migrate_widget_temporary_clone_stage0_container{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_migrate_widget_temporary_clone_stage0_box{-ms-flex-preferred-size:45%;flex-basis:45%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:right}}.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons{text-decoration:none;font-size:20px;line-height:inherit}.opened .button.updraft_migrate_widget_temporary_clone_show_stage0{display:inline-block}.opened .updraft_migrate_widget_temporary_clone_stage0{background:#f5f5f5;padding:20px;border-radius:8px;margin-bottom:21px}.clone-list{clear:both;width:100%;margin-top:40px}.clone-list table{width:100%;text-align:left}.clone-list table tr th{background:#e4e4e4}.clone-list table tr td{background:#f5f5f5;word-break:break-word}.clone-list table tr:nth-child(odd) td{background:#fafafa}.clone-list table td,.clone-list table th{padding:6px}.updraftplus-clone .updraft_row{padding-left:0;padding-right:0}button#updraft_migrate_createclone+.updraftplus_spinner{margin-top:13px}.button.button-hero.updraftclone_show_step_1{white-space:normal;height:auto;line-height:14px;padding-top:10px;padding-bottom:10px}.button.button-hero.updraftclone_show_step_1 span.dashicons{height:auto}.updraftplus_clone_status{color:red}a.updraft_migrate_add_site--trigger span.dashicons{text-decoration:none}.button-restore:hover,.button-migrate:hover,.button-backup:hover,.button-view-log:hover,.button-mass-selectors:hover,.button-delete:hover,.button-entity-backup:hover,.udp-button-primary:hover{border-color:#df6926;color:#df6926}.button-migrate{color:#eea920;border-color:#eea920}#updraft_migrate_tab_main{padding:8px}.updraft_migrate_widget_module_content{background:#FFF;border-radius:0;position:relative}body.js #updraft_migrate .updraft_migrate_widget_module_content{display:none}.updraft_migrate_widget_module_content>h3,div[class*="updraft_migrate_widget_temporary_clone_stage"]>h3{margin-top:0}.updraft_migrate_widget_module_content header{position:relative;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-grid-column-align:center;justify-items:center;margin-top:-18px;margin-left:-18px;margin-right:-18px;margin-bottom:15px;border-bottom:1px solid #CCC}.updraft_migrate_widget_module_content header h3,.updraft_migrate_widget_module_content header button.button.close{padding:10px;line-height:20px;height:auto;margin:0}.updraft_migrate_widget_module_content button.button.close{text-decoration:none;padding-left:5px;border-right:1px solid #CCC}.updraft_migrate_widget_module_content button.button.close .dashicons{margin-top:1px}.updraft_migrate_widget_module_content header h3{margin:0}.updraft_migrate_intro button.button.button-primary.button-hero{max-width:235px;word-wrap:normal;white-space:normal;line-height:1;height:auto;padding-top:13px;padding-bottom:13px;text-align:left;position:relative;margin-right:10px;margin-bottom:10px}.updraft_migrate_intro button.button.button-primary.button-hero .dashicons{position:absolute;left:10px;top:calc(50% - 8px)}#updraft_migrate .ui-widget-content a{color:#1c94c4}#updraft-wrap .ui-accordion .ui-accordion-header{background:#f6f6f6;margin:0;border-radius:0;padding-left:.5em;padding-right:.7em}#updraft-wrap .ui-widget{font-family:inherit}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w{background-position:-96px 0}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s{background-position:-64px 0}#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon{left:auto;right:5px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px rgba(91,157,217,0.22),0 0 2px 1px rgba(30,140,190,0.3);background:#FFF}#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons{color:#0572aa;opacity:1}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active{background:#f6f6f6;border-bottom:2px solid #0572aa;box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3)}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus{box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child){border-top:0}#updraft-wrap .ui-accordion .ui-accordion-header .dashicons{opacity:.4;margin-right:10px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);z-index:1}.updraft_next_scheduled_backups_wrapper{display:-ms-flexbox;display:flex;background:#FFF;-ms-grid-column-align:center;justify-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_next_scheduled_backups_wrapper>div{width:50%;background:#FFF;height:auto;padding:33px;box-sizing:border-box}.updraft_backup_btn_wrapper{text-align:center;border-left:1px solid #f1f1f1;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}#updraft-delete-waitwarning span.spinner{visibility:visible;float:none;margin:0;margin-right:10px}button#updraft-backupnow-button .spinner,button#updraft-backupnow-button .dashicons-yes{display:none}button#updraft-backupnow-button.loading .spinner{display:inline-block;visibility:visible;margin-top:13px;margin-right:0}button#updraft-backupnow-button.loading{background-color:#efefef;border-color:#CCC;text-shadow:0 -1px 1px #bbc3c7,1px 0 1px #bbc3c7,0 1px 1px #bbc3c7,-1px 0 1px #bbc3c7;box-shadow:none}button#updraft-backupnow-button.finished .dashicons-yes{display:inline-block;visibility:visible;font-size:42px;margin-right:0;margin-top:2px}.updraft_next_scheduled_entity{width:50%;display:inline-block;float:left}.updraft_next_scheduled_entity .dashicons{color:#CCC;font-size:20px}.updraft_next_scheduled_entity strong{font-size:20px}.updraft_next_scheduled_heading{margin-bottom:10px}.updraft_next_scheduled_date_time{color:#46a84b}.updraft_time_now_wrapper{margin-top:68px;width:100%}.updraft_time_now_label,.updraft_time_now{display:inline-block;padding:7px}.updraft_time_now_label{background:#b7b7b7;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#FFF;margin-right:0;text-shadow:0 1px 2px rgba(0,0,0,0.4)}.updraft_time_now{background:#f1f1f1;border-top-right-radius:4px;border-bottom-right-radius:4px;margin-left:-3px}#updraft_lastlogmessagerow{margin:6px 0}#updraft_lastlogmessagerow{clear:both;padding:.25px 0}#updraft_lastlogmessagerow .updraft-log-link{float:right;margin-top:-2.5em;margin-right:2px}#updraft_lastlogmessagerow>div{clear:both;background:#FFF;padding:18px}#updraft_activejobs_table{overflow:hidden;width:100%;background:#fafafa;padding:0}.updraft_requeststart{padding:15px 33px;text-align:center}.updraft_requeststart .spinner{visibility:visible;float:none;vertical-align:middle;margin-top:-2px}a.updraft_jobinfo_delete.disabled{opacity:.4;color:inherit;text-decoration:none}.updraft_row{clear:both;transition:.3s all;padding:15px 33px}.updraft_row.deleting{opacity:.4}.updraft_existing_backups_count{padding:2px 8px;font-size:12px;background:#ca4a1e;color:#FFF;font-weight:bold;border-radius:10px}.form-table .existing-backups-table input[type="checkbox"]{border-radius:0}.form-table .existing-backups-table .check-column{width:40px;padding:0;padding-top:8px}.existing-backups-buttons{font-size:11px;line-height:1.4em;border-width:3px}.existing-backups-restore-buttons{font-size:11px;line-height:1.4em;border-width:3px}.button-delete{color:#e23900;border-color:#e23900;font-size:14px;line-height:1.4em;border-width:2px;margin-right:10px}.button-view-log,.button-mass-selectors{color:darkgrey;border-color:darkgrey;font-size:14px;line-height:1.4em;border-width:2px;margin-top:-1px}.button-view-log{width:120px}.button-existing-restore{font-size:14px;line-height:1.4em;border-width:2px;width:110px}.main-restore{margin-right:3%;margin-left:3%}.button-entity-backup{color:#555;border-color:#555;font-size:11px;line-height:1.4em;border-width:2px;margin-right:5px}.button-select-all{width:122px}.button-deselect{width:92px}#ud_massactions>.display-flex>.mass-selectors-margins,#updraft-delete-waitwarning>.display-flex>.mass-selectors-margins{margin-right:-4px}.udp-button-primary{border-width:4px;color:#0073aa;border-color:#0073aa;font-size:14px;height:40px}#ud_massactions .button-delete{margin-right:0}.stored_local{border-radius:5px;background-color:#007fe7;padding:3px 5px 5px 5px;color:#FFF;font-size:75%}span#updraft_lastlogcontainer{word-break:break-all}.stored_icon{height:1.3em;position:relative;top:.2em}.backup_date_label>*{vertical-align:middle}.backup_date_label .dashicons{font-size:18px}.backup_date_label .clear-right{clear:right}.existing-backups-table .backup_date_label>div{font-weight:bold}.udp-logo-70{width:70px;height:70px;float:left;padding-right:25px}h3 .thank-you{margin-top:0}.ws_advert{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.dismiss-dash-notice{float:right;position:relative;top:-20px}.updraft_exclude_container,.updraft_include_container{margin-left:24px;margin-top:5px;margin-bottom:10px;padding:15px;border:1px solid #DDD}label.updraft-exclude-label{font-weight:500;margin-bottom:5px;display:block}.updraft_add_exclude_item,#updraft_include_more_paths_another{display:inline-block;margin-top:10px}input.updraft_exclude_entity_field,.form-table td input.updraft_exclude_entity_field,.updraftplus-morefiles-row input[type=text]{width:calc(100% - 70px);max-width:400px}@media screen and (max-width:782px){.form-table td input.updraft_exclude_entity_field,.form-table td .updraftplus-morefiles-row input[type=text]{display:inline-block}}.updraft_exclude_entity_delete.dashicons,.updraft_exclude_entity_edit.dashicons,.updraft_exclude_entity_update.dashicons,.updraftplus-morefiles-row a.dashicons{margin-top:2px;font-size:20px;box-shadow:none;line-height:1;padding:3px;margin-right:4px}.updraft_exclude_entity_delete,.updraft_exclude_entity_delete:hover,.updraftplus-morefiles-row-delete{color:#ff6347}.updraft_exclude_entity_update.dashicons,.updraft_exclude_entity_update.dashicons:hover{color:#008000;font-weight:bold;font-size:22px;margin-left:4px}.updraft_exclude_entity_edit{margin-left:4px}.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete{display:none}.updraft-exclude-panel-heading{margin-bottom:8px}.updraft-exclude-panel-heading h3{margin:.5em 0 .5em 0}.updraft-exclude-submit.button-primary{margin-top:5px}.updraft_exclude_actions_list{font-weight:bold}.updraft-exclude-link{cursor:pointer}#updraft_include_more_options{padding-left:25px}#updraft_report_cell .updraft_reportbox,.updraft_small_box{padding:12px;margin:8px 0;border:1px solid #CCC;position:relative}#updraft_report_cell button.updraft_reportbox_delete,.updraft_box_delete_button,.updraft_small_box .updraft_box_delete_button{padding:4px;padding-top:6px;border:0;background:transparent;position:absolute;top:4px;right:4px;cursor:pointer}#updraft_report_cell button.updraft_reportbox_delete:hover{color:#de3c3c}a.updraft_report_another .dashicons{text-decoration:none;margin-top:2px}.updraft_report_dbbackup.updraft_report_disabled{color:#CCC}#updraft-navtab-settings-content .updraft-test-button{font-size:18px !important}#updraft_report_cell .updraft_report_email{display:block;width:calc(100% - 50px);margin-bottom:9px}#updraft_report_cell .updraft_report_another_p{clear:left}#updraft-navtab-settings-content table.form-table p{max-width:700px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td{background-color:#efefef}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td{background-color:#e8e8e8}.updraft_settings_sectionheading{display:none}.updraft-backupentitybutton-disabled{background-color:transparent;border:0;color:#0074a2;text-decoration:underline;cursor:pointer;clear:none;float:left}.updraft-backupentitybutton{margin-left:8px}.updraft-bigbutton{padding:2px 0 !important;margin-right:14px !important;font-size:22px !important;min-height:32px;min-width:180px}tr[class*="_updraft_remote_storage_border"]{border-top:1px solid #CCC}.updraft_multi_storage_options{float:right;clear:right;margin-bottom:5px !important}.updraft_toggle_instance_label{vertical-align:top !important}.updraft_debugrow th{float:right;text-align:right;font-weight:bold;padding-right:8px;min-width:140px}.updraft_debugrow td{min-width:300px;vertical-align:bottom}#updraft_webdav_host_error,.onedrive_folder_error{color:red}.updraft_jstree .jstree-container-ul>.jstree-node,#updraft_more_files_jstree .jstree-container-ul>.jstree-node{background:transparent}.updraft_jstree .jstree-container-ul>.jstree-open>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-open>.jstree-ocl{background-position:-36px -4px}.updraft_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl{background-position:-4px -4px}.updraft_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl{background:transparent}#updraft_zip_files_container{position:relative;height:450px;overflow:none}.updraft_jstree_info_container{position:relative;height:auto;width:100%;border:1px dotted;margin-bottom:5px}.updraft_jstree_info_container p{margin:1px;padding-left:10px;font-size:14px}#updraft_zip_download_item{display:none;color:#0073aa;padding-left:10px}#updraft_zip_download_notice{padding-left:10px}#updraft_exclude_files_folders_jstree{max-height:200px;overflow-y:scroll}.updraft_jstree{position:relative;border:1px dotted;height:80%;width:100%;overflow:auto}#updraft_more_files_container{position:relative;display:none;width:100%;border:1px solid #CCC;background:#fafafa;margin-bottom:5px;margin-top:4px;box-shadow:0 5px 8px rgba(0,0,0,0.1)}div#updraft_more_files_container::before{content:' ';width:11px;height:11px;display:block;background:#fafafa;position:absolute;top:0;left:20px;border-top:1px solid #CCC;border-left:1px solid #CCC;transform:translatey(-7px) rotate(45deg)}input.updraft_more_path_editing{border-color:#0285ba}input.updraft_more_path_editing ~ a.dashicons{display:none}#updraft_jstree_buttons{padding:10px;background:#e6e6e6}#updraft_jstree_container{height:300px;width:100%;overflow:auto}#updraft_more_files_container button{line-height:20px}#updraft_parent_directory{margin:10px 10px 4px 10px;padding-left:3px}#updraft_jstree_confirm,#updraft_jstree_cancel{display:none}.updraftplus-morefiles-row-delete,.updraftplus-morefiles-row-edit{cursor:pointer}#updraft-wrap .form-table th{width:230px}#updraft-wrap .form-table .existing-backups-table th{width:auto}.updraft-viewlogdiv form{margin:0;padding:0}.updraft-viewlogdiv{display:inline-block}.updraft-viewlogdiv input,.updraft-viewlogdiv a{border:0;background-color:transparent;color:#000;margin:0;padding:3px 4px;font-size:16px;line-height:26px}.updraft-viewlogdiv input:hover,.updraft-viewlogdiv a:hover{color:#FFF;cursor:pointer}.button.button-remove{color:white;background-color:#de3c3c;border-color:#c00000;box-shadow:0 1px 0 #c10100}.button.button-remove:hover,.button.button-remove:focus{border-color:#C00;color:#FFF;background:#C00}body.admin-color-midnight .button.button-remove{color:#de3c3c;background-color:#f7f7f7;border-color:#CCC;box-shadow:0 1px 0 #CCC}body.admin-color-midnight .button.button-remove:hover,body.admin-color-midnight .button.button-remove:focus{border-color:#ba281f}body.admin-color-midnight .button.button-remove:focus{box-shadow:inherit;box-shadow:0 0 3px rgba(0,115,170,0.8)}.drag-drop #drag-drop-area2{border:4px dashed #DDD;height:200px}#drag-drop-area2 .drag-drop-inside{margin:36px auto 0;width:350px}#filelist,#filelist2{width:100%}#filelist .file,#filelist2 .file,.ud_downloadstatus .file,#ud_downloadstatus2 .file{padding:1px;background:#ececec;border:solid 1px #CCC;margin:4px 0}.updraft_premium section{margin-bottom:20px}.updraft_premium_cta{background:#FFF;margin-top:30px;padding:0;border-left:4px solid #db6a03}.updraft_premium_cta a{font-weight:normal}.updraft_premium_cta a.button.button-primary.button-hero{font-size:1.3em;letter-spacing:.03rem;text-transform:uppercase}.updraft_premium_cta__top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:18px 30px}.updraft_premium_cta__bottom{background:#f9f9f9;padding:5px 30px}.updraft_premium_cta__summary{margin-right:60px}.updraft_premium_cta h2{font-size:28px;font-weight:200;line-height:1;margin:0;margin-bottom:5px;letter-spacing:.05rem;color:#db6a03}.updraft_premium_cta ul li::after{color:#CCC}@media only screen and (max-width:768px){.updraft_premium_cta__top{-ms-flex-direction:column;flex-direction:column;text-align:center;-ms-flex-align:center;align-items:center}.updraft_premium_cta__summary{margin-right:0;margin-bottom:30px}}.udp-box{background:#FFF;padding:20px;box-shadow:0 1px 2px rgba(0,0,0,0.1);text-align:center}.udp-box h3{margin:0}.udp-box__heading{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;background:0;box-shadow:none}.updraft-more-plugins{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;flex-wrap:wrap}.updraft-more-plugins img{max-width:200px;width:100%;display:inline-block}.updraft-more-plugins .udp-box{box-sizing:border-box;width:24%}.updraft-more-plugins .udp-box p:last-child{margin-bottom:0;padding-bottom:0}.updraft_premium_description_list{text-align:left;margin:0;font-size:12px}ul.updraft_premium_description_list,ul#updraft_restore_warnings{list-style:disc inside}ul.updraft_premium_description_list li{display:inline}ul.updraft_premium_description_list li::after{content:" | "}ul.updraft_premium_description_list li:last-child::after{content:""}.updraft_feature_cell{background-color:#f7d9c9 !important;padding:5px 10px}.updraftplus_com_login_status,.updraftplus_com_key_status{display:none;border-left-color:#dc3232 !important;background:#FFF;border-left:4px solid #FFF;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px 0;padding:5px 12px}.updraft_feat_table{border:0;border-collapse:collapse;font-size:120%;background-color:white;text-align:center}.updraft_feat_th,.updraft_feat_table td{border:1px solid #f1f1f1;border-collapse:collapse;font-size:120%;background-color:white;text-align:center;padding:15px}.updraft_feat_table td{border-bottom-width:4px}.updraft_feat_table td:first-child{border-left:0}.updraft_feat_table td:last-child{border-right:0}.updraft_feat_table tr:last-child td{border-bottom:0}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){background-color:rgba(241,241,241,0.38);width:190px}.updraft_feat_table__header td img{display:block;margin:0 auto}.updraft_feat_table__header td{text-align:center}.updraft_feat_table .installed{font-size:14px}.updraft_feat_table p{padding:0 10px;margin:5px 0;font-size:13px}.updraft_feat_table h4{margin:5px 0}.updraft_feat_table .dashicons{width:25px;height:25px;font-size:25px;line-height:1}.updraft_feat_table .dashicons-yes,.updraft_feat_table .updraft-yes{color:green}.updraft_feat_table .dashicons-no-alt,.updraft_feat_table .updraft-no{color:red}.updraft_tick_cell{text-align:center}.updraft_tick_cell img{margin:4px 0;height:24px}.ud_downloadstatus__close{border:0;background:transparent;width:auto;font-size:20px;padding:0;cursor:pointer}#filelist .fileprogress,#filelist2 .fileprogress,.ud_downloadstatus .dlfileprogress,#ud_downloadstatus2 .dlfileprogress{width:0;background:#0572aa;height:8px}.ud_downloadstatus .raw,#ud_downloadstatus2 .raw{margin-top:8px;clear:left}.ud_downloadstatus .file,#ud_downloadstatus2 .file{margin-top:8px}div[class^="updraftplus_downloader_container_"]{padding:10px}tr.updraftplusmethod h3{margin:0}tr.updraftplusmethod img{max-width:100%}#updraft_retain_db_rules .updraft_retain_rules_delete,#updraft_retain_files_rules .updraft_retain_rules_delete{cursor:pointer;color:red;font-size:120%;font-weight:bold;border:0;border-radius:3px;padding:2px;margin:0 6px;text-decoration:none;display:inline-block}#updraft_retain_db_rules .updraft_retain_rules_delete:hover,#updraft_retain_files_rules .updraft_retain_rules_delete:hover{cursor:pointer;color:white;background:red}#updraft_backup_started{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.blockUI.blockOverlay.ui-widget-overlay{background:#000}.updraft_success_popup{text-align:center;padding-bottom:30px}.updraft_success_popup>.dashicons{font-size:100px;width:100px;height:100px;line-height:100px;padding:0;border-radius:50%;margin-top:30px;display:block;margin-left:auto;margin-right:auto;background:#e2e6e5}.updraft_success_popup>.dashicons.dashicons-yes{text-indent:-5px}.updraft_success_popup.success>.dashicons{color:green}.updraft_success_popup.warning>.dashicons{color:#888}.updraft_success_popup--message{padding:20px}.button.updraft-close-overlay .dashicons{text-decoration:none;font-size:20px;margin-left:-5px;padding:0}.updraft_saving_popup img{animation-name:udp_blink;animation-duration:610ms;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-out}.udp-premium-image{display:none}@media screen and (min-width:720px){.udp-premium-image{display:block;float:left;padding-right:5px}}#plupload-upload-ui2{width:80%}.backup-restored{padding:8px}.backup-restored span{font-size:120%}.memory-limit{padding:8px}.updraft_list_errors{padding:8px}.nav-tab-wrapper{margin:14px 0}#updraft-poplog-content{white-space:pre-wrap}.next-backup{border:0;padding:0;margin:0 10px 0 0}.not-scheduled{vertical-align:top !important;margin:0 !important;padding:0 !important}.next-backup .updraft_scheduled{margin:0;padding:2px 4px 2px 0}#next-backup-table-inner td{vertical-align:top}.updraft_all-files{color:blue}.multisite-advert-width{width:800px}.updraft_settings_sectionheading{margin-top:6px}.show_admin_restore_in_progress_notice{padding:8px}.show_admin_restore_in_progress_notice .unfinished-restoration{font-size:120%}#backupnow_includefiles_moreoptions,#backupnow_database_moreoptions{margin:4px 16px 6px 16px;border:1px dotted;padding:6px 10px}#backupnow_database_moreoptions{max-height:250px;overflow:auto}.form-table #updraft_activejobsrow .minimum-height{min-height:100px}#updraft_activejobsrow th{max-width:112px;margin:0;padding:13px 0 0 0}#updraft_lastlogmessagerow .last-message{padding-top:20px;display:block}.updraft_simplepie{vertical-align:top}.download-backups{margin-top:8px}.download-backups .updraft_download_button{margin-right:6px}.download-backups .ud-whitespace-warning,.download-backups .ud-bom-warning{background-color:pink;padding:8px;margin:4px;border:1px dotted}.download-backups .ul{list-style:none inside;max-width:800px;margin-top:6px;margin-bottom:12px}#updraft-plupload-modal{margin:16px 0}.download-backups .upload{max-width:610px}.download-backups #plupload-upload-ui{width:100%}.ud_downloadstatus{padding:10px 0}#ud_massactions,#updraft-delete-waitwarning{padding:14px;background:#f1f1f1;position:absolute;left:0;top:100%}#ud_massactions>*,#updraft-delete-waitwarning>*{vertical-align:middle}#ud_massactions .updraftplus-remove{display:inline-block;margin-right:0}#ud_massactions .updraftplus-remove a{text-decoration:none}#ud_massactions .updraft-viewlogdiv a{text-decoration:none;position:relative}small.ud_massactions-tip{display:inline-block;opacity:.5;font-style:italic;margin-left:20px}#updraft-navtab-backups-content .updraft_existing_backups{margin-bottom:35px;position:relative}#updraft-message-modal-innards{padding:4px}#updraft-authenticate-modal{text-align:center;font-size:16px !important}#updraft-authenticate-modal p{font-size:16px}#updraft_delete_form p{margin-top:3px;padding-top:0}#updraft_restore_form .cannot-restore{margin:8px 0}#updraft_restorer_dboptions{padding:12px;margin:8px 0 4px 0;border:dashed 1px}#updraft_restorer_dboptions h4{margin:0 0 6px 0;padding:0}.updraft_debugrow th{vertical-align:top;padding-top:6px;max-width:140px}.expertmode p{font-size:125%}.expertmode .call-wp-action{width:300px;height:22px}.updraftplus-lock-advert{clear:left;max-width:600px}.uncompressed-data{clear:left;max-width:600px}.delete-old-directories{padding:8px;padding-bottom:12px}.active-jobs{width:100%;text-align:center;padding:33px}.job-id{margin-top:0;margin-bottom:8px}.next-resumption{font-weight:bold}.updraft_percentage{z-index:-1;position:absolute;left:0;top:0;text-align:center;background-color:#1d8ec2;transition:width .3s}.curstage{z-index:1;border-radius:2px;margin-top:8px;width:100%;height:26px;line-height:26px;position:relative;text-align:center;font-style:italic;color:#FFF;background-color:#b7b7b7;text-shadow:0 1px 2px rgba(0,0,0,0.3)}.curstage-info{display:inline-block;z-index:2}.retain-files{width:48px}.backup-interval-description tr td div{max-width:670px}#updraft-manualdecrypt-modal{width:85%;margin:6px;margin-left:100px}.directory-permissions{font-size:110%;font-weight:bold}.double-warning{border:1px solid;padding:6px}.raw-backup-info{font-style:italic;font-weight:bold;font-size:120%}.updraft_existingbackup_date{width:22%;max-width:140px}.updraft_existing_backups_wrapper{margin-top:20px;border-top:1px solid #DDD}.updraft-no-backups-msg{text-align:center}.tr-bottom-4{margin-bottom:4px}.existing-backups-table th{padding:8px 10px}.form-table .backup-date{width:172px}.form-table .backup-data{width:426px}.form-table .updraft_backup_actions{width:272px}.existing-date{box-sizing:border-box;max-width:140px;width:25%}.line-break-tr{height:2px;padding:1px;margin:0}.line-break-td{margin:0;padding:0}.td-line-color{height:2px;background-color:#888}.raw-backup{max-width:140px}.existing-backups-actions{padding:1px;margin:0}.existing-backups-border{height:2px;padding:1px;margin:0}.existing-backups-border>td{margin:0;padding:0}.existing-backups-border>div{height:2px;background-color:#AAA}.updraft_existing_backup_date{max-width:140px}.updraftplus-upload{margin-right:6px;float:left;clear:none}.before-restore-button{padding:1px;margin:0}.before-restore-button div{float:none;display:inline-block}.table-separator-tr{height:2px;padding:1px;margin:0}.table-separator-td{margin:0;padding:0}.end-of-table-div{height:2px;background-color:#AAA}.last-backup-job{padding-top:3% !important}.line-height-03{line-height:.3 !important}.line-height-13{line-height:1.3 !important}.line-height-23{line-height:2.3 !important}#updraft_diskspaceused{color:#df6926}#updraft_delete_old_dirs_pagediv{padding-bottom:10px}.fix-time{width:70px}.retain-files{width:70px}.number-input{min-width:50px;max-width:70px}.additional-rule-width{min-width:60px;max-width:70px}.dashicons{line-height:inherit;font-size:inherit}.addon-logo-150{margin-left:30px;margin-top:33px;height:125px;width:150px}.margin-bottom-50{margin-bottom:50px}.premium-container{width:80%}.main-header{background-color:#df6926;height:200px;width:100%}.button-add-to-cart{color:white;border-color:white;float:none;margin-right:17px}.button-add-to-cart:hover,.button-add-to-cart:focus,.button-add-to-cart:active{border-color:#a0a5aa;color:#a0a5aa}.addon-title{margin-top:25px}.addon-text{margin-top:75px}.image-main-div{width:25%;float:left}.text-main-div{width:60%;float:left;text-align:center;color:white;margin-top:16px}.text-main-div-title{font-weight:bold !important;color:white;text-align:center}.text-main-div-paragraph{color:white}.updraftplus-vault-cta{width:100%;text-align:center;margin-bottom:50px}.updraftplus-vault-cta h1{font-weight:bold}.updraftvault-buy{width:225px;height:225px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:50px;position:relative}.updraftplus-vault-cta>.vault-options>.center-vault{width:275px;height:275px}.updraftplus-vault-cta>.vault-options>.center-vault>a{right:21%;font-size:16px;border-width:4px !important}.updraftplus-vault-cta>.vault-options>.center-vault>p{font-size:16px}.updraftvault-buy .button-purchase{right:24%;margin-left:0;line-height:1.7em}.updraftvault-buy hr{height:2px;background-color:#777;margin-top:18px}.right{margin-right:0}.updraftvault-buy .addon-logo-100{height:100px;width:125px;margin-top:7px}.updraftvault-buy .addon-logo-large{margin-top:7px}.updraftvault-buy .button-buy-vault{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:29%;bottom:2%}.premium-addon-div .button-purchase{line-height:1.7em}.updraftvault-buy .button-buy-vault:hover{border-color:darkgrey;color:darkgrey}.premium-addons{margin-top:80px;width:100%;margin:0 auto;display:table}.addon-list{display:table;text-align:center}.premium-addons h1{text-align:center;font-weight:bold}.premium-addons p{text-align:center}.premium-addons .premium-addon-div{width:200px;height:250px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:25px;margin-top:25px;text-align:center;position:relative}.premium-addons .premium-addon-div p{margin-left:2px;margin-right:2px}.premium-addons .premium-addon-div img{width:auto;height:50px;margin-top:7px}.premium-addons .premium-addon-div .hr-alignment{margin-top:44px}.premium-addons .premium-addon-div .dropbox-logo{height:39px;width:150px}.premium-addons .premium-addon-div .azure-logo,.premium-addons .premium-addon-div .onedrive-logo{width:75%;height:24px}.button-purchase{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:25%;bottom:2%}.button-purchase:hover{color:darkgrey;border-color:darkgrey}.premium-addons .premium-addon-div hr{height:2px;background-color:#777;margin-top:18px}.premium-addon-div p{font-style:italic}.addon-list>.premium-addon-div>.onedrive-fix,.addon-list>.premium-addon-div>.azure-logo{margin-top:33px}.addon-list>.premium-addon-div>.dropbox-fix{margin-top:18px}.premium-forgotton-something{margin-top:5%}.premium-forgotton-something h1{text-align:center;font-weight:bold}.premium-forgotton-something p{text-align:center;font-weight:normal}.premium-forgotton-something .button-faq{color:#df6926;border-color:#df6926;margin:0 auto;display:table}.premium-forgotton-something .button-faq:hover{color:#777;border-color:#777}.updraftplusmethod.updraftvault #vaultlogo{padding-left:40px}.updraftplusmethod.updraftvault .vault_primary_option{float:left;width:50%;text-align:center;padding-bottom:20px}.updraftplusmethod.updraftvault .vault_primary_option div{clear:right;padding-top:20px}.updraftplusmethod.updraftvault .clear-left{clear:left}.updraftplusmethod.updraftvault .padding-top-20px{padding-top:20px}.updraftplusmethod.updraftvault .padding-top-14px{padding-top:14px}.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary,.updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary{font-size:18px !important;padding-bottom:20px}.updraftplusmethod.updraftvault #updraftvault_showoptions,.updraftplusmethod.updraftvault #updraftvault_connect{margin-top:8px}.updraftplusmethod.updraftvault #updraftvault_settings_connect input{margin-right:10px}.updraftplusmethod.updraftvault #updraftvault_email{width:280px}.updraftplusmethod.updraftvault #updraftvault_pass{width:200px}.updraftplusmethod.updraftvault #vault-is-connected{margin:0;padding:0}.updraftplusmethod.updraftvault #updraftvault_settings_default p{clear:left}.updraftplusmethod.updraftvault .vault-purchase-option{float:left;width:33%;text-align:center;padding-top:20px}.updraftplusmethod.updraftvault .vault-purchase-option-size{font-size:200%;font-weight:bold}.updraftplusmethod.updraftvault .vault-purchase-option-link{clear:both;font-size:150%}.updraftplusmethod.updraftvault .vault-purchase-option-or{clear:both;font-size:115%;font-style:italic}.autobackup-image{clear:left;float:left;width:110px;height:110px}.autobackup-description{width:100%}.advert-description{float:left;clear:right;padding:4px 10px 8px 10px;width:70%;clear:right;vertical-align:top}.advert-btn{display:inline-block;min-width:10%;vertical-align:top;margin-bottom:8px}.advert-btn:first-of-type{margin-top:25px}.advert-btn a{display:block;cursor:pointer}a.btn-get-started{background:#FFF;border:2px solid #df6926;border-radius:4px;color:#df6926;display:inline-block;margin-left:10px !important;margin-bottom:7px !important;font-size:18px !important;line-height:20px;min-height:28px;padding:11px 10px 5px 10px;text-transform:uppercase;text-decoration:none}.circle-dblarrow{border:1px solid #df6926;border-radius:100%;display:inline-block;font-size:17px;line-height:17px;margin-left:5px;width:20px;height:20px;text-align:center}.expertmode .advanced_settings_container{height:auto;overflow:hidden}.expertmode .advanced_settings_container .advanced_settings_menu{float:none;border-bottom:1px solid #ccc}.expertmode .advanced_settings_container .advanced_settings_content{padding-top:5px;float:none;width:auto;overflow:auto}.expertmode .advanced_settings_container .advanced_settings_content h3:first-child{margin-top:5px !important}.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools{display:none}.expertmode .advanced_settings_container .advanced_settings_content .site_info{display:block}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:inline-block;cursor:pointer;padding:5px;color:#000}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text{font-size:16px}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover{background-color:#eaeaea}.expertmode .advanced_settings_container .advanced_settings_menu .active{background-color:#3498db;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_menu .active:hover{background-color:#72c5fd;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_content input#import_settings{height:auto !important}div#updraft-wrap a{cursor:pointer !important}.updraftcentral_wizard_option{width:45%;float:left;text-align:center}.updraftcentral_wizard_option label{margin-bottom:8px}#updraftcentral_keys_table{display:none}.create_key_container{border:1px solid;border-radius:4px;padding:0 0 6px 6px;margin-bottom:8px}.updraftcentral_cloud_connect{border-radius:4px;border:1px solid #000;padding:0 20px;margin-top:30px;background-color:#FFF}.updraftcentral_cloud_error{border:1px solid #000;padding:3px 10px;border-left:3px solid #F00;background-color:#FFF;margin-bottom:10px}.updraftcentral_cloud_info{border:1px solid #000;padding:3px 10px;border-left:3px solid #ef8f31;background-color:#FFF;margin-bottom:10px}.updraftplus_spinner.spinner{padding-left:25px;float:none}.updraftplus_spinner.spinner.visible{visibility:visible}.updraftcentral_cloud_notices .updraftplus_spinner{margin-top:-5px}.updraftcentral-subheading{font-size:14px;margin-top:-10px;margin-bottom:20px}#updraftcentral_cloud_form input#email,#updraftcentral_cloud_form input#password{min-width:250px}.updraftcentral-data-consent{font-size:13px;margin-bottom:10px}.updraftcentral_cloud_wizard_image{float:left;min-width:100px;margin-right:25px}.updraftcentral_cloud_wizard{float:left}.updraftcentral_cloud_clear{clear:both}.updraftplus-settings-footer{margin-top:30px}.updraftplus-top-menu{padding:.5em}#updraft_inpage_backup #updraft_activejobs_table{background:transparent}#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link{float:none}#updraft_inpage_backup #updraft_activejobsrow .updraft_row{-ms-flex-direction:column;flex-direction:column;padding-left:20px;padding-right:20px}#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container{width:100%}#updraft_inpage_backup #updraft_activejobs_table{overflow:inherit}#updraft_inpage_backup span#updraft_lastlogcontainer{padding:18px;background:#fafafa;display:block;font-size:90%;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup div#updraft_activejobsrow{background:#fafafa;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup #updraft_lastlogmessagerow>div{background:transparent;padding:0}#updraft_inpage_backup .last-message>strong{display:block;margin-top:13px}@media only screen and (min-width:1024px){#updraft_activejobsrow .updraft_row{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}#updraft_activejobsrow .updraft_row .updraft_col{-ms-flex:auto;flex:auto}#updraft_activejobsrow .updraft_progress_container{width:calc(100% - 230px)}}@media only screen and (min-width:782px){.settings_page_updraftplus input[type=text],.settings_page_updraftplus input[type=password],.settings_page_updraftplus input[type=number]{line-height:1.42;height:27px;padding:2px 6px;color:#555}.settings_page_updraftplus input[type="number"]{height:31px}#ud_massactions.active,#updraft-delete-waitwarning.active{position:fixed;bottom:0;left:160px;right:0;top:auto;background:#FFF;z-index:3;box-shadow:0 0 10px rgba(0,0,0,0.2)}body.folded #ud_massactions.active,body.folded #updraft-delete-waitwarning.active{left:36px}.updraft-after-form-table{margin-left:250px}}@media only screen and (min-width:782px) and (max-width:960px){body.auto-fold #ud_massactions.active,body.auto-fold #updraft-delete-waitwarning.active{left:36px}}@media only screen and (max-width:782px){#updraft-wrap{margin-right:0}#updraft-wrap .form-table td{padding-right:0}label.updraft_checkbox{margin-bottom:8px;margin-top:8px;margin-left:36px}.updraft_retain_rules{position:relative;margin-right:0;border:1px solid #CCC;padding:5px;margin-bottom:-1px}.updraft_retain_rules_delete{position:absolute;right:0;top:5px}a[id*=updraft_retain_]{display:block;padding:15px 15px 15px 0}label.updraft_checkbox>input[type=checkbox]{margin-left:-33px}#updraft-backupnow-button{margin:0;display:block;width:100%}.updraft_next_scheduled_backups_wrapper>.updraft_backup_btn_wrapper{padding-top:0}#ud_massactions,#updraft-delete-waitwarning{width:100%;box-sizing:border-box;text-align:center}#ud_massactions.active{position:fixed;top:auto;bottom:0;width:100%;box-sizing:border-box;text-align:center;box-shadow:0 -3px 15px rgba(0,0,0,0.08);background:#FFF;z-index:3}#ud_massactions strong{display:block;margin-bottom:5px}small.ud_massactions-tip{display:block}.existing-backups-table .backup_date_label>div{font-weight:normal}.existing-backups-table .backup_date_label .clear-right{display:inline-block}table.widefat.existing-backups-table{border:0;box-shadow:none;background:transparent}.existing-backups-table thead{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;padding:0;margin:0}.existing-backups-table tr{display:block;margin-bottom:.625em;padding-bottom:16.625px;width:100%;padding:0;margin:0;margin-bottom:10px;background:#FFF;box-shadow:0 2px 3px rgba(0,0,0,0.1)}.existing-backups-table td{border-bottom:1px solid #DDD;display:block;font-size:.9em;text-align:left;width:100%;padding:10px;margin:0}.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{content:attr(data-label);font-weight:bold;display:block;position:relative;left:auto;padding-bottom:10px;width:auto;text-align:left}.existing-backups-table td:last-child{border-bottom:0}.form-table td.updraft_existingbackup_date{width:inherit;max-width:100%}.existing-backups-table td.before-restore-button{min-height:36px}.updraft_next_scheduled_backups_wrapper{-ms-flex-direction:column;flex-direction:column}.updraft_next_scheduled_backups_wrapper>div{width:100%}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row{position:relative}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected{background-color:#FFF;border-left:4px solid #0572aa}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select){margin-left:50px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select{width:50px !important;position:absolute;left:0;top:0;box-sizing:border-box;height:100%;z-index:1;border:0;border-right:1px solid rgba(0,0,0,0.05)}#updraft-navtab-backups-content .updraft_existing_backups input[type="checkbox"]{height:25px}.updraft_migrate_intro button.button.button-primary.button-hero{display:block;margin-right:0;width:100%;max-width:100%}.updraftclone-main-row{-ms-flex-direction:column;flex-direction:column}.updraftclone-main-row>div{width:auto;max-width:none;margin-right:0;margin-bottom:10px}.form-table th{padding-bottom:10px}}@media screen and (max-width:600px){.updraft_next_scheduled_entity{float:none;width:100%;margin-bottom:2em}.updraft_time_now_wrapper{margin-top:0}#updraft_lastlogmessagerow h3{margin-bottom:5px}#updraft_lastlogmessagerow .updraft-log-link{display:block;float:none;margin:0;margin-bottom:10px}}@media only screen and (min-width:768px){.addon-activation-notice{left:20em}.existing-backups-table tbody tr:hover{background:#f1f1f1}.existing-backups-table tbody tr td.before-restore-button{position:relative}.form-table .existing-backups-table thead th.check-column{padding-left:6px}.existing-backups-table tr td:first-child{border-left:4px solid transparent}.existing-backups-table tr.backuprowselected td:first-child{border-left-color:#0572aa}}@media screen and (min-width:670px){.expertmode .advanced_settings_container .advanced_settings_menu{float:left;width:215px;border-right:1px solid #ccc;border-bottom:0}.expertmode .advanced_settings_container .advanced_settings_content{padding-left:10px;padding-top:0}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:block}}@media only screen and (max-width:1068px){.updraft-more-plugins .udp-box{width:calc(50% - 10px);margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:100px}}@media only screen and (max-width:600px){.updraft-more-plugins .udp-box{width:100%;margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:auto}table.updraft_feat_table{display:block}table.updraft_feat_table tr{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}table.updraft_feat_table td{display:block}table.updraft_feat_table td:first-child{width:100%;border-bottom:0}table.updraft_feat_table td:not(:first-child){width:50%;box-sizing:border-box}table.updraft_feat_table td:first-child:empty{display:none}td[data-colname]::before{content:attr(data-colname);font-size:.8rem;color:#CCC;line-height:1}}
|
2 |
/*# sourceMappingURL=updraftplus-admin.min.css.map */
|
1 |
+
@keyframes udp_blink{from{opacity:1;transform:scale(1)}to{opacity:.4;transform:scale(0.85)}}.max-width-600{max-width:600px}.width-900{max-width:900px}.width-80{width:80%}.no-decoration{text-decoration:none}.bold{font-weight:bold}.center-align-td{text-align:center}.remove-padding{padding:0 !important}.updraft-text-center{text-align:center}.autobackup{padding:6px;margin:8px 0}ul .disc{list-style:disc inside}.dashicons-log-fix{display:inherit}.udpdraft__lifted{box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#updraft-wrap a .dashicons{text-decoration:none}.updraft-field-description,table.form-table td p.updraft-field-description{font-size:90%;line-height:1.2;font-style:italic;margin-bottom:5px}label.updraft_checkbox{display:block;margin-bottom:4px;margin-left:26px}label.updraft_checkbox>input[type=checkbox]{margin-left:-25px}div[id*="updraft_include_"]{margin-bottom:9px}.settings_page_updraftplus input[type="file"]{border:0}.settings_page_updraftplus .wipe_settings{padding-bottom:10px}.settings_page_updraftplus input[type="text"]{font-size:14px}.settings_page_updraftplus select{border-radius:4px;max-width:100%}input.updraft_input--wide,textarea.updraft_input--wide{max-width:442px;width:100%}#updraft-wrap .button-large{font-size:1.3em}.main-dashboard-buttons{border-width:4px;border-radius:12px;letter-spacing:0;font-size:17px;font-weight:bold;padding-left:.7em;padding-right:2em;padding:.3em 1em;line-height:1.7em;background:transparent;position:relative;border:2px solid;transition:all .2s;vertical-align:baseline;box-sizing:border-box;text-align:center;line-height:1.3em;margin-left:.3em;text-transform:none;line-height:1;text-decoration:none}.button-restore{border-color:#629ec0;color:#629ec0}.dashboard-main-sizing{border-width:4px;width:190px;line-height:1.7em}p.updraftplus-option{margin-top:0;margin-bottom:5px}p.updraftplus-option-inline{display:inline-block;padding-right:20px}span.updraftplus-option-label{display:block}#updraft-navtab-migrate-content .postbox{padding:18px}.updraftclone-main-row{display:-ms-flexbox;display:flex}.updraftclone-tokens{background:#f5f5f5;padding:20px;border-radius:10px;margin-right:20px;max-width:300px}.updraftclone-tokens p{margin:0}.updraftclone_action_box{background:#f5f5f5;padding:20px;border-radius:10px;-ms-flex:1;flex:1}.updraftclone_action_box p:first-child{margin-top:0}.updraftclone_action_box p:last-child{margin-bottom:0}span.tokens-number{font-size:46px;display:block}.button.updraft_migrate_widget_temporary_clone_show_stage0{display:none;position:absolute;right:0;top:0;height:100%;border-left:1px solid #CCC;padding-left:10px;padding-right:10px}.updraft_migrate_widget_temporary_clone_stage0_container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.updraft_migrate_widget_temporary_clone_stage0_box{margin-right:20px;width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:none}@media(min-width:1024px){.updraft_migrate_widget_temporary_clone_stage0_container{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_migrate_widget_temporary_clone_stage0_box{-ms-flex-preferred-size:45%;flex-basis:45%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:right}}.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons{text-decoration:none;font-size:20px;line-height:inherit}.opened .button.updraft_migrate_widget_temporary_clone_show_stage0{display:inline-block}.opened .updraft_migrate_widget_temporary_clone_stage0{background:#f5f5f5;padding:20px;border-radius:8px;margin-bottom:21px}.clone-list{clear:both;width:100%;margin-top:40px}.clone-list table{width:100%;text-align:left}.clone-list table tr th{background:#e4e4e4}.clone-list table tr td{background:#f5f5f5;word-break:break-word}.clone-list table tr:nth-child(odd) td{background:#fafafa}.clone-list table td,.clone-list table th{padding:6px}.updraftplus-clone .updraft_row{padding-left:0;padding-right:0}button#updraft_migrate_createclone+.updraftplus_spinner{margin-top:13px}.button.button-hero.updraftclone_show_step_1{white-space:normal;height:auto;line-height:14px;padding-top:10px;padding-bottom:10px}.button.button-hero.updraftclone_show_step_1 span.dashicons{height:auto}.updraftplus_clone_status{color:red}a.updraft_migrate_add_site--trigger span.dashicons{text-decoration:none}.button-restore:hover,.button-migrate:hover,.button-backup:hover,.button-view-log:hover,.button-mass-selectors:hover,.button-delete:hover,.button-entity-backup:hover,.udp-button-primary:hover{border-color:#df6926;color:#df6926}.button-migrate{color:#eea920;border-color:#eea920}#updraft_migrate_tab_main{padding:8px}.updraft_migrate_widget_module_content{background:#FFF;border-radius:0;position:relative}body.js #updraft_migrate .updraft_migrate_widget_module_content{display:none}.updraft_migrate_widget_module_content>h3,div[class*="updraft_migrate_widget_temporary_clone_stage"]>h3{margin-top:0}.updraft_migrate_widget_module_content header{position:relative;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-grid-column-align:center;justify-items:center;margin-top:-18px;margin-left:-18px;margin-right:-18px;margin-bottom:15px;border-bottom:1px solid #CCC}.updraft_migrate_widget_module_content header h3,.updraft_migrate_widget_module_content header button.button.close{padding:10px;line-height:20px;height:auto;margin:0}.updraft_migrate_widget_module_content button.button.close{text-decoration:none;padding-left:5px;border-right:1px solid #CCC}.updraft_migrate_widget_module_content button.button.close .dashicons{margin-top:1px}.updraft_migrate_widget_module_content header h3{margin:0}.updraft_migrate_intro button.button.button-primary.button-hero{max-width:235px;word-wrap:normal;white-space:normal;line-height:1;height:auto;padding-top:13px;padding-bottom:13px;text-align:left;position:relative;margin-right:10px;margin-bottom:10px}.updraft_migrate_intro button.button.button-primary.button-hero .dashicons{position:absolute;left:10px;top:calc(50% - 8px)}#updraft_migrate .ui-widget-content a{color:#1c94c4}#updraft-wrap .ui-accordion .ui-accordion-header{background:#f6f6f6;margin:0;border-radius:0;padding-left:.5em;padding-right:.7em}#updraft-wrap .ui-widget{font-family:inherit}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w{background-position:-96px 0}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s{background-position:-64px 0}#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon{left:auto;right:5px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px rgba(91,157,217,0.22),0 0 2px 1px rgba(30,140,190,0.3);background:#FFF}#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons{color:#0572aa;opacity:1}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active{background:#f6f6f6;border-bottom:2px solid #0572aa;box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3)}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus{box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child){border-top:0}#updraft-wrap .ui-accordion .ui-accordion-header .dashicons{opacity:.4;margin-right:10px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);z-index:1}.updraft_next_scheduled_backups_wrapper{display:-ms-flexbox;display:flex;background:#FFF;-ms-grid-column-align:center;justify-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_next_scheduled_backups_wrapper>div{width:50%;background:#FFF;height:auto;padding:33px;box-sizing:border-box}.updraft_backup_btn_wrapper{text-align:center;border-left:1px solid #f1f1f1;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.incremental-backups-only{display:none}.incremental-free-only{display:none}.incremental-free-only p{padding:5px;background:rgba(255,0,0,0.06);border:1px solid #bfbfbf}#updraft-delete-waitwarning span.spinner{visibility:visible;float:none;margin:0;margin-right:10px}button#updraft-backupnow-button .spinner,button#updraft-backupnow-button .dashicons-yes{display:none}button#updraft-backupnow-button.loading .spinner{display:inline-block;visibility:visible;margin-top:13px;margin-right:0}button#updraft-backupnow-button.loading{background-color:#efefef;border-color:#CCC;text-shadow:0 -1px 1px #bbc3c7,1px 0 1px #bbc3c7,0 1px 1px #bbc3c7,-1px 0 1px #bbc3c7;box-shadow:none}button#updraft-backupnow-button.finished .dashicons-yes{display:inline-block;visibility:visible;font-size:42px;margin-right:0;margin-top:2px}.updraft_next_scheduled_entity{width:50%;display:inline-block;float:left}.updraft_next_scheduled_entity .dashicons{color:#CCC;font-size:20px}.updraft_next_scheduled_entity strong{font-size:20px}.updraft_next_scheduled_heading{margin-bottom:10px}.updraft_next_scheduled_date_time{color:#46a84b}.updraft_time_now_wrapper{margin-top:68px;width:100%}.updraft_time_now_label,.updraft_time_now{display:inline-block;padding:7px}.updraft_time_now_label{background:#b7b7b7;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#FFF;margin-right:0;text-shadow:0 1px 2px rgba(0,0,0,0.4)}.updraft_time_now{background:#f1f1f1;border-top-right-radius:4px;border-bottom-right-radius:4px;margin-left:-3px}#updraft_lastlogmessagerow{margin:6px 0}#updraft_lastlogmessagerow{clear:both;padding:.25px 0}#updraft_lastlogmessagerow .updraft-log-link{float:right;margin-top:-2.5em;margin-right:2px}#updraft_lastlogmessagerow>div{clear:both;background:#FFF;padding:18px}#updraft_activejobs_table{overflow:hidden;width:100%;background:#fafafa;padding:0}.updraft_requeststart{padding:15px 33px;text-align:center}.updraft_requeststart .spinner{visibility:visible;float:none;vertical-align:middle;margin-top:-2px}a.updraft_jobinfo_delete.disabled{opacity:.4;color:inherit;text-decoration:none}.updraft_row{clear:both;transition:.3s all;padding:15px 33px}.updraft_row.deleting{opacity:.4}.updraft_existing_backups_count{padding:2px 8px;font-size:12px;background:#ca4a1e;color:#FFF;font-weight:bold;border-radius:10px}.form-table .existing-backups-table input[type="checkbox"]{border-radius:0}.form-table .existing-backups-table .check-column{width:40px;padding:0;padding-top:8px}.existing-backups-buttons{font-size:11px;line-height:1.4em;border-width:3px}.existing-backups-restore-buttons{font-size:11px;line-height:1.4em;border-width:3px}.button-delete{color:#e23900;border-color:#e23900;font-size:14px;line-height:1.4em;border-width:2px;margin-right:10px}.button-view-log,.button-mass-selectors{color:darkgrey;border-color:darkgrey;font-size:14px;line-height:1.4em;border-width:2px;margin-top:-1px}.button-view-log{width:120px}.button-existing-restore{font-size:14px;line-height:1.4em;border-width:2px;width:110px}.main-restore{margin-right:3%;margin-left:3%}.button-entity-backup{color:#555;border-color:#555;font-size:11px;line-height:1.4em;border-width:2px;margin-right:5px}.button-select-all{width:122px}.button-deselect{width:92px}#ud_massactions>.display-flex>.mass-selectors-margins,#updraft-delete-waitwarning>.display-flex>.mass-selectors-margins{margin-right:-4px}.udp-button-primary{border-width:4px;color:#0073aa;border-color:#0073aa;font-size:14px;height:40px}#ud_massactions .button-delete{margin-right:0}.stored_local{border-radius:5px;background-color:#007fe7;padding:3px 5px 5px 5px;color:#FFF;font-size:75%}span#updraft_lastlogcontainer{word-break:break-all}.stored_icon{height:1.3em;position:relative;top:.2em}.backup_date_label>*{vertical-align:middle}.backup_date_label .dashicons{font-size:18px}.backup_date_label .clear-right{clear:right}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:bold}.udp-logo-70{width:70px;height:70px;float:left;padding-right:25px}h3 .thank-you{margin-top:0}.ws_advert{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.dismiss-dash-notice{float:right;position:relative;top:-20px}.updraft_exclude_container,.updraft_include_container{margin-left:24px;margin-top:5px;margin-bottom:10px;padding:15px;border:1px solid #DDD}label.updraft-exclude-label{font-weight:500;margin-bottom:5px;display:block}.updraft_add_exclude_item,#updraft_include_more_paths_another{display:inline-block;margin-top:10px}input.updraft_exclude_entity_field,.form-table td input.updraft_exclude_entity_field,.updraftplus-morefiles-row input[type=text]{width:calc(100% - 70px);max-width:400px}@media screen and (max-width:782px){.form-table td input.updraft_exclude_entity_field,.form-table td .updraftplus-morefiles-row input[type=text]{display:inline-block}}.updraft_exclude_entity_delete.dashicons,.updraft_exclude_entity_edit.dashicons,.updraft_exclude_entity_update.dashicons,.updraftplus-morefiles-row a.dashicons{margin-top:2px;font-size:20px;box-shadow:none;line-height:1;padding:3px;margin-right:4px}.updraft_exclude_entity_delete,.updraft_exclude_entity_delete:hover,.updraftplus-morefiles-row-delete{color:#ff6347}.updraft_exclude_entity_update.dashicons,.updraft_exclude_entity_update.dashicons:hover{color:#008000;font-weight:bold;font-size:22px;margin-left:4px}.updraft_exclude_entity_edit{margin-left:4px}.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete{display:none}.updraft-exclude-panel-heading{margin-bottom:8px}.updraft-exclude-panel-heading h3{margin:.5em 0 .5em 0}.updraft-exclude-submit.button-primary{margin-top:5px}.updraft_exclude_actions_list{font-weight:bold}.updraft-exclude-link{cursor:pointer}#updraft_include_more_options{padding-left:25px}#updraft_report_cell .updraft_reportbox,.updraft_small_box{padding:12px;margin:8px 0;border:1px solid #CCC;position:relative}#updraft_report_cell button.updraft_reportbox_delete,.updraft_box_delete_button,.updraft_small_box .updraft_box_delete_button{padding:4px;padding-top:6px;border:0;background:transparent;position:absolute;top:4px;right:4px;cursor:pointer}#updraft_report_cell button.updraft_reportbox_delete:hover{color:#de3c3c}a.updraft_report_another .dashicons{text-decoration:none;margin-top:2px}.updraft_report_dbbackup.updraft_report_disabled{color:#CCC}#updraft-navtab-settings-content .updraft-test-button{font-size:18px !important}#updraft_report_cell .updraft_report_email{display:block;width:calc(100% - 50px);margin-bottom:9px}#updraft_report_cell .updraft_report_another_p{clear:left}#updraft-navtab-settings-content table.form-table p{max-width:700px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td{background-color:#efefef}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td{background-color:#e8e8e8}.updraft_settings_sectionheading{display:none}.updraft-backupentitybutton-disabled{background-color:transparent;border:0;color:#0074a2;text-decoration:underline;cursor:pointer;clear:none;float:left}.updraft-backupentitybutton{margin-left:8px}.updraft-bigbutton{padding:2px 0 !important;margin-right:14px !important;font-size:22px !important;min-height:32px;min-width:180px}tr[class*="_updraft_remote_storage_border"]{border-top:1px solid #CCC}.updraft_multi_storage_options{float:right;clear:right;margin-bottom:5px !important}.updraft_toggle_instance_label{vertical-align:top !important}.updraft_debugrow th{float:right;text-align:right;font-weight:bold;padding-right:8px;min-width:140px}.updraft_debugrow td{min-width:300px;vertical-align:bottom}#updraft_webdav_host_error,.onedrive_folder_error{color:red}.updraft_jstree .jstree-container-ul>.jstree-node,#updraft_more_files_jstree .jstree-container-ul>.jstree-node{background:transparent}.updraft_jstree .jstree-container-ul>.jstree-open>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-open>.jstree-ocl{background-position:-36px -4px}.updraft_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl{background-position:-4px -4px}.updraft_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl{background:transparent}#updraft_zip_files_container{position:relative;height:450px;overflow:none}.updraft_jstree_info_container{position:relative;height:auto;width:100%;border:1px dotted;margin-bottom:5px}.updraft_jstree_info_container p{margin:1px;padding-left:10px;font-size:14px}#updraft_zip_download_item{display:none;color:#0073aa;padding-left:10px}#updraft_zip_download_notice{padding-left:10px}#updraft_exclude_files_folders_jstree{max-height:200px;overflow-y:scroll}.updraft_jstree{position:relative;border:1px dotted;height:80%;width:100%;overflow:auto}#updraft_more_files_container{position:relative;display:none;width:100%;border:1px solid #CCC;background:#fafafa;margin-bottom:5px;margin-top:4px;box-shadow:0 5px 8px rgba(0,0,0,0.1)}div#updraft_more_files_container::before{content:' ';width:11px;height:11px;display:block;background:#fafafa;position:absolute;top:0;left:20px;border-top:1px solid #CCC;border-left:1px solid #CCC;transform:translatey(-7px) rotate(45deg)}input.updraft_more_path_editing{border-color:#0285ba}input.updraft_more_path_editing ~ a.dashicons{display:none}#updraft_jstree_buttons{padding:10px;background:#e6e6e6}#updraft_jstree_container{height:300px;width:100%;overflow:auto}#updraft_more_files_container button{line-height:20px}#updraft_parent_directory{margin:10px 10px 4px 10px;padding-left:3px}#updraft_jstree_confirm,#updraft_jstree_cancel{display:none}.updraftplus-morefiles-row-delete,.updraftplus-morefiles-row-edit{cursor:pointer}#updraft-wrap .form-table th{width:230px}#updraft-wrap .form-table .existing-backups-table th{width:auto}.updraft-viewlogdiv form{margin:0;padding:0}.updraft-viewlogdiv{display:inline-block}.updraft-viewlogdiv input,.updraft-viewlogdiv a{border:0;background-color:transparent;color:#000;margin:0;padding:3px 4px;font-size:16px;line-height:26px}.updraft-viewlogdiv input:hover,.updraft-viewlogdiv a:hover{color:#FFF;cursor:pointer}.button.button-remove{color:white;background-color:#de3c3c;border-color:#c00000;box-shadow:0 1px 0 #c10100}.button.button-remove:hover,.button.button-remove:focus{border-color:#C00;color:#FFF;background:#C00}body.admin-color-midnight .button.button-remove{color:#de3c3c;background-color:#f7f7f7;border-color:#CCC;box-shadow:0 1px 0 #CCC}body.admin-color-midnight .button.button-remove:hover,body.admin-color-midnight .button.button-remove:focus{border-color:#ba281f}body.admin-color-midnight .button.button-remove:focus{box-shadow:inherit;box-shadow:0 0 3px rgba(0,115,170,0.8)}.drag-drop #drag-drop-area2{border:4px dashed #DDD;height:200px}#drag-drop-area2 .drag-drop-inside{margin:36px auto 0;width:350px}#filelist,#filelist2{width:100%}#filelist .file,#filelist2 .file,.ud_downloadstatus .file,#ud_downloadstatus2 .file{padding:1px;background:#ececec;border:solid 1px #CCC;margin:4px 0}.updraft_premium section{margin-bottom:20px}.updraft_premium_cta{background:#FFF;margin-top:30px;padding:0;border-left:4px solid #db6a03}.updraft_premium_cta a{font-weight:normal}.updraft_premium_cta a.button.button-primary.button-hero{font-size:1.3em;letter-spacing:.03rem;text-transform:uppercase}.updraft_premium_cta__top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:18px 30px}.updraft_premium_cta__bottom{background:#f9f9f9;padding:5px 30px}.updraft_premium_cta__summary{margin-right:60px}.updraft_premium_cta h2{font-size:28px;font-weight:200;line-height:1;margin:0;margin-bottom:5px;letter-spacing:.05rem;color:#db6a03}.updraft_premium_cta ul li::after{color:#CCC}@media only screen and (max-width:768px){.updraft_premium_cta__top{-ms-flex-direction:column;flex-direction:column;text-align:center;-ms-flex-align:center;align-items:center}.updraft_premium_cta__summary{margin-right:0;margin-bottom:30px}}.udp-box{background:#FFF;padding:20px;box-shadow:0 1px 2px rgba(0,0,0,0.1);text-align:center}.udp-box h3{margin:0}.udp-box__heading{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;background:0;box-shadow:none}.updraft-more-plugins{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;flex-wrap:wrap}.updraft-more-plugins img{max-width:200px;width:100%;display:inline-block}.updraft-more-plugins .udp-box{box-sizing:border-box;width:24%}.updraft-more-plugins .udp-box p:last-child{margin-bottom:0;padding-bottom:0}.updraft_premium_description_list{text-align:left;margin:0;font-size:12px}ul.updraft_premium_description_list,ul#updraft_restore_warnings{list-style:disc inside}ul.updraft_premium_description_list li{display:inline}ul.updraft_premium_description_list li::after{content:" | "}ul.updraft_premium_description_list li:last-child::after{content:""}.updraft_feature_cell{background-color:#f7d9c9 !important;padding:5px 10px}.updraftplus_com_login_status,.updraftplus_com_key_status{display:none;border-left-color:#dc3232 !important;background:#FFF;border-left:4px solid #FFF;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px 0;padding:5px 12px}.updraft_feat_table{border:0;border-collapse:collapse;font-size:120%;background-color:white;text-align:center}.updraft_feat_th,.updraft_feat_table td{border:1px solid #f1f1f1;border-collapse:collapse;font-size:120%;background-color:white;text-align:center;padding:15px}.updraft_feat_table td{border-bottom-width:4px}.updraft_feat_table td:first-child{border-left:0}.updraft_feat_table td:last-child{border-right:0}.updraft_feat_table tr:last-child td{border-bottom:0}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){background-color:rgba(241,241,241,0.38);width:190px}.updraft_feat_table__header td img{display:block;margin:0 auto}.updraft_feat_table__header td{text-align:center}.updraft_feat_table .installed{font-size:14px}.updraft_feat_table p{padding:0 10px;margin:5px 0;font-size:13px}.updraft_feat_table h4{margin:5px 0}.updraft_feat_table .dashicons{width:25px;height:25px;font-size:25px;line-height:1}.updraft_feat_table .dashicons-yes,.updraft_feat_table .updraft-yes{color:green}.updraft_feat_table .dashicons-no-alt,.updraft_feat_table .updraft-no{color:red}.updraft_tick_cell{text-align:center}.updraft_tick_cell img{margin:4px 0;height:24px}.ud_downloadstatus__close{border:0;background:transparent;width:auto;font-size:20px;padding:0;cursor:pointer}#filelist .fileprogress,#filelist2 .fileprogress,.ud_downloadstatus .dlfileprogress,#ud_downloadstatus2 .dlfileprogress{width:0;background:#0572aa;height:8px}.ud_downloadstatus .raw,#ud_downloadstatus2 .raw{margin-top:8px;clear:left}.ud_downloadstatus .file,#ud_downloadstatus2 .file{margin-top:8px}div[class^="updraftplus_downloader_container_"]{padding:10px}tr.updraftplusmethod h3{margin:0}tr.updraftplusmethod img{max-width:100%}#updraft_retain_db_rules .updraft_retain_rules_delete,#updraft_retain_files_rules .updraft_retain_rules_delete{cursor:pointer;color:red;font-size:120%;font-weight:bold;border:0;border-radius:3px;padding:2px;margin:0 6px;text-decoration:none;display:inline-block}#updraft_retain_db_rules .updraft_retain_rules_delete:hover,#updraft_retain_files_rules .updraft_retain_rules_delete:hover{cursor:pointer;color:white;background:red}#updraft_backup_started{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.blockUI.blockOverlay.ui-widget-overlay{background:#000}.updraft_success_popup{text-align:center;padding-bottom:30px}.updraft_success_popup>.dashicons{font-size:100px;width:100px;height:100px;line-height:100px;padding:0;border-radius:50%;margin-top:30px;display:block;margin-left:auto;margin-right:auto;background:#e2e6e5}.updraft_success_popup>.dashicons.dashicons-yes{text-indent:-5px}.updraft_success_popup.success>.dashicons{color:green}.updraft_success_popup.warning>.dashicons{color:#888}.updraft_success_popup--message{padding:20px}.button.updraft-close-overlay .dashicons{text-decoration:none;font-size:20px;margin-left:-5px;padding:0}.updraft_saving_popup img{animation-name:udp_blink;animation-duration:610ms;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-out}.udp-premium-image{display:none}@media screen and (min-width:720px){.udp-premium-image{display:block;float:left;padding-right:5px}}#plupload-upload-ui2{width:80%}.backup-restored{padding:8px}.backup-restored span{font-size:120%}.memory-limit{padding:8px}.updraft_list_errors{padding:8px}.nav-tab-wrapper{margin:14px 0}#updraft-poplog-content{white-space:pre-wrap}.next-backup{border:0;padding:0;margin:0 10px 0 0}.not-scheduled{vertical-align:top !important;margin:0 !important;padding:0 !important}.next-backup .updraft_scheduled{margin:0;padding:2px 4px 2px 0}#next-backup-table-inner td{vertical-align:top}.updraft_all-files{color:blue}.multisite-advert-width{width:800px}.updraft_settings_sectionheading{margin-top:6px}.show_admin_restore_in_progress_notice{padding:8px}.show_admin_restore_in_progress_notice .unfinished-restoration{font-size:120%}#backupnow_includefiles_moreoptions,#backupnow_database_moreoptions{margin:4px 16px 6px 16px;border:1px dotted;padding:6px 10px}#backupnow_database_moreoptions{max-height:250px;overflow:auto}.form-table #updraft_activejobsrow .minimum-height{min-height:100px}#updraft_activejobsrow th{max-width:112px;margin:0;padding:13px 0 0 0}#updraft_lastlogmessagerow .last-message{padding-top:20px;display:block}.updraft_simplepie{vertical-align:top}.download-backups{margin-top:8px}.download-backups .updraft_download_button{margin-right:6px}.download-backups .ud-whitespace-warning,.download-backups .ud-bom-warning{background-color:pink;padding:8px;margin:4px;border:1px dotted}.download-backups .ul{list-style:none inside;max-width:800px;margin-top:6px;margin-bottom:12px}#updraft-plupload-modal{margin:16px 0}.download-backups .upload{max-width:610px}.download-backups #plupload-upload-ui{width:100%}.ud_downloadstatus{padding:10px 0}#ud_massactions,#updraft-delete-waitwarning{padding:14px;background:#f1f1f1;position:absolute;left:0;top:100%}#ud_massactions>*,#updraft-delete-waitwarning>*{vertical-align:middle}#ud_massactions .updraftplus-remove{display:inline-block;margin-right:0}#ud_massactions .updraftplus-remove a{text-decoration:none}#ud_massactions .updraft-viewlogdiv a{text-decoration:none;position:relative}small.ud_massactions-tip{display:inline-block;opacity:.5;font-style:italic;margin-left:20px}#updraft-navtab-backups-content .updraft_existing_backups{margin-bottom:35px;position:relative}#updraft-message-modal-innards{padding:4px}#updraft-authenticate-modal{text-align:center;font-size:16px !important}#updraft-authenticate-modal p{font-size:16px}#updraft_delete_form p{margin-top:3px;padding-top:0}#updraft_restore_form .cannot-restore{margin:8px 0}#updraft_restorer_dboptions{padding:12px;margin:8px 0 4px 0;border:dashed 1px}#updraft_restorer_dboptions h4{margin:0 0 6px 0;padding:0}.updraft_debugrow th{vertical-align:top;padding-top:6px;max-width:140px}.expertmode p{font-size:125%}.expertmode .call-wp-action{width:300px;height:22px}.updraftplus-lock-advert{clear:left;max-width:600px}.uncompressed-data{clear:left;max-width:600px}.delete-old-directories{padding:8px;padding-bottom:12px}.active-jobs{width:100%;text-align:center;padding:33px}.job-id{margin-top:0;margin-bottom:8px}.next-resumption{font-weight:bold}.updraft_percentage{z-index:-1;position:absolute;left:0;top:0;text-align:center;background-color:#1d8ec2;transition:width .3s}.curstage{z-index:1;border-radius:2px;margin-top:8px;width:100%;height:26px;line-height:26px;position:relative;text-align:center;font-style:italic;color:#FFF;background-color:#b7b7b7;text-shadow:0 1px 2px rgba(0,0,0,0.3)}.curstage-info{display:inline-block;z-index:2}.retain-files{width:48px}.backup-interval-description tr td div{max-width:670px}#updraft-manualdecrypt-modal{width:85%;margin:6px;margin-left:100px}.directory-permissions{font-size:110%;font-weight:bold}.double-warning{border:1px solid;padding:6px}.raw-backup-info{font-style:italic;font-weight:bold;font-size:120%}.updraft_existingbackup_date{width:22%;max-width:140px}.updraft_existing_backups_wrapper{margin-top:20px;border-top:1px solid #DDD}.updraft-no-backups-msg{text-align:center}.tr-bottom-4{margin-bottom:4px}.existing-backups-table th{padding:8px 10px}.form-table .backup-date{width:172px}.form-table .backup-data{width:426px}.form-table .updraft_backup_actions{width:272px}.existing-date{box-sizing:border-box;max-width:140px;width:25%}.line-break-tr{height:2px;padding:1px;margin:0}.line-break-td{margin:0;padding:0}.td-line-color{height:2px;background-color:#888}.raw-backup{max-width:140px}.existing-backups-actions{padding:1px;margin:0}.existing-backups-border{height:2px;padding:1px;margin:0}.existing-backups-border>td{margin:0;padding:0}.existing-backups-border>div{height:2px;background-color:#AAA}.updraft_existing_backup_date{max-width:140px}.updraftplus-upload{margin-right:6px;float:left;clear:none}.before-restore-button{padding:1px;margin:0}.before-restore-button div{float:none;display:inline-block}.table-separator-tr{height:2px;padding:1px;margin:0}.table-separator-td{margin:0;padding:0}.end-of-table-div{height:2px;background-color:#AAA}.last-backup-job{padding-top:3% !important}.line-height-03{line-height:.3 !important}.line-height-13{line-height:1.3 !important}.line-height-23{line-height:2.3 !important}#updraft_diskspaceused{color:#df6926}#updraft_delete_old_dirs_pagediv{padding-bottom:10px}.fix-time{width:70px}.retain-files{width:70px}.number-input{min-width:50px;max-width:70px}.additional-rule-width{min-width:60px;max-width:70px}.dashicons{line-height:inherit;font-size:inherit}.addon-logo-150{margin-left:30px;margin-top:33px;height:125px;width:150px}.margin-bottom-50{margin-bottom:50px}.premium-container{width:80%}.main-header{background-color:#df6926;height:200px;width:100%}.button-add-to-cart{color:white;border-color:white;float:none;margin-right:17px}.button-add-to-cart:hover,.button-add-to-cart:focus,.button-add-to-cart:active{border-color:#a0a5aa;color:#a0a5aa}.addon-title{margin-top:25px}.addon-text{margin-top:75px}.image-main-div{width:25%;float:left}.text-main-div{width:60%;float:left;text-align:center;color:white;margin-top:16px}.text-main-div-title{font-weight:bold !important;color:white;text-align:center}.text-main-div-paragraph{color:white}.updraftplus-vault-cta{width:100%;text-align:center;margin-bottom:50px}.updraftplus-vault-cta h1{font-weight:bold}.updraftvault-buy{width:225px;height:225px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:50px;position:relative}.updraftplus-vault-cta>.vault-options>.center-vault{width:275px;height:275px}.updraftplus-vault-cta>.vault-options>.center-vault>a{right:21%;font-size:16px;border-width:4px !important}.updraftplus-vault-cta>.vault-options>.center-vault>p{font-size:16px}.updraftvault-buy .button-purchase{right:24%;margin-left:0;line-height:1.7em}.updraftvault-buy hr{height:2px;background-color:#777;margin-top:18px}.right{margin-right:0}.updraftvault-buy .addon-logo-100{height:100px;width:125px;margin-top:7px}.updraftvault-buy .addon-logo-large{margin-top:7px}.updraftvault-buy .button-buy-vault{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:29%;bottom:2%}.premium-addon-div .button-purchase{line-height:1.7em}.updraftvault-buy .button-buy-vault:hover{border-color:darkgrey;color:darkgrey}.premium-addons{margin-top:80px;width:100%;margin:0 auto;display:table}.addon-list{display:table;text-align:center}.premium-addons h1{text-align:center;font-weight:bold}.premium-addons p{text-align:center}.premium-addons .premium-addon-div{width:200px;height:250px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:25px;margin-top:25px;text-align:center;position:relative}.premium-addons .premium-addon-div p{margin-left:2px;margin-right:2px}.premium-addons .premium-addon-div img{width:auto;height:50px;margin-top:7px}.premium-addons .premium-addon-div .hr-alignment{margin-top:44px}.premium-addons .premium-addon-div .dropbox-logo{height:39px;width:150px}.premium-addons .premium-addon-div .azure-logo,.premium-addons .premium-addon-div .onedrive-logo{width:75%;height:24px}.button-purchase{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:25%;bottom:2%}.button-purchase:hover{color:darkgrey;border-color:darkgrey}.premium-addons .premium-addon-div hr{height:2px;background-color:#777;margin-top:18px}.premium-addon-div p{font-style:italic}.addon-list>.premium-addon-div>.onedrive-fix,.addon-list>.premium-addon-div>.azure-logo{margin-top:33px}.addon-list>.premium-addon-div>.dropbox-fix{margin-top:18px}.premium-forgotton-something{margin-top:5%}.premium-forgotton-something h1{text-align:center;font-weight:bold}.premium-forgotton-something p{text-align:center;font-weight:normal}.premium-forgotton-something .button-faq{color:#df6926;border-color:#df6926;margin:0 auto;display:table}.premium-forgotton-something .button-faq:hover{color:#777;border-color:#777}.updraftplusmethod.updraftvault #vaultlogo{padding-left:40px}.updraftplusmethod.updraftvault .vault_primary_option{float:left;width:50%;text-align:center;padding-bottom:20px}.updraftplusmethod.updraftvault .vault_primary_option div{clear:right;padding-top:20px}.updraftplusmethod.updraftvault .clear-left{clear:left}.updraftplusmethod.updraftvault .padding-top-20px{padding-top:20px}.updraftplusmethod.updraftvault .padding-top-14px{padding-top:14px}.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary,.updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary{font-size:18px !important;padding-bottom:20px}.updraftplusmethod.updraftvault #updraftvault_showoptions,.updraftplusmethod.updraftvault #updraftvault_connect{margin-top:8px}.updraftplusmethod.updraftvault #updraftvault_settings_connect input{margin-right:10px}.updraftplusmethod.updraftvault #updraftvault_email{width:280px}.updraftplusmethod.updraftvault #updraftvault_pass{width:200px}.updraftplusmethod.updraftvault #vault-is-connected{margin:0;padding:0}.updraftplusmethod.updraftvault #updraftvault_settings_default p{clear:left}.updraftplusmethod.updraftvault .vault-purchase-option{float:left;width:33%;text-align:center;padding-top:20px}.updraftplusmethod.updraftvault .vault-purchase-option-size{font-size:200%;font-weight:bold}.updraftplusmethod.updraftvault .vault-purchase-option-link{clear:both;font-size:150%}.updraftplusmethod.updraftvault .vault-purchase-option-or{clear:both;font-size:115%;font-style:italic}.autobackup-image{clear:left;float:left;width:110px;height:110px}.autobackup-description{width:100%}.advert-description{float:left;clear:right;padding:4px 10px 8px 10px;width:70%;clear:right;vertical-align:top}.advert-btn{display:inline-block;min-width:10%;vertical-align:top;margin-bottom:8px}.advert-btn:first-of-type{margin-top:25px}.advert-btn a{display:block;cursor:pointer}a.btn-get-started{background:#FFF;border:2px solid #df6926;border-radius:4px;color:#df6926;display:inline-block;margin-left:10px !important;margin-bottom:7px !important;font-size:18px !important;line-height:20px;min-height:28px;padding:11px 10px 5px 10px;text-transform:uppercase;text-decoration:none}.circle-dblarrow{border:1px solid #df6926;border-radius:100%;display:inline-block;font-size:17px;line-height:17px;margin-left:5px;width:20px;height:20px;text-align:center}.expertmode .advanced_settings_container{height:auto;overflow:hidden}.expertmode .advanced_settings_container .advanced_settings_menu{float:none;border-bottom:1px solid #ccc}.expertmode .advanced_settings_container .advanced_settings_content{padding-top:5px;float:none;width:auto;overflow:auto}.expertmode .advanced_settings_container .advanced_settings_content h3:first-child{margin-top:5px !important}.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools{display:none}.expertmode .advanced_settings_container .advanced_settings_content .site_info{display:block}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:inline-block;cursor:pointer;padding:5px;color:#000}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text{font-size:16px}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover{background-color:#eaeaea}.expertmode .advanced_settings_container .advanced_settings_menu .active{background-color:#3498db;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_menu .active:hover{background-color:#72c5fd;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_content input#import_settings{height:auto !important}div#updraft-wrap a{cursor:pointer !important}.updraftcentral_wizard_option{width:45%;float:left;text-align:center}.updraftcentral_wizard_option label{margin-bottom:8px}#updraftcentral_keys_table{display:none}.create_key_container{border:1px solid;border-radius:4px;padding:0 0 6px 6px;margin-bottom:8px}.updraftcentral_cloud_connect{border-radius:4px;border:1px solid #000;padding:0 20px;margin-top:30px;background-color:#FFF}.updraftcentral_cloud_error{border:1px solid #000;padding:3px 10px;border-left:3px solid #F00;background-color:#FFF;margin-bottom:10px}.updraftcentral_cloud_info{border:1px solid #000;padding:3px 10px;border-left:3px solid #ef8f31;background-color:#FFF;margin-bottom:10px}.updraftplus_spinner.spinner{padding-left:25px;float:none}.updraftplus_spinner.spinner.visible{visibility:visible}.updraftcentral_cloud_notices .updraftplus_spinner{margin-top:-5px}.updraftcentral-subheading{font-size:14px;margin-top:-10px;margin-bottom:20px}#updraftcentral_cloud_form input#email,#updraftcentral_cloud_form input#password{min-width:250px}.updraftcentral-data-consent{font-size:13px;margin-bottom:10px}.updraftcentral_cloud_wizard_image{float:left;min-width:100px;margin-right:25px}.updraftcentral_cloud_wizard{float:left}.updraftcentral_cloud_clear{clear:both}.updraftplus-settings-footer{margin-top:30px}.updraftplus-top-menu{padding:.5em}#updraft_inpage_backup #updraft_activejobs_table{background:transparent}#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link{float:none}#updraft_inpage_backup #updraft_activejobsrow .updraft_row{-ms-flex-direction:column;flex-direction:column;padding-left:20px;padding-right:20px}#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container{width:100%}#updraft_inpage_backup #updraft_activejobs_table{overflow:inherit}#updraft_inpage_backup span#updraft_lastlogcontainer{padding:18px;background:#fafafa;display:block;font-size:90%;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup div#updraft_activejobsrow{background:#fafafa;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup #updraft_lastlogmessagerow>div{background:transparent;padding:0}#updraft_inpage_backup .last-message>strong{display:block;margin-top:13px}@media only screen and (min-width:1024px){#updraft_activejobsrow .updraft_row{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}#updraft_activejobsrow .updraft_row .updraft_col{-ms-flex:auto;flex:auto}#updraft_activejobsrow .updraft_progress_container{width:calc(100% - 230px)}}@media only screen and (min-width:782px){.settings_page_updraftplus input[type=text],.settings_page_updraftplus input[type=password],.settings_page_updraftplus input[type=number]{line-height:1.42;height:27px;padding:2px 6px;color:#555}.settings_page_updraftplus input[type="number"]{height:31px}#ud_massactions.active,#updraft-delete-waitwarning.active{position:fixed;bottom:0;left:160px;right:0;top:auto;background:#FFF;z-index:3;box-shadow:0 0 10px rgba(0,0,0,0.2)}body.folded #ud_massactions.active,body.folded #updraft-delete-waitwarning.active{left:36px}.updraft-after-form-table{margin-left:250px}}@media only screen and (min-width:782px) and (max-width:960px){body.auto-fold #ud_massactions.active,body.auto-fold #updraft-delete-waitwarning.active{left:36px}}@media only screen and (max-width:782px){#updraft-wrap{margin-right:0}#updraft-wrap .form-table td{padding-right:0}label.updraft_checkbox{margin-bottom:8px;margin-top:8px;margin-left:36px}.updraft_retain_rules{position:relative;margin-right:0;border:1px solid #CCC;padding:5px;margin-bottom:-1px}.updraft_retain_rules_delete{position:absolute;right:0;top:5px}a[id*=updraft_retain_]{display:block;padding:15px 15px 15px 0}label.updraft_checkbox>input[type=checkbox]{margin-left:-33px}#updraft-backupnow-button{margin:0;display:block;width:100%}.updraft_next_scheduled_backups_wrapper>.updraft_backup_btn_wrapper{padding-top:0}#ud_massactions,#updraft-delete-waitwarning{width:100%;box-sizing:border-box;text-align:center}#ud_massactions.active{position:fixed;top:auto;bottom:0;width:100%;box-sizing:border-box;text-align:center;box-shadow:0 -3px 15px rgba(0,0,0,0.08);background:#FFF;z-index:3}#ud_massactions strong{display:block;margin-bottom:5px}small.ud_massactions-tip{display:block}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:normal}.existing-backups-table .backup_date_label .clear-right{display:inline-block}table.widefat.existing-backups-table{border:0;box-shadow:none;background:transparent}.existing-backups-table thead{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;padding:0;margin:0}.existing-backups-table tr{display:block;margin-bottom:.625em;padding-bottom:16.625px;width:100%;padding:0;margin:0;margin-bottom:10px;background:#FFF;box-shadow:0 2px 3px rgba(0,0,0,0.1)}.existing-backups-table td{border-bottom:1px solid #DDD;display:block;font-size:.9em;text-align:left;width:100%;padding:10px;margin:0}.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{content:attr(data-label);font-weight:bold;display:block;position:relative;left:auto;padding-bottom:10px;width:auto;text-align:left}.existing-backups-table td:last-child{border-bottom:0}.form-table td.updraft_existingbackup_date{width:inherit;max-width:100%}.existing-backups-table td.before-restore-button{min-height:36px}.updraft_next_scheduled_backups_wrapper{-ms-flex-direction:column;flex-direction:column}.updraft_next_scheduled_backups_wrapper>div{width:100%}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row{position:relative}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected{background-color:#FFF;border-left:4px solid #0572aa}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select){margin-left:50px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select{width:50px !important;position:absolute;left:0;top:0;box-sizing:border-box;height:100%;z-index:1;border:0;border-right:1px solid rgba(0,0,0,0.05)}#updraft-navtab-backups-content .updraft_existing_backups input[type="checkbox"]{height:25px}.updraft_migrate_intro button.button.button-primary.button-hero{display:block;margin-right:0;width:100%;max-width:100%}.updraftclone-main-row{-ms-flex-direction:column;flex-direction:column}.updraftclone-main-row>div{width:auto;max-width:none;margin-right:0;margin-bottom:10px}.form-table th{padding-bottom:10px}}@media screen and (max-width:600px){.updraft_next_scheduled_entity{float:none;width:100%;margin-bottom:2em}.updraft_time_now_wrapper{margin-top:0}#updraft_lastlogmessagerow h3{margin-bottom:5px}#updraft_lastlogmessagerow .updraft-log-link{display:block;float:none;margin:0;margin-bottom:10px}}@media only screen and (min-width:768px){.addon-activation-notice{left:20em}.existing-backups-table tbody tr:hover{background:#f1f1f1}.existing-backups-table tbody tr td.before-restore-button{position:relative}.form-table .existing-backups-table thead th.check-column{padding-left:6px}.existing-backups-table tr td:first-child{border-left:4px solid transparent}.existing-backups-table tr.backuprowselected td:first-child{border-left-color:#0572aa}}@media screen and (min-width:670px){.expertmode .advanced_settings_container .advanced_settings_menu{float:left;width:215px;border-right:1px solid #ccc;border-bottom:0}.expertmode .advanced_settings_container .advanced_settings_content{padding-left:10px;padding-top:0}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:block}}@media only screen and (max-width:1068px){.updraft-more-plugins .udp-box{width:calc(50% - 10px);margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:100px}}@media only screen and (max-width:600px){.updraft-more-plugins .udp-box{width:100%;margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:auto}table.updraft_feat_table{display:block}table.updraft_feat_table tr{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}table.updraft_feat_table td{display:block}table.updraft_feat_table td:first-child{width:100%;border-bottom:0}table.updraft_feat_table td:not(:first-child){width:50%;box-sizing:border-box}table.updraft_feat_table td:first-child:empty{display:none}td[data-colname]::before{content:attr(data-colname);font-size:.8rem;color:#CCC;line-height:1}}
|
2 |
/*# sourceMappingURL=updraftplus-admin.min.css.map */
|
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["css/updraftplus-admin.css"],"names":[],"mappings":"AAAA;;CAEC;EACC,WAAW;EACX,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb,uBAAuB;EACvB;;CAED;;AAED,uBAAuB;AACvB;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX;;AAED,2BAA2B;;AAE3B,kBAAkB;AAClB;CACC,sBAAsB;CACtB;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;AACtB,eAAe;AACf;CACC,mBAAmB;CACnB;;AAED,sBAAsB;AACtB,aAAa;AACb;CACC,sBAAsB;CACtB;;AAED,oBAAoB;;AAEpB;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,uCAAuC;CACvC;;AAED;CACC,sBAAsB;CACtB;;AAED;;CAEC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,eAAe;CACf,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,aAAa;CACb;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;;CAEC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED,qBAAqB;;AAErB,kBAAkB;AAClB;CACC,kBAAkB;CAClB,oBAAoB;CACpB,oBAAoB;CACpB,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,wBAAwB;CACxB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,yBAAyB;CACzB,uBAAuB;CACvB,mBAAmB;CACnB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,gCAAgC;CAChC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;;EAEE;;AAEF;CACC,cAAc;CACd;;AAED,gBAAgB;;AAEhB;CACC,qBAAc;CAAd,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,UAAU;CACV;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,YAAQ;KAAR,QAAQ;CACR;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED,yBAAyB;AACzB;CACC,cAAc;CACd,mBAAmB;CACnB,SAAS;CACT,OAAO;CACP,aAAa;CACb,4BAA4B;CAC5B,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,2BAAuB;KAAvB,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,8BAAiB;KAAjB,iBAAiB;CACjB;;AAED;;CAEC,YAAY;CACZ;;AAED;;CAEC;EACC,wBAAoB;MAApB,oBAAoB;EACpB,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,6BAAgB;MAAhB,gBAAgB;EAChB;;CAED;;EAEC,aAAa;EACb;;CAED;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,qBAAqB;CACrB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,mBAAmB;CACnB,oBAAoB;CACpB;;AAED,sBAAsB;AACtB;CACC,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,oBAAoB;CACpB,uBAAuB;CACvB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,aAAa;CACb;;AAED,oBAAoB;AACpB;CACC,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,qCAAqC;AACrC;CACC,oBAAoB;CACpB,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED,aAAa;;AAEb;CACC,sBAAsB;CACtB;;AAED;;;CAGC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,yBAAyB;CACzB,gCAAgC;CAChC;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,cAAc;CACd;;AAED,6BAA6B;AAC7B;CACC,mBAAmB;CACnB,qBAAc;CAAd,cAAc;CACd,2BAAsB;KAAtB,sBAAsB;CACtB,8BAAsB;KAAtB,sBAAsB;CACtB,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB,oBAAoB;CACpB,8BAA8B;CAC9B;;AAED;;CAEC,cAAc;CACd,kBAAkB;CAClB,aAAa;CACb,UAAU;CACV;;AAED;CACC,sBAAsB;CACtB,kBAAkB;CAClB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB,qBAAqB;CACrB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,WAAW;CACX,qBAAqB;CACrB;;AAED;;EAEE;AACF;CACC,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB,UAAU;CACV,iBAAiB;CACjB,oBAAoB;CACpB,qBAAqB;CACrB;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,6BAA6B;CAC7B;;AAED;CACC,WAAW;CACX,WAAW;CACX;;AAED;CACC,cAAc;CACd,oFAAoF;CACpF,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB,iCAAiC;CACjC,iDAAiD;CACjD;;AAED;CACC,wGAAwG;CACxG;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,kEAAkE;CAClE,WAAW;CACX;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,iBAAiB;CACjB,8BAAsB;KAAtB,sBAAsB;CACtB,oBAAgB;KAAhB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB,aAAa;CACb,yBAAyB;CACzB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,+BAA+B;CAC/B,qBAAc;CAAd,cAAc;CACd,sBAAwB;KAAxB,wBAAwB;CACxB,uBAAoB;KAApB,oBAAoB;CACpB;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,UAAU;CACV,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,0FAA0F;CAC1F,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,sBAAsB;CACtB,YAAY;CACZ;;GAEE;CACF;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,4BAA4B;CAC5B,+BAA+B;CAC/B,YAAY;CACZ,gBAAgB;CAChB,0CAA0C;CAC1C;;AAED;CACC,oBAAoB;CACpB,6BAA6B;CAC7B,gCAAgC;CAChC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,oBAAoB;CACpB,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,0BAA0B;CAC1B,yBAAyB;CACzB,YAAY;CACZ,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB,WAAW;CACX;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;;AAEtB,4BAA4B;;AAE5B;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX;;AAED;;CAEC,kBAAkB;CAClB,gBAAgB;CAChB,oBAAoB;CACpB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB,mBAAmB;CACnB,eAAe;CACf;;AAED;;CAEC,sBAAsB;CACtB,iBAAiB;CACjB;;AAED;;;CAGC,yBAAyB;CACzB,iBAAiB;CACjB;;AAED;;CAEC;;EAEC,sBAAsB;EACtB;;CAED;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB;;AAED;;;CAGC,eAAe;CACf;;AAED;CACC,eAAe;CACf,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd,cAAc;CACd,uBAAuB;CACvB,mBAAmB;CACnB;;AAED;;;CAGC,aAAa;CACb,iBAAiB;CACjB,aAAa;CACb,wBAAwB;CACxB,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,eAAe;CACf,yBAAyB;CACzB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED,mCAAmC;;AAEnC;CACC,iBAAiB;CACjB;;AAED;;CAEC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,cAAc;CACd;;AAED;CACC,8BAA8B;CAC9B,aAAa;CACb,eAAe;CACf,2BAA2B;CAC3B,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,4BAA4B;CAC5B,8BAA8B;CAC9B,2BAA2B;CAC3B,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,aAAa;CACb,aAAa;CACb,8BAA8B;CAC9B;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX;;AAED,mBAAmB;;AAEnB,oEAAoE;AACpE;;CAEC,wBAAwB;CACxB;;AAED;;CAEC,gCAAgC;CAChC;;AAED;;CAEC,+BAA+B;CAC/B;;AAED;;CAEC,wBAAwB;CACxB;;AAED,+BAA+B;AAC/B;CACC,mBAAmB;CACnB,cAAc;CACd,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED,8BAA8B;AAC9B;CACC,mBAAmB;CACnB,cAAc;CACd,YAAY;CACZ,uBAAuB;CACvB,oBAAoB;CACpB,mBAAmB;CACnB,gBAAgB;CAChB,yCAAyC;CACzC;;AAED;CACC,aAAa;CACb,YAAY;CACZ,aAAa;CACb,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB,OAAO;CACP,WAAW;CACX,2BAA2B;CAC3B,4BAA4B;CAC5B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd,YAAY;CACZ,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb,8BAA8B;CAC9B,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,sBAAsB;CACtB,4BAA4B;CAC5B;;AAED;;CAEC,mBAAmB;CACnB,YAAY;CACZ,iBAAiB;CACjB;;AAED,mDAAmD;AACnD;CACC,eAAe;CACf,0BAA0B;CAC1B,mBAAmB;CACnB,yBAAyB;CACzB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,uBAAuB;CACvB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,+BAA+B;CAC/B;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB,wBAAwB;CACxB,0BAA0B;CAC1B;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,uBAAoB;KAApB,oBAAoB;CACpB,uBAA+B;KAA/B,+BAA+B;CAC/B,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,UAAU;CACV,mBAAmB;CACnB,wBAAwB;CACxB,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;;CAEC;EACC,2BAAuB;MAAvB,uBAAuB;EACvB,mBAAmB;EACnB,uBAAoB;MAApB,oBAAoB;EACpB;;CAED;EACC,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,cAAc;CACd,yCAAyC;CACzC,mBAAmB;CACnB;;AAED;CACC,UAAU;CACV;;AAED;CACC,4BAAmB;KAAnB,2BAAmB;KAAnB,mBAAmB;CACnB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;;EAEE;AACF;CACC,qBAAc;CAAd,cAAc;CACd,wBAAoB;KAApB,oBAAoB;CACpB,oBAAgB;KAAhB,gBAAgB;CAChB,uBAA+B;KAA/B,+BAA+B;CAC/B,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,uBAAuB;CACvB,WAAW;CACX;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,UAAU;CACV,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;CACC,qCAAqC;CACrC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,sCAAsC;CACtC,iBAAiB;CACjB,4BAA4B;CAC5B,uCAAuC;CACvC,qBAAqB;CACrB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,4CAA4C;CAC5C,aAAa;CACb;;AAED;CACC,eAAe;CACf,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,aAAa;CACb;;AAED;CACC,aAAa;CACb,wBAAwB;CACxB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV,oBAAoB;CACpB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB,kBAAkB;CAClB,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,cAAc;CACd,sBAAsB;CACtB,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED,qBAAqB;AACrB;CACC,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,iBAAiB;CACjB,aAAa;CACb,cAAc;CACd,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,iBAAiB;CACjB,eAAe;CACf,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,oCAAoC;CACpC,+BAA+B;CAC/B,oCAAoC;CACpC;;AAED;CACC,cAAc;CACd;;AAED;;CAEC;EACC,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB;;CAED;;AAED,oCAAoC;AACpC;CACC,WAAW;CACX;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;;AAEH;CACC,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,+BAA+B;CAC/B,uBAAuB;CACvB,wBAAwB;CACxB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,yBAAyB;CACzB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,iBAAiB;CACjB,UAAU;CACV,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,uBAAuB;CACvB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,+BAA+B;CAC/B,mBAAmB;CACnB,QAAQ;CACR,UAAU;CACV;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,sBAAsB;CACtB,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,2BAA2B;CAC3B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,qBAAqB;CACrB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,UAAU;CACV,SAAS;CACT,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX,mBAAmB;CACnB,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,0BAA0B;CAC1B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,2BAA2B;CAC3B;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CAGC,uBAAuB;CACvB,iBAAiB;CACjB,WAAW;CACX;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,eAAe;CACf;;AAED;CACC,qBAAqB;CACrB;;AAED;;GAEG;;AAEH,6BAA6B;AAC7B;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED,aAAa;AACb,oHAAoH;;AAEpH;CACC,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,WAAW;CACX;;AAED,iBAAiB;;AAEjB;CACC,0BAA0B;CAC1B,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,6BAA6B;CAC7B,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED,qBAAqB;;AAErB,iBAAiB;;AAEjB;CACC,YAAY;CACZ,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd;;AAED;CACC,WAAW;CACX,gBAAgB;CAChB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,uBAAuB;CACvB,gBAAgB;CAChB;;AAED,qBAAqB;;AAErB,oBAAoB;;AAEpB;CACC,iBAAiB;CACjB,YAAY;CACZ,eAAe;CACf,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,WAAW;CACX,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,wBAAwB;;;AAGxB,mFAAmF;;AAEnF;CACC,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,eAAe;CACf,eAAe;CACf;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB;;AAED,gCAAgC;;AAEhC;CACC,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB;;AAED,mCAAmC;AACnC;AACA,6BAA6B;AAC7B;iBACiB;AACjB,iBAAiB;CAChB,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,2BAA2B;CAC3B,WAAW;CACX,aAAa;CACb,oBAAoB;CACpB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,0BAA0B;CAC1B,mBAAmB;CACnB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,2BAA2B;CAC3B,kBAAkB;CAClB,iBAAiB;CACjB,4BAA4B;CAC5B,0BAA0B;CAC1B,sBAAsB;CACtB;;AAED;CACC,0BAA0B;CAC1B,oBAAoB;CACpB,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED,uCAAuC;AACvC,6CAA6C;AAC7C;CACC,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,4CAA4C;CAC5C;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,cAAc;CACd;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,uBAAuB;CACvB,gBAAgB;CAChB,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,4BAA4B;CAC5B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,+BAA+B;CAC/B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAAuB;KAAvB,uBAAuB;CACvB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,eAAe;CACf,eAAe;CACf,2CAA2C;CAC3C;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,WAAW;CACX;;AAED;CACC,eAAe;CACf,iBAAiB;CACjB;;AAED;;CAEC;EACC,qBAAc;EAAd,cAAc;EACd,yBAAsB;MAAtB,sBAAsB;EACtB;;CAED;EACC,eAAW;MAAX,WAAW;EACX;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED;;CAEC;;;EAGC,yBAAyB;EACzB,kBAAkB;EAClB,6BAA6B;EAC7B,aAAa;EACb,iBAAiB;EACjB,YAAY;EACZ;;CAED;EACC,aAAa;EACb;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,YAAY;EACZ,SAAS;EACT,UAAU;EACV,iBAAiB;EACjB,WAAW;EACX,wCAAwC;EACxC;;CAED;EACC,WAAW;EACX;;CAED;EACC,mBAAmB;EACnB;;CAED;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;;AAED;;CAEC;EACC,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,aAAa;EACb,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT;;CAED;EACC,eAAe;EACf,0BAA0B;EAC1B;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,UAAU;EACV,eAAe;EACf,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB,4CAA4C;EAC5C,iBAAiB;EACjB,WAAW;EACX;;CAED;EACC,eAAe;EACf,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf;;AAEF;;;;;;;;;IASI;;CAEH;EACC,oBAAoB;EACpB;;CAED;EACC,sBAAsB;EACtB;;CAED;EACC,UAAU;EACV,iBAAiB;EACjB,wBAAwB;EACxB;;CAED;EACC,aAAa;EACb,oBAAoB;EACpB,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,WAAW;EACX,mBAAmB;EACnB,WAAW;EACX,WAAW;EACX,UAAU;EACV;;CAED;EACC,eAAe;EACf,sBAAsB;EACtB,yBAAyB;EACzB,YAAY;EACZ,WAAW;EACX,UAAU;EACV,oBAAoB;EACpB,iBAAiB;EACjB,yCAAyC;EACzC;;CAED;EACC,8BAA8B;EAC9B,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,UAAU;EACV;;CAED;EACC;;;IAGE;EACF,0BAA0B;EAC1B,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ,iBAAiB;EACjB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,uBAAuB;EACvB,+BAA+B;EAC/B;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,uBAAuB;EACvB,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,uBAAuB;EACvB,aAAa;EACb,WAAW;EACX,aAAa;EACb,4CAA4C;EAC5C;;CAED;EACC,aAAa;EACb;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;EACC,qBAAqB;EACrB;;CAED;;AAED;;CAEC;EACC;;CAED;EACC,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB;;CAED;EACC,cAAc;EACd;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf,YAAY;EACZ,UAAU;EACV,oBAAoB;EACpB;;CAED;;AAED;CACC;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;EACC,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,mCAAmC;EACnC;;CAED;EACC,2BAA2B;EAC3B;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,aAAa;EACb,2CAA2C;EAC3C,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf;;CAED;;AAED;;CAEC;EACC,wBAAwB;EACxB,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,qBAAc;EAAd,cAAc;EACd,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,WAAW;EACX,uBAAuB;EACvB;;CAED;EACC,cAAc;EACd;;CAED;EACC,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;EACZ,eAAe;EACf;;CAED","file":"updraftplus-admin.min.css","sourcesContent":["@keyframes udp_blink {\n\n\tfrom {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t}\n\n\tto {\n\t\topacity: 0.4;\n\t\ttransform: scale(0.85);\n\t}\n\n}\n\n/* Widths and sizing */\n.max-width-600 {\n\tmax-width: 600px;\n}\n\n.width-900 {\n\tmax-width: 900px;\n}\n\n.width-80 {\n\twidth: 80%;\n}\n\n/* End widths and sizing */\n\n/* Font styling */\n.no-decoration {\n\ttext-decoration: none;\n}\n\n.bold {\n\tfont-weight: bold;\n}\n\n/* End font styling */\n/* Alignment */\n.center-align-td {\n\ttext-align: center;\n}\n\n/* End of Alignment */\n/* Padding */\n.remove-padding {\n\tpadding: 0 !important;\n}\n\n/* End of padding */\n\n.updraft-text-center {\n\ttext-align: center;\n}\n\n.autobackup {\n\tpadding: 6px;\n\tmargin: 8px 0px;\n}\n\nul .disc {\n\tlist-style: disc inside;\n}\n\n.dashicons-log-fix {\n\tdisplay: inherit;\n}\n\n.udpdraft__lifted {\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n}\n\n#updraft-wrap a .dashicons {\n\ttext-decoration: none;\n}\n\n.updraft-field-description,\ntable.form-table td p.updraft-field-description {\n\tfont-size: 90%;\n\tline-height: 1.2;\n\tfont-style: italic;\n\tmargin-bottom: 5px;\n}\n\n/* Input boxes */\nlabel.updraft_checkbox {\n\tdisplay: block;\n\tmargin-bottom: 4px;\n\tmargin-left: 26px;\n}\n\nlabel.updraft_checkbox > input[type=checkbox] {\n\tmargin-left: -25px;\n}\n\ndiv[id*=\"updraft_include_\"] {\n\tmargin-bottom: 9px;\n}\n\n/* Input boxes */\n.settings_page_updraftplus input[type=\"file\"] {\n\tborder: none;\n}\n\n.settings_page_updraftplus .wipe_settings {\n\tpadding-bottom: 10px;\n}\n\n.settings_page_updraftplus input[type=\"text\"] {\n\tfont-size: 14px;\n}\n\n.settings_page_updraftplus select {\n\tborder-radius: 4px;\n\tmax-width: 100%;\n}\n\ninput.updraft_input--wide,\ntextarea.updraft_input--wide {\n\tmax-width: 442px;\n\twidth: 100%;\n}\n\n#updraft-wrap .button-large {\n\tfont-size: 1.3em;\n}\n\n/* End input boxes */\n\n/* Main Buttons */\n.main-dashboard-buttons {\n\tborder-width: 4px;\n\tborder-radius: 12px;\n\tletter-spacing: 0px;\n\tfont-size: 17px;\n\tfont-weight: bold;\n\tpadding-left: 0.7em;\n\tpadding-right: 2em;\n\tpadding: 0.3em 1em;\n\tline-height: 1.7em;\n\tbackground: transparent;\n\tposition: relative;\n\tborder: 2px solid;\n\ttransition: all 0.2s;\n\tvertical-align: baseline;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tline-height: 1.3em;\n\tmargin-left: .3em;\n\ttext-transform: none;\n\tline-height: 1;\n\ttext-decoration: none;\n}\n\n.button-restore {\n\tborder-color: rgb(98, 158, 192);\n\tcolor: rgb(98, 158, 192);\n}\n\n.dashboard-main-sizing {\n\tborder-width: 4px;\n\twidth: 190px;\n\tline-height: 1.7em;\n}\n\np.updraftplus-option {\n\tmargin-top: 0;\n\tmargin-bottom: 5px;\n}\n\np.updraftplus-option-inline {\n\tdisplay: inline-block;\n\tpadding-right: 20px;\n}\n\nspan.updraftplus-option-label {\n\tdisplay: block;\n}\n\n/*\n* MIGRATE - CLONE\n*/\n\n#updraft-navtab-migrate-content .postbox {\n\tpadding: 18px;\n}\n\n/* Clone Rows */\n\n.updraftclone-main-row {\n\tdisplay: flex;\n}\n\n.updraftclone-tokens {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tmargin-right: 20px;\n\tmax-width: 300px;\n}\n\n.updraftclone-tokens p {\n\tmargin: 0;\n}\n\n.updraftclone_action_box {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tflex: 1;\n}\n\n.updraftclone_action_box p:first-child {\n\tmargin-top: 0;\n}\n\n.updraftclone_action_box p:last-child {\n\tmargin-bottom: 0;\n}\n\nspan.tokens-number {\n\tfont-size: 46px;\n\tdisplay: block;\n}\n\n/* Clone header button */\n.button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\theight: 100%;\n\tborder-left: 1px solid #CCC;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box {\n\tmargin-right: 20px;\n\twidth: 100%;\n\tflex-basis: 100%;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\tfloat: none;\n}\n\n@media (min-width: 1024px) {\n\n\t.updraft_migrate_widget_temporary_clone_stage0_container {\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box {\n\t\tflex-basis: 45%;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n\t.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\t\tfloat: right;\n\t}\n\n}\n\n.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n\tline-height: inherit;\n}\n\n.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: inline-block;\n}\n\n.opened .updraft_migrate_widget_temporary_clone_stage0 {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 8px;\n\tmargin-bottom: 21px;\n}\n\n/* Clone list table */\n.clone-list {\n\tclear: both;\n\twidth: 100%;\n\tmargin-top: 40px;\n}\n\n.clone-list table {\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.clone-list table tr th {\n\tbackground: #E4E4E4;\n}\n\n.clone-list table tr td {\n\tbackground: #F5F5F5;\n\tword-break: break-word;\n}\n\n.clone-list table tr:nth-child(odd) td {\n\tbackground: #FAFAFA;\n}\n\n.clone-list table td,\n.clone-list table th {\n\tpadding: 6px;\n}\n\n/* Clone Progress */\n.updraftplus-clone .updraft_row {\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nbutton#updraft_migrate_createclone + .updraftplus_spinner {\n\tmargin-top: 13px;\n}\n\n/* Clone - Show step 1 info button */\n.button.button-hero.updraftclone_show_step_1 {\n\twhite-space: normal;\n\theight: auto;\n\tline-height: 14px;\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n}\n\n.button.button-hero.updraftclone_show_step_1 span.dashicons {\n\theight: auto;\n}\n\n.updraftplus_clone_status {\n\tcolor: red;\n}\n\n/* MIGRATE */\n\na.updraft_migrate_add_site--trigger span.dashicons {\n\ttext-decoration: none;\n}\n\n.button-restore:hover, .button-migrate:hover, .button-backup:hover,\n.button-view-log:hover, .button-mass-selectors:hover,\n.button-delete:hover, .button-entity-backup:hover, .udp-button-primary:hover {\n\tborder-color: #DF6926;\n\tcolor: #DF6926;\n}\n\n.button-migrate {\n\tcolor: rgb(238, 169, 32);\n\tborder-color: rgb(238, 169, 32);\n}\n\n#updraft_migrate_tab_main {\n\tpadding: 8px;\n}\n\n.updraft_migrate_widget_module_content {\n\tbackground: #FFF;\n\tborder-radius: 0;\n\tposition: relative;\n}\n\nbody.js #updraft_migrate .updraft_migrate_widget_module_content {\n\tdisplay: none;\n}\n\n.updraft_migrate_widget_module_content > h3,\ndiv[class*=\"updraft_migrate_widget_temporary_clone_stage\"] > h3 {\n\tmargin-top: 0;\n}\n\n/* Migrate / Clone headers */\n.updraft_migrate_widget_module_content header {\n\tposition: relative;\n\tdisplay: flex;\n\talign-content: center;\n\tjustify-items: center;\n\tmargin-top: -18px;\n\tmargin-left: -18px;\n\tmargin-right: -18px;\n\tmargin-bottom: 15px;\n\tborder-bottom: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content header h3,\n.updraft_migrate_widget_module_content header button.button.close {\n\tpadding: 10px;\n\tline-height: 20px;\n\theight: auto;\n\tmargin: 0;\n}\n\n.updraft_migrate_widget_module_content button.button.close {\n\ttext-decoration: none;\n\tpadding-left: 5px;\n\tborder-right: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content button.button.close .dashicons {\n\tmargin-top: 1px;\n}\n\n.updraft_migrate_widget_module_content header h3 {\n\tmargin: 0;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero {\n\tmax-width: 235px;\n\tword-wrap: normal;\n\twhite-space: normal;\n\tline-height: 1;\n\theight: auto;\n\tpadding-top: 13px;\n\tpadding-bottom: 13px;\n\ttext-align: left;\n\tposition: relative;\n\tmargin-right: 10px;\n\tmargin-bottom: 10px;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero .dashicons {\n\tposition: absolute;\n\tleft: 10px;\n\ttop: calc(50% - 8px);\n}\n\n/*\njquery UI Accordion module\n*/\n#updraft_migrate .ui-widget-content a {\n\tcolor: #1C94C4;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header {\n\tbackground: #F6F6F6;\n\tmargin: 0;\n\tborder-radius: 0;\n\tpadding-left: 0.5em;\n\tpadding-right: 0.7em;\n}\n\n#updraft-wrap .ui-widget {\n\tfont-family: inherit;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w {\n\tbackground-position: -96px 0px;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s {\n\tbackground-position: -64px 0;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon {\n\tleft: auto;\n\tright: 5px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px rgba(91, 157, 217, 0.22), 0 0 2px 1px rgba(30, 140, 190, 0.3);\n\tbackground: #FFF;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons {\n\tcolor: #0572AA;\n\topacity: 1;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active {\n\tbackground: #F6F6F6;\n\tborder-bottom: 2px solid #0572AA;\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus {\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3), 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child) {\n\tborder-top: none;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .dashicons {\n\topacity: 0.4;\n\tmargin-right: 10px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n\tz-index: 1;\n}\n\n.updraft_next_scheduled_backups_wrapper {\n\tdisplay: flex;\n\tbackground: #FFF;\n\tjustify-items: center;\n\tflex-wrap: wrap;\n}\n\n.updraft_next_scheduled_backups_wrapper > div {\n\twidth: 50%;\n\tbackground: #FFF;\n\theight: auto;\n\t/* padding: 18px 33px; */\n\tpadding: 33px;\n\tbox-sizing: border-box;\n}\n\n.updraft_backup_btn_wrapper {\n\ttext-align: center;\n\tborder-left: 1px solid #F1F1F1;\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n#updraft-delete-waitwarning span.spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tmargin: 0;\n\tmargin-right: 10px;\n}\n\nbutton#updraft-backupnow-button .spinner,\nbutton#updraft-backupnow-button .dashicons-yes {\n\tdisplay: none;\n}\n\nbutton#updraft-backupnow-button.loading .spinner {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tmargin-top: 13px;\n\tmargin-right: 0;\n}\n\nbutton#updraft-backupnow-button.loading {\n\tbackground-color: #EFEFEF;\n\tborder-color: #CCC;\n\ttext-shadow: 0 -1px 1px #BBC3C7, 1px 0 1px #BBC3C7, 0 1px 1px #BBC3C7, -1px 0 1px #BBC3C7;\n\tbox-shadow: none;\n}\n\nbutton#updraft-backupnow-button.finished .dashicons-yes {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tfont-size: 42px;\n\tmargin-right: 0;\n\tmargin-top: 2px;\n}\n\n.updraft_next_scheduled_entity {\n\twidth: 50%;\n\tdisplay: inline-block;\n\tfloat: left;\n\t/*\n\tpadding: 20px 20px 10px 20px;\n\t*/\n}\n\n.updraft_next_scheduled_entity .dashicons {\n\tcolor: #CCC;\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_entity strong {\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_heading {\n\tmargin-bottom: 10px;\n}\n\n.updraft_next_scheduled_date_time {\n\tcolor: #46A84B;\n}\n\n.updraft_time_now_wrapper {\n\tmargin-top: 68px;\n\twidth: 100%;\n}\n\n.updraft_time_now_label, .updraft_time_now {\n\tdisplay: inline-block;\n\tpadding: 7px;\n}\n\n.updraft_time_now_label {\n\tbackground: #B7B7B7;\n\tborder-top-left-radius: 4px;\n\tborder-bottom-left-radius: 4px;\n\tcolor: #FFF;\n\tmargin-right: 0;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);\n}\n\n.updraft_time_now {\n\tbackground: #F1F1F1;\n\tborder-top-right-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tmargin-left: -3px;\n}\n\n#updraft_lastlogmessagerow {\n\tmargin: 6px 0;\n}\n\n#updraft_lastlogmessagerow {\n\tclear: both;\n\tpadding: 0.25px 0;\n}\n\n#updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: right;\n\tmargin-top: -2.5em;\n\tmargin-right: 2px;\n}\n\n#updraft_lastlogmessagerow > div {\n\tclear: both;\n\tbackground: #FFF;\n\tpadding: 18px;\n}\n\n#updraft_activejobs_table {\n\toverflow: hidden;\n\twidth: 100%;\n\tbackground: #FAFAFA;\n\tpadding: 0;\n}\n\n.updraft_requeststart {\n\tpadding: 15px 33px;\n\ttext-align: center;\n}\n\n.updraft_requeststart .spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tvertical-align: middle;\n\tmargin-top: -2px;\n}\n\na.updraft_jobinfo_delete.disabled {\n\topacity: 0.4;\n\tcolor: inherit;\n\ttext-decoration: none;\n}\n\n.updraft_row {\n\tclear: both;\n\ttransition: 0.3s all;\n\tpadding: 15px 33px;\n}\n\n.updraft_row.deleting {\n\topacity: 0.4;\n}\n\n.updraft_progress_container {\n\t/* width: 83%; */\n}\n\n.updraft_existing_backups_count {\n\tpadding: 2px 8px;\n\tfont-size: 12px;\n\tbackground: #CA4A1E;\n\tcolor: #FFF;\n\tfont-weight: bold;\n\tborder-radius: 10px;\n}\n\n.form-table .existing-backups-table input[type=\"checkbox\"] {\n\tborder-radius: 0;\n}\n\n.form-table .existing-backups-table .check-column {\n\twidth: 40px;\n\tpadding: 0;\n\tpadding-top: 8px;\n}\n\n.existing-backups-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.existing-backups-restore-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.button-delete {\n\tcolor: #E23900;\n\tborder-color: #E23900;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 10px;\n}\n\n.button-view-log, .button-mass-selectors {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-top: -1px;\n}\n\n.button-view-log {\n\twidth: 120px;\n}\n\n.button-existing-restore {\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\twidth: 110px;\n}\n\n.main-restore {\n\tmargin-right: 3%;\n\tmargin-left: 3%;\n}\n\n.button-entity-backup {\n\tcolor: #555;\n\tborder-color: #555;\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 5px;\n}\n\n.button-select-all {\n\twidth: 122px;\n}\n\n.button-deselect {\n\twidth: 92px;\n}\n\n#ud_massactions > .display-flex > .mass-selectors-margins, #updraft-delete-waitwarning > .display-flex > .mass-selectors-margins {\n\tmargin-right: -4px;\n}\n\n.udp-button-primary {\n\tborder-width: 4px;\n\tcolor: #0073AA;\n\tborder-color: #0073AA;\n\tfont-size: 14px;\n\theight: 40px;\n}\n\n#ud_massactions .button-delete {\n\tmargin-right: 0px;\n}\n\n.stored_local {\n\tborder-radius: 5px;\n\tbackground-color: #007FE7;\n\tpadding: 3px 5px 5px 5px;\n\tcolor: #FFF;\n\tfont-size: 75%;\n}\n\nspan#updraft_lastlogcontainer {\n\tword-break: break-all;\n}\n\n.stored_icon {\n\theight: 1.3em;\n\tposition: relative;\n\ttop: 0.2em;\n}\n\n.backup_date_label > * {\n\tvertical-align: middle;\n}\n\n.backup_date_label .dashicons {\n\tfont-size: 18px;\n}\n\n.backup_date_label .clear-right {\n\tclear: right;\n}\n\n.existing-backups-table .backup_date_label > div {\n\tfont-weight: bold;\n}\n\n/* End Main Buttons */\n\n/* End of common elements */\n\n.udp-logo-70 {\n\twidth: 70px;\n\theight: 70px;\n\tfloat: left;\n\tpadding-right: 25px;\n}\n\nh3 .thank-you {\n\tmargin-top: 0px;\n}\n\n.ws_advert {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n.dismiss-dash-notice {\n\tfloat: right;\n\tposition: relative;\n\ttop: -20px;\n}\n\n.updraft_exclude_container,\n.updraft_include_container {\n\tmargin-left: 24px;\n\tmargin-top: 5px;\n\tmargin-bottom: 10px;\n\tpadding: 15px;\n\tborder: 1px solid #DDD;\n}\n\nlabel.updraft-exclude-label {\n\tfont-weight: 500;\n\tmargin-bottom: 5px;\n\tdisplay: block;\n}\n\n.updraft_add_exclude_item,\n#updraft_include_more_paths_another {\n\tdisplay: inline-block;\n\tmargin-top: 10px;\n}\n\ninput.updraft_exclude_entity_field,\n.form-table td input.updraft_exclude_entity_field,\n.updraftplus-morefiles-row input[type=text] {\n\twidth: calc(100% - 70px);\n\tmax-width: 400px;\n}\n\n@media screen and (max-width: 782px) {\n\n\t.form-table td input.updraft_exclude_entity_field,\n\t.form-table td .updraftplus-morefiles-row input[type=text] {\n\t\tdisplay: inline-block;\n\t}\n\n}\n\n.updraft_exclude_entity_delete.dashicons, .updraft_exclude_entity_edit.dashicons, .updraft_exclude_entity_update.dashicons, .updraftplus-morefiles-row a.dashicons {\n\tmargin-top: 2px;\n\tfont-size: 20px;\n\tbox-shadow: none;\n\tline-height: 1;\n\tpadding: 3px;\n\tmargin-right: 4px;\n}\n\n.updraft_exclude_entity_delete,\n.updraft_exclude_entity_delete:hover,\n.updraftplus-morefiles-row-delete {\n\tcolor: #FF6347;\n}\n\n.updraft_exclude_entity_update.dashicons, .updraft_exclude_entity_update.dashicons:hover {\n\tcolor: #008000;\n\tfont-weight: bold;\n\tfont-size: 22px;\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_edit {\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete {\n\tdisplay: none;\n}\n\n.updraft-exclude-panel-heading {\n\tmargin-bottom: 8px;\n}\n\n.updraft-exclude-panel-heading h3 {\n\tmargin: 0.5em 0 0.5em 0;\n}\n\n.updraft-exclude-submit.button-primary {\n\tmargin-top: 5px;\n}\n\n.updraft_exclude_actions_list {\n\tfont-weight: bold;\n}\n\n.updraft-exclude-link {\n\tcursor: pointer;\n}\n\n#updraft_include_more_options {\n\tpadding-left: 25px;\n}\n\n#updraft_report_cell .updraft_reportbox,\n.updraft_small_box {\n\tpadding: 12px;\n\tmargin: 8px 0;\n\tborder: 1px solid #CCC;\n\tposition: relative;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete,\n.updraft_box_delete_button,\n.updraft_small_box .updraft_box_delete_button {\n\tpadding: 4px;\n\tpadding-top: 6px;\n\tborder: none;\n\tbackground: transparent;\n\tposition: absolute;\n\ttop: 4px;\n\tright: 4px;\n\tcursor: pointer;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete:hover {\n\tcolor: #DE3C3C;\n}\n\na.updraft_report_another .dashicons {\n\ttext-decoration: none;\n\tmargin-top: 2px;\n}\n\n.updraft_report_dbbackup.updraft_report_disabled {\n\tcolor: #CCC;\n}\n\n#updraft-navtab-settings-content .updraft-test-button {\n\tfont-size: 18px !important;\n}\n\n#updraft_report_cell .updraft_report_email {\n\tdisplay: block;\n\twidth: calc(100% - 50px);\n\tmargin-bottom: 9px;\n}\n\n#updraft_report_cell .updraft_report_another_p {\n\tclear: left;\n}\n\n/* Taken straight from admin.php */\n\n#updraft-navtab-settings-content table.form-table p {\n\tmax-width: 700px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td {\n\tbackground-color: #EFEFEF;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td {\n\tbackground-color: #E8E8E8;\n}\n\n.updraft_settings_sectionheading {\n\tdisplay: none;\n}\n\n.updraft-backupentitybutton-disabled {\n\tbackground-color: transparent;\n\tborder: none;\n\tcolor: #0074A2;\n\ttext-decoration: underline;\n\tcursor: pointer;\n\tclear: none;\n\tfloat: left;\n}\n\n.updraft-backupentitybutton {\n\tmargin-left: 8px;\n}\n\n.updraft-bigbutton {\n\tpadding: 2px 0px !important;\n\tmargin-right: 14px !important;\n\tfont-size: 22px !important;\n\tmin-height: 32px;\n\tmin-width: 180px;\n}\n\ntr[class*=\"_updraft_remote_storage_border\"] {\n\tborder-top: 1px solid #CCC;\n}\n\n.updraft_multi_storage_options {\n\tfloat: right;\n\tclear: right;\n\tmargin-bottom: 5px !important;\n}\n\n.updraft_toggle_instance_label {\n\tvertical-align: top !important;\n}\n\n.updraft_debugrow th {\n\tfloat: right;\n\ttext-align: right;\n\tfont-weight: bold;\n\tpadding-right: 8px;\n\tmin-width: 140px;\n}\n\n.updraft_debugrow td {\n\tmin-width: 300px;\n\tvertical-align: bottom;\n}\n\n#updraft_webdav_host_error, .onedrive_folder_error {\n\tcolor: red;\n}\n\n/* jstree styles */\n\n/* these styles hide the dots from the parent but keep the arrows */\n.updraft_jstree .jstree-container-ul > .jstree-node,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-node {\n\tbackground: transparent;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-open > .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-open > .jstree-ocl {\n\tbackground-position: -36px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl {\n\tbackground-position: -4px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl {\n\tbackground: transparent;\n}\n\n/* zip browser jstree styles */\n#updraft_zip_files_container {\n\tposition: relative;\n\theight: 450px;\n\toverflow: none;\n}\n\n.updraft_jstree_info_container {\n\tposition: relative;\n\theight: auto;\n\twidth: 100%;\n\tborder: 1px dotted;\n\tmargin-bottom: 5px;\n}\n\n.updraft_jstree_info_container p {\n\tmargin: 1px;\n\tpadding-left: 10px;\n\tfont-size: 14px;\n}\n\n#updraft_zip_download_item {\n\tdisplay: none;\n\tcolor: #0073AA;\n\tpadding-left: 10px;\n}\n\n#updraft_zip_download_notice {\n\tpadding-left: 10px;\n}\n\n#updraft_exclude_files_folders_jstree {\n\tmax-height: 200px;\n\toverflow-y: scroll;\n}\n\n.updraft_jstree {\n\tposition: relative;\n\tborder: 1px dotted;\n\theight: 80%;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n/* More files jstree styles */\n#updraft_more_files_container {\n\tposition: relative;\n\tdisplay: none;\n\twidth: 100%;\n\tborder: 1px solid #CCC;\n\tbackground: #FAFAFA;\n\tmargin-bottom: 5px;\n\tmargin-top: 4px;\n\tbox-shadow: 0 5px 8px rgba(0, 0, 0, 0.1);\n}\n\ndiv#updraft_more_files_container::before {\n\tcontent: ' ';\n\twidth: 11px;\n\theight: 11px;\n\tdisplay: block;\n\tbackground: #FAFAFA;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 20px;\n\tborder-top: 1px solid #CCC;\n\tborder-left: 1px solid #CCC;\n\ttransform: translatey(-7px) rotate(45deg);\n}\n\ninput.updraft_more_path_editing {\n\tborder-color: #0285BA;\n}\n\ninput.updraft_more_path_editing ~ a.dashicons {\n\tdisplay: none;\n}\n\n#updraft_jstree_buttons {\n\tpadding: 10px;\n\tbackground: #E6E6E6;\n}\n\n#updraft_jstree_container {\n\theight: 300px;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n#updraft_more_files_container button {\n\tline-height: 20px;\n}\n\n#updraft_parent_directory {\n\tmargin: 10px 10px 4px 10px;\n\tpadding-left: 3px;\n}\n\n#updraft_jstree_confirm, #updraft_jstree_cancel {\n\tdisplay: none;\n}\n\n.updraftplus-morefiles-row-delete,\n.updraftplus-morefiles-row-edit {\n\tcursor: pointer;\n}\n\n#updraft-wrap .form-table th {\n\twidth: 230px;\n}\n\n#updraft-wrap .form-table .existing-backups-table th {\n\twidth: auto;\n}\n\n.updraft-viewlogdiv form {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-viewlogdiv {\n\tdisplay: inline-block;\n}\n\n.updraft-viewlogdiv input, .updraft-viewlogdiv a {\n\tborder: none;\n\tbackground-color: transparent;\n\tcolor: #000;\n\tmargin: 0px;\n\tpadding: 3px 4px;\n\tfont-size: 16px;\n\tline-height: 26px;\n}\n\n.updraft-viewlogdiv input:hover, .updraft-viewlogdiv a:hover {\n\tcolor: #FFF;\n\tcursor: pointer;\n}\n\n.button.button-remove {\n\tcolor: white;\n\tbackground-color: #DE3C3C;\n\tborder-color: #C00000;\n\tbox-shadow: 0 1px 0 #C10100;\n}\n\n.button.button-remove:hover,\n.button.button-remove:focus {\n\tborder-color: #C00;\n\tcolor: #FFF;\n\tbackground: #C00;\n}\n\n/* button-remove colors for midnight admin theme */\nbody.admin-color-midnight .button.button-remove {\n\tcolor: #DE3C3C;\n\tbackground-color: #F7F7F7;\n\tborder-color: #CCC;\n\tbox-shadow: 0 1px 0 #CCC;\n}\n\nbody.admin-color-midnight .button.button-remove:hover, body.admin-color-midnight .button.button-remove:focus {\n\tborder-color: #BA281F;\n}\n\nbody.admin-color-midnight .button.button-remove:focus {\n\tbox-shadow: inherit;\n\tbox-shadow: 0 0 3px rgba(0, 115, 170, 0.8);\n}\n\n.drag-drop #drag-drop-area2 {\n\tborder: 4px dashed #DDD;\n\theight: 200px;\n}\n\n#drag-drop-area2 .drag-drop-inside {\n\tmargin: 36px auto 0;\n\twidth: 350px;\n}\n\n#filelist, #filelist2 {\n\twidth: 100%;\n}\n\n#filelist .file, #filelist2 .file, .ud_downloadstatus .file, #ud_downloadstatus2 .file {\n\tpadding: 1px;\n\tbackground: #ECECEC;\n\tborder: solid 1px #CCC;\n\tmargin: 4px 0;\n}\n\n.updraft_premium section {\n\tmargin-bottom: 20px;\n}\n\n/*\n\tCall to action Premium\n*/\n.updraft_premium_cta {\n\tbackground: #FFF;\n\tmargin-top: 30px;\n\tpadding: 0;\n\tborder-left: 4px solid #DB6A03;\n}\n\n.updraft_premium_cta a {\n\tfont-weight: normal;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero {\n\tfont-size: 1.3em;\n\tletter-spacing: 0.03rem;\n\ttext-transform: uppercase;\n}\n\n.updraft_premium_cta__top {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 18px 30px;\n}\n\n.updraft_premium_cta__bottom {\n\tbackground: #F9F9F9;\n\tpadding: 5px 30px;\n}\n\n.updraft_premium_cta__summary {\n\tmargin-right: 60px;\n}\n\n.updraft_premium_cta h2 {\n\tfont-size: 28px;\n\tfont-weight: 200;\n\tline-height: 1;\n\tmargin: 0;\n\tmargin-bottom: 5px;\n\tletter-spacing: 0.05rem;\n\tcolor: #DB6A03;\n}\n\n.updraft_premium_cta ul li::after {\n\tcolor: #CCC;\n}\n\n@media only screen and (max-width: 768px) {\n\n\t.updraft_premium_cta__top {\n\t\tflex-direction: column;\n\t\ttext-align: center;\n\t\talign-items: center;\n\t}\n\n\t.updraft_premium_cta__summary {\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 30px;\n\t}\n\n}\n\n/*\n\tBox\n*/\n.udp-box {\n\tbackground: #FFF;\n\tpadding: 20px;\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n\ttext-align: center;\n}\n\n.udp-box h3 {\n\tmargin: 0;\n}\n\n.udp-box__heading {\n\talign-self: center;\n\tbackground: none;\n\tbox-shadow: none;\n}\n\n/*\n\tOther Plugins\n*/\n.updraft-more-plugins {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n\tjustify-content: space-between;\n\tflex-wrap: wrap;\n}\n\n.updraft-more-plugins img {\n\tmax-width: 200px;\n\twidth: 100%;\n\tdisplay: inline-block;\n}\n\n.updraft-more-plugins .udp-box {\n\tbox-sizing: border-box;\n\twidth: 24%;\n}\n\n.updraft-more-plugins .udp-box p:last-child {\n\tmargin-bottom: 0;\n\tpadding-bottom: 0;\n}\n\n/*\n\tlinks list\n*/\n.updraft_premium_description_list {\n\ttext-align: left;\n\tmargin: 0;\n\tfont-size: 12px;\n}\n\nul.updraft_premium_description_list, ul#updraft_restore_warnings {\n\tlist-style: disc inside;\n}\n\nul.updraft_premium_description_list li {\n\tdisplay: inline;\n}\n\nul.updraft_premium_description_list li::after {\n\tcontent: \" | \";\n}\n\nul.updraft_premium_description_list li:last-child::after {\n\tcontent: \"\";\n}\n\n.updraft_feature_cell {\n\tbackground-color: #F7D9C9 !important;\n\tpadding: 5px 10px;\n}\n\n.updraftplus_com_login_status, .updraftplus_com_key_status {\n\tdisplay: none;\n\tborder-left-color: #DC3232 !important;\n\tbackground: #FFF;\n\tborder-left: 4px solid #FFF;\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n\tmargin: 5px 0 15px 0;\n\tpadding: 5px 12px;\n}\n\n.updraft_feat_table {\n\tborder: none;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n}\n\n.updraft_feat_th, .updraft_feat_table td {\n\tborder: 1px solid #F1F1F1;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n\tpadding: 15px;\n}\n\n.updraft_feat_table td {\n\tborder-bottom-width: 4px;\n}\n\n.updraft_feat_table td:first-child {\n\tborder-left: none;\n}\n\n.updraft_feat_table td:last-child {\n\tborder-right: none;\n}\n\n.updraft_feat_table tr:last-child td {\n\tborder-bottom: none;\n}\n\n.updraft_feat_table td:nth-child(2),\n.updraft_feat_table td:nth-child(3) {\n\tbackground-color: rgba(241, 241, 241, 0.38);\n\twidth: 190px;\n}\n\n.updraft_feat_table__header td img {\n\tdisplay: block;\n\tmargin: 0 auto;\n}\n\n.updraft_feat_table__header td {\n\ttext-align: center;\n}\n\n.updraft_feat_table .installed {\n\tfont-size: 14px;\n}\n\n.updraft_feat_table p {\n\tpadding: 0px 10px;\n\tmargin: 5px 0px;\n\tfont-size: 13px;\n}\n\n.updraft_feat_table h4 {\n\tmargin: 5px 0px;\n}\n\n.updraft_feat_table .dashicons {\n\twidth: 25px;\n\theight: 25px;\n\tfont-size: 25px;\n\tline-height: 1;\n}\n\n.updraft_feat_table .dashicons-yes, .updraft_feat_table .updraft-yes {\n\tcolor: green;\n}\n\n.updraft_feat_table .dashicons-no-alt, .updraft_feat_table .updraft-no {\n\tcolor: red;\n}\n\n.updraft_tick_cell {\n\ttext-align: center;\n}\n\n.updraft_tick_cell img {\n\tmargin: 4px 0;\n\theight: 24px;\n}\n\n.ud_downloadstatus__close {\n\tborder: none;\n\tbackground: transparent;\n\twidth: auto;\n\tfont-size: 20px;\n\tpadding: 0;\n\tcursor: pointer;\n}\n\n#filelist .fileprogress, #filelist2 .fileprogress, .ud_downloadstatus .dlfileprogress, #ud_downloadstatus2 .dlfileprogress {\n\twidth: 0%;\n\tbackground: #0572AA;\n\theight: 8px;\n}\n\n.ud_downloadstatus .raw, #ud_downloadstatus2 .raw {\n\tmargin-top: 8px;\n\tclear: left;\n}\n\n.ud_downloadstatus .file, #ud_downloadstatus2 .file {\n\tmargin-top: 8px;\n}\n\ndiv[class^=\"updraftplus_downloader_container_\"] {\n\tpadding: 10px;\n}\n\ntr.updraftplusmethod h3 {\n\tmargin: 0px;\n}\n\ntr.updraftplusmethod img {\n\tmax-width: 100%;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete, #updraft_retain_files_rules .updraft_retain_rules_delete {\n\tcursor: pointer;\n\tcolor: red;\n\tfont-size: 120%;\n\tfont-weight: bold;\n\tborder: 0px;\n\tborder-radius: 3px;\n\tpadding: 2px;\n\tmargin: 0 6px;\n\ttext-decoration: none;\n\tdisplay: inline-block;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete:hover, #updraft_retain_files_rules .updraft_retain_rules_delete:hover {\n\tcursor: pointer;\n\tcolor: white;\n\tbackground: red;\n}\n\n#updraft_backup_started {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n/* backup finished */\n.blockUI.blockOverlay.ui-widget-overlay {\n\tbackground: #000;\n}\n\n.updraft_success_popup {\n\ttext-align: center;\n\tpadding-bottom: 30px;\n}\n\n.updraft_success_popup > .dashicons {\n\tfont-size: 100px;\n\twidth: 100px;\n\theight: 100px;\n\tline-height: 100px;\n\tpadding: 0px;\n\tborder-radius: 50%;\n\tmargin-top: 30px;\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tbackground: #E2E6E5;\n}\n\n.updraft_success_popup > .dashicons.dashicons-yes {\n\ttext-indent: -5px;\n}\n\n.updraft_success_popup.success > .dashicons {\n\tcolor: green;\n}\n\n.updraft_success_popup.warning > .dashicons {\n\tcolor: #888;\n}\n\n.updraft_success_popup--message {\n\tpadding: 20px;\n}\n\n.button.updraft-close-overlay .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n\tmargin-left: -5px;\n\tpadding: 0;\n}\n\n.updraft_saving_popup img {\n\tanimation-name: udp_blink;\n\tanimation-duration: 610ms;\n\tanimation-iteration-count: infinite;\n\tanimation-direction: alternate;\n\tanimation-timing-function: ease-out;\n}\n\n.udp-premium-image {\n\tdisplay: none;\n}\n\n@media screen and (min-width: 720px) {\n\n\t.udp-premium-image {\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tpadding-right: 5px;\n\t}\n\n}\n\n/* End stuff already in admin.php */\n#plupload-upload-ui2 {\n\twidth: 80%;\n}\n\n.backup-restored {\n\tpadding: 8px;\n}\n\n.backup-restored span {\n\tfont-size: 120%;\n}\n\n.memory-limit {\n\tpadding: 8px;\n}\n\n.updraft_list_errors {\n\tpadding: 8px;\n}\n\n/*.nav-tab {\n\tborder-radius: 20px 20px 0 0;\n\tborder-color: grey;\n\tborder-width: 2px;\n\tmargin-top: 34px;\n}\n\n.nav-tab:hover {\n\tborder-bottom: 0;\n}\n\n.nav-tab-active, .nav-tab-active:active {\n\tcolor: #df6926;\n\tborder-color: #D3D3D3;\n\tborder-width: 1px;\n\tborder-bottom: 0;\n}\n\n.nav-tab-active:focus {\n\tcolor: #df6926;\n}*/\n\n.nav-tab-wrapper {\n\tmargin: 14px 0px;\n}\n\n#updraft-poplog-content {\n\twhite-space: pre-wrap;\n}\n\n.next-backup {\n\tborder: 0px;\n\tpadding: 0px;\n\tmargin: 0 10px 0 0;\n}\n\n.not-scheduled {\n\tvertical-align: top !important;\n\tmargin: 0px !important;\n\tpadding: 0px !important;\n}\n\n.next-backup .updraft_scheduled {\n\t/* width: 124px;*/\n\tmargin: 0px;\n\tpadding: 2px 4px 2px 0px;\n}\n\n#next-backup-table-inner td {\n\tvertical-align: top;\n}\n\n.updraft_all-files {\n\tcolor: blue;\n}\n\n.multisite-advert-width {\n\twidth: 800px;\n}\n\n.updraft_settings_sectionheading {\n\tmargin-top: 6px;\n}\n\n.premium-upgrade-prompt {\n\t/* font-size: 115%; */\n}\n\n.show_admin_restore_in_progress_notice {\n\tpadding: 8px;\n}\n\n.show_admin_restore_in_progress_notice .unfinished-restoration {\n\tfont-size: 120%;\n}\n\n#backupnow_includefiles_moreoptions, #backupnow_database_moreoptions {\n\tmargin: 4px 16px 6px 16px;\n\tborder: 1px dotted;\n\tpadding: 6px 10px;\n}\n\n#backupnow_database_moreoptions {\n\tmax-height: 250px;\n\toverflow: auto;\n}\n\n.form-table #updraft_activejobsrow .minimum-height {\n\tmin-height: 100px;\n}\n\n#updraft_activejobsrow th {\n\tmax-width: 112px;\n\tmargin: 0;\n\tpadding: 13px 0 0 0;\n}\n\n#updraft_lastlogmessagerow .last-message {\n\tpadding-top: 20px;\n\tdisplay: block;\n}\n\n.updraft_simplepie {\n\tvertical-align: top;\n}\n\n.download-backups {\n\tmargin-top: 8px;\n}\n\n.download-backups .updraft_download_button {\n\tmargin-right: 6px;\n}\n\n.download-backups .ud-whitespace-warning, .download-backups .ud-bom-warning {\n\tbackground-color: pink;\n\tpadding: 8px;\n\tmargin: 4px;\n\tborder: 1px dotted;\n}\n\n.download-backups .ul {\n\tlist-style: none inside;\n\tmax-width: 800px;\n\tmargin-top: 6px;\n\tmargin-bottom: 12px;\n}\n\n#updraft-plupload-modal {\n\tmargin: 16px 0;\n}\n\n.download-backups .upload {\n\tmax-width: 610px;\n}\n\n.download-backups #plupload-upload-ui {\n\twidth: 100%;\n}\n\n.ud_downloadstatus {\n\tpadding: 10px 0;\n}\n\n#ud_massactions, #updraft-delete-waitwarning {\n\tpadding: 14px;\n\tbackground: rgb(241, 241, 241);\n\tposition: absolute;\n\tleft: 0;\n\ttop: 100%;\n}\n\n#ud_massactions > *, #updraft-delete-waitwarning > * {\n\tvertical-align: middle;\n}\n\n#ud_massactions .updraftplus-remove {\n\tdisplay: inline-block;\n\tmargin-right: 0;\n}\n\n#ud_massactions .updraftplus-remove a {\n\ttext-decoration: none;\n}\n\n#ud_massactions .updraft-viewlogdiv a {\n\ttext-decoration: none;\n\tposition: relative;\n}\n\nsmall.ud_massactions-tip {\n\tdisplay: inline-block;\n\topacity: 0.5;\n\tfont-style: italic;\n\tmargin-left: 20px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups {\n\tmargin-bottom: 35px;\n\tposition: relative;\n}\n\n#updraft-message-modal-innards {\n\tpadding: 4px;\n}\n\n#updraft-authenticate-modal {\n\ttext-align: center;\n\tfont-size: 16px !important;\n}\n\n#updraft-authenticate-modal p {\n\tfont-size: 16px;\n}\n\n#updraft_delete_form p {\n\tmargin-top: 3px;\n\tpadding-top: 0;\n}\n\n#updraft_restore_form .cannot-restore {\n\tmargin: 8px 0;\n}\n\n#updraft_restorer_dboptions {\n\tpadding: 12px;\n\tmargin: 8px 0 4px 0;\n\tborder: dashed 1px;\n}\n\n#updraft_restorer_dboptions h4 {\n\tmargin: 0px 0px 6px 0px;\n\tpadding: 0px;\n}\n\n.updraft_debugrow th {\n\tvertical-align: top;\n\tpadding-top: 6px;\n\tmax-width: 140px;\n}\n\n.expertmode p {\n\tfont-size: 125%;\n}\n\n.expertmode .call-wp-action {\n\twidth: 300px;\n\theight: 22px;\n}\n\n.updraftplus-lock-advert {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.uncompressed-data {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.delete-old-directories {\n\tpadding: 8px;\n\tpadding-bottom: 12px;\n}\n\n.active-jobs {\n\twidth: 100%;\n\ttext-align: center;\n\tpadding: 33px;\n}\n\n.job-id {\n\tmargin-top: 0;\n\tmargin-bottom: 8px;\n}\n\n.next-resumption {\n\tfont-weight: bold;\n}\n\n.updraft_percentage {\n\tz-index: -1;\n\tposition: absolute;\n\tleft: 0px;\n\ttop: 0px;\n\ttext-align: center;\n\tbackground-color: #1D8EC2;\n\ttransition: width 0.3s;\n}\n\n.curstage {\n\tz-index: 1;\n\tborder-radius: 2px;\n\tmargin-top: 8px;\n\twidth: 100%;\n\theight: 26px;\n\tline-height: 26px;\n\tposition: relative;\n\ttext-align: center;\n\tfont-style: italic;\n\tcolor: #FFF;\n\tbackground-color: #B7B7B7;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n}\n\n.curstage-info {\n\tdisplay: inline-block;\n\tz-index: 2;\n}\n\n.retain-files {\n\twidth: 48px;\n}\n\n.backup-interval-description tr td div {\n\tmax-width: 670px;\n}\n\n#updraft-manualdecrypt-modal {\n\twidth: 85%;\n\tmargin: 6px;\n\tmargin-left: 100px;\n}\n\n.directory-permissions {\n\tfont-size: 110%;\n\tfont-weight: bold;\n}\n\n.double-warning {\n\tborder: 1px solid;\n\tpadding: 6px;\n}\n\n.raw-backup-info {\n\tfont-style: italic;\n\tfont-weight: bold;\n\tfont-size: 120%;\n}\n\n.updraft_existingbackup_date {\n\twidth: 22%;\n\tmax-width: 140px;\n}\n\n.updraft_existing_backups_wrapper {\n\tmargin-top: 20px;\n\tborder-top: 1px solid #DDD;\n}\n\n.updraft-no-backups-msg {\n\ttext-align: center;\n}\n\n.tr-bottom-4 {\n\tmargin-bottom: 4px;\n}\n\n.existing-backups-table th {\n\tpadding: 8px 10px;\n}\n\n.form-table .backup-date {\n\twidth: 172px;\n}\n\n.form-table .backup-data {\n\twidth: 426px;\n}\n\n.form-table .updraft_backup_actions {\n\twidth: 272px;\n}\n\n.existing-date {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tmax-width: 140px;\n\twidth: 25%;\n}\n\n.line-break-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.line-break-td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.td-line-color {\n\theight: 2px;\n\tbackground-color: #888;\n}\n\n.raw-backup {\n\tmax-width: 140px;\n}\n\n.existing-backups-actions {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border > td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.existing-backups-border > div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.updraft_existing_backup_date {\n\tmax-width: 140px;\n}\n\n.updraftplus-upload {\n\tmargin-right: 6px;\n\tfloat: left;\n\tclear: none;\n}\n\n.before-restore-button {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.before-restore-button div {\n\tfloat: none;\n\tdisplay: inline-block;\n}\n\n.table-separator-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.table-separator-td {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n.end-of-table-div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.last-backup-job {\n\tpadding-top: 3% !important;\n}\n\n.line-height-03 {\n\tline-height: 0.3 !important;\n}\n\n.line-height-13 {\n\tline-height: 1.3 !important;\n}\n\n.line-height-23 {\n\tline-height: 2.3 !important;\n}\n\n#updraft_diskspaceused {\n\tcolor: #DF6926;\n}\n\n#updraft_delete_old_dirs_pagediv {\n\tpadding-bottom: 10px;\n}\n\n/*#updraft_lastlogmessagerow > td, #updraft_last_backup > td {\n\tpadding: 0;\n}*/\n\n/* Time + scheduling add-on*/\n.fix-time {\n\twidth: 70px;\n}\n\n.retain-files {\n\twidth: 70px;\n}\n\n.number-input {\n\tmin-width: 50px;\n\tmax-width: 70px;\n}\n\n.additional-rule-width {\n\tmin-width: 60px;\n\tmax-width: 70px;\n}\n\n/* Add-ons */\n/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */\n\n.dashicons {\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n\n.addon-logo-150 {\n\tmargin-left: 30px;\n\tmargin-top: 33px;\n\theight: 125px;\n\twidth: 150px;\n}\n\n.margin-bottom-50 {\n\tmargin-bottom: 50px;\n}\n\n.premium-container {\n\twidth: 80%;\n}\n\n/* Main Header */\n\n.main-header {\n\tbackground-color: #DF6926;\n\theight: 200px;\n\twidth: 100%;\n}\n\n.button-add-to-cart {\n\tcolor: white;\n\tborder-color: white;\n\tfloat: none;\n\tmargin-right: 17px;\n}\n\n.button-add-to-cart:hover, .button-add-to-cart:focus, .button-add-to-cart:active {\n\tborder-color: #A0A5AA;\n\tcolor: #A0A5AA;\n}\n\n.addon-title {\n\tmargin-top: 25px;\n}\n\n.addon-text {\n\tmargin-top: 75px;\n}\n\n.image-main-div {\n\twidth: 25%;\n\tfloat: left;\n}\n\n.text-main-div {\n\twidth: 60%;\n\tfloat: left;\n\ttext-align: center;\n\tcolor: white;\n\tmargin-top: 16px;\n}\n\n.text-main-div-title {\n\tfont-weight: bold !important;\n\tcolor: white;\n\ttext-align: center;\n}\n\n.text-main-div-paragraph {\n\tcolor: white;\n}\n\n/* End main header */\n\n/* Vault icons */\n\n.updraftplus-vault-cta {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 50px;\n}\n\n.updraftplus-vault-cta h1 {\n\tfont-weight: bold;\n}\n\n.updraftvault-buy {\n\twidth: 225px;\n\theight: 225px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 50px;\n\tposition: relative;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault {\n\twidth: 275px;\n\theight: 275px;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > a {\n\tright: 21%;\n\tfont-size: 16px;\n\tborder-width: 4px !important;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > p {\n\tfont-size: 16px;\n}\n\n.updraftvault-buy .button-purchase {\n\tright: 24%;\n\tmargin-left: 0;\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.right {\n\tmargin-right: 0px;\n}\n\n.updraftvault-buy .addon-logo-100 {\n\theight: 100px;\n\twidth: 125px;\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .addon-logo-large {\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .button-buy-vault {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 29%;\n\tbottom: 2%;\n}\n\n.premium-addon-div .button-purchase {\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy .button-buy-vault:hover {\n\tborder-color: darkgrey;\n\tcolor: darkgrey;\n}\n\n/* End Vault icons */\n\n/* Premium addons */\n\n.premium-addons {\n\tmargin-top: 80px;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.addon-list {\n\t/* margin-left: 32px; */\n\tdisplay: table;\n\ttext-align: center;\n}\n\n.premium-addons h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-addons p {\n\ttext-align: center;\n}\n\n.premium-addons .premium-addon-div {\n\twidth: 200px;\n\theight: 250px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 25px;\n\tmargin-top: 25px;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.premium-addons .premium-addon-div p {\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n\n.premium-addons .premium-addon-div img {\n\twidth: auto;\n\theight: 50px;\n\tmargin-top: 7px;\n}\n\n.premium-addons .premium-addon-div .hr-alignment {\n\tmargin-top: 44px;\n}\n\n.premium-addons .premium-addon-div .dropbox-logo {\n\theight: 39px;\n\twidth: 150px;\n}\n\n.premium-addons .premium-addon-div .azure-logo, .premium-addons .premium-addon-div .onedrive-logo {\n\twidth: 75%;\n\theight: 24px;\n}\n\n.button-purchase {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 25%;\n\tbottom: 2%;\n}\n\n.button-purchase:hover {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n}\n\n.premium-addons .premium-addon-div hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.premium-addon-div p {\n\tfont-style: italic;\n}\n\n.addon-list > .premium-addon-div > .onedrive-fix,\n.addon-list > .premium-addon-div > .azure-logo {\n\tmargin-top: 33px;\n}\n\n.addon-list > .premium-addon-div > .dropbox-fix {\n\tmargin-top: 18px;\n}\n\n/* End premium addons */\n\n\n/* Forgotton something (that is the name of the div rather than a mental note!) */\n\n.premium-forgotton-something {\n\tmargin-top: 5%;\n}\n\n.premium-forgotton-something h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-forgotton-something p {\n\ttext-align: center;\n\tfont-weight: normal;\n}\n\n.premium-forgotton-something .button-faq {\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.premium-forgotton-something .button-faq:hover {\n\tcolor: #777;\n\tborder-color: #777;\n}\n\n/* End of forgotton something */\n\n.updraftplusmethod.updraftvault #vaultlogo {\n\tpadding-left: 40px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option {\n\tfloat: left;\n\twidth: 50%;\n\ttext-align: center;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option div {\n\tclear: right;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .clear-left {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .padding-top-20px {\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .padding-top-14px {\n\tpadding-top: 14px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {\n\tfont-size: 18px !important;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_showoptions, .updraftplusmethod.updraftvault #updraftvault_connect {\n\tmargin-top: 8px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_connect input {\n\tmargin-right: 10px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_email {\n\twidth: 280px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_pass {\n\twidth: 200px;\n}\n\n.updraftplusmethod.updraftvault #vault-is-connected {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default p {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option {\n\tfloat: left;\n\twidth: 33%;\n\ttext-align: center;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-size {\n\tfont-size: 200%;\n\tfont-weight: bold;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-link {\n\tclear: both;\n\tfont-size: 150%;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-or {\n\tclear: both;\n\tfont-size: 115%;\n\tfont-style: italic;\n}\n\n/* Automation Backup Advert by B */\n.autobackup-image {\n/* \tdisplay: inline-block; */\n/*\tmin-width: 10%;\n\tmax-width:25%;*/\n/*\tfloat: left;*/\n\tclear: left;\n\tfloat: left;\n\twidth: 110px;\n\theight: 110px;\n}\n\n.autobackup-description {\n\twidth: 100%;\n}\n\n.advert-description {\n\tfloat: left;\n\tclear: right;\n\tpadding: 4px 10px 8px 10px;\n\twidth: 70%;\n\tclear: right;\n\tvertical-align: top;\n}\n\n.advert-btn {\n\tdisplay: inline-block;\n\tmin-width: 10%;\n\tvertical-align: top;\n\tmargin-bottom: 8px;\n}\n\n.advert-btn:first-of-type {\n\tmargin-top: 25px;\n}\n\n.advert-btn a {\n\tdisplay: block;\n\tcursor: pointer;\n}\n\na.btn-get-started {\n\tbackground: #FFF;\n\tborder: 2px solid #DF6926;\n\tborder-radius: 4px;\n\tcolor: #DF6926;\n\tdisplay: inline-block;\n\tmargin-left: 10px !important;\n\tmargin-bottom: 7px !important;\n\tfont-size: 18px !important;\n\tline-height: 20px;\n\tmin-height: 28px;\n\tpadding: 11px 10px 5px 10px;\n\ttext-transform: uppercase;\n\ttext-decoration: none;\n}\n\n.circle-dblarrow {\n\tborder: 1px solid #DF6926;\n\tborder-radius: 100%;\n\tdisplay: inline-block;\n\tfont-size: 17px;\n\tline-height: 17px;\n\tmargin-left: 5px;\n\twidth: 20px;\n\theight: 20px;\n\ttext-align: center;\n}\n\n/* End Automation Backup Advert by B */\n/* New Responsive Pretty Advanced Settings */\n.expertmode .advanced_settings_container {\n\theight: auto;\n\toverflow: hidden;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu {\n\tfloat: none;\n\tborder-bottom: 1px solid rgb(204, 204, 204);\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content {\n\tpadding-top: 5px;\n\tfloat: none;\n\twidth: auto;\n\toverflow: auto;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content h3:first-child {\n\tmargin-top: 5px !important;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools {\n\tdisplay: none;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .site_info {\n\tdisplay: block;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\tdisplay: inline-block;\n\tcursor: pointer;\n\tpadding: 5px;\n\tcolor: #000;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text {\n\tfont-size: 16px;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover {\n\tbackground-color: #EAEAEA;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active {\n\tbackground-color: #3498DB;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active:hover {\n\tbackground-color: #72C5FD;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content input#import_settings {\n\theight: auto !important;\n}\n\ndiv#updraft-wrap a {\n\tcursor: pointer !important;\n}\n\n.updraftcentral_wizard_option {\n\twidth: 45%;\n\tfloat: left;\n\ttext-align: center;\n}\n\n.updraftcentral_wizard_option label {\n\tmargin-bottom: 8px;\n}\n\n#updraftcentral_keys_table {\n\tdisplay: none;\n}\n\n.create_key_container {\n\tborder: 1px solid;\n\tborder-radius: 4px;\n\tpadding: 0 0 6px 6px;\n\tmargin-bottom: 8px;\n}\n\n.updraftcentral_cloud_connect {\n\tborder-radius: 4px;\n\tborder: 1px solid #000;\n\tpadding: 0 20px;\n\tmargin-top: 30px;\n\tbackground-color: #FFF;\n}\n\n.updraftcentral_cloud_error {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #F00;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_info {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #EF8F31;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftplus_spinner.spinner {\n\tpadding-left: 25px;\n\tfloat: none;\n}\n\n.updraftplus_spinner.spinner.visible {\n\tvisibility: visible;\n}\n\n.updraftcentral_cloud_notices .updraftplus_spinner {\n\tmargin-top: -5px;\n}\n\n.updraftcentral-subheading {\n\tfont-size: 14px;\n\tmargin-top: -10px;\n\tmargin-bottom: 20px;\n}\n\n#updraftcentral_cloud_form input#email,\n#updraftcentral_cloud_form input#password {\n\tmin-width: 250px;\n}\n\n.updraftcentral-data-consent {\n\tfont-size: 13px;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_wizard_image {\n\tfloat: left;\n\tmin-width: 100px;\n\tmargin-right: 25px;\n}\n\n.updraftcentral_cloud_wizard {\n\tfloat: left;\n}\n\n.updraftcentral_cloud_clear {\n\tclear: both;\n}\n\n.updraftplus-settings-footer {\n\tmargin-top: 30px;\n}\n\n.updraftplus-top-menu {\n\tpadding: 0.5em;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\tbackground: transparent;\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: none;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_row {\n\tflex-direction: column;\n\tpadding-left: 20px;\n\tpadding-right: 20px;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container {\n\twidth: 100%;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\toverflow: inherit;\n}\n\n#updraft_inpage_backup span#updraft_lastlogcontainer {\n\tpadding: 18px;\n\tbackground: #FAFAFA;\n\tdisplay: block;\n\tfont-size: 90%;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup div#updraft_activejobsrow {\n\tbackground: #FAFAFA;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow > div {\n\tbackground: transparent;\n\tpadding: 0;\n}\n\n#updraft_inpage_backup .last-message > strong {\n\tdisplay: block;\n\tmargin-top: 13px;\n}\n\n@media only screen and (min-width: 1024px) {\n\n\t#updraft_activejobsrow .updraft_row {\n\t\tdisplay: flex;\n\t\talign-items: baseline;\n\t}\n\n\t#updraft_activejobsrow .updraft_row .updraft_col {\n\t\tflex: auto;\n\t}\n\n\t#updraft_activejobsrow .updraft_progress_container {\n\t\twidth: calc(100% - 230px);\n\t}\n\n}\n\n@media only screen and (min-width: 782px) {\n\n\t.settings_page_updraftplus input[type=text],\n\t.settings_page_updraftplus input[type=password],\n\t.settings_page_updraftplus input[type=number] {\n\t\t/* border-radius: 4px; */\n\t\tline-height: 1.42;\n\t\t/* border: 1px solid #CCC; */\n\t\theight: 27px;\n\t\tpadding: 2px 6px;\n\t\tcolor: #555;\n\t}\n\n\t.settings_page_updraftplus input[type=\"number\"] {\n\t\theight: 31px;\n\t}\n\n\t#ud_massactions.active, #updraft-delete-waitwarning.active {\n\t\tposition: fixed;\n\t\tbottom: 0;\n\t\tleft: 160px;\n\t\tright: 0;\n\t\ttop: auto;\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t\tbox-shadow: 0 0 10px rgba(0, 0, 0, 0.2);\n\t}\n\n\tbody.folded #ud_massactions.active, body.folded #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n\t.updraft-after-form-table {\n\t\tmargin-left: 250px;\n\t}\n\n}\n\n@media only screen and (min-width: 782px) and (max-width: 960px) {\n\n\tbody.auto-fold #ud_massactions.active, body.auto-fold #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n}\n\n@media only screen and (max-width: 782px) {\n\n\t#updraft-wrap {\n\t\tmargin-right: 0;\n\t}\n\n\t#updraft-wrap .form-table td {\n\t\tpadding-right: 0;\n\t}\n\n\tlabel.updraft_checkbox {\n\t\tmargin-bottom: 8px;\n\t\tmargin-top: 8px;\n\t\tmargin-left: 36px;\n\t}\n\n\t.updraft_retain_rules {\n\t\tposition: relative;\n\t\tmargin-right: 0;\n\t\tborder: 1px solid #CCC;\n\t\tpadding: 5px;\n\t\tmargin-bottom: -1px;\n\t}\n\n\t.updraft_retain_rules_delete {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 5px;\n\t}\n\n\ta[id*=updraft_retain_] {\n\t\tdisplay: block;\n\t\tpadding: 15px 15px 15px 0;\n\t}\n\n\tlabel.updraft_checkbox > input[type=checkbox] {\n\t\tmargin-left: -33px;\n\t}\n\n\t#updraft-backupnow-button {\n\t\tmargin: 0;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > .updraft_backup_btn_wrapper {\n\t\tpadding-top: 0;\n\t}\n\n\t#ud_massactions, #updraft-delete-waitwarning {\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t}\n\n\t#ud_massactions.active {\n\t\tposition: fixed;\n\t\ttop: auto;\n\t\tbottom: 0;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t\tbox-shadow: 0 -3px 15px rgba(0, 0, 0, 0.08);\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t}\n\n\t#ud_massactions strong {\n\t\tdisplay: block;\n\t\tmargin-bottom: 5px;\n\t}\n\n\tsmall.ud_massactions-tip {\n\t\tdisplay: block;\n\t}\n\n/*\t.advert-description {\n\t\tmin-width: 75%;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.advert-btn {\n\t\tmargin-top: 15px;\n\t\tmargin-left:86px;\n\t\tmin-width: 100%;\n\t}*/\n\n\t.existing-backups-table .backup_date_label > div {\n\t\tfont-weight: normal;\n\t}\n\n\t.existing-backups-table .backup_date_label .clear-right {\n\t\tdisplay: inline-block;\n\t}\n\n\ttable.widefat.existing-backups-table {\n\t\tborder: 0;\n\t\tbox-shadow: none;\n\t\tbackground: transparent;\n\t}\n\n\t.existing-backups-table thead {\n\t\tborder: none;\n\t\tclip: rect(0 0 0 0);\n\t\theight: 1px;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\t.existing-backups-table tr {\n\t\tdisplay: block;\n\t\tmargin-bottom: .625em;\n\t\tpadding-bottom: 16.625px;\n\t\twidth: 100%;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t\tbackground: #FFF;\n\t\tbox-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);\n\t}\n\n\t.existing-backups-table td {\n\t\tborder-bottom: 1px solid #DDD;\n\t\tdisplay: block;\n\t\tfont-size: .9em;\n\t\ttext-align: left;\n\t\twidth: 100%;\n\t\tpadding: 10px;\n\t\tmargin: 0;\n\t}\n\n\t.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before {\n\t\t/*\n\t\t* aria-label has no advantage, it won't be read inside a table\n\t\tcontent: attr(aria-label);\n\t\t*/\n\t\tcontent: attr(data-label);\n\t\tfont-weight: bold;\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tleft: auto;\n\t\tpadding-bottom: 10px;\n\t\twidth: auto;\n\t\ttext-align: left;\n\t}\n\n\t.existing-backups-table td:last-child {\n\t\tborder-bottom: 0;\n\t}\n\n\t.form-table td.updraft_existingbackup_date {\n\t\twidth: inherit;\n\t\tmax-width: 100%;\n\t}\n\n\t.existing-backups-table td.before-restore-button {\n\t\tmin-height: 36px;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t\twidth: 100%;\n\t}\n\n\t.updraft_progress_container {\n\t\t/* width: 77%; */\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row {\n\t\tposition: relative;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected {\n\t\tbackground-color: #FFF;\n\t\tborder-left: 4px solid #0572AA;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select) {\n\t\tmargin-left: 50px;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select {\n\t\twidth: 50px !important;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbox-sizing: border-box;\n\t\theight: 100%;\n\t\tz-index: 1;\n\t\tborder: none;\n\t\tborder-right: 1px solid rgba(0, 0, 0, 0.05);\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups input[type=\"checkbox\"] {\n\t\theight: 25px;\n\t}\n\n\t.updraft_migrate_intro button.button.button-primary.button-hero {\n\t\tdisplay: block;\n\t\tmargin-right: 0;\n\t\twidth: 100%;\n\t\tmax-width: 100%;\n\t}\n\n\t.updraftclone-main-row {\n\t\tflex-direction: column;\n\t}\n\n\t.updraftclone-main-row > div {\n\t\twidth: auto;\n\t\tmax-width: none;\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.form-table th {\n\t\tpadding-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 600px) {\n\t\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t}\n\n\t.updraft_next_scheduled_entity {\n\t\tfloat: none;\n\t\twidth: 100%;\n\t\tmargin-bottom: 2em;\n\t}\n\n\t.updraft_time_now_wrapper {\n\t\tmargin-top: 0;\n\t}\n\n\t#updraft_lastlogmessagerow h3 {\n\t\tmargin-bottom: 5px;\n\t}\n\n\t#updraft_lastlogmessagerow .updraft-log-link {\n\t\tdisplay: block;\n\t\tfloat: none;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 520px) {\n}\n\n@media only screen and (min-width: 768px) {\n\n\t.addon-activation-notice {\n\t\tleft: 20em;\n\t}\n\n\t.existing-backups-table tbody tr:hover {\n\t\tbackground: #F1F1F1;\n\t}\n\n\t.existing-backups-table tbody tr td.before-restore-button {\n\t\tposition: relative;\n\t}\n\n\t.form-table .existing-backups-table thead th.check-column {\n\t\tpadding-left: 6px;\n\t}\n\n\t.existing-backups-table tr td:first-child {\n\t\tborder-left: 4px solid transparent;\n\t}\n\n\t.existing-backups-table tr.backuprowselected td:first-child {\n\t\tborder-left-color: #0572AA;\n\t}\n\n}\n\n@media screen and (min-width: 670px) {\n\t\n\t.expertmode .advanced_settings_container .advanced_settings_menu {\n\t\tfloat: left;\n\t\twidth: 215px;\n\t\tborder-right: 1px solid rgb(204, 204, 204);\n\t\tborder-bottom: none;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_content {\n\t\tpadding-left: 10px;\n\t\tpadding-top: 0px;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\t\tdisplay: block;\n\t}\n\n}\n\n@media only screen and (max-width: 1068px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: calc(50% - 10px);\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: 100px;\n\t}\n\n}\n\n@media only screen and (max-width: 600px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: 100%;\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: auto;\n\t}\n\n\ttable.updraft_feat_table {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table tr {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\ttable.updraft_feat_table td {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table td:first-child {\n\t\twidth: 100%;\n\t\tborder-bottom: none;\n\t}\n\n\ttable.updraft_feat_table td:not(:first-child) {\n\t\twidth: 50%;\n\t\tbox-sizing: border-box;\n\t}\n\n\ttable.updraft_feat_table td:first-child:empty {\n\t\tdisplay: none;\n\t}\n\n\ttd[data-colname]::before {\n\t\tcontent: attr(data-colname);\n\t\tfont-size: 0.8rem;\n\t\tcolor: #CCC;\n\t\tline-height: 1;\n\t}\n\n}\n"]}
|
1 |
+
{"version":3,"sources":["css/updraftplus-admin.css"],"names":[],"mappings":"AAAA;;CAEC;EACC,WAAW;EACX,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb,uBAAuB;EACvB;;CAED;;AAED,uBAAuB;AACvB;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX;;AAED,2BAA2B;;AAE3B,kBAAkB;AAClB;CACC,sBAAsB;CACtB;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;AACtB,eAAe;AACf;CACC,mBAAmB;CACnB;;AAED,sBAAsB;AACtB,aAAa;AACb;CACC,sBAAsB;CACtB;;AAED,oBAAoB;;AAEpB;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,uCAAuC;CACvC;;AAED;CACC,sBAAsB;CACtB;;AAED;;CAEC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,eAAe;CACf,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,aAAa;CACb;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;;CAEC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED,qBAAqB;;AAErB,kBAAkB;AAClB;CACC,kBAAkB;CAClB,oBAAoB;CACpB,oBAAoB;CACpB,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,wBAAwB;CACxB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,yBAAyB;CACzB,uBAAuB;CACvB,mBAAmB;CACnB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,gCAAgC;CAChC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;;EAEE;;AAEF;CACC,cAAc;CACd;;AAED,gBAAgB;;AAEhB;CACC,qBAAc;CAAd,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,UAAU;CACV;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,YAAQ;KAAR,QAAQ;CACR;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED,yBAAyB;AACzB;CACC,cAAc;CACd,mBAAmB;CACnB,SAAS;CACT,OAAO;CACP,aAAa;CACb,4BAA4B;CAC5B,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,2BAAuB;KAAvB,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,8BAAiB;KAAjB,iBAAiB;CACjB;;AAED;;CAEC,YAAY;CACZ;;AAED;;CAEC;EACC,wBAAoB;MAApB,oBAAoB;EACpB,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,6BAAgB;MAAhB,gBAAgB;EAChB;;CAED;;EAEC,aAAa;EACb;;CAED;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,qBAAqB;CACrB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,mBAAmB;CACnB,oBAAoB;CACpB;;AAED,sBAAsB;AACtB;CACC,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,oBAAoB;CACpB,uBAAuB;CACvB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,aAAa;CACb;;AAED,oBAAoB;AACpB;CACC,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,qCAAqC;AACrC;CACC,oBAAoB;CACpB,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED,aAAa;;AAEb;CACC,sBAAsB;CACtB;;AAED;;;CAGC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,yBAAyB;CACzB,gCAAgC;CAChC;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,cAAc;CACd;;AAED,6BAA6B;AAC7B;CACC,mBAAmB;CACnB,qBAAc;CAAd,cAAc;CACd,2BAAsB;KAAtB,sBAAsB;CACtB,8BAAsB;KAAtB,sBAAsB;CACtB,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB,oBAAoB;CACpB,8BAA8B;CAC9B;;AAED;;CAEC,cAAc;CACd,kBAAkB;CAClB,aAAa;CACb,UAAU;CACV;;AAED;CACC,sBAAsB;CACtB,kBAAkB;CAClB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB,qBAAqB;CACrB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,WAAW;CACX,qBAAqB;CACrB;;AAED;;EAEE;AACF;CACC,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB,UAAU;CACV,iBAAiB;CACjB,oBAAoB;CACpB,qBAAqB;CACrB;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,6BAA6B;CAC7B;;AAED;CACC,WAAW;CACX,WAAW;CACX;;AAED;CACC,cAAc;CACd,oFAAoF;CACpF,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB,iCAAiC;CACjC,iDAAiD;CACjD;;AAED;CACC,wGAAwG;CACxG;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,kEAAkE;CAClE,WAAW;CACX;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,iBAAiB;CACjB,8BAAsB;KAAtB,sBAAsB;CACtB,oBAAgB;KAAhB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB,aAAa;CACb,yBAAyB;CACzB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,+BAA+B;CAC/B,sBAAwB;KAAxB,wBAAwB;CACxB,uBAAoB;KAApB,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd;;AAED;CACC,aAAa;CACb,kCAAkC;CAClC,0BAA0B;CAC1B;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,UAAU;CACV,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,0FAA0F;CAC1F,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,sBAAsB;CACtB,YAAY;CACZ;;GAEE;CACF;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,4BAA4B;CAC5B,+BAA+B;CAC/B,YAAY;CACZ,gBAAgB;CAChB,0CAA0C;CAC1C;;AAED;CACC,oBAAoB;CACpB,6BAA6B;CAC7B,gCAAgC;CAChC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,oBAAoB;CACpB,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,0BAA0B;CAC1B,yBAAyB;CACzB,YAAY;CACZ,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB,WAAW;CACX;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;;AAEtB,4BAA4B;;AAE5B;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX;;AAED;;CAEC,kBAAkB;CAClB,gBAAgB;CAChB,oBAAoB;CACpB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB,mBAAmB;CACnB,eAAe;CACf;;AAED;;CAEC,sBAAsB;CACtB,iBAAiB;CACjB;;AAED;;;CAGC,yBAAyB;CACzB,iBAAiB;CACjB;;AAED;;CAEC;;EAEC,sBAAsB;EACtB;;CAED;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB;;AAED;;;CAGC,eAAe;CACf;;AAED;CACC,eAAe;CACf,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd,cAAc;CACd,uBAAuB;CACvB,mBAAmB;CACnB;;AAED;;;CAGC,aAAa;CACb,iBAAiB;CACjB,aAAa;CACb,wBAAwB;CACxB,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,eAAe;CACf,yBAAyB;CACzB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED,mCAAmC;;AAEnC;CACC,iBAAiB;CACjB;;AAED;;CAEC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,cAAc;CACd;;AAED;CACC,8BAA8B;CAC9B,aAAa;CACb,eAAe;CACf,2BAA2B;CAC3B,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,4BAA4B;CAC5B,8BAA8B;CAC9B,2BAA2B;CAC3B,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,aAAa;CACb,aAAa;CACb,8BAA8B;CAC9B;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX;;AAED,mBAAmB;;AAEnB,oEAAoE;AACpE;;CAEC,wBAAwB;CACxB;;AAED;;CAEC,gCAAgC;CAChC;;AAED;;CAEC,+BAA+B;CAC/B;;AAED;;CAEC,wBAAwB;CACxB;;AAED,+BAA+B;AAC/B;CACC,mBAAmB;CACnB,cAAc;CACd,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED,8BAA8B;AAC9B;CACC,mBAAmB;CACnB,cAAc;CACd,YAAY;CACZ,uBAAuB;CACvB,oBAAoB;CACpB,mBAAmB;CACnB,gBAAgB;CAChB,yCAAyC;CACzC;;AAED;CACC,aAAa;CACb,YAAY;CACZ,aAAa;CACb,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB,OAAO;CACP,WAAW;CACX,2BAA2B;CAC3B,4BAA4B;CAC5B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd,YAAY;CACZ,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb,8BAA8B;CAC9B,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,sBAAsB;CACtB,4BAA4B;CAC5B;;AAED;;CAEC,mBAAmB;CACnB,YAAY;CACZ,iBAAiB;CACjB;;AAED,mDAAmD;AACnD;CACC,eAAe;CACf,0BAA0B;CAC1B,mBAAmB;CACnB,yBAAyB;CACzB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,uBAAuB;CACvB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,+BAA+B;CAC/B;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB,wBAAwB;CACxB,0BAA0B;CAC1B;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,uBAAoB;KAApB,oBAAoB;CACpB,uBAA+B;KAA/B,+BAA+B;CAC/B,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,UAAU;CACV,mBAAmB;CACnB,wBAAwB;CACxB,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;;CAEC;EACC,2BAAuB;MAAvB,uBAAuB;EACvB,mBAAmB;EACnB,uBAAoB;MAApB,oBAAoB;EACpB;;CAED;EACC,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,cAAc;CACd,yCAAyC;CACzC,mBAAmB;CACnB;;AAED;CACC,UAAU;CACV;;AAED;CACC,4BAAmB;KAAnB,2BAAmB;KAAnB,mBAAmB;CACnB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;;EAEE;AACF;CACC,qBAAc;CAAd,cAAc;CACd,wBAAoB;KAApB,oBAAoB;CACpB,oBAAgB;KAAhB,gBAAgB;CAChB,uBAA+B;KAA/B,+BAA+B;CAC/B,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,uBAAuB;CACvB,WAAW;CACX;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,UAAU;CACV,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;CACC,qCAAqC;CACrC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,sCAAsC;CACtC,iBAAiB;CACjB,4BAA4B;CAC5B,uCAAuC;CACvC,qBAAqB;CACrB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,4CAA4C;CAC5C,aAAa;CACb;;AAED;CACC,eAAe;CACf,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,aAAa;CACb;;AAED;CACC,aAAa;CACb,wBAAwB;CACxB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV,oBAAoB;CACpB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB,kBAAkB;CAClB,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,cAAc;CACd,sBAAsB;CACtB,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED,qBAAqB;AACrB;CACC,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,iBAAiB;CACjB,aAAa;CACb,cAAc;CACd,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,iBAAiB;CACjB,eAAe;CACf,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,oCAAoC;CACpC,+BAA+B;CAC/B,oCAAoC;CACpC;;AAED;CACC,cAAc;CACd;;AAED;;CAEC;EACC,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB;;CAED;;AAED,oCAAoC;AACpC;CACC,WAAW;CACX;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;;AAEH;CACC,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,+BAA+B;CAC/B,uBAAuB;CACvB,wBAAwB;CACxB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,yBAAyB;CACzB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,iBAAiB;CACjB,UAAU;CACV,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,uBAAuB;CACvB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,+BAA+B;CAC/B,mBAAmB;CACnB,QAAQ;CACR,UAAU;CACV;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,sBAAsB;CACtB,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,2BAA2B;CAC3B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,qBAAqB;CACrB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,UAAU;CACV,SAAS;CACT,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX,mBAAmB;CACnB,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,0BAA0B;CAC1B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,2BAA2B;CAC3B;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CAGC,uBAAuB;CACvB,iBAAiB;CACjB,WAAW;CACX;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,eAAe;CACf;;AAED;CACC,qBAAqB;CACrB;;AAED;;GAEG;;AAEH,6BAA6B;AAC7B;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED,aAAa;AACb,oHAAoH;;AAEpH;CACC,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,WAAW;CACX;;AAED,iBAAiB;;AAEjB;CACC,0BAA0B;CAC1B,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,6BAA6B;CAC7B,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED,qBAAqB;;AAErB,iBAAiB;;AAEjB;CACC,YAAY;CACZ,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd;;AAED;CACC,WAAW;CACX,gBAAgB;CAChB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,uBAAuB;CACvB,gBAAgB;CAChB;;AAED,qBAAqB;;AAErB,oBAAoB;;AAEpB;CACC,iBAAiB;CACjB,YAAY;CACZ,eAAe;CACf,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,WAAW;CACX,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,wBAAwB;;;AAGxB,mFAAmF;;AAEnF;CACC,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,eAAe;CACf,eAAe;CACf;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB;;AAED,gCAAgC;;AAEhC;CACC,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB;;AAED,mCAAmC;AACnC;AACA,6BAA6B;AAC7B;iBACiB;AACjB,iBAAiB;CAChB,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,2BAA2B;CAC3B,WAAW;CACX,aAAa;CACb,oBAAoB;CACpB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,0BAA0B;CAC1B,mBAAmB;CACnB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,2BAA2B;CAC3B,kBAAkB;CAClB,iBAAiB;CACjB,4BAA4B;CAC5B,0BAA0B;CAC1B,sBAAsB;CACtB;;AAED;CACC,0BAA0B;CAC1B,oBAAoB;CACpB,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED,uCAAuC;AACvC,6CAA6C;AAC7C;CACC,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,4CAA4C;CAC5C;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,cAAc;CACd;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,uBAAuB;CACvB,gBAAgB;CAChB,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,4BAA4B;CAC5B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,+BAA+B;CAC/B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAAuB;KAAvB,uBAAuB;CACvB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,eAAe;CACf,eAAe;CACf,2CAA2C;CAC3C;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,WAAW;CACX;;AAED;CACC,eAAe;CACf,iBAAiB;CACjB;;AAED;;CAEC;EACC,qBAAc;EAAd,cAAc;EACd,yBAAsB;MAAtB,sBAAsB;EACtB;;CAED;EACC,eAAW;MAAX,WAAW;EACX;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED;;CAEC;;;EAGC,yBAAyB;EACzB,kBAAkB;EAClB,6BAA6B;EAC7B,aAAa;EACb,iBAAiB;EACjB,YAAY;EACZ;;CAED;EACC,aAAa;EACb;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,YAAY;EACZ,SAAS;EACT,UAAU;EACV,iBAAiB;EACjB,WAAW;EACX,wCAAwC;EACxC;;CAED;EACC,WAAW;EACX;;CAED;EACC,mBAAmB;EACnB;;CAED;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;;AAED;;CAEC;EACC,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,aAAa;EACb,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT;;CAED;EACC,eAAe;EACf,0BAA0B;EAC1B;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,UAAU;EACV,eAAe;EACf,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB,4CAA4C;EAC5C,iBAAiB;EACjB,WAAW;EACX;;CAED;EACC,eAAe;EACf,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf;;AAEF;;;;;;;;;IASI;;CAEH;EACC,oBAAoB;EACpB;;CAED;EACC,sBAAsB;EACtB;;CAED;EACC,UAAU;EACV,iBAAiB;EACjB,wBAAwB;EACxB;;CAED;EACC,aAAa;EACb,oBAAoB;EACpB,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,WAAW;EACX,mBAAmB;EACnB,WAAW;EACX,WAAW;EACX,UAAU;EACV;;CAED;EACC,eAAe;EACf,sBAAsB;EACtB,yBAAyB;EACzB,YAAY;EACZ,WAAW;EACX,UAAU;EACV,oBAAoB;EACpB,iBAAiB;EACjB,yCAAyC;EACzC;;CAED;EACC,8BAA8B;EAC9B,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,UAAU;EACV;;CAED;EACC;;;IAGE;EACF,0BAA0B;EAC1B,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ,iBAAiB;EACjB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,uBAAuB;EACvB,+BAA+B;EAC/B;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,uBAAuB;EACvB,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,uBAAuB;EACvB,aAAa;EACb,WAAW;EACX,aAAa;EACb,4CAA4C;EAC5C;;CAED;EACC,aAAa;EACb;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;EACC,qBAAqB;EACrB;;CAED;;AAED;;CAEC;EACC;;CAED;EACC,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB;;CAED;EACC,cAAc;EACd;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf,YAAY;EACZ,UAAU;EACV,oBAAoB;EACpB;;CAED;;AAED;CACC;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;EACC,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,mCAAmC;EACnC;;CAED;EACC,2BAA2B;EAC3B;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,aAAa;EACb,2CAA2C;EAC3C,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf;;CAED;;AAED;;CAEC;EACC,wBAAwB;EACxB,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,qBAAc;EAAd,cAAc;EACd,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,WAAW;EACX,uBAAuB;EACvB;;CAED;EACC,cAAc;EACd;;CAED;EACC,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;EACZ,eAAe;EACf;;CAED","file":"updraftplus-admin.min.css","sourcesContent":["@keyframes udp_blink {\n\n\tfrom {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t}\n\n\tto {\n\t\topacity: 0.4;\n\t\ttransform: scale(0.85);\n\t}\n\n}\n\n/* Widths and sizing */\n.max-width-600 {\n\tmax-width: 600px;\n}\n\n.width-900 {\n\tmax-width: 900px;\n}\n\n.width-80 {\n\twidth: 80%;\n}\n\n/* End widths and sizing */\n\n/* Font styling */\n.no-decoration {\n\ttext-decoration: none;\n}\n\n.bold {\n\tfont-weight: bold;\n}\n\n/* End font styling */\n/* Alignment */\n.center-align-td {\n\ttext-align: center;\n}\n\n/* End of Alignment */\n/* Padding */\n.remove-padding {\n\tpadding: 0 !important;\n}\n\n/* End of padding */\n\n.updraft-text-center {\n\ttext-align: center;\n}\n\n.autobackup {\n\tpadding: 6px;\n\tmargin: 8px 0px;\n}\n\nul .disc {\n\tlist-style: disc inside;\n}\n\n.dashicons-log-fix {\n\tdisplay: inherit;\n}\n\n.udpdraft__lifted {\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n}\n\n#updraft-wrap a .dashicons {\n\ttext-decoration: none;\n}\n\n.updraft-field-description,\ntable.form-table td p.updraft-field-description {\n\tfont-size: 90%;\n\tline-height: 1.2;\n\tfont-style: italic;\n\tmargin-bottom: 5px;\n}\n\n/* Input boxes */\nlabel.updraft_checkbox {\n\tdisplay: block;\n\tmargin-bottom: 4px;\n\tmargin-left: 26px;\n}\n\nlabel.updraft_checkbox > input[type=checkbox] {\n\tmargin-left: -25px;\n}\n\ndiv[id*=\"updraft_include_\"] {\n\tmargin-bottom: 9px;\n}\n\n/* Input boxes */\n.settings_page_updraftplus input[type=\"file\"] {\n\tborder: none;\n}\n\n.settings_page_updraftplus .wipe_settings {\n\tpadding-bottom: 10px;\n}\n\n.settings_page_updraftplus input[type=\"text\"] {\n\tfont-size: 14px;\n}\n\n.settings_page_updraftplus select {\n\tborder-radius: 4px;\n\tmax-width: 100%;\n}\n\ninput.updraft_input--wide,\ntextarea.updraft_input--wide {\n\tmax-width: 442px;\n\twidth: 100%;\n}\n\n#updraft-wrap .button-large {\n\tfont-size: 1.3em;\n}\n\n/* End input boxes */\n\n/* Main Buttons */\n.main-dashboard-buttons {\n\tborder-width: 4px;\n\tborder-radius: 12px;\n\tletter-spacing: 0px;\n\tfont-size: 17px;\n\tfont-weight: bold;\n\tpadding-left: 0.7em;\n\tpadding-right: 2em;\n\tpadding: 0.3em 1em;\n\tline-height: 1.7em;\n\tbackground: transparent;\n\tposition: relative;\n\tborder: 2px solid;\n\ttransition: all 0.2s;\n\tvertical-align: baseline;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tline-height: 1.3em;\n\tmargin-left: .3em;\n\ttext-transform: none;\n\tline-height: 1;\n\ttext-decoration: none;\n}\n\n.button-restore {\n\tborder-color: rgb(98, 158, 192);\n\tcolor: rgb(98, 158, 192);\n}\n\n.dashboard-main-sizing {\n\tborder-width: 4px;\n\twidth: 190px;\n\tline-height: 1.7em;\n}\n\np.updraftplus-option {\n\tmargin-top: 0;\n\tmargin-bottom: 5px;\n}\n\np.updraftplus-option-inline {\n\tdisplay: inline-block;\n\tpadding-right: 20px;\n}\n\nspan.updraftplus-option-label {\n\tdisplay: block;\n}\n\n/*\n* MIGRATE - CLONE\n*/\n\n#updraft-navtab-migrate-content .postbox {\n\tpadding: 18px;\n}\n\n/* Clone Rows */\n\n.updraftclone-main-row {\n\tdisplay: flex;\n}\n\n.updraftclone-tokens {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tmargin-right: 20px;\n\tmax-width: 300px;\n}\n\n.updraftclone-tokens p {\n\tmargin: 0;\n}\n\n.updraftclone_action_box {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tflex: 1;\n}\n\n.updraftclone_action_box p:first-child {\n\tmargin-top: 0;\n}\n\n.updraftclone_action_box p:last-child {\n\tmargin-bottom: 0;\n}\n\nspan.tokens-number {\n\tfont-size: 46px;\n\tdisplay: block;\n}\n\n/* Clone header button */\n.button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\theight: 100%;\n\tborder-left: 1px solid #CCC;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box {\n\tmargin-right: 20px;\n\twidth: 100%;\n\tflex-basis: 100%;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\tfloat: none;\n}\n\n@media (min-width: 1024px) {\n\n\t.updraft_migrate_widget_temporary_clone_stage0_container {\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box {\n\t\tflex-basis: 45%;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n\t.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\t\tfloat: right;\n\t}\n\n}\n\n.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n\tline-height: inherit;\n}\n\n.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: inline-block;\n}\n\n.opened .updraft_migrate_widget_temporary_clone_stage0 {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 8px;\n\tmargin-bottom: 21px;\n}\n\n/* Clone list table */\n.clone-list {\n\tclear: both;\n\twidth: 100%;\n\tmargin-top: 40px;\n}\n\n.clone-list table {\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.clone-list table tr th {\n\tbackground: #E4E4E4;\n}\n\n.clone-list table tr td {\n\tbackground: #F5F5F5;\n\tword-break: break-word;\n}\n\n.clone-list table tr:nth-child(odd) td {\n\tbackground: #FAFAFA;\n}\n\n.clone-list table td,\n.clone-list table th {\n\tpadding: 6px;\n}\n\n/* Clone Progress */\n.updraftplus-clone .updraft_row {\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nbutton#updraft_migrate_createclone + .updraftplus_spinner {\n\tmargin-top: 13px;\n}\n\n/* Clone - Show step 1 info button */\n.button.button-hero.updraftclone_show_step_1 {\n\twhite-space: normal;\n\theight: auto;\n\tline-height: 14px;\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n}\n\n.button.button-hero.updraftclone_show_step_1 span.dashicons {\n\theight: auto;\n}\n\n.updraftplus_clone_status {\n\tcolor: red;\n}\n\n/* MIGRATE */\n\na.updraft_migrate_add_site--trigger span.dashicons {\n\ttext-decoration: none;\n}\n\n.button-restore:hover, .button-migrate:hover, .button-backup:hover,\n.button-view-log:hover, .button-mass-selectors:hover,\n.button-delete:hover, .button-entity-backup:hover, .udp-button-primary:hover {\n\tborder-color: #DF6926;\n\tcolor: #DF6926;\n}\n\n.button-migrate {\n\tcolor: rgb(238, 169, 32);\n\tborder-color: rgb(238, 169, 32);\n}\n\n#updraft_migrate_tab_main {\n\tpadding: 8px;\n}\n\n.updraft_migrate_widget_module_content {\n\tbackground: #FFF;\n\tborder-radius: 0;\n\tposition: relative;\n}\n\nbody.js #updraft_migrate .updraft_migrate_widget_module_content {\n\tdisplay: none;\n}\n\n.updraft_migrate_widget_module_content > h3,\ndiv[class*=\"updraft_migrate_widget_temporary_clone_stage\"] > h3 {\n\tmargin-top: 0;\n}\n\n/* Migrate / Clone headers */\n.updraft_migrate_widget_module_content header {\n\tposition: relative;\n\tdisplay: flex;\n\talign-content: center;\n\tjustify-items: center;\n\tmargin-top: -18px;\n\tmargin-left: -18px;\n\tmargin-right: -18px;\n\tmargin-bottom: 15px;\n\tborder-bottom: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content header h3,\n.updraft_migrate_widget_module_content header button.button.close {\n\tpadding: 10px;\n\tline-height: 20px;\n\theight: auto;\n\tmargin: 0;\n}\n\n.updraft_migrate_widget_module_content button.button.close {\n\ttext-decoration: none;\n\tpadding-left: 5px;\n\tborder-right: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content button.button.close .dashicons {\n\tmargin-top: 1px;\n}\n\n.updraft_migrate_widget_module_content header h3 {\n\tmargin: 0;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero {\n\tmax-width: 235px;\n\tword-wrap: normal;\n\twhite-space: normal;\n\tline-height: 1;\n\theight: auto;\n\tpadding-top: 13px;\n\tpadding-bottom: 13px;\n\ttext-align: left;\n\tposition: relative;\n\tmargin-right: 10px;\n\tmargin-bottom: 10px;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero .dashicons {\n\tposition: absolute;\n\tleft: 10px;\n\ttop: calc(50% - 8px);\n}\n\n/*\njquery UI Accordion module\n*/\n#updraft_migrate .ui-widget-content a {\n\tcolor: #1C94C4;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header {\n\tbackground: #F6F6F6;\n\tmargin: 0;\n\tborder-radius: 0;\n\tpadding-left: 0.5em;\n\tpadding-right: 0.7em;\n}\n\n#updraft-wrap .ui-widget {\n\tfont-family: inherit;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w {\n\tbackground-position: -96px 0px;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s {\n\tbackground-position: -64px 0;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon {\n\tleft: auto;\n\tright: 5px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px rgba(91, 157, 217, 0.22), 0 0 2px 1px rgba(30, 140, 190, 0.3);\n\tbackground: #FFF;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons {\n\tcolor: #0572AA;\n\topacity: 1;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active {\n\tbackground: #F6F6F6;\n\tborder-bottom: 2px solid #0572AA;\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus {\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3), 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child) {\n\tborder-top: none;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .dashicons {\n\topacity: 0.4;\n\tmargin-right: 10px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n\tz-index: 1;\n}\n\n.updraft_next_scheduled_backups_wrapper {\n\tdisplay: flex;\n\tbackground: #FFF;\n\tjustify-items: center;\n\tflex-wrap: wrap;\n}\n\n.updraft_next_scheduled_backups_wrapper > div {\n\twidth: 50%;\n\tbackground: #FFF;\n\theight: auto;\n\t/* padding: 18px 33px; */\n\tpadding: 33px;\n\tbox-sizing: border-box;\n}\n\n.updraft_backup_btn_wrapper {\n\ttext-align: center;\n\tborder-left: 1px solid #F1F1F1;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n.incremental-backups-only {\n\tdisplay: none;\n}\n\n.incremental-free-only {\n\tdisplay: none;\n}\n\n.incremental-free-only p {\n\tpadding: 5px;\n\tbackground: rgba(255, 0, 0, 0.06);\n\tborder: 1px solid #BFBFBF;\n}\n\n#updraft-delete-waitwarning span.spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tmargin: 0;\n\tmargin-right: 10px;\n}\n\nbutton#updraft-backupnow-button .spinner,\nbutton#updraft-backupnow-button .dashicons-yes {\n\tdisplay: none;\n}\n\nbutton#updraft-backupnow-button.loading .spinner {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tmargin-top: 13px;\n\tmargin-right: 0;\n}\n\nbutton#updraft-backupnow-button.loading {\n\tbackground-color: #EFEFEF;\n\tborder-color: #CCC;\n\ttext-shadow: 0 -1px 1px #BBC3C7, 1px 0 1px #BBC3C7, 0 1px 1px #BBC3C7, -1px 0 1px #BBC3C7;\n\tbox-shadow: none;\n}\n\nbutton#updraft-backupnow-button.finished .dashicons-yes {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tfont-size: 42px;\n\tmargin-right: 0;\n\tmargin-top: 2px;\n}\n\n.updraft_next_scheduled_entity {\n\twidth: 50%;\n\tdisplay: inline-block;\n\tfloat: left;\n\t/*\n\tpadding: 20px 20px 10px 20px;\n\t*/\n}\n\n.updraft_next_scheduled_entity .dashicons {\n\tcolor: #CCC;\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_entity strong {\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_heading {\n\tmargin-bottom: 10px;\n}\n\n.updraft_next_scheduled_date_time {\n\tcolor: #46A84B;\n}\n\n.updraft_time_now_wrapper {\n\tmargin-top: 68px;\n\twidth: 100%;\n}\n\n.updraft_time_now_label, .updraft_time_now {\n\tdisplay: inline-block;\n\tpadding: 7px;\n}\n\n.updraft_time_now_label {\n\tbackground: #B7B7B7;\n\tborder-top-left-radius: 4px;\n\tborder-bottom-left-radius: 4px;\n\tcolor: #FFF;\n\tmargin-right: 0;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);\n}\n\n.updraft_time_now {\n\tbackground: #F1F1F1;\n\tborder-top-right-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tmargin-left: -3px;\n}\n\n#updraft_lastlogmessagerow {\n\tmargin: 6px 0;\n}\n\n#updraft_lastlogmessagerow {\n\tclear: both;\n\tpadding: 0.25px 0;\n}\n\n#updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: right;\n\tmargin-top: -2.5em;\n\tmargin-right: 2px;\n}\n\n#updraft_lastlogmessagerow > div {\n\tclear: both;\n\tbackground: #FFF;\n\tpadding: 18px;\n}\n\n#updraft_activejobs_table {\n\toverflow: hidden;\n\twidth: 100%;\n\tbackground: #FAFAFA;\n\tpadding: 0;\n}\n\n.updraft_requeststart {\n\tpadding: 15px 33px;\n\ttext-align: center;\n}\n\n.updraft_requeststart .spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tvertical-align: middle;\n\tmargin-top: -2px;\n}\n\na.updraft_jobinfo_delete.disabled {\n\topacity: 0.4;\n\tcolor: inherit;\n\ttext-decoration: none;\n}\n\n.updraft_row {\n\tclear: both;\n\ttransition: 0.3s all;\n\tpadding: 15px 33px;\n}\n\n.updraft_row.deleting {\n\topacity: 0.4;\n}\n\n.updraft_progress_container {\n\t/* width: 83%; */\n}\n\n.updraft_existing_backups_count {\n\tpadding: 2px 8px;\n\tfont-size: 12px;\n\tbackground: #CA4A1E;\n\tcolor: #FFF;\n\tfont-weight: bold;\n\tborder-radius: 10px;\n}\n\n.form-table .existing-backups-table input[type=\"checkbox\"] {\n\tborder-radius: 0;\n}\n\n.form-table .existing-backups-table .check-column {\n\twidth: 40px;\n\tpadding: 0;\n\tpadding-top: 8px;\n}\n\n.existing-backups-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.existing-backups-restore-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.button-delete {\n\tcolor: #E23900;\n\tborder-color: #E23900;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 10px;\n}\n\n.button-view-log, .button-mass-selectors {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-top: -1px;\n}\n\n.button-view-log {\n\twidth: 120px;\n}\n\n.button-existing-restore {\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\twidth: 110px;\n}\n\n.main-restore {\n\tmargin-right: 3%;\n\tmargin-left: 3%;\n}\n\n.button-entity-backup {\n\tcolor: #555;\n\tborder-color: #555;\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 5px;\n}\n\n.button-select-all {\n\twidth: 122px;\n}\n\n.button-deselect {\n\twidth: 92px;\n}\n\n#ud_massactions > .display-flex > .mass-selectors-margins, #updraft-delete-waitwarning > .display-flex > .mass-selectors-margins {\n\tmargin-right: -4px;\n}\n\n.udp-button-primary {\n\tborder-width: 4px;\n\tcolor: #0073AA;\n\tborder-color: #0073AA;\n\tfont-size: 14px;\n\theight: 40px;\n}\n\n#ud_massactions .button-delete {\n\tmargin-right: 0px;\n}\n\n.stored_local {\n\tborder-radius: 5px;\n\tbackground-color: #007FE7;\n\tpadding: 3px 5px 5px 5px;\n\tcolor: #FFF;\n\tfont-size: 75%;\n}\n\nspan#updraft_lastlogcontainer {\n\tword-break: break-all;\n}\n\n.stored_icon {\n\theight: 1.3em;\n\tposition: relative;\n\ttop: 0.2em;\n}\n\n.backup_date_label > * {\n\tvertical-align: middle;\n}\n\n.backup_date_label .dashicons {\n\tfont-size: 18px;\n}\n\n.backup_date_label .clear-right {\n\tclear: right;\n}\n\n.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\tfont-weight: bold;\n}\n\n/* End Main Buttons */\n\n/* End of common elements */\n\n.udp-logo-70 {\n\twidth: 70px;\n\theight: 70px;\n\tfloat: left;\n\tpadding-right: 25px;\n}\n\nh3 .thank-you {\n\tmargin-top: 0px;\n}\n\n.ws_advert {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n.dismiss-dash-notice {\n\tfloat: right;\n\tposition: relative;\n\ttop: -20px;\n}\n\n.updraft_exclude_container,\n.updraft_include_container {\n\tmargin-left: 24px;\n\tmargin-top: 5px;\n\tmargin-bottom: 10px;\n\tpadding: 15px;\n\tborder: 1px solid #DDD;\n}\n\nlabel.updraft-exclude-label {\n\tfont-weight: 500;\n\tmargin-bottom: 5px;\n\tdisplay: block;\n}\n\n.updraft_add_exclude_item,\n#updraft_include_more_paths_another {\n\tdisplay: inline-block;\n\tmargin-top: 10px;\n}\n\ninput.updraft_exclude_entity_field,\n.form-table td input.updraft_exclude_entity_field,\n.updraftplus-morefiles-row input[type=text] {\n\twidth: calc(100% - 70px);\n\tmax-width: 400px;\n}\n\n@media screen and (max-width: 782px) {\n\n\t.form-table td input.updraft_exclude_entity_field,\n\t.form-table td .updraftplus-morefiles-row input[type=text] {\n\t\tdisplay: inline-block;\n\t}\n\n}\n\n.updraft_exclude_entity_delete.dashicons, .updraft_exclude_entity_edit.dashicons, .updraft_exclude_entity_update.dashicons, .updraftplus-morefiles-row a.dashicons {\n\tmargin-top: 2px;\n\tfont-size: 20px;\n\tbox-shadow: none;\n\tline-height: 1;\n\tpadding: 3px;\n\tmargin-right: 4px;\n}\n\n.updraft_exclude_entity_delete,\n.updraft_exclude_entity_delete:hover,\n.updraftplus-morefiles-row-delete {\n\tcolor: #FF6347;\n}\n\n.updraft_exclude_entity_update.dashicons, .updraft_exclude_entity_update.dashicons:hover {\n\tcolor: #008000;\n\tfont-weight: bold;\n\tfont-size: 22px;\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_edit {\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete {\n\tdisplay: none;\n}\n\n.updraft-exclude-panel-heading {\n\tmargin-bottom: 8px;\n}\n\n.updraft-exclude-panel-heading h3 {\n\tmargin: 0.5em 0 0.5em 0;\n}\n\n.updraft-exclude-submit.button-primary {\n\tmargin-top: 5px;\n}\n\n.updraft_exclude_actions_list {\n\tfont-weight: bold;\n}\n\n.updraft-exclude-link {\n\tcursor: pointer;\n}\n\n#updraft_include_more_options {\n\tpadding-left: 25px;\n}\n\n#updraft_report_cell .updraft_reportbox,\n.updraft_small_box {\n\tpadding: 12px;\n\tmargin: 8px 0;\n\tborder: 1px solid #CCC;\n\tposition: relative;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete,\n.updraft_box_delete_button,\n.updraft_small_box .updraft_box_delete_button {\n\tpadding: 4px;\n\tpadding-top: 6px;\n\tborder: none;\n\tbackground: transparent;\n\tposition: absolute;\n\ttop: 4px;\n\tright: 4px;\n\tcursor: pointer;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete:hover {\n\tcolor: #DE3C3C;\n}\n\na.updraft_report_another .dashicons {\n\ttext-decoration: none;\n\tmargin-top: 2px;\n}\n\n.updraft_report_dbbackup.updraft_report_disabled {\n\tcolor: #CCC;\n}\n\n#updraft-navtab-settings-content .updraft-test-button {\n\tfont-size: 18px !important;\n}\n\n#updraft_report_cell .updraft_report_email {\n\tdisplay: block;\n\twidth: calc(100% - 50px);\n\tmargin-bottom: 9px;\n}\n\n#updraft_report_cell .updraft_report_another_p {\n\tclear: left;\n}\n\n/* Taken straight from admin.php */\n\n#updraft-navtab-settings-content table.form-table p {\n\tmax-width: 700px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td {\n\tbackground-color: #EFEFEF;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td {\n\tbackground-color: #E8E8E8;\n}\n\n.updraft_settings_sectionheading {\n\tdisplay: none;\n}\n\n.updraft-backupentitybutton-disabled {\n\tbackground-color: transparent;\n\tborder: none;\n\tcolor: #0074A2;\n\ttext-decoration: underline;\n\tcursor: pointer;\n\tclear: none;\n\tfloat: left;\n}\n\n.updraft-backupentitybutton {\n\tmargin-left: 8px;\n}\n\n.updraft-bigbutton {\n\tpadding: 2px 0px !important;\n\tmargin-right: 14px !important;\n\tfont-size: 22px !important;\n\tmin-height: 32px;\n\tmin-width: 180px;\n}\n\ntr[class*=\"_updraft_remote_storage_border\"] {\n\tborder-top: 1px solid #CCC;\n}\n\n.updraft_multi_storage_options {\n\tfloat: right;\n\tclear: right;\n\tmargin-bottom: 5px !important;\n}\n\n.updraft_toggle_instance_label {\n\tvertical-align: top !important;\n}\n\n.updraft_debugrow th {\n\tfloat: right;\n\ttext-align: right;\n\tfont-weight: bold;\n\tpadding-right: 8px;\n\tmin-width: 140px;\n}\n\n.updraft_debugrow td {\n\tmin-width: 300px;\n\tvertical-align: bottom;\n}\n\n#updraft_webdav_host_error, .onedrive_folder_error {\n\tcolor: red;\n}\n\n/* jstree styles */\n\n/* these styles hide the dots from the parent but keep the arrows */\n.updraft_jstree .jstree-container-ul > .jstree-node,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-node {\n\tbackground: transparent;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-open > .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-open > .jstree-ocl {\n\tbackground-position: -36px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl {\n\tbackground-position: -4px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl {\n\tbackground: transparent;\n}\n\n/* zip browser jstree styles */\n#updraft_zip_files_container {\n\tposition: relative;\n\theight: 450px;\n\toverflow: none;\n}\n\n.updraft_jstree_info_container {\n\tposition: relative;\n\theight: auto;\n\twidth: 100%;\n\tborder: 1px dotted;\n\tmargin-bottom: 5px;\n}\n\n.updraft_jstree_info_container p {\n\tmargin: 1px;\n\tpadding-left: 10px;\n\tfont-size: 14px;\n}\n\n#updraft_zip_download_item {\n\tdisplay: none;\n\tcolor: #0073AA;\n\tpadding-left: 10px;\n}\n\n#updraft_zip_download_notice {\n\tpadding-left: 10px;\n}\n\n#updraft_exclude_files_folders_jstree {\n\tmax-height: 200px;\n\toverflow-y: scroll;\n}\n\n.updraft_jstree {\n\tposition: relative;\n\tborder: 1px dotted;\n\theight: 80%;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n/* More files jstree styles */\n#updraft_more_files_container {\n\tposition: relative;\n\tdisplay: none;\n\twidth: 100%;\n\tborder: 1px solid #CCC;\n\tbackground: #FAFAFA;\n\tmargin-bottom: 5px;\n\tmargin-top: 4px;\n\tbox-shadow: 0 5px 8px rgba(0, 0, 0, 0.1);\n}\n\ndiv#updraft_more_files_container::before {\n\tcontent: ' ';\n\twidth: 11px;\n\theight: 11px;\n\tdisplay: block;\n\tbackground: #FAFAFA;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 20px;\n\tborder-top: 1px solid #CCC;\n\tborder-left: 1px solid #CCC;\n\ttransform: translatey(-7px) rotate(45deg);\n}\n\ninput.updraft_more_path_editing {\n\tborder-color: #0285BA;\n}\n\ninput.updraft_more_path_editing ~ a.dashicons {\n\tdisplay: none;\n}\n\n#updraft_jstree_buttons {\n\tpadding: 10px;\n\tbackground: #E6E6E6;\n}\n\n#updraft_jstree_container {\n\theight: 300px;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n#updraft_more_files_container button {\n\tline-height: 20px;\n}\n\n#updraft_parent_directory {\n\tmargin: 10px 10px 4px 10px;\n\tpadding-left: 3px;\n}\n\n#updraft_jstree_confirm, #updraft_jstree_cancel {\n\tdisplay: none;\n}\n\n.updraftplus-morefiles-row-delete,\n.updraftplus-morefiles-row-edit {\n\tcursor: pointer;\n}\n\n#updraft-wrap .form-table th {\n\twidth: 230px;\n}\n\n#updraft-wrap .form-table .existing-backups-table th {\n\twidth: auto;\n}\n\n.updraft-viewlogdiv form {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-viewlogdiv {\n\tdisplay: inline-block;\n}\n\n.updraft-viewlogdiv input, .updraft-viewlogdiv a {\n\tborder: none;\n\tbackground-color: transparent;\n\tcolor: #000;\n\tmargin: 0px;\n\tpadding: 3px 4px;\n\tfont-size: 16px;\n\tline-height: 26px;\n}\n\n.updraft-viewlogdiv input:hover, .updraft-viewlogdiv a:hover {\n\tcolor: #FFF;\n\tcursor: pointer;\n}\n\n.button.button-remove {\n\tcolor: white;\n\tbackground-color: #DE3C3C;\n\tborder-color: #C00000;\n\tbox-shadow: 0 1px 0 #C10100;\n}\n\n.button.button-remove:hover,\n.button.button-remove:focus {\n\tborder-color: #C00;\n\tcolor: #FFF;\n\tbackground: #C00;\n}\n\n/* button-remove colors for midnight admin theme */\nbody.admin-color-midnight .button.button-remove {\n\tcolor: #DE3C3C;\n\tbackground-color: #F7F7F7;\n\tborder-color: #CCC;\n\tbox-shadow: 0 1px 0 #CCC;\n}\n\nbody.admin-color-midnight .button.button-remove:hover, body.admin-color-midnight .button.button-remove:focus {\n\tborder-color: #BA281F;\n}\n\nbody.admin-color-midnight .button.button-remove:focus {\n\tbox-shadow: inherit;\n\tbox-shadow: 0 0 3px rgba(0, 115, 170, 0.8);\n}\n\n.drag-drop #drag-drop-area2 {\n\tborder: 4px dashed #DDD;\n\theight: 200px;\n}\n\n#drag-drop-area2 .drag-drop-inside {\n\tmargin: 36px auto 0;\n\twidth: 350px;\n}\n\n#filelist, #filelist2 {\n\twidth: 100%;\n}\n\n#filelist .file, #filelist2 .file, .ud_downloadstatus .file, #ud_downloadstatus2 .file {\n\tpadding: 1px;\n\tbackground: #ECECEC;\n\tborder: solid 1px #CCC;\n\tmargin: 4px 0;\n}\n\n.updraft_premium section {\n\tmargin-bottom: 20px;\n}\n\n/*\n\tCall to action Premium\n*/\n.updraft_premium_cta {\n\tbackground: #FFF;\n\tmargin-top: 30px;\n\tpadding: 0;\n\tborder-left: 4px solid #DB6A03;\n}\n\n.updraft_premium_cta a {\n\tfont-weight: normal;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero {\n\tfont-size: 1.3em;\n\tletter-spacing: 0.03rem;\n\ttext-transform: uppercase;\n}\n\n.updraft_premium_cta__top {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 18px 30px;\n}\n\n.updraft_premium_cta__bottom {\n\tbackground: #F9F9F9;\n\tpadding: 5px 30px;\n}\n\n.updraft_premium_cta__summary {\n\tmargin-right: 60px;\n}\n\n.updraft_premium_cta h2 {\n\tfont-size: 28px;\n\tfont-weight: 200;\n\tline-height: 1;\n\tmargin: 0;\n\tmargin-bottom: 5px;\n\tletter-spacing: 0.05rem;\n\tcolor: #DB6A03;\n}\n\n.updraft_premium_cta ul li::after {\n\tcolor: #CCC;\n}\n\n@media only screen and (max-width: 768px) {\n\n\t.updraft_premium_cta__top {\n\t\tflex-direction: column;\n\t\ttext-align: center;\n\t\talign-items: center;\n\t}\n\n\t.updraft_premium_cta__summary {\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 30px;\n\t}\n\n}\n\n/*\n\tBox\n*/\n.udp-box {\n\tbackground: #FFF;\n\tpadding: 20px;\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n\ttext-align: center;\n}\n\n.udp-box h3 {\n\tmargin: 0;\n}\n\n.udp-box__heading {\n\talign-self: center;\n\tbackground: none;\n\tbox-shadow: none;\n}\n\n/*\n\tOther Plugins\n*/\n.updraft-more-plugins {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n\tjustify-content: space-between;\n\tflex-wrap: wrap;\n}\n\n.updraft-more-plugins img {\n\tmax-width: 200px;\n\twidth: 100%;\n\tdisplay: inline-block;\n}\n\n.updraft-more-plugins .udp-box {\n\tbox-sizing: border-box;\n\twidth: 24%;\n}\n\n.updraft-more-plugins .udp-box p:last-child {\n\tmargin-bottom: 0;\n\tpadding-bottom: 0;\n}\n\n/*\n\tlinks list\n*/\n.updraft_premium_description_list {\n\ttext-align: left;\n\tmargin: 0;\n\tfont-size: 12px;\n}\n\nul.updraft_premium_description_list, ul#updraft_restore_warnings {\n\tlist-style: disc inside;\n}\n\nul.updraft_premium_description_list li {\n\tdisplay: inline;\n}\n\nul.updraft_premium_description_list li::after {\n\tcontent: \" | \";\n}\n\nul.updraft_premium_description_list li:last-child::after {\n\tcontent: \"\";\n}\n\n.updraft_feature_cell {\n\tbackground-color: #F7D9C9 !important;\n\tpadding: 5px 10px;\n}\n\n.updraftplus_com_login_status, .updraftplus_com_key_status {\n\tdisplay: none;\n\tborder-left-color: #DC3232 !important;\n\tbackground: #FFF;\n\tborder-left: 4px solid #FFF;\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n\tmargin: 5px 0 15px 0;\n\tpadding: 5px 12px;\n}\n\n.updraft_feat_table {\n\tborder: none;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n}\n\n.updraft_feat_th, .updraft_feat_table td {\n\tborder: 1px solid #F1F1F1;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n\tpadding: 15px;\n}\n\n.updraft_feat_table td {\n\tborder-bottom-width: 4px;\n}\n\n.updraft_feat_table td:first-child {\n\tborder-left: none;\n}\n\n.updraft_feat_table td:last-child {\n\tborder-right: none;\n}\n\n.updraft_feat_table tr:last-child td {\n\tborder-bottom: none;\n}\n\n.updraft_feat_table td:nth-child(2),\n.updraft_feat_table td:nth-child(3) {\n\tbackground-color: rgba(241, 241, 241, 0.38);\n\twidth: 190px;\n}\n\n.updraft_feat_table__header td img {\n\tdisplay: block;\n\tmargin: 0 auto;\n}\n\n.updraft_feat_table__header td {\n\ttext-align: center;\n}\n\n.updraft_feat_table .installed {\n\tfont-size: 14px;\n}\n\n.updraft_feat_table p {\n\tpadding: 0px 10px;\n\tmargin: 5px 0px;\n\tfont-size: 13px;\n}\n\n.updraft_feat_table h4 {\n\tmargin: 5px 0px;\n}\n\n.updraft_feat_table .dashicons {\n\twidth: 25px;\n\theight: 25px;\n\tfont-size: 25px;\n\tline-height: 1;\n}\n\n.updraft_feat_table .dashicons-yes, .updraft_feat_table .updraft-yes {\n\tcolor: green;\n}\n\n.updraft_feat_table .dashicons-no-alt, .updraft_feat_table .updraft-no {\n\tcolor: red;\n}\n\n.updraft_tick_cell {\n\ttext-align: center;\n}\n\n.updraft_tick_cell img {\n\tmargin: 4px 0;\n\theight: 24px;\n}\n\n.ud_downloadstatus__close {\n\tborder: none;\n\tbackground: transparent;\n\twidth: auto;\n\tfont-size: 20px;\n\tpadding: 0;\n\tcursor: pointer;\n}\n\n#filelist .fileprogress, #filelist2 .fileprogress, .ud_downloadstatus .dlfileprogress, #ud_downloadstatus2 .dlfileprogress {\n\twidth: 0%;\n\tbackground: #0572AA;\n\theight: 8px;\n}\n\n.ud_downloadstatus .raw, #ud_downloadstatus2 .raw {\n\tmargin-top: 8px;\n\tclear: left;\n}\n\n.ud_downloadstatus .file, #ud_downloadstatus2 .file {\n\tmargin-top: 8px;\n}\n\ndiv[class^=\"updraftplus_downloader_container_\"] {\n\tpadding: 10px;\n}\n\ntr.updraftplusmethod h3 {\n\tmargin: 0px;\n}\n\ntr.updraftplusmethod img {\n\tmax-width: 100%;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete, #updraft_retain_files_rules .updraft_retain_rules_delete {\n\tcursor: pointer;\n\tcolor: red;\n\tfont-size: 120%;\n\tfont-weight: bold;\n\tborder: 0px;\n\tborder-radius: 3px;\n\tpadding: 2px;\n\tmargin: 0 6px;\n\ttext-decoration: none;\n\tdisplay: inline-block;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete:hover, #updraft_retain_files_rules .updraft_retain_rules_delete:hover {\n\tcursor: pointer;\n\tcolor: white;\n\tbackground: red;\n}\n\n#updraft_backup_started {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n/* backup finished */\n.blockUI.blockOverlay.ui-widget-overlay {\n\tbackground: #000;\n}\n\n.updraft_success_popup {\n\ttext-align: center;\n\tpadding-bottom: 30px;\n}\n\n.updraft_success_popup > .dashicons {\n\tfont-size: 100px;\n\twidth: 100px;\n\theight: 100px;\n\tline-height: 100px;\n\tpadding: 0px;\n\tborder-radius: 50%;\n\tmargin-top: 30px;\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tbackground: #E2E6E5;\n}\n\n.updraft_success_popup > .dashicons.dashicons-yes {\n\ttext-indent: -5px;\n}\n\n.updraft_success_popup.success > .dashicons {\n\tcolor: green;\n}\n\n.updraft_success_popup.warning > .dashicons {\n\tcolor: #888;\n}\n\n.updraft_success_popup--message {\n\tpadding: 20px;\n}\n\n.button.updraft-close-overlay .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n\tmargin-left: -5px;\n\tpadding: 0;\n}\n\n.updraft_saving_popup img {\n\tanimation-name: udp_blink;\n\tanimation-duration: 610ms;\n\tanimation-iteration-count: infinite;\n\tanimation-direction: alternate;\n\tanimation-timing-function: ease-out;\n}\n\n.udp-premium-image {\n\tdisplay: none;\n}\n\n@media screen and (min-width: 720px) {\n\n\t.udp-premium-image {\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tpadding-right: 5px;\n\t}\n\n}\n\n/* End stuff already in admin.php */\n#plupload-upload-ui2 {\n\twidth: 80%;\n}\n\n.backup-restored {\n\tpadding: 8px;\n}\n\n.backup-restored span {\n\tfont-size: 120%;\n}\n\n.memory-limit {\n\tpadding: 8px;\n}\n\n.updraft_list_errors {\n\tpadding: 8px;\n}\n\n/*.nav-tab {\n\tborder-radius: 20px 20px 0 0;\n\tborder-color: grey;\n\tborder-width: 2px;\n\tmargin-top: 34px;\n}\n\n.nav-tab:hover {\n\tborder-bottom: 0;\n}\n\n.nav-tab-active, .nav-tab-active:active {\n\tcolor: #df6926;\n\tborder-color: #D3D3D3;\n\tborder-width: 1px;\n\tborder-bottom: 0;\n}\n\n.nav-tab-active:focus {\n\tcolor: #df6926;\n}*/\n\n.nav-tab-wrapper {\n\tmargin: 14px 0px;\n}\n\n#updraft-poplog-content {\n\twhite-space: pre-wrap;\n}\n\n.next-backup {\n\tborder: 0px;\n\tpadding: 0px;\n\tmargin: 0 10px 0 0;\n}\n\n.not-scheduled {\n\tvertical-align: top !important;\n\tmargin: 0px !important;\n\tpadding: 0px !important;\n}\n\n.next-backup .updraft_scheduled {\n\t/* width: 124px;*/\n\tmargin: 0px;\n\tpadding: 2px 4px 2px 0px;\n}\n\n#next-backup-table-inner td {\n\tvertical-align: top;\n}\n\n.updraft_all-files {\n\tcolor: blue;\n}\n\n.multisite-advert-width {\n\twidth: 800px;\n}\n\n.updraft_settings_sectionheading {\n\tmargin-top: 6px;\n}\n\n.premium-upgrade-prompt {\n\t/* font-size: 115%; */\n}\n\n.show_admin_restore_in_progress_notice {\n\tpadding: 8px;\n}\n\n.show_admin_restore_in_progress_notice .unfinished-restoration {\n\tfont-size: 120%;\n}\n\n#backupnow_includefiles_moreoptions, #backupnow_database_moreoptions {\n\tmargin: 4px 16px 6px 16px;\n\tborder: 1px dotted;\n\tpadding: 6px 10px;\n}\n\n#backupnow_database_moreoptions {\n\tmax-height: 250px;\n\toverflow: auto;\n}\n\n.form-table #updraft_activejobsrow .minimum-height {\n\tmin-height: 100px;\n}\n\n#updraft_activejobsrow th {\n\tmax-width: 112px;\n\tmargin: 0;\n\tpadding: 13px 0 0 0;\n}\n\n#updraft_lastlogmessagerow .last-message {\n\tpadding-top: 20px;\n\tdisplay: block;\n}\n\n.updraft_simplepie {\n\tvertical-align: top;\n}\n\n.download-backups {\n\tmargin-top: 8px;\n}\n\n.download-backups .updraft_download_button {\n\tmargin-right: 6px;\n}\n\n.download-backups .ud-whitespace-warning, .download-backups .ud-bom-warning {\n\tbackground-color: pink;\n\tpadding: 8px;\n\tmargin: 4px;\n\tborder: 1px dotted;\n}\n\n.download-backups .ul {\n\tlist-style: none inside;\n\tmax-width: 800px;\n\tmargin-top: 6px;\n\tmargin-bottom: 12px;\n}\n\n#updraft-plupload-modal {\n\tmargin: 16px 0;\n}\n\n.download-backups .upload {\n\tmax-width: 610px;\n}\n\n.download-backups #plupload-upload-ui {\n\twidth: 100%;\n}\n\n.ud_downloadstatus {\n\tpadding: 10px 0;\n}\n\n#ud_massactions, #updraft-delete-waitwarning {\n\tpadding: 14px;\n\tbackground: rgb(241, 241, 241);\n\tposition: absolute;\n\tleft: 0;\n\ttop: 100%;\n}\n\n#ud_massactions > *, #updraft-delete-waitwarning > * {\n\tvertical-align: middle;\n}\n\n#ud_massactions .updraftplus-remove {\n\tdisplay: inline-block;\n\tmargin-right: 0;\n}\n\n#ud_massactions .updraftplus-remove a {\n\ttext-decoration: none;\n}\n\n#ud_massactions .updraft-viewlogdiv a {\n\ttext-decoration: none;\n\tposition: relative;\n}\n\nsmall.ud_massactions-tip {\n\tdisplay: inline-block;\n\topacity: 0.5;\n\tfont-style: italic;\n\tmargin-left: 20px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups {\n\tmargin-bottom: 35px;\n\tposition: relative;\n}\n\n#updraft-message-modal-innards {\n\tpadding: 4px;\n}\n\n#updraft-authenticate-modal {\n\ttext-align: center;\n\tfont-size: 16px !important;\n}\n\n#updraft-authenticate-modal p {\n\tfont-size: 16px;\n}\n\n#updraft_delete_form p {\n\tmargin-top: 3px;\n\tpadding-top: 0;\n}\n\n#updraft_restore_form .cannot-restore {\n\tmargin: 8px 0;\n}\n\n#updraft_restorer_dboptions {\n\tpadding: 12px;\n\tmargin: 8px 0 4px 0;\n\tborder: dashed 1px;\n}\n\n#updraft_restorer_dboptions h4 {\n\tmargin: 0px 0px 6px 0px;\n\tpadding: 0px;\n}\n\n.updraft_debugrow th {\n\tvertical-align: top;\n\tpadding-top: 6px;\n\tmax-width: 140px;\n}\n\n.expertmode p {\n\tfont-size: 125%;\n}\n\n.expertmode .call-wp-action {\n\twidth: 300px;\n\theight: 22px;\n}\n\n.updraftplus-lock-advert {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.uncompressed-data {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.delete-old-directories {\n\tpadding: 8px;\n\tpadding-bottom: 12px;\n}\n\n.active-jobs {\n\twidth: 100%;\n\ttext-align: center;\n\tpadding: 33px;\n}\n\n.job-id {\n\tmargin-top: 0;\n\tmargin-bottom: 8px;\n}\n\n.next-resumption {\n\tfont-weight: bold;\n}\n\n.updraft_percentage {\n\tz-index: -1;\n\tposition: absolute;\n\tleft: 0px;\n\ttop: 0px;\n\ttext-align: center;\n\tbackground-color: #1D8EC2;\n\ttransition: width 0.3s;\n}\n\n.curstage {\n\tz-index: 1;\n\tborder-radius: 2px;\n\tmargin-top: 8px;\n\twidth: 100%;\n\theight: 26px;\n\tline-height: 26px;\n\tposition: relative;\n\ttext-align: center;\n\tfont-style: italic;\n\tcolor: #FFF;\n\tbackground-color: #B7B7B7;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n}\n\n.curstage-info {\n\tdisplay: inline-block;\n\tz-index: 2;\n}\n\n.retain-files {\n\twidth: 48px;\n}\n\n.backup-interval-description tr td div {\n\tmax-width: 670px;\n}\n\n#updraft-manualdecrypt-modal {\n\twidth: 85%;\n\tmargin: 6px;\n\tmargin-left: 100px;\n}\n\n.directory-permissions {\n\tfont-size: 110%;\n\tfont-weight: bold;\n}\n\n.double-warning {\n\tborder: 1px solid;\n\tpadding: 6px;\n}\n\n.raw-backup-info {\n\tfont-style: italic;\n\tfont-weight: bold;\n\tfont-size: 120%;\n}\n\n.updraft_existingbackup_date {\n\twidth: 22%;\n\tmax-width: 140px;\n}\n\n.updraft_existing_backups_wrapper {\n\tmargin-top: 20px;\n\tborder-top: 1px solid #DDD;\n}\n\n.updraft-no-backups-msg {\n\ttext-align: center;\n}\n\n.tr-bottom-4 {\n\tmargin-bottom: 4px;\n}\n\n.existing-backups-table th {\n\tpadding: 8px 10px;\n}\n\n.form-table .backup-date {\n\twidth: 172px;\n}\n\n.form-table .backup-data {\n\twidth: 426px;\n}\n\n.form-table .updraft_backup_actions {\n\twidth: 272px;\n}\n\n.existing-date {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tmax-width: 140px;\n\twidth: 25%;\n}\n\n.line-break-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.line-break-td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.td-line-color {\n\theight: 2px;\n\tbackground-color: #888;\n}\n\n.raw-backup {\n\tmax-width: 140px;\n}\n\n.existing-backups-actions {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border > td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.existing-backups-border > div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.updraft_existing_backup_date {\n\tmax-width: 140px;\n}\n\n.updraftplus-upload {\n\tmargin-right: 6px;\n\tfloat: left;\n\tclear: none;\n}\n\n.before-restore-button {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.before-restore-button div {\n\tfloat: none;\n\tdisplay: inline-block;\n}\n\n.table-separator-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.table-separator-td {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n.end-of-table-div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.last-backup-job {\n\tpadding-top: 3% !important;\n}\n\n.line-height-03 {\n\tline-height: 0.3 !important;\n}\n\n.line-height-13 {\n\tline-height: 1.3 !important;\n}\n\n.line-height-23 {\n\tline-height: 2.3 !important;\n}\n\n#updraft_diskspaceused {\n\tcolor: #DF6926;\n}\n\n#updraft_delete_old_dirs_pagediv {\n\tpadding-bottom: 10px;\n}\n\n/*#updraft_lastlogmessagerow > td, #updraft_last_backup > td {\n\tpadding: 0;\n}*/\n\n/* Time + scheduling add-on*/\n.fix-time {\n\twidth: 70px;\n}\n\n.retain-files {\n\twidth: 70px;\n}\n\n.number-input {\n\tmin-width: 50px;\n\tmax-width: 70px;\n}\n\n.additional-rule-width {\n\tmin-width: 60px;\n\tmax-width: 70px;\n}\n\n/* Add-ons */\n/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */\n\n.dashicons {\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n\n.addon-logo-150 {\n\tmargin-left: 30px;\n\tmargin-top: 33px;\n\theight: 125px;\n\twidth: 150px;\n}\n\n.margin-bottom-50 {\n\tmargin-bottom: 50px;\n}\n\n.premium-container {\n\twidth: 80%;\n}\n\n/* Main Header */\n\n.main-header {\n\tbackground-color: #DF6926;\n\theight: 200px;\n\twidth: 100%;\n}\n\n.button-add-to-cart {\n\tcolor: white;\n\tborder-color: white;\n\tfloat: none;\n\tmargin-right: 17px;\n}\n\n.button-add-to-cart:hover, .button-add-to-cart:focus, .button-add-to-cart:active {\n\tborder-color: #A0A5AA;\n\tcolor: #A0A5AA;\n}\n\n.addon-title {\n\tmargin-top: 25px;\n}\n\n.addon-text {\n\tmargin-top: 75px;\n}\n\n.image-main-div {\n\twidth: 25%;\n\tfloat: left;\n}\n\n.text-main-div {\n\twidth: 60%;\n\tfloat: left;\n\ttext-align: center;\n\tcolor: white;\n\tmargin-top: 16px;\n}\n\n.text-main-div-title {\n\tfont-weight: bold !important;\n\tcolor: white;\n\ttext-align: center;\n}\n\n.text-main-div-paragraph {\n\tcolor: white;\n}\n\n/* End main header */\n\n/* Vault icons */\n\n.updraftplus-vault-cta {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 50px;\n}\n\n.updraftplus-vault-cta h1 {\n\tfont-weight: bold;\n}\n\n.updraftvault-buy {\n\twidth: 225px;\n\theight: 225px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 50px;\n\tposition: relative;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault {\n\twidth: 275px;\n\theight: 275px;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > a {\n\tright: 21%;\n\tfont-size: 16px;\n\tborder-width: 4px !important;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > p {\n\tfont-size: 16px;\n}\n\n.updraftvault-buy .button-purchase {\n\tright: 24%;\n\tmargin-left: 0;\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.right {\n\tmargin-right: 0px;\n}\n\n.updraftvault-buy .addon-logo-100 {\n\theight: 100px;\n\twidth: 125px;\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .addon-logo-large {\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .button-buy-vault {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 29%;\n\tbottom: 2%;\n}\n\n.premium-addon-div .button-purchase {\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy .button-buy-vault:hover {\n\tborder-color: darkgrey;\n\tcolor: darkgrey;\n}\n\n/* End Vault icons */\n\n/* Premium addons */\n\n.premium-addons {\n\tmargin-top: 80px;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.addon-list {\n\t/* margin-left: 32px; */\n\tdisplay: table;\n\ttext-align: center;\n}\n\n.premium-addons h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-addons p {\n\ttext-align: center;\n}\n\n.premium-addons .premium-addon-div {\n\twidth: 200px;\n\theight: 250px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 25px;\n\tmargin-top: 25px;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.premium-addons .premium-addon-div p {\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n\n.premium-addons .premium-addon-div img {\n\twidth: auto;\n\theight: 50px;\n\tmargin-top: 7px;\n}\n\n.premium-addons .premium-addon-div .hr-alignment {\n\tmargin-top: 44px;\n}\n\n.premium-addons .premium-addon-div .dropbox-logo {\n\theight: 39px;\n\twidth: 150px;\n}\n\n.premium-addons .premium-addon-div .azure-logo, .premium-addons .premium-addon-div .onedrive-logo {\n\twidth: 75%;\n\theight: 24px;\n}\n\n.button-purchase {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 25%;\n\tbottom: 2%;\n}\n\n.button-purchase:hover {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n}\n\n.premium-addons .premium-addon-div hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.premium-addon-div p {\n\tfont-style: italic;\n}\n\n.addon-list > .premium-addon-div > .onedrive-fix,\n.addon-list > .premium-addon-div > .azure-logo {\n\tmargin-top: 33px;\n}\n\n.addon-list > .premium-addon-div > .dropbox-fix {\n\tmargin-top: 18px;\n}\n\n/* End premium addons */\n\n\n/* Forgotton something (that is the name of the div rather than a mental note!) */\n\n.premium-forgotton-something {\n\tmargin-top: 5%;\n}\n\n.premium-forgotton-something h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-forgotton-something p {\n\ttext-align: center;\n\tfont-weight: normal;\n}\n\n.premium-forgotton-something .button-faq {\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.premium-forgotton-something .button-faq:hover {\n\tcolor: #777;\n\tborder-color: #777;\n}\n\n/* End of forgotton something */\n\n.updraftplusmethod.updraftvault #vaultlogo {\n\tpadding-left: 40px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option {\n\tfloat: left;\n\twidth: 50%;\n\ttext-align: center;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option div {\n\tclear: right;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .clear-left {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .padding-top-20px {\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .padding-top-14px {\n\tpadding-top: 14px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {\n\tfont-size: 18px !important;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_showoptions, .updraftplusmethod.updraftvault #updraftvault_connect {\n\tmargin-top: 8px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_connect input {\n\tmargin-right: 10px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_email {\n\twidth: 280px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_pass {\n\twidth: 200px;\n}\n\n.updraftplusmethod.updraftvault #vault-is-connected {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default p {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option {\n\tfloat: left;\n\twidth: 33%;\n\ttext-align: center;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-size {\n\tfont-size: 200%;\n\tfont-weight: bold;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-link {\n\tclear: both;\n\tfont-size: 150%;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-or {\n\tclear: both;\n\tfont-size: 115%;\n\tfont-style: italic;\n}\n\n/* Automation Backup Advert by B */\n.autobackup-image {\n/* \tdisplay: inline-block; */\n/*\tmin-width: 10%;\n\tmax-width:25%;*/\n/*\tfloat: left;*/\n\tclear: left;\n\tfloat: left;\n\twidth: 110px;\n\theight: 110px;\n}\n\n.autobackup-description {\n\twidth: 100%;\n}\n\n.advert-description {\n\tfloat: left;\n\tclear: right;\n\tpadding: 4px 10px 8px 10px;\n\twidth: 70%;\n\tclear: right;\n\tvertical-align: top;\n}\n\n.advert-btn {\n\tdisplay: inline-block;\n\tmin-width: 10%;\n\tvertical-align: top;\n\tmargin-bottom: 8px;\n}\n\n.advert-btn:first-of-type {\n\tmargin-top: 25px;\n}\n\n.advert-btn a {\n\tdisplay: block;\n\tcursor: pointer;\n}\n\na.btn-get-started {\n\tbackground: #FFF;\n\tborder: 2px solid #DF6926;\n\tborder-radius: 4px;\n\tcolor: #DF6926;\n\tdisplay: inline-block;\n\tmargin-left: 10px !important;\n\tmargin-bottom: 7px !important;\n\tfont-size: 18px !important;\n\tline-height: 20px;\n\tmin-height: 28px;\n\tpadding: 11px 10px 5px 10px;\n\ttext-transform: uppercase;\n\ttext-decoration: none;\n}\n\n.circle-dblarrow {\n\tborder: 1px solid #DF6926;\n\tborder-radius: 100%;\n\tdisplay: inline-block;\n\tfont-size: 17px;\n\tline-height: 17px;\n\tmargin-left: 5px;\n\twidth: 20px;\n\theight: 20px;\n\ttext-align: center;\n}\n\n/* End Automation Backup Advert by B */\n/* New Responsive Pretty Advanced Settings */\n.expertmode .advanced_settings_container {\n\theight: auto;\n\toverflow: hidden;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu {\n\tfloat: none;\n\tborder-bottom: 1px solid rgb(204, 204, 204);\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content {\n\tpadding-top: 5px;\n\tfloat: none;\n\twidth: auto;\n\toverflow: auto;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content h3:first-child {\n\tmargin-top: 5px !important;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools {\n\tdisplay: none;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .site_info {\n\tdisplay: block;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\tdisplay: inline-block;\n\tcursor: pointer;\n\tpadding: 5px;\n\tcolor: #000;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text {\n\tfont-size: 16px;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover {\n\tbackground-color: #EAEAEA;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active {\n\tbackground-color: #3498DB;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active:hover {\n\tbackground-color: #72C5FD;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content input#import_settings {\n\theight: auto !important;\n}\n\ndiv#updraft-wrap a {\n\tcursor: pointer !important;\n}\n\n.updraftcentral_wizard_option {\n\twidth: 45%;\n\tfloat: left;\n\ttext-align: center;\n}\n\n.updraftcentral_wizard_option label {\n\tmargin-bottom: 8px;\n}\n\n#updraftcentral_keys_table {\n\tdisplay: none;\n}\n\n.create_key_container {\n\tborder: 1px solid;\n\tborder-radius: 4px;\n\tpadding: 0 0 6px 6px;\n\tmargin-bottom: 8px;\n}\n\n.updraftcentral_cloud_connect {\n\tborder-radius: 4px;\n\tborder: 1px solid #000;\n\tpadding: 0 20px;\n\tmargin-top: 30px;\n\tbackground-color: #FFF;\n}\n\n.updraftcentral_cloud_error {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #F00;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_info {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #EF8F31;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftplus_spinner.spinner {\n\tpadding-left: 25px;\n\tfloat: none;\n}\n\n.updraftplus_spinner.spinner.visible {\n\tvisibility: visible;\n}\n\n.updraftcentral_cloud_notices .updraftplus_spinner {\n\tmargin-top: -5px;\n}\n\n.updraftcentral-subheading {\n\tfont-size: 14px;\n\tmargin-top: -10px;\n\tmargin-bottom: 20px;\n}\n\n#updraftcentral_cloud_form input#email,\n#updraftcentral_cloud_form input#password {\n\tmin-width: 250px;\n}\n\n.updraftcentral-data-consent {\n\tfont-size: 13px;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_wizard_image {\n\tfloat: left;\n\tmin-width: 100px;\n\tmargin-right: 25px;\n}\n\n.updraftcentral_cloud_wizard {\n\tfloat: left;\n}\n\n.updraftcentral_cloud_clear {\n\tclear: both;\n}\n\n.updraftplus-settings-footer {\n\tmargin-top: 30px;\n}\n\n.updraftplus-top-menu {\n\tpadding: 0.5em;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\tbackground: transparent;\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: none;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_row {\n\tflex-direction: column;\n\tpadding-left: 20px;\n\tpadding-right: 20px;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container {\n\twidth: 100%;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\toverflow: inherit;\n}\n\n#updraft_inpage_backup span#updraft_lastlogcontainer {\n\tpadding: 18px;\n\tbackground: #FAFAFA;\n\tdisplay: block;\n\tfont-size: 90%;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup div#updraft_activejobsrow {\n\tbackground: #FAFAFA;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow > div {\n\tbackground: transparent;\n\tpadding: 0;\n}\n\n#updraft_inpage_backup .last-message > strong {\n\tdisplay: block;\n\tmargin-top: 13px;\n}\n\n@media only screen and (min-width: 1024px) {\n\n\t#updraft_activejobsrow .updraft_row {\n\t\tdisplay: flex;\n\t\talign-items: baseline;\n\t}\n\n\t#updraft_activejobsrow .updraft_row .updraft_col {\n\t\tflex: auto;\n\t}\n\n\t#updraft_activejobsrow .updraft_progress_container {\n\t\twidth: calc(100% - 230px);\n\t}\n\n}\n\n@media only screen and (min-width: 782px) {\n\n\t.settings_page_updraftplus input[type=text],\n\t.settings_page_updraftplus input[type=password],\n\t.settings_page_updraftplus input[type=number] {\n\t\t/* border-radius: 4px; */\n\t\tline-height: 1.42;\n\t\t/* border: 1px solid #CCC; */\n\t\theight: 27px;\n\t\tpadding: 2px 6px;\n\t\tcolor: #555;\n\t}\n\n\t.settings_page_updraftplus input[type=\"number\"] {\n\t\theight: 31px;\n\t}\n\n\t#ud_massactions.active, #updraft-delete-waitwarning.active {\n\t\tposition: fixed;\n\t\tbottom: 0;\n\t\tleft: 160px;\n\t\tright: 0;\n\t\ttop: auto;\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t\tbox-shadow: 0 0 10px rgba(0, 0, 0, 0.2);\n\t}\n\n\tbody.folded #ud_massactions.active, body.folded #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n\t.updraft-after-form-table {\n\t\tmargin-left: 250px;\n\t}\n\n}\n\n@media only screen and (min-width: 782px) and (max-width: 960px) {\n\n\tbody.auto-fold #ud_massactions.active, body.auto-fold #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n}\n\n@media only screen and (max-width: 782px) {\n\n\t#updraft-wrap {\n\t\tmargin-right: 0;\n\t}\n\n\t#updraft-wrap .form-table td {\n\t\tpadding-right: 0;\n\t}\n\n\tlabel.updraft_checkbox {\n\t\tmargin-bottom: 8px;\n\t\tmargin-top: 8px;\n\t\tmargin-left: 36px;\n\t}\n\n\t.updraft_retain_rules {\n\t\tposition: relative;\n\t\tmargin-right: 0;\n\t\tborder: 1px solid #CCC;\n\t\tpadding: 5px;\n\t\tmargin-bottom: -1px;\n\t}\n\n\t.updraft_retain_rules_delete {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 5px;\n\t}\n\n\ta[id*=updraft_retain_] {\n\t\tdisplay: block;\n\t\tpadding: 15px 15px 15px 0;\n\t}\n\n\tlabel.updraft_checkbox > input[type=checkbox] {\n\t\tmargin-left: -33px;\n\t}\n\n\t#updraft-backupnow-button {\n\t\tmargin: 0;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > .updraft_backup_btn_wrapper {\n\t\tpadding-top: 0;\n\t}\n\n\t#ud_massactions, #updraft-delete-waitwarning {\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t}\n\n\t#ud_massactions.active {\n\t\tposition: fixed;\n\t\ttop: auto;\n\t\tbottom: 0;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t\tbox-shadow: 0 -3px 15px rgba(0, 0, 0, 0.08);\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t}\n\n\t#ud_massactions strong {\n\t\tdisplay: block;\n\t\tmargin-bottom: 5px;\n\t}\n\n\tsmall.ud_massactions-tip {\n\t\tdisplay: block;\n\t}\n\n/*\t.advert-description {\n\t\tmin-width: 75%;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.advert-btn {\n\t\tmargin-top: 15px;\n\t\tmargin-left:86px;\n\t\tmin-width: 100%;\n\t}*/\n\n\t.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\t\tfont-weight: normal;\n\t}\n\n\t.existing-backups-table .backup_date_label .clear-right {\n\t\tdisplay: inline-block;\n\t}\n\n\ttable.widefat.existing-backups-table {\n\t\tborder: 0;\n\t\tbox-shadow: none;\n\t\tbackground: transparent;\n\t}\n\n\t.existing-backups-table thead {\n\t\tborder: none;\n\t\tclip: rect(0 0 0 0);\n\t\theight: 1px;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\t.existing-backups-table tr {\n\t\tdisplay: block;\n\t\tmargin-bottom: .625em;\n\t\tpadding-bottom: 16.625px;\n\t\twidth: 100%;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t\tbackground: #FFF;\n\t\tbox-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);\n\t}\n\n\t.existing-backups-table td {\n\t\tborder-bottom: 1px solid #DDD;\n\t\tdisplay: block;\n\t\tfont-size: .9em;\n\t\ttext-align: left;\n\t\twidth: 100%;\n\t\tpadding: 10px;\n\t\tmargin: 0;\n\t}\n\n\t.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before {\n\t\t/*\n\t\t* aria-label has no advantage, it won't be read inside a table\n\t\tcontent: attr(aria-label);\n\t\t*/\n\t\tcontent: attr(data-label);\n\t\tfont-weight: bold;\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tleft: auto;\n\t\tpadding-bottom: 10px;\n\t\twidth: auto;\n\t\ttext-align: left;\n\t}\n\n\t.existing-backups-table td:last-child {\n\t\tborder-bottom: 0;\n\t}\n\n\t.form-table td.updraft_existingbackup_date {\n\t\twidth: inherit;\n\t\tmax-width: 100%;\n\t}\n\n\t.existing-backups-table td.before-restore-button {\n\t\tmin-height: 36px;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t\twidth: 100%;\n\t}\n\n\t.updraft_progress_container {\n\t\t/* width: 77%; */\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row {\n\t\tposition: relative;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected {\n\t\tbackground-color: #FFF;\n\t\tborder-left: 4px solid #0572AA;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select) {\n\t\tmargin-left: 50px;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select {\n\t\twidth: 50px !important;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbox-sizing: border-box;\n\t\theight: 100%;\n\t\tz-index: 1;\n\t\tborder: none;\n\t\tborder-right: 1px solid rgba(0, 0, 0, 0.05);\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups input[type=\"checkbox\"] {\n\t\theight: 25px;\n\t}\n\n\t.updraft_migrate_intro button.button.button-primary.button-hero {\n\t\tdisplay: block;\n\t\tmargin-right: 0;\n\t\twidth: 100%;\n\t\tmax-width: 100%;\n\t}\n\n\t.updraftclone-main-row {\n\t\tflex-direction: column;\n\t}\n\n\t.updraftclone-main-row > div {\n\t\twidth: auto;\n\t\tmax-width: none;\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.form-table th {\n\t\tpadding-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 600px) {\n\t\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t}\n\n\t.updraft_next_scheduled_entity {\n\t\tfloat: none;\n\t\twidth: 100%;\n\t\tmargin-bottom: 2em;\n\t}\n\n\t.updraft_time_now_wrapper {\n\t\tmargin-top: 0;\n\t}\n\n\t#updraft_lastlogmessagerow h3 {\n\t\tmargin-bottom: 5px;\n\t}\n\n\t#updraft_lastlogmessagerow .updraft-log-link {\n\t\tdisplay: block;\n\t\tfloat: none;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 520px) {\n}\n\n@media only screen and (min-width: 768px) {\n\n\t.addon-activation-notice {\n\t\tleft: 20em;\n\t}\n\n\t.existing-backups-table tbody tr:hover {\n\t\tbackground: #F1F1F1;\n\t}\n\n\t.existing-backups-table tbody tr td.before-restore-button {\n\t\tposition: relative;\n\t}\n\n\t.form-table .existing-backups-table thead th.check-column {\n\t\tpadding-left: 6px;\n\t}\n\n\t.existing-backups-table tr td:first-child {\n\t\tborder-left: 4px solid transparent;\n\t}\n\n\t.existing-backups-table tr.backuprowselected td:first-child {\n\t\tborder-left-color: #0572AA;\n\t}\n\n}\n\n@media screen and (min-width: 670px) {\n\t\n\t.expertmode .advanced_settings_container .advanced_settings_menu {\n\t\tfloat: left;\n\t\twidth: 215px;\n\t\tborder-right: 1px solid rgb(204, 204, 204);\n\t\tborder-bottom: none;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_content {\n\t\tpadding-left: 10px;\n\t\tpadding-top: 0px;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\t\tdisplay: block;\n\t}\n\n}\n\n@media only screen and (max-width: 1068px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: calc(50% - 10px);\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: 100px;\n\t}\n\n}\n\n@media only screen and (max-width: 600px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: 100%;\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: auto;\n\t}\n\n\ttable.updraft_feat_table {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table tr {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\ttable.updraft_feat_table td {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table td:first-child {\n\t\twidth: 100%;\n\t\tborder-bottom: none;\n\t}\n\n\ttable.updraft_feat_table td:not(:first-child) {\n\t\twidth: 50%;\n\t\tbox-sizing: border-box;\n\t}\n\n\ttable.updraft_feat_table td:first-child:empty {\n\t\tdisplay: none;\n\t}\n\n\ttd[data-colname]::before {\n\t\tcontent: attr(data-colname);\n\t\tfont-size: 0.8rem;\n\t\tcolor: #CCC;\n\t\tline-height: 1;\n\t}\n\n}\n"]}
|
@@ -24,12 +24,73 @@ class UpdraftPlus_Backup_History {
|
|
24 |
|
25 |
$backup_history = self::build_incremental_sets($backup_history);
|
26 |
|
|
|
|
|
27 |
// The most recent backup will be first. Then we can array_pop().
|
28 |
krsort($backup_history);
|
29 |
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
|
32 |
-
return
|
33 |
}
|
34 |
|
35 |
/**
|
@@ -68,8 +129,11 @@ class UpdraftPlus_Backup_History {
|
|
68 |
|
69 |
if (!is_array($backup_history) || empty($backup_history)) return '<div class="postbox"><p class="updraft-no-backups-msg"><em>'.__('You have not yet made any backups.', 'updraftplus').'</em></p></div>';
|
70 |
|
|
|
|
|
|
|
71 |
$pass_values = array(
|
72 |
-
'backup_history' => $backup_history,
|
73 |
'updraft_dir' => $updraftplus->backups_dir_location(),
|
74 |
'backupable_entities' => $updraftplus->get_backupable_file_entities(true, true)
|
75 |
);
|
@@ -132,7 +196,7 @@ class UpdraftPlus_Backup_History {
|
|
132 |
}
|
133 |
}
|
134 |
}
|
135 |
-
|
136 |
$backup_history[$btime]["incremental_sets"] = $incremental_sets;
|
137 |
}
|
138 |
|
@@ -642,9 +706,9 @@ class UpdraftPlus_Backup_History {
|
|
642 |
}
|
643 |
|
644 |
/**
|
645 |
-
* This function will look through the backup history and return the latest full backups
|
646 |
*
|
647 |
-
* @return
|
648 |
*/
|
649 |
public static function get_latest_full_backup() {
|
650 |
|
@@ -662,19 +726,81 @@ class UpdraftPlus_Backup_History {
|
|
662 |
|
663 |
foreach ($backup_history as $key => $backup) {
|
664 |
|
665 |
-
$
|
|
|
666 |
|
667 |
foreach ($backupable_entities as $key => $info) {
|
668 |
-
if (!isset($backup[$key]))
|
669 |
}
|
670 |
|
671 |
-
|
672 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
673 |
}
|
|
|
|
|
|
|
674 |
}
|
675 |
|
676 |
return '';
|
677 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
678 |
|
679 |
/**
|
680 |
* Save a backup into the history
|
@@ -685,7 +811,9 @@ class UpdraftPlus_Backup_History {
|
|
685 |
public static function save_backup($backup_time, $backup_array) {
|
686 |
global $updraftplus;
|
687 |
$backup_history = self::get_history();
|
688 |
-
|
|
|
|
|
689 |
self::save_history($backup_history, false);
|
690 |
}
|
691 |
}
|
24 |
|
25 |
$backup_history = self::build_incremental_sets($backup_history);
|
26 |
|
27 |
+
if ($timestamp) return isset($backup_history[$timestamp]) ? $backup_history[$timestamp] : array();
|
28 |
+
|
29 |
// The most recent backup will be first. Then we can array_pop().
|
30 |
krsort($backup_history);
|
31 |
|
32 |
+
return $backup_history;
|
33 |
+
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Add jobdata to all entries in an array of history items which do not already have it (key: 'jobdata'). If none is found, it will still be set, but empty.
|
38 |
+
*
|
39 |
+
* @param Array $backup_history - the list of history items
|
40 |
+
*
|
41 |
+
* @return Array
|
42 |
+
*/
|
43 |
+
public static function add_jobdata($backup_history) {
|
44 |
+
|
45 |
+
global $wpdb;
|
46 |
+
$table = is_multisite() ? $wpdb->sitemeta : $wpdb->options;
|
47 |
+
$key_column = is_multisite() ? 'meta_key' : 'option_name';
|
48 |
+
$value_column = is_multisite() ? 'meta_value' : 'option_value';
|
49 |
+
|
50 |
+
$any_more = true;
|
51 |
+
|
52 |
+
while ($any_more) {
|
53 |
+
|
54 |
+
$any_more = false;
|
55 |
+
$columns = array();
|
56 |
+
$nonces_map = array();
|
57 |
+
|
58 |
+
foreach ($backup_history as $timestamp => $backup) {
|
59 |
+
if (isset($backup['jobdata'])) continue;
|
60 |
+
$nonce = $backup['nonce'];
|
61 |
+
$nonces_map[$nonce] = $timestamp;
|
62 |
+
$columns[] = $nonce;
|
63 |
+
// Approx. 2.5MB of data would be expected if they all had 5KB each (though in reality we expect very few of them to have any)
|
64 |
+
if (count($columns) >= 500) {
|
65 |
+
$any_more = true;
|
66 |
+
break;
|
67 |
+
}
|
68 |
+
}
|
69 |
+
|
70 |
+
if (empty($columns)) break;
|
71 |
+
|
72 |
+
$columns_sql = '';
|
73 |
+
foreach ($columns as $nonce) {
|
74 |
+
if ($columns_sql) $columns_sql .= ',';
|
75 |
+
$columns_sql .= "'updraft_jobdata_".esc_sql($nonce)."'";
|
76 |
+
}
|
77 |
+
|
78 |
+
$sql = 'SELECT '.$key_column.', '.$value_column.' FROM '.$table.' WHERE '.$key_column.' IN ('.$columns_sql.')';
|
79 |
+
$all_jobdata = $wpdb->get_results($sql);
|
80 |
+
|
81 |
+
foreach ($all_jobdata as $values) {
|
82 |
+
// The 16 here is the length of 'updraft_jobdata_'
|
83 |
+
$nonce = substr($values->$key_column, 16);
|
84 |
+
if (empty($nonces_map[$nonce]) || empty($values->$value_column)) continue;
|
85 |
+
$jobdata = maybe_unserialize($values->$value_column);
|
86 |
+
$backup_history[$nonces_map[$nonce]]['jobdata'] = empty($jobdata) ? array() : $jobdata;
|
87 |
+
}
|
88 |
+
foreach ($columns as $nonce) {
|
89 |
+
if (!empty($nonces_map[$nonce]) && !isset($backup_history[$nonces_map[$nonce]]['jobdata'])) $backup_history[$nonces_map[$nonce]]['jobdata'] = array();
|
90 |
+
}
|
91 |
+
}
|
92 |
|
93 |
+
return $backup_history;
|
94 |
}
|
95 |
|
96 |
/**
|
129 |
|
130 |
if (!is_array($backup_history) || empty($backup_history)) return '<div class="postbox"><p class="updraft-no-backups-msg"><em>'.__('You have not yet made any backups.', 'updraftplus').'</em></p></div>';
|
131 |
|
132 |
+
// Reverse date sort - i.e. most recent first
|
133 |
+
krsort($backup_history);
|
134 |
+
|
135 |
$pass_values = array(
|
136 |
+
'backup_history' => self::add_jobdata($backup_history),
|
137 |
'updraft_dir' => $updraftplus->backups_dir_location(),
|
138 |
'backupable_entities' => $updraftplus->get_backupable_file_entities(true, true)
|
139 |
);
|
196 |
}
|
197 |
}
|
198 |
}
|
199 |
+
ksort($incremental_sets);
|
200 |
$backup_history[$btime]["incremental_sets"] = $incremental_sets;
|
201 |
}
|
202 |
|
706 |
}
|
707 |
|
708 |
/**
|
709 |
+
* This function will look through the backup history and return the nonce of the latest full backup that has everything that is set in the UpdraftPlus settings to be backed up (this will exclude full backups sent to another site, e.g. for a migration or clone)
|
710 |
*
|
711 |
+
* @return String - the backup nonce of a full backup or an empty string if none are found
|
712 |
*/
|
713 |
public static function get_latest_full_backup() {
|
714 |
|
726 |
|
727 |
foreach ($backup_history as $key => $backup) {
|
728 |
|
729 |
+
$remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
|
730 |
+
if ($remote_sent) continue;
|
731 |
|
732 |
foreach ($backupable_entities as $key => $info) {
|
733 |
+
if (!isset($backup[$key])) continue 2;
|
734 |
}
|
735 |
|
736 |
+
return $backup['nonce'];
|
737 |
+
|
738 |
+
}
|
739 |
+
|
740 |
+
return '';
|
741 |
+
}
|
742 |
+
|
743 |
+
/**
|
744 |
+
* This function will look through the backup history and return the nonce of the latest backup that can be used for an incremental backup (this will exclude full backups sent to another site, e.g. for a migration or clone)
|
745 |
+
*
|
746 |
+
* @return String - the backup nonce of a full backup or an empty string if none are found
|
747 |
+
*/
|
748 |
+
/**
|
749 |
+
* This function will look through the backup history and return the nonce of the latest backup that can be used for an incremental backup (this will exclude full backups sent to another site, e.g. for a migration or clone)
|
750 |
+
*
|
751 |
+
* @param array $entities - an array of file entities that are included in this job
|
752 |
+
*
|
753 |
+
* @return String - the backup nonce of a full backup or an empty string if none are found
|
754 |
+
*/
|
755 |
+
public static function get_latest_backup($entities) {
|
756 |
+
|
757 |
+
if (empty($entities)) return '';
|
758 |
+
|
759 |
+
$backup_history = self::get_history();
|
760 |
+
|
761 |
+
foreach ($backup_history as $key => $backup) {
|
762 |
+
|
763 |
+
$remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
|
764 |
+
if ($remote_sent) continue;
|
765 |
+
|
766 |
+
foreach ($entities as $type) {
|
767 |
+
if (!isset($backup[$type])) continue 2;
|
768 |
}
|
769 |
+
|
770 |
+
return $backup['nonce'];
|
771 |
+
|
772 |
}
|
773 |
|
774 |
return '';
|
775 |
}
|
776 |
+
|
777 |
+
/**
|
778 |
+
* This function will look through the backup history and return an array of entity types found in the history
|
779 |
+
*
|
780 |
+
* @return array - an array of backup entities found in the history or an empty array if there are none
|
781 |
+
*/
|
782 |
+
public static function get_existing_backup_entities() {
|
783 |
+
|
784 |
+
$backup_history = self::get_history();
|
785 |
+
|
786 |
+
global $updraftplus;
|
787 |
+
|
788 |
+
$backupable_entities = $updraftplus->get_backupable_file_entities(true, true);
|
789 |
+
|
790 |
+
$entities = array();
|
791 |
+
|
792 |
+
foreach ($backup_history as $key => $backup) {
|
793 |
+
|
794 |
+
$remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
|
795 |
+
if ($remote_sent) continue;
|
796 |
+
|
797 |
+
foreach ($backupable_entities as $key => $info) {
|
798 |
+
if (isset($backup[$key])) $entities[] = $key;
|
799 |
+
}
|
800 |
+
}
|
801 |
+
|
802 |
+
return $entities;
|
803 |
+
}
|
804 |
|
805 |
/**
|
806 |
* Save a backup into the history
|
811 |
public static function save_backup($backup_time, $backup_array) {
|
812 |
global $updraftplus;
|
813 |
$backup_history = self::get_history();
|
814 |
+
|
815 |
+
$backup_history[$backup_time] = isset($backup_history[$backup_time]) ? apply_filters('updraftplus_merge_backup_history', $backup_array, $backup_history[$backup_time]) : $backup_array;
|
816 |
+
|
817 |
self::save_history($backup_history, false);
|
818 |
}
|
819 |
}
|
@@ -199,6 +199,9 @@ class UpdraftPlus_Commands {
|
|
199 |
$backup_history = UpdraftPlus_Backup_History::get_history();
|
200 |
|
201 |
$results['history'] = $updraftplus_admin->settings_downloading_and_restoring($backup_history, true, $get_history_opts);
|
|
|
|
|
|
|
202 |
|
203 |
$results['count_backups'] = count($backup_history);
|
204 |
|
@@ -230,8 +233,9 @@ class UpdraftPlus_Commands {
|
|
230 |
$remotescan = ('remotescan' == $operation);
|
231 |
$rescan = ($remotescan || 'rescan' == $operation);
|
232 |
|
233 |
-
|
234 |
$history_status = $updraftplus_admin->get_history_status($rescan, $remotescan, $debug);
|
|
|
|
|
235 |
|
236 |
return $history_status;
|
237 |
|
199 |
$backup_history = UpdraftPlus_Backup_History::get_history();
|
200 |
|
201 |
$results['history'] = $updraftplus_admin->settings_downloading_and_restoring($backup_history, true, $get_history_opts);
|
202 |
+
|
203 |
+
$results['backupnow_file_entities'] = apply_filters('updraftplus_backupnow_file_entities', array());
|
204 |
+
$results['modal_afterfileoptions'] = apply_filters('updraft_backupnow_modal_afterfileoptions', '', '');
|
205 |
|
206 |
$results['count_backups'] = count($backup_history);
|
207 |
|
233 |
$remotescan = ('remotescan' == $operation);
|
234 |
$rescan = ($remotescan || 'rescan' == $operation);
|
235 |
|
|
|
236 |
$history_status = $updraftplus_admin->get_history_status($rescan, $remotescan, $debug);
|
237 |
+
$history_status['backupnow_file_entities'] = apply_filters('updraftplus_backupnow_file_entities', array());
|
238 |
+
$history_status['modal_afterfileoptions'] = apply_filters('updraft_backupnow_modal_afterfileoptions', '', '');
|
239 |
|
240 |
return $history_status;
|
241 |
|
@@ -103,11 +103,17 @@ class UpdraftPlus_Filesystem_Functions {
|
|
103 |
|
104 |
// Clean out old job data
|
105 |
if ($older_than > 10000) {
|
106 |
-
global $wpdb;
|
107 |
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
foreach ($all_jobs as $job) {
|
110 |
-
$val = maybe_unserialize($job[
|
111 |
// TODO: Can simplify this after a while (now all jobs use job_time_ms) - 1 Jan 2014
|
112 |
$delete = false;
|
113 |
if (!empty($val['next_increment_start_scheduled_for'])) {
|
@@ -119,7 +125,7 @@ class UpdraftPlus_Filesystem_Functions {
|
|
119 |
} elseif (!empty($val['job_type']) && 'backup' != $val['job_type'] && empty($val['backup_time_ms']) && empty($val['job_time_ms'])) {
|
120 |
$delete = true;
|
121 |
}
|
122 |
-
if ($delete)
|
123 |
}
|
124 |
}
|
125 |
$updraft_dir = $updraftplus->backups_dir_location();
|
@@ -145,10 +151,16 @@ class UpdraftPlus_Filesystem_Functions {
|
|
145 |
@unlink($updraft_dir.'/'.$entry);
|
146 |
$files_deleted++;
|
147 |
}
|
|
|
|
|
|
|
|
|
|
|
148 |
}
|
149 |
}
|
150 |
@closedir($handle);
|
151 |
}
|
|
|
152 |
// Depending on the PHP setup, the current working directory could be ABSPATH or wp-admin - scan both
|
153 |
// Since 1.9.32, we set them to go into $updraft_dir, so now we must check there too. Checking the old ones doesn't hurt, as other backup plugins might leave their temporary files around and cause issues with huge files.
|
154 |
foreach (array(ABSPATH, ABSPATH.'wp-admin/', $updraft_dir.'/') as $path) {
|
@@ -156,7 +168,7 @@ class UpdraftPlus_Filesystem_Functions {
|
|
156 |
while (false !== ($entry = readdir($handle))) {
|
157 |
// With the old pclzip temporary files, there is no need to keep them around after they're not in use - so we don't use $older_than here - just go for 15 minutes
|
158 |
if (preg_match("/^pclzip-[a-z0-9]+.tmp$/", $entry) && $now_time-filemtime($path.$entry) >= 900) {
|
159 |
-
$updraftplus->log("Deleting old PclZip temporary file: $entry");
|
160 |
@unlink($path.$entry);
|
161 |
}
|
162 |
}
|
@@ -367,4 +379,199 @@ class UpdraftPlus_Filesystem_Functions {
|
|
367 |
// Default fallback
|
368 |
return apply_filters('updraftplus_get_disk_space_used_none', __('Error', 'updraftplus'), $entity, $backupable_entities);
|
369 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
370 |
}
|
103 |
|
104 |
// Clean out old job data
|
105 |
if ($older_than > 10000) {
|
|
|
106 |
|
107 |
+
global $wpdb;
|
108 |
+
$table = is_multisite() ? $wpdb->sitemeta : $wpdb->options;
|
109 |
+
$key_column = is_multisite() ? 'meta_key' : 'option_name';
|
110 |
+
$value_column = is_multisite() ? 'meta_value' : 'option_value';
|
111 |
+
|
112 |
+
// Limit the maximum number for performance (the rest will get done next time, if for some reason there was a back-log)
|
113 |
+
$all_jobs = $wpdb->get_results("SELECT $key_column, $value_column FROM $table WHERE $key_column LIKE 'updraft_jobdata_%' LIMIT 100", ARRAY_A);
|
114 |
+
|
115 |
foreach ($all_jobs as $job) {
|
116 |
+
$val = maybe_unserialize($job[$value_column]);
|
117 |
// TODO: Can simplify this after a while (now all jobs use job_time_ms) - 1 Jan 2014
|
118 |
$delete = false;
|
119 |
if (!empty($val['next_increment_start_scheduled_for'])) {
|
125 |
} elseif (!empty($val['job_type']) && 'backup' != $val['job_type'] && empty($val['backup_time_ms']) && empty($val['job_time_ms'])) {
|
126 |
$delete = true;
|
127 |
}
|
128 |
+
if ($delete) delete_site_option($job[$key_column]);
|
129 |
}
|
130 |
}
|
131 |
$updraft_dir = $updraftplus->backups_dir_location();
|
151 |
@unlink($updraft_dir.'/'.$entry);
|
152 |
$files_deleted++;
|
153 |
}
|
154 |
+
} elseif (preg_match('/^log\.[0-9a-f]+\.txt$/', $entry) && $now_time-filemtime($updraft_dir.'/'.$entry)> apply_filters('updraftplus_log_delete_age', 86400 * 40, $entry)) {
|
155 |
+
$skip_dblog = (0 == $files_deleted % 25) ? false : true;
|
156 |
+
$updraftplus->log("Deleting old log file: $entry", 'notice', false, $skip_dblog);
|
157 |
+
@unlink($updraft_dir.'/'.$entry);
|
158 |
+
$files_deleted++;
|
159 |
}
|
160 |
}
|
161 |
@closedir($handle);
|
162 |
}
|
163 |
+
|
164 |
// Depending on the PHP setup, the current working directory could be ABSPATH or wp-admin - scan both
|
165 |
// Since 1.9.32, we set them to go into $updraft_dir, so now we must check there too. Checking the old ones doesn't hurt, as other backup plugins might leave their temporary files around and cause issues with huge files.
|
166 |
foreach (array(ABSPATH, ABSPATH.'wp-admin/', $updraft_dir.'/') as $path) {
|
168 |
while (false !== ($entry = readdir($handle))) {
|
169 |
// With the old pclzip temporary files, there is no need to keep them around after they're not in use - so we don't use $older_than here - just go for 15 minutes
|
170 |
if (preg_match("/^pclzip-[a-z0-9]+.tmp$/", $entry) && $now_time-filemtime($path.$entry) >= 900) {
|
171 |
+
$updraftplus->log("Deleting old PclZip temporary file: $entry (from ".basename($path).")");
|
172 |
@unlink($path.$entry);
|
173 |
}
|
174 |
}
|
379 |
// Default fallback
|
380 |
return apply_filters('updraftplus_get_disk_space_used_none', __('Error', 'updraftplus'), $entity, $backupable_entities);
|
381 |
}
|
382 |
+
|
383 |
+
/**
|
384 |
+
* Unzips a specified ZIP file to a location on the filesystem via the WordPress
|
385 |
+
* Filesystem Abstraction. Forked from WordPress core in version 5.1-alpha-44182.
|
386 |
+
* Forked to allow us to modify the behaviour (eventually, to provide feedback on progress)
|
387 |
+
*
|
388 |
+
* Assumes that WP_Filesystem() has already been called and set up. Does not extract
|
389 |
+
* a root-level __MACOSX directory, if present.
|
390 |
+
*
|
391 |
+
* Attempts to increase the PHP memory limit before uncompressing. However,
|
392 |
+
* the most memory required shouldn't be much larger than the archive itself.
|
393 |
+
*
|
394 |
+
* @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
|
395 |
+
*
|
396 |
+
* @param String $file Full path and filename of ZIP archive.
|
397 |
+
* @param String $to Full path on the filesystem to extract archive to.
|
398 |
+
*
|
399 |
+
* @return Boolean|WP_Error True on success, WP_Error on failure.
|
400 |
+
*/
|
401 |
+
public static function unzip_file($file, $to) {
|
402 |
+
global $wp_filesystem;
|
403 |
+
|
404 |
+
if (!$wp_filesystem || !is_object($wp_filesystem)) {
|
405 |
+
return new WP_Error('fs_unavailable', __('Could not access filesystem.'));
|
406 |
+
}
|
407 |
+
|
408 |
+
// Unzip can use a lot of memory, but not this much hopefully.
|
409 |
+
if (function_exists('wp_raise_memory_limit')) wp_raise_memory_limit('admin');
|
410 |
+
|
411 |
+
$needed_dirs = array();
|
412 |
+
$to = trailingslashit($to);
|
413 |
+
|
414 |
+
// Determine any parent dir's needed (of the upgrade directory)
|
415 |
+
if (!$wp_filesystem->is_dir($to)) { // Only do parents if no children exist
|
416 |
+
$path = preg_split('![/\\\]!', untrailingslashit($to));
|
417 |
+
for ($i = count($path); $i >= 0; $i--) {
|
418 |
+
|
419 |
+
if (empty($path[$i])) continue;
|
420 |
+
|
421 |
+
$dir = implode('/', array_slice($path, 0, $i + 1));
|
422 |
+
|
423 |
+
// Skip it if it looks like a Windows Drive letter.
|
424 |
+
if (preg_match('!^[a-z]:$!i', $dir)) continue;
|
425 |
+
|
426 |
+
// A folder exists; therefore, we don't need the check the levels below this
|
427 |
+
if ($wp_filesystem->is_dir($dir)) break;
|
428 |
+
|
429 |
+
$needed_dirs[] = $dir;
|
430 |
+
|
431 |
+
}
|
432 |
+
}
|
433 |
+
|
434 |
+
if (class_exists('ZipArchive', false) && apply_filters('unzip_file_use_ziparchive', true)) {
|
435 |
+
// Should be able to use self::unzip_file_go() here - not yet tested
|
436 |
+
$result = _unzip_file_ziparchive($file, $to, $needed_dirs);
|
437 |
+
if (true === $result || (is_wp_error($result) && 'incompatible_archive' != $result->get_error_code())) return $result;
|
438 |
+
}
|
439 |
+
|
440 |
+
// Fall through to PclZip if ZipArchive is not available, or encountered an error opening the file.
|
441 |
+
// Not yet ready to be able to use self::unzip_file_go() until that is ready for PclZip
|
442 |
+
return _unzip_file_pclzip($file, $to, $needed_dirs);
|
443 |
+
}
|
444 |
+
|
445 |
+
/**
|
446 |
+
* Attempts to unzip an archive; forked from _unzip_file_ziparchive() in WordPress 5.1-alpha-44182, and modified to use the UD zip classes.
|
447 |
+
*
|
448 |
+
* Assumes that WP_Filesystem() has already been called and set up.
|
449 |
+
*
|
450 |
+
* @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
|
451 |
+
*
|
452 |
+
* @param String $file Full path and filename of ZIP archive.
|
453 |
+
* @param String $to Full path on the filesystem to extract archive to.
|
454 |
+
* @param Array $needed_dirs A partial list of required folders needed to be created.
|
455 |
+
* @param String $method Either 'ziparchive' or 'pclzip'. DO NOT USE 'pclzip'; it's not yet ready.
|
456 |
+
*
|
457 |
+
* @return Boolean|WP_Error True on success, WP_Error on failure.
|
458 |
+
*/
|
459 |
+
public static function unzip_file_go($file, $to, $needed_dirs = array(), $method = 'ziparchive') {
|
460 |
+
global $wp_filesystem;
|
461 |
+
|
462 |
+
$class_to_use = ('ziparchive' == $method) ? 'UpdraftPlus_ZipArchive' : 'UpdraftPlus_PclZip';
|
463 |
+
|
464 |
+
if (!class_exists($class_to_use)) require_once(UPDRAFTPLUS_DIR.'/includes/class-zip.php');
|
465 |
+
|
466 |
+
$z = new $class_to_use;
|
467 |
+
|
468 |
+
$flags = (version_compare(PHP_VERSION, '5.2.12', '>') && defined('ZIPARCHIVE::CHECKCONS')) ? ZIPARCHIVE::CHECKCONS : 4;
|
469 |
+
|
470 |
+
$zopen = $z->open($file, $flags);
|
471 |
+
|
472 |
+
if (true !== $zopen) {
|
473 |
+
return new WP_Error('incompatible_archive', __('Incompatible Archive.'), array($method.'_error' => $zope));
|
474 |
+
}
|
475 |
+
|
476 |
+
$uncompressed_size = 0;
|
477 |
+
|
478 |
+
$num_files = $z->numFiles;
|
479 |
+
|
480 |
+
for ($i = 0; $i < $num_files; $i++) {
|
481 |
+
if (!$info = $z->statIndex($i)) {
|
482 |
+
return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.'));
|
483 |
+
}
|
484 |
+
|
485 |
+
if ('__MACOSX/' === substr($info['name'], 0, 9)) { // Skip the OS X-created __MACOSX directory
|
486 |
+
continue;
|
487 |
+
}
|
488 |
+
|
489 |
+
// Don't extract invalid files:
|
490 |
+
if (0 !== validate_file($info['name'])) {
|
491 |
+
continue;
|
492 |
+
}
|
493 |
+
|
494 |
+
$uncompressed_size += $info['size'];
|
495 |
+
|
496 |
+
if ('/' === substr($info['name'], -1)) {
|
497 |
+
// Directory.
|
498 |
+
$needed_dirs[] = $to . untrailingslashit($info['name']);
|
499 |
+
} elseif ('.' !== $dirname = dirname($info['name'])) {
|
500 |
+
// Path to a file.
|
501 |
+
$needed_dirs[] = $to . untrailingslashit($dirname);
|
502 |
+
}
|
503 |
+
}
|
504 |
+
|
505 |
+
/*
|
506 |
+
* disk_free_space() could return false. Assume that any falsey value is an error.
|
507 |
+
* A disk that has zero free bytes has bigger problems.
|
508 |
+
* Require we have enough space to unzip the file and copy its contents, with a 10% buffer.
|
509 |
+
*/
|
510 |
+
if (wp_doing_cron()) {
|
511 |
+
$available_space = @disk_free_space(WP_CONTENT_DIR);
|
512 |
+
if ($available_space && ($uncompressed_size * 2.1) > $available_space) {
|
513 |
+
return new WP_Error('disk_full_unzip_file', __('Could not copy files. You may have run out of disk space.'), compact('uncompressed_size', 'available_space'));
|
514 |
+
}
|
515 |
+
}
|
516 |
+
|
517 |
+
$needed_dirs = array_unique($needed_dirs);
|
518 |
+
foreach ($needed_dirs as $dir) {
|
519 |
+
// Check the parent folders of the folders all exist within the creation array.
|
520 |
+
if (untrailingslashit($to) == $dir) { // Skip over the working directory, We know this exists (or will exist)
|
521 |
+
continue;
|
522 |
+
}
|
523 |
+
if (strpos($dir, $to) === false) { // If the directory is not within the working directory, Skip it
|
524 |
+
continue;
|
525 |
+
}
|
526 |
+
|
527 |
+
$parent_folder = dirname($dir);
|
528 |
+
while (!empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs)) {
|
529 |
+
$needed_dirs[] = $parent_folder;
|
530 |
+
$parent_folder = dirname($parent_folder);
|
531 |
+
}
|
532 |
+
}
|
533 |
+
asort($needed_dirs);
|
534 |
+
|
535 |
+
// Create those directories if need be:
|
536 |
+
foreach ($needed_dirs as $_dir) {
|
537 |
+
// Only check to see if the Dir exists upon creation failure. Less I/O this way.
|
538 |
+
if (!$wp_filesystem->mkdir($_dir, FS_CHMOD_DIR) && !$wp_filesystem->is_dir($_dir)) {
|
539 |
+
return new WP_Error('mkdir_failed_'.$method, __('Could not create directory.'), substr($_dir, strlen($to)));
|
540 |
+
}
|
541 |
+
}
|
542 |
+
unset($needed_dirs);
|
543 |
+
|
544 |
+
for ($i = 0; $i < $num_files; $i++) {
|
545 |
+
if (!$info = $z->statIndex($i)) {
|
546 |
+
return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.'));
|
547 |
+
}
|
548 |
+
|
549 |
+
if ('/' == substr($info['name'], -1)) { // directory
|
550 |
+
continue;
|
551 |
+
}
|
552 |
+
|
553 |
+
if ('__MACOSX/' === substr($info['name'], 0, 9)) { // Don't extract the OS X-created __MACOSX directory files
|
554 |
+
continue;
|
555 |
+
}
|
556 |
+
|
557 |
+
// Don't extract invalid files:
|
558 |
+
if (0 !== validate_file($info['name'])) {
|
559 |
+
continue;
|
560 |
+
}
|
561 |
+
|
562 |
+
$contents = $z->getFromIndex($i);
|
563 |
+
|
564 |
+
if (false === $contents) {
|
565 |
+
return new WP_Error('extract_failed_'.$method, __('Could not extract file from archive.'), $info['name']);
|
566 |
+
}
|
567 |
+
|
568 |
+
if (!$wp_filesystem->put_contents($to . $info['name'], $contents, FS_CHMOD_FILE)) {
|
569 |
+
return new WP_Error('copy_failed_'.$method, __('Could not copy file.'), $info['name']);
|
570 |
+
}
|
571 |
+
}
|
572 |
+
|
573 |
+
$z->close();
|
574 |
+
|
575 |
+
return true;
|
576 |
+
}
|
577 |
}
|
@@ -225,7 +225,7 @@ abstract class UpdraftPlus_RemoteSend {
|
|
225 |
|
226 |
public function updraftplus_initial_jobdata($initial_jobdata, $options, $split_every) {
|
227 |
|
228 |
-
if (is_array($options) && !empty($options['extradata']) && preg_match('#
|
229 |
|
230 |
// Load the option now - don't wait until send time
|
231 |
$site_id = $matches[1];
|
225 |
|
226 |
public function updraftplus_initial_jobdata($initial_jobdata, $options, $split_every) {
|
227 |
|
228 |
+
if (is_array($options) && !empty($options['extradata']) && !empty($options['extradata']['services']) && preg_match('#remotesend/(\d+)#', $options['extradata']['services'], $matches)) {
|
229 |
|
230 |
// Load the option now - don't wait until send time
|
231 |
$site_id = $matches[1];
|
@@ -214,7 +214,7 @@ class UpdraftPlus_WPAdmin_Commands extends UpdraftPlus_Commands {
|
|
214 |
$incremental_sets = array_keys($backups[$timestamp]['incremental_sets']);
|
215 |
// Check if there are more than one timestamp in the incremental set
|
216 |
if (1 < count($incremental_sets)) {
|
217 |
-
$incremental_select_html = '<label>'.__('
|
218 |
$incremental_select_html .= '<select name="updraft_incremental_restore_point" id="updraft_incremental_restore_point">';
|
219 |
$incremental_sets = array_reverse($incremental_sets);
|
220 |
$first_timestamp = $incremental_sets[0];
|
214 |
$incremental_sets = array_keys($backups[$timestamp]['incremental_sets']);
|
215 |
// Check if there are more than one timestamp in the incremental set
|
216 |
if (1 < count($incremental_sets)) {
|
217 |
+
$incremental_select_html = '<label>'.__('This backup set contains incremental backups of your files; please select the time you wish to restore your files to', 'updraftplus').': </label>';
|
218 |
$incremental_select_html .= '<select name="updraft_incremental_restore_point" id="updraft_incremental_restore_point">';
|
219 |
$incremental_sets = array_reverse($incremental_sets);
|
220 |
$first_timestamp = $incremental_sets[0];
|
@@ -438,18 +438,72 @@ function updraft_restore_setoptions(entities) {
|
|
438 |
jQuery('#updraft-restore-modal').dialog("option", "height", height);
|
439 |
}
|
440 |
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
|
|
|
|
|
|
|
|
|
|
448 |
} else {
|
|
|
|
|
|
|
|
|
|
|
449 |
jQuery('#backupnow_label').val('');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
450 |
jQuery('#updraft-backupnow-modal').dialog('open');
|
451 |
}
|
452 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
453 |
|
454 |
var onlythesefileentities = backupnow_whichfiles_checked('');
|
455 |
if ('' == onlythesefileentities) {
|
@@ -458,6 +512,7 @@ if ('' == onlythesefileentities) {
|
|
458 |
jQuery("#backupnow_includefiles_moreoptions").hide();
|
459 |
}
|
460 |
|
|
|
461 |
var updraft_restore_stage = 1;
|
462 |
var lastlog_lastmessage = "";
|
463 |
var lastlog_lastdata = "";
|
@@ -1119,6 +1174,12 @@ function updraft_updatehistory(rescan, remotescan, debug) {
|
|
1119 |
}
|
1120 |
}
|
1121 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
1122 |
|
1123 |
if (resp.n != null) { jQuery('#updraft-existing-backups-heading').html(resp.n); }
|
1124 |
|
@@ -1139,6 +1200,17 @@ function updraft_updatehistory(rescan, remotescan, debug) {
|
|
1139 |
});
|
1140 |
}
|
1141 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1142 |
/**
|
1143 |
* Exclude entities hidden input field update
|
1144 |
*
|
@@ -1827,6 +1899,9 @@ function updraft_backupnow_go(backupnow_nodb, backupnow_nofiles, backupnow_noclo
|
|
1827 |
params.always_keep = (typeof extradata.always_keep !== 'undefined') ? extradata.always_keep : 0;
|
1828 |
delete extradata.always_keep;
|
1829 |
|
|
|
|
|
|
|
1830 |
// Display Request start message
|
1831 |
if (!jQuery('.updraft_requeststart').length) {
|
1832 |
var requeststart_el = jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);
|
@@ -1848,6 +1923,11 @@ function updraft_backupnow_go(backupnow_nodb, backupnow_nofiles, backupnow_noclo
|
|
1848 |
|
1849 |
updraft_activejobslist_backupnownonce_only = 1;
|
1850 |
updraft_send_command('backupnow', params, function(resp) {
|
|
|
|
|
|
|
|
|
|
|
1851 |
jQuery('#updraft_backup_started').html(resp.m);
|
1852 |
if (resp.hasOwnProperty('nonce')) {
|
1853 |
// Can't return it from this context
|
@@ -2833,6 +2913,12 @@ jQuery(document).ready(function($) {
|
|
2833 |
jQuery('#updraft-deleted-files-total').text('');
|
2834 |
jQuery('#updraft-delete-waitwarning').slideUp();
|
2835 |
}, 500);
|
|
|
|
|
|
|
|
|
|
|
|
|
2836 |
|
2837 |
if (resp.hasOwnProperty('count_backups')) {
|
2838 |
jQuery('#updraft-existing-backups-heading').html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+resp.count_backups+'</span>');
|
@@ -3011,6 +3097,7 @@ jQuery(document).ready(function($) {
|
|
3011 |
var backupnow_nocloud = jQuery('#backupnow_includecloud').is(':checked') ? 0 : 1;
|
3012 |
var onlythesetableentities = backupnow_whichtables_checked('');
|
3013 |
var always_keep = jQuery('#always_keep').is(':checked') ? 1 : 0;
|
|
|
3014 |
|
3015 |
if ('' == onlythesetableentities && 0 == backupnow_nodb) {
|
3016 |
alert(updraftlion.notableschosen);
|
@@ -3043,7 +3130,7 @@ jQuery(document).ready(function($) {
|
|
3043 |
});
|
3044 |
}, 1700);
|
3045 |
|
3046 |
-
updraft_backupnow_go(backupnow_nodb, backupnow_nofiles, backupnow_nocloud, onlythesefileentities, {always_keep: always_keep}, jQuery('#backupnow_label').val(), onlythesetableentities);
|
3047 |
};
|
3048 |
backupnow_modal_buttons[updraftlion.cancel] = function() {
|
3049 |
jQuery(this).dialog("close"); };
|
@@ -3553,8 +3640,11 @@ jQuery(document).ready(function($) {
|
|
3553 |
|
3554 |
jQuery('#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content').on('click', '.updraft-log-link', function(e) {
|
3555 |
e.preventDefault();
|
|
|
3556 |
var job_id = jQuery(this).data('jobid');
|
3557 |
-
if (
|
|
|
|
|
3558 |
updraft_popuplog(job_id);
|
3559 |
} else {
|
3560 |
console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found");
|
438 |
jQuery('#updraft-restore-modal').dialog("option", "height", height);
|
439 |
}
|
440 |
|
441 |
+
/**
|
442 |
+
* Open the 'Backup Now' dialog box
|
443 |
+
*
|
444 |
+
* @param {string} type - the backup type; either "new" or "incremental"
|
445 |
+
*/
|
446 |
+
function updraft_backup_dialog_open(type) {
|
447 |
+
|
448 |
+
type = ('undefined' === typeof type) ? 'new' : type;
|
449 |
+
|
450 |
+
if (0 == jQuery('#updraftplus_incremental_backup_link').data('incremental') && 'incremental' == type) {
|
451 |
+
jQuery('#updraft-backupnow-modal .incremental-free-only').show();
|
452 |
+
type = 'new';
|
453 |
} else {
|
454 |
+
jQuery('#updraft-backupnow-modal .incremental-backups-only').hide();
|
455 |
+
}
|
456 |
+
|
457 |
+
jQuery('#backupnow_includefiles_moreoptions').hide();
|
458 |
+
if (!updraft_settings_form_changed || window.confirm(updraftlion.unsavedsettingsbackup)) {
|
459 |
jQuery('#backupnow_label').val('');
|
460 |
+
if ('incremental' == type) {
|
461 |
+
update_file_entities_checkboxes(true, impossible_increment_entities);
|
462 |
+
jQuery('#backupnow_includedb').prop('checked', false);
|
463 |
+
jQuery('#backupnow_includefiles').prop('checked', true);
|
464 |
+
jQuery('#backupnow_includefiles_label').text(updraftlion.files_incremental_backup);
|
465 |
+
jQuery('#updraft-backupnow-modal .new-backups-only').hide();
|
466 |
+
jQuery('#updraft-backupnow-modal .incremental-backups-only').show();
|
467 |
+
} else {
|
468 |
+
update_file_entities_checkboxes(false, impossible_increment_entities);
|
469 |
+
jQuery('#backupnow_includedb').prop('checked', true);
|
470 |
+
jQuery('#backupnow_includefiles_label').text(updraftlion.files_new_backup);
|
471 |
+
jQuery('#updraft-backupnow-modal .new-backups-only').show();
|
472 |
+
jQuery('#updraft-backupnow-modal .incremental-backups-only').hide();
|
473 |
+
}
|
474 |
+
jQuery('#updraft-backupnow-modal').data('backup-type', type);
|
475 |
jQuery('#updraft-backupnow-modal').dialog('open');
|
476 |
}
|
477 |
}
|
478 |
+
/**
|
479 |
+
* Open the 'Backup Now' dialog box
|
480 |
+
*
|
481 |
+
* @param {string} type - the backup type; either "new" or "incremental"
|
482 |
+
*/
|
483 |
+
/**
|
484 |
+
* This function will enable and disable the file entity options depending on what entities increments can be added to and if this is a new backup or not.
|
485 |
+
*
|
486 |
+
* @param {boolean} incremental - a boolean to indicate if this is an incremental backup or not
|
487 |
+
* @param {array} entities - an array of entities to disable
|
488 |
+
*/
|
489 |
+
function update_file_entities_checkboxes(incremental, entities) {
|
490 |
+
if (incremental) {
|
491 |
+
jQuery(entities).each(function (index, entity) {
|
492 |
+
jQuery('#backupnow_files_updraft_include_' + entity).prop('checked', false);
|
493 |
+
jQuery('#backupnow_files_updraft_include_' + entity).prop('disabled', true);
|
494 |
+
});
|
495 |
+
} else {
|
496 |
+
jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function (index) {
|
497 |
+
var name = jQuery(this).attr('name');
|
498 |
+
if (name.substring(0, 16) != 'updraft_include_') { return; }
|
499 |
+
var entity = name.substring(16);
|
500 |
+
jQuery('#backupnow_files_updraft_include_' + entity).prop('disabled', false);
|
501 |
+
if (jQuery(this).is(':checked')) {
|
502 |
+
jQuery('#backupnow_files_updraft_include_' + entity).prop('checked', true);
|
503 |
+
}
|
504 |
+
});
|
505 |
+
}
|
506 |
+
}
|
507 |
|
508 |
var onlythesefileentities = backupnow_whichfiles_checked('');
|
509 |
if ('' == onlythesefileentities) {
|
512 |
jQuery("#backupnow_includefiles_moreoptions").hide();
|
513 |
}
|
514 |
|
515 |
+
var impossible_increment_entities;
|
516 |
var updraft_restore_stage = 1;
|
517 |
var lastlog_lastmessage = "";
|
518 |
var lastlog_lastdata = "";
|
1174 |
}
|
1175 |
}
|
1176 |
}
|
1177 |
+
|
1178 |
+
update_backupnow_modal(resp);
|
1179 |
+
|
1180 |
+
if (resp.hasOwnProperty('backupnow_file_entities')) {
|
1181 |
+
impossible_increment_entities = resp.backupnow_file_entities;
|
1182 |
+
}
|
1183 |
|
1184 |
if (resp.n != null) { jQuery('#updraft-existing-backups-heading').html(resp.n); }
|
1185 |
|
1200 |
});
|
1201 |
}
|
1202 |
|
1203 |
+
/**
|
1204 |
+
* This function will check if the passed in response contains content for the backup now modal that needs updating on page
|
1205 |
+
*
|
1206 |
+
* @param {array} response - an array that may contain backupnow_modal content that needs updating
|
1207 |
+
*/
|
1208 |
+
function update_backupnow_modal(response) {
|
1209 |
+
if (response.hasOwnProperty('modal_afterfileoptions')) {
|
1210 |
+
jQuery('.backupnow_modal_afterfileoptions').html(response.modal_afterfileoptions);
|
1211 |
+
}
|
1212 |
+
}
|
1213 |
+
|
1214 |
/**
|
1215 |
* Exclude entities hidden input field update
|
1216 |
*
|
1899 |
params.always_keep = (typeof extradata.always_keep !== 'undefined') ? extradata.always_keep : 0;
|
1900 |
delete extradata.always_keep;
|
1901 |
|
1902 |
+
params.incremental = (typeof extradata.incremental !== 'undefined') ? extradata.incremental : 0;
|
1903 |
+
delete extradata.incremental;
|
1904 |
+
|
1905 |
// Display Request start message
|
1906 |
if (!jQuery('.updraft_requeststart').length) {
|
1907 |
var requeststart_el = jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);
|
1923 |
|
1924 |
updraft_activejobslist_backupnownonce_only = 1;
|
1925 |
updraft_send_command('backupnow', params, function(resp) {
|
1926 |
+
if (resp.hasOwnProperty('error')) {
|
1927 |
+
jQuery('.updraft_requeststart').remove();
|
1928 |
+
alert(resp.error);
|
1929 |
+
return;
|
1930 |
+
}
|
1931 |
jQuery('#updraft_backup_started').html(resp.m);
|
1932 |
if (resp.hasOwnProperty('nonce')) {
|
1933 |
// Can't return it from this context
|
2913 |
jQuery('#updraft-deleted-files-total').text('');
|
2914 |
jQuery('#updraft-delete-waitwarning').slideUp();
|
2915 |
}, 500);
|
2916 |
+
|
2917 |
+
update_backupnow_modal(resp);
|
2918 |
+
|
2919 |
+
if (resp.hasOwnProperty('backupnow_file_entities')) {
|
2920 |
+
impossible_increment_entities = resp.backupnow_file_entities;
|
2921 |
+
}
|
2922 |
|
2923 |
if (resp.hasOwnProperty('count_backups')) {
|
2924 |
jQuery('#updraft-existing-backups-heading').html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+resp.count_backups+'</span>');
|
3097 |
var backupnow_nocloud = jQuery('#backupnow_includecloud').is(':checked') ? 0 : 1;
|
3098 |
var onlythesetableentities = backupnow_whichtables_checked('');
|
3099 |
var always_keep = jQuery('#always_keep').is(':checked') ? 1 : 0;
|
3100 |
+
var incremental = ('incremental' == jQuery('#updraft-backupnow-modal').data('backup-type')) ? 1 : 0;
|
3101 |
|
3102 |
if ('' == onlythesetableentities && 0 == backupnow_nodb) {
|
3103 |
alert(updraftlion.notableschosen);
|
3130 |
});
|
3131 |
}, 1700);
|
3132 |
|
3133 |
+
updraft_backupnow_go(backupnow_nodb, backupnow_nofiles, backupnow_nocloud, onlythesefileentities, {always_keep: always_keep, incremental: incremental}, jQuery('#backupnow_label').val(), onlythesetableentities);
|
3134 |
};
|
3135 |
backupnow_modal_buttons[updraftlion.cancel] = function() {
|
3136 |
jQuery(this).dialog("close"); };
|
3640 |
|
3641 |
jQuery('#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content').on('click', '.updraft-log-link', function(e) {
|
3642 |
e.preventDefault();
|
3643 |
+
var file_id = jQuery(this).data('fileid');
|
3644 |
var job_id = jQuery(this).data('jobid');
|
3645 |
+
if (file_id) {
|
3646 |
+
updraft_popuplog(file_id);
|
3647 |
+
} else if (job_id) {
|
3648 |
updraft_popuplog(job_id);
|
3649 |
} else {
|
3650 |
console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found");
|
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
1 |
+
function updraft_send_command(t,e,a,r){default_options={json_parse:!0,alert_on_error:!0,action:"updraft_ajax",nonce:updraft_credentialtest_nonce,nonce_key:"nonce",timeout:null,async:!0,type:"POST"},"undefined"==typeof r&&(r={});for(var n in default_options)r.hasOwnProperty(n)||(r[n]=default_options[n]);var o={action:r.action,subaction:t};if(o[r.nonce_key]=r.nonce,"object"==typeof e)for(var u in e)o[u]=e[u];else o.action_data=e;var d={type:r.type,url:ajaxurl,data:o,success:function(t,e){if(r.json_parse){try{var n=ud_parse_json(t)}catch(o){return"function"==typeof r.error_callback?r.error_callback(t,o,502,n):(console.log(o),console.log(t),void(r.alert_on_error&&alert(updraftlion.unexpectedresponse+" "+t)))}if(n.hasOwnProperty("fatal_error"))return"function"==typeof r.error_callback?r.error_callback(t,e,500,n):(console.error(n.fatal_error_message),r.alert_on_error&&alert(n.fatal_error_message),!1);"function"==typeof a&&a(n,e,t)}else"function"==typeof a&&a(t,e)},error:function(t,e,a){"function"==typeof r.error_callback?r.error_callback(t,e,a):(console.log("updraft_send_command: error: "+e+" ("+a+")"),console.log(t))},dataType:"text",async:r.async};null!=r.timeout&&(d.timeout=r.timeout),jQuery.ajax(d)}function updraft_delete(t,e,a){jQuery("#updraft_delete_timestamp").val(t),jQuery("#updraft_delete_nonce").val(e),a?jQuery("#updraft-delete-remote-section, #updraft_delete_remote").removeAttr("disabled").show():jQuery("#updraft-delete-remote-section, #updraft_delete_remote").hide().attr("disabled","disabled"),t.indexOf(",")>-1?(jQuery("#updraft_delete_question_singular").hide(),jQuery("#updraft_delete_question_plural").show()):(jQuery("#updraft_delete_question_plural").hide(),jQuery("#updraft_delete_question_singular").show()),jQuery("#updraft-delete-modal").dialog("open")}function updraft_remote_storage_tab_activation(t){jQuery(".updraftplusmethod").hide(),jQuery(".remote-tab").data("active",!1),jQuery(".remote-tab").removeClass("nav-tab-active"),jQuery(".updraftplusmethod."+t).show(),jQuery(".remote-tab-"+t).data("active",!0),jQuery(".remote-tab-"+t).addClass("nav-tab-active")}function updraft_check_overduecrons(){updraft_send_command("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&jQuery("#updraft-insert-admin-warning").html(t.m)},{alert_on_error:!1})}function updraft_remote_storage_tabs_setup(){var t=0,e=jQuery(".updraft_servicecheckbox:checked");jQuery(e).each(function(a,r){var n=jQuery(r).val();"updraft_servicecheckbox_none"!=jQuery(r).attr("id")&&t++,jQuery(".remote-tab-"+n).show(),a==jQuery(e).length-1&&updraft_remote_storage_tab_activation(n)}),t>0?(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show()):jQuery("#remote_storage_tabs").hide(),jQuery(document).keyup(function(t){if((32===t.keyCode||13===t.keyCode)&&jQuery(document.activeElement).is("input.labelauty + label")){var e=jQuery(document.activeElement).attr("for");e&&jQuery("#"+e).change()}}),jQuery(".updraft_servicecheckbox").change(function(){var e=jQuery(this).attr("id");if("updraft_servicecheckbox_"==e.substring(0,24)){var a=e.substring(24);null!=a&&""!=a&&(jQuery(this).is(":checked")?(t++,jQuery(".remote-tab-"+a).fadeIn(),updraft_remote_storage_tab_activation(a)):(t--,jQuery(".remote-tab-"+a).hide(),1==jQuery(".remote-tab-"+a).data("active")&&updraft_remote_storage_tab_activation(jQuery(".remote-tab:visible").last().attr("name"))))}t<=0?(jQuery(".updraftplusmethod.none").fadeIn(),jQuery("#remote_storage_tabs").hide()):(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show())}),jQuery(".updraft_servicecheckbox:not(.multi)").change(function(){var t=jQuery(this).attr("value");jQuery(this).is(":not(:checked)")?(jQuery(".updraftplusmethod."+t).hide(),jQuery(".updraftplusmethod.none").fadeIn()):jQuery(".updraft_servicecheckbox").not(this).prop("checked",!1)});var a=jQuery(".updraft_servicecheckbox");"function"==typeof a.labelauty&&a.labelauty()}function updraft_remote_storage_test(t,e,a){var r,n;a?(r=jQuery("#updraft-"+t+"-test-"+a),n=".updraftplusmethod."+t+"-"+a):(r=jQuery("#updraft-"+t+"-test"),n=".updraftplusmethod."+t);var o=r.data("method_label");r.html(updraftlion.testing_settings.replace("%s",o));var u={method:t};jQuery("#updraft-navtab-settings-content "+n+" input[data-updraft_settings_test], #updraft-navtab-settings-content .expertmode input[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test"),r=jQuery(e).attr("type");if(a){r||(console.log("UpdraftPlus: settings test input item with no type found"),console.log(e),r="text");var n=null;"checkbox"==r?n=jQuery(e).is(":checked")?1:0:"text"==r||"password"==r?n=jQuery(e).val():(console.log("UpdraftPlus: settings test input item with unrecognised type ("+r+") found"),console.log(e)),u[a]=n}}),jQuery("#updraft-navtab-settings-content "+n+" textarea[data-updraft_settings_test], #updraft-navtab-settings-content "+n+" select[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test");u[a]=jQuery(e).val()}),updraft_send_command("test_storage_settings",u,function(t,a){r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof e&&0!=e&&(e=e.call(this,t,a,u)),"undefined"!=typeof e&&!1===e&&(alert(updraftlion.settings_test_result.replace("%s",o)+" "+t.output),t.hasOwnProperty("data")&&console.log(t.data))},{error_callback:function(t,e,a,n){if(r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var u="updraft_send_command: error: "+e+" ("+a+")";console.log(u),alert(u),console.log(t)}}})}function backupnow_whichfiles_checked(t){return jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(e){if(jQuery(this).is(":checked")){var a=jQuery(this).attr("name");if("updraft_include_"==a.substring(0,16)){var r=a.substring(16);""!=t&&(t+=","),t+=r}}}),t}function backupnow_whichtables_checked(t){var e=!1;return jQuery('#backupnow_database_moreoptions input[type="checkbox"]').each(function(t){if(!jQuery(this).is(":checked"))return void(e=!0)}),t=jQuery("input[name^='updraft_include_tables_']").serializeArray(),!e||t}function updraft_deleteallselected(){var t=0,e="",a="",r=0;jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").each(function(n){t++;var o=jQuery(this).data("nonce");a&&(a+=","),a+=o;var u=jQuery(this).data("key");e&&(e+=","),e+=u;var d=jQuery(this).find(".updraftplus-remove").data("hasremote");d&&r++}),updraft_delete(e,a,r)}function updraft_open_main_tab(t){updraftlion.main_tabs_keys.forEach(function(e){t==e?(jQuery("#updraft-navtab-"+e+"-content").show(),jQuery("#updraft-navtab-"+e).addClass("nav-tab-active")):(jQuery("#updraft-navtab-"+e+"-content").hide(),jQuery("#updraft-navtab-"+e).removeClass("nav-tab-active")),updraft_console_focussed_tab=t})}function updraft_openrestorepanel(t){updraft_historytimertoggle(t),updraft_open_main_tab("backups")}function updraft_delete_old_dirs(){return!0}function updraft_initiate_restore(t){jQuery('#updraft-navtab-backups-content .updraft_existing_backups button[data-backup_timestamp="'+t+'"]').click()}function updraft_restore_setoptions(t){var e=0;jQuery('input[name="updraft_restore[]"]').each(function(a,r){var n=jQuery(r).val(),o=n+"=([0-9,]+)",u=new RegExp(o),d=t.match(u);d?(jQuery(r).removeAttr("disabled").data("howmany",d[1]).parent().show(),e++,"db"==n&&(e+=4.5),jQuery(r).is(":checked")&&jQuery("#updraft_restorer_"+n+"options").show()):jQuery(r).attr("disabled","disabled").parent().hide()});var a=t.match(/dbcrypted=1/);a?(jQuery("#updraft_restore_db").data("encrypted",1),jQuery(".updraft_restore_crypteddb").show()):(jQuery("#updraft_restore_db").data("encrypted",0),jQuery(".updraft_restore_crypteddb").hide()),jQuery("#updraft_restore_db").trigger("change");var r=t.match(/meta_foreign=([12])/);r?jQuery("#updraft_restore_meta_foreign").val(r[1]):jQuery("#updraft_restore_meta_foreign").val("0");var n=336+20*e;jQuery("#updraft-restore-modal").dialog("option","height",n)}function updraft_backup_dialog_open(t){t="undefined"==typeof t?"new":t,0==jQuery("#updraftplus_incremental_backup_link").data("incremental")&&"incremental"==t?(jQuery("#updraft-backupnow-modal .incremental-free-only").show(),t="new"):jQuery("#updraft-backupnow-modal .incremental-backups-only").hide(),jQuery("#backupnow_includefiles_moreoptions").hide(),updraft_settings_form_changed&&!window.confirm(updraftlion.unsavedsettingsbackup)||(jQuery("#backupnow_label").val(""),"incremental"==t?(update_file_entities_checkboxes(!0,impossible_increment_entities),jQuery("#backupnow_includedb").prop("checked",!1),jQuery("#backupnow_includefiles").prop("checked",!0),jQuery("#backupnow_includefiles_label").text(updraftlion.files_incremental_backup),jQuery("#updraft-backupnow-modal .new-backups-only").hide(),jQuery("#updraft-backupnow-modal .incremental-backups-only").show()):(update_file_entities_checkboxes(!1,impossible_increment_entities),jQuery("#backupnow_includedb").prop("checked",!0),jQuery("#backupnow_includefiles_label").text(updraftlion.files_new_backup),jQuery("#updraft-backupnow-modal .new-backups-only").show(),jQuery("#updraft-backupnow-modal .incremental-backups-only").hide()),jQuery("#updraft-backupnow-modal").data("backup-type",t),jQuery("#updraft-backupnow-modal").dialog("open"))}function update_file_entities_checkboxes(t,e){t?jQuery(e).each(function(t,e){jQuery("#backupnow_files_updraft_include_"+e).prop("checked",!1),jQuery("#backupnow_files_updraft_include_"+e).prop("disabled",!0)}):jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(t){var e=jQuery(this).attr("name");if("updraft_include_"==e.substring(0,16)){var a=e.substring(16);jQuery("#backupnow_files_updraft_include_"+a).prop("disabled",!1),jQuery(this).is(":checked")&&jQuery("#backupnow_files_updraft_include_"+a).prop("checked",!0)}})}function updraft_check_page_visibility(t){"hidden"==document.visibilityState?updraft_page_is_visible=0:(updraft_page_is_visible=1,1!==t&&jQuery("#updraft-navtab-backups-content").length&&updraft_activejobs_update(!0))}function setup_migrate_tabs(){jQuery("#updraft_migrate .updraft_migrate_widget_module_content").each(function(t,e){var a=jQuery(e).find("h3").first().html(),r=jQuery(".updraft_migrate_intro"),n=jQuery('<button class="button button-primary button-hero" />').html(a).appendTo(r);n.on("click",function(t){t.preventDefault(),jQuery(e).show(),r.hide()})})}function updraft_backupnow_inpage_go(t,e,a,r,n,o,u){r="undefined"==typeof r?0:r,n="undefined"==typeof n?0:n,o="undefined"==typeof o?0:o,u="undefined"==typeof u?updraftlion.automaticbackupbeforeupdate:u,updraft_console_focussed_tab="backups",updraft_inpage_success_callback=t,updraft_activejobs_update_timer=setInterval(function(){updraft_activejobs_update(!1)},1250);var d={},s=jQuery("#updraft-backupnow-inpage-modal").length;s&&jQuery("#updraft-backupnow-inpage-modal").dialog("option","buttons",d),jQuery("#updraft_inpage_prebackup").hide(),s&&jQuery("#updraft-backupnow-inpage-modal").dialog("open"),jQuery("#updraft_inpage_backup").show(),updraft_activejobslist_backupnownonce_only=1,updraft_inpage_hasbegun=0,updraft_backupnow_go(r,n,o,e,a,u,"")}function updraft_activejobs_update(t){var e=jQuery,a=(new Date).getTime();if(!(0==t&&a<updraft_activejobs_nextupdate)){updraft_activejobs_nextupdate=a+5500;var r="";e(".ud_downloadstatus .updraftplus_downloader, #ud_downloadstatus2 .updraftplus_downloader").each(function(t,a){var n=e(a).data("downloaderfor");"object"==typeof n&&(""!=r&&(r+=":"),r=r+n.base+","+n.nonce+","+n.what+","+n.index)});var n={downloaders:r};try{e("#updraft-poplog").dialog("isOpen")&&(n.log_fetch=1,n.log_nonce=updraft_poplog_log_nonce,n.log_pointer=updraft_poplog_log_pointer)}catch(o){console.log(o)}updraft_activejobslist_backupnownonce_only&&"undefined"!=typeof updraft_backupnow_nonce&&""!=updraft_backupnow_nonce&&(n.thisjobonly=updraft_backupnow_nonce),updraft_send_command("activejobs_list",n,function(t,r,o){try{t.hasOwnProperty("l")&&(t.l?(e("#updraft_lastlogmessagerow").show(),e("#updraft_lastlogcontainer").html(t.l)):(e("#updraft_lastlogmessagerow").hide(),e("#updraft_lastlogcontainer").html("("+updraftlion.nothing_yet_logged+")")));var u=-1,d=e(".updraft_requeststart");t.j&&d.length&&d.data("remove")&&d.remove();var s=e(t.j);s.find(".updraft_jobtimings").each(function(t,a){var r=e(a);if(r.data("jobid")){var n=r.data("jobid"),o=r.closest(".updraft_row");updraft_aborted_jobs[n]&&o.hide()}}),e("#updraft_activejobsrow").html(s);var i=s.find('.job-id[data-isclone="1"]');if(i.length>0){if(0==e(".updraftclone_action_box .updraftclone_network_info").length&&e("#updraft_activejobsrow .job-id .updraft_clone_url").length>0){var l=e("#updraft_activejobsrow .job-id .updraft_clone_url").data("clone_url");updraft_send_command("get_clone_network_info",{clone_url:l},function(t){t.hasOwnProperty("html")&&e(".updraftclone_action_box").html(t.html)})}e("#updraft_clone_activejobsrow").empty(),i.each(function(t,a){var r=e(a);r.closest(".updraft_row").appendTo(e("#updraft_clone_activejobsrow"))})}if(e("#updraft_activejobs .updraft_jobtimings").each(function(t,r){var n=e(r);if(n.data("lastactivity")&&n.data("jobid")){var o=n.data("jobid"),d=n.data("lastactivity");(u==-1||d<u)&&(u=d);var s=n.data("nextresumptionafter"),i=n.data("nextresumption");a=(new Date).getTime(),d>50&&i>0&&s<-30&&a>updraft_last_forced_when+1e5&&(updraft_last_forced_jobid!=o||i!=updraft_last_forced_resumption)&&(updraft_last_forced_resumption=i,updraft_last_forced_jobid=o,updraft_last_forced_when=a,console.log("UpdraftPlus: force resumption: job_id="+o+", resumption="+i),updraft_send_command("forcescheduledresumption",{resumption:i,job_id:o},function(t){console.log(t)},{json_parse:!1,alert_on_error:!1}))}}),a=(new Date).getTime(),updraft_activejobs_nextupdate=a+18e4,1==updraft_page_is_visible&&"backups"==updraft_console_focussed_tab&&(updraft_activejobs_nextupdate=u>-1?u<5?a+1750:a+5e3:lastlog_lastdata==o?a+7500:a+1750),i.length>0&&(updraft_activejobs_nextupdate=a+6e3),lastlog_lastdata=o,null!=t.j&&""!=t.j){if(e("#updraft_activejobsrow").show(),i.length>0&&e("#updraft_clone_activejobsrow").show(),n.hasOwnProperty("thisjobonly")&&!updraft_inpage_hasbegun&&e("#updraft-jobid-"+n.thisjobonly).length?(updraft_inpage_hasbegun=1,console.log("UpdraftPlus: the start of the requested backup job has been detected")):!updraft_inpage_hasbegun&&updraft_activejobslist_backupnownonce_only&&e(".updraft_jobtimings.isautobackup").length?(autobackup_nonce=e(".updraft_jobtimings.isautobackup").first().data("jobid"),autobackup_nonce&&(updraft_inpage_hasbegun=1,updraft_backupnow_nonce=autobackup_nonce,n.thisjobonly=autobackup_nonce,console.log("UpdraftPlus: the start of the requested backup job has been detected; id: "+autobackup_nonce))):1==updraft_inpage_hasbegun&&e("#updraft-jobid-"+n.thisjobonly+".updraft_finished").length&&(updraft_inpage_hasbegun=2,console.log("UpdraftPlus: the end of the requested backup job has been detected"),updraft_activejobs_update_timer&&clearInterval(updraft_activejobs_update_timer),"undefined"!=typeof updraft_inpage_success_callback&&""!=updraft_inpage_success_callback?updraft_inpage_success_callback.call(!1):e("#updraft-backupnow-inpage-modal").dialog("close")),""==lastlog_jobs&&setTimeout(function(){e("#updraft_backup_started").slideUp()},3500),n.hasOwnProperty("thisjobonly")&&updraft_backupnow_nonce&&n.thisjobonly===updraft_backupnow_nonce){e(".updraft_requeststart").remove();var p=e("#updraft-jobid-"+updraft_backupnow_nonce);p.is(".updraft_finished")&&(updraft_activejobslist_backupnownonce_only=0,updraft_aborted_jobs[updraft_backupnow_nonce]?updraft_aborted_jobs=updraft_aborted_jobs.filter(function(t,e){return t!=updraft_backupnow_nonce}):updraft_active_job_is_clone(updraft_backupnow_nonce)?(updraft_show_success_modal(updraftlion.clone_backup_complete),updraft_clone_jobs=updraft_clone_jobs.filter(function(t){return t!=updraft_backupnow_nonce})):updraft_show_success_modal(updraftlion.backup_complete),updraft_backupnow_nonce="",updraft_activejobs_update(!0))}}else e("#updraft_activejobsrow").is(":hidden")||("undefined"!=typeof lastbackup_laststatus&&updraft_showlastbackup(),updraft_updatehistory(0,0),e("#updraft_activejobsrow").hide());if(lastlog_jobs=t.j,null!=t.ds&&""!=t.ds&&updraft_downloader_status_update(t.ds,o),null!=t.u&&""!=t.u&&e("#updraft-poplog").dialog("isOpen")){var _=t.u;if(_.nonce==updraft_poplog_log_nonce&&(updraft_poplog_log_pointer=_.pointer,null!=_.log&&""!=_.log)){var c=e("#updraft-poplog").scrollTop();e("#updraft-poplog-content").append(_.log),updraft_poplog_lastscroll!=c&&updraft_poplog_lastscroll!=-1||(e("#updraft-poplog").scrollTop(e("#updraft-poplog-content").prop("scrollHeight")),updraft_poplog_lastscroll=e("#updraft-poplog").scrollTop())}}}catch(f){console.log(updraftlion.unexpectedresponse+" "+o),console.log(f)}},{type:"GET",error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),!0===updraftplus_activejobs_list_fatal_error_alert&&(updraftplus_activejobs_list_fatal_error_alert=!1,alert(this.alert_done+" "+r.fatal_error_message));else{var n=e==a?a:a+" ("+e+")";console.error(n),console.log(t)}return!1}})}}function updraft_show_success_modal(t){"string"==typeof t&&(t={message:t});var e=jQuery.extend({icon:"yes",close:updraftlion.close,message:"",classes:"success"},t);jQuery.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)"},message:'<div class="updraft_success_popup '+e.classes+'"><span class="dashicons dashicons-'+e.icon+'"></span><div class="updraft_success_popup--message">'+e.message+'</div><button class="button updraft-close-overlay"><span class="dashicons dashicons-no-alt"></span>'+e.close+"</button></div>"}),setTimeout(jQuery.unblockUI,5e3),jQuery(".blockUI .updraft-close-overlay").on("click",function(){jQuery.unblockUI()})}function updraft_popuplog(t){var e=updraftlion.loading_log_file;t&&(e+=" (log."+t+".txt)"),jQuery("#updraft-poplog").dialog("option","title",e),jQuery("#updraft-poplog-content").html("<em>"+e+" ...</em> "),jQuery("#updraft-poplog").dialog("open"),updraft_send_command("get_log",t,function(t){updraft_poplog_log_pointer=t.pointer,updraft_poplog_log_nonce=t.nonce;var e="?page=updraftplus&action=downloadlog&force_download=1&updraftplus_backup_nonce="+t.nonce;jQuery("#updraft-poplog-content").html(t.log);var a={};a[updraftlion.downloadlogfile]=function(){window.location.href=e},a[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-poplog").dialog("option","buttons",a),jQuery("#updraft-poplog").dialog("option","title","log."+t.nonce+".txt"),updraft_poplog_lastscroll=-1},{type:"GET",timeout:6e4,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-poplog-content").append(r.fatal_error_message);else{var n=e==a?a:a+" ("+e+")";jQuery("#updraft-poplog-content").append(n),console.log(t)}}})}function updraft_showlastbackup(){updraft_send_command("get_fragment","last_backup_html",function(t){response=t.output,lastbackup_laststatus==response?setTimeout(function(){updraft_showlastbackup()},7e3):jQuery("#updraft_last_backup").html(response),lastbackup_laststatus=response},{type:"GET"})}function updraft_historytimertoggle(t){updraft_historytimer&&1!=t?(clearTimeout(updraft_historytimer),updraft_historytimer=0):(updraft_updatehistory(0,0),updraft_historytimer=setInterval(function(){updraft_updatehistory(0,0)},3e4),calculated_diskspace||(updraftplus_diskspace(),calculated_diskspace=1))}function updraft_updatehistory(t,e,a){"undefined"==typeof a&&(a=jQuery("#updraft_debug_mode").is(":checked")?1:0);var r=Math.round((new Date).getTime()/1e3);if(1==t||1==e)updraft_historytimer_notbefore=r+30;else if(r<updraft_historytimer_notbefore)return void console.log("Update history skipped: "+r.toString()+" < "+updraft_historytimer_notbefore.toString());1==t&&(1==e?(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanningremote+"</em></p>")):(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanning+"</em></p>")));var n=e?"remotescan":!!t&&"rescan",o={operation:n,debug:a};updraft_send_command("rescan",o,function(t){if(t.hasOwnProperty("logs_exist")&&t.logs_exist&&jQuery("#updraft_lastlogmessagerow .updraft-log-link").show(),t.hasOwnProperty("migrate_tab")&&t.migrate_tab&&(jQuery("#updraft-navtab-migrate").hasClass("nav-tab-active")||(jQuery("#updraft_migrate_tab_alt").html(""),jQuery("#updraft_migrate").replaceWith(jQuery(t.migrate_tab).find("#updraft_migrate")),setup_migrate_tabs())),t.hasOwnProperty("web_server_disk_space")&&(""==t.web_server_disk_space?(console.log("UpdraftPlus: web_server_disk_space is empty"),jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length&&jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").slideUp("slow",function(){jQuery(this).remove()})):jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length?jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").replaceWith(t.web_server_disk_space):jQuery("#updraft-navtab-backups-content .updraft-disk-space-actions").prepend(t.web_server_disk_space)),update_backupnow_modal(t),t.hasOwnProperty("backupnow_file_entities")&&(impossible_increment_entities=t.backupnow_file_entities),null!=t.n&&jQuery("#updraft-existing-backups-heading").html(t.n),null!=t.t){if(null!=t.cksum){if(t.cksum==updraft_history_lastchecksum)return;updraft_history_lastchecksum=t.cksum}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html(t.t),updraft_backups_selection.checkSelectionStatus(),t.data&&console.log(t.data)}})}function update_backupnow_modal(t){t.hasOwnProperty("modal_afterfileoptions")&&jQuery(".backupnow_modal_afterfileoptions").html(t.modal_afterfileoptions)}function updraft_exclude_entity_update(t){var e=[];jQuery("#updraft_include_"+t+"_exclude_container .updraft_exclude_entity_wrapper .updraft_exclude_entity_field").each(function(){var t=jQuery.trim(jQuery(this).data("val"));""!=t&&e.push(t)}),jQuery("#updraft_include_"+t+"_exclude").val(e.join(","))}function updraft_is_unique_exclude_rule(t,e){return existing_exclude_rules_str=jQuery("#updraft_include_"+e+"_exclude").val(),existing_exclude_rules=existing_exclude_rules_str.split(","),!(jQuery.inArray(t,existing_exclude_rules)>-1)||(alert(updraftlion.duplicate_exclude_rule_error_msg),!1)}function updraft_intervals_monthly_or_not(t,e){var a="#updraft-navtab-settings-content #"+t,r=jQuery(a+" option").length,n="monthly"==e,o=!1;if(r>10&&(o=!0),n||o){if(n&&o)return void("monthly"==e&&(jQuery(".updraft_monthly_extra_words_"+t).remove(),jQuery(a).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>")));if(jQuery(".updraft_monthly_extra_words_"+t).remove(),n){updraft_interval_week_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.mdayselector).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>");var u=updraft_interval_month_val===!1?1:updraft_interval_month_val;u-=1,jQuery(a+" option:eq("+u+")").prop("selected",!0)}else{updraft_interval_month_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.dayselector);var d=updraft_interval_week_val===!1?1:updraft_interval_week_val;jQuery(a+" option:eq("+d+")").prop("selected",!0)}}}function updraft_check_same_times(){var t=0,e=jQuery("#updraft-navtab-settings-content .updraft_interval").val();"manual"==e?jQuery("#updraft-navtab-settings-content .updraft_files_timings").hide():jQuery("#updraft-navtab-settings-content .updraft_files_timings").show(),"weekly"==e||"fortnightly"==e||"monthly"==e?(updraft_intervals_monthly_or_not("updraft_startday_files",e),jQuery("#updraft-navtab-settings-content #updraft_startday_files").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_files").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_files").hide());var a=jQuery("#updraft-navtab-settings-content .updraft_interval_database").val();"manual"==a&&(t=1,jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide()),"weekly"==a||"fortnightly"==a||"monthly"==a?(updraft_intervals_monthly_or_not("updraft_startday_db",a),jQuery("#updraft-navtab-settings-content #updraft_startday_db").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_db").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_db").hide()),a==e?(jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide(),0==t?jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").show():jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide()):(jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide(),0==t&&jQuery("#updraft-navtab-settings-content .updraft_db_timings").show())}function updraft_activejobs_delete(t){updraft_aborted_jobs[t]=1,jQuery("#updraft-jobid-"+t).closest(".updraft_row").addClass("deleting"),updraft_send_command("activejobs_delete",t,function(e){var a=jQuery("#updraft-jobid-"+t).closest(".updraft_row");a.addClass("deleting"),"Y"==e.ok?(jQuery("#updraft-jobid-"+t).html(e.m),a.remove(),jQuery("#updraft-backupnow-inpage-modal").dialog("isOpen")&&jQuery("#updraft-backupnow-inpage-modal").dialog("close"),updraft_show_success_modal({message:updraft_active_job_is_clone(t)?updraftlion.clone_backup_aborted:updraftlion.backup_aborted,icon:"no-alt",classes:"warning"})):"N"==e.ok?(a.removeClass("deleting"),alert(e.m)):(a.removeClass("deleting"),alert(updraftlion.unexpectedresponse),console.log(e))})}function updraftplus_diskspace_entity(t){jQuery("#updraft_diskspaceused_"+t).html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:t},function(e){jQuery("#updraft_diskspaceused_"+t).html(e.output)},{type:"GET"})}function updraft_active_job_is_clone(t){return updraft_clone_jobs.filter(function(e){return e==t}).length}function updraft_iframe_modal(t,e){var a=780,r=500;jQuery("#updraft-iframe-modal-innards").html('<iframe width="100%" height="430px" src="'+ajaxurl+"?action=updraft_ajax&subaction="+t+"&nonce="+updraft_credentialtest_nonce+'"></iframe>'),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("open")}function updraft_html_modal(t,e,a,r){jQuery("#updraft-iframe-modal-innards").html(t);var n={};a<450&&(n[updraftlion.close]=function(){jQuery(this).dialog("close")}),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("option","buttons",n).dialog("open")}function updraftplus_diskspace(){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html(t.output)},{type:"GET"})}function updraftplus_deletefromserver(t,e,a){a||(a=0);var r={stage:"delete",timestamp:t,type:e,findex:a};updraft_send_command("updraft_download_backup",r,null,{action:"updraft_download_backup",nonce:updraft_download_nonce,nonce_key:"_wpnonce"})}function updraftplus_downloadstage2(t,e,a){location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"×tamp="+t+"&type="+e+"&stage=2&findex="+a+"&action=updraft_download_backup"}function updraftplus_show_contents(t,e,a){var r='<div id="updraft_zip_files_container" class="hidden-in-updraftcentral" style="clear:left;"><div id="updraft_zip_info_container" class="updraft_jstree_info_container"><p><span id="updraft_zip_path_text">'+updraftlion.zip_file_contents_info+'</span> - <span id="updraft_zip_size_text"></span></p>'+updraftlion.browse_download_link+'</div><div id="updraft_zip_files_jstree_container"><input type="search" id="zip_files_jstree_search" name="zip_files_jstree_search" placeholder="'+updraftlion.search+'"><div id="updraft_zip_files_jstree" class="updraft_jstree"></div></div></div>';updraft_html_modal(r,updraftlion.zip_file_contents,780,500),zip_files_jstree("zipbrowser",t,e,a)}function zip_files_jstree(t,e,a,r){jQuery("#updraft_zip_files_jstree").jstree({core:{multiple:!1,data:function(n,o){updraft_send_command("get_jstree_directory_nodes",{entity:t,node:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):o.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["search","sort"]}),jQuery("#updraft_zip_files_jstree").on("ready.jstree",function(t,e){jQuery("#updraft-iframe-modal").dialog("option","title",updraftlion.zip_file_contents+": "+e.instance.get_node("#").children[0])});var n=!1;jQuery("#zip_files_jstree_search").keyup(function(){n&&clearTimeout(n),n=setTimeout(function(){var t=jQuery("#zip_files_jstree_search").val();jQuery("#updraft_zip_files_jstree").jstree(!0).search(t)},250)}),jQuery("#updraft_zip_files_jstree").on("changed.jstree",function(t,e){jQuery("#updraft_zip_path_text").text(e.node.li_attr.path),e.node.li_attr.size?(jQuery("#updraft_zip_size_text").text(e.node.li_attr.size),jQuery("#updraft_zip_download_item").show()):(jQuery("#updraft_zip_size_text").text(""),jQuery("#updraft_zip_download_item").hide())}),jQuery("#updraft_zip_download_item").click(function(t){t.preventDefault();var n=jQuery("#updraft_zip_path_text").text();updraft_send_command("get_zipfile_download",{path:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):t.hasOwnProperty("path")?location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"×tamp="+e+"&type="+a+"&stage=2&findex="+r+"&filepath="+t.path+"&action=updraft_download_backup":alert(updraftlion.download_timeout)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})})}function remove_updraft_downloader(t,e){jQuery(t).parent().fadeOut().remove(),0==jQuery(".updraftplus_downloader_container_"+e+" .updraftplus_downloader").length&&jQuery(".updraftplus_downloader_container_"+e).remove()}function updraft_downloader(t,e,a,r,n,o,u){"string"!=typeof n&&(n=n.toString()),jQuery(".ud_downloadstatus").show();var n=n.split(","),d=o?o:e,s=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+n[0]).data("wp_nonce").toString();jQuery(r).append('<div class="updraftplus_downloader_container_'+a+' postbox"></div>'),jQuery(".updraftplus_downloader_container_"+a).append('<strong style="clear:left; padding: 8px; margin-top: 4px;">'+updraftlion.download+" "+a+" ("+d+"):</strong>");for(var i=0;i<n.length;i++){var l=t+e+"_"+a+"_"+n[i],p="."+l,_=parseInt(n[i]);_++;var c=0==n[i]?"":" ("+_+")";jQuery(p).length||(jQuery(".updraftplus_downloader_container_"+a).append('<div style="clear:left; padding: 8px; margin-top: 4px;" class="'+l+' updraftplus_downloader"><button onclick="remove_updraft_downloader(this, \''+a+'\');" type="button" style="float:right; margin-bottom: 8px;" class="ud_downloadstatus__close" aria-label="Close"><span class="dashicons dashicons-no-alt"></span></button><strong>'+a+c+'</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+l+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>'),
|
2 |
+
jQuery(p).data("downloaderfor",{base:t,nonce:e,what:a,index:n[i]}),setTimeout(function(){updraft_activejobs_update(!0)},1500)),jQuery(p).data("lasttimebegan",(new Date).getTime())}u=!!u;var f={type:a,timestamp:e,findex:n},m={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:s,timeout:1e4,async:u};return updraft_send_command("updraft_download_backup",f,function(t){},m),!1}function ud_parse_json(t){t.charAt(0),t.charAt(t.length-1);try{var e=JSON.parse(t);return e}catch(a){console.log("UpdraftPlus: Exception when trying to parse JSON (1) - will attempt to fix/re-parse"),console.log(t)}var r=t.indexOf("{"),n=t.lastIndexOf("}");if(r>-1&&n>-1){var o=t.slice(r,n+1);try{var u=JSON.parse(o);return console.log("UpdraftPlus: JSON re-parse successful"),u}catch(a){throw console.log("UpdraftPlus: Exception when trying to parse JSON (2)"),a}}throw"UpdraftPlus: could not parse the JSON"}function updraft_restorer_checkstage2(t){var e=jQuery("#ud_downloadstatus2 .file").length;return e>0?void(t&&alert(updraftlion.stilldownloading)):(jQuery("#updraft-restore-modal-stage2a").html(updraftlion.processing),void updraft_send_command("restore_alldownloaded",{timestamp:jQuery("#updraft_restore_timestamp").val(),restoreopts:jQuery("#updraft_restore_form").serialize()},function(t,e,a){var r=null;jQuery("#updraft_restorer_restore_options").val("");try{if(null==t)return void jQuery("#updraft-restore-modal-stage2a").html(updraftlion.emptyresponse);var n=t.m;if(""!=t.w&&(n=n+"<p><strong>"+updraftlion.warnings+"</strong><br>"+t.w+"</p>"),""!=t.e?n=n+"<p><strong>"+updraftlion.errors+"</strong><br>"+t.e+"</p>":updraft_restore_stage=3,t.hasOwnProperty("i")){try{if(r=ud_parse_json(t.i),r.hasOwnProperty("addui")){console.log("Further UI options are being displayed");var o=r.addui;n+='<div id="updraft_restoreoptions_ui" style="clear:left; padding-top:10px;">'+o+"</div>","object"==typeof JSON&&"function"==typeof JSON.stringify&&(delete r.addui,t.i=JSON.stringify(r))}}catch(u){console.log(u),console.log(t)}jQuery("#updraft_restorer_backup_info").val(t.i)}else jQuery("#updraft_restorer_backup_info").val();jQuery("#updraft-restore-modal-stage2a").html(n),jQuery("#updraft-restore-modal-stage2a .updraft_select2").length>0&&jQuery("#updraft-restore-modal-stage2a .updraft_select2").select2()}catch(u){console.log(a),console.log(u),jQuery("#updraft-restore-modal-stage2a").text(updraftlion.jsonnotunderstood+" "+updraftlion.errordata+": "+a).html()}},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}}))}function updraft_downloader_status(t,e,a,r){}function updraft_downloader_status_update(t,e){var a=0;return jQuery(t).each(function(t,r){if(""!=r.base){var n=r.base+r.timestamp+"_"+r.what+"_"+r.findex,o="."+n;if(null!=r.e)jQuery(o+" .raw").html("<strong>"+updraftlion.error+"</strong> "+r.e),console.log(r);else if(null!=r.p){if(jQuery(o+"_st .dlfileprogress").width(r.p+"%"),null!=r.a&&r.a>0){var u=(new Date).getTime(),d=jQuery(o).data("lasttimebegan"),s=u-d;if(r.a>90&&s>6e4){console.log(r.timestamp+" "+r.what+" "+r.findex+": restarting download: file_age="+r.a+", sincelastrestart_ms="+s),jQuery(o).data("lasttimebegan",(new Date).getTime());var i=jQuery("#updraft-navtab-backups-content .uddownloadform_"+r.what+"_"+r.timestamp+"_"+r.findex),l={type:r.what,timestamp:r.timestamp,findex:r.findex},p={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:i.data("wp_nonce").toString(),timeout:1e4};updraft_send_command("updraft_download_backup",l,function(t){},p),jQuery(o).data("lasttimebegan",(new Date).getTime())}}if(null!=r.m)if(r.p>=100&&"udrestoredlstatus_"==r.base)jQuery(o+" .raw").html(r.m),jQuery(o).fadeOut("slow",function(){remove_updraft_downloader(this,r.what),updraft_restorer_checkstage2(0)});else if(r.p<100||"uddlstatus_"!=r.base)jQuery(o+" .raw").html(r.m);else{var _=updraftlion.fileready+" "+updraftlion.actions+': \t\t\t\t<button class="button" type="button" onclick="updraftplus_downloadstage2(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.downloadtocomputer+'</button> \t\t\t\t<button class="button" id="uddownloaddelete_'+r.timestamp+"_"+r.what+'" type="button" onclick="updraftplus_deletefromserver(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.deletefromserver+"</button>";r.hasOwnProperty("can_show_contents")&&r.can_show_contents&&(_+=' <button class="button" type="button" onclick="updraftplus_show_contents(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.browse_contents+"</button>"),jQuery(o+" .raw").html(_),jQuery(o+"_st").remove()}}else null!=r.m?jQuery(o+" .raw").html(r.m):(jQuery(o+" .raw").html(updraftlion.jsonnotunderstood+" ("+e+")"),a=1)}}),a}function updraft_backupnow_go(t,e,a,r,n,o,u){var d={backupnow_nodb:t,backupnow_nofiles:e,backupnow_nocloud:a,backupnow_label:o,extradata:n};if(""!=r&&(d.onlythisfileentity=r),""!=u&&(d.onlythesetableentities=u),d.always_keep="undefined"!=typeof n.always_keep?n.always_keep:0,delete n.always_keep,d.incremental="undefined"!=typeof n.incremental?n.incremental:0,delete n.incremental,!jQuery(".updraft_requeststart").length){var s=jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);s.data("remove",!1),setTimeout(function(){s.data("remove",!0)},3e3),setTimeout(function(){s.remove()},75e3),jQuery("#updraft_activejobsrow").before(s)}updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",d,function(t){return t.hasOwnProperty("error")?(jQuery(".updraft_requeststart").remove(),void alert(t.error)):(jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),void setTimeout(function(){updraft_activejobs_update(!0)},500))})}var onlythesefileentities=backupnow_whichfiles_checked("");""==onlythesefileentities?jQuery("#backupnow_includefiles_moreoptions").show():jQuery("#backupnow_includefiles_moreoptions").hide();var impossible_increment_entities,updraft_restore_stage=1,lastlog_lastmessage="",lastlog_lastdata="",lastlog_jobs="",updraft_activejobs_nextupdate=(new Date).getTime()+1e3,updraft_page_is_visible=1,updraft_console_focussed_tab=updraftlion.tab,updraft_settings_form_changed=!1;window.onbeforeunload=function(t){if(updraft_settings_form_changed)return updraftlion.unsavedsettings},"undefined"!=typeof document.hidden&&document.addEventListener("visibilitychange",function(){updraft_check_page_visibility(0)},!1),updraft_check_page_visibility(1);var updraft_poplog_log_nonce,updraft_poplog_log_pointer=0,updraft_poplog_lastscroll=-1,updraft_last_forced_jobid=-1,updraft_last_forced_resumption=-1,updraft_last_forced_when=-1,updraft_backupnow_nonce="",updraft_activejobslist_backupnownonce_only=0,updraft_inpage_hasbegun=0,updraft_activejobs_update_timer,updraft_aborted_jobs=[],updraft_clone_jobs=[],updraft_backups_selection={};!function(t){updraft_backups_selection.toggle=function(e){var a=t(e);a.is(".backuprowselected")?this.deselect(e):this.select(e)},updraft_backups_selection.select=function(e){t(e).addClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!0),this.checkSelectionStatus()},updraft_backups_selection.deselect=function(e){t(e).removeClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!1),this.checkSelectionStatus()},updraft_backups_selection.selectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.select(e)})},updraft_backups_selection.deselectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.deselect(e)})},updraft_backups_selection.checkSelectionStatus=function(){var e=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").length,a=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length;a>0?(t("#ud_massactions").addClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!1)):(t("#ud_massactions").removeClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!0)),e===a?t("#cb-select-all").prop("checked",!0):t("#cb-select-all").prop("checked",!1),e?t("#ud_massactions").show():t("#ud_massactions").hide()}}(jQuery);var updraftplus_activejobs_list_fatal_error_alert=!0,updraft_historytimer=0,calculated_diskspace=0,updraft_historytimer_notbefore=0,updraft_history_lastchecksum=!1,updraft_interval_week_val=!1,updraft_interval_month_val=!1;"undefined"!=typeof updraft_siteurl&&setInterval(function(){jQuery.get(updraft_siteurl+"/wp-cron.php")},21e4);var lastlog_lastmessage="";jQuery(document).ajaxError(function(t,e,a,r){if(null!=r&&""!=r&&null!=e.responseText&&""!=e.responseText&&(console.log("Error caught by UpdraftPlus ajaxError handler (follows) for "+a.url),console.log(r),0==a.url.search(ajaxurl)))if(a.url.search("subaction=downloadstatus")>=0){var n=a.url.match(/timestamp=\d+/),o=a.url.match(/type=[a-z]+/),u=a.url.match(/findex=\d+/),d=a.url.match(/base=[a-z_]+/);if(u=u instanceof Array?parseInt(u[0].substr(7)):0,o=o instanceof Array?o[0].substr(5):"",d=d instanceof Array?d[0].substr(5):"",n=n instanceof Array?parseInt(n[0].substr(10)):0,""!=d&&""!=o&&n>0){var s=d+n+"_"+o+"_"+u;jQuery("."+s+" .raw").html("<strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode)}}else a.url.search("subaction=restore_alldownloaded")>=0&&jQuery("#updraft-restore-modal-stage2a").append("<br><strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode+": "+r)}),jQuery(document).ready(function(t){function e(e){t('.expertmode .advanced_settings_container .advanced_tools:not(".'+e+'")').hide(),t(".expertmode .advanced_settings_container .advanced_tools."+e).fadeIn("slow"),t(".expertmode .advanced_settings_container .advanced_tools_button:not(#"+e+")").removeClass("active"),t(".expertmode .advanced_settings_container .advanced_tools_button#"+e).addClass("active")}function a(e){t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html("").hide(),updraft_send_command("updraftplus_com_login_submit",{data:e},function(e){e.hasOwnProperty("success")?t("#updraft-navtab-addons-content .wrap .updraftplus_com_login").submit():e.hasOwnProperty("error")&&t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(e.message).show()})}function r(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html(e.message).show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val("");e.hasOwnProperty("tfa_enabled")&&1==e.tfa_enabled&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").focus()),"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").val(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html))}catch(a){console.log(a)}})}function n(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html(e.message).show();"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html))}catch(a){console.log(a)}})}function o(t,e,a,r){var n={updraftplus_clone_backup:1,backupnow_nodb:0,backupnow_nofiles:0,backupnow_nocloud:0,backupnow_label:"UpdraftPlus Clone",extradata:"",onlythisfileentity:"plugins,themes,uploads,others",clone_id:t,secret_token:e,clone_url:a,key:r};updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",n,function(t){jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").removeClass("visible"),jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,updraft_clone_jobs.push(updraft_backupnow_nonce),updraft_inpage_success_callback=function(){jQuery("#updraft_clone_activejobsrow").hide(),updraft_aborted_jobs[updraft_backupnow_nonce]?jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_aborted):jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_complete)},console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),updraft_activejobs_update(!0)})}function u(t){var e=Handlebars.compile(updraftlion.remote_storage_templates[t]),a=updraftlion.remote_storage_options[t]["default"];a.instance_id="s-"+d(32),a.instance_enabled=1;var r=e(a);jQuery(r).hide().insertAfter("."+t+"_add_instance_container:first").show("slow")}function d(t){for(var e="",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=0;r<t;r++)e+=a.charAt(Math.floor(Math.random()*a.length));return e}function s(t){var e=!!jQuery("#updraftcentral_mothership_other").is(":checked");e?(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!1),t?jQuery("#updraftcentral_keycreate_mothership_firewalled_container").show():(jQuery(".updraftcentral_wizard_self_hosted_stage2").show(),jQuery("#updraftcentral_keycreate_mothership_firewalled_container").slideDown(),jQuery("#updraftcentral_keycreate_mothership").focus())):(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!0),t||(jQuery(".updraftcentral_wizard_self_hosted_stage2").hide(),i()))}function i(){jQuery("#updraftcentral_wizard_stage1_error").text("");var t="";if(jQuery("#updraftcentral_mothership_updraftpluscom").is(":checked"))jQuery(".updraftcentral_keycreate_description").hide(),t="updraftplus.com";else if(jQuery("#updraftcentral_mothership_other").is(":checked")){jQuery(".updraftcentral_keycreate_description").show();var e=jQuery("#updraftcentral_keycreate_mothership").val();if(""==e)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_empty_url);try{var a=new URL(e);t=a.hostname}catch(r){if("undefined"==typeof URL&&(t=jQuery("<a>").prop("href",e).prop("hostname")),!t||"undefined"!=typeof URL)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_invalid_url)}}jQuery("#updraftcentral_keycreate_description").val(t),jQuery(".updraftcentral_wizard_stage1").hide(),jQuery(".updraftcentral_wizard_stage2").show()}function l(e,a,r,n){jQuery("#updraft-delete-modal").dialog("close");var o=e,u=a,d=r,s=n,i=jQuery("#updraft_delete_timestamp").val().split(","),p=jQuery("#updraft_delete_form").serializeArray(),_={};t.each(p,function(){void 0!==_[this.name]?(_[this.name].push||(_[this.name]=[_[this.name]]),_[this.name].push(this.value||"")):_[this.name]=this.value||""}),_.delete_remote?jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").show():jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").hide(),jQuery("#updraft-delete-waitwarning").slideDown().addClass("active"),_.remote_delete_limit=updraftlion.remote_delete_limit,delete _.action,delete _.subaction,delete _.nonce,updraft_send_command("deleteset",_,function(t){if(!t.hasOwnProperty("result")||null==t.result)return void jQuery("#updraft-delete-waitwarning").slideUp();if("error"==t.result)jQuery("#updraft-delete-waitwarning").slideUp(),alert(updraftlion.error+" "+t.message);else if("continue"==t.result){o=o+t.backup_local+t.backup_remote,u+=t.backup_local,d+=t.backup_remote,s+=t.backup_sets;for(var e=t.deleted_timestamps.split(","),a=0;a<e.length;a++){var r=e[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}jQuery("#updraft_delete_timestamp").val(t.timestamps),jQuery("#updraft-deleted-files-total").text(o+" "+updraftlion.remote_files_deleted),l(o,u,d,s)}else if("success"==t.result){setTimeout(function(){jQuery("#updraft-deleted-files-total").text(""),jQuery("#updraft-delete-waitwarning").slideUp()},500),update_backupnow_modal(t),t.hasOwnProperty("backupnow_file_entities")&&(impossible_increment_entities=t.backupnow_file_entities),t.hasOwnProperty("count_backups")&&jQuery("#updraft-existing-backups-heading").html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+t.count_backups+"</span>");for(var a=0;a<i.length;a++){var r=i[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}updraft_backups_selection.checkSelectionStatus(),updraft_history_lastchecksum=!1,u+=t.backup_local,d+=t.backup_remote,s+=t.backup_sets,setTimeout(function(){alert(t.set_message+" "+s+"\n"+t.local_message+" "+u+"\n"+t.remote_message+" "+d)},900)}})}function p(t,e){jQuery("#updraft-navtab-settings-content #updraft_include_"+t).is(":checked")?e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").show():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideDown():e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").hide():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideUp()}function _(){var t=new plupload.Uploader(updraft_plupload_config);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){if(!/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-[\-a-z]+([0-9]+?)?(\.(zip|gz|gz\.crypt))?$/i.test(e.name)&&!/^log\.([0-9a-f]{12})\.txt$/.test(e.name)){for(var a=!1,r=0;r<updraft_accept_archivename.length;r++)if(updraft_accept_archivename[r].test(e.name))var a=!0;if(!a)return/\.(zip|tar|tar\.gz|tar\.bz2)$/i.test(e.name)||/\.sql(\.gz)?$/i.test(e.name)?(jQuery("#updraft-message-modal-innards").html("<p><strong>"+e.name+"</strong></p> "+updraftlion.notarchive2),jQuery("#updraft-message-modal").dialog("open")):alert(e.name+": "+updraftlion.notarchive),void t.removeFile(e)}jQuery("#filelist").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>')}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100))),e.size==e.loaded&&(jQuery("#"+e.id).html('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(parseInt(e.size*e.percent/100))+"</span>/"+plupload.formatSize(e.size)+") - "+updraftlion.complete+"</div>"),jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"))}),t.bind("Error",function(t,e){console.log(e);var a;a="-200"==e.code?"\n"+updraftlion.makesure2:updraftlion.makesure;var r=updraftlion.uploaderr+" (code "+e.code+") : "+e.message;e.hasOwnProperty("status")&&e.status&&(r+=" ("+updraftlion.http_code+" "+e.status+")"),e.hasOwnProperty("response")&&(console.log("UpdraftPlus: plupload error: "+e.response),e.response.length<100&&(r+=" "+updraftlion.error+" "+e.response+"\n")),r+=" "+a,alert(r)}),t.bind("FileUploaded",function(t,e,a){if("200"==a.status)try{resp=ud_parse_json(a.response),resp.e?alert(updraftlion.uploaderror+" "+resp.e):resp.dm?(alert(resp.dm),updraft_updatehistory(1,0)):resp.m?updraft_updatehistory(1,0):alert("Unknown server response: "+a.response)}catch(r){console.log(a),alert(updraftlion.jsonnotunderstood)}else alert("Unknown server response status: "+a.code),console.log(a)})}function c(t){params={uri:jQuery("#updraftplus_httpget_uri").val()},params.curl=t,updraft_send_command("httpget",params,function(t){t.e&&alert(t.e),t.r?jQuery("#updraftplus_httpget_results").html("<pre>"+t.r+"</pre>"):console.log(t)},{type:"GET"})}function f(t,e,a){updraft_restore_setoptions(t),jQuery("#updraft_restore_timestamp").val(e),jQuery(".updraft_restore_date").html(a),updraft_restore_stage=1,jQuery("#updraft-restore-modal").dialog("open"),jQuery("#updraft-restore-modal-stage1").show(),jQuery("#updraft-restore-modal-stage2").hide(),jQuery("#updraft-restore-modal-stage2a").html(""),updraft_activejobs_update(!0)}function m(t){t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var e="[\\?&]"+t+"=([^&#]*)",a=new RegExp(e),r=a.exec(window.location.href);return null==r?"":decodeURIComponent(r[1].replace(/\+/g," "))}function g(e,a,r){jQuery("#updraft_upload_timestamp").val(e),jQuery("#updraft_upload_nonce").val(a);var n=r.split(",");jQuery(".updraft_remote_storage_destination").each(function(e){var a=jQuery(this).val();if(jQuery.inArray(a,n)==-1){jQuery(this).prop("checked",!1),jQuery(this).prop("disabled",!0);var r=t(this).prop("labels");jQuery(r).append(" "+updraftlion.already_uploaded)}}),jQuery("#updraft-upload-modal").dialog("open")}if(t(".expertmode .advanced_settings_container .advanced_tools_button").click(function(){e(t(this).attr("id"))}),jQuery.ui&&jQuery.ui.dialog&&jQuery.ui.dialog.prototype._allowInteraction){var h=jQuery.ui.dialog.prototype._allowInteraction;jQuery.ui.dialog.prototype._allowInteraction=function(t){return!!jQuery(t.target).closest(".select2-dropdown").length||h.apply(this,arguments)}}t("#updraftcentral_keys").on("click","a.updraftcentral_keys_show",function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keys_table").slideDown()}),t("#updraftcentral_keycreate_altmethod_moreinfo_get").click(function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keycreate_altmethod_moreinfo").slideDown()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("change keyup paste",".updraft_webdav_settings",function(){var e=[];t(".updraft_webdav_settings").each(function(a,r){var n=t(r).attr("id");if(n&&"updraft_webdav_"==n.substring(0,15)){var o=n.substring(15);id_split=o.split("_"),o=id_split[0];var u=id_split[1];"undefined"==typeof e[u]&&(e[u]=[]),e[u][o]=this.value}});var a="",r="@",n="/",o=":",u=":";for(var d in e)(e[d].host.indexOf("@")>=0||""===e[d].host)&&(r=""),e[d].host.indexOf("/")>=0?t("#updraft_webdav_host_error").show():t("#updraft_webdav_host_error").hide(),0!=e[d].path.indexOf("/")&&""!==e[d].path||(n=""),""!==e[d].user&&""!==e[d].pass||(o=""),""!==e[d].host&&""!==e[d].port||(u=""),a=e[d].webdav+e[d].user+o+e[d].pass+r+encodeURIComponent(e[d].host)+u+e[d].port+n+e[d].path,t("#updraft_webdav_url_"+d).val(a)}),t("#updraft-navtab-backups-content").on("click",".js--delete-selected-backups",function(t){t.preventDefault(),updraft_deleteallselected()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .backup-select input",function(e){updraft_backups_selection.toggle(t(this).closest(".updraft_existing_backups_row"))}),t("#updraft-navtab-backups-content").on("click","#cb-select-all",function(e){t(this).is(":checked")?updraft_backups_selection.selectAll():updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".js--select-all-backups",function(t){updraft_backups_selection.selectAll()}),t("#updraft-navtab-backups-content").on("click",".js--deselect-all-backups",function(t){updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .updraft_existing_backups_row",function(t){(t.ctrlKey||t.metaKey)&&updraft_backups_selection.toggle(this)}),updraft_backups_selection.checkSelectionStatus(),t("#updraft-navtab-addons-content .wrap").on("click",".updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,u={email:r,password:n,auto_update:o};a(u)}),t("#updraft-navtab-addons-content .wrap").on("keydown",".updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,u={email:r,password:n,auto_update:o};a(u)}}),t("#updraft-navtab-migrate-content").on("click",".updraftclone_show_step_1",function(e){t(".updraftplus-clone").addClass("opened"),t(".updraftclone_show_step_1").hide(),t(".updraft_migrate_widget_temporary_clone_stage1").show(),t(".updraft_migrate_widget_temporary_clone_stage0").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_temporary_clone_show_stage0",function(e){e.preventDefault(),t(".updraft_migrate_widget_temporary_clone_stage0").toggle()}),setup_migrate_tabs(),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .close",function(e){t(".updraft_migrate_intro").show(),t(this).closest(".updraft_migrate_widget_module_content").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_add_site--trigger",function(e){e.preventDefault(),t(".updraft_migrate_add_site").toggle()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,d={form_data:{email:a,password:n,two_factor_code:o,consent:u}};a&&n?r(d):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,d={form_data:{email:a,password:n,two_factor_code:o,consent:u}};a&&n?r(d):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_key .ud_key_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:r}};a?n(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_key input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:r}};a?n(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_php_options",function(){
|
3 |
+
var e=t(this).data("php_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_wp_options",function(){var e=t(this).data("wp_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content #updraft_migrate_createclone",function(e){e.preventDefault(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!0),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").addClass("visible");var a=t(this).data("clone_id"),r=t(this).data("secret_token"),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_php_options").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_wp_options").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_region_options").val(),s=t(".updraftplus_clone_admin_login_options").is(":checked"),i={form_data:{clone_id:a,secret_token:r,install_info:{php_version:n,wp_version:u,region:d,admin_only:s}}};updraft_send_command("process_updraftplus_clone_create",i,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.error+" "+e.message).show();"success"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").html(e.html),jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").addClass("visible"),o(a,r,e.url,e.key))}catch(n){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),console.log("Error when processing the response of process_updraftplus_clone_create (as follows)"),console.log(n)}})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_add_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method");u(a)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_delete_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method"),r=t(this).data("instance_id");1===t("."+a+"_updraft_remote_storage_border").length&&u(a),t("."+a+"-"+r).hide("slow",function(){t(this).remove()})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).find("span").hide(),t(this).attr("contentEditable",!0).focus()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keyup",".updraftplusmethod .updraft_edit_label_instance",function(e){var a=jQuery(this).data("method"),r=jQuery(this).data("instance_id"),n=jQuery(this).text();t("#updraft_"+a+"_instance_label_"+r).val(n)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("blur",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).attr("contentEditable",!1),t(this).find("span").show()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keypress",".updraftplusmethod .updraft_edit_label_instance",function(e){13===e.which&&(t(this).attr("contentEditable",!1),t(this).find("span").show(),t(this).blur())}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("change","input[class='updraft_instance_toggle']",function(){updraft_settings_form_changed=!0,jQuery(this).is(":checked")?jQuery(this).siblings("label").html(updraftlion.instance_enabled):jQuery(this).siblings("label").html(updraftlion.instance_disabled)}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod button.updraft-test-button",function(){var e=jQuery(this).data("method"),a=jQuery(this).data("instance_id");updraft_remote_storage_test(e,function(r,n,o){return"sftp"==e&&(o.hasOwnProperty("scp")&&o.scp?alert(updraftlion.settings_test_result.replace("%s","SCP")+" "+r.output):alert(updraftlion.settings_test_result.replace("%s","SFTP")+" "+r.output),r.hasOwnProperty("data")&&r.data&&r.data.hasOwnProperty("valid_md5_fingerprint")&&r.data.valid_md5_fingerprint&&t("#updraft_sftp_fingerprint_"+a).val(r.data.valid_md5_fingerprint),!0)},a)}),t("#updraft-navtab-settings-content select.updraft_interval, #updraft-navtab-settings-content select.updraft_interval_database").change(function(){updraft_check_same_times()}),t("#backupnow_includefiles_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_includefiles_moreoptions").toggle()}),t("#backupnow_database_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_database_moreoptions").toggle()}),t("#updraft-navtab-backups-content").on("click","a.updraft_diskspaceused_update",function(t){t.preventDefault(),updraftplus_diskspace()}),t(".advanced_settings_content a.updraft_diskspaceused_update").click(function(t){t.preventDefault(),jQuery(".advanced_settings_content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery(".advanced_settings_content .updraft_diskspaceused").html(t.output)},{type:"GET"})}),t("#updraft-navtab-backups-content a.updraft_uploader_toggle").click(function(e){e.preventDefault(),t("#updraft-plupload-modal").slideToggle()}),t("#updraft-navtab-backups-content a.updraft_rescan_local").click(function(t){t.preventDefault(),updraft_updatehistory(1,0)}),t("#updraft-navtab-backups-content a.updraft_rescan_remote").click(function(t){t.preventDefault(),updraft_updatehistory(1,1)}),t("#updraftplus-remote-rescan-debug").click(function(t){t.preventDefault(),updraft_updatehistory(1,1,1)}),jQuery("#updraftcentral_keys").on("click",'input[type="radio"]',function(){s(!1)}),s(!0),jQuery("#updraftcentral_keys").on("click","#updraftcentral_view_log",function(t){t.preventDefault(),jQuery("#updraftcentral_view_log_container").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.fetching+"</div>"});try{updraft_send_command("updraftcentral_get_log",null,function(t){jQuery("#updraftcentral_view_log_container").unblock(),t.hasOwnProperty("log_contents")?jQuery("#updraftcentral_view_log_contents").html('<div style="border:1px solid;padding: 2px;max-height: 400px; overflow-y:scroll;">'+t.log_contents+"</div>"):console.response(resp)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_view_log_container").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(e){jQuery("#updraft_central_key").html(),console.log(e)}}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_wizard_go",function(t){jQuery("#updraftcentral_wizard_go").hide(),jQuery(".updraftcentral_wizard_success").remove(),jQuery(".create_key_container").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage1_go",function(t){t.preventDefault(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery(".updraftcentral_wizard_stage1").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage2_go",function(t){t.preventDefault(),i()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_keycreate_go",function(t){t.preventDefault();var e=!!jQuery("#updraftcentral_mothership_other").is(":checked"),a=jQuery("#updraftcentral_keycreate_description").val(),r=jQuery("#updraftcentral_keycreate_keysize").val(),n="__updraftpluscom";if(data={key_description:a,key_size:r},e&&(n=jQuery("#updraftcentral_keycreate_mothership").val(),"http"!=n.substring(0,4)))return void alert(updraftlion.enter_mothership_url);data.mothership_firewalled=jQuery("#updraftcentral_keycreate_mothership_firewalled").is(":checked")?1:0,data.where_send=n,jQuery(".create_key_container").hide(),jQuery(".updraftcentral_wizard_stage1").show(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.creating_please_allow+"</div>"});try{updraft_send_command("updraftcentral_create_key",data,function(t){jQuery("#updraftcentral_keys").unblock();try{if(t.hasOwnProperty("error"))return alert(t.error),void console.log(t);alert(t.r),t.hasOwnProperty("bundle")&&t.hasOwnProperty("keys_guide")?(jQuery("#updraftcentral_keys_content").html(t.keys_guide),jQuery("#updraftcentral_keys_content").append('<div class="updraftcentral_wizard_success">'+t.r+'<br><textarea onclick="this.select();" style="width:620px; height:165px; word-wrap:break-word; border: 1px solid #aaa; border-radius: 3px; padding:4px;">'+t.bundle+"</textarea></div>")):console.log(t),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").append(t.keys_table),jQuery("#updraftcentral_wizard_go").show()}catch(e){alert(updraftlion.unexpectedresponse+" "+response),console.log(e)}},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(o){jQuery("#updraft_central_key").html(),console.log(o)}}),jQuery("#updraftcentral_keys").on("click",".updraftcentral_key_delete",function(t){t.preventDefault();var e=jQuery(this).data("key_id");return"undefined"==typeof e?void console.log("UpdraftPlus: .updraftcentral_key_delete clicked, but no key ID found"):(jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.deleting+"</div>"}),void updraft_send_command("updraftcentral_delete_key",{key_id:e},function(t){jQuery("#updraftcentral_keys").unblock(),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(t.keys_table)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}}))}),jQuery("#updraft_reset_sid").click(function(t){t.preventDefault(),updraft_send_command("reset_site_id",null,function(t){jQuery("#updraft_show_sid").html(t)},{json_parse:!1})}),jQuery("#updraft-navtab-settings-content form input:not('.udignorechange'), #updraft-navtab-settings-content form select").change(function(t){updraft_settings_form_changed=!0}),jQuery("#updraft-navtab-settings-content form input[type='submit']").click(function(t){updraft_settings_form_changed=!1});var y=180;jQuery(".updraft-bigbutton").each(function(t,e){var a=jQuery(e).width();a>y&&(y=a)}),y>180&&jQuery(".updraft-bigbutton").width(y),jQuery("#updraft-navtab-backups-content").length&&setInterval(function(){updraft_activejobs_update(!1)},1250),setTimeout(function(){jQuery("#setting-error-settings_updated").slideUp()},5e3),jQuery("#updraft_restore_db").change(function(){jQuery("#updraft_restore_db").is(":checked")&&1==jQuery(this).data("encrypted")?jQuery("#updraft_restorer_dboptions").slideDown():jQuery("#updraft_restorer_dboptions").slideUp()}),updraft_check_same_times();var b={};b[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-message-modal").dialog({autoOpen:!1,height:350,width:520,modal:!0,buttons:b});var v={};v[updraftlion.deletebutton]=function(){l(0,0,0,0)},v[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-delete-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:v});var w={};w[updraftlion.restore]=function(){var t=0,e=[],a=0,r=jQuery("#updraft_restore_meta_foreign").val();if(jQuery('input[name="updraft_restore[]"]').each(function(n,o){if(jQuery(o).is(":checked")&&!jQuery(o).is(":disabled")){t=1;var u=jQuery(o).data("howmany"),d=jQuery(o).val();if((1==r||2==r&&"db"!=d)&&("wpcore"!=d&&(u=jQuery("#updraft_restore_form #updraft_restore_wpcore").data("howmany")),d="wpcore"),"wpcore"!=d||0==a){var s=[d,u];e.push(s),"wpcore"==d&&(a=1)}}}),1==t){if(1==updraft_restore_stage){jQuery("#updraft-restore-modal-stage1").slideUp("slow"),jQuery("#updraft-restore-modal-stage2").show(),updraft_restore_stage=2;var n=jQuery(".updraft_restore_date").first().text(),o=e,u=jQuery("#updraft_restore_timestamp").val();try{updraft_send_command("whichdownloadsneeded",{downloads:e,timestamp:u},function(t){if(t.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),o=t.downloads,console.log(o)),0==o.length)updraft_restorer_checkstage2(0);else for(var e=0;e<o.length;e++)updraft_downloader("udrestoredlstatus_",u,o[e][0],"#ud_downloadstatus2",o[e][1],n,!1)},{alert_on_error:!1,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color:red;">'+r.fatal_error_message+"</p>");else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),console.log(t)}}})}catch(d){console.log("UpdraftPlus: error (follows) when looking for items needing downloading"),console.log(d),alert(updraftlion.jsonnotunderstood)}}else if(2==updraft_restore_stage)updraft_restorer_checkstage2(1);else if(3==updraft_restore_stage){var s=1;if(jQuery("#updraft_restoreoptions_ui input.required").each(function(t){if(0!=s){var e=jQuery(this).val();if(""==e)alert(updraftlion.pleasefillinrequired),s=0;else if(""!=jQuery(this).attr("pattern")){var a=jQuery(this).attr("pattern"),r=new RegExp(a,"g");r.test(e)||(alert(jQuery(this).data("invalidpattern")),s=0)}}}),!s)return;var i=jQuery("#updraft_restoreoptions_ui select, #updraft_restoreoptions_ui input").serialize();console.log("Restore options: "+i),jQuery("#updraft_restorer_restore_options").val(i),jQuery("#updraft-restore-modal-stage2a").html(updraftlion.restore_proceeding),jQuery("#updraft_restore_form").submit(),updraft_restore_stage=4}}else alert(updraftlion.youdidnotselectany)},w[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-restore-modal").dialog({autoOpen:!1,height:505,width:590,modal:!0,buttons:w}),jQuery("#updraft-iframe-modal").dialog({autoOpen:!1,height:500,width:780,modal:!0}),jQuery("#updraft-backupnow-inpage-modal").dialog({autoOpen:!1,height:380,width:580,modal:!0});var k={};k[updraftlion.backupnow]=function(){var t=jQuery("#backupnow_includedb").is(":checked")?0:1,e=jQuery("#backupnow_includefiles").is(":checked")?0:1,a=jQuery("#backupnow_includecloud").is(":checked")?0:1,r=backupnow_whichtables_checked(""),n=jQuery("#always_keep").is(":checked")?1:0,o="incremental"==jQuery("#updraft-backupnow-modal").data("backup-type")?1:0;if(""==r&&0==t)return alert(updraftlion.notableschosen),void jQuery("#backupnow_includefiles_moreoptions").show();"boolean"==typeof r&&(r=null);var u=backupnow_whichfiles_checked("");return""==u&&0==e?(alert(updraftlion.nofileschosen),void jQuery("#backupnow_includefiles_moreoptions").show()):t&&e?void alert(updraftlion.excludedeverything):(jQuery(this).dialog("close"),setTimeout(function(){jQuery("#updraft_lastlogmessagerow").fadeOut("slow",function(){jQuery(this).fadeIn("slow")})},1700),void updraft_backupnow_go(t,e,a,u,{always_keep:n,incremental:o},jQuery("#backupnow_label").val(),r))},k[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-backupnow-modal").dialog({autoOpen:!1,height:472,width:610,modal:!0,buttons:k,create:function(){t(this).closest(".ui-dialog").find(".ui-dialog-buttonpane .ui-button:first").addClass("js-tour-backup-now-button")}}),jQuery("#updraft-poplog").dialog({autoOpen:!1,height:600,width:"75%",modal:!0}),jQuery("#updraft-navtab-settings-content .enableexpertmode").click(function(){return jQuery("#updraft-navtab-settings-content .expertmode").fadeIn(),jQuery("#updraft-navtab-settings-content .enableexpertmode").off("click"),!1}),jQuery("#updraft-navtab-settings-content .backupdirrow").on("click","a.updraft_backup_dir_reset",function(){return jQuery("#updraft_dir").val("updraft"),!1}),jQuery("#updraft-navtab-settings-content .updraft_include_entity").click(function(){var t=jQuery(this).data("toggle_exclude_field");t&&p(t,!1)}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_delete",function(t){if(t.preventDefault(),confirm(updraftlion.exclude_rule_remove_conformation_msg)){var e=jQuery(this).data("include-backup-file");jQuery.when(jQuery(this).closest(".updraft_exclude_entity_wrapper").remove()).then(updraft_exclude_entity_update(e))}}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_edit",function(t){t.preventDefault();var e=jQuery(this).hide().closest(".updraft_exclude_entity_wrapper"),a=e.find("input");a.removeProp("readonly").focus();var r=a.val();a.val(""),a.val(r),e.find(".updraft_exclude_entity_update").addClass("is-active").show()}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_update",function(t){t.preventDefault();var e=jQuery(this).closest(".updraft_exclude_entity_wrapper"),a=jQuery(this).data("include-backup-file"),r=jQuery.trim(e.find("input").val()),n=!1;r==e.find("input").data("val")?n=!0:updraft_is_unique_exclude_rule(r,a)&&(n=!0),n&&(jQuery(this).hide().removeClass("is-active"),jQuery.when(e.find("input").prop("readonly","readonly").data("val",r)).then(function(){e.find(".updraft_exclude_entity_edit").show(),updraft_exclude_entity_update(a)}))}),jQuery("#updraft_exclude_modal").dialog({autoOpen:!1,modal:!0,width:520,height:"auto",open:function(e,a){t(this).parent().focus()}}),jQuery(".updraft_exclude_container .updraft_add_exclude_item").click(function(t){t.preventDefault();var e=jQuery(this).data("include-backup-file");jQuery("#updraft_exclude_modal_for").val(e),jQuery("#updraft_exclude_modal_path").val(jQuery(this).data("path")),"uploads"==e&&jQuery("#updraft-exclude-file-dir-prefix").html(jQuery("#updraft-exclude-upload-base-dir").val()),jQuery(".updraft-exclude-modal-reset").trigger("click"),jQuery("#updraft_exclude_modal").dialog("open")}),jQuery(".updraft-exclude-link").click(function(t){t.preventDefault();var e=jQuery(this).data("panel");"file-dir"==e&&jQuery("#updraft_exclude_files_folders_jstree").jstree({core:{multiple:!1,data:function(t,e){updraft_send_command("get_jstree_directory_nodes",{entity:"filebrowser",node:t,path:jQuery("#updraft_exclude_modal_path").val(),findex:0,skip_root_node:!0},function(t){t.hasOwnProperty("error")?alert(t.error):e.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["sort"]}),jQuery("#updraft_exclude_modal_main").slideUp(),jQuery(".updraft-exclude-panel").hide(),jQuery(".updraft-exclude-panel[data-panel="+e+"]").slideDown()}),jQuery(".updraft-exclude-modal-reset").click(function(t){t.preventDefault(),jQuery("#updraft_exclude_files_folders_jstree").jstree("destroy"),jQuery("#updraft_exclude_extension_field").val(""),jQuery("#updraft_exclude_prefix_field").val(""),jQuery(".updraft-exclude-panel").slideUp(),jQuery("#updraft_exclude_modal_main").slideDown()}),jQuery(".updraft-exclude-submit").click(function(){var t=jQuery(this).data("panel"),e="";switch(t){case"file-dir":var a=jQuery("#updraft_exclude_files_folders_jstree").jstree("get_selected");if(0==a.length)return void alert(updraftlion.exclude_select_file_or_folder_msg);var r=a[0],n=jQuery("#updraft_exclude_modal_path").val();r.substr(0,n.length)==n&&(r=r.substr(n.length,r.length)),"/"==r.charAt(0)&&(r=r.substr(1)),"/"==r.charAt(r.length-1)&&(r=r.substr(0,r.length-1)),e=r;break;case"extension":var o=jQuery("#updraft_exclude_extension_field").val();if(""==o)return void alert(updraftlion.exclude_type_ext_msg);if(!o.match(/^[0-9a-zA-Z]+$/))return void alert(updraftlion.exclude_ext_error_msg);e="ext:"+o;break;case"begin-with":var u=jQuery("#updraft_exclude_prefix_field").val();if(""==u)return void alert(updraftlion.exclude_type_prefix_msg);if(!u.match(/^\s*[a-z-_\d,\s]+\s*$/i))return void alert(updraftlion.exclude_prefix_error_msg);e="prefix:"+u;break;default:return}var d=jQuery("#updraft_exclude_modal_for").val();if(updraft_is_unique_exclude_rule(e,d)){var s='<div class="updraft_exclude_entity_wrapper"><input type="text" class="updraft_exclude_entity_field updraft_include_'+d+'_exclude_entity" name="updraft_include_'+d+'_exclude_entity[]" value="'+e+'" data-val="'+e+'" data-include-backup-file="'+d+'" readonly="readonly"><a href="#" class="updraft_exclude_entity_edit dashicons dashicons-edit" data-include-backup-file="'+d+'"></a><a href="#" class="updraft_exclude_entity_update dashicons dashicons-yes" data-include-backup-file="'+d+'" style="display: none;"></a><a href="#" class="updraft_exclude_entity_delete dashicons dashicons-no" data-include-backup-file="'+d+'"></a></div>';jQuery('.updraft_exclude_entity_container[data-include-backup-file="'+d+'"]').append(s),updraft_exclude_entity_update(d),jQuery("#updraft_exclude_modal").dialog("close")}}),jQuery("#updraft-navtab-settings-content .updraft-service").change(function(){var t=jQuery(this).val();jQuery("#updraft-navtab-settings-content .updraftplusmethod").hide(),jQuery("#updraft-navtab-settings-content ."+t).show()}),jQuery("#updraft-navtab-settings-content a.updraft_show_decryption_widget").click(function(t){t.preventDefault(),jQuery("#updraftplus_db_decrypt").val(jQuery("#updraft_encryptionphrase").val()),jQuery("#updraft-manualdecrypt-modal").slideToggle()}),jQuery("#updraftplus-phpinfo").click(function(t){t.preventDefault(),updraft_iframe_modal("phpinfo",updraftlion.phpinfo)}),jQuery("#updraftplus-rawbackuphistory").click(function(t){t.preventDefault(),updraft_iframe_modal("rawbackuphistory",updraftlion.raw)}),jQuery("#updraft-navtab-status").click(function(t){t.preventDefault(),updraft_open_main_tab("status"),updraft_page_is_visible=1,updraft_console_focussed_tab="status",updraft_activejobs_update(!0)}),jQuery("#updraft-navtab-expert").click(function(t){t.preventDefault(),updraft_open_main_tab("expert"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-settings, #updraft-navtab-settings2, #updraft_backupnow_gotosettings").click(function(t){t.preventDefault(),jQuery(this).parents(".updraftmessage").remove(),jQuery("#updraft-backupnow-modal").dialog("close"),updraft_open_main_tab("settings"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-addons").click(function(t){t.preventDefault(),jQuery(this).addClass("b#nav-tab-active"),updraft_open_main_tab("addons"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-backups").click(function(t){t.preventDefault(),updraft_console_focussed_tab="backups",updraft_historytimertoggle(1),updraft_open_main_tab("backups")}),jQuery("#updraft-navtab-migrate").click(function(t){t.preventDefault(),jQuery("#updraft_migrate_tab_alt").html("").hide(),updraft_open_main_tab("migrate"),updraft_page_is_visible=1,jQuery("#updraft_migrate .updraft_migrate_widget_module_content").is(":visible")||jQuery(".updraft_migrate_intro").show()}),"migrate"==updraftlion.tab&&jQuery("#updraft-navtab-migrate").trigger("click"),updraft_send_command("ping",null,function(t,e){"success"==e&&"pong"!=t&&t.indexOf("pong")>=0&&(jQuery("#updraft-navtab-backups-content .ud-whitespace-warning").show(),console.log("UpdraftPlus: Extra output warning: response (which should be just (string)'pong') follows."),console.log(t))},{json_parse:!1,type:"GET"});try{"undefined"!=typeof updraft_plupload_config&&_()}catch(j){console.log(j)}if(jQuery("#updraftplus_httpget_go").click(function(t){t.preventDefault(),c(0)}),jQuery("#updraftplus_httpget_gocurl").click(function(t){t.preventDefault(),c(1)}),jQuery("#updraftplus_callwpaction_go").click(function(t){t.preventDefault(),params={wpaction:jQuery("#updraftplus_callwpaction").val()},updraft_send_command("call_wordpress_action",params,function(t){t.e?alert(t.e):t.s||(t.r?jQuery("#updraftplus_callwpaction_results").html(t.r):(console.log(t),alert(updraftlion.jsonnotunderstood)))})}),jQuery("#updraft_activejobs_table, #updraft-navtab-migrate-content").on("click",".updraft_jobinfo_delete",function(e){e.preventDefault();var a=jQuery(this).data("jobid");a?(t(this).addClass("disabled"),updraft_activejobs_delete(a)):console.log("UpdraftPlus: A stop job link was clicked, but the Job ID could not be found")}),jQuery("#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content").on("click",".updraft-log-link",function(t){t.preventDefault();var e=jQuery(this).data("fileid"),a=jQuery(this).data("jobid");e?updraft_popuplog(e):a?updraft_popuplog(a):console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.choose-components-button",function(t){var e=jQuery(this).data("entities"),a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("showdata");f(e,a,r)}),"initiate_restore"==m("udaction")){var Q=m("entities"),x=m("backup_timestamp"),O=m("showdata");f(Q,x,O)}var P={};P[updraftlion.uploadbutton]=function(){var t=jQuery("#updraft_upload_timestamp").val(),e=jQuery("#updraft_upload_nonce").val(),a="",r=!1;return jQuery(".updraft_remote_storage_destination").each(function(t){jQuery(this).is(":checked")&&(r=!0)}),r?(a=jQuery("input[name^='updraft_remote_storage_destination_']").serializeArray(),jQuery(this).dialog("close"),alert(updraftlion.local_upload_started),void updraft_send_command("upload_local_backup",{use_nonce:e,use_timestamp:t,services:a},function(t){})):void jQuery("#updraft-upload-modal-error").html(updraftlion.local_upload_error)},P[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-upload-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:P}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft-upload-link",function(t){t.preventDefault();var e=jQuery(this).data("nonce").toString(),a=jQuery(this).data("key").toString(),r=jQuery(this).data("services").toString();e?g(a,e,r):console.log("UpdraftPlus: A upload link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-delete-link",function(t){t.preventDefault();var e=jQuery(this).data("hasremote"),a=jQuery(this).data("nonce").toString(),r=jQuery(this).data("key").toString();a?updraft_delete(r,a,e):console.log("UpdraftPlus: A delete link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft_download_button",function(t){t.preventDefault();var e="uddlstatus_",a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("what"),n=".ud_downloadstatus",o=jQuery(this).data("set_contents"),u=jQuery(this).data("prettydate"),d=!0;updraft_downloader(e,a,r,n,o,u,d)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("dblclick",".updraft_existingbackup_date",function(t){t.preventDefault();var e=jQuery(this).data("rawbackup");null!=e&&""!=e&&updraft_html_modal(e,updraftlion.raw,780,500)})}),jQuery(document).ready(function(t){var e="#updraft-navtab-settings-content ";t(e+"#remote-storage-holder").on("click",".updraftvault_backtostart",function(a){a.preventDefault(),t(e+"#updraftvault_settings_showoptions").slideUp(),t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").slideUp(),t(e+"#updraftvault_settings_default").slideDown()}),t(e).on("keypress","#updraftvault_settings_connect input",function(a){if(13==a.which)return t(e+"#updraftvault_connect_go").click(),!1}),t(e+"#remote-storage-holder").on("click","#updraftvault_recountquota",function(a){a.preventDefault(),t(e+"#updraftvault_recountquota").html(updraftlion.counting);try{updraft_send_command("vault_recountquota",{instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html),a.hasOwnProperty("connected")&&(a.connected?(t(e+"#updraftvault_settings_default").hide(),t(e+"#updraftvault_settings_connected").show()):(t(e+"#updraftvault_settings_connected").hide(),t(e+"#updraftvault_settings_default").show())))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var u="updraft_send_command: error: "+r+" ("+n+")";console.log(u),alert(u),console.log(a)}}})}catch(r){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_disconnect",function(a){a.preventDefault(),t(e+"#updraftvault_disconnect").html(updraftlion.disconnecting);try{updraft_send_command("vault_disconnect",{immediate_echo:!0,instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html).slideUp(),t(e+"#updraftvault_settings_default").slideDown())},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var u="updraft_send_command: error: "+r+" ("+n+")";console.log(u),alert(u),console.log(a)}}})}catch(r){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect",function(a){
|
4 |
+
a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_connect").slideDown()}),t(e+"#remote-storage-holder").on("click","#updraftvault_showoptions",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_showoptions").slideDown()}),t("#remote-storage-holder").on("keyup",".updraftplus_onedrive_folder_input",function(e){var a=t(this).val(),r=t(this).closest("td");0==a.indexOf("https:")||0==a.indexOf("http:")?r.find(".onedrive_folder_error").length||r.append('<div class="onedrive_folder_error">'+updraftlion.onedrive_folder_url_warning+"</div>"):r.find(".onedrive_folder_error").slideUp("slow",function(){r.find(".onedrive_folder_error").remove()})}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect_go",function(a){return t(e+"#updraftvault_connect_go").html(updraftlion.connecting),updraft_send_command("vault_connect",{email:t("#updraftvault_email").val(),pass:t("#updraftvault_pass").val(),instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a,r,n){t(e+"#updraftvault_connect_go").html(updraftlion.connect),a.hasOwnProperty("e")?(updraft_html_modal('<h4 style="margin-top:0px; padding-top:0px;">'+updraftlion.errornocolon+"</h4><p>"+a.e+"</p>",updraftlion.disconnect,400,250),a.hasOwnProperty("code")&&"no_quota"==a.code&&(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_default").slideDown())):a.hasOwnProperty("connected")&&a.connected&&a.hasOwnProperty("html")?(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").html(a.html).slideDown()):(console.log(a),alert(updraftlion.unexpectedresponse+" "+n))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_connect_go").html(updraftlion.connect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var u="updraft_send_command: error: "+r+" ("+n+")";console.log(u),alert(u),console.log(a)}}}),!1}),t("#updraft-iframe-modal").on("change","#always_keep_this_backup",function(){var e=t(this).data("backup_key"),a={backup_key:e,always_keep:t(this).is(":checked")?1:0};updraft_send_command("always_keep_this_backup",a,function(t){t.hasOwnProperty("rawbackup")&&(jQuery("#updraft-iframe-modal").dialog("close"),jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup",t.rawbackup),updraft_html_modal(jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup"),updraftlion.raw,780,500))})})}),jQuery(document).ready(function(t){function e(){var t=new plupload.Uploader(updraft_plupload_config2);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui2");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area2").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area2").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){return/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?\.(gz\.crypt)$/i.test(e.name)?void jQuery("#filelist2").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>'):(alert(e.name+": "+updraftlion.notdba),void t.removeFile(e))}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),t.bind("Error",function(t,e){"-200"==e.code?err_makesure="\n"+updraftlion.makesure2:err_makesure=updraftlion.makesure,alert(updraftlion.uploaderr+" (code "+e.code+") : "+e.message+" "+err_makesure)}),t.bind("FileUploaded",function(t,e,a){"200"==a.status?"ERROR:"==a.response.substring(0,6)?alert(updraftlion.uploaderror+" "+a.response.substring(6)):"OK:"==a.response.substring(0,3)?(bkey=a.response.substring(3),jQuery("#"+e.id+" .fileprogress").hide(),jQuery("#"+e.id).append(updraftlion.uploaded+' <a href="?page=updraftplus&action=downloadfile&updraftplus_file='+bkey+"&decrypt_key="+encodeURIComponent(jQuery("#updraftplus_db_decrypt").val())+'">'+updraftlion.followlink+"</a> "+updraftlion.thiskey+" "+jQuery("#updraftplus_db_decrypt").val().replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"))):alert(updraftlion.unknownresp+" "+a.response):alert(updraftlion.ukrespstatus+" "+a.code)})}try{"undefined"!=typeof updraft_plupload_config2&&e()}catch(a){console.log(a)}if(jQuery("#updraft-hidethis").remove(),Handlebars.registerHelper("ifeq",function(t,e,a){return"string"!=typeof t&&"undefined"!=typeof t&&null!==t&&(t=t.toString()),"string"!=typeof e&&"undefined"!=typeof e&&null!==e&&(e=e.toString()),t===e?a.fn(this):a.inverse(this)}),t("#remote-storage-holder").length){var r="";for(var n in updraftlion.remote_storage_templates)if("undefined"!=typeof updraftlion.remote_storage_options[n]&&1<Object.keys(updraftlion.remote_storage_options[n]).length){var o=Handlebars.compile(updraftlion.remote_storage_templates[n]),u=!0;for(var d in updraftlion.remote_storage_options[n])if("default"!==d){var s=updraftlion.remote_storage_options[n][d];s.first_instance=u,"undefined"==typeof s.instance_enabled&&(s.instance_enabled=1),r+=o(s),u=!1}}else r+=updraftlion.remote_storage_templates[n];t("#remote-storage-holder").append(r).ready(function(){t(".updraftplusmethod").not(".none").hide(),updraft_remote_storage_tabs_setup(),t("#remote-storage-holder .updraftplus_onedrive_folder_input").trigger("keyup")})}}),jQuery(document).ready(function(t){function e(){var t=r("object"),e=new Date;t=JSON.stringify({version:"1.12.40",epoch_date:e.getTime(),local_date:e.toLocaleString(),network_site_url:updraftlion.network_site_url,data:t});var a=document.body.appendChild(document.createElement("a"));a.setAttribute("download",updraftlion.export_settings_file_name),a.setAttribute("style","display:none;"),a.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(t)),a.click()}function a(e){var a,r=decodeURIComponent(e);try{a=ud_parse_json(r)}catch(o){return t.unblockUI(),jQuery("#import_settings").val(""),console.log(r),console.log(o),void alert(updraftlion.import_invalid_json_file)}if(window.confirm(updraftlion.importing_data_from+" "+r.network_site_url+"\n"+updraftlion.exported_on+" "+r.local_date+"\n"+updraftlion.continue_import)){var u=JSON.stringify(a.data);updraft_send_command("importsettings",{settings:u,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){var o=n(e);!o.hasOwnProperty("saved")||o.saved?(updraft_settings_form_changed=!1,location.replace(updraftlion.updraft_settings_url)):(t.unblockUI(),o.hasOwnProperty("error_message")&&o.error_message&&alert(o.error_message))},{action:"updraft_importsettings",nonce:updraftplus_settings_nonce,error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),console.log(e),alert(o)}}})}else t.unblockUI()}function r(e){var a="",e="undefined"==typeof e?"string":e;return"object"==e?a=t("#updraft-navtab-settings-content form input[name!='action'][name!='option_page'][name!='_wpnonce'][name!='_wp_http_referer'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select, #updraft-navtab-settings-content form input[type=checkbox]").serializeJSON({checkboxUncheckedValue:"0",useIntKeysAsArrayIndex:!0}):(a=t("#updraft-navtab-settings-content form input[name!='action'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select").serialize(),t.each(t("#updraft-navtab-settings-content form input[type=checkbox]").filter(function(e){return 0==t(this).prop("checked")}),function(e,r){var n="0";a+="&"+t(r).attr("name")+"="+n})),a}function n(e,a){try{var r=(e.messages,e.backup_dir.writable),n=e.backup_dir.message,o=e.backup_dir.button_title}catch(u){return console.log(u),console.log(a),alert(updraftlion.jsonnotunderstood),t.unblockUI(),{}}if(e.hasOwnProperty("changed")){console.log("UpdraftPlus: savesettings: some values were changed after being filtered"),console.log(e.changed);for(prop in e.changed)if("object"==typeof e.changed[prop])for(innerprop in e.changed[prop])t("[name='"+innerprop+"']").is(":checkbox")||t("[name='"+prop+"["+innerprop+"]']").val(e.changed[prop][innerprop]);else t("[name='"+prop+"']").is(":checkbox")||t("[name='"+prop+"']").val(e.changed[prop])}return t("#updraft_writable_mess").html(n),0==r?(t("#updraft-backupnow-button").attr("disabled","disabled"),t("#updraft-backupnow-button").attr("title",o),t(".backupdirrow").css("display","table-row")):(t("#updraft-backupnow-button").removeAttr("disabled"),t("#updraft-backupnow-button").removeAttr("title")),e.hasOwnProperty("updraft_include_more_path")&&t("#backupnow_includefiles_moreoptions").html(e.updraft_include_more_path),e.hasOwnProperty("backup_now_message")&&t("#backupnow_remote_container").html(e.backup_now_message),t(".updraftmessage").remove(),t("#updraft_backup_started").before(e.messages),console.log(e),t("#updraft-next-files-backup-inner").html(e.files_scheduled),t("#updraft-next-database-backup-inner").html(e.database_scheduled),e}function o(){var t=!1;if(jQuery("#updraft-authenticate-modal-innards").html(""),jQuery("div[class*=updraft_authenticate_] a.updraft_authlink").each(function(){jQuery("#updraft-authenticate-modal-innards").append('<p><a href="'+jQuery(this).attr("href")+'">'+jQuery(this).html()+"</a></p>"),t=!0}),t){var e={};e[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-authenticate-modal").dialog({autoOpen:!0,modal:!0,resizable:!1,draggable:!1,buttons:e,width:"auto"}).dialog("open")}}var u=new Image;u.src=updraftlion.ud_url+"/images/notices/updraft_logo.png",t("#updraft-navtab-settings-content input.updraft_include_entity").change(function(e){var a=t(this).attr("id"),r=t(this).is(":checked"),n="#backupnow_files_"+a;t(n).prop("checked",r)}),t("#updraftplus-settings-save").click(function(e){e.preventDefault(),t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.saving+"</div>"});var a=r("string");updraft_send_command("savesettings",{settings:a,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){n(e,r),t("#updraft-wrap .fade").delay(6e3).fadeOut(2e3),window.updraft_main_tour&&!window.updraft_main_tour.canceled?(window.updraft_main_tour.show("settings_saved"),o()):t("html, body").animate({scrollTop:t("#updraft-wrap").offset().top},1e3,function(){o()}),t.unblockUI()},{action:"updraft_savesettings",error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),alert(o),console.log(e)}},nonce:updraftplus_settings_nonce})}),t("#updraftplus-settings-export").click(function(){updraft_settings_form_changed&&alert(updraftlion.unsaved_settings_export),e()}),t("#updraftplus-settings-import").click(function(){t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.importing+"</div>"});var e=document.getElementById("import_settings");if(0==e.files.length)return alert(updraftlion.import_select_file),void t.unblockUI();var r=e.files[0],n=new FileReader;n.onload=function(){a(this.result)},n.readAsText(r)}),t(".udp-replace-with-iframe--js").on("click",function(e){e.preventDefault();var a=t(this).prop("href"),r=t('<iframe width="356" height="200" allowfullscreen webkitallowfullscreen mozallowfullscreen>').attr("src",a);r.insertAfter(t(this)),t(this).remove()})}),jQuery(document).ready(function(t){function e(e,n,o,u){if("function"==typeof o){var d=t(u).find("#updraftcentral_cloud_form"),s=d.find('.form_hidden_fields input[name="key"]');if(s.length&&""!==s.val())return void o.apply(this,[s.val()]);var i={where_send:"__updraftpluscom",key_description:"",key_size:e,mothership_firewalled:n};a(u),updraft_send_command("updraftcentral_create_key",i,function(e){r(u);try{if(i=ud_parse_json(e),i.hasOwnProperty("error"))return void console.log(i);i.hasOwnProperty("bundle")?o.apply(this,[i.bundle]):i.hasOwnProperty("r")?(t(u).find(".updraftcentral_cloud_notices").html(updraftlion.trouble_connecting).addClass("updraftcentral_cloud_info"),alert(i.r)):console.log(i)}catch(a){console.log(a)}},{json_parse:!1})}}function a(e){t(e).find(".updraftplus_spinner.spinner").addClass("visible")}function r(e){t(e).find(".updraftplus_spinner.spinner").removeClass("visible")}function n(e,n){a(n),updraft_send_command("process_updraftcentral_registration",e,function(a){r(n);try{if(e=ud_parse_json(a),e.hasOwnProperty("error")){var o=e.message,d=["existing_user_email","email_exists"];return-1!==t.inArray(e.code,d)&&(o=e.message+" "+updraftlion.perhaps_login),t(n).find(".updraftcentral_cloud_notices").html(o).addClass("updraftcentral_cloud_error"),t(n).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(e)}"registered"===e.status&&(t(n).find(".updraftcentral_cloud_form_container").hide(),t(n).find(".updraftcentral-subheading").hide(),t(n).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),u(n,e,updraftlion.registration_successful))}catch(s){console.log(s)}},{json_parse:!1})}function o(e,o){a(o),updraft_send_command("process_updraftcentral_login",e,function(a){r(o);try{if(data=ud_parse_json(a),data.hasOwnProperty("error")){if("incorrect_password"===data.code&&(t(o).find(".updraftcentral_cloud_form_container .tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").show(),t(o).find("input#two_factor_code").val(""),t(o).find("input#password").val("").focus()),"email_not_registered"!==data.code)return t(o).find(".updraftcentral_cloud_notices").html(data.message).addClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(data);n(e,o)}data.hasOwnProperty("tfa_enabled")&&1==data.tfa_enabled&&(t(o).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .tfa_fields").show(),t(o).find("input#two_factor_code").focus()),"authenticated"===data.status&&(t(o).find(".updraftcentral_cloud_form_container").hide(),t(o).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),u(o,data,updraftlion.login_successful))}catch(d){console.log(d)}},{json_parse:!1})}function u(e,a,r){var n=t(e).find("form#updraftcentral_cloud_redirect_form");n.attr("action",a.redirect_url),n.attr("target","_blank"),"undefined"!=typeof a.redirect_token&&n.append('<input type="hidden" name="redirect_token" value="'+a.redirect_token+'">'),a.hasOwnProperty("keys_table")&&a.keys_table&&t("#updraftcentral_keys_content").html(a.keys_table),$redirect_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_redirect_link">'+updraftlion.updraftcentral_cloud+"</a>",$close_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_close_link">'+updraftlion.close_wizard+"</a>",t(e).find(".updraftcentral_cloud_notices").html(r.replace("%s",$redirect_lnk)+" "+$close_lnk+"<br/><br/>"+updraftlion.control_udc_connections),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_redirect_link").off("click").on("click",function(a){a.preventDefault(),n.submit(),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").trigger("click")}),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").off("click").on("click",function(a){a.preventDefault(),t(e).dialog("close"),t("#updraftcentral_cloud_connect_container").hide()})}function d(e){var a=t(e).find("#updraftcentral_cloud_form"),r=a.find("input#email").val(),n=a.find("input#password").val(),o=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;t(e).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error updraftcentral_cloud_info");var u=a.find('.updraftcentral-data-consent > input[name="i_consent"]').is(":checked");return u?0===r.length||0===n.length?(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.username_password_required).addClass("updraftcentral_cloud_error"),!1):null!==r.match(o)||(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.valid_email_required).addClass("updraftcentral_cloud_error"),!1):(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.data_consent_required).addClass("updraftcentral_cloud_error"),!1)}function s(a,r){var u=t(a).find("#updraft_central_keysize").val(),d=t(a).find("#updraft_central_firewalled").is(":checked")?1:0;e(u,d,function(e){var u=t(a).find("#updraftcentral_cloud_form"),d=u.find('.form_hidden_fields input[name="key"]');0===d.length&&u.find(".form_hidden_fields").append('<input type="hidden" name="key" value="'+e+'">');var s=u.find("input").serialize(),i={form_data:s};"undefined"!=typeof r&&r?n(i,a):o(i,a)},a)}function i(){var e=t("#updraftcentral_cloud_login_form");if(e.length){t("#updraft-iframe-modal-innards").html(e.html());var a=t("#updraft-iframe-modal").dialog("option","title",updraftlion.updraftcentral_cloud).dialog("option","width",520).dialog("option","height",450).dialog("option","buttons",{});a.dialog("open");var r=a.find(".updraftcentral-data-consent"),n=r.find("input").attr("name");"undefined"!=typeof n&&n&&(r.find("input").attr("id",n),r.find("label").attr("for",n))}}jQuery("#updraft-restore-modal").on("change","#updraft_restorer_charset",function(e){if(t("#updraft_restorer_charset").length&&t("#updraft_restorer_collate").length&&t("#collate_change_on_charset_selection_data").length){var a=t("#updraft_restorer_charset").val();t("#updraft_restorer_collate option").show(),t("#updraft_restorer_collate option[data-charset!="+a+"]").hide(),updraft_send_command("collate_change_on_charset_selection",{collate_change_on_charset_selection_data:t("#collate_change_on_charset_selection_data").val(),updraft_restorer_charset:a,updraft_restorer_collate:t("#updraft_restorer_collate").val()},function(e){e.hasOwnProperty("is_action_required")&&1==e.is_action_required&&e.hasOwnProperty("similar_type_collate")&&t("#updraft_restorer_collate").val(e.similar_type_collate)})}}),t("#updraft-wrap #btn_cloud_connect").on("click",function(){i()}),t("#updraft-wrap a#self_hosted_connect").on("click",function(e){e.preventDefault(),t("h2.nav-tab-wrapper > a#updraft-navtab-expert").trigger("click"),t("div.advanced_settings_menu > #updraft_central").trigger("click")}),t("#updraft-iframe-modal").on("click","#updraftcentral_cloud_login",function(e){e.preventDefault();var a=t(this).closest("#updraft-iframe-modal");d(a)&&s(a)})});
|
@@ -1,4 +0,0 @@
|
|
1 |
-
function updraft_send_command(t,e,a,r){default_options={json_parse:!0,alert_on_error:!0,action:"updraft_ajax",nonce:updraft_credentialtest_nonce,nonce_key:"nonce",timeout:null,async:!0,type:"POST"},"undefined"==typeof r&&(r={});for(var n in default_options)r.hasOwnProperty(n)||(r[n]=default_options[n]);var o={action:r.action,subaction:t};if(o[r.nonce_key]=r.nonce,"object"==typeof e)for(var d in e)o[d]=e[d];else o.action_data=e;var u={type:r.type,url:ajaxurl,data:o,success:function(t,e){if(r.json_parse){try{var n=ud_parse_json(t)}catch(o){return"function"==typeof r.error_callback?r.error_callback(t,o,502,n):(console.log(o),console.log(t),void(r.alert_on_error&&alert(updraftlion.unexpectedresponse+" "+t)))}if(n.hasOwnProperty("fatal_error"))return"function"==typeof r.error_callback?r.error_callback(t,e,500,n):(console.error(n.fatal_error_message),r.alert_on_error&&alert(n.fatal_error_message),!1);"function"==typeof a&&a(n,e,t)}else"function"==typeof a&&a(t,e)},error:function(t,e,a){"function"==typeof r.error_callback?r.error_callback(t,e,a):(console.log("updraft_send_command: error: "+e+" ("+a+")"),console.log(t))},dataType:"text",async:r.async};null!=r.timeout&&(u.timeout=r.timeout),jQuery.ajax(u)}function updraft_delete(t,e,a){jQuery("#updraft_delete_timestamp").val(t),jQuery("#updraft_delete_nonce").val(e),a?jQuery("#updraft-delete-remote-section, #updraft_delete_remote").removeAttr("disabled").show():jQuery("#updraft-delete-remote-section, #updraft_delete_remote").hide().attr("disabled","disabled"),t.indexOf(",")>-1?(jQuery("#updraft_delete_question_singular").hide(),jQuery("#updraft_delete_question_plural").show()):(jQuery("#updraft_delete_question_plural").hide(),jQuery("#updraft_delete_question_singular").show()),jQuery("#updraft-delete-modal").dialog("open")}function updraft_remote_storage_tab_activation(t){jQuery(".updraftplusmethod").hide(),jQuery(".remote-tab").data("active",!1),jQuery(".remote-tab").removeClass("nav-tab-active"),jQuery(".updraftplusmethod."+t).show(),jQuery(".remote-tab-"+t).data("active",!0),jQuery(".remote-tab-"+t).addClass("nav-tab-active")}function updraft_check_overduecrons(){updraft_send_command("check_overdue_crons",null,function(t){t&&t.hasOwnProperty("m")&&jQuery("#updraft-insert-admin-warning").html(t.m)},{alert_on_error:!1})}function updraft_remote_storage_tabs_setup(){var t=0,e=jQuery(".updraft_servicecheckbox:checked");jQuery(e).each(function(a,r){var n=jQuery(r).val();"updraft_servicecheckbox_none"!=jQuery(r).attr("id")&&t++,jQuery(".remote-tab-"+n).show(),a==jQuery(e).length-1&&updraft_remote_storage_tab_activation(n)}),t>0?(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show()):jQuery("#remote_storage_tabs").hide(),jQuery(document).keyup(function(t){if((32===t.keyCode||13===t.keyCode)&&jQuery(document.activeElement).is("input.labelauty + label")){var e=jQuery(document.activeElement).attr("for");e&&jQuery("#"+e).change()}}),jQuery(".updraft_servicecheckbox").change(function(){var e=jQuery(this).attr("id");if("updraft_servicecheckbox_"==e.substring(0,24)){var a=e.substring(24);null!=a&&""!=a&&(jQuery(this).is(":checked")?(t++,jQuery(".remote-tab-"+a).fadeIn(),updraft_remote_storage_tab_activation(a)):(t--,jQuery(".remote-tab-"+a).hide(),1==jQuery(".remote-tab-"+a).data("active")&&updraft_remote_storage_tab_activation(jQuery(".remote-tab:visible").last().attr("name"))))}t<=0?(jQuery(".updraftplusmethod.none").fadeIn(),jQuery("#remote_storage_tabs").hide()):(jQuery(".updraftplusmethod.none").hide(),jQuery("#remote_storage_tabs").show())}),jQuery(".updraft_servicecheckbox:not(.multi)").change(function(){var t=jQuery(this).attr("value");jQuery(this).is(":not(:checked)")?(jQuery(".updraftplusmethod."+t).hide(),jQuery(".updraftplusmethod.none").fadeIn()):jQuery(".updraft_servicecheckbox").not(this).prop("checked",!1)});var a=jQuery(".updraft_servicecheckbox");"function"==typeof a.labelauty&&a.labelauty()}function updraft_remote_storage_test(t,e,a){var r,n;a?(r=jQuery("#updraft-"+t+"-test-"+a),n=".updraftplusmethod."+t+"-"+a):(r=jQuery("#updraft-"+t+"-test"),n=".updraftplusmethod."+t);var o=r.data("method_label");r.html(updraftlion.testing_settings.replace("%s",o));var d={method:t};jQuery("#updraft-navtab-settings-content "+n+" input[data-updraft_settings_test], #updraft-navtab-settings-content .expertmode input[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test"),r=jQuery(e).attr("type");if(a){r||(console.log("UpdraftPlus: settings test input item with no type found"),console.log(e),r="text");var n=null;"checkbox"==r?n=jQuery(e).is(":checked")?1:0:"text"==r||"password"==r?n=jQuery(e).val():(console.log("UpdraftPlus: settings test input item with unrecognised type ("+r+") found"),console.log(e)),d[a]=n}}),jQuery("#updraft-navtab-settings-content "+n+" textarea[data-updraft_settings_test], #updraft-navtab-settings-content "+n+" select[data-updraft_settings_test]").each(function(t,e){var a=jQuery(e).data("updraft_settings_test");d[a]=jQuery(e).val()}),updraft_send_command("test_storage_settings",d,function(t,a){r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof e&&0!=e&&(e=e.call(this,t,a,d)),"undefined"!=typeof e&&!1===e&&(alert(updraftlion.settings_test_result.replace("%s",o)+" "+t.output),t.hasOwnProperty("data")&&console.log(t.data))},{error_callback:function(t,e,a,n){if(r.html(updraftlion.test_settings.replace("%s",o)),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var d="updraft_send_command: error: "+e+" ("+a+")";console.log(d),alert(d),console.log(t)}}})}function backupnow_whichfiles_checked(t){return jQuery('#backupnow_includefiles_moreoptions input[type="checkbox"]').each(function(e){if(jQuery(this).is(":checked")){var a=jQuery(this).attr("name");if("updraft_include_"==a.substring(0,16)){var r=a.substring(16);""!=t&&(t+=","),t+=r}}}),t}function backupnow_whichtables_checked(t){var e=!1;return jQuery('#backupnow_database_moreoptions input[type="checkbox"]').each(function(t){if(!jQuery(this).is(":checked"))return void(e=!0)}),t=jQuery("input[name^='updraft_include_tables_']").serializeArray(),!e||t}function updraft_deleteallselected(){var t=0,e="",a="",r=0;jQuery("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").each(function(n){t++;var o=jQuery(this).data("nonce");a&&(a+=","),a+=o;var d=jQuery(this).data("key");e&&(e+=","),e+=d;var u=jQuery(this).find(".updraftplus-remove").data("hasremote");u&&r++}),updraft_delete(e,a,r)}function updraft_open_main_tab(t){updraftlion.main_tabs_keys.forEach(function(e){t==e?(jQuery("#updraft-navtab-"+e+"-content").show(),jQuery("#updraft-navtab-"+e).addClass("nav-tab-active")):(jQuery("#updraft-navtab-"+e+"-content").hide(),jQuery("#updraft-navtab-"+e).removeClass("nav-tab-active")),updraft_console_focussed_tab=t})}function updraft_openrestorepanel(t){updraft_historytimertoggle(t),updraft_open_main_tab("backups")}function updraft_delete_old_dirs(){return!0}function updraft_initiate_restore(t){jQuery('#updraft-navtab-backups-content .updraft_existing_backups button[data-backup_timestamp="'+t+'"]').click()}function updraft_restore_setoptions(t){var e=0;jQuery('input[name="updraft_restore[]"]').each(function(a,r){var n=jQuery(r).val(),o=n+"=([0-9,]+)",d=new RegExp(o),u=t.match(d);u?(jQuery(r).removeAttr("disabled").data("howmany",u[1]).parent().show(),e++,"db"==n&&(e+=4.5),jQuery(r).is(":checked")&&jQuery("#updraft_restorer_"+n+"options").show()):jQuery(r).attr("disabled","disabled").parent().hide()});var a=t.match(/dbcrypted=1/);a?(jQuery("#updraft_restore_db").data("encrypted",1),jQuery(".updraft_restore_crypteddb").show()):(jQuery("#updraft_restore_db").data("encrypted",0),jQuery(".updraft_restore_crypteddb").hide()),jQuery("#updraft_restore_db").trigger("change");var r=t.match(/meta_foreign=([12])/);r?jQuery("#updraft_restore_meta_foreign").val(r[1]):jQuery("#updraft_restore_meta_foreign").val("0");var n=336+20*e;jQuery("#updraft-restore-modal").dialog("option","height",n)}function updraft_backup_dialog_open(){jQuery("#backupnow_includefiles_moreoptions").hide(),updraft_settings_form_changed?window.confirm(updraftlion.unsavedsettingsbackup)&&(jQuery("#backupnow_label").val(""),jQuery("#updraft-backupnow-modal").dialog("open")):(jQuery("#backupnow_label").val(""),jQuery("#updraft-backupnow-modal").dialog("open"))}function updraft_check_page_visibility(t){"hidden"==document.visibilityState?updraft_page_is_visible=0:(updraft_page_is_visible=1,1!==t&&jQuery("#updraft-navtab-backups-content").length&&updraft_activejobs_update(!0))}function setup_migrate_tabs(){jQuery("#updraft_migrate .updraft_migrate_widget_module_content").each(function(t,e){var a=jQuery(e).find("h3").first().html(),r=jQuery(".updraft_migrate_intro"),n=jQuery('<button class="button button-primary button-hero" />').html(a).appendTo(r);n.on("click",function(t){t.preventDefault(),jQuery(e).show(),r.hide()})})}function updraft_backupnow_inpage_go(t,e,a,r,n,o,d){r="undefined"==typeof r?0:r,n="undefined"==typeof n?0:n,o="undefined"==typeof o?0:o,d="undefined"==typeof d?updraftlion.automaticbackupbeforeupdate:d,updraft_console_focussed_tab="backups",updraft_inpage_success_callback=t,updraft_activejobs_update_timer=setInterval(function(){updraft_activejobs_update(!1)},1250);var u={},s=jQuery("#updraft-backupnow-inpage-modal").length;s&&jQuery("#updraft-backupnow-inpage-modal").dialog("option","buttons",u),jQuery("#updraft_inpage_prebackup").hide(),s&&jQuery("#updraft-backupnow-inpage-modal").dialog("open"),jQuery("#updraft_inpage_backup").show(),updraft_activejobslist_backupnownonce_only=1,updraft_inpage_hasbegun=0,updraft_backupnow_go(r,n,o,e,a,d,"")}function updraft_activejobs_update(t){var e=jQuery,a=(new Date).getTime();if(!(0==t&&a<updraft_activejobs_nextupdate)){updraft_activejobs_nextupdate=a+5500;var r="";e(".ud_downloadstatus .updraftplus_downloader, #ud_downloadstatus2 .updraftplus_downloader").each(function(t,a){var n=e(a).data("downloaderfor");"object"==typeof n&&(""!=r&&(r+=":"),r=r+n.base+","+n.nonce+","+n.what+","+n.index)});var n={downloaders:r};try{e("#updraft-poplog").dialog("isOpen")&&(n.log_fetch=1,n.log_nonce=updraft_poplog_log_nonce,n.log_pointer=updraft_poplog_log_pointer)}catch(o){console.log(o)}updraft_activejobslist_backupnownonce_only&&"undefined"!=typeof updraft_backupnow_nonce&&""!=updraft_backupnow_nonce&&(n.thisjobonly=updraft_backupnow_nonce),updraft_send_command("activejobs_list",n,function(t,r,o){try{t.hasOwnProperty("l")&&(t.l?(e("#updraft_lastlogmessagerow").show(),e("#updraft_lastlogcontainer").html(t.l)):(e("#updraft_lastlogmessagerow").hide(),e("#updraft_lastlogcontainer").html("("+updraftlion.nothing_yet_logged+")")));var d=-1,u=e(".updraft_requeststart");t.j&&u.length&&u.data("remove")&&u.remove();var s=e(t.j);s.find(".updraft_jobtimings").each(function(t,a){var r=e(a);if(r.data("jobid")){var n=r.data("jobid"),o=r.closest(".updraft_row");updraft_aborted_jobs[n]&&o.hide()}}),e("#updraft_activejobsrow").html(s);var i=s.find('.job-id[data-isclone="1"]');if(i.length>0){if(0==e(".updraftclone_action_box .updraftclone_network_info").length&&e("#updraft_activejobsrow .job-id .updraft_clone_url").length>0){var l=e("#updraft_activejobsrow .job-id .updraft_clone_url").data("clone_url");updraft_send_command("get_clone_network_info",{clone_url:l},function(t){t.hasOwnProperty("html")&&e(".updraftclone_action_box").html(t.html)})}e("#updraft_clone_activejobsrow").empty(),i.each(function(t,a){var r=e(a);r.closest(".updraft_row").appendTo(e("#updraft_clone_activejobsrow"))})}if(e("#updraft_activejobs .updraft_jobtimings").each(function(t,r){var n=e(r);if(n.data("lastactivity")&&n.data("jobid")){var o=n.data("jobid"),u=n.data("lastactivity");(d==-1||u<d)&&(d=u);var s=n.data("nextresumptionafter"),i=n.data("nextresumption");a=(new Date).getTime(),u>50&&i>0&&s<-30&&a>updraft_last_forced_when+1e5&&(updraft_last_forced_jobid!=o||i!=updraft_last_forced_resumption)&&(updraft_last_forced_resumption=i,updraft_last_forced_jobid=o,updraft_last_forced_when=a,console.log("UpdraftPlus: force resumption: job_id="+o+", resumption="+i),updraft_send_command("forcescheduledresumption",{resumption:i,job_id:o},function(t){console.log(t)},{json_parse:!1,alert_on_error:!1}))}}),a=(new Date).getTime(),updraft_activejobs_nextupdate=a+18e4,1==updraft_page_is_visible&&"backups"==updraft_console_focussed_tab&&(updraft_activejobs_nextupdate=d>-1?d<5?a+1750:a+5e3:lastlog_lastdata==o?a+7500:a+1750),i.length>0&&(updraft_activejobs_nextupdate=a+6e3),lastlog_lastdata=o,null!=t.j&&""!=t.j){if(e("#updraft_activejobsrow").show(),i.length>0&&e("#updraft_clone_activejobsrow").show(),n.hasOwnProperty("thisjobonly")&&!updraft_inpage_hasbegun&&e("#updraft-jobid-"+n.thisjobonly).length?(updraft_inpage_hasbegun=1,console.log("UpdraftPlus: the start of the requested backup job has been detected")):!updraft_inpage_hasbegun&&updraft_activejobslist_backupnownonce_only&&e(".updraft_jobtimings.isautobackup").length?(autobackup_nonce=e(".updraft_jobtimings.isautobackup").first().data("jobid"),autobackup_nonce&&(updraft_inpage_hasbegun=1,updraft_backupnow_nonce=autobackup_nonce,n.thisjobonly=autobackup_nonce,console.log("UpdraftPlus: the start of the requested backup job has been detected; id: "+autobackup_nonce))):1==updraft_inpage_hasbegun&&e("#updraft-jobid-"+n.thisjobonly+".updraft_finished").length&&(updraft_inpage_hasbegun=2,console.log("UpdraftPlus: the end of the requested backup job has been detected"),updraft_activejobs_update_timer&&clearInterval(updraft_activejobs_update_timer),"undefined"!=typeof updraft_inpage_success_callback&&""!=updraft_inpage_success_callback?updraft_inpage_success_callback.call(!1):e("#updraft-backupnow-inpage-modal").dialog("close")),""==lastlog_jobs&&setTimeout(function(){e("#updraft_backup_started").slideUp()},3500),n.hasOwnProperty("thisjobonly")&&updraft_backupnow_nonce&&n.thisjobonly===updraft_backupnow_nonce){e(".updraft_requeststart").remove();var p=e("#updraft-jobid-"+updraft_backupnow_nonce);p.is(".updraft_finished")&&(updraft_activejobslist_backupnownonce_only=0,updraft_aborted_jobs[updraft_backupnow_nonce]?updraft_aborted_jobs=updraft_aborted_jobs.filter(function(t,e){return t!=updraft_backupnow_nonce}):updraft_active_job_is_clone(updraft_backupnow_nonce)?(updraft_show_success_modal(updraftlion.clone_backup_complete),updraft_clone_jobs=updraft_clone_jobs.filter(function(t){return t!=updraft_backupnow_nonce})):updraft_show_success_modal(updraftlion.backup_complete),updraft_backupnow_nonce="",updraft_activejobs_update(!0))}}else e("#updraft_activejobsrow").is(":hidden")||("undefined"!=typeof lastbackup_laststatus&&updraft_showlastbackup(),updraft_updatehistory(0,0),e("#updraft_activejobsrow").hide());if(lastlog_jobs=t.j,null!=t.ds&&""!=t.ds&&updraft_downloader_status_update(t.ds,o),null!=t.u&&""!=t.u&&e("#updraft-poplog").dialog("isOpen")){var _=t.u;if(_.nonce==updraft_poplog_log_nonce&&(updraft_poplog_log_pointer=_.pointer,null!=_.log&&""!=_.log)){var c=e("#updraft-poplog").scrollTop();e("#updraft-poplog-content").append(_.log),updraft_poplog_lastscroll!=c&&updraft_poplog_lastscroll!=-1||(e("#updraft-poplog").scrollTop(e("#updraft-poplog-content").prop("scrollHeight")),updraft_poplog_lastscroll=e("#updraft-poplog").scrollTop())}}}catch(f){console.log(updraftlion.unexpectedresponse+" "+o),console.log(f)}},{type:"GET",error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),!0===updraftplus_activejobs_list_fatal_error_alert&&(updraftplus_activejobs_list_fatal_error_alert=!1,alert(this.alert_done+" "+r.fatal_error_message));else{var n=e==a?a:a+" ("+e+")";console.error(n),console.log(t)}return!1}})}}function updraft_show_success_modal(t){"string"==typeof t&&(t={message:t});var e=jQuery.extend({icon:"yes",close:updraftlion.close,message:"",classes:"success"},t);jQuery.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)"},message:'<div class="updraft_success_popup '+e.classes+'"><span class="dashicons dashicons-'+e.icon+'"></span><div class="updraft_success_popup--message">'+e.message+'</div><button class="button updraft-close-overlay"><span class="dashicons dashicons-no-alt"></span>'+e.close+"</button></div>"}),setTimeout(jQuery.unblockUI,5e3),jQuery(".blockUI .updraft-close-overlay").on("click",function(){jQuery.unblockUI()})}function updraft_popuplog(t){var e=updraftlion.loading_log_file;t&&(e+=" (log."+t+".txt)"),jQuery("#updraft-poplog").dialog("option","title",e),jQuery("#updraft-poplog-content").html("<em>"+e+" ...</em> "),jQuery("#updraft-poplog").dialog("open"),updraft_send_command("get_log",t,function(t){updraft_poplog_log_pointer=t.pointer,updraft_poplog_log_nonce=t.nonce;var e="?page=updraftplus&action=downloadlog&force_download=1&updraftplus_backup_nonce="+t.nonce;jQuery("#updraft-poplog-content").html(t.log);var a={};a[updraftlion.downloadlogfile]=function(){window.location.href=e},a[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-poplog").dialog("option","buttons",a),jQuery("#updraft-poplog").dialog("option","title","log."+t.nonce+".txt"),updraft_poplog_lastscroll=-1},{type:"GET",timeout:6e4,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-poplog-content").append(r.fatal_error_message);else{var n=e==a?a:a+" ("+e+")";jQuery("#updraft-poplog-content").append(n),console.log(t)}}})}function updraft_showlastbackup(){updraft_send_command("get_fragment","last_backup_html",function(t){response=t.output,lastbackup_laststatus==response?setTimeout(function(){updraft_showlastbackup()},7e3):jQuery("#updraft_last_backup").html(response),lastbackup_laststatus=response},{type:"GET"})}function updraft_historytimertoggle(t){updraft_historytimer&&1!=t?(clearTimeout(updraft_historytimer),updraft_historytimer=0):(updraft_updatehistory(0,0),updraft_historytimer=setInterval(function(){updraft_updatehistory(0,0)},3e4),calculated_diskspace||(updraftplus_diskspace(),calculated_diskspace=1))}function updraft_updatehistory(t,e,a){"undefined"==typeof a&&(a=jQuery("#updraft_debug_mode").is(":checked")?1:0);var r=Math.round((new Date).getTime()/1e3);if(1==t||1==e)updraft_historytimer_notbefore=r+30;else if(r<updraft_historytimer_notbefore)return void console.log("Update history skipped: "+r.toString()+" < "+updraft_historytimer_notbefore.toString());1==t&&(1==e?(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanningremote+"</em></p>")):(updraft_history_lastchecksum=!1,jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html('<p style="text-align:center;"><em>'+updraftlion.rescanning+"</em></p>")));var n=e?"remotescan":!!t&&"rescan",o={operation:n,debug:a};updraft_send_command("rescan",o,function(t){if(t.hasOwnProperty("logs_exist")&&t.logs_exist&&jQuery("#updraft_lastlogmessagerow .updraft-log-link").show(),t.hasOwnProperty("migrate_tab")&&t.migrate_tab&&(jQuery("#updraft-navtab-migrate").hasClass("nav-tab-active")||(jQuery("#updraft_migrate_tab_alt").html(""),jQuery("#updraft_migrate").replaceWith(jQuery(t.migrate_tab).find("#updraft_migrate")),setup_migrate_tabs())),t.hasOwnProperty("web_server_disk_space")&&(""==t.web_server_disk_space?(console.log("UpdraftPlus: web_server_disk_space is empty"),jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length&&jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").slideUp("slow",function(){jQuery(this).remove()})):jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").length?jQuery("#updraft-navtab-backups-content .updraft-server-disk-space").replaceWith(t.web_server_disk_space):jQuery("#updraft-navtab-backups-content .updraft-disk-space-actions").prepend(t.web_server_disk_space)),null!=t.n&&jQuery("#updraft-existing-backups-heading").html(t.n),null!=t.t){if(null!=t.cksum){if(t.cksum==updraft_history_lastchecksum)return;updraft_history_lastchecksum=t.cksum}jQuery("#updraft-navtab-backups-content .updraft_existing_backups").html(t.t),updraft_backups_selection.checkSelectionStatus(),t.data&&console.log(t.data)}})}function updraft_exclude_entity_update(t){var e=[];jQuery("#updraft_include_"+t+"_exclude_container .updraft_exclude_entity_wrapper .updraft_exclude_entity_field").each(function(){var t=jQuery.trim(jQuery(this).data("val"));""!=t&&e.push(t)}),jQuery("#updraft_include_"+t+"_exclude").val(e.join(","))}function updraft_is_unique_exclude_rule(t,e){return existing_exclude_rules_str=jQuery("#updraft_include_"+e+"_exclude").val(),existing_exclude_rules=existing_exclude_rules_str.split(","),!(jQuery.inArray(t,existing_exclude_rules)>-1)||(alert(updraftlion.duplicate_exclude_rule_error_msg),!1)}function updraft_intervals_monthly_or_not(t,e){var a="#updraft-navtab-settings-content #"+t,r=jQuery(a+" option").length,n="monthly"==e,o=!1;if(r>10&&(o=!0),n||o){if(n&&o)return void("monthly"==e&&(jQuery(".updraft_monthly_extra_words_"+t).remove(),jQuery(a).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>")));if(jQuery(".updraft_monthly_extra_words_"+t).remove(),n){updraft_interval_week_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.mdayselector).before('<span class="updraft_monthly_extra_words_'+t+'">'+updraftlion.day+" </span>").after('<span class="updraft_monthly_extra_words_'+t+'"> '+updraftlion.inthemonth+" </span>");var d=updraft_interval_month_val===!1?1:updraft_interval_month_val;d-=1,jQuery(a+" option:eq("+d+")").prop("selected",!0)}else{updraft_interval_month_val=jQuery(a+" option:selected").val(),jQuery(a).html(updraftlion.dayselector);var u=updraft_interval_week_val===!1?1:updraft_interval_week_val;jQuery(a+" option:eq("+u+")").prop("selected",!0)}}}function updraft_check_same_times(){var t=0,e=jQuery("#updraft-navtab-settings-content .updraft_interval").val();"manual"==e?jQuery("#updraft-navtab-settings-content .updraft_files_timings").hide():jQuery("#updraft-navtab-settings-content .updraft_files_timings").show(),"weekly"==e||"fortnightly"==e||"monthly"==e?(updraft_intervals_monthly_or_not("updraft_startday_files",e),jQuery("#updraft-navtab-settings-content #updraft_startday_files").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_files").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_files").hide());var a=jQuery("#updraft-navtab-settings-content .updraft_interval_database").val();"manual"==a&&(t=1,jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide()),"weekly"==a||"fortnightly"==a||"monthly"==a?(updraft_intervals_monthly_or_not("updraft_startday_db",a),jQuery("#updraft-navtab-settings-content #updraft_startday_db").show()):(jQuery(".updraft_monthly_extra_words_updraft_startday_db").remove(),jQuery("#updraft-navtab-settings-content #updraft_startday_db").hide()),a==e?(jQuery("#updraft-navtab-settings-content .updraft_db_timings").hide(),0==t?jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").show():jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide()):(jQuery("#updraft-navtab-settings-content .updraft_same_schedules_message").hide(),0==t&&jQuery("#updraft-navtab-settings-content .updraft_db_timings").show())}function updraft_activejobs_delete(t){updraft_aborted_jobs[t]=1,jQuery("#updraft-jobid-"+t).closest(".updraft_row").addClass("deleting"),updraft_send_command("activejobs_delete",t,function(e){var a=jQuery("#updraft-jobid-"+t).closest(".updraft_row");a.addClass("deleting"),"Y"==e.ok?(jQuery("#updraft-jobid-"+t).html(e.m),a.remove(),jQuery("#updraft-backupnow-inpage-modal").dialog("isOpen")&&jQuery("#updraft-backupnow-inpage-modal").dialog("close"),updraft_show_success_modal({message:updraft_active_job_is_clone(t)?updraftlion.clone_backup_aborted:updraftlion.backup_aborted,icon:"no-alt",classes:"warning"})):"N"==e.ok?(a.removeClass("deleting"),alert(e.m)):(a.removeClass("deleting"),alert(updraftlion.unexpectedresponse),console.log(e))})}function updraftplus_diskspace_entity(t){jQuery("#updraft_diskspaceused_"+t).html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:t},function(e){jQuery("#updraft_diskspaceused_"+t).html(e.output)},{type:"GET"})}function updraft_active_job_is_clone(t){return updraft_clone_jobs.filter(function(e){return e==t}).length}function updraft_iframe_modal(t,e){var a=780,r=500;jQuery("#updraft-iframe-modal-innards").html('<iframe width="100%" height="430px" src="'+ajaxurl+"?action=updraft_ajax&subaction="+t+"&nonce="+updraft_credentialtest_nonce+'"></iframe>'),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("open")}function updraft_html_modal(t,e,a,r){jQuery("#updraft-iframe-modal-innards").html(t);var n={};a<450&&(n[updraftlion.close]=function(){jQuery(this).dialog("close")}),jQuery("#updraft-iframe-modal").dialog("option","title",e).dialog("option","width",a).dialog("option","height",r).dialog("option","buttons",n).dialog("open")}function updraftplus_diskspace(){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery("#updraft-navtab-backups-content .updraft_diskspaceused").html(t.output)},{type:"GET"})}function updraftplus_deletefromserver(t,e,a){a||(a=0);var r={stage:"delete",timestamp:t,type:e,findex:a};updraft_send_command("updraft_download_backup",r,null,{action:"updraft_download_backup",nonce:updraft_download_nonce,nonce_key:"_wpnonce"})}function updraftplus_downloadstage2(t,e,a){location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"×tamp="+t+"&type="+e+"&stage=2&findex="+a+"&action=updraft_download_backup"}function updraftplus_show_contents(t,e,a){var r='<div id="updraft_zip_files_container" class="hidden-in-updraftcentral" style="clear:left;"><div id="updraft_zip_info_container" class="updraft_jstree_info_container"><p><span id="updraft_zip_path_text">'+updraftlion.zip_file_contents_info+'</span> - <span id="updraft_zip_size_text"></span></p>'+updraftlion.browse_download_link+'</div><div id="updraft_zip_files_jstree_container"><input type="search" id="zip_files_jstree_search" name="zip_files_jstree_search" placeholder="'+updraftlion.search+'"><div id="updraft_zip_files_jstree" class="updraft_jstree"></div></div></div>';updraft_html_modal(r,updraftlion.zip_file_contents,780,500),zip_files_jstree("zipbrowser",t,e,a)}function zip_files_jstree(t,e,a,r){jQuery("#updraft_zip_files_jstree").jstree({core:{multiple:!1,data:function(n,o){updraft_send_command("get_jstree_directory_nodes",{entity:t,node:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):o.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["search","sort"]}),jQuery("#updraft_zip_files_jstree").on("ready.jstree",function(t,e){jQuery("#updraft-iframe-modal").dialog("option","title",updraftlion.zip_file_contents+": "+e.instance.get_node("#").children[0])});var n=!1;jQuery("#zip_files_jstree_search").keyup(function(){n&&clearTimeout(n),n=setTimeout(function(){var t=jQuery("#zip_files_jstree_search").val();jQuery("#updraft_zip_files_jstree").jstree(!0).search(t)},250)}),jQuery("#updraft_zip_files_jstree").on("changed.jstree",function(t,e){jQuery("#updraft_zip_path_text").text(e.node.li_attr.path),e.node.li_attr.size?(jQuery("#updraft_zip_size_text").text(e.node.li_attr.size),jQuery("#updraft_zip_download_item").show()):(jQuery("#updraft_zip_size_text").text(""),jQuery("#updraft_zip_download_item").hide())}),jQuery("#updraft_zip_download_item").click(function(t){t.preventDefault();var n=jQuery("#updraft_zip_path_text").text();updraft_send_command("get_zipfile_download",{path:n,timestamp:e,type:a,findex:r},function(t){t.hasOwnProperty("error")?alert(t.error):t.hasOwnProperty("path")?location.href=ajaxurl+"?_wpnonce="+updraft_download_nonce+"×tamp="+e+"&type="+a+"&stage=2&findex="+r+"&filepath="+t.path+"&action=updraft_download_backup":alert(updraftlion.download_timeout)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})})}function remove_updraft_downloader(t,e){jQuery(t).parent().fadeOut().remove(),0==jQuery(".updraftplus_downloader_container_"+e+" .updraftplus_downloader").length&&jQuery(".updraftplus_downloader_container_"+e).remove()}function updraft_downloader(t,e,a,r,n,o,d){"string"!=typeof n&&(n=n.toString()),jQuery(".ud_downloadstatus").show();var n=n.split(","),u=o?o:e,s=jQuery("#updraft-navtab-backups-content .uddownloadform_"+a+"_"+e+"_"+n[0]).data("wp_nonce").toString();jQuery(r).append('<div class="updraftplus_downloader_container_'+a+' postbox"></div>'),jQuery(".updraftplus_downloader_container_"+a).append('<strong style="clear:left; padding: 8px; margin-top: 4px;">'+updraftlion.download+" "+a+" ("+u+"):</strong>");for(var i=0;i<n.length;i++){var l=t+e+"_"+a+"_"+n[i],p="."+l,_=parseInt(n[i]);_++;var c=0==n[i]?"":" ("+_+")";jQuery(p).length||(jQuery(".updraftplus_downloader_container_"+a).append('<div style="clear:left; padding: 8px; margin-top: 4px;" class="'+l+' updraftplus_downloader"><button onclick="remove_updraft_downloader(this, \''+a+'\');" type="button" style="float:right; margin-bottom: 8px;" class="ud_downloadstatus__close" aria-label="Close"><span class="dashicons dashicons-no-alt"></span></button><strong>'+a+c+'</strong>:<div class="raw">'+updraftlion.begunlooking+'</div><div class="file '+l+'_st"><div class="dlfileprogress" style="width: 0;"></div></div></div>'),jQuery(p).data("downloaderfor",{base:t,nonce:e,what:a,index:n[i]}),setTimeout(function(){updraft_activejobs_update(!0)},1500)),jQuery(p).data("lasttimebegan",(new Date).getTime())}d=!!d;var f={type:a,timestamp:e,findex:n},m={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:s,timeout:1e4,async:d};return updraft_send_command("updraft_download_backup",f,function(t){},m),!1}function ud_parse_json(t){t.charAt(0),t.charAt(t.length-1);try{var e=JSON.parse(t);return e}catch(a){console.log("UpdraftPlus: Exception when trying to parse JSON (1) - will attempt to fix/re-parse"),console.log(t)}var r=t.indexOf("{"),n=t.lastIndexOf("}");if(r>-1&&n>-1){var o=t.slice(r,n+1);try{var d=JSON.parse(o);return console.log("UpdraftPlus: JSON re-parse successful"),d}catch(a){throw console.log("UpdraftPlus: Exception when trying to parse JSON (2)"),a}}throw"UpdraftPlus: could not parse the JSON"}function updraft_restorer_checkstage2(t){var e=jQuery("#ud_downloadstatus2 .file").length;return e>0?void(t&&alert(updraftlion.stilldownloading)):(jQuery("#updraft-restore-modal-stage2a").html(updraftlion.processing),void updraft_send_command("restore_alldownloaded",{timestamp:jQuery("#updraft_restore_timestamp").val(),restoreopts:jQuery("#updraft_restore_form").serialize()},function(t,e,a){var r=null;jQuery("#updraft_restorer_restore_options").val("");try{if(null==t)return void jQuery("#updraft-restore-modal-stage2a").html(updraftlion.emptyresponse);
|
2 |
-
var n=t.m;if(""!=t.w&&(n=n+"<p><strong>"+updraftlion.warnings+"</strong><br>"+t.w+"</p>"),""!=t.e?n=n+"<p><strong>"+updraftlion.errors+"</strong><br>"+t.e+"</p>":updraft_restore_stage=3,t.hasOwnProperty("i")){try{if(r=ud_parse_json(t.i),r.hasOwnProperty("addui")){console.log("Further UI options are being displayed");var o=r.addui;n+='<div id="updraft_restoreoptions_ui" style="clear:left; padding-top:10px;">'+o+"</div>","object"==typeof JSON&&"function"==typeof JSON.stringify&&(delete r.addui,t.i=JSON.stringify(r))}}catch(d){console.log(d),console.log(t)}jQuery("#updraft_restorer_backup_info").val(t.i)}else jQuery("#updraft_restorer_backup_info").val();jQuery("#updraft-restore-modal-stage2a").html(n),jQuery("#updraft-restore-modal-stage2a .updraft_select2").length>0&&jQuery("#updraft-restore-modal-stage2a .updraft_select2").select2()}catch(d){console.log(a),console.log(d),jQuery("#updraft-restore-modal-stage2a").text(updraftlion.jsonnotunderstood+" "+updraftlion.errordata+": "+a).html()}},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color: red;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}}))}function updraft_downloader_status(t,e,a,r){}function updraft_downloader_status_update(t,e){var a=0;return jQuery(t).each(function(t,r){if(""!=r.base){var n=r.base+r.timestamp+"_"+r.what+"_"+r.findex,o="."+n;if(null!=r.e)jQuery(o+" .raw").html("<strong>"+updraftlion.error+"</strong> "+r.e),console.log(r);else if(null!=r.p){if(jQuery(o+"_st .dlfileprogress").width(r.p+"%"),null!=r.a&&r.a>0){var d=(new Date).getTime(),u=jQuery(o).data("lasttimebegan"),s=d-u;if(r.a>90&&s>6e4){console.log(r.timestamp+" "+r.what+" "+r.findex+": restarting download: file_age="+r.a+", sincelastrestart_ms="+s),jQuery(o).data("lasttimebegan",(new Date).getTime());var i=jQuery("#updraft-navtab-backups-content .uddownloadform_"+r.what+"_"+r.timestamp+"_"+r.findex),l={type:r.what,timestamp:r.timestamp,findex:r.findex},p={action:"updraft_download_backup",nonce_key:"_wpnonce",nonce:i.data("wp_nonce").toString(),timeout:1e4};updraft_send_command("updraft_download_backup",l,function(t){},p),jQuery(o).data("lasttimebegan",(new Date).getTime())}}if(null!=r.m)if(r.p>=100&&"udrestoredlstatus_"==r.base)jQuery(o+" .raw").html(r.m),jQuery(o).fadeOut("slow",function(){remove_updraft_downloader(this,r.what),updraft_restorer_checkstage2(0)});else if(r.p<100||"uddlstatus_"!=r.base)jQuery(o+" .raw").html(r.m);else{var _=updraftlion.fileready+" "+updraftlion.actions+': \t\t\t\t<button class="button" type="button" onclick="updraftplus_downloadstage2(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.downloadtocomputer+'</button> \t\t\t\t<button class="button" id="uddownloaddelete_'+r.timestamp+"_"+r.what+'" type="button" onclick="updraftplus_deletefromserver(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.deletefromserver+"</button>";r.hasOwnProperty("can_show_contents")&&r.can_show_contents&&(_+=' <button class="button" type="button" onclick="updraftplus_show_contents(\''+r.timestamp+"', '"+r.what+"', '"+r.findex+"')\">"+updraftlion.browse_contents+"</button>"),jQuery(o+" .raw").html(_),jQuery(o+"_st").remove()}}else null!=r.m?jQuery(o+" .raw").html(r.m):(jQuery(o+" .raw").html(updraftlion.jsonnotunderstood+" ("+e+")"),a=1)}}),a}function updraft_backupnow_go(t,e,a,r,n,o,d){var u={backupnow_nodb:t,backupnow_nofiles:e,backupnow_nocloud:a,backupnow_label:o,extradata:n};if(""!=r&&(u.onlythisfileentity=r),""!=d&&(u.onlythesetableentities=d),u.always_keep="undefined"!=typeof n.always_keep?n.always_keep:0,delete n.always_keep,!jQuery(".updraft_requeststart").length){var s=jQuery('<div class="updraft_requeststart" />').html('<span class="spinner"></span>'+updraftlion.requeststart);s.data("remove",!1),setTimeout(function(){s.data("remove",!0)},3e3),setTimeout(function(){s.remove()},75e3),jQuery("#updraft_activejobsrow").before(s)}updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",u,function(t){jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),setTimeout(function(){updraft_activejobs_update(!0)},500)})}var onlythesefileentities=backupnow_whichfiles_checked("");""==onlythesefileentities?jQuery("#backupnow_includefiles_moreoptions").show():jQuery("#backupnow_includefiles_moreoptions").hide();var updraft_restore_stage=1,lastlog_lastmessage="",lastlog_lastdata="",lastlog_jobs="",updraft_activejobs_nextupdate=(new Date).getTime()+1e3,updraft_page_is_visible=1,updraft_console_focussed_tab=updraftlion.tab,updraft_settings_form_changed=!1;window.onbeforeunload=function(t){if(updraft_settings_form_changed)return updraftlion.unsavedsettings},"undefined"!=typeof document.hidden&&document.addEventListener("visibilitychange",function(){updraft_check_page_visibility(0)},!1),updraft_check_page_visibility(1);var updraft_poplog_log_nonce,updraft_poplog_log_pointer=0,updraft_poplog_lastscroll=-1,updraft_last_forced_jobid=-1,updraft_last_forced_resumption=-1,updraft_last_forced_when=-1,updraft_backupnow_nonce="",updraft_activejobslist_backupnownonce_only=0,updraft_inpage_hasbegun=0,updraft_activejobs_update_timer,updraft_aborted_jobs=[],updraft_clone_jobs=[],updraft_backups_selection={};!function(t){updraft_backups_selection.toggle=function(e){var a=t(e);a.is(".backuprowselected")?this.deselect(e):this.select(e)},updraft_backups_selection.select=function(e){t(e).addClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!0),this.checkSelectionStatus()},updraft_backups_selection.deselect=function(e){t(e).removeClass("backuprowselected"),t(e).find(".backup-select input").prop("checked",!1),this.checkSelectionStatus()},updraft_backups_selection.selectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.select(e)})},updraft_backups_selection.deselectAll=function(){t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").each(function(t,e){updraft_backups_selection.deselect(e)})},updraft_backups_selection.checkSelectionStatus=function(){var e=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row").length,a=t("#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected").length;a>0?(t("#ud_massactions").addClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!1)):(t("#ud_massactions").removeClass("active"),t(".js--deselect-all-backups, .js--delete-selected-backups").prop("disabled",!0)),e===a?t("#cb-select-all").prop("checked",!0):t("#cb-select-all").prop("checked",!1),e?t("#ud_massactions").show():t("#ud_massactions").hide()}}(jQuery);var updraftplus_activejobs_list_fatal_error_alert=!0,updraft_historytimer=0,calculated_diskspace=0,updraft_historytimer_notbefore=0,updraft_history_lastchecksum=!1,updraft_interval_week_val=!1,updraft_interval_month_val=!1;"undefined"!=typeof updraft_siteurl&&setInterval(function(){jQuery.get(updraft_siteurl+"/wp-cron.php")},21e4);var lastlog_lastmessage="";jQuery(document).ajaxError(function(t,e,a,r){if(null!=r&&""!=r&&null!=e.responseText&&""!=e.responseText&&(console.log("Error caught by UpdraftPlus ajaxError handler (follows) for "+a.url),console.log(r),0==a.url.search(ajaxurl)))if(a.url.search("subaction=downloadstatus")>=0){var n=a.url.match(/timestamp=\d+/),o=a.url.match(/type=[a-z]+/),d=a.url.match(/findex=\d+/),u=a.url.match(/base=[a-z_]+/);if(d=d instanceof Array?parseInt(d[0].substr(7)):0,o=o instanceof Array?o[0].substr(5):"",u=u instanceof Array?u[0].substr(5):"",n=n instanceof Array?parseInt(n[0].substr(10)):0,""!=u&&""!=o&&n>0){var s=u+n+"_"+o+"_"+d;jQuery("."+s+" .raw").html("<strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode)}}else a.url.search("subaction=restore_alldownloaded")>=0&&jQuery("#updraft-restore-modal-stage2a").append("<br><strong>"+updraftlion.error+"</strong> "+updraftlion.servererrorcode+": "+r)}),jQuery(document).ready(function(t){function e(e){t('.expertmode .advanced_settings_container .advanced_tools:not(".'+e+'")').hide(),t(".expertmode .advanced_settings_container .advanced_tools."+e).fadeIn("slow"),t(".expertmode .advanced_settings_container .advanced_tools_button:not(#"+e+")").removeClass("active"),t(".expertmode .advanced_settings_container .advanced_tools_button#"+e).addClass("active")}function a(e){t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html("").hide(),updraft_send_command("updraftplus_com_login_submit",{data:e},function(e){e.hasOwnProperty("success")?t("#updraft-navtab-addons-content .wrap .updraftplus_com_login").submit():e.hasOwnProperty("error")&&t("#updraft-navtab-addons-content .wrap .updraftplus_com_login_status").html(e.message).show()})}function r(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html(e.message).show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val("");e.hasOwnProperty("tfa_enabled")&&1==e.tfa_enabled&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").focus()),"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .non_tfa_fields").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 .tfa_fields").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1 input#temporary_clone_options_two_factor_code").val(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html))}catch(a){console.log(a)}})}function n(e){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").addClass("visible"),updraft_send_command("process_updraftplus_clone_login",e,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html(e.message).show();"authenticated"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage1").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").html(e.html))}catch(a){console.log(a)}})}function o(t,e,a,r){var n={updraftplus_clone_backup:1,backupnow_nodb:0,backupnow_nofiles:0,backupnow_nocloud:0,backupnow_label:"UpdraftPlus Clone",extradata:"",onlythisfileentity:"plugins,themes,uploads,others",clone_id:t,secret_token:e,clone_url:a,key:r};updraft_activejobslist_backupnownonce_only=1,updraft_send_command("backupnow",n,function(t){jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").removeClass("visible"),jQuery("#updraft_backup_started").html(t.m),t.hasOwnProperty("nonce")&&(updraft_backupnow_nonce=t.nonce,updraft_clone_jobs.push(updraft_backupnow_nonce),updraft_inpage_success_callback=function(){jQuery("#updraft_clone_activejobsrow").hide(),updraft_aborted_jobs[updraft_backupnow_nonce]?jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_aborted):jQuery("#updraft_clone_progress").html(updraftlion.clone_backup_complete)},console.log("UpdraftPlus: ID of started job: "+updraft_backupnow_nonce)),updraft_activejobs_update(!0)})}function d(t){var e=Handlebars.compile(updraftlion.remote_storage_templates[t]),a=updraftlion.remote_storage_options[t]["default"];a.instance_id="s-"+u(32),a.instance_enabled=1;var r=e(a);jQuery(r).hide().insertAfter("."+t+"_add_instance_container:first").show("slow")}function u(t){for(var e="",a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=0;r<t;r++)e+=a.charAt(Math.floor(Math.random()*a.length));return e}function s(t){var e=!!jQuery("#updraftcentral_mothership_other").is(":checked");e?(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!1),t?jQuery("#updraftcentral_keycreate_mothership_firewalled_container").show():(jQuery(".updraftcentral_wizard_self_hosted_stage2").show(),jQuery("#updraftcentral_keycreate_mothership_firewalled_container").slideDown(),jQuery("#updraftcentral_keycreate_mothership").focus())):(jQuery("#updraftcentral_keycreate_mothership").prop("disabled",!0),t||(jQuery(".updraftcentral_wizard_self_hosted_stage2").hide(),i()))}function i(){jQuery("#updraftcentral_wizard_stage1_error").text("");var t="";if(jQuery("#updraftcentral_mothership_updraftpluscom").is(":checked"))jQuery(".updraftcentral_keycreate_description").hide(),t="updraftplus.com";else if(jQuery("#updraftcentral_mothership_other").is(":checked")){jQuery(".updraftcentral_keycreate_description").show();var e=jQuery("#updraftcentral_keycreate_mothership").val();if(""==e)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_empty_url);try{var a=new URL(e);t=a.hostname}catch(r){if("undefined"==typeof URL&&(t=jQuery("<a>").prop("href",e).prop("hostname")),!t||"undefined"!=typeof URL)return void jQuery("#updraftcentral_wizard_stage1_error").text(updraftlion.updraftcentral_wizard_invalid_url)}}jQuery("#updraftcentral_keycreate_description").val(t),jQuery(".updraftcentral_wizard_stage1").hide(),jQuery(".updraftcentral_wizard_stage2").show()}function l(e,a,r,n){jQuery("#updraft-delete-modal").dialog("close");var o=e,d=a,u=r,s=n,i=jQuery("#updraft_delete_timestamp").val().split(","),p=jQuery("#updraft_delete_form").serializeArray(),_={};t.each(p,function(){void 0!==_[this.name]?(_[this.name].push||(_[this.name]=[_[this.name]]),_[this.name].push(this.value||"")):_[this.name]=this.value||""}),_.delete_remote?jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").show():jQuery("#updraft-delete-waitwarning").find(".updraft-deleting-remote").hide(),jQuery("#updraft-delete-waitwarning").slideDown().addClass("active"),_.remote_delete_limit=updraftlion.remote_delete_limit,delete _.action,delete _.subaction,delete _.nonce,updraft_send_command("deleteset",_,function(t){if(!t.hasOwnProperty("result")||null==t.result)return void jQuery("#updraft-delete-waitwarning").slideUp();if("error"==t.result)jQuery("#updraft-delete-waitwarning").slideUp(),alert(updraftlion.error+" "+t.message);else if("continue"==t.result){o=o+t.backup_local+t.backup_remote,d+=t.backup_local,u+=t.backup_remote,s+=t.backup_sets;for(var e=t.deleted_timestamps.split(","),a=0;a<e.length;a++){var r=e[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}jQuery("#updraft_delete_timestamp").val(t.timestamps),jQuery("#updraft-deleted-files-total").text(o+" "+updraftlion.remote_files_deleted),l(o,d,u,s)}else if("success"==t.result){setTimeout(function(){jQuery("#updraft-deleted-files-total").text(""),jQuery("#updraft-delete-waitwarning").slideUp()},500),t.hasOwnProperty("count_backups")&&jQuery("#updraft-existing-backups-heading").html(updraftlion.existing_backups+' <span class="updraft_existing_backups_count">'+t.count_backups+"</span>");for(var a=0;a<i.length;a++){var r=i[a];jQuery("#updraft-navtab-backups-content .updraft_existing_backups_row_"+r).slideUp().remove()}updraft_backups_selection.checkSelectionStatus(),updraft_history_lastchecksum=!1,d+=t.backup_local,u+=t.backup_remote,s+=t.backup_sets,setTimeout(function(){alert(t.set_message+" "+s+"\n"+t.local_message+" "+d+"\n"+t.remote_message+" "+u)},900)}})}function p(t,e){jQuery("#updraft-navtab-settings-content #updraft_include_"+t).is(":checked")?e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").show():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideDown():e?jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude").hide():jQuery("#updraft-navtab-settings-content #updraft_include_"+t+"_exclude_container").slideUp()}function _(){var t=new plupload.Uploader(updraft_plupload_config);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){if(!/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-[\-a-z]+([0-9]+?)?(\.(zip|gz|gz\.crypt))?$/i.test(e.name)&&!/^log\.([0-9a-f]{12})\.txt$/.test(e.name)){for(var a=!1,r=0;r<updraft_accept_archivename.length;r++)if(updraft_accept_archivename[r].test(e.name))var a=!0;if(!a)return/\.(zip|tar|tar\.gz|tar\.bz2)$/i.test(e.name)||/\.sql(\.gz)?$/i.test(e.name)?(jQuery("#updraft-message-modal-innards").html("<p><strong>"+e.name+"</strong></p> "+updraftlion.notarchive2),jQuery("#updraft-message-modal").dialog("open")):alert(e.name+": "+updraftlion.notarchive),void t.removeFile(e)}jQuery("#filelist").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>')}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100))),e.size==e.loaded&&(jQuery("#"+e.id).html('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(parseInt(e.size*e.percent/100))+"</span>/"+plupload.formatSize(e.size)+") - "+updraftlion.complete+"</div>"),jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"))}),t.bind("Error",function(t,e){console.log(e);var a;a="-200"==e.code?"\n"+updraftlion.makesure2:updraftlion.makesure;var r=updraftlion.uploaderr+" (code "+e.code+") : "+e.message;e.hasOwnProperty("status")&&e.status&&(r+=" ("+updraftlion.http_code+" "+e.status+")"),e.hasOwnProperty("response")&&(console.log("UpdraftPlus: plupload error: "+e.response),e.response.length<100&&(r+=" "+updraftlion.error+" "+e.response+"\n")),r+=" "+a,alert(r)}),t.bind("FileUploaded",function(t,e,a){if("200"==a.status)try{resp=ud_parse_json(a.response),resp.e?alert(updraftlion.uploaderror+" "+resp.e):resp.dm?(alert(resp.dm),updraft_updatehistory(1,0)):resp.m?updraft_updatehistory(1,0):alert("Unknown server response: "+a.response)}catch(r){console.log(a),alert(updraftlion.jsonnotunderstood)}else alert("Unknown server response status: "+a.code),console.log(a)})}function c(t){params={uri:jQuery("#updraftplus_httpget_uri").val()},params.curl=t,updraft_send_command("httpget",params,function(t){t.e&&alert(t.e),t.r?jQuery("#updraftplus_httpget_results").html("<pre>"+t.r+"</pre>"):console.log(t)},{type:"GET"})}function f(t,e,a){updraft_restore_setoptions(t),jQuery("#updraft_restore_timestamp").val(e),jQuery(".updraft_restore_date").html(a),updraft_restore_stage=1,jQuery("#updraft-restore-modal").dialog("open"),jQuery("#updraft-restore-modal-stage1").show(),jQuery("#updraft-restore-modal-stage2").hide(),jQuery("#updraft-restore-modal-stage2a").html(""),updraft_activejobs_update(!0)}function m(t){t=t.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var e="[\\?&]"+t+"=([^&#]*)",a=new RegExp(e),r=a.exec(window.location.href);return null==r?"":decodeURIComponent(r[1].replace(/\+/g," "))}function g(e,a,r){jQuery("#updraft_upload_timestamp").val(e),jQuery("#updraft_upload_nonce").val(a);var n=r.split(",");jQuery(".updraft_remote_storage_destination").each(function(e){var a=jQuery(this).val();if(jQuery.inArray(a,n)==-1){jQuery(this).prop("checked",!1),jQuery(this).prop("disabled",!0);var r=t(this).prop("labels");jQuery(r).append(" "+updraftlion.already_uploaded)}}),jQuery("#updraft-upload-modal").dialog("open")}if(t(".expertmode .advanced_settings_container .advanced_tools_button").click(function(){e(t(this).attr("id"))}),jQuery.ui&&jQuery.ui.dialog&&jQuery.ui.dialog.prototype._allowInteraction){var h=jQuery.ui.dialog.prototype._allowInteraction;jQuery.ui.dialog.prototype._allowInteraction=function(t){return!!jQuery(t.target).closest(".select2-dropdown").length||h.apply(this,arguments)}}t("#updraftcentral_keys").on("click","a.updraftcentral_keys_show",function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keys_table").slideDown()}),t("#updraftcentral_keycreate_altmethod_moreinfo_get").click(function(e){e.preventDefault(),t(this).remove(),t("#updraftcentral_keycreate_altmethod_moreinfo").slideDown()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("change keyup paste",".updraft_webdav_settings",function(){var e=[];t(".updraft_webdav_settings").each(function(a,r){var n=t(r).attr("id");if(n&&"updraft_webdav_"==n.substring(0,15)){var o=n.substring(15);id_split=o.split("_"),o=id_split[0];var d=id_split[1];"undefined"==typeof e[d]&&(e[d]=[]),e[d][o]=this.value}});var a="",r="@",n="/",o=":",d=":";for(var u in e)(e[u].host.indexOf("@")>=0||""===e[u].host)&&(r=""),e[u].host.indexOf("/")>=0?t("#updraft_webdav_host_error").show():t("#updraft_webdav_host_error").hide(),0!=e[u].path.indexOf("/")&&""!==e[u].path||(n=""),""!==e[u].user&&""!==e[u].pass||(o=""),""!==e[u].host&&""!==e[u].port||(d=""),a=e[u].webdav+e[u].user+o+e[u].pass+r+encodeURIComponent(e[u].host)+d+e[u].port+n+e[u].path,t("#updraft_webdav_url_"+u).val(a)}),t("#updraft-navtab-backups-content").on("click",".js--delete-selected-backups",function(t){t.preventDefault(),updraft_deleteallselected()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .backup-select input",function(e){updraft_backups_selection.toggle(t(this).closest(".updraft_existing_backups_row"))}),t("#updraft-navtab-backups-content").on("click","#cb-select-all",function(e){t(this).is(":checked")?updraft_backups_selection.selectAll():updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".js--select-all-backups",function(t){updraft_backups_selection.selectAll()}),t("#updraft-navtab-backups-content").on("click",".js--deselect-all-backups",function(t){updraft_backups_selection.deselectAll()}),t("#updraft-navtab-backups-content").on("click",".updraft_existing_backups .updraft_existing_backups_row",function(t){(t.ctrlKey||t.metaKey)&&updraft_backups_selection.toggle(this)}),updraft_backups_selection.checkSelectionStatus(),t("#updraft-navtab-addons-content .wrap").on("click",".updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,d={email:r,password:n,auto_update:o};a(d)}),t("#updraft-navtab-addons-content .wrap").on("keydown",".updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var r=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_email").val(),n=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_password").val(),o=t("#updraft-navtab-addons-content .wrap .updraftplus_com_login #updraftplus-addons_options_auto_updates").is(":checked")?1:0,d={email:r,password:n,auto_update:o};a(d)}}),t("#updraft-navtab-migrate-content").on("click",".updraftclone_show_step_1",function(e){t(".updraftplus-clone").addClass("opened"),t(".updraftclone_show_step_1").hide(),t(".updraft_migrate_widget_temporary_clone_stage1").show(),t(".updraft_migrate_widget_temporary_clone_stage0").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_temporary_clone_show_stage0",function(e){e.preventDefault(),t(".updraft_migrate_widget_temporary_clone_stage0").toggle()}),setup_migrate_tabs(),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .close",function(e){t(".updraft_migrate_intro").show(),t(this).closest(".updraft_migrate_widget_module_content").hide()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_add_site--trigger",function(e){e.preventDefault(),t(".updraft_migrate_add_site").toggle()}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_login .ud_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,u={form_data:{email:a,password:n,two_factor_code:o,consent:d}};a&&n?r(u):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_login input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_email").val(),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_password").val(),o=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login #temporary_clone_options_two_factor_code").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login .temporary_clone_terms_and_conditions").is(":checked")?1:0,u={form_data:{email:a,password:n,two_factor_code:o,consent:d}};a&&n?r(u):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_login_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.username_password_required).show()}}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content .updraftplus_com_key .ud_key_connectsubmit",function(e){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:r}};a?n(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}),t("#updraft-navtab-migrate-content").on("keydown",".updraft_migrate_widget_module_content .updraftplus_com_key input",function(e){if(13==e.which){e.preventDefault();var a=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key #temporary_clone_options_key").val(),r=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key .temporary_clone_terms_and_conditions").is(":checked")?1:0,o={form_data:{clone_key:a,consent:r}};a?n(o):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_com_key_status").html("<b>"+updraftlion.error+"</b> "+updraftlion.clone_key_required).show()}}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_php_options",function(){var e=t(this).data("php_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("change",".updraft_migrate_widget_module_content #updraftplus_clone_wp_options",function(){var e=t(this).data("wp_version"),a=t(this).val();a<e?t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.clone_version_warning):t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html("")}),t("#updraft-navtab-migrate-content").on("click",".updraft_migrate_widget_module_content #updraft_migrate_createclone",function(e){e.preventDefault(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!0),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(""),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").addClass("visible");var a=t(this).data("clone_id"),r=t(this).data("secret_token"),n=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_php_options").val(),d=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_wp_options").val(),u=t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraftplus_clone_region_options").val(),s=t(".updraftplus_clone_admin_login_options").is(":checked"),i={
|
3 |
-
form_data:{clone_id:a,secret_token:r,install_info:{php_version:n,wp_version:d,region:u,admin_only:s}}};updraft_send_command("process_updraftplus_clone_create",i,function(e){try{if(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_spinner.spinner").removeClass("visible"),e.hasOwnProperty("status")&&"error"==e.status)return void t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraftplus_clone_status").html(updraftlion.error+" "+e.message).show();"success"===e.status&&(t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage2").hide(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").show(),t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content .updraft_migrate_widget_temporary_clone_stage3").html(e.html),jQuery("#updraft_clone_progress .updraftplus_spinner.spinner").addClass("visible"),o(a,r,e.url,e.key))}catch(n){t("#updraft-navtab-migrate-content .updraft_migrate_widget_module_content #updraft_migrate_createclone").prop("disabled",!1),console.log("Error when processing the response of process_updraftplus_clone_create (as follows)"),console.log(n)}})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_add_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method");d(a)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod a.updraft_delete_instance",function(e){e.preventDefault(),updraft_settings_form_changed=!0;var a=t(this).data("method"),r=t(this).data("instance_id");1===t("."+a+"_updraft_remote_storage_border").length&&d(a),t("."+a+"-"+r).hide("slow",function(){t(this).remove()})}),t("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).find("span").hide(),t(this).attr("contentEditable",!0).focus()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keyup",".updraftplusmethod .updraft_edit_label_instance",function(e){var a=jQuery(this).data("method"),r=jQuery(this).data("instance_id"),n=jQuery(this).text();t("#updraft_"+a+"_instance_label_"+r).val(n)}),t("#updraft-navtab-settings-content #remote-storage-holder").on("blur",".updraftplusmethod .updraft_edit_label_instance",function(e){t(this).attr("contentEditable",!1),t(this).find("span").show()}),t("#updraft-navtab-settings-content #remote-storage-holder").on("keypress",".updraftplusmethod .updraft_edit_label_instance",function(e){13===e.which&&(t(this).attr("contentEditable",!1),t(this).find("span").show(),t(this).blur())}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("change","input[class='updraft_instance_toggle']",function(){updraft_settings_form_changed=!0,jQuery(this).is(":checked")?jQuery(this).siblings("label").html(updraftlion.instance_enabled):jQuery(this).siblings("label").html(updraftlion.instance_disabled)}),jQuery("#updraft-navtab-settings-content #remote-storage-holder").on("click",".updraftplusmethod button.updraft-test-button",function(){var e=jQuery(this).data("method"),a=jQuery(this).data("instance_id");updraft_remote_storage_test(e,function(r,n,o){return"sftp"==e&&(o.hasOwnProperty("scp")&&o.scp?alert(updraftlion.settings_test_result.replace("%s","SCP")+" "+r.output):alert(updraftlion.settings_test_result.replace("%s","SFTP")+" "+r.output),r.hasOwnProperty("data")&&r.data&&r.data.hasOwnProperty("valid_md5_fingerprint")&&r.data.valid_md5_fingerprint&&t("#updraft_sftp_fingerprint_"+a).val(r.data.valid_md5_fingerprint),!0)},a)}),t("#updraft-navtab-settings-content select.updraft_interval, #updraft-navtab-settings-content select.updraft_interval_database").change(function(){updraft_check_same_times()}),t("#backupnow_includefiles_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_includefiles_moreoptions").toggle()}),t("#backupnow_database_showmoreoptions").click(function(e){e.preventDefault(),t("#backupnow_database_moreoptions").toggle()}),t("#updraft-navtab-backups-content").on("click","a.updraft_diskspaceused_update",function(t){t.preventDefault(),updraftplus_diskspace()}),t(".advanced_settings_content a.updraft_diskspaceused_update").click(function(t){t.preventDefault(),jQuery(".advanced_settings_content .updraft_diskspaceused").html("<em>"+updraftlion.calculating+"</em>"),updraft_send_command("get_fragment",{fragment:"disk_usage",data:"updraft"},function(t){jQuery(".advanced_settings_content .updraft_diskspaceused").html(t.output)},{type:"GET"})}),t("#updraft-navtab-backups-content a.updraft_uploader_toggle").click(function(e){e.preventDefault(),t("#updraft-plupload-modal").slideToggle()}),t("#updraft-navtab-backups-content a.updraft_rescan_local").click(function(t){t.preventDefault(),updraft_updatehistory(1,0)}),t("#updraft-navtab-backups-content a.updraft_rescan_remote").click(function(t){t.preventDefault(),updraft_updatehistory(1,1)}),t("#updraftplus-remote-rescan-debug").click(function(t){t.preventDefault(),updraft_updatehistory(1,1,1)}),jQuery("#updraftcentral_keys").on("click",'input[type="radio"]',function(){s(!1)}),s(!0),jQuery("#updraftcentral_keys").on("click","#updraftcentral_view_log",function(t){t.preventDefault(),jQuery("#updraftcentral_view_log_container").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.fetching+"</div>"});try{updraft_send_command("updraftcentral_get_log",null,function(t){jQuery("#updraftcentral_view_log_container").unblock(),t.hasOwnProperty("log_contents")?jQuery("#updraftcentral_view_log_contents").html('<div style="border:1px solid;padding: 2px;max-height: 400px; overflow-y:scroll;">'+t.log_contents+"</div>"):console.response(resp)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_view_log_container").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(e){jQuery("#updraft_central_key").html(),console.log(e)}}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_wizard_go",function(t){jQuery("#updraftcentral_wizard_go").hide(),jQuery(".updraftcentral_wizard_success").remove(),jQuery(".create_key_container").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage1_go",function(t){t.preventDefault(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery(".updraftcentral_wizard_stage1").show()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_stage2_go",function(t){t.preventDefault(),i()}),jQuery("#updraftcentral_keys").on("click","#updraftcentral_keycreate_go",function(t){t.preventDefault();var e=!!jQuery("#updraftcentral_mothership_other").is(":checked"),a=jQuery("#updraftcentral_keycreate_description").val(),r=jQuery("#updraftcentral_keycreate_keysize").val(),n="__updraftpluscom";if(data={key_description:a,key_size:r},e&&(n=jQuery("#updraftcentral_keycreate_mothership").val(),"http"!=n.substring(0,4)))return void alert(updraftlion.enter_mothership_url);data.mothership_firewalled=jQuery("#updraftcentral_keycreate_mothership_firewalled").is(":checked")?1:0,data.where_send=n,jQuery(".create_key_container").hide(),jQuery(".updraftcentral_wizard_stage1").show(),jQuery(".updraftcentral_wizard_stage2").hide(),jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.creating_please_allow+"</div>"});try{updraft_send_command("updraftcentral_create_key",data,function(t){jQuery("#updraftcentral_keys").unblock();try{if(t.hasOwnProperty("error"))return alert(t.error),void console.log(t);alert(t.r),t.hasOwnProperty("bundle")&&t.hasOwnProperty("keys_guide")?(jQuery("#updraftcentral_keys_content").html(t.keys_guide),jQuery("#updraftcentral_keys_content").append('<div class="updraftcentral_wizard_success">'+t.r+'<br><textarea onclick="this.select();" style="width:620px; height:165px; word-wrap:break-word; border: 1px solid #aaa; border-radius: 3px; padding:4px;">'+t.bundle+"</textarea></div>")):console.log(t),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").append(t.keys_table),jQuery("#updraftcentral_wizard_go").show()}catch(e){alert(updraftlion.unexpectedresponse+" "+response),console.log(e)}},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}})}catch(o){jQuery("#updraft_central_key").html(),console.log(o)}}),jQuery("#updraftcentral_keys").on("click",".updraftcentral_key_delete",function(t){t.preventDefault();var e=jQuery(this).data("key_id");return"undefined"==typeof e?void console.log("UpdraftPlus: .updraftcentral_key_delete clicked, but no key ID found"):(jQuery("#updraftcentral_keys").block({message:'<div style="margin: 8px; font-size:150%;"><img src="'+updraftlion.ud_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.deleting+"</div>"}),void updraft_send_command("updraftcentral_delete_key",{key_id:e},function(t){jQuery("#updraftcentral_keys").unblock(),t.hasOwnProperty("keys_table")&&jQuery("#updraftcentral_keys_content").html(t.keys_table)},{error_callback:function(t,e,a,r){if(jQuery("#updraftcentral_keys").unblock(),"undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";console.log(n),alert(n),console.log(t)}}}))}),jQuery("#updraft_reset_sid").click(function(t){t.preventDefault(),updraft_send_command("reset_site_id",null,function(t){jQuery("#updraft_show_sid").html(t)},{json_parse:!1})}),jQuery("#updraft-navtab-settings-content form input:not('.udignorechange'), #updraft-navtab-settings-content form select").change(function(t){updraft_settings_form_changed=!0}),jQuery("#updraft-navtab-settings-content form input[type='submit']").click(function(t){updraft_settings_form_changed=!1});var y=180;jQuery(".updraft-bigbutton").each(function(t,e){var a=jQuery(e).width();a>y&&(y=a)}),y>180&&jQuery(".updraft-bigbutton").width(y),jQuery("#updraft-navtab-backups-content").length&&setInterval(function(){updraft_activejobs_update(!1)},1250),setTimeout(function(){jQuery("#setting-error-settings_updated").slideUp()},5e3),jQuery("#updraft_restore_db").change(function(){jQuery("#updraft_restore_db").is(":checked")&&1==jQuery(this).data("encrypted")?jQuery("#updraft_restorer_dboptions").slideDown():jQuery("#updraft_restorer_dboptions").slideUp()}),updraft_check_same_times();var b={};b[updraftlion.close]=function(){jQuery(this).dialog("close")},jQuery("#updraft-message-modal").dialog({autoOpen:!1,height:350,width:520,modal:!0,buttons:b});var v={};v[updraftlion.deletebutton]=function(){l(0,0,0,0)},v[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-delete-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:v});var w={};w[updraftlion.restore]=function(){var t=0,e=[],a=0,r=jQuery("#updraft_restore_meta_foreign").val();if(jQuery('input[name="updraft_restore[]"]').each(function(n,o){if(jQuery(o).is(":checked")&&!jQuery(o).is(":disabled")){t=1;var d=jQuery(o).data("howmany"),u=jQuery(o).val();if((1==r||2==r&&"db"!=u)&&("wpcore"!=u&&(d=jQuery("#updraft_restore_form #updraft_restore_wpcore").data("howmany")),u="wpcore"),"wpcore"!=u||0==a){var s=[u,d];e.push(s),"wpcore"==u&&(a=1)}}}),1==t){if(1==updraft_restore_stage){jQuery("#updraft-restore-modal-stage1").slideUp("slow"),jQuery("#updraft-restore-modal-stage2").show(),updraft_restore_stage=2;var n=jQuery(".updraft_restore_date").first().text(),o=e,d=jQuery("#updraft_restore_timestamp").val();try{updraft_send_command("whichdownloadsneeded",{downloads:e,timestamp:d},function(t){if(t.hasOwnProperty("downloads")&&(console.log("UpdraftPlus: items which still require downloading follow"),o=t.downloads,console.log(o)),0==o.length)updraft_restorer_checkstage2(0);else for(var e=0;e<o.length;e++)updraft_downloader("udrestoredlstatus_",d,o[e][0],"#ud_downloadstatus2",o[e][1],n,!1)},{alert_on_error:!1,error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft-restore-modal-stage2a").html('<p style="color:red;">'+r.fatal_error_message+"</p>");else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft-restore-modal-stage2a").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),console.log(t)}}})}catch(u){console.log("UpdraftPlus: error (follows) when looking for items needing downloading"),console.log(u),alert(updraftlion.jsonnotunderstood)}}else if(2==updraft_restore_stage)updraft_restorer_checkstage2(1);else if(3==updraft_restore_stage){var s=1;if(jQuery("#updraft_restoreoptions_ui input.required").each(function(t){if(0!=s){var e=jQuery(this).val();if(""==e)alert(updraftlion.pleasefillinrequired),s=0;else if(""!=jQuery(this).attr("pattern")){var a=jQuery(this).attr("pattern"),r=new RegExp(a,"g");r.test(e)||(alert(jQuery(this).data("invalidpattern")),s=0)}}}),!s)return;var i=jQuery("#updraft_restoreoptions_ui select, #updraft_restoreoptions_ui input").serialize();console.log("Restore options: "+i),jQuery("#updraft_restorer_restore_options").val(i),jQuery("#updraft-restore-modal-stage2a").html(updraftlion.restore_proceeding),jQuery("#updraft_restore_form").submit(),updraft_restore_stage=4}}else alert(updraftlion.youdidnotselectany)},w[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-restore-modal").dialog({autoOpen:!1,height:505,width:590,modal:!0,buttons:w}),jQuery("#updraft-iframe-modal").dialog({autoOpen:!1,height:500,width:780,modal:!0}),jQuery("#updraft-backupnow-inpage-modal").dialog({autoOpen:!1,height:380,width:580,modal:!0});var j={};j[updraftlion.backupnow]=function(){var t=jQuery("#backupnow_includedb").is(":checked")?0:1,e=jQuery("#backupnow_includefiles").is(":checked")?0:1,a=jQuery("#backupnow_includecloud").is(":checked")?0:1,r=backupnow_whichtables_checked(""),n=jQuery("#always_keep").is(":checked")?1:0;if(""==r&&0==t)return alert(updraftlion.notableschosen),void jQuery("#backupnow_includefiles_moreoptions").show();"boolean"==typeof r&&(r=null);var o=backupnow_whichfiles_checked("");return""==o&&0==e?(alert(updraftlion.nofileschosen),void jQuery("#backupnow_includefiles_moreoptions").show()):t&&e?void alert(updraftlion.excludedeverything):(jQuery(this).dialog("close"),setTimeout(function(){jQuery("#updraft_lastlogmessagerow").fadeOut("slow",function(){jQuery(this).fadeIn("slow")})},1700),void updraft_backupnow_go(t,e,a,o,{always_keep:n},jQuery("#backupnow_label").val(),r))},j[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-backupnow-modal").dialog({autoOpen:!1,height:472,width:610,modal:!0,buttons:j,create:function(){t(this).closest(".ui-dialog").find(".ui-dialog-buttonpane .ui-button:first").addClass("js-tour-backup-now-button")}}),jQuery("#updraft-poplog").dialog({autoOpen:!1,height:600,width:"75%",modal:!0}),jQuery("#updraft-navtab-settings-content .enableexpertmode").click(function(){return jQuery("#updraft-navtab-settings-content .expertmode").fadeIn(),jQuery("#updraft-navtab-settings-content .enableexpertmode").off("click"),!1}),jQuery("#updraft-navtab-settings-content .backupdirrow").on("click","a.updraft_backup_dir_reset",function(){return jQuery("#updraft_dir").val("updraft"),!1}),jQuery("#updraft-navtab-settings-content .updraft_include_entity").click(function(){var t=jQuery(this).data("toggle_exclude_field");t&&p(t,!1)}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_delete",function(t){if(t.preventDefault(),confirm(updraftlion.exclude_rule_remove_conformation_msg)){var e=jQuery(this).data("include-backup-file");jQuery.when(jQuery(this).closest(".updraft_exclude_entity_wrapper").remove()).then(updraft_exclude_entity_update(e))}}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_edit",function(t){t.preventDefault();var e=jQuery(this).hide().closest(".updraft_exclude_entity_wrapper"),a=e.find("input");a.removeProp("readonly").focus();var r=a.val();a.val(""),a.val(r),e.find(".updraft_exclude_entity_update").addClass("is-active").show()}),jQuery(".updraft_exclude_entity_container").on("click",".updraft_exclude_entity_update",function(t){t.preventDefault();var e=jQuery(this).closest(".updraft_exclude_entity_wrapper"),a=jQuery(this).data("include-backup-file"),r=jQuery.trim(e.find("input").val()),n=!1;r==e.find("input").data("val")?n=!0:updraft_is_unique_exclude_rule(r,a)&&(n=!0),n&&(jQuery(this).hide().removeClass("is-active"),jQuery.when(e.find("input").prop("readonly","readonly").data("val",r)).then(function(){e.find(".updraft_exclude_entity_edit").show(),updraft_exclude_entity_update(a)}))}),jQuery("#updraft_exclude_modal").dialog({autoOpen:!1,modal:!0,width:520,height:"auto",open:function(e,a){t(this).parent().focus()}}),jQuery(".updraft_exclude_container .updraft_add_exclude_item").click(function(t){t.preventDefault();var e=jQuery(this).data("include-backup-file");jQuery("#updraft_exclude_modal_for").val(e),jQuery("#updraft_exclude_modal_path").val(jQuery(this).data("path")),"uploads"==e&&jQuery("#updraft-exclude-file-dir-prefix").html(jQuery("#updraft-exclude-upload-base-dir").val()),jQuery(".updraft-exclude-modal-reset").trigger("click"),jQuery("#updraft_exclude_modal").dialog("open")}),jQuery(".updraft-exclude-link").click(function(t){t.preventDefault();var e=jQuery(this).data("panel");"file-dir"==e&&jQuery("#updraft_exclude_files_folders_jstree").jstree({core:{multiple:!1,data:function(t,e){updraft_send_command("get_jstree_directory_nodes",{entity:"filebrowser",node:t,path:jQuery("#updraft_exclude_modal_path").val(),findex:0,skip_root_node:!0},function(t){t.hasOwnProperty("error")?alert(t.error):e.call(this,t.nodes)},{error_callback:function(t,e,a,r){if("undefined"!=typeof r&&r.hasOwnProperty("fatal_error"))console.error(r.fatal_error_message),jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+r.fatal_error_message+"</p>"),alert(r.fatal_error_message);else{var n="updraft_send_command: error: "+e+" ("+a+")";jQuery("#updraft_zip_files_jstree").html('<p style="color:red; margin: 5px;">'+n+"</p>"),console.log(n),alert(n),console.log(t)}}})},error:function(t){alert(t),console.log(t)}},search:{show_only_matches:!0},plugins:["sort"]}),jQuery("#updraft_exclude_modal_main").slideUp(),jQuery(".updraft-exclude-panel").hide(),jQuery(".updraft-exclude-panel[data-panel="+e+"]").slideDown()}),jQuery(".updraft-exclude-modal-reset").click(function(t){t.preventDefault(),jQuery("#updraft_exclude_files_folders_jstree").jstree("destroy"),jQuery("#updraft_exclude_extension_field").val(""),jQuery("#updraft_exclude_prefix_field").val(""),jQuery(".updraft-exclude-panel").slideUp(),jQuery("#updraft_exclude_modal_main").slideDown()}),jQuery(".updraft-exclude-submit").click(function(){var t=jQuery(this).data("panel"),e="";switch(t){case"file-dir":var a=jQuery("#updraft_exclude_files_folders_jstree").jstree("get_selected");if(0==a.length)return void alert(updraftlion.exclude_select_file_or_folder_msg);var r=a[0],n=jQuery("#updraft_exclude_modal_path").val();r.substr(0,n.length)==n&&(r=r.substr(n.length,r.length)),"/"==r.charAt(0)&&(r=r.substr(1)),"/"==r.charAt(r.length-1)&&(r=r.substr(0,r.length-1)),e=r;break;case"extension":var o=jQuery("#updraft_exclude_extension_field").val();if(""==o)return void alert(updraftlion.exclude_type_ext_msg);if(!o.match(/^[0-9a-zA-Z]+$/))return void alert(updraftlion.exclude_ext_error_msg);e="ext:"+o;break;case"begin-with":var d=jQuery("#updraft_exclude_prefix_field").val();if(""==d)return void alert(updraftlion.exclude_type_prefix_msg);if(!d.match(/^\s*[a-z-_\d,\s]+\s*$/i))return void alert(updraftlion.exclude_prefix_error_msg);e="prefix:"+d;break;default:return}var u=jQuery("#updraft_exclude_modal_for").val();if(updraft_is_unique_exclude_rule(e,u)){var s='<div class="updraft_exclude_entity_wrapper"><input type="text" class="updraft_exclude_entity_field updraft_include_'+u+'_exclude_entity" name="updraft_include_'+u+'_exclude_entity[]" value="'+e+'" data-val="'+e+'" data-include-backup-file="'+u+'" readonly="readonly"><a href="#" class="updraft_exclude_entity_edit dashicons dashicons-edit" data-include-backup-file="'+u+'"></a><a href="#" class="updraft_exclude_entity_update dashicons dashicons-yes" data-include-backup-file="'+u+'" style="display: none;"></a><a href="#" class="updraft_exclude_entity_delete dashicons dashicons-no" data-include-backup-file="'+u+'"></a></div>';jQuery('.updraft_exclude_entity_container[data-include-backup-file="'+u+'"]').append(s),updraft_exclude_entity_update(u),jQuery("#updraft_exclude_modal").dialog("close")}}),jQuery("#updraft-navtab-settings-content .updraft-service").change(function(){var t=jQuery(this).val();jQuery("#updraft-navtab-settings-content .updraftplusmethod").hide(),jQuery("#updraft-navtab-settings-content ."+t).show()}),jQuery("#updraft-navtab-settings-content a.updraft_show_decryption_widget").click(function(t){t.preventDefault(),jQuery("#updraftplus_db_decrypt").val(jQuery("#updraft_encryptionphrase").val()),jQuery("#updraft-manualdecrypt-modal").slideToggle()}),jQuery("#updraftplus-phpinfo").click(function(t){t.preventDefault(),updraft_iframe_modal("phpinfo",updraftlion.phpinfo)}),jQuery("#updraftplus-rawbackuphistory").click(function(t){t.preventDefault(),updraft_iframe_modal("rawbackuphistory",updraftlion.raw)}),jQuery("#updraft-navtab-status").click(function(t){t.preventDefault(),updraft_open_main_tab("status"),updraft_page_is_visible=1,updraft_console_focussed_tab="status",updraft_activejobs_update(!0)}),jQuery("#updraft-navtab-expert").click(function(t){t.preventDefault(),updraft_open_main_tab("expert"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-settings, #updraft-navtab-settings2, #updraft_backupnow_gotosettings").click(function(t){t.preventDefault(),jQuery(this).parents(".updraftmessage").remove(),jQuery("#updraft-backupnow-modal").dialog("close"),updraft_open_main_tab("settings"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-addons").click(function(t){t.preventDefault(),jQuery(this).addClass("b#nav-tab-active"),updraft_open_main_tab("addons"),updraft_page_is_visible=1}),jQuery("#updraft-navtab-backups").click(function(t){t.preventDefault(),updraft_console_focussed_tab="backups",updraft_historytimertoggle(1),updraft_open_main_tab("backups")}),jQuery("#updraft-navtab-migrate").click(function(t){t.preventDefault(),jQuery("#updraft_migrate_tab_alt").html("").hide(),updraft_open_main_tab("migrate"),updraft_page_is_visible=1,jQuery("#updraft_migrate .updraft_migrate_widget_module_content").is(":visible")||jQuery(".updraft_migrate_intro").show()}),"migrate"==updraftlion.tab&&jQuery("#updraft-navtab-migrate").trigger("click"),updraft_send_command("ping",null,function(t,e){"success"==e&&"pong"!=t&&t.indexOf("pong")>=0&&(jQuery("#updraft-navtab-backups-content .ud-whitespace-warning").show(),console.log("UpdraftPlus: Extra output warning: response (which should be just (string)'pong') follows."),console.log(t))},{json_parse:!1,type:"GET"});try{"undefined"!=typeof updraft_plupload_config&&_()}catch(k){console.log(k)}if(jQuery("#updraftplus_httpget_go").click(function(t){t.preventDefault(),c(0)}),jQuery("#updraftplus_httpget_gocurl").click(function(t){t.preventDefault(),c(1)}),jQuery("#updraftplus_callwpaction_go").click(function(t){t.preventDefault(),params={wpaction:jQuery("#updraftplus_callwpaction").val()},updraft_send_command("call_wordpress_action",params,function(t){t.e?alert(t.e):t.s||(t.r?jQuery("#updraftplus_callwpaction_results").html(t.r):(console.log(t),alert(updraftlion.jsonnotunderstood)))})}),jQuery("#updraft_activejobs_table, #updraft-navtab-migrate-content").on("click",".updraft_jobinfo_delete",function(e){e.preventDefault();var a=jQuery(this).data("jobid");a?(t(this).addClass("disabled"),updraft_activejobs_delete(a)):console.log("UpdraftPlus: A stop job link was clicked, but the Job ID could not be found")}),jQuery("#updraft_activejobs_table, #updraft-navtab-backups-content .updraft_existing_backups, #updraft-backupnow-inpage-modal, #updraft-navtab-migrate-content").on("click",".updraft-log-link",function(t){t.preventDefault();var e=jQuery(this).data("jobid");e?updraft_popuplog(e):console.log("UpdraftPlus: A log link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.choose-components-button",function(t){var e=jQuery(this).data("entities"),a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("showdata");f(e,a,r)}),"initiate_restore"==m("udaction")){var Q=m("entities"),x=m("backup_timestamp"),O=m("showdata");f(Q,x,O)}var P={};P[updraftlion.uploadbutton]=function(){var t=jQuery("#updraft_upload_timestamp").val(),e=jQuery("#updraft_upload_nonce").val(),a="",r=!1;return jQuery(".updraft_remote_storage_destination").each(function(t){jQuery(this).is(":checked")&&(r=!0)}),r?(a=jQuery("input[name^='updraft_remote_storage_destination_']").serializeArray(),jQuery(this).dialog("close"),alert(updraftlion.local_upload_started),void updraft_send_command("upload_local_backup",{use_nonce:e,use_timestamp:t,services:a},function(t){})):void jQuery("#updraft-upload-modal-error").html(updraftlion.local_upload_error)},P[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-upload-modal").dialog({autoOpen:!1,height:322,width:430,modal:!0,buttons:P}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft-upload-link",function(t){t.preventDefault();var e=jQuery(this).data("nonce").toString(),a=jQuery(this).data("key").toString(),r=jQuery(this).data("services").toString();e?g(a,e,r):console.log("UpdraftPlus: A upload link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click",".updraft-delete-link",function(t){t.preventDefault();var e=jQuery(this).data("hasremote"),a=jQuery(this).data("nonce").toString(),r=jQuery(this).data("key").toString();a?updraft_delete(r,a,e):console.log("UpdraftPlus: A delete link was clicked, but the Job ID could not be found")}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("click","button.updraft_download_button",function(t){t.preventDefault();var e="uddlstatus_",a=jQuery(this).data("backup_timestamp"),r=jQuery(this).data("what"),n=".ud_downloadstatus",o=jQuery(this).data("set_contents"),d=jQuery(this).data("prettydate"),u=!0;updraft_downloader(e,a,r,n,o,d,u)}),jQuery("#updraft-navtab-backups-content .updraft_existing_backups").on("dblclick",".updraft_existingbackup_date",function(t){t.preventDefault();var e=jQuery(this).data("rawbackup");null!=e&&""!=e&&updraft_html_modal(e,updraftlion.raw,780,500)})}),jQuery(document).ready(function(t){var e="#updraft-navtab-settings-content ";t(e+"#remote-storage-holder").on("click",".updraftvault_backtostart",function(a){a.preventDefault(),t(e+"#updraftvault_settings_showoptions").slideUp(),t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").slideUp(),t(e+"#updraftvault_settings_default").slideDown()}),t(e).on("keypress","#updraftvault_settings_connect input",function(a){if(13==a.which)return t(e+"#updraftvault_connect_go").click(),!1}),t(e+"#remote-storage-holder").on("click","#updraftvault_recountquota",function(a){a.preventDefault(),t(e+"#updraftvault_recountquota").html(updraftlion.counting);try{updraft_send_command("vault_recountquota",{instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html),a.hasOwnProperty("connected")&&(a.connected?(t(e+"#updraftvault_settings_default").hide(),t(e+"#updraftvault_settings_connected").show()):(t(e+"#updraftvault_settings_connected").hide(),t(e+"#updraftvault_settings_default").show())))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}})}catch(r){t(e+"#updraftvault_recountquota").html(updraftlion.updatequotacount),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_disconnect",function(a){a.preventDefault(),t(e+"#updraftvault_disconnect").html(updraftlion.disconnecting);try{updraft_send_command("vault_disconnect",{immediate_echo:!0,instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),a.hasOwnProperty("html")&&(t(e+"#updraftvault_settings_connected").html(a.html).slideUp(),t(e+"#updraftvault_settings_default").slideDown())},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}})}catch(r){t(e+"#updraftvault_disconnect").html(updraftlion.disconnect),console.log(r)}}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_connect").slideDown()}),t(e+"#remote-storage-holder").on("click","#updraftvault_showoptions",function(a){a.preventDefault(),t(e+"#updraftvault_settings_default").slideUp(),t(e+"#updraftvault_settings_showoptions").slideDown()}),t("#remote-storage-holder").on("keyup",".updraftplus_onedrive_folder_input",function(e){var a=t(this).val(),r=t(this).closest("td");0==a.indexOf("https:")||0==a.indexOf("http:")?r.find(".onedrive_folder_error").length||r.append('<div class="onedrive_folder_error">'+updraftlion.onedrive_folder_url_warning+"</div>"):r.find(".onedrive_folder_error").slideUp("slow",function(){r.find(".onedrive_folder_error").remove()})}),t(e+"#remote-storage-holder").on("click","#updraftvault_connect_go",function(a){return t(e+"#updraftvault_connect_go").html(updraftlion.connecting),updraft_send_command("vault_connect",{email:t("#updraftvault_email").val(),pass:t("#updraftvault_pass").val(),instance_id:t("#updraftvault_settings_connect").data("instance_id")},function(a,r,n){t(e+"#updraftvault_connect_go").html(updraftlion.connect),a.hasOwnProperty("e")?(updraft_html_modal('<h4 style="margin-top:0px; padding-top:0px;">'+updraftlion.errornocolon+"</h4><p>"+a.e+"</p>",updraftlion.disconnect,400,250),a.hasOwnProperty("code")&&"no_quota"==a.code&&(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_default").slideDown())):a.hasOwnProperty("connected")&&a.connected&&a.hasOwnProperty("html")?(t(e+"#updraftvault_settings_connect").slideUp(),t(e+"#updraftvault_settings_connected").html(a.html).slideDown()):(console.log(a),alert(updraftlion.unexpectedresponse+" "+n))},{error_callback:function(a,r,n,o){if(t(e+"#updraftvault_connect_go").html(updraftlion.connect),"undefined"!=typeof o&&o.hasOwnProperty("fatal_error"))console.error(o.fatal_error_message),
|
4 |
-
alert(o.fatal_error_message);else{var d="updraft_send_command: error: "+r+" ("+n+")";console.log(d),alert(d),console.log(a)}}}),!1}),t("#updraft-iframe-modal").on("change","#always_keep_this_backup",function(){var e=t(this).data("backup_key"),a={backup_key:e,always_keep:t(this).is(":checked")?1:0};updraft_send_command("always_keep_this_backup",a,function(t){t.hasOwnProperty("rawbackup")&&(jQuery("#updraft-iframe-modal").dialog("close"),jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup",t.rawbackup),updraft_html_modal(jQuery(".updraft_existing_backups_row_"+e+" .updraft_existingbackup_date").data("rawbackup"),updraftlion.raw,780,500))})})}),jQuery(document).ready(function(t){function e(){var t=new plupload.Uploader(updraft_plupload_config2);t.bind("Init",function(t){var e=jQuery("#plupload-upload-ui2");t.features.dragdrop?(e.addClass("drag-drop"),jQuery("#drag-drop-area2").bind("dragover.wp-uploader",function(){e.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){e.removeClass("drag-over")})):(e.removeClass("drag-drop"),jQuery("#drag-drop-area2").unbind(".wp-uploader"))}),t.init(),t.bind("FilesAdded",function(e,a){plupload.each(a,function(e){return/^backup_([\-0-9]{15})_.*_([0-9a-f]{12})-db([0-9]+)?\.(gz\.crypt)$/i.test(e.name)?void jQuery("#filelist2").append('<div class="file" id="'+e.id+'"><b>'+e.name+"</b> (<span>"+plupload.formatSize(0)+"</span>/"+plupload.formatSize(e.size)+') <div class="fileprogress"></div></div>'):(alert(e.name+": "+updraftlion.notdba),void t.removeFile(e))}),e.refresh(),e.start()}),t.bind("UploadProgress",function(t,e){jQuery("#"+e.id+" .fileprogress").width(e.percent+"%"),jQuery("#"+e.id+" span").html(plupload.formatSize(parseInt(e.size*e.percent/100)))}),t.bind("Error",function(t,e){"-200"==e.code?err_makesure="\n"+updraftlion.makesure2:err_makesure=updraftlion.makesure,alert(updraftlion.uploaderr+" (code "+e.code+") : "+e.message+" "+err_makesure)}),t.bind("FileUploaded",function(t,e,a){"200"==a.status?"ERROR:"==a.response.substring(0,6)?alert(updraftlion.uploaderror+" "+a.response.substring(6)):"OK:"==a.response.substring(0,3)?(bkey=a.response.substring(3),jQuery("#"+e.id+" .fileprogress").hide(),jQuery("#"+e.id).append(updraftlion.uploaded+' <a href="?page=updraftplus&action=downloadfile&updraftplus_file='+bkey+"&decrypt_key="+encodeURIComponent(jQuery("#updraftplus_db_decrypt").val())+'">'+updraftlion.followlink+"</a> "+updraftlion.thiskey+" "+jQuery("#updraftplus_db_decrypt").val().replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">"))):alert(updraftlion.unknownresp+" "+a.response):alert(updraftlion.ukrespstatus+" "+a.code)})}try{"undefined"!=typeof updraft_plupload_config2&&e()}catch(a){console.log(a)}if(jQuery("#updraft-hidethis").remove(),Handlebars.registerHelper("ifeq",function(t,e,a){return"string"!=typeof t&&"undefined"!=typeof t&&null!==t&&(t=t.toString()),"string"!=typeof e&&"undefined"!=typeof e&&null!==e&&(e=e.toString()),t===e?a.fn(this):a.inverse(this)}),t("#remote-storage-holder").length){var r="";for(var n in updraftlion.remote_storage_templates)if("undefined"!=typeof updraftlion.remote_storage_options[n]&&1<Object.keys(updraftlion.remote_storage_options[n]).length){var o=Handlebars.compile(updraftlion.remote_storage_templates[n]),d=!0;for(var u in updraftlion.remote_storage_options[n])if("default"!==u){var s=updraftlion.remote_storage_options[n][u];s.first_instance=d,"undefined"==typeof s.instance_enabled&&(s.instance_enabled=1),r+=o(s),d=!1}}else r+=updraftlion.remote_storage_templates[n];t("#remote-storage-holder").append(r).ready(function(){t(".updraftplusmethod").not(".none").hide(),updraft_remote_storage_tabs_setup(),t("#remote-storage-holder .updraftplus_onedrive_folder_input").trigger("keyup")})}}),jQuery(document).ready(function(t){function e(){var t=r("object"),e=new Date;t=JSON.stringify({version:"1.12.40",epoch_date:e.getTime(),local_date:e.toLocaleString(),network_site_url:updraftlion.network_site_url,data:t});var a=document.body.appendChild(document.createElement("a"));a.setAttribute("download",updraftlion.export_settings_file_name),a.setAttribute("style","display:none;"),a.setAttribute("href","data:text/json;charset=UTF-8,"+encodeURIComponent(t)),a.click()}function a(e){var a,r=decodeURIComponent(e);try{a=ud_parse_json(r)}catch(o){return t.unblockUI(),jQuery("#import_settings").val(""),console.log(r),console.log(o),void alert(updraftlion.import_invalid_json_file)}if(window.confirm(updraftlion.importing_data_from+" "+r.network_site_url+"\n"+updraftlion.exported_on+" "+r.local_date+"\n"+updraftlion.continue_import)){var d=JSON.stringify(a.data);updraft_send_command("importsettings",{settings:d,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){var o=n(e);!o.hasOwnProperty("saved")||o.saved?(updraft_settings_form_changed=!1,location.replace(updraftlion.updraft_settings_url)):(t.unblockUI(),o.hasOwnProperty("error_message")&&o.error_message&&alert(o.error_message))},{action:"updraft_importsettings",nonce:updraftplus_settings_nonce,error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),console.log(e),alert(o)}}})}else t.unblockUI()}function r(e){var a="",e="undefined"==typeof e?"string":e;return"object"==e?a=t("#updraft-navtab-settings-content form input[name!='action'][name!='option_page'][name!='_wpnonce'][name!='_wp_http_referer'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select, #updraft-navtab-settings-content form input[type=checkbox]").serializeJSON({checkboxUncheckedValue:"0",useIntKeysAsArrayIndex:!0}):(a=t("#updraft-navtab-settings-content form input[name!='action'], #updraft-navtab-settings-content form textarea, #updraft-navtab-settings-content form select").serialize(),t.each(t("#updraft-navtab-settings-content form input[type=checkbox]").filter(function(e){return 0==t(this).prop("checked")}),function(e,r){var n="0";a+="&"+t(r).attr("name")+"="+n})),a}function n(e,a){try{var r=(e.messages,e.backup_dir.writable),n=e.backup_dir.message,o=e.backup_dir.button_title}catch(d){return console.log(d),console.log(a),alert(updraftlion.jsonnotunderstood),t.unblockUI(),{}}if(e.hasOwnProperty("changed")){console.log("UpdraftPlus: savesettings: some values were changed after being filtered"),console.log(e.changed);for(prop in e.changed)if("object"==typeof e.changed[prop])for(innerprop in e.changed[prop])t("[name='"+innerprop+"']").is(":checkbox")||t("[name='"+prop+"["+innerprop+"]']").val(e.changed[prop][innerprop]);else t("[name='"+prop+"']").is(":checkbox")||t("[name='"+prop+"']").val(e.changed[prop])}return t("#updraft_writable_mess").html(n),0==r?(t("#updraft-backupnow-button").attr("disabled","disabled"),t("#updraft-backupnow-button").attr("title",o),t(".backupdirrow").css("display","table-row")):(t("#updraft-backupnow-button").removeAttr("disabled"),t("#updraft-backupnow-button").removeAttr("title")),e.hasOwnProperty("updraft_include_more_path")&&t("#backupnow_includefiles_moreoptions").html(e.updraft_include_more_path),e.hasOwnProperty("backup_now_message")&&t("#backupnow_remote_container").html(e.backup_now_message),t(".updraftmessage").remove(),t("#updraft_backup_started").before(e.messages),console.log(e),t("#updraft-next-files-backup-inner").html(e.files_scheduled),t("#updraft-next-database-backup-inner").html(e.database_scheduled),e}function o(){var t=!1;if(jQuery("#updraft-authenticate-modal-innards").html(""),jQuery("div[class*=updraft_authenticate_] a.updraft_authlink").each(function(){jQuery("#updraft-authenticate-modal-innards").append('<p><a href="'+jQuery(this).attr("href")+'">'+jQuery(this).html()+"</a></p>"),t=!0}),t){var e={};e[updraftlion.cancel]=function(){jQuery(this).dialog("close")},jQuery("#updraft-authenticate-modal").dialog({autoOpen:!0,modal:!0,resizable:!1,draggable:!1,buttons:e,width:"auto"}).dialog("open")}}var d=new Image;d.src=updraftlion.ud_url+"/images/notices/updraft_logo.png",t("#updraft-navtab-settings-content input.updraft_include_entity").change(function(e){var a=t(this).attr("id"),r=t(this).is(":checked"),n="#backupnow_files_"+a;t(n).prop("checked",r)}),t("#updraftplus-settings-save").click(function(e){e.preventDefault(),t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.saving+"</div>"});var a=r("string");updraft_send_command("savesettings",{settings:a,updraftplus_version:updraftlion.updraftplus_version},function(e,a,r){n(e,r),t("#updraft-wrap .fade").delay(6e3).fadeOut(2e3),window.updraft_main_tour&&!window.updraft_main_tour.canceled?(window.updraft_main_tour.show("settings_saved"),o()):t("html, body").animate({scrollTop:t("#updraft-wrap").offset().top},1e3,function(){o()}),t.unblockUI()},{action:"updraft_savesettings",error_callback:function(e,a,r,n){if(t.unblockUI(),"undefined"!=typeof n&&n.hasOwnProperty("fatal_error"))console.error(n.fatal_error_message),alert(n.fatal_error_message);else{var o="updraft_send_command: error: "+a+" ("+r+")";console.log(o),alert(o),console.log(e)}},nonce:updraftplus_settings_nonce})}),t("#updraftplus-settings-export").click(function(){updraft_settings_form_changed&&alert(updraftlion.unsaved_settings_export),e()}),t("#updraftplus-settings-import").click(function(){t.blockUI({css:{width:"300px",border:"none","border-radius":"10px",left:"calc(50% - 150px)",padding:"20px"},message:'<div style="margin: 8px; font-size:150%;" class="updraft_saving_popup"><img src="'+updraftlion.ud_url+'/images/notices/updraft_logo.png" height="80" width="80" style="padding-bottom:10px;"><br>'+updraftlion.importing+"</div>"});var e=document.getElementById("import_settings");if(0==e.files.length)return alert(updraftlion.import_select_file),void t.unblockUI();var r=e.files[0],n=new FileReader;n.onload=function(){a(this.result)},n.readAsText(r)}),t(".udp-replace-with-iframe--js").on("click",function(e){e.preventDefault();var a=t(this).prop("href"),r=t('<iframe width="356" height="200" allowfullscreen webkitallowfullscreen mozallowfullscreen>').attr("src",a);r.insertAfter(t(this)),t(this).remove()})}),jQuery(document).ready(function(t){function e(e,n,o,d){if("function"==typeof o){var u=t(d).find("#updraftcentral_cloud_form"),s=u.find('.form_hidden_fields input[name="key"]');if(s.length&&""!==s.val())return void o.apply(this,[s.val()]);var i={where_send:"__updraftpluscom",key_description:"",key_size:e,mothership_firewalled:n};a(d),updraft_send_command("updraftcentral_create_key",i,function(e){r(d);try{if(i=ud_parse_json(e),i.hasOwnProperty("error"))return void console.log(i);i.hasOwnProperty("bundle")?o.apply(this,[i.bundle]):i.hasOwnProperty("r")?(t(d).find(".updraftcentral_cloud_notices").html(updraftlion.trouble_connecting).addClass("updraftcentral_cloud_info"),alert(i.r)):console.log(i)}catch(a){console.log(a)}},{json_parse:!1})}}function a(e){t(e).find(".updraftplus_spinner.spinner").addClass("visible")}function r(e){t(e).find(".updraftplus_spinner.spinner").removeClass("visible")}function n(e,n){a(n),updraft_send_command("process_updraftcentral_registration",e,function(a){r(n);try{if(e=ud_parse_json(a),e.hasOwnProperty("error")){var o=e.message,u=["existing_user_email","email_exists"];return-1!==t.inArray(e.code,u)&&(o=e.message+" "+updraftlion.perhaps_login),t(n).find(".updraftcentral_cloud_notices").html(o).addClass("updraftcentral_cloud_error"),t(n).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(e)}"registered"===e.status&&(t(n).find(".updraftcentral_cloud_form_container").hide(),t(n).find(".updraftcentral-subheading").hide(),t(n).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),d(n,e,updraftlion.registration_successful))}catch(s){console.log(s)}},{json_parse:!1})}function o(e,o){a(o),updraft_send_command("process_updraftcentral_login",e,function(a){r(o);try{if(data=ud_parse_json(a),data.hasOwnProperty("error")){if("incorrect_password"===data.code&&(t(o).find(".updraftcentral_cloud_form_container .tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").show(),t(o).find("input#two_factor_code").val(""),t(o).find("input#password").val("").focus()),"email_not_registered"!==data.code)return t(o).find(".updraftcentral_cloud_notices").html(data.message).addClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_notices a").attr("target","_blank"),void console.log(data);n(e,o)}data.hasOwnProperty("tfa_enabled")&&1==data.tfa_enabled&&(t(o).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error"),t(o).find(".updraftcentral_cloud_form_container .non_tfa_fields").hide(),t(o).find(".updraftcentral_cloud_form_container .tfa_fields").show(),t(o).find("input#two_factor_code").focus()),"authenticated"===data.status&&(t(o).find(".updraftcentral_cloud_form_container").hide(),t(o).find(".updraftcentral_cloud_notices").removeClass("updraftcentral_cloud_error"),d(o,data,updraftlion.login_successful))}catch(u){console.log(u)}},{json_parse:!1})}function d(e,a,r){var n=t(e).find("form#updraftcentral_cloud_redirect_form");n.attr("action",a.redirect_url),n.attr("target","_blank"),"undefined"!=typeof a.redirect_token&&n.append('<input type="hidden" name="redirect_token" value="'+a.redirect_token+'">'),a.hasOwnProperty("keys_table")&&a.keys_table&&t("#updraftcentral_keys_content").html(a.keys_table),$redirect_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_redirect_link">'+updraftlion.updraftcentral_cloud+"</a>",$close_lnk='<a href="'+updraftlion.current_clean_url+'" class="updraftcentral_cloud_close_link">'+updraftlion.close_wizard+"</a>",t(e).find(".updraftcentral_cloud_notices").html(r.replace("%s",$redirect_lnk)+" "+$close_lnk+"<br/><br/>"+updraftlion.control_udc_connections),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_redirect_link").off("click").on("click",function(a){a.preventDefault(),n.submit(),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").trigger("click")}),t(e).find(".updraftcentral_cloud_notices .updraftcentral_cloud_close_link").off("click").on("click",function(a){a.preventDefault(),t(e).dialog("close"),t("#updraftcentral_cloud_connect_container").hide()})}function u(e){var a=t(e).find("#updraftcentral_cloud_form"),r=a.find("input#email").val(),n=a.find("input#password").val(),o=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;t(e).find(".updraftcentral_cloud_notices").html("").removeClass("updraftcentral_cloud_error updraftcentral_cloud_info");var d=a.find('.updraftcentral-data-consent > input[name="i_consent"]').is(":checked");return d?0===r.length||0===n.length?(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.username_password_required).addClass("updraftcentral_cloud_error"),!1):null!==r.match(o)||(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.valid_email_required).addClass("updraftcentral_cloud_error"),!1):(t(e).find(".updraftcentral_cloud_notices").html(updraftlion.data_consent_required).addClass("updraftcentral_cloud_error"),!1)}function s(a,r){var d=t(a).find("#updraft_central_keysize").val(),u=t(a).find("#updraft_central_firewalled").is(":checked")?1:0;e(d,u,function(e){var d=t(a).find("#updraftcentral_cloud_form"),u=d.find('.form_hidden_fields input[name="key"]');0===u.length&&d.find(".form_hidden_fields").append('<input type="hidden" name="key" value="'+e+'">');var s=d.find("input").serialize(),i={form_data:s};"undefined"!=typeof r&&r?n(i,a):o(i,a)},a)}function i(){var e=t("#updraftcentral_cloud_login_form");if(e.length){t("#updraft-iframe-modal-innards").html(e.html());var a=t("#updraft-iframe-modal").dialog("option","title",updraftlion.updraftcentral_cloud).dialog("option","width",520).dialog("option","height",450).dialog("option","buttons",{});a.dialog("open");var r=a.find(".updraftcentral-data-consent"),n=r.find("input").attr("name");"undefined"!=typeof n&&n&&(r.find("input").attr("id",n),r.find("label").attr("for",n))}}jQuery("#updraft-restore-modal").on("change","#updraft_restorer_charset",function(e){if(t("#updraft_restorer_charset").length&&t("#updraft_restorer_collate").length&&t("#collate_change_on_charset_selection_data").length){var a=t("#updraft_restorer_charset").val();t("#updraft_restorer_collate option").show(),t("#updraft_restorer_collate option[data-charset!="+a+"]").hide(),updraft_send_command("collate_change_on_charset_selection",{collate_change_on_charset_selection_data:t("#collate_change_on_charset_selection_data").val(),updraft_restorer_charset:a,updraft_restorer_collate:t("#updraft_restorer_collate").val()},function(e){e.hasOwnProperty("is_action_required")&&1==e.is_action_required&&e.hasOwnProperty("similar_type_collate")&&t("#updraft_restorer_collate").val(e.similar_type_collate)})}}),t("#updraft-wrap #btn_cloud_connect").on("click",function(){i()}),t("#updraft-wrap a#self_hosted_connect").on("click",function(e){e.preventDefault(),t("h2.nav-tab-wrapper > a#updraft-navtab-expert").trigger("click"),t("div.advanced_settings_menu > #updraft_central").trigger("click")}),t("#updraft-iframe-modal").on("click","#updraftcentral_cloud_login",function(e){e.preventDefault();var a=t(this).closest("#updraft-iframe-modal");u(a)&&s(a)})});
|
|
|
|
|
|
|
|
Binary file
|
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -18,979 +18,979 @@ msgstr ""
|
|
18 |
#: src/udaddons/updraftplus-addons.php:268,
|
19 |
#: src/udaddons/updraftplus-addons.php:280
|
20 |
msgid "go here"
|
21 |
-
msgstr ""
|
22 |
|
23 |
#: src/udaddons/updraftplus-addons.php:268,
|
24 |
#: src/udaddons/updraftplus-addons.php:280
|
25 |
msgid "If you have already renewed, then you need to allocate a licence to this site - %s"
|
26 |
-
msgstr ""
|
27 |
|
28 |
#: src/addons/onedrive.php:864
|
29 |
msgid "Authentication"
|
30 |
-
msgstr ""
|
31 |
|
32 |
#: src/admin.php:926
|
33 |
msgid "You must select at least one remote storage destination to upload this backup set to."
|
34 |
-
msgstr ""
|
35 |
|
36 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
37 |
msgid "Read more about Easy Updates Manager"
|
38 |
-
msgstr ""
|
39 |
|
40 |
#: src/templates/wp-admin/settings/temporary-clone.php:68
|
41 |
msgid "You can find out more about clone keys here."
|
42 |
-
msgstr ""
|
43 |
|
44 |
#: src/templates/wp-admin/settings/temporary-clone.php:57
|
45 |
msgid "Or, use an UpdraftClone key"
|
46 |
-
msgstr ""
|
47 |
|
48 |
#: src/restorer.php:2493
|
49 |
msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
|
50 |
-
msgstr ""
|
51 |
|
52 |
#: src/admin.php:953
|
53 |
msgid "UpdraftClone key is required."
|
54 |
-
msgstr ""
|
55 |
|
56 |
#: src/admin.php:944
|
57 |
msgid "The preparation of the clone data has been aborted."
|
58 |
-
msgstr ""
|
59 |
|
60 |
#: src/addons/azure.php:646
|
61 |
msgid "Azure Government"
|
62 |
-
msgstr ""
|
63 |
|
64 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
65 |
msgid "Ask WordPress to automatically update UpdraftPlus when it finds an available update."
|
66 |
-
msgstr ""
|
67 |
|
68 |
#: src/templates/wp-admin/settings/form-contents.php:349
|
69 |
msgid "Automatic updates"
|
70 |
-
msgstr ""
|
71 |
|
72 |
#: src/restorer.php:2092, src/restorer.php:2134
|
73 |
msgid "Your database user does not have permission to drop tables"
|
74 |
-
msgstr ""
|
75 |
|
76 |
#: src/admin.php:2962
|
77 |
msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
|
78 |
-
msgstr ""
|
79 |
|
80 |
#: src/addons/googlecloud.php:997
|
81 |
msgid "You must add the following as the authorized redirect URI (under \"More Options\") when asked"
|
82 |
-
msgstr ""
|
83 |
|
84 |
#: src/addons/googlecloud.php:991
|
85 |
msgid "%s does not allow authorization of sites hosted on direct IP addresses. You will need to change your site's address (%s) before you can use %s for storage."
|
86 |
-
msgstr ""
|
87 |
|
88 |
#: src/addons/googlecloud.php:57
|
89 |
msgid "Frankfurt"
|
90 |
-
msgstr ""
|
91 |
|
92 |
#: src/addons/googlecloud.php:56
|
93 |
msgid "London"
|
94 |
-
msgstr ""
|
95 |
|
96 |
#: src/addons/googlecloud.php:55
|
97 |
msgid "Belgium"
|
98 |
-
msgstr ""
|
99 |
|
100 |
#: src/addons/googlecloud.php:54
|
101 |
msgid "Sydney"
|
102 |
-
msgstr ""
|
103 |
|
104 |
#: src/addons/googlecloud.php:53
|
105 |
msgid "Singapore"
|
106 |
-
msgstr ""
|
107 |
|
108 |
#: src/addons/googlecloud.php:52
|
109 |
msgid "Tokyo"
|
110 |
-
msgstr ""
|
111 |
|
112 |
#: src/addons/googlecloud.php:51
|
113 |
msgid "Taiwan"
|
114 |
-
msgstr ""
|
115 |
|
116 |
#: src/addons/googlecloud.php:50
|
117 |
msgid "Oregon"
|
118 |
-
msgstr ""
|
119 |
|
120 |
#: src/addons/googlecloud.php:49
|
121 |
msgid "North Virginia"
|
122 |
-
msgstr ""
|
123 |
|
124 |
#: src/addons/googlecloud.php:48
|
125 |
msgid "South Carolina"
|
126 |
-
msgstr ""
|
127 |
|
128 |
#: src/addons/googlecloud.php:47
|
129 |
msgid "Iowa"
|
130 |
-
msgstr ""
|
131 |
|
132 |
#: src/includes/class-commands.php:949
|
133 |
msgid "The creation of your data for creating the clone should now begin. N.B. You will be charged one token once the clone is ready. If the clone fails to boot, then no token will be taken."
|
134 |
-
msgstr ""
|
135 |
|
136 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
137 |
msgid "Confirm change"
|
138 |
-
msgstr ""
|
139 |
|
140 |
#: src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-submit.php:3,
|
141 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:18
|
142 |
msgid "Add an exclusion rule"
|
143 |
-
msgstr ""
|
144 |
|
145 |
#: src/templates/wp-admin/settings/exclude-modal.php:59
|
146 |
msgid "Type a file prefix"
|
147 |
-
msgstr ""
|
148 |
|
149 |
#: src/templates/wp-admin/settings/exclude-modal.php:56,
|
150 |
#: src/templates/wp-admin/settings/exclude-modal.php:58
|
151 |
msgid "All files beginning with these characters"
|
152 |
-
msgstr ""
|
153 |
|
154 |
#: src/templates/wp-admin/settings/exclude-modal.php:47
|
155 |
msgid "Type an extension like zip"
|
156 |
-
msgstr ""
|
157 |
|
158 |
#: src/templates/wp-admin/settings/exclude-modal.php:28
|
159 |
msgid "Select a file/folder which you would like to exclude"
|
160 |
-
msgstr ""
|
161 |
|
162 |
#: src/templates/wp-admin/settings/exclude-modal.php:15
|
163 |
msgid "All files beginning with given characters"
|
164 |
-
msgstr ""
|
165 |
|
166 |
#: src/templates/wp-admin/settings/exclude-modal.php:12,
|
167 |
#: src/templates/wp-admin/settings/exclude-modal.php:44,
|
168 |
#: src/templates/wp-admin/settings/exclude-modal.php:46
|
169 |
msgid "All files with this extension"
|
170 |
-
msgstr ""
|
171 |
|
172 |
#: src/templates/wp-admin/settings/exclude-modal.php:9,
|
173 |
#: src/templates/wp-admin/settings/exclude-modal.php:22
|
174 |
msgid "File/directory"
|
175 |
-
msgstr ""
|
176 |
|
177 |
#: src/templates/wp-admin/settings/exclude-modal.php:6
|
178 |
msgid "Select a way to exclude files or directories from the backup"
|
179 |
-
msgstr ""
|
180 |
|
181 |
#: src/templates/wp-admin/settings/exclude-modal.php:2
|
182 |
msgid "Exclude files/directories"
|
183 |
-
msgstr ""
|
184 |
|
185 |
#: src/includes/updraftclone/temporary-clone-status.php:422
|
186 |
msgid "To read FAQs/documentation about UpdraftClone, go here."
|
187 |
-
msgstr ""
|
188 |
|
189 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
190 |
msgid "your UpdraftPlus.com account"
|
191 |
-
msgstr ""
|
192 |
|
193 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
194 |
msgid "You can check the progress here or in %s"
|
195 |
-
msgstr ""
|
196 |
|
197 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
198 |
msgid "Your UpdraftClone is still setting up."
|
199 |
-
msgstr ""
|
200 |
|
201 |
#: src/includes/updraftclone/temporary-clone-status.php:378
|
202 |
msgid "%s archives remain"
|
203 |
-
msgstr ""
|
204 |
|
205 |
#: src/includes/updraftclone/temporary-clone-status.php:378
|
206 |
msgid "The site data has all been received, and its import has begun."
|
207 |
-
msgstr ""
|
208 |
|
209 |
#: src/includes/updraftclone/temporary-clone-status.php:373
|
210 |
msgid "The sending of the site data has begun. So far %s data archives totalling %s have been received"
|
211 |
-
msgstr ""
|
212 |
|
213 |
#: src/includes/updraftclone/temporary-clone-status.php:369
|
214 |
msgid "WordPress installed; now awaiting the site data to be sent."
|
215 |
-
msgstr ""
|
216 |
|
217 |
#: src/includes/updraftclone/temporary-clone-status.php:94
|
218 |
msgid "Clone ready"
|
219 |
-
msgstr ""
|
220 |
|
221 |
#: src/includes/updraftclone/temporary-clone-status.php:86
|
222 |
msgid "Site data has been deployed"
|
223 |
-
msgstr ""
|
224 |
|
225 |
#: src/includes/updraftclone/temporary-clone-status.php:84,
|
226 |
#: src/includes/updraftclone/temporary-clone-status.php:347
|
227 |
msgid "Deploying site data"
|
228 |
-
msgstr ""
|
229 |
|
230 |
#: src/includes/updraftclone/temporary-clone-status.php:75
|
231 |
msgid "Site data received"
|
232 |
-
msgstr ""
|
233 |
|
234 |
#: src/includes/updraftclone/temporary-clone-status.php:73,
|
235 |
#: src/includes/updraftclone/temporary-clone-status.php:344
|
236 |
msgid "Receiving site data"
|
237 |
-
msgstr ""
|
238 |
|
239 |
#: src/includes/updraftclone/temporary-clone-status.php:66,
|
240 |
#: src/includes/updraftclone/temporary-clone-status.php:341
|
241 |
msgid "WordPress installed"
|
242 |
-
msgstr ""
|
243 |
|
244 |
#: src/admin.php:5428
|
245 |
msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
|
246 |
-
msgstr ""
|
247 |
|
248 |
#: src/admin.php:3828
|
249 |
msgid "Exclude these from"
|
250 |
-
msgstr ""
|
251 |
|
252 |
#: src/admin.php:952
|
253 |
msgid "The exclusion rule which you are trying to add already exists"
|
254 |
-
msgstr ""
|
255 |
|
256 |
#: src/admin.php:951
|
257 |
msgid "Please enter a valid file name prefix"
|
258 |
-
msgstr ""
|
259 |
|
260 |
#: src/admin.php:950
|
261 |
msgid "Please enter characters that begin the filename which you would like to exclude"
|
262 |
-
msgstr ""
|
263 |
|
264 |
#: src/admin.php:949
|
265 |
msgid "Please enter a valid file extension"
|
266 |
-
msgstr ""
|
267 |
|
268 |
#: src/admin.php:948
|
269 |
msgid "Please enter a file extension, like zip"
|
270 |
-
msgstr ""
|
271 |
|
272 |
#: src/admin.php:947
|
273 |
msgid "Please select a file/folder which you would like to exclude"
|
274 |
-
msgstr ""
|
275 |
|
276 |
#: src/admin.php:946
|
277 |
msgid "Are you sure you want to remove this exclusion rule?"
|
278 |
-
msgstr ""
|
279 |
|
280 |
#: src/templates/wp-admin/advanced/site-info.php:104
|
281 |
msgid "log results to console"
|
282 |
-
msgstr ""
|
283 |
|
284 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:42
|
285 |
msgid "Each time your clone renews it costs 1 token, which lasts for 1 week. You can shut this clone down at the following link:"
|
286 |
-
msgstr ""
|
287 |
|
288 |
#: src/templates/wp-admin/settings/temporary-clone.php:41
|
289 |
msgid "To create a temporary clone you need credit in your account."
|
290 |
-
msgstr ""
|
291 |
|
292 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
293 |
msgid "Read FAQs here."
|
294 |
-
msgstr ""
|
295 |
|
296 |
#: src/methods/dropbox.php:305, src/methods/dropbox.php:321
|
297 |
msgid "failed to upload file to %s (see log file for more)"
|
298 |
-
msgstr ""
|
299 |
|
300 |
#: src/admin.php:5424
|
301 |
msgid "Dashboard:"
|
302 |
-
msgstr ""
|
303 |
|
304 |
#: src/admin.php:5423
|
305 |
msgid "Front page:"
|
306 |
-
msgstr ""
|
307 |
|
308 |
#: src/admin.php:5422
|
309 |
msgid "Your clone has started and will be available at the following URLs once it is ready."
|
310 |
-
msgstr ""
|
311 |
|
312 |
#: src/includes/class-commands.php:906
|
313 |
msgid "manage"
|
314 |
-
msgstr ""
|
315 |
|
316 |
#: src/includes/class-commands.php:906
|
317 |
msgid "Current clones"
|
318 |
-
msgstr ""
|
319 |
|
320 |
#: src/class-updraftplus.php:2992
|
321 |
msgid "Your clone will now deploy this data to re-create your site."
|
322 |
-
msgstr ""
|
323 |
|
324 |
#: src/admin.php:943
|
325 |
msgid "The clone has been provisioned, and its data has been sent to it. Once the clone has finished deploying it, you will receive an email."
|
326 |
-
msgstr ""
|
327 |
|
328 |
#: src/addons/migrator.php:1745
|
329 |
msgid "Site key"
|
330 |
-
msgstr ""
|
331 |
|
332 |
#: src/addons/migrator.php:1736
|
333 |
msgid "Add a site"
|
334 |
-
msgstr ""
|
335 |
|
336 |
#: src/addons/migrator.php:229, src/addons/migrator.php:1731,
|
337 |
#: src/addons/migrator.php:1752
|
338 |
msgid "back"
|
339 |
-
msgstr ""
|
340 |
|
341 |
#: src/addons/migrator.php:195
|
342 |
msgid "Read this article to see step-by-step how it's done."
|
343 |
-
msgstr ""
|
344 |
|
345 |
#: src/addons/migrator.php:189,
|
346 |
#: src/templates/wp-admin/settings/migrator-no-migrator.php:6
|
347 |
msgid "Migrate (create a copy of a site on hosting you control)"
|
348 |
-
msgstr ""
|
349 |
|
350 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:42
|
351 |
msgid "Manage your clones"
|
352 |
-
msgstr ""
|
353 |
|
354 |
#: src/templates/wp-admin/settings/existing-backups-table.php:158
|
355 |
msgid "Use ctrl / cmd + press to select several items"
|
356 |
-
msgstr ""
|
357 |
|
358 |
#: src/methods/dreamobjects.php:20
|
359 |
msgid "Closing 1st October 2018"
|
360 |
-
msgstr ""
|
361 |
|
362 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:41
|
363 |
msgid "Your clone will renew on:"
|
364 |
-
msgstr ""
|
365 |
|
366 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:32
|
367 |
msgid "Unable to get renew date"
|
368 |
-
msgstr ""
|
369 |
|
370 |
#: src/admin.php:906
|
371 |
msgid "The backup was aborted"
|
372 |
-
msgstr ""
|
373 |
|
374 |
#: src/addons/onedrive.php:1197
|
375 |
msgid "OneDrive Germany"
|
376 |
-
msgstr ""
|
377 |
|
378 |
#: src/addons/onedrive.php:1196
|
379 |
msgid "OneDrive International"
|
380 |
-
msgstr ""
|
381 |
|
382 |
#: src/addons/onedrive.php:1193
|
383 |
msgid "Account type"
|
384 |
-
msgstr ""
|
385 |
|
386 |
#: src/templates/wp-admin/settings/temporary-clone.php:56,
|
387 |
#: src/templates/wp-admin/settings/temporary-clone.php:76
|
388 |
msgid "I accept the UpdraftClone terms and conditions"
|
389 |
-
msgstr ""
|
390 |
|
391 |
#: src/templates/wp-admin/settings/temporary-clone.php:56
|
392 |
msgid "Not got an account? Get one by buying some tokens here."
|
393 |
-
msgstr ""
|
394 |
|
395 |
#: src/templates/wp-admin/settings/temporary-clone.php:22,
|
396 |
#: src/templates/wp-admin/settings/temporary-clone.php:41,
|
397 |
#: src/templates/wp-admin/settings/temporary-clone.php:54
|
398 |
msgid "You can buy UpdraftClone tokens from our shop, here."
|
399 |
-
msgstr ""
|
400 |
|
401 |
#: src/templates/wp-admin/settings/temporary-clone.php:54
|
402 |
msgid "To create a temporary clone you need: 1) credit in your account and 2) to connect to your account, below."
|
403 |
-
msgstr ""
|
404 |
|
405 |
#: src/templates/wp-admin/settings/temporary-clone.php:32
|
406 |
msgid "If you want, test upgrading to a different PHP or WP version."
|
407 |
-
msgstr ""
|
408 |
|
409 |
#: src/templates/wp-admin/settings/temporary-clone.php:32
|
410 |
msgid "Flexible"
|
411 |
-
msgstr ""
|
412 |
|
413 |
#: src/templates/wp-admin/settings/temporary-clone.php:31
|
414 |
msgid "Takes just the time needed to create a backup and send it."
|
415 |
-
msgstr ""
|
416 |
|
417 |
#: src/templates/wp-admin/settings/temporary-clone.php:31
|
418 |
msgid "Fast"
|
419 |
-
msgstr ""
|
420 |
|
421 |
#: src/templates/wp-admin/settings/temporary-clone.php:30
|
422 |
msgid "One VPS (Virtual Private Server) per clone, shared with nobody."
|
423 |
-
msgstr ""
|
424 |
|
425 |
#: src/templates/wp-admin/settings/temporary-clone.php:30
|
426 |
msgid "Secure"
|
427 |
-
msgstr ""
|
428 |
|
429 |
#: src/templates/wp-admin/settings/temporary-clone.php:29
|
430 |
msgid "Runs on capacity from a leading cloud computing provider."
|
431 |
-
msgstr ""
|
432 |
|
433 |
#: src/templates/wp-admin/settings/temporary-clone.php:29
|
434 |
msgid "Reliable"
|
435 |
-
msgstr ""
|
436 |
|
437 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
438 |
msgid "Press the buttons... UpdraftClone does the work."
|
439 |
-
msgstr ""
|
440 |
|
441 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
442 |
msgid "Easy"
|
443 |
-
msgstr ""
|
444 |
|
445 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
446 |
msgid "A temporary clone is an instant copy of this website, running on our servers. Rather than test things on your live site, you can UpdraftClone it, and then throw away your clone when done."
|
447 |
-
msgstr ""
|
448 |
|
449 |
#: src/templates/wp-admin/settings/temporary-clone.php:10,
|
450 |
#: src/templates/wp-admin/settings/temporary-clone.php:39
|
451 |
msgid "Create a temporary clone on our servers (UpdraftClone)"
|
452 |
-
msgstr ""
|
453 |
|
454 |
#: src/templates/wp-admin/settings/tab-addons.php:23
|
455 |
msgid "WooCommerce plugins"
|
456 |
-
msgstr ""
|
457 |
|
458 |
#: src/templates/wp-admin/advanced/wipe-settings.php:13
|
459 |
msgid "Reset tour"
|
460 |
-
msgstr ""
|
461 |
|
462 |
#: src/templates/wp-admin/advanced/wipe-settings.php:12
|
463 |
msgid "Press this button to take a tour of the plugin."
|
464 |
-
msgstr ""
|
465 |
|
466 |
#: src/includes/updraftplus-tour.php:232
|
467 |
msgid "Take Tour"
|
468 |
-
msgstr ""
|
469 |
|
470 |
#: src/includes/updraftplus-tour.php:182
|
471 |
msgid "Log in here to enable all the features you have access to."
|
472 |
-
msgstr ""
|
473 |
|
474 |
#: src/includes/updraftplus-tour.php:181
|
475 |
msgid "Connect to updraftplus.com"
|
476 |
-
msgstr ""
|
477 |
|
478 |
#: src/includes/updraftplus-tour.php:172
|
479 |
msgid "Thank you for taking the tour. You are now all set to use UpdraftPlus!"
|
480 |
-
msgstr ""
|
481 |
|
482 |
#: src/includes/updraftplus-tour.php:160
|
483 |
msgctxt "Translators: UpdraftVault is a product name and should not be translated."
|
484 |
msgid "To get started with UpdraftVault, select one of the options below:"
|
485 |
-
msgstr ""
|
486 |
|
487 |
#: src/includes/updraftplus-tour.php:156,
|
488 |
#: src/includes/updraftplus-tour.php:174, src/includes/updraftplus-tour.php:185
|
489 |
msgid "Finish"
|
490 |
-
msgstr ""
|
491 |
|
492 |
#: src/includes/updraftplus-tour.php:153
|
493 |
msgid "UpdraftPlus Premium has many more exciting features!"
|
494 |
-
msgstr ""
|
495 |
|
496 |
#: src/includes/updraftplus-tour.php:152
|
497 |
msgid "UpdraftPlus Premium and addons"
|
498 |
-
msgstr ""
|
499 |
|
500 |
#: src/includes/updraftplus-tour.php:150, src/includes/updraftplus-tour.php:179
|
501 |
msgid "Thank you for taking the tour."
|
502 |
-
msgstr ""
|
503 |
|
504 |
#: src/includes/updraftplus-tour.php:145
|
505 |
msgid "Do you have a few more WordPress sites you want to backup? If yes you can save hours by controlling all your backups in one place from UpdraftCentral."
|
506 |
-
msgstr ""
|
507 |
|
508 |
#: src/includes/updraftplus-tour.php:144
|
509 |
msgid "Control all your backups in one place"
|
510 |
-
msgstr ""
|
511 |
|
512 |
#: src/includes/updraftplus-tour.php:139
|
513 |
msgid "Congratulations, your settings have successfully been saved."
|
514 |
-
msgstr ""
|
515 |
|
516 |
#: src/includes/updraftplus-tour.php:135
|
517 |
msgid "Press here to save your settings."
|
518 |
-
msgstr ""
|
519 |
|
520 |
#: src/includes/updraftplus-tour.php:134, src/includes/updraftplus-tour.php:138
|
521 |
msgid "Save"
|
522 |
-
msgstr ""
|
523 |
|
524 |
#: src/includes/updraftplus-tour.php:131
|
525 |
msgid "Look through the other settings here, making any changes you’d like."
|
526 |
-
msgstr ""
|
527 |
|
528 |
#: src/includes/updraftplus-tour.php:130
|
529 |
msgid "More settings"
|
530 |
-
msgstr ""
|
531 |
|
532 |
#: src/includes/updraftplus-tour.php:126,
|
533 |
#: src/includes/updraftplus-tour.php:153,
|
534 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
535 |
msgid "Find out more here."
|
536 |
-
msgstr ""
|
537 |
|
538 |
#: src/includes/updraftplus-tour.php:125
|
539 |
msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
|
540 |
-
msgstr ""
|
541 |
|
542 |
#: src/includes/updraftplus-tour.php:122
|
543 |
msgid "Now select a remote storage destination to protect against server-wide threats. If not, your backups remain on the same server as your site."
|
544 |
-
msgstr ""
|
545 |
|
546 |
#: src/includes/updraftplus-tour.php:118
|
547 |
msgid "Choose the schedule that you want your backups to run on."
|
548 |
-
msgstr ""
|
549 |
|
550 |
#: src/includes/updraftplus-tour.php:117
|
551 |
msgid "Choose your backup schedule"
|
552 |
-
msgstr ""
|
553 |
|
554 |
#: src/includes/updraftplus-tour.php:113
|
555 |
msgid "Congratulations! Your first backup is running."
|
556 |
-
msgstr ""
|
557 |
|
558 |
#: src/includes/updraftplus-tour.php:109, src/includes/updraftplus-tour.php:114
|
559 |
msgid "Go to settings"
|
560 |
-
msgstr ""
|
561 |
|
562 |
#: src/includes/updraftplus-tour.php:108, src/includes/updraftplus-tour.php:113
|
563 |
msgctxt "Translators: %s is a bold tag."
|
564 |
msgid "But to avoid server-wide threats backup regularly to remote cloud storage in %s settings %s"
|
565 |
-
msgstr ""
|
566 |
|
567 |
#: src/includes/updraftplus-tour.php:108
|
568 |
msgid "Press here to run a manual backup."
|
569 |
-
msgstr ""
|
570 |
|
571 |
#: src/includes/updraftplus-tour.php:107, src/includes/updraftplus-tour.php:112
|
572 |
msgid "Creating your first backup"
|
573 |
-
msgstr ""
|
574 |
|
575 |
#: src/includes/updraftplus-tour.php:104
|
576 |
msgid "Select what you want to backup"
|
577 |
-
msgstr ""
|
578 |
|
579 |
#: src/includes/updraftplus-tour.php:103
|
580 |
msgid "Manual backup options"
|
581 |
-
msgstr ""
|
582 |
|
583 |
#: src/includes/updraftplus-tour.php:100
|
584 |
msgctxt "updraftplus"
|
585 |
msgid "To make a simple backup to your server, press this button. Or to setup regular backups and remote storage, go to %s settings %s"
|
586 |
-
msgstr ""
|
587 |
|
588 |
#: src/includes/updraftplus-tour.php:99
|
589 |
msgid "Your first backup"
|
590 |
-
msgstr ""
|
591 |
|
592 |
#: src/includes/updraftplus-tour.php:95
|
593 |
msgid "Press here to start!"
|
594 |
-
msgstr ""
|
595 |
|
596 |
#: src/includes/updraftplus-tour.php:92
|
597 |
msgid "the world’s most trusted backup plugin!"
|
598 |
-
msgstr ""
|
599 |
|
600 |
#: src/includes/updraftplus-tour.php:92
|
601 |
msgid "Welcome to UpdraftPlus"
|
602 |
-
msgstr ""
|
603 |
|
604 |
#: src/includes/updraftplus-tour.php:91
|
605 |
msgid "UpdraftPlus settings"
|
606 |
-
msgstr ""
|
607 |
|
608 |
#: src/includes/updraftplus-tour.php:88
|
609 |
msgid "End tour"
|
610 |
-
msgstr ""
|
611 |
|
612 |
#: src/includes/updraftplus-tour.php:87
|
613 |
msgid "Skip this step"
|
614 |
-
msgstr ""
|
615 |
|
616 |
#: src/includes/updraftplus-tour.php:86
|
617 |
msgid "Back"
|
618 |
-
msgstr ""
|
619 |
|
620 |
#: src/includes/class-commands.php:893
|
621 |
msgid "You can buy more temporary clone tokens here."
|
622 |
-
msgstr ""
|
623 |
|
624 |
#: src/admin.php:5379
|
625 |
msgid "Forbid non-administrators to login to WordPress on your clone"
|
626 |
-
msgstr ""
|
627 |
|
628 |
#: src/templates/wp-admin/settings/temporary-clone.php:35
|
629 |
msgid "Temporary clones of WordPress multisite installations are not yet supported. See our documentation on how to carry out a normal migration here"
|
630 |
-
msgstr ""
|
631 |
|
632 |
#: src/templates/wp-admin/settings/tab-addons.php:247
|
633 |
msgid "Premium / Find out more"
|
634 |
-
msgstr ""
|
635 |
|
636 |
#: src/templates/wp-admin/settings/tab-addons.php:22
|
637 |
msgid "Other great plugins"
|
638 |
-
msgstr ""
|
639 |
|
640 |
#: src/admin.php:5426, src/admin.php:5429
|
641 |
msgid "You can find your temporary clone information in your updraftplus.com account here."
|
642 |
-
msgstr ""
|
643 |
|
644 |
#: src/class-updraftplus.php:4177
|
645 |
msgid "Choose a default for each table"
|
646 |
-
msgstr ""
|
647 |
|
648 |
#: src/admin.php:3276
|
649 |
msgid "Sending files to remote site"
|
650 |
-
msgstr ""
|
651 |
|
652 |
#: src/admin.php:3271
|
653 |
msgid "Clone server being provisioned and booted (can take several minutes)"
|
654 |
-
msgstr ""
|
655 |
|
656 |
#: src/admin.php:942
|
657 |
msgid "Warning: you have selected a lower version than your currently installed version. This may fail if you have components that are incompatible with earlier versions."
|
658 |
-
msgstr ""
|
659 |
|
660 |
#: src/addons/migrator.php:233
|
661 |
msgid "To import a backup set, go to the \"Existing Backups\" section in the \"Backup/Restore\" tab"
|
662 |
-
msgstr ""
|
663 |
|
664 |
#: src/admin.php:2798
|
665 |
msgid "Backup / Restore"
|
666 |
-
msgstr ""
|
667 |
|
668 |
#: src/admin.php:663
|
669 |
msgid "Backup"
|
670 |
-
msgstr ""
|
671 |
|
672 |
#: src/addons/wp-cli.php:408
|
673 |
msgid "Latest full backup found; identifier:"
|
674 |
-
msgstr ""
|
675 |
|
676 |
#: src/addons/wp-cli.php:407
|
677 |
msgid "No previous full backup found."
|
678 |
-
msgstr ""
|
679 |
|
680 |
#: src/templates/wp-admin/settings/existing-backups-table.php:89
|
681 |
msgid "Remote storage: %s"
|
682 |
-
msgstr ""
|
683 |
|
684 |
#: src/addons/wp-cli.php:88
|
685 |
msgid "No previous backup found to add an increment to."
|
686 |
-
msgstr ""
|
687 |
|
688 |
#: src/restorer.php:2499
|
689 |
msgid "Requested character set (%s) is not present - changing to %s."
|
690 |
-
msgstr ""
|
691 |
|
692 |
#: src/includes/updraftclone/temporary-clone-user-notice.php:32
|
693 |
msgid "Allow only administrators to log in"
|
694 |
-
msgstr ""
|
695 |
|
696 |
#: src/includes/updraftclone/temporary-clone-user-notice.php:31
|
697 |
msgid "You can forbid non-admins logins to this cloned site by checking the checkbox below"
|
698 |
-
msgstr ""
|
699 |
|
700 |
#: src/includes/updraftclone/temporary-clone-user-notice.php:30
|
701 |
msgid "UpdraftPlus temporary clone user login settings:"
|
702 |
-
msgstr ""
|
703 |
|
704 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:39
|
705 |
msgid "Welcome to your UpdraftClone (temporary clone)"
|
706 |
-
msgstr ""
|
707 |
|
708 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:38
|
709 |
msgid "Refresh connection"
|
710 |
-
msgstr ""
|
711 |
|
712 |
#: src/addons/reporting.php:495
|
713 |
msgid "Log all messages to syslog"
|
714 |
-
msgstr ""
|
715 |
|
716 |
#: src/addons/sftp.php:601, src/addons/sftp.php:603
|
717 |
msgid "The server's RSA key %s fingerprint: %s."
|
718 |
-
msgstr ""
|
719 |
|
720 |
#: src/addons/sftp.php:597
|
721 |
msgid "Failed: We are unable to match the fingerprint. However, we were able to log in and move to the indicated directory and successfully create a file in that location."
|
722 |
-
msgstr ""
|
723 |
|
724 |
#: src/addons/sftp.php:478
|
725 |
msgid "MD5 (128-bit) fingerprint, in hex format - should have the same length and general appearance as this (colons optional): 73:51:43:b1:b5:fc:8b:b7:0a:3a:a9:b1:0f:69:73:a8. Using a fingerprint is not essential, but you are not secure against %s if you do not use one"
|
726 |
-
msgstr ""
|
727 |
|
728 |
#: src/addons/sftp.php:475
|
729 |
msgid "RSA fingerprint"
|
730 |
-
msgstr ""
|
731 |
|
732 |
#: src/addons/sftp.php:82
|
733 |
msgid "Fingerprints don't match."
|
734 |
-
msgstr ""
|
735 |
|
736 |
#: src/templates/wp-admin/settings/migrator-no-migrator.php:17
|
737 |
msgid "More information here."
|
738 |
-
msgstr ""
|
739 |
|
740 |
#: src/admin.php:671, src/admin.php:2799
|
741 |
msgid "Migrate / Clone"
|
742 |
-
msgstr ""
|
743 |
|
744 |
#: src/admin.php:3036, src/admin.php:3961,
|
745 |
#: src/templates/wp-admin/settings/existing-backups-table.php:73,
|
746 |
#: src/templates/wp-admin/settings/existing-backups-table.php:76
|
747 |
msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
|
748 |
-
msgstr ""
|
749 |
|
750 |
#: src/addons/wp-cli.php:834
|
751 |
msgid "You have given the %1$s option. The %1$s is working with \"%2$s\" addon. Get the \"%2$s\" addon: %3$s"
|
752 |
-
msgstr ""
|
753 |
|
754 |
#: src/addons/wp-cli.php:793
|
755 |
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
|
756 |
-
msgstr ""
|
757 |
|
758 |
#: src/addons/wp-cli.php:739, src/addons/wp-cli.php:743
|
759 |
msgid "This is not an incremental backup"
|
760 |
-
msgstr ""
|
761 |
|
762 |
#: src/addons/wp-cli.php:665
|
763 |
msgid "Run this command to see the log file for this restoration (needed for any support requests)."
|
764 |
-
msgstr ""
|
765 |
|
766 |
#: src/class-updraftplus.php:188
|
767 |
msgid "A version of UpdraftPlus is already installed. WordPress will only allow you to install your new version after first de-installing the existing one. That is safe - all your settings and backups will be retained. So, go to the \"Plugins\" page, de-activate and de-install UpdraftPlus, and then try again."
|
768 |
-
msgstr ""
|
769 |
|
770 |
#: src/admin.php:5402
|
771 |
msgid "(current version)"
|
772 |
-
msgstr ""
|
773 |
|
774 |
#: src/admin.php:3738
|
775 |
msgid "press here"
|
776 |
-
msgstr ""
|
777 |
|
778 |
#: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
|
779 |
#: src/methods/googledrive.php:1214
|
780 |
msgid "this privacy policy"
|
781 |
-
msgstr ""
|
782 |
|
783 |
#: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
|
784 |
#: src/methods/googledrive.php:1214
|
785 |
msgid "Please read %s for use of our %s authorization app (none of your backup data is sent to us)."
|
786 |
-
msgstr ""
|
787 |
|
788 |
#: src/addons/incremental.php:270
|
789 |
msgid "Tell me more"
|
790 |
-
msgstr ""
|
791 |
|
792 |
#: src/addons/incremental.php:258
|
793 |
msgid "And then add an incremental backup"
|
794 |
-
msgstr ""
|
795 |
|
796 |
#: src/addons/incremental.php:236, src/updraftplus.php:99
|
797 |
msgid "Every hour"
|
798 |
-
msgstr ""
|
799 |
|
800 |
#: src/includes/class-commands.php:900
|
801 |
msgid "Create clone"
|
802 |
-
msgstr ""
|
803 |
|
804 |
#: src/includes/class-commands.php:892, src/includes/class-commands.php:937
|
805 |
msgid "Available temporary clone tokens:"
|
806 |
-
msgstr ""
|
807 |
|
808 |
#: src/admin.php:2886, src/includes/class-commands.php:901,
|
809 |
#: src/includes/class-commands.php:949,
|
810 |
#: src/templates/wp-admin/settings/temporary-clone.php:83,
|
811 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:71
|
812 |
msgid "Processing"
|
813 |
-
msgstr ""
|
814 |
|
815 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:70
|
816 |
msgid "Connect to UpdraftCentral Cloud"
|
817 |
-
msgstr ""
|
818 |
|
819 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:68
|
820 |
msgid "UpdraftPlus.Com account terms and policies"
|
821 |
-
msgstr ""
|
822 |
|
823 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:68
|
824 |
msgid "I consent to %s"
|
825 |
-
msgstr ""
|
826 |
|
827 |
#: src/admin.php:2984,
|
828 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:56
|
829 |
msgid "One Time Password (check your OTP app to get this password)"
|
830 |
-
msgstr ""
|
831 |
|
832 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:46
|
833 |
msgid "Login or register with this email address"
|
834 |
-
msgstr ""
|
835 |
|
836 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:34
|
837 |
msgid "If not, then choose your details and a new account will be registered."
|
838 |
-
msgstr ""
|
839 |
|
840 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:33
|
841 |
msgid "If you already have an updraftplus.com account, then enter the details below."
|
842 |
-
msgstr ""
|
843 |
|
844 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:31
|
845 |
msgid "Add this website to your UpdraftCentral Cloud dashboard at updraftplus.com."
|
846 |
-
msgstr ""
|
847 |
|
848 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:29
|
849 |
msgid "Login or register for UpdraftCentral Cloud"
|
850 |
-
msgstr ""
|
851 |
|
852 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:20
|
853 |
msgid "Go here to connect it."
|
854 |
-
msgstr ""
|
855 |
|
856 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:20
|
857 |
msgid "Or if you prefer to self-host, then you can get the self-hosted version here."
|
858 |
-
msgstr ""
|
859 |
|
860 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:17
|
861 |
msgid "Connect this site to UpdraftCentral Cloud"
|
862 |
-
msgstr ""
|
863 |
|
864 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:14
|
865 |
msgid "If you have a few sites, it'll save hours. It's free to use or try up to 5 sites."
|
866 |
-
msgstr ""
|
867 |
|
868 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:12
|
869 |
msgid "Backup, update and manage all your WordPress sites from one dashboard"
|
870 |
-
msgstr ""
|
871 |
|
872 |
#: src/includes/updraftcentral.php:21, src/includes/updraftplus-clone.php:21
|
873 |
msgid "An error has occurred while processing your request. The server might be busy or you have lost your connection to the internet at the time of the request. Please try again later."
|
874 |
-
msgstr ""
|
875 |
|
876 |
#: src/admin.php:5344
|
877 |
msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
|
878 |
msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
|
879 |
-
msgstr[0] ""
|
880 |
-
msgstr[1] ""
|
881 |
|
882 |
#: src/admin.php:940
|
883 |
msgid "For future control of all your UpdraftCentral connections, go to the \"Advanced Tools\" tab."
|
884 |
-
msgstr ""
|
885 |
|
886 |
#: src/admin.php:939
|
887 |
msgid "You can also close this wizard."
|
888 |
-
msgstr ""
|
889 |
|
890 |
#: src/admin.php:938
|
891 |
msgid "You need to read and accept the UpdraftCentral Cloud data and privacy policies before you can proceed."
|
892 |
-
msgstr ""
|
893 |
|
894 |
#: src/admin.php:937
|
895 |
msgid "Please wait while you are redirected to UpdraftCentral Cloud."
|
896 |
-
msgstr ""
|
897 |
|
898 |
#: src/admin.php:936
|
899 |
msgid "Please wait while the system generates and registers an encryption key for your website with UpdraftCentral Cloud."
|
900 |
-
msgstr ""
|
901 |
|
902 |
#: src/admin.php:935
|
903 |
msgid "Perhaps you would want to login instead."
|
904 |
-
msgstr ""
|
905 |
|
906 |
#: src/admin.php:934
|
907 |
msgid "Trouble connecting? Try using an alternative method in the advanced security options."
|
908 |
-
msgstr ""
|
909 |
|
910 |
#: src/admin.php:933
|
911 |
msgid "An email is required and needs to be in a valid format."
|
912 |
-
msgstr ""
|
913 |
|
914 |
#: src/admin.php:932
|
915 |
msgid "Both email and password fields are required."
|
916 |
-
msgstr ""
|
917 |
|
918 |
#: src/admin.php:931
|
919 |
msgid "Registration successful."
|
920 |
-
msgstr ""
|
921 |
|
922 |
#: src/admin.php:930, src/admin.php:931
|
923 |
msgid "Please follow this link to open %s in a new window."
|
924 |
-
msgstr ""
|
925 |
|
926 |
#: src/admin.php:930
|
927 |
msgid "Login successful."
|
928 |
-
msgstr ""
|
929 |
|
930 |
#: src/admin.php:929,
|
931 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:9
|
932 |
msgid "UpdraftCentral Cloud"
|
933 |
-
msgstr ""
|
934 |
|
935 |
#: src/admin.php:489
|
936 |
msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
|
937 |
-
msgstr ""
|
938 |
|
939 |
#: src/admin.php:488
|
940 |
msgid "Dismiss all UpdraftPlus news"
|
941 |
-
msgstr ""
|
942 |
|
943 |
#: src/admin.php:487
|
944 |
msgid "UpdraftPlus News"
|
945 |
-
msgstr ""
|
946 |
|
947 |
#: src/addons/wp-cli.php:553
|
948 |
msgid "Migration key created:"
|
949 |
-
msgstr ""
|
950 |
|
951 |
#: src/addons/wp-cli.php:543
|
952 |
msgid "Missing parameters"
|
953 |
-
msgstr ""
|
954 |
|
955 |
#: src/addons/azure.php:645
|
956 |
msgid "Azure Germany"
|
957 |
-
msgstr ""
|
958 |
|
959 |
#: src/addons/azure.php:644
|
960 |
msgid "Azure Global"
|
961 |
-
msgstr ""
|
962 |
|
963 |
#: src/addons/azure.php:641
|
964 |
msgid "Azure Account"
|
965 |
-
msgstr ""
|
966 |
|
967 |
#: src/admin.php:928
|
968 |
msgid "Please specify the Microsoft OneDrive folder name, not the URL."
|
969 |
-
msgstr ""
|
970 |
|
971 |
#: src/templates/wp-admin/settings/upload-backups-modal.php:4
|
972 |
msgid "Select the remote storage destinations you want to upload this backup set to"
|
973 |
-
msgstr ""
|
974 |
|
975 |
#: src/templates/wp-admin/settings/upload-backups-modal.php:3
|
976 |
msgid "Upload backup"
|
977 |
-
msgstr ""
|
978 |
|
979 |
#: src/admin.php:4248
|
980 |
msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
|
981 |
-
msgstr ""
|
982 |
|
983 |
#: src/admin.php:927
|
984 |
msgid "(already uploaded)"
|
985 |
-
msgstr ""
|
986 |
|
987 |
#: src/admin.php:925
|
988 |
msgid "Local backup upload has started; please check the current status tab to see the upload progress"
|
989 |
-
msgstr ""
|
990 |
|
991 |
#: src/admin.php:846, src/admin.php:4248
|
992 |
msgid "Upload"
|
993 |
-
msgstr ""
|
994 |
|
995 |
#: src/addons/reporting.php:529, src/admin.php:796
|
996 |
msgid "Only email the database backup"
|
@@ -1172,7 +1172,7 @@ msgstr "Αυτήν τη στιγμή χρησιμοποιείτε την δωρ
|
|
1172 |
|
1173 |
#: src/templates/wp-admin/settings/tab-addons.php:26
|
1174 |
msgid "Get it here"
|
1175 |
-
msgstr ""
|
1176 |
|
1177 |
#: src/methods/stream-base.php:323
|
1178 |
msgid "Download chunk size successfully changed to %d"
|
@@ -1614,7 +1614,7 @@ msgstr "Το UpdraftPlus διαθέτει τη δική του ενσωματω
|
|
1614 |
|
1615 |
#: src/templates/wp-admin/advanced/wipe-settings.php:11
|
1616 |
msgid "UpdraftPlus Tour"
|
1617 |
-
msgstr ""
|
1618 |
|
1619 |
#: src/templates/wp-admin/settings/tab-addons.php:232
|
1620 |
msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
|
@@ -1622,7 +1622,7 @@ msgstr "Κλεiδώστε την πρόσβαση στο UpdraftPlus μέσω ε
|
|
1622 |
|
1623 |
#: src/templates/wp-admin/settings/tab-addons.php:219
|
1624 |
msgid "Some backup plugins can't restore a backup, so Premium allows you to restore backups from other plugins."
|
1625 |
-
msgstr ""
|
1626 |
|
1627 |
#: src/templates/wp-admin/settings/tab-addons.php:217,
|
1628 |
#: src/templates/wp-admin/settings/tab-addons.php:218
|
@@ -1699,7 +1699,7 @@ msgstr "Κλωνοποίηση και μετανάστευση"
|
|
1699 |
|
1700 |
#: src/templates/wp-admin/settings/tab-addons.php:180
|
1701 |
msgid "Get enhanced versions of the free remote storage options (Dropbox, Google Drive & S3) and even more remote storage options like OneDrive, SFTP, Azure, WebDAV and more with UpdraftPlus Premium."
|
1702 |
-
msgstr ""
|
1703 |
|
1704 |
#: src/templates/wp-admin/settings/tab-addons.php:179
|
1705 |
msgid "Additional and enhanced remote storage locations"
|
@@ -1852,7 +1852,7 @@ msgstr "Καλοκαιρινές εκτπώσεις - 20% έκπτωση στο
|
|
1852 |
|
1853 |
#: src/includes/updraftplus-notices.php:251
|
1854 |
msgid "Spring sale - 20% off UpdraftPlus Premium until April 30th"
|
1855 |
-
msgstr ""
|
1856 |
|
1857 |
#: src/includes/updraftplus-notices.php:238
|
1858 |
msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
|
@@ -2051,7 +2051,7 @@ msgstr "Διαγραφή τοπικών αρχείων:"
|
|
2051 |
|
2052 |
#: src/methods/backup-module.php:549
|
2053 |
msgid "Follow this link to authorize access to your %s account (you will not be able to backup to %s without it)."
|
2054 |
-
msgstr ""
|
2055 |
|
2056 |
#: src/admin.php:908
|
2057 |
msgid "remote files deleted"
|
@@ -3581,7 +3581,7 @@ msgstr "Για να δημιουργήσετε ένα νέο ΙΑΜ υπο-χρ
|
|
3581 |
|
3582 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:12
|
3583 |
msgid "For personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more, take a look at the premium version of UpdraftPlus - the world's most popular backup plugin."
|
3584 |
-
msgstr ""
|
3585 |
|
3586 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:29
|
3587 |
msgid "UpdraftPlus news, high-quality training materials for WordPress developers and site-owners, and general WordPress news. You can de-subscribe at any time."
|
@@ -3732,7 +3732,7 @@ msgstr "Αλλαγή Ρυθμίσεων Κλειδώματος"
|
|
3732 |
|
3733 |
#: src/addons/morefiles.php:258
|
3734 |
msgid "Any other file/directory on your server that you wish to backup"
|
3735 |
-
msgstr ""
|
3736 |
|
3737 |
#: src/admin.php:2611
|
3738 |
msgid "For even more features and personal support, check out "
|
@@ -4258,7 +4258,7 @@ msgstr "Αυτό θα προκαλέσει επίσης αποσφαλμάτωσ
|
|
4258 |
|
4259 |
#: src/templates/wp-admin/settings/form-contents.php:233
|
4260 |
msgid "Backup more databases"
|
4261 |
-
msgstr ""
|
4262 |
|
4263 |
#: src/templates/wp-admin/settings/form-contents.php:192
|
4264 |
msgid "First, enter the decryption key"
|
@@ -5180,7 +5180,7 @@ msgstr "(Αυτό ισχύει για όλα τα πρόσθετα του WordPr
|
|
5180 |
|
5181 |
#: src/options.php:208
|
5182 |
msgid "Without upgrading, UpdraftPlus allows <strong>every</strong> blog admin who can modify plugin settings to backup (and hence access the data, including passwords, from) and restore (including with customized modifications, e.g. changed passwords) <strong>the entire network</strong>."
|
5183 |
-
msgstr ""
|
5184 |
|
5185 |
#: src/options.php:208
|
5186 |
msgid "WordPress Multisite is supported, with extra features, by UpdraftPlus Premium, or the Multisite add-on."
|
@@ -5937,7 +5937,7 @@ msgstr "Κάποια αρχεία ακόμα κατεβαίνουν ή υπόκ
|
|
5937 |
|
5938 |
#: src/class-updraftplus.php:3945, src/class-updraftplus.php:3965
|
5939 |
msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
|
5940 |
-
msgstr ""
|
5941 |
|
5942 |
#: src/addons/fixtime.php:571
|
5943 |
msgid "The time zone used is that from your WordPress settings, in Settings -> General."
|
@@ -6245,7 +6245,7 @@ msgstr "Έχει γίνει έναρξη αναζήτησης αυτής της
|
|
6245 |
|
6246 |
#: src/methods/s3.php:482
|
6247 |
msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
|
6248 |
-
msgstr ""
|
6249 |
|
6250 |
#: src/addons/dropbox-folders.php:32
|
6251 |
msgid "Store at"
|
@@ -6505,7 +6505,7 @@ msgstr "υπάρχει ένα πρόσθετο για αυτό το σκοπό."
|
|
6505 |
|
6506 |
#: src/methods/dropbox.php:603, src/methods/dropbox.php:605
|
6507 |
msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
|
6508 |
-
msgstr ""
|
6509 |
|
6510 |
#: src/methods/dropbox.php:603, src/methods/dropbox.php:605
|
6511 |
msgid "Backups are saved in"
|
@@ -6521,7 +6521,7 @@ msgstr "σφάλμα: αποτυχία ανεβάσματος του αρχεί
|
|
6521 |
|
6522 |
#: src/methods/dropbox.php:195
|
6523 |
msgid "error: %s (see log file for more)"
|
6524 |
-
msgstr ""
|
6525 |
|
6526 |
#: src/methods/dropbox.php:173, src/methods/dropbox.php:190
|
6527 |
msgid "You do not appear to be authenticated with Dropbox"
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-12-08 18:30:19+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
18 |
#: src/udaddons/updraftplus-addons.php:268,
|
19 |
#: src/udaddons/updraftplus-addons.php:280
|
20 |
msgid "go here"
|
21 |
+
msgstr "πηγαίνετε εδώ"
|
22 |
|
23 |
#: src/udaddons/updraftplus-addons.php:268,
|
24 |
#: src/udaddons/updraftplus-addons.php:280
|
25 |
msgid "If you have already renewed, then you need to allocate a licence to this site - %s"
|
26 |
+
msgstr "Εάν έχετε ήδη κάνει ανανέωση, τότε θα πρέπει να εκχωρήσετε άδεια σε αυτόν τον ιστότοπο - %s"
|
27 |
|
28 |
#: src/addons/onedrive.php:864
|
29 |
msgid "Authentication"
|
30 |
+
msgstr "Επαλήθευση ταυτότητας"
|
31 |
|
32 |
#: src/admin.php:926
|
33 |
msgid "You must select at least one remote storage destination to upload this backup set to."
|
34 |
+
msgstr "Πρέπει να επιλέξετε τουλάχιστον έναν προορισμό απομακρυσμένης αποθήκευσης για να μεταφορτώσετε αυτό το σετ αντιγράφων ασφαλείας."
|
35 |
|
36 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
37 |
msgid "Read more about Easy Updates Manager"
|
38 |
+
msgstr "Διαβάστε περισσότερα για το Easy Updates Manager"
|
39 |
|
40 |
#: src/templates/wp-admin/settings/temporary-clone.php:68
|
41 |
msgid "You can find out more about clone keys here."
|
42 |
+
msgstr "Μπορείτε να μάθετε περισσότερα σχετικά με τα κλειδιά των κλώνων εδώ."
|
43 |
|
44 |
#: src/templates/wp-admin/settings/temporary-clone.php:57
|
45 |
msgid "Or, use an UpdraftClone key"
|
46 |
+
msgstr "Ή χρησιμοποιήστε ένα κλειδί του UpdraftClone"
|
47 |
|
48 |
#: src/restorer.php:2493
|
49 |
msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
|
50 |
+
msgstr "Βρέθηκαν τα SET NAMES %s, αλλά θα αλλάξουν σε %s όπως προτείνεται από το WPDB::determine_charset()."
|
51 |
|
52 |
#: src/admin.php:953
|
53 |
msgid "UpdraftClone key is required."
|
54 |
+
msgstr "Απαιτείται κλειδί του UpdraftClone."
|
55 |
|
56 |
#: src/admin.php:944
|
57 |
msgid "The preparation of the clone data has been aborted."
|
58 |
+
msgstr "Η παρασκευή των δεδομένων του κλώνου έχει διακοπεί."
|
59 |
|
60 |
#: src/addons/azure.php:646
|
61 |
msgid "Azure Government"
|
62 |
+
msgstr "Azure Government"
|
63 |
|
64 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
65 |
msgid "Ask WordPress to automatically update UpdraftPlus when it finds an available update."
|
66 |
+
msgstr "Ρυθμίστε τη WordPress ώστε να ενημερώνει αυτόματα το UpdraftPlus όταν εντοπίσει μια διαθέσιμη ενημερωμένη έκδοση."
|
67 |
|
68 |
#: src/templates/wp-admin/settings/form-contents.php:349
|
69 |
msgid "Automatic updates"
|
70 |
+
msgstr "Αυτόματη ενημέρωση"
|
71 |
|
72 |
#: src/restorer.php:2092, src/restorer.php:2134
|
73 |
msgid "Your database user does not have permission to drop tables"
|
74 |
+
msgstr "Ο χρήστης της βάσης δεδομένων δεν έχει άδεια να διαγράψει πίνακες"
|
75 |
|
76 |
#: src/admin.php:2962
|
77 |
msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
|
78 |
+
msgstr "Ρυθμίστε τη WordPress ώστε να ενημερώνει το UpdraftPlus αυτόματα όταν υπάρχει διαθέσιμη ενημερωμένη έκδοση. "
|
79 |
|
80 |
#: src/addons/googlecloud.php:997
|
81 |
msgid "You must add the following as the authorized redirect URI (under \"More Options\") when asked"
|
82 |
+
msgstr "Πρέπει να προσθέσετε τα παρακάτω ως εξουσιοδοτημένο URI ανακατεύθυνσης (στο πεδίο \"Περισσότερες επιλογές\") όταν σας ζητηθεί"
|
83 |
|
84 |
#: src/addons/googlecloud.php:991
|
85 |
msgid "%s does not allow authorization of sites hosted on direct IP addresses. You will need to change your site's address (%s) before you can use %s for storage."
|
86 |
+
msgstr "Το %s δεν επιτρέπει την εξουσιοδότηση των ιστότοπων που φιλοξενούνται σε άμεσες διευθύνσεις IP. Θα χρειαστεί να αλλάξετε τη διεύθυνση του ιστότοπού σας (%s) προτού μπορέσετε να χρησιμοποιήσετε το %s για αποθήκευση."
|
87 |
|
88 |
#: src/addons/googlecloud.php:57
|
89 |
msgid "Frankfurt"
|
90 |
+
msgstr "Φρανκφούρτη"
|
91 |
|
92 |
#: src/addons/googlecloud.php:56
|
93 |
msgid "London"
|
94 |
+
msgstr "Λονδινο"
|
95 |
|
96 |
#: src/addons/googlecloud.php:55
|
97 |
msgid "Belgium"
|
98 |
+
msgstr "Βέλγιο"
|
99 |
|
100 |
#: src/addons/googlecloud.php:54
|
101 |
msgid "Sydney"
|
102 |
+
msgstr "Σύδνεϊ"
|
103 |
|
104 |
#: src/addons/googlecloud.php:53
|
105 |
msgid "Singapore"
|
106 |
+
msgstr "Σιγκαπούρη "
|
107 |
|
108 |
#: src/addons/googlecloud.php:52
|
109 |
msgid "Tokyo"
|
110 |
+
msgstr "Τόκιο "
|
111 |
|
112 |
#: src/addons/googlecloud.php:51
|
113 |
msgid "Taiwan"
|
114 |
+
msgstr "Ταϊβάν "
|
115 |
|
116 |
#: src/addons/googlecloud.php:50
|
117 |
msgid "Oregon"
|
118 |
+
msgstr "Όρεγκον "
|
119 |
|
120 |
#: src/addons/googlecloud.php:49
|
121 |
msgid "North Virginia"
|
122 |
+
msgstr "Βόρεια Βιρτζίνια"
|
123 |
|
124 |
#: src/addons/googlecloud.php:48
|
125 |
msgid "South Carolina"
|
126 |
+
msgstr "Νότια Καρολίνα"
|
127 |
|
128 |
#: src/addons/googlecloud.php:47
|
129 |
msgid "Iowa"
|
130 |
+
msgstr "Αϊόβα"
|
131 |
|
132 |
#: src/includes/class-commands.php:949
|
133 |
msgid "The creation of your data for creating the clone should now begin. N.B. You will be charged one token once the clone is ready. If the clone fails to boot, then no token will be taken."
|
134 |
+
msgstr "Θα πρέπει τώρα να ξεκινήσει η δημιουργία των δεδομένων σας για τη δημιουργία του κλώνου. Σημείωση: Θα χρεωθείτε μία μονάδα χρήσης μόλις ο κλώνος είναι έτοιμος. Εάν ο κλώνος δεν μπορέσει να εκκινήσει, τότε δεν θα χρεωθείτε τίποτα."
|
135 |
|
136 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
137 |
msgid "Confirm change"
|
138 |
+
msgstr "Επιβεβαιώστε την αλλαγή"
|
139 |
|
140 |
#: src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-submit.php:3,
|
141 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:18
|
142 |
msgid "Add an exclusion rule"
|
143 |
+
msgstr "Προσθέστε έναν κανόνα αποκλεισμού"
|
144 |
|
145 |
#: src/templates/wp-admin/settings/exclude-modal.php:59
|
146 |
msgid "Type a file prefix"
|
147 |
+
msgstr "Πληκτρολογήστε ένα πρόθεμα αρχείου"
|
148 |
|
149 |
#: src/templates/wp-admin/settings/exclude-modal.php:56,
|
150 |
#: src/templates/wp-admin/settings/exclude-modal.php:58
|
151 |
msgid "All files beginning with these characters"
|
152 |
+
msgstr "Όλα τα αρχεία αρχίζουν με αυτούς τους χαρακτήρες"
|
153 |
|
154 |
#: src/templates/wp-admin/settings/exclude-modal.php:47
|
155 |
msgid "Type an extension like zip"
|
156 |
+
msgstr "Πληκτρολογήστε μια επέκταση όπως το zip"
|
157 |
|
158 |
#: src/templates/wp-admin/settings/exclude-modal.php:28
|
159 |
msgid "Select a file/folder which you would like to exclude"
|
160 |
+
msgstr "Επιλέξτε ένα αρχείο/φάκελο που θέλετε να εξαιρέσετε"
|
161 |
|
162 |
#: src/templates/wp-admin/settings/exclude-modal.php:15
|
163 |
msgid "All files beginning with given characters"
|
164 |
+
msgstr "Όλα τα αρχεία ξεκινούν με συγκεκριμένους χαρακτήρες"
|
165 |
|
166 |
#: src/templates/wp-admin/settings/exclude-modal.php:12,
|
167 |
#: src/templates/wp-admin/settings/exclude-modal.php:44,
|
168 |
#: src/templates/wp-admin/settings/exclude-modal.php:46
|
169 |
msgid "All files with this extension"
|
170 |
+
msgstr "Όλα τα αρχεία με αυτήν την επέκταση"
|
171 |
|
172 |
#: src/templates/wp-admin/settings/exclude-modal.php:9,
|
173 |
#: src/templates/wp-admin/settings/exclude-modal.php:22
|
174 |
msgid "File/directory"
|
175 |
+
msgstr "Αρχείο/κατάλογος"
|
176 |
|
177 |
#: src/templates/wp-admin/settings/exclude-modal.php:6
|
178 |
msgid "Select a way to exclude files or directories from the backup"
|
179 |
+
msgstr "Επιλέξτε έναν τρόπο εξαίρεσης αρχείων ή καταλόγων από το αντίγραφο ασφαλείας"
|
180 |
|
181 |
#: src/templates/wp-admin/settings/exclude-modal.php:2
|
182 |
msgid "Exclude files/directories"
|
183 |
+
msgstr "Εξαίρεση αρχείων/καταλόγων"
|
184 |
|
185 |
#: src/includes/updraftclone/temporary-clone-status.php:422
|
186 |
msgid "To read FAQs/documentation about UpdraftClone, go here."
|
187 |
+
msgstr "Για να διαβάσετε τις συχνές ερωτήσεις/την τεκμηρίωση σχετικά με το UpdraftClone κάντε κλικ εδώ."
|
188 |
|
189 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
190 |
msgid "your UpdraftPlus.com account"
|
191 |
+
msgstr "ο UpdraftPlus.com λογαριασμός σας</a>"
|
192 |
|
193 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
194 |
msgid "You can check the progress here or in %s"
|
195 |
+
msgstr "Μπορείτε να ελέγξετε την πρόοδο εδώ ή στο %s"
|
196 |
|
197 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
198 |
msgid "Your UpdraftClone is still setting up."
|
199 |
+
msgstr "Το UpdraftClone σας εξακολουθεί να εγκαθίσταται."
|
200 |
|
201 |
#: src/includes/updraftclone/temporary-clone-status.php:378
|
202 |
msgid "%s archives remain"
|
203 |
+
msgstr "%s από τα αρχεία παραμένουν"
|
204 |
|
205 |
#: src/includes/updraftclone/temporary-clone-status.php:378
|
206 |
msgid "The site data has all been received, and its import has begun."
|
207 |
+
msgstr "Όλα τα δεδομένα ιστότοπου έχουν ληφθεί και η εισαγωγή τους έχει αρχίσει."
|
208 |
|
209 |
#: src/includes/updraftclone/temporary-clone-status.php:373
|
210 |
msgid "The sending of the site data has begun. So far %s data archives totalling %s have been received"
|
211 |
+
msgstr "Η αποστολή των δεδομένων ιστότοπου έχει αρχίσει. Μέχρι στιγμής έχουν ληφθεί %s αρχεία δεδομένων και συνολικά %s"
|
212 |
|
213 |
#: src/includes/updraftclone/temporary-clone-status.php:369
|
214 |
msgid "WordPress installed; now awaiting the site data to be sent."
|
215 |
+
msgstr "Η WordPress είναι εγκατεστημένη, τώρα περιμένετε να σταλούν τα δεδομένα του ιστοτόπου σας."
|
216 |
|
217 |
#: src/includes/updraftclone/temporary-clone-status.php:94
|
218 |
msgid "Clone ready"
|
219 |
+
msgstr "Ο κλώνος είναι έτοιμος"
|
220 |
|
221 |
#: src/includes/updraftclone/temporary-clone-status.php:86
|
222 |
msgid "Site data has been deployed"
|
223 |
+
msgstr "Τα δεδομένα ιστότοπου έχουν αναπτυχθεί"
|
224 |
|
225 |
#: src/includes/updraftclone/temporary-clone-status.php:84,
|
226 |
#: src/includes/updraftclone/temporary-clone-status.php:347
|
227 |
msgid "Deploying site data"
|
228 |
+
msgstr "Ανάπτυξη δεδομένων ιστότοπου"
|
229 |
|
230 |
#: src/includes/updraftclone/temporary-clone-status.php:75
|
231 |
msgid "Site data received"
|
232 |
+
msgstr "Έγινε λήψη των δεδομένων του ιστότοπου"
|
233 |
|
234 |
#: src/includes/updraftclone/temporary-clone-status.php:73,
|
235 |
#: src/includes/updraftclone/temporary-clone-status.php:344
|
236 |
msgid "Receiving site data"
|
237 |
+
msgstr "Λήψη δεδομένων ιστότοπου"
|
238 |
|
239 |
#: src/includes/updraftclone/temporary-clone-status.php:66,
|
240 |
#: src/includes/updraftclone/temporary-clone-status.php:341
|
241 |
msgid "WordPress installed"
|
242 |
+
msgstr "Το WordPress εγκαταστάθηκε"
|
243 |
|
244 |
#: src/admin.php:5428
|
245 |
msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
|
246 |
+
msgstr "Ο κλώνος σας έχει ξεκινήσει, οι πληροφορίες δικτύου δεν είναι ακόμα διαθέσιμες, αλλά θα εμφανιστούν εδώ και στο λογαριασμό σας στο updraftplus.com μόλις είναι έτοιμες."
|
247 |
|
248 |
#: src/admin.php:3828
|
249 |
msgid "Exclude these from"
|
250 |
+
msgstr "Εξαίρεση αυτών από"
|
251 |
|
252 |
#: src/admin.php:952
|
253 |
msgid "The exclusion rule which you are trying to add already exists"
|
254 |
+
msgstr "Ο κανόνας εξαίρεσης που προσπαθείτε να προσθέσετε υπάρχει ήδη"
|
255 |
|
256 |
#: src/admin.php:951
|
257 |
msgid "Please enter a valid file name prefix"
|
258 |
+
msgstr "Εισαγάγετε ένα έγκυρο πρόθεμα ονόματος αρχείου"
|
259 |
|
260 |
#: src/admin.php:950
|
261 |
msgid "Please enter characters that begin the filename which you would like to exclude"
|
262 |
+
msgstr "Εισαγάγετε τους χαρακτήρες με τους οποίους αρχίζει το όνομα αρχείου που θέλετε να εξαιρέσετε"
|
263 |
|
264 |
#: src/admin.php:949
|
265 |
msgid "Please enter a valid file extension"
|
266 |
+
msgstr "Εισαγάγετε μια έγκυρη επέκταση αρχείου"
|
267 |
|
268 |
#: src/admin.php:948
|
269 |
msgid "Please enter a file extension, like zip"
|
270 |
+
msgstr "Καταχωρίστε μια επέκταση αρχείου, όπως το zip"
|
271 |
|
272 |
#: src/admin.php:947
|
273 |
msgid "Please select a file/folder which you would like to exclude"
|
274 |
+
msgstr "Επιλέξτε ένα αρχείο/φάκελο που θέλετε να εξαιρέσετε"
|
275 |
|
276 |
#: src/admin.php:946
|
277 |
msgid "Are you sure you want to remove this exclusion rule?"
|
278 |
+
msgstr "Είστε βέβαιοι ότι θέλετε να καταργήσετε αυτόν τον κανόνα εξαίρεσης;"
|
279 |
|
280 |
#: src/templates/wp-admin/advanced/site-info.php:104
|
281 |
msgid "log results to console"
|
282 |
+
msgstr "αποτελέσματα καταγραφής στην κονσόλα"
|
283 |
|
284 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:42
|
285 |
msgid "Each time your clone renews it costs 1 token, which lasts for 1 week. You can shut this clone down at the following link:"
|
286 |
+
msgstr "Κάθε φορά που ανανεώνεται ο κλώνος σας, κοστίζει 1 μονάδα χρήσης, η οποίο διαρκεί 1 εβδομάδα. Μπορείτε να τερματίσετε αυτόν τον κλώνο στον παρακάτω σύνδεσμο:"
|
287 |
|
288 |
#: src/templates/wp-admin/settings/temporary-clone.php:41
|
289 |
msgid "To create a temporary clone you need credit in your account."
|
290 |
+
msgstr "Για να δημιουργήσετε έναν προσωρινό κλώνο χρειάζεστε πίστωση στο λογαριασμό σας."
|
291 |
|
292 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
293 |
msgid "Read FAQs here."
|
294 |
+
msgstr "Διαβάστε τις Συχνές Ερωτήσεις εδώ."
|
295 |
|
296 |
#: src/methods/dropbox.php:305, src/methods/dropbox.php:321
|
297 |
msgid "failed to upload file to %s (see log file for more)"
|
298 |
+
msgstr "απέτυχε η μεταφόρτωση του αρχείου στο %s (δείτε το αρχείο καταγραφής για περισσότερα)"
|
299 |
|
300 |
#: src/admin.php:5424
|
301 |
msgid "Dashboard:"
|
302 |
+
msgstr "Πίνακας ελέγχου:"
|
303 |
|
304 |
#: src/admin.php:5423
|
305 |
msgid "Front page:"
|
306 |
+
msgstr "Αρχική σελίδα:"
|
307 |
|
308 |
#: src/admin.php:5422
|
309 |
msgid "Your clone has started and will be available at the following URLs once it is ready."
|
310 |
+
msgstr "Ο κλώνος σας έχει ξεκινήσει και θα είναι διαθέσιμος στις ακόλουθες διευθύνσεις URL μόλις είναι έτοιμος."
|
311 |
|
312 |
#: src/includes/class-commands.php:906
|
313 |
msgid "manage"
|
314 |
+
msgstr "διαχείριση"
|
315 |
|
316 |
#: src/includes/class-commands.php:906
|
317 |
msgid "Current clones"
|
318 |
+
msgstr "Τρέχοντες κλώνοι"
|
319 |
|
320 |
#: src/class-updraftplus.php:2992
|
321 |
msgid "Your clone will now deploy this data to re-create your site."
|
322 |
+
msgstr "Ο κλώνος σας θα αναπτύξει τώρα αυτά τα δεδομένα για να δημιουργήσει εκ νέου τον ιστότοπό σας."
|
323 |
|
324 |
#: src/admin.php:943
|
325 |
msgid "The clone has been provisioned, and its data has been sent to it. Once the clone has finished deploying it, you will receive an email."
|
326 |
+
msgstr "Ο κλώνος έχει τροφοδοτηθεί και τα δεδομένα έχουν σταλεί σε αυτόν. Μόλις ολοκληρωθεί η ανάπτυξη του κλώνου, θα λάβετε ένα μήνυμα ηλεκτρονικού ταχυδρομείου."
|
327 |
|
328 |
#: src/addons/migrator.php:1745
|
329 |
msgid "Site key"
|
330 |
+
msgstr "Κλειδί σελίδας"
|
331 |
|
332 |
#: src/addons/migrator.php:1736
|
333 |
msgid "Add a site"
|
334 |
+
msgstr "Προσθήκη σελίδας"
|
335 |
|
336 |
#: src/addons/migrator.php:229, src/addons/migrator.php:1731,
|
337 |
#: src/addons/migrator.php:1752
|
338 |
msgid "back"
|
339 |
+
msgstr "πίσω"
|
340 |
|
341 |
#: src/addons/migrator.php:195
|
342 |
msgid "Read this article to see step-by-step how it's done."
|
343 |
+
msgstr "Διαβάστε αυτό το άρθρο για να δείτε βήμα προς βήμα πώς γίνεται."
|
344 |
|
345 |
#: src/addons/migrator.php:189,
|
346 |
#: src/templates/wp-admin/settings/migrator-no-migrator.php:6
|
347 |
msgid "Migrate (create a copy of a site on hosting you control)"
|
348 |
+
msgstr "Μετεγκατάσταση (δημιουργήστε ένα αντίγραφο ενός ιστότοπου σε διακομιστή που κατέχετε)"
|
349 |
|
350 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:42
|
351 |
msgid "Manage your clones"
|
352 |
+
msgstr "Διαχειριστείτε τους κλώνους σας"
|
353 |
|
354 |
#: src/templates/wp-admin/settings/existing-backups-table.php:158
|
355 |
msgid "Use ctrl / cmd + press to select several items"
|
356 |
+
msgstr "Χρησιμοποιήστε τα πλήκτρα ctrl / cmd + για να επιλέξετε πολλά στοιχεία"
|
357 |
|
358 |
#: src/methods/dreamobjects.php:20
|
359 |
msgid "Closing 1st October 2018"
|
360 |
+
msgstr "Σταματά την 1η Οκτωβρίου 2018"
|
361 |
|
362 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:41
|
363 |
msgid "Your clone will renew on:"
|
364 |
+
msgstr "Ο κλώνος σας θα ανανεωθεί στις:"
|
365 |
|
366 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:32
|
367 |
msgid "Unable to get renew date"
|
368 |
+
msgstr "Δεν είναι δυνατή η λήψη ημερομηνίας ανανέωσης"
|
369 |
|
370 |
#: src/admin.php:906
|
371 |
msgid "The backup was aborted"
|
372 |
+
msgstr "Η λήψη αντιγράφου ασφαλείας ακυρώθηκε"
|
373 |
|
374 |
#: src/addons/onedrive.php:1197
|
375 |
msgid "OneDrive Germany"
|
376 |
+
msgstr "OneDrive Γερμανία"
|
377 |
|
378 |
#: src/addons/onedrive.php:1196
|
379 |
msgid "OneDrive International"
|
380 |
+
msgstr "OneDrive Διεθνές"
|
381 |
|
382 |
#: src/addons/onedrive.php:1193
|
383 |
msgid "Account type"
|
384 |
+
msgstr "Τύπος λογαριασμού"
|
385 |
|
386 |
#: src/templates/wp-admin/settings/temporary-clone.php:56,
|
387 |
#: src/templates/wp-admin/settings/temporary-clone.php:76
|
388 |
msgid "I accept the UpdraftClone terms and conditions"
|
389 |
+
msgstr "Δέχομαι τους όρους και τις προϋποθέσεις του UpdraftClone"
|
390 |
|
391 |
#: src/templates/wp-admin/settings/temporary-clone.php:56
|
392 |
msgid "Not got an account? Get one by buying some tokens here."
|
393 |
+
msgstr "Δεν έχετε λογαριασμός; Αποκτήστε αγοράζοντας μερικές μονάδες χρήσης εδώ."
|
394 |
|
395 |
#: src/templates/wp-admin/settings/temporary-clone.php:22,
|
396 |
#: src/templates/wp-admin/settings/temporary-clone.php:41,
|
397 |
#: src/templates/wp-admin/settings/temporary-clone.php:54
|
398 |
msgid "You can buy UpdraftClone tokens from our shop, here."
|
399 |
+
msgstr "Μπορείτε να αγοράσετε μονάδες χρήσης του UpdraftClone από το κατάστημά μας εδώ."
|
400 |
|
401 |
#: src/templates/wp-admin/settings/temporary-clone.php:54
|
402 |
msgid "To create a temporary clone you need: 1) credit in your account and 2) to connect to your account, below."
|
403 |
+
msgstr "Για να δημιουργήσετε έναν προσωρινό κλώνο χρειάζεστε: 1) πίστωση στον λογαριασμό σας και 2) για να συνδεθείτε στο λογαριασμό σας, παρακάτω."
|
404 |
|
405 |
#: src/templates/wp-admin/settings/temporary-clone.php:32
|
406 |
msgid "If you want, test upgrading to a different PHP or WP version."
|
407 |
+
msgstr "Εάν θέλετε, δοκιμάστε να κάνετε αναβάθμιση σε διαφορετική έκδοση PHP ή WP."
|
408 |
|
409 |
#: src/templates/wp-admin/settings/temporary-clone.php:32
|
410 |
msgid "Flexible"
|
411 |
+
msgstr "Ευέλικτο"
|
412 |
|
413 |
#: src/templates/wp-admin/settings/temporary-clone.php:31
|
414 |
msgid "Takes just the time needed to create a backup and send it."
|
415 |
+
msgstr "Χρειάζεται μόνο ο χρόνος που απαιτείται για να δημιουργηθεί ένα αντίγραφο ασφαλείας και να σταλεί."
|
416 |
|
417 |
#: src/templates/wp-admin/settings/temporary-clone.php:31
|
418 |
msgid "Fast"
|
419 |
+
msgstr "Γρήγορο"
|
420 |
|
421 |
#: src/templates/wp-admin/settings/temporary-clone.php:30
|
422 |
msgid "One VPS (Virtual Private Server) per clone, shared with nobody."
|
423 |
+
msgstr "Ένα VPS (Virtual Private Server) ανά κλώνο, που δεν μοιράζεται με κανέναν."
|
424 |
|
425 |
#: src/templates/wp-admin/settings/temporary-clone.php:30
|
426 |
msgid "Secure"
|
427 |
+
msgstr "Ασφαλές"
|
428 |
|
429 |
#: src/templates/wp-admin/settings/temporary-clone.php:29
|
430 |
msgid "Runs on capacity from a leading cloud computing provider."
|
431 |
+
msgstr "Λειτουργεί με υποδομές χωρητικότητας από έναν κορυφαίο πάροχο υπολογιστικών υπηρεσιών στο σύννεφο."
|
432 |
|
433 |
#: src/templates/wp-admin/settings/temporary-clone.php:29
|
434 |
msgid "Reliable"
|
435 |
+
msgstr "Αξιόπιστο"
|
436 |
|
437 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
438 |
msgid "Press the buttons... UpdraftClone does the work."
|
439 |
+
msgstr "Πατήστε τα κουμπιά ... Το UpdraftClone κάνει τη δουλειά."
|
440 |
|
441 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
442 |
msgid "Easy"
|
443 |
+
msgstr "Εύκολο"
|
444 |
|
445 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
446 |
msgid "A temporary clone is an instant copy of this website, running on our servers. Rather than test things on your live site, you can UpdraftClone it, and then throw away your clone when done."
|
447 |
+
msgstr "Ένας προσωρινός κλώνος είναι ένα στιγμιαίο αντίγραφο αυτού του ιστότοπου, που τρέχει στους διακομιστές μας. Μην κάνετε δοκιμές στο ιστότοπό σας. Φτιάξτε έναν κλώνο στο UpdraftClone και πετάξτε τον όταν τελειώσετε τις δοκιμές."
|
448 |
|
449 |
#: src/templates/wp-admin/settings/temporary-clone.php:10,
|
450 |
#: src/templates/wp-admin/settings/temporary-clone.php:39
|
451 |
msgid "Create a temporary clone on our servers (UpdraftClone)"
|
452 |
+
msgstr "Ή δημιουργήστε έναν προσωρινό κλώνο στους διακομιστές μας (UpdraftClone)"
|
453 |
|
454 |
#: src/templates/wp-admin/settings/tab-addons.php:23
|
455 |
msgid "WooCommerce plugins"
|
456 |
+
msgstr "Πρόσθετα του WooCommerce"
|
457 |
|
458 |
#: src/templates/wp-admin/advanced/wipe-settings.php:13
|
459 |
msgid "Reset tour"
|
460 |
+
msgstr "Επαναφορά περιήγησης"
|
461 |
|
462 |
#: src/templates/wp-admin/advanced/wipe-settings.php:12
|
463 |
msgid "Press this button to take a tour of the plugin."
|
464 |
+
msgstr "Πατήστε αυτό το κουμπί για να κάνετε μια περιήγηση στο πρόσθετο."
|
465 |
|
466 |
#: src/includes/updraftplus-tour.php:232
|
467 |
msgid "Take Tour"
|
468 |
+
msgstr "Κάντε Περιήγηση"
|
469 |
|
470 |
#: src/includes/updraftplus-tour.php:182
|
471 |
msgid "Log in here to enable all the features you have access to."
|
472 |
+
msgstr "Συνδεθείτε εδώ για να ενεργοποιήσετε όλες τις λειτουργίες στις οποίες έχετε πρόσβαση."
|
473 |
|
474 |
#: src/includes/updraftplus-tour.php:181
|
475 |
msgid "Connect to updraftplus.com"
|
476 |
+
msgstr "Συνδεθείτε στο updraftplus.com"
|
477 |
|
478 |
#: src/includes/updraftplus-tour.php:172
|
479 |
msgid "Thank you for taking the tour. You are now all set to use UpdraftPlus!"
|
480 |
+
msgstr "Σας ευχαριστούμε που κάνετε την περιήγηση. Τώρα είστε έτοιμοι να χρησιμοποιήσετε το UpdraftPlus!"
|
481 |
|
482 |
#: src/includes/updraftplus-tour.php:160
|
483 |
msgctxt "Translators: UpdraftVault is a product name and should not be translated."
|
484 |
msgid "To get started with UpdraftVault, select one of the options below:"
|
485 |
+
msgstr "Για να ξεκινήσετε να χρησιμοποιείτε το UpdraftVault, επιλέξτε ένα από τα παρακάτω:"
|
486 |
|
487 |
#: src/includes/updraftplus-tour.php:156,
|
488 |
#: src/includes/updraftplus-tour.php:174, src/includes/updraftplus-tour.php:185
|
489 |
msgid "Finish"
|
490 |
+
msgstr "Τέλος"
|
491 |
|
492 |
#: src/includes/updraftplus-tour.php:153
|
493 |
msgid "UpdraftPlus Premium has many more exciting features!"
|
494 |
+
msgstr "Το UpdraftPlus Premium έχει κι άλλα πολλά συναρπαστικά χαρακτηριστικά!"
|
495 |
|
496 |
#: src/includes/updraftplus-tour.php:152
|
497 |
msgid "UpdraftPlus Premium and addons"
|
498 |
+
msgstr "UpdraftPlus Premium και πρόσθετα"
|
499 |
|
500 |
#: src/includes/updraftplus-tour.php:150, src/includes/updraftplus-tour.php:179
|
501 |
msgid "Thank you for taking the tour."
|
502 |
+
msgstr "Σας ευχαριστούμε που κάνετε την περιήγηση."
|
503 |
|
504 |
#: src/includes/updraftplus-tour.php:145
|
505 |
msgid "Do you have a few more WordPress sites you want to backup? If yes you can save hours by controlling all your backups in one place from UpdraftCentral."
|
506 |
+
msgstr "Έχετε μερικές ακόμη ιστοσελίδες της WordPress που θέλετε να δημιουργήσετε αντίγραφα ασφαλείας; Εάν ναι, μπορείτε να εξοικονομήσετε ώρες ελέγχοντας όλα τα αντίγραφα ασφαλείας σε ένα σημείο από το UpdraftCentral."
|
507 |
|
508 |
#: src/includes/updraftplus-tour.php:144
|
509 |
msgid "Control all your backups in one place"
|
510 |
+
msgstr "Ελέγξτε όλα τα αντίγραφα ασφαλείας από ένα μέρος"
|
511 |
|
512 |
#: src/includes/updraftplus-tour.php:139
|
513 |
msgid "Congratulations, your settings have successfully been saved."
|
514 |
+
msgstr "Συγχαρητήρια, οι ρυθμίσεις σας αποθηκεύτηκαν με επιτυχία."
|
515 |
|
516 |
#: src/includes/updraftplus-tour.php:135
|
517 |
msgid "Press here to save your settings."
|
518 |
+
msgstr "Πατήστε εδώ για να αποθηκεύσετε τις ρυθμίσεις σας."
|
519 |
|
520 |
#: src/includes/updraftplus-tour.php:134, src/includes/updraftplus-tour.php:138
|
521 |
msgid "Save"
|
522 |
+
msgstr "Αποθήκευση"
|
523 |
|
524 |
#: src/includes/updraftplus-tour.php:131
|
525 |
msgid "Look through the other settings here, making any changes you’d like."
|
526 |
+
msgstr "Ανατρέξτε στις άλλες ρυθμίσεις εδώ κάνοντας οποιεσδήποτε αλλαγές θέλετε."
|
527 |
|
528 |
#: src/includes/updraftplus-tour.php:130
|
529 |
msgid "More settings"
|
530 |
+
msgstr "Περισσότερες ρυθμίσεις"
|
531 |
|
532 |
#: src/includes/updraftplus-tour.php:126,
|
533 |
#: src/includes/updraftplus-tour.php:153,
|
534 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
535 |
msgid "Find out more here."
|
536 |
+
msgstr "Ανακαλύψτε περισσότερα εδώ."
|
537 |
|
538 |
#: src/includes/updraftplus-tour.php:125
|
539 |
msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
|
540 |
+
msgstr "Το UpdraftVault είναι το απομακρυσμένο σημείο αποθήκευσης που λειτουργεί άψογα με το UpdraftPlus."
|
541 |
|
542 |
#: src/includes/updraftplus-tour.php:122
|
543 |
msgid "Now select a remote storage destination to protect against server-wide threats. If not, your backups remain on the same server as your site."
|
544 |
+
msgstr "Τώρα επιλέξτε έναν απομακρυσμένο προορισμό αποθήκευσης για προστασία από απειλές σε επίπεδο διακομιστή. Εάν δεν επιλέξετε, τα αντίγραφα ασφαλείας παραμένουν στον ίδιο διακομιστή με τον ιστότοπό σας."
|
545 |
|
546 |
#: src/includes/updraftplus-tour.php:118
|
547 |
msgid "Choose the schedule that you want your backups to run on."
|
548 |
+
msgstr "Επιλέξτε το χρονοδιάγραμμα στο οποίο θέλετε να εκτελούνται τα αντίγραφα ασφαλείας."
|
549 |
|
550 |
#: src/includes/updraftplus-tour.php:117
|
551 |
msgid "Choose your backup schedule"
|
552 |
+
msgstr "Επιλέξτε το χρονοδιάγραμμα δημιουργίας αντιγράφων ασφαλείας"
|
553 |
|
554 |
#: src/includes/updraftplus-tour.php:113
|
555 |
msgid "Congratulations! Your first backup is running."
|
556 |
+
msgstr "Συγχαρητήρια! Το πρώτο σας αντίγραφο ασφαλείας εκτελείται."
|
557 |
|
558 |
#: src/includes/updraftplus-tour.php:109, src/includes/updraftplus-tour.php:114
|
559 |
msgid "Go to settings"
|
560 |
+
msgstr "Πηγαίνετε στις ρυθμίσεις"
|
561 |
|
562 |
#: src/includes/updraftplus-tour.php:108, src/includes/updraftplus-tour.php:113
|
563 |
msgctxt "Translators: %s is a bold tag."
|
564 |
msgid "But to avoid server-wide threats backup regularly to remote cloud storage in %s settings %s"
|
565 |
+
msgstr "Αλλά για να αποφύγετε την πιθανότητα κακόβουλων ενεργειών στο διακομιστή σας κρατήστε στα αντίγραφα ασφαλείας σε σημείο απομακρυσμένης αποθήκευσης στο σύννεφο στις %s ρυθμίσεις %s"
|
566 |
|
567 |
#: src/includes/updraftplus-tour.php:108
|
568 |
msgid "Press here to run a manual backup."
|
569 |
+
msgstr "Πατήστε εδώ για να δημιουργήσετε ένα αντίγραφο ασφαλείας."
|
570 |
|
571 |
#: src/includes/updraftplus-tour.php:107, src/includes/updraftplus-tour.php:112
|
572 |
msgid "Creating your first backup"
|
573 |
+
msgstr "Δημιουργία του πρώτου σας αντιγράφου ασφαλείας"
|
574 |
|
575 |
#: src/includes/updraftplus-tour.php:104
|
576 |
msgid "Select what you want to backup"
|
577 |
+
msgstr "Επιλέξτε ποια στοιχεία θα συμπεριληφθούν στο αντίγραφο ασφαλείας"
|
578 |
|
579 |
#: src/includes/updraftplus-tour.php:103
|
580 |
msgid "Manual backup options"
|
581 |
+
msgstr "Επιλογές χειροκίνητης δημιουργίας αντιγράφων"
|
582 |
|
583 |
#: src/includes/updraftplus-tour.php:100
|
584 |
msgctxt "updraftplus"
|
585 |
msgid "To make a simple backup to your server, press this button. Or to setup regular backups and remote storage, go to %s settings %s"
|
586 |
+
msgstr "Για να δημιουργήσετε ένα απλό αντίγραφο ασφαλείας στο διακομιστή σας, πατήστε αυτό το κουμπί. Ή για να ρυθμίσετε τακτικά αντίγραφα ασφαλείας και απομακρυσμένη αποθήκευση, μεταβείτε στις %s ρυθμίσεις %s"
|
587 |
|
588 |
#: src/includes/updraftplus-tour.php:99
|
589 |
msgid "Your first backup"
|
590 |
+
msgstr "Το πρώτο σας αντίγραφο ασφαλείας"
|
591 |
|
592 |
#: src/includes/updraftplus-tour.php:95
|
593 |
msgid "Press here to start!"
|
594 |
+
msgstr "Πατήστε εδώ για να ξεκινήσετε!"
|
595 |
|
596 |
#: src/includes/updraftplus-tour.php:92
|
597 |
msgid "the world’s most trusted backup plugin!"
|
598 |
+
msgstr "το πιο αξιόπιστο αντίγραφο ασφαλείας στον κόσμο!"
|
599 |
|
600 |
#: src/includes/updraftplus-tour.php:92
|
601 |
msgid "Welcome to UpdraftPlus"
|
602 |
+
msgstr "Καλωσορίσατε στο UpdraftPlus"
|
603 |
|
604 |
#: src/includes/updraftplus-tour.php:91
|
605 |
msgid "UpdraftPlus settings"
|
606 |
+
msgstr "Ρυθμίσεις του UpdraftPlus"
|
607 |
|
608 |
#: src/includes/updraftplus-tour.php:88
|
609 |
msgid "End tour"
|
610 |
+
msgstr "Τέλος περιήγησης"
|
611 |
|
612 |
#: src/includes/updraftplus-tour.php:87
|
613 |
msgid "Skip this step"
|
614 |
+
msgstr "Παραλείψτε αυτό το βήμα"
|
615 |
|
616 |
#: src/includes/updraftplus-tour.php:86
|
617 |
msgid "Back"
|
618 |
+
msgstr "Πίσω"
|
619 |
|
620 |
#: src/includes/class-commands.php:893
|
621 |
msgid "You can buy more temporary clone tokens here."
|
622 |
+
msgstr "Μπορείτε να αγοράσετε περισσότερες προσωρινές μονάδες χρήσης για τους κλώνους σας εδώ."
|
623 |
|
624 |
#: src/admin.php:5379
|
625 |
msgid "Forbid non-administrators to login to WordPress on your clone"
|
626 |
+
msgstr "Απαγορεύστε στους μη διαχειριστές να συνδεθούν στον WordPress κλώνο σας"
|
627 |
|
628 |
#: src/templates/wp-admin/settings/temporary-clone.php:35
|
629 |
msgid "Temporary clones of WordPress multisite installations are not yet supported. See our documentation on how to carry out a normal migration here"
|
630 |
+
msgstr "Οι προσωρινοί κλώνοι των multisite εγκαταστάσεων WordPress δεν υποστηρίζονται ακόμη. Δείτε την τεκμηρίωσή μας σχετικά με τον τρόπο πραγματοποίησης μιας κανονικής μετανάστευσης εδώ"
|
631 |
|
632 |
#: src/templates/wp-admin/settings/tab-addons.php:247
|
633 |
msgid "Premium / Find out more"
|
634 |
+
msgstr "Premium / Δείτε περισσότερα εδώ"
|
635 |
|
636 |
#: src/templates/wp-admin/settings/tab-addons.php:22
|
637 |
msgid "Other great plugins"
|
638 |
+
msgstr "Άλλα εξαιρετικά πρόσθετα"
|
639 |
|
640 |
#: src/admin.php:5426, src/admin.php:5429
|
641 |
msgid "You can find your temporary clone information in your updraftplus.com account here."
|
642 |
+
msgstr "Μπορείτε να βρείτε τις προσωρινές σας πληροφορίες για τους κλώνους σας στον λογαριασμό σαςα του updraftplus.com εδώ."
|
643 |
|
644 |
#: src/class-updraftplus.php:4177
|
645 |
msgid "Choose a default for each table"
|
646 |
+
msgstr "Επιλέξτε μια προεπιλογή για κάθε πίνακα"
|
647 |
|
648 |
#: src/admin.php:3276
|
649 |
msgid "Sending files to remote site"
|
650 |
+
msgstr "Αποστολή αρχείων σε απομακρυσμένη τοποθεσία"
|
651 |
|
652 |
#: src/admin.php:3271
|
653 |
msgid "Clone server being provisioned and booted (can take several minutes)"
|
654 |
+
msgstr "Ο διακομιστής κλωνοποίησης ρυθμίζεται και εκκινείται (μπορεί να διαρκέσει αρκετά λεπτά)"
|
655 |
|
656 |
#: src/admin.php:942
|
657 |
msgid "Warning: you have selected a lower version than your currently installed version. This may fail if you have components that are incompatible with earlier versions."
|
658 |
+
msgstr "Προειδοποίηση: έχετε επιλέξει μια χαμηλότερη έκδοση από την τρέχουσα έκδοση. Η διαδικασία μπορεί να αποτύχει αν υπάρχουν στοιχεία που δεν είναι συμβατά με προηγούμενες εκδόσεις."
|
659 |
|
660 |
#: src/addons/migrator.php:233
|
661 |
msgid "To import a backup set, go to the \"Existing Backups\" section in the \"Backup/Restore\" tab"
|
662 |
+
msgstr "Για να εισαγάγετε ένα σετ αντιγράφων ασφαλείας, μεταβείτε στην ενότητα \"Υπάρχοντα αντίγραφα ασφαλείας\" στην καρτέλα \"Δημιουργία αντιγράφων ασφαλείας / επαναφορά\""
|
663 |
|
664 |
#: src/admin.php:2798
|
665 |
msgid "Backup / Restore"
|
666 |
+
msgstr "Λήψη αντιγράφου ασφαλείας / Επαναφορά"
|
667 |
|
668 |
#: src/admin.php:663
|
669 |
msgid "Backup"
|
670 |
+
msgstr "Λήψη αντιγράφου ασφαλείας"
|
671 |
|
672 |
#: src/addons/wp-cli.php:408
|
673 |
msgid "Latest full backup found; identifier:"
|
674 |
+
msgstr "Το τελευταίο πλήρες αντίγραφο ασφαλείας βρέθηκε, αναγνωριστικό:"
|
675 |
|
676 |
#: src/addons/wp-cli.php:407
|
677 |
msgid "No previous full backup found."
|
678 |
+
msgstr "Δεν βρέθηκε προηγούμενο πλήρες αντίγραφο ασφαλείας."
|
679 |
|
680 |
#: src/templates/wp-admin/settings/existing-backups-table.php:89
|
681 |
msgid "Remote storage: %s"
|
682 |
+
msgstr "Απομακρυσμένος χώρος αποθήκευσης: %s"
|
683 |
|
684 |
#: src/addons/wp-cli.php:88
|
685 |
msgid "No previous backup found to add an increment to."
|
686 |
+
msgstr "Δεν βρέθηκε κανένα προηγούμενο αντίγραφο ασφαλείας για να προστεθούν στοιχεία σε αυτό."
|
687 |
|
688 |
#: src/restorer.php:2499
|
689 |
msgid "Requested character set (%s) is not present - changing to %s."
|
690 |
+
msgstr "Το απαιτούμενο σύνολο χαρακτήρων (%s) δεν υπάρχει - θα αλλαχτεί σε %s."
|
691 |
|
692 |
#: src/includes/updraftclone/temporary-clone-user-notice.php:32
|
693 |
msgid "Allow only administrators to log in"
|
694 |
+
msgstr "Να επιτρέπεται μόνο οι διαχειριστές να συνδεθούν"
|
695 |
|
696 |
#: src/includes/updraftclone/temporary-clone-user-notice.php:31
|
697 |
msgid "You can forbid non-admins logins to this cloned site by checking the checkbox below"
|
698 |
+
msgstr "Μπορείτε να απαγορεύσετε την είσοδο μη διαχειριστών σε αυτόν τον κλωνοποιημένο ιστότοπο, τσεκάροντας το παρακάτω πλαίσιο ελέγχου"
|
699 |
|
700 |
#: src/includes/updraftclone/temporary-clone-user-notice.php:30
|
701 |
msgid "UpdraftPlus temporary clone user login settings:"
|
702 |
+
msgstr "Ρυθμίσεις του UpdraftPlus για τη σύνδεση χρήστη στον προσωρινό κλώνο:"
|
703 |
|
704 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:39
|
705 |
msgid "Welcome to your UpdraftClone (temporary clone)"
|
706 |
+
msgstr "Καλώς ήρθατε στον προσωρινό σας κλώνο στο UpdraftPlus"
|
707 |
|
708 |
#: src/includes/updraftclone/temporary-clone-dash-notice.php:38
|
709 |
msgid "Refresh connection"
|
710 |
+
msgstr "Ανανέωση σύνδεσης"
|
711 |
|
712 |
#: src/addons/reporting.php:495
|
713 |
msgid "Log all messages to syslog"
|
714 |
+
msgstr "Καταγράψτε όλα τα μηνύματα στο syslog"
|
715 |
|
716 |
#: src/addons/sftp.php:601, src/addons/sftp.php:603
|
717 |
msgid "The server's RSA key %s fingerprint: %s."
|
718 |
+
msgstr "Το κλειδί RSA του διακομιστή %s δακτυλικών αποτυπωμάτων: %s."
|
719 |
|
720 |
#: src/addons/sftp.php:597
|
721 |
msgid "Failed: We are unable to match the fingerprint. However, we were able to log in and move to the indicated directory and successfully create a file in that location."
|
722 |
+
msgstr "Αποτυχία: Δεν είναι δυνατή η αντιστοίχιση του δακτυλικού αποτυπώματος. Ωστόσο, μπορέσαμε να συνδεθούμε και να προχωρήσουμε στον αναφερόμενο κατάλογο και να δημιουργήσουμε με επιτυχία ένα αρχείο σε αυτήν την τοποθεσία."
|
723 |
|
724 |
#: src/addons/sftp.php:478
|
725 |
msgid "MD5 (128-bit) fingerprint, in hex format - should have the same length and general appearance as this (colons optional): 73:51:43:b1:b5:fc:8b:b7:0a:3a:a9:b1:0f:69:73:a8. Using a fingerprint is not essential, but you are not secure against %s if you do not use one"
|
726 |
+
msgstr "Το αποτύπωμα MD5 (128 bit), σε δεκαεξαδική μορφή, θα πρέπει να έχει το ίδιο μήκος και γενική εμφάνιση με αυτό (προαιρετικά): 73:51:43:b1:b5:fc:8b:b7:0a:3a:a9:b1:0f:69:73:a8. Η χρήση ενός δακτυλικού αποτυπώματος δεν είναι απαραίτητη, αλλά δεν είστε ασφαλείς ενάντια στο %s εάν δεν το χρησιμοποιείτε"
|
727 |
|
728 |
#: src/addons/sftp.php:475
|
729 |
msgid "RSA fingerprint"
|
730 |
+
msgstr "Δακτυλικό αποτύπωμα RSA"
|
731 |
|
732 |
#: src/addons/sftp.php:82
|
733 |
msgid "Fingerprints don't match."
|
734 |
+
msgstr "Τα δακτυλικά αποτυπώματα δεν ταιριάζουν."
|
735 |
|
736 |
#: src/templates/wp-admin/settings/migrator-no-migrator.php:17
|
737 |
msgid "More information here."
|
738 |
+
msgstr "Περισσότερες πληροφορίες εδώ."
|
739 |
|
740 |
#: src/admin.php:671, src/admin.php:2799
|
741 |
msgid "Migrate / Clone"
|
742 |
+
msgstr "Κλωνοποίηση / Μετανάστευση"
|
743 |
|
744 |
#: src/admin.php:3036, src/admin.php:3961,
|
745 |
#: src/templates/wp-admin/settings/existing-backups-table.php:73,
|
746 |
#: src/templates/wp-admin/settings/existing-backups-table.php:76
|
747 |
msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
|
748 |
+
msgstr "Καταστήστε αυτό το αντίγραφο ασφαλείας να μπορεί να διαγραφεί με μη αυτόματο τρόπο (δηλαδή διατηρήστε το ακόμα και αν ξεπεραστούν τα όρια διατήρησης)."
|
749 |
|
750 |
#: src/addons/wp-cli.php:834
|
751 |
msgid "You have given the %1$s option. The %1$s is working with \"%2$s\" addon. Get the \"%2$s\" addon: %3$s"
|
752 |
+
msgstr "Μόλις κάνατε την επιλογή %1$s. Το %1$s συνεργάζεται με το πρόσθετο \"%2$s\". Αποκτήστε το πρόσθετο \"%2$s\": %3$s"
|
753 |
|
754 |
#: src/addons/wp-cli.php:793
|
755 |
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
|
756 |
+
msgstr "Η εγκατάστασή της WordPress σας έχει παλιούς καταλόγους από την κατάστασή της πριν αποκατασταθεί / μετεγκατασταθεί (τεχνικές πληροφορίες: αυτές έχουν επισημανθεί με το πρόθεμα -old)."
|
757 |
|
758 |
#: src/addons/wp-cli.php:739, src/addons/wp-cli.php:743
|
759 |
msgid "This is not an incremental backup"
|
760 |
+
msgstr "Αυτό δεν είναι ένα κανονικό αντίγραφο ασφαλείας"
|
761 |
|
762 |
#: src/addons/wp-cli.php:665
|
763 |
msgid "Run this command to see the log file for this restoration (needed for any support requests)."
|
764 |
+
msgstr "Εκτελέστε αυτήν την εντολή για να δείτε το αρχείο καταγραφής για αυτήν την αποκατάσταση (απαιτείται για οποιαδήποτε αιτήματα υποστήριξης)."
|
765 |
|
766 |
#: src/class-updraftplus.php:188
|
767 |
msgid "A version of UpdraftPlus is already installed. WordPress will only allow you to install your new version after first de-installing the existing one. That is safe - all your settings and backups will be retained. So, go to the \"Plugins\" page, de-activate and de-install UpdraftPlus, and then try again."
|
768 |
+
msgstr "Μια έκδοση του UpdraftPlus είναι ήδη εγκατεστημένη. Η WordPress θα σας επιτρέψει να εγκαταστήσετε τη νέα έκδοση μόνο αφού πρώτα απεγκαταστήσετε την υπάρχουσα. Αυτή είναι η ασφαλέστερη διαδικασία - ενώ όλες οι ρυθμίσεις και τα αντίγραφα ασφαλείας θα διατηρηθούν. Έτσι, μεταβείτε στη σελίδα \"Πρόσθετα\", απενεργοποιήστε και απεγκαταστήστε το UpdraftPlus και στη συνέχεια δοκιμάστε ξανά."
|
769 |
|
770 |
#: src/admin.php:5402
|
771 |
msgid "(current version)"
|
772 |
+
msgstr "(τρέχουσα έκδοση)"
|
773 |
|
774 |
#: src/admin.php:3738
|
775 |
msgid "press here"
|
776 |
+
msgstr "πατήστε εδώ"
|
777 |
|
778 |
#: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
|
779 |
#: src/methods/googledrive.php:1214
|
780 |
msgid "this privacy policy"
|
781 |
+
msgstr "αυτή την πολιτική απορρήτου"
|
782 |
|
783 |
#: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
|
784 |
#: src/methods/googledrive.php:1214
|
785 |
msgid "Please read %s for use of our %s authorization app (none of your backup data is sent to us)."
|
786 |
+
msgstr "Διαβάστε το %s για χρήση της εφαρμογής εξουσιοδότησης %s (κανένα από τα δεδομένα αντιγράφων ασφαλείας δεν αποστέλλεται σε εμάς)."
|
787 |
|
788 |
#: src/addons/incremental.php:270
|
789 |
msgid "Tell me more"
|
790 |
+
msgstr "Πείτε μας περισσότερα"
|
791 |
|
792 |
#: src/addons/incremental.php:258
|
793 |
msgid "And then add an incremental backup"
|
794 |
+
msgstr "Στη συνέχεια, προσθέστε ένα κανονικό αντίγραφο ασφαλείας"
|
795 |
|
796 |
#: src/addons/incremental.php:236, src/updraftplus.php:99
|
797 |
msgid "Every hour"
|
798 |
+
msgstr "Κάθε ώρα"
|
799 |
|
800 |
#: src/includes/class-commands.php:900
|
801 |
msgid "Create clone"
|
802 |
+
msgstr "Δημιουργία κλώνου"
|
803 |
|
804 |
#: src/includes/class-commands.php:892, src/includes/class-commands.php:937
|
805 |
msgid "Available temporary clone tokens:"
|
806 |
+
msgstr "Διαθέσιμες μονάδες χρήσης προσωρινών κλώνων:"
|
807 |
|
808 |
#: src/admin.php:2886, src/includes/class-commands.php:901,
|
809 |
#: src/includes/class-commands.php:949,
|
810 |
#: src/templates/wp-admin/settings/temporary-clone.php:83,
|
811 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:71
|
812 |
msgid "Processing"
|
813 |
+
msgstr "Επεξεργασία"
|
814 |
|
815 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:70
|
816 |
msgid "Connect to UpdraftCentral Cloud"
|
817 |
+
msgstr "Σύνδεση στο UpdraftCentral Cloud"
|
818 |
|
819 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:68
|
820 |
msgid "UpdraftPlus.Com account terms and policies"
|
821 |
+
msgstr "Όροι και πολιτικές του λογαριασμού UpdraftPlus.Com"
|
822 |
|
823 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:68
|
824 |
msgid "I consent to %s"
|
825 |
+
msgstr "Συναινώ στο %s"
|
826 |
|
827 |
#: src/admin.php:2984,
|
828 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:56
|
829 |
msgid "One Time Password (check your OTP app to get this password)"
|
830 |
+
msgstr "Κωδικός πρόσβασης μιας χρήσης (ελέγξτε την εφαρμογή OTP για να αποκτήσετε αυτόν τον κωδικό πρόσβασης)"
|
831 |
|
832 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:46
|
833 |
msgid "Login or register with this email address"
|
834 |
+
msgstr "Συνδεθείτε ή εγγραφείτε με αυτή τη διεύθυνση ηλεκτρονικού ταχυδρομείου"
|
835 |
|
836 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:34
|
837 |
msgid "If not, then choose your details and a new account will be registered."
|
838 |
+
msgstr "Εάν όχι, επιλέξτε τα στοιχεία σας και θα δημιουργηθεί ένας νέος λογαριασμός."
|
839 |
|
840 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:33
|
841 |
msgid "If you already have an updraftplus.com account, then enter the details below."
|
842 |
+
msgstr "Αν έχετε ήδη λογαριασμό στο updraftplus.com, εισάγετε τα παρακάτω στοιχεία."
|
843 |
|
844 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:31
|
845 |
msgid "Add this website to your UpdraftCentral Cloud dashboard at updraftplus.com."
|
846 |
+
msgstr "Προσθέστε αυτή την ιστοσελίδα στον πίνακα ελέγχου του UpdraftCentral Cloud στο updraftplus.com."
|
847 |
|
848 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:29
|
849 |
msgid "Login or register for UpdraftCentral Cloud"
|
850 |
+
msgstr "Σύνδεση ή εγγραφή στο UpdraftCentral Cloud"
|
851 |
|
852 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:20
|
853 |
msgid "Go here to connect it."
|
854 |
+
msgstr "Πηγαίνετε εδώ για να συνδεθείτε."
|
855 |
|
856 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:20
|
857 |
msgid "Or if you prefer to self-host, then you can get the self-hosted version here."
|
858 |
+
msgstr "Ή αν προτιμάτε να φιλοξενία σε δικό σας server, τότε μπορείτε να πάρετε την έκδοση το δικό σας server εδώ."
|
859 |
|
860 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:17
|
861 |
msgid "Connect this site to UpdraftCentral Cloud"
|
862 |
+
msgstr "Συνδέστε αυτόν τον ιστότοπο στο UpdraftCentral Cloud"
|
863 |
|
864 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:14
|
865 |
msgid "If you have a few sites, it'll save hours. It's free to use or try up to 5 sites."
|
866 |
+
msgstr "Αν έχετε μερικούς ιστότοπους, αυτό θα σας εξοικονομήσει χρόνο. Η χρήση είναι δωρεάν ή η δοκιμή έως μέχρι 5 ιστότοπους."
|
867 |
|
868 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:12
|
869 |
msgid "Backup, update and manage all your WordPress sites from one dashboard"
|
870 |
+
msgstr "Δημιουργήστε αντίγραφα ασφαλείας, ενημερώστε και διαχειριστείτε όλους τους ιστότοπους WordPress από έναν πίνακα ελέγχου"
|
871 |
|
872 |
#: src/includes/updraftcentral.php:21, src/includes/updraftplus-clone.php:21
|
873 |
msgid "An error has occurred while processing your request. The server might be busy or you have lost your connection to the internet at the time of the request. Please try again later."
|
874 |
+
msgstr "Παρουσιάστηκε σφάλμα κατά την επεξεργασία του αιτήματός σας. Ο διακομιστής μπορεί να είναι απασχολημένος ή χάθηκε η σύνδεσή σας στο διαδίκτυο τη στιγμή της αίτησης. Παρακαλώ δοκιμάστε ξανά αργότερα."
|
875 |
|
876 |
#: src/admin.php:5344
|
877 |
msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
|
878 |
msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
|
879 |
+
msgstr[0] "Το αρχείο %s έχει ένα \"byte order mark\" (BOM) στην αρχή του."
|
880 |
+
msgstr[1] "Τα αρχεία %s έχουν ένα \"byte order mark\" (BOM) στην αρχή του."
|
881 |
|
882 |
#: src/admin.php:940
|
883 |
msgid "For future control of all your UpdraftCentral connections, go to the \"Advanced Tools\" tab."
|
884 |
+
msgstr "Για μελλοντικό έλεγχο όλων των συνδέσεων στο UpdraftCentral, μεταβείτε στην καρτέλα \"Εργαλεία για προχωρημένους\"."
|
885 |
|
886 |
#: src/admin.php:939
|
887 |
msgid "You can also close this wizard."
|
888 |
+
msgstr "Μπορείτε επίσης να κλείσετε αυτόν τον οδηγό."
|
889 |
|
890 |
#: src/admin.php:938
|
891 |
msgid "You need to read and accept the UpdraftCentral Cloud data and privacy policies before you can proceed."
|
892 |
+
msgstr "Πρέπει να διαβάσετε και να αποδεχτείτε τις πολιτικές δεδομένων και ιδιωτικού απορρήτου του UpdraftCentral Cloud πριν προχωρήσετε."
|
893 |
|
894 |
#: src/admin.php:937
|
895 |
msgid "Please wait while you are redirected to UpdraftCentral Cloud."
|
896 |
+
msgstr "Περιμένετε μέχρι να γίνει ανακατεύθυνση στο UpdraftCentral Cloud."
|
897 |
|
898 |
#: src/admin.php:936
|
899 |
msgid "Please wait while the system generates and registers an encryption key for your website with UpdraftCentral Cloud."
|
900 |
+
msgstr "Περιμένετε έως ότου το σύστημα δημιουργήσει και καταχωρίσει ένα κλειδί κρυπτογράφησης για τον ιστότοπό σας με το UpdraftCentral Cloud."
|
901 |
|
902 |
#: src/admin.php:935
|
903 |
msgid "Perhaps you would want to login instead."
|
904 |
+
msgstr "Ίσως αντί για αυτό καλό θα ήταν να συνδεθείτε."
|
905 |
|
906 |
#: src/admin.php:934
|
907 |
msgid "Trouble connecting? Try using an alternative method in the advanced security options."
|
908 |
+
msgstr "Πρόβλημα σύνδεσης; Δοκιμάστε να χρησιμοποιήσετε μια εναλλακτική μέθοδο στις προχωρημένες επιλογές ασφαλείας."
|
909 |
|
910 |
#: src/admin.php:933
|
911 |
msgid "An email is required and needs to be in a valid format."
|
912 |
+
msgstr "Απαιτείται ένα email και πρέπει να είναι σε έγκυρη μορφή."
|
913 |
|
914 |
#: src/admin.php:932
|
915 |
msgid "Both email and password fields are required."
|
916 |
+
msgstr "Απαιτείται να συμπληρώσετε και το email και τον κωδικό πρόσβασης."
|
917 |
|
918 |
#: src/admin.php:931
|
919 |
msgid "Registration successful."
|
920 |
+
msgstr "Επιτυχής εγγραφή."
|
921 |
|
922 |
#: src/admin.php:930, src/admin.php:931
|
923 |
msgid "Please follow this link to open %s in a new window."
|
924 |
+
msgstr "Ακολουθήστε αυτόν τον σύνδεσμο για να ανοίξετε το %s σε ένα νέο παράθυρο."
|
925 |
|
926 |
#: src/admin.php:930
|
927 |
msgid "Login successful."
|
928 |
+
msgstr "Επιτυχής σύνδεση."
|
929 |
|
930 |
#: src/admin.php:929,
|
931 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:9
|
932 |
msgid "UpdraftCentral Cloud"
|
933 |
+
msgstr "UpdraftCentral Cloud"
|
934 |
|
935 |
#: src/admin.php:489
|
936 |
msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
|
937 |
+
msgstr "Είστε βέβαιοι ότι θέλετε να καταργήσετε τη λήψη όλων των ειδήσεων του UpdraftPlus για πάντα;"
|
938 |
|
939 |
#: src/admin.php:488
|
940 |
msgid "Dismiss all UpdraftPlus news"
|
941 |
+
msgstr "Κατάργηση λήψης όλων των ειδήσεων του UpdraftPlus"
|
942 |
|
943 |
#: src/admin.php:487
|
944 |
msgid "UpdraftPlus News"
|
945 |
+
msgstr "Ειδήσεις του UpdraftPlus"
|
946 |
|
947 |
#: src/addons/wp-cli.php:553
|
948 |
msgid "Migration key created:"
|
949 |
+
msgstr "Δημιουργήθηκε το κλειδί μετανάστευσης:"
|
950 |
|
951 |
#: src/addons/wp-cli.php:543
|
952 |
msgid "Missing parameters"
|
953 |
+
msgstr "Λείπουν παράμετροι"
|
954 |
|
955 |
#: src/addons/azure.php:645
|
956 |
msgid "Azure Germany"
|
957 |
+
msgstr "Azure Γερμανία"
|
958 |
|
959 |
#: src/addons/azure.php:644
|
960 |
msgid "Azure Global"
|
961 |
+
msgstr "Azure Παγκόσμια"
|
962 |
|
963 |
#: src/addons/azure.php:641
|
964 |
msgid "Azure Account"
|
965 |
+
msgstr "Λογαριασμός Azure"
|
966 |
|
967 |
#: src/admin.php:928
|
968 |
msgid "Please specify the Microsoft OneDrive folder name, not the URL."
|
969 |
+
msgstr "Παρακαλούμε προσδιορίστε το όνομα του φακέλου Microsoft OneDrive και όχι τη διεύθυνση URL."
|
970 |
|
971 |
#: src/templates/wp-admin/settings/upload-backups-modal.php:4
|
972 |
msgid "Select the remote storage destinations you want to upload this backup set to"
|
973 |
+
msgstr "Επιλέξτε τους προορισμούς απομακρυσμένου αποθηκευτικού χώρου στον οποίο θέλετε να μεταφορτώσετε αυτό το σετ αντιγράφων ασφαλείας"
|
974 |
|
975 |
#: src/templates/wp-admin/settings/upload-backups-modal.php:3
|
976 |
msgid "Upload backup"
|
977 |
+
msgstr "Μεταφόρτωση αντιγράφου ασφαλείας"
|
978 |
|
979 |
#: src/admin.php:4248
|
980 |
msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
|
981 |
+
msgstr "Αφού πατήσετε αυτό το κουμπί, μπορείτε να επιλέξετε από πού να μεταφορτώσετε το αντίγραφο ασφαλείας από μια λίστα των αποθηκευμένων τοποθεσιών απομακρυσμένης αποθήκευσης"
|
982 |
|
983 |
#: src/admin.php:927
|
984 |
msgid "(already uploaded)"
|
985 |
+
msgstr "(έχει ήδη μεταφορτωθεί)"
|
986 |
|
987 |
#: src/admin.php:925
|
988 |
msgid "Local backup upload has started; please check the current status tab to see the upload progress"
|
989 |
+
msgstr "Έχει ξεκινήσει η τοπική μεταφόρτωση. Ελέγξτε την καρτέλα τρέχουσας κατάστασης για να δείτε την πρόοδο της μεταφόρτωσης"
|
990 |
|
991 |
#: src/admin.php:846, src/admin.php:4248
|
992 |
msgid "Upload"
|
993 |
+
msgstr "Μεταφόρτωση"
|
994 |
|
995 |
#: src/addons/reporting.php:529, src/admin.php:796
|
996 |
msgid "Only email the database backup"
|
1172 |
|
1173 |
#: src/templates/wp-admin/settings/tab-addons.php:26
|
1174 |
msgid "Get it here"
|
1175 |
+
msgstr "Αποκτήστε το εδώ"
|
1176 |
|
1177 |
#: src/methods/stream-base.php:323
|
1178 |
msgid "Download chunk size successfully changed to %d"
|
1614 |
|
1615 |
#: src/templates/wp-admin/advanced/wipe-settings.php:11
|
1616 |
msgid "UpdraftPlus Tour"
|
1617 |
+
msgstr "Περιήγηση στο UpdraftPlus"
|
1618 |
|
1619 |
#: src/templates/wp-admin/settings/tab-addons.php:232
|
1620 |
msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
|
1622 |
|
1623 |
#: src/templates/wp-admin/settings/tab-addons.php:219
|
1624 |
msgid "Some backup plugins can't restore a backup, so Premium allows you to restore backups from other plugins."
|
1625 |
+
msgstr "Ορισμένα πρόσθετα δημιουργίας αντιγράφων ασφαλείας δεν μπορούν να κάνουν επαναφορά, το Premium σας επιτρέπει να επαναφέρετε τα αντίγραφα ασφαλείας από άλλα πρόσθετα."
|
1626 |
|
1627 |
#: src/templates/wp-admin/settings/tab-addons.php:217,
|
1628 |
#: src/templates/wp-admin/settings/tab-addons.php:218
|
1699 |
|
1700 |
#: src/templates/wp-admin/settings/tab-addons.php:180
|
1701 |
msgid "Get enhanced versions of the free remote storage options (Dropbox, Google Drive & S3) and even more remote storage options like OneDrive, SFTP, Azure, WebDAV and more with UpdraftPlus Premium."
|
1702 |
+
msgstr "Αποκτήστε βελτιωμένες εκδόσεις των δωρεάν επιλογών απομακρυσμένης αποθήκευσης και ακόμα περισσότερες επιλογές αποθήκευσης όπως τα OneDrive, SFTP, Azure, WebDAV και πολλά άλλα με το UpdraftPlus Premium."
|
1703 |
|
1704 |
#: src/templates/wp-admin/settings/tab-addons.php:179
|
1705 |
msgid "Additional and enhanced remote storage locations"
|
1852 |
|
1853 |
#: src/includes/updraftplus-notices.php:251
|
1854 |
msgid "Spring sale - 20% off UpdraftPlus Premium until April 30th"
|
1855 |
+
msgstr "Εαρινές εκπτώσεις - 20% έκπτωση στο UpdraftPlus Premium μέχρι τις 30 Απριλίου"
|
1856 |
|
1857 |
#: src/includes/updraftplus-notices.php:238
|
1858 |
msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
|
2051 |
|
2052 |
#: src/methods/backup-module.php:549
|
2053 |
msgid "Follow this link to authorize access to your %s account (you will not be able to backup to %s without it)."
|
2054 |
+
msgstr "Ακολουθήστε αυτόν τον σύνδεσμο για να επιτρέψετε την πρόσβαση στον λογαριασμό σας %s (δεν θα μπορείτε να δημιουργήσετε αντίγραφα ασφαλείας για το %s χωρίς αυτό)."
|
2055 |
|
2056 |
#: src/admin.php:908
|
2057 |
msgid "remote files deleted"
|
3581 |
|
3582 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:12
|
3583 |
msgid "For personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more, take a look at the premium version of UpdraftPlus - the world's most popular backup plugin."
|
3584 |
+
msgstr "Για προσωπική υποστήριξη, για δυνατότητα αντιγραφής ιστότοπων, για περισσότερους προορισμούς αποθήκευσης, για κρυπτογραφημένα αντίγραφα ασφαλείας,για πολλαπλούς προορισμούς δημιουργίας αντιγράφων ασφαλείας, για καλύτερες αναφορές, χωρίς διαφημίσεις και πολλά άλλα, ρίξτε μια ματιά στη premium έκδοση του UpdraftPlus - το πιο δημοφιλές πρόσθετο λήψης αντιγράφων ασφαλείας στον κόσμο."
|
3585 |
|
3586 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:29
|
3587 |
msgid "UpdraftPlus news, high-quality training materials for WordPress developers and site-owners, and general WordPress news. You can de-subscribe at any time."
|
3732 |
|
3733 |
#: src/addons/morefiles.php:258
|
3734 |
msgid "Any other file/directory on your server that you wish to backup"
|
3735 |
+
msgstr "Οποιοδήποτε άλλο αρχείο/κατάλογο στο διακομιστή σας που θέλετε να δημιουργήσετε αντίγραφο ασφαλείας"
|
3736 |
|
3737 |
#: src/admin.php:2611
|
3738 |
msgid "For even more features and personal support, check out "
|
4258 |
|
4259 |
#: src/templates/wp-admin/settings/form-contents.php:233
|
4260 |
msgid "Backup more databases"
|
4261 |
+
msgstr "Κρατήστε αντίγραφα ασφαλείας για περισσότερες βάσεις δεδομένων"
|
4262 |
|
4263 |
#: src/templates/wp-admin/settings/form-contents.php:192
|
4264 |
msgid "First, enter the decryption key"
|
5180 |
|
5181 |
#: src/options.php:208
|
5182 |
msgid "Without upgrading, UpdraftPlus allows <strong>every</strong> blog admin who can modify plugin settings to backup (and hence access the data, including passwords, from) and restore (including with customized modifications, e.g. changed passwords) <strong>the entire network</strong>."
|
5183 |
+
msgstr "Χωρίς την αναβάθμιση, το UpdraftPlus επιτρέπει σε <strong>κάθε</strong> διαχειριστή του ιστολογίου σας να μπορεί να τροποποιήσει τις ρυθμίσεις του πρόσθετου για να δημιουργήσει αντίγραφα ασφαλείας (και ως εκ τούτου να έχει πρόσβαση στα δεδομένα, συμπεριλαμβανομένων και των κωδικών πρόσβασης) και να κάνει επαναφορά (μεταξύ άλλων και με προσαρμοσμένες τροποποιήσεις, π.χ. να αλλάξει τους κωδικούς πρόσβασης) <strong>στο σύνολο του δικτύου σας</strong>."
|
5184 |
|
5185 |
#: src/options.php:208
|
5186 |
msgid "WordPress Multisite is supported, with extra features, by UpdraftPlus Premium, or the Multisite add-on."
|
5937 |
|
5938 |
#: src/class-updraftplus.php:3945, src/class-updraftplus.php:3965
|
5939 |
msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
|
5940 |
+
msgstr "Αυτό το σετ αντιγράφων ασφαλείας είναι από διαφορετικό ιστοσελίδα (%s) - αυτή δεν είναι μια διαδικασία επαναφοράς αλλά είναι διαδικασία μετανάστευσης. Χρειάζεται και το πρόσθετο Migrator για να γίνει αυτή η λειτουργία."
|
5941 |
|
5942 |
#: src/addons/fixtime.php:571
|
5943 |
msgid "The time zone used is that from your WordPress settings, in Settings -> General."
|
6245 |
|
6246 |
#: src/methods/s3.php:482
|
6247 |
msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
|
6248 |
+
msgstr "%s Σφάλμα: Αποτυχία πρόσβασης στον φάκελο %s. Ελέγξτε τα δικαιώματα και τις διαπιστεύσεις σας.1"
|
6249 |
|
6250 |
#: src/addons/dropbox-folders.php:32
|
6251 |
msgid "Store at"
|
6505 |
|
6506 |
#: src/methods/dropbox.php:603, src/methods/dropbox.php:605
|
6507 |
msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
|
6508 |
+
msgstr "Εάν κάνετε αντίγραφα ασφαλείας για πολλές ιστοσελίδες στον ίδιο φάκελο του Dropbox και χρειάζεται να τα οργανώσετε σε υπο-φακέλους, τότε "
|
6509 |
|
6510 |
#: src/methods/dropbox.php:603, src/methods/dropbox.php:605
|
6511 |
msgid "Backups are saved in"
|
6521 |
|
6522 |
#: src/methods/dropbox.php:195
|
6523 |
msgid "error: %s (see log file for more)"
|
6524 |
+
msgstr "σφάλμα: %s (ανατρέξτε στο αρχείο καταγραφής για περισσότερα)"
|
6525 |
|
6526 |
#: src/methods/dropbox.php:173, src/methods/dropbox.php:190
|
6527 |
msgid "You do not appear to be authenticated with Dropbox"
|
Binary file
|
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-12-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -149,7 +149,7 @@ msgstr ""
|
|
149 |
#: src/templates/wp-admin/settings/exclude-modal.php:56,
|
150 |
#: src/templates/wp-admin/settings/exclude-modal.php:58
|
151 |
msgid "All files beginning with these characters"
|
152 |
-
msgstr ""
|
153 |
|
154 |
#: src/templates/wp-admin/settings/exclude-modal.php:47
|
155 |
msgid "Type an extension like zip"
|
@@ -247,7 +247,7 @@ msgstr ""
|
|
247 |
|
248 |
#: src/admin.php:3828
|
249 |
msgid "Exclude these from"
|
250 |
-
msgstr ""
|
251 |
|
252 |
#: src/admin.php:952
|
253 |
msgid "The exclusion rule which you are trying to add already exists"
|
@@ -303,7 +303,7 @@ msgstr ""
|
|
303 |
|
304 |
#: src/admin.php:5423
|
305 |
msgid "Front page:"
|
306 |
-
msgstr ""
|
307 |
|
308 |
#: src/admin.php:5422
|
309 |
msgid "Your clone has started and will be available at the following URLs once it is ready."
|
@@ -436,7 +436,7 @@ msgstr ""
|
|
436 |
|
437 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
438 |
msgid "Press the buttons... UpdraftClone does the work."
|
439 |
-
msgstr ""
|
440 |
|
441 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
442 |
msgid "Easy"
|
@@ -533,7 +533,7 @@ msgstr ""
|
|
533 |
#: src/includes/updraftplus-tour.php:153,
|
534 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
535 |
msgid "Find out more here."
|
536 |
-
msgstr ""
|
537 |
|
538 |
#: src/includes/updraftplus-tour.php:125
|
539 |
msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
|
@@ -683,7 +683,7 @@ msgstr ""
|
|
683 |
|
684 |
#: src/addons/wp-cli.php:88
|
685 |
msgid "No previous backup found to add an increment to."
|
686 |
-
msgstr ""
|
687 |
|
688 |
#: src/restorer.php:2499
|
689 |
msgid "Requested character set (%s) is not present - changing to %s."
|
@@ -715,7 +715,7 @@ msgstr ""
|
|
715 |
|
716 |
#: src/addons/sftp.php:601, src/addons/sftp.php:603
|
717 |
msgid "The server's RSA key %s fingerprint: %s."
|
718 |
-
msgstr ""
|
719 |
|
720 |
#: src/addons/sftp.php:597
|
721 |
msgid "Failed: We are unable to match the fingerprint. However, we were able to log in and move to the indicated directory and successfully create a file in that location."
|
@@ -727,7 +727,7 @@ msgstr ""
|
|
727 |
|
728 |
#: src/addons/sftp.php:475
|
729 |
msgid "RSA fingerprint"
|
730 |
-
msgstr ""
|
731 |
|
732 |
#: src/addons/sftp.php:82
|
733 |
msgid "Fingerprints don't match."
|
@@ -938,7 +938,7 @@ msgstr ""
|
|
938 |
|
939 |
#: src/admin.php:488
|
940 |
msgid "Dismiss all UpdraftPlus news"
|
941 |
-
msgstr ""
|
942 |
|
943 |
#: src/admin.php:487
|
944 |
msgid "UpdraftPlus News"
|
@@ -1324,7 +1324,7 @@ msgstr ""
|
|
1324 |
|
1325 |
#: src/central/bootstrap.php:421
|
1326 |
msgid "There are no UpdraftCentral dashboards that can currently control this site."
|
1327 |
-
msgstr ""
|
1328 |
|
1329 |
#: src/central/bootstrap.php:258
|
1330 |
msgid "You can now control this site via your UpdraftCentral dashboard at %s."
|
@@ -1489,7 +1489,7 @@ msgstr ""
|
|
1489 |
|
1490 |
#: src/methods/cloudfiles.php:495
|
1491 |
msgid "Cloud Files"
|
1492 |
-
msgstr ""
|
1493 |
|
1494 |
#: src/admin.php:4934
|
1495 |
msgid "Your settings failed to save. Please refresh the settings page and try again"
|
@@ -1510,7 +1510,7 @@ msgstr ""
|
|
1510 |
|
1511 |
#: src/includes/class-wpadmin-commands.php:520
|
1512 |
msgid "Extra database"
|
1513 |
-
msgstr ""
|
1514 |
|
1515 |
#: src/admin.php:4104
|
1516 |
msgid "Press here to download or browse"
|
@@ -1526,7 +1526,7 @@ msgstr ""
|
|
1526 |
|
1527 |
#: src/admin.php:915
|
1528 |
msgid "Loading log file"
|
1529 |
-
msgstr ""
|
1530 |
|
1531 |
#: src/admin.php:914
|
1532 |
msgid "Unable to download file. This could be caused by a timeout. It would be best to download the zip to your computer."
|
@@ -1566,7 +1566,7 @@ msgstr ""
|
|
1566 |
|
1567 |
#: src/admin.php:3022
|
1568 |
msgid "All WordPress tables will be backed up."
|
1569 |
-
msgstr ""
|
1570 |
|
1571 |
#: src/admin.php:910
|
1572 |
msgid "Further information may be found in the browser JavaScript console, and the server PHP error logs."
|
@@ -1716,7 +1716,7 @@ msgstr ""
|
|
1716 |
#: src/templates/wp-admin/settings/tab-addons.php:56,
|
1717 |
#: src/templates/wp-admin/settings/tab-addons.php:264
|
1718 |
msgid "Upgrade now"
|
1719 |
-
msgstr ""
|
1720 |
|
1721 |
#: src/templates/wp-admin/settings/tab-addons.php:53,
|
1722 |
#: src/templates/wp-admin/settings/tab-addons.php:261
|
@@ -1796,7 +1796,7 @@ msgstr ""
|
|
1796 |
|
1797 |
#: src/addons/s3-enhanced.php:372
|
1798 |
msgid "Europe (Ireland)"
|
1799 |
-
msgstr ""
|
1800 |
|
1801 |
#: src/includes/updraftplus-tour.php:142,
|
1802 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
|
@@ -1856,7 +1856,7 @@ msgstr ""
|
|
1856 |
|
1857 |
#: src/includes/updraftplus-notices.php:238
|
1858 |
msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
|
1859 |
-
msgstr ""
|
1860 |
|
1861 |
#: src/includes/updraftplus-notices.php:225
|
1862 |
msgid "Christmas sale - 20% off UpdraftPlus Premium until December 25th"
|
@@ -1901,7 +1901,7 @@ msgstr ""
|
|
1901 |
|
1902 |
#: src/includes/updraftplus-notices.php:91
|
1903 |
msgid "Introducing UpdraftCentral"
|
1904 |
-
msgstr ""
|
1905 |
|
1906 |
#: src/includes/updraftplus-notices.php:82
|
1907 |
msgid "Copy your site to another domain directly. Includes find-and-replace tool for database references."
|
@@ -2023,7 +2023,7 @@ msgstr ""
|
|
2023 |
|
2024 |
#: src/methods/dropbox.php:790
|
2025 |
msgid "%s de-authentication"
|
2026 |
-
msgstr ""
|
2027 |
|
2028 |
#: src/methods/dropbox.php:636
|
2029 |
msgid "You must add the following as the authorised redirect URI in your Dropbox console (under \"API Settings\") when asked"
|
@@ -2120,7 +2120,7 @@ msgstr ""
|
|
2120 |
|
2121 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:54
|
2122 |
msgid "or to restore manually"
|
2123 |
-
msgstr ""
|
2124 |
|
2125 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:54
|
2126 |
msgid "This makes time-outs much more likely. You are recommended to turn safe_mode off, or to restore only one entity at a time"
|
@@ -2242,7 +2242,7 @@ msgstr ""
|
|
2242 |
#: src/addons/migrator.php:1765, src/central/bootstrap.php:544,
|
2243 |
#: src/central/bootstrap.php:545, src/central/bootstrap.php:547
|
2244 |
msgid "%s bits"
|
2245 |
-
msgstr ""
|
2246 |
|
2247 |
#: src/addons/migrator.php:1760, src/central/bootstrap.php:542
|
2248 |
msgid "Encryption key size:"
|
@@ -2262,7 +2262,7 @@ msgstr ""
|
|
2262 |
|
2263 |
#: src/methods/ftp.php:440
|
2264 |
msgid "This is sometimes caused by a firewall - try turning off SSL in the expert settings, and testing again."
|
2265 |
-
msgstr ""
|
2266 |
|
2267 |
#: src/methods/ftp.php:412
|
2268 |
msgid "login"
|
@@ -2321,7 +2321,7 @@ msgstr ""
|
|
2321 |
|
2322 |
#: src/central/bootstrap.php:536
|
2323 |
msgid "Enter any description"
|
2324 |
-
msgstr ""
|
2325 |
|
2326 |
#: src/central/bootstrap.php:535
|
2327 |
msgid "Description"
|
@@ -2389,7 +2389,7 @@ msgstr ""
|
|
2389 |
|
2390 |
#: src/central/bootstrap.php:57
|
2391 |
msgid "UpdraftCentral Connection"
|
2392 |
-
msgstr ""
|
2393 |
|
2394 |
#: src/backup.php:1042, src/class-updraftplus.php:2973
|
2395 |
msgid "The backup was aborted by the user"
|
@@ -2409,7 +2409,7 @@ msgstr "pysäkki"
|
|
2409 |
|
2410 |
#: src/admin.php:905, src/admin.php:3209
|
2411 |
msgid "The backup has finished running"
|
2412 |
-
msgstr ""
|
2413 |
|
2414 |
#: src/templates/wp-admin/advanced/tools-menu.php:30,
|
2415 |
#: src/templates/wp-admin/advanced/wipe-settings.php:5,
|
@@ -2561,7 +2561,7 @@ msgstr ""
|
|
2561 |
|
2562 |
#: src/templates/wp-admin/settings/form-contents.php:93
|
2563 |
msgid "Sending Your Backup To Remote Storage"
|
2564 |
-
msgstr ""
|
2565 |
|
2566 |
#: src/templates/wp-admin/settings/form-contents.php:58
|
2567 |
msgid "Database backup schedule"
|
@@ -2691,7 +2691,7 @@ msgstr ""
|
|
2691 |
|
2692 |
#: src/addons/googlecloud.php:48, src/addons/googlecloud.php:49
|
2693 |
msgid "Eastern United States"
|
2694 |
-
msgstr ""
|
2695 |
|
2696 |
#: src/addons/googlecloud.php:47
|
2697 |
msgid "Central United States"
|
@@ -2724,7 +2724,7 @@ msgstr ""
|
|
2724 |
|
2725 |
#: src/addons/googlecloud.php:38, src/addons/s3-enhanced.php:66
|
2726 |
msgid "Standard"
|
2727 |
-
msgstr ""
|
2728 |
|
2729 |
#: src/addons/azure.php:638
|
2730 |
msgid "container"
|
@@ -2736,7 +2736,7 @@ msgstr ""
|
|
2736 |
|
2737 |
#: src/addons/azure.php:637
|
2738 |
msgid "optional"
|
2739 |
-
msgstr ""
|
2740 |
|
2741 |
#: src/addons/azure.php:633
|
2742 |
msgid "See Microsoft's guidelines on container naming by following this link."
|
@@ -2833,7 +2833,7 @@ msgstr ""
|
|
2833 |
|
2834 |
#: src/addons/googlecloud.php:1032
|
2835 |
msgid "Project ID"
|
2836 |
-
msgstr ""
|
2837 |
|
2838 |
#: src/addons/googlecloud.php:759
|
2839 |
msgid "You must save and authenticate before you can test your settings."
|
@@ -2907,7 +2907,7 @@ msgstr "Käsitellään..."
|
|
2907 |
|
2908 |
#: src/admin.php:888
|
2909 |
msgid "For backups older than"
|
2910 |
-
msgstr ""
|
2911 |
|
2912 |
#: src/admin.php:887
|
2913 |
msgid "week(s)"
|
@@ -2975,7 +2975,7 @@ msgstr ""
|
|
2975 |
|
2976 |
#: src/addons/s3-enhanced.php:73
|
2977 |
msgid "Check this box to use Amazon's server-side encryption"
|
2978 |
-
msgstr ""
|
2979 |
|
2980 |
#: src/addons/s3-enhanced.php:72
|
2981 |
msgid "Server-side encryption"
|
@@ -3020,7 +3020,7 @@ msgstr ""
|
|
3020 |
#: src/methods/updraftvault.php:466, src/methods/updraftvault.php:482,
|
3021 |
#: src/methods/updraftvault.php:484, src/methods/updraftvault.php:542
|
3022 |
msgid "Get more quota"
|
3023 |
-
msgstr ""
|
3024 |
|
3025 |
#: src/methods/updraftvault.php:463, src/methods/updraftvault.php:479,
|
3026 |
#: src/methods/updraftvault.php:523
|
@@ -3029,7 +3029,7 @@ msgstr "Tämänhetkinen käyttö:"
|
|
3029 |
|
3030 |
#: src/methods/updraftvault.php:458
|
3031 |
msgid "You can get more quota here"
|
3032 |
-
msgstr ""
|
3033 |
|
3034 |
#: src/methods/updraftvault.php:458
|
3035 |
msgid "%s Error: you have insufficient storage quota available (%s) to upload this archive (%s)."
|
@@ -3076,7 +3076,7 @@ msgstr ""
|
|
3076 |
|
3077 |
#: src/methods/updraftvault.php:348
|
3078 |
msgid "Subscriptions can be cancelled at any time."
|
3079 |
-
msgstr ""
|
3080 |
|
3081 |
#: src/methods/updraftvault.php:331, src/methods/updraftvault.php:337,
|
3082 |
#: src/methods/updraftvault.php:343
|
@@ -3183,7 +3183,7 @@ msgstr ""
|
|
3183 |
|
3184 |
#: src/includes/class-remote-send.php:345
|
3185 |
msgid "Also send this backup to the active remote storage locations"
|
3186 |
-
msgstr ""
|
3187 |
|
3188 |
#: src/includes/class-remote-send.php:310
|
3189 |
msgid "The site URL you are sending to (%s) looks like a local development website. If you are sending from an external network, it is likely that a firewall will be blocking this."
|
@@ -3377,7 +3377,7 @@ msgstr ""
|
|
3377 |
|
3378 |
#: src/udaddons/updraftplus-addons.php:996
|
3379 |
msgid "Go here to re-enter your password."
|
3380 |
-
msgstr ""
|
3381 |
|
3382 |
#: src/addons/migrator.php:271
|
3383 |
msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
|
@@ -3444,7 +3444,7 @@ msgstr ""
|
|
3444 |
|
3445 |
#: src/addons/s3-enhanced.php:392
|
3446 |
msgid "S3 bucket"
|
3447 |
-
msgstr ""
|
3448 |
|
3449 |
#: src/addons/s3-enhanced.php:382
|
3450 |
msgid "China (Beijing) (restricted)"
|
@@ -3464,7 +3464,7 @@ msgstr ""
|
|
3464 |
|
3465 |
#: src/addons/s3-enhanced.php:377
|
3466 |
msgid "Asia Pacific (Singapore)"
|
3467 |
-
msgstr ""
|
3468 |
|
3469 |
#: src/addons/s3-enhanced.php:370
|
3470 |
msgid "US Government West (restricted)"
|
@@ -3553,7 +3553,7 @@ msgstr ""
|
|
3553 |
|
3554 |
#: src/addons/s3-enhanced.php:161
|
3555 |
msgid "Cannot create new AWS user, since the old AWS toolkit is being used."
|
3556 |
-
msgstr ""
|
3557 |
|
3558 |
#: src/addons/s3-enhanced.php:134
|
3559 |
msgid "You need to enter a bucket"
|
@@ -3618,7 +3618,7 @@ msgstr ""
|
|
3618 |
|
3619 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
|
3620 |
msgid "Go to the shop."
|
3621 |
-
msgstr ""
|
3622 |
|
3623 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
|
3624 |
msgid "Compare with the free version"
|
@@ -4136,7 +4136,7 @@ msgstr ""
|
|
4136 |
|
4137 |
#: src/templates/wp-admin/advanced/site-info.php:74
|
4138 |
msgid "Free disk space in account:"
|
4139 |
-
msgstr ""
|
4140 |
|
4141 |
#: src/admin.php:4900, src/templates/wp-admin/settings/take-backup.php:50
|
4142 |
msgid "This button is disabled because your backup directory is not writable (see the settings)."
|
@@ -4216,7 +4216,7 @@ msgstr ""
|
|
4216 |
|
4217 |
#: src/addons/moredatabase.php:104
|
4218 |
msgid "database connection attempt failed"
|
4219 |
-
msgstr ""
|
4220 |
|
4221 |
#: src/addons/moredatabase.php:93
|
4222 |
msgid "database name"
|
@@ -4228,11 +4228,11 @@ msgstr ""
|
|
4228 |
|
4229 |
#: src/addons/moredatabase.php:89
|
4230 |
msgid "user"
|
4231 |
-
msgstr ""
|
4232 |
|
4233 |
#: src/class-updraftplus.php:1736
|
4234 |
msgid "External database (%s)"
|
4235 |
-
msgstr ""
|
4236 |
|
4237 |
#: src/methods/googledrive.php:1207
|
4238 |
msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
|
@@ -4286,7 +4286,7 @@ msgstr ""
|
|
4286 |
|
4287 |
#: src/includes/class-wpadmin-commands.php:149
|
4288 |
msgid "Only the WordPress database can be restored; you will need to deal with the external database manually."
|
4289 |
-
msgstr ""
|
4290 |
|
4291 |
#: src/restorer.php:2284, src/restorer.php:2753, src/restorer.php:2794,
|
4292 |
#: src/restorer.php:2807
|
@@ -4475,7 +4475,7 @@ msgstr ""
|
|
4475 |
#: src/templates/wp-admin/settings/form-contents.php:182,
|
4476 |
#: src/templates/wp-admin/settings/tab-backups.php:74
|
4477 |
msgid "This feature requires %s version %s or later"
|
4478 |
-
msgstr ""
|
4479 |
|
4480 |
#: src/restorer.php:531
|
4481 |
msgid "Failed to unpack the archive"
|
@@ -4496,7 +4496,7 @@ msgstr ""
|
|
4496 |
|
4497 |
#: src/udaddons/updraftplus-addons.php:259
|
4498 |
msgid "It has been tested up to version %s."
|
4499 |
-
msgstr ""
|
4500 |
|
4501 |
#: src/udaddons/updraftplus-addons.php:259
|
4502 |
msgid "The installed version of UpdraftPlus Backup/Restore has not been tested on your version of WordPress (%s)."
|
@@ -4612,7 +4612,7 @@ msgstr ""
|
|
4612 |
|
4613 |
#: src/admin.php:797
|
4614 |
msgid "Rescanning remote and local storage for backup sets..."
|
4615 |
-
msgstr ""
|
4616 |
|
4617 |
#: src/addons/googlecloud.php:1042, src/addons/googlecloud.php:1055,
|
4618 |
#: src/addons/s3-enhanced.php:63, src/addons/s3-enhanced.php:72
|
@@ -4671,7 +4671,7 @@ msgstr ""
|
|
4671 |
|
4672 |
#: src/udaddons/options.php:483
|
4673 |
msgid "Available to claim on this site"
|
4674 |
-
msgstr ""
|
4675 |
|
4676 |
#: src/udaddons/updraftplus-addons.php:288
|
4677 |
msgid "To maintain your access to support, please renew."
|
@@ -4824,7 +4824,7 @@ msgstr ""
|
|
4824 |
|
4825 |
#: src/addons/cloudfiles-enhanced.php:283
|
4826 |
msgid "Admin Username"
|
4827 |
-
msgstr ""
|
4828 |
|
4829 |
#: src/addons/cloudfiles-enhanced.php:278
|
4830 |
msgid "US or UK Rackspace Account"
|
@@ -4881,7 +4881,7 @@ msgstr ""
|
|
4881 |
|
4882 |
#: src/addons/cloudfiles-enhanced.php:76
|
4883 |
msgid "You need to enter an admin username"
|
4884 |
-
msgstr ""
|
4885 |
|
4886 |
#: src/addons/cloudfiles-enhanced.php:62
|
4887 |
msgid "Create a new API user with access to only this container (rather than your whole account)"
|
@@ -5038,7 +5038,7 @@ msgstr ""
|
|
5038 |
|
5039 |
#: src/addons/reporting.php:268
|
5040 |
msgid "Debugging information"
|
5041 |
-
msgstr ""
|
5042 |
|
5043 |
#: src/addons/reporting.php:223, src/admin.php:3992
|
5044 |
msgid "Uploaded to:"
|
@@ -5071,7 +5071,7 @@ msgstr ""
|
|
5071 |
|
5072 |
#: src/addons/reporting.php:171
|
5073 |
msgid "Backup Report"
|
5074 |
-
msgstr ""
|
5075 |
|
5076 |
#: src/addons/reporting.php:166
|
5077 |
msgid "%d hours, %d minutes, %d seconds"
|
@@ -5144,7 +5144,7 @@ msgstr ""
|
|
5144 |
|
5145 |
#: src/backup.php:1094
|
5146 |
msgid "Backed up: %s"
|
5147 |
-
msgstr ""
|
5148 |
|
5149 |
#: src/addons/reporting.php:265, src/backup.php:1088
|
5150 |
msgid "The log file has been attached to this email."
|
@@ -5160,7 +5160,7 @@ msgstr ""
|
|
5160 |
|
5161 |
#: src/backup.php:1049
|
5162 |
msgid "Database (files backup has not completed)"
|
5163 |
-
msgstr ""
|
5164 |
|
5165 |
#: src/backup.php:1046
|
5166 |
msgid "Files only (database was not part of this particular schedule)"
|
@@ -5192,7 +5192,7 @@ msgstr ""
|
|
5192 |
|
5193 |
#: src/options.php:208
|
5194 |
msgid "UpdraftPlus warning:"
|
5195 |
-
msgstr ""
|
5196 |
|
5197 |
#: src/udaddons/options.php:489
|
5198 |
msgid "(or connect using the form on this page if you have already purchased it)"
|
@@ -5216,7 +5216,7 @@ msgstr ""
|
|
5216 |
|
5217 |
#: src/udaddons/options.php:460, src/udaddons/options.php:460
|
5218 |
msgid "You've got it"
|
5219 |
-
msgstr ""
|
5220 |
|
5221 |
#: src/udaddons/options.php:421
|
5222 |
msgid "UpdraftPlus Support"
|
@@ -5285,7 +5285,7 @@ msgstr ""
|
|
5285 |
|
5286 |
#: src/backup.php:3424, src/class-updraftplus.php:861
|
5287 |
msgid "Your free space in your hosting account is very low - only %s Mb remain"
|
5288 |
-
msgstr ""
|
5289 |
|
5290 |
#: src/class-updraftplus.php:845
|
5291 |
msgid "The amount of memory (RAM) allowed for PHP is very low (%s Mb) - you should increase it to avoid failures due to insufficient memory (consult your web hosting company for more help)"
|
@@ -5377,7 +5377,7 @@ msgstr ""
|
|
5377 |
|
5378 |
#: src/admin.php:2929
|
5379 |
msgid "Connect with your UpdraftPlus.Com account"
|
5380 |
-
msgstr ""
|
5381 |
|
5382 |
#: src/udaddons/options.php:110
|
5383 |
msgid "You do seem to have the obsolete Updraft plugin installed - perhaps you got them confused?"
|
@@ -5424,7 +5424,7 @@ msgstr ""
|
|
5424 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:78,
|
5425 |
#: src/templates/wp-admin/settings/tab-backups.php:80
|
5426 |
msgid "Drop backup files here"
|
5427 |
-
msgstr ""
|
5428 |
|
5429 |
#: src/admin.php:804
|
5430 |
msgid "The web server returned an error code (try again, or check your web server logs)"
|
@@ -5486,7 +5486,7 @@ msgstr ""
|
|
5486 |
|
5487 |
#: src/addons/sftp.php:492
|
5488 |
msgid "Use SCP instead of SFTP"
|
5489 |
-
msgstr ""
|
5490 |
|
5491 |
#: src/addons/sftp.php:48
|
5492 |
msgid "SCP/SFTP user setting"
|
@@ -5506,7 +5506,7 @@ msgstr ""
|
|
5506 |
|
5507 |
#: src/admin.php:894
|
5508 |
msgid "%s settings test result:"
|
5509 |
-
msgstr ""
|
5510 |
|
5511 |
#: src/admin.php:4140, src/admin.php:4142
|
5512 |
msgid "(Not finished)"
|
@@ -5552,7 +5552,7 @@ msgstr ""
|
|
5552 |
|
5553 |
#: src/admin.php:3288
|
5554 |
msgid "Pruning old backup sets"
|
5555 |
-
msgstr ""
|
5556 |
|
5557 |
#: src/admin.php:3275
|
5558 |
msgid "Uploading files to remote storage"
|
@@ -5560,7 +5560,7 @@ msgstr "Lähetetään tiedostoja etäsäilöön"
|
|
5560 |
|
5561 |
#: src/admin.php:3344
|
5562 |
msgid "Encrypted database"
|
5563 |
-
msgstr ""
|
5564 |
|
5565 |
#: src/admin.php:3336
|
5566 |
msgid "Encrypting database"
|
@@ -5641,7 +5641,7 @@ msgstr ""
|
|
5641 |
|
5642 |
#: src/addons/autobackup.php:501
|
5643 |
msgid "Creating backup with UpdraftPlus..."
|
5644 |
-
msgstr ""
|
5645 |
|
5646 |
#: src/addons/autobackup.php:446, src/addons/autobackup.php:576,
|
5647 |
#: src/addons/autobackup.php:627
|
@@ -5682,7 +5682,7 @@ msgstr ""
|
|
5682 |
|
5683 |
#: src/addons/morefiles.php:190
|
5684 |
msgid "Unable to open zip file (%s) - could not pre-scan it to check its integrity."
|
5685 |
-
msgstr ""
|
5686 |
|
5687 |
#: src/addons/morefiles.php:180
|
5688 |
msgid "Unable to read zip file (%s) - could not pre-scan it to check its integrity."
|
@@ -5726,7 +5726,7 @@ msgstr "Automaattinen varmuuskopiointi tuo turvaa"
|
|
5726 |
|
5727 |
#: src/admin.php:2591
|
5728 |
msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
|
5729 |
-
msgstr ""
|
5730 |
|
5731 |
#: src/admin.php:840
|
5732 |
msgid "The file was uploaded."
|
@@ -5738,7 +5738,7 @@ msgstr ""
|
|
5738 |
|
5739 |
#: src/admin.php:838
|
5740 |
msgid "Unknown server response:"
|
5741 |
-
msgstr ""
|
5742 |
|
5743 |
#: src/admin.php:837
|
5744 |
msgid "This decryption key will be attempted:"
|
@@ -5766,7 +5766,7 @@ msgstr ""
|
|
5766 |
|
5767 |
#: src/admin.php:823
|
5768 |
msgid "Download to your computer"
|
5769 |
-
msgstr ""
|
5770 |
|
5771 |
#: src/admin.php:822
|
5772 |
msgid "Delete from your web server"
|
@@ -5778,7 +5778,7 @@ msgstr ""
|
|
5778 |
|
5779 |
#: src/admin.php:4109
|
5780 |
msgid "(%d archive(s) in set)."
|
5781 |
-
msgstr ""
|
5782 |
|
5783 |
#: src/templates/wp-admin/settings/form-contents.php:308
|
5784 |
msgid "Split archives every:"
|
@@ -5843,7 +5843,7 @@ msgstr ""
|
|
5843 |
|
5844 |
#: src/backup.php:3097, src/backup.php:3380
|
5845 |
msgid "Failed to open the zip file (%s) - %s"
|
5846 |
-
msgstr ""
|
5847 |
|
5848 |
#: src/addons/morefiles.php:168
|
5849 |
msgid "WordPress root directory server path: %s"
|
@@ -5921,7 +5921,7 @@ msgstr ""
|
|
5921 |
|
5922 |
#: src/restorer.php:228
|
5923 |
msgid "file is size:"
|
5924 |
-
msgstr ""
|
5925 |
|
5926 |
#: src/addons/googlecloud.php:1034, src/addons/migrator.php:490,
|
5927 |
#: src/addons/migrator.php:493, src/addons/migrator.php:496,
|
@@ -5957,7 +5957,7 @@ msgstr ""
|
|
5957 |
|
5958 |
#: src/methods/dropbox.php:481
|
5959 |
msgid "You do not appear to be authenticated with %s"
|
5960 |
-
msgstr ""
|
5961 |
|
5962 |
#: src/methods/dropbox.php:448
|
5963 |
msgid "Failed to access %s when deleting (see log file for more)"
|
@@ -5973,7 +5973,7 @@ msgstr ""
|
|
5973 |
|
5974 |
#: src/methods/cloudfiles.php:409
|
5975 |
msgid "Error - no such file exists at %s"
|
5976 |
-
msgstr ""
|
5977 |
|
5978 |
#: src/addons/azure.php:268, src/methods/addon-base-v2.php:219,
|
5979 |
#: src/methods/cloudfiles.php:383, src/methods/cloudfiles.php:400,
|
@@ -6093,7 +6093,7 @@ msgstr ""
|
|
6093 |
|
6094 |
#: src/addons/s3-enhanced.php:215, src/methods/s3.php:1143
|
6095 |
msgid "The error reported by %s was:"
|
6096 |
-
msgstr ""
|
6097 |
|
6098 |
#: src/restorer.php:1916
|
6099 |
msgid "Please supply the requested information, and then continue."
|
@@ -6216,7 +6216,7 @@ msgstr ""
|
|
6216 |
|
6217 |
#: src/admin.php:893
|
6218 |
msgid "Testing %s Settings..."
|
6219 |
-
msgstr ""
|
6220 |
|
6221 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:69,
|
6222 |
#: src/templates/wp-admin/settings/tab-backups.php:71
|
@@ -6261,7 +6261,7 @@ msgstr ""
|
|
6261 |
|
6262 |
#: src/addons/migrator.php:1303
|
6263 |
msgid "Time taken (seconds):"
|
6264 |
-
msgstr ""
|
6265 |
|
6266 |
#: src/addons/migrator.php:1302, src/admin.php:814
|
6267 |
msgid "Errors:"
|
@@ -6277,7 +6277,7 @@ msgstr ""
|
|
6277 |
|
6278 |
#: src/addons/migrator.php:1299
|
6279 |
msgid "Rows examined:"
|
6280 |
-
msgstr ""
|
6281 |
|
6282 |
#: src/addons/migrator.php:1298
|
6283 |
msgid "Tables examined:"
|
@@ -6299,7 +6299,7 @@ msgstr ""
|
|
6299 |
#: src/addons/migrator.php:1093, src/addons/migrator.php:1098,
|
6300 |
#: src/addons/migrator.php:1102, src/addons/migrator.php:1107
|
6301 |
msgid "Error: unexpected empty parameter (%s, %s)"
|
6302 |
-
msgstr ""
|
6303 |
|
6304 |
#: src/addons/migrator.php:1045
|
6305 |
msgid "Database: search and replace site URL"
|
@@ -6383,7 +6383,7 @@ msgstr ""
|
|
6383 |
|
6384 |
#: src/addons/sftp.php:567
|
6385 |
msgid "Check your file permissions: Could not successfully create and enter:"
|
6386 |
-
msgstr ""
|
6387 |
|
6388 |
#: src/addons/sftp.php:47, src/addons/sftp.php:48, src/addons/sftp.php:49
|
6389 |
msgid "No %s found"
|
@@ -6423,7 +6423,7 @@ msgstr ""
|
|
6423 |
|
6424 |
#: src/addons/morefiles.php:137, src/includes/class-wpadmin-commands.php:523
|
6425 |
msgid "WordPress Core"
|
6426 |
-
msgstr ""
|
6427 |
|
6428 |
#: src/methods/addon-base-v2.php:330, src/methods/stream-base.php:375
|
6429 |
msgid "Failed: We were not able to place a file in that directory - please check your credentials."
|
@@ -6565,7 +6565,7 @@ msgstr ""
|
|
6565 |
|
6566 |
#: src/methods/s3.php:1093
|
6567 |
msgid "API secret"
|
6568 |
-
msgstr ""
|
6569 |
|
6570 |
#: src/methods/s3.php:941
|
6571 |
msgid "Enter only a bucket name or a bucket and path. Examples: mybucket, mybucket/mypath"
|
@@ -6577,7 +6577,7 @@ msgstr ""
|
|
6577 |
|
6578 |
#: src/methods/s3.php:936
|
6579 |
msgid "%s secret key"
|
6580 |
-
msgstr ""
|
6581 |
|
6582 |
#: src/methods/s3.php:932
|
6583 |
msgid "%s access key"
|
@@ -6625,7 +6625,7 @@ msgstr "Huomaa:"
|
|
6625 |
|
6626 |
#: src/methods/email.php:45
|
6627 |
msgid "WordPress Backup"
|
6628 |
-
msgstr ""
|
6629 |
|
6630 |
#: src/methods/cloudfiles.php:575, src/methods/openstack-base.php:530
|
6631 |
msgid "We accessed the container, and were able to create files within it."
|
@@ -6648,7 +6648,7 @@ msgstr "Käyttäjätunnus"
|
|
6648 |
#: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519,
|
6649 |
#: src/methods/s3.php:1089
|
6650 |
msgid "API key"
|
6651 |
-
msgstr ""
|
6652 |
|
6653 |
#: src/addons/migrator.php:337, src/addons/moredatabase.php:89,
|
6654 |
#: src/addons/moredatabase.php:91, src/addons/moredatabase.php:93,
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-12-06 10:54:40+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
149 |
#: src/templates/wp-admin/settings/exclude-modal.php:56,
|
150 |
#: src/templates/wp-admin/settings/exclude-modal.php:58
|
151 |
msgid "All files beginning with these characters"
|
152 |
+
msgstr "Kaikki tiedostot, jotka alkavat näillä merkeillä"
|
153 |
|
154 |
#: src/templates/wp-admin/settings/exclude-modal.php:47
|
155 |
msgid "Type an extension like zip"
|
247 |
|
248 |
#: src/admin.php:3828
|
249 |
msgid "Exclude these from"
|
250 |
+
msgstr "Poissulje nämä paikasta"
|
251 |
|
252 |
#: src/admin.php:952
|
253 |
msgid "The exclusion rule which you are trying to add already exists"
|
303 |
|
304 |
#: src/admin.php:5423
|
305 |
msgid "Front page:"
|
306 |
+
msgstr "Etusivu:"
|
307 |
|
308 |
#: src/admin.php:5422
|
309 |
msgid "Your clone has started and will be available at the following URLs once it is ready."
|
436 |
|
437 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
438 |
msgid "Press the buttons... UpdraftClone does the work."
|
439 |
+
msgstr "Paina nappeja... UpdraftClone tekee kaiken homman."
|
440 |
|
441 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
442 |
msgid "Easy"
|
533 |
#: src/includes/updraftplus-tour.php:153,
|
534 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
535 |
msgid "Find out more here."
|
536 |
+
msgstr "Lue lisää täältä."
|
537 |
|
538 |
#: src/includes/updraftplus-tour.php:125
|
539 |
msgid "UpdraftVault is our remote storage which works seamlessly with UpdraftPlus."
|
683 |
|
684 |
#: src/addons/wp-cli.php:88
|
685 |
msgid "No previous backup found to add an increment to."
|
686 |
+
msgstr "Vanhoja varmuuskopioita ei löydetty."
|
687 |
|
688 |
#: src/restorer.php:2499
|
689 |
msgid "Requested character set (%s) is not present - changing to %s."
|
715 |
|
716 |
#: src/addons/sftp.php:601, src/addons/sftp.php:603
|
717 |
msgid "The server's RSA key %s fingerprint: %s."
|
718 |
+
msgstr "Palvelimen RSA avain %s sormenjälki: %s."
|
719 |
|
720 |
#: src/addons/sftp.php:597
|
721 |
msgid "Failed: We are unable to match the fingerprint. However, we were able to log in and move to the indicated directory and successfully create a file in that location."
|
727 |
|
728 |
#: src/addons/sftp.php:475
|
729 |
msgid "RSA fingerprint"
|
730 |
+
msgstr "RSA sormenjälki"
|
731 |
|
732 |
#: src/addons/sftp.php:82
|
733 |
msgid "Fingerprints don't match."
|
938 |
|
939 |
#: src/admin.php:488
|
940 |
msgid "Dismiss all UpdraftPlus news"
|
941 |
+
msgstr "Hylkää kaikki UpdraftPlus uutiset"
|
942 |
|
943 |
#: src/admin.php:487
|
944 |
msgid "UpdraftPlus News"
|
1324 |
|
1325 |
#: src/central/bootstrap.php:421
|
1326 |
msgid "There are no UpdraftCentral dashboards that can currently control this site."
|
1327 |
+
msgstr "UpdraftCentral kojelautoja ei löydetty tälle sivulle."
|
1328 |
|
1329 |
#: src/central/bootstrap.php:258
|
1330 |
msgid "You can now control this site via your UpdraftCentral dashboard at %s."
|
1489 |
|
1490 |
#: src/methods/cloudfiles.php:495
|
1491 |
msgid "Cloud Files"
|
1492 |
+
msgstr "Pilvi tiedostot"
|
1493 |
|
1494 |
#: src/admin.php:4934
|
1495 |
msgid "Your settings failed to save. Please refresh the settings page and try again"
|
1510 |
|
1511 |
#: src/includes/class-wpadmin-commands.php:520
|
1512 |
msgid "Extra database"
|
1513 |
+
msgstr "Ylimääräinen tietokanta"
|
1514 |
|
1515 |
#: src/admin.php:4104
|
1516 |
msgid "Press here to download or browse"
|
1526 |
|
1527 |
#: src/admin.php:915
|
1528 |
msgid "Loading log file"
|
1529 |
+
msgstr "Ladataan loki-tiedostoa"
|
1530 |
|
1531 |
#: src/admin.php:914
|
1532 |
msgid "Unable to download file. This could be caused by a timeout. It would be best to download the zip to your computer."
|
1566 |
|
1567 |
#: src/admin.php:3022
|
1568 |
msgid "All WordPress tables will be backed up."
|
1569 |
+
msgstr "Kaikki WordPress taulut varmuuskopioidaan."
|
1570 |
|
1571 |
#: src/admin.php:910
|
1572 |
msgid "Further information may be found in the browser JavaScript console, and the server PHP error logs."
|
1716 |
#: src/templates/wp-admin/settings/tab-addons.php:56,
|
1717 |
#: src/templates/wp-admin/settings/tab-addons.php:264
|
1718 |
msgid "Upgrade now"
|
1719 |
+
msgstr "Päivitä nyt"
|
1720 |
|
1721 |
#: src/templates/wp-admin/settings/tab-addons.php:53,
|
1722 |
#: src/templates/wp-admin/settings/tab-addons.php:261
|
1796 |
|
1797 |
#: src/addons/s3-enhanced.php:372
|
1798 |
msgid "Europe (Ireland)"
|
1799 |
+
msgstr "Eurooppa (Irlanti)"
|
1800 |
|
1801 |
#: src/includes/updraftplus-tour.php:142,
|
1802 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:17
|
1856 |
|
1857 |
#: src/includes/updraftplus-notices.php:238
|
1858 |
msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
|
1859 |
+
msgstr "Hyvää uutta vuotta - 20% alennus UpdraftPlus Premiumista Tammukuun 14-päivä asti."
|
1860 |
|
1861 |
#: src/includes/updraftplus-notices.php:225
|
1862 |
msgid "Christmas sale - 20% off UpdraftPlus Premium until December 25th"
|
1901 |
|
1902 |
#: src/includes/updraftplus-notices.php:91
|
1903 |
msgid "Introducing UpdraftCentral"
|
1904 |
+
msgstr "Esittelyssä UpdraftCentral"
|
1905 |
|
1906 |
#: src/includes/updraftplus-notices.php:82
|
1907 |
msgid "Copy your site to another domain directly. Includes find-and-replace tool for database references."
|
2023 |
|
2024 |
#: src/methods/dropbox.php:790
|
2025 |
msgid "%s de-authentication"
|
2026 |
+
msgstr "%s epä-todennus"
|
2027 |
|
2028 |
#: src/methods/dropbox.php:636
|
2029 |
msgid "You must add the following as the authorised redirect URI in your Dropbox console (under \"API Settings\") when asked"
|
2120 |
|
2121 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:54
|
2122 |
msgid "or to restore manually"
|
2123 |
+
msgstr "tai palauta manuaalisesti"
|
2124 |
|
2125 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:54
|
2126 |
msgid "This makes time-outs much more likely. You are recommended to turn safe_mode off, or to restore only one entity at a time"
|
2242 |
#: src/addons/migrator.php:1765, src/central/bootstrap.php:544,
|
2243 |
#: src/central/bootstrap.php:545, src/central/bootstrap.php:547
|
2244 |
msgid "%s bits"
|
2245 |
+
msgstr "%s bittiä"
|
2246 |
|
2247 |
#: src/addons/migrator.php:1760, src/central/bootstrap.php:542
|
2248 |
msgid "Encryption key size:"
|
2262 |
|
2263 |
#: src/methods/ftp.php:440
|
2264 |
msgid "This is sometimes caused by a firewall - try turning off SSL in the expert settings, and testing again."
|
2265 |
+
msgstr "Tämä johtuu joskus palomuurista - yritä kytkeä SSL pois päältä kehittyneistä asetuksista, ja yritä uudelleen."
|
2266 |
|
2267 |
#: src/methods/ftp.php:412
|
2268 |
msgid "login"
|
2321 |
|
2322 |
#: src/central/bootstrap.php:536
|
2323 |
msgid "Enter any description"
|
2324 |
+
msgstr "Anna kuvaus"
|
2325 |
|
2326 |
#: src/central/bootstrap.php:535
|
2327 |
msgid "Description"
|
2389 |
|
2390 |
#: src/central/bootstrap.php:57
|
2391 |
msgid "UpdraftCentral Connection"
|
2392 |
+
msgstr "UpdraftCentral yhteys"
|
2393 |
|
2394 |
#: src/backup.php:1042, src/class-updraftplus.php:2973
|
2395 |
msgid "The backup was aborted by the user"
|
2409 |
|
2410 |
#: src/admin.php:905, src/admin.php:3209
|
2411 |
msgid "The backup has finished running"
|
2412 |
+
msgstr "Varmuuskopiointi on valmis"
|
2413 |
|
2414 |
#: src/templates/wp-admin/advanced/tools-menu.php:30,
|
2415 |
#: src/templates/wp-admin/advanced/wipe-settings.php:5,
|
2561 |
|
2562 |
#: src/templates/wp-admin/settings/form-contents.php:93
|
2563 |
msgid "Sending Your Backup To Remote Storage"
|
2564 |
+
msgstr "Lähetetään varmuuskopiotasi etävarastoon"
|
2565 |
|
2566 |
#: src/templates/wp-admin/settings/form-contents.php:58
|
2567 |
msgid "Database backup schedule"
|
2691 |
|
2692 |
#: src/addons/googlecloud.php:48, src/addons/googlecloud.php:49
|
2693 |
msgid "Eastern United States"
|
2694 |
+
msgstr "Itäinen Yhdysvallat"
|
2695 |
|
2696 |
#: src/addons/googlecloud.php:47
|
2697 |
msgid "Central United States"
|
2724 |
|
2725 |
#: src/addons/googlecloud.php:38, src/addons/s3-enhanced.php:66
|
2726 |
msgid "Standard"
|
2727 |
+
msgstr "Standardi"
|
2728 |
|
2729 |
#: src/addons/azure.php:638
|
2730 |
msgid "container"
|
2736 |
|
2737 |
#: src/addons/azure.php:637
|
2738 |
msgid "optional"
|
2739 |
+
msgstr "valinnainen"
|
2740 |
|
2741 |
#: src/addons/azure.php:633
|
2742 |
msgid "See Microsoft's guidelines on container naming by following this link."
|
2833 |
|
2834 |
#: src/addons/googlecloud.php:1032
|
2835 |
msgid "Project ID"
|
2836 |
+
msgstr "Projekti ID"
|
2837 |
|
2838 |
#: src/addons/googlecloud.php:759
|
2839 |
msgid "You must save and authenticate before you can test your settings."
|
2907 |
|
2908 |
#: src/admin.php:888
|
2909 |
msgid "For backups older than"
|
2910 |
+
msgstr "Varmuuskopioihin vanhempia kuin"
|
2911 |
|
2912 |
#: src/admin.php:887
|
2913 |
msgid "week(s)"
|
2975 |
|
2976 |
#: src/addons/s3-enhanced.php:73
|
2977 |
msgid "Check this box to use Amazon's server-side encryption"
|
2978 |
+
msgstr "Merkitse tämä laatikko käyttääksesi Amazonin palvelin-salausta"
|
2979 |
|
2980 |
#: src/addons/s3-enhanced.php:72
|
2981 |
msgid "Server-side encryption"
|
3020 |
#: src/methods/updraftvault.php:466, src/methods/updraftvault.php:482,
|
3021 |
#: src/methods/updraftvault.php:484, src/methods/updraftvault.php:542
|
3022 |
msgid "Get more quota"
|
3023 |
+
msgstr "Suurenna kiintiötäsi"
|
3024 |
|
3025 |
#: src/methods/updraftvault.php:463, src/methods/updraftvault.php:479,
|
3026 |
#: src/methods/updraftvault.php:523
|
3029 |
|
3030 |
#: src/methods/updraftvault.php:458
|
3031 |
msgid "You can get more quota here"
|
3032 |
+
msgstr "Voit suurentaa kiintiötäsi täällä"
|
3033 |
|
3034 |
#: src/methods/updraftvault.php:458
|
3035 |
msgid "%s Error: you have insufficient storage quota available (%s) to upload this archive (%s)."
|
3076 |
|
3077 |
#: src/methods/updraftvault.php:348
|
3078 |
msgid "Subscriptions can be cancelled at any time."
|
3079 |
+
msgstr "Tilaukset voidaan peruuttaa koska tahansa."
|
3080 |
|
3081 |
#: src/methods/updraftvault.php:331, src/methods/updraftvault.php:337,
|
3082 |
#: src/methods/updraftvault.php:343
|
3183 |
|
3184 |
#: src/includes/class-remote-send.php:345
|
3185 |
msgid "Also send this backup to the active remote storage locations"
|
3186 |
+
msgstr "Lähetä tämä varmuuskopio myös etävarastoon"
|
3187 |
|
3188 |
#: src/includes/class-remote-send.php:310
|
3189 |
msgid "The site URL you are sending to (%s) looks like a local development website. If you are sending from an external network, it is likely that a firewall will be blocking this."
|
3377 |
|
3378 |
#: src/udaddons/updraftplus-addons.php:996
|
3379 |
msgid "Go here to re-enter your password."
|
3380 |
+
msgstr "Mene tänne laittaaksesi salasanan uudelleen."
|
3381 |
|
3382 |
#: src/addons/migrator.php:271
|
3383 |
msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
|
3444 |
|
3445 |
#: src/addons/s3-enhanced.php:392
|
3446 |
msgid "S3 bucket"
|
3447 |
+
msgstr "S3 ämpäri"
|
3448 |
|
3449 |
#: src/addons/s3-enhanced.php:382
|
3450 |
msgid "China (Beijing) (restricted)"
|
3464 |
|
3465 |
#: src/addons/s3-enhanced.php:377
|
3466 |
msgid "Asia Pacific (Singapore)"
|
3467 |
+
msgstr "Aasian ja Tyynenmeren alue (Singapore)"
|
3468 |
|
3469 |
#: src/addons/s3-enhanced.php:370
|
3470 |
msgid "US Government West (restricted)"
|
3553 |
|
3554 |
#: src/addons/s3-enhanced.php:161
|
3555 |
msgid "Cannot create new AWS user, since the old AWS toolkit is being used."
|
3556 |
+
msgstr "Et voi tehdä uutta AWS -käyttäjää, sillä vanhaa AWS -työkalupakettia käytetään."
|
3557 |
|
3558 |
#: src/addons/s3-enhanced.php:134
|
3559 |
msgid "You need to enter a bucket"
|
3618 |
|
3619 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
|
3620 |
msgid "Go to the shop."
|
3621 |
+
msgstr "Mene kauppaan."
|
3622 |
|
3623 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
|
3624 |
msgid "Compare with the free version"
|
4136 |
|
4137 |
#: src/templates/wp-admin/advanced/site-info.php:74
|
4138 |
msgid "Free disk space in account:"
|
4139 |
+
msgstr "Vapaata tilaa tilillä:"
|
4140 |
|
4141 |
#: src/admin.php:4900, src/templates/wp-admin/settings/take-backup.php:50
|
4142 |
msgid "This button is disabled because your backup directory is not writable (see the settings)."
|
4216 |
|
4217 |
#: src/addons/moredatabase.php:104
|
4218 |
msgid "database connection attempt failed"
|
4219 |
+
msgstr "Tietokantaan yhdistäminen epäonnistui"
|
4220 |
|
4221 |
#: src/addons/moredatabase.php:93
|
4222 |
msgid "database name"
|
4228 |
|
4229 |
#: src/addons/moredatabase.php:89
|
4230 |
msgid "user"
|
4231 |
+
msgstr "käyttäjä"
|
4232 |
|
4233 |
#: src/class-updraftplus.php:1736
|
4234 |
msgid "External database (%s)"
|
4235 |
+
msgstr "Ulkoinen tietokanta (%s)"
|
4236 |
|
4237 |
#: src/methods/googledrive.php:1207
|
4238 |
msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
|
4286 |
|
4287 |
#: src/includes/class-wpadmin-commands.php:149
|
4288 |
msgid "Only the WordPress database can be restored; you will need to deal with the external database manually."
|
4289 |
+
msgstr "Vain WordPress tietokanta voidaan palauttaa; sinun pitää huolehtia ulkoisesta tietokannasta manuaalisesti."
|
4290 |
|
4291 |
#: src/restorer.php:2284, src/restorer.php:2753, src/restorer.php:2794,
|
4292 |
#: src/restorer.php:2807
|
4475 |
#: src/templates/wp-admin/settings/form-contents.php:182,
|
4476 |
#: src/templates/wp-admin/settings/tab-backups.php:74
|
4477 |
msgid "This feature requires %s version %s or later"
|
4478 |
+
msgstr "Tämä ominaisuus tarvitsee version %s tai %s myöhemmän"
|
4479 |
|
4480 |
#: src/restorer.php:531
|
4481 |
msgid "Failed to unpack the archive"
|
4496 |
|
4497 |
#: src/udaddons/updraftplus-addons.php:259
|
4498 |
msgid "It has been tested up to version %s."
|
4499 |
+
msgstr "On testattu versioon %s asti."
|
4500 |
|
4501 |
#: src/udaddons/updraftplus-addons.php:259
|
4502 |
msgid "The installed version of UpdraftPlus Backup/Restore has not been tested on your version of WordPress (%s)."
|
4612 |
|
4613 |
#: src/admin.php:797
|
4614 |
msgid "Rescanning remote and local storage for backup sets..."
|
4615 |
+
msgstr "Skannataan etä- ja paikallista varastoa varmuuskopioiden varalta..."
|
4616 |
|
4617 |
#: src/addons/googlecloud.php:1042, src/addons/googlecloud.php:1055,
|
4618 |
#: src/addons/s3-enhanced.php:63, src/addons/s3-enhanced.php:72
|
4671 |
|
4672 |
#: src/udaddons/options.php:483
|
4673 |
msgid "Available to claim on this site"
|
4674 |
+
msgstr "Valmiina noutaa tältä sivulta"
|
4675 |
|
4676 |
#: src/udaddons/updraftplus-addons.php:288
|
4677 |
msgid "To maintain your access to support, please renew."
|
4824 |
|
4825 |
#: src/addons/cloudfiles-enhanced.php:283
|
4826 |
msgid "Admin Username"
|
4827 |
+
msgstr "Järjestelmänvalvojan Käyttäjänimi"
|
4828 |
|
4829 |
#: src/addons/cloudfiles-enhanced.php:278
|
4830 |
msgid "US or UK Rackspace Account"
|
4881 |
|
4882 |
#: src/addons/cloudfiles-enhanced.php:76
|
4883 |
msgid "You need to enter an admin username"
|
4884 |
+
msgstr "Sinun täytyy asettaa järjestelmänvalvojan käyttäjänimi"
|
4885 |
|
4886 |
#: src/addons/cloudfiles-enhanced.php:62
|
4887 |
msgid "Create a new API user with access to only this container (rather than your whole account)"
|
5038 |
|
5039 |
#: src/addons/reporting.php:268
|
5040 |
msgid "Debugging information"
|
5041 |
+
msgstr "Virheenkorjauksen tiedot"
|
5042 |
|
5043 |
#: src/addons/reporting.php:223, src/admin.php:3992
|
5044 |
msgid "Uploaded to:"
|
5071 |
|
5072 |
#: src/addons/reporting.php:171
|
5073 |
msgid "Backup Report"
|
5074 |
+
msgstr "Varmuuskopio Reportti"
|
5075 |
|
5076 |
#: src/addons/reporting.php:166
|
5077 |
msgid "%d hours, %d minutes, %d seconds"
|
5144 |
|
5145 |
#: src/backup.php:1094
|
5146 |
msgid "Backed up: %s"
|
5147 |
+
msgstr "Varmuuskopioitu: %s"
|
5148 |
|
5149 |
#: src/addons/reporting.php:265, src/backup.php:1088
|
5150 |
msgid "The log file has been attached to this email."
|
5160 |
|
5161 |
#: src/backup.php:1049
|
5162 |
msgid "Database (files backup has not completed)"
|
5163 |
+
msgstr "Tietokanta (tiedostojen varmuuskopiointi ei ole valmis)"
|
5164 |
|
5165 |
#: src/backup.php:1046
|
5166 |
msgid "Files only (database was not part of this particular schedule)"
|
5192 |
|
5193 |
#: src/options.php:208
|
5194 |
msgid "UpdraftPlus warning:"
|
5195 |
+
msgstr "UpdraftPlus varoitus:"
|
5196 |
|
5197 |
#: src/udaddons/options.php:489
|
5198 |
msgid "(or connect using the form on this page if you have already purchased it)"
|
5216 |
|
5217 |
#: src/udaddons/options.php:460, src/udaddons/options.php:460
|
5218 |
msgid "You've got it"
|
5219 |
+
msgstr "Sinä pystyt siihen"
|
5220 |
|
5221 |
#: src/udaddons/options.php:421
|
5222 |
msgid "UpdraftPlus Support"
|
5285 |
|
5286 |
#: src/backup.php:3424, src/class-updraftplus.php:861
|
5287 |
msgid "Your free space in your hosting account is very low - only %s Mb remain"
|
5288 |
+
msgstr "Sinun vapaa tilasi tililläsi on todella alhainen - enää %s Mb jäljellä"
|
5289 |
|
5290 |
#: src/class-updraftplus.php:845
|
5291 |
msgid "The amount of memory (RAM) allowed for PHP is very low (%s Mb) - you should increase it to avoid failures due to insufficient memory (consult your web hosting company for more help)"
|
5377 |
|
5378 |
#: src/admin.php:2929
|
5379 |
msgid "Connect with your UpdraftPlus.Com account"
|
5380 |
+
msgstr "Yhdistä UpdraftPlus.Com tilisi"
|
5381 |
|
5382 |
#: src/udaddons/options.php:110
|
5383 |
msgid "You do seem to have the obsolete Updraft plugin installed - perhaps you got them confused?"
|
5424 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:78,
|
5425 |
#: src/templates/wp-admin/settings/tab-backups.php:80
|
5426 |
msgid "Drop backup files here"
|
5427 |
+
msgstr "Raahaa varmuuskopiointi tiedostot tänne"
|
5428 |
|
5429 |
#: src/admin.php:804
|
5430 |
msgid "The web server returned an error code (try again, or check your web server logs)"
|
5486 |
|
5487 |
#: src/addons/sftp.php:492
|
5488 |
msgid "Use SCP instead of SFTP"
|
5489 |
+
msgstr "Käytä SCP:tä SFTP:n sijaan"
|
5490 |
|
5491 |
#: src/addons/sftp.php:48
|
5492 |
msgid "SCP/SFTP user setting"
|
5506 |
|
5507 |
#: src/admin.php:894
|
5508 |
msgid "%s settings test result:"
|
5509 |
+
msgstr "%s asetuksien testaamisen lopputulos:"
|
5510 |
|
5511 |
#: src/admin.php:4140, src/admin.php:4142
|
5512 |
msgid "(Not finished)"
|
5552 |
|
5553 |
#: src/admin.php:3288
|
5554 |
msgid "Pruning old backup sets"
|
5555 |
+
msgstr "Karsitaan vanhoja varmuuskopio-settejä"
|
5556 |
|
5557 |
#: src/admin.php:3275
|
5558 |
msgid "Uploading files to remote storage"
|
5560 |
|
5561 |
#: src/admin.php:3344
|
5562 |
msgid "Encrypted database"
|
5563 |
+
msgstr "Suojattu tietokanta"
|
5564 |
|
5565 |
#: src/admin.php:3336
|
5566 |
msgid "Encrypting database"
|
5641 |
|
5642 |
#: src/addons/autobackup.php:501
|
5643 |
msgid "Creating backup with UpdraftPlus..."
|
5644 |
+
msgstr "Varmuuskopiota tehdään UpdraftPlussan avulla..."
|
5645 |
|
5646 |
#: src/addons/autobackup.php:446, src/addons/autobackup.php:576,
|
5647 |
#: src/addons/autobackup.php:627
|
5682 |
|
5683 |
#: src/addons/morefiles.php:190
|
5684 |
msgid "Unable to open zip file (%s) - could not pre-scan it to check its integrity."
|
5685 |
+
msgstr "Zip -tiedostoa (%s) ei voitu avata - ei voitu skannata sen sisältöä"
|
5686 |
|
5687 |
#: src/addons/morefiles.php:180
|
5688 |
msgid "Unable to read zip file (%s) - could not pre-scan it to check its integrity."
|
5726 |
|
5727 |
#: src/admin.php:2591
|
5728 |
msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
|
5729 |
+
msgstr "Jos voit vielä lukea näitä sanoja sivun lataamisen jälkeen, sivullasi on JavaScript tai jQuery virhe."
|
5730 |
|
5731 |
#: src/admin.php:840
|
5732 |
msgid "The file was uploaded."
|
5738 |
|
5739 |
#: src/admin.php:838
|
5740 |
msgid "Unknown server response:"
|
5741 |
+
msgstr "Tuntematon palvelinvastaus:"
|
5742 |
|
5743 |
#: src/admin.php:837
|
5744 |
msgid "This decryption key will be attempted:"
|
5766 |
|
5767 |
#: src/admin.php:823
|
5768 |
msgid "Download to your computer"
|
5769 |
+
msgstr "Lataa tietokoneellesi"
|
5770 |
|
5771 |
#: src/admin.php:822
|
5772 |
msgid "Delete from your web server"
|
5778 |
|
5779 |
#: src/admin.php:4109
|
5780 |
msgid "(%d archive(s) in set)."
|
5781 |
+
msgstr "(%d arkisto(a) setissä)."
|
5782 |
|
5783 |
#: src/templates/wp-admin/settings/form-contents.php:308
|
5784 |
msgid "Split archives every:"
|
5843 |
|
5844 |
#: src/backup.php:3097, src/backup.php:3380
|
5845 |
msgid "Failed to open the zip file (%s) - %s"
|
5846 |
+
msgstr "Zip-tiedostoa (%s) ei voitu avata - %s"
|
5847 |
|
5848 |
#: src/addons/morefiles.php:168
|
5849 |
msgid "WordPress root directory server path: %s"
|
5921 |
|
5922 |
#: src/restorer.php:228
|
5923 |
msgid "file is size:"
|
5924 |
+
msgstr "tiedoston koko:"
|
5925 |
|
5926 |
#: src/addons/googlecloud.php:1034, src/addons/migrator.php:490,
|
5927 |
#: src/addons/migrator.php:493, src/addons/migrator.php:496,
|
5957 |
|
5958 |
#: src/methods/dropbox.php:481
|
5959 |
msgid "You do not appear to be authenticated with %s"
|
5960 |
+
msgstr "Sinua ei ole todennettu %s"
|
5961 |
|
5962 |
#: src/methods/dropbox.php:448
|
5963 |
msgid "Failed to access %s when deleting (see log file for more)"
|
5973 |
|
5974 |
#: src/methods/cloudfiles.php:409
|
5975 |
msgid "Error - no such file exists at %s"
|
5976 |
+
msgstr "Virhe - tiedostoa ei löydy sijainnista %s"
|
5977 |
|
5978 |
#: src/addons/azure.php:268, src/methods/addon-base-v2.php:219,
|
5979 |
#: src/methods/cloudfiles.php:383, src/methods/cloudfiles.php:400,
|
6093 |
|
6094 |
#: src/addons/s3-enhanced.php:215, src/methods/s3.php:1143
|
6095 |
msgid "The error reported by %s was:"
|
6096 |
+
msgstr "%s virhe oli:"
|
6097 |
|
6098 |
#: src/restorer.php:1916
|
6099 |
msgid "Please supply the requested information, and then continue."
|
6216 |
|
6217 |
#: src/admin.php:893
|
6218 |
msgid "Testing %s Settings..."
|
6219 |
+
msgstr "Testataan %s asetuksia..."
|
6220 |
|
6221 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:69,
|
6222 |
#: src/templates/wp-admin/settings/tab-backups.php:71
|
6261 |
|
6262 |
#: src/addons/migrator.php:1303
|
6263 |
msgid "Time taken (seconds):"
|
6264 |
+
msgstr "Aikaa käytetty (sekunteina):"
|
6265 |
|
6266 |
#: src/addons/migrator.php:1302, src/admin.php:814
|
6267 |
msgid "Errors:"
|
6277 |
|
6278 |
#: src/addons/migrator.php:1299
|
6279 |
msgid "Rows examined:"
|
6280 |
+
msgstr "Rivejä tarkistettu:"
|
6281 |
|
6282 |
#: src/addons/migrator.php:1298
|
6283 |
msgid "Tables examined:"
|
6299 |
#: src/addons/migrator.php:1093, src/addons/migrator.php:1098,
|
6300 |
#: src/addons/migrator.php:1102, src/addons/migrator.php:1107
|
6301 |
msgid "Error: unexpected empty parameter (%s, %s)"
|
6302 |
+
msgstr "Virhe: odottamaton tyhjä parametri (%s, %s)"
|
6303 |
|
6304 |
#: src/addons/migrator.php:1045
|
6305 |
msgid "Database: search and replace site URL"
|
6383 |
|
6384 |
#: src/addons/sftp.php:567
|
6385 |
msgid "Check your file permissions: Could not successfully create and enter:"
|
6386 |
+
msgstr "Tarkista tiedosto-oikeutesi: Ei voitu luoda ja asettaa:"
|
6387 |
|
6388 |
#: src/addons/sftp.php:47, src/addons/sftp.php:48, src/addons/sftp.php:49
|
6389 |
msgid "No %s found"
|
6423 |
|
6424 |
#: src/addons/morefiles.php:137, src/includes/class-wpadmin-commands.php:523
|
6425 |
msgid "WordPress Core"
|
6426 |
+
msgstr "WordPress Ydin"
|
6427 |
|
6428 |
#: src/methods/addon-base-v2.php:330, src/methods/stream-base.php:375
|
6429 |
msgid "Failed: We were not able to place a file in that directory - please check your credentials."
|
6565 |
|
6566 |
#: src/methods/s3.php:1093
|
6567 |
msgid "API secret"
|
6568 |
+
msgstr "API salainen"
|
6569 |
|
6570 |
#: src/methods/s3.php:941
|
6571 |
msgid "Enter only a bucket name or a bucket and path. Examples: mybucket, mybucket/mypath"
|
6577 |
|
6578 |
#: src/methods/s3.php:936
|
6579 |
msgid "%s secret key"
|
6580 |
+
msgstr "%s salainen avain"
|
6581 |
|
6582 |
#: src/methods/s3.php:932
|
6583 |
msgid "%s access key"
|
6625 |
|
6626 |
#: src/methods/email.php:45
|
6627 |
msgid "WordPress Backup"
|
6628 |
+
msgstr "WordPress Varmuuskopio"
|
6629 |
|
6630 |
#: src/methods/cloudfiles.php:575, src/methods/openstack-base.php:530
|
6631 |
msgid "We accessed the container, and were able to create files within it."
|
6648 |
#: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519,
|
6649 |
#: src/methods/s3.php:1089
|
6650 |
msgid "API key"
|
6651 |
+
msgstr "API avain"
|
6652 |
|
6653 |
#: src/addons/migrator.php:337, src/addons/moredatabase.php:89,
|
6654 |
#: src/addons/moredatabase.php:91, src/addons/moredatabase.php:93,
|
Binary file
|
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -35,7 +35,7 @@ msgstr ""
|
|
35 |
|
36 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
37 |
msgid "Read more about Easy Updates Manager"
|
38 |
-
msgstr ""
|
39 |
|
40 |
#: src/templates/wp-admin/settings/temporary-clone.php:68
|
41 |
msgid "You can find out more about clone keys here."
|
@@ -43,7 +43,7 @@ msgstr ""
|
|
43 |
|
44 |
#: src/templates/wp-admin/settings/temporary-clone.php:57
|
45 |
msgid "Or, use an UpdraftClone key"
|
46 |
-
msgstr ""
|
47 |
|
48 |
#: src/restorer.php:2493
|
49 |
msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
|
@@ -63,11 +63,11 @@ msgstr ""
|
|
63 |
|
64 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
65 |
msgid "Ask WordPress to automatically update UpdraftPlus when it finds an available update."
|
66 |
-
msgstr ""
|
67 |
|
68 |
#: src/templates/wp-admin/settings/form-contents.php:349
|
69 |
msgid "Automatic updates"
|
70 |
-
msgstr ""
|
71 |
|
72 |
#: src/restorer.php:2092, src/restorer.php:2134
|
73 |
msgid "Your database user does not have permission to drop tables"
|
@@ -135,7 +135,7 @@ msgstr ""
|
|
135 |
|
136 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
137 |
msgid "Confirm change"
|
138 |
-
msgstr ""
|
139 |
|
140 |
#: src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-submit.php:3,
|
141 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:18
|
@@ -167,12 +167,12 @@ msgstr ""
|
|
167 |
#: src/templates/wp-admin/settings/exclude-modal.php:44,
|
168 |
#: src/templates/wp-admin/settings/exclude-modal.php:46
|
169 |
msgid "All files with this extension"
|
170 |
-
msgstr ""
|
171 |
|
172 |
#: src/templates/wp-admin/settings/exclude-modal.php:9,
|
173 |
#: src/templates/wp-admin/settings/exclude-modal.php:22
|
174 |
msgid "File/directory"
|
175 |
-
msgstr ""
|
176 |
|
177 |
#: src/templates/wp-admin/settings/exclude-modal.php:6
|
178 |
msgid "Select a way to exclude files or directories from the backup"
|
@@ -180,7 +180,7 @@ msgstr ""
|
|
180 |
|
181 |
#: src/templates/wp-admin/settings/exclude-modal.php:2
|
182 |
msgid "Exclude files/directories"
|
183 |
-
msgstr ""
|
184 |
|
185 |
#: src/includes/updraftclone/temporary-clone-status.php:422
|
186 |
msgid "To read FAQs/documentation about UpdraftClone, go here."
|
@@ -188,7 +188,7 @@ msgstr ""
|
|
188 |
|
189 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
190 |
msgid "your UpdraftPlus.com account"
|
191 |
-
msgstr ""
|
192 |
|
193 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
194 |
msgid "You can check the progress here or in %s"
|
@@ -239,7 +239,7 @@ msgstr ""
|
|
239 |
#: src/includes/updraftclone/temporary-clone-status.php:66,
|
240 |
#: src/includes/updraftclone/temporary-clone-status.php:341
|
241 |
msgid "WordPress installed"
|
242 |
-
msgstr ""
|
243 |
|
244 |
#: src/admin.php:5428
|
245 |
msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
|
@@ -299,7 +299,7 @@ msgstr ""
|
|
299 |
|
300 |
#: src/admin.php:5424
|
301 |
msgid "Dashboard:"
|
302 |
-
msgstr ""
|
303 |
|
304 |
#: src/admin.php:5423
|
305 |
msgid "Front page:"
|
@@ -386,7 +386,7 @@ msgstr ""
|
|
386 |
#: src/templates/wp-admin/settings/temporary-clone.php:56,
|
387 |
#: src/templates/wp-admin/settings/temporary-clone.php:76
|
388 |
msgid "I accept the UpdraftClone terms and conditions"
|
389 |
-
msgstr ""
|
390 |
|
391 |
#: src/templates/wp-admin/settings/temporary-clone.php:56
|
392 |
msgid "Not got an account? Get one by buying some tokens here."
|
@@ -408,7 +408,7 @@ msgstr ""
|
|
408 |
|
409 |
#: src/templates/wp-admin/settings/temporary-clone.php:32
|
410 |
msgid "Flexible"
|
411 |
-
msgstr ""
|
412 |
|
413 |
#: src/templates/wp-admin/settings/temporary-clone.php:31
|
414 |
msgid "Takes just the time needed to create a backup and send it."
|
@@ -416,7 +416,7 @@ msgstr ""
|
|
416 |
|
417 |
#: src/templates/wp-admin/settings/temporary-clone.php:31
|
418 |
msgid "Fast"
|
419 |
-
msgstr ""
|
420 |
|
421 |
#: src/templates/wp-admin/settings/temporary-clone.php:30
|
422 |
msgid "One VPS (Virtual Private Server) per clone, shared with nobody."
|
@@ -424,7 +424,7 @@ msgstr ""
|
|
424 |
|
425 |
#: src/templates/wp-admin/settings/temporary-clone.php:30
|
426 |
msgid "Secure"
|
427 |
-
msgstr ""
|
428 |
|
429 |
#: src/templates/wp-admin/settings/temporary-clone.php:29
|
430 |
msgid "Runs on capacity from a leading cloud computing provider."
|
@@ -432,7 +432,7 @@ msgstr ""
|
|
432 |
|
433 |
#: src/templates/wp-admin/settings/temporary-clone.php:29
|
434 |
msgid "Reliable"
|
435 |
-
msgstr ""
|
436 |
|
437 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
438 |
msgid "Press the buttons... UpdraftClone does the work."
|
@@ -440,7 +440,7 @@ msgstr ""
|
|
440 |
|
441 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
442 |
msgid "Easy"
|
443 |
-
msgstr ""
|
444 |
|
445 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
446 |
msgid "A temporary clone is an instant copy of this website, running on our servers. Rather than test things on your live site, you can UpdraftClone it, and then throw away your clone when done."
|
@@ -453,7 +453,7 @@ msgstr ""
|
|
453 |
|
454 |
#: src/templates/wp-admin/settings/tab-addons.php:23
|
455 |
msgid "WooCommerce plugins"
|
456 |
-
msgstr ""
|
457 |
|
458 |
#: src/templates/wp-admin/advanced/wipe-settings.php:13
|
459 |
msgid "Reset tour"
|
@@ -511,15 +511,15 @@ msgstr ""
|
|
511 |
|
512 |
#: src/includes/updraftplus-tour.php:139
|
513 |
msgid "Congratulations, your settings have successfully been saved."
|
514 |
-
msgstr ""
|
515 |
|
516 |
#: src/includes/updraftplus-tour.php:135
|
517 |
msgid "Press here to save your settings."
|
518 |
-
msgstr ""
|
519 |
|
520 |
#: src/includes/updraftplus-tour.php:134, src/includes/updraftplus-tour.php:138
|
521 |
msgid "Save"
|
522 |
-
msgstr ""
|
523 |
|
524 |
#: src/includes/updraftplus-tour.php:131
|
525 |
msgid "Look through the other settings here, making any changes you’d like."
|
@@ -557,7 +557,7 @@ msgstr ""
|
|
557 |
|
558 |
#: src/includes/updraftplus-tour.php:109, src/includes/updraftplus-tour.php:114
|
559 |
msgid "Go to settings"
|
560 |
-
msgstr ""
|
561 |
|
562 |
#: src/includes/updraftplus-tour.php:108, src/includes/updraftplus-tour.php:113
|
563 |
msgctxt "Translators: %s is a bold tag."
|
@@ -566,7 +566,7 @@ msgstr ""
|
|
566 |
|
567 |
#: src/includes/updraftplus-tour.php:108
|
568 |
msgid "Press here to run a manual backup."
|
569 |
-
msgstr ""
|
570 |
|
571 |
#: src/includes/updraftplus-tour.php:107, src/includes/updraftplus-tour.php:112
|
572 |
msgid "Creating your first backup"
|
@@ -587,7 +587,7 @@ msgstr ""
|
|
587 |
|
588 |
#: src/includes/updraftplus-tour.php:99
|
589 |
msgid "Your first backup"
|
590 |
-
msgstr ""
|
591 |
|
592 |
#: src/includes/updraftplus-tour.php:95
|
593 |
msgid "Press here to start!"
|
@@ -599,11 +599,11 @@ msgstr ""
|
|
599 |
|
600 |
#: src/includes/updraftplus-tour.php:92
|
601 |
msgid "Welcome to UpdraftPlus"
|
602 |
-
msgstr ""
|
603 |
|
604 |
#: src/includes/updraftplus-tour.php:91
|
605 |
msgid "UpdraftPlus settings"
|
606 |
-
msgstr ""
|
607 |
|
608 |
#: src/includes/updraftplus-tour.php:88
|
609 |
msgid "End tour"
|
@@ -611,11 +611,11 @@ msgstr ""
|
|
611 |
|
612 |
#: src/includes/updraftplus-tour.php:87
|
613 |
msgid "Skip this step"
|
614 |
-
msgstr ""
|
615 |
|
616 |
#: src/includes/updraftplus-tour.php:86
|
617 |
msgid "Back"
|
618 |
-
msgstr ""
|
619 |
|
620 |
#: src/includes/class-commands.php:893
|
621 |
msgid "You can buy more temporary clone tokens here."
|
@@ -663,11 +663,11 @@ msgstr ""
|
|
663 |
|
664 |
#: src/admin.php:2798
|
665 |
msgid "Backup / Restore"
|
666 |
-
msgstr ""
|
667 |
|
668 |
#: src/admin.php:663
|
669 |
msgid "Backup"
|
670 |
-
msgstr ""
|
671 |
|
672 |
#: src/addons/wp-cli.php:408
|
673 |
msgid "Latest full backup found; identifier:"
|
@@ -769,16 +769,16 @@ msgstr ""
|
|
769 |
|
770 |
#: src/admin.php:5402
|
771 |
msgid "(current version)"
|
772 |
-
msgstr ""
|
773 |
|
774 |
#: src/admin.php:3738
|
775 |
msgid "press here"
|
776 |
-
msgstr ""
|
777 |
|
778 |
#: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
|
779 |
#: src/methods/googledrive.php:1214
|
780 |
msgid "this privacy policy"
|
781 |
-
msgstr ""
|
782 |
|
783 |
#: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
|
784 |
#: src/methods/googledrive.php:1214
|
@@ -795,7 +795,7 @@ msgstr ""
|
|
795 |
|
796 |
#: src/addons/incremental.php:236, src/updraftplus.php:99
|
797 |
msgid "Every hour"
|
798 |
-
msgstr ""
|
799 |
|
800 |
#: src/includes/class-commands.php:900
|
801 |
msgid "Create clone"
|
@@ -930,7 +930,7 @@ msgstr ""
|
|
930 |
#: src/admin.php:929,
|
931 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:9
|
932 |
msgid "UpdraftCentral Cloud"
|
933 |
-
msgstr ""
|
934 |
|
935 |
#: src/admin.php:489
|
936 |
msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
|
@@ -990,7 +990,7 @@ msgstr ""
|
|
990 |
|
991 |
#: src/admin.php:846, src/admin.php:4248
|
992 |
msgid "Upload"
|
993 |
-
msgstr ""
|
994 |
|
995 |
#: src/addons/reporting.php:529, src/admin.php:796
|
996 |
msgid "Only email the database backup"
|
@@ -1026,11 +1026,11 @@ msgstr ""
|
|
1026 |
|
1027 |
#: src/templates/wp-admin/settings/tab-addons.php:153
|
1028 |
msgid "WP-CLI support"
|
1029 |
-
msgstr ""
|
1030 |
|
1031 |
#: src/templates/wp-admin/settings/tab-addons.php:152
|
1032 |
msgid "WP CLI"
|
1033 |
-
msgstr ""
|
1034 |
|
1035 |
#: src/addons/wp-cli.php:265
|
1036 |
msgid "Invalid Job Id"
|
@@ -1128,7 +1128,7 @@ msgstr ""
|
|
1128 |
|
1129 |
#: src/admin.php:4982
|
1130 |
msgid "authentication error"
|
1131 |
-
msgstr ""
|
1132 |
|
1133 |
#: src/addons/multisite.php:44, src/options.php:38
|
1134 |
msgid "(Nothing has been logged yet)"
|
@@ -1156,19 +1156,19 @@ msgstr ""
|
|
1156 |
|
1157 |
#: src/addons/morestorage.php:81, src/admin.php:924
|
1158 |
msgid "Currently disabled"
|
1159 |
-
msgstr ""
|
1160 |
|
1161 |
#: src/addons/morestorage.php:81, src/admin.php:923
|
1162 |
msgid "Currently enabled"
|
1163 |
-
msgstr ""
|
1164 |
|
1165 |
#: src/templates/wp-admin/settings/tab-addons.php:30
|
1166 |
msgid "If you have purchased from UpdraftPlus.Com, then follow this link to the installation instructions (particularly step 1)."
|
1167 |
-
msgstr ""
|
1168 |
|
1169 |
#: src/templates/wp-admin/settings/tab-addons.php:30
|
1170 |
msgid "You are currently using the free version of UpdraftPlus."
|
1171 |
-
msgstr ""
|
1172 |
|
1173 |
#: src/templates/wp-admin/settings/tab-addons.php:26
|
1174 |
msgid "Get it here"
|
@@ -1188,11 +1188,11 @@ msgstr ""
|
|
1188 |
|
1189 |
#: src/includes/updraftplus-notices.php:193
|
1190 |
msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
|
1191 |
-
msgstr ""
|
1192 |
|
1193 |
#: src/templates/wp-admin/settings/existing-backups-table.php:87
|
1194 |
msgid "remote site"
|
1195 |
-
msgstr ""
|
1196 |
|
1197 |
#: src/addons/backblaze.php:475
|
1198 |
msgid "Invalid bucket name"
|
@@ -1296,7 +1296,7 @@ msgstr[1] ""
|
|
1296 |
|
1297 |
#: src/central/bootstrap.php:602
|
1298 |
msgid "Create another key"
|
1299 |
-
msgstr ""
|
1300 |
|
1301 |
#: src/central/bootstrap.php:533
|
1302 |
msgid "UpdraftCentral dashboard connection details"
|
@@ -1304,11 +1304,11 @@ msgstr ""
|
|
1304 |
|
1305 |
#: src/central/bootstrap.php:527, src/includes/updraftplus-tour.php:85
|
1306 |
msgid "Next"
|
1307 |
-
msgstr ""
|
1308 |
|
1309 |
#: src/central/bootstrap.php:513
|
1310 |
msgid "an account"
|
1311 |
-
msgstr ""
|
1312 |
|
1313 |
#: src/central/bootstrap.php:513
|
1314 |
msgid "i.e. if you have %s there"
|
@@ -1320,7 +1320,7 @@ msgstr ""
|
|
1320 |
|
1321 |
#: src/central/bootstrap.php:471
|
1322 |
msgid "Manage existing keys (%d)..."
|
1323 |
-
msgstr ""
|
1324 |
|
1325 |
#: src/central/bootstrap.php:421
|
1326 |
msgid "There are no UpdraftCentral dashboards that can currently control this site."
|
@@ -1328,7 +1328,7 @@ msgstr ""
|
|
1328 |
|
1329 |
#: src/central/bootstrap.php:258
|
1330 |
msgid "You can now control this site via your UpdraftCentral dashboard at %s."
|
1331 |
-
msgstr ""
|
1332 |
|
1333 |
#: src/central/bootstrap.php:256
|
1334 |
msgid "Detailed instructions for this can be found at %s"
|
@@ -1340,7 +1340,7 @@ msgstr ""
|
|
1340 |
|
1341 |
#: src/admin.php:918
|
1342 |
msgid "Please enter a valid URL e.g http://example.com"
|
1343 |
-
msgstr ""
|
1344 |
|
1345 |
#: src/addons/backblaze.php:661
|
1346 |
msgid "There are limits upon which path-names are valid. Spaces are not allowed."
|
@@ -1408,7 +1408,7 @@ msgstr ""
|
|
1408 |
|
1409 |
#: src/admin.php:897
|
1410 |
msgid "Error: The chosen file is corrupt. Please choose a valid UpdraftPlus export file."
|
1411 |
-
msgstr ""
|
1412 |
|
1413 |
#: src/backup.php:456, src/backup.php:2140, src/class-updraftplus.php:2133,
|
1414 |
#: src/class-updraftplus.php:2198,
|
@@ -1461,7 +1461,7 @@ msgstr ""
|
|
1461 |
|
1462 |
#: src/templates/wp-admin/settings/form-contents.php:191
|
1463 |
msgid "Select Files"
|
1464 |
-
msgstr ""
|
1465 |
|
1466 |
#: src/methods/cloudfiles.php:476
|
1467 |
msgid "Rackspace Storage Region"
|
@@ -1538,7 +1538,7 @@ msgstr "Cerca"
|
|
1538 |
|
1539 |
#: src/admin.php:912
|
1540 |
msgid "Select a file to view information about it"
|
1541 |
-
msgstr ""
|
1542 |
|
1543 |
#: src/admin.php:911
|
1544 |
msgid "Browsing zip file"
|
@@ -1590,7 +1590,7 @@ msgstr ""
|
|
1590 |
|
1591 |
#: src/admin.php:909
|
1592 |
msgid "HTTP code:"
|
1593 |
-
msgstr "
|
1594 |
|
1595 |
#: src/addons/wp-cli.php:109, src/admin.php:801
|
1596 |
msgid "You have chosen to backup a database, but no tables have been selected"
|
@@ -1614,7 +1614,7 @@ msgstr ""
|
|
1614 |
|
1615 |
#: src/templates/wp-admin/advanced/wipe-settings.php:11
|
1616 |
msgid "UpdraftPlus Tour"
|
1617 |
-
msgstr ""
|
1618 |
|
1619 |
#: src/templates/wp-admin/settings/tab-addons.php:232
|
1620 |
msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
|
@@ -1780,7 +1780,7 @@ msgstr ""
|
|
1780 |
#: src/addons/morefiles.php:297, src/addons/morefiles.php:317,
|
1781 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
1782 |
msgid "Edit"
|
1783 |
-
msgstr ""
|
1784 |
|
1785 |
#: src/addons/morefiles.php:280
|
1786 |
msgid "If using it, select a path from the directory tree below and then press confirm selection."
|
@@ -2266,7 +2266,7 @@ msgstr "Questo è causato qualche volta da un firewall - prova a togliere l'SSL
|
|
2266 |
|
2267 |
#: src/methods/ftp.php:412
|
2268 |
msgid "login"
|
2269 |
-
msgstr "
|
2270 |
|
2271 |
#: src/addons/reporting.php:527, src/addons/reporting.php:527,
|
2272 |
#: src/addons/reporting.php:529, src/methods/email.php:100
|
@@ -2405,7 +2405,7 @@ msgstr "Dimensione totale backup:"
|
|
2405 |
|
2406 |
#: src/admin.php:3416
|
2407 |
msgid "stop"
|
2408 |
-
msgstr "
|
2409 |
|
2410 |
#: src/admin.php:905, src/admin.php:3209
|
2411 |
msgid "The backup has finished running"
|
@@ -2484,7 +2484,7 @@ msgstr "Sarà importato come un nuovo sito."
|
|
2484 |
#: src/admin.php:2842, src/templates/wp-admin/notices/horizontal-notice.php:16,
|
2485 |
#: src/templates/wp-admin/notices/horizontal-notice.php:18
|
2486 |
msgid "Dismiss"
|
2487 |
-
msgstr "
|
2488 |
|
2489 |
#: src/admin.php:891
|
2490 |
msgid "Please fill in the required information."
|
@@ -2971,7 +2971,7 @@ msgstr "Inserisci la tua mail / password di UpdraftPlus.Com qui per connetterti:
|
|
2971 |
|
2972 |
#: src/methods/updraftvault.php:322, src/methods/updraftvault.php:351
|
2973 |
msgid "Read the FAQs here."
|
2974 |
-
msgstr ""
|
2975 |
|
2976 |
#: src/addons/s3-enhanced.php:73
|
2977 |
msgid "Check this box to use Amazon's server-side encryption"
|
@@ -3066,7 +3066,7 @@ msgstr "Vai qui per un aiuto"
|
|
3066 |
|
3067 |
#: src/methods/updraftvault.php:360
|
3068 |
msgid "E-mail"
|
3069 |
-
msgstr ""
|
3070 |
|
3071 |
#: src/central/bootstrap.php:570, src/methods/updraftvault.php:354,
|
3072 |
#: src/methods/updraftvault.php:368,
|
@@ -3098,7 +3098,7 @@ msgstr ""
|
|
3098 |
|
3099 |
#: src/methods/updraftvault.php:315
|
3100 |
msgid "Show the options"
|
3101 |
-
msgstr ""
|
3102 |
|
3103 |
#: src/methods/updraftvault.php:314
|
3104 |
msgid "First time user?"
|
@@ -3126,7 +3126,7 @@ msgstr ""
|
|
3126 |
|
3127 |
#: src/methods/updraftvault.php:99
|
3128 |
msgid "Updraft Vault"
|
3129 |
-
msgstr ""
|
3130 |
|
3131 |
#: src/addons/azure.php:443, src/addons/backblaze.php:528,
|
3132 |
#: src/addons/googlecloud.php:843, src/methods/s3.php:1172
|
@@ -3295,7 +3295,7 @@ msgstr "E' per l'invio dei backup ai seguenti siti:"
|
|
3295 |
|
3296 |
#: src/includes/class-remote-send.php:493
|
3297 |
msgid "The key was successfully added."
|
3298 |
-
msgstr "La chiave è stata
|
3299 |
|
3300 |
#: src/includes/class-remote-send.php:477
|
3301 |
msgid "The entered key does not belong to a remote site (it belongs to this one)."
|
@@ -3606,7 +3606,7 @@ msgstr ""
|
|
3606 |
|
3607 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:33
|
3608 |
msgid "Premium WooCommerce plugins"
|
3609 |
-
msgstr "
|
3610 |
|
3611 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:33
|
3612 |
msgid "Free two-factor security plugin"
|
@@ -3614,7 +3614,7 @@ msgstr ""
|
|
3614 |
|
3615 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:32
|
3616 |
msgid "More quality plugins"
|
3617 |
-
msgstr ""
|
3618 |
|
3619 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
|
3620 |
msgid "Go to the shop."
|
@@ -3636,7 +3636,7 @@ msgstr "Newsletter Gratuita"
|
|
3636 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
|
3637 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:35
|
3638 |
msgid "Dismiss (for %s months)"
|
3639 |
-
msgstr ""
|
3640 |
|
3641 |
#: src/addons/fixtime.php:448
|
3642 |
msgid "(at same time as files backup)"
|
@@ -3669,7 +3669,7 @@ msgstr ""
|
|
3669 |
|
3670 |
#: src/templates/wp-admin/settings/tab-addons.php:18
|
3671 |
msgid "Full feature list"
|
3672 |
-
msgstr ""
|
3673 |
|
3674 |
#: src/addons/autobackup.php:1080
|
3675 |
msgid "Backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
|
@@ -3719,7 +3719,7 @@ msgstr ""
|
|
3719 |
#: src/admin.php:3717
|
3720 |
msgctxt "i.e. Non-automatic"
|
3721 |
msgid "Manual"
|
3722 |
-
msgstr ""
|
3723 |
|
3724 |
#: src/restorer.php:2784
|
3725 |
msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
|
@@ -3830,7 +3830,7 @@ msgstr ""
|
|
3830 |
|
3831 |
#: src/admin.php:3209, src/admin.php:4278
|
3832 |
msgid "View Log"
|
3833 |
-
msgstr "
|
3834 |
|
3835 |
#: src/templates/wp-admin/settings/existing-backups-table.php:18,
|
3836 |
#: src/templates/wp-admin/settings/existing-backups-table.php:97
|
@@ -3867,7 +3867,7 @@ msgstr ""
|
|
3867 |
|
3868 |
#: src/class-updraftplus.php:3990
|
3869 |
msgid "Backup label:"
|
3870 |
-
msgstr "Etichetta
|
3871 |
|
3872 |
#: src/addons/backblaze.php:205, src/admin.php:2113
|
3873 |
msgid "Error: unexpected file read fail"
|
@@ -3985,7 +3985,7 @@ msgstr "Twitter"
|
|
3985 |
|
3986 |
#: src/includes/updraftplus-notices.php:132
|
3987 |
msgid "UpdraftPlus is on social media - check us out!"
|
3988 |
-
msgstr ""
|
3989 |
|
3990 |
#: src/addons/wp-cli.php:907, src/admin.php:4466
|
3991 |
msgid "Why am I seeing this?"
|
@@ -4148,7 +4148,7 @@ msgstr "Questo pulsante è disabilitato perché la directory di backup non è sc
|
|
4148 |
#: src/templates/wp-admin/settings/tab-backups.php:21,
|
4149 |
#: src/templates/wp-admin/settings/tab-backups.php:44
|
4150 |
msgid "Existing Backups"
|
4151 |
-
msgstr "Backup
|
4152 |
|
4153 |
#: src/admin.php:1143
|
4154 |
msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
|
@@ -4258,7 +4258,7 @@ msgstr "Questo causerà inoltre la stampa a schermo del debugging di tutti i plu
|
|
4258 |
|
4259 |
#: src/templates/wp-admin/settings/form-contents.php:233
|
4260 |
msgid "Backup more databases"
|
4261 |
-
msgstr ""
|
4262 |
|
4263 |
#: src/templates/wp-admin/settings/form-contents.php:192
|
4264 |
msgid "First, enter the decryption key"
|
@@ -4910,7 +4910,7 @@ msgstr "Usa questo add-on per creare un nuovo API sub-user Rackspace e una API k
|
|
4910 |
|
4911 |
#: src/methods/cloudfiles-new.php:134
|
4912 |
msgid "Cloud Files Username"
|
4913 |
-
msgstr "
|
4914 |
|
4915 |
#: src/addons/cloudfiles-enhanced.php:47, src/methods/cloudfiles-new.php:166
|
4916 |
msgid "London (LON)"
|
@@ -5098,7 +5098,7 @@ msgstr "logo %s"
|
|
5098 |
|
5099 |
#: src/methods/dropbox.php:286
|
5100 |
msgid "did not return the expected response - check your log file for more details"
|
5101 |
-
msgstr ""
|
5102 |
|
5103 |
#: src/methods/s3.php:312
|
5104 |
msgid "The required %s PHP module is not installed - ask your web hosting company to enable it"
|
@@ -5140,7 +5140,7 @@ msgstr "Ultimo status:"
|
|
5140 |
|
5141 |
#: src/backup.php:1137
|
5142 |
msgid "Backup contains:"
|
5143 |
-
msgstr "Il
|
5144 |
|
5145 |
#: src/backup.php:1094
|
5146 |
msgid "Backed up: %s"
|
@@ -5277,7 +5277,7 @@ msgstr "Contenuto URL:"
|
|
5277 |
|
5278 |
#: src/restorer.php:525
|
5279 |
msgid "You should check the file ownerships and permissions in your WordPress installation"
|
5280 |
-
msgstr ""
|
5281 |
|
5282 |
#: src/templates/wp-admin/settings/form-contents.php:147
|
5283 |
msgid "See also the \"More Files\" add-on from our shop."
|
@@ -5872,7 +5872,7 @@ msgstr "Ricerca archivio %s: nome file:%s"
|
|
5872 |
|
5873 |
#: src/addons/wp-cli.php:784, src/admin.php:4570
|
5874 |
msgid "Final checks"
|
5875 |
-
msgstr "Controlli
|
5876 |
|
5877 |
#: src/templates/wp-admin/settings/form-contents.php:314
|
5878 |
msgid "Check this to delete any superfluous backup files from your server after the backup run finishes (i.e. if you uncheck, then any files despatched remotely will also remain locally, and any files being kept locally will not be subject to the retention limits)."
|
@@ -6505,7 +6505,7 @@ msgstr "c'è un add-on per questo."
|
|
6505 |
|
6506 |
#: src/methods/dropbox.php:603, src/methods/dropbox.php:605
|
6507 |
msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
|
6508 |
-
msgstr ""
|
6509 |
|
6510 |
#: src/methods/dropbox.php:603, src/methods/dropbox.php:605
|
6511 |
msgid "Backups are saved in"
|
@@ -6681,7 +6681,7 @@ msgstr "UK"
|
|
6681 |
#: src/addons/cloudfiles-enhanced.php:37, src/methods/cloudfiles-new.php:118,
|
6682 |
#: src/methods/cloudfiles.php:466
|
6683 |
msgid "US (default)"
|
6684 |
-
msgstr "USA (
|
6685 |
|
6686 |
#: src/methods/cloudfiles.php:463
|
6687 |
msgid "US or UK Cloud"
|
@@ -6750,7 +6750,7 @@ msgstr "Se Google in seguito visualizzerà il messaggio \"invalid_client\", allo
|
|
6750 |
#: src/addons/googlecloud.php:1019, src/addons/onedrive.php:1177,
|
6751 |
#: src/methods/googledrive.php:1233
|
6752 |
msgid "Client ID"
|
6753 |
-
msgstr "ID
|
6754 |
|
6755 |
#: src/methods/googledrive.php:1207
|
6756 |
msgid "You must add the following as the authorised redirect URI (under \"More Options\") when asked"
|
@@ -6814,7 +6814,7 @@ msgstr "Nessun token di aggiornamento è stato ricevuto da Google. Questo spesso
|
|
6814 |
|
6815 |
#: src/methods/addon-not-yet-present.php:84
|
6816 |
msgid "follow this link to get it"
|
6817 |
-
msgstr "
|
6818 |
|
6819 |
#: src/methods/addon-not-yet-present.php:84
|
6820 |
msgid "%s support is available as an add-on"
|
@@ -7029,7 +7029,7 @@ msgstr "o, per resettare questa opzione"
|
|
7029 |
|
7030 |
#: src/admin.php:3738
|
7031 |
msgid "Follow this link to attempt to create the directory and set the permissions"
|
7032 |
-
msgstr ""
|
7033 |
|
7034 |
#: src/admin.php:3730
|
7035 |
msgid "Backup directory specified is writable, which is good."
|
@@ -7154,11 +7154,11 @@ msgstr "La richiesta di creazione della cartella al file system è fallita."
|
|
7154 |
#: src/templates/wp-admin/settings/existing-backups-table.php:155,
|
7155 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
7156 |
msgid "Delete"
|
7157 |
-
msgstr "
|
7158 |
|
7159 |
#: src/admin.php:3415
|
7160 |
msgid "show log"
|
7161 |
-
msgstr "
|
7162 |
|
7163 |
#: src/templates/wp-admin/advanced/wipe-settings.php:9
|
7164 |
msgid "This will delete all your UpdraftPlus settings - are you sure you want to do this?"
|
@@ -7438,7 +7438,7 @@ msgstr "Notifiche JavaScript"
|
|
7438 |
|
7439 |
#: src/admin.php:828, src/admin.php:3151
|
7440 |
msgid "Delete Old Directories"
|
7441 |
-
msgstr "Elimina
|
7442 |
|
7443 |
#: src/admin.php:2638
|
7444 |
msgid "Current limit is:"
|
@@ -7458,7 +7458,7 @@ msgstr "Vai alla homepage dello sviluppatore"
|
|
7458 |
|
7459 |
#: src/central/bootstrap.php:511
|
7460 |
msgid "UpdraftPlus.Com"
|
7461 |
-
msgstr ""
|
7462 |
|
7463 |
#: src/admin.php:5053
|
7464 |
msgid "Your settings have been wiped."
|
@@ -7596,7 +7596,7 @@ msgstr "Ricursione infinita: consultare il log per maggiori informazioni"
|
|
7596 |
|
7597 |
#: src/includes/updraftplus-notices.php:102
|
7598 |
msgid "Please help UpdraftPlus by giving a positive review at wordpress.org."
|
7599 |
-
msgstr ""
|
7600 |
|
7601 |
#: src/includes/updraftplus-notices.php:101
|
7602 |
msgid "Like UpdraftPlus and can spare one minute?"
|
@@ -7639,7 +7639,7 @@ msgstr "La cartella di backup (%s) non è scrivibile o non esiste."
|
|
7639 |
|
7640 |
#: src/backup.php:1136
|
7641 |
msgid "WordPress backup is complete"
|
7642 |
-
msgstr "
|
7643 |
|
7644 |
#: src/class-updraftplus.php:2998
|
7645 |
msgid "The backup attempt has finished, apparently unsuccessfully"
|
@@ -7663,7 +7663,7 @@ msgstr "Altri"
|
|
7663 |
|
7664 |
#: src/addons/multisite.php:500, src/class-updraftplus.php:1781
|
7665 |
msgid "Uploads"
|
7666 |
-
msgstr "
|
7667 |
|
7668 |
#: src/class-updraftplus.php:1780
|
7669 |
msgid "Themes"
|
@@ -7690,4 +7690,4 @@ msgstr "Note di UpdraftPlus:"
|
|
7690 |
#: src/addons/multisite.php:96, src/addons/multisite.php:736,
|
7691 |
#: src/options.php:74
|
7692 |
msgid "UpdraftPlus Backups"
|
7693 |
-
msgstr "UpdraftPlus
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-12-15 11:42:50+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
35 |
|
36 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
37 |
msgid "Read more about Easy Updates Manager"
|
38 |
+
msgstr "Leggi tutto sull'Easy Updates Manager"
|
39 |
|
40 |
#: src/templates/wp-admin/settings/temporary-clone.php:68
|
41 |
msgid "You can find out more about clone keys here."
|
43 |
|
44 |
#: src/templates/wp-admin/settings/temporary-clone.php:57
|
45 |
msgid "Or, use an UpdraftClone key"
|
46 |
+
msgstr "O utilizza una chiave UpdraftClone"
|
47 |
|
48 |
#: src/restorer.php:2493
|
49 |
msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
|
63 |
|
64 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
65 |
msgid "Ask WordPress to automatically update UpdraftPlus when it finds an available update."
|
66 |
+
msgstr "Chiedi a WordPress di aggiornare automaticamente UpdraftPlus quando trova un aggiornamento disponibile."
|
67 |
|
68 |
#: src/templates/wp-admin/settings/form-contents.php:349
|
69 |
msgid "Automatic updates"
|
70 |
+
msgstr "Aggiornamenti automatici"
|
71 |
|
72 |
#: src/restorer.php:2092, src/restorer.php:2134
|
73 |
msgid "Your database user does not have permission to drop tables"
|
135 |
|
136 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
137 |
msgid "Confirm change"
|
138 |
+
msgstr "Conferma la modifica"
|
139 |
|
140 |
#: src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-submit.php:3,
|
141 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:18
|
167 |
#: src/templates/wp-admin/settings/exclude-modal.php:44,
|
168 |
#: src/templates/wp-admin/settings/exclude-modal.php:46
|
169 |
msgid "All files with this extension"
|
170 |
+
msgstr "Tutti i file con questa estensione"
|
171 |
|
172 |
#: src/templates/wp-admin/settings/exclude-modal.php:9,
|
173 |
#: src/templates/wp-admin/settings/exclude-modal.php:22
|
174 |
msgid "File/directory"
|
175 |
+
msgstr "File/directory"
|
176 |
|
177 |
#: src/templates/wp-admin/settings/exclude-modal.php:6
|
178 |
msgid "Select a way to exclude files or directories from the backup"
|
180 |
|
181 |
#: src/templates/wp-admin/settings/exclude-modal.php:2
|
182 |
msgid "Exclude files/directories"
|
183 |
+
msgstr "Escludi file/directory"
|
184 |
|
185 |
#: src/includes/updraftclone/temporary-clone-status.php:422
|
186 |
msgid "To read FAQs/documentation about UpdraftClone, go here."
|
188 |
|
189 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
190 |
msgid "your UpdraftPlus.com account"
|
191 |
+
msgstr "il tuo account UpdraftPlus.com"
|
192 |
|
193 |
#: src/includes/updraftclone/temporary-clone-status.php:421
|
194 |
msgid "You can check the progress here or in %s"
|
239 |
#: src/includes/updraftclone/temporary-clone-status.php:66,
|
240 |
#: src/includes/updraftclone/temporary-clone-status.php:341
|
241 |
msgid "WordPress installed"
|
242 |
+
msgstr "WordPress installato"
|
243 |
|
244 |
#: src/admin.php:5428
|
245 |
msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
|
299 |
|
300 |
#: src/admin.php:5424
|
301 |
msgid "Dashboard:"
|
302 |
+
msgstr "Bacheca:"
|
303 |
|
304 |
#: src/admin.php:5423
|
305 |
msgid "Front page:"
|
386 |
#: src/templates/wp-admin/settings/temporary-clone.php:56,
|
387 |
#: src/templates/wp-admin/settings/temporary-clone.php:76
|
388 |
msgid "I accept the UpdraftClone terms and conditions"
|
389 |
+
msgstr "Accetto i termini e le condizioni di utilizzo di UpdraftClone"
|
390 |
|
391 |
#: src/templates/wp-admin/settings/temporary-clone.php:56
|
392 |
msgid "Not got an account? Get one by buying some tokens here."
|
408 |
|
409 |
#: src/templates/wp-admin/settings/temporary-clone.php:32
|
410 |
msgid "Flexible"
|
411 |
+
msgstr "Flessibile"
|
412 |
|
413 |
#: src/templates/wp-admin/settings/temporary-clone.php:31
|
414 |
msgid "Takes just the time needed to create a backup and send it."
|
416 |
|
417 |
#: src/templates/wp-admin/settings/temporary-clone.php:31
|
418 |
msgid "Fast"
|
419 |
+
msgstr "Veloce"
|
420 |
|
421 |
#: src/templates/wp-admin/settings/temporary-clone.php:30
|
422 |
msgid "One VPS (Virtual Private Server) per clone, shared with nobody."
|
424 |
|
425 |
#: src/templates/wp-admin/settings/temporary-clone.php:30
|
426 |
msgid "Secure"
|
427 |
+
msgstr "Sicuro"
|
428 |
|
429 |
#: src/templates/wp-admin/settings/temporary-clone.php:29
|
430 |
msgid "Runs on capacity from a leading cloud computing provider."
|
432 |
|
433 |
#: src/templates/wp-admin/settings/temporary-clone.php:29
|
434 |
msgid "Reliable"
|
435 |
+
msgstr "Affidabile"
|
436 |
|
437 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
438 |
msgid "Press the buttons... UpdraftClone does the work."
|
440 |
|
441 |
#: src/templates/wp-admin/settings/temporary-clone.php:28
|
442 |
msgid "Easy"
|
443 |
+
msgstr "Facile"
|
444 |
|
445 |
#: src/templates/wp-admin/settings/temporary-clone.php:22
|
446 |
msgid "A temporary clone is an instant copy of this website, running on our servers. Rather than test things on your live site, you can UpdraftClone it, and then throw away your clone when done."
|
453 |
|
454 |
#: src/templates/wp-admin/settings/tab-addons.php:23
|
455 |
msgid "WooCommerce plugins"
|
456 |
+
msgstr "Plugin di WooCommerce"
|
457 |
|
458 |
#: src/templates/wp-admin/advanced/wipe-settings.php:13
|
459 |
msgid "Reset tour"
|
511 |
|
512 |
#: src/includes/updraftplus-tour.php:139
|
513 |
msgid "Congratulations, your settings have successfully been saved."
|
514 |
+
msgstr "Congratulazioni, le tue impostazioni sono state salvate con successo."
|
515 |
|
516 |
#: src/includes/updraftplus-tour.php:135
|
517 |
msgid "Press here to save your settings."
|
518 |
+
msgstr "Premi qui per salvare le tue impostazioni."
|
519 |
|
520 |
#: src/includes/updraftplus-tour.php:134, src/includes/updraftplus-tour.php:138
|
521 |
msgid "Save"
|
522 |
+
msgstr "Salva"
|
523 |
|
524 |
#: src/includes/updraftplus-tour.php:131
|
525 |
msgid "Look through the other settings here, making any changes you’d like."
|
557 |
|
558 |
#: src/includes/updraftplus-tour.php:109, src/includes/updraftplus-tour.php:114
|
559 |
msgid "Go to settings"
|
560 |
+
msgstr "Vai alle impostazioni"
|
561 |
|
562 |
#: src/includes/updraftplus-tour.php:108, src/includes/updraftplus-tour.php:113
|
563 |
msgctxt "Translators: %s is a bold tag."
|
566 |
|
567 |
#: src/includes/updraftplus-tour.php:108
|
568 |
msgid "Press here to run a manual backup."
|
569 |
+
msgstr "Premi qui per effettuare un backup manuale."
|
570 |
|
571 |
#: src/includes/updraftplus-tour.php:107, src/includes/updraftplus-tour.php:112
|
572 |
msgid "Creating your first backup"
|
587 |
|
588 |
#: src/includes/updraftplus-tour.php:99
|
589 |
msgid "Your first backup"
|
590 |
+
msgstr "Il tuo primo backup"
|
591 |
|
592 |
#: src/includes/updraftplus-tour.php:95
|
593 |
msgid "Press here to start!"
|
599 |
|
600 |
#: src/includes/updraftplus-tour.php:92
|
601 |
msgid "Welcome to UpdraftPlus"
|
602 |
+
msgstr "Benvenuto in UpdraftPlus"
|
603 |
|
604 |
#: src/includes/updraftplus-tour.php:91
|
605 |
msgid "UpdraftPlus settings"
|
606 |
+
msgstr "Impostazioni UpdraftPlus"
|
607 |
|
608 |
#: src/includes/updraftplus-tour.php:88
|
609 |
msgid "End tour"
|
611 |
|
612 |
#: src/includes/updraftplus-tour.php:87
|
613 |
msgid "Skip this step"
|
614 |
+
msgstr "Salta questo passaggio"
|
615 |
|
616 |
#: src/includes/updraftplus-tour.php:86
|
617 |
msgid "Back"
|
618 |
+
msgstr "Indietro"
|
619 |
|
620 |
#: src/includes/class-commands.php:893
|
621 |
msgid "You can buy more temporary clone tokens here."
|
663 |
|
664 |
#: src/admin.php:2798
|
665 |
msgid "Backup / Restore"
|
666 |
+
msgstr "Backup / Ripristino"
|
667 |
|
668 |
#: src/admin.php:663
|
669 |
msgid "Backup"
|
670 |
+
msgstr "Backup"
|
671 |
|
672 |
#: src/addons/wp-cli.php:408
|
673 |
msgid "Latest full backup found; identifier:"
|
769 |
|
770 |
#: src/admin.php:5402
|
771 |
msgid "(current version)"
|
772 |
+
msgstr "(versione attuale)"
|
773 |
|
774 |
#: src/admin.php:3738
|
775 |
msgid "press here"
|
776 |
+
msgstr "premi qui"
|
777 |
|
778 |
#: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
|
779 |
#: src/methods/googledrive.php:1214
|
780 |
msgid "this privacy policy"
|
781 |
+
msgstr "questa privacy policy"
|
782 |
|
783 |
#: src/addons/onedrive.php:1157, src/methods/dropbox.php:586,
|
784 |
#: src/methods/googledrive.php:1214
|
795 |
|
796 |
#: src/addons/incremental.php:236, src/updraftplus.php:99
|
797 |
msgid "Every hour"
|
798 |
+
msgstr "Ogni ora"
|
799 |
|
800 |
#: src/includes/class-commands.php:900
|
801 |
msgid "Create clone"
|
930 |
#: src/admin.php:929,
|
931 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:9
|
932 |
msgid "UpdraftCentral Cloud"
|
933 |
+
msgstr "UpdraftCentral Cloud"
|
934 |
|
935 |
#: src/admin.php:489
|
936 |
msgid "Are you sure you want to dismiss all UpdraftPlus news forever?"
|
990 |
|
991 |
#: src/admin.php:846, src/admin.php:4248
|
992 |
msgid "Upload"
|
993 |
+
msgstr "Carica"
|
994 |
|
995 |
#: src/addons/reporting.php:529, src/admin.php:796
|
996 |
msgid "Only email the database backup"
|
1026 |
|
1027 |
#: src/templates/wp-admin/settings/tab-addons.php:153
|
1028 |
msgid "WP-CLI support"
|
1029 |
+
msgstr "Supporto WP-CLI"
|
1030 |
|
1031 |
#: src/templates/wp-admin/settings/tab-addons.php:152
|
1032 |
msgid "WP CLI"
|
1033 |
+
msgstr "WP CLI"
|
1034 |
|
1035 |
#: src/addons/wp-cli.php:265
|
1036 |
msgid "Invalid Job Id"
|
1128 |
|
1129 |
#: src/admin.php:4982
|
1130 |
msgid "authentication error"
|
1131 |
+
msgstr "errore di autenticazione"
|
1132 |
|
1133 |
#: src/addons/multisite.php:44, src/options.php:38
|
1134 |
msgid "(Nothing has been logged yet)"
|
1156 |
|
1157 |
#: src/addons/morestorage.php:81, src/admin.php:924
|
1158 |
msgid "Currently disabled"
|
1159 |
+
msgstr "Attualmente disabilitato"
|
1160 |
|
1161 |
#: src/addons/morestorage.php:81, src/admin.php:923
|
1162 |
msgid "Currently enabled"
|
1163 |
+
msgstr "Attualmente abilitato"
|
1164 |
|
1165 |
#: src/templates/wp-admin/settings/tab-addons.php:30
|
1166 |
msgid "If you have purchased from UpdraftPlus.Com, then follow this link to the installation instructions (particularly step 1)."
|
1167 |
+
msgstr "Se hai acquistato da UpdraftPlus.Com, segui questo link per le istruzioni di installazione (in particolare passaggio 1)."
|
1168 |
|
1169 |
#: src/templates/wp-admin/settings/tab-addons.php:30
|
1170 |
msgid "You are currently using the free version of UpdraftPlus."
|
1171 |
+
msgstr "Stai utilizzando la versione gratuita di UpdraftPlus."
|
1172 |
|
1173 |
#: src/templates/wp-admin/settings/tab-addons.php:26
|
1174 |
msgid "Get it here"
|
1188 |
|
1189 |
#: src/includes/updraftplus-notices.php:193
|
1190 |
msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
|
1191 |
+
msgstr "Mai più password dimenticate. Scopri di più sul nostro nuovo rivoluzionario plugin WordPress"
|
1192 |
|
1193 |
#: src/templates/wp-admin/settings/existing-backups-table.php:87
|
1194 |
msgid "remote site"
|
1195 |
+
msgstr "sito remoto"
|
1196 |
|
1197 |
#: src/addons/backblaze.php:475
|
1198 |
msgid "Invalid bucket name"
|
1296 |
|
1297 |
#: src/central/bootstrap.php:602
|
1298 |
msgid "Create another key"
|
1299 |
+
msgstr "Cra un'altra chiave"
|
1300 |
|
1301 |
#: src/central/bootstrap.php:533
|
1302 |
msgid "UpdraftCentral dashboard connection details"
|
1304 |
|
1305 |
#: src/central/bootstrap.php:527, src/includes/updraftplus-tour.php:85
|
1306 |
msgid "Next"
|
1307 |
+
msgstr "Successivo"
|
1308 |
|
1309 |
#: src/central/bootstrap.php:513
|
1310 |
msgid "an account"
|
1311 |
+
msgstr "un account"
|
1312 |
|
1313 |
#: src/central/bootstrap.php:513
|
1314 |
msgid "i.e. if you have %s there"
|
1320 |
|
1321 |
#: src/central/bootstrap.php:471
|
1322 |
msgid "Manage existing keys (%d)..."
|
1323 |
+
msgstr "Gestisci le chiavi esistenti (%d)..."
|
1324 |
|
1325 |
#: src/central/bootstrap.php:421
|
1326 |
msgid "There are no UpdraftCentral dashboards that can currently control this site."
|
1328 |
|
1329 |
#: src/central/bootstrap.php:258
|
1330 |
msgid "You can now control this site via your UpdraftCentral dashboard at %s."
|
1331 |
+
msgstr "Ora puoi controllare questo sito attraverso il tuo pannello di controllo di UpdraftCentral da %s."
|
1332 |
|
1333 |
#: src/central/bootstrap.php:256
|
1334 |
msgid "Detailed instructions for this can be found at %s"
|
1340 |
|
1341 |
#: src/admin.php:918
|
1342 |
msgid "Please enter a valid URL e.g http://example.com"
|
1343 |
+
msgstr "Inserisci un URL valido, ad es. http://example.com"
|
1344 |
|
1345 |
#: src/addons/backblaze.php:661
|
1346 |
msgid "There are limits upon which path-names are valid. Spaces are not allowed."
|
1408 |
|
1409 |
#: src/admin.php:897
|
1410 |
msgid "Error: The chosen file is corrupt. Please choose a valid UpdraftPlus export file."
|
1411 |
+
msgstr "Errore: il file scelto è corrotto. Scegli un file di esportazione UpdraftPlus valido."
|
1412 |
|
1413 |
#: src/backup.php:456, src/backup.php:2140, src/class-updraftplus.php:2133,
|
1414 |
#: src/class-updraftplus.php:2198,
|
1461 |
|
1462 |
#: src/templates/wp-admin/settings/form-contents.php:191
|
1463 |
msgid "Select Files"
|
1464 |
+
msgstr "Seleziona i file"
|
1465 |
|
1466 |
#: src/methods/cloudfiles.php:476
|
1467 |
msgid "Rackspace Storage Region"
|
1538 |
|
1539 |
#: src/admin.php:912
|
1540 |
msgid "Select a file to view information about it"
|
1541 |
+
msgstr "Seleziona un file per visualizzarne le informazioni"
|
1542 |
|
1543 |
#: src/admin.php:911
|
1544 |
msgid "Browsing zip file"
|
1590 |
|
1591 |
#: src/admin.php:909
|
1592 |
msgid "HTTP code:"
|
1593 |
+
msgstr "Codice HTTP:"
|
1594 |
|
1595 |
#: src/addons/wp-cli.php:109, src/admin.php:801
|
1596 |
msgid "You have chosen to backup a database, but no tables have been selected"
|
1614 |
|
1615 |
#: src/templates/wp-admin/advanced/wipe-settings.php:11
|
1616 |
msgid "UpdraftPlus Tour"
|
1617 |
+
msgstr "Tour di UpdraftPlus"
|
1618 |
|
1619 |
#: src/templates/wp-admin/settings/tab-addons.php:232
|
1620 |
msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
|
1780 |
#: src/addons/morefiles.php:297, src/addons/morefiles.php:317,
|
1781 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
1782 |
msgid "Edit"
|
1783 |
+
msgstr "Modifica"
|
1784 |
|
1785 |
#: src/addons/morefiles.php:280
|
1786 |
msgid "If using it, select a path from the directory tree below and then press confirm selection."
|
2266 |
|
2267 |
#: src/methods/ftp.php:412
|
2268 |
msgid "login"
|
2269 |
+
msgstr "login"
|
2270 |
|
2271 |
#: src/addons/reporting.php:527, src/addons/reporting.php:527,
|
2272 |
#: src/addons/reporting.php:529, src/methods/email.php:100
|
2405 |
|
2406 |
#: src/admin.php:3416
|
2407 |
msgid "stop"
|
2408 |
+
msgstr "stop"
|
2409 |
|
2410 |
#: src/admin.php:905, src/admin.php:3209
|
2411 |
msgid "The backup has finished running"
|
2484 |
#: src/admin.php:2842, src/templates/wp-admin/notices/horizontal-notice.php:16,
|
2485 |
#: src/templates/wp-admin/notices/horizontal-notice.php:18
|
2486 |
msgid "Dismiss"
|
2487 |
+
msgstr "Ignora"
|
2488 |
|
2489 |
#: src/admin.php:891
|
2490 |
msgid "Please fill in the required information."
|
2971 |
|
2972 |
#: src/methods/updraftvault.php:322, src/methods/updraftvault.php:351
|
2973 |
msgid "Read the FAQs here."
|
2974 |
+
msgstr "Leggi le FAQ qui."
|
2975 |
|
2976 |
#: src/addons/s3-enhanced.php:73
|
2977 |
msgid "Check this box to use Amazon's server-side encryption"
|
3066 |
|
3067 |
#: src/methods/updraftvault.php:360
|
3068 |
msgid "E-mail"
|
3069 |
+
msgstr "Email"
|
3070 |
|
3071 |
#: src/central/bootstrap.php:570, src/methods/updraftvault.php:354,
|
3072 |
#: src/methods/updraftvault.php:368,
|
3098 |
|
3099 |
#: src/methods/updraftvault.php:315
|
3100 |
msgid "Show the options"
|
3101 |
+
msgstr "Mostra le opzioni"
|
3102 |
|
3103 |
#: src/methods/updraftvault.php:314
|
3104 |
msgid "First time user?"
|
3126 |
|
3127 |
#: src/methods/updraftvault.php:99
|
3128 |
msgid "Updraft Vault"
|
3129 |
+
msgstr "Updraft Vault"
|
3130 |
|
3131 |
#: src/addons/azure.php:443, src/addons/backblaze.php:528,
|
3132 |
#: src/addons/googlecloud.php:843, src/methods/s3.php:1172
|
3295 |
|
3296 |
#: src/includes/class-remote-send.php:493
|
3297 |
msgid "The key was successfully added."
|
3298 |
+
msgstr "La chiave è stata aggiunta con successo."
|
3299 |
|
3300 |
#: src/includes/class-remote-send.php:477
|
3301 |
msgid "The entered key does not belong to a remote site (it belongs to this one)."
|
3606 |
|
3607 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:33
|
3608 |
msgid "Premium WooCommerce plugins"
|
3609 |
+
msgstr "Plugin premium di WooCommerce"
|
3610 |
|
3611 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:33
|
3612 |
msgid "Free two-factor security plugin"
|
3614 |
|
3615 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:32
|
3616 |
msgid "More quality plugins"
|
3617 |
+
msgstr "Altri plugin di qualità"
|
3618 |
|
3619 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
|
3620 |
msgid "Go to the shop."
|
3636 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
|
3637 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:35
|
3638 |
msgid "Dismiss (for %s months)"
|
3639 |
+
msgstr "Ignora (per %s mesi)"
|
3640 |
|
3641 |
#: src/addons/fixtime.php:448
|
3642 |
msgid "(at same time as files backup)"
|
3669 |
|
3670 |
#: src/templates/wp-admin/settings/tab-addons.php:18
|
3671 |
msgid "Full feature list"
|
3672 |
+
msgstr "Lista completa delle funzionalità"
|
3673 |
|
3674 |
#: src/addons/autobackup.php:1080
|
3675 |
msgid "Backup (where relevant) plugins, themes and the WordPress database with UpdraftPlus before updating"
|
3719 |
#: src/admin.php:3717
|
3720 |
msgctxt "i.e. Non-automatic"
|
3721 |
msgid "Manual"
|
3722 |
+
msgstr "Manuale"
|
3723 |
|
3724 |
#: src/restorer.php:2784
|
3725 |
msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
|
3830 |
|
3831 |
#: src/admin.php:3209, src/admin.php:4278
|
3832 |
msgid "View Log"
|
3833 |
+
msgstr "Visualizza il log"
|
3834 |
|
3835 |
#: src/templates/wp-admin/settings/existing-backups-table.php:18,
|
3836 |
#: src/templates/wp-admin/settings/existing-backups-table.php:97
|
3867 |
|
3868 |
#: src/class-updraftplus.php:3990
|
3869 |
msgid "Backup label:"
|
3870 |
+
msgstr "Etichetta del backup:"
|
3871 |
|
3872 |
#: src/addons/backblaze.php:205, src/admin.php:2113
|
3873 |
msgid "Error: unexpected file read fail"
|
3985 |
|
3986 |
#: src/includes/updraftplus-notices.php:132
|
3987 |
msgid "UpdraftPlus is on social media - check us out!"
|
3988 |
+
msgstr "UpdraftPlus è sui social media - dai un'occhiata qui!"
|
3989 |
|
3990 |
#: src/addons/wp-cli.php:907, src/admin.php:4466
|
3991 |
msgid "Why am I seeing this?"
|
4148 |
#: src/templates/wp-admin/settings/tab-backups.php:21,
|
4149 |
#: src/templates/wp-admin/settings/tab-backups.php:44
|
4150 |
msgid "Existing Backups"
|
4151 |
+
msgstr "Backup esistenti"
|
4152 |
|
4153 |
#: src/admin.php:1143
|
4154 |
msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
|
4258 |
|
4259 |
#: src/templates/wp-admin/settings/form-contents.php:233
|
4260 |
msgid "Backup more databases"
|
4261 |
+
msgstr "Backup di più di un database"
|
4262 |
|
4263 |
#: src/templates/wp-admin/settings/form-contents.php:192
|
4264 |
msgid "First, enter the decryption key"
|
4910 |
|
4911 |
#: src/methods/cloudfiles-new.php:134
|
4912 |
msgid "Cloud Files Username"
|
4913 |
+
msgstr "Nome utente Cloud Files"
|
4914 |
|
4915 |
#: src/addons/cloudfiles-enhanced.php:47, src/methods/cloudfiles-new.php:166
|
4916 |
msgid "London (LON)"
|
5098 |
|
5099 |
#: src/methods/dropbox.php:286
|
5100 |
msgid "did not return the expected response - check your log file for more details"
|
5101 |
+
msgstr "non ha prodotto la risposta attesa - controllare il file di log per ulteriori dettagli"
|
5102 |
|
5103 |
#: src/methods/s3.php:312
|
5104 |
msgid "The required %s PHP module is not installed - ask your web hosting company to enable it"
|
5140 |
|
5141 |
#: src/backup.php:1137
|
5142 |
msgid "Backup contains:"
|
5143 |
+
msgstr "Il backup contiene:"
|
5144 |
|
5145 |
#: src/backup.php:1094
|
5146 |
msgid "Backed up: %s"
|
5277 |
|
5278 |
#: src/restorer.php:525
|
5279 |
msgid "You should check the file ownerships and permissions in your WordPress installation"
|
5280 |
+
msgstr "Dovresti verificare la proprietà e i permessi dei file nell'installazione WordPress"
|
5281 |
|
5282 |
#: src/templates/wp-admin/settings/form-contents.php:147
|
5283 |
msgid "See also the \"More Files\" add-on from our shop."
|
5872 |
|
5873 |
#: src/addons/wp-cli.php:784, src/admin.php:4570
|
5874 |
msgid "Final checks"
|
5875 |
+
msgstr "Controlli finali"
|
5876 |
|
5877 |
#: src/templates/wp-admin/settings/form-contents.php:314
|
5878 |
msgid "Check this to delete any superfluous backup files from your server after the backup run finishes (i.e. if you uncheck, then any files despatched remotely will also remain locally, and any files being kept locally will not be subject to the retention limits)."
|
6505 |
|
6506 |
#: src/methods/dropbox.php:603, src/methods/dropbox.php:605
|
6507 |
msgid "If you backup several sites into the same Dropbox and want to organize with sub-folders, then "
|
6508 |
+
msgstr "Se esegui il backup di più siti nello stesso Dropbox e si vuoi organizzarli in sottocartelle, allora"
|
6509 |
|
6510 |
#: src/methods/dropbox.php:603, src/methods/dropbox.php:605
|
6511 |
msgid "Backups are saved in"
|
6681 |
#: src/addons/cloudfiles-enhanced.php:37, src/methods/cloudfiles-new.php:118,
|
6682 |
#: src/methods/cloudfiles.php:466
|
6683 |
msgid "US (default)"
|
6684 |
+
msgstr "USA (predefinito)"
|
6685 |
|
6686 |
#: src/methods/cloudfiles.php:463
|
6687 |
msgid "US or UK Cloud"
|
6750 |
#: src/addons/googlecloud.php:1019, src/addons/onedrive.php:1177,
|
6751 |
#: src/methods/googledrive.php:1233
|
6752 |
msgid "Client ID"
|
6753 |
+
msgstr "ID Client"
|
6754 |
|
6755 |
#: src/methods/googledrive.php:1207
|
6756 |
msgid "You must add the following as the authorised redirect URI (under \"More Options\") when asked"
|
6814 |
|
6815 |
#: src/methods/addon-not-yet-present.php:84
|
6816 |
msgid "follow this link to get it"
|
6817 |
+
msgstr "fai clic su questo link per averlo."
|
6818 |
|
6819 |
#: src/methods/addon-not-yet-present.php:84
|
6820 |
msgid "%s support is available as an add-on"
|
7029 |
|
7030 |
#: src/admin.php:3738
|
7031 |
msgid "Follow this link to attempt to create the directory and set the permissions"
|
7032 |
+
msgstr "Fai clic qui per provare a creare la directory e impostare le autorizzazioni"
|
7033 |
|
7034 |
#: src/admin.php:3730
|
7035 |
msgid "Backup directory specified is writable, which is good."
|
7154 |
#: src/templates/wp-admin/settings/existing-backups-table.php:155,
|
7155 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
7156 |
msgid "Delete"
|
7157 |
+
msgstr "Elimina"
|
7158 |
|
7159 |
#: src/admin.php:3415
|
7160 |
msgid "show log"
|
7161 |
+
msgstr "mostra log"
|
7162 |
|
7163 |
#: src/templates/wp-admin/advanced/wipe-settings.php:9
|
7164 |
msgid "This will delete all your UpdraftPlus settings - are you sure you want to do this?"
|
7438 |
|
7439 |
#: src/admin.php:828, src/admin.php:3151
|
7440 |
msgid "Delete Old Directories"
|
7441 |
+
msgstr "Elimina directory vecchie"
|
7442 |
|
7443 |
#: src/admin.php:2638
|
7444 |
msgid "Current limit is:"
|
7458 |
|
7459 |
#: src/central/bootstrap.php:511
|
7460 |
msgid "UpdraftPlus.Com"
|
7461 |
+
msgstr "UpdraftPlus.Com"
|
7462 |
|
7463 |
#: src/admin.php:5053
|
7464 |
msgid "Your settings have been wiped."
|
7596 |
|
7597 |
#: src/includes/updraftplus-notices.php:102
|
7598 |
msgid "Please help UpdraftPlus by giving a positive review at wordpress.org."
|
7599 |
+
msgstr "Aiuta UpdraftPlus lasciando una recensione positiva su wordpress.org."
|
7600 |
|
7601 |
#: src/includes/updraftplus-notices.php:101
|
7602 |
msgid "Like UpdraftPlus and can spare one minute?"
|
7639 |
|
7640 |
#: src/backup.php:1136
|
7641 |
msgid "WordPress backup is complete"
|
7642 |
+
msgstr "Il backup di WordPress è completo"
|
7643 |
|
7644 |
#: src/class-updraftplus.php:2998
|
7645 |
msgid "The backup attempt has finished, apparently unsuccessfully"
|
7663 |
|
7664 |
#: src/addons/multisite.php:500, src/class-updraftplus.php:1781
|
7665 |
msgid "Uploads"
|
7666 |
+
msgstr "Upload"
|
7667 |
|
7668 |
#: src/class-updraftplus.php:1780
|
7669 |
msgid "Themes"
|
7690 |
#: src/addons/multisite.php:96, src/addons/multisite.php:736,
|
7691 |
#: src/options.php:74
|
7692 |
msgid "UpdraftPlus Backups"
|
7693 |
+
msgstr "Backup di UpdraftPlus"
|
Binary file
|
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date: 2018-
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -2633,7 +2633,7 @@ msgstr "進行中の復元操作に関する十分な情報が見つかりませ
|
|
2633 |
#: src/addons/morefiles.php:71, src/admin.php:877
|
2634 |
msgctxt "(verb)"
|
2635 |
msgid "Download"
|
2636 |
-
msgstr "
|
2637 |
|
2638 |
#: src/admin.php:800
|
2639 |
msgid "You have chosen to backup files, but no file entities have been selected"
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-12-15 11:42:30+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
2633 |
#: src/addons/morefiles.php:71, src/admin.php:877
|
2634 |
msgctxt "(verb)"
|
2635 |
msgid "Download"
|
2636 |
+
msgstr "ダウンロード"
|
2637 |
|
2638 |
#: src/admin.php:800
|
2639 |
msgid "You have chosen to backup files, but no file entities have been selected"
|
Binary file
|
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date:
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -1456,7 +1456,7 @@ msgstr ""
|
|
1456 |
|
1457 |
#: src/templates/wp-admin/settings/form-contents.php:191
|
1458 |
msgid "Select Files"
|
1459 |
-
msgstr ""
|
1460 |
|
1461 |
#: src/methods/cloudfiles.php:476
|
1462 |
msgid "Rackspace Storage Region"
|
@@ -2171,7 +2171,7 @@ msgstr ""
|
|
2171 |
|
2172 |
#: src/templates/wp-admin/settings/form-contents.php:114
|
2173 |
msgid "Backup using %s?"
|
2174 |
-
msgstr ""
|
2175 |
|
2176 |
#: src/addons/s3-enhanced.php:379
|
2177 |
msgid "Asia Pacific (Mumbai)"
|
@@ -2187,11 +2187,11 @@ msgstr ""
|
|
2187 |
|
2188 |
#: src/central/bootstrap.php:554
|
2189 |
msgid "More information..."
|
2190 |
-
msgstr ""
|
2191 |
|
2192 |
#: src/central/bootstrap.php:553
|
2193 |
msgid "Use the alternative method for making a connection with the dashboard."
|
2194 |
-
msgstr ""
|
2195 |
|
2196 |
#: src/central/bootstrap.php:458
|
2197 |
msgid "Key size: %d bits"
|
@@ -2215,15 +2215,15 @@ msgstr ""
|
|
2215 |
|
2216 |
#: src/addons/migrator.php:1765, src/central/bootstrap.php:547
|
2217 |
msgid "slower, strongest"
|
2218 |
-
msgstr ""
|
2219 |
|
2220 |
#: src/addons/migrator.php:1764, src/central/bootstrap.php:546
|
2221 |
msgid "recommended"
|
2222 |
-
msgstr ""
|
2223 |
|
2224 |
#: src/addons/migrator.php:1764, src/central/bootstrap.php:546
|
2225 |
msgid "%s bytes"
|
2226 |
-
msgstr ""
|
2227 |
|
2228 |
#: src/addons/migrator.php:1763, src/central/bootstrap.php:545
|
2229 |
msgid "faster (possibility for slow PHP installs)"
|
@@ -2237,7 +2237,7 @@ msgstr ""
|
|
2237 |
#: src/addons/migrator.php:1765, src/central/bootstrap.php:544,
|
2238 |
#: src/central/bootstrap.php:545, src/central/bootstrap.php:547
|
2239 |
msgid "%s bits"
|
2240 |
-
msgstr ""
|
2241 |
|
2242 |
#: src/addons/migrator.php:1760, src/central/bootstrap.php:542
|
2243 |
msgid "Encryption key size:"
|
@@ -2261,7 +2261,7 @@ msgstr ""
|
|
2261 |
|
2262 |
#: src/methods/ftp.php:412
|
2263 |
msgid "login"
|
2264 |
-
msgstr ""
|
2265 |
|
2266 |
#: src/addons/reporting.php:527, src/addons/reporting.php:527,
|
2267 |
#: src/addons/reporting.php:529, src/methods/email.php:100
|
@@ -2286,7 +2286,7 @@ msgstr ""
|
|
2286 |
|
2287 |
#: src/templates/wp-admin/settings/form-contents.php:103
|
2288 |
msgid "(tap on an icon to select or unselect)"
|
2289 |
-
msgstr ""
|
2290 |
|
2291 |
#: src/methods/updraftvault.php:333, src/methods/updraftvault.php:339,
|
2292 |
#: src/methods/updraftvault.php:345
|
@@ -2316,31 +2316,31 @@ msgstr ""
|
|
2316 |
|
2317 |
#: src/central/bootstrap.php:536
|
2318 |
msgid "Enter any description"
|
2319 |
-
msgstr ""
|
2320 |
|
2321 |
#: src/central/bootstrap.php:535
|
2322 |
msgid "Description"
|
2323 |
-
msgstr ""
|
2324 |
|
2325 |
#: src/central/bootstrap.php:463
|
2326 |
msgid "Delete..."
|
2327 |
-
msgstr ""
|
2328 |
|
2329 |
#: src/central/bootstrap.php:456
|
2330 |
msgid "Created:"
|
2331 |
-
msgstr ""
|
2332 |
|
2333 |
#: src/central/bootstrap.php:453
|
2334 |
msgid "Access this site as user:"
|
2335 |
-
msgstr ""
|
2336 |
|
2337 |
#: src/central/bootstrap.php:477
|
2338 |
msgid "Details"
|
2339 |
-
msgstr ""
|
2340 |
|
2341 |
#: src/central/bootstrap.php:476
|
2342 |
msgid "Key description"
|
2343 |
-
msgstr ""
|
2344 |
|
2345 |
#: src/central/bootstrap.php:349, src/central/bootstrap.php:360
|
2346 |
msgid "A key was created, but the attempt to register it with %s was unsuccessful - please try again later."
|
@@ -2348,15 +2348,15 @@ msgstr ""
|
|
2348 |
|
2349 |
#: src/central/bootstrap.php:219
|
2350 |
msgid "An invalid URL was entered"
|
2351 |
-
msgstr ""
|
2352 |
|
2353 |
#: src/central/bootstrap.php:83
|
2354 |
msgid "Close..."
|
2355 |
-
msgstr ""
|
2356 |
|
2357 |
#: src/central/bootstrap.php:75
|
2358 |
msgid "This connection appears to already have been made."
|
2359 |
-
msgstr ""
|
2360 |
|
2361 |
#: src/central/bootstrap.php:72
|
2362 |
msgid "You must visit this link in the same browser and login session as you created the key in."
|
@@ -2388,19 +2388,19 @@ msgstr ""
|
|
2388 |
|
2389 |
#: src/backup.php:1042, src/class-updraftplus.php:2973
|
2390 |
msgid "The backup was aborted by the user"
|
2391 |
-
msgstr ""
|
2392 |
|
2393 |
#: src/admin.php:4929
|
2394 |
msgid "Your settings have been saved."
|
2395 |
-
msgstr ""
|
2396 |
|
2397 |
#: src/admin.php:4009
|
2398 |
msgid "Total backup size:"
|
2399 |
-
msgstr ""
|
2400 |
|
2401 |
#: src/admin.php:3416
|
2402 |
msgid "stop"
|
2403 |
-
msgstr ""
|
2404 |
|
2405 |
#: src/admin.php:905, src/admin.php:3209
|
2406 |
msgid "The backup has finished running"
|
@@ -2410,15 +2410,15 @@ msgstr ""
|
|
2410 |
#: src/templates/wp-admin/advanced/wipe-settings.php:5,
|
2411 |
#: src/templates/wp-admin/advanced/wipe-settings.php:9
|
2412 |
msgid "Wipe settings"
|
2413 |
-
msgstr ""
|
2414 |
|
2415 |
#: src/templates/wp-admin/advanced/site-info.php:102
|
2416 |
msgid "reset"
|
2417 |
-
msgstr ""
|
2418 |
|
2419 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:14
|
2420 |
msgid "these backup sets"
|
2421 |
-
msgstr ""
|
2422 |
|
2423 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:11
|
2424 |
msgid "this backup set"
|
@@ -2426,7 +2426,7 @@ msgstr ""
|
|
2426 |
|
2427 |
#: src/includes/class-filesystem-functions.php:72
|
2428 |
msgid "calculate"
|
2429 |
-
msgstr ""
|
2430 |
|
2431 |
#: src/admin.php:879
|
2432 |
msgid "You should save your changes to ensure that they are used for making your backup."
|
@@ -2438,15 +2438,15 @@ msgstr ""
|
|
2438 |
|
2439 |
#: src/admin.php:871
|
2440 |
msgid "Please enter a valid URL"
|
2441 |
-
msgstr ""
|
2442 |
|
2443 |
#: src/admin.php:854
|
2444 |
msgid "Saving..."
|
2445 |
-
msgstr ""
|
2446 |
|
2447 |
#: src/admin.php:815
|
2448 |
msgid "Error: the server sent us a response which we did not understand."
|
2449 |
-
msgstr ""
|
2450 |
|
2451 |
#: src/admin.php:807
|
2452 |
msgid "Fetching..."
|
@@ -2479,11 +2479,11 @@ msgstr ""
|
|
2479 |
#: src/admin.php:2842, src/templates/wp-admin/notices/horizontal-notice.php:16,
|
2480 |
#: src/templates/wp-admin/notices/horizontal-notice.php:18
|
2481 |
msgid "Dismiss"
|
2482 |
-
msgstr ""
|
2483 |
|
2484 |
#: src/admin.php:891
|
2485 |
msgid "Please fill in the required information."
|
2486 |
-
msgstr ""
|
2487 |
|
2488 |
#: src/addons/multisite.php:619
|
2489 |
msgid "Read more..."
|
@@ -2548,11 +2548,11 @@ msgstr ""
|
|
2548 |
|
2549 |
#: src/restorer.php:211
|
2550 |
msgid "Skipping: this archive was already restored."
|
2551 |
-
msgstr ""
|
2552 |
|
2553 |
#: src/templates/wp-admin/settings/form-contents.php:140
|
2554 |
msgid "File Options"
|
2555 |
-
msgstr ""
|
2556 |
|
2557 |
#: src/templates/wp-admin/settings/form-contents.php:93
|
2558 |
msgid "Sending Your Backup To Remote Storage"
|
@@ -2588,7 +2588,7 @@ msgstr ""
|
|
2588 |
|
2589 |
#: src/admin.php:4801
|
2590 |
msgid "settings"
|
2591 |
-
msgstr ""
|
2592 |
|
2593 |
#: src/admin.php:4801
|
2594 |
msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
|
@@ -2633,19 +2633,19 @@ msgstr ""
|
|
2633 |
#: src/addons/morefiles.php:71, src/admin.php:877
|
2634 |
msgctxt "(verb)"
|
2635 |
msgid "Download"
|
2636 |
-
msgstr ""
|
2637 |
|
2638 |
#: src/admin.php:800
|
2639 |
msgid "You have chosen to backup files, but no file entities have been selected"
|
2640 |
-
msgstr ""
|
2641 |
|
2642 |
#: src/admin.php:695
|
2643 |
msgid "Extensions"
|
2644 |
-
msgstr ""
|
2645 |
|
2646 |
#: src/admin.php:687, src/admin.php:2801
|
2647 |
msgid "Advanced Tools"
|
2648 |
-
msgstr ""
|
2649 |
|
2650 |
#: src/addons/googlecloud.php:1055
|
2651 |
msgid "Bucket location"
|
@@ -2788,7 +2788,7 @@ msgstr ""
|
|
2788 |
|
2789 |
#: src/templates/wp-admin/advanced/site-info.php:56
|
2790 |
msgid "Not installed"
|
2791 |
-
msgstr ""
|
2792 |
|
2793 |
#: src/addons/googlecloud.php:1042, src/addons/s3-enhanced.php:63
|
2794 |
msgid "Storage class"
|
@@ -2873,15 +2873,15 @@ msgstr ""
|
|
2873 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:11,
|
2874 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:14
|
2875 |
msgid "Are you sure that you wish to remove %s from UpdraftPlus?"
|
2876 |
-
msgstr ""
|
2877 |
|
2878 |
#: src/templates/wp-admin/settings/existing-backups-table.php:157
|
2879 |
msgid "Deselect"
|
2880 |
-
msgstr ""
|
2881 |
|
2882 |
#: src/templates/wp-admin/settings/existing-backups-table.php:156
|
2883 |
msgid "Select all"
|
2884 |
-
msgstr ""
|
2885 |
|
2886 |
#: src/templates/wp-admin/settings/existing-backups-table.php:154
|
2887 |
msgid "Actions upon selected backups"
|
@@ -2898,7 +2898,7 @@ msgstr ""
|
|
2898 |
|
2899 |
#: src/admin.php:890
|
2900 |
msgid "Processing..."
|
2901 |
-
msgstr ""
|
2902 |
|
2903 |
#: src/admin.php:888
|
2904 |
msgid "For backups older than"
|
@@ -2994,19 +2994,19 @@ msgstr ""
|
|
2994 |
|
2995 |
#: src/admin.php:860
|
2996 |
msgid "Update quota count"
|
2997 |
-
msgstr ""
|
2998 |
|
2999 |
#: src/admin.php:859
|
3000 |
msgid "Counting..."
|
3001 |
-
msgstr ""
|
3002 |
|
3003 |
#: src/admin.php:858
|
3004 |
msgid "Disconnecting..."
|
3005 |
-
msgstr ""
|
3006 |
|
3007 |
#: src/admin.php:856
|
3008 |
msgid "Connecting..."
|
3009 |
-
msgstr ""
|
3010 |
|
3011 |
#: src/methods/updraftvault.php:468, src/methods/updraftvault.php:542
|
3012 |
msgid "Refresh current status"
|
@@ -3033,7 +3033,7 @@ msgstr ""
|
|
3033 |
#: src/admin.php:857, src/methods/updraftvault.php:392,
|
3034 |
#: src/methods/updraftvault.php:450
|
3035 |
msgid "Disconnect"
|
3036 |
-
msgstr ""
|
3037 |
|
3038 |
#: src/methods/updraftvault.php:389, src/methods/updraftvault.php:442
|
3039 |
msgid "Quota:"
|
@@ -3220,7 +3220,7 @@ msgstr ""
|
|
3220 |
#: src/addons/wp-cli.php:371,
|
3221 |
#: src/templates/wp-admin/settings/existing-backups-table.php:101
|
3222 |
msgid "Backup sent to remote site - not available for download."
|
3223 |
-
msgstr ""
|
3224 |
|
3225 |
#: src/includes/class-wpadmin-commands.php:137
|
3226 |
msgid "You should make sure that this really is a backup set intended for use on this website, before you restore (rather than a backup set of an unrelated website)."
|
@@ -3232,16 +3232,16 @@ msgstr ""
|
|
3232 |
|
3233 |
#: src/admin.php:873, src/includes/class-remote-send.php:327
|
3234 |
msgid "Testing connection..."
|
3235 |
-
msgstr ""
|
3236 |
|
3237 |
#: src/admin.php:870,
|
3238 |
#: src/templates/wp-admin/settings/existing-backups-table.php:161
|
3239 |
msgid "Deleting..."
|
3240 |
-
msgstr ""
|
3241 |
|
3242 |
#: src/admin.php:869
|
3243 |
msgid "key name"
|
3244 |
-
msgstr ""
|
3245 |
|
3246 |
#: src/admin.php:867
|
3247 |
msgid "Please give this key a name (e.g. indicate the site it is for):"
|
@@ -3249,7 +3249,7 @@ msgstr ""
|
|
3249 |
|
3250 |
#: src/admin.php:864
|
3251 |
msgid "Creating..."
|
3252 |
-
msgstr ""
|
3253 |
|
3254 |
#: src/addons/migrator.php:1753
|
3255 |
msgid "Receive a backup from a remote site"
|
@@ -3274,11 +3274,11 @@ msgstr ""
|
|
3274 |
#: src/admin.php:874, src/includes/class-remote-send.php:358,
|
3275 |
#: src/includes/class-remote-send.php:520
|
3276 |
msgid "Send"
|
3277 |
-
msgstr ""
|
3278 |
|
3279 |
#: src/admin.php:865, src/includes/class-remote-send.php:514
|
3280 |
msgid "Send to site:"
|
3281 |
-
msgstr ""
|
3282 |
|
3283 |
#: src/includes/class-remote-send.php:512
|
3284 |
msgid "No receiving sites have yet been added."
|
@@ -3348,11 +3348,11 @@ msgstr ""
|
|
3348 |
|
3349 |
#: src/addons/migrator.php:1745, src/admin.php:862
|
3350 |
msgid "Add site"
|
3351 |
-
msgstr ""
|
3352 |
|
3353 |
#: src/admin.php:861
|
3354 |
msgid "Adding..."
|
3355 |
-
msgstr ""
|
3356 |
|
3357 |
#: src/udaddons/options.php:298
|
3358 |
msgid "Claim not granted - perhaps you have already used this purchase somewhere else, or your paid period for downloading from updraftplus.com has expired?"
|
@@ -3380,7 +3380,7 @@ msgstr ""
|
|
3380 |
|
3381 |
#: src/admin.php:853, src/admin.php:879, src/admin.php:880
|
3382 |
msgid "You have made changes to your settings, and not saved."
|
3383 |
-
msgstr ""
|
3384 |
|
3385 |
#: src/addons/onedrive.php:1188
|
3386 |
msgid "N.B. %s is not case-sensitive."
|
@@ -3617,21 +3617,21 @@ msgstr ""
|
|
3617 |
|
3618 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
|
3619 |
msgid "Compare with the free version"
|
3620 |
-
msgstr ""
|
3621 |
|
3622 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:12,
|
3623 |
#: src/templates/wp-admin/settings/tab-addons.php:46
|
3624 |
msgid "UpdraftPlus Premium"
|
3625 |
-
msgstr ""
|
3626 |
|
3627 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:29
|
3628 |
msgid "Free Newsletter"
|
3629 |
-
msgstr ""
|
3630 |
|
3631 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
|
3632 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:35
|
3633 |
msgid "Dismiss (for %s months)"
|
3634 |
-
msgstr ""
|
3635 |
|
3636 |
#: src/addons/fixtime.php:448
|
3637 |
msgid "(at same time as files backup)"
|
@@ -3678,11 +3678,11 @@ msgstr ""
|
|
3678 |
#: src/templates/wp-admin/settings/form-contents.php:190
|
3679 |
msgctxt "Uploader: Drop db.gz.crypt files here to upload them for decryption - or - Select Files"
|
3680 |
msgid "or"
|
3681 |
-
msgstr ""
|
3682 |
|
3683 |
#: src/admin.php:847
|
3684 |
msgid "You did not select any components to restore. Please select at least one, and then try again."
|
3685 |
-
msgstr ""
|
3686 |
|
3687 |
#: src/addons/sftp.php:470
|
3688 |
msgctxt "Do not translate BEGIN RSA PRIVATE KEY. PCKS1, XML, PEM and PuTTY are also technical acronyms which should not be translated."
|
@@ -3714,7 +3714,7 @@ msgstr ""
|
|
3714 |
#: src/admin.php:3717
|
3715 |
msgctxt "i.e. Non-automatic"
|
3716 |
msgid "Manual"
|
3717 |
-
msgstr ""
|
3718 |
|
3719 |
#: src/restorer.php:2784
|
3720 |
msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
|
@@ -3740,7 +3740,7 @@ msgstr ""
|
|
3740 |
#: src/addons/autobackup.php:157, src/addons/autobackup.php:1026,
|
3741 |
#: src/admin.php:852
|
3742 |
msgid "Automatic backup before update"
|
3743 |
-
msgstr ""
|
3744 |
|
3745 |
#: src/addons/autobackup.php:122
|
3746 |
msgid "WordPress core (only)"
|
@@ -3825,17 +3825,17 @@ msgstr ""
|
|
3825 |
|
3826 |
#: src/admin.php:3209, src/admin.php:4278
|
3827 |
msgid "View Log"
|
3828 |
-
msgstr ""
|
3829 |
|
3830 |
#: src/templates/wp-admin/settings/existing-backups-table.php:18,
|
3831 |
#: src/templates/wp-admin/settings/existing-backups-table.php:97
|
3832 |
msgid "Backup data (click to download)"
|
3833 |
-
msgstr ""
|
3834 |
|
3835 |
#: src/templates/wp-admin/settings/existing-backups-table.php:17,
|
3836 |
#: src/templates/wp-admin/settings/existing-backups-table.php:64
|
3837 |
msgid "Backup date"
|
3838 |
-
msgstr ""
|
3839 |
|
3840 |
#: src/templates/wp-admin/settings/form-contents.php:42,
|
3841 |
#: src/templates/wp-admin/settings/form-contents.php:75
|
@@ -3894,7 +3894,7 @@ msgstr "Địa chỉ email của bạn đã nhập không thể tìm thấy trê
|
|
3894 |
|
3895 |
#: src/methods/updraftvault.php:715, src/udaddons/updraftplus-addons.php:996
|
3896 |
msgid "Your email address was valid, but your password was not recognised by UpdraftPlus.Com."
|
3897 |
-
msgstr "
|
3898 |
|
3899 |
#: src/methods/updraftvault.php:656, src/udaddons/updraftplus-addons.php:862
|
3900 |
msgid "You need to supply both an email address and a password"
|
@@ -3943,15 +3943,15 @@ msgstr "bạn cần kết nối để nhận những bản cập nhật trong t
|
|
3943 |
|
3944 |
#: src/class-updraftplus.php:3982
|
3945 |
msgid "Any support requests to do with %s should be raised with your web hosting company."
|
3946 |
-
msgstr "
|
3947 |
|
3948 |
#: src/class-updraftplus.php:3982
|
3949 |
msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
|
3950 |
-
msgstr "
|
3951 |
|
3952 |
#: src/class-updraftplus.php:3982
|
3953 |
msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
|
3954 |
-
msgstr "
|
3955 |
|
3956 |
#: src/class-updraftplus.php:3982
|
3957 |
msgid "The site in this backup was running on a webserver with version %s of %s. "
|
@@ -3970,13 +3970,13 @@ msgstr "Google+"
|
|
3970 |
#: src/includes/updraftplus-notices.php:133,
|
3971 |
#: src/includes/updraftplus-notices.php:134
|
3972 |
msgid "Facebook"
|
3973 |
-
msgstr "
|
3974 |
|
3975 |
#: src/includes/updraftplus-notices.php:133,
|
3976 |
#: src/includes/updraftplus-notices.php:134,
|
3977 |
#: src/templates/wp-admin/settings/header.php:16
|
3978 |
msgid "Twitter"
|
3979 |
-
msgstr ""
|
3980 |
|
3981 |
#: src/includes/updraftplus-notices.php:132
|
3982 |
msgid "UpdraftPlus is on social media - check us out!"
|
@@ -3998,7 +3998,7 @@ msgstr ""
|
|
3998 |
|
3999 |
#: src/admin.php:2050, src/admin.php:2062, src/includes/class-commands.php:833
|
4000 |
msgid "Start backup"
|
4001 |
-
msgstr ""
|
4002 |
|
4003 |
#: src/class-updraftplus.php:3953, src/restorer.php:1446
|
4004 |
msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
|
@@ -4014,7 +4014,7 @@ msgstr ""
|
|
4014 |
|
4015 |
#: src/admin.php:2288
|
4016 |
msgid "This file could not be uploaded"
|
4017 |
-
msgstr ""
|
4018 |
|
4019 |
#: src/admin.php:2251
|
4020 |
msgid "You will find more information about this in the Settings section."
|
@@ -4030,7 +4030,7 @@ msgstr ""
|
|
4030 |
|
4031 |
#: src/templates/wp-admin/advanced/site-info.php:44
|
4032 |
msgid "Memory limit"
|
4033 |
-
msgstr ""
|
4034 |
|
4035 |
#: src/includes/class-filesystem-functions.php:233, src/restorer.php:2006
|
4036 |
msgid "restoration"
|
@@ -4061,7 +4061,7 @@ msgstr ""
|
|
4061 |
#: src/admin.php:3718, src/admin.php:3719, src/admin.php:3720,
|
4062 |
#: src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
|
4063 |
msgid "Every %s hours"
|
4064 |
-
msgstr ""
|
4065 |
|
4066 |
#: src/addons/migrator.php:903, src/addons/migrator.php:905
|
4067 |
msgid "search and replace"
|
@@ -4115,11 +4115,11 @@ msgstr ""
|
|
4115 |
|
4116 |
#: src/includes/class-backup-history.php:69
|
4117 |
msgid "You have not yet made any backups."
|
4118 |
-
msgstr ""
|
4119 |
|
4120 |
#: src/templates/wp-admin/settings/form-contents.php:152
|
4121 |
msgid "Database Options"
|
4122 |
-
msgstr ""
|
4123 |
|
4124 |
#: src/templates/wp-admin/advanced/site-info.php:95
|
4125 |
msgid "Plugins for debugging:"
|
@@ -4127,7 +4127,7 @@ msgstr ""
|
|
4127 |
|
4128 |
#: src/templates/wp-admin/advanced/site-info.php:74
|
4129 |
msgid "%s (%s used)"
|
4130 |
-
msgstr ""
|
4131 |
|
4132 |
#: src/templates/wp-admin/advanced/site-info.php:74
|
4133 |
msgid "Free disk space in account:"
|
@@ -4143,7 +4143,7 @@ msgstr ""
|
|
4143 |
#: src/templates/wp-admin/settings/tab-backups.php:21,
|
4144 |
#: src/templates/wp-admin/settings/tab-backups.php:44
|
4145 |
msgid "Existing Backups"
|
4146 |
-
msgstr ""
|
4147 |
|
4148 |
#: src/admin.php:1143
|
4149 |
msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
|
@@ -4151,11 +4151,11 @@ msgstr ""
|
|
4151 |
|
4152 |
#: src/admin.php:1143
|
4153 |
msgid "To make a backup, just press the Backup Now button."
|
4154 |
-
msgstr ""
|
4155 |
|
4156 |
#: src/admin.php:1143
|
4157 |
msgid "Welcome to UpdraftPlus!"
|
4158 |
-
msgstr ""
|
4159 |
|
4160 |
#: src/addons/moredatabase.php:318
|
4161 |
msgid "If you enter text here, it is used to encrypt database backups (Rijndael). <strong>Do make a separate record of it and do not lose it, or all your backups <em>will</em> be useless.</strong> This is also the key used to decrypt backups from this admin interface (so if you change it, then automatic decryption will not work until you change it back)."
|
@@ -4227,7 +4227,7 @@ msgstr ""
|
|
4227 |
|
4228 |
#: src/class-updraftplus.php:1736
|
4229 |
msgid "External database (%s)"
|
4230 |
-
msgstr ""
|
4231 |
|
4232 |
#: src/methods/googledrive.php:1207
|
4233 |
msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
|
@@ -4245,7 +4245,7 @@ msgstr ""
|
|
4245 |
|
4246 |
#: src/addons/wp-cli.php:437, src/admin.php:4034
|
4247 |
msgid "External database"
|
4248 |
-
msgstr ""
|
4249 |
|
4250 |
#: src/templates/wp-admin/settings/form-contents.php:304
|
4251 |
msgid "This will also cause debugging output from all plugins to be shown upon this screen - please do not be surprised to see these."
|
@@ -4376,7 +4376,7 @@ msgstr ""
|
|
4376 |
|
4377 |
#: src/methods/dropbox.php:611
|
4378 |
msgid "Dropbox"
|
4379 |
-
msgstr ""
|
4380 |
|
4381 |
#: src/addons/onedrive.php:1205, src/methods/dropbox.php:611
|
4382 |
msgid "Authenticate with %s"
|
@@ -4458,7 +4458,7 @@ msgstr ""
|
|
4458 |
|
4459 |
#: src/templates/wp-admin/advanced/site-info.php:100
|
4460 |
msgid "Call"
|
4461 |
-
msgstr ""
|
4462 |
|
4463 |
#: src/templates/wp-admin/advanced/site-info.php:98,
|
4464 |
#: src/templates/wp-admin/advanced/site-info.php:98
|
@@ -4504,7 +4504,7 @@ msgstr ""
|
|
4504 |
#: src/addons/migrator.php:1758, src/addons/sftp.php:467, src/admin.php:868,
|
4505 |
#: src/admin.php:5192, src/templates/wp-admin/settings/temporary-clone.php:63
|
4506 |
msgid "Key"
|
4507 |
-
msgstr ""
|
4508 |
|
4509 |
#: src/addons/sftp.php:462
|
4510 |
msgid "Your login may be either password or key-based - you only need to enter one, not both."
|
@@ -4520,24 +4520,24 @@ msgstr ""
|
|
4520 |
|
4521 |
#: src/addons/wp-cli.php:449, src/admin.php:4078
|
4522 |
msgid "Files backup (created by %s)"
|
4523 |
-
msgstr ""
|
4524 |
|
4525 |
#: src/addons/wp-cli.php:449, src/admin.php:4078
|
4526 |
msgid "Files and database WordPress backup (created by %s)"
|
4527 |
-
msgstr ""
|
4528 |
|
4529 |
#: src/addons/importer.php:276, src/admin.php:4072,
|
4530 |
#: src/includes/class-backup-history.php:435
|
4531 |
msgid "Backup created by: %s."
|
4532 |
-
msgstr ""
|
4533 |
|
4534 |
#: src/addons/wp-cli.php:431, src/admin.php:4032
|
4535 |
msgid "Database (created by %s)"
|
4536 |
-
msgstr ""
|
4537 |
|
4538 |
#: src/addons/wp-cli.php:429, src/admin.php:4026, src/admin.php:4074
|
4539 |
msgid "unknown source"
|
4540 |
-
msgstr ""
|
4541 |
|
4542 |
#: src/templates/wp-admin/advanced/site-info.php:104,
|
4543 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:56,
|
@@ -4548,11 +4548,11 @@ msgstr ""
|
|
4548 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:51,
|
4549 |
#: src/templates/wp-admin/settings/tab-backups.php:55
|
4550 |
msgid "Upload backup files"
|
4551 |
-
msgstr ""
|
4552 |
|
4553 |
#: src/admin.php:2303
|
4554 |
msgid "This backup was created by %s, and can be imported."
|
4555 |
-
msgstr ""
|
4556 |
|
4557 |
#: src/admin.php:1172
|
4558 |
msgid "Read this page for a guide to possible causes and how to fix it."
|
@@ -4564,16 +4564,16 @@ msgstr ""
|
|
4564 |
|
4565 |
#: src/admin.php:831, src/includes/class-backup-history.php:442
|
4566 |
msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
|
4567 |
-
msgstr ""
|
4568 |
|
4569 |
#: src/admin.php:830
|
4570 |
msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
|
4571 |
-
msgstr ""
|
4572 |
|
4573 |
#: src/admin.php:830, src/admin.php:831,
|
4574 |
#: src/includes/class-backup-history.php:442
|
4575 |
msgid "This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz))."
|
4576 |
-
msgstr ""
|
4577 |
|
4578 |
#: src/admin.php:4075, src/includes/class-wpadmin-commands.php:162,
|
4579 |
#: src/restorer.php:1975
|
@@ -4961,11 +4961,11 @@ msgstr ""
|
|
4961 |
|
4962 |
#: src/admin.php:845, src/central/bootstrap.php:565
|
4963 |
msgid "Create"
|
4964 |
-
msgstr ""
|
4965 |
|
4966 |
#: src/admin.php:806
|
4967 |
msgid "Trying..."
|
4968 |
-
msgstr ""
|
4969 |
|
4970 |
#: src/admin.php:805
|
4971 |
msgid "The new user's RackSpace console password is (this will not be shown again):"
|
@@ -4973,7 +4973,7 @@ msgstr ""
|
|
4973 |
|
4974 |
#: src/addons/wp-cli.php:797, src/admin.php:816, src/admin.php:4586
|
4975 |
msgid "Error data:"
|
4976 |
-
msgstr ""
|
4977 |
|
4978 |
#: src/admin.php:4489
|
4979 |
msgid "Backup does not exist in the backup history"
|
@@ -5025,7 +5025,7 @@ msgstr ""
|
|
5025 |
|
5026 |
#: src/class-updraftplus.php:1680, src/class-updraftplus.php:1682
|
5027 |
msgid "files: %s"
|
5028 |
-
msgstr ""
|
5029 |
|
5030 |
#: src/addons/reporting.php:392
|
5031 |
msgid "Use the \"Reporting\" section to configure the email addresses to be used."
|
@@ -5037,7 +5037,7 @@ msgstr ""
|
|
5037 |
|
5038 |
#: src/addons/reporting.php:223, src/admin.php:3992
|
5039 |
msgid "Uploaded to:"
|
5040 |
-
msgstr ""
|
5041 |
|
5042 |
#: src/addons/reporting.php:222
|
5043 |
msgid "Time taken:"
|
@@ -5111,7 +5111,7 @@ msgstr ""
|
|
5111 |
#: src/methods/updraftvault.php:362,
|
5112 |
#: src/templates/wp-admin/settings/temporary-clone.php:82
|
5113 |
msgid "Connect"
|
5114 |
-
msgstr ""
|
5115 |
|
5116 |
#: src/templates/wp-admin/settings/form-contents.php:262
|
5117 |
msgid "For more reporting features, use the Reporting add-on."
|
@@ -5139,11 +5139,11 @@ msgstr ""
|
|
5139 |
|
5140 |
#: src/backup.php:1094
|
5141 |
msgid "Backed up: %s"
|
5142 |
-
msgstr ""
|
5143 |
|
5144 |
#: src/addons/reporting.php:265, src/backup.php:1088
|
5145 |
msgid "The log file has been attached to this email."
|
5146 |
-
msgstr ""
|
5147 |
|
5148 |
#: src/backup.php:1052
|
5149 |
msgid "Unknown/unexpected error - please raise a support request"
|
@@ -5256,7 +5256,7 @@ msgstr ""
|
|
5256 |
#: src/templates/wp-admin/settings/tab-addons.php:191,
|
5257 |
#: src/templates/wp-admin/settings/tab-addons.php:192
|
5258 |
msgid "Reporting"
|
5259 |
-
msgstr ""
|
5260 |
|
5261 |
#: src/admin.php:5189
|
5262 |
msgid "Options (raw)"
|
@@ -5264,7 +5264,7 @@ msgstr ""
|
|
5264 |
|
5265 |
#: src/addons/reporting.php:525, src/admin.php:792
|
5266 |
msgid "Send a report only when there are warnings/errors"
|
5267 |
-
msgstr ""
|
5268 |
|
5269 |
#: src/restorer.php:2203
|
5270 |
msgid "Content URL:"
|
@@ -5419,7 +5419,7 @@ msgstr ""
|
|
5419 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:78,
|
5420 |
#: src/templates/wp-admin/settings/tab-backups.php:80
|
5421 |
msgid "Drop backup files here"
|
5422 |
-
msgstr ""
|
5423 |
|
5424 |
#: src/admin.php:804
|
5425 |
msgid "The web server returned an error code (try again, or check your web server logs)"
|
@@ -5464,7 +5464,7 @@ msgstr ""
|
|
5464 |
|
5465 |
#: src/admin.php:3283
|
5466 |
msgid "(%s%%, file %s of %s)"
|
5467 |
-
msgstr ""
|
5468 |
|
5469 |
#: src/addons/autobackup.php:304, src/addons/autobackup.php:1090,
|
5470 |
#: src/addons/lockadmin.php:160
|
@@ -5505,7 +5505,7 @@ msgstr ""
|
|
5505 |
|
5506 |
#: src/admin.php:4140, src/admin.php:4142
|
5507 |
msgid "(Not finished)"
|
5508 |
-
msgstr ""
|
5509 |
|
5510 |
#: src/admin.php:4142
|
5511 |
msgid "If you are seeing more backups than you expect, then it is probably because the deletion of old backup sets does not happen until a fresh backup completes."
|
@@ -5539,11 +5539,11 @@ msgstr ""
|
|
5539 |
|
5540 |
#: src/admin.php:3297
|
5541 |
msgid "Backup finished"
|
5542 |
-
msgstr ""
|
5543 |
|
5544 |
#: src/admin.php:3292
|
5545 |
msgid "Waiting until scheduled time to retry because of errors"
|
5546 |
-
msgstr ""
|
5547 |
|
5548 |
#: src/admin.php:3288
|
5549 |
msgid "Pruning old backup sets"
|
@@ -5551,19 +5551,19 @@ msgstr ""
|
|
5551 |
|
5552 |
#: src/admin.php:3275
|
5553 |
msgid "Uploading files to remote storage"
|
5554 |
-
msgstr ""
|
5555 |
|
5556 |
#: src/admin.php:3344
|
5557 |
msgid "Encrypted database"
|
5558 |
-
msgstr ""
|
5559 |
|
5560 |
#: src/admin.php:3336
|
5561 |
msgid "Encrypting database"
|
5562 |
-
msgstr ""
|
5563 |
|
5564 |
#: src/admin.php:3310
|
5565 |
msgid "Created database backup"
|
5566 |
-
msgstr ""
|
5567 |
|
5568 |
#: src/admin.php:3323
|
5569 |
msgid "table: %s"
|
@@ -5571,19 +5571,19 @@ msgstr ""
|
|
5571 |
|
5572 |
#: src/admin.php:3321
|
5573 |
msgid "Creating database backup"
|
5574 |
-
msgstr ""
|
5575 |
|
5576 |
#: src/admin.php:3266
|
5577 |
msgid "Created file backup zips"
|
5578 |
-
msgstr ""
|
5579 |
|
5580 |
#: src/admin.php:3253
|
5581 |
msgid "Creating file backup zips"
|
5582 |
-
msgstr ""
|
5583 |
|
5584 |
#: src/admin.php:3248
|
5585 |
msgid "Backup begun"
|
5586 |
-
msgstr ""
|
5587 |
|
5588 |
#: src/admin.php:1151
|
5589 |
msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even "Backup Now") unless either you have set up a facility to call the scheduler manually, or until it is enabled."
|
@@ -5620,7 +5620,7 @@ msgstr ""
|
|
5620 |
|
5621 |
#: src/addons/autobackup.php:1104, src/admin.php:848
|
5622 |
msgid "Proceed with update"
|
5623 |
-
msgstr ""
|
5624 |
|
5625 |
#: src/addons/autobackup.php:1097
|
5626 |
msgid "Do not abort after pressing Proceed below - wait for the backup to complete."
|
@@ -5692,7 +5692,7 @@ msgstr ""
|
|
5692 |
#: src/templates/wp-admin/settings/tab-addons.php:21,
|
5693 |
#: src/templates/wp-admin/settings/tab-addons.php:87
|
5694 |
msgid "Support"
|
5695 |
-
msgstr ""
|
5696 |
|
5697 |
#: src/class-updraftplus.php:4237
|
5698 |
msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
|
@@ -5717,7 +5717,7 @@ msgstr ""
|
|
5717 |
#: src/addons/autobackup.php:1072, src/admin.php:976,
|
5718 |
#: src/includes/updraftplus-notices.php:171
|
5719 |
msgid "Be safe with an automatic backup"
|
5720 |
-
msgstr ""
|
5721 |
|
5722 |
#: src/admin.php:2591
|
5723 |
msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
|
@@ -5725,15 +5725,15 @@ msgstr ""
|
|
5725 |
|
5726 |
#: src/admin.php:840
|
5727 |
msgid "The file was uploaded."
|
5728 |
-
msgstr ""
|
5729 |
|
5730 |
#: src/admin.php:839
|
5731 |
msgid "Unknown server response status:"
|
5732 |
-
msgstr ""
|
5733 |
|
5734 |
#: src/admin.php:838
|
5735 |
msgid "Unknown server response:"
|
5736 |
-
msgstr ""
|
5737 |
|
5738 |
#: src/admin.php:837
|
5739 |
msgid "This decryption key will be attempted:"
|
@@ -5741,31 +5741,31 @@ msgstr ""
|
|
5741 |
|
5742 |
#: src/admin.php:836
|
5743 |
msgid "Follow this link to attempt decryption and download the database file to your computer."
|
5744 |
-
msgstr ""
|
5745 |
|
5746 |
#: src/admin.php:835
|
5747 |
msgid "Upload error"
|
5748 |
-
msgstr ""
|
5749 |
|
5750 |
#: src/admin.php:834
|
5751 |
msgid "This file does not appear to be an UpdraftPlus encrypted database archive (such files are .gz.crypt files which have a name like: backup_(time)_(site name)_(code)_db.crypt.gz)."
|
5752 |
-
msgstr ""
|
5753 |
|
5754 |
#: src/admin.php:833
|
5755 |
msgid "Upload error:"
|
5756 |
-
msgstr ""
|
5757 |
|
5758 |
#: src/admin.php:832
|
5759 |
msgid "(make sure that you were trying to upload a zip file previously created by UpdraftPlus)"
|
5760 |
-
msgstr ""
|
5761 |
|
5762 |
#: src/admin.php:823
|
5763 |
msgid "Download to your computer"
|
5764 |
-
msgstr ""
|
5765 |
|
5766 |
#: src/admin.php:822
|
5767 |
msgid "Delete from your web server"
|
5768 |
-
msgstr ""
|
5769 |
|
5770 |
#: src/admin.php:4112
|
5771 |
msgid "You appear to be missing one or more archives from this multi-archive set."
|
@@ -5785,11 +5785,11 @@ msgstr ""
|
|
5785 |
|
5786 |
#: src/admin.php:813
|
5787 |
msgid "Warnings:"
|
5788 |
-
msgstr ""
|
5789 |
|
5790 |
#: src/admin.php:812
|
5791 |
msgid "Error: the server sent an empty response."
|
5792 |
-
msgstr ""
|
5793 |
|
5794 |
#: src/admin.php:2317
|
5795 |
msgid "This looks like a file created by UpdraftPlus, but this install does not know about this type of object: %s. Perhaps you need to install an add-on?"
|
@@ -5797,15 +5797,15 @@ msgstr ""
|
|
5797 |
|
5798 |
#: src/includes/class-wpadmin-commands.php:238
|
5799 |
msgid "The backup archive files have been processed, but with some errors. You will need to cancel and correct any problems before retrying."
|
5800 |
-
msgstr ""
|
5801 |
|
5802 |
#: src/includes/class-wpadmin-commands.php:236
|
5803 |
msgid "The backup archive files have been processed, but with some warnings. If all is well, then now press Restore again to proceed. Otherwise, cancel and correct any problems first."
|
5804 |
-
msgstr ""
|
5805 |
|
5806 |
#: src/includes/class-wpadmin-commands.php:234
|
5807 |
msgid "The backup archive files have been successfully processed. Now press Restore again to proceed."
|
5808 |
-
msgstr ""
|
5809 |
|
5810 |
#: src/includes/class-wpadmin-commands.php:208
|
5811 |
msgid "This multi-archive backup set appears to have the following archives missing: %s"
|
@@ -5813,15 +5813,15 @@ msgstr ""
|
|
5813 |
|
5814 |
#: src/includes/class-wpadmin-commands.php:193
|
5815 |
msgid "File (%s) was found, but has a different size (%s) from what was expected (%s) - it may be corrupt."
|
5816 |
-
msgstr ""
|
5817 |
|
5818 |
#: src/includes/class-wpadmin-commands.php:188
|
5819 |
msgid "File was found, but is zero-sized (you need to re-upload it): %s"
|
5820 |
-
msgstr ""
|
5821 |
|
5822 |
#: src/includes/class-wpadmin-commands.php:186
|
5823 |
msgid "File not found (you need to upload it): %s"
|
5824 |
-
msgstr ""
|
5825 |
|
5826 |
#: src/addons/wp-cli.php:611, src/addons/wp-cli.php:612,
|
5827 |
#: src/includes/class-wpadmin-commands.php:114
|
@@ -5883,7 +5883,7 @@ msgstr ""
|
|
5883 |
|
5884 |
#: src/admin.php:829
|
5885 |
msgid "Raw backup history"
|
5886 |
-
msgstr ""
|
5887 |
|
5888 |
#: src/templates/wp-admin/advanced/site-info.php:104
|
5889 |
msgid "Show raw backup and file list"
|
@@ -5891,7 +5891,7 @@ msgstr ""
|
|
5891 |
|
5892 |
#: src/admin.php:811
|
5893 |
msgid "Processing files - please wait..."
|
5894 |
-
msgstr ""
|
5895 |
|
5896 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:27,
|
5897 |
#: src/templates/wp-admin/settings/tab-backups.php:27
|
@@ -5924,11 +5924,11 @@ msgstr ""
|
|
5924 |
#: src/class-updraftplus.php:4097, src/class-updraftplus.php:4097,
|
5925 |
#: src/updraftplus.php:157
|
5926 |
msgid "Go here for more information."
|
5927 |
-
msgstr ""
|
5928 |
|
5929 |
#: src/admin.php:810
|
5930 |
msgid "Some files are still downloading or being processed - please wait."
|
5931 |
-
msgstr ""
|
5932 |
|
5933 |
#: src/class-updraftplus.php:3945, src/class-updraftplus.php:3965
|
5934 |
msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
|
@@ -6004,7 +6004,7 @@ msgstr ""
|
|
6004 |
#: src/class-updraftplus.php:4076, src/methods/googledrive.php:403,
|
6005 |
#: src/methods/s3.php:341
|
6006 |
msgid "Error: %s"
|
6007 |
-
msgstr ""
|
6008 |
|
6009 |
#: src/admin.php:3736
|
6010 |
msgid "Backup directory specified exists, but is <b>not</b> writable."
|
@@ -6036,7 +6036,7 @@ msgstr ""
|
|
6036 |
|
6037 |
#: src/backup.php:1079
|
6038 |
msgid "Warnings encountered:"
|
6039 |
-
msgstr ""
|
6040 |
|
6041 |
#: src/class-updraftplus.php:2986
|
6042 |
msgid "The backup apparently succeeded (with warnings) and is now complete"
|
@@ -6104,7 +6104,7 @@ msgstr ""
|
|
6104 |
|
6105 |
#: src/admin.php:2591, src/class-updraftplus.php:4009, src/restorer.php:2647
|
6106 |
msgid "Warning:"
|
6107 |
-
msgstr ""
|
6108 |
|
6109 |
#: src/class-updraftplus.php:3998, src/class-updraftplus.php:4001,
|
6110 |
#: src/restorer.php:530
|
@@ -6122,7 +6122,7 @@ msgstr ""
|
|
6122 |
|
6123 |
#: src/admin.php:849, src/includes/updraftplus-tour.php:89
|
6124 |
msgid "Close"
|
6125 |
-
msgstr ""
|
6126 |
|
6127 |
#: src/addons/autobackup.php:349, src/addons/autobackup.php:441,
|
6128 |
#: src/admin.php:803, src/methods/remotesend.php:69,
|
@@ -6137,7 +6137,7 @@ msgstr ""
|
|
6137 |
|
6138 |
#: src/admin.php:827
|
6139 |
msgid "PHP information"
|
6140 |
-
msgstr ""
|
6141 |
|
6142 |
#: src/templates/wp-admin/advanced/site-info.php:70
|
6143 |
msgid "zip executable found:"
|
@@ -6145,7 +6145,7 @@ msgstr ""
|
|
6145 |
|
6146 |
#: src/templates/wp-admin/advanced/site-info.php:45
|
6147 |
msgid "show PHP information (phpinfo)"
|
6148 |
-
msgstr ""
|
6149 |
|
6150 |
#: src/templates/wp-admin/settings/migrator-no-migrator.php:9
|
6151 |
msgid "Do you want to migrate or clone/duplicate a site?"
|
@@ -6189,7 +6189,7 @@ msgstr ""
|
|
6189 |
|
6190 |
#: src/admin.php:1695, src/includes/class-wpadmin-commands.php:506
|
6191 |
msgid "Backup set not found"
|
6192 |
-
msgstr ""
|
6193 |
|
6194 |
#: src/backup.php:189
|
6195 |
msgid "%s - could not back this entity up; the corresponding directory does not exist (%s)"
|
@@ -6224,11 +6224,11 @@ msgstr ""
|
|
6224 |
|
6225 |
#: src/admin.php:1167
|
6226 |
msgid "Notice"
|
6227 |
-
msgstr ""
|
6228 |
|
6229 |
#: src/backup.php:1061
|
6230 |
msgid "Errors encountered:"
|
6231 |
-
msgstr ""
|
6232 |
|
6233 |
#: src/admin.php:795
|
6234 |
msgid "Rescanning (looking for backups that you have uploaded manually into the internal backup store)..."
|
@@ -6236,7 +6236,7 @@ msgstr ""
|
|
6236 |
|
6237 |
#: src/admin.php:809
|
6238 |
msgid "Begun looking for this entity"
|
6239 |
-
msgstr ""
|
6240 |
|
6241 |
#: src/methods/s3.php:482
|
6242 |
msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
|
@@ -6260,7 +6260,7 @@ msgstr ""
|
|
6260 |
|
6261 |
#: src/addons/migrator.php:1302, src/admin.php:814
|
6262 |
msgid "Errors:"
|
6263 |
-
msgstr ""
|
6264 |
|
6265 |
#: src/addons/migrator.php:1301
|
6266 |
msgid "SQL update commands run:"
|
@@ -6616,7 +6616,7 @@ msgstr ""
|
|
6616 |
|
6617 |
#: src/methods/email.php:92
|
6618 |
msgid "Note:"
|
6619 |
-
msgstr ""
|
6620 |
|
6621 |
#: src/methods/email.php:45
|
6622 |
msgid "WordPress Backup"
|
@@ -6638,7 +6638,7 @@ msgstr ""
|
|
6638 |
#: src/addons/webdav.php:187, src/methods/cloudfiles-new.php:189,
|
6639 |
#: src/methods/cloudfiles.php:524, src/methods/openstack2.php:158
|
6640 |
msgid "Username"
|
6641 |
-
msgstr ""
|
6642 |
|
6643 |
#: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519,
|
6644 |
#: src/methods/s3.php:1089
|
@@ -6657,7 +6657,7 @@ msgstr ""
|
|
6657 |
#: src/methods/openstack2.php:190, src/methods/openstack2.php:195,
|
6658 |
#: src/methods/s3.php:1089, src/methods/s3.php:1093
|
6659 |
msgid "Failure: No %s was given."
|
6660 |
-
msgstr ""
|
6661 |
|
6662 |
#: src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440,
|
6663 |
#: src/methods/openstack-base.php:571, src/methods/s3.php:863
|
@@ -6929,7 +6929,7 @@ msgstr ""
|
|
6929 |
|
6930 |
#: src/restorer.php:396
|
6931 |
msgid "Error message"
|
6932 |
-
msgstr ""
|
6933 |
|
6934 |
#: src/restorer.php:231
|
6935 |
msgid "The backup records do not contain information about the proper size of this file."
|
@@ -6961,7 +6961,7 @@ msgstr ""
|
|
6961 |
|
6962 |
#: src/admin.php:4268
|
6963 |
msgid "Delete this backup set"
|
6964 |
-
msgstr ""
|
6965 |
|
6966 |
#: src/admin.php:3921
|
6967 |
msgid "Good news: Your site's communications with %s can be encrypted. If you see any errors to do with encryption, then look in the 'Expert Settings' for more help."
|
@@ -6982,7 +6982,7 @@ msgstr ""
|
|
6982 |
|
6983 |
#: src/templates/wp-admin/settings/form-contents.php:373
|
6984 |
msgid "Save Changes"
|
6985 |
-
msgstr ""
|
6986 |
|
6987 |
#: src/templates/wp-admin/settings/form-contents.php:345
|
6988 |
msgid "Choosing this option lowers your security by stopping UpdraftPlus from using SSL for authentication and encrypted transport at all, where possible. Note that some cloud storage providers do not allow this (e.g. Dropbox), so with those providers this setting will have no effect."
|
@@ -7050,7 +7050,7 @@ msgstr ""
|
|
7050 |
|
7051 |
#: src/templates/wp-admin/settings/form-contents.php:303
|
7052 |
msgid "Debug mode"
|
7053 |
-
msgstr ""
|
7054 |
|
7055 |
#: src/templates/wp-admin/settings/form-contents.php:288
|
7056 |
msgid "Advanced / Debugging Settings"
|
@@ -7062,12 +7062,12 @@ msgstr ""
|
|
7062 |
|
7063 |
#: src/addons/morefiles.php:311, src/admin.php:843
|
7064 |
msgid "Cancel"
|
7065 |
-
msgstr ""
|
7066 |
|
7067 |
#: src/addons/incremental.php:235, src/addons/reporting.php:245,
|
7068 |
#: src/admin.php:4004
|
7069 |
msgid "None"
|
7070 |
-
msgstr ""
|
7071 |
|
7072 |
#: src/templates/wp-admin/settings/form-contents.php:103
|
7073 |
msgid "Choose your remote storage"
|
@@ -7084,7 +7084,7 @@ msgstr ""
|
|
7084 |
#: src/admin.php:2935, src/templates/wp-admin/settings/form-contents.php:255,
|
7085 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:44
|
7086 |
msgid "Email"
|
7087 |
-
msgstr ""
|
7088 |
|
7089 |
#: src/templates/wp-admin/settings/form-contents.php:147
|
7090 |
msgid "The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org."
|
@@ -7112,23 +7112,23 @@ msgstr ""
|
|
7112 |
|
7113 |
#: src/addons/incremental.php:244, src/admin.php:3724
|
7114 |
msgid "Monthly"
|
7115 |
-
msgstr ""
|
7116 |
|
7117 |
#: src/addons/incremental.php:243, src/admin.php:3723
|
7118 |
msgid "Fortnightly"
|
7119 |
-
msgstr ""
|
7120 |
|
7121 |
#: src/addons/incremental.php:242, src/admin.php:3722
|
7122 |
msgid "Weekly"
|
7123 |
-
msgstr ""
|
7124 |
|
7125 |
#: src/addons/incremental.php:241, src/admin.php:3721
|
7126 |
msgid "Daily"
|
7127 |
-
msgstr ""
|
7128 |
|
7129 |
#: src/admin.php:851, src/admin.php:3699
|
7130 |
msgid "Download log file"
|
7131 |
-
msgstr ""
|
7132 |
|
7133 |
#: src/admin.php:3571
|
7134 |
msgid "The folder exists, but your webserver does not have permission to write to it."
|
@@ -7147,7 +7147,7 @@ msgstr ""
|
|
7147 |
#: src/templates/wp-admin/settings/existing-backups-table.php:155,
|
7148 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
7149 |
msgid "Delete"
|
7150 |
-
msgstr ""
|
7151 |
|
7152 |
#: src/admin.php:3415
|
7153 |
msgid "show log"
|
@@ -7155,11 +7155,11 @@ msgstr ""
|
|
7155 |
|
7156 |
#: src/templates/wp-admin/advanced/wipe-settings.php:9
|
7157 |
msgid "This will delete all your UpdraftPlus settings - are you sure you want to do this?"
|
7158 |
-
msgstr ""
|
7159 |
|
7160 |
#: src/templates/wp-admin/advanced/total-size.php:19
|
7161 |
msgid "count"
|
7162 |
-
msgstr ""
|
7163 |
|
7164 |
#: src/templates/wp-admin/advanced/total-size.php:9
|
7165 |
msgid "N.B. This count is based upon what was, or was not, excluded the last time you saved the options."
|
@@ -7167,7 +7167,7 @@ msgstr ""
|
|
7167 |
|
7168 |
#: src/templates/wp-admin/advanced/total-size.php:6
|
7169 |
msgid "Total (uncompressed) on-disk data:"
|
7170 |
-
msgstr ""
|
7171 |
|
7172 |
#: src/templates/wp-admin/advanced/site-info.php:66,
|
7173 |
#: src/templates/wp-admin/settings/tab-addons.php:79,
|
@@ -7185,7 +7185,7 @@ msgstr ""
|
|
7185 |
#: src/templates/wp-admin/settings/tab-addons.php:235,
|
7186 |
#: src/templates/wp-admin/settings/tab-addons.php:252
|
7187 |
msgid "No"
|
7188 |
-
msgstr ""
|
7189 |
|
7190 |
#: src/templates/wp-admin/advanced/site-info.php:63,
|
7191 |
#: src/templates/wp-admin/advanced/site-info.php:66,
|
@@ -7208,7 +7208,7 @@ msgstr ""
|
|
7208 |
#: src/templates/wp-admin/settings/tab-addons.php:255,
|
7209 |
#: src/templates/wp-admin/settings/tab-addons.php:261
|
7210 |
msgid "Yes"
|
7211 |
-
msgstr ""
|
7212 |
|
7213 |
#: src/admin.php:5366, src/admin.php:5370,
|
7214 |
#: src/templates/wp-admin/advanced/site-info.php:45,
|
@@ -7216,7 +7216,7 @@ msgstr ""
|
|
7216 |
#: src/templates/wp-admin/advanced/site-info.php:58,
|
7217 |
#: src/templates/wp-admin/advanced/site-info.php:59
|
7218 |
msgid "%s version:"
|
7219 |
-
msgstr ""
|
7220 |
|
7221 |
#: src/templates/wp-admin/advanced/site-info.php:43
|
7222 |
msgid "Current memory usage"
|
@@ -7228,7 +7228,7 @@ msgstr ""
|
|
7228 |
|
7229 |
#: src/templates/wp-admin/advanced/site-info.php:31
|
7230 |
msgid "Web server:"
|
7231 |
-
msgstr ""
|
7232 |
|
7233 |
#: src/templates/wp-admin/settings/take-backup.php:91
|
7234 |
msgid "Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on."
|
@@ -7240,7 +7240,7 @@ msgstr ""
|
|
7240 |
|
7241 |
#: src/templates/wp-admin/settings/take-backup.php:87
|
7242 |
msgid "Multisite"
|
7243 |
-
msgstr ""
|
7244 |
|
7245 |
#: src/templates/wp-admin/settings/take-backup.php:82
|
7246 |
msgid "Perform a one-time backup"
|
@@ -7257,11 +7257,11 @@ msgstr ""
|
|
7257 |
#: src/addons/morefiles.php:137,
|
7258 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:75
|
7259 |
msgid "%s restoration options:"
|
7260 |
-
msgstr ""
|
7261 |
|
7262 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:68
|
7263 |
msgid "You will need to restore it manually."
|
7264 |
-
msgstr ""
|
7265 |
|
7266 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:68
|
7267 |
msgid "The following entity cannot be restored automatically: \"%s\"."
|
@@ -7273,7 +7273,7 @@ msgstr ""
|
|
7273 |
|
7274 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:42
|
7275 |
msgid "Choose the components to restore"
|
7276 |
-
msgstr ""
|
7277 |
|
7278 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:42
|
7279 |
msgid "Restoring will replace this site's themes, plugins, uploads, database and/or other content directories (according to what is contained in the backup set, and your selection)."
|
@@ -7281,11 +7281,11 @@ msgstr ""
|
|
7281 |
|
7282 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:30
|
7283 |
msgid "Restore backup from"
|
7284 |
-
msgstr ""
|
7285 |
|
7286 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:29
|
7287 |
msgid "Restore backup"
|
7288 |
-
msgstr ""
|
7289 |
|
7290 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:8
|
7291 |
msgid "Delete backup set"
|
@@ -7293,7 +7293,7 @@ msgstr ""
|
|
7293 |
|
7294 |
#: src/admin.php:825
|
7295 |
msgid "Download error: the server sent us a response which we did not understand."
|
7296 |
-
msgstr ""
|
7297 |
|
7298 |
#: src/addons/backblaze.php:225, src/addons/cloudfiles-enhanced.php:117,
|
7299 |
#: src/addons/migrator.php:890, src/addons/migrator.php:1187,
|
@@ -7313,21 +7313,21 @@ msgstr ""
|
|
7313 |
#: src/methods/updraftvault.php:527, src/restorer.php:228,
|
7314 |
#: src/restorer.php:256, src/restorer.php:1921
|
7315 |
msgid "Error:"
|
7316 |
-
msgstr ""
|
7317 |
|
7318 |
#: src/admin.php:808
|
7319 |
msgid "calculating..."
|
7320 |
-
msgstr ""
|
7321 |
|
7322 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:68,
|
7323 |
#: src/templates/wp-admin/settings/tab-backups.php:70
|
7324 |
msgid "UpdraftPlus - Upload backup files"
|
7325 |
-
msgstr ""
|
7326 |
|
7327 |
#: src/includes/class-filesystem-functions.php:65,
|
7328 |
#: src/templates/wp-admin/advanced/site-info.php:38
|
7329 |
msgid "refresh"
|
7330 |
-
msgstr ""
|
7331 |
|
7332 |
#: src/includes/class-filesystem-functions.php:86,
|
7333 |
#: src/templates/wp-admin/advanced/site-info.php:38
|
@@ -7358,16 +7358,16 @@ msgstr ""
|
|
7358 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:59,
|
7359 |
#: src/templates/wp-admin/settings/tab-backups.php:63
|
7360 |
msgid "Opera web browser"
|
7361 |
-
msgstr ""
|
7362 |
|
7363 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:47,
|
7364 |
#: src/templates/wp-admin/settings/tab-backups.php:51
|
7365 |
msgid "More tasks:"
|
7366 |
-
msgstr ""
|
7367 |
|
7368 |
#: src/admin.php:3114
|
7369 |
msgid "Download most recently modified log file"
|
7370 |
-
msgstr ""
|
7371 |
|
7372 |
#: src/central/bootstrap.php:187
|
7373 |
msgid "(Nothing yet logged)"
|
@@ -7377,16 +7377,16 @@ msgstr ""
|
|
7377 |
#: src/admin.php:3070, src/admin.php:3076,
|
7378 |
#: src/templates/wp-admin/settings/take-backup.php:64
|
7379 |
msgid "Last log message"
|
7380 |
-
msgstr ""
|
7381 |
|
7382 |
#: src/addons/migrator.php:271, src/admin.php:663, src/admin.php:850,
|
7383 |
#: src/admin.php:4170
|
7384 |
msgid "Restore"
|
7385 |
-
msgstr ""
|
7386 |
|
7387 |
#: src/admin.php:842, src/templates/wp-admin/settings/take-backup.php:50
|
7388 |
msgid "Backup Now"
|
7389 |
-
msgstr ""
|
7390 |
|
7391 |
#: src/templates/wp-admin/settings/take-backup.php:45
|
7392 |
msgid "Time now"
|
@@ -7401,7 +7401,7 @@ msgstr ""
|
|
7401 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:75,
|
7402 |
#: src/templates/wp-admin/settings/take-backup.php:33
|
7403 |
msgid "Database"
|
7404 |
-
msgstr ""
|
7405 |
|
7406 |
#: src/admin.php:334, src/admin.php:5161,
|
7407 |
#: src/templates/wp-admin/settings/take-backup.php:23
|
@@ -7427,11 +7427,11 @@ msgstr ""
|
|
7427 |
|
7428 |
#: src/templates/wp-admin/settings/take-backup.php:5
|
7429 |
msgid "JavaScript warning"
|
7430 |
-
msgstr ""
|
7431 |
|
7432 |
#: src/admin.php:828, src/admin.php:3151
|
7433 |
msgid "Delete Old Directories"
|
7434 |
-
msgstr ""
|
7435 |
|
7436 |
#: src/admin.php:2638
|
7437 |
msgid "Current limit is:"
|
@@ -7439,11 +7439,11 @@ msgstr ""
|
|
7439 |
|
7440 |
#: src/admin.php:2613
|
7441 |
msgid "Your backup has been restored."
|
7442 |
-
msgstr ""
|
7443 |
|
7444 |
#: src/templates/wp-admin/settings/header.php:26
|
7445 |
msgid "Version"
|
7446 |
-
msgstr ""
|
7447 |
|
7448 |
#: src/templates/wp-admin/settings/header.php:25
|
7449 |
msgid "Lead developer's homepage"
|
@@ -7455,7 +7455,7 @@ msgstr ""
|
|
7455 |
|
7456 |
#: src/admin.php:5053
|
7457 |
msgid "Your settings have been wiped."
|
7458 |
-
msgstr ""
|
7459 |
|
7460 |
#: src/admin.php:2573
|
7461 |
msgid "Backup directory successfully created."
|
@@ -7481,14 +7481,14 @@ msgstr ""
|
|
7481 |
#: src/admin.php:2514, src/admin.php:2524, src/admin.php:2533,
|
7482 |
#: src/admin.php:2575, src/admin.php:3433
|
7483 |
msgid "Return to UpdraftPlus Configuration"
|
7484 |
-
msgstr ""
|
7485 |
|
7486 |
#: src/admin.php:821, src/admin.php:2514, src/admin.php:2524,
|
7487 |
#: src/admin.php:2533, src/admin.php:2575, src/admin.php:3433,
|
7488 |
#: src/templates/wp-admin/settings/existing-backups-table.php:19,
|
7489 |
#: src/templates/wp-admin/settings/existing-backups-table.php:139
|
7490 |
msgid "Actions"
|
7491 |
-
msgstr ""
|
7492 |
|
7493 |
#: src/admin.php:2409
|
7494 |
msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
|
@@ -7496,7 +7496,7 @@ msgstr ""
|
|
7496 |
|
7497 |
#: src/admin.php:2309
|
7498 |
msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
|
7499 |
-
msgstr ""
|
7500 |
|
7501 |
#: src/admin.php:2205
|
7502 |
msgid "No local copy present."
|
@@ -7504,15 +7504,15 @@ msgstr ""
|
|
7504 |
|
7505 |
#: src/admin.php:2202
|
7506 |
msgid "Download in progress"
|
7507 |
-
msgstr ""
|
7508 |
|
7509 |
#: src/admin.php:820, src/admin.php:2191
|
7510 |
msgid "File ready."
|
7511 |
-
msgstr ""
|
7512 |
|
7513 |
#: src/admin.php:2172
|
7514 |
msgid "Download failed"
|
7515 |
-
msgstr ""
|
7516 |
|
7517 |
#: src/addons/wp-cli.php:518, src/admin.php:818,
|
7518 |
#: src/class-updraftplus.php:1298, src/class-updraftplus.php:1342,
|
@@ -7523,7 +7523,7 @@ msgstr ""
|
|
7523 |
#: src/methods/stream-base.php:219, src/restorer.php:2884,
|
7524 |
#: src/restorer.php:2909, src/restorer.php:2990, src/updraftplus.php:157
|
7525 |
msgid "Error"
|
7526 |
-
msgstr ""
|
7527 |
|
7528 |
#: src/admin.php:1959
|
7529 |
msgid "Could not find that job - perhaps it has already finished?"
|
@@ -7531,11 +7531,11 @@ msgstr ""
|
|
7531 |
|
7532 |
#: src/admin.php:1951
|
7533 |
msgid "Job deleted"
|
7534 |
-
msgstr ""
|
7535 |
|
7536 |
#: src/admin.php:2050, src/includes/class-commands.php:833
|
7537 |
msgid "OK. You should soon see activity in the \"Last log message\" field below."
|
7538 |
-
msgstr ""
|
7539 |
|
7540 |
#: src/admin.php:895
|
7541 |
msgid "Nothing yet logged"
|
@@ -7543,7 +7543,7 @@ msgstr ""
|
|
7543 |
|
7544 |
#: src/admin.php:1163
|
7545 |
msgid "Please consult this FAQ if you have problems backing up."
|
7546 |
-
msgstr ""
|
7547 |
|
7548 |
#: src/admin.php:1163
|
7549 |
msgid "Your website is hosted using the %s web server."
|
@@ -7569,7 +7569,7 @@ msgstr ""
|
|
7569 |
#: src/templates/wp-admin/settings/tab-backups.php:27,
|
7570 |
#: src/udaddons/updraftplus-addons.php:259
|
7571 |
msgid "Warning"
|
7572 |
-
msgstr ""
|
7573 |
|
7574 |
#: src/admin.php:1092
|
7575 |
msgid "Add-Ons / Pro Support"
|
@@ -7577,7 +7577,7 @@ msgstr ""
|
|
7577 |
|
7578 |
#: src/admin.php:679, src/admin.php:1090, src/admin.php:2800
|
7579 |
msgid "Settings"
|
7580 |
-
msgstr ""
|
7581 |
|
7582 |
#: src/backup.php:261
|
7583 |
msgid "Could not create %s zip. Consult the log file for more information."
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2018-12-15 11:41:50+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
1456 |
|
1457 |
#: src/templates/wp-admin/settings/form-contents.php:191
|
1458 |
msgid "Select Files"
|
1459 |
+
msgstr "Chọn file"
|
1460 |
|
1461 |
#: src/methods/cloudfiles.php:476
|
1462 |
msgid "Rackspace Storage Region"
|
2171 |
|
2172 |
#: src/templates/wp-admin/settings/form-contents.php:114
|
2173 |
msgid "Backup using %s?"
|
2174 |
+
msgstr "Sao lưu đang dùng %s?"
|
2175 |
|
2176 |
#: src/addons/s3-enhanced.php:379
|
2177 |
msgid "Asia Pacific (Mumbai)"
|
2187 |
|
2188 |
#: src/central/bootstrap.php:554
|
2189 |
msgid "More information..."
|
2190 |
+
msgstr "Thêm thông tin..."
|
2191 |
|
2192 |
#: src/central/bootstrap.php:553
|
2193 |
msgid "Use the alternative method for making a connection with the dashboard."
|
2194 |
+
msgstr "Sử dụng phương pháp khác để thực hiện kết nối với bảng điều khiển."
|
2195 |
|
2196 |
#: src/central/bootstrap.php:458
|
2197 |
msgid "Key size: %d bits"
|
2215 |
|
2216 |
#: src/addons/migrator.php:1765, src/central/bootstrap.php:547
|
2217 |
msgid "slower, strongest"
|
2218 |
+
msgstr "chậm hơn, mạnh"
|
2219 |
|
2220 |
#: src/addons/migrator.php:1764, src/central/bootstrap.php:546
|
2221 |
msgid "recommended"
|
2222 |
+
msgstr "đề nghị"
|
2223 |
|
2224 |
#: src/addons/migrator.php:1764, src/central/bootstrap.php:546
|
2225 |
msgid "%s bytes"
|
2226 |
+
msgstr "%s byte"
|
2227 |
|
2228 |
#: src/addons/migrator.php:1763, src/central/bootstrap.php:545
|
2229 |
msgid "faster (possibility for slow PHP installs)"
|
2237 |
#: src/addons/migrator.php:1765, src/central/bootstrap.php:544,
|
2238 |
#: src/central/bootstrap.php:545, src/central/bootstrap.php:547
|
2239 |
msgid "%s bits"
|
2240 |
+
msgstr "%s bit"
|
2241 |
|
2242 |
#: src/addons/migrator.php:1760, src/central/bootstrap.php:542
|
2243 |
msgid "Encryption key size:"
|
2261 |
|
2262 |
#: src/methods/ftp.php:412
|
2263 |
msgid "login"
|
2264 |
+
msgstr "đăng nhập"
|
2265 |
|
2266 |
#: src/addons/reporting.php:527, src/addons/reporting.php:527,
|
2267 |
#: src/addons/reporting.php:529, src/methods/email.php:100
|
2286 |
|
2287 |
#: src/templates/wp-admin/settings/form-contents.php:103
|
2288 |
msgid "(tap on an icon to select or unselect)"
|
2289 |
+
msgstr "(chạm vào biểu tượng để chọn hoặc bỏ chọn)"
|
2290 |
|
2291 |
#: src/methods/updraftvault.php:333, src/methods/updraftvault.php:339,
|
2292 |
#: src/methods/updraftvault.php:345
|
2316 |
|
2317 |
#: src/central/bootstrap.php:536
|
2318 |
msgid "Enter any description"
|
2319 |
+
msgstr "Nhập bất kỳ mô tả"
|
2320 |
|
2321 |
#: src/central/bootstrap.php:535
|
2322 |
msgid "Description"
|
2323 |
+
msgstr "Miêu tả"
|
2324 |
|
2325 |
#: src/central/bootstrap.php:463
|
2326 |
msgid "Delete..."
|
2327 |
+
msgstr "Xóa..."
|
2328 |
|
2329 |
#: src/central/bootstrap.php:456
|
2330 |
msgid "Created:"
|
2331 |
+
msgstr "Đã tạo:"
|
2332 |
|
2333 |
#: src/central/bootstrap.php:453
|
2334 |
msgid "Access this site as user:"
|
2335 |
+
msgstr "Truy cập trang web này như người dùng:"
|
2336 |
|
2337 |
#: src/central/bootstrap.php:477
|
2338 |
msgid "Details"
|
2339 |
+
msgstr "Chi tiết"
|
2340 |
|
2341 |
#: src/central/bootstrap.php:476
|
2342 |
msgid "Key description"
|
2343 |
+
msgstr "Mô tả khóa"
|
2344 |
|
2345 |
#: src/central/bootstrap.php:349, src/central/bootstrap.php:360
|
2346 |
msgid "A key was created, but the attempt to register it with %s was unsuccessful - please try again later."
|
2348 |
|
2349 |
#: src/central/bootstrap.php:219
|
2350 |
msgid "An invalid URL was entered"
|
2351 |
+
msgstr "Một URL không hợp lệ đã được nhập"
|
2352 |
|
2353 |
#: src/central/bootstrap.php:83
|
2354 |
msgid "Close..."
|
2355 |
+
msgstr "Đóng..."
|
2356 |
|
2357 |
#: src/central/bootstrap.php:75
|
2358 |
msgid "This connection appears to already have been made."
|
2359 |
+
msgstr "Kết nối này dường như đã được thực hiện."
|
2360 |
|
2361 |
#: src/central/bootstrap.php:72
|
2362 |
msgid "You must visit this link in the same browser and login session as you created the key in."
|
2388 |
|
2389 |
#: src/backup.php:1042, src/class-updraftplus.php:2973
|
2390 |
msgid "The backup was aborted by the user"
|
2391 |
+
msgstr "Các sao lưu đã bị hủy bỏ bởi người sử dụng"
|
2392 |
|
2393 |
#: src/admin.php:4929
|
2394 |
msgid "Your settings have been saved."
|
2395 |
+
msgstr "Cài đặt của bạn đã được lưu."
|
2396 |
|
2397 |
#: src/admin.php:4009
|
2398 |
msgid "Total backup size:"
|
2399 |
+
msgstr "Tổng kích thước sao lưu:"
|
2400 |
|
2401 |
#: src/admin.php:3416
|
2402 |
msgid "stop"
|
2403 |
+
msgstr "dừng lại"
|
2404 |
|
2405 |
#: src/admin.php:905, src/admin.php:3209
|
2406 |
msgid "The backup has finished running"
|
2410 |
#: src/templates/wp-admin/advanced/wipe-settings.php:5,
|
2411 |
#: src/templates/wp-admin/advanced/wipe-settings.php:9
|
2412 |
msgid "Wipe settings"
|
2413 |
+
msgstr "Làm sạch cài đặt"
|
2414 |
|
2415 |
#: src/templates/wp-admin/advanced/site-info.php:102
|
2416 |
msgid "reset"
|
2417 |
+
msgstr "thiết lập lại"
|
2418 |
|
2419 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:14
|
2420 |
msgid "these backup sets"
|
2421 |
+
msgstr "các bản sao lưu"
|
2422 |
|
2423 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:11
|
2424 |
msgid "this backup set"
|
2426 |
|
2427 |
#: src/includes/class-filesystem-functions.php:72
|
2428 |
msgid "calculate"
|
2429 |
+
msgstr "tính toán"
|
2430 |
|
2431 |
#: src/admin.php:879
|
2432 |
msgid "You should save your changes to ensure that they are used for making your backup."
|
2438 |
|
2439 |
#: src/admin.php:871
|
2440 |
msgid "Please enter a valid URL"
|
2441 |
+
msgstr "Vui lòng nhập một URL hợp lệ"
|
2442 |
|
2443 |
#: src/admin.php:854
|
2444 |
msgid "Saving..."
|
2445 |
+
msgstr "Đang lưu..."
|
2446 |
|
2447 |
#: src/admin.php:815
|
2448 |
msgid "Error: the server sent us a response which we did not understand."
|
2449 |
+
msgstr "Lỗi: máy chủ gửi cho chúng tôi hồi đáp mà chúng tôi không hiểu."
|
2450 |
|
2451 |
#: src/admin.php:807
|
2452 |
msgid "Fetching..."
|
2479 |
#: src/admin.php:2842, src/templates/wp-admin/notices/horizontal-notice.php:16,
|
2480 |
#: src/templates/wp-admin/notices/horizontal-notice.php:18
|
2481 |
msgid "Dismiss"
|
2482 |
+
msgstr "Bỏ qua"
|
2483 |
|
2484 |
#: src/admin.php:891
|
2485 |
msgid "Please fill in the required information."
|
2486 |
+
msgstr "Vui lòng điền vào các thông tin cần thiết."
|
2487 |
|
2488 |
#: src/addons/multisite.php:619
|
2489 |
msgid "Read more..."
|
2548 |
|
2549 |
#: src/restorer.php:211
|
2550 |
msgid "Skipping: this archive was already restored."
|
2551 |
+
msgstr "Đang bỏ qua: kho lưu trữ này đã được phục hồi."
|
2552 |
|
2553 |
#: src/templates/wp-admin/settings/form-contents.php:140
|
2554 |
msgid "File Options"
|
2555 |
+
msgstr "Tùy chọn tập tin"
|
2556 |
|
2557 |
#: src/templates/wp-admin/settings/form-contents.php:93
|
2558 |
msgid "Sending Your Backup To Remote Storage"
|
2588 |
|
2589 |
#: src/admin.php:4801
|
2590 |
msgid "settings"
|
2591 |
+
msgstr "cài đặt"
|
2592 |
|
2593 |
#: src/admin.php:4801
|
2594 |
msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
|
2633 |
#: src/addons/morefiles.php:71, src/admin.php:877
|
2634 |
msgctxt "(verb)"
|
2635 |
msgid "Download"
|
2636 |
+
msgstr "Tải về"
|
2637 |
|
2638 |
#: src/admin.php:800
|
2639 |
msgid "You have chosen to backup files, but no file entities have been selected"
|
2640 |
+
msgstr "Bạn đã chọn tập tin sao lưu, nhưng không có thực thể tập tin đã được chọn"
|
2641 |
|
2642 |
#: src/admin.php:695
|
2643 |
msgid "Extensions"
|
2644 |
+
msgstr "Phần mở rộng"
|
2645 |
|
2646 |
#: src/admin.php:687, src/admin.php:2801
|
2647 |
msgid "Advanced Tools"
|
2648 |
+
msgstr "Công cụ nâng cao"
|
2649 |
|
2650 |
#: src/addons/googlecloud.php:1055
|
2651 |
msgid "Bucket location"
|
2788 |
|
2789 |
#: src/templates/wp-admin/advanced/site-info.php:56
|
2790 |
msgid "Not installed"
|
2791 |
+
msgstr "Chưa cài đặt"
|
2792 |
|
2793 |
#: src/addons/googlecloud.php:1042, src/addons/s3-enhanced.php:63
|
2794 |
msgid "Storage class"
|
2873 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:11,
|
2874 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:14
|
2875 |
msgid "Are you sure that you wish to remove %s from UpdraftPlus?"
|
2876 |
+
msgstr "Bạn có chắc chắn rằng bạn muốn loại bỏ %s từ UpdraftPlus?"
|
2877 |
|
2878 |
#: src/templates/wp-admin/settings/existing-backups-table.php:157
|
2879 |
msgid "Deselect"
|
2880 |
+
msgstr "Bỏ chọn"
|
2881 |
|
2882 |
#: src/templates/wp-admin/settings/existing-backups-table.php:156
|
2883 |
msgid "Select all"
|
2884 |
+
msgstr "Chọn tất cả"
|
2885 |
|
2886 |
#: src/templates/wp-admin/settings/existing-backups-table.php:154
|
2887 |
msgid "Actions upon selected backups"
|
2898 |
|
2899 |
#: src/admin.php:890
|
2900 |
msgid "Processing..."
|
2901 |
+
msgstr "Đang xử lý..."
|
2902 |
|
2903 |
#: src/admin.php:888
|
2904 |
msgid "For backups older than"
|
2994 |
|
2995 |
#: src/admin.php:860
|
2996 |
msgid "Update quota count"
|
2997 |
+
msgstr "Cập nhật số lượng hạn ngạch"
|
2998 |
|
2999 |
#: src/admin.php:859
|
3000 |
msgid "Counting..."
|
3001 |
+
msgstr "Đang đếm..."
|
3002 |
|
3003 |
#: src/admin.php:858
|
3004 |
msgid "Disconnecting..."
|
3005 |
+
msgstr "Đang ngắt kết nối..."
|
3006 |
|
3007 |
#: src/admin.php:856
|
3008 |
msgid "Connecting..."
|
3009 |
+
msgstr "Đang kết nối..."
|
3010 |
|
3011 |
#: src/methods/updraftvault.php:468, src/methods/updraftvault.php:542
|
3012 |
msgid "Refresh current status"
|
3033 |
#: src/admin.php:857, src/methods/updraftvault.php:392,
|
3034 |
#: src/methods/updraftvault.php:450
|
3035 |
msgid "Disconnect"
|
3036 |
+
msgstr "Ngắt kết nối"
|
3037 |
|
3038 |
#: src/methods/updraftvault.php:389, src/methods/updraftvault.php:442
|
3039 |
msgid "Quota:"
|
3220 |
#: src/addons/wp-cli.php:371,
|
3221 |
#: src/templates/wp-admin/settings/existing-backups-table.php:101
|
3222 |
msgid "Backup sent to remote site - not available for download."
|
3223 |
+
msgstr "Bản sao lưu gửi đến trang web từ xa - không có sẵn để tải về."
|
3224 |
|
3225 |
#: src/includes/class-wpadmin-commands.php:137
|
3226 |
msgid "You should make sure that this really is a backup set intended for use on this website, before you restore (rather than a backup set of an unrelated website)."
|
3232 |
|
3233 |
#: src/admin.php:873, src/includes/class-remote-send.php:327
|
3234 |
msgid "Testing connection..."
|
3235 |
+
msgstr "Đang kiểm tra kết nối..."
|
3236 |
|
3237 |
#: src/admin.php:870,
|
3238 |
#: src/templates/wp-admin/settings/existing-backups-table.php:161
|
3239 |
msgid "Deleting..."
|
3240 |
+
msgstr "Đang xóa..."
|
3241 |
|
3242 |
#: src/admin.php:869
|
3243 |
msgid "key name"
|
3244 |
+
msgstr "tên khóa"
|
3245 |
|
3246 |
#: src/admin.php:867
|
3247 |
msgid "Please give this key a name (e.g. indicate the site it is for):"
|
3249 |
|
3250 |
#: src/admin.php:864
|
3251 |
msgid "Creating..."
|
3252 |
+
msgstr "Đang tạo..."
|
3253 |
|
3254 |
#: src/addons/migrator.php:1753
|
3255 |
msgid "Receive a backup from a remote site"
|
3274 |
#: src/admin.php:874, src/includes/class-remote-send.php:358,
|
3275 |
#: src/includes/class-remote-send.php:520
|
3276 |
msgid "Send"
|
3277 |
+
msgstr "Gửi"
|
3278 |
|
3279 |
#: src/admin.php:865, src/includes/class-remote-send.php:514
|
3280 |
msgid "Send to site:"
|
3281 |
+
msgstr "Gửi đến trang web:"
|
3282 |
|
3283 |
#: src/includes/class-remote-send.php:512
|
3284 |
msgid "No receiving sites have yet been added."
|
3348 |
|
3349 |
#: src/addons/migrator.php:1745, src/admin.php:862
|
3350 |
msgid "Add site"
|
3351 |
+
msgstr "Thêm trang web"
|
3352 |
|
3353 |
#: src/admin.php:861
|
3354 |
msgid "Adding..."
|
3355 |
+
msgstr "Đang thêm..."
|
3356 |
|
3357 |
#: src/udaddons/options.php:298
|
3358 |
msgid "Claim not granted - perhaps you have already used this purchase somewhere else, or your paid period for downloading from updraftplus.com has expired?"
|
3380 |
|
3381 |
#: src/admin.php:853, src/admin.php:879, src/admin.php:880
|
3382 |
msgid "You have made changes to your settings, and not saved."
|
3383 |
+
msgstr "Bạn đã làm thay đổi cài đặt của bạn, và không được lưu."
|
3384 |
|
3385 |
#: src/addons/onedrive.php:1188
|
3386 |
msgid "N.B. %s is not case-sensitive."
|
3617 |
|
3618 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:13
|
3619 |
msgid "Compare with the free version"
|
3620 |
+
msgstr "So sánh với phiên bản miễn phí"
|
3621 |
|
3622 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:12,
|
3623 |
#: src/templates/wp-admin/settings/tab-addons.php:46
|
3624 |
msgid "UpdraftPlus Premium"
|
3625 |
+
msgstr "UpdraftPlus Premium"
|
3626 |
|
3627 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:29
|
3628 |
msgid "Free Newsletter"
|
3629 |
+
msgstr "Bản tin miễn phí"
|
3630 |
|
3631 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:2,
|
3632 |
#: src/templates/wp-admin/notices/thanks-for-using-main-dash.php:35
|
3633 |
msgid "Dismiss (for %s months)"
|
3634 |
+
msgstr "Bỏ qua (%s tháng)"
|
3635 |
|
3636 |
#: src/addons/fixtime.php:448
|
3637 |
msgid "(at same time as files backup)"
|
3678 |
#: src/templates/wp-admin/settings/form-contents.php:190
|
3679 |
msgctxt "Uploader: Drop db.gz.crypt files here to upload them for decryption - or - Select Files"
|
3680 |
msgid "or"
|
3681 |
+
msgstr "hoặc"
|
3682 |
|
3683 |
#: src/admin.php:847
|
3684 |
msgid "You did not select any components to restore. Please select at least one, and then try again."
|
3685 |
+
msgstr "Bạn chưa chọn bất kỳ thành phần nào để khôi phục lại. Vui lòng chọn ít nhất một, và sau đó thử lại."
|
3686 |
|
3687 |
#: src/addons/sftp.php:470
|
3688 |
msgctxt "Do not translate BEGIN RSA PRIVATE KEY. PCKS1, XML, PEM and PuTTY are also technical acronyms which should not be translated."
|
3714 |
#: src/admin.php:3717
|
3715 |
msgctxt "i.e. Non-automatic"
|
3716 |
msgid "Manual"
|
3717 |
+
msgstr "Hướng dẫn sử dụng"
|
3718 |
|
3719 |
#: src/restorer.php:2784
|
3720 |
msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
|
3740 |
#: src/addons/autobackup.php:157, src/addons/autobackup.php:1026,
|
3741 |
#: src/admin.php:852
|
3742 |
msgid "Automatic backup before update"
|
3743 |
+
msgstr "Tự động sao lưu trước khi cập nhật"
|
3744 |
|
3745 |
#: src/addons/autobackup.php:122
|
3746 |
msgid "WordPress core (only)"
|
3825 |
|
3826 |
#: src/admin.php:3209, src/admin.php:4278
|
3827 |
msgid "View Log"
|
3828 |
+
msgstr "Xem báo cáo"
|
3829 |
|
3830 |
#: src/templates/wp-admin/settings/existing-backups-table.php:18,
|
3831 |
#: src/templates/wp-admin/settings/existing-backups-table.php:97
|
3832 |
msgid "Backup data (click to download)"
|
3833 |
+
msgstr "Sao lưu dữ liệu (bấm vào để tải về)"
|
3834 |
|
3835 |
#: src/templates/wp-admin/settings/existing-backups-table.php:17,
|
3836 |
#: src/templates/wp-admin/settings/existing-backups-table.php:64
|
3837 |
msgid "Backup date"
|
3838 |
+
msgstr "Ngày sao lưu"
|
3839 |
|
3840 |
#: src/templates/wp-admin/settings/form-contents.php:42,
|
3841 |
#: src/templates/wp-admin/settings/form-contents.php:75
|
3894 |
|
3895 |
#: src/methods/updraftvault.php:715, src/udaddons/updraftplus-addons.php:996
|
3896 |
msgid "Your email address was valid, but your password was not recognised by UpdraftPlus.Com."
|
3897 |
+
msgstr "Địa chỉ email hợp lệ, nhưng mật khẩu không thể tìm thấy trên UpdraftPlus.Com"
|
3898 |
|
3899 |
#: src/methods/updraftvault.php:656, src/udaddons/updraftplus-addons.php:862
|
3900 |
msgid "You need to supply both an email address and a password"
|
3943 |
|
3944 |
#: src/class-updraftplus.php:3982
|
3945 |
msgid "Any support requests to do with %s should be raised with your web hosting company."
|
3946 |
+
msgstr "Bất kì yêu cầu hỗ trợ nào để làm với %s cần được đưa lên với công ty lưu trữ web (web hosting )"
|
3947 |
|
3948 |
#: src/class-updraftplus.php:3982
|
3949 |
msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
|
3950 |
+
msgstr "Bạn chỉ nên thực hiện nếu bạn không thể cập nhật lên nhà cung cấp hiện tại và bạn tự tin (sẵn sàng chấp nhận rủi ro) rằng giao diện/ tiện ích/ v.v.. thích hợp với phiên bản %s trước đó"
|
3951 |
|
3952 |
#: src/class-updraftplus.php:3982
|
3953 |
msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
|
3954 |
+
msgstr "Đây là một bản mới hơn hẳn so với trên nhà cung cấp, cái mà bạn đang phục hồi đến (phiên bản %s)."
|
3955 |
|
3956 |
#: src/class-updraftplus.php:3982
|
3957 |
msgid "The site in this backup was running on a webserver with version %s of %s. "
|
3970 |
#: src/includes/updraftplus-notices.php:133,
|
3971 |
#: src/includes/updraftplus-notices.php:134
|
3972 |
msgid "Facebook"
|
3973 |
+
msgstr "Facebook"
|
3974 |
|
3975 |
#: src/includes/updraftplus-notices.php:133,
|
3976 |
#: src/includes/updraftplus-notices.php:134,
|
3977 |
#: src/templates/wp-admin/settings/header.php:16
|
3978 |
msgid "Twitter"
|
3979 |
+
msgstr "Twitter"
|
3980 |
|
3981 |
#: src/includes/updraftplus-notices.php:132
|
3982 |
msgid "UpdraftPlus is on social media - check us out!"
|
3998 |
|
3999 |
#: src/admin.php:2050, src/admin.php:2062, src/includes/class-commands.php:833
|
4000 |
msgid "Start backup"
|
4001 |
+
msgstr "Bắt đầu sao lưu"
|
4002 |
|
4003 |
#: src/class-updraftplus.php:3953, src/restorer.php:1446
|
4004 |
msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
|
4014 |
|
4015 |
#: src/admin.php:2288
|
4016 |
msgid "This file could not be uploaded"
|
4017 |
+
msgstr "Tập tin này không thể tải lên"
|
4018 |
|
4019 |
#: src/admin.php:2251
|
4020 |
msgid "You will find more information about this in the Settings section."
|
4030 |
|
4031 |
#: src/templates/wp-admin/advanced/site-info.php:44
|
4032 |
msgid "Memory limit"
|
4033 |
+
msgstr "Giới hạn bộ nhớ"
|
4034 |
|
4035 |
#: src/includes/class-filesystem-functions.php:233, src/restorer.php:2006
|
4036 |
msgid "restoration"
|
4061 |
#: src/admin.php:3718, src/admin.php:3719, src/admin.php:3720,
|
4062 |
#: src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
|
4063 |
msgid "Every %s hours"
|
4064 |
+
msgstr "Mỗi %s giờ"
|
4065 |
|
4066 |
#: src/addons/migrator.php:903, src/addons/migrator.php:905
|
4067 |
msgid "search and replace"
|
4115 |
|
4116 |
#: src/includes/class-backup-history.php:69
|
4117 |
msgid "You have not yet made any backups."
|
4118 |
+
msgstr "Bạn chưa thực hiện bất kỳ bản sao lưu."
|
4119 |
|
4120 |
#: src/templates/wp-admin/settings/form-contents.php:152
|
4121 |
msgid "Database Options"
|
4122 |
+
msgstr "Tùy chọn cơ sở dữ liệu"
|
4123 |
|
4124 |
#: src/templates/wp-admin/advanced/site-info.php:95
|
4125 |
msgid "Plugins for debugging:"
|
4127 |
|
4128 |
#: src/templates/wp-admin/advanced/site-info.php:74
|
4129 |
msgid "%s (%s used)"
|
4130 |
+
msgstr "%s (%s đã sử dụng)"
|
4131 |
|
4132 |
#: src/templates/wp-admin/advanced/site-info.php:74
|
4133 |
msgid "Free disk space in account:"
|
4143 |
#: src/templates/wp-admin/settings/tab-backups.php:21,
|
4144 |
#: src/templates/wp-admin/settings/tab-backups.php:44
|
4145 |
msgid "Existing Backups"
|
4146 |
+
msgstr "Sao Lưu"
|
4147 |
|
4148 |
#: src/admin.php:1143
|
4149 |
msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
|
4151 |
|
4152 |
#: src/admin.php:1143
|
4153 |
msgid "To make a backup, just press the Backup Now button."
|
4154 |
+
msgstr "Để thực hiện một bản sao lưu, chỉ cần nhấn nút Sao Lưu Ngay"
|
4155 |
|
4156 |
#: src/admin.php:1143
|
4157 |
msgid "Welcome to UpdraftPlus!"
|
4158 |
+
msgstr "Chào mừng đến UpdraftPlus!"
|
4159 |
|
4160 |
#: src/addons/moredatabase.php:318
|
4161 |
msgid "If you enter text here, it is used to encrypt database backups (Rijndael). <strong>Do make a separate record of it and do not lose it, or all your backups <em>will</em> be useless.</strong> This is also the key used to decrypt backups from this admin interface (so if you change it, then automatic decryption will not work until you change it back)."
|
4227 |
|
4228 |
#: src/class-updraftplus.php:1736
|
4229 |
msgid "External database (%s)"
|
4230 |
+
msgstr "Cơ sở dữ liệu bên ngoài (%s)"
|
4231 |
|
4232 |
#: src/methods/googledrive.php:1207
|
4233 |
msgid "Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section."
|
4245 |
|
4246 |
#: src/addons/wp-cli.php:437, src/admin.php:4034
|
4247 |
msgid "External database"
|
4248 |
+
msgstr "Cơ sở dữ liệu bên ngoài"
|
4249 |
|
4250 |
#: src/templates/wp-admin/settings/form-contents.php:304
|
4251 |
msgid "This will also cause debugging output from all plugins to be shown upon this screen - please do not be surprised to see these."
|
4376 |
|
4377 |
#: src/methods/dropbox.php:611
|
4378 |
msgid "Dropbox"
|
4379 |
+
msgstr "Dropbox"
|
4380 |
|
4381 |
#: src/addons/onedrive.php:1205, src/methods/dropbox.php:611
|
4382 |
msgid "Authenticate with %s"
|
4458 |
|
4459 |
#: src/templates/wp-admin/advanced/site-info.php:100
|
4460 |
msgid "Call"
|
4461 |
+
msgstr "Gọi"
|
4462 |
|
4463 |
#: src/templates/wp-admin/advanced/site-info.php:98,
|
4464 |
#: src/templates/wp-admin/advanced/site-info.php:98
|
4504 |
#: src/addons/migrator.php:1758, src/addons/sftp.php:467, src/admin.php:868,
|
4505 |
#: src/admin.php:5192, src/templates/wp-admin/settings/temporary-clone.php:63
|
4506 |
msgid "Key"
|
4507 |
+
msgstr "Chìa khóa"
|
4508 |
|
4509 |
#: src/addons/sftp.php:462
|
4510 |
msgid "Your login may be either password or key-based - you only need to enter one, not both."
|
4520 |
|
4521 |
#: src/addons/wp-cli.php:449, src/admin.php:4078
|
4522 |
msgid "Files backup (created by %s)"
|
4523 |
+
msgstr "Bản sao lưu tập tin (được tạo ra bởi %s)"
|
4524 |
|
4525 |
#: src/addons/wp-cli.php:449, src/admin.php:4078
|
4526 |
msgid "Files and database WordPress backup (created by %s)"
|
4527 |
+
msgstr "Bản sao lưu tập tin và cơ sở dữ liệu WordPress (được tạo ra bởi %s)"
|
4528 |
|
4529 |
#: src/addons/importer.php:276, src/admin.php:4072,
|
4530 |
#: src/includes/class-backup-history.php:435
|
4531 |
msgid "Backup created by: %s."
|
4532 |
+
msgstr "Bản sao lưu được tạo bởi: %s."
|
4533 |
|
4534 |
#: src/addons/wp-cli.php:431, src/admin.php:4032
|
4535 |
msgid "Database (created by %s)"
|
4536 |
+
msgstr "Cơ sở dữ liệu (được tạo ra bởi %s)"
|
4537 |
|
4538 |
#: src/addons/wp-cli.php:429, src/admin.php:4026, src/admin.php:4074
|
4539 |
msgid "unknown source"
|
4540 |
+
msgstr "nguồn không rõ"
|
4541 |
|
4542 |
#: src/templates/wp-admin/advanced/site-info.php:104,
|
4543 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:56,
|
4548 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:51,
|
4549 |
#: src/templates/wp-admin/settings/tab-backups.php:55
|
4550 |
msgid "Upload backup files"
|
4551 |
+
msgstr "Tải lên tập tin sao lưu"
|
4552 |
|
4553 |
#: src/admin.php:2303
|
4554 |
msgid "This backup was created by %s, and can be imported."
|
4555 |
+
msgstr "Bản sao lưu này đã được tạo ra bởi %s, Và có thể được nhập khẩu."
|
4556 |
|
4557 |
#: src/admin.php:1172
|
4558 |
msgid "Read this page for a guide to possible causes and how to fix it."
|
4564 |
|
4565 |
#: src/admin.php:831, src/includes/class-backup-history.php:442
|
4566 |
msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
|
4567 |
+
msgstr "Nếu đây là một bản sao lưu được tạo ra bởi một plugin sao lưu khác, Khi đó UpdraftPlus Premium có thể giúp bạn."
|
4568 |
|
4569 |
#: src/admin.php:830
|
4570 |
msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
|
4571 |
+
msgstr "Tuy nhiên, Lưu trữ UpdraftPlus là tiêu chuẩn tập tin zip/SQL - vì vậy nếu bạn chắc chắn rằng tập tin của bạn có định dạng phù hợp, sau đó bạn có thể đổi tên nó để phù hợp với mô hình đó."
|
4572 |
|
4573 |
#: src/admin.php:830, src/admin.php:831,
|
4574 |
#: src/includes/class-backup-history.php:442
|
4575 |
msgid "This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz))."
|
4576 |
+
msgstr "Tập tin này sẽ không xuất hiện để có một bản sao lưu UpdraftPlus (tập tin như vậy là .zip hoặc .gz trong đó có tên như:. backup_ (thời gian) _ (tên trang web) _ (code) _ (loại) (zip | gz) )."
|
4577 |
|
4578 |
#: src/admin.php:4075, src/includes/class-wpadmin-commands.php:162,
|
4579 |
#: src/restorer.php:1975
|
4961 |
|
4962 |
#: src/admin.php:845, src/central/bootstrap.php:565
|
4963 |
msgid "Create"
|
4964 |
+
msgstr "Tạo"
|
4965 |
|
4966 |
#: src/admin.php:806
|
4967 |
msgid "Trying..."
|
4968 |
+
msgstr "Đang thử lại..."
|
4969 |
|
4970 |
#: src/admin.php:805
|
4971 |
msgid "The new user's RackSpace console password is (this will not be shown again):"
|
4973 |
|
4974 |
#: src/addons/wp-cli.php:797, src/admin.php:816, src/admin.php:4586
|
4975 |
msgid "Error data:"
|
4976 |
+
msgstr "Dữ liệu lỗi:"
|
4977 |
|
4978 |
#: src/admin.php:4489
|
4979 |
msgid "Backup does not exist in the backup history"
|
5025 |
|
5026 |
#: src/class-updraftplus.php:1680, src/class-updraftplus.php:1682
|
5027 |
msgid "files: %s"
|
5028 |
+
msgstr "các tập tin: %s"
|
5029 |
|
5030 |
#: src/addons/reporting.php:392
|
5031 |
msgid "Use the \"Reporting\" section to configure the email addresses to be used."
|
5037 |
|
5038 |
#: src/addons/reporting.php:223, src/admin.php:3992
|
5039 |
msgid "Uploaded to:"
|
5040 |
+
msgstr "Đã tải lên:"
|
5041 |
|
5042 |
#: src/addons/reporting.php:222
|
5043 |
msgid "Time taken:"
|
5111 |
#: src/methods/updraftvault.php:362,
|
5112 |
#: src/templates/wp-admin/settings/temporary-clone.php:82
|
5113 |
msgid "Connect"
|
5114 |
+
msgstr "Kết nối"
|
5115 |
|
5116 |
#: src/templates/wp-admin/settings/form-contents.php:262
|
5117 |
msgid "For more reporting features, use the Reporting add-on."
|
5139 |
|
5140 |
#: src/backup.php:1094
|
5141 |
msgid "Backed up: %s"
|
5142 |
+
msgstr "Sao lưu: %s"
|
5143 |
|
5144 |
#: src/addons/reporting.php:265, src/backup.php:1088
|
5145 |
msgid "The log file has been attached to this email."
|
5146 |
+
msgstr "Tập tin báo cáo đã được đính kèm vào email này."
|
5147 |
|
5148 |
#: src/backup.php:1052
|
5149 |
msgid "Unknown/unexpected error - please raise a support request"
|
5256 |
#: src/templates/wp-admin/settings/tab-addons.php:191,
|
5257 |
#: src/templates/wp-admin/settings/tab-addons.php:192
|
5258 |
msgid "Reporting"
|
5259 |
+
msgstr "Đang báo cáo"
|
5260 |
|
5261 |
#: src/admin.php:5189
|
5262 |
msgid "Options (raw)"
|
5264 |
|
5265 |
#: src/addons/reporting.php:525, src/admin.php:792
|
5266 |
msgid "Send a report only when there are warnings/errors"
|
5267 |
+
msgstr "Gửi một báo cáo chỉ khi có cảnh báo/lỗi"
|
5268 |
|
5269 |
#: src/restorer.php:2203
|
5270 |
msgid "Content URL:"
|
5419 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:78,
|
5420 |
#: src/templates/wp-admin/settings/tab-backups.php:80
|
5421 |
msgid "Drop backup files here"
|
5422 |
+
msgstr "Thả các tập tin sao lưu ở đây"
|
5423 |
|
5424 |
#: src/admin.php:804
|
5425 |
msgid "The web server returned an error code (try again, or check your web server logs)"
|
5464 |
|
5465 |
#: src/admin.php:3283
|
5466 |
msgid "(%s%%, file %s of %s)"
|
5467 |
+
msgstr "(%s%%, tập tin %s của %s)"
|
5468 |
|
5469 |
#: src/addons/autobackup.php:304, src/addons/autobackup.php:1090,
|
5470 |
#: src/addons/lockadmin.php:160
|
5505 |
|
5506 |
#: src/admin.php:4140, src/admin.php:4142
|
5507 |
msgid "(Not finished)"
|
5508 |
+
msgstr "(Chưa xong)"
|
5509 |
|
5510 |
#: src/admin.php:4142
|
5511 |
msgid "If you are seeing more backups than you expect, then it is probably because the deletion of old backup sets does not happen until a fresh backup completes."
|
5539 |
|
5540 |
#: src/admin.php:3297
|
5541 |
msgid "Backup finished"
|
5542 |
+
msgstr "Sao lưu hoàn thành"
|
5543 |
|
5544 |
#: src/admin.php:3292
|
5545 |
msgid "Waiting until scheduled time to retry because of errors"
|
5546 |
+
msgstr "Đang chờ đến thời gian dự kiến để thử lại bởi vì lỗi gặp phải"
|
5547 |
|
5548 |
#: src/admin.php:3288
|
5549 |
msgid "Pruning old backup sets"
|
5551 |
|
5552 |
#: src/admin.php:3275
|
5553 |
msgid "Uploading files to remote storage"
|
5554 |
+
msgstr "Đang tải tập tin đến kho lưu trữ từ xa"
|
5555 |
|
5556 |
#: src/admin.php:3344
|
5557 |
msgid "Encrypted database"
|
5558 |
+
msgstr "Đã mã hóa cơ sở dữ liệu"
|
5559 |
|
5560 |
#: src/admin.php:3336
|
5561 |
msgid "Encrypting database"
|
5562 |
+
msgstr "Đang mã hóa cơ sở dữ liệu"
|
5563 |
|
5564 |
#: src/admin.php:3310
|
5565 |
msgid "Created database backup"
|
5566 |
+
msgstr "Đã tạo bản sao lưu cơ sở dữ liệu"
|
5567 |
|
5568 |
#: src/admin.php:3323
|
5569 |
msgid "table: %s"
|
5571 |
|
5572 |
#: src/admin.php:3321
|
5573 |
msgid "Creating database backup"
|
5574 |
+
msgstr "Đang tạo bản sao lưu cơ sở dữ liệu"
|
5575 |
|
5576 |
#: src/admin.php:3266
|
5577 |
msgid "Created file backup zips"
|
5578 |
+
msgstr "Đã tạo tập tin sao lưu zip"
|
5579 |
|
5580 |
#: src/admin.php:3253
|
5581 |
msgid "Creating file backup zips"
|
5582 |
+
msgstr "Đang tạo tập tin sao lưu zip"
|
5583 |
|
5584 |
#: src/admin.php:3248
|
5585 |
msgid "Backup begun"
|
5586 |
+
msgstr "Bắt đầu sao lưu"
|
5587 |
|
5588 |
#: src/admin.php:1151
|
5589 |
msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even "Backup Now") unless either you have set up a facility to call the scheduler manually, or until it is enabled."
|
5620 |
|
5621 |
#: src/addons/autobackup.php:1104, src/admin.php:848
|
5622 |
msgid "Proceed with update"
|
5623 |
+
msgstr "Tiến hành cập nhật"
|
5624 |
|
5625 |
#: src/addons/autobackup.php:1097
|
5626 |
msgid "Do not abort after pressing Proceed below - wait for the backup to complete."
|
5692 |
#: src/templates/wp-admin/settings/tab-addons.php:21,
|
5693 |
#: src/templates/wp-admin/settings/tab-addons.php:87
|
5694 |
msgid "Support"
|
5695 |
+
msgstr "Hỗ trợ"
|
5696 |
|
5697 |
#: src/class-updraftplus.php:4237
|
5698 |
msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
|
5717 |
#: src/addons/autobackup.php:1072, src/admin.php:976,
|
5718 |
#: src/includes/updraftplus-notices.php:171
|
5719 |
msgid "Be safe with an automatic backup"
|
5720 |
+
msgstr "An toàn với một bản sao lưu tự động"
|
5721 |
|
5722 |
#: src/admin.php:2591
|
5723 |
msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
|
5725 |
|
5726 |
#: src/admin.php:840
|
5727 |
msgid "The file was uploaded."
|
5728 |
+
msgstr "Tập tin đã được tải lên."
|
5729 |
|
5730 |
#: src/admin.php:839
|
5731 |
msgid "Unknown server response status:"
|
5732 |
+
msgstr "Tình trạng máy chủ không phản hồi:"
|
5733 |
|
5734 |
#: src/admin.php:838
|
5735 |
msgid "Unknown server response:"
|
5736 |
+
msgstr "Máy chủ không phản hồi:"
|
5737 |
|
5738 |
#: src/admin.php:837
|
5739 |
msgid "This decryption key will be attempted:"
|
5741 |
|
5742 |
#: src/admin.php:836
|
5743 |
msgid "Follow this link to attempt decryption and download the database file to your computer."
|
5744 |
+
msgstr "Nhấn vào liên kết này để tải tập tin cơ sở dữ liệu về máy tính của bạn."
|
5745 |
|
5746 |
#: src/admin.php:835
|
5747 |
msgid "Upload error"
|
5748 |
+
msgstr "Lỗi tải lên"
|
5749 |
|
5750 |
#: src/admin.php:834
|
5751 |
msgid "This file does not appear to be an UpdraftPlus encrypted database archive (such files are .gz.crypt files which have a name like: backup_(time)_(site name)_(code)_db.crypt.gz)."
|
5752 |
+
msgstr "Tập tin này sẽ không xuất hiện để có một mã hóa lưu trữ cơ sở dữ liệu UpdraftPlus (tập tin như vậy là .gz.crypt trong đó có tên như: backup_ (thời gian) _ (tên trang web) _ (code) _db.crypt.gz)."
|
5753 |
|
5754 |
#: src/admin.php:833
|
5755 |
msgid "Upload error:"
|
5756 |
+
msgstr "Lỗi tải lên:"
|
5757 |
|
5758 |
#: src/admin.php:832
|
5759 |
msgid "(make sure that you were trying to upload a zip file previously created by UpdraftPlus)"
|
5760 |
+
msgstr "(hãy chắc chắn rằng bạn đã cố gắng để tải lên một tập tin zip trước đó được tạo ra bởi UpdraftPlus)"
|
5761 |
|
5762 |
#: src/admin.php:823
|
5763 |
msgid "Download to your computer"
|
5764 |
+
msgstr "Tải về máy tính của bạn"
|
5765 |
|
5766 |
#: src/admin.php:822
|
5767 |
msgid "Delete from your web server"
|
5768 |
+
msgstr "Xóa từ máy chủ web của bạn"
|
5769 |
|
5770 |
#: src/admin.php:4112
|
5771 |
msgid "You appear to be missing one or more archives from this multi-archive set."
|
5785 |
|
5786 |
#: src/admin.php:813
|
5787 |
msgid "Warnings:"
|
5788 |
+
msgstr "Cảnh báo:"
|
5789 |
|
5790 |
#: src/admin.php:812
|
5791 |
msgid "Error: the server sent an empty response."
|
5792 |
+
msgstr "Lỗi: máy chủ gửi một phản hồi trống."
|
5793 |
|
5794 |
#: src/admin.php:2317
|
5795 |
msgid "This looks like a file created by UpdraftPlus, but this install does not know about this type of object: %s. Perhaps you need to install an add-on?"
|
5797 |
|
5798 |
#: src/includes/class-wpadmin-commands.php:238
|
5799 |
msgid "The backup archive files have been processed, but with some errors. You will need to cancel and correct any problems before retrying."
|
5800 |
+
msgstr "Các tập tin sao lưu đã được xử lý, nhưng có một số lỗi. Bạn sẽ cần phải hủy bỏ và sửa bất kỳ vấn đề gặp phải trước khi thử lại."
|
5801 |
|
5802 |
#: src/includes/class-wpadmin-commands.php:236
|
5803 |
msgid "The backup archive files have been processed, but with some warnings. If all is well, then now press Restore again to proceed. Otherwise, cancel and correct any problems first."
|
5804 |
+
msgstr "Các tập tin sao lưu đã được xử lý, nhưng có một số cảnh báo. Nếu tất cả đều tốt, khi đó hãy bấm Khôi Phục một lần nữa để tiến hành. Nếu không, hủy bỏ và sửa bất kỳ vấn đề gặp phải."
|
5805 |
|
5806 |
#: src/includes/class-wpadmin-commands.php:234
|
5807 |
msgid "The backup archive files have been successfully processed. Now press Restore again to proceed."
|
5808 |
+
msgstr "Các tập tin sao lưu dự phòng đã được xử lý thành công. Bây giờ bấm Khôi Phục một lần nữa để tiến hành."
|
5809 |
|
5810 |
#: src/includes/class-wpadmin-commands.php:208
|
5811 |
msgid "This multi-archive backup set appears to have the following archives missing: %s"
|
5813 |
|
5814 |
#: src/includes/class-wpadmin-commands.php:193
|
5815 |
msgid "File (%s) was found, but has a different size (%s) from what was expected (%s) - it may be corrupt."
|
5816 |
+
msgstr "Tập tin (%s) đã được tìm thấy, nhưng có kích thước khác (%s) từ những gì đã được dự kiến (%s) - nó có thể đã bị hỏng."
|
5817 |
|
5818 |
#: src/includes/class-wpadmin-commands.php:188
|
5819 |
msgid "File was found, but is zero-sized (you need to re-upload it): %s"
|
5820 |
+
msgstr "Tập tin đã được tìm thấy, nhưng là số không nhỏ (bạn cần phải tải nó lên lại): %s"
|
5821 |
|
5822 |
#: src/includes/class-wpadmin-commands.php:186
|
5823 |
msgid "File not found (you need to upload it): %s"
|
5824 |
+
msgstr "Tập tin không tìm thấy (bạn cần phải tải nó): %s"
|
5825 |
|
5826 |
#: src/addons/wp-cli.php:611, src/addons/wp-cli.php:612,
|
5827 |
#: src/includes/class-wpadmin-commands.php:114
|
5883 |
|
5884 |
#: src/admin.php:829
|
5885 |
msgid "Raw backup history"
|
5886 |
+
msgstr "Lịch sử sao lưu thô"
|
5887 |
|
5888 |
#: src/templates/wp-admin/advanced/site-info.php:104
|
5889 |
msgid "Show raw backup and file list"
|
5891 |
|
5892 |
#: src/admin.php:811
|
5893 |
msgid "Processing files - please wait..."
|
5894 |
+
msgstr "Đang xử lý các tập tin - vui lòng đợi..."
|
5895 |
|
5896 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:27,
|
5897 |
#: src/templates/wp-admin/settings/tab-backups.php:27
|
5924 |
#: src/class-updraftplus.php:4097, src/class-updraftplus.php:4097,
|
5925 |
#: src/updraftplus.php:157
|
5926 |
msgid "Go here for more information."
|
5927 |
+
msgstr "Tới đây để biết thêm thông tin."
|
5928 |
|
5929 |
#: src/admin.php:810
|
5930 |
msgid "Some files are still downloading or being processed - please wait."
|
5931 |
+
msgstr "Một số tập tin vẫn đang tải về hoặc đang được xử lý - vui lòng đợi."
|
5932 |
|
5933 |
#: src/class-updraftplus.php:3945, src/class-updraftplus.php:3965
|
5934 |
msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
|
6004 |
#: src/class-updraftplus.php:4076, src/methods/googledrive.php:403,
|
6005 |
#: src/methods/s3.php:341
|
6006 |
msgid "Error: %s"
|
6007 |
+
msgstr "Lỗi: %s"
|
6008 |
|
6009 |
#: src/admin.php:3736
|
6010 |
msgid "Backup directory specified exists, but is <b>not</b> writable."
|
6036 |
|
6037 |
#: src/backup.php:1079
|
6038 |
msgid "Warnings encountered:"
|
6039 |
+
msgstr "Cảnh báo gặp phải:"
|
6040 |
|
6041 |
#: src/class-updraftplus.php:2986
|
6042 |
msgid "The backup apparently succeeded (with warnings) and is now complete"
|
6104 |
|
6105 |
#: src/admin.php:2591, src/class-updraftplus.php:4009, src/restorer.php:2647
|
6106 |
msgid "Warning:"
|
6107 |
+
msgstr "Cảnh báo:"
|
6108 |
|
6109 |
#: src/class-updraftplus.php:3998, src/class-updraftplus.php:4001,
|
6110 |
#: src/restorer.php:530
|
6122 |
|
6123 |
#: src/admin.php:849, src/includes/updraftplus-tour.php:89
|
6124 |
msgid "Close"
|
6125 |
+
msgstr "Đóng"
|
6126 |
|
6127 |
#: src/addons/autobackup.php:349, src/addons/autobackup.php:441,
|
6128 |
#: src/admin.php:803, src/methods/remotesend.php:69,
|
6137 |
|
6138 |
#: src/admin.php:827
|
6139 |
msgid "PHP information"
|
6140 |
+
msgstr "Thông tin PHP"
|
6141 |
|
6142 |
#: src/templates/wp-admin/advanced/site-info.php:70
|
6143 |
msgid "zip executable found:"
|
6145 |
|
6146 |
#: src/templates/wp-admin/advanced/site-info.php:45
|
6147 |
msgid "show PHP information (phpinfo)"
|
6148 |
+
msgstr "Hiện thông tin PHP (phpinfo)"
|
6149 |
|
6150 |
#: src/templates/wp-admin/settings/migrator-no-migrator.php:9
|
6151 |
msgid "Do you want to migrate or clone/duplicate a site?"
|
6189 |
|
6190 |
#: src/admin.php:1695, src/includes/class-wpadmin-commands.php:506
|
6191 |
msgid "Backup set not found"
|
6192 |
+
msgstr "Bộ sao lưu không tìm thấy"
|
6193 |
|
6194 |
#: src/backup.php:189
|
6195 |
msgid "%s - could not back this entity up; the corresponding directory does not exist (%s)"
|
6224 |
|
6225 |
#: src/admin.php:1167
|
6226 |
msgid "Notice"
|
6227 |
+
msgstr "Chú ý"
|
6228 |
|
6229 |
#: src/backup.php:1061
|
6230 |
msgid "Errors encountered:"
|
6231 |
+
msgstr "Lỗi gặp phải:"
|
6232 |
|
6233 |
#: src/admin.php:795
|
6234 |
msgid "Rescanning (looking for backups that you have uploaded manually into the internal backup store)..."
|
6236 |
|
6237 |
#: src/admin.php:809
|
6238 |
msgid "Begun looking for this entity"
|
6239 |
+
msgstr "Đang bắt đầu tìm kiếm thực thể này"
|
6240 |
|
6241 |
#: src/methods/s3.php:482
|
6242 |
msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
|
6260 |
|
6261 |
#: src/addons/migrator.php:1302, src/admin.php:814
|
6262 |
msgid "Errors:"
|
6263 |
+
msgstr "Lỗi:"
|
6264 |
|
6265 |
#: src/addons/migrator.php:1301
|
6266 |
msgid "SQL update commands run:"
|
6616 |
|
6617 |
#: src/methods/email.php:92
|
6618 |
msgid "Note:"
|
6619 |
+
msgstr "Ghi chú:"
|
6620 |
|
6621 |
#: src/methods/email.php:45
|
6622 |
msgid "WordPress Backup"
|
6638 |
#: src/addons/webdav.php:187, src/methods/cloudfiles-new.php:189,
|
6639 |
#: src/methods/cloudfiles.php:524, src/methods/openstack2.php:158
|
6640 |
msgid "Username"
|
6641 |
+
msgstr "Tài khoản"
|
6642 |
|
6643 |
#: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519,
|
6644 |
#: src/methods/s3.php:1089
|
6657 |
#: src/methods/openstack2.php:190, src/methods/openstack2.php:195,
|
6658 |
#: src/methods/s3.php:1089, src/methods/s3.php:1093
|
6659 |
msgid "Failure: No %s was given."
|
6660 |
+
msgstr "Thất bại: Không có %s được đưa ra."
|
6661 |
|
6662 |
#: src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440,
|
6663 |
#: src/methods/openstack-base.php:571, src/methods/s3.php:863
|
6929 |
|
6930 |
#: src/restorer.php:396
|
6931 |
msgid "Error message"
|
6932 |
+
msgstr "Thông báo lỗi"
|
6933 |
|
6934 |
#: src/restorer.php:231
|
6935 |
msgid "The backup records do not contain information about the proper size of this file."
|
6961 |
|
6962 |
#: src/admin.php:4268
|
6963 |
msgid "Delete this backup set"
|
6964 |
+
msgstr "Xóa bản sao lưu này"
|
6965 |
|
6966 |
#: src/admin.php:3921
|
6967 |
msgid "Good news: Your site's communications with %s can be encrypted. If you see any errors to do with encryption, then look in the 'Expert Settings' for more help."
|
6982 |
|
6983 |
#: src/templates/wp-admin/settings/form-contents.php:373
|
6984 |
msgid "Save Changes"
|
6985 |
+
msgstr "Lưu thay đổi"
|
6986 |
|
6987 |
#: src/templates/wp-admin/settings/form-contents.php:345
|
6988 |
msgid "Choosing this option lowers your security by stopping UpdraftPlus from using SSL for authentication and encrypted transport at all, where possible. Note that some cloud storage providers do not allow this (e.g. Dropbox), so with those providers this setting will have no effect."
|
7050 |
|
7051 |
#: src/templates/wp-admin/settings/form-contents.php:303
|
7052 |
msgid "Debug mode"
|
7053 |
+
msgstr "Chế độ kiểm tra sửa lỗi"
|
7054 |
|
7055 |
#: src/templates/wp-admin/settings/form-contents.php:288
|
7056 |
msgid "Advanced / Debugging Settings"
|
7062 |
|
7063 |
#: src/addons/morefiles.php:311, src/admin.php:843
|
7064 |
msgid "Cancel"
|
7065 |
+
msgstr "Hủy"
|
7066 |
|
7067 |
#: src/addons/incremental.php:235, src/addons/reporting.php:245,
|
7068 |
#: src/admin.php:4004
|
7069 |
msgid "None"
|
7070 |
+
msgstr "Không mục nào"
|
7071 |
|
7072 |
#: src/templates/wp-admin/settings/form-contents.php:103
|
7073 |
msgid "Choose your remote storage"
|
7084 |
#: src/admin.php:2935, src/templates/wp-admin/settings/form-contents.php:255,
|
7085 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:44
|
7086 |
msgid "Email"
|
7087 |
+
msgstr "Email"
|
7088 |
|
7089 |
#: src/templates/wp-admin/settings/form-contents.php:147
|
7090 |
msgid "The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org."
|
7112 |
|
7113 |
#: src/addons/incremental.php:244, src/admin.php:3724
|
7114 |
msgid "Monthly"
|
7115 |
+
msgstr "Hằng tháng"
|
7116 |
|
7117 |
#: src/addons/incremental.php:243, src/admin.php:3723
|
7118 |
msgid "Fortnightly"
|
7119 |
+
msgstr "Mỗi tháng hai lần"
|
7120 |
|
7121 |
#: src/addons/incremental.php:242, src/admin.php:3722
|
7122 |
msgid "Weekly"
|
7123 |
+
msgstr "Hằng tuần"
|
7124 |
|
7125 |
#: src/addons/incremental.php:241, src/admin.php:3721
|
7126 |
msgid "Daily"
|
7127 |
+
msgstr "Hằng ngày"
|
7128 |
|
7129 |
#: src/admin.php:851, src/admin.php:3699
|
7130 |
msgid "Download log file"
|
7131 |
+
msgstr "Tải về tập tin báo cáo"
|
7132 |
|
7133 |
#: src/admin.php:3571
|
7134 |
msgid "The folder exists, but your webserver does not have permission to write to it."
|
7147 |
#: src/templates/wp-admin/settings/existing-backups-table.php:155,
|
7148 |
#: src/templates/wp-admin/settings/file-backup-exclude.php:11
|
7149 |
msgid "Delete"
|
7150 |
+
msgstr "Xóa"
|
7151 |
|
7152 |
#: src/admin.php:3415
|
7153 |
msgid "show log"
|
7155 |
|
7156 |
#: src/templates/wp-admin/advanced/wipe-settings.php:9
|
7157 |
msgid "This will delete all your UpdraftPlus settings - are you sure you want to do this?"
|
7158 |
+
msgstr "Điều này sẽ xóa tất cả cài đặt UpdraftPlus của bạn - bạn có chắc bạn muốn làm điều này?"
|
7159 |
|
7160 |
#: src/templates/wp-admin/advanced/total-size.php:19
|
7161 |
msgid "count"
|
7162 |
+
msgstr "đếm"
|
7163 |
|
7164 |
#: src/templates/wp-admin/advanced/total-size.php:9
|
7165 |
msgid "N.B. This count is based upon what was, or was not, excluded the last time you saved the options."
|
7167 |
|
7168 |
#: src/templates/wp-admin/advanced/total-size.php:6
|
7169 |
msgid "Total (uncompressed) on-disk data:"
|
7170 |
+
msgstr "Tổng số dữ liệu trên đĩa (không nén):"
|
7171 |
|
7172 |
#: src/templates/wp-admin/advanced/site-info.php:66,
|
7173 |
#: src/templates/wp-admin/settings/tab-addons.php:79,
|
7185 |
#: src/templates/wp-admin/settings/tab-addons.php:235,
|
7186 |
#: src/templates/wp-admin/settings/tab-addons.php:252
|
7187 |
msgid "No"
|
7188 |
+
msgstr "Không"
|
7189 |
|
7190 |
#: src/templates/wp-admin/advanced/site-info.php:63,
|
7191 |
#: src/templates/wp-admin/advanced/site-info.php:66,
|
7208 |
#: src/templates/wp-admin/settings/tab-addons.php:255,
|
7209 |
#: src/templates/wp-admin/settings/tab-addons.php:261
|
7210 |
msgid "Yes"
|
7211 |
+
msgstr "Có"
|
7212 |
|
7213 |
#: src/admin.php:5366, src/admin.php:5370,
|
7214 |
#: src/templates/wp-admin/advanced/site-info.php:45,
|
7216 |
#: src/templates/wp-admin/advanced/site-info.php:58,
|
7217 |
#: src/templates/wp-admin/advanced/site-info.php:59
|
7218 |
msgid "%s version:"
|
7219 |
+
msgstr "%s phiên bản:"
|
7220 |
|
7221 |
#: src/templates/wp-admin/advanced/site-info.php:43
|
7222 |
msgid "Current memory usage"
|
7228 |
|
7229 |
#: src/templates/wp-admin/advanced/site-info.php:31
|
7230 |
msgid "Web server:"
|
7231 |
+
msgstr "Máy chủ web:"
|
7232 |
|
7233 |
#: src/templates/wp-admin/settings/take-backup.php:91
|
7234 |
msgid "Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on."
|
7240 |
|
7241 |
#: src/templates/wp-admin/settings/take-backup.php:87
|
7242 |
msgid "Multisite"
|
7243 |
+
msgstr "Nhiều trang"
|
7244 |
|
7245 |
#: src/templates/wp-admin/settings/take-backup.php:82
|
7246 |
msgid "Perform a one-time backup"
|
7257 |
#: src/addons/morefiles.php:137,
|
7258 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:75
|
7259 |
msgid "%s restoration options:"
|
7260 |
+
msgstr "%s tùy chọn phục hồi:"
|
7261 |
|
7262 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:68
|
7263 |
msgid "You will need to restore it manually."
|
7264 |
+
msgstr "Bạn sẽ cần phải khôi phục lại nó bằng tay."
|
7265 |
|
7266 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:68
|
7267 |
msgid "The following entity cannot be restored automatically: \"%s\"."
|
7273 |
|
7274 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:42
|
7275 |
msgid "Choose the components to restore"
|
7276 |
+
msgstr "Chọn các thành phần để khôi phục"
|
7277 |
|
7278 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:42
|
7279 |
msgid "Restoring will replace this site's themes, plugins, uploads, database and/or other content directories (according to what is contained in the backup set, and your selection)."
|
7281 |
|
7282 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:30
|
7283 |
msgid "Restore backup from"
|
7284 |
+
msgstr "Khôi phục sao lưu từ"
|
7285 |
|
7286 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:29
|
7287 |
msgid "Restore backup"
|
7288 |
+
msgstr "Khôi phục bản sao lưu"
|
7289 |
|
7290 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:8
|
7291 |
msgid "Delete backup set"
|
7293 |
|
7294 |
#: src/admin.php:825
|
7295 |
msgid "Download error: the server sent us a response which we did not understand."
|
7296 |
+
msgstr "Tải về lỗi: máy chủ gửi cho chúng tôi hồi đáp mà chúng tôi không hiểu."
|
7297 |
|
7298 |
#: src/addons/backblaze.php:225, src/addons/cloudfiles-enhanced.php:117,
|
7299 |
#: src/addons/migrator.php:890, src/addons/migrator.php:1187,
|
7313 |
#: src/methods/updraftvault.php:527, src/restorer.php:228,
|
7314 |
#: src/restorer.php:256, src/restorer.php:1921
|
7315 |
msgid "Error:"
|
7316 |
+
msgstr "Lỗi:"
|
7317 |
|
7318 |
#: src/admin.php:808
|
7319 |
msgid "calculating..."
|
7320 |
+
msgstr "Đang tính..."
|
7321 |
|
7322 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:68,
|
7323 |
#: src/templates/wp-admin/settings/tab-backups.php:70
|
7324 |
msgid "UpdraftPlus - Upload backup files"
|
7325 |
+
msgstr "UpdraftPlus - Tải lên tập tin sao lưu"
|
7326 |
|
7327 |
#: src/includes/class-filesystem-functions.php:65,
|
7328 |
#: src/templates/wp-admin/advanced/site-info.php:38
|
7329 |
msgid "refresh"
|
7330 |
+
msgstr "làm mới"
|
7331 |
|
7332 |
#: src/includes/class-filesystem-functions.php:86,
|
7333 |
#: src/templates/wp-admin/advanced/site-info.php:38
|
7358 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:59,
|
7359 |
#: src/templates/wp-admin/settings/tab-backups.php:63
|
7360 |
msgid "Opera web browser"
|
7361 |
+
msgstr "Trình duyệt web Opera"
|
7362 |
|
7363 |
#: src/templates/wp-admin/settings/downloading-and-restoring.php:47,
|
7364 |
#: src/templates/wp-admin/settings/tab-backups.php:51
|
7365 |
msgid "More tasks:"
|
7366 |
+
msgstr "Nhiều nhiệm vụ:"
|
7367 |
|
7368 |
#: src/admin.php:3114
|
7369 |
msgid "Download most recently modified log file"
|
7370 |
+
msgstr "Tải về tập tin báo cáo thay đổi mới nhất"
|
7371 |
|
7372 |
#: src/central/bootstrap.php:187
|
7373 |
msgid "(Nothing yet logged)"
|
7377 |
#: src/admin.php:3070, src/admin.php:3076,
|
7378 |
#: src/templates/wp-admin/settings/take-backup.php:64
|
7379 |
msgid "Last log message"
|
7380 |
+
msgstr "Báo cáo thay đổi mới nhất"
|
7381 |
|
7382 |
#: src/addons/migrator.php:271, src/admin.php:663, src/admin.php:850,
|
7383 |
#: src/admin.php:4170
|
7384 |
msgid "Restore"
|
7385 |
+
msgstr "Khôi Phục"
|
7386 |
|
7387 |
#: src/admin.php:842, src/templates/wp-admin/settings/take-backup.php:50
|
7388 |
msgid "Backup Now"
|
7389 |
+
msgstr "Sao Lưu Ngay"
|
7390 |
|
7391 |
#: src/templates/wp-admin/settings/take-backup.php:45
|
7392 |
msgid "Time now"
|
7401 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:75,
|
7402 |
#: src/templates/wp-admin/settings/take-backup.php:33
|
7403 |
msgid "Database"
|
7404 |
+
msgstr "Cơ sở dữ liệu"
|
7405 |
|
7406 |
#: src/admin.php:334, src/admin.php:5161,
|
7407 |
#: src/templates/wp-admin/settings/take-backup.php:23
|
7427 |
|
7428 |
#: src/templates/wp-admin/settings/take-backup.php:5
|
7429 |
msgid "JavaScript warning"
|
7430 |
+
msgstr "Cảnh báo JavaScript"
|
7431 |
|
7432 |
#: src/admin.php:828, src/admin.php:3151
|
7433 |
msgid "Delete Old Directories"
|
7434 |
+
msgstr "Xóa thư mục cũ"
|
7435 |
|
7436 |
#: src/admin.php:2638
|
7437 |
msgid "Current limit is:"
|
7439 |
|
7440 |
#: src/admin.php:2613
|
7441 |
msgid "Your backup has been restored."
|
7442 |
+
msgstr "Bản sao lưu của bạn đã được khôi phục."
|
7443 |
|
7444 |
#: src/templates/wp-admin/settings/header.php:26
|
7445 |
msgid "Version"
|
7446 |
+
msgstr "Phiên bản"
|
7447 |
|
7448 |
#: src/templates/wp-admin/settings/header.php:25
|
7449 |
msgid "Lead developer's homepage"
|
7455 |
|
7456 |
#: src/admin.php:5053
|
7457 |
msgid "Your settings have been wiped."
|
7458 |
+
msgstr "Các cài đặt của bạn đã được xóa."
|
7459 |
|
7460 |
#: src/admin.php:2573
|
7461 |
msgid "Backup directory successfully created."
|
7481 |
#: src/admin.php:2514, src/admin.php:2524, src/admin.php:2533,
|
7482 |
#: src/admin.php:2575, src/admin.php:3433
|
7483 |
msgid "Return to UpdraftPlus Configuration"
|
7484 |
+
msgstr "Quay trở lại UpdraftPlus"
|
7485 |
|
7486 |
#: src/admin.php:821, src/admin.php:2514, src/admin.php:2524,
|
7487 |
#: src/admin.php:2533, src/admin.php:2575, src/admin.php:3433,
|
7488 |
#: src/templates/wp-admin/settings/existing-backups-table.php:19,
|
7489 |
#: src/templates/wp-admin/settings/existing-backups-table.php:139
|
7490 |
msgid "Actions"
|
7491 |
+
msgstr "Tác vụ"
|
7492 |
|
7493 |
#: src/admin.php:2409
|
7494 |
msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
|
7496 |
|
7497 |
#: src/admin.php:2309
|
7498 |
msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
|
7499 |
+
msgstr "Định dạng sai tên tập tin - điều này không giống như tập tin được tạo bởi UpdraftPlus"
|
7500 |
|
7501 |
#: src/admin.php:2205
|
7502 |
msgid "No local copy present."
|
7504 |
|
7505 |
#: src/admin.php:2202
|
7506 |
msgid "Download in progress"
|
7507 |
+
msgstr "Tiến trình tải về"
|
7508 |
|
7509 |
#: src/admin.php:820, src/admin.php:2191
|
7510 |
msgid "File ready."
|
7511 |
+
msgstr "Tập tin sẵn sàng."
|
7512 |
|
7513 |
#: src/admin.php:2172
|
7514 |
msgid "Download failed"
|
7515 |
+
msgstr "Tải về thất bại"
|
7516 |
|
7517 |
#: src/addons/wp-cli.php:518, src/admin.php:818,
|
7518 |
#: src/class-updraftplus.php:1298, src/class-updraftplus.php:1342,
|
7523 |
#: src/methods/stream-base.php:219, src/restorer.php:2884,
|
7524 |
#: src/restorer.php:2909, src/restorer.php:2990, src/updraftplus.php:157
|
7525 |
msgid "Error"
|
7526 |
+
msgstr "Lỗi"
|
7527 |
|
7528 |
#: src/admin.php:1959
|
7529 |
msgid "Could not find that job - perhaps it has already finished?"
|
7531 |
|
7532 |
#: src/admin.php:1951
|
7533 |
msgid "Job deleted"
|
7534 |
+
msgstr "Công việc đã xóa"
|
7535 |
|
7536 |
#: src/admin.php:2050, src/includes/class-commands.php:833
|
7537 |
msgid "OK. You should soon see activity in the \"Last log message\" field below."
|
7538 |
+
msgstr "OK. Bạn sẽ sớm nhìn thấy \"Báo cáo thay đổi mới nhất\" trong trường bên dưới"
|
7539 |
|
7540 |
#: src/admin.php:895
|
7541 |
msgid "Nothing yet logged"
|
7543 |
|
7544 |
#: src/admin.php:1163
|
7545 |
msgid "Please consult this FAQ if you have problems backing up."
|
7546 |
+
msgstr "Vui lòng tham khảo FAQ nếu bạn gặp vấn đề sao lưu."
|
7547 |
|
7548 |
#: src/admin.php:1163
|
7549 |
msgid "Your website is hosted using the %s web server."
|
7569 |
#: src/templates/wp-admin/settings/tab-backups.php:27,
|
7570 |
#: src/udaddons/updraftplus-addons.php:259
|
7571 |
msgid "Warning"
|
7572 |
+
msgstr "Cảnh báo"
|
7573 |
|
7574 |
#: src/admin.php:1092
|
7575 |
msgid "Add-Ons / Pro Support"
|
7577 |
|
7578 |
#: src/admin.php:679, src/admin.php:1090, src/admin.php:2800
|
7579 |
msgid "Settings"
|
7580 |
+
msgstr "Thiết lập"
|
7581 |
|
7582 |
#: src/backup.php:261
|
7583 |
msgid "Could not create %s zip. Consult the log file for more information."
|
@@ -49,7 +49,7 @@ msgstr ""
|
|
49 |
msgid "(logs can be found in the UpdraftPlus settings page as normal)..."
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: src/addons/autobackup.php:344, src/addons/autobackup.php:439, src/admin.php:
|
53 |
msgid "Last log message"
|
54 |
msgstr ""
|
55 |
|
@@ -97,7 +97,7 @@ msgstr ""
|
|
97 |
msgid "now proceeding with the updates..."
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: src/addons/autobackup.php:1072, src/admin.php:
|
101 |
msgid "Be safe with an automatic backup"
|
102 |
msgstr ""
|
103 |
|
@@ -117,7 +117,7 @@ msgstr ""
|
|
117 |
msgid "%s Error"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: src/addons/azure.php:268, src/class-updraftplus.php:
|
121 |
msgid "File not found"
|
122 |
msgstr ""
|
123 |
|
@@ -145,11 +145,11 @@ msgstr ""
|
|
145 |
msgid "You must add the following as the authorised redirect URI in your Azure console (under \"API Settings\") when asked"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: src/addons/azure.php:601, src/addons/migrator.php:
|
149 |
msgid "Warning"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: src/addons/azure.php:601, src/admin.php:
|
153 |
msgid "Your web server's PHP installation does not included a <strong>required</strong> (for %s) module (%s). Please contact your web hosting provider's support and ask for them to enable it."
|
154 |
msgstr ""
|
155 |
|
@@ -225,11 +225,11 @@ msgstr ""
|
|
225 |
msgid "Azure Government"
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: src/addons/backblaze.php:205, src/admin.php:
|
229 |
msgid "Error: unexpected file read fail"
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: src/addons/backblaze.php:225, src/addons/cloudfiles-enhanced.php:117, src/addons/migrator.php:
|
233 |
msgid "Error:"
|
234 |
msgstr ""
|
235 |
|
@@ -597,7 +597,7 @@ msgstr ""
|
|
597 |
msgid "No refresh token was received from Google. This often means that you entered your client secret wrongly, or that you have not yet re-authenticated (below) since correcting it. Re-check it, then follow the link to authenticate again. Finally, if that does not work, then use expert mode to wipe all your settings, create a new Google client ID/secret, and start again."
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: src/addons/googlecloud.php:438, src/addons/migrator.php:
|
601 |
msgid "Error: %s"
|
602 |
msgstr ""
|
603 |
|
@@ -625,7 +625,7 @@ msgstr ""
|
|
625 |
msgid "However, subsequent access attempts failed:"
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: src/addons/googlecloud.php:718, src/addons/googlecloud.php:839, src/addons/onedrive.php:939, src/addons/sftp.php:591, src/addons/sftp.php:595, src/addons/wp-cli.php:
|
629 |
msgid "Success"
|
630 |
msgstr ""
|
631 |
|
@@ -641,7 +641,7 @@ msgstr ""
|
|
641 |
msgid "You must save and authenticate before you can test your settings."
|
642 |
msgstr ""
|
643 |
|
644 |
-
#: src/addons/googlecloud.php:776, src/addons/googlecloud.php:810, src/addons/googlecloud.php:816, src/addons/sftp.php:553, src/admin.php:
|
645 |
msgid "Failed"
|
646 |
msgstr ""
|
647 |
|
@@ -717,7 +717,7 @@ msgstr ""
|
|
717 |
msgid "Otherwise, you can leave it blank."
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: src/addons/googlecloud.php:1034, src/addons/migrator.php:
|
721 |
msgid "Go here for more information."
|
722 |
msgstr ""
|
723 |
|
@@ -773,51 +773,63 @@ msgstr ""
|
|
773 |
msgid "Supported backup plugins: %s"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: src/addons/importer.php:276, src/admin.php:
|
777 |
msgid "Backup created by: %s."
|
778 |
msgstr ""
|
779 |
|
780 |
-
#: src/addons/incremental.php:
|
781 |
msgid "(latest increment: %s)"
|
782 |
msgstr ""
|
783 |
|
784 |
-
#: src/addons/incremental.php:
|
785 |
msgid "Increments exist at: %s"
|
786 |
msgstr ""
|
787 |
|
788 |
-
#: src/addons/incremental.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
789 |
msgid "None"
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: src/addons/incremental.php:
|
793 |
msgid "Every hour"
|
794 |
msgstr ""
|
795 |
|
796 |
-
#: src/addons/incremental.php:
|
797 |
msgid "Every %s hours"
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: src/addons/incremental.php:
|
801 |
msgid "Daily"
|
802 |
msgstr ""
|
803 |
|
804 |
-
#: src/addons/incremental.php:
|
805 |
msgid "Weekly"
|
806 |
msgstr ""
|
807 |
|
808 |
-
#: src/addons/incremental.php:
|
809 |
msgid "Fortnightly"
|
810 |
msgstr ""
|
811 |
|
812 |
-
#: src/addons/incremental.php:
|
813 |
msgid "Monthly"
|
814 |
msgstr ""
|
815 |
|
816 |
-
#: src/addons/incremental.php:
|
817 |
msgid "And then add an incremental backup"
|
818 |
msgstr ""
|
819 |
|
820 |
-
#: src/addons/incremental.php:
|
821 |
msgid "Tell me more"
|
822 |
msgstr ""
|
823 |
|
@@ -841,7 +853,7 @@ msgstr ""
|
|
841 |
msgid "Please make sure that you have made a note of the password!"
|
842 |
msgstr ""
|
843 |
|
844 |
-
#: src/addons/lockadmin.php:171, src/addons/moredatabase.php:241, src/addons/sftp.php:459, src/addons/webdav.php:193, src/admin.php:
|
845 |
msgid "Password"
|
846 |
msgstr ""
|
847 |
|
@@ -913,361 +925,361 @@ msgstr ""
|
|
913 |
msgid "Read this article to see step-by-step how it's done."
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: src/addons/migrator.php:
|
917 |
msgid "back"
|
918 |
msgstr ""
|
919 |
|
920 |
-
#: src/addons/migrator.php:
|
921 |
msgid "Restore an existing backup set onto this site"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: src/addons/migrator.php:
|
925 |
msgid "To import a backup set, go to the \"Existing Backups\" section in the \"Backup/Restore\" tab"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: src/addons/migrator.php:
|
929 |
msgid "This site has no backups to restore from yet."
|
930 |
msgstr ""
|
931 |
|
932 |
-
#: src/addons/migrator.php:
|
933 |
msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
|
934 |
msgstr ""
|
935 |
|
936 |
-
#: src/addons/migrator.php:
|
937 |
msgid "Restore"
|
938 |
msgstr ""
|
939 |
|
940 |
-
#: src/addons/migrator.php:
|
941 |
msgid "For incremental backups, you will be able to choose which increments to restore at a later stage."
|
942 |
msgstr ""
|
943 |
|
944 |
-
#: src/addons/migrator.php:
|
945 |
msgid "Disabled this plugin: %s: re-activate it manually when you are ready."
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: src/addons/migrator.php:
|
949 |
msgid "Search / replace database"
|
950 |
msgstr ""
|
951 |
|
952 |
-
#: src/addons/migrator.php:
|
953 |
msgid "Search for"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: src/addons/migrator.php:
|
957 |
msgid "Replace with"
|
958 |
msgstr ""
|
959 |
|
960 |
-
#: src/addons/migrator.php:
|
961 |
msgid "Failure: No %s was given."
|
962 |
msgstr ""
|
963 |
|
964 |
-
#: src/addons/migrator.php:
|
965 |
msgid "search term"
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: src/addons/migrator.php:
|
969 |
msgid "Return to UpdraftPlus Configuration"
|
970 |
msgstr ""
|
971 |
|
972 |
-
#: src/addons/migrator.php:
|
973 |
msgid "This can easily destroy your site; so, use it with care!"
|
974 |
msgstr ""
|
975 |
|
976 |
-
#: src/addons/migrator.php:
|
977 |
msgid "A search/replace cannot be undone - are you sure you want to do this?"
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: src/addons/migrator.php:
|
981 |
msgid "Rows per batch"
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: src/addons/migrator.php:
|
985 |
msgid "These tables only"
|
986 |
msgstr ""
|
987 |
|
988 |
-
#: src/addons/migrator.php:
|
989 |
msgid "Enter a comma-separated list; otherwise, leave blank for all tables."
|
990 |
msgstr ""
|
991 |
|
992 |
-
#: src/addons/migrator.php:
|
993 |
msgid "Go"
|
994 |
msgstr ""
|
995 |
|
996 |
-
#: src/addons/migrator.php:
|
997 |
msgid "This looks like a migration (the backup is from a site with a different address/URL, %s)."
|
998 |
msgstr ""
|
999 |
|
1000 |
-
#: src/addons/migrator.php:
|
1001 |
msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use below search and replace to search/replace the site address so that the site can be visited without https."
|
1002 |
msgstr ""
|
1003 |
|
1004 |
-
#: src/addons/migrator.php:
|
1005 |
msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use below search and replace so that the non-https links are automatically replaced."
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: src/addons/migrator.php:
|
1009 |
msgid "you will want to use below search and replace site location in the database (migrate) to search/replace the site address."
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: src/addons/migrator.php:
|
1013 |
msgid "Processed plugin:"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: src/addons/migrator.php:
|
1017 |
msgid "Network activating theme:"
|
1018 |
msgstr ""
|
1019 |
|
1020 |
-
#: src/addons/migrator.php:
|
1021 |
msgid "You selected %s to be included in the restoration - this cannot / should not be done when importing a single site into a network."
|
1022 |
msgstr ""
|
1023 |
|
1024 |
-
#: src/addons/migrator.php:
|
1025 |
msgid "WordPress core"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
-
#: src/addons/migrator.php:
|
1029 |
msgid "other content from wp-content"
|
1030 |
msgstr ""
|
1031 |
|
1032 |
-
#: src/addons/migrator.php:
|
1033 |
msgid "Must-use plugins"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
-
#: src/addons/migrator.php:
|
1037 |
msgid "Importing a single site into a multisite install"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
-
#: src/addons/migrator.php:
|
1041 |
msgid "This feature requires %s version %s or later"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
-
#: src/addons/migrator.php:
|
1045 |
msgid "This feature is not compatible with %s"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
-
#: src/addons/migrator.php:
|
1049 |
msgid "Information needed to continue:"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
-
#: src/addons/migrator.php:
|
1053 |
msgid "Enter details for where this new site is to live within your multisite install:"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
-
#: src/addons/migrator.php:
|
1057 |
msgid "You must use lower-case letters or numbers for the site path, only."
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: src/addons/migrator.php:
|
1061 |
msgid "Attribute imported content to user"
|
1062 |
msgstr ""
|
1063 |
|
1064 |
-
#: src/addons/migrator.php:
|
1065 |
msgid "Database restoration options:"
|
1066 |
msgstr ""
|
1067 |
|
1068 |
-
#: src/addons/migrator.php:
|
1069 |
msgid "All references to the site location in the database will be replaced with your current site URL, which is: %s"
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: src/addons/migrator.php:
|
1073 |
msgid "Search and replace site location in the database (migrate)"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: src/addons/migrator.php:
|
1077 |
msgid "Migrated site (from UpdraftPlus)"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: src/addons/migrator.php:
|
1081 |
msgid "Required information for restoring this backup was not given (%s)"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
-
#: src/addons/migrator.php:
|
1085 |
msgid "New site:"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
-
#: src/addons/migrator.php:
|
1089 |
msgid "Error when creating new site at your chosen address:"
|
1090 |
msgstr ""
|
1091 |
|
1092 |
-
#: src/addons/migrator.php:
|
1093 |
msgid "Failed: the %s operation was not able to start."
|
1094 |
msgstr ""
|
1095 |
|
1096 |
-
#: src/addons/migrator.php:
|
1097 |
msgid "search and replace"
|
1098 |
msgstr ""
|
1099 |
|
1100 |
-
#: src/addons/migrator.php:
|
1101 |
msgid "Failed: we did not understand the result returned by the %s operation."
|
1102 |
msgstr ""
|
1103 |
|
1104 |
-
#: src/addons/migrator.php:
|
1105 |
msgid "Your .htaccess has an old site reference on line number %s. You should remove it manually."
|
1106 |
msgid_plural "Your .htaccess has an old site references on line numbers %s. You should remove them manually."
|
1107 |
msgstr[0] ""
|
1108 |
msgstr[1] ""
|
1109 |
|
1110 |
-
#: src/addons/migrator.php:
|
1111 |
msgid "Database: search and replace site URL"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
-
#: src/addons/migrator.php:
|
1115 |
msgid "Error: unexpected empty parameter (%s, %s)"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
-
#: src/addons/migrator.php:
|
1119 |
msgid "Nothing to do: the site URL is already: %s"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
-
#: src/addons/migrator.php:
|
1123 |
msgid "Warning: the database's site URL (%s) is different to what we expected (%s)"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
-
#: src/addons/migrator.php:
|
1127 |
msgid "Warning: the database's home URL (%s) is different to what we expected (%s)"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
-
#: src/addons/migrator.php:
|
1131 |
msgid "Could not get list of tables"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
-
#: src/addons/migrator.php:
|
1135 |
msgid "Search and replacing table:"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
-
#: src/addons/migrator.php:
|
1139 |
msgid "skipped (not in list)"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
-
#: src/addons/migrator.php:
|
1143 |
msgid "already done"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
-
#: src/addons/migrator.php:
|
1147 |
msgid "Tables examined:"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
-
#: src/addons/migrator.php:
|
1151 |
msgid "Rows examined:"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
-
#: src/addons/migrator.php:
|
1155 |
msgid "Changes made:"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
-
#: src/addons/migrator.php:
|
1159 |
msgid "SQL update commands run:"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
-
#: src/addons/migrator.php:
|
1163 |
msgid "Errors:"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
-
#: src/addons/migrator.php:
|
1167 |
msgid "Time taken (seconds):"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
-
#: src/addons/migrator.php:
|
1171 |
msgid "the database query being run was:"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
-
#: src/addons/migrator.php:
|
1175 |
msgid "rows: %d"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
-
#: src/addons/migrator.php:
|
1179 |
msgid "\"%s\" has no primary key, manual change needed on row %s."
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: src/addons/migrator.php:
|
1183 |
msgid "Send a backup to another site"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
-
#: src/addons/migrator.php:
|
1187 |
msgid "Add a site"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
-
#: src/addons/migrator.php:
|
1191 |
msgid "To add a site as a destination for sending to, enter that site's key below."
|
1192 |
msgstr ""
|
1193 |
|
1194 |
-
#: src/addons/migrator.php:
|
1195 |
msgid "Keys for a site are created in the section \"receive a backup from a remote site\"."
|
1196 |
msgstr ""
|
1197 |
|
1198 |
-
#: src/addons/migrator.php:
|
1199 |
msgid "So, to get the key for the remote site, open the 'Migrate Site' window on that site, and go to that section."
|
1200 |
msgstr ""
|
1201 |
|
1202 |
-
#: src/addons/migrator.php:
|
1203 |
msgid "How do I get a site's key?"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
-
#: src/addons/migrator.php:
|
1207 |
msgid "Site key"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
-
#: src/addons/migrator.php:
|
1211 |
msgid "Paste key here"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
-
#: src/addons/migrator.php:
|
1215 |
msgid "Add site"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
-
#: src/addons/migrator.php:
|
1219 |
msgid "Receive a backup from a remote site"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
-
#: src/addons/migrator.php:
|
1223 |
msgid "To allow another site to send a backup to this site, create a key below. When you are shown the key, then press the 'Migrate' button on the other (sending) site, and copy-and-paste the key over there (in the 'Send a backup to another site' section)."
|
1224 |
msgstr ""
|
1225 |
|
1226 |
-
#: src/addons/migrator.php:
|
1227 |
msgid "Create a key: give this key a unique name (e.g. indicate the site it is for), then press \"Create key\":"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
-
#: src/addons/migrator.php:
|
1231 |
msgid "Enter your chosen name"
|
1232 |
msgstr ""
|
1233 |
|
1234 |
-
#: src/addons/migrator.php:
|
1235 |
msgid "Key"
|
1236 |
msgstr ""
|
1237 |
|
1238 |
-
#: src/addons/migrator.php:
|
1239 |
msgid "Encryption key size:"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
-
#: src/addons/migrator.php:
|
1243 |
msgid "%s bits"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
-
#: src/addons/migrator.php:
|
1247 |
msgid "easy to break, fastest"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
-
#: src/addons/migrator.php:
|
1251 |
msgid "faster (possibility for slow PHP installs)"
|
1252 |
msgstr ""
|
1253 |
|
1254 |
-
#: src/addons/migrator.php:
|
1255 |
msgid "%s bytes"
|
1256 |
msgstr ""
|
1257 |
|
1258 |
-
#: src/addons/migrator.php:
|
1259 |
msgid "recommended"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
-
#: src/addons/migrator.php:
|
1263 |
msgid "slower, strongest"
|
1264 |
msgstr ""
|
1265 |
|
1266 |
-
#: src/addons/migrator.php:
|
1267 |
msgid "Create key"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: src/addons/migrator.php:
|
1271 |
msgid "Your new key:"
|
1272 |
msgstr ""
|
1273 |
|
@@ -1291,7 +1303,7 @@ msgstr ""
|
|
1291 |
msgid "database connection attempt failed"
|
1292 |
msgstr ""
|
1293 |
|
1294 |
-
#: src/addons/moredatabase.php:112, src/backup.php:
|
1295 |
msgid "Connection failed: check your access details, that the database server is up, and that the network connection is not firewalled."
|
1296 |
msgstr ""
|
1297 |
|
@@ -1303,7 +1315,7 @@ msgstr ""
|
|
1303 |
msgid "%s total table(s) found; %s with the indicated prefix."
|
1304 |
msgstr ""
|
1305 |
|
1306 |
-
#: src/addons/moredatabase.php:144, src/admin.php:
|
1307 |
msgid "Messages:"
|
1308 |
msgstr ""
|
1309 |
|
@@ -1347,7 +1359,7 @@ msgstr ""
|
|
1347 |
msgid "Username"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
-
#: src/addons/moredatabase.php:242, src/addons/reporting.php:
|
1351 |
msgid "Database"
|
1352 |
msgstr ""
|
1353 |
|
@@ -1404,7 +1416,7 @@ msgctxt "(verb)"
|
|
1404 |
msgid "Download"
|
1405 |
msgstr ""
|
1406 |
|
1407 |
-
#: src/addons/morefiles.php:129, src/addons/morefiles.php:130, src/addons/reporting.php:
|
1408 |
msgid "Contains:"
|
1409 |
msgstr ""
|
1410 |
|
@@ -1500,7 +1512,7 @@ msgstr ""
|
|
1500 |
msgid "Exclude these:"
|
1501 |
msgstr ""
|
1502 |
|
1503 |
-
#: src/addons/morefiles.php:476, src/admin.php:
|
1504 |
msgid "If entering multiple files/directories, then separate them with commas. For entities at the top level, you can use a * at the start or end of the entry as a wildcard."
|
1505 |
msgstr ""
|
1506 |
|
@@ -1696,119 +1708,119 @@ msgstr ""
|
|
1696 |
msgid "(You appear to be already authenticated)."
|
1697 |
msgstr ""
|
1698 |
|
1699 |
-
#: src/addons/reporting.php:
|
1700 |
msgid "Your label for this backup (optional)"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
-
#: src/addons/reporting.php:
|
1704 |
msgid "Backup of:"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: src/addons/reporting.php:
|
1708 |
msgid "%d errors, %d warnings"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
-
#: src/addons/reporting.php:
|
1712 |
msgid "%d hours, %d minutes, %d seconds"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: src/addons/reporting.php:
|
1716 |
msgid "Backup Report"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
-
#: src/addons/reporting.php:
|
1720 |
msgid "Backup made by %s"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: src/addons/reporting.php:
|
1724 |
msgid "Latest status:"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: src/addons/reporting.php:
|
1728 |
msgid "Backup began:"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
-
#: src/addons/reporting.php:
|
1732 |
msgid "Errors / warnings:"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
-
#: src/addons/reporting.php:
|
1736 |
msgid "Errors"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
-
#: src/addons/reporting.php:
|
1740 |
msgid "Warnings"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
-
#: src/addons/reporting.php:
|
1744 |
msgid "Note that warning messages are advisory - the backup process does not stop for them. Instead, they provide information that you might find useful, or that may indicate the source of a problem if the backup did not succeed."
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: src/addons/reporting.php:
|
1748 |
msgid "Time taken:"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: src/addons/reporting.php:
|
1752 |
msgid "Uploaded to:"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: src/addons/reporting.php:
|
1756 |
msgid "The log file has been attached to this email."
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: src/addons/reporting.php:
|
1760 |
msgid "Debugging information"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: src/addons/reporting.php:
|
1764 |
msgid "Use the \"Reporting\" section to configure the email addresses to be used."
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: src/addons/reporting.php:
|
1768 |
msgid "Email reports"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#: src/addons/reporting.php:
|
1772 |
msgid "Enter addresses here to have a report sent to them when a backup job finishes."
|
1773 |
msgstr ""
|
1774 |
|
1775 |
-
#: src/addons/reporting.php:
|
1776 |
msgid "Add another address..."
|
1777 |
msgstr ""
|
1778 |
|
1779 |
-
#: src/addons/reporting.php:
|
1780 |
msgid "Log all messages to syslog"
|
1781 |
msgstr ""
|
1782 |
|
1783 |
-
#: src/addons/reporting.php:
|
1784 |
msgid "Log all messages to syslog (only server admins are likely to want this)"
|
1785 |
msgstr ""
|
1786 |
|
1787 |
-
#: src/addons/reporting.php:
|
1788 |
msgid "To send to more than one address, separate each address with a comma."
|
1789 |
msgstr ""
|
1790 |
|
1791 |
-
#: src/addons/reporting.php:
|
1792 |
msgid "Send a report only when there are warnings/errors"
|
1793 |
msgstr ""
|
1794 |
|
1795 |
-
#: src/addons/reporting.php:
|
1796 |
msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
|
1797 |
msgstr ""
|
1798 |
|
1799 |
-
#: src/addons/reporting.php:
|
1800 |
msgid "When the Email storage method is enabled, also send the backup"
|
1801 |
msgstr ""
|
1802 |
|
1803 |
-
#: src/addons/reporting.php:
|
1804 |
msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive as a result UpdraftPlus will only send Database backups to email."
|
1805 |
msgstr ""
|
1806 |
|
1807 |
-
#: src/addons/reporting.php:
|
1808 |
msgid "Use this option to only send database backups when sending to email, and skip other components."
|
1809 |
msgstr ""
|
1810 |
|
1811 |
-
#: src/addons/reporting.php:
|
1812 |
msgid "Only email the database backup"
|
1813 |
msgstr ""
|
1814 |
|
@@ -2177,123 +2189,123 @@ msgstr ""
|
|
2177 |
msgid "Path"
|
2178 |
msgstr ""
|
2179 |
|
2180 |
-
#: src/addons/wp-cli.php:
|
2181 |
-
msgid "
|
2182 |
msgstr ""
|
2183 |
|
2184 |
-
#: src/addons/wp-cli.php:
|
2185 |
-
msgid "
|
2186 |
msgstr ""
|
2187 |
|
2188 |
-
#: src/addons/wp-cli.php:
|
2189 |
msgid "You have chosen to backup a database, but no tables have been selected"
|
2190 |
msgstr ""
|
2191 |
|
2192 |
-
#: src/addons/wp-cli.php:
|
2193 |
msgid "If you exclude both the database and the files, then you have excluded everything!"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
-
#: src/addons/wp-cli.php:
|
2197 |
msgid "Recently started backup job id: %s"
|
2198 |
msgstr ""
|
2199 |
|
2200 |
-
#: src/addons/wp-cli.php:
|
2201 |
msgid "Backup has been started successfully. You can see the last log message by running the following command: \"%s\""
|
2202 |
msgstr ""
|
2203 |
|
2204 |
-
#: src/addons/wp-cli.php:
|
2205 |
msgid "Invalid Job Id"
|
2206 |
msgstr ""
|
2207 |
|
2208 |
-
#: src/addons/wp-cli.php:
|
2209 |
msgid "Backup sent to remote site - not available for download."
|
2210 |
msgstr ""
|
2211 |
|
2212 |
-
#: src/addons/wp-cli.php:
|
2213 |
msgid "Site"
|
2214 |
msgstr ""
|
2215 |
|
2216 |
-
#: src/addons/wp-cli.php:
|
2217 |
msgid "No previous full backup found."
|
2218 |
msgstr ""
|
2219 |
|
2220 |
-
#: src/addons/wp-cli.php:
|
2221 |
msgid "Latest full backup found; identifier:"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: src/addons/wp-cli.php:
|
2225 |
msgid "unknown source"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: src/addons/wp-cli.php:
|
2229 |
msgid "Database (created by %s)"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
-
#: src/addons/wp-cli.php:
|
2233 |
msgid "External database"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
-
#: src/addons/wp-cli.php:
|
2237 |
msgid "Files and database WordPress backup (created by %s)"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
-
#: src/addons/wp-cli.php:
|
2241 |
msgid "Files backup (created by %s)"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
-
#: src/addons/wp-cli.php:
|
2245 |
msgid "Error"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
-
#: src/addons/wp-cli.php:
|
2249 |
msgid "Missing parameters"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
#: src/addons/wp-cli.php:
|
2253 |
msgid "Migration key created:"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
-
#: src/addons/wp-cli.php:
|
2257 |
msgid "No such backup set exists"
|
2258 |
msgstr ""
|
2259 |
|
2260 |
-
#: src/addons/wp-cli.php:
|
2261 |
msgid "UpdraftPlus Restoration: Progress"
|
2262 |
msgstr ""
|
2263 |
|
2264 |
-
#: src/addons/wp-cli.php:
|
2265 |
msgid "Follow this link to download the log file for this restoration (needed for any support requests)."
|
2266 |
msgstr ""
|
2267 |
|
2268 |
-
#: src/addons/wp-cli.php:
|
2269 |
msgid "Run this command to see the log file for this restoration (needed for any support requests)."
|
2270 |
msgstr ""
|
2271 |
|
2272 |
-
#: src/addons/wp-cli.php:
|
2273 |
msgid "This is not an incremental backup"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
-
#: src/addons/wp-cli.php:
|
2277 |
msgid "Final checks"
|
2278 |
msgstr ""
|
2279 |
|
2280 |
-
#: src/addons/wp-cli.php:
|
2281 |
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
|
2282 |
msgstr ""
|
2283 |
|
2284 |
-
#: src/addons/wp-cli.php:
|
2285 |
msgid "Error data:"
|
2286 |
msgstr ""
|
2287 |
|
2288 |
-
#: src/addons/wp-cli.php:
|
2289 |
msgid "Follow this link for more information"
|
2290 |
msgstr ""
|
2291 |
|
2292 |
-
#: src/addons/wp-cli.php:
|
2293 |
msgid "You have given the %1$s option. The %1$s is working with \"%2$s\" addon. Get the \"%2$s\" addon: %3$s"
|
2294 |
msgstr ""
|
2295 |
|
2296 |
-
#: src/addons/wp-cli.php:
|
2297 |
msgid "Why am I seeing this?"
|
2298 |
msgstr ""
|
2299 |
|
@@ -2309,11 +2321,11 @@ msgstr ""
|
|
2309 |
msgid "At the same time as the files backup"
|
2310 |
msgstr ""
|
2311 |
|
2312 |
-
#: src/admin.php:334, src/admin.php:
|
2313 |
msgid "Files"
|
2314 |
msgstr ""
|
2315 |
|
2316 |
-
#: src/admin.php:334, src/backup.php:
|
2317 |
msgid "Files and database"
|
2318 |
msgstr ""
|
2319 |
|
@@ -2337,15 +2349,15 @@ msgstr ""
|
|
2337 |
msgid "Backup"
|
2338 |
msgstr ""
|
2339 |
|
2340 |
-
#: src/admin.php:671, src/admin.php:
|
2341 |
msgid "Migrate / Clone"
|
2342 |
msgstr ""
|
2343 |
|
2344 |
-
#: src/admin.php:679, src/admin.php:
|
2345 |
msgid "Settings"
|
2346 |
msgstr ""
|
2347 |
|
2348 |
-
#: src/admin.php:687, src/admin.php:
|
2349 |
msgid "Advanced Tools"
|
2350 |
msgstr ""
|
2351 |
|
@@ -2417,15 +2429,15 @@ msgstr ""
|
|
2417 |
msgid "Error: the server sent us a response which we did not understand."
|
2418 |
msgstr ""
|
2419 |
|
2420 |
-
#: src/admin.php:819, src/admin.php:
|
2421 |
msgid "Existing Backups"
|
2422 |
msgstr ""
|
2423 |
|
2424 |
-
#: src/admin.php:820, src/admin.php:
|
2425 |
msgid "File ready."
|
2426 |
msgstr ""
|
2427 |
|
2428 |
-
#: src/admin.php:821, src/admin.php:
|
2429 |
msgid "Actions"
|
2430 |
msgstr ""
|
2431 |
|
@@ -2453,7 +2465,7 @@ msgstr ""
|
|
2453 |
msgid "PHP information"
|
2454 |
msgstr ""
|
2455 |
|
2456 |
-
#: src/admin.php:828, src/admin.php:
|
2457 |
msgid "Delete Old Directories"
|
2458 |
msgstr ""
|
2459 |
|
@@ -2461,7 +2473,7 @@ msgstr ""
|
|
2461 |
msgid "Raw backup history"
|
2462 |
msgstr ""
|
2463 |
|
2464 |
-
#: src/admin.php:830, src/admin.php:831, src/includes/class-backup-history.php:
|
2465 |
msgid "This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz))."
|
2466 |
msgstr ""
|
2467 |
|
@@ -2469,7 +2481,7 @@ msgstr ""
|
|
2469 |
msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
|
2470 |
msgstr ""
|
2471 |
|
2472 |
-
#: src/admin.php:831, src/includes/class-backup-history.php:
|
2473 |
msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
|
2474 |
msgstr ""
|
2475 |
|
@@ -2509,11 +2521,11 @@ msgstr ""
|
|
2509 |
msgid "The file was uploaded."
|
2510 |
msgstr ""
|
2511 |
|
2512 |
-
#: src/admin.php:842, src/templates/wp-admin/settings/take-backup.php:
|
2513 |
msgid "Backup Now"
|
2514 |
msgstr ""
|
2515 |
|
2516 |
-
#: src/admin.php:844, src/admin.php:
|
2517 |
msgid "Delete"
|
2518 |
msgstr ""
|
2519 |
|
@@ -2521,7 +2533,7 @@ msgstr ""
|
|
2521 |
msgid "Create"
|
2522 |
msgstr ""
|
2523 |
|
2524 |
-
#: src/admin.php:846, src/admin.php:
|
2525 |
msgid "Upload"
|
2526 |
msgstr ""
|
2527 |
|
@@ -2533,7 +2545,7 @@ msgstr ""
|
|
2533 |
msgid "Close"
|
2534 |
msgstr ""
|
2535 |
|
2536 |
-
#: src/admin.php:851, src/admin.php:
|
2537 |
msgid "Download log file"
|
2538 |
msgstr ""
|
2539 |
|
@@ -2545,7 +2557,7 @@ msgstr ""
|
|
2545 |
msgid "Saving..."
|
2546 |
msgstr ""
|
2547 |
|
2548 |
-
#: src/admin.php:855, src/admin.php:
|
2549 |
msgid "Connect"
|
2550 |
msgstr ""
|
2551 |
|
@@ -2601,7 +2613,7 @@ msgstr ""
|
|
2601 |
msgid "key name"
|
2602 |
msgstr ""
|
2603 |
|
2604 |
-
#: src/admin.php:870, src/templates/wp-admin/settings/existing-backups-table.php:
|
2605 |
msgid "Deleting..."
|
2606 |
msgstr ""
|
2607 |
|
@@ -2709,7 +2721,7 @@ msgstr ""
|
|
2709 |
msgid "Complete"
|
2710 |
msgstr ""
|
2711 |
|
2712 |
-
#: src/admin.php:905, src/admin.php:
|
2713 |
msgid "The backup has finished running"
|
2714 |
msgstr ""
|
2715 |
|
@@ -2770,7 +2782,7 @@ msgid "Please enter a valid URL e.g http://example.com"
|
|
2770 |
msgstr ""
|
2771 |
|
2772 |
#: src/admin.php:925
|
2773 |
-
msgid "Local backup upload has started; please check the
|
2774 |
msgstr ""
|
2775 |
|
2776 |
#: src/admin.php:926
|
@@ -2881,666 +2893,654 @@ msgstr ""
|
|
2881 |
msgid "UpdraftClone key is required."
|
2882 |
msgstr ""
|
2883 |
|
2884 |
-
#: src/admin.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2885 |
msgid "Add-Ons / Pro Support"
|
2886 |
msgstr ""
|
2887 |
|
2888 |
-
#: src/admin.php:
|
2889 |
msgid "An error occurred when fetching storage module options: "
|
2890 |
msgstr ""
|
2891 |
|
2892 |
-
#: src/admin.php:
|
2893 |
msgid "The 'Backup Now' button is disabled as your backup directory is not writable (go to the 'Settings' tab and find the relevant option)."
|
2894 |
msgstr ""
|
2895 |
|
2896 |
-
#: src/admin.php:
|
2897 |
msgid "Welcome to UpdraftPlus!"
|
2898 |
msgstr ""
|
2899 |
|
2900 |
-
#: src/admin.php:
|
2901 |
msgid "To make a backup, just press the Backup Now button."
|
2902 |
msgstr ""
|
2903 |
|
2904 |
-
#: src/admin.php:
|
2905 |
msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
|
2906 |
msgstr ""
|
2907 |
|
2908 |
-
#: src/admin.php:
|
2909 |
msgid "The amount of time allowed for WordPress plugins to run is very low (%s seconds) - you should increase it to avoid backup failures due to time-outs (consult your web hosting company for more help - it is the max_execution_time PHP setting; the recommended value is %s seconds or more)"
|
2910 |
msgstr ""
|
2911 |
|
2912 |
-
#: src/admin.php:
|
2913 |
msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even "Backup Now") unless either you have set up a facility to call the scheduler manually, or until it is enabled."
|
2914 |
msgstr ""
|
2915 |
|
2916 |
-
#: src/admin.php:
|
2917 |
msgid "You have less than %s of free disk space on the disk which UpdraftPlus is configured to use to create backups. UpdraftPlus could well run out of space. Contact your the operator of your server (e.g. your web hosting company) to resolve this issue."
|
2918 |
msgstr ""
|
2919 |
|
2920 |
-
#: src/admin.php:
|
2921 |
msgid "UpdraftPlus does not officially support versions of WordPress before %s. It may work for you, but if it does not, then please be aware that no support is available until you upgrade WordPress."
|
2922 |
msgstr ""
|
2923 |
|
2924 |
-
#: src/admin.php:
|
2925 |
msgid "Your website is hosted using the %s web server."
|
2926 |
msgstr ""
|
2927 |
|
2928 |
-
#: src/admin.php:
|
2929 |
msgid "Please consult this FAQ if you have problems backing up."
|
2930 |
msgstr ""
|
2931 |
|
2932 |
-
#: src/admin.php:
|
2933 |
msgid "Notice"
|
2934 |
msgstr ""
|
2935 |
|
2936 |
-
#: src/admin.php:
|
2937 |
msgid "UpdraftPlus's debug mode is on. You may see debugging notices on this page not just from UpdraftPlus, but from any other plugin installed. Please try to make sure that the notice you are seeing is from UpdraftPlus before you raise a support request."
|
2938 |
msgstr ""
|
2939 |
|
2940 |
-
#: src/admin.php:
|
2941 |
msgid "WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working."
|
2942 |
msgstr ""
|
2943 |
|
2944 |
-
#: src/admin.php:
|
2945 |
msgid "Read this page for a guide to possible causes and how to fix it."
|
2946 |
msgstr ""
|
2947 |
|
2948 |
-
#: src/admin.php:
|
2949 |
msgid "UpdraftPlus notice:"
|
2950 |
msgstr ""
|
2951 |
|
2952 |
-
#: src/admin.php:
|
2953 |
msgid "%s has been chosen for remote storage, but you are not currently connected."
|
2954 |
msgstr ""
|
2955 |
|
2956 |
-
#: src/admin.php:
|
2957 |
msgid "Go to the remote storage settings in order to connect."
|
2958 |
msgstr ""
|
2959 |
|
2960 |
-
#: src/admin.php:
|
2961 |
msgid "Error: invalid path"
|
2962 |
msgstr ""
|
2963 |
|
2964 |
-
#: src/admin.php:
|
2965 |
msgid "Backup set not found"
|
2966 |
msgstr ""
|
2967 |
|
2968 |
-
#: src/admin.php:
|
2969 |
msgid "Did not know how to delete from this cloud service."
|
2970 |
msgstr ""
|
2971 |
|
2972 |
-
#: src/admin.php:
|
2973 |
msgid "Backup sets removed:"
|
2974 |
msgstr ""
|
2975 |
|
2976 |
-
#: src/admin.php:
|
2977 |
msgid "Local files deleted:"
|
2978 |
msgstr ""
|
2979 |
|
2980 |
-
#: src/admin.php:
|
2981 |
msgid "Remote files deleted:"
|
2982 |
msgstr ""
|
2983 |
|
2984 |
-
#: src/admin.php:
|
2985 |
msgid "Job deleted"
|
2986 |
msgstr ""
|
2987 |
|
2988 |
-
#: src/admin.php:
|
2989 |
msgid "Could not find that job - perhaps it has already finished?"
|
2990 |
msgstr ""
|
2991 |
|
2992 |
-
#: src/admin.php:
|
2993 |
msgid "Start backup"
|
2994 |
msgstr ""
|
2995 |
|
2996 |
-
#: src/admin.php:
|
2997 |
msgid "OK. You should soon see activity in the \"Last log message\" field below."
|
2998 |
msgstr ""
|
2999 |
|
3000 |
-
#: src/admin.php:
|
3001 |
msgid "The log file could not be read."
|
3002 |
msgstr ""
|
3003 |
|
3004 |
-
#: src/admin.php:
|
3005 |
msgid "Download failed"
|
3006 |
msgstr ""
|
3007 |
|
3008 |
-
#: src/admin.php:
|
3009 |
msgid "Download in progress"
|
3010 |
msgstr ""
|
3011 |
|
3012 |
-
#: src/admin.php:
|
3013 |
msgid "No local copy present."
|
3014 |
msgstr ""
|
3015 |
|
3016 |
-
#: src/admin.php:
|
3017 |
msgid "Backup directory (%s) is not writable, or does not exist."
|
3018 |
msgstr ""
|
3019 |
|
3020 |
-
#: src/admin.php:
|
3021 |
msgid "You will find more information about this in the Settings section."
|
3022 |
msgstr ""
|
3023 |
|
3024 |
-
#: src/admin.php:
|
3025 |
msgid "This file could not be uploaded"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
-
#: src/admin.php:
|
3029 |
msgid "This backup was created by %s, and can be imported."
|
3030 |
msgstr ""
|
3031 |
|
3032 |
-
#: src/admin.php:
|
3033 |
msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
|
3034 |
msgstr ""
|
3035 |
|
3036 |
-
#: src/admin.php:
|
3037 |
msgid "This looks like a file created by UpdraftPlus, but this install does not know about this type of object: %s. Perhaps you need to install an add-on?"
|
3038 |
msgstr ""
|
3039 |
|
3040 |
-
#: src/admin.php:
|
3041 |
msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
|
3042 |
msgstr ""
|
3043 |
|
3044 |
-
#: src/admin.php:
|
3045 |
msgid "Sufficient information about the in-progress restoration operation could not be found."
|
3046 |
msgstr ""
|
3047 |
|
3048 |
-
#: src/admin.php:
|
3049 |
msgid "Backup directory could not be created"
|
3050 |
msgstr ""
|
3051 |
|
3052 |
-
#: src/admin.php:
|
3053 |
msgid "Backup directory successfully created."
|
3054 |
msgstr ""
|
3055 |
|
3056 |
-
#: src/admin.php:
|
3057 |
msgid "Warning:"
|
3058 |
msgstr ""
|
3059 |
|
3060 |
-
#: src/admin.php:
|
3061 |
msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
|
3062 |
msgstr ""
|
3063 |
|
3064 |
-
#: src/admin.php:
|
3065 |
msgid "The UpdraftPlus directory in wp-content/plugins has white-space in it; WordPress does not like this. You should rename the directory to wp-content/plugins/updraftplus to fix this problem."
|
3066 |
msgstr ""
|
3067 |
|
3068 |
-
#: src/admin.php:
|
3069 |
msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
|
3070 |
msgstr ""
|
3071 |
|
3072 |
-
#: src/admin.php:
|
3073 |
msgid "To fix this problem go here."
|
3074 |
msgstr ""
|
3075 |
|
3076 |
-
#: src/admin.php:
|
3077 |
msgid "For even more features and personal support, check out "
|
3078 |
msgstr ""
|
3079 |
|
3080 |
-
#: src/admin.php:
|
3081 |
msgid "Your backup has been restored."
|
3082 |
msgstr ""
|
3083 |
|
3084 |
-
#: src/admin.php:
|
3085 |
msgid "Your PHP memory limit (set by your web hosting company) is very low. UpdraftPlus attempted to raise it but was unsuccessful. This plugin may struggle with a memory limit of less than 64 Mb - especially if you have very large files uploaded (though on the other hand, many sites will be successful with a 32Mb limit - your experience may vary)."
|
3086 |
msgstr ""
|
3087 |
|
3088 |
-
#: src/admin.php:
|
3089 |
msgid "Current limit is:"
|
3090 |
msgstr ""
|
3091 |
|
3092 |
-
#: src/admin.php:
|
3093 |
msgid "Backup Contents And Schedule"
|
3094 |
msgstr ""
|
3095 |
|
3096 |
-
#: src/admin.php:
|
3097 |
msgid "Backup / Restore"
|
3098 |
msgstr ""
|
3099 |
|
3100 |
-
#: src/admin.php:
|
3101 |
msgid "Premium / Extensions"
|
3102 |
msgstr ""
|
3103 |
|
3104 |
-
#: src/admin.php:
|
3105 |
msgid "%s minutes, %s seconds"
|
3106 |
msgstr ""
|
3107 |
|
3108 |
-
#: src/admin.php:
|
3109 |
msgid "Unfinished restoration"
|
3110 |
msgstr ""
|
3111 |
|
3112 |
-
#: src/admin.php:
|
3113 |
msgid "You have an unfinished restoration operation, begun %s ago."
|
3114 |
msgstr ""
|
3115 |
|
3116 |
-
#: src/admin.php:
|
3117 |
msgid "Continue restoration"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
-
#: src/admin.php:
|
3121 |
msgid "Dismiss"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
-
#: src/admin.php:
|
3125 |
msgid "Not yet got an account (it's free)? Go get one!"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
-
#: src/admin.php:
|
3129 |
msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
|
3130 |
msgstr ""
|
3131 |
|
3132 |
-
#: src/admin.php:
|
3133 |
msgid "Processing"
|
3134 |
msgstr ""
|
3135 |
|
3136 |
-
#: src/admin.php:
|
3137 |
msgid "Connect with your UpdraftPlus.Com account"
|
3138 |
msgstr ""
|
3139 |
|
3140 |
-
#: src/admin.php:
|
3141 |
msgid "Email"
|
3142 |
msgstr ""
|
3143 |
|
3144 |
-
#: src/admin.php:
|
3145 |
msgid "Forgotten your details?"
|
3146 |
msgstr ""
|
3147 |
|
3148 |
-
#: src/admin.php:
|
3149 |
msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
|
3150 |
msgstr ""
|
3151 |
|
3152 |
-
#: src/admin.php:
|
3153 |
msgid "One Time Password (check your OTP app to get this password)"
|
3154 |
msgstr ""
|
3155 |
|
3156 |
-
#: src/admin.php:
|
3157 |
-
msgid "Include the database in the backup"
|
3158 |
-
msgstr ""
|
3159 |
-
|
3160 |
-
#: src/admin.php:3022
|
3161 |
-
msgid "All WordPress tables will be backed up."
|
3162 |
-
msgstr ""
|
3163 |
-
|
3164 |
-
#: src/admin.php:3022
|
3165 |
-
msgid "With UpdraftPlus Premium, you can choose to backup non-WordPress tables, backup only specified tables, and backup other databases too."
|
3166 |
-
msgstr ""
|
3167 |
-
|
3168 |
-
#: src/admin.php:3030
|
3169 |
-
msgid "Include any files in the backup"
|
3170 |
-
msgstr ""
|
3171 |
-
|
3172 |
-
#: src/admin.php:3032
|
3173 |
-
msgid "Your saved settings also affect what is backed up - e.g. files excluded."
|
3174 |
-
msgstr ""
|
3175 |
-
|
3176 |
-
#: src/admin.php:3036, src/admin.php:3961, src/templates/wp-admin/settings/existing-backups-table.php:73, src/templates/wp-admin/settings/existing-backups-table.php:76
|
3177 |
-
msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
|
3178 |
-
msgstr ""
|
3179 |
-
|
3180 |
-
#: src/admin.php:3087
|
3181 |
msgid "Latest UpdraftPlus.com news:"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
-
#: src/admin.php:
|
3185 |
msgid "Download most recently modified log file"
|
3186 |
msgstr ""
|
3187 |
|
3188 |
-
#: src/admin.php:
|
3189 |
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old). You should press this button to delete them as soon as you have verified that the restoration worked."
|
3190 |
msgstr ""
|
3191 |
|
3192 |
-
#: src/admin.php:
|
3193 |
msgid "View Log"
|
3194 |
msgstr ""
|
3195 |
|
3196 |
-
#: src/admin.php:
|
3197 |
msgid "Backup begun"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
-
#: src/admin.php:
|
3201 |
msgid "Creating file backup zips"
|
3202 |
msgstr ""
|
3203 |
|
3204 |
-
#: src/admin.php:
|
3205 |
msgid "Created file backup zips"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
-
#: src/admin.php:
|
3209 |
msgid "Clone server being provisioned and booted (can take several minutes)"
|
3210 |
msgstr ""
|
3211 |
|
3212 |
-
#: src/admin.php:
|
3213 |
msgid "Uploading files to remote storage"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
-
#: src/admin.php:
|
3217 |
msgid "Sending files to remote site"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
-
#: src/admin.php:
|
3221 |
msgid "(%s%%, file %s of %s)"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
-
#: src/admin.php:
|
3225 |
msgid "Pruning old backup sets"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
-
#: src/admin.php:
|
3229 |
msgid "Waiting until scheduled time to retry because of errors"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
-
#: src/admin.php:
|
3233 |
msgid "Backup finished"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
-
#: src/admin.php:
|
3237 |
msgid "Created database backup"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
-
#: src/admin.php:
|
3241 |
msgid "Creating database backup"
|
3242 |
msgstr ""
|
3243 |
|
3244 |
-
#: src/admin.php:
|
3245 |
msgid "table: %s"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
-
#: src/admin.php:
|
3249 |
msgid "Encrypting database"
|
3250 |
msgstr ""
|
3251 |
|
3252 |
-
#: src/admin.php:
|
3253 |
msgid "Encrypted database"
|
3254 |
msgstr ""
|
3255 |
|
3256 |
-
#: src/admin.php:
|
3257 |
msgid "Unknown"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
-
#: src/admin.php:
|
3261 |
msgid "next resumption: %d (after %ss)"
|
3262 |
msgstr ""
|
3263 |
|
3264 |
-
#: src/admin.php:
|
3265 |
msgid "last activity: %ss ago"
|
3266 |
msgstr ""
|
3267 |
|
3268 |
-
#: src/admin.php:
|
3269 |
msgid "Job ID: %s"
|
3270 |
msgstr ""
|
3271 |
|
3272 |
-
#: src/admin.php:
|
3273 |
msgid "Warning: %s"
|
3274 |
msgstr ""
|
3275 |
|
3276 |
-
#: src/admin.php:
|
3277 |
msgid "show log"
|
3278 |
msgstr ""
|
3279 |
|
3280 |
-
#: src/admin.php:
|
3281 |
msgid "Note: the progress bar below is based on stages, NOT time. Do not stop the backup simply because it seems to have remained in the same place for a while - that is normal."
|
3282 |
msgstr ""
|
3283 |
|
3284 |
-
#: src/admin.php:
|
3285 |
msgid "stop"
|
3286 |
msgstr ""
|
3287 |
|
3288 |
-
#: src/admin.php:
|
3289 |
msgid "Remove old directories"
|
3290 |
msgstr ""
|
3291 |
|
3292 |
-
#: src/admin.php:
|
3293 |
msgid "Old directories successfully removed."
|
3294 |
msgstr ""
|
3295 |
|
3296 |
-
#: src/admin.php:
|
3297 |
msgid "Old directory removal failed for some reason. You may want to do this manually."
|
3298 |
msgstr ""
|
3299 |
|
3300 |
-
#: src/admin.php:
|
3301 |
msgid "OK"
|
3302 |
msgstr ""
|
3303 |
|
3304 |
-
#: src/admin.php:
|
3305 |
msgid "The request to the filesystem to create the directory failed."
|
3306 |
msgstr ""
|
3307 |
|
3308 |
-
#: src/admin.php:
|
3309 |
msgid "The folder was created, but we had to change its file permissions to 777 (world-writable) to be able to write to it. You should check with your hosting provider that this will not cause any problems"
|
3310 |
msgstr ""
|
3311 |
|
3312 |
-
#: src/admin.php:
|
3313 |
msgid "The folder exists, but your webserver does not have permission to write to it."
|
3314 |
msgstr ""
|
3315 |
|
3316 |
-
#: src/admin.php:
|
3317 |
msgid "You will need to consult with your web hosting provider to find out how to set permissions for a WordPress plugin to write to the directory."
|
3318 |
msgstr ""
|
3319 |
|
3320 |
-
#: src/admin.php:
|
3321 |
msgid "incremental backup; base backup: %s"
|
3322 |
msgstr ""
|
3323 |
|
3324 |
-
#: src/admin.php:
|
3325 |
msgid "No backup has been completed"
|
3326 |
msgstr ""
|
3327 |
|
3328 |
-
#: src/admin.php:
|
3329 |
msgctxt "i.e. Non-automatic"
|
3330 |
msgid "Manual"
|
3331 |
msgstr ""
|
3332 |
|
3333 |
-
#: src/admin.php:
|
3334 |
msgid "Backup directory specified is writable, which is good."
|
3335 |
msgstr ""
|
3336 |
|
3337 |
-
#: src/admin.php:
|
3338 |
msgid "Backup directory specified does <b>not</b> exist."
|
3339 |
msgstr ""
|
3340 |
|
3341 |
-
#: src/admin.php:
|
3342 |
msgid "Backup directory specified exists, but is <b>not</b> writable."
|
3343 |
msgstr ""
|
3344 |
|
3345 |
-
#: src/admin.php:
|
3346 |
msgid "Follow this link to attempt to create the directory and set the permissions"
|
3347 |
msgstr ""
|
3348 |
|
3349 |
-
#: src/admin.php:
|
3350 |
msgid "or, to reset this option"
|
3351 |
msgstr ""
|
3352 |
|
3353 |
-
#: src/admin.php:
|
3354 |
msgid "press here"
|
3355 |
msgstr ""
|
3356 |
|
3357 |
-
#: src/admin.php:
|
3358 |
msgid "If that is unsuccessful check the permissions on your server or change it to another directory that is writable by your web server process."
|
3359 |
msgstr ""
|
3360 |
|
3361 |
-
#: src/admin.php:
|
3362 |
msgid "Your wp-content directory server path: %s"
|
3363 |
msgstr ""
|
3364 |
|
3365 |
-
#: src/admin.php:
|
3366 |
msgid "Any other directories found inside wp-content"
|
3367 |
msgstr ""
|
3368 |
|
3369 |
-
#: src/admin.php:
|
3370 |
msgid "Exclude these from"
|
3371 |
msgstr ""
|
3372 |
|
3373 |
-
#: src/admin.php:
|
3374 |
msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
|
3375 |
msgstr ""
|
3376 |
|
3377 |
-
#: src/admin.php:
|
3378 |
msgid "Your web server's PHP/Curl installation does not support https access. We cannot access %s without this support. Please contact your web hosting provider's support. %s <strong>requires</strong> Curl+https. Please do not file any support requests; there is no alternative."
|
3379 |
msgstr ""
|
3380 |
|
3381 |
-
#: src/admin.php:
|
3382 |
msgid "Good news: Your site's communications with %s can be encrypted. If you see any errors to do with encryption, then look in the 'Expert Settings' for more help."
|
3383 |
msgstr ""
|
3384 |
|
3385 |
-
#: src/admin.php:
|
|
|
|
|
|
|
|
|
3386 |
msgid "Total backup size:"
|
3387 |
msgstr ""
|
3388 |
|
3389 |
-
#: src/admin.php:
|
3390 |
msgid "Backup created by unknown source (%s) - cannot be restored."
|
3391 |
msgstr ""
|
3392 |
|
3393 |
-
#: src/admin.php:
|
3394 |
msgid "Press here to download or browse"
|
3395 |
msgstr ""
|
3396 |
|
3397 |
-
#: src/admin.php:
|
3398 |
msgid "(%d archive(s) in set)."
|
3399 |
msgstr ""
|
3400 |
|
3401 |
-
#: src/admin.php:
|
3402 |
msgid "You appear to be missing one or more archives from this multi-archive set."
|
3403 |
msgstr ""
|
3404 |
|
3405 |
-
#: src/admin.php:
|
3406 |
msgid "(Not finished)"
|
3407 |
msgstr ""
|
3408 |
|
3409 |
-
#: src/admin.php:
|
3410 |
msgid "If you are seeing more backups than you expect, then it is probably because the deletion of old backup sets does not happen until a fresh backup completes."
|
3411 |
msgstr ""
|
3412 |
|
3413 |
-
#: src/admin.php:
|
3414 |
msgid "(backup set imported from remote location)"
|
3415 |
msgstr ""
|
3416 |
|
3417 |
-
#: src/admin.php:
|
3418 |
msgid "After pressing this button, you will be given the option to choose which components you wish to restore"
|
3419 |
msgstr ""
|
3420 |
|
3421 |
-
#: src/admin.php:
|
3422 |
msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
|
3423 |
msgstr ""
|
3424 |
|
3425 |
-
#: src/admin.php:
|
3426 |
msgid "Delete this backup set"
|
3427 |
msgstr ""
|
3428 |
|
3429 |
-
#: src/admin.php:
|
3430 |
msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
|
3431 |
msgstr ""
|
3432 |
|
3433 |
-
#: src/admin.php:
|
3434 |
msgid "Backup does not exist in the backup history"
|
3435 |
msgstr ""
|
3436 |
|
3437 |
-
#: src/admin.php:
|
3438 |
msgid "ABORT: Could not find the information on which entities to restore."
|
3439 |
msgstr ""
|
3440 |
|
3441 |
-
#: src/admin.php:
|
3442 |
msgid "If making a request for support, please include this information:"
|
3443 |
msgstr ""
|
3444 |
|
3445 |
-
#: src/admin.php:
|
3446 |
msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
|
3447 |
msgstr ""
|
3448 |
|
3449 |
-
#: src/admin.php:
|
3450 |
msgid "settings"
|
3451 |
msgstr ""
|
3452 |
|
3453 |
-
#: src/admin.php:
|
3454 |
msgid "Not got any remote storage?"
|
3455 |
msgstr ""
|
3456 |
|
3457 |
-
#: src/admin.php:
|
3458 |
msgid "Check out UpdraftPlus Vault."
|
3459 |
msgstr ""
|
3460 |
|
3461 |
-
#: src/admin.php:
|
3462 |
msgid "Send this backup to remote storage"
|
3463 |
msgstr ""
|
3464 |
|
3465 |
-
#: src/admin.php:
|
3466 |
msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
|
3467 |
msgstr ""
|
3468 |
|
3469 |
-
#: src/admin.php:
|
3470 |
msgid "This button is disabled because your backup directory is not writable (see the settings)."
|
3471 |
msgstr ""
|
3472 |
|
3473 |
-
#: src/admin.php:
|
3474 |
msgid "Your settings have been saved."
|
3475 |
msgstr ""
|
3476 |
|
3477 |
-
#: src/admin.php:
|
3478 |
msgid "Your settings failed to save. Please refresh the settings page and try again"
|
3479 |
msgstr ""
|
3480 |
|
3481 |
-
#: src/admin.php:
|
3482 |
msgid "authentication error"
|
3483 |
msgstr ""
|
3484 |
|
3485 |
-
#: src/admin.php:
|
3486 |
msgid "Remote storage method and instance id are required for authentication."
|
3487 |
msgstr ""
|
3488 |
|
3489 |
-
#: src/admin.php:
|
3490 |
msgid "Your settings have been wiped."
|
3491 |
msgstr ""
|
3492 |
|
3493 |
-
#: src/admin.php:
|
3494 |
msgid "Known backups (raw)"
|
3495 |
msgstr ""
|
3496 |
|
3497 |
-
#: src/admin.php:
|
3498 |
msgid "Options (raw)"
|
3499 |
msgstr ""
|
3500 |
|
3501 |
-
#: src/admin.php:
|
3502 |
msgid "Value"
|
3503 |
msgstr ""
|
3504 |
|
3505 |
-
#: src/admin.php:
|
3506 |
msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
|
3507 |
msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
|
3508 |
msgstr[0] ""
|
3509 |
msgstr[1] ""
|
3510 |
|
3511 |
-
#: src/admin.php:
|
3512 |
msgid "%s version:"
|
3513 |
msgstr ""
|
3514 |
|
3515 |
-
#: src/admin.php:
|
3516 |
msgid "Clone region:"
|
3517 |
msgstr ""
|
3518 |
|
3519 |
-
#: src/admin.php:
|
3520 |
msgid "Forbid non-administrators to login to WordPress on your clone"
|
3521 |
msgstr ""
|
3522 |
|
3523 |
-
#: src/admin.php:
|
3524 |
msgid "(current version)"
|
3525 |
msgstr ""
|
3526 |
|
3527 |
-
#: src/admin.php:
|
3528 |
msgid "Your clone has started and will be available at the following URLs once it is ready."
|
3529 |
msgstr ""
|
3530 |
|
3531 |
-
#: src/admin.php:
|
3532 |
msgid "Front page:"
|
3533 |
msgstr ""
|
3534 |
|
3535 |
-
#: src/admin.php:
|
3536 |
msgid "Dashboard:"
|
3537 |
msgstr ""
|
3538 |
|
3539 |
-
#: src/admin.php:
|
3540 |
msgid "You can find your temporary clone information in your updraftplus.com account here."
|
3541 |
msgstr ""
|
3542 |
|
3543 |
-
#: src/admin.php:
|
3544 |
msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
|
3545 |
msgstr ""
|
3546 |
|
@@ -3552,163 +3552,163 @@ msgstr ""
|
|
3552 |
msgid "Could not create %s zip. Consult the log file for more information."
|
3553 |
msgstr ""
|
3554 |
|
3555 |
-
#: src/backup.php:450, src/backup.php:
|
3556 |
msgid "A PHP exception (%s) has occurred: %s"
|
3557 |
msgstr ""
|
3558 |
|
3559 |
-
#: src/backup.php:456, src/backup.php:
|
3560 |
msgid "A PHP fatal error (%s) has occurred: %s"
|
3561 |
msgstr ""
|
3562 |
|
3563 |
-
#: src/backup.php:
|
3564 |
msgid "Full backup"
|
3565 |
msgstr ""
|
3566 |
|
3567 |
-
#: src/backup.php:
|
3568 |
msgid "Incremental"
|
3569 |
msgstr ""
|
3570 |
|
3571 |
-
#: src/backup.php:
|
3572 |
msgid "The backup was aborted by the user"
|
3573 |
msgstr ""
|
3574 |
|
3575 |
-
#: src/backup.php:
|
3576 |
msgid "Files (database backup has not completed)"
|
3577 |
msgstr ""
|
3578 |
|
3579 |
-
#: src/backup.php:
|
3580 |
msgid "Files only (database was not part of this particular schedule)"
|
3581 |
msgstr ""
|
3582 |
|
3583 |
-
#: src/backup.php:
|
3584 |
msgid "Database (files backup has not completed)"
|
3585 |
msgstr ""
|
3586 |
|
3587 |
-
#: src/backup.php:
|
3588 |
msgid "Database only (files were not part of this particular schedule)"
|
3589 |
msgstr ""
|
3590 |
|
3591 |
-
#: src/backup.php:
|
3592 |
msgid "Unknown/unexpected error - please raise a support request"
|
3593 |
msgstr ""
|
3594 |
|
3595 |
-
#: src/backup.php:
|
3596 |
msgid "Errors encountered:"
|
3597 |
msgstr ""
|
3598 |
|
3599 |
-
#: src/backup.php:
|
3600 |
msgid "Warnings encountered:"
|
3601 |
msgstr ""
|
3602 |
|
3603 |
-
#: src/backup.php:
|
3604 |
msgid "Backed up: %s"
|
3605 |
msgstr ""
|
3606 |
|
3607 |
-
#: src/backup.php:
|
3608 |
msgid "Email reports created by UpdraftPlus (free edition) bring you the latest UpdraftPlus.com news"
|
3609 |
msgstr ""
|
3610 |
|
3611 |
-
#: src/backup.php:
|
3612 |
msgid "read more at %s"
|
3613 |
msgstr ""
|
3614 |
|
3615 |
-
#: src/backup.php:
|
3616 |
msgid "WordPress backup is complete"
|
3617 |
msgstr ""
|
3618 |
|
3619 |
-
#: src/backup.php:
|
3620 |
msgid "Backup contains:"
|
3621 |
msgstr ""
|
3622 |
|
3623 |
-
#: src/backup.php:
|
3624 |
msgid "database connection attempt failed."
|
3625 |
msgstr ""
|
3626 |
|
3627 |
-
#: src/backup.php:
|
3628 |
msgid "please wait for the rescheduled attempt"
|
3629 |
msgstr ""
|
3630 |
|
3631 |
-
#: src/backup.php:
|
3632 |
msgid "No database tables found"
|
3633 |
msgstr ""
|
3634 |
|
3635 |
-
#: src/backup.php:
|
3636 |
msgid "The backup directory is not writable (or disk space is full) - the database backup is expected to shortly fail."
|
3637 |
msgstr ""
|
3638 |
|
3639 |
-
#: src/backup.php:
|
3640 |
msgid "Table %s has very many rows (%s) - we hope your web hosting company gives you enough resources to dump out that table in the backup"
|
3641 |
msgstr ""
|
3642 |
|
3643 |
-
#: src/backup.php:
|
3644 |
msgid "If not, you will need to either remove data from this table, or contact your hosting company to request more resources."
|
3645 |
msgstr ""
|
3646 |
|
3647 |
-
#: src/backup.php:
|
3648 |
msgid "The database backup appears to have failed"
|
3649 |
msgstr ""
|
3650 |
|
3651 |
-
#: src/backup.php:
|
3652 |
msgid "no options or sitemeta table was found"
|
3653 |
msgstr ""
|
3654 |
|
3655 |
-
#: src/backup.php:
|
3656 |
msgid "the options table was not found"
|
3657 |
msgstr ""
|
3658 |
|
3659 |
-
#: src/backup.php:
|
3660 |
msgid "Failed to open database file for reading:"
|
3661 |
msgstr ""
|
3662 |
|
3663 |
-
#: src/backup.php:
|
3664 |
msgid "An error occurred whilst closing the final database file"
|
3665 |
msgstr ""
|
3666 |
|
3667 |
-
#: src/backup.php:
|
3668 |
msgid "Could not open the backup file for writing"
|
3669 |
msgstr ""
|
3670 |
|
3671 |
-
#: src/backup.php:
|
3672 |
msgid "Infinite recursion: consult your log for more information"
|
3673 |
msgstr ""
|
3674 |
|
3675 |
-
#: src/backup.php:
|
3676 |
msgid "%s: unreadable file - could not be backed up (check the file permissions and ownership)"
|
3677 |
msgstr ""
|
3678 |
|
3679 |
-
#: src/backup.php:
|
3680 |
msgid "Failed to open directory (check the file permissions and ownership): %s"
|
3681 |
msgstr ""
|
3682 |
|
3683 |
-
#: src/backup.php:
|
3684 |
msgid "%s: unreadable file - could not be backed up"
|
3685 |
msgstr ""
|
3686 |
|
3687 |
-
#: src/backup.php:
|
3688 |
msgid "Failed to open the zip file (%s) - %s"
|
3689 |
msgstr ""
|
3690 |
|
3691 |
-
#: src/backup.php:
|
3692 |
msgid "A very large file was encountered: %s (size: %s Mb)"
|
3693 |
msgstr ""
|
3694 |
|
3695 |
-
#: src/backup.php:
|
3696 |
msgid "Your free space in your hosting account is very low - only %s Mb remain"
|
3697 |
msgstr ""
|
3698 |
|
3699 |
-
#: src/backup.php:
|
3700 |
msgid "The zip engine returned the message: %s."
|
3701 |
msgstr ""
|
3702 |
|
3703 |
-
#: src/backup.php:
|
3704 |
msgid "A zip error occurred"
|
3705 |
msgstr ""
|
3706 |
|
3707 |
-
#: src/backup.php:
|
3708 |
msgid "your web hosting account appears to be full; please see: %s"
|
3709 |
msgstr ""
|
3710 |
|
3711 |
-
#: src/backup.php:
|
3712 |
msgid "check your log for more details."
|
3713 |
msgstr ""
|
3714 |
|
@@ -3960,255 +3960,255 @@ msgstr ""
|
|
3960 |
msgid "Others"
|
3961 |
msgstr ""
|
3962 |
|
3963 |
-
#: src/class-updraftplus.php:
|
3964 |
msgid "Your website is visited infrequently and UpdraftPlus is not getting the resources it hoped for; please read this page:"
|
3965 |
msgstr ""
|
3966 |
|
3967 |
-
#: src/class-updraftplus.php:
|
3968 |
msgid "Could not create files in the backup directory. Backup aborted - check your UpdraftPlus settings."
|
3969 |
msgstr ""
|
3970 |
|
3971 |
-
#: src/class-updraftplus.php:
|
3972 |
msgid "The backup apparently succeeded and is now complete"
|
3973 |
msgstr ""
|
3974 |
|
3975 |
-
#: src/class-updraftplus.php:
|
3976 |
msgid "The backup apparently succeeded (with warnings) and is now complete"
|
3977 |
msgstr ""
|
3978 |
|
3979 |
-
#: src/class-updraftplus.php:
|
3980 |
msgid "To complete your migration/clone, you should now log in to the remote site and restore the backup set."
|
3981 |
msgstr ""
|
3982 |
|
3983 |
-
#: src/class-updraftplus.php:
|
3984 |
msgid "Your clone will now deploy this data to re-create your site."
|
3985 |
msgstr ""
|
3986 |
|
3987 |
-
#: src/class-updraftplus.php:
|
3988 |
msgid "The backup attempt has finished, apparently unsuccessfully"
|
3989 |
msgstr ""
|
3990 |
|
3991 |
-
#: src/class-updraftplus.php:
|
3992 |
msgid "The backup has not finished; a resumption is scheduled"
|
3993 |
msgstr ""
|
3994 |
|
3995 |
-
#: src/class-updraftplus.php:
|
3996 |
msgid "Could not read the directory"
|
3997 |
msgstr ""
|
3998 |
|
3999 |
-
#: src/class-updraftplus.php:
|
4000 |
msgid "Could not save backup history because we have no backup array. Backup probably failed."
|
4001 |
msgstr ""
|
4002 |
|
4003 |
-
#: src/class-updraftplus.php:
|
4004 |
msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
|
4005 |
msgstr ""
|
4006 |
|
4007 |
-
#: src/class-updraftplus.php:
|
4008 |
msgid "Decryption failed. The database file is encrypted."
|
4009 |
msgstr ""
|
4010 |
|
4011 |
-
#: src/class-updraftplus.php:
|
4012 |
msgid "Decryption failed. The most likely cause is that you used the wrong key."
|
4013 |
msgstr ""
|
4014 |
|
4015 |
-
#: src/class-updraftplus.php:
|
4016 |
msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
|
4017 |
msgstr ""
|
4018 |
|
4019 |
-
#: src/class-updraftplus.php:
|
4020 |
msgid "Failed to open database file."
|
4021 |
msgstr ""
|
4022 |
|
4023 |
-
#: src/class-updraftplus.php:
|
4024 |
msgid "(version: %s)"
|
4025 |
msgstr ""
|
4026 |
|
4027 |
-
#: src/class-updraftplus.php:
|
4028 |
msgid "The website address in the backup set (%s) is slightly different from that of the site now (%s). This is not expected to be a problem for restoring the site, as long as visits to the former address still reach the site."
|
4029 |
msgstr ""
|
4030 |
|
4031 |
-
#: src/class-updraftplus.php:
|
4032 |
msgid "This backup set is of this site, but at the time of the backup you were using %s, whereas the site now uses %s."
|
4033 |
msgstr ""
|
4034 |
|
4035 |
-
#: src/class-updraftplus.php:
|
4036 |
msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use %s to search/replace the site address so that the site can be visited without https."
|
4037 |
msgstr ""
|
4038 |
|
4039 |
-
#: src/class-updraftplus.php:
|
4040 |
msgid "the migrator add-on"
|
4041 |
msgstr ""
|
4042 |
|
4043 |
-
#: src/class-updraftplus.php:
|
4044 |
msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use %s so that the non-https links are automatically replaced."
|
4045 |
msgstr ""
|
4046 |
|
4047 |
-
#: src/class-updraftplus.php:
|
4048 |
msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
|
4049 |
msgstr ""
|
4050 |
|
4051 |
-
#: src/class-updraftplus.php:
|
4052 |
msgid "You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information"
|
4053 |
msgstr ""
|
4054 |
|
4055 |
-
#: src/class-updraftplus.php:
|
4056 |
msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
|
4057 |
msgstr ""
|
4058 |
|
4059 |
-
#: src/class-updraftplus.php:
|
4060 |
msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
|
4061 |
msgstr ""
|
4062 |
|
4063 |
-
#: src/class-updraftplus.php:
|
4064 |
msgid "%s version: %s"
|
4065 |
msgstr ""
|
4066 |
|
4067 |
-
#: src/class-updraftplus.php:
|
4068 |
msgid "You are importing from a newer version of WordPress (%s) into an older one (%s). There are no guarantees that WordPress can handle this."
|
4069 |
msgstr ""
|
4070 |
|
4071 |
-
#: src/class-updraftplus.php:
|
4072 |
msgid "The site in this backup was running on a webserver with version %s of %s. "
|
4073 |
msgstr ""
|
4074 |
|
4075 |
-
#: src/class-updraftplus.php:
|
4076 |
msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
|
4077 |
msgstr ""
|
4078 |
|
4079 |
-
#: src/class-updraftplus.php:
|
4080 |
msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
|
4081 |
msgstr ""
|
4082 |
|
4083 |
-
#: src/class-updraftplus.php:
|
4084 |
msgid "Any support requests to do with %s should be raised with your web hosting company."
|
4085 |
msgstr ""
|
4086 |
|
4087 |
-
#: src/class-updraftplus.php:
|
4088 |
msgid "Old table prefix:"
|
4089 |
msgstr ""
|
4090 |
|
4091 |
-
#: src/class-updraftplus.php:
|
4092 |
msgid "Backup label:"
|
4093 |
msgstr ""
|
4094 |
|
4095 |
-
#: src/class-updraftplus.php:
|
4096 |
msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
|
4097 |
msgstr ""
|
4098 |
|
4099 |
-
#: src/class-updraftplus.php:
|
4100 |
msgid "It will be imported as a new site."
|
4101 |
msgstr ""
|
4102 |
|
4103 |
-
#: src/class-updraftplus.php:
|
4104 |
msgid "Please read this link for important information on this process."
|
4105 |
msgstr ""
|
4106 |
|
4107 |
-
#: src/class-updraftplus.php:
|
4108 |
msgid "To import an ordinary WordPress site into a multisite installation requires %s."
|
4109 |
msgstr ""
|
4110 |
|
4111 |
-
#: src/class-updraftplus.php:
|
4112 |
msgid "Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible."
|
4113 |
msgstr ""
|
4114 |
|
4115 |
-
#: src/class-updraftplus.php:
|
4116 |
msgid "If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite."
|
4117 |
msgstr ""
|
4118 |
|
4119 |
-
#: src/class-updraftplus.php:
|
4120 |
msgid "Site information:"
|
4121 |
msgstr ""
|
4122 |
|
4123 |
-
#: src/class-updraftplus.php:
|
4124 |
msgid "The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on."
|
4125 |
msgstr ""
|
4126 |
|
4127 |
-
#: src/class-updraftplus.php:
|
4128 |
msgid "You must upgrade MySQL to be able to use this database."
|
4129 |
msgstr ""
|
4130 |
|
4131 |
-
#: src/class-updraftplus.php:
|
4132 |
msgid "The database server that this WordPress site is running on doesn't support the character set (%s) which you are trying to import."
|
4133 |
msgid_plural "The database server that this WordPress site is running on doesn't support the character sets (%s) which you are trying to import."
|
4134 |
msgstr[0] ""
|
4135 |
msgstr[1] ""
|
4136 |
|
4137 |
-
#: src/class-updraftplus.php:
|
4138 |
msgid "You can choose another suitable character set instead and continue with the restoration at your own risk."
|
4139 |
msgstr ""
|
4140 |
|
4141 |
-
#: src/class-updraftplus.php:
|
4142 |
msgid "Your chosen character set to use instead:"
|
4143 |
msgstr ""
|
4144 |
|
4145 |
-
#: src/class-updraftplus.php:
|
4146 |
msgid "The database server that this WordPress site is running on doesn't support the collation (%s) used in the database which you are trying to import."
|
4147 |
msgid_plural "The database server that this WordPress site is running on doesn't support multiple collations (%s) used in the database which you are trying to import."
|
4148 |
msgstr[0] ""
|
4149 |
msgstr[1] ""
|
4150 |
|
4151 |
-
#: src/class-updraftplus.php:
|
4152 |
msgid "You can choose another suitable collation instead and continue with the restoration (at your own risk)."
|
4153 |
msgstr ""
|
4154 |
|
4155 |
-
#: src/class-updraftplus.php:
|
4156 |
msgid "Your chosen replacement collation"
|
4157 |
msgstr ""
|
4158 |
|
4159 |
-
#: src/class-updraftplus.php:
|
4160 |
msgid "Choose a default for each table"
|
4161 |
msgstr ""
|
4162 |
|
4163 |
-
#: src/class-updraftplus.php:
|
4164 |
msgid "This database backup is missing core WordPress tables: %s"
|
4165 |
msgstr ""
|
4166 |
|
4167 |
-
#: src/class-updraftplus.php:
|
4168 |
msgid "This database backup has the following WordPress tables excluded: %s"
|
4169 |
msgstr ""
|
4170 |
|
4171 |
-
#: src/class-updraftplus.php:
|
4172 |
msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
|
4173 |
msgstr ""
|
4174 |
|
4175 |
-
#: src/includes/class-backup-history.php:
|
4176 |
msgid "You have not yet made any backups."
|
4177 |
msgstr ""
|
4178 |
|
4179 |
-
#: src/includes/class-backup-history.php:
|
4180 |
msgid "One or more backups has been added from scanning remote storage; note that these backups will not be automatically deleted through the \"retain\" settings; if/when you wish to delete them then you must do so manually."
|
4181 |
msgstr ""
|
4182 |
|
4183 |
-
#: src/includes/class-commands.php:
|
4184 |
msgid "%s add-on not found"
|
4185 |
msgstr ""
|
4186 |
|
4187 |
-
#: src/includes/class-commands.php:
|
4188 |
msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
|
4189 |
msgstr ""
|
4190 |
|
4191 |
-
#: src/includes/class-commands.php:
|
4192 |
msgid "Available temporary clone tokens:"
|
4193 |
msgstr ""
|
4194 |
|
4195 |
-
#: src/includes/class-commands.php:
|
4196 |
msgid "You can buy more temporary clone tokens here."
|
4197 |
msgstr ""
|
4198 |
|
4199 |
-
#: src/includes/class-commands.php:
|
4200 |
msgid "Create clone"
|
4201 |
msgstr ""
|
4202 |
|
4203 |
-
#: src/includes/class-commands.php:
|
4204 |
msgid "Current clones"
|
4205 |
msgstr ""
|
4206 |
|
4207 |
-
#: src/includes/class-commands.php:
|
4208 |
msgid "manage"
|
4209 |
msgstr ""
|
4210 |
|
4211 |
-
#: src/includes/class-commands.php:
|
4212 |
msgid "The creation of your data for creating the clone should now begin. N.B. You will be charged one token once the clone is ready. If the clone fails to boot, then no token will be taken."
|
4213 |
msgstr ""
|
4214 |
|
@@ -4228,27 +4228,27 @@ msgstr ""
|
|
4228 |
msgid "Web-server disk space in use by UpdraftPlus"
|
4229 |
msgstr ""
|
4230 |
|
4231 |
-
#: src/includes/class-filesystem-functions.php:
|
4232 |
msgid "Your web server's PHP installation has these functions disabled: %s."
|
4233 |
msgstr ""
|
4234 |
|
4235 |
-
#: src/includes/class-filesystem-functions.php:
|
4236 |
msgid "Your hosting company must enable these functions before %s can work."
|
4237 |
msgstr ""
|
4238 |
|
4239 |
-
#: src/includes/class-filesystem-functions.php:
|
4240 |
msgid "restoration"
|
4241 |
msgstr ""
|
4242 |
|
4243 |
-
#: src/includes/class-filesystem-functions.php:
|
4244 |
msgid "The database file appears to have been compressed twice - probably the website you downloaded it from had a mis-configured webserver."
|
4245 |
msgstr ""
|
4246 |
|
4247 |
-
#: src/includes/class-filesystem-functions.php:
|
4248 |
msgid "The attempt to undo the double-compression failed."
|
4249 |
msgstr ""
|
4250 |
|
4251 |
-
#: src/includes/class-filesystem-functions.php:
|
4252 |
msgid "The attempt to undo the double-compression succeeded."
|
4253 |
msgstr ""
|
4254 |
|
@@ -4361,7 +4361,7 @@ msgid "This multi-archive backup set appears to have the following archives miss
|
|
4361 |
msgstr ""
|
4362 |
|
4363 |
#: src/includes/class-wpadmin-commands.php:217
|
4364 |
-
msgid "
|
4365 |
msgstr ""
|
4366 |
|
4367 |
#: src/includes/class-wpadmin-commands.php:234
|
@@ -4496,7 +4496,7 @@ msgstr ""
|
|
4496 |
msgid "UpdraftPlus Premium:"
|
4497 |
msgstr ""
|
4498 |
|
4499 |
-
#: src/includes/updraftplus-notices.php:31, src/templates/wp-admin/settings/header.php:17, src/templates/wp-admin/settings/tab-addons.php:21, src/templates/wp-admin/settings/tab-addons.php:
|
4500 |
msgid "Support"
|
4501 |
msgstr ""
|
4502 |
|
@@ -4504,7 +4504,7 @@ msgstr ""
|
|
4504 |
msgid "Enjoy professional, fast, and friendly help whenever you need it with Premium."
|
4505 |
msgstr ""
|
4506 |
|
4507 |
-
#: src/includes/updraftplus-notices.php:41, src/templates/wp-admin/settings/tab-addons.php:
|
4508 |
msgid "UpdraftVault storage"
|
4509 |
msgstr ""
|
4510 |
|
@@ -5091,7 +5091,7 @@ msgstr ""
|
|
5091 |
msgid "For more options, use the \"%s\" add-on."
|
5092 |
msgstr ""
|
5093 |
|
5094 |
-
#: src/methods/email.php:97, src/templates/wp-admin/settings/form-contents.php:243, src/templates/wp-admin/settings/tab-addons.php:
|
5095 |
msgid "Reporting"
|
5096 |
msgstr ""
|
5097 |
|
@@ -5417,7 +5417,7 @@ msgstr ""
|
|
5417 |
msgid "Local write failed: Failed to download"
|
5418 |
msgstr ""
|
5419 |
|
5420 |
-
#: src/methods/updraftvault.php:71, src/templates/wp-admin/settings/tab-addons.php:
|
5421 |
msgid "UpdraftVault"
|
5422 |
msgstr ""
|
5423 |
|
@@ -5944,11 +5944,11 @@ msgstr ""
|
|
5944 |
msgid "required for some remote storage providers"
|
5945 |
msgstr ""
|
5946 |
|
5947 |
-
#: src/templates/wp-admin/advanced/site-info.php:63, src/templates/wp-admin/advanced/site-info.php:66, src/templates/wp-admin/settings/tab-addons.php:53, src/templates/wp-admin/settings/tab-addons.php:66, src/templates/wp-admin/settings/tab-addons.php:69, src/templates/wp-admin/settings/tab-addons.php:82, src/templates/wp-admin/settings/tab-addons.php:
|
5948 |
msgid "Yes"
|
5949 |
msgstr ""
|
5950 |
|
5951 |
-
#: src/templates/wp-admin/advanced/site-info.php:66, src/templates/wp-admin/settings/tab-addons.php:79, src/templates/wp-admin/settings/tab-addons.php:
|
5952 |
msgid "No"
|
5953 |
msgstr ""
|
5954 |
|
@@ -6000,7 +6000,7 @@ msgstr ""
|
|
6000 |
msgid "log results to console"
|
6001 |
msgstr ""
|
6002 |
|
6003 |
-
#: src/templates/wp-admin/advanced/tools-menu.php:10, src/templates/wp-admin/settings/tab-addons.php:
|
6004 |
msgid "Lock settings"
|
6005 |
msgstr ""
|
6006 |
|
@@ -6140,6 +6140,38 @@ msgstr ""
|
|
6140 |
msgid "Free two-factor security plugin"
|
6141 |
msgstr ""
|
6142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6143 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:8
|
6144 |
msgid "Delete backup set"
|
6145 |
msgstr ""
|
@@ -6165,7 +6197,7 @@ msgid "Restore backup"
|
|
6165 |
msgstr ""
|
6166 |
|
6167 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:30
|
6168 |
-
msgid "Restore
|
6169 |
msgstr ""
|
6170 |
|
6171 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:34
|
@@ -6296,39 +6328,39 @@ msgstr ""
|
|
6296 |
msgid "Add an exclusion rule"
|
6297 |
msgstr ""
|
6298 |
|
6299 |
-
#: src/templates/wp-admin/settings/existing-backups-table.php:17, src/templates/wp-admin/settings/existing-backups-table.php:
|
6300 |
msgid "Backup date"
|
6301 |
msgstr ""
|
6302 |
|
6303 |
-
#: src/templates/wp-admin/settings/existing-backups-table.php:18, src/templates/wp-admin/settings/existing-backups-table.php:
|
6304 |
msgid "Backup data (click to download)"
|
6305 |
msgstr ""
|
6306 |
|
6307 |
-
#: src/templates/wp-admin/settings/existing-backups-table.php:
|
6308 |
msgid "remote site"
|
6309 |
msgstr ""
|
6310 |
|
6311 |
-
#: src/templates/wp-admin/settings/existing-backups-table.php:
|
6312 |
msgid "Remote storage: %s"
|
6313 |
msgstr ""
|
6314 |
|
6315 |
-
#: src/templates/wp-admin/settings/existing-backups-table.php:
|
6316 |
msgid "Actions upon selected backups"
|
6317 |
msgstr ""
|
6318 |
|
6319 |
-
#: src/templates/wp-admin/settings/existing-backups-table.php:
|
6320 |
msgid "Select all"
|
6321 |
msgstr ""
|
6322 |
|
6323 |
-
#: src/templates/wp-admin/settings/existing-backups-table.php:
|
6324 |
msgid "Deselect"
|
6325 |
msgstr ""
|
6326 |
|
6327 |
-
#: src/templates/wp-admin/settings/existing-backups-table.php:
|
6328 |
msgid "Use ctrl / cmd + press to select several items"
|
6329 |
msgstr ""
|
6330 |
|
6331 |
-
#: src/templates/wp-admin/settings/existing-backups-table.php:
|
6332 |
msgid "Please allow time for the communications with the remote storage to complete."
|
6333 |
msgstr ""
|
6334 |
|
@@ -6356,6 +6388,10 @@ msgstr ""
|
|
6356 |
msgid "e.g. if your server is busy at day and you want to run overnight"
|
6357 |
msgstr ""
|
6358 |
|
|
|
|
|
|
|
|
|
6359 |
#: src/templates/wp-admin/settings/form-contents.php:87
|
6360 |
msgid "or to configure more complex schedules"
|
6361 |
msgstr ""
|
@@ -6569,7 +6605,7 @@ msgstr ""
|
|
6569 |
msgid "Save Changes"
|
6570 |
msgstr ""
|
6571 |
|
6572 |
-
#: src/templates/wp-admin/settings/header.php:11, src/templates/wp-admin/settings/tab-addons.php:47, src/templates/wp-admin/settings/tab-addons.php:68, src/templates/wp-admin/settings/tab-addons.php:81, src/templates/wp-admin/settings/tab-addons.php:
|
6573 |
msgid "Premium"
|
6574 |
msgstr ""
|
6575 |
|
@@ -6641,15 +6677,15 @@ msgstr ""
|
|
6641 |
msgid "If you have purchased from UpdraftPlus.Com, then follow this link to the installation instructions (particularly step 1)."
|
6642 |
msgstr ""
|
6643 |
|
6644 |
-
#: src/templates/wp-admin/settings/tab-addons.php:43, src/templates/wp-admin/settings/tab-addons.php:65, src/templates/wp-admin/settings/tab-addons.php:78, src/templates/wp-admin/settings/tab-addons.php:
|
6645 |
msgid "Free"
|
6646 |
msgstr ""
|
6647 |
|
6648 |
-
#: src/templates/wp-admin/settings/tab-addons.php:53, src/templates/wp-admin/settings/tab-addons.php:
|
6649 |
msgid "Installed"
|
6650 |
msgstr ""
|
6651 |
|
6652 |
-
#: src/templates/wp-admin/settings/tab-addons.php:56, src/templates/wp-admin/settings/tab-addons.php:
|
6653 |
msgid "Upgrade now"
|
6654 |
msgstr ""
|
6655 |
|
@@ -6673,151 +6709,159 @@ msgstr ""
|
|
6673 |
msgid "UpdraftPlus Migrator clones your WordPress site and moves it to a new domain directly and simply."
|
6674 |
msgstr ""
|
6675 |
|
6676 |
-
#: src/templates/wp-admin/settings/tab-addons.php:88
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6677 |
msgid "Fast, personal support"
|
6678 |
msgstr ""
|
6679 |
|
6680 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6681 |
msgid "Provides expert help and support from the developers whenever you need it."
|
6682 |
msgstr ""
|
6683 |
|
6684 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6685 |
msgid "Pre-update backups"
|
6686 |
msgstr ""
|
6687 |
|
6688 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6689 |
msgid "Automatically backs up your website before any updates to plugins, themes and WordPress core."
|
6690 |
msgstr ""
|
6691 |
|
6692 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6693 |
msgid "Backup non-WordPress files and databases"
|
6694 |
msgstr ""
|
6695 |
|
6696 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6697 |
msgid "Backup WordPress core and non-WP files and databases."
|
6698 |
msgstr ""
|
6699 |
|
6700 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6701 |
msgid "Network and multisite"
|
6702 |
msgstr ""
|
6703 |
|
6704 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6705 |
msgid "Network / multisite"
|
6706 |
msgstr ""
|
6707 |
|
6708 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6709 |
msgid "Backup WordPress multisites (i.e, networks), securely."
|
6710 |
msgstr ""
|
6711 |
|
6712 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6713 |
msgid "Backup time and scheduling"
|
6714 |
msgstr ""
|
6715 |
|
6716 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6717 |
msgid "Set exact times to create or delete backups."
|
6718 |
msgstr ""
|
6719 |
|
6720 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6721 |
msgid "WP CLI"
|
6722 |
msgstr ""
|
6723 |
|
6724 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6725 |
msgid "WP-CLI support"
|
6726 |
msgstr ""
|
6727 |
|
6728 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6729 |
msgid "WP-CLI commands to take, list and delete backups."
|
6730 |
msgstr ""
|
6731 |
|
6732 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6733 |
msgid "More database options"
|
6734 |
msgstr ""
|
6735 |
|
6736 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6737 |
msgid "Encrypt your sensitive databases (e.g. customer information or passwords); Backup external databases too."
|
6738 |
msgstr ""
|
6739 |
|
6740 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6741 |
msgid "Additional storage"
|
6742 |
msgstr ""
|
6743 |
|
6744 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6745 |
msgid "Additional and enhanced remote storage locations"
|
6746 |
msgstr ""
|
6747 |
|
6748 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6749 |
msgid "Get enhanced versions of the free remote storage options (Dropbox, Google Drive & S3) and even more remote storage options like OneDrive, SFTP, Azure, WebDAV and more with UpdraftPlus Premium."
|
6750 |
msgstr ""
|
6751 |
|
6752 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6753 |
msgid "Sophisticated reporting and emailing capabilities."
|
6754 |
msgstr ""
|
6755 |
|
6756 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6757 |
msgid "No ads"
|
6758 |
msgstr ""
|
6759 |
|
6760 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6761 |
msgid "Tidy things up for clients and remove all adverts for our other products."
|
6762 |
msgstr ""
|
6763 |
|
6764 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6765 |
msgid "Importer"
|
6766 |
msgstr ""
|
6767 |
|
6768 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6769 |
msgid "Some backup plugins can't restore a backup, so Premium allows you to restore backups from other plugins."
|
6770 |
msgstr ""
|
6771 |
|
6772 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6773 |
msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
|
6774 |
msgstr ""
|
6775 |
|
6776 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6777 |
msgid "UpdraftPlus has its own embedded storage option, providing a zero-hassle way to download, store and manage all your backups from one place."
|
6778 |
msgstr ""
|
6779 |
|
6780 |
-
#: src/templates/wp-admin/settings/tab-addons.php:
|
6781 |
msgid "Premium / Find out more"
|
6782 |
msgstr ""
|
6783 |
|
6784 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6785 |
msgid "JavaScript warning"
|
6786 |
msgstr ""
|
6787 |
|
6788 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6789 |
msgid "This admin interface uses JavaScript heavily. You either need to activate it within your browser, or to use a JavaScript-capable browser."
|
6790 |
msgstr ""
|
6791 |
|
6792 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6793 |
msgid "Next scheduled backups"
|
6794 |
msgstr ""
|
6795 |
|
6796 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6797 |
msgid "Time now"
|
6798 |
msgstr ""
|
6799 |
|
6800 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6801 |
msgid "Remote storage authentication"
|
6802 |
msgstr ""
|
6803 |
|
6804 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6805 |
msgid "You have selected a remote storage option which has an authorization step to complete:"
|
6806 |
msgstr ""
|
6807 |
|
6808 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6809 |
-
msgid "Perform a
|
6810 |
msgstr ""
|
6811 |
|
6812 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6813 |
msgid "Multisite"
|
6814 |
msgstr ""
|
6815 |
|
6816 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6817 |
msgid "Do you need WordPress Multisite support?"
|
6818 |
msgstr ""
|
6819 |
|
6820 |
-
#: src/templates/wp-admin/settings/take-backup.php:
|
6821 |
msgid "Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on."
|
6822 |
msgstr ""
|
6823 |
|
@@ -7057,79 +7101,79 @@ msgstr ""
|
|
7057 |
msgid "An update containing your addons is available for UpdraftPlus - please follow this link to get it."
|
7058 |
msgstr ""
|
7059 |
|
7060 |
-
#: src/udaddons/options.php:
|
7061 |
msgid "An error occurred when trying to retrieve your add-ons."
|
7062 |
msgstr ""
|
7063 |
|
7064 |
-
#: src/udaddons/options.php:
|
7065 |
msgid "UpdraftPlus Support"
|
7066 |
msgstr ""
|
7067 |
|
7068 |
-
#: src/udaddons/options.php:
|
7069 |
msgid "Need to get support?"
|
7070 |
msgstr ""
|
7071 |
|
7072 |
-
#: src/udaddons/options.php:
|
7073 |
msgid "Go here"
|
7074 |
msgstr ""
|
7075 |
|
7076 |
-
#: src/udaddons/options.php:
|
7077 |
msgid "You've got it"
|
7078 |
msgstr ""
|
7079 |
|
7080 |
-
#: src/udaddons/options.php:
|
7081 |
msgid "Your version: %s"
|
7082 |
msgstr ""
|
7083 |
|
7084 |
-
#: src/udaddons/options.php:
|
7085 |
msgid "latest"
|
7086 |
msgstr ""
|
7087 |
|
7088 |
-
#: src/udaddons/options.php:
|
7089 |
msgid "(apparently a pre-release or withdrawn release)"
|
7090 |
msgstr ""
|
7091 |
|
7092 |
-
#: src/udaddons/options.php:
|
7093 |
msgid "Available for this site (via your all-addons purchase)"
|
7094 |
msgstr ""
|
7095 |
|
7096 |
-
#: src/udaddons/options.php:
|
7097 |
msgid "please follow this link to update the plugin in order to get it"
|
7098 |
msgstr ""
|
7099 |
|
7100 |
-
#: src/udaddons/options.php:
|
7101 |
msgid "Assigned to this site"
|
7102 |
msgstr ""
|
7103 |
|
7104 |
-
#: src/udaddons/options.php:
|
7105 |
msgid "please follow this link to update the plugin in order to activate it"
|
7106 |
msgstr ""
|
7107 |
|
7108 |
-
#: src/udaddons/options.php:
|
7109 |
msgid "Available to claim on this site"
|
7110 |
msgstr ""
|
7111 |
|
7112 |
-
#: src/udaddons/options.php:
|
7113 |
msgid "activate it on this site"
|
7114 |
msgstr ""
|
7115 |
|
7116 |
-
#: src/udaddons/options.php:
|
7117 |
msgid "You have an inactive purchase"
|
7118 |
msgstr ""
|
7119 |
|
7120 |
-
#: src/udaddons/options.php:
|
7121 |
msgid "Get it from the UpdraftPlus.Com Store"
|
7122 |
msgstr ""
|
7123 |
|
7124 |
-
#: src/udaddons/options.php:
|
7125 |
msgid "(or connect using the form on this page if you have already purchased it)"
|
7126 |
msgstr ""
|
7127 |
|
7128 |
-
#: src/udaddons/options.php:
|
7129 |
msgid "Buy It"
|
7130 |
msgstr ""
|
7131 |
|
7132 |
-
#: src/udaddons/options.php:
|
7133 |
msgid "Manage Addons"
|
7134 |
msgstr ""
|
7135 |
|
49 |
msgid "(logs can be found in the UpdraftPlus settings page as normal)..."
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: src/addons/autobackup.php:344, src/addons/autobackup.php:439, src/admin.php:3069, src/admin.php:3075, src/templates/wp-admin/settings/take-backup.php:69
|
53 |
msgid "Last log message"
|
54 |
msgstr ""
|
55 |
|
97 |
msgid "now proceeding with the updates..."
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: src/addons/autobackup.php:1072, src/admin.php:978, src/includes/updraftplus-notices.php:171
|
101 |
msgid "Be safe with an automatic backup"
|
102 |
msgstr ""
|
103 |
|
117 |
msgid "%s Error"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: src/addons/azure.php:268, src/class-updraftplus.php:3662, src/methods/googledrive.php:1120, src/methods/s3.php:341
|
121 |
msgid "File not found"
|
122 |
msgstr ""
|
123 |
|
145 |
msgid "You must add the following as the authorised redirect URI in your Azure console (under \"API Settings\") when asked"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: src/addons/azure.php:601, src/addons/migrator.php:948, src/admin.php:1149, src/admin.php:1153, src/admin.php:1157, src/admin.php:1161, src/admin.php:1165, src/admin.php:1174, src/admin.php:3912, src/admin.php:3919, src/admin.php:3921, src/admin.php:5346, src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440, src/methods/ftp.php:330, src/methods/openstack-base.php:571, src/methods/s3.php:859, src/methods/s3.php:863, src/methods/updraftvault.php:306, src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27, src/udaddons/updraftplus-addons.php:259
|
149 |
msgid "Warning"
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: src/addons/azure.php:601, src/admin.php:3912, src/methods/updraftvault.php:306
|
153 |
msgid "Your web server's PHP installation does not included a <strong>required</strong> (for %s) module (%s). Please contact your web hosting provider's support and ask for them to enable it."
|
154 |
msgstr ""
|
155 |
|
225 |
msgid "Azure Government"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: src/addons/backblaze.php:205, src/admin.php:2134
|
229 |
msgid "Error: unexpected file read fail"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: src/addons/backblaze.php:225, src/addons/cloudfiles-enhanced.php:117, src/addons/migrator.php:893, src/addons/migrator.php:1190, src/addons/migrator.php:1271, src/addons/migrator.php:1320, src/addons/migrator.php:1558, src/addons/s3-enhanced.php:164, src/addons/s3-enhanced.php:169, src/addons/s3-enhanced.php:171, src/addons/sftp.php:911, src/addons/webdav.php:203, src/admin.php:91, src/admin.php:817, src/includes/class-remote-send.php:266, src/includes/class-remote-send.php:293, src/includes/class-remote-send.php:299, src/includes/class-remote-send.php:362, src/includes/class-remote-send.php:421, src/includes/class-remote-send.php:462, src/includes/class-remote-send.php:472, src/includes/class-remote-send.php:477, src/methods/remotesend.php:74, src/methods/remotesend.php:242, src/methods/remotesend.php:298, src/methods/updraftvault.php:527, src/restorer.php:228, src/restorer.php:256, src/restorer.php:1921
|
233 |
msgid "Error:"
|
234 |
msgstr ""
|
235 |
|
597 |
msgid "No refresh token was received from Google. This often means that you entered your client secret wrongly, or that you have not yet re-authenticated (below) since correcting it. Re-check it, then follow the link to authenticate again. Finally, if that does not work, then use expert mode to wipe all your settings, create a new Google client ID/secret, and start again."
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: src/addons/googlecloud.php:438, src/addons/migrator.php:590, src/admin.php:2317, src/admin.php:2338, src/admin.php:2346, src/class-updraftplus.php:997, src/class-updraftplus.php:1003, src/class-updraftplus.php:3857, src/class-updraftplus.php:3859, src/class-updraftplus.php:4024, src/class-updraftplus.php:4031, src/class-updraftplus.php:4102, src/methods/googledrive.php:403, src/methods/s3.php:341
|
601 |
msgid "Error: %s"
|
602 |
msgstr ""
|
603 |
|
625 |
msgid "However, subsequent access attempts failed:"
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: src/addons/googlecloud.php:718, src/addons/googlecloud.php:839, src/addons/onedrive.php:939, src/addons/sftp.php:591, src/addons/sftp.php:595, src/addons/wp-cli.php:516, src/methods/addon-base-v2.php:327, src/methods/cloudfiles.php:575, src/methods/googledrive.php:475, src/methods/openstack-base.php:530, src/methods/s3.php:1155, src/methods/stream-base.php:372
|
629 |
msgid "Success"
|
630 |
msgstr ""
|
631 |
|
641 |
msgid "You must save and authenticate before you can test your settings."
|
642 |
msgstr ""
|
643 |
|
644 |
+
#: src/addons/googlecloud.php:776, src/addons/googlecloud.php:810, src/addons/googlecloud.php:816, src/addons/sftp.php:553, src/admin.php:3466, src/admin.php:3502, src/admin.php:3512, src/methods/addon-base-v2.php:313, src/methods/stream-base.php:356
|
645 |
msgid "Failed"
|
646 |
msgstr ""
|
647 |
|
717 |
msgid "Otherwise, you can leave it blank."
|
718 |
msgstr ""
|
719 |
|
720 |
+
#: src/addons/googlecloud.php:1034, src/addons/migrator.php:493, src/addons/migrator.php:496, src/addons/migrator.php:499, src/admin.php:1153, src/admin.php:2625, src/backup.php:3430, src/class-updraftplus.php:4123, src/class-updraftplus.php:4123, src/updraftplus.php:157
|
721 |
msgid "Go here for more information."
|
722 |
msgstr ""
|
723 |
|
773 |
msgid "Supported backup plugins: %s"
|
774 |
msgstr ""
|
775 |
|
776 |
+
#: src/addons/importer.php:276, src/admin.php:4073, src/includes/class-backup-history.php:499
|
777 |
msgid "Backup created by: %s."
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: src/addons/incremental.php:82, src/addons/incremental.php:84
|
781 |
msgid "(latest increment: %s)"
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: src/addons/incremental.php:84
|
785 |
msgid "Increments exist at: %s"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: src/addons/incremental.php:285
|
789 |
+
msgid "Files changed since the last backup will be added as a new increment in that backup set."
|
790 |
+
msgstr ""
|
791 |
+
|
792 |
+
#: src/addons/incremental.php:285
|
793 |
+
msgid "N.B. No backup of your database will be taken in an incremental backup; if you want a database backup as well, then take that separately."
|
794 |
+
msgstr ""
|
795 |
+
|
796 |
+
#: src/addons/incremental.php:287
|
797 |
+
msgid "No incremental backup of your files is possible, as no suitable existing backup was found to add increments to."
|
798 |
+
msgstr ""
|
799 |
+
|
800 |
+
#: src/addons/incremental.php:332, src/addons/reporting.php:259, src/admin.php:4005
|
801 |
msgid "None"
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: src/addons/incremental.php:333, src/updraftplus.php:99
|
805 |
msgid "Every hour"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: src/addons/incremental.php:334, src/addons/incremental.php:335, src/addons/incremental.php:336, src/addons/incremental.php:337, src/admin.php:3720, src/admin.php:3721, src/admin.php:3722, src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
|
809 |
msgid "Every %s hours"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: src/addons/incremental.php:338, src/admin.php:3723
|
813 |
msgid "Daily"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: src/addons/incremental.php:339, src/admin.php:3724
|
817 |
msgid "Weekly"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: src/addons/incremental.php:340, src/admin.php:3725
|
821 |
msgid "Fortnightly"
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: src/addons/incremental.php:341, src/admin.php:3726
|
825 |
msgid "Monthly"
|
826 |
msgstr ""
|
827 |
|
828 |
+
#: src/addons/incremental.php:355
|
829 |
msgid "And then add an incremental backup"
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: src/addons/incremental.php:367
|
833 |
msgid "Tell me more"
|
834 |
msgstr ""
|
835 |
|
853 |
msgid "Please make sure that you have made a note of the password!"
|
854 |
msgstr ""
|
855 |
|
856 |
+
#: src/addons/lockadmin.php:171, src/addons/moredatabase.php:241, src/addons/sftp.php:459, src/addons/webdav.php:193, src/admin.php:2977, src/methods/openstack2.php:164, src/methods/updraftvault.php:361, src/templates/wp-admin/settings/updraftcentral-connect.php:50
|
857 |
msgid "Password"
|
858 |
msgstr ""
|
859 |
|
925 |
msgid "Read this article to see step-by-step how it's done."
|
926 |
msgstr ""
|
927 |
|
928 |
+
#: src/addons/migrator.php:232, src/addons/migrator.php:1734, src/addons/migrator.php:1755
|
929 |
msgid "back"
|
930 |
msgstr ""
|
931 |
|
932 |
+
#: src/addons/migrator.php:233
|
933 |
msgid "Restore an existing backup set onto this site"
|
934 |
msgstr ""
|
935 |
|
936 |
+
#: src/addons/migrator.php:236
|
937 |
msgid "To import a backup set, go to the \"Existing Backups\" section in the \"Backup/Restore\" tab"
|
938 |
msgstr ""
|
939 |
|
940 |
+
#: src/addons/migrator.php:239
|
941 |
msgid "This site has no backups to restore from yet."
|
942 |
msgstr ""
|
943 |
|
944 |
+
#: src/addons/migrator.php:274
|
945 |
msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
|
946 |
msgstr ""
|
947 |
|
948 |
+
#: src/addons/migrator.php:274, src/admin.php:663, src/admin.php:850, src/admin.php:4171
|
949 |
msgid "Restore"
|
950 |
msgstr ""
|
951 |
|
952 |
+
#: src/addons/migrator.php:278
|
953 |
msgid "For incremental backups, you will be able to choose which increments to restore at a later stage."
|
954 |
msgstr ""
|
955 |
|
956 |
+
#: src/addons/migrator.php:307
|
957 |
msgid "Disabled this plugin: %s: re-activate it manually when you are ready."
|
958 |
msgstr ""
|
959 |
|
960 |
+
#: src/addons/migrator.php:334, src/addons/migrator.php:379, src/templates/wp-admin/advanced/search-replace.php:7, src/templates/wp-admin/advanced/tools-menu.php:18
|
961 |
msgid "Search / replace database"
|
962 |
msgstr ""
|
963 |
|
964 |
+
#: src/addons/migrator.php:335, src/addons/migrator.php:387
|
965 |
msgid "Search for"
|
966 |
msgstr ""
|
967 |
|
968 |
+
#: src/addons/migrator.php:336, src/addons/migrator.php:388
|
969 |
msgid "Replace with"
|
970 |
msgstr ""
|
971 |
|
972 |
+
#: src/addons/migrator.php:340, src/addons/moredatabase.php:89, src/addons/moredatabase.php:91, src/addons/moredatabase.php:93, src/addons/sftp.php:522, src/addons/sftp.php:526, src/addons/sftp.php:530, src/addons/webdav.php:253, src/admin.php:869, src/includes/class-remote-send.php:454, src/methods/addon-base-v2.php:305, src/methods/cloudfiles-new.php:184, src/methods/cloudfiles-new.php:189, src/methods/cloudfiles.php:519, src/methods/cloudfiles.php:524, src/methods/ftp.php:412, src/methods/ftp.php:416, src/methods/openstack2.php:180, src/methods/openstack2.php:185, src/methods/openstack2.php:190, src/methods/openstack2.php:195, src/methods/s3.php:1089, src/methods/s3.php:1093
|
973 |
msgid "Failure: No %s was given."
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: src/addons/migrator.php:340
|
977 |
msgid "search term"
|
978 |
msgstr ""
|
979 |
|
980 |
+
#: src/addons/migrator.php:343, src/addons/migrator.php:358, src/admin.php:2543, src/admin.php:2553, src/admin.php:2562, src/admin.php:2604, src/admin.php:3435
|
981 |
msgid "Return to UpdraftPlus Configuration"
|
982 |
msgstr ""
|
983 |
|
984 |
+
#: src/addons/migrator.php:380
|
985 |
msgid "This can easily destroy your site; so, use it with care!"
|
986 |
msgstr ""
|
987 |
|
988 |
+
#: src/addons/migrator.php:381
|
989 |
msgid "A search/replace cannot be undone - are you sure you want to do this?"
|
990 |
msgstr ""
|
991 |
|
992 |
+
#: src/addons/migrator.php:389
|
993 |
msgid "Rows per batch"
|
994 |
msgstr ""
|
995 |
|
996 |
+
#: src/addons/migrator.php:390
|
997 |
msgid "These tables only"
|
998 |
msgstr ""
|
999 |
|
1000 |
+
#: src/addons/migrator.php:390
|
1001 |
msgid "Enter a comma-separated list; otherwise, leave blank for all tables."
|
1002 |
msgstr ""
|
1003 |
|
1004 |
+
#: src/addons/migrator.php:392
|
1005 |
msgid "Go"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: src/addons/migrator.php:409
|
1009 |
msgid "This looks like a migration (the backup is from a site with a different address/URL, %s)."
|
1010 |
msgstr ""
|
1011 |
|
1012 |
+
#: src/addons/migrator.php:420
|
1013 |
msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use below search and replace to search/replace the site address so that the site can be visited without https."
|
1014 |
msgstr ""
|
1015 |
|
1016 |
+
#: src/addons/migrator.php:431
|
1017 |
msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use below search and replace so that the non-https links are automatically replaced."
|
1018 |
msgstr ""
|
1019 |
|
1020 |
+
#: src/addons/migrator.php:442
|
1021 |
msgid "you will want to use below search and replace site location in the database (migrate) to search/replace the site address."
|
1022 |
msgstr ""
|
1023 |
|
1024 |
+
#: src/addons/migrator.php:447
|
1025 |
msgid "Processed plugin:"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
+
#: src/addons/migrator.php:457
|
1029 |
msgid "Network activating theme:"
|
1030 |
msgstr ""
|
1031 |
|
1032 |
+
#: src/addons/migrator.php:493, src/addons/migrator.php:496, src/addons/migrator.php:499
|
1033 |
msgid "You selected %s to be included in the restoration - this cannot / should not be done when importing a single site into a network."
|
1034 |
msgstr ""
|
1035 |
|
1036 |
+
#: src/addons/migrator.php:493
|
1037 |
msgid "WordPress core"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
+
#: src/addons/migrator.php:496
|
1041 |
msgid "other content from wp-content"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
+
#: src/addons/migrator.php:499, src/addons/multisite.php:692
|
1045 |
msgid "Must-use plugins"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
+
#: src/addons/migrator.php:504, src/addons/migrator.php:506
|
1049 |
msgid "Importing a single site into a multisite install"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
+
#: src/addons/migrator.php:504, src/templates/wp-admin/settings/downloading-and-restoring.php:72, src/templates/wp-admin/settings/form-contents.php:182, src/templates/wp-admin/settings/tab-backups.php:74
|
1053 |
msgid "This feature requires %s version %s or later"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
+
#: src/addons/migrator.php:506
|
1057 |
msgid "This feature is not compatible with %s"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
+
#: src/addons/migrator.php:512
|
1061 |
msgid "Information needed to continue:"
|
1062 |
msgstr ""
|
1063 |
|
1064 |
+
#: src/addons/migrator.php:513
|
1065 |
msgid "Enter details for where this new site is to live within your multisite install:"
|
1066 |
msgstr ""
|
1067 |
|
1068 |
+
#: src/addons/migrator.php:518, src/addons/migrator.php:520
|
1069 |
msgid "You must use lower-case letters or numbers for the site path, only."
|
1070 |
msgstr ""
|
1071 |
|
1072 |
+
#: src/addons/migrator.php:528
|
1073 |
msgid "Attribute imported content to user"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
+
#: src/addons/migrator.php:564
|
1077 |
msgid "Database restoration options:"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
+
#: src/addons/migrator.php:565
|
1081 |
msgid "All references to the site location in the database will be replaced with your current site URL, which is: %s"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
+
#: src/addons/migrator.php:565
|
1085 |
msgid "Search and replace site location in the database (migrate)"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
+
#: src/addons/migrator.php:573
|
1089 |
msgid "Migrated site (from UpdraftPlus)"
|
1090 |
msgstr ""
|
1091 |
|
1092 |
+
#: src/addons/migrator.php:576
|
1093 |
msgid "Required information for restoring this backup was not given (%s)"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
+
#: src/addons/migrator.php:598
|
1097 |
msgid "New site:"
|
1098 |
msgstr ""
|
1099 |
|
1100 |
+
#: src/addons/migrator.php:634, src/addons/migrator.php:635
|
1101 |
msgid "Error when creating new site at your chosen address:"
|
1102 |
msgstr ""
|
1103 |
|
1104 |
+
#: src/addons/migrator.php:906, src/addons/migrator.php:1285
|
1105 |
msgid "Failed: the %s operation was not able to start."
|
1106 |
msgstr ""
|
1107 |
|
1108 |
+
#: src/addons/migrator.php:906, src/addons/migrator.php:908
|
1109 |
msgid "search and replace"
|
1110 |
msgstr ""
|
1111 |
|
1112 |
+
#: src/addons/migrator.php:908, src/addons/migrator.php:1287
|
1113 |
msgid "Failed: we did not understand the result returned by the %s operation."
|
1114 |
msgstr ""
|
1115 |
|
1116 |
+
#: src/addons/migrator.php:948
|
1117 |
msgid "Your .htaccess has an old site reference on line number %s. You should remove it manually."
|
1118 |
msgid_plural "Your .htaccess has an old site references on line numbers %s. You should remove them manually."
|
1119 |
msgstr[0] ""
|
1120 |
msgstr[1] ""
|
1121 |
|
1122 |
+
#: src/addons/migrator.php:1048
|
1123 |
msgid "Database: search and replace site URL"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: src/addons/migrator.php:1088, src/addons/migrator.php:1092, src/addons/migrator.php:1096, src/addons/migrator.php:1101, src/addons/migrator.php:1105, src/addons/migrator.php:1110
|
1127 |
msgid "Error: unexpected empty parameter (%s, %s)"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
+
#: src/addons/migrator.php:1124
|
1131 |
msgid "Nothing to do: the site URL is already: %s"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
+
#: src/addons/migrator.php:1135
|
1135 |
msgid "Warning: the database's site URL (%s) is different to what we expected (%s)"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
+
#: src/addons/migrator.php:1143
|
1139 |
msgid "Warning: the database's home URL (%s) is different to what we expected (%s)"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
+
#: src/addons/migrator.php:1190
|
1143 |
msgid "Could not get list of tables"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
+
#: src/addons/migrator.php:1212, src/addons/migrator.php:1255, src/addons/migrator.php:1389
|
1147 |
msgid "Search and replacing table:"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
+
#: src/addons/migrator.php:1212
|
1151 |
msgid "skipped (not in list)"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
+
#: src/addons/migrator.php:1255
|
1155 |
msgid "already done"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
+
#: src/addons/migrator.php:1301
|
1159 |
msgid "Tables examined:"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
+
#: src/addons/migrator.php:1302
|
1163 |
msgid "Rows examined:"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
+
#: src/addons/migrator.php:1303
|
1167 |
msgid "Changes made:"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
+
#: src/addons/migrator.php:1304
|
1171 |
msgid "SQL update commands run:"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
+
#: src/addons/migrator.php:1305, src/admin.php:814
|
1175 |
msgid "Errors:"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
+
#: src/addons/migrator.php:1306
|
1179 |
msgid "Time taken (seconds):"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
+
#: src/addons/migrator.php:1320, src/restorer.php:2784
|
1183 |
msgid "the database query being run was:"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
+
#: src/addons/migrator.php:1432
|
1187 |
msgid "rows: %d"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
+
#: src/addons/migrator.php:1558
|
1191 |
msgid "\"%s\" has no primary key, manual change needed on row %s."
|
1192 |
msgstr ""
|
1193 |
|
1194 |
+
#: src/addons/migrator.php:1735
|
1195 |
msgid "Send a backup to another site"
|
1196 |
msgstr ""
|
1197 |
|
1198 |
+
#: src/addons/migrator.php:1739
|
1199 |
msgid "Add a site"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
+
#: src/addons/migrator.php:1744
|
1203 |
msgid "To add a site as a destination for sending to, enter that site's key below."
|
1204 |
msgstr ""
|
1205 |
|
1206 |
+
#: src/addons/migrator.php:1744
|
1207 |
msgid "Keys for a site are created in the section \"receive a backup from a remote site\"."
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: src/addons/migrator.php:1744
|
1211 |
msgid "So, to get the key for the remote site, open the 'Migrate Site' window on that site, and go to that section."
|
1212 |
msgstr ""
|
1213 |
|
1214 |
+
#: src/addons/migrator.php:1744
|
1215 |
msgid "How do I get a site's key?"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
+
#: src/addons/migrator.php:1748
|
1219 |
msgid "Site key"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
+
#: src/addons/migrator.php:1748
|
1223 |
msgid "Paste key here"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
+
#: src/addons/migrator.php:1748, src/admin.php:862
|
1227 |
msgid "Add site"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
+
#: src/addons/migrator.php:1756
|
1231 |
msgid "Receive a backup from a remote site"
|
1232 |
msgstr ""
|
1233 |
|
1234 |
+
#: src/addons/migrator.php:1758
|
1235 |
msgid "To allow another site to send a backup to this site, create a key below. When you are shown the key, then press the 'Migrate' button on the other (sending) site, and copy-and-paste the key over there (in the 'Send a backup to another site' section)."
|
1236 |
msgstr ""
|
1237 |
|
1238 |
+
#: src/addons/migrator.php:1760
|
1239 |
msgid "Create a key: give this key a unique name (e.g. indicate the site it is for), then press \"Create key\":"
|
1240 |
msgstr ""
|
1241 |
|
1242 |
+
#: src/addons/migrator.php:1761
|
1243 |
msgid "Enter your chosen name"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
+
#: src/addons/migrator.php:1761, src/addons/sftp.php:467, src/admin.php:868, src/admin.php:5194, src/templates/wp-admin/settings/temporary-clone.php:63
|
1247 |
msgid "Key"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
+
#: src/addons/migrator.php:1763, src/central/bootstrap.php:542
|
1251 |
msgid "Encryption key size:"
|
1252 |
msgstr ""
|
1253 |
|
1254 |
+
#: src/addons/migrator.php:1765, src/addons/migrator.php:1766, src/addons/migrator.php:1768, src/central/bootstrap.php:544, src/central/bootstrap.php:545, src/central/bootstrap.php:547
|
1255 |
msgid "%s bits"
|
1256 |
msgstr ""
|
1257 |
|
1258 |
+
#: src/addons/migrator.php:1765, src/central/bootstrap.php:544
|
1259 |
msgid "easy to break, fastest"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
+
#: src/addons/migrator.php:1766, src/central/bootstrap.php:545
|
1263 |
msgid "faster (possibility for slow PHP installs)"
|
1264 |
msgstr ""
|
1265 |
|
1266 |
+
#: src/addons/migrator.php:1767, src/central/bootstrap.php:546
|
1267 |
msgid "%s bytes"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
+
#: src/addons/migrator.php:1767, src/central/bootstrap.php:546
|
1271 |
msgid "recommended"
|
1272 |
msgstr ""
|
1273 |
|
1274 |
+
#: src/addons/migrator.php:1768, src/central/bootstrap.php:547
|
1275 |
msgid "slower, strongest"
|
1276 |
msgstr ""
|
1277 |
|
1278 |
+
#: src/addons/migrator.php:1771
|
1279 |
msgid "Create key"
|
1280 |
msgstr ""
|
1281 |
|
1282 |
+
#: src/addons/migrator.php:1776
|
1283 |
msgid "Your new key:"
|
1284 |
msgstr ""
|
1285 |
|
1303 |
msgid "database connection attempt failed"
|
1304 |
msgstr ""
|
1305 |
|
1306 |
+
#: src/addons/moredatabase.php:112, src/backup.php:1602
|
1307 |
msgid "Connection failed: check your access details, that the database server is up, and that the network connection is not firewalled."
|
1308 |
msgstr ""
|
1309 |
|
1315 |
msgid "%s total table(s) found; %s with the indicated prefix."
|
1316 |
msgstr ""
|
1317 |
|
1318 |
+
#: src/addons/moredatabase.php:144, src/admin.php:1644
|
1319 |
msgid "Messages:"
|
1320 |
msgstr ""
|
1321 |
|
1359 |
msgid "Username"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
+
#: src/addons/moredatabase.php:242, src/addons/reporting.php:274, src/addons/wp-cli.php:432, src/admin.php:344, src/admin.php:3980, src/admin.php:4033, src/includes/class-remote-send.php:331, src/includes/class-wpadmin-commands.php:157, src/includes/class-wpadmin-commands.php:521, src/restorer.php:354, src/templates/wp-admin/settings/delete-and-restore-modals.php:74, src/templates/wp-admin/settings/delete-and-restore-modals.php:75, src/templates/wp-admin/settings/take-backup.php:34
|
1363 |
msgid "Database"
|
1364 |
msgstr ""
|
1365 |
|
1416 |
msgid "Download"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
+
#: src/addons/morefiles.php:129, src/addons/morefiles.php:130, src/addons/reporting.php:198
|
1420 |
msgid "Contains:"
|
1421 |
msgstr ""
|
1422 |
|
1512 |
msgid "Exclude these:"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
+
#: src/addons/morefiles.php:476, src/admin.php:3834
|
1516 |
msgid "If entering multiple files/directories, then separate them with commas. For entities at the top level, you can use a * at the start or end of the entry as a wildcard."
|
1517 |
msgstr ""
|
1518 |
|
1708 |
msgid "(You appear to be already authenticated)."
|
1709 |
msgstr ""
|
1710 |
|
1711 |
+
#: src/addons/reporting.php:81
|
1712 |
msgid "Your label for this backup (optional)"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
+
#: src/addons/reporting.php:86, src/addons/reporting.php:195, src/backup.php:1134, src/class-updraftplus.php:3940
|
1716 |
msgid "Backup of:"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
+
#: src/addons/reporting.php:166
|
1720 |
msgid "%d errors, %d warnings"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
+
#: src/addons/reporting.php:180
|
1724 |
msgid "%d hours, %d minutes, %d seconds"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
+
#: src/addons/reporting.php:185
|
1728 |
msgid "Backup Report"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
+
#: src/addons/reporting.php:186
|
1732 |
msgid "Backup made by %s"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
+
#: src/addons/reporting.php:196, src/backup.php:1137
|
1736 |
msgid "Latest status:"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
+
#: src/addons/reporting.php:197
|
1740 |
msgid "Backup began:"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
+
#: src/addons/reporting.php:209
|
1744 |
msgid "Errors / warnings:"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
+
#: src/addons/reporting.php:212
|
1748 |
msgid "Errors"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
+
#: src/addons/reporting.php:227
|
1752 |
msgid "Warnings"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
+
#: src/addons/reporting.php:232
|
1756 |
msgid "Note that warning messages are advisory - the backup process does not stop for them. Instead, they provide information that you might find useful, or that may indicate the source of a problem if the backup did not succeed."
|
1757 |
msgstr ""
|
1758 |
|
1759 |
+
#: src/addons/reporting.php:236
|
1760 |
msgid "Time taken:"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
+
#: src/addons/reporting.php:237, src/admin.php:3993
|
1764 |
msgid "Uploaded to:"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
+
#: src/addons/reporting.php:279, src/backup.php:1087
|
1768 |
msgid "The log file has been attached to this email."
|
1769 |
msgstr ""
|
1770 |
|
1771 |
+
#: src/addons/reporting.php:282
|
1772 |
msgid "Debugging information"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
+
#: src/addons/reporting.php:406
|
1776 |
msgid "Use the \"Reporting\" section to configure the email addresses to be used."
|
1777 |
msgstr ""
|
1778 |
|
1779 |
+
#: src/addons/reporting.php:454
|
1780 |
msgid "Email reports"
|
1781 |
msgstr ""
|
1782 |
|
1783 |
+
#: src/addons/reporting.php:480
|
1784 |
msgid "Enter addresses here to have a report sent to them when a backup job finishes."
|
1785 |
msgstr ""
|
1786 |
|
1787 |
+
#: src/addons/reporting.php:495
|
1788 |
msgid "Add another address..."
|
1789 |
msgstr ""
|
1790 |
|
1791 |
+
#: src/addons/reporting.php:509
|
1792 |
msgid "Log all messages to syslog"
|
1793 |
msgstr ""
|
1794 |
|
1795 |
+
#: src/addons/reporting.php:510
|
1796 |
msgid "Log all messages to syslog (only server admins are likely to want this)"
|
1797 |
msgstr ""
|
1798 |
|
1799 |
+
#: src/addons/reporting.php:537, src/admin.php:798
|
1800 |
msgid "To send to more than one address, separate each address with a comma."
|
1801 |
msgstr ""
|
1802 |
|
1803 |
+
#: src/addons/reporting.php:539, src/admin.php:792
|
1804 |
msgid "Send a report only when there are warnings/errors"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
+
#: src/addons/reporting.php:541, src/addons/reporting.php:541, src/addons/reporting.php:543, src/methods/email.php:100
|
1808 |
msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: src/addons/reporting.php:541, src/admin.php:793
|
1812 |
msgid "When the Email storage method is enabled, also send the backup"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: src/addons/reporting.php:543
|
1816 |
msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive as a result UpdraftPlus will only send Database backups to email."
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: src/addons/reporting.php:543
|
1820 |
msgid "Use this option to only send database backups when sending to email, and skip other components."
|
1821 |
msgstr ""
|
1822 |
|
1823 |
+
#: src/addons/reporting.php:543, src/admin.php:796
|
1824 |
msgid "Only email the database backup"
|
1825 |
msgstr ""
|
1826 |
|
2189 |
msgid "Path"
|
2190 |
msgstr ""
|
2191 |
|
2192 |
+
#: src/addons/wp-cli.php:91, src/addons/wp-cli.php:510, src/addons/wp-cli.php:632, src/addons/wp-cli.php:720, src/addons/wp-cli.php:743
|
2193 |
+
msgid "The given value for the '%s' option is not valid"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
+
#: src/addons/wp-cli.php:101
|
2197 |
+
msgid "No previous backup found to add an increment to."
|
2198 |
msgstr ""
|
2199 |
|
2200 |
+
#: src/addons/wp-cli.php:110, src/admin.php:801
|
2201 |
msgid "You have chosen to backup a database, but no tables have been selected"
|
2202 |
msgstr ""
|
2203 |
|
2204 |
+
#: src/addons/wp-cli.php:116, src/admin.php:799
|
2205 |
msgid "If you exclude both the database and the files, then you have excluded everything!"
|
2206 |
msgstr ""
|
2207 |
|
2208 |
+
#: src/addons/wp-cli.php:196
|
2209 |
msgid "Recently started backup job id: %s"
|
2210 |
msgstr ""
|
2211 |
|
2212 |
+
#: src/addons/wp-cli.php:206
|
2213 |
msgid "Backup has been started successfully. You can see the last log message by running the following command: \"%s\""
|
2214 |
msgstr ""
|
2215 |
|
2216 |
+
#: src/addons/wp-cli.php:266
|
2217 |
msgid "Invalid Job Id"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
+
#: src/addons/wp-cli.php:372, src/templates/wp-admin/settings/existing-backups-table.php:99
|
2221 |
msgid "Backup sent to remote site - not available for download."
|
2222 |
msgstr ""
|
2223 |
|
2224 |
+
#: src/addons/wp-cli.php:374, src/templates/wp-admin/settings/existing-backups-table.php:100
|
2225 |
msgid "Site"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
+
#: src/addons/wp-cli.php:408
|
2229 |
msgid "No previous full backup found."
|
2230 |
msgstr ""
|
2231 |
|
2232 |
+
#: src/addons/wp-cli.php:409
|
2233 |
msgid "Latest full backup found; identifier:"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
+
#: src/addons/wp-cli.php:430, src/admin.php:4027, src/admin.php:4075
|
2237 |
msgid "unknown source"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
+
#: src/addons/wp-cli.php:432, src/admin.php:4033
|
2241 |
msgid "Database (created by %s)"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
+
#: src/addons/wp-cli.php:438, src/admin.php:4035
|
2245 |
msgid "External database"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
+
#: src/addons/wp-cli.php:450, src/admin.php:4079
|
2249 |
msgid "Files and database WordPress backup (created by %s)"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
+
#: src/addons/wp-cli.php:450, src/admin.php:4079
|
2253 |
msgid "Files backup (created by %s)"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
+
#: src/addons/wp-cli.php:519, src/admin.php:818, src/class-updraftplus.php:1298, src/class-updraftplus.php:1342, src/includes/class-filesystem-functions.php:380, src/includes/class-storage-methods-interface.php:324, src/methods/addon-base-v2.php:93, src/methods/addon-base-v2.php:98, src/methods/addon-base-v2.php:205, src/methods/addon-base-v2.php:225, src/methods/stream-base.php:219, src/restorer.php:2884, src/restorer.php:2909, src/restorer.php:2990, src/updraftplus.php:157
|
2257 |
msgid "Error"
|
2258 |
msgstr ""
|
2259 |
|
2260 |
+
#: src/addons/wp-cli.php:544
|
2261 |
msgid "Missing parameters"
|
2262 |
msgstr ""
|
2263 |
|
2264 |
+
#: src/addons/wp-cli.php:554
|
2265 |
msgid "Migration key created:"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
+
#: src/addons/wp-cli.php:612, src/addons/wp-cli.php:613, src/includes/class-wpadmin-commands.php:114
|
2269 |
msgid "No such backup set exists"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
+
#: src/addons/wp-cli.php:648, src/admin.php:4498
|
2273 |
msgid "UpdraftPlus Restoration: Progress"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
+
#: src/addons/wp-cli.php:665, src/admin.php:4510
|
2277 |
msgid "Follow this link to download the log file for this restoration (needed for any support requests)."
|
2278 |
msgstr ""
|
2279 |
|
2280 |
+
#: src/addons/wp-cli.php:666
|
2281 |
msgid "Run this command to see the log file for this restoration (needed for any support requests)."
|
2282 |
msgstr ""
|
2283 |
|
2284 |
+
#: src/addons/wp-cli.php:740, src/addons/wp-cli.php:744
|
2285 |
msgid "This is not an incremental backup"
|
2286 |
msgstr ""
|
2287 |
|
2288 |
+
#: src/addons/wp-cli.php:785, src/admin.php:4572
|
2289 |
msgid "Final checks"
|
2290 |
msgstr ""
|
2291 |
|
2292 |
+
#: src/addons/wp-cli.php:794
|
2293 |
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
|
2294 |
msgstr ""
|
2295 |
|
2296 |
+
#: src/addons/wp-cli.php:798, src/admin.php:816, src/admin.php:4588
|
2297 |
msgid "Error data:"
|
2298 |
msgstr ""
|
2299 |
|
2300 |
+
#: src/addons/wp-cli.php:801, src/admin.php:4590, src/admin.php:5346, src/methods/openstack2.php:144, src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27, src/templates/wp-admin/settings/updraftcentral-connect.php:14
|
2301 |
msgid "Follow this link for more information"
|
2302 |
msgstr ""
|
2303 |
|
2304 |
+
#: src/addons/wp-cli.php:835
|
2305 |
msgid "You have given the %1$s option. The %1$s is working with \"%2$s\" addon. Get the \"%2$s\" addon: %3$s"
|
2306 |
msgstr ""
|
2307 |
|
2308 |
+
#: src/addons/wp-cli.php:908, src/admin.php:4468
|
2309 |
msgid "Why am I seeing this?"
|
2310 |
msgstr ""
|
2311 |
|
2321 |
msgid "At the same time as the files backup"
|
2322 |
msgstr ""
|
2323 |
|
2324 |
+
#: src/admin.php:334, src/admin.php:5163, src/templates/wp-admin/settings/take-backup.php:24
|
2325 |
msgid "Files"
|
2326 |
msgstr ""
|
2327 |
|
2328 |
+
#: src/admin.php:334, src/backup.php:1043
|
2329 |
msgid "Files and database"
|
2330 |
msgstr ""
|
2331 |
|
2349 |
msgid "Backup"
|
2350 |
msgstr ""
|
2351 |
|
2352 |
+
#: src/admin.php:671, src/admin.php:2828
|
2353 |
msgid "Migrate / Clone"
|
2354 |
msgstr ""
|
2355 |
|
2356 |
+
#: src/admin.php:679, src/admin.php:1092, src/admin.php:2829
|
2357 |
msgid "Settings"
|
2358 |
msgstr ""
|
2359 |
|
2360 |
+
#: src/admin.php:687, src/admin.php:2830
|
2361 |
msgid "Advanced Tools"
|
2362 |
msgstr ""
|
2363 |
|
2429 |
msgid "Error: the server sent us a response which we did not understand."
|
2430 |
msgstr ""
|
2431 |
|
2432 |
+
#: src/admin.php:819, src/admin.php:1920, src/includes/deprecated-actions.php:29, src/templates/wp-admin/settings/downloading-and-restoring.php:21, src/templates/wp-admin/settings/tab-backups.php:21, src/templates/wp-admin/settings/tab-backups.php:44
|
2433 |
msgid "Existing Backups"
|
2434 |
msgstr ""
|
2435 |
|
2436 |
+
#: src/admin.php:820, src/admin.php:2212
|
2437 |
msgid "File ready."
|
2438 |
msgstr ""
|
2439 |
|
2440 |
+
#: src/admin.php:821, src/admin.php:2543, src/admin.php:2553, src/admin.php:2562, src/admin.php:2604, src/admin.php:3435, src/templates/wp-admin/settings/existing-backups-table.php:19, src/templates/wp-admin/settings/existing-backups-table.php:137
|
2441 |
msgid "Actions"
|
2442 |
msgstr ""
|
2443 |
|
2465 |
msgid "PHP information"
|
2466 |
msgstr ""
|
2467 |
|
2468 |
+
#: src/admin.php:828, src/admin.php:3150
|
2469 |
msgid "Delete Old Directories"
|
2470 |
msgstr ""
|
2471 |
|
2473 |
msgid "Raw backup history"
|
2474 |
msgstr ""
|
2475 |
|
2476 |
+
#: src/admin.php:830, src/admin.php:831, src/includes/class-backup-history.php:506
|
2477 |
msgid "This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz))."
|
2478 |
msgstr ""
|
2479 |
|
2481 |
msgid "However, UpdraftPlus archives are standard zip/SQL files - so if you are sure that your file has the right format, then you can rename it to match that pattern."
|
2482 |
msgstr ""
|
2483 |
|
2484 |
+
#: src/admin.php:831, src/includes/class-backup-history.php:506
|
2485 |
msgid "If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you."
|
2486 |
msgstr ""
|
2487 |
|
2521 |
msgid "The file was uploaded."
|
2522 |
msgstr ""
|
2523 |
|
2524 |
+
#: src/admin.php:842, src/templates/wp-admin/settings/take-backup.php:51
|
2525 |
msgid "Backup Now"
|
2526 |
msgstr ""
|
2527 |
|
2528 |
+
#: src/admin.php:844, src/admin.php:3463, src/admin.php:3497, src/admin.php:4270, src/includes/class-remote-send.php:544, src/templates/wp-admin/settings/existing-backups-table.php:153, src/templates/wp-admin/settings/file-backup-exclude.php:11
|
2529 |
msgid "Delete"
|
2530 |
msgstr ""
|
2531 |
|
2533 |
msgid "Create"
|
2534 |
msgstr ""
|
2535 |
|
2536 |
+
#: src/admin.php:846, src/admin.php:4250
|
2537 |
msgid "Upload"
|
2538 |
msgstr ""
|
2539 |
|
2545 |
msgid "Close"
|
2546 |
msgstr ""
|
2547 |
|
2548 |
+
#: src/admin.php:851, src/admin.php:3701
|
2549 |
msgid "Download log file"
|
2550 |
msgstr ""
|
2551 |
|
2557 |
msgid "Saving..."
|
2558 |
msgstr ""
|
2559 |
|
2560 |
+
#: src/admin.php:855, src/admin.php:2908, src/methods/updraftvault.php:319, src/methods/updraftvault.php:362, src/templates/wp-admin/settings/temporary-clone.php:82
|
2561 |
msgid "Connect"
|
2562 |
msgstr ""
|
2563 |
|
2613 |
msgid "key name"
|
2614 |
msgstr ""
|
2615 |
|
2616 |
+
#: src/admin.php:870, src/templates/wp-admin/settings/existing-backups-table.php:159
|
2617 |
msgid "Deleting..."
|
2618 |
msgstr ""
|
2619 |
|
2721 |
msgid "Complete"
|
2722 |
msgstr ""
|
2723 |
|
2724 |
+
#: src/admin.php:905, src/admin.php:3208
|
2725 |
msgid "The backup has finished running"
|
2726 |
msgstr ""
|
2727 |
|
2782 |
msgstr ""
|
2783 |
|
2784 |
#: src/admin.php:925
|
2785 |
+
msgid "Local backup upload has started; please check the log file to see the upload progress"
|
2786 |
msgstr ""
|
2787 |
|
2788 |
#: src/admin.php:926
|
2893 |
msgid "UpdraftClone key is required."
|
2894 |
msgstr ""
|
2895 |
|
2896 |
+
#: src/admin.php:954, src/templates/wp-admin/settings/backupnow-modal.php:40
|
2897 |
+
msgid "Include your files in the backup"
|
2898 |
+
msgstr ""
|
2899 |
+
|
2900 |
+
#: src/admin.php:955
|
2901 |
+
msgid "File backup options"
|
2902 |
+
msgstr ""
|
2903 |
+
|
2904 |
+
#: src/admin.php:1094
|
2905 |
msgid "Add-Ons / Pro Support"
|
2906 |
msgstr ""
|
2907 |
|
2908 |
+
#: src/admin.php:1135
|
2909 |
msgid "An error occurred when fetching storage module options: "
|
2910 |
msgstr ""
|
2911 |
|
2912 |
+
#: src/admin.php:1140, src/includes/class-commands.php:466, src/templates/wp-admin/settings/take-backup.php:13
|
2913 |
msgid "The 'Backup Now' button is disabled as your backup directory is not writable (go to the 'Settings' tab and find the relevant option)."
|
2914 |
msgstr ""
|
2915 |
|
2916 |
+
#: src/admin.php:1145
|
2917 |
msgid "Welcome to UpdraftPlus!"
|
2918 |
msgstr ""
|
2919 |
|
2920 |
+
#: src/admin.php:1145
|
2921 |
msgid "To make a backup, just press the Backup Now button."
|
2922 |
msgstr ""
|
2923 |
|
2924 |
+
#: src/admin.php:1145
|
2925 |
msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
|
2926 |
msgstr ""
|
2927 |
|
2928 |
+
#: src/admin.php:1149, src/class-updraftplus.php:848
|
2929 |
msgid "The amount of time allowed for WordPress plugins to run is very low (%s seconds) - you should increase it to avoid backup failures due to time-outs (consult your web hosting company for more help - it is the max_execution_time PHP setting; the recommended value is %s seconds or more)"
|
2930 |
msgstr ""
|
2931 |
|
2932 |
+
#: src/admin.php:1153
|
2933 |
msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even "Backup Now") unless either you have set up a facility to call the scheduler manually, or until it is enabled."
|
2934 |
msgstr ""
|
2935 |
|
2936 |
+
#: src/admin.php:1157
|
2937 |
msgid "You have less than %s of free disk space on the disk which UpdraftPlus is configured to use to create backups. UpdraftPlus could well run out of space. Contact your the operator of your server (e.g. your web hosting company) to resolve this issue."
|
2938 |
msgstr ""
|
2939 |
|
2940 |
+
#: src/admin.php:1161
|
2941 |
msgid "UpdraftPlus does not officially support versions of WordPress before %s. It may work for you, but if it does not, then please be aware that no support is available until you upgrade WordPress."
|
2942 |
msgstr ""
|
2943 |
|
2944 |
+
#: src/admin.php:1165
|
2945 |
msgid "Your website is hosted using the %s web server."
|
2946 |
msgstr ""
|
2947 |
|
2948 |
+
#: src/admin.php:1165
|
2949 |
msgid "Please consult this FAQ if you have problems backing up."
|
2950 |
msgstr ""
|
2951 |
|
2952 |
+
#: src/admin.php:1169
|
2953 |
msgid "Notice"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
+
#: src/admin.php:1169
|
2957 |
msgid "UpdraftPlus's debug mode is on. You may see debugging notices on this page not just from UpdraftPlus, but from any other plugin installed. Please try to make sure that the notice you are seeing is from UpdraftPlus before you raise a support request."
|
2958 |
msgstr ""
|
2959 |
|
2960 |
+
#: src/admin.php:1174
|
2961 |
msgid "WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working."
|
2962 |
msgstr ""
|
2963 |
|
2964 |
+
#: src/admin.php:1174
|
2965 |
msgid "Read this page for a guide to possible causes and how to fix it."
|
2966 |
msgstr ""
|
2967 |
|
2968 |
+
#: src/admin.php:1194, src/admin.php:1215, src/admin.php:1234, src/class-updraftplus.php:584, src/class-updraftplus.php:619, src/class-updraftplus.php:624, src/class-updraftplus.php:629
|
2969 |
msgid "UpdraftPlus notice:"
|
2970 |
msgstr ""
|
2971 |
|
2972 |
+
#: src/admin.php:1194
|
2973 |
msgid "%s has been chosen for remote storage, but you are not currently connected."
|
2974 |
msgstr ""
|
2975 |
|
2976 |
+
#: src/admin.php:1194
|
2977 |
msgid "Go to the remote storage settings in order to connect."
|
2978 |
msgstr ""
|
2979 |
|
2980 |
+
#: src/admin.php:1336, src/admin.php:1346
|
2981 |
msgid "Error: invalid path"
|
2982 |
msgstr ""
|
2983 |
|
2984 |
+
#: src/admin.php:1697, src/includes/class-wpadmin-commands.php:506
|
2985 |
msgid "Backup set not found"
|
2986 |
msgstr ""
|
2987 |
|
2988 |
+
#: src/admin.php:1783
|
2989 |
msgid "Did not know how to delete from this cloud service."
|
2990 |
msgstr ""
|
2991 |
|
2992 |
+
#: src/admin.php:1864
|
2993 |
msgid "Backup sets removed:"
|
2994 |
msgstr ""
|
2995 |
|
2996 |
+
#: src/admin.php:1865
|
2997 |
msgid "Local files deleted:"
|
2998 |
msgstr ""
|
2999 |
|
3000 |
+
#: src/admin.php:1866
|
3001 |
msgid "Remote files deleted:"
|
3002 |
msgstr ""
|
3003 |
|
3004 |
+
#: src/admin.php:1953
|
3005 |
msgid "Job deleted"
|
3006 |
msgstr ""
|
3007 |
|
3008 |
+
#: src/admin.php:1961
|
3009 |
msgid "Could not find that job - perhaps it has already finished?"
|
3010 |
msgstr ""
|
3011 |
|
3012 |
+
#: src/admin.php:2059, src/admin.php:2080, src/includes/class-commands.php:837
|
3013 |
msgid "Start backup"
|
3014 |
msgstr ""
|
3015 |
|
3016 |
+
#: src/admin.php:2059, src/includes/class-commands.php:837
|
3017 |
msgid "OK. You should soon see activity in the \"Last log message\" field below."
|
3018 |
msgstr ""
|
3019 |
|
3020 |
+
#: src/admin.php:2142, src/admin.php:2146, src/class-updraftplus.php:619
|
3021 |
msgid "The log file could not be read."
|
3022 |
msgstr ""
|
3023 |
|
3024 |
+
#: src/admin.php:2193
|
3025 |
msgid "Download failed"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
+
#: src/admin.php:2223
|
3029 |
msgid "Download in progress"
|
3030 |
msgstr ""
|
3031 |
|
3032 |
+
#: src/admin.php:2226
|
3033 |
msgid "No local copy present."
|
3034 |
msgstr ""
|
3035 |
|
3036 |
+
#: src/admin.php:2280, src/backup.php:1358
|
3037 |
msgid "Backup directory (%s) is not writable, or does not exist."
|
3038 |
msgstr ""
|
3039 |
|
3040 |
+
#: src/admin.php:2280
|
3041 |
msgid "You will find more information about this in the Settings section."
|
3042 |
msgstr ""
|
3043 |
|
3044 |
+
#: src/admin.php:2317
|
3045 |
msgid "This file could not be uploaded"
|
3046 |
msgstr ""
|
3047 |
|
3048 |
+
#: src/admin.php:2332
|
3049 |
msgid "This backup was created by %s, and can be imported."
|
3050 |
msgstr ""
|
3051 |
|
3052 |
+
#: src/admin.php:2338
|
3053 |
msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
|
3054 |
msgstr ""
|
3055 |
|
3056 |
+
#: src/admin.php:2346
|
3057 |
msgid "This looks like a file created by UpdraftPlus, but this install does not know about this type of object: %s. Perhaps you need to install an add-on?"
|
3058 |
msgstr ""
|
3059 |
|
3060 |
+
#: src/admin.php:2438
|
3061 |
msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
|
3062 |
msgstr ""
|
3063 |
|
3064 |
+
#: src/admin.php:2505, src/admin.php:2514
|
3065 |
msgid "Sufficient information about the in-progress restoration operation could not be found."
|
3066 |
msgstr ""
|
3067 |
|
3068 |
+
#: src/admin.php:2595
|
3069 |
msgid "Backup directory could not be created"
|
3070 |
msgstr ""
|
3071 |
|
3072 |
+
#: src/admin.php:2602
|
3073 |
msgid "Backup directory successfully created."
|
3074 |
msgstr ""
|
3075 |
|
3076 |
+
#: src/admin.php:2620, src/class-updraftplus.php:4035, src/restorer.php:2647
|
3077 |
msgid "Warning:"
|
3078 |
msgstr ""
|
3079 |
|
3080 |
+
#: src/admin.php:2620
|
3081 |
msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
|
3082 |
msgstr ""
|
3083 |
|
3084 |
+
#: src/admin.php:2623
|
3085 |
msgid "The UpdraftPlus directory in wp-content/plugins has white-space in it; WordPress does not like this. You should rename the directory to wp-content/plugins/updraftplus to fix this problem."
|
3086 |
msgstr ""
|
3087 |
|
3088 |
+
#: src/admin.php:2638
|
3089 |
msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
|
3090 |
msgstr ""
|
3091 |
|
3092 |
+
#: src/admin.php:2638
|
3093 |
msgid "To fix this problem go here."
|
3094 |
msgstr ""
|
3095 |
|
3096 |
+
#: src/admin.php:2640
|
3097 |
msgid "For even more features and personal support, check out "
|
3098 |
msgstr ""
|
3099 |
|
3100 |
+
#: src/admin.php:2642
|
3101 |
msgid "Your backup has been restored."
|
3102 |
msgstr ""
|
3103 |
|
3104 |
+
#: src/admin.php:2667
|
3105 |
msgid "Your PHP memory limit (set by your web hosting company) is very low. UpdraftPlus attempted to raise it but was unsuccessful. This plugin may struggle with a memory limit of less than 64 Mb - especially if you have very large files uploaded (though on the other hand, many sites will be successful with a 32Mb limit - your experience may vary)."
|
3106 |
msgstr ""
|
3107 |
|
3108 |
+
#: src/admin.php:2667
|
3109 |
msgid "Current limit is:"
|
3110 |
msgstr ""
|
3111 |
|
3112 |
+
#: src/admin.php:2728
|
3113 |
msgid "Backup Contents And Schedule"
|
3114 |
msgstr ""
|
3115 |
|
3116 |
+
#: src/admin.php:2827
|
3117 |
msgid "Backup / Restore"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
+
#: src/admin.php:2831
|
3121 |
msgid "Premium / Extensions"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
+
#: src/admin.php:2865
|
3125 |
msgid "%s minutes, %s seconds"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
+
#: src/admin.php:2867
|
3129 |
msgid "Unfinished restoration"
|
3130 |
msgstr ""
|
3131 |
|
3132 |
+
#: src/admin.php:2868
|
3133 |
msgid "You have an unfinished restoration operation, begun %s ago."
|
3134 |
msgstr ""
|
3135 |
|
3136 |
+
#: src/admin.php:2873
|
3137 |
msgid "Continue restoration"
|
3138 |
msgstr ""
|
3139 |
|
3140 |
+
#: src/admin.php:2874, src/templates/wp-admin/notices/horizontal-notice.php:16, src/templates/wp-admin/notices/horizontal-notice.php:18
|
3141 |
msgid "Dismiss"
|
3142 |
msgstr ""
|
3143 |
|
3144 |
+
#: src/admin.php:2895
|
3145 |
msgid "Not yet got an account (it's free)? Go get one!"
|
3146 |
msgstr ""
|
3147 |
|
3148 |
+
#: src/admin.php:2906
|
3149 |
msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
|
3150 |
msgstr ""
|
3151 |
|
3152 |
+
#: src/admin.php:2918, src/includes/class-commands.php:905, src/includes/class-commands.php:953, src/templates/wp-admin/settings/temporary-clone.php:83, src/templates/wp-admin/settings/updraftcentral-connect.php:71
|
3153 |
msgid "Processing"
|
3154 |
msgstr ""
|
3155 |
|
3156 |
+
#: src/admin.php:2961
|
3157 |
msgid "Connect with your UpdraftPlus.Com account"
|
3158 |
msgstr ""
|
3159 |
|
3160 |
+
#: src/admin.php:2967, src/templates/wp-admin/settings/form-contents.php:255, src/templates/wp-admin/settings/updraftcentral-connect.php:44
|
3161 |
msgid "Email"
|
3162 |
msgstr ""
|
3163 |
|
3164 |
+
#: src/admin.php:2982
|
3165 |
msgid "Forgotten your details?"
|
3166 |
msgstr ""
|
3167 |
|
3168 |
+
#: src/admin.php:2994
|
3169 |
msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
|
3170 |
msgstr ""
|
3171 |
|
3172 |
+
#: src/admin.php:3016, src/templates/wp-admin/settings/updraftcentral-connect.php:56
|
3173 |
msgid "One Time Password (check your OTP app to get this password)"
|
3174 |
msgstr ""
|
3175 |
|
3176 |
+
#: src/admin.php:3086
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3177 |
msgid "Latest UpdraftPlus.com news:"
|
3178 |
msgstr ""
|
3179 |
|
3180 |
+
#: src/admin.php:3113
|
3181 |
msgid "Download most recently modified log file"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
+
#: src/admin.php:3144
|
3185 |
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old). You should press this button to delete them as soon as you have verified that the restoration worked."
|
3186 |
msgstr ""
|
3187 |
|
3188 |
+
#: src/admin.php:3208, src/admin.php:4280
|
3189 |
msgid "View Log"
|
3190 |
msgstr ""
|
3191 |
|
3192 |
+
#: src/admin.php:3247
|
3193 |
msgid "Backup begun"
|
3194 |
msgstr ""
|
3195 |
|
3196 |
+
#: src/admin.php:3252
|
3197 |
msgid "Creating file backup zips"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
+
#: src/admin.php:3265
|
3201 |
msgid "Created file backup zips"
|
3202 |
msgstr ""
|
3203 |
|
3204 |
+
#: src/admin.php:3270
|
3205 |
msgid "Clone server being provisioned and booted (can take several minutes)"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
+
#: src/admin.php:3274
|
3209 |
msgid "Uploading files to remote storage"
|
3210 |
msgstr ""
|
3211 |
|
3212 |
+
#: src/admin.php:3275
|
3213 |
msgid "Sending files to remote site"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
+
#: src/admin.php:3282
|
3217 |
msgid "(%s%%, file %s of %s)"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
+
#: src/admin.php:3287
|
3221 |
msgid "Pruning old backup sets"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
+
#: src/admin.php:3291
|
3225 |
msgid "Waiting until scheduled time to retry because of errors"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
+
#: src/admin.php:3296
|
3229 |
msgid "Backup finished"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
+
#: src/admin.php:3309
|
3233 |
msgid "Created database backup"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
+
#: src/admin.php:3320
|
3237 |
msgid "Creating database backup"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
+
#: src/admin.php:3322
|
3241 |
msgid "table: %s"
|
3242 |
msgstr ""
|
3243 |
|
3244 |
+
#: src/admin.php:3335
|
3245 |
msgid "Encrypting database"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
+
#: src/admin.php:3343
|
3249 |
msgid "Encrypted database"
|
3250 |
msgstr ""
|
3251 |
|
3252 |
+
#: src/admin.php:3345, src/central/bootstrap.php:444, src/central/bootstrap.php:451, src/methods/updraftvault.php:410, src/methods/updraftvault.php:444, src/methods/updraftvault.php:529
|
3253 |
msgid "Unknown"
|
3254 |
msgstr ""
|
3255 |
|
3256 |
+
#: src/admin.php:3362
|
3257 |
msgid "next resumption: %d (after %ss)"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
+
#: src/admin.php:3363
|
3261 |
msgid "last activity: %ss ago"
|
3262 |
msgstr ""
|
3263 |
|
3264 |
+
#: src/admin.php:3383
|
3265 |
msgid "Job ID: %s"
|
3266 |
msgstr ""
|
3267 |
|
3268 |
+
#: src/admin.php:3397, src/admin.php:3687
|
3269 |
msgid "Warning: %s"
|
3270 |
msgstr ""
|
3271 |
|
3272 |
+
#: src/admin.php:3417
|
3273 |
msgid "show log"
|
3274 |
msgstr ""
|
3275 |
|
3276 |
+
#: src/admin.php:3418
|
3277 |
msgid "Note: the progress bar below is based on stages, NOT time. Do not stop the backup simply because it seems to have remained in the same place for a while - that is normal."
|
3278 |
msgstr ""
|
3279 |
|
3280 |
+
#: src/admin.php:3418
|
3281 |
msgid "stop"
|
3282 |
msgstr ""
|
3283 |
|
3284 |
+
#: src/admin.php:3428, src/admin.php:3428
|
3285 |
msgid "Remove old directories"
|
3286 |
msgstr ""
|
3287 |
|
3288 |
+
#: src/admin.php:3431
|
3289 |
msgid "Old directories successfully removed."
|
3290 |
msgstr ""
|
3291 |
|
3292 |
+
#: src/admin.php:3433
|
3293 |
msgid "Old directory removal failed for some reason. You may want to do this manually."
|
3294 |
msgstr ""
|
3295 |
|
3296 |
+
#: src/admin.php:3470, src/admin.php:3505, src/admin.php:3509, src/includes/class-remote-send.php:327, src/includes/class-storage-methods-interface.php:315, src/restorer.php:226, src/restorer.php:2888, src/restorer.php:2993
|
3297 |
msgid "OK"
|
3298 |
msgstr ""
|
3299 |
|
3300 |
+
#: src/admin.php:3554
|
3301 |
msgid "The request to the filesystem to create the directory failed."
|
3302 |
msgstr ""
|
3303 |
|
3304 |
+
#: src/admin.php:3568
|
3305 |
msgid "The folder was created, but we had to change its file permissions to 777 (world-writable) to be able to write to it. You should check with your hosting provider that this will not cause any problems"
|
3306 |
msgstr ""
|
3307 |
|
3308 |
+
#: src/admin.php:3573
|
3309 |
msgid "The folder exists, but your webserver does not have permission to write to it."
|
3310 |
msgstr ""
|
3311 |
|
3312 |
+
#: src/admin.php:3573
|
3313 |
msgid "You will need to consult with your web hosting provider to find out how to set permissions for a WordPress plugin to write to the directory."
|
3314 |
msgstr ""
|
3315 |
|
3316 |
+
#: src/admin.php:3675
|
3317 |
msgid "incremental backup; base backup: %s"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
+
#: src/admin.php:3705
|
3321 |
msgid "No backup has been completed"
|
3322 |
msgstr ""
|
3323 |
|
3324 |
+
#: src/admin.php:3719
|
3325 |
msgctxt "i.e. Non-automatic"
|
3326 |
msgid "Manual"
|
3327 |
msgstr ""
|
3328 |
|
3329 |
+
#: src/admin.php:3732
|
3330 |
msgid "Backup directory specified is writable, which is good."
|
3331 |
msgstr ""
|
3332 |
|
3333 |
+
#: src/admin.php:3736
|
3334 |
msgid "Backup directory specified does <b>not</b> exist."
|
3335 |
msgstr ""
|
3336 |
|
3337 |
+
#: src/admin.php:3738
|
3338 |
msgid "Backup directory specified exists, but is <b>not</b> writable."
|
3339 |
msgstr ""
|
3340 |
|
3341 |
+
#: src/admin.php:3740
|
3342 |
msgid "Follow this link to attempt to create the directory and set the permissions"
|
3343 |
msgstr ""
|
3344 |
|
3345 |
+
#: src/admin.php:3740
|
3346 |
msgid "or, to reset this option"
|
3347 |
msgstr ""
|
3348 |
|
3349 |
+
#: src/admin.php:3740
|
3350 |
msgid "press here"
|
3351 |
msgstr ""
|
3352 |
|
3353 |
+
#: src/admin.php:3740
|
3354 |
msgid "If that is unsuccessful check the permissions on your server or change it to another directory that is writable by your web server process."
|
3355 |
msgstr ""
|
3356 |
|
3357 |
+
#: src/admin.php:3820
|
3358 |
msgid "Your wp-content directory server path: %s"
|
3359 |
msgstr ""
|
3360 |
|
3361 |
+
#: src/admin.php:3820
|
3362 |
msgid "Any other directories found inside wp-content"
|
3363 |
msgstr ""
|
3364 |
|
3365 |
+
#: src/admin.php:3831
|
3366 |
msgid "Exclude these from"
|
3367 |
msgstr ""
|
3368 |
|
3369 |
+
#: src/admin.php:3919
|
3370 |
msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
|
3371 |
msgstr ""
|
3372 |
|
3373 |
+
#: src/admin.php:3921
|
3374 |
msgid "Your web server's PHP/Curl installation does not support https access. We cannot access %s without this support. Please contact your web hosting provider's support. %s <strong>requires</strong> Curl+https. Please do not file any support requests; there is no alternative."
|
3375 |
msgstr ""
|
3376 |
|
3377 |
+
#: src/admin.php:3924
|
3378 |
msgid "Good news: Your site's communications with %s can be encrypted. If you see any errors to do with encryption, then look in the 'Expert Settings' for more help."
|
3379 |
msgstr ""
|
3380 |
|
3381 |
+
#: src/admin.php:3962, src/templates/wp-admin/settings/backupnow-modal.php:60, src/templates/wp-admin/settings/existing-backups-table.php:71, src/templates/wp-admin/settings/existing-backups-table.php:74
|
3382 |
+
msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
|
3383 |
+
msgstr ""
|
3384 |
+
|
3385 |
+
#: src/admin.php:4010
|
3386 |
msgid "Total backup size:"
|
3387 |
msgstr ""
|
3388 |
|
3389 |
+
#: src/admin.php:4076, src/includes/class-wpadmin-commands.php:162, src/restorer.php:1975
|
3390 |
msgid "Backup created by unknown source (%s) - cannot be restored."
|
3391 |
msgstr ""
|
3392 |
|
3393 |
+
#: src/admin.php:4105
|
3394 |
msgid "Press here to download or browse"
|
3395 |
msgstr ""
|
3396 |
|
3397 |
+
#: src/admin.php:4110
|
3398 |
msgid "(%d archive(s) in set)."
|
3399 |
msgstr ""
|
3400 |
|
3401 |
+
#: src/admin.php:4113
|
3402 |
msgid "You appear to be missing one or more archives from this multi-archive set."
|
3403 |
msgstr ""
|
3404 |
|
3405 |
+
#: src/admin.php:4141, src/admin.php:4143
|
3406 |
msgid "(Not finished)"
|
3407 |
msgstr ""
|
3408 |
|
3409 |
+
#: src/admin.php:4143
|
3410 |
msgid "If you are seeing more backups than you expect, then it is probably because the deletion of old backup sets does not happen until a fresh backup completes."
|
3411 |
msgstr ""
|
3412 |
|
3413 |
+
#: src/admin.php:4168
|
3414 |
msgid "(backup set imported from remote location)"
|
3415 |
msgstr ""
|
3416 |
|
3417 |
+
#: src/admin.php:4171
|
3418 |
msgid "After pressing this button, you will be given the option to choose which components you wish to restore"
|
3419 |
msgstr ""
|
3420 |
|
3421 |
+
#: src/admin.php:4250
|
3422 |
msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
|
3423 |
msgstr ""
|
3424 |
|
3425 |
+
#: src/admin.php:4270
|
3426 |
msgid "Delete this backup set"
|
3427 |
msgstr ""
|
3428 |
|
3429 |
+
#: src/admin.php:4490
|
3430 |
msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
|
3431 |
msgstr ""
|
3432 |
|
3433 |
+
#: src/admin.php:4491
|
3434 |
msgid "Backup does not exist in the backup history"
|
3435 |
msgstr ""
|
3436 |
|
3437 |
+
#: src/admin.php:4519
|
3438 |
msgid "ABORT: Could not find the information on which entities to restore."
|
3439 |
msgstr ""
|
3440 |
|
3441 |
+
#: src/admin.php:4520
|
3442 |
msgid "If making a request for support, please include this information:"
|
3443 |
msgstr ""
|
3444 |
|
3445 |
+
#: src/admin.php:4803
|
3446 |
msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
|
3447 |
msgstr ""
|
3448 |
|
3449 |
+
#: src/admin.php:4803
|
3450 |
msgid "settings"
|
3451 |
msgstr ""
|
3452 |
|
3453 |
+
#: src/admin.php:4803
|
3454 |
msgid "Not got any remote storage?"
|
3455 |
msgstr ""
|
3456 |
|
3457 |
+
#: src/admin.php:4803
|
3458 |
msgid "Check out UpdraftPlus Vault."
|
3459 |
msgstr ""
|
3460 |
|
3461 |
+
#: src/admin.php:4805
|
3462 |
msgid "Send this backup to remote storage"
|
3463 |
msgstr ""
|
3464 |
|
3465 |
+
#: src/admin.php:4895
|
3466 |
msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
|
3467 |
msgstr ""
|
3468 |
|
3469 |
+
#: src/admin.php:4902, src/templates/wp-admin/settings/take-backup.php:51
|
3470 |
msgid "This button is disabled because your backup directory is not writable (see the settings)."
|
3471 |
msgstr ""
|
3472 |
|
3473 |
+
#: src/admin.php:4931
|
3474 |
msgid "Your settings have been saved."
|
3475 |
msgstr ""
|
3476 |
|
3477 |
+
#: src/admin.php:4936
|
3478 |
msgid "Your settings failed to save. Please refresh the settings page and try again"
|
3479 |
msgstr ""
|
3480 |
|
3481 |
+
#: src/admin.php:4984
|
3482 |
msgid "authentication error"
|
3483 |
msgstr ""
|
3484 |
|
3485 |
+
#: src/admin.php:4988
|
3486 |
msgid "Remote storage method and instance id are required for authentication."
|
3487 |
msgstr ""
|
3488 |
|
3489 |
+
#: src/admin.php:5055
|
3490 |
msgid "Your settings have been wiped."
|
3491 |
msgstr ""
|
3492 |
|
3493 |
+
#: src/admin.php:5156
|
3494 |
msgid "Known backups (raw)"
|
3495 |
msgstr ""
|
3496 |
|
3497 |
+
#: src/admin.php:5191
|
3498 |
msgid "Options (raw)"
|
3499 |
msgstr ""
|
3500 |
|
3501 |
+
#: src/admin.php:5194
|
3502 |
msgid "Value"
|
3503 |
msgstr ""
|
3504 |
|
3505 |
+
#: src/admin.php:5346
|
3506 |
msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
|
3507 |
msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
|
3508 |
msgstr[0] ""
|
3509 |
msgstr[1] ""
|
3510 |
|
3511 |
+
#: src/admin.php:5368, src/admin.php:5372, src/templates/wp-admin/advanced/site-info.php:45, src/templates/wp-admin/advanced/site-info.php:51, src/templates/wp-admin/advanced/site-info.php:58, src/templates/wp-admin/advanced/site-info.php:59
|
3512 |
msgid "%s version:"
|
3513 |
msgstr ""
|
3514 |
|
3515 |
+
#: src/admin.php:5376
|
3516 |
msgid "Clone region:"
|
3517 |
msgstr ""
|
3518 |
|
3519 |
+
#: src/admin.php:5381
|
3520 |
msgid "Forbid non-administrators to login to WordPress on your clone"
|
3521 |
msgstr ""
|
3522 |
|
3523 |
+
#: src/admin.php:5404
|
3524 |
msgid "(current version)"
|
3525 |
msgstr ""
|
3526 |
|
3527 |
+
#: src/admin.php:5424
|
3528 |
msgid "Your clone has started and will be available at the following URLs once it is ready."
|
3529 |
msgstr ""
|
3530 |
|
3531 |
+
#: src/admin.php:5425
|
3532 |
msgid "Front page:"
|
3533 |
msgstr ""
|
3534 |
|
3535 |
+
#: src/admin.php:5426
|
3536 |
msgid "Dashboard:"
|
3537 |
msgstr ""
|
3538 |
|
3539 |
+
#: src/admin.php:5428, src/admin.php:5431
|
3540 |
msgid "You can find your temporary clone information in your updraftplus.com account here."
|
3541 |
msgstr ""
|
3542 |
|
3543 |
+
#: src/admin.php:5430
|
3544 |
msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
|
3545 |
msgstr ""
|
3546 |
|
3552 |
msgid "Could not create %s zip. Consult the log file for more information."
|
3553 |
msgstr ""
|
3554 |
|
3555 |
+
#: src/backup.php:450, src/backup.php:2130, src/class-updraftplus.php:2125, src/class-updraftplus.php:2192, src/includes/class-storage-methods-interface.php:364, src/restorer.php:370
|
3556 |
msgid "A PHP exception (%s) has occurred: %s"
|
3557 |
msgstr ""
|
3558 |
|
3559 |
+
#: src/backup.php:456, src/backup.php:2139, src/class-updraftplus.php:2134, src/class-updraftplus.php:2199, src/includes/class-storage-methods-interface.php:373, src/restorer.php:384
|
3560 |
msgid "A PHP fatal error (%s) has occurred: %s"
|
3561 |
msgstr ""
|
3562 |
|
3563 |
+
#: src/backup.php:1036
|
3564 |
msgid "Full backup"
|
3565 |
msgstr ""
|
3566 |
|
3567 |
+
#: src/backup.php:1036
|
3568 |
msgid "Incremental"
|
3569 |
msgstr ""
|
3570 |
|
3571 |
+
#: src/backup.php:1041, src/class-updraftplus.php:2996
|
3572 |
msgid "The backup was aborted by the user"
|
3573 |
msgstr ""
|
3574 |
|
3575 |
+
#: src/backup.php:1045
|
3576 |
msgid "Files (database backup has not completed)"
|
3577 |
msgstr ""
|
3578 |
|
3579 |
+
#: src/backup.php:1045
|
3580 |
msgid "Files only (database was not part of this particular schedule)"
|
3581 |
msgstr ""
|
3582 |
|
3583 |
+
#: src/backup.php:1048
|
3584 |
msgid "Database (files backup has not completed)"
|
3585 |
msgstr ""
|
3586 |
|
3587 |
+
#: src/backup.php:1048
|
3588 |
msgid "Database only (files were not part of this particular schedule)"
|
3589 |
msgstr ""
|
3590 |
|
3591 |
+
#: src/backup.php:1051
|
3592 |
msgid "Unknown/unexpected error - please raise a support request"
|
3593 |
msgstr ""
|
3594 |
|
3595 |
+
#: src/backup.php:1060
|
3596 |
msgid "Errors encountered:"
|
3597 |
msgstr ""
|
3598 |
|
3599 |
+
#: src/backup.php:1078
|
3600 |
msgid "Warnings encountered:"
|
3601 |
msgstr ""
|
3602 |
|
3603 |
+
#: src/backup.php:1093
|
3604 |
msgid "Backed up: %s"
|
3605 |
msgstr ""
|
3606 |
|
3607 |
+
#: src/backup.php:1102
|
3608 |
msgid "Email reports created by UpdraftPlus (free edition) bring you the latest UpdraftPlus.com news"
|
3609 |
msgstr ""
|
3610 |
|
3611 |
+
#: src/backup.php:1102
|
3612 |
msgid "read more at %s"
|
3613 |
msgstr ""
|
3614 |
|
3615 |
+
#: src/backup.php:1135
|
3616 |
msgid "WordPress backup is complete"
|
3617 |
msgstr ""
|
3618 |
|
3619 |
+
#: src/backup.php:1136
|
3620 |
msgid "Backup contains:"
|
3621 |
msgstr ""
|
3622 |
|
3623 |
+
#: src/backup.php:1602
|
3624 |
msgid "database connection attempt failed."
|
3625 |
msgstr ""
|
3626 |
|
3627 |
+
#: src/backup.php:1648
|
3628 |
msgid "please wait for the rescheduled attempt"
|
3629 |
msgstr ""
|
3630 |
|
3631 |
+
#: src/backup.php:1650
|
3632 |
msgid "No database tables found"
|
3633 |
msgstr ""
|
3634 |
|
3635 |
+
#: src/backup.php:1661
|
3636 |
msgid "The backup directory is not writable (or disk space is full) - the database backup is expected to shortly fail."
|
3637 |
msgstr ""
|
3638 |
|
3639 |
+
#: src/backup.php:1739
|
3640 |
msgid "Table %s has very many rows (%s) - we hope your web hosting company gives you enough resources to dump out that table in the backup"
|
3641 |
msgstr ""
|
3642 |
|
3643 |
+
#: src/backup.php:1739
|
3644 |
msgid "If not, you will need to either remove data from this table, or contact your hosting company to request more resources."
|
3645 |
msgstr ""
|
3646 |
|
3647 |
+
#: src/backup.php:1789, src/backup.php:1791
|
3648 |
msgid "The database backup appears to have failed"
|
3649 |
msgstr ""
|
3650 |
|
3651 |
+
#: src/backup.php:1789
|
3652 |
msgid "no options or sitemeta table was found"
|
3653 |
msgstr ""
|
3654 |
|
3655 |
+
#: src/backup.php:1791
|
3656 |
msgid "the options table was not found"
|
3657 |
msgstr ""
|
3658 |
|
3659 |
+
#: src/backup.php:1839
|
3660 |
msgid "Failed to open database file for reading:"
|
3661 |
msgstr ""
|
3662 |
|
3663 |
+
#: src/backup.php:1858
|
3664 |
msgid "An error occurred whilst closing the final database file"
|
3665 |
msgstr ""
|
3666 |
|
3667 |
+
#: src/backup.php:2171
|
3668 |
msgid "Could not open the backup file for writing"
|
3669 |
msgstr ""
|
3670 |
|
3671 |
+
#: src/backup.php:2297
|
3672 |
msgid "Infinite recursion: consult your log for more information"
|
3673 |
msgstr ""
|
3674 |
|
3675 |
+
#: src/backup.php:2330
|
3676 |
msgid "%s: unreadable file - could not be backed up (check the file permissions and ownership)"
|
3677 |
msgstr ""
|
3678 |
|
3679 |
+
#: src/backup.php:2352
|
3680 |
msgid "Failed to open directory (check the file permissions and ownership): %s"
|
3681 |
msgstr ""
|
3682 |
|
3683 |
+
#: src/backup.php:2417
|
3684 |
msgid "%s: unreadable file - could not be backed up"
|
3685 |
msgstr ""
|
3686 |
|
3687 |
+
#: src/backup.php:3096, src/backup.php:3379
|
3688 |
msgid "Failed to open the zip file (%s) - %s"
|
3689 |
msgstr ""
|
3690 |
|
3691 |
+
#: src/backup.php:3122
|
3692 |
msgid "A very large file was encountered: %s (size: %s Mb)"
|
3693 |
msgstr ""
|
3694 |
|
3695 |
+
#: src/backup.php:3423, src/class-updraftplus.php:861
|
3696 |
msgid "Your free space in your hosting account is very low - only %s Mb remain"
|
3697 |
msgstr ""
|
3698 |
|
3699 |
+
#: src/backup.php:3430
|
3700 |
msgid "The zip engine returned the message: %s."
|
3701 |
msgstr ""
|
3702 |
|
3703 |
+
#: src/backup.php:3432
|
3704 |
msgid "A zip error occurred"
|
3705 |
msgstr ""
|
3706 |
|
3707 |
+
#: src/backup.php:3434
|
3708 |
msgid "your web hosting account appears to be full; please see: %s"
|
3709 |
msgstr ""
|
3710 |
|
3711 |
+
#: src/backup.php:3436
|
3712 |
msgid "check your log for more details."
|
3713 |
msgstr ""
|
3714 |
|
3960 |
msgid "Others"
|
3961 |
msgstr ""
|
3962 |
|
3963 |
+
#: src/class-updraftplus.php:2023
|
3964 |
msgid "Your website is visited infrequently and UpdraftPlus is not getting the resources it hoped for; please read this page:"
|
3965 |
msgstr ""
|
3966 |
|
3967 |
+
#: src/class-updraftplus.php:2701
|
3968 |
msgid "Could not create files in the backup directory. Backup aborted - check your UpdraftPlus settings."
|
3969 |
msgstr ""
|
3970 |
|
3971 |
+
#: src/class-updraftplus.php:3003
|
3972 |
msgid "The backup apparently succeeded and is now complete"
|
3973 |
msgstr ""
|
3974 |
|
3975 |
+
#: src/class-updraftplus.php:3009
|
3976 |
msgid "The backup apparently succeeded (with warnings) and is now complete"
|
3977 |
msgstr ""
|
3978 |
|
3979 |
+
#: src/class-updraftplus.php:3015
|
3980 |
msgid "To complete your migration/clone, you should now log in to the remote site and restore the backup set."
|
3981 |
msgstr ""
|
3982 |
|
3983 |
+
#: src/class-updraftplus.php:3015
|
3984 |
msgid "Your clone will now deploy this data to re-create your site."
|
3985 |
msgstr ""
|
3986 |
|
3987 |
+
#: src/class-updraftplus.php:3021
|
3988 |
msgid "The backup attempt has finished, apparently unsuccessfully"
|
3989 |
msgstr ""
|
3990 |
|
3991 |
+
#: src/class-updraftplus.php:3025
|
3992 |
msgid "The backup has not finished; a resumption is scheduled"
|
3993 |
msgstr ""
|
3994 |
|
3995 |
+
#: src/class-updraftplus.php:3415
|
3996 |
msgid "Could not read the directory"
|
3997 |
msgstr ""
|
3998 |
|
3999 |
+
#: src/class-updraftplus.php:3431
|
4000 |
msgid "Could not save backup history because we have no backup array. Backup probably failed."
|
4001 |
msgstr ""
|
4002 |
|
4003 |
+
#: src/class-updraftplus.php:3857, src/includes/class-updraftplus-encryption.php:336, src/restorer.php:768
|
4004 |
msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
|
4005 |
msgstr ""
|
4006 |
|
4007 |
+
#: src/class-updraftplus.php:3859
|
4008 |
msgid "Decryption failed. The database file is encrypted."
|
4009 |
msgstr ""
|
4010 |
|
4011 |
+
#: src/class-updraftplus.php:3869, src/includes/class-updraftplus-encryption.php:354, src/restorer.php:781
|
4012 |
msgid "Decryption failed. The most likely cause is that you used the wrong key."
|
4013 |
msgstr ""
|
4014 |
|
4015 |
+
#: src/class-updraftplus.php:3876
|
4016 |
msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
|
4017 |
msgstr ""
|
4018 |
|
4019 |
+
#: src/class-updraftplus.php:3884
|
4020 |
msgid "Failed to open database file."
|
4021 |
msgstr ""
|
4022 |
|
4023 |
+
#: src/class-updraftplus.php:3940
|
4024 |
msgid "(version: %s)"
|
4025 |
msgstr ""
|
4026 |
|
4027 |
+
#: src/class-updraftplus.php:3953
|
4028 |
msgid "The website address in the backup set (%s) is slightly different from that of the site now (%s). This is not expected to be a problem for restoring the site, as long as visits to the former address still reach the site."
|
4029 |
msgstr ""
|
4030 |
|
4031 |
+
#: src/class-updraftplus.php:3958
|
4032 |
msgid "This backup set is of this site, but at the time of the backup you were using %s, whereas the site now uses %s."
|
4033 |
msgstr ""
|
4034 |
|
4035 |
+
#: src/class-updraftplus.php:3960
|
4036 |
msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use %s to search/replace the site address so that the site can be visited without https."
|
4037 |
msgstr ""
|
4038 |
|
4039 |
+
#: src/class-updraftplus.php:3960, src/class-updraftplus.php:3962
|
4040 |
msgid "the migrator add-on"
|
4041 |
msgstr ""
|
4042 |
|
4043 |
+
#: src/class-updraftplus.php:3962
|
4044 |
msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use %s so that the non-https links are automatically replaced."
|
4045 |
msgstr ""
|
4046 |
|
4047 |
+
#: src/class-updraftplus.php:3971, src/class-updraftplus.php:3991
|
4048 |
msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
|
4049 |
msgstr ""
|
4050 |
|
4051 |
+
#: src/class-updraftplus.php:3974
|
4052 |
msgid "You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information"
|
4053 |
msgstr ""
|
4054 |
|
4055 |
+
#: src/class-updraftplus.php:3979, src/restorer.php:1446
|
4056 |
msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
|
4057 |
msgstr ""
|
4058 |
|
4059 |
+
#: src/class-updraftplus.php:3979, src/restorer.php:1446
|
4060 |
msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
|
4061 |
msgstr ""
|
4062 |
|
4063 |
+
#: src/class-updraftplus.php:4000, src/class-updraftplus.php:4007
|
4064 |
msgid "%s version: %s"
|
4065 |
msgstr ""
|
4066 |
|
4067 |
+
#: src/class-updraftplus.php:4001
|
4068 |
msgid "You are importing from a newer version of WordPress (%s) into an older one (%s). There are no guarantees that WordPress can handle this."
|
4069 |
msgstr ""
|
4070 |
|
4071 |
+
#: src/class-updraftplus.php:4008
|
4072 |
msgid "The site in this backup was running on a webserver with version %s of %s. "
|
4073 |
msgstr ""
|
4074 |
|
4075 |
+
#: src/class-updraftplus.php:4008
|
4076 |
msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
|
4077 |
msgstr ""
|
4078 |
|
4079 |
+
#: src/class-updraftplus.php:4008
|
4080 |
msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
|
4081 |
msgstr ""
|
4082 |
|
4083 |
+
#: src/class-updraftplus.php:4008
|
4084 |
msgid "Any support requests to do with %s should be raised with your web hosting company."
|
4085 |
msgstr ""
|
4086 |
|
4087 |
+
#: src/class-updraftplus.php:4013, src/restorer.php:2215, src/restorer.php:2304, src/restorer.php:2330
|
4088 |
msgid "Old table prefix:"
|
4089 |
msgstr ""
|
4090 |
|
4091 |
+
#: src/class-updraftplus.php:4016
|
4092 |
msgid "Backup label:"
|
4093 |
msgstr ""
|
4094 |
|
4095 |
+
#: src/class-updraftplus.php:4024, src/class-updraftplus.php:4027, src/restorer.php:530
|
4096 |
msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
|
4097 |
msgstr ""
|
4098 |
|
4099 |
+
#: src/class-updraftplus.php:4027
|
4100 |
msgid "It will be imported as a new site."
|
4101 |
msgstr ""
|
4102 |
|
4103 |
+
#: src/class-updraftplus.php:4027
|
4104 |
msgid "Please read this link for important information on this process."
|
4105 |
msgstr ""
|
4106 |
|
4107 |
+
#: src/class-updraftplus.php:4031, src/restorer.php:2227
|
4108 |
msgid "To import an ordinary WordPress site into a multisite installation requires %s."
|
4109 |
msgstr ""
|
4110 |
|
4111 |
+
#: src/class-updraftplus.php:4035
|
4112 |
msgid "Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible."
|
4113 |
msgstr ""
|
4114 |
|
4115 |
+
#: src/class-updraftplus.php:4035
|
4116 |
msgid "If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite."
|
4117 |
msgstr ""
|
4118 |
|
4119 |
+
#: src/class-updraftplus.php:4042, src/restorer.php:2233
|
4120 |
msgid "Site information:"
|
4121 |
msgstr ""
|
4122 |
|
4123 |
+
#: src/class-updraftplus.php:4102
|
4124 |
msgid "The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on."
|
4125 |
msgstr ""
|
4126 |
|
4127 |
+
#: src/class-updraftplus.php:4102
|
4128 |
msgid "You must upgrade MySQL to be able to use this database."
|
4129 |
msgstr ""
|
4130 |
|
4131 |
+
#: src/class-updraftplus.php:4123
|
4132 |
msgid "The database server that this WordPress site is running on doesn't support the character set (%s) which you are trying to import."
|
4133 |
msgid_plural "The database server that this WordPress site is running on doesn't support the character sets (%s) which you are trying to import."
|
4134 |
msgstr[0] ""
|
4135 |
msgstr[1] ""
|
4136 |
|
4137 |
+
#: src/class-updraftplus.php:4123
|
4138 |
msgid "You can choose another suitable character set instead and continue with the restoration at your own risk."
|
4139 |
msgstr ""
|
4140 |
|
4141 |
+
#: src/class-updraftplus.php:4133
|
4142 |
msgid "Your chosen character set to use instead:"
|
4143 |
msgstr ""
|
4144 |
|
4145 |
+
#: src/class-updraftplus.php:4157
|
4146 |
msgid "The database server that this WordPress site is running on doesn't support the collation (%s) used in the database which you are trying to import."
|
4147 |
msgid_plural "The database server that this WordPress site is running on doesn't support multiple collations (%s) used in the database which you are trying to import."
|
4148 |
msgstr[0] ""
|
4149 |
msgstr[1] ""
|
4150 |
|
4151 |
+
#: src/class-updraftplus.php:4157
|
4152 |
msgid "You can choose another suitable collation instead and continue with the restoration (at your own risk)."
|
4153 |
msgstr ""
|
4154 |
|
4155 |
+
#: src/class-updraftplus.php:4180
|
4156 |
msgid "Your chosen replacement collation"
|
4157 |
msgstr ""
|
4158 |
|
4159 |
+
#: src/class-updraftplus.php:4203
|
4160 |
msgid "Choose a default for each table"
|
4161 |
msgstr ""
|
4162 |
|
4163 |
+
#: src/class-updraftplus.php:4255
|
4164 |
msgid "This database backup is missing core WordPress tables: %s"
|
4165 |
msgstr ""
|
4166 |
|
4167 |
+
#: src/class-updraftplus.php:4258
|
4168 |
msgid "This database backup has the following WordPress tables excluded: %s"
|
4169 |
msgstr ""
|
4170 |
|
4171 |
+
#: src/class-updraftplus.php:4263
|
4172 |
msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
|
4173 |
msgstr ""
|
4174 |
|
4175 |
+
#: src/includes/class-backup-history.php:130
|
4176 |
msgid "You have not yet made any backups."
|
4177 |
msgstr ""
|
4178 |
|
4179 |
+
#: src/includes/class-backup-history.php:674
|
4180 |
msgid "One or more backups has been added from scanning remote storage; note that these backups will not be automatically deleted through the \"retain\" settings; if/when you wish to delete them then you must do so manually."
|
4181 |
msgstr ""
|
4182 |
|
4183 |
+
#: src/includes/class-commands.php:405
|
4184 |
msgid "%s add-on not found"
|
4185 |
msgstr ""
|
4186 |
|
4187 |
+
#: src/includes/class-commands.php:793, src/methods/updraftvault.php:630, src/udaddons/options.php:229
|
4188 |
msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
|
4189 |
msgstr ""
|
4190 |
|
4191 |
+
#: src/includes/class-commands.php:896, src/includes/class-commands.php:941
|
4192 |
msgid "Available temporary clone tokens:"
|
4193 |
msgstr ""
|
4194 |
|
4195 |
+
#: src/includes/class-commands.php:897
|
4196 |
msgid "You can buy more temporary clone tokens here."
|
4197 |
msgstr ""
|
4198 |
|
4199 |
+
#: src/includes/class-commands.php:904
|
4200 |
msgid "Create clone"
|
4201 |
msgstr ""
|
4202 |
|
4203 |
+
#: src/includes/class-commands.php:910
|
4204 |
msgid "Current clones"
|
4205 |
msgstr ""
|
4206 |
|
4207 |
+
#: src/includes/class-commands.php:910
|
4208 |
msgid "manage"
|
4209 |
msgstr ""
|
4210 |
|
4211 |
+
#: src/includes/class-commands.php:953
|
4212 |
msgid "The creation of your data for creating the clone should now begin. N.B. You will be charged one token once the clone is ready. If the clone fails to boot, then no token will be taken."
|
4213 |
msgstr ""
|
4214 |
|
4228 |
msgid "Web-server disk space in use by UpdraftPlus"
|
4229 |
msgstr ""
|
4230 |
|
4231 |
+
#: src/includes/class-filesystem-functions.php:245, src/methods/ftp.php:330
|
4232 |
msgid "Your web server's PHP installation has these functions disabled: %s."
|
4233 |
msgstr ""
|
4234 |
|
4235 |
+
#: src/includes/class-filesystem-functions.php:245, src/methods/ftp.php:330, src/restorer.php:2006
|
4236 |
msgid "Your hosting company must enable these functions before %s can work."
|
4237 |
msgstr ""
|
4238 |
|
4239 |
+
#: src/includes/class-filesystem-functions.php:245, src/restorer.php:2006
|
4240 |
msgid "restoration"
|
4241 |
msgstr ""
|
4242 |
|
4243 |
+
#: src/includes/class-filesystem-functions.php:265
|
4244 |
msgid "The database file appears to have been compressed twice - probably the website you downloaded it from had a mis-configured webserver."
|
4245 |
msgstr ""
|
4246 |
|
4247 |
+
#: src/includes/class-filesystem-functions.php:272, src/includes/class-filesystem-functions.php:294
|
4248 |
msgid "The attempt to undo the double-compression failed."
|
4249 |
msgstr ""
|
4250 |
|
4251 |
+
#: src/includes/class-filesystem-functions.php:296
|
4252 |
msgid "The attempt to undo the double-compression succeeded."
|
4253 |
msgstr ""
|
4254 |
|
4361 |
msgstr ""
|
4362 |
|
4363 |
#: src/includes/class-wpadmin-commands.php:217
|
4364 |
+
msgid "This backup set contains incremental backups of your files; please select the time you wish to restore your files to"
|
4365 |
msgstr ""
|
4366 |
|
4367 |
#: src/includes/class-wpadmin-commands.php:234
|
4496 |
msgid "UpdraftPlus Premium:"
|
4497 |
msgstr ""
|
4498 |
|
4499 |
+
#: src/includes/updraftplus-notices.php:31, src/templates/wp-admin/settings/header.php:17, src/templates/wp-admin/settings/tab-addons.php:21, src/templates/wp-admin/settings/tab-addons.php:103
|
4500 |
msgid "Support"
|
4501 |
msgstr ""
|
4502 |
|
4504 |
msgid "Enjoy professional, fast, and friendly help whenever you need it with Premium."
|
4505 |
msgstr ""
|
4506 |
|
4507 |
+
#: src/includes/updraftplus-notices.php:41, src/templates/wp-admin/settings/tab-addons.php:260
|
4508 |
msgid "UpdraftVault storage"
|
4509 |
msgstr ""
|
4510 |
|
5091 |
msgid "For more options, use the \"%s\" add-on."
|
5092 |
msgstr ""
|
5093 |
|
5094 |
+
#: src/methods/email.php:97, src/templates/wp-admin/settings/form-contents.php:243, src/templates/wp-admin/settings/tab-addons.php:207, src/templates/wp-admin/settings/tab-addons.php:208
|
5095 |
msgid "Reporting"
|
5096 |
msgstr ""
|
5097 |
|
5417 |
msgid "Local write failed: Failed to download"
|
5418 |
msgstr ""
|
5419 |
|
5420 |
+
#: src/methods/updraftvault.php:71, src/templates/wp-admin/settings/tab-addons.php:259
|
5421 |
msgid "UpdraftVault"
|
5422 |
msgstr ""
|
5423 |
|
5944 |
msgid "required for some remote storage providers"
|
5945 |
msgstr ""
|
5946 |
|
5947 |
+
#: src/templates/wp-admin/advanced/site-info.php:63, src/templates/wp-admin/advanced/site-info.php:66, src/templates/wp-admin/settings/tab-addons.php:53, src/templates/wp-admin/settings/tab-addons.php:66, src/templates/wp-admin/settings/tab-addons.php:69, src/templates/wp-admin/settings/tab-addons.php:82, src/templates/wp-admin/settings/tab-addons.php:98, src/templates/wp-admin/settings/tab-addons.php:111, src/templates/wp-admin/settings/tab-addons.php:124, src/templates/wp-admin/settings/tab-addons.php:137, src/templates/wp-admin/settings/tab-addons.php:150, src/templates/wp-admin/settings/tab-addons.php:163, src/templates/wp-admin/settings/tab-addons.php:176, src/templates/wp-admin/settings/tab-addons.php:189, src/templates/wp-admin/settings/tab-addons.php:202, src/templates/wp-admin/settings/tab-addons.php:215, src/templates/wp-admin/settings/tab-addons.php:228, src/templates/wp-admin/settings/tab-addons.php:241, src/templates/wp-admin/settings/tab-addons.php:254, src/templates/wp-admin/settings/tab-addons.php:271, src/templates/wp-admin/settings/tab-addons.php:277
|
5948 |
msgid "Yes"
|
5949 |
msgstr ""
|
5950 |
|
5951 |
+
#: src/templates/wp-admin/advanced/site-info.php:66, src/templates/wp-admin/settings/tab-addons.php:79, src/templates/wp-admin/settings/tab-addons.php:95, src/templates/wp-admin/settings/tab-addons.php:108, src/templates/wp-admin/settings/tab-addons.php:121, src/templates/wp-admin/settings/tab-addons.php:134, src/templates/wp-admin/settings/tab-addons.php:147, src/templates/wp-admin/settings/tab-addons.php:160, src/templates/wp-admin/settings/tab-addons.php:173, src/templates/wp-admin/settings/tab-addons.php:186, src/templates/wp-admin/settings/tab-addons.php:199, src/templates/wp-admin/settings/tab-addons.php:212, src/templates/wp-admin/settings/tab-addons.php:225, src/templates/wp-admin/settings/tab-addons.php:238, src/templates/wp-admin/settings/tab-addons.php:251, src/templates/wp-admin/settings/tab-addons.php:268
|
5952 |
msgid "No"
|
5953 |
msgstr ""
|
5954 |
|
6000 |
msgid "log results to console"
|
6001 |
msgstr ""
|
6002 |
|
6003 |
+
#: src/templates/wp-admin/advanced/tools-menu.php:10, src/templates/wp-admin/settings/tab-addons.php:246, src/templates/wp-admin/settings/tab-addons.php:247
|
6004 |
msgid "Lock settings"
|
6005 |
msgstr ""
|
6006 |
|
6140 |
msgid "Free two-factor security plugin"
|
6141 |
msgstr ""
|
6142 |
|
6143 |
+
#: src/templates/wp-admin/settings/backupnow-modal.php:8
|
6144 |
+
msgid "All WordPress tables will be backed up."
|
6145 |
+
msgstr ""
|
6146 |
+
|
6147 |
+
#: src/templates/wp-admin/settings/backupnow-modal.php:8
|
6148 |
+
msgid "With UpdraftPlus Premium, you can choose to backup non-WordPress tables, backup only specified tables, and backup other databases too."
|
6149 |
+
msgstr ""
|
6150 |
+
|
6151 |
+
#: src/templates/wp-admin/settings/backupnow-modal.php:12
|
6152 |
+
msgid "Take a new backup"
|
6153 |
+
msgstr ""
|
6154 |
+
|
6155 |
+
#: src/templates/wp-admin/settings/backupnow-modal.php:13
|
6156 |
+
msgid "Take an incremental backup"
|
6157 |
+
msgstr ""
|
6158 |
+
|
6159 |
+
#: src/templates/wp-admin/settings/backupnow-modal.php:17
|
6160 |
+
msgid "Incremental backups are a feature of %s (upgrade by following this link)."
|
6161 |
+
msgstr ""
|
6162 |
+
|
6163 |
+
#: src/templates/wp-admin/settings/backupnow-modal.php:20, src/templates/wp-admin/settings/backupnow-modal.php:67
|
6164 |
+
msgid "Find out more about incremental backups here."
|
6165 |
+
msgstr ""
|
6166 |
+
|
6167 |
+
#: src/templates/wp-admin/settings/backupnow-modal.php:26
|
6168 |
+
msgid "Include your database in the backup"
|
6169 |
+
msgstr ""
|
6170 |
+
|
6171 |
+
#: src/templates/wp-admin/settings/backupnow-modal.php:45
|
6172 |
+
msgid "Your saved settings also affect what is backed up - e.g. files excluded."
|
6173 |
+
msgstr ""
|
6174 |
+
|
6175 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:8
|
6176 |
msgid "Delete backup set"
|
6177 |
msgstr ""
|
6197 |
msgstr ""
|
6198 |
|
6199 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:30
|
6200 |
+
msgid "Restore files from"
|
6201 |
msgstr ""
|
6202 |
|
6203 |
#: src/templates/wp-admin/settings/delete-and-restore-modals.php:34
|
6328 |
msgid "Add an exclusion rule"
|
6329 |
msgstr ""
|
6330 |
|
6331 |
+
#: src/templates/wp-admin/settings/existing-backups-table.php:17, src/templates/wp-admin/settings/existing-backups-table.php:62
|
6332 |
msgid "Backup date"
|
6333 |
msgstr ""
|
6334 |
|
6335 |
+
#: src/templates/wp-admin/settings/existing-backups-table.php:18, src/templates/wp-admin/settings/existing-backups-table.php:95
|
6336 |
msgid "Backup data (click to download)"
|
6337 |
msgstr ""
|
6338 |
|
6339 |
+
#: src/templates/wp-admin/settings/existing-backups-table.php:85
|
6340 |
msgid "remote site"
|
6341 |
msgstr ""
|
6342 |
|
6343 |
+
#: src/templates/wp-admin/settings/existing-backups-table.php:87
|
6344 |
msgid "Remote storage: %s"
|
6345 |
msgstr ""
|
6346 |
|
6347 |
+
#: src/templates/wp-admin/settings/existing-backups-table.php:152
|
6348 |
msgid "Actions upon selected backups"
|
6349 |
msgstr ""
|
6350 |
|
6351 |
+
#: src/templates/wp-admin/settings/existing-backups-table.php:154
|
6352 |
msgid "Select all"
|
6353 |
msgstr ""
|
6354 |
|
6355 |
+
#: src/templates/wp-admin/settings/existing-backups-table.php:155
|
6356 |
msgid "Deselect"
|
6357 |
msgstr ""
|
6358 |
|
6359 |
+
#: src/templates/wp-admin/settings/existing-backups-table.php:156
|
6360 |
msgid "Use ctrl / cmd + press to select several items"
|
6361 |
msgstr ""
|
6362 |
|
6363 |
+
#: src/templates/wp-admin/settings/existing-backups-table.php:159
|
6364 |
msgid "Please allow time for the communications with the remote storage to complete."
|
6365 |
msgstr ""
|
6366 |
|
6388 |
msgid "e.g. if your server is busy at day and you want to run overnight"
|
6389 |
msgstr ""
|
6390 |
|
6391 |
+
#: src/templates/wp-admin/settings/form-contents.php:87
|
6392 |
+
msgid "to take incremental backups"
|
6393 |
+
msgstr ""
|
6394 |
+
|
6395 |
#: src/templates/wp-admin/settings/form-contents.php:87
|
6396 |
msgid "or to configure more complex schedules"
|
6397 |
msgstr ""
|
6605 |
msgid "Save Changes"
|
6606 |
msgstr ""
|
6607 |
|
6608 |
+
#: src/templates/wp-admin/settings/header.php:11, src/templates/wp-admin/settings/tab-addons.php:47, src/templates/wp-admin/settings/tab-addons.php:68, src/templates/wp-admin/settings/tab-addons.php:81, src/templates/wp-admin/settings/tab-addons.php:97, src/templates/wp-admin/settings/tab-addons.php:110, src/templates/wp-admin/settings/tab-addons.php:123, src/templates/wp-admin/settings/tab-addons.php:136, src/templates/wp-admin/settings/tab-addons.php:149, src/templates/wp-admin/settings/tab-addons.php:162, src/templates/wp-admin/settings/tab-addons.php:175, src/templates/wp-admin/settings/tab-addons.php:188, src/templates/wp-admin/settings/tab-addons.php:201, src/templates/wp-admin/settings/tab-addons.php:214, src/templates/wp-admin/settings/tab-addons.php:227, src/templates/wp-admin/settings/tab-addons.php:240, src/templates/wp-admin/settings/tab-addons.php:253, src/templates/wp-admin/settings/tab-addons.php:270
|
6609 |
msgid "Premium"
|
6610 |
msgstr ""
|
6611 |
|
6677 |
msgid "If you have purchased from UpdraftPlus.Com, then follow this link to the installation instructions (particularly step 1)."
|
6678 |
msgstr ""
|
6679 |
|
6680 |
+
#: src/templates/wp-admin/settings/tab-addons.php:43, src/templates/wp-admin/settings/tab-addons.php:65, src/templates/wp-admin/settings/tab-addons.php:78, src/templates/wp-admin/settings/tab-addons.php:94, src/templates/wp-admin/settings/tab-addons.php:107, src/templates/wp-admin/settings/tab-addons.php:120, src/templates/wp-admin/settings/tab-addons.php:133, src/templates/wp-admin/settings/tab-addons.php:146, src/templates/wp-admin/settings/tab-addons.php:159, src/templates/wp-admin/settings/tab-addons.php:172, src/templates/wp-admin/settings/tab-addons.php:185, src/templates/wp-admin/settings/tab-addons.php:198, src/templates/wp-admin/settings/tab-addons.php:211, src/templates/wp-admin/settings/tab-addons.php:224, src/templates/wp-admin/settings/tab-addons.php:237, src/templates/wp-admin/settings/tab-addons.php:250, src/templates/wp-admin/settings/tab-addons.php:267
|
6681 |
msgid "Free"
|
6682 |
msgstr ""
|
6683 |
|
6684 |
+
#: src/templates/wp-admin/settings/tab-addons.php:53, src/templates/wp-admin/settings/tab-addons.php:277
|
6685 |
msgid "Installed"
|
6686 |
msgstr ""
|
6687 |
|
6688 |
+
#: src/templates/wp-admin/settings/tab-addons.php:56, src/templates/wp-admin/settings/tab-addons.php:280
|
6689 |
msgid "Upgrade now"
|
6690 |
msgstr ""
|
6691 |
|
6709 |
msgid "UpdraftPlus Migrator clones your WordPress site and moves it to a new domain directly and simply."
|
6710 |
msgstr ""
|
6711 |
|
6712 |
+
#: src/templates/wp-admin/settings/tab-addons.php:87, src/templates/wp-admin/settings/tab-addons.php:88
|
6713 |
+
msgid "Incremental backups"
|
6714 |
+
msgstr ""
|
6715 |
+
|
6716 |
+
#: src/templates/wp-admin/settings/tab-addons.php:90
|
6717 |
+
msgid "Incremental backups are backups of just the changes since your last full backup. As a result, they are faster and need less space and resources to process."
|
6718 |
+
msgstr ""
|
6719 |
+
|
6720 |
+
#: src/templates/wp-admin/settings/tab-addons.php:104
|
6721 |
msgid "Fast, personal support"
|
6722 |
msgstr ""
|
6723 |
|
6724 |
+
#: src/templates/wp-admin/settings/tab-addons.php:105
|
6725 |
msgid "Provides expert help and support from the developers whenever you need it."
|
6726 |
msgstr ""
|
6727 |
|
6728 |
+
#: src/templates/wp-admin/settings/tab-addons.php:116, src/templates/wp-admin/settings/tab-addons.php:117
|
6729 |
msgid "Pre-update backups"
|
6730 |
msgstr ""
|
6731 |
|
6732 |
+
#: src/templates/wp-admin/settings/tab-addons.php:118
|
6733 |
msgid "Automatically backs up your website before any updates to plugins, themes and WordPress core."
|
6734 |
msgstr ""
|
6735 |
|
6736 |
+
#: src/templates/wp-admin/settings/tab-addons.php:129, src/templates/wp-admin/settings/tab-addons.php:130
|
6737 |
msgid "Backup non-WordPress files and databases"
|
6738 |
msgstr ""
|
6739 |
|
6740 |
+
#: src/templates/wp-admin/settings/tab-addons.php:131
|
6741 |
msgid "Backup WordPress core and non-WP files and databases."
|
6742 |
msgstr ""
|
6743 |
|
6744 |
+
#: src/templates/wp-admin/settings/tab-addons.php:142
|
6745 |
msgid "Network and multisite"
|
6746 |
msgstr ""
|
6747 |
|
6748 |
+
#: src/templates/wp-admin/settings/tab-addons.php:143
|
6749 |
msgid "Network / multisite"
|
6750 |
msgstr ""
|
6751 |
|
6752 |
+
#: src/templates/wp-admin/settings/tab-addons.php:144
|
6753 |
msgid "Backup WordPress multisites (i.e, networks), securely."
|
6754 |
msgstr ""
|
6755 |
|
6756 |
+
#: src/templates/wp-admin/settings/tab-addons.php:155, src/templates/wp-admin/settings/tab-addons.php:156
|
6757 |
msgid "Backup time and scheduling"
|
6758 |
msgstr ""
|
6759 |
|
6760 |
+
#: src/templates/wp-admin/settings/tab-addons.php:157
|
6761 |
msgid "Set exact times to create or delete backups."
|
6762 |
msgstr ""
|
6763 |
|
6764 |
+
#: src/templates/wp-admin/settings/tab-addons.php:168
|
6765 |
msgid "WP CLI"
|
6766 |
msgstr ""
|
6767 |
|
6768 |
+
#: src/templates/wp-admin/settings/tab-addons.php:169
|
6769 |
msgid "WP-CLI support"
|
6770 |
msgstr ""
|
6771 |
|
6772 |
+
#: src/templates/wp-admin/settings/tab-addons.php:170
|
6773 |
msgid "WP-CLI commands to take, list and delete backups."
|
6774 |
msgstr ""
|
6775 |
|
6776 |
+
#: src/templates/wp-admin/settings/tab-addons.php:181, src/templates/wp-admin/settings/tab-addons.php:182
|
6777 |
msgid "More database options"
|
6778 |
msgstr ""
|
6779 |
|
6780 |
+
#: src/templates/wp-admin/settings/tab-addons.php:183
|
6781 |
msgid "Encrypt your sensitive databases (e.g. customer information or passwords); Backup external databases too."
|
6782 |
msgstr ""
|
6783 |
|
6784 |
+
#: src/templates/wp-admin/settings/tab-addons.php:194
|
6785 |
msgid "Additional storage"
|
6786 |
msgstr ""
|
6787 |
|
6788 |
+
#: src/templates/wp-admin/settings/tab-addons.php:195
|
6789 |
msgid "Additional and enhanced remote storage locations"
|
6790 |
msgstr ""
|
6791 |
|
6792 |
+
#: src/templates/wp-admin/settings/tab-addons.php:196
|
6793 |
msgid "Get enhanced versions of the free remote storage options (Dropbox, Google Drive & S3) and even more remote storage options like OneDrive, SFTP, Azure, WebDAV and more with UpdraftPlus Premium."
|
6794 |
msgstr ""
|
6795 |
|
6796 |
+
#: src/templates/wp-admin/settings/tab-addons.php:209
|
6797 |
msgid "Sophisticated reporting and emailing capabilities."
|
6798 |
msgstr ""
|
6799 |
|
6800 |
+
#: src/templates/wp-admin/settings/tab-addons.php:220, src/templates/wp-admin/settings/tab-addons.php:221
|
6801 |
msgid "No ads"
|
6802 |
msgstr ""
|
6803 |
|
6804 |
+
#: src/templates/wp-admin/settings/tab-addons.php:222
|
6805 |
msgid "Tidy things up for clients and remove all adverts for our other products."
|
6806 |
msgstr ""
|
6807 |
|
6808 |
+
#: src/templates/wp-admin/settings/tab-addons.php:233, src/templates/wp-admin/settings/tab-addons.php:234
|
6809 |
msgid "Importer"
|
6810 |
msgstr ""
|
6811 |
|
6812 |
+
#: src/templates/wp-admin/settings/tab-addons.php:235
|
6813 |
msgid "Some backup plugins can't restore a backup, so Premium allows you to restore backups from other plugins."
|
6814 |
msgstr ""
|
6815 |
|
6816 |
+
#: src/templates/wp-admin/settings/tab-addons.php:248
|
6817 |
msgid "Lock access to UpdraftPlus via a password so you choose which admin users can access backups."
|
6818 |
msgstr ""
|
6819 |
|
6820 |
+
#: src/templates/wp-admin/settings/tab-addons.php:262
|
6821 |
msgid "UpdraftPlus has its own embedded storage option, providing a zero-hassle way to download, store and manage all your backups from one place."
|
6822 |
msgstr ""
|
6823 |
|
6824 |
+
#: src/templates/wp-admin/settings/tab-addons.php:263
|
6825 |
msgid "Premium / Find out more"
|
6826 |
msgstr ""
|
6827 |
|
6828 |
+
#: src/templates/wp-admin/settings/take-backup.php:6
|
6829 |
msgid "JavaScript warning"
|
6830 |
msgstr ""
|
6831 |
|
6832 |
+
#: src/templates/wp-admin/settings/take-backup.php:6
|
6833 |
msgid "This admin interface uses JavaScript heavily. You either need to activate it within your browser, or to use a JavaScript-capable browser."
|
6834 |
msgstr ""
|
6835 |
|
6836 |
+
#: src/templates/wp-admin/settings/take-backup.php:19
|
6837 |
msgid "Next scheduled backups"
|
6838 |
msgstr ""
|
6839 |
|
6840 |
+
#: src/templates/wp-admin/settings/take-backup.php:46
|
6841 |
msgid "Time now"
|
6842 |
msgstr ""
|
6843 |
|
6844 |
+
#: src/templates/wp-admin/settings/take-backup.php:81
|
6845 |
msgid "Remote storage authentication"
|
6846 |
msgstr ""
|
6847 |
|
6848 |
+
#: src/templates/wp-admin/settings/take-backup.php:82
|
6849 |
msgid "You have selected a remote storage option which has an authorization step to complete:"
|
6850 |
msgstr ""
|
6851 |
|
6852 |
+
#: src/templates/wp-admin/settings/take-backup.php:87
|
6853 |
+
msgid "Perform a backup"
|
6854 |
msgstr ""
|
6855 |
|
6856 |
+
#: src/templates/wp-admin/settings/take-backup.php:92
|
6857 |
msgid "Multisite"
|
6858 |
msgstr ""
|
6859 |
|
6860 |
+
#: src/templates/wp-admin/settings/take-backup.php:96
|
6861 |
msgid "Do you need WordPress Multisite support?"
|
6862 |
msgstr ""
|
6863 |
|
6864 |
+
#: src/templates/wp-admin/settings/take-backup.php:96
|
6865 |
msgid "Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on."
|
6866 |
msgstr ""
|
6867 |
|
7101 |
msgid "An update containing your addons is available for UpdraftPlus - please follow this link to get it."
|
7102 |
msgstr ""
|
7103 |
|
7104 |
+
#: src/udaddons/options.php:408
|
7105 |
msgid "An error occurred when trying to retrieve your add-ons."
|
7106 |
msgstr ""
|
7107 |
|
7108 |
+
#: src/udaddons/options.php:424
|
7109 |
msgid "UpdraftPlus Support"
|
7110 |
msgstr ""
|
7111 |
|
7112 |
+
#: src/udaddons/options.php:426
|
7113 |
msgid "Need to get support?"
|
7114 |
msgstr ""
|
7115 |
|
7116 |
+
#: src/udaddons/options.php:426
|
7117 |
msgid "Go here"
|
7118 |
msgstr ""
|
7119 |
|
7120 |
+
#: src/udaddons/options.php:463, src/udaddons/options.php:463
|
7121 |
msgid "You've got it"
|
7122 |
msgstr ""
|
7123 |
|
7124 |
+
#: src/udaddons/options.php:465
|
7125 |
msgid "Your version: %s"
|
7126 |
msgstr ""
|
7127 |
|
7128 |
+
#: src/udaddons/options.php:467, src/udaddons/options.php:469
|
7129 |
msgid "latest"
|
7130 |
msgstr ""
|
7131 |
|
7132 |
+
#: src/udaddons/options.php:471
|
7133 |
msgid "(apparently a pre-release or withdrawn release)"
|
7134 |
msgstr ""
|
7135 |
|
7136 |
+
#: src/udaddons/options.php:477
|
7137 |
msgid "Available for this site (via your all-addons purchase)"
|
7138 |
msgstr ""
|
7139 |
|
7140 |
+
#: src/udaddons/options.php:477
|
7141 |
msgid "please follow this link to update the plugin in order to get it"
|
7142 |
msgstr ""
|
7143 |
|
7144 |
+
#: src/udaddons/options.php:480
|
7145 |
msgid "Assigned to this site"
|
7146 |
msgstr ""
|
7147 |
|
7148 |
+
#: src/udaddons/options.php:480
|
7149 |
msgid "please follow this link to update the plugin in order to activate it"
|
7150 |
msgstr ""
|
7151 |
|
7152 |
+
#: src/udaddons/options.php:486
|
7153 |
msgid "Available to claim on this site"
|
7154 |
msgstr ""
|
7155 |
|
7156 |
+
#: src/udaddons/options.php:486, src/udaddons/options.php:488
|
7157 |
msgid "activate it on this site"
|
7158 |
msgstr ""
|
7159 |
|
7160 |
+
#: src/udaddons/options.php:488
|
7161 |
msgid "You have an inactive purchase"
|
7162 |
msgstr ""
|
7163 |
|
7164 |
+
#: src/udaddons/options.php:492
|
7165 |
msgid "Get it from the UpdraftPlus.Com Store"
|
7166 |
msgstr ""
|
7167 |
|
7168 |
+
#: src/udaddons/options.php:492
|
7169 |
msgid "(or connect using the form on this page if you have already purchased it)"
|
7170 |
msgstr ""
|
7171 |
|
7172 |
+
#: src/udaddons/options.php:493, src/udaddons/options.php:493
|
7173 |
msgid "Buy It"
|
7174 |
msgstr ""
|
7175 |
|
7176 |
+
#: src/udaddons/options.php:515
|
7177 |
msgid "Manage Addons"
|
7178 |
msgstr ""
|
7179 |
|
@@ -3,7 +3,7 @@ Contributors: Backup with UpdraftPlus, DavidAnderson, DNutbourne, aporter, snigh
|
|
3 |
Tags: backup, restore, database backup, wordpress backup, cloud backup, s3, dropbox, google drive, onedrive, ftp, backups
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 5.0
|
6 |
-
Stable tag: 1.
|
7 |
Author URI: https://updraftplus.com
|
8 |
Donate link: https://david.dw-perspective.org.uk/donate
|
9 |
License: GPLv3 or later
|
@@ -161,7 +161,22 @@ Unfortunately not; since this is free software, there’s no warranty and no gua
|
|
161 |
|
162 |
The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
|
163 |
|
164 |
-
N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
|
166 |
= 1.15.6 - 06/Dec/2018 =
|
167 |
|
@@ -692,5 +707,5 @@ Furthermore, reliance upon any non-English translation is at your own risk. Updr
|
|
692 |
We recognise and thank the following for code and/or libraries used and/or modified under the terms of their open source licences; see: https://updraftplus.com/acknowledgements/
|
693 |
|
694 |
== Upgrade Notice ==
|
695 |
-
* 1.
|
696 |
|
3 |
Tags: backup, restore, database backup, wordpress backup, cloud backup, s3, dropbox, google drive, onedrive, ftp, backups
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 5.0
|
6 |
+
Stable tag: 1.16.0
|
7 |
Author URI: https://updraftplus.com
|
8 |
Donate link: https://david.dw-perspective.org.uk/donate
|
9 |
License: GPLv3 or later
|
161 |
|
162 |
The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
|
163 |
|
164 |
+
N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.16.0.x of the free version correspond to changes made in 2.16.0.x of the paid version.
|
165 |
+
|
166 |
+
= 1.16.0 - 19/Dec/2018 =
|
167 |
+
|
168 |
+
* FEATURE: Added the abilty to create and restore Incremental Backups
|
169 |
+
* FIX: Work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one
|
170 |
+
* TWEAK: Improve performance by aggregating separate SQL SELECT queries (previously one for each backup) when loading the settings page
|
171 |
+
* TWEAK: internal backup extradata parameter to prevent unwanted PHP notices
|
172 |
+
* TWEAK: Fork a method UpdraftPlus_Filesystem_Functions::unzip_file() to allow for future enhancements
|
173 |
+
* TWEAK: Periodic purging of obsolete job data that didn't get cleaned when expected was not happening on multisite
|
174 |
+
* TWEAK: Improve logging when the initial call to jobdata_set_multi fails
|
175 |
+
* TWEAK: Any stored backup/restore progress log files will now be deleted after 40 days. (Since they are attached to email reports, you can keep and retrieve them from those if needed). Over-ride this with the filter updraftplus_log_delete_age if desired.
|
176 |
+
|
177 |
+
= 1.15.7 - 06/Dec/2018 =
|
178 |
+
|
179 |
+
* FIX: a method call on an incorrect class which caused a fatal error
|
180 |
|
181 |
= 1.15.6 - 06/Dec/2018 =
|
182 |
|
707 |
We recognise and thank the following for code and/or libraries used and/or modified under the terms of their open source licences; see: https://updraftplus.com/acknowledgements/
|
708 |
|
709 |
== Upgrade Notice ==
|
710 |
+
* 1.16.0: Added the ability to create and restore Incremental Backups (Premium version), work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' and various small/minor improvements. A recommended update for all.
|
711 |
|
@@ -584,7 +584,7 @@ class Updraft_Restorer {
|
|
584 |
|
585 |
// Unzip package to working directory
|
586 |
if ('.zip' == strtolower(substr($package, -4, 4))) {
|
587 |
-
$result = unzip_file($package, $working_dir);
|
588 |
} elseif ('.tar' == strtolower(substr($package, -4, 4)) || '.tar.gz' == strtolower(substr($package, -7, 7)) || '.tar.bz2' == strtolower(substr($package, -8, 8))) {
|
589 |
if (!class_exists('UpdraftPlus_Archive_Tar')) {
|
590 |
if (false === strpos(get_include_path(), UPDRAFTPLUS_DIR.'/includes/PEAR')) set_include_path(UPDRAFTPLUS_DIR.'/includes/PEAR'.PATH_SEPARATOR.get_include_path());
|
@@ -665,7 +665,7 @@ class Updraft_Restorer {
|
|
665 |
return $working_dir;
|
666 |
}
|
667 |
|
668 |
-
public function tar_wrote($result, $file) {
|
669 |
if (0 !== strpos($file, $this->ud_extract_dir)) return false;
|
670 |
global $wp_filesystem, $updraftplus;
|
671 |
if (!is_a($wp_filesystem, 'WP_Filesystem_Direct')) {
|
@@ -1928,17 +1928,17 @@ ENDHERE;
|
|
1928 |
|
1929 |
}
|
1930 |
|
1931 |
-
public function option_filter_permalink_structure($val) {
|
1932 |
global $updraftplus;
|
1933 |
return $updraftplus->option_filter_get('permalink_structure');
|
1934 |
}
|
1935 |
|
1936 |
-
public function option_filter_page_on_front($val) {
|
1937 |
global $updraftplus;
|
1938 |
return $updraftplus->option_filter_get('page_on_front');
|
1939 |
}
|
1940 |
|
1941 |
-
public function option_filter_rewrite_rules($val) {
|
1942 |
global $updraftplus;
|
1943 |
return $updraftplus->option_filter_get('rewrite_rules');
|
1944 |
}
|
584 |
|
585 |
// Unzip package to working directory
|
586 |
if ('.zip' == strtolower(substr($package, -4, 4))) {
|
587 |
+
$result = UpdraftPlus_Filesystem_Functions::unzip_file($package, $working_dir);
|
588 |
} elseif ('.tar' == strtolower(substr($package, -4, 4)) || '.tar.gz' == strtolower(substr($package, -7, 7)) || '.tar.bz2' == strtolower(substr($package, -8, 8))) {
|
589 |
if (!class_exists('UpdraftPlus_Archive_Tar')) {
|
590 |
if (false === strpos(get_include_path(), UPDRAFTPLUS_DIR.'/includes/PEAR')) set_include_path(UPDRAFTPLUS_DIR.'/includes/PEAR'.PATH_SEPARATOR.get_include_path());
|
665 |
return $working_dir;
|
666 |
}
|
667 |
|
668 |
+
public function tar_wrote($result, $file) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
669 |
if (0 !== strpos($file, $this->ud_extract_dir)) return false;
|
670 |
global $wp_filesystem, $updraftplus;
|
671 |
if (!is_a($wp_filesystem, 'WP_Filesystem_Direct')) {
|
1928 |
|
1929 |
}
|
1930 |
|
1931 |
+
public function option_filter_permalink_structure($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
1932 |
global $updraftplus;
|
1933 |
return $updraftplus->option_filter_get('permalink_structure');
|
1934 |
}
|
1935 |
|
1936 |
+
public function option_filter_page_on_front($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
1937 |
global $updraftplus;
|
1938 |
return $updraftplus->option_filter_get('page_on_front');
|
1939 |
}
|
1940 |
|
1941 |
+
public function option_filter_rewrite_rules($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
1942 |
global $updraftplus;
|
1943 |
return $updraftplus->option_filter_get('rewrite_rules');
|
1944 |
}
|
@@ -0,0 +1,68 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if (!defined('UPDRAFTPLUS_DIR')) die('No direct access.');
|
3 |
+
|
4 |
+
global $updraftplus;
|
5 |
+
|
6 |
+
$premium_link = apply_filters('updraftplus_com_link', 'https://updraftplus.com/landing/updraftplus-premium');
|
7 |
+
|
8 |
+
$free_ret = '<em>'.__('All WordPress tables will be backed up.', 'updraftplus').' <a href="'.$premium_link.'">'. __('With UpdraftPlus Premium, you can choose to backup non-WordPress tables, backup only specified tables, and backup other databases too.', 'updraftplus').'</a></em>'."\n";
|
9 |
+
?>
|
10 |
+
|
11 |
+
<p>
|
12 |
+
<h3 class="new-backups-only"><?php _e('Take a new backup', 'updraftplus');?></h3>
|
13 |
+
<h3 class="incremental-backups-only"><?php _e('Take an incremental backup', 'updraftplus');?></h3>
|
14 |
+
</p>
|
15 |
+
|
16 |
+
<div class="incremental-free-only">
|
17 |
+
<p><?php echo sprintf(__('Incremental backups are a feature of %s (upgrade by following this link).', 'updraftplus'), '<a href="'.$updraftplus->get_url('premium').'" target="_blank">UpdraftPlus Premium</a>'); ?>
|
18 |
+
</a>
|
19 |
+
<br>
|
20 |
+
<a href="https://updraftplus.com/tell-me-more-about-incremental-backups/" target="_blank"><?php _e('Find out more about incremental backups here.', 'updraftplus'); ?></a></p>
|
21 |
+
</div>
|
22 |
+
|
23 |
+
<p id="backupnow_database_container" class="new-backups-only">
|
24 |
+
|
25 |
+
<input type="checkbox" id="backupnow_includedb" checked="checked">
|
26 |
+
<label for="backupnow_includedb"><?php _e('Include your database in the backup', 'updraftplus'); ?></label>
|
27 |
+
|
28 |
+
(<a href="#" id="backupnow_database_showmoreoptions">...</a>)<br>
|
29 |
+
|
30 |
+
<div id="backupnow_database_moreoptions" class="updraft-hidden" style="display:none;">
|
31 |
+
|
32 |
+
<?php echo apply_filters('updraft_backupnow_database_showmoreoptions', $free_ret, '');?>
|
33 |
+
|
34 |
+
</div>
|
35 |
+
|
36 |
+
</p>
|
37 |
+
|
38 |
+
<p>
|
39 |
+
<input type="checkbox" class="new-backups-only" id="backupnow_includefiles" checked="checked">
|
40 |
+
<label id="backupnow_includefiles_label" for="backupnow_includefiles"><?php _e("Include your files in the backup", 'updraftplus'); ?></label>
|
41 |
+
|
42 |
+
(<a href="<?php echo $updraftplus->get_current_clean_url(); ?>" id="backupnow_includefiles_showmoreoptions">...</a>)<br>
|
43 |
+
|
44 |
+
<div id="backupnow_includefiles_moreoptions" class="updraft-hidden" style="display:none;">
|
45 |
+
<em><?php _e('Your saved settings also affect what is backed up - e.g. files excluded.', 'updraftplus'); ?></em><br>
|
46 |
+
|
47 |
+
<?php echo $updraftplus_admin->files_selector_widgetry('backupnow_files_', false, 'sometimes'); ?>
|
48 |
+
</div>
|
49 |
+
|
50 |
+
</p>
|
51 |
+
|
52 |
+
<div class="backupnow_modal_afterfileoptions">
|
53 |
+
<?php echo apply_filters('updraft_backupnow_modal_afterfileoptions', '', ''); ?>
|
54 |
+
</div>
|
55 |
+
|
56 |
+
<span id="backupnow_remote_container"><?php echo $this->backup_now_remote_message(); ?></span>
|
57 |
+
|
58 |
+
<p id="backupnow_always_keep_container" class="new-backups-only">
|
59 |
+
<input type="checkbox" id="always_keep">
|
60 |
+
<label for="always_keep"><?php _e('Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit).', 'updraftplus'); ?></label>
|
61 |
+
</p>
|
62 |
+
|
63 |
+
<div class="backupnow_modal_afteroptions">
|
64 |
+
<?php echo apply_filters('updraft_backupnow_modal_afteroptions', '', ''); ?>
|
65 |
+
</div>
|
66 |
+
<p class="incremental-backups-only">
|
67 |
+
<a href="https://updraftplus.com/tell-me-more-about-incremental-backups/" target="_blank"><?php _e('Find out more about incremental backups here.', 'updraftplus'); ?></a>
|
68 |
+
</p>
|
@@ -27,7 +27,7 @@
|
|
27 |
</div>
|
28 |
|
29 |
<div id="updraft-restore-modal" title="UpdraftPlus - <?php _e('Restore backup', 'updraftplus');?>">
|
30 |
-
<p><strong><?php _e('Restore
|
31 |
|
32 |
<div id="updraft-restore-modal-stage2">
|
33 |
|
27 |
</div>
|
28 |
|
29 |
<div id="updraft-restore-modal" title="UpdraftPlus - <?php _e('Restore backup', 'updraftplus');?>">
|
30 |
+
<p><strong><?php _e('Restore files from', 'updraftplus');?>:</strong> <span class="updraft_restore_date"></span></p>
|
31 |
|
32 |
<div id="updraft-restore-modal-stage2">
|
33 |
|
@@ -22,12 +22,9 @@ $image_folder_url = UPDRAFTPLUS_URL.'/images/icons/';
|
|
22 |
<tbody>
|
23 |
<?php
|
24 |
|
25 |
-
// Reverse date sort - i.e. most recent first
|
26 |
-
krsort($backup_history);
|
27 |
-
|
28 |
foreach ($backup_history as $key => $backup) {
|
29 |
|
30 |
-
$remote_sent =
|
31 |
|
32 |
// https://core.trac.wordpress.org/ticket/25331 explains why the following line is wrong
|
33 |
// $pretty_date = date_i18n('Y-m-d G:i',$key);
|
@@ -39,13 +36,14 @@ $image_folder_url = UPDRAFTPLUS_URL.'/images/icons/';
|
|
39 |
$entities = '';
|
40 |
|
41 |
$nonce = $backup['nonce'];
|
42 |
-
$rawbackup = $updraftplus_admin->raw_backup_info($backup_history, $key, $nonce);
|
43 |
|
44 |
-
$jobdata = $updraftplus->jobdata_getarray($nonce);
|
|
|
|
|
45 |
|
46 |
$delete_button = $updraftplus_admin->delete_button($key, $nonce, $backup);
|
47 |
|
48 |
-
$upload_button = $updraftplus_admin->upload_button($key, $nonce, $backup);
|
49 |
|
50 |
$date_label = $updraftplus_admin->date_label($pretty_date, $key, $backup, $jobdata, $nonce);
|
51 |
|
22 |
<tbody>
|
23 |
<?php
|
24 |
|
|
|
|
|
|
|
25 |
foreach ($backup_history as $key => $backup) {
|
26 |
|
27 |
+
$remote_sent = !empty($backup['service']) && ((is_array($backup['service']) && in_array('remotesend', $backup['service'])) || 'remotesend' === $backup['service']);
|
28 |
|
29 |
// https://core.trac.wordpress.org/ticket/25331 explains why the following line is wrong
|
30 |
// $pretty_date = date_i18n('Y-m-d G:i',$key);
|
36 |
$entities = '';
|
37 |
|
38 |
$nonce = $backup['nonce'];
|
|
|
39 |
|
40 |
+
$jobdata = isset($backup['jobdata']) ? $backup['jobdata'] : $updraftplus->jobdata_getarray($nonce);
|
41 |
+
|
42 |
+
$rawbackup = $updraftplus_admin->raw_backup_info($backup_history, $key, $nonce, $jobdata);
|
43 |
|
44 |
$delete_button = $updraftplus_admin->delete_button($key, $nonce, $backup);
|
45 |
|
46 |
+
$upload_button = $updraftplus_admin->upload_button($key, $nonce, $backup, $jobdata);
|
47 |
|
48 |
$date_label = $updraftplus_admin->date_label($pretty_date, $key, $backup, $jobdata, $nonce);
|
49 |
|
@@ -84,7 +84,7 @@ foreach ($default_options as $k => $v) {
|
|
84 |
<th></th>
|
85 |
<td><div>
|
86 |
<?php
|
87 |
-
echo apply_filters('updraftplus_fixtime_ftinfo', '<p>'.__('To fix the time at which a backup should take place,', 'updraftplus').' ('.__('e.g. if your server is busy at day and you want to run overnight', 'updraftplus').'), '.__('or to configure more complex schedules', 'updraftplus').', <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'">'.htmlspecialchars(__('use UpdraftPlus Premium', 'updraftplus')).'</a></p>');
|
88 |
?>
|
89 |
</div></td>
|
90 |
</tr>
|
84 |
<th></th>
|
85 |
<td><div>
|
86 |
<?php
|
87 |
+
echo apply_filters('updraftplus_fixtime_ftinfo', '<p>'.__('To fix the time at which a backup should take place,', 'updraftplus').' ('.__('e.g. if your server is busy at day and you want to run overnight', 'updraftplus').'), '.__('to take incremental backups', 'updraftplus').', '.__('or to configure more complex schedules', 'updraftplus').', <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'">'.htmlspecialchars(__('use UpdraftPlus Premium', 'updraftplus')).'</a></p>');
|
88 |
?>
|
89 |
</div></td>
|
90 |
</tr>
|
@@ -82,6 +82,22 @@ $premv = UPDRAFTPLUS_URL.'/images/updraft_premv.png';
|
|
82 |
<p><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus');?>"></span></p>
|
83 |
</td>
|
84 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
<tr>
|
86 |
<td>
|
87 |
<img src="<?php echo UPDRAFTPLUS_URL.'/images/notices/support.png';?>" alt="<?php esc_attr_e('Support', 'updraftplus');?>" width="80" height="80" class="udp-premium-image">
|
82 |
<p><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus');?>"></span></p>
|
83 |
</td>
|
84 |
</tr>
|
85 |
+
<tr>
|
86 |
+
<td>
|
87 |
+
<img src="<?php echo UPDRAFTPLUS_URL . '/images/addons-images/incremental.png'; ?>" alt="<?php esc_attr_e('Incremental backups', 'updraftplus'); ?>" width="100" height="100" class="udp-premium-image">
|
88 |
+
<h4><?php _e('Incremental backups', 'updraftplus'); ?></h4>
|
89 |
+
<p>
|
90 |
+
<?php _e('Incremental backups are backups of just the changes since your last full backup. As a result, they are faster and need less space and resources to process.', 'updraftplus'); ?>
|
91 |
+
</p>
|
92 |
+
|
93 |
+
</td>
|
94 |
+
<td data-colname="<?php _e('Free', 'updraftplus'); ?>">
|
95 |
+
<p><span class="dashicons dashicons-no-alt" aria-label="<?php esc_attr_e('No', 'updraftplus'); ?>"></span></span></p>
|
96 |
+
</td>
|
97 |
+
<td data-colname="<?php _e('Premium', 'updraftplus'); ?>">
|
98 |
+
<p><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus'); ?>"></span></p>
|
99 |
+
</td>
|
100 |
+
</tr>
|
101 |
<tr>
|
102 |
<td>
|
103 |
<img src="<?php echo UPDRAFTPLUS_URL.'/images/notices/support.png';?>" alt="<?php esc_attr_e('Support', 'updraftplus');?>" width="80" height="80" class="udp-premium-image">
|
@@ -1,3 +1,4 @@
|
|
|
|
1 |
<div class="updraft_backup_content">
|
2 |
<div id="updraft-insert-admin-warning"></div>
|
3 |
<noscript>
|
@@ -47,7 +48,11 @@
|
|
47 |
</div>
|
48 |
</div>
|
49 |
<div class="updraft_backup_btn_wrapper">
|
50 |
-
<button id="updraft-backupnow-button" type="button" <?php echo $backup_disabled; ?> class="button button-primary button-large button-hero" <?php if ($backup_disabled) echo 'title="'.esc_attr(__('This button is disabled because your backup directory is not writable (see the settings).', 'updraftplus')).'" ';?> onclick="updraft_backup_dialog_open();"><?php echo str_ireplace('Back Up', 'Backup', __('Backup Now', 'updraftplus'));?></button>
|
|
|
|
|
|
|
|
|
51 |
</div>
|
52 |
<div id="updraft_activejobs_table">
|
53 |
<?php
|
@@ -79,7 +84,7 @@
|
|
79 |
</div>
|
80 |
</div>
|
81 |
|
82 |
-
<div id="updraft-backupnow-modal" title="UpdraftPlus - <?php _e('Perform a
|
83 |
<?php echo $updraftplus_admin->backupnow_modal_contents(); ?>
|
84 |
</div>
|
85 |
|
1 |
+
<?php if (!defined('UPDRAFTPLUS_DIR')) die('No direct access.'); ?>
|
2 |
<div class="updraft_backup_content">
|
3 |
<div id="updraft-insert-admin-warning"></div>
|
4 |
<noscript>
|
48 |
</div>
|
49 |
</div>
|
50 |
<div class="updraft_backup_btn_wrapper">
|
51 |
+
<button id="updraft-backupnow-button" type="button" <?php echo $backup_disabled; ?> class="button button-primary button-large button-hero" <?php if ($backup_disabled) echo 'title="'.esc_attr(__('This button is disabled because your backup directory is not writable (see the settings).', 'updraftplus')).'" ';?> onclick="updraft_backup_dialog_open(); return false;"><?php echo str_ireplace('Back Up', 'Backup', __('Backup Now', 'updraftplus'));?></button>
|
52 |
+
<?php
|
53 |
+
$link = '<p><a href="#" id="updraftplus_incremental_backup_link" onclick="updraft_backup_dialog_open(\'incremental\'); return false;" data-incremental="0">'.__('Add changed files (incremental backup) ...', ' updraftplus ') . '</a></p>';
|
54 |
+
echo apply_filters('updraftplus_incremental_backup_link', $link);
|
55 |
+
?>
|
56 |
</div>
|
57 |
<div id="updraft_activejobs_table">
|
58 |
<?php
|
84 |
</div>
|
85 |
</div>
|
86 |
|
87 |
+
<div id="updraft-backupnow-modal" title="UpdraftPlus - <?php _e('Perform a backup', 'updraftplus'); ?>">
|
88 |
<?php echo $updraftplus_admin->backupnow_modal_contents(); ?>
|
89 |
</div>
|
90 |
|
@@ -5,7 +5,7 @@ Plugin Name: UpdraftPlus - Backup/Restore
|
|
5 |
Plugin URI: https://updraftplus.com
|
6 |
Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
|
7 |
Author: UpdraftPlus.Com, DavidAnderson
|
8 |
-
Version: 1.
|
9 |
Donate link: https://david.dw-perspective.org.uk/donate
|
10 |
License: GPLv3 or later
|
11 |
Text Domain: updraftplus
|
5 |
Plugin URI: https://updraftplus.com
|
6 |
Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
|
7 |
Author: UpdraftPlus.Com, DavidAnderson
|
8 |
+
Version: 1.16.0
|
9 |
Donate link: https://david.dw-perspective.org.uk/donate
|
10 |
License: GPLv3 or later
|
11 |
Text Domain: updraftplus
|
@@ -379,17 +379,17 @@
|
|
379 |
},
|
380 |
{
|
381 |
"name": "phpseclib/phpseclib",
|
382 |
-
"version": "1.0.
|
383 |
-
"version_normalized": "1.0.
|
384 |
"source": {
|
385 |
"type": "git",
|
386 |
"url": "https://github.com/phpseclib/phpseclib.git",
|
387 |
-
"reference": "
|
388 |
},
|
389 |
"dist": {
|
390 |
"type": "zip",
|
391 |
-
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/
|
392 |
-
"reference": "
|
393 |
"shasum": ""
|
394 |
},
|
395 |
"require": {
|
@@ -406,9 +406,9 @@
|
|
406 |
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.",
|
407 |
"pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 5.0.0."
|
408 |
},
|
409 |
-
"time": "2018-
|
410 |
"type": "library",
|
411 |
-
"installation-source": "
|
412 |
"autoload": {
|
413 |
"psr-0": {
|
414 |
"Crypt": "phpseclib/",
|
@@ -646,8 +646,8 @@
|
|
646 |
},
|
647 |
{
|
648 |
"name": "symfony/event-dispatcher",
|
649 |
-
"version": "v2.8.
|
650 |
-
"version_normalized": "2.8.
|
651 |
"source": {
|
652 |
"type": "git",
|
653 |
"url": "https://github.com/symfony/event-dispatcher.git",
|
@@ -708,8 +708,8 @@
|
|
708 |
},
|
709 |
{
|
710 |
"name": "symfony/process",
|
711 |
-
"version": "v3.4.
|
712 |
-
"version_normalized": "3.4.
|
713 |
"source": {
|
714 |
"type": "git",
|
715 |
"url": "https://github.com/symfony/process.git",
|
379 |
},
|
380 |
{
|
381 |
"name": "phpseclib/phpseclib",
|
382 |
+
"version": "1.0.11",
|
383 |
+
"version_normalized": "1.0.11.0",
|
384 |
"source": {
|
385 |
"type": "git",
|
386 |
"url": "https://github.com/phpseclib/phpseclib.git",
|
387 |
+
"reference": "fd33675e483b887fc59834ab69e33ef7f2706425"
|
388 |
},
|
389 |
"dist": {
|
390 |
"type": "zip",
|
391 |
+
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/fd33675e483b887fc59834ab69e33ef7f2706425",
|
392 |
+
"reference": "fd33675e483b887fc59834ab69e33ef7f2706425",
|
393 |
"shasum": ""
|
394 |
},
|
395 |
"require": {
|
406 |
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a wide variety of cryptographic operations.",
|
407 |
"pear-pear/PHP_Compat": "Install PHP_Compat to get phpseclib working on PHP < 5.0.0."
|
408 |
},
|
409 |
+
"time": "2018-04-15T16:51:35+00:00",
|
410 |
"type": "library",
|
411 |
+
"installation-source": "source",
|
412 |
"autoload": {
|
413 |
"psr-0": {
|
414 |
"Crypt": "phpseclib/",
|
646 |
},
|
647 |
{
|
648 |
"name": "symfony/event-dispatcher",
|
649 |
+
"version": "v2.8.49",
|
650 |
+
"version_normalized": "2.8.49.0",
|
651 |
"source": {
|
652 |
"type": "git",
|
653 |
"url": "https://github.com/symfony/event-dispatcher.git",
|
708 |
},
|
709 |
{
|
710 |
"name": "symfony/process",
|
711 |
+
"version": "v3.4.20",
|
712 |
+
"version_normalized": "3.4.20.0",
|
713 |
"source": {
|
714 |
"type": "git",
|
715 |
"url": "https://github.com/symfony/process.git",
|
@@ -0,0 +1,214 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Changelog
|
2 |
+
|
3 |
+
## 1.0.11 - 2018-04-15
|
4 |
+
|
5 |
+
- X509: auto download intermediate certs
|
6 |
+
- BigInteger: fix for (new BigInteger(48))->toString(true)) (#1264)
|
7 |
+
- ASN1: class is never set as key in _decode_ber
|
8 |
+
|
9 |
+
## 1.0.10 - 2018-02-08
|
10 |
+
|
11 |
+
- BigInteger: fix issue with bitwise_xor (#1245)
|
12 |
+
- Crypt: some of the minimum lengths were off
|
13 |
+
- SFTP: update stat cache accordingly when file becomes a directory (#1235)
|
14 |
+
- SFTP: fix issue with extended attributes on 64-bit PHP installs (#1248)
|
15 |
+
- SSH2: more channel handling updates (#1200)
|
16 |
+
- X509: use anonymous functions in PHP >= 5.3.0
|
17 |
+
- X509: revise logic for validateSignature (#1213)
|
18 |
+
- X509: fix 7.2 error when extensions were removed and new ones added (#1243)
|
19 |
+
- fix float to int conversions on ARM CPU's (#1220)
|
20 |
+
|
21 |
+
## 1.0.9 - 2017-11-29
|
22 |
+
|
23 |
+
- SSH2: fix issue with key re-exchange
|
24 |
+
- SSH2: updates to dealing with extraneous channel packets
|
25 |
+
- X509: URL validation didn't work (#1203)
|
26 |
+
|
27 |
+
## 1.0.8 - 2017-10-22
|
28 |
+
|
29 |
+
- SSH2:
|
30 |
+
- add new READ_NEXT mode (#1140)
|
31 |
+
- add sendIdentificationStringFirst()
|
32 |
+
- add sendKEXINITFirst()
|
33 |
+
- add sendIdentificationStringLast()
|
34 |
+
- add sendKEXINITLast() (#1162)
|
35 |
+
- assume any SSH server >= 1.99 supports SSH2 (#1170)
|
36 |
+
- workaround for bad arcfour256 implementations (#1171)
|
37 |
+
- don't choke when getting response from diff channel in exec() (#1167)
|
38 |
+
- SFTP:
|
39 |
+
- add enablePathCanonicalization()
|
40 |
+
- add disablePathCanonicalization() (#1137)
|
41 |
+
- fix put() with remote file stream resource (#1177)
|
42 |
+
- ANSI: misc fixes (#1150, #1161)
|
43 |
+
- X509: use DateTime instead of unix time (#1166)
|
44 |
+
- Ciphers: use eval() instead of create_function() for >= 5.3
|
45 |
+
|
46 |
+
## 1.0.7 - 2017-06-05
|
47 |
+
|
48 |
+
- Crypt: fix OpenSSL engine on <= PHP 5.3.6 (#1122)
|
49 |
+
- Random: suppress possible E_DEPRECATED errors
|
50 |
+
- RSA: reset variables if bad key was loaded
|
51 |
+
|
52 |
+
## 1.0.6 - 2017-05-07
|
53 |
+
|
54 |
+
- SSH2: don't use timeout value of 0 for fsockopen (#775)
|
55 |
+
- SSH2: make it so disabling PTY closes exec() channel if it's open (#1009)
|
56 |
+
- SSH2: include `<pre>` tags in getLog result when SAPI isn't CLI
|
57 |
+
- SFTP: don't assume current directory when $path parameter for delete is null (#1059)
|
58 |
+
- SFTP: fix put() with php://input as source (#1119)
|
59 |
+
- ASN1: fix UTCTime parsing (#1110)
|
60 |
+
- X509: ignore certificate transparency extension (#1073)
|
61 |
+
- Crypt: OpenSSL apparently supports variable size keys (#1085)
|
62 |
+
|
63 |
+
## 1.0.5 - 2016-10-22
|
64 |
+
|
65 |
+
- fix issue preventing installation of 1.0.x via Composer (#1048)
|
66 |
+
|
67 |
+
## 1.0.4 - 2016-10-03
|
68 |
+
|
69 |
+
- fix E_DEPRECATED errors on PHP 7.0 and 7.1 (#1041)
|
70 |
+
- fix float to int conversions on 32-bit Linux pre-PHP 5.3 (#1038, #1034)
|
71 |
+
- SFTP: speed up downloads (#945)
|
72 |
+
- SFTP: fix infinite loop when uploading empty file (#995)
|
73 |
+
- ASN1: fix possible infinite loop in decode (#1027)
|
74 |
+
|
75 |
+
## 1.0.3 - 2016-08-18
|
76 |
+
|
77 |
+
- BigInteger/RSA: don't compare openssl versions > 1.0 (#946)
|
78 |
+
- RSA: don't attempt to use the CRT when zero value components exist (#980)
|
79 |
+
- RSA: zero salt length RSA signatures don't work (#1002)
|
80 |
+
- ASN1: fix PHP Warning on PHP 7.1 (#1013)
|
81 |
+
- X509: set parameter fields to null for CSR's / RSA (#914)
|
82 |
+
- CRL optimizations (#1000)
|
83 |
+
- SSH2: fix "Expected SSH_FXP_STATUS or ..." error (#999)
|
84 |
+
- SFTP: make symlinks support relative target's (#1004)
|
85 |
+
- SFTP: fix sending stream resulting in zero byte file (#995)
|
86 |
+
|
87 |
+
## 1.0.2 - 2016-05-07
|
88 |
+
|
89 |
+
- All Ciphers: fix issue with CBC mode / OpenSSL / continuous buffers / decryption (#938)
|
90 |
+
- Random: fix issues with serialize() (#932)
|
91 |
+
- RC2: fix issue with decrypting
|
92 |
+
- RC4: fix issue with key not being truncated correctly
|
93 |
+
- SFTP: nlist() on a non-existent directory resulted in error
|
94 |
+
- SFTP: add is_writable, is_writeable, is_readable
|
95 |
+
- RSA: fix PHP4 compatibility issue
|
96 |
+
|
97 |
+
## 1.0.1 - 2016-01-18
|
98 |
+
|
99 |
+
- RSA: fix regression in PSS mode ([#769](https://github.com/phpseclib/phpseclib/pull/769))
|
100 |
+
- RSA: fix issue loading PKCS8 specific keys ([#861](https://github.com/phpseclib/phpseclib/pull/861))
|
101 |
+
- X509: add getOID() method ([#789](https://github.com/phpseclib/phpseclib/pull/789))
|
102 |
+
- X509: improve base64-encoded detection rules ([#855](https://github.com/phpseclib/phpseclib/pull/855))
|
103 |
+
- SFTP: fix quirky behavior with put() ([#830](https://github.com/phpseclib/phpseclib/pull/830))
|
104 |
+
- SFTP: fix E_NOTICE ([#883](https://github.com/phpseclib/phpseclib/pull/883))
|
105 |
+
- SFTP/Stream: fix issue with filenames with hashes ([#901](https://github.com/phpseclib/phpseclib/pull/901))
|
106 |
+
- SSH2: add isAuthenticated() method ([#897](https://github.com/phpseclib/phpseclib/pull/897))
|
107 |
+
- SSH/Agent: fix possible PHP warning ([#923](https://github.com/phpseclib/phpseclib/issues/923))
|
108 |
+
- BigInteger: add __debugInfo() magic method ([#881](https://github.com/phpseclib/phpseclib/pull/881))
|
109 |
+
- BigInteger: fix issue with doing bitwise not on 0
|
110 |
+
- add getBlockLength() method to symmetric ciphers
|
111 |
+
|
112 |
+
## 1.0.0 - 2015-08-02
|
113 |
+
|
114 |
+
- OpenSSL support for symmetric ciphers ([#507](https://github.com/phpseclib/phpseclib/pull/507))
|
115 |
+
- rewritten vt100 terminal emulator (File_ANSI) ([#689](https://github.com/phpseclib/phpseclib/pull/689))
|
116 |
+
- agent-forwarding support (System_SSH_Agent) ([#592](https://github.com/phpseclib/phpseclib/pull/592))
|
117 |
+
- Net_SSH2 improvements
|
118 |
+
- diffie-hellman-group-exchange-sha1/sha256 support ([#714](https://github.com/phpseclib/phpseclib/pull/714))
|
119 |
+
- window size handling updates ([#717](https://github.com/phpseclib/phpseclib/pull/717))
|
120 |
+
- Net_SFTP improvements
|
121 |
+
- add callback support to put() ([#655](https://github.com/phpseclib/phpseclib/pull/655))
|
122 |
+
- stat cache fixes ([#743](https://github.com/phpseclib/phpseclib/issues/743), [#730](https://github.com/phpseclib/phpseclib/issues/730), [#709](https://github.com/phpseclib/phpseclib/issues/709), [#726](https://github.com/phpseclib/phpseclib/issues/726))
|
123 |
+
- add "none" encryption mode to Crypt_RSA ([#692](https://github.com/phpseclib/phpseclib/pull/692))
|
124 |
+
- misc ASN.1 / X.509 parsing fixes ([#721](https://github.com/phpseclib/phpseclib/pull/721), [#627](https://github.com/phpseclib/phpseclib/pull/627))
|
125 |
+
- use a random serial number for new X509 certs ([#740](https://github.com/phpseclib/phpseclib/pull/740))
|
126 |
+
- add getPublicKeyFingerprint() to Crypt_RSA ([#677](https://github.com/phpseclib/phpseclib/pull/677))
|
127 |
+
|
128 |
+
## 0.3.10 - 2015-02-04
|
129 |
+
|
130 |
+
- simplify SSH2 window size handling ([#538](https://github.com/phpseclib/phpseclib/pull/538))
|
131 |
+
- slightly relax the conditions under which OpenSSL is used ([#598](https://github.com/phpseclib/phpseclib/pull/598))
|
132 |
+
- fix issue with empty constructed context-specific tags in ASN1 ([#606](https://github.com/phpseclib/phpseclib/pull/606))
|
133 |
+
|
134 |
+
## 0.3.9 - 2014-11-09
|
135 |
+
|
136 |
+
- PHP 5.6 improvements ([#482](https://github.com/phpseclib/phpseclib/pull/482), [#491](https://github.com/phpseclib/phpseclib/issues/491))
|
137 |
+
|
138 |
+
## 0.3.8 - 2014-09-12
|
139 |
+
|
140 |
+
- improve support for indef lengths in File_ASN1
|
141 |
+
- add hmac-sha2-256 support to Net_SSH2
|
142 |
+
- make it so negotiated algorithms can be seen before Net_SSH2 login
|
143 |
+
- add sha256-96 and sha512-96 to Crypt_Hash
|
144 |
+
- window size handling adjustments in Net_SSH2
|
145 |
+
|
146 |
+
## 0.3.7 - 2014-07-05
|
147 |
+
|
148 |
+
- auto-detect public vs private keys
|
149 |
+
- add file_exists, is_dir, is_file, readlink and symlink to Net_SFTP
|
150 |
+
- add support for recursive nlist and rawlist
|
151 |
+
- make it so nlist and rawlist can return pre-sorted output
|
152 |
+
- make it so callback functions can make exec() return early
|
153 |
+
- add signSPKAC and saveSPKAC methods to File_X509
|
154 |
+
- add support for PKCS8 keys in Crypt_RSA
|
155 |
+
- add pbkdf1 support to setPassword() in Crypt_Base
|
156 |
+
- add getWindowColumns, getWindowRows, setWindowColumns, setWindowRows to Net_SSH2
|
157 |
+
- add support for filenames with spaces in them to Net_SCP
|
158 |
+
|
159 |
+
## 0.3.6 - 2014-02-23
|
160 |
+
|
161 |
+
- add preliminary support for custom SSH subsystems
|
162 |
+
- add ssh-agent support
|
163 |
+
|
164 |
+
## 0.3.5 - 2013-07-11
|
165 |
+
|
166 |
+
- numerous SFTP changes:
|
167 |
+
- chown
|
168 |
+
- chgrp
|
169 |
+
- truncate
|
170 |
+
- improved file type detection
|
171 |
+
- put() can write to the middle of a file
|
172 |
+
- mkdir accepts the same parameters that PHP's mkdir does
|
173 |
+
- the ability to upload/download 2GB files
|
174 |
+
- across-the-board speedups for the various encryption algorithms
|
175 |
+
- multi-factor authentication support for Net_SSH2
|
176 |
+
- a $callback parameter for Net_SSH2::exec
|
177 |
+
- new classes:
|
178 |
+
- Net_SFTP_StreamWrapper
|
179 |
+
- Net_SCP
|
180 |
+
- Crypt_Twofish
|
181 |
+
- Crypt_Blowfish
|
182 |
+
|
183 |
+
## 0.3.1 - 2012-11-20
|
184 |
+
|
185 |
+
- add Net_SSH2::enableQuietMode() for suppressing stderr
|
186 |
+
- add Crypt_RSA::__toString() and Crypt_RSA::getSize()
|
187 |
+
- fix problems with File_X509::validateDate(), File_X509::sign() and Crypt_RSA::verify()
|
188 |
+
- use OpenSSL to speed up modular exponention in Math_BigInteger
|
189 |
+
- improved timeout functionality in Net_SSH2
|
190 |
+
- add support for SFTPv2
|
191 |
+
- add support for CRLs in File_X509
|
192 |
+
- SSH-2.0-SSH doesn't implement hmac-*-96 correctly
|
193 |
+
|
194 |
+
## 0.3.0 - 2012-07-08
|
195 |
+
|
196 |
+
- add support for reuming Net_SFTP::put()
|
197 |
+
- add support for recursive deletes and recursive chmods to Net_SFTP
|
198 |
+
- add setTimeout() to Net_SSH2
|
199 |
+
- add support for PBKDF2 to the various Crypt_* classes via setPassword()
|
200 |
+
- add File_X509 and File_ASN1
|
201 |
+
- add the ability to decode various formats in Crypt_RSA
|
202 |
+
- make Net_SSH2::getServerPublicHostKey() return a printer-friendly version of the public key
|
203 |
+
|
204 |
+
## 0.2.2 - 2011-05-09
|
205 |
+
|
206 |
+
- CFB and OFB modes were added to all block ciphers
|
207 |
+
- support for interactive mode was added to Net_SSH2
|
208 |
+
- Net_SSH2 now has limited keyboard_interactive authentication support
|
209 |
+
- support was added for PuTTY formatted RSA private keys and XML formatted RSA private keys
|
210 |
+
- Crypt_RSA::loadKey() will now try all key types automatically
|
211 |
+
- add support for AES-128-CBC and DES-EDE3-CFB encrypted RSA private keys
|
212 |
+
- add Net_SFTP::stat(), Net_SFTP::lstat() and Net_SFTP::rawlist()
|
213 |
+
- logging was added to Net_SSH1
|
214 |
+
- the license was changed to the less restrictive MIT license
|
@@ -36,7 +36,7 @@ AES, Blowfish, Twofish, SSH-1, SSH-2, SFTP, and X.509
|
|
36 |
* Composer compatible (PSR-0 autoloading)
|
37 |
* Install using Composer: `composer require phpseclib/phpseclib ~1.0`
|
38 |
* Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
|
39 |
-
* [Download 1.0.
|
40 |
|
41 |
## Support
|
42 |
|
36 |
* Composer compatible (PSR-0 autoloading)
|
37 |
* Install using Composer: `composer require phpseclib/phpseclib ~1.0`
|
38 |
* Install using PEAR: See [phpseclib PEAR Channel Documentation](http://phpseclib.sourceforge.net/pear.htm)
|
39 |
+
* [Download 1.0.11 as ZIP](http://sourceforge.net/projects/phpseclib/files/phpseclib1.0.11.zip/download)
|
40 |
|
41 |
## Support
|
42 |
|
@@ -1,27 +0,0 @@
|
|
1 |
-
build: false
|
2 |
-
shallow_clone: false
|
3 |
-
platform:
|
4 |
-
- x86
|
5 |
-
- x64
|
6 |
-
clone_folder: C:\projects\phpseclib
|
7 |
-
|
8 |
-
install:
|
9 |
-
- cinst -y OpenSSL.Light
|
10 |
-
- SET PATH=C:\Program Files\OpenSSL;%PATH%
|
11 |
-
- sc config wuauserv start= auto
|
12 |
-
- net start wuauserv
|
13 |
-
- cinst -y php --version 5.6.30
|
14 |
-
- cd c:\tools\php56
|
15 |
-
- copy php.ini-production php.ini
|
16 |
-
- echo date.timezone="UTC" >> php.ini
|
17 |
-
- echo extension_dir=ext >> php.ini
|
18 |
-
- echo extension=php_openssl.dll >> php.ini
|
19 |
-
- echo extension=php_gmp.dll >> php.ini
|
20 |
-
- cd C:\projects\phpseclib
|
21 |
-
- SET PATH=C:\tools\php56;%PATH%
|
22 |
-
- php.exe -r "readfile('http://getcomposer.org/installer');" | php.exe
|
23 |
-
- php.exe composer.phar install --prefer-source --no-interaction
|
24 |
-
|
25 |
-
test_script:
|
26 |
-
- cd C:\projects\phpseclib
|
27 |
-
- vendor\bin\phpunit.bat tests/Windows32Test.php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<project name="phpseclib"
|
3 |
+
description="PHP Secure Communications Library"
|
4 |
+
default="all"
|
5 |
+
>
|
6 |
+
|
7 |
+
<target name="all" depends="sniff,api" />
|
8 |
+
|
9 |
+
<!-- Code Sniffer -->
|
10 |
+
<target name="sniff" depends="sniff-php-code,sniff-php-tests" />
|
11 |
+
<target name="sniff-php-code">
|
12 |
+
<exec command="vendor/bin/phpcs -s
|
13 |
+
--extensions=php
|
14 |
+
--standard=build/code-sniffer-ruleset.xml
|
15 |
+
phpseclib/"
|
16 |
+
dir=".." checkreturn="true" passthru="true" />
|
17 |
+
</target>
|
18 |
+
<target name="sniff-php-tests">
|
19 |
+
<exec command="vendor/bin/phpcs -s
|
20 |
+
--extensions=php
|
21 |
+
--standard=build/code-sniffer-ruleset-tests.xml
|
22 |
+
tests/"
|
23 |
+
dir=".." checkreturn="true" passthru="true" />
|
24 |
+
</target>
|
25 |
+
|
26 |
+
<!-- API Generation -->
|
27 |
+
<target name="api">
|
28 |
+
<exec command="vendor/bin/sami.php update build/sami.conf.php"
|
29 |
+
dir=".." passthru="true" />
|
30 |
+
</target>
|
31 |
+
|
32 |
+
</project>
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<ruleset name="phpseclib Test Standard">
|
3 |
+
|
4 |
+
<description>phpseclib coding standard for tests</description>
|
5 |
+
|
6 |
+
<!-- In general rules that apply to library code also apply to tests. -->
|
7 |
+
<rule ref="./code-sniffer-ruleset.xml">
|
8 |
+
<!-- Exceptions to the library coding standard follow. -->
|
9 |
+
</rule>
|
10 |
+
|
11 |
+
</ruleset>
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<ruleset name="phpseclib Standard">
|
3 |
+
|
4 |
+
<description>phpseclib coding standard</description>
|
5 |
+
|
6 |
+
<!-- We are using the PSR2 standard as a base -->
|
7 |
+
<rule ref="PSR2">
|
8 |
+
<!-- Exceptions for PHP4 compatibility -->
|
9 |
+
<exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace" />
|
10 |
+
<exclude name="PSR2.Classes.PropertyDeclaration.ScopeMissing" />
|
11 |
+
<exclude name="PSR2.Classes.PropertyDeclaration.VarUsed" />
|
12 |
+
<exclude name="Squiz.Scope.MethodScope.Missing" />
|
13 |
+
|
14 |
+
<!-- Exceptions for backward compatibility -->
|
15 |
+
<exclude name="PSR1.Classes.ClassDeclaration.MultipleClasses" />
|
16 |
+
<exclude name="PSR1.Files.SideEffects.FoundWithSymbols" />
|
17 |
+
<exclude name="PSR1.Methods.CamelCapsMethodName.NotCamelCaps" />
|
18 |
+
<exclude name="PSR2.Methods.MethodDeclaration.Underscore" />
|
19 |
+
<exclude name="Squiz.Classes.ValidClassName.NotCamelCaps" />
|
20 |
+
|
21 |
+
<!-- Exceptions for whitespacing -->
|
22 |
+
<exclude name="Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma" />
|
23 |
+
<exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonCASE" />
|
24 |
+
<exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonDEFAULT" />
|
25 |
+
|
26 |
+
<!-- Other Exceptions -->
|
27 |
+
<exclude name="Generic.Files.LineLength.TooLong" />
|
28 |
+
<exclude name="PSR2.ControlStructures.SwitchDeclaration.TerminatingComment" />
|
29 |
+
</rule>
|
30 |
+
|
31 |
+
<!-- Useful additional rules follow -->
|
32 |
+
|
33 |
+
<!-- "for (; bar; )" should be "while (bar)" instead -->
|
34 |
+
<rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop" />
|
35 |
+
|
36 |
+
<!-- A method MUST not only call its parent -->
|
37 |
+
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod" />
|
38 |
+
|
39 |
+
</ruleset>
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Prevent e.g. 'Notice: Constant MATH_BIGINTEGER_MONTGOMERY already defined'.
|
4 |
+
class MyArrayStore extends Sami\Store\ArrayStore
|
5 |
+
{
|
6 |
+
public function removeClass(Sami\Project $project, $name)
|
7 |
+
{
|
8 |
+
unset($this->classes[$name]);
|
9 |
+
}
|
10 |
+
}
|
11 |
+
|
12 |
+
$iterator = Symfony\Component\Finder\Finder::create()
|
13 |
+
->files()
|
14 |
+
->name('*.php')
|
15 |
+
->in(__DIR__ . '/../phpseclib/')
|
16 |
+
;
|
17 |
+
|
18 |
+
$versions = Sami\Version\GitVersionCollection::create(__DIR__ . '/../')
|
19 |
+
->add('1.0')
|
20 |
+
->add('2.0')
|
21 |
+
->add('master')
|
22 |
+
;
|
23 |
+
|
24 |
+
return new Sami\Sami($iterator, array(
|
25 |
+
'theme' => 'enhanced',
|
26 |
+
'versions' => $versions,
|
27 |
+
'title' => 'phpseclib API Documentation',
|
28 |
+
'build_dir' => __DIR__.'/api/output/%version%',
|
29 |
+
'cache_dir' => __DIR__.'/api/cache/%version%',
|
30 |
+
'default_opened_level' => 2,
|
31 |
+
'store' => new MyArrayStore,
|
32 |
+
));
|
@@ -661,7 +661,7 @@ class Crypt_Base
|
|
661 |
$count = isset($func_args[4]) ? $func_args[4] : 1000;
|
662 |
|
663 |
// Keylength
|
664 |
-
if (isset($func_args[5])
|
665 |
$dkLen = $func_args[5];
|
666 |
} else {
|
667 |
$dkLen = $method == 'pbkdf1' ? 2 * $this->key_length : $this->key_length;
|
@@ -696,10 +696,10 @@ class Crypt_Base
|
|
696 |
include_once 'Crypt/Hash.php';
|
697 |
}
|
698 |
$i = 1;
|
699 |
-
$hmac = new Crypt_Hash();
|
700 |
-
$hmac->setHash($hash);
|
701 |
-
$hmac->setKey($password);
|
702 |
while (strlen($key) < $dkLen) {
|
|
|
|
|
|
|
703 |
$f = $u = $hmac->hash($salt . pack('N', $i++));
|
704 |
for ($j = 2; $j <= $count; ++$j) {
|
705 |
$u = $hmac->hash($u);
|
661 |
$count = isset($func_args[4]) ? $func_args[4] : 1000;
|
662 |
|
663 |
// Keylength
|
664 |
+
if (isset($func_args[5])) {
|
665 |
$dkLen = $func_args[5];
|
666 |
} else {
|
667 |
$dkLen = $method == 'pbkdf1' ? 2 * $this->key_length : $this->key_length;
|
696 |
include_once 'Crypt/Hash.php';
|
697 |
}
|
698 |
$i = 1;
|
|
|
|
|
|
|
699 |
while (strlen($key) < $dkLen) {
|
700 |
+
$hmac = new Crypt_Hash();
|
701 |
+
$hmac->setHash($hash);
|
702 |
+
$hmac->setKey($password);
|
703 |
$f = $u = $hmac->hash($salt . pack('N', $i++));
|
704 |
for ($j = 2; $j <= $count; ++$j) {
|
705 |
$u = $hmac->hash($u);
|
@@ -126,15 +126,6 @@ class Crypt_Hash
|
|
126 |
*/
|
127 |
var $key = false;
|
128 |
|
129 |
-
/**
|
130 |
-
* Computed Key
|
131 |
-
*
|
132 |
-
* @see self::_computeKey()
|
133 |
-
* @var string
|
134 |
-
* @access private
|
135 |
-
*/
|
136 |
-
var $computedKey = false;
|
137 |
-
|
138 |
/**
|
139 |
* Outer XOR (Internal HMAC)
|
140 |
*
|
@@ -201,43 +192,6 @@ class Crypt_Hash
|
|
201 |
function setKey($key = false)
|
202 |
{
|
203 |
$this->key = $key;
|
204 |
-
$this->_computeKey();
|
205 |
-
}
|
206 |
-
|
207 |
-
/**
|
208 |
-
* Pre-compute the key used by the HMAC
|
209 |
-
*
|
210 |
-
* Quoting http://tools.ietf.org/html/rfc2104#section-2, "Applications that use keys longer than B bytes
|
211 |
-
* will first hash the key using H and then use the resultant L byte string as the actual key to HMAC."
|
212 |
-
*
|
213 |
-
* As documented in https://www.reddit.com/r/PHP/comments/9nct2l/symfonypolyfill_hash_pbkdf2_correct_fix_for/
|
214 |
-
* when doing an HMAC multiple times it's faster to compute the hash once instead of computing it during
|
215 |
-
* every call
|
216 |
-
*
|
217 |
-
* @access private
|
218 |
-
*/
|
219 |
-
function _computeKey()
|
220 |
-
{
|
221 |
-
if ($this->key === false) {
|
222 |
-
$this->computedKey = false;
|
223 |
-
return;
|
224 |
-
}
|
225 |
-
|
226 |
-
if (strlen($this->key) <= $this->b) {
|
227 |
-
$this->computedKey = $this->key;
|
228 |
-
return;
|
229 |
-
}
|
230 |
-
|
231 |
-
switch ($mode) {
|
232 |
-
case CRYPT_HASH_MODE_MHASH:
|
233 |
-
$this->computedKey = mhash($this->hash, $this->key);
|
234 |
-
break;
|
235 |
-
case CRYPT_HASH_MODE_HASH:
|
236 |
-
$this->computedKey = hash($this->hash, $this->key, true);
|
237 |
-
break;
|
238 |
-
case CRYPT_HASH_MODE_INTERNAL:
|
239 |
-
$this->computedKey = call_user_func($this->hash, $this->key);
|
240 |
-
}
|
241 |
}
|
242 |
|
243 |
/**
|
@@ -287,25 +241,6 @@ class Crypt_Hash
|
|
287 |
$this->l = 64;
|
288 |
}
|
289 |
|
290 |
-
switch ($hash) {
|
291 |
-
case 'md2-96':
|
292 |
-
case 'md2':
|
293 |
-
$this->b = 16;
|
294 |
-
case 'md5-96':
|
295 |
-
case 'sha1-96':
|
296 |
-
case 'sha224-96':
|
297 |
-
case 'sha256-96':
|
298 |
-
case 'md2':
|
299 |
-
case 'md5':
|
300 |
-
case 'sha1':
|
301 |
-
case 'sha224':
|
302 |
-
case 'sha256':
|
303 |
-
$this->b = 64;
|
304 |
-
break;
|
305 |
-
default:
|
306 |
-
$this->b = 128;
|
307 |
-
}
|
308 |
-
|
309 |
switch ($hash) {
|
310 |
case 'md2':
|
311 |
$mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_HASH && in_array('md2', hash_algos()) ?
|
@@ -332,7 +267,6 @@ class Crypt_Hash
|
|
332 |
default:
|
333 |
$this->hash = MHASH_SHA1;
|
334 |
}
|
335 |
-
$this->_computeKey();
|
336 |
return;
|
337 |
case CRYPT_HASH_MODE_HASH:
|
338 |
switch ($hash) {
|
@@ -349,33 +283,35 @@ class Crypt_Hash
|
|
349 |
default:
|
350 |
$this->hash = 'sha1';
|
351 |
}
|
352 |
-
$this->_computeKey();
|
353 |
return;
|
354 |
}
|
355 |
|
356 |
switch ($hash) {
|
357 |
case 'md2':
|
|
|
358 |
$this->hash = array($this, '_md2');
|
359 |
break;
|
360 |
case 'md5':
|
|
|
361 |
$this->hash = array($this, '_md5');
|
362 |
break;
|
363 |
case 'sha256':
|
|
|
364 |
$this->hash = array($this, '_sha256');
|
365 |
break;
|
366 |
case 'sha384':
|
367 |
case 'sha512':
|
|
|
368 |
$this->hash = array($this, '_sha512');
|
369 |
break;
|
370 |
case 'sha1':
|
371 |
default:
|
|
|
372 |
$this->hash = array($this, '_sha1');
|
373 |
}
|
374 |
|
375 |
$this->ipad = str_repeat(chr(0x36), $this->b);
|
376 |
$this->opad = str_repeat(chr(0x5C), $this->b);
|
377 |
-
|
378 |
-
$this->_computeKey();
|
379 |
}
|
380 |
|
381 |
/**
|
@@ -392,19 +328,25 @@ class Crypt_Hash
|
|
392 |
if (!empty($this->key) || is_string($this->key)) {
|
393 |
switch ($mode) {
|
394 |
case CRYPT_HASH_MODE_MHASH:
|
395 |
-
$output = mhash($this->hash, $text, $this->
|
396 |
break;
|
397 |
case CRYPT_HASH_MODE_HASH:
|
398 |
-
$output = hash_hmac($this->hash, $text, $this->
|
399 |
break;
|
400 |
case CRYPT_HASH_MODE_INTERNAL:
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
$
|
406 |
-
|
407 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
408 |
}
|
409 |
} else {
|
410 |
switch ($mode) {
|
126 |
*/
|
127 |
var $key = false;
|
128 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
/**
|
130 |
* Outer XOR (Internal HMAC)
|
131 |
*
|
192 |
function setKey($key = false)
|
193 |
{
|
194 |
$this->key = $key;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
}
|
196 |
|
197 |
/**
|
241 |
$this->l = 64;
|
242 |
}
|
243 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
switch ($hash) {
|
245 |
case 'md2':
|
246 |
$mode = CRYPT_HASH_MODE == CRYPT_HASH_MODE_HASH && in_array('md2', hash_algos()) ?
|
267 |
default:
|
268 |
$this->hash = MHASH_SHA1;
|
269 |
}
|
|
|
270 |
return;
|
271 |
case CRYPT_HASH_MODE_HASH:
|
272 |
switch ($hash) {
|
283 |
default:
|
284 |
$this->hash = 'sha1';
|
285 |
}
|
|
|
286 |
return;
|
287 |
}
|
288 |
|
289 |
switch ($hash) {
|
290 |
case 'md2':
|
291 |
+
$this->b = 16;
|
292 |
$this->hash = array($this, '_md2');
|
293 |
break;
|
294 |
case 'md5':
|
295 |
+
$this->b = 64;
|
296 |
$this->hash = array($this, '_md5');
|
297 |
break;
|
298 |
case 'sha256':
|
299 |
+
$this->b = 64;
|
300 |
$this->hash = array($this, '_sha256');
|
301 |
break;
|
302 |
case 'sha384':
|
303 |
case 'sha512':
|
304 |
+
$this->b = 128;
|
305 |
$this->hash = array($this, '_sha512');
|
306 |
break;
|
307 |
case 'sha1':
|
308 |
default:
|
309 |
+
$this->b = 64;
|
310 |
$this->hash = array($this, '_sha1');
|
311 |
}
|
312 |
|
313 |
$this->ipad = str_repeat(chr(0x36), $this->b);
|
314 |
$this->opad = str_repeat(chr(0x5C), $this->b);
|
|
|
|
|
315 |
}
|
316 |
|
317 |
/**
|
328 |
if (!empty($this->key) || is_string($this->key)) {
|
329 |
switch ($mode) {
|
330 |
case CRYPT_HASH_MODE_MHASH:
|
331 |
+
$output = mhash($this->hash, $text, $this->key);
|
332 |
break;
|
333 |
case CRYPT_HASH_MODE_HASH:
|
334 |
+
$output = hash_hmac($this->hash, $text, $this->key, true);
|
335 |
break;
|
336 |
case CRYPT_HASH_MODE_INTERNAL:
|
337 |
+
/* "Applications that use keys longer than B bytes will first hash the key using H and then use the
|
338 |
+
resultant L byte string as the actual key to HMAC."
|
339 |
+
|
340 |
+
-- http://tools.ietf.org/html/rfc2104#section-2 */
|
341 |
+
$key = strlen($this->key) > $this->b ? call_user_func($this->hash, $this->key) : $this->key;
|
342 |
+
|
343 |
+
$key = str_pad($key, $this->b, chr(0)); // step 1
|
344 |
+
$temp = $this->ipad ^ $key; // step 2
|
345 |
+
$temp .= $text; // step 3
|
346 |
+
$temp = call_user_func($this->hash, $temp); // step 4
|
347 |
+
$output = $this->opad ^ $key; // step 5
|
348 |
+
$output.= $temp; // step 6
|
349 |
+
$output = call_user_func($this->hash, $output); // step 7
|
350 |
}
|
351 |
} else {
|
352 |
switch ($mode) {
|
@@ -390,9 +390,6 @@ class File_ASN1
|
|
390 |
$remainingLength = $length;
|
391 |
while ($remainingLength > 0) {
|
392 |
$temp = $this->_decode_ber($content, $start, $content_pos);
|
393 |
-
if ($temp === false) {
|
394 |
-
break;
|
395 |
-
}
|
396 |
$length = $temp['length'];
|
397 |
// end-of-content octets - see paragraph 8.1.5
|
398 |
if (substr($content, $content_pos + $length, 2) == "\0\0") {
|
@@ -444,9 +441,6 @@ class File_ASN1
|
|
444 |
$current['content'] = substr($content, $content_pos);
|
445 |
} else {
|
446 |
$temp = $this->_decode_ber($content, $start, $content_pos);
|
447 |
-
if ($temp === false) {
|
448 |
-
return false;
|
449 |
-
}
|
450 |
$length-= (strlen($content) - $content_pos);
|
451 |
$last = count($temp) - 1;
|
452 |
for ($i = 0; $i < $last; $i++) {
|
@@ -471,9 +465,6 @@ class File_ASN1
|
|
471 |
$length = 0;
|
472 |
while (substr($content, $content_pos, 2) != "\0\0") {
|
473 |
$temp = $this->_decode_ber($content, $length + $start, $content_pos);
|
474 |
-
if ($temp === false) {
|
475 |
-
return false;
|
476 |
-
}
|
477 |
$content_pos += $temp['length'];
|
478 |
// all subtags should be octet strings
|
479 |
//if ($temp['type'] != FILE_ASN1_TYPE_OCTET_STRING) {
|
@@ -506,9 +497,6 @@ class File_ASN1
|
|
506 |
break 2;
|
507 |
}
|
508 |
$temp = $this->_decode_ber($content, $start + $offset, $content_pos);
|
509 |
-
if ($temp === false) {
|
510 |
-
return false;
|
511 |
-
}
|
512 |
$content_pos += $temp['length'];
|
513 |
$current['content'][] = $temp;
|
514 |
$offset+= $temp['length'];
|
390 |
$remainingLength = $length;
|
391 |
while ($remainingLength > 0) {
|
392 |
$temp = $this->_decode_ber($content, $start, $content_pos);
|
|
|
|
|
|
|
393 |
$length = $temp['length'];
|
394 |
// end-of-content octets - see paragraph 8.1.5
|
395 |
if (substr($content, $content_pos + $length, 2) == "\0\0") {
|
441 |
$current['content'] = substr($content, $content_pos);
|
442 |
} else {
|
443 |
$temp = $this->_decode_ber($content, $start, $content_pos);
|
|
|
|
|
|
|
444 |
$length-= (strlen($content) - $content_pos);
|
445 |
$last = count($temp) - 1;
|
446 |
for ($i = 0; $i < $last; $i++) {
|
465 |
$length = 0;
|
466 |
while (substr($content, $content_pos, 2) != "\0\0") {
|
467 |
$temp = $this->_decode_ber($content, $length + $start, $content_pos);
|
|
|
|
|
|
|
468 |
$content_pos += $temp['length'];
|
469 |
// all subtags should be octet strings
|
470 |
//if ($temp['type'] != FILE_ASN1_TYPE_OCTET_STRING) {
|
497 |
break 2;
|
498 |
}
|
499 |
$temp = $this->_decode_ber($content, $start + $offset, $content_pos);
|
|
|
|
|
|
|
500 |
$content_pos += $temp['length'];
|
501 |
$current['content'][] = $temp;
|
502 |
$offset+= $temp['length'];
|
@@ -2122,7 +2122,7 @@ class File_X509
|
|
2122 |
*
|
2123 |
* If $date isn't defined it is assumed to be the current date.
|
2124 |
*
|
2125 |
-
* @param
|
2126 |
* @access public
|
2127 |
*/
|
2128 |
function validateDate($date = null)
|
@@ -2133,7 +2133,7 @@ class File_X509
|
|
2133 |
|
2134 |
if (!isset($date)) {
|
2135 |
$date = class_exists('DateTime') ?
|
2136 |
-
new DateTime(
|
2137 |
time();
|
2138 |
}
|
2139 |
|
@@ -2143,18 +2143,12 @@ class File_X509
|
|
2143 |
$notAfter = $this->currentCert['tbsCertificate']['validity']['notAfter'];
|
2144 |
$notAfter = isset($notAfter['generalTime']) ? $notAfter['generalTime'] : $notAfter['utcTime'];
|
2145 |
|
2146 |
-
|
2147 |
-
|
2148 |
-
|
2149 |
-
|
2150 |
-
|
2151 |
-
|
2152 |
-
break;
|
2153 |
-
case is_string($date):
|
2154 |
-
$date = @strtotime($date);
|
2155 |
-
default:
|
2156 |
-
$notBefore = @strtotime($notBefore);
|
2157 |
-
$notAfter = @strtotime($notAfter);
|
2158 |
}
|
2159 |
|
2160 |
switch (true) {
|
2122 |
*
|
2123 |
* If $date isn't defined it is assumed to be the current date.
|
2124 |
*
|
2125 |
+
* @param int $date optional
|
2126 |
* @access public
|
2127 |
*/
|
2128 |
function validateDate($date = null)
|
2133 |
|
2134 |
if (!isset($date)) {
|
2135 |
$date = class_exists('DateTime') ?
|
2136 |
+
new DateTime($date, new DateTimeZone(@date_default_timezone_get())) :
|
2137 |
time();
|
2138 |
}
|
2139 |
|
2143 |
$notAfter = $this->currentCert['tbsCertificate']['validity']['notAfter'];
|
2144 |
$notAfter = isset($notAfter['generalTime']) ? $notAfter['generalTime'] : $notAfter['utcTime'];
|
2145 |
|
2146 |
+
if (class_exists('DateTime')) {
|
2147 |
+
$notBefore = new DateTime($notBefore, new DateTimeZone(@date_default_timezone_get()));
|
2148 |
+
$notAfter = new DateTime($notAfter, new DateTimeZone(@date_default_timezone_get()));
|
2149 |
+
} else {
|
2150 |
+
$notBefore = @strtotime($notBefore);
|
2151 |
+
$notAfter = @strtotime($notAfter);
|
|
|
|
|
|
|
|
|
|
|
|
|
2152 |
}
|
2153 |
|
2154 |
switch (true) {
|
@@ -65,6 +65,7 @@
|
|
65 |
* @author Jim Wigginton <terrafrost@php.net>
|
66 |
* @copyright 2006 Jim Wigginton
|
67 |
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
|
|
68 |
*/
|
69 |
|
70 |
/**#@+
|
65 |
* @author Jim Wigginton <terrafrost@php.net>
|
66 |
* @copyright 2006 Jim Wigginton
|
67 |
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
68 |
+
* @link http://pear.php.net/package/Math_BigInteger
|
69 |
*/
|
70 |
|
71 |
/**#@+
|
@@ -919,17 +919,7 @@ class Net_SFTP extends Net_SSH2
|
|
919 |
unset($files[$key]);
|
920 |
continue;
|
921 |
}
|
922 |
-
$
|
923 |
-
if ($key != '.' && $key != '..') {
|
924 |
-
if ($this->use_stat_cache) {
|
925 |
-
$is_directory = is_array($this->_query_stat_cache($this->_realpath($dir . '/' . $key)));
|
926 |
-
} else {
|
927 |
-
$stat = $this->lstat($dir . '/' . $key);
|
928 |
-
$is_directory = $stat && $stat['type'] === NET_SFTP_TYPE_DIRECTORY;
|
929 |
-
}
|
930 |
-
}
|
931 |
-
|
932 |
-
if ($is_directory) {
|
933 |
$depth++;
|
934 |
$files[$key] = $this->rawlist($dir . '/' . $key, true);
|
935 |
$depth--;
|
919 |
unset($files[$key]);
|
920 |
continue;
|
921 |
}
|
922 |
+
if ($key != '.' && $key != '..' && is_array($this->_query_stat_cache($this->_realpath($dir . '/' . $key)))) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
923 |
$depth++;
|
924 |
$files[$key] = $this->rawlist($dir . '/' . $key, true);
|
925 |
$depth--;
|
@@ -923,22 +923,6 @@ class Net_SSH2
|
|
923 |
*/
|
924 |
var $binary_packet_buffer = false;
|
925 |
|
926 |
-
/**
|
927 |
-
* Preferred Signature Format
|
928 |
-
*
|
929 |
-
* @var string|false
|
930 |
-
* @access private
|
931 |
-
*/
|
932 |
-
var $preferred_signature_format = false;
|
933 |
-
|
934 |
-
/**
|
935 |
-
* Authentication Credentials
|
936 |
-
*
|
937 |
-
* @var array
|
938 |
-
* @access private
|
939 |
-
*/
|
940 |
-
var $auth = array();
|
941 |
-
|
942 |
/**
|
943 |
* Default Constructor.
|
944 |
*
|
@@ -1175,12 +1159,11 @@ class Net_SSH2
|
|
1175 |
}
|
1176 |
$elapsed = strtok(microtime(), ' ') + strtok('') - $start;
|
1177 |
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
}
|
1184 |
}
|
1185 |
}
|
1186 |
|
@@ -1229,7 +1212,6 @@ class Net_SSH2
|
|
1229 |
}
|
1230 |
|
1231 |
if (feof($this->fsock)) {
|
1232 |
-
$this->bitmap = 0;
|
1233 |
user_error('Connection closed by server');
|
1234 |
return false;
|
1235 |
}
|
@@ -1241,7 +1223,7 @@ class Net_SSH2
|
|
1241 |
|
1242 |
$this->server_identifier = trim($temp, "\r\n");
|
1243 |
if (strlen($extra)) {
|
1244 |
-
$this->errors[] = $extra;
|
1245 |
}
|
1246 |
|
1247 |
if (version_compare($matches[1], '1.99', '<')) {
|
@@ -1256,7 +1238,6 @@ class Net_SSH2
|
|
1256 |
if (!$this->send_kex_first) {
|
1257 |
$response = $this->_get_binary_packet();
|
1258 |
if ($response === false) {
|
1259 |
-
$this->bitmap = 0;
|
1260 |
user_error('Connection closed by server');
|
1261 |
return false;
|
1262 |
}
|
@@ -1328,8 +1309,6 @@ class Net_SSH2
|
|
1328 |
);
|
1329 |
|
1330 |
static $server_host_key_algorithms = array(
|
1331 |
-
'rsa-sha2-256', // RFC 8332
|
1332 |
-
'rsa-sha2-512', // RFC 8332
|
1333 |
'ssh-rsa', // RECOMMENDED sign Raw RSA Key
|
1334 |
'ssh-dss' // REQUIRED sign Raw DSS Key
|
1335 |
);
|
@@ -1489,7 +1468,6 @@ class Net_SSH2
|
|
1489 |
|
1490 |
$kexinit_payload_server = $this->_get_binary_packet();
|
1491 |
if ($kexinit_payload_server === false) {
|
1492 |
-
$this->bitmap = 0;
|
1493 |
user_error('Connection closed by server');
|
1494 |
return false;
|
1495 |
}
|
@@ -1617,7 +1595,6 @@ class Net_SSH2
|
|
1617 |
|
1618 |
$response = $this->_get_binary_packet();
|
1619 |
if ($response === false) {
|
1620 |
-
$this->bitmap = 0;
|
1621 |
user_error('Connection closed by server');
|
1622 |
return false;
|
1623 |
}
|
@@ -1713,14 +1690,12 @@ class Net_SSH2
|
|
1713 |
$data = pack('CNa*', $clientKexInitMessage, strlen($eBytes), $eBytes);
|
1714 |
|
1715 |
if (!$this->_send_binary_packet($data)) {
|
1716 |
-
$this->bitmap = 0;
|
1717 |
user_error('Connection closed by server');
|
1718 |
return false;
|
1719 |
}
|
1720 |
|
1721 |
$response = $this->_get_binary_packet();
|
1722 |
if ($response === false) {
|
1723 |
-
$this->bitmap = 0;
|
1724 |
user_error('Connection closed by server');
|
1725 |
return false;
|
1726 |
}
|
@@ -1801,18 +1776,7 @@ class Net_SSH2
|
|
1801 |
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
|
1802 |
}
|
1803 |
|
1804 |
-
|
1805 |
-
case 'ssh-dss':
|
1806 |
-
$expected_key_format = 'ssh-dss';
|
1807 |
-
break;
|
1808 |
-
//case 'rsa-sha2-256':
|
1809 |
-
//case 'rsa-sha2-512':
|
1810 |
-
//case 'ssh-rsa':
|
1811 |
-
default:
|
1812 |
-
$expected_key_format = 'ssh-rsa';
|
1813 |
-
}
|
1814 |
-
|
1815 |
-
if ($public_key_format != $expected_key_format || $this->signature_format != $server_host_key_algorithm) {
|
1816 |
user_error('Server Host Key Algorithm Mismatch');
|
1817 |
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
|
1818 |
}
|
@@ -1829,7 +1793,6 @@ class Net_SSH2
|
|
1829 |
$response = $this->_get_binary_packet();
|
1830 |
|
1831 |
if ($response === false) {
|
1832 |
-
$this->bitmap = 0;
|
1833 |
user_error('Connection closed by server');
|
1834 |
return false;
|
1835 |
}
|
@@ -2004,7 +1967,7 @@ class Net_SSH2
|
|
2004 |
|
2005 |
if ($this->encrypt) {
|
2006 |
if ($this->crypto_engine) {
|
2007 |
-
$this->encrypt->
|
2008 |
}
|
2009 |
$this->encrypt->enableContinuousBuffer();
|
2010 |
$this->encrypt->disablePadding();
|
@@ -2024,7 +1987,7 @@ class Net_SSH2
|
|
2024 |
|
2025 |
if ($this->decrypt) {
|
2026 |
if ($this->crypto_engine) {
|
2027 |
-
$this->decrypt->
|
2028 |
}
|
2029 |
$this->decrypt->enableContinuousBuffer();
|
2030 |
$this->decrypt->disablePadding();
|
@@ -2228,7 +2191,6 @@ class Net_SSH2
|
|
2228 |
function login($username)
|
2229 |
{
|
2230 |
$args = func_get_args();
|
2231 |
-
$this->auth[] = $args;
|
2232 |
return call_user_func_array(array(&$this, '_login'), $args);
|
2233 |
}
|
2234 |
|
@@ -2300,7 +2262,6 @@ class Net_SSH2
|
|
2300 |
}
|
2301 |
return $this->_login_helper($username, $password);
|
2302 |
}
|
2303 |
-
$this->bitmap = 0;
|
2304 |
user_error('Connection closed by server');
|
2305 |
return false;
|
2306 |
}
|
@@ -2357,7 +2318,6 @@ class Net_SSH2
|
|
2357 |
|
2358 |
$response = $this->_get_binary_packet();
|
2359 |
if ($response === false) {
|
2360 |
-
$this->bitmap = 0;
|
2361 |
user_error('Connection closed by server');
|
2362 |
return false;
|
2363 |
}
|
@@ -2416,7 +2376,6 @@ class Net_SSH2
|
|
2416 |
|
2417 |
$response = $this->_get_binary_packet();
|
2418 |
if ($response === false) {
|
2419 |
-
$this->bitmap = 0;
|
2420 |
user_error('Connection closed by server');
|
2421 |
return false;
|
2422 |
}
|
@@ -2435,7 +2394,7 @@ class Net_SSH2
|
|
2435 |
return false;
|
2436 |
}
|
2437 |
extract(unpack('Nlength', $this->_string_shift($response, 4)));
|
2438 |
-
$this->errors[] = 'SSH_MSG_USERAUTH_PASSWD_CHANGEREQ: ' . $this->_string_shift($response, $length);
|
2439 |
return $this->_disconnect(NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER);
|
2440 |
case NET_SSH2_MSG_USERAUTH_FAILURE:
|
2441 |
// can we use keyboard-interactive authentication? if not then either the login is bad or the server employees
|
@@ -2517,7 +2476,6 @@ class Net_SSH2
|
|
2517 |
} else {
|
2518 |
$orig = $response = $this->_get_binary_packet();
|
2519 |
if ($response === false) {
|
2520 |
-
$this->bitmap = 0;
|
2521 |
user_error('Connection closed by server');
|
2522 |
return false;
|
2523 |
}
|
@@ -2706,7 +2664,6 @@ class Net_SSH2
|
|
2706 |
|
2707 |
$response = $this->_get_binary_packet();
|
2708 |
if ($response === false) {
|
2709 |
-
$this->bitmap = 0;
|
2710 |
user_error('Connection closed by server');
|
2711 |
return false;
|
2712 |
}
|
@@ -2738,23 +2695,8 @@ class Net_SSH2
|
|
2738 |
|
2739 |
$packet = $part1 . chr(1) . $part2;
|
2740 |
$privatekey->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
|
2741 |
-
switch ($this->signature_format) {
|
2742 |
-
case 'rsa-sha2-512':
|
2743 |
-
$hash = 'sha512';
|
2744 |
-
$type = 'rsa-sha2-512';
|
2745 |
-
break;
|
2746 |
-
case 'rsa-sha2-256':
|
2747 |
-
$hash = 'sha256';
|
2748 |
-
$type = 'rsa-sha2-256';
|
2749 |
-
break;
|
2750 |
-
//case 'ssh-rsa':
|
2751 |
-
default:
|
2752 |
-
$hash = 'sha1';
|
2753 |
-
$type = 'ssh-rsa';
|
2754 |
-
}
|
2755 |
-
$privatekey->setHash($hash);
|
2756 |
$signature = $privatekey->sign(pack('Na*a*', strlen($this->session_id), $this->session_id, $packet));
|
2757 |
-
$signature = pack('Na*Na*', strlen(
|
2758 |
$packet.= pack('Na*', strlen($signature), $signature);
|
2759 |
|
2760 |
if (!$this->_send_binary_packet($packet)) {
|
@@ -2763,7 +2705,6 @@ class Net_SSH2
|
|
2763 |
|
2764 |
$response = $this->_get_binary_packet();
|
2765 |
if ($response === false) {
|
2766 |
-
$this->bitmap = 0;
|
2767 |
user_error('Connection closed by server');
|
2768 |
return false;
|
2769 |
}
|
@@ -2890,7 +2831,6 @@ class Net_SSH2
|
|
2890 |
|
2891 |
$response = $this->_get_binary_packet();
|
2892 |
if ($response === false) {
|
2893 |
-
$this->bitmap = 0;
|
2894 |
user_error('Connection closed by server');
|
2895 |
return false;
|
2896 |
}
|
@@ -3031,7 +2971,6 @@ class Net_SSH2
|
|
3031 |
|
3032 |
$response = $this->_get_binary_packet();
|
3033 |
if ($response === false) {
|
3034 |
-
$this->bitmap = 0;
|
3035 |
user_error('Connection closed by server');
|
3036 |
return false;
|
3037 |
}
|
@@ -3346,66 +3285,6 @@ class Net_SSH2
|
|
3346 |
return (bool) ($this->bitmap & NET_SSH2_MASK_LOGIN);
|
3347 |
}
|
3348 |
|
3349 |
-
/**
|
3350 |
-
* Pings a server connection, or tries to reconnect if the connection has gone down
|
3351 |
-
*
|
3352 |
-
* Inspired by http://php.net/manual/en/mysqli.ping.php
|
3353 |
-
*
|
3354 |
-
* @return bool
|
3355 |
-
* @access public
|
3356 |
-
*/
|
3357 |
-
function ping()
|
3358 |
-
{
|
3359 |
-
if (!$this->isAuthenticated()) {
|
3360 |
-
return false;
|
3361 |
-
}
|
3362 |
-
|
3363 |
-
$this->window_size_server_to_client[NET_SSH2_CHANNEL_KEEP_ALIVE] = $this->window_size;
|
3364 |
-
$packet_size = 0x4000;
|
3365 |
-
$packet = pack(
|
3366 |
-
'CNa*N3',
|
3367 |
-
NET_SSH2_MSG_CHANNEL_OPEN,
|
3368 |
-
strlen('session'),
|
3369 |
-
'session',
|
3370 |
-
NET_SSH2_CHANNEL_KEEP_ALIVE,
|
3371 |
-
$this->window_size_server_to_client[NET_SSH2_CHANNEL_KEEP_ALIVE],
|
3372 |
-
$packet_size
|
3373 |
-
);
|
3374 |
-
|
3375 |
-
if (!@$this->_send_binary_packet($packet)) {
|
3376 |
-
return $this->_reconnect();
|
3377 |
-
}
|
3378 |
-
|
3379 |
-
$this->channel_status[NET_SSH2_CHANNEL_KEEP_ALIVE] = NET_SSH2_MSG_CHANNEL_OPEN;
|
3380 |
-
|
3381 |
-
$response = @$this->_get_channel_packet(NET_SSH2_CHANNEL_KEEP_ALIVE);
|
3382 |
-
if ($response !== false) {
|
3383 |
-
$this->_close_channel(NET_SSH2_CHANNEL_KEEP_ALIVE);
|
3384 |
-
return true;
|
3385 |
-
}
|
3386 |
-
|
3387 |
-
return $this->_reconnect();
|
3388 |
-
}
|
3389 |
-
|
3390 |
-
/**
|
3391 |
-
* In situ reconnect method
|
3392 |
-
*
|
3393 |
-
* @return boolean
|
3394 |
-
* @access private
|
3395 |
-
*/
|
3396 |
-
function _reconnect()
|
3397 |
-
{
|
3398 |
-
$this->_reset_connection(NET_SSH2_DISCONNECT_CONNECTION_LOST);
|
3399 |
-
$this->retry_connect = true;
|
3400 |
-
if (!$this->_connect()) {
|
3401 |
-
return false;
|
3402 |
-
}
|
3403 |
-
foreach ($this->auth as $auth) {
|
3404 |
-
$result = call_user_func_array(array(&$this, 'parent::login'), $auth);
|
3405 |
-
}
|
3406 |
-
return $result;
|
3407 |
-
}
|
3408 |
-
|
3409 |
/**
|
3410 |
* Resets a connection for re-use
|
3411 |
*
|
@@ -3436,8 +3315,8 @@ class Net_SSH2
|
|
3436 |
function _get_binary_packet($skip_channel_filter = false)
|
3437 |
{
|
3438 |
if (!is_resource($this->fsock) || feof($this->fsock)) {
|
3439 |
-
$this->bitmap = 0;
|
3440 |
user_error('Connection closed prematurely');
|
|
|
3441 |
return false;
|
3442 |
}
|
3443 |
|
@@ -3480,8 +3359,8 @@ class Net_SSH2
|
|
3480 |
while ($remaining_length > 0) {
|
3481 |
$temp = fread($this->fsock, $remaining_length);
|
3482 |
if ($temp === false || feof($this->fsock)) {
|
3483 |
-
$this->bitmap = 0;
|
3484 |
user_error('Error reading from socket');
|
|
|
3485 |
return false;
|
3486 |
}
|
3487 |
$buffer.= $temp;
|
@@ -3499,8 +3378,8 @@ class Net_SSH2
|
|
3499 |
if ($this->hmac_check !== false) {
|
3500 |
$hmac = fread($this->fsock, $this->hmac_size);
|
3501 |
if ($hmac === false || strlen($hmac) != $this->hmac_size) {
|
3502 |
-
$this->bitmap = 0;
|
3503 |
user_error('Error reading socket');
|
|
|
3504 |
return false;
|
3505 |
} elseif ($hmac != $this->hmac_check->hash(pack('NNCa*', $this->get_seq_no, $packet_length, $padding_length, $payload . $padding))) {
|
3506 |
user_error('Invalid HMAC');
|
@@ -3544,7 +3423,7 @@ class Net_SSH2
|
|
3544 |
return false;
|
3545 |
}
|
3546 |
extract(unpack('Nreason_code/Nlength', $this->_string_shift($payload, 8)));
|
3547 |
-
$this->errors[] = 'SSH_MSG_DISCONNECT: ' . $this->disconnect_reasons[$reason_code] . "\r\n" . $this->_string_shift($payload, $length);
|
3548 |
$this->bitmap = 0;
|
3549 |
return false;
|
3550 |
case NET_SSH2_MSG_IGNORE:
|
@@ -3556,7 +3435,7 @@ class Net_SSH2
|
|
3556 |
return false;
|
3557 |
}
|
3558 |
extract(unpack('Nlength', $this->_string_shift($payload, 4)));
|
3559 |
-
$this->errors[] = 'SSH_MSG_DEBUG: ' . $this->_string_shift($payload, $length);
|
3560 |
$payload = $this->_get_binary_packet($skip_channel_filter);
|
3561 |
break;
|
3562 |
case NET_SSH2_MSG_UNIMPLEMENTED:
|
@@ -3579,7 +3458,7 @@ class Net_SSH2
|
|
3579 |
return false;
|
3580 |
}
|
3581 |
extract(unpack('Nlength', $this->_string_shift($payload, 4)));
|
3582 |
-
$this->banner_message = $this->_string_shift($payload, $length);
|
3583 |
$payload = $this->_get_binary_packet();
|
3584 |
}
|
3585 |
|
@@ -3808,7 +3687,6 @@ class Net_SSH2
|
|
3808 |
|
3809 |
$response = $this->_get_binary_packet(true);
|
3810 |
if ($response === false) {
|
3811 |
-
$this->bitmap = 0;
|
3812 |
user_error('Connection closed by server');
|
3813 |
return false;
|
3814 |
}
|
@@ -3817,6 +3695,10 @@ class Net_SSH2
|
|
3817 |
if ($client_channel == -1 && $response === true) {
|
3818 |
return true;
|
3819 |
}
|
|
|
|
|
|
|
|
|
3820 |
if (!strlen($response)) {
|
3821 |
return false;
|
3822 |
}
|
@@ -4701,8 +4583,6 @@ class Net_SSH2
|
|
4701 |
|
4702 |
break;
|
4703 |
case 'ssh-rsa':
|
4704 |
-
case 'rsa-sha2-256':
|
4705 |
-
case 'rsa-sha2-512':
|
4706 |
if (strlen($server_public_host_key) < 4) {
|
4707 |
return false;
|
4708 |
}
|
@@ -4729,18 +4609,6 @@ class Net_SSH2
|
|
4729 |
}
|
4730 |
|
4731 |
$rsa = new Crypt_RSA();
|
4732 |
-
switch ($this->signature_format) {
|
4733 |
-
case 'rsa-sha2-512':
|
4734 |
-
$hash = 'sha512';
|
4735 |
-
break;
|
4736 |
-
case 'rsa-sha2-256':
|
4737 |
-
$hash = 'sha256';
|
4738 |
-
break;
|
4739 |
-
//case 'ssh-rsa':
|
4740 |
-
default:
|
4741 |
-
$hash = 'sha1';
|
4742 |
-
}
|
4743 |
-
$rsa->setHash($hash);
|
4744 |
$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
|
4745 |
$rsa->loadKey(array('e' => $e, 'n' => $n), CRYPT_RSA_PUBLIC_FORMAT_RAW);
|
4746 |
if (!$rsa->verify($this->exchange_hash, $signature)) {
|
@@ -4769,30 +4637,7 @@ class Net_SSH2
|
|
4769 |
$s = $s->modPow($e, $n);
|
4770 |
$s = $s->toBytes();
|
4771 |
|
4772 |
-
|
4773 |
-
case 'rsa-sha2-512':
|
4774 |
-
$hash = 'sha512';
|
4775 |
-
break;
|
4776 |
-
case 'rsa-sha2-256':
|
4777 |
-
$hash = 'sha256';
|
4778 |
-
break;
|
4779 |
-
//case 'ssh-rsa':
|
4780 |
-
default:
|
4781 |
-
$hash = 'sha1';
|
4782 |
-
}
|
4783 |
-
$hashObj = new Crypt_Hash($hash);
|
4784 |
-
switch ($this->signature_format) {
|
4785 |
-
case 'rsa-sha2-512':
|
4786 |
-
$h = pack('N5a*', 0x00305130, 0x0D060960, 0x86480165, 0x03040203, 0x05000440, $hashObj->hash($this->exchange_hash));
|
4787 |
-
break;
|
4788 |
-
case 'rsa-sha2-256':
|
4789 |
-
$h = pack('N5a*', 0x00303130, 0x0D060960, 0x86480165, 0x03040201, 0x05000420, $hashObj->hash($this->exchange_hash));
|
4790 |
-
break;
|
4791 |
-
//case 'ssh-rsa':
|
4792 |
-
default:
|
4793 |
-
$hash = 'sha1';
|
4794 |
-
$h = pack('N4a*', 0x00302130, 0x0906052B, 0x0E03021A, 0x05000414, $hashObj->hash($this->exchange_hash));
|
4795 |
-
}
|
4796 |
$h = chr(0x01) . str_repeat(chr(0xFF), $nLength - 2 - strlen($h)) . $h;
|
4797 |
|
4798 |
if ($s != $h) {
|
923 |
*/
|
924 |
var $binary_packet_buffer = false;
|
925 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
926 |
/**
|
927 |
* Default Constructor.
|
928 |
*
|
1159 |
}
|
1160 |
$elapsed = strtok(microtime(), ' ') + strtok('') - $start;
|
1161 |
|
1162 |
+
$this->curTimeout-= $elapsed;
|
1163 |
+
|
1164 |
+
if ($this->curTimeout <= 0) {
|
1165 |
+
$this->is_timeout = true;
|
1166 |
+
return false;
|
|
|
1167 |
}
|
1168 |
}
|
1169 |
|
1212 |
}
|
1213 |
|
1214 |
if (feof($this->fsock)) {
|
|
|
1215 |
user_error('Connection closed by server');
|
1216 |
return false;
|
1217 |
}
|
1223 |
|
1224 |
$this->server_identifier = trim($temp, "\r\n");
|
1225 |
if (strlen($extra)) {
|
1226 |
+
$this->errors[] = utf8_decode($extra);
|
1227 |
}
|
1228 |
|
1229 |
if (version_compare($matches[1], '1.99', '<')) {
|
1238 |
if (!$this->send_kex_first) {
|
1239 |
$response = $this->_get_binary_packet();
|
1240 |
if ($response === false) {
|
|
|
1241 |
user_error('Connection closed by server');
|
1242 |
return false;
|
1243 |
}
|
1309 |
);
|
1310 |
|
1311 |
static $server_host_key_algorithms = array(
|
|
|
|
|
1312 |
'ssh-rsa', // RECOMMENDED sign Raw RSA Key
|
1313 |
'ssh-dss' // REQUIRED sign Raw DSS Key
|
1314 |
);
|
1468 |
|
1469 |
$kexinit_payload_server = $this->_get_binary_packet();
|
1470 |
if ($kexinit_payload_server === false) {
|
|
|
1471 |
user_error('Connection closed by server');
|
1472 |
return false;
|
1473 |
}
|
1595 |
|
1596 |
$response = $this->_get_binary_packet();
|
1597 |
if ($response === false) {
|
|
|
1598 |
user_error('Connection closed by server');
|
1599 |
return false;
|
1600 |
}
|
1690 |
$data = pack('CNa*', $clientKexInitMessage, strlen($eBytes), $eBytes);
|
1691 |
|
1692 |
if (!$this->_send_binary_packet($data)) {
|
|
|
1693 |
user_error('Connection closed by server');
|
1694 |
return false;
|
1695 |
}
|
1696 |
|
1697 |
$response = $this->_get_binary_packet();
|
1698 |
if ($response === false) {
|
|
|
1699 |
user_error('Connection closed by server');
|
1700 |
return false;
|
1701 |
}
|
1776 |
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
|
1777 |
}
|
1778 |
|
1779 |
+
if ($public_key_format != $server_host_key_algorithm || $this->signature_format != $server_host_key_algorithm) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1780 |
user_error('Server Host Key Algorithm Mismatch');
|
1781 |
return $this->_disconnect(NET_SSH2_DISCONNECT_KEY_EXCHANGE_FAILED);
|
1782 |
}
|
1793 |
$response = $this->_get_binary_packet();
|
1794 |
|
1795 |
if ($response === false) {
|
|
|
1796 |
user_error('Connection closed by server');
|
1797 |
return false;
|
1798 |
}
|
1967 |
|
1968 |
if ($this->encrypt) {
|
1969 |
if ($this->crypto_engine) {
|
1970 |
+
$this->encrypt->setEngine($this->crypto_engine);
|
1971 |
}
|
1972 |
$this->encrypt->enableContinuousBuffer();
|
1973 |
$this->encrypt->disablePadding();
|
1987 |
|
1988 |
if ($this->decrypt) {
|
1989 |
if ($this->crypto_engine) {
|
1990 |
+
$this->decrypt->setEngine($this->crypto_engine);
|
1991 |
}
|
1992 |
$this->decrypt->enableContinuousBuffer();
|
1993 |
$this->decrypt->disablePadding();
|
2191 |
function login($username)
|
2192 |
{
|
2193 |
$args = func_get_args();
|
|
|
2194 |
return call_user_func_array(array(&$this, '_login'), $args);
|
2195 |
}
|
2196 |
|
2262 |
}
|
2263 |
return $this->_login_helper($username, $password);
|
2264 |
}
|
|
|
2265 |
user_error('Connection closed by server');
|
2266 |
return false;
|
2267 |
}
|
2318 |
|
2319 |
$response = $this->_get_binary_packet();
|
2320 |
if ($response === false) {
|
|
|
2321 |
user_error('Connection closed by server');
|
2322 |
return false;
|
2323 |
}
|
2376 |
|
2377 |
$response = $this->_get_binary_packet();
|
2378 |
if ($response === false) {
|
|
|
2379 |
user_error('Connection closed by server');
|
2380 |
return false;
|
2381 |
}
|
2394 |
return false;
|
2395 |
}
|
2396 |
extract(unpack('Nlength', $this->_string_shift($response, 4)));
|
2397 |
+
$this->errors[] = 'SSH_MSG_USERAUTH_PASSWD_CHANGEREQ: ' . utf8_decode($this->_string_shift($response, $length));
|
2398 |
return $this->_disconnect(NET_SSH2_DISCONNECT_AUTH_CANCELLED_BY_USER);
|
2399 |
case NET_SSH2_MSG_USERAUTH_FAILURE:
|
2400 |
// can we use keyboard-interactive authentication? if not then either the login is bad or the server employees
|
2476 |
} else {
|
2477 |
$orig = $response = $this->_get_binary_packet();
|
2478 |
if ($response === false) {
|
|
|
2479 |
user_error('Connection closed by server');
|
2480 |
return false;
|
2481 |
}
|
2664 |
|
2665 |
$response = $this->_get_binary_packet();
|
2666 |
if ($response === false) {
|
|
|
2667 |
user_error('Connection closed by server');
|
2668 |
return false;
|
2669 |
}
|
2695 |
|
2696 |
$packet = $part1 . chr(1) . $part2;
|
2697 |
$privatekey->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2698 |
$signature = $privatekey->sign(pack('Na*a*', strlen($this->session_id), $this->session_id, $packet));
|
2699 |
+
$signature = pack('Na*Na*', strlen('ssh-rsa'), 'ssh-rsa', strlen($signature), $signature);
|
2700 |
$packet.= pack('Na*', strlen($signature), $signature);
|
2701 |
|
2702 |
if (!$this->_send_binary_packet($packet)) {
|
2705 |
|
2706 |
$response = $this->_get_binary_packet();
|
2707 |
if ($response === false) {
|
|
|
2708 |
user_error('Connection closed by server');
|
2709 |
return false;
|
2710 |
}
|
2831 |
|
2832 |
$response = $this->_get_binary_packet();
|
2833 |
if ($response === false) {
|
|
|
2834 |
user_error('Connection closed by server');
|
2835 |
return false;
|
2836 |
}
|
2971 |
|
2972 |
$response = $this->_get_binary_packet();
|
2973 |
if ($response === false) {
|
|
|
2974 |
user_error('Connection closed by server');
|
2975 |
return false;
|
2976 |
}
|
3285 |
return (bool) ($this->bitmap & NET_SSH2_MASK_LOGIN);
|
3286 |
}
|
3287 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3288 |
/**
|
3289 |
* Resets a connection for re-use
|
3290 |
*
|
3315 |
function _get_binary_packet($skip_channel_filter = false)
|
3316 |
{
|
3317 |
if (!is_resource($this->fsock) || feof($this->fsock)) {
|
|
|
3318 |
user_error('Connection closed prematurely');
|
3319 |
+
$this->bitmap = 0;
|
3320 |
return false;
|
3321 |
}
|
3322 |
|
3359 |
while ($remaining_length > 0) {
|
3360 |
$temp = fread($this->fsock, $remaining_length);
|
3361 |
if ($temp === false || feof($this->fsock)) {
|
|
|
3362 |
user_error('Error reading from socket');
|
3363 |
+
$this->bitmap = 0;
|
3364 |
return false;
|
3365 |
}
|
3366 |
$buffer.= $temp;
|
3378 |
if ($this->hmac_check !== false) {
|
3379 |
$hmac = fread($this->fsock, $this->hmac_size);
|
3380 |
if ($hmac === false || strlen($hmac) != $this->hmac_size) {
|
|
|
3381 |
user_error('Error reading socket');
|
3382 |
+
$this->bitmap = 0;
|
3383 |
return false;
|
3384 |
} elseif ($hmac != $this->hmac_check->hash(pack('NNCa*', $this->get_seq_no, $packet_length, $padding_length, $payload . $padding))) {
|
3385 |
user_error('Invalid HMAC');
|
3423 |
return false;
|
3424 |
}
|
3425 |
extract(unpack('Nreason_code/Nlength', $this->_string_shift($payload, 8)));
|
3426 |
+
$this->errors[] = 'SSH_MSG_DISCONNECT: ' . $this->disconnect_reasons[$reason_code] . "\r\n" . utf8_decode($this->_string_shift($payload, $length));
|
3427 |
$this->bitmap = 0;
|
3428 |
return false;
|
3429 |
case NET_SSH2_MSG_IGNORE:
|
3435 |
return false;
|
3436 |
}
|
3437 |
extract(unpack('Nlength', $this->_string_shift($payload, 4)));
|
3438 |
+
$this->errors[] = 'SSH_MSG_DEBUG: ' . utf8_decode($this->_string_shift($payload, $length));
|
3439 |
$payload = $this->_get_binary_packet($skip_channel_filter);
|
3440 |
break;
|
3441 |
case NET_SSH2_MSG_UNIMPLEMENTED:
|
3458 |
return false;
|
3459 |
}
|
3460 |
extract(unpack('Nlength', $this->_string_shift($payload, 4)));
|
3461 |
+
$this->banner_message = utf8_decode($this->_string_shift($payload, $length));
|
3462 |
$payload = $this->_get_binary_packet();
|
3463 |
}
|
3464 |
|
3687 |
|
3688 |
$response = $this->_get_binary_packet(true);
|
3689 |
if ($response === false) {
|
|
|
3690 |
user_error('Connection closed by server');
|
3691 |
return false;
|
3692 |
}
|
3695 |
if ($client_channel == -1 && $response === true) {
|
3696 |
return true;
|
3697 |
}
|
3698 |
+
if (!strlen($response)) {
|
3699 |
+
return '';
|
3700 |
+
}
|
3701 |
+
|
3702 |
if (!strlen($response)) {
|
3703 |
return false;
|
3704 |
}
|
4583 |
|
4584 |
break;
|
4585 |
case 'ssh-rsa':
|
|
|
|
|
4586 |
if (strlen($server_public_host_key) < 4) {
|
4587 |
return false;
|
4588 |
}
|
4609 |
}
|
4610 |
|
4611 |
$rsa = new Crypt_RSA();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4612 |
$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
|
4613 |
$rsa->loadKey(array('e' => $e, 'n' => $n), CRYPT_RSA_PUBLIC_FORMAT_RAW);
|
4614 |
if (!$rsa->verify($this->exchange_hash, $signature)) {
|
4637 |
$s = $s->modPow($e, $n);
|
4638 |
$s = $s->toBytes();
|
4639 |
|
4640 |
+
$h = pack('N4H*', 0x00302130, 0x0906052B, 0x0E03021A, 0x05000414, sha1($this->exchange_hash));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4641 |
$h = chr(0x01) . str_repeat(chr(0xFF), $nLength - 2 - strlen($h)) . $h;
|
4642 |
|
4643 |
if ($s != $h) {
|
@@ -202,18 +202,6 @@ class System_SSH_Agent_Identity
|
|
202 |
{
|
203 |
}
|
204 |
|
205 |
-
/**
|
206 |
-
* Set Hash
|
207 |
-
*
|
208 |
-
* ssh-agent doesn't support using hashes for RSA other than SHA1
|
209 |
-
*
|
210 |
-
* @param string $hash
|
211 |
-
* @access public
|
212 |
-
*/
|
213 |
-
function setHash($hash)
|
214 |
-
{
|
215 |
-
}
|
216 |
-
|
217 |
/**
|
218 |
* Create a signature
|
219 |
*
|
@@ -342,14 +330,12 @@ class System_SSH_Agent
|
|
342 |
$packet = pack('NC', 1, SYSTEM_SSH_AGENTC_REQUEST_IDENTITIES);
|
343 |
if (strlen($packet) != fputs($this->fsock, $packet)) {
|
344 |
user_error('Connection closed while requesting identities');
|
345 |
-
return array();
|
346 |
}
|
347 |
|
348 |
$length = current(unpack('N', fread($this->fsock, 4)));
|
349 |
$type = ord(fread($this->fsock, 1));
|
350 |
if ($type != SYSTEM_SSH_AGENT_IDENTITIES_ANSWER) {
|
351 |
user_error('Unable to request identities');
|
352 |
-
return array();
|
353 |
}
|
354 |
|
355 |
$identities = array();
|
202 |
{
|
203 |
}
|
204 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
/**
|
206 |
* Create a signature
|
207 |
*
|
330 |
$packet = pack('NC', 1, SYSTEM_SSH_AGENTC_REQUEST_IDENTITIES);
|
331 |
if (strlen($packet) != fputs($this->fsock, $packet)) {
|
332 |
user_error('Connection closed while requesting identities');
|
|
|
333 |
}
|
334 |
|
335 |
$length = current(unpack('N', fread($this->fsock, 4)));
|
336 |
$type = ord(fread($this->fsock, 1));
|
337 |
if ($type != SYSTEM_SSH_AGENT_IDENTITIES_ANSWER) {
|
338 |
user_error('Unable to request identities');
|
|
|
339 |
}
|
340 |
|
341 |
$identities = array();
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
|
3 |
+
<phpunit bootstrap="tests/bootstrap.php"
|
4 |
+
colors="true"
|
5 |
+
>
|
6 |
+
<testsuites>
|
7 |
+
<testsuite name="phpseclib Unit Test Suite">
|
8 |
+
<directory>./tests/Unit/</directory>
|
9 |
+
</testsuite>
|
10 |
+
<testsuite name="phpseclib Functional Test Suite">
|
11 |
+
<directory>./tests/Functional/</directory>
|
12 |
+
</testsuite>
|
13 |
+
</testsuites>
|
14 |
+
|
15 |
+
<!-- Code Coverage -->
|
16 |
+
<filter>
|
17 |
+
<whitelist>
|
18 |
+
<directory>./phpseclib/</directory>
|
19 |
+
</whitelist>
|
20 |
+
</filter>
|
21 |
+
</phpunit>
|
@@ -0,0 +1,88 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
5 |
+
* @copyright 2014 Andreas Fischer
|
6 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
7 |
+
*/
|
8 |
+
|
9 |
+
class Functional_Net_SCPSSH2UserStoryTest extends PhpseclibFunctionalTestCase
|
10 |
+
{
|
11 |
+
static protected $remoteFile;
|
12 |
+
static protected $exampleData;
|
13 |
+
static protected $exampleDataLength;
|
14 |
+
|
15 |
+
public static function setUpBeforeClass()
|
16 |
+
{
|
17 |
+
parent::setUpBeforeClass();
|
18 |
+
self::$remoteFile = uniqid('phpseclib-scp-ssh2-') . '.txt';
|
19 |
+
self::$exampleData = str_repeat('abscp12345', 1000);
|
20 |
+
self::$exampleDataLength = 10000;
|
21 |
+
}
|
22 |
+
|
23 |
+
public function testConstructSSH2()
|
24 |
+
{
|
25 |
+
$ssh = new Net_SSH2($this->getEnv('SSH_HOSTNAME'));
|
26 |
+
$this->assertTrue(
|
27 |
+
$ssh->login(
|
28 |
+
$this->getEnv('SSH_USERNAME'),
|
29 |
+
$this->getEnv('SSH_PASSWORD')
|
30 |
+
)
|
31 |
+
);
|
32 |
+
return $ssh;
|
33 |
+
}
|
34 |
+
|
35 |
+
/** @depends testConstructSSH2 */
|
36 |
+
public function testConstructor($ssh)
|
37 |
+
{
|
38 |
+
$scp = new Net_SCP($ssh);
|
39 |
+
$this->assertTrue(
|
40 |
+
is_object($scp),
|
41 |
+
'Could not construct Net_SCP object.'
|
42 |
+
);
|
43 |
+
return $scp;
|
44 |
+
}
|
45 |
+
|
46 |
+
/** @depends testConstructor */
|
47 |
+
public function testPutGetString($scp)
|
48 |
+
{
|
49 |
+
$this->assertTrue(
|
50 |
+
$scp->put(self::$remoteFile, self::$exampleData),
|
51 |
+
'Failed asserting that data could successfully be put() into file.'
|
52 |
+
);
|
53 |
+
$content = $scp->get(self::$remoteFile);
|
54 |
+
// TODO: Address https://github.com/phpseclib/phpseclib/issues/146
|
55 |
+
$this->assertContains(
|
56 |
+
strlen($content),
|
57 |
+
array(self::$exampleDataLength, self::$exampleDataLength + 1),
|
58 |
+
'Failed asserting that string length matches expected length.'
|
59 |
+
);
|
60 |
+
$this->assertContains(
|
61 |
+
$content,
|
62 |
+
array(self::$exampleData, self::$exampleData . "\0"),
|
63 |
+
'Failed asserting that string content matches expected content.'
|
64 |
+
);
|
65 |
+
return $scp;
|
66 |
+
}
|
67 |
+
|
68 |
+
/** @depends testPutGetString */
|
69 |
+
public function testGetFile($scp)
|
70 |
+
{
|
71 |
+
$localFilename = $this->createTempFile();
|
72 |
+
$this->assertTrue(
|
73 |
+
$scp->get(self::$remoteFile, $localFilename),
|
74 |
+
'Failed asserting that get() into file was successful.'
|
75 |
+
);
|
76 |
+
// TODO: Address https://github.com/phpseclib/phpseclib/issues/146
|
77 |
+
$this->assertContains(
|
78 |
+
filesize($localFilename),
|
79 |
+
array(self::$exampleDataLength, self::$exampleDataLength + 1),
|
80 |
+
'Failed asserting that filesize matches expected data size.'
|
81 |
+
);
|
82 |
+
$this->assertContains(
|
83 |
+
file_get_contents($localFilename),
|
84 |
+
array(self::$exampleData, self::$exampleData . "\0"),
|
85 |
+
'Failed asserting that file content matches expected content.'
|
86 |
+
);
|
87 |
+
}
|
88 |
+
}
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
5 |
+
* @copyright 2014 Andreas Fischer
|
6 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
7 |
+
*/
|
8 |
+
|
9 |
+
require_once 'Crypt/Base.php';
|
10 |
+
|
11 |
+
class Functional_Net_SFTPLargeFileTest extends Functional_Net_SFTPTestCase
|
12 |
+
{
|
13 |
+
public static function setUpBeforeClass()
|
14 |
+
{
|
15 |
+
if (!extension_loaded('mcrypt') && !extension_loaded('openssl')) {
|
16 |
+
self::markTestSkipped('This test depends on mcrypt or openssl for performance.');
|
17 |
+
}
|
18 |
+
parent::setUpBeforeClass();
|
19 |
+
}
|
20 |
+
|
21 |
+
/**
|
22 |
+
* @group github298
|
23 |
+
* @group github455
|
24 |
+
* @group github457
|
25 |
+
*/
|
26 |
+
public function testPutSizeLocalFile()
|
27 |
+
{
|
28 |
+
$tmp_filename = $this->createTempFile(128, 1024 * 1024);
|
29 |
+
$filename = 'file-large-from-local.txt';
|
30 |
+
|
31 |
+
$this->assertTrue(
|
32 |
+
$this->sftp->put($filename, $tmp_filename, NET_SFTP_LOCAL_FILE),
|
33 |
+
'Failed asserting that local file could be successfully put().'
|
34 |
+
);
|
35 |
+
|
36 |
+
$this->assertSame(
|
37 |
+
128 * 1024 * 1024,
|
38 |
+
$this->sftp->size($filename),
|
39 |
+
'Failed asserting that uploaded local file has the expected length.'
|
40 |
+
);
|
41 |
+
}
|
42 |
+
}
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
5 |
+
* @copyright 2015 Andreas Fischer
|
6 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
7 |
+
*/
|
8 |
+
|
9 |
+
// Registers sftp:// as a side effect.
|
10 |
+
require_once 'Net/SFTP/Stream.php';
|
11 |
+
|
12 |
+
class Functional_Net_SFTPStreamTest extends Functional_Net_SFTPTestCase
|
13 |
+
{
|
14 |
+
public function testFopenFcloseCreatesFile()
|
15 |
+
{
|
16 |
+
$context = stream_context_create(array(
|
17 |
+
'sftp' => array('session' => $this->sftp),
|
18 |
+
));
|
19 |
+
$fp = fopen($this->buildUrl('fooo.txt'), 'wb', false, $context);
|
20 |
+
$this->assertTrue(is_resource($fp));
|
21 |
+
fclose($fp);
|
22 |
+
$this->assertSame(0, $this->sftp->size('fooo.txt'));
|
23 |
+
}
|
24 |
+
|
25 |
+
/**
|
26 |
+
* @group github778
|
27 |
+
*/
|
28 |
+
public function testFilenameWithHash()
|
29 |
+
{
|
30 |
+
$context = stream_context_create(array(
|
31 |
+
'sftp' => array('session' => $this->sftp),
|
32 |
+
));
|
33 |
+
$fp = fopen($this->buildUrl('te#st.txt'), 'wb', false, $context);
|
34 |
+
fputs($fp, 'zzzz');
|
35 |
+
fclose($fp);
|
36 |
+
|
37 |
+
$this->assertTrue(in_array('te#st.txt', $this->sftp->nlist()));
|
38 |
+
}
|
39 |
+
|
40 |
+
protected function buildUrl($suffix)
|
41 |
+
{
|
42 |
+
return sprintf(
|
43 |
+
'sftp://via-context/%s/%s',
|
44 |
+
$this->sftp->pwd(),
|
45 |
+
$suffix
|
46 |
+
);
|
47 |
+
}
|
48 |
+
}
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
5 |
+
* @copyright 2015 Andreas Fischer
|
6 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
7 |
+
*/
|
8 |
+
|
9 |
+
/**
|
10 |
+
* This class provides each test method with a new and empty $this->scratchDir.
|
11 |
+
*/
|
12 |
+
abstract class Functional_Net_SFTPTestCase extends PhpseclibFunctionalTestCase
|
13 |
+
{
|
14 |
+
protected $sftp;
|
15 |
+
protected $scratchDir;
|
16 |
+
|
17 |
+
public function setUp()
|
18 |
+
{
|
19 |
+
parent::setUp();
|
20 |
+
$this->scratchDir = uniqid('phpseclib-sftp-scratch-');
|
21 |
+
|
22 |
+
$this->sftp = new Net_SFTP($this->getEnv('SSH_HOSTNAME'));
|
23 |
+
$this->assertTrue($this->sftp->login(
|
24 |
+
$this->getEnv('SSH_USERNAME'),
|
25 |
+
$this->getEnv('SSH_PASSWORD')
|
26 |
+
));
|
27 |
+
$this->assertTrue($this->sftp->mkdir($this->scratchDir));
|
28 |
+
$this->assertTrue($this->sftp->chdir($this->scratchDir));
|
29 |
+
}
|
30 |
+
|
31 |
+
public function tearDown()
|
32 |
+
{
|
33 |
+
if ($this->sftp) {
|
34 |
+
$this->sftp->chdir($this->getEnv('SSH_HOME'));
|
35 |
+
$this->sftp->delete($this->scratchDir);
|
36 |
+
}
|
37 |
+
parent::tearDown();
|
38 |
+
}
|
39 |
+
}
|
@@ -0,0 +1,726 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
5 |
+
* @copyright 2014 Andreas Fischer
|
6 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
7 |
+
*/
|
8 |
+
|
9 |
+
class Functional_Net_SFTPUserStoryTest extends PhpseclibFunctionalTestCase
|
10 |
+
{
|
11 |
+
static protected $scratchDir;
|
12 |
+
static protected $exampleData;
|
13 |
+
static protected $exampleDataLength;
|
14 |
+
static protected $buffer;
|
15 |
+
|
16 |
+
public static function setUpBeforeClass()
|
17 |
+
{
|
18 |
+
parent::setUpBeforeClass();
|
19 |
+
|
20 |
+
self::$scratchDir = uniqid('phpseclib-sftp-scratch-');
|
21 |
+
|
22 |
+
self::$exampleData = str_repeat('abcde12345', 1000);
|
23 |
+
self::$exampleDataLength = 10000;
|
24 |
+
}
|
25 |
+
|
26 |
+
public function testConstructor()
|
27 |
+
{
|
28 |
+
$sftp = new Net_SFTP($this->getEnv('SSH_HOSTNAME'));
|
29 |
+
|
30 |
+
$this->assertTrue(
|
31 |
+
is_object($sftp),
|
32 |
+
'Could not construct NET_SFTP object.'
|
33 |
+
);
|
34 |
+
|
35 |
+
return $sftp;
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @depends testConstructor
|
40 |
+
*/
|
41 |
+
public function testPasswordLogin($sftp)
|
42 |
+
{
|
43 |
+
$username = $this->getEnv('SSH_USERNAME');
|
44 |
+
$password = $this->getEnv('SSH_PASSWORD');
|
45 |
+
$this->assertTrue(
|
46 |
+
$sftp->login($username, $password),
|
47 |
+
'SSH2/SFTP login using password failed.'
|
48 |
+
);
|
49 |
+
|
50 |
+
return $sftp;
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @depends testPasswordLogin
|
55 |
+
*/
|
56 |
+
public function testPwdHome($sftp)
|
57 |
+
{
|
58 |
+
$this->assertEquals(
|
59 |
+
$this->getEnv('SSH_HOME'),
|
60 |
+
$sftp->pwd(),
|
61 |
+
'Failed asserting that pwd() returns home directory after login.'
|
62 |
+
);
|
63 |
+
|
64 |
+
return $sftp;
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* @depends testPwdHome
|
69 |
+
*/
|
70 |
+
public function testMkDirScratch($sftp)
|
71 |
+
{
|
72 |
+
$dirname = self::$scratchDir;
|
73 |
+
|
74 |
+
$this->assertTrue(
|
75 |
+
$sftp->mkdir($dirname),
|
76 |
+
"Failed asserting that a new scratch directory $dirname could " .
|
77 |
+
'be created.'
|
78 |
+
);
|
79 |
+
|
80 |
+
$this->assertFalse(
|
81 |
+
$sftp->mkdir($dirname),
|
82 |
+
"Failed asserting that a new scratch directory $dirname could " .
|
83 |
+
'not be created (because it already exists).'
|
84 |
+
);
|
85 |
+
|
86 |
+
return $sftp;
|
87 |
+
}
|
88 |
+
|
89 |
+
/**
|
90 |
+
* @depends testMkDirScratch
|
91 |
+
*/
|
92 |
+
public function testChDirScratch($sftp)
|
93 |
+
{
|
94 |
+
$this->assertTrue(
|
95 |
+
$sftp->chdir(self::$scratchDir),
|
96 |
+
sprintf(
|
97 |
+
'Failed asserting that working directory could be changed ' .
|
98 |
+
'to scratch directory %s.',
|
99 |
+
self::$scratchDir
|
100 |
+
)
|
101 |
+
);
|
102 |
+
|
103 |
+
$pwd = $sftp->pwd();
|
104 |
+
|
105 |
+
$this->assertStringStartsWith(
|
106 |
+
$this->getEnv('SSH_HOME'),
|
107 |
+
$pwd,
|
108 |
+
'Failed asserting that the home directory is a prefix of the ' .
|
109 |
+
'current working directory.'
|
110 |
+
);
|
111 |
+
|
112 |
+
$this->assertStringEndsWith(
|
113 |
+
self::$scratchDir,
|
114 |
+
$pwd,
|
115 |
+
'Failed asserting that the scratch directory name is a suffix ' .
|
116 |
+
'of the current working directory.'
|
117 |
+
);
|
118 |
+
|
119 |
+
return $sftp;
|
120 |
+
}
|
121 |
+
|
122 |
+
/**
|
123 |
+
* @depends testChDirScratch
|
124 |
+
*/
|
125 |
+
public function testStatOnDir($sftp)
|
126 |
+
{
|
127 |
+
$this->assertNotSame(
|
128 |
+
array(),
|
129 |
+
$sftp->stat('.'),
|
130 |
+
'Failed asserting that the cwd has a non-empty stat.'
|
131 |
+
);
|
132 |
+
|
133 |
+
return $sftp;
|
134 |
+
}
|
135 |
+
|
136 |
+
static function callback($length)
|
137 |
+
{
|
138 |
+
$r = substr(self::$buffer, 0, $length);
|
139 |
+
self::$buffer = substr(self::$buffer, $length);
|
140 |
+
if (strlen($r)) {
|
141 |
+
return $r;
|
142 |
+
}
|
143 |
+
return null;
|
144 |
+
}
|
145 |
+
|
146 |
+
/**
|
147 |
+
* @depends testStatOnDir
|
148 |
+
*/
|
149 |
+
public function testPutSizeGetFileCallback($sftp)
|
150 |
+
{
|
151 |
+
self::$buffer = self::$exampleData;
|
152 |
+
$this->assertTrue(
|
153 |
+
$sftp->put('file1.txt', array(__CLASS__, 'callback'), NET_SFTP_CALLBACK),
|
154 |
+
'Failed asserting that example data could be successfully put().'
|
155 |
+
);
|
156 |
+
|
157 |
+
$this->assertSame(
|
158 |
+
self::$exampleDataLength,
|
159 |
+
$sftp->size('file1.txt'),
|
160 |
+
'Failed asserting that put example data has the expected length'
|
161 |
+
);
|
162 |
+
|
163 |
+
$this->assertSame(
|
164 |
+
self::$exampleData,
|
165 |
+
$sftp->get('file1.txt'),
|
166 |
+
'Failed asserting that get() returns expected example data.'
|
167 |
+
);
|
168 |
+
|
169 |
+
return $sftp;
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* @depends testStatOnDir
|
174 |
+
*/
|
175 |
+
public function testPutSizeGetFile($sftp)
|
176 |
+
{
|
177 |
+
$this->assertTrue(
|
178 |
+
$sftp->put('file1.txt', self::$exampleData),
|
179 |
+
'Failed asserting that example data could be successfully put().'
|
180 |
+
);
|
181 |
+
|
182 |
+
$this->assertSame(
|
183 |
+
self::$exampleDataLength,
|
184 |
+
$sftp->size('file1.txt'),
|
185 |
+
'Failed asserting that put example data has the expected length'
|
186 |
+
);
|
187 |
+
|
188 |
+
$this->assertSame(
|
189 |
+
self::$exampleData,
|
190 |
+
$sftp->get('file1.txt'),
|
191 |
+
'Failed asserting that get() returns expected example data.'
|
192 |
+
);
|
193 |
+
|
194 |
+
return $sftp;
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* @depends testPutSizeGetFile
|
199 |
+
*/
|
200 |
+
public function testTouch($sftp)
|
201 |
+
{
|
202 |
+
$this->assertTrue(
|
203 |
+
$sftp->touch('file2.txt'),
|
204 |
+
'Failed asserting that touch() successfully ran.'
|
205 |
+
);
|
206 |
+
|
207 |
+
$this->assertTrue(
|
208 |
+
$sftp->file_exists('file2.txt'),
|
209 |
+
'Failed asserting that touch()\'d file exists'
|
210 |
+
);
|
211 |
+
|
212 |
+
return $sftp;
|
213 |
+
}
|
214 |
+
|
215 |
+
/**
|
216 |
+
* @depends testTouch
|
217 |
+
*/
|
218 |
+
public function testTruncate($sftp)
|
219 |
+
{
|
220 |
+
$this->assertTrue(
|
221 |
+
$sftp->touch('file3.txt'),
|
222 |
+
'Failed asserting that touch() successfully ran.'
|
223 |
+
);
|
224 |
+
|
225 |
+
$this->assertTrue(
|
226 |
+
$sftp->truncate('file3.txt', 1024 * 1024),
|
227 |
+
'Failed asserting that touch() successfully ran.'
|
228 |
+
);
|
229 |
+
|
230 |
+
$this->assertSame(
|
231 |
+
1024 * 1024,
|
232 |
+
$sftp->size('file3.txt'),
|
233 |
+
'Failed asserting that truncate()\'d file has the expected length'
|
234 |
+
);
|
235 |
+
|
236 |
+
return $sftp;
|
237 |
+
}
|
238 |
+
|
239 |
+
/**
|
240 |
+
* @depends testTruncate
|
241 |
+
* @group github850
|
242 |
+
*/
|
243 |
+
public function testChModOnFile($sftp)
|
244 |
+
{
|
245 |
+
$this->assertNotFalse(
|
246 |
+
$sftp->chmod(0755, 'file1.txt'),
|
247 |
+
'Failed asserting that chmod() was successful.'
|
248 |
+
);
|
249 |
+
|
250 |
+
return $sftp;
|
251 |
+
}
|
252 |
+
|
253 |
+
/**
|
254 |
+
* @depends testChModOnFile
|
255 |
+
*/
|
256 |
+
public function testChDirOnFile($sftp)
|
257 |
+
{
|
258 |
+
$this->assertFalse(
|
259 |
+
$sftp->chdir('file1.txt'),
|
260 |
+
'Failed to assert that the cwd cannot be changed to a file'
|
261 |
+
);
|
262 |
+
|
263 |
+
return $sftp;
|
264 |
+
}
|
265 |
+
|
266 |
+
/**
|
267 |
+
* @depends testChDirOnFile
|
268 |
+
*/
|
269 |
+
public function testFileExistsIsFileIsDirFile($sftp)
|
270 |
+
{
|
271 |
+
$this->assertTrue(
|
272 |
+
$sftp->file_exists('file1.txt'),
|
273 |
+
'Failed asserting that file_exists() on example file returns true.'
|
274 |
+
);
|
275 |
+
|
276 |
+
$this->assertTrue(
|
277 |
+
$sftp->is_file('file1.txt'),
|
278 |
+
'Failed asserting that is_file() on example file returns true.'
|
279 |
+
);
|
280 |
+
|
281 |
+
$this->assertFalse(
|
282 |
+
$sftp->is_dir('file1.txt'),
|
283 |
+
'Failed asserting that is_dir() on example file returns false.'
|
284 |
+
);
|
285 |
+
|
286 |
+
return $sftp;
|
287 |
+
}
|
288 |
+
|
289 |
+
/**
|
290 |
+
* @depends testFileExistsIsFileIsDirFile
|
291 |
+
*/
|
292 |
+
public function testFileExistsIsFileIsDirFileNonexistent($sftp)
|
293 |
+
{
|
294 |
+
$this->assertFalse(
|
295 |
+
$sftp->file_exists('file4.txt'),
|
296 |
+
'Failed asserting that a nonexistent file does not exist.'
|
297 |
+
);
|
298 |
+
|
299 |
+
$this->assertFalse(
|
300 |
+
$sftp->is_file('file4.txt'),
|
301 |
+
'Failed asserting that is_file() on nonexistent file returns false.'
|
302 |
+
);
|
303 |
+
|
304 |
+
$this->assertFalse(
|
305 |
+
$sftp->is_dir('file4.txt'),
|
306 |
+
'Failed asserting that is_dir() on nonexistent file returns false.'
|
307 |
+
);
|
308 |
+
|
309 |
+
return $sftp;
|
310 |
+
}
|
311 |
+
|
312 |
+
/**
|
313 |
+
* @depends testFileExistsIsFileIsDirFileNonexistent
|
314 |
+
*/
|
315 |
+
public function testSortOrder($sftp)
|
316 |
+
{
|
317 |
+
$this->assertTrue(
|
318 |
+
$sftp->mkdir('temp'),
|
319 |
+
"Failed asserting that a new scratch directory temp could " .
|
320 |
+
'be created.'
|
321 |
+
);
|
322 |
+
|
323 |
+
$sftp->setListOrder('filename', SORT_DESC);
|
324 |
+
|
325 |
+
$list = $sftp->nlist();
|
326 |
+
$expected = array('.', '..', 'temp', 'file3.txt', 'file2.txt', 'file1.txt');
|
327 |
+
|
328 |
+
$this->assertSame(
|
329 |
+
$list,
|
330 |
+
$expected,
|
331 |
+
'Failed asserting that list sorted correctly.'
|
332 |
+
);
|
333 |
+
|
334 |
+
$sftp->setListOrder('filename', SORT_ASC);
|
335 |
+
|
336 |
+
$list = $sftp->nlist();
|
337 |
+
$expected = array('.', '..', 'temp', 'file1.txt', 'file2.txt', 'file3.txt');
|
338 |
+
|
339 |
+
$this->assertSame(
|
340 |
+
$list,
|
341 |
+
$expected,
|
342 |
+
'Failed asserting that list sorted correctly.'
|
343 |
+
);
|
344 |
+
|
345 |
+
$sftp->setListOrder('size', SORT_DESC);
|
346 |
+
|
347 |
+
$files = $sftp->nlist();
|
348 |
+
|
349 |
+
$last_size = 0x7FFFFFFF;
|
350 |
+
foreach ($files as $file) {
|
351 |
+
if ($sftp->is_file($file)) {
|
352 |
+
$cur_size = $sftp->size($file);
|
353 |
+
$this->assertLessThanOrEqual(
|
354 |
+
$last_size,
|
355 |
+
$cur_size,
|
356 |
+
'Failed asserting that nlist() is in descending order'
|
357 |
+
);
|
358 |
+
$last_size = $cur_size;
|
359 |
+
}
|
360 |
+
}
|
361 |
+
|
362 |
+
return $sftp;
|
363 |
+
}
|
364 |
+
|
365 |
+
/**
|
366 |
+
* @depends testSortOrder
|
367 |
+
*/
|
368 |
+
public function testResourceXfer($sftp)
|
369 |
+
{
|
370 |
+
$fp = fopen('res.txt', 'w+');
|
371 |
+
$sftp->get('file1.txt', $fp);
|
372 |
+
rewind($fp);
|
373 |
+
$sftp->put('file4.txt', $fp);
|
374 |
+
fclose($fp);
|
375 |
+
|
376 |
+
$this->assertSame(
|
377 |
+
self::$exampleData,
|
378 |
+
$sftp->get('file4.txt'),
|
379 |
+
'Failed asserting that a file downloaded into a resource and reuploaded from a resource has the correct data'
|
380 |
+
);
|
381 |
+
|
382 |
+
return $sftp;
|
383 |
+
}
|
384 |
+
|
385 |
+
/**
|
386 |
+
* @depends testResourceXfer
|
387 |
+
*/
|
388 |
+
public function testSymlink($sftp)
|
389 |
+
{
|
390 |
+
$this->assertTrue(
|
391 |
+
$sftp->symlink('file3.txt', 'symlink'),
|
392 |
+
'Failed asserting that a symlink could be created'
|
393 |
+
);
|
394 |
+
|
395 |
+
return $sftp;
|
396 |
+
}
|
397 |
+
|
398 |
+
/**
|
399 |
+
* @depends testSymlink
|
400 |
+
*/
|
401 |
+
public function testStatLstatCache($sftp)
|
402 |
+
{
|
403 |
+
$stat = $sftp->stat('symlink');
|
404 |
+
$lstat = $sftp->lstat('symlink');
|
405 |
+
$this->assertNotEquals(
|
406 |
+
$stat,
|
407 |
+
$lstat,
|
408 |
+
'Failed asserting that stat and lstat returned different output for a symlink'
|
409 |
+
);
|
410 |
+
|
411 |
+
return $sftp;
|
412 |
+
}
|
413 |
+
|
414 |
+
/**
|
415 |
+
* @depends testStatLstatCache
|
416 |
+
*/
|
417 |
+
public function testLinkFile($sftp)
|
418 |
+
{
|
419 |
+
$this->assertTrue(
|
420 |
+
$sftp->is_link('symlink'),
|
421 |
+
'Failed asserting that symlink is a link'
|
422 |
+
);
|
423 |
+
$this->assertTrue(
|
424 |
+
$sftp->is_file('symlink'),
|
425 |
+
'Failed asserting that symlink is a file'
|
426 |
+
);
|
427 |
+
$this->assertFalse(
|
428 |
+
$sftp->is_dir('symlink'),
|
429 |
+
'Failed asserting that symlink is not a directory'
|
430 |
+
);
|
431 |
+
|
432 |
+
return $sftp;
|
433 |
+
}
|
434 |
+
|
435 |
+
/**
|
436 |
+
* @depends testLinkFile
|
437 |
+
*/
|
438 |
+
public function testReadlink($sftp)
|
439 |
+
{
|
440 |
+
$this->assertInternalType(
|
441 |
+
'string',
|
442 |
+
$sftp->readlink('symlink'),
|
443 |
+
'Failed asserting that a symlink\'s target could be read'
|
444 |
+
);
|
445 |
+
|
446 |
+
return $sftp;
|
447 |
+
}
|
448 |
+
|
449 |
+
/**
|
450 |
+
* @depends testReadlink
|
451 |
+
* @group github716
|
452 |
+
*/
|
453 |
+
public function testStatOnCWD($sftp)
|
454 |
+
{
|
455 |
+
$stat = $sftp->stat('.');
|
456 |
+
$this->assertInternalType(
|
457 |
+
'array',
|
458 |
+
$stat,
|
459 |
+
'Failed asserting that stat on . returns an array'
|
460 |
+
);
|
461 |
+
$lstat = $sftp->lstat('.');
|
462 |
+
$this->assertInternalType(
|
463 |
+
'array',
|
464 |
+
$lstat,
|
465 |
+
'Failed asserting that lstat on . returns an array'
|
466 |
+
);
|
467 |
+
|
468 |
+
return $sftp;
|
469 |
+
}
|
470 |
+
|
471 |
+
/**
|
472 |
+
* on older versions this would result in a fatal error
|
473 |
+
* @depends testStatOnCWD
|
474 |
+
* @group github402
|
475 |
+
*/
|
476 |
+
public function testStatcacheFix($sftp)
|
477 |
+
{
|
478 |
+
// Name used for both directory and file.
|
479 |
+
$name = 'stattestdir';
|
480 |
+
$this->assertTrue($sftp->mkdir($name));
|
481 |
+
$this->assertTrue($sftp->is_dir($name));
|
482 |
+
$this->assertTrue($sftp->chdir($name));
|
483 |
+
$this->assertStringEndsWith(self::$scratchDir . '/' . $name, $sftp->pwd());
|
484 |
+
$this->assertFalse($sftp->file_exists($name));
|
485 |
+
$this->assertTrue($sftp->touch($name));
|
486 |
+
$this->assertTrue($sftp->is_file($name));
|
487 |
+
$this->assertTrue($sftp->chdir('..'));
|
488 |
+
$this->assertStringEndsWith(self::$scratchDir, $sftp->pwd());
|
489 |
+
$this->assertTrue($sftp->is_dir($name));
|
490 |
+
$this->assertTrue($sftp->is_file("$name/$name"));
|
491 |
+
$this->assertTrue($sftp->delete($name, true));
|
492 |
+
|
493 |
+
return $sftp;
|
494 |
+
}
|
495 |
+
|
496 |
+
/**
|
497 |
+
* @depends testStatcacheFix
|
498 |
+
*/
|
499 |
+
public function testChDirUpHome($sftp)
|
500 |
+
{
|
501 |
+
$this->assertTrue(
|
502 |
+
$sftp->chdir('../'),
|
503 |
+
'Failed asserting that directory could be changed one level up.'
|
504 |
+
);
|
505 |
+
|
506 |
+
$this->assertEquals(
|
507 |
+
$this->getEnv('SSH_HOME'),
|
508 |
+
$sftp->pwd(),
|
509 |
+
'Failed asserting that pwd() returns home directory.'
|
510 |
+
);
|
511 |
+
|
512 |
+
return $sftp;
|
513 |
+
}
|
514 |
+
|
515 |
+
/**
|
516 |
+
* @depends testChDirUpHome
|
517 |
+
*/
|
518 |
+
public function testFileExistsIsFileIsDirDir($sftp)
|
519 |
+
{
|
520 |
+
$this->assertTrue(
|
521 |
+
$sftp->file_exists(self::$scratchDir),
|
522 |
+
'Failed asserting that file_exists() on scratch dir returns true.'
|
523 |
+
);
|
524 |
+
|
525 |
+
$this->assertFalse(
|
526 |
+
$sftp->is_file(self::$scratchDir),
|
527 |
+
'Failed asserting that is_file() on example file returns false.'
|
528 |
+
);
|
529 |
+
|
530 |
+
$this->assertTrue(
|
531 |
+
$sftp->is_dir(self::$scratchDir),
|
532 |
+
'Failed asserting that is_dir() on example file returns true.'
|
533 |
+
);
|
534 |
+
|
535 |
+
return $sftp;
|
536 |
+
}
|
537 |
+
|
538 |
+
/**
|
539 |
+
* @depends testFileExistsIsFileIsDirDir
|
540 |
+
*/
|
541 |
+
public function testTruncateLargeFile($sftp)
|
542 |
+
{
|
543 |
+
$filesize = (4 * 1024 + 16) * 1024 * 1024;
|
544 |
+
$filename = 'file-large-from-truncate-4112MiB.txt';
|
545 |
+
$this->assertTrue($sftp->touch($filename));
|
546 |
+
$this->assertTrue($sftp->truncate($filename, $filesize));
|
547 |
+
$this->assertSame($filesize, $sftp->size($filename));
|
548 |
+
|
549 |
+
return $sftp;
|
550 |
+
}
|
551 |
+
|
552 |
+
/**
|
553 |
+
* @depends testTruncateLargeFile
|
554 |
+
*/
|
555 |
+
public function testRmDirScratch($sftp)
|
556 |
+
{
|
557 |
+
$this->assertFalse(
|
558 |
+
$sftp->rmdir(self::$scratchDir),
|
559 |
+
'Failed asserting that non-empty scratch directory could ' .
|
560 |
+
'not be deleted using rmdir().'
|
561 |
+
);
|
562 |
+
|
563 |
+
return $sftp;
|
564 |
+
}
|
565 |
+
|
566 |
+
/**
|
567 |
+
* @depends testRmDirScratch
|
568 |
+
*/
|
569 |
+
public function testDeleteRecursiveScratch($sftp)
|
570 |
+
{
|
571 |
+
$this->assertTrue(
|
572 |
+
$sftp->delete(self::$scratchDir),
|
573 |
+
'Failed asserting that non-empty scratch directory could ' .
|
574 |
+
'be deleted using recursive delete().'
|
575 |
+
);
|
576 |
+
|
577 |
+
return $sftp;
|
578 |
+
}
|
579 |
+
|
580 |
+
/**
|
581 |
+
* @depends testDeleteRecursiveScratch
|
582 |
+
*/
|
583 |
+
public function testRmDirScratchNonexistent($sftp)
|
584 |
+
{
|
585 |
+
$this->assertFalse(
|
586 |
+
$sftp->rmdir(self::$scratchDir),
|
587 |
+
'Failed asserting that nonexistent scratch directory could ' .
|
588 |
+
'not be deleted using rmdir().'
|
589 |
+
);
|
590 |
+
|
591 |
+
return $sftp;
|
592 |
+
}
|
593 |
+
|
594 |
+
/**
|
595 |
+
* @depends testRmDirScratchNonexistent
|
596 |
+
* @group github706
|
597 |
+
*/
|
598 |
+
public function testDeleteEmptyDir($sftp)
|
599 |
+
{
|
600 |
+
$this->assertTrue(
|
601 |
+
$sftp->mkdir(self::$scratchDir),
|
602 |
+
'Failed asserting that scratch directory could ' .
|
603 |
+
'be created.'
|
604 |
+
);
|
605 |
+
$this->assertInternalType(
|
606 |
+
'array',
|
607 |
+
$sftp->stat(self::$scratchDir),
|
608 |
+
'Failed asserting that stat on an existant empty directory returns an array'
|
609 |
+
);
|
610 |
+
$this->assertTrue(
|
611 |
+
$sftp->delete(self::$scratchDir),
|
612 |
+
'Failed asserting that empty scratch directory could ' .
|
613 |
+
'be deleted using recursive delete().'
|
614 |
+
);
|
615 |
+
$this->assertFalse(
|
616 |
+
$sftp->stat(self::$scratchDir),
|
617 |
+
'Failed asserting that stat on a deleted directory returns false'
|
618 |
+
);
|
619 |
+
|
620 |
+
return $sftp;
|
621 |
+
}
|
622 |
+
|
623 |
+
/**
|
624 |
+
* @depends testDeleteEmptyDir
|
625 |
+
* @group github735
|
626 |
+
*/
|
627 |
+
public function testStatVsLstat($sftp)
|
628 |
+
{
|
629 |
+
$this->assertTrue($sftp->mkdir(self::$scratchDir));
|
630 |
+
$this->assertTrue($sftp->chdir(self::$scratchDir));
|
631 |
+
$this->assertTrue($sftp->put('text.txt', 'zzzzz'));
|
632 |
+
$this->assertTrue($sftp->symlink('text.txt', 'link.txt'));
|
633 |
+
$this->assertTrue($sftp->mkdir('subdir'));
|
634 |
+
$this->assertTrue($sftp->symlink('subdir', 'linkdir'));
|
635 |
+
|
636 |
+
$sftp->clearStatCache();
|
637 |
+
|
638 |
+
// pre-populate the stat cache
|
639 |
+
$sftp->nlist();
|
640 |
+
|
641 |
+
$stat = $sftp->stat('link.txt');
|
642 |
+
$this->assertSame($stat['type'], NET_SFTP_TYPE_REGULAR);
|
643 |
+
$stat = $sftp->lstat('link.txt');
|
644 |
+
$this->assertSame($stat['type'], NET_SFTP_TYPE_SYMLINK);
|
645 |
+
|
646 |
+
$stat = $sftp->stat('linkdir');
|
647 |
+
$this->assertSame($stat['type'], NET_SFTP_TYPE_DIRECTORY);
|
648 |
+
$stat = $sftp->lstat('link.txt');
|
649 |
+
$this->assertSame($stat['type'], NET_SFTP_TYPE_SYMLINK);
|
650 |
+
|
651 |
+
$sftp->disableStatCache();
|
652 |
+
|
653 |
+
$sftp->nlist();
|
654 |
+
|
655 |
+
$stat = $sftp->stat('link.txt');
|
656 |
+
$this->assertSame($stat['type'], NET_SFTP_TYPE_REGULAR);
|
657 |
+
$stat = $sftp->lstat('link.txt');
|
658 |
+
$this->assertSame($stat['type'], NET_SFTP_TYPE_SYMLINK);
|
659 |
+
|
660 |
+
$stat = $sftp->stat('linkdir');
|
661 |
+
$this->assertSame($stat['type'], NET_SFTP_TYPE_DIRECTORY);
|
662 |
+
$stat = $sftp->lstat('link.txt');
|
663 |
+
$this->assertSame($stat['type'], NET_SFTP_TYPE_SYMLINK);
|
664 |
+
|
665 |
+
$sftp->enableStatCache();
|
666 |
+
|
667 |
+
return $sftp;
|
668 |
+
}
|
669 |
+
|
670 |
+
/**
|
671 |
+
* @depends testStatVsLstat
|
672 |
+
* @group github830
|
673 |
+
*/
|
674 |
+
public function testUploadOffsets($sftp)
|
675 |
+
{
|
676 |
+
$sftp->put('offset.txt', 'res.txt', NET_SFTP_LOCAL_FILE, 0, 10);
|
677 |
+
$this->assertSame(
|
678 |
+
substr(self::$exampleData, 10),
|
679 |
+
$sftp->get('offset.txt'),
|
680 |
+
'Failed asserting that portions of a file could be uploaded.'
|
681 |
+
);
|
682 |
+
|
683 |
+
$sftp->put('offset.txt', 'res.txt', NET_SFTP_LOCAL_FILE, self::$exampleDataLength - 100);
|
684 |
+
$this->assertSame(
|
685 |
+
substr(self::$exampleData, 10, -90) . self::$exampleData,
|
686 |
+
$sftp->get('offset.txt'),
|
687 |
+
'Failed asserting that you could upload into the middle of a file.'
|
688 |
+
);
|
689 |
+
|
690 |
+
return $sftp;
|
691 |
+
}
|
692 |
+
|
693 |
+
/**
|
694 |
+
* @depends testUploadOffsets
|
695 |
+
*/
|
696 |
+
public function testReadableWritable($sftp)
|
697 |
+
{
|
698 |
+
$sftp->chmod(0000, 'offset.txt');
|
699 |
+
$this->assertFalse($sftp->is_writable('offset.txt'));
|
700 |
+
$this->assertFalse($sftp->is_writeable('offset.txt'));
|
701 |
+
$this->assertFalse($sftp->is_readable('offset.txt'));
|
702 |
+
|
703 |
+
$sftp->chmod(0777, 'offset.txt');
|
704 |
+
$this->assertTrue($sftp->is_writable('offset.txt'));
|
705 |
+
$this->assertTrue($sftp->is_writeable('offset.txt'));
|
706 |
+
$this->assertTrue($sftp->is_readable('offset.txt'));
|
707 |
+
|
708 |
+
$this->assertFalse($sftp->is_writable('nonexistantfile.ext'));
|
709 |
+
$this->assertFalse($sftp->is_writeable('nonexistantfile.ext'));
|
710 |
+
$this->assertFalse($sftp->is_readable('nonexistantfile.ext'));
|
711 |
+
|
712 |
+
return $sftp;
|
713 |
+
}
|
714 |
+
|
715 |
+
/**
|
716 |
+
* @depends testReadableWritable
|
717 |
+
* @group github999
|
718 |
+
*/
|
719 |
+
public function testExecNlist($sftp)
|
720 |
+
{
|
721 |
+
$sftp->enablePTY();
|
722 |
+
$sftp->exec('ping google.com -c 5');
|
723 |
+
sleep(5);
|
724 |
+
$sftp->nlist();
|
725 |
+
}
|
726 |
+
}
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
5 |
+
* @copyright 2014 Andreas Fischer
|
6 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
7 |
+
*/
|
8 |
+
|
9 |
+
class Functional_Net_SSH2AgentTest extends PhpseclibFunctionalTestCase
|
10 |
+
{
|
11 |
+
public static function setUpBeforeClass()
|
12 |
+
{
|
13 |
+
if (!isset($_SERVER['SSH_AUTH_SOCK'])) {
|
14 |
+
self::markTestSkipped(
|
15 |
+
'This test requires an SSH Agent (SSH_AUTH_SOCK env variable).'
|
16 |
+
);
|
17 |
+
}
|
18 |
+
parent::setUpBeforeClass();
|
19 |
+
}
|
20 |
+
|
21 |
+
public function testAgentLogin()
|
22 |
+
{
|
23 |
+
$ssh = new Net_SSH2($this->getEnv('SSH_HOSTNAME'));
|
24 |
+
$agent = new System_SSH_Agent;
|
25 |
+
|
26 |
+
$this->assertTrue(
|
27 |
+
$ssh->login($this->getEnv('SSH_USERNAME'), $agent),
|
28 |
+
'SSH2 login using Agent failed.'
|
29 |
+
);
|
30 |
+
|
31 |
+
return array('ssh' => $ssh, 'ssh-agent' => $agent);
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* @depends testAgentLogin
|
36 |
+
*/
|
37 |
+
public function testAgentForward($args)
|
38 |
+
{
|
39 |
+
$ssh = $args['ssh'];
|
40 |
+
$agent = $args['ssh-agent'];
|
41 |
+
|
42 |
+
$hostname = $this->getEnv('SSH_HOSTNAME');
|
43 |
+
$username = $this->getEnv('SSH_USERNAME');
|
44 |
+
|
45 |
+
$this->assertEquals($username, trim($ssh->exec('whoami')));
|
46 |
+
|
47 |
+
$agent->startSSHForwarding($ssh);
|
48 |
+
$this->assertEquals($username, trim($ssh->exec("ssh " . $username . "@" . $hostname . ' \'whoami\'')));
|
49 |
+
|
50 |
+
return $args;
|
51 |
+
}
|
52 |
+
}
|
@@ -0,0 +1,172 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
5 |
+
* @copyright 2014 Andreas Fischer
|
6 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
7 |
+
*/
|
8 |
+
|
9 |
+
class Functional_Net_SSH2Test extends PhpseclibFunctionalTestCase
|
10 |
+
{
|
11 |
+
public function testConstructor()
|
12 |
+
{
|
13 |
+
$ssh = new Net_SSH2($this->getEnv('SSH_HOSTNAME'));
|
14 |
+
|
15 |
+
$this->assertTrue(
|
16 |
+
is_object($ssh),
|
17 |
+
'Could not construct NET_SSH2 object.'
|
18 |
+
);
|
19 |
+
|
20 |
+
return $ssh;
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @depends testConstructor
|
25 |
+
* @group github408
|
26 |
+
* @group github412
|
27 |
+
*/
|
28 |
+
public function testPreLogin($ssh)
|
29 |
+
{
|
30 |
+
$this->assertFalse(
|
31 |
+
$ssh->isConnected(),
|
32 |
+
'Failed asserting that SSH2 is not connected after construction.'
|
33 |
+
);
|
34 |
+
|
35 |
+
$this->assertFalse(
|
36 |
+
$ssh->isAuthenticated(),
|
37 |
+
'Failed asserting that SSH2 is not authenticated after construction.'
|
38 |
+
);
|
39 |
+
|
40 |
+
$this->assertNotEmpty(
|
41 |
+
$ssh->getServerPublicHostKey(),
|
42 |
+
'Failed asserting that a non-empty public host key was fetched.'
|
43 |
+
);
|
44 |
+
|
45 |
+
$this->assertTrue(
|
46 |
+
$ssh->isConnected(),
|
47 |
+
'Failed asserting that SSH2 is connected after public key fetch.'
|
48 |
+
);
|
49 |
+
|
50 |
+
$this->assertNotEmpty(
|
51 |
+
$ssh->getServerIdentification(),
|
52 |
+
'Failed asserting that the server identifier was set after connect.'
|
53 |
+
);
|
54 |
+
|
55 |
+
return $ssh;
|
56 |
+
}
|
57 |
+
|
58 |
+
/**
|
59 |
+
* @depends testPreLogin
|
60 |
+
*/
|
61 |
+
public function testBadPassword($ssh)
|
62 |
+
{
|
63 |
+
$username = $this->getEnv('SSH_USERNAME');
|
64 |
+
$password = $this->getEnv('SSH_PASSWORD');
|
65 |
+
$this->assertFalse(
|
66 |
+
$ssh->login($username, 'zzz' . $password),
|
67 |
+
'SSH2 login using password succeeded.'
|
68 |
+
);
|
69 |
+
|
70 |
+
$this->assertTrue(
|
71 |
+
$ssh->isConnected(),
|
72 |
+
'Failed asserting that SSH2 is connected after bad login attempt.'
|
73 |
+
);
|
74 |
+
|
75 |
+
$this->assertFalse(
|
76 |
+
$ssh->isAuthenticated(),
|
77 |
+
'Failed asserting that SSH2 is not authenticated after bad login attempt.'
|
78 |
+
);
|
79 |
+
|
80 |
+
return $ssh;
|
81 |
+
}
|
82 |
+
|
83 |
+
/**
|
84 |
+
* @depends testBadPassword
|
85 |
+
*/
|
86 |
+
public function testPasswordLogin($ssh)
|
87 |
+
{
|
88 |
+
$username = $this->getEnv('SSH_USERNAME');
|
89 |
+
$password = $this->getEnv('SSH_PASSWORD');
|
90 |
+
$this->assertTrue(
|
91 |
+
$ssh->login($username, $password),
|
92 |
+
'SSH2 login using password failed.'
|
93 |
+
);
|
94 |
+
|
95 |
+
$this->assertTrue(
|
96 |
+
$ssh->isAuthenticated(),
|
97 |
+
'Failed asserting that SSH2 is authenticated after good login attempt.'
|
98 |
+
);
|
99 |
+
|
100 |
+
return $ssh;
|
101 |
+
}
|
102 |
+
|
103 |
+
/**
|
104 |
+
* @depends testPasswordLogin
|
105 |
+
* @group github280
|
106 |
+
*/
|
107 |
+
public function testExecWithMethodCallback($ssh)
|
108 |
+
{
|
109 |
+
$callbackObject = $this->getMockBuilder('stdClass')
|
110 |
+
->setMethods(array('callbackMethod'))
|
111 |
+
->getMock();
|
112 |
+
$callbackObject
|
113 |
+
->expects($this->atLeastOnce())
|
114 |
+
->method('callbackMethod')
|
115 |
+
->will($this->returnValue(true));
|
116 |
+
$ssh->exec('pwd', array($callbackObject, 'callbackMethod'));
|
117 |
+
|
118 |
+
return $ssh;
|
119 |
+
}
|
120 |
+
|
121 |
+
public function testGetServerPublicHostKey()
|
122 |
+
{
|
123 |
+
$ssh = new Net_SSH2($this->getEnv('SSH_HOSTNAME'));
|
124 |
+
|
125 |
+
$this->assertInternalType('string', $ssh->getServerPublicHostKey());
|
126 |
+
}
|
127 |
+
|
128 |
+
public function testOpenSocketConnect()
|
129 |
+
{
|
130 |
+
$fsock = fsockopen($this->getEnv('SSH_HOSTNAME'), 22);
|
131 |
+
$ssh = new Net_SSH2($fsock);
|
132 |
+
|
133 |
+
$username = $this->getEnv('SSH_USERNAME');
|
134 |
+
$password = $this->getEnv('SSH_PASSWORD');
|
135 |
+
$this->assertTrue(
|
136 |
+
$ssh->login($username, $password),
|
137 |
+
'SSH2 login using an open socket failed.'
|
138 |
+
);
|
139 |
+
}
|
140 |
+
|
141 |
+
/**
|
142 |
+
* @depends testExecWithMethodCallback
|
143 |
+
* @group github1009
|
144 |
+
*/
|
145 |
+
public function testDisablePTY($ssh)
|
146 |
+
{
|
147 |
+
$ssh->enablePTY();
|
148 |
+
$ssh->exec('ls -latr');
|
149 |
+
$ssh->disablePTY();
|
150 |
+
$ssh->exec('pwd');
|
151 |
+
|
152 |
+
return $ssh;
|
153 |
+
}
|
154 |
+
|
155 |
+
/**
|
156 |
+
* @depends testDisablePTY
|
157 |
+
* @group github1167
|
158 |
+
*/
|
159 |
+
public function testChannelDataAfterOpen($ssh)
|
160 |
+
{
|
161 |
+
$ssh->write("ping 127.0.0.1\n");
|
162 |
+
|
163 |
+
$ssh->enablePTY();
|
164 |
+
$ssh->exec('bash');
|
165 |
+
|
166 |
+
$ssh->write("ls -latr\n");
|
167 |
+
|
168 |
+
$ssh->setTimeout(1);
|
169 |
+
|
170 |
+
$ssh->read();
|
171 |
+
}
|
172 |
+
}
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2014 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
abstract class PhpseclibFunctionalTestCase extends PhpseclibTestCase
|
9 |
+
{
|
10 |
+
public static function setUpBeforeClass()
|
11 |
+
{
|
12 |
+
if (extension_loaded('runkit')) {
|
13 |
+
if (extension_loaded('gmp')) {
|
14 |
+
self::ensureConstant(
|
15 |
+
'MATH_BIGINTEGER_MODE',
|
16 |
+
MATH_BIGINTEGER_MODE_GMP
|
17 |
+
);
|
18 |
+
} elseif (extension_loaded('bcmath')) {
|
19 |
+
self::ensureConstant(
|
20 |
+
'MATH_BIGINTEGER_MODE',
|
21 |
+
MATH_BIGINTEGER_MODE_BCMATH
|
22 |
+
);
|
23 |
+
} else {
|
24 |
+
self::markTestSkipped(
|
25 |
+
'Should have gmp or bcmath extension for functional test.'
|
26 |
+
);
|
27 |
+
}
|
28 |
+
self::ensureConstant('CRYPT_HASH_MODE', CRYPT_HASH_MODE_HASH);
|
29 |
+
self::reRequireFile('Math/BigInteger.php');
|
30 |
+
self::reRequireFile('Crypt/Hash.php');
|
31 |
+
}
|
32 |
+
parent::setUpBeforeClass();
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* @param string $variable
|
37 |
+
* @param string|null $message
|
38 |
+
*
|
39 |
+
* @return null
|
40 |
+
*/
|
41 |
+
protected function requireEnv($variable, $message = null)
|
42 |
+
{
|
43 |
+
if ($this->_getEnv($variable) === false) {
|
44 |
+
$msg = $message ? $message : sprintf(
|
45 |
+
"This test requires the '%s' environment variable.",
|
46 |
+
$this->_prefixEnvVariable($variable)
|
47 |
+
);
|
48 |
+
$this->markTestSkipped($msg);
|
49 |
+
}
|
50 |
+
}
|
51 |
+
|
52 |
+
/**
|
53 |
+
* @param string $variable
|
54 |
+
*
|
55 |
+
* @return string
|
56 |
+
*/
|
57 |
+
protected function getEnv($variable)
|
58 |
+
{
|
59 |
+
$this->requireEnv($variable);
|
60 |
+
return $this->_getEnv($variable);
|
61 |
+
}
|
62 |
+
|
63 |
+
private function _getEnv($variable)
|
64 |
+
{
|
65 |
+
return getenv($this->_prefixEnvVariable($variable));
|
66 |
+
}
|
67 |
+
|
68 |
+
private function _prefixEnvVariable($variable)
|
69 |
+
{
|
70 |
+
return 'PHPSECLIB_' . $variable;
|
71 |
+
}
|
72 |
+
}
|
@@ -0,0 +1,104 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2013 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
abstract class PhpseclibTestCase extends PHPUnit\Framework\TestCase
|
9 |
+
{
|
10 |
+
protected $tempFilesToUnlinkOnTearDown = array();
|
11 |
+
|
12 |
+
public function tearDown()
|
13 |
+
{
|
14 |
+
foreach ($this->tempFilesToUnlinkOnTearDown as $filename) {
|
15 |
+
if (!file_exists($filename) || unlink($filename)) {
|
16 |
+
unset($this->tempFilesToUnlinkOnTearDown[$filename]);
|
17 |
+
}
|
18 |
+
}
|
19 |
+
parent::tearDown();
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Creates a temporary file on the local filesystem and returns its path.
|
24 |
+
* The $number_of_writes and $bytes_per_write parameters can be used to
|
25 |
+
* write $number_of_writes * $bytes_per_write times the character 'a' to the
|
26 |
+
* temporary file. All files created using this method will be deleted from
|
27 |
+
* the filesystem on tearDown(), i.e. after each test method was run.
|
28 |
+
*
|
29 |
+
* @param int $number_of_writes
|
30 |
+
* @param int $bytes_per_write
|
31 |
+
*
|
32 |
+
* @return string
|
33 |
+
*/
|
34 |
+
protected function createTempFile($number_of_writes = 0, $bytes_per_write = 0)
|
35 |
+
{
|
36 |
+
$filename = tempnam(sys_get_temp_dir(), 'phpseclib-test-');
|
37 |
+
$this->assertTrue(file_exists($filename));
|
38 |
+
$this->tempFilesToUnlinkOnTearDown[] = $filename;
|
39 |
+
if ($number_of_writes > 0 && $bytes_per_write > 0) {
|
40 |
+
$fp = fopen($filename, 'wb');
|
41 |
+
for ($i = 0; $i < $number_of_writes; ++$i) {
|
42 |
+
fwrite($fp, str_repeat('a', $bytes_per_write));
|
43 |
+
}
|
44 |
+
fclose($fp);
|
45 |
+
$this->assertSame($number_of_writes * $bytes_per_write, filesize($filename));
|
46 |
+
}
|
47 |
+
return $filename;
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @param string $constant
|
52 |
+
* @param mixed $expected
|
53 |
+
*
|
54 |
+
* @return null
|
55 |
+
*/
|
56 |
+
protected static function ensureConstant($constant, $expected)
|
57 |
+
{
|
58 |
+
if (defined($constant)) {
|
59 |
+
$value = constant($constant);
|
60 |
+
|
61 |
+
if ($value !== $expected) {
|
62 |
+
if (extension_loaded('runkit')) {
|
63 |
+
if (!runkit_constant_redefine($constant, $expected)) {
|
64 |
+
self::markTestSkipped(sprintf(
|
65 |
+
"Failed to redefine constant %s to %s",
|
66 |
+
$constant,
|
67 |
+
$expected
|
68 |
+
));
|
69 |
+
}
|
70 |
+
} else {
|
71 |
+
self::markTestSkipped(sprintf(
|
72 |
+
"Skipping test because constant %s is %s instead of %s",
|
73 |
+
$constant,
|
74 |
+
$value,
|
75 |
+
$expected
|
76 |
+
));
|
77 |
+
}
|
78 |
+
}
|
79 |
+
} else {
|
80 |
+
define($constant, $expected);
|
81 |
+
}
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* @param string $filename
|
86 |
+
*
|
87 |
+
* @return null
|
88 |
+
*/
|
89 |
+
protected static function reRequireFile($filename)
|
90 |
+
{
|
91 |
+
if (extension_loaded('runkit')) {
|
92 |
+
$result = runkit_import(
|
93 |
+
$filename,
|
94 |
+
RUNKIT_IMPORT_FUNCTIONS |
|
95 |
+
RUNKIT_IMPORT_CLASS_METHODS |
|
96 |
+
RUNKIT_IMPORT_OVERRIDE
|
97 |
+
);
|
98 |
+
|
99 |
+
if (!$result) {
|
100 |
+
self::markTestSkipped("Failed to reimport file $filename");
|
101 |
+
}
|
102 |
+
}
|
103 |
+
}
|
104 |
+
}
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2013 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Unit_Crypt_AES_InternalTest extends Unit_Crypt_AES_TestCase
|
9 |
+
{
|
10 |
+
protected function setUp()
|
11 |
+
{
|
12 |
+
$this->engine = CRYPT_ENGINE_INTERNAL;
|
13 |
+
}
|
14 |
+
}
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2013 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Unit_Crypt_AES_McryptTest extends Unit_Crypt_AES_TestCase
|
9 |
+
{
|
10 |
+
protected function setUp()
|
11 |
+
{
|
12 |
+
$this->engine = CRYPT_ENGINE_MCRYPT;
|
13 |
+
}
|
14 |
+
}
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright MMXIII Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Unit_Crypt_AES_OpenSSLTest extends Unit_Crypt_AES_TestCase
|
9 |
+
{
|
10 |
+
protected function setUp()
|
11 |
+
{
|
12 |
+
$this->engine = CRYPT_ENGINE_OPENSSL;
|
13 |
+
}
|
14 |
+
}
|
@@ -0,0 +1,388 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2013 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
require_once 'Crypt/AES.php';
|
9 |
+
|
10 |
+
abstract class Unit_Crypt_AES_TestCase extends PhpseclibTestCase
|
11 |
+
{
|
12 |
+
protected $engine;
|
13 |
+
|
14 |
+
private function _checkEngine($aes)
|
15 |
+
{
|
16 |
+
if ($aes->getEngine() != $this->engine) {
|
17 |
+
$engine = 'internal';
|
18 |
+
switch ($this->engine) {
|
19 |
+
case CRYPT_ENGINE_OPENSSL:
|
20 |
+
$engine = 'OpenSSL';
|
21 |
+
break;
|
22 |
+
case CRYPT_ENGINE_MCRYPT:
|
23 |
+
$engine = 'mcrypt';
|
24 |
+
}
|
25 |
+
self::markTestSkipped('Unable to initialize ' . $engine . ' engine');
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Produces all combinations of test values.
|
31 |
+
*
|
32 |
+
* @return array
|
33 |
+
*/
|
34 |
+
public function continuousBufferCombos()
|
35 |
+
{
|
36 |
+
$modes = array(
|
37 |
+
'CRYPT_MODE_CTR',
|
38 |
+
'CRYPT_MODE_OFB',
|
39 |
+
'CRYPT_MODE_CFB',
|
40 |
+
);
|
41 |
+
$plaintexts = array(
|
42 |
+
'',
|
43 |
+
'12345678901234567', // https://github.com/phpseclib/phpseclib/issues/39
|
44 |
+
"\xDE\xAD\xBE\xAF",
|
45 |
+
':-):-):-):-):-):-)', // https://github.com/phpseclib/phpseclib/pull/43
|
46 |
+
);
|
47 |
+
$ivs = array(
|
48 |
+
'',
|
49 |
+
'test123',
|
50 |
+
);
|
51 |
+
$keys = array(
|
52 |
+
'',
|
53 |
+
':-8', // https://github.com/phpseclib/phpseclib/pull/43
|
54 |
+
'FOOBARZ',
|
55 |
+
);
|
56 |
+
|
57 |
+
$result = array();
|
58 |
+
|
59 |
+
foreach ($modes as $mode) {
|
60 |
+
foreach ($plaintexts as $plaintext) {
|
61 |
+
foreach ($ivs as $iv) {
|
62 |
+
foreach ($keys as $key) {
|
63 |
+
$result[] = array($mode, $plaintext, $iv, $key);
|
64 |
+
}
|
65 |
+
}
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
return $result;
|
70 |
+
}
|
71 |
+
|
72 |
+
/**
|
73 |
+
* @dataProvider continuousBufferCombos
|
74 |
+
*/
|
75 |
+
public function testEncryptDecryptWithContinuousBuffer($mode, $plaintext, $iv, $key)
|
76 |
+
{
|
77 |
+
$aes = new Crypt_AES(constant($mode));
|
78 |
+
$aes->setPreferredEngine($this->engine);
|
79 |
+
$aes->enableContinuousBuffer();
|
80 |
+
$aes->setIV($iv);
|
81 |
+
$aes->setKey($key);
|
82 |
+
|
83 |
+
$this->_checkEngine($aes);
|
84 |
+
|
85 |
+
$actual = '';
|
86 |
+
for ($i = 0, $strlen = strlen($plaintext); $i < $strlen; ++$i) {
|
87 |
+
$actual .= $aes->decrypt($aes->encrypt($plaintext[$i]));
|
88 |
+
}
|
89 |
+
|
90 |
+
$this->assertEquals($plaintext, $actual);
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* @group github451
|
95 |
+
*/
|
96 |
+
public function testKeyPaddingRijndael()
|
97 |
+
{
|
98 |
+
// this test case is from the following URL:
|
99 |
+
// https://web.archive.org/web/20070209120224/http://fp.gladman.plus.com/cryptography_technology/rijndael/aesdvec.zip
|
100 |
+
|
101 |
+
$aes = new Crypt_Rijndael();
|
102 |
+
$aes->setPreferredEngine($this->engine);
|
103 |
+
$aes->disablePadding();
|
104 |
+
$aes->setKey(pack('H*', '2b7e151628aed2a6abf7158809cf4f3c762e7160')); // 160-bit key. Valid in Rijndael.
|
105 |
+
//$this->_checkEngine($aes); // should only work in internal mode
|
106 |
+
$ciphertext = $aes->encrypt(pack('H*', '3243f6a8885a308d313198a2e0370734'));
|
107 |
+
$this->assertEquals($ciphertext, pack('H*', '231d844639b31b412211cfe93712b880'));
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* @group github451
|
112 |
+
*/
|
113 |
+
public function testKeyPaddingAES()
|
114 |
+
{
|
115 |
+
// same as the above - just with a different ciphertext
|
116 |
+
|
117 |
+
$aes = new Crypt_AES();
|
118 |
+
$aes->setPreferredEngine($this->engine);
|
119 |
+
$aes->disablePadding();
|
120 |
+
$aes->setKey(pack('H*', '2b7e151628aed2a6abf7158809cf4f3c762e7160')); // 160-bit key. AES should null pad to 192-bits
|
121 |
+
$this->_checkEngine($aes);
|
122 |
+
$ciphertext = $aes->encrypt(pack('H*', '3243f6a8885a308d313198a2e0370734'));
|
123 |
+
$this->assertEquals($ciphertext, pack('H*', 'c109292b173f841b88e0ee49f13db8c0'));
|
124 |
+
}
|
125 |
+
|
126 |
+
/**
|
127 |
+
* Produces all combinations of test values.
|
128 |
+
*
|
129 |
+
* @return array
|
130 |
+
*/
|
131 |
+
public function continuousBufferBatteryCombos()
|
132 |
+
{
|
133 |
+
$modes = array(
|
134 |
+
'CRYPT_MODE_CTR',
|
135 |
+
'CRYPT_MODE_OFB',
|
136 |
+
'CRYPT_MODE_CFB',
|
137 |
+
);
|
138 |
+
|
139 |
+
$combos = array(
|
140 |
+
array(16),
|
141 |
+
array(17),
|
142 |
+
array(1, 16),
|
143 |
+
array(3, 6, 7), // (3 to test the openssl_encrypt call and the buffer creation, 6 to test the exclusive use of the buffer and 7 to test the buffer's exhaustion and recreation)
|
144 |
+
array(15, 4), // (15 to test openssl_encrypt call and buffer creation and 4 to test something that spans multpile bloc
|
145 |
+
array(3, 6, 10, 16), // this is why the strlen check in the buffer-only code was needed
|
146 |
+
array(16, 16), // two full size blocks
|
147 |
+
array(3, 6, 7, 16), // partial block + full size block
|
148 |
+
array(16, 3, 6, 7),
|
149 |
+
// a few others just for fun
|
150 |
+
array(32,32),
|
151 |
+
array(31,31),
|
152 |
+
array(17,17),
|
153 |
+
array(99, 99)
|
154 |
+
);
|
155 |
+
|
156 |
+
$result = array();
|
157 |
+
|
158 |
+
foreach ($modes as $mode) {
|
159 |
+
foreach ($combos as $combo) {
|
160 |
+
foreach (array('encrypt', 'decrypt') as $op) {
|
161 |
+
$result[] = array($op, $mode, $combo);
|
162 |
+
}
|
163 |
+
}
|
164 |
+
}
|
165 |
+
|
166 |
+
return $result;
|
167 |
+
}
|
168 |
+
|
169 |
+
/**
|
170 |
+
* @dataProvider continuousBufferBatteryCombos
|
171 |
+
*/
|
172 |
+
public function testContinuousBufferBattery($op, $mode, $test)
|
173 |
+
{
|
174 |
+
$iv = str_repeat('x', 16);
|
175 |
+
$key = str_repeat('a', 16);
|
176 |
+
|
177 |
+
$aes = new Crypt_AES(constant($mode));
|
178 |
+
$aes->setPreferredEngine($this->engine);
|
179 |
+
$aes->setKey($key);
|
180 |
+
$aes->setIV($iv);
|
181 |
+
|
182 |
+
$this->_checkEngine($aes);
|
183 |
+
|
184 |
+
$str = '';
|
185 |
+
$result = '';
|
186 |
+
foreach ($test as $len) {
|
187 |
+
$temp = str_repeat('d', $len);
|
188 |
+
$str.= $temp;
|
189 |
+
}
|
190 |
+
|
191 |
+
$c1 = $aes->$op($str);
|
192 |
+
|
193 |
+
$aes = new Crypt_AES(constant($mode));
|
194 |
+
$aes->setPreferredEngine($this->engine);
|
195 |
+
$aes->enableContinuousBuffer();
|
196 |
+
$aes->setKey($key);
|
197 |
+
$aes->setIV($iv);
|
198 |
+
|
199 |
+
if (!$this->_checkEngine($aes)) {
|
200 |
+
return;
|
201 |
+
}
|
202 |
+
|
203 |
+
foreach ($test as $len) {
|
204 |
+
$temp = str_repeat('d', $len);
|
205 |
+
$output = $aes->$op($temp);
|
206 |
+
$result.= $output;
|
207 |
+
}
|
208 |
+
|
209 |
+
$c2 = $result;
|
210 |
+
|
211 |
+
$this->assertSame(bin2hex($c1), bin2hex($c2));
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Pretty much the same as testContinuousBufferBattery with the caveat that continuous mode is not enabled.
|
216 |
+
*
|
217 |
+
* @dataProvider continuousBufferBatteryCombos
|
218 |
+
*/
|
219 |
+
public function testNonContinuousBufferBattery($op, $mode, $test)
|
220 |
+
{
|
221 |
+
if (count($test) == 1) {
|
222 |
+
return;
|
223 |
+
}
|
224 |
+
|
225 |
+
$iv = str_repeat('x', 16);
|
226 |
+
$key = str_repeat('a', 16);
|
227 |
+
|
228 |
+
$aes = new Crypt_AES(constant($mode));
|
229 |
+
$aes->setPreferredEngine($this->engine);
|
230 |
+
$aes->setKey($key);
|
231 |
+
$aes->setIV($iv);
|
232 |
+
|
233 |
+
$this->_checkEngine($aes);
|
234 |
+
|
235 |
+
$str = '';
|
236 |
+
$result = '';
|
237 |
+
foreach ($test as $len) {
|
238 |
+
$temp = str_repeat('d', $len);
|
239 |
+
$str.= $temp;
|
240 |
+
}
|
241 |
+
|
242 |
+
$c1 = $aes->$op($str);
|
243 |
+
|
244 |
+
$aes = new Crypt_AES(constant($mode));
|
245 |
+
$aes->setPreferredEngine($this->engine);
|
246 |
+
$aes->setKey($key);
|
247 |
+
$aes->setIV($iv);
|
248 |
+
|
249 |
+
$this->_checkEngine($aes);
|
250 |
+
|
251 |
+
foreach ($test as $len) {
|
252 |
+
$temp = str_repeat('d', $len);
|
253 |
+
$output = $aes->$op($temp);
|
254 |
+
$result.= $output;
|
255 |
+
}
|
256 |
+
|
257 |
+
$c2 = $result;
|
258 |
+
|
259 |
+
$this->assertNotSame(bin2hex($c1), bin2hex($c2));
|
260 |
+
}
|
261 |
+
|
262 |
+
// from http://csrc.nist.gov/groups/STM/cavp/documents/aes/AESAVS.pdf#page=16
|
263 |
+
public function testGFSBox128()
|
264 |
+
{
|
265 |
+
$aes = new Crypt_AES();
|
266 |
+
|
267 |
+
$aes->setKey(pack('H*', '00000000000000000000000000000000'));
|
268 |
+
$aes->setIV(pack('H*', '00000000000000000000000000000000'));
|
269 |
+
$aes->disablePadding();
|
270 |
+
|
271 |
+
$aes->setPreferredEngine($this->engine);
|
272 |
+
$this->_checkEngine($aes);
|
273 |
+
|
274 |
+
$result = bin2hex($aes->encrypt(pack('H*', 'f34481ec3cc627bacd5dc3fb08f273e6')));
|
275 |
+
$this->assertSame($result, '0336763e966d92595a567cc9ce537f5e');
|
276 |
+
$result = bin2hex($aes->encrypt(pack('H*', '9798c4640bad75c7c3227db910174e72')));
|
277 |
+
$this->assertSame($result, 'a9a1631bf4996954ebc093957b234589');
|
278 |
+
$result = bin2hex($aes->encrypt(pack('H*', '96ab5c2ff612d9dfaae8c31f30c42168')));
|
279 |
+
$this->assertSame($result, 'ff4f8391a6a40ca5b25d23bedd44a597');
|
280 |
+
$result = bin2hex($aes->encrypt(pack('H*', '6a118a874519e64e9963798a503f1d35')));
|
281 |
+
$this->assertSame($result, 'dc43be40be0e53712f7e2bf5ca707209');
|
282 |
+
$result = bin2hex($aes->encrypt(pack('H*', 'cb9fceec81286ca3e989bd979b0cb284')));
|
283 |
+
$this->assertSame($result, '92beedab1895a94faa69b632e5cc47ce');
|
284 |
+
$result = bin2hex($aes->encrypt(pack('H*', 'b26aeb1874e47ca8358ff22378f09144')));
|
285 |
+
$this->assertSame($result, '459264f4798f6a78bacb89c15ed3d601');
|
286 |
+
$result = bin2hex($aes->encrypt(pack('H*', '58c8e00b2631686d54eab84b91f0aca1')));
|
287 |
+
$this->assertSame($result, '08a4e2efec8a8e3312ca7460b9040bbf');
|
288 |
+
}
|
289 |
+
|
290 |
+
public function testGFSBox192()
|
291 |
+
{
|
292 |
+
$aes = new Crypt_AES();
|
293 |
+
|
294 |
+
$aes->setKey(pack('H*', '000000000000000000000000000000000000000000000000'));
|
295 |
+
$aes->setIV(pack('H*', '00000000000000000000000000000000'));
|
296 |
+
$aes->disablePadding();
|
297 |
+
|
298 |
+
$aes->setPreferredEngine($this->engine);
|
299 |
+
$this->_checkEngine($aes);
|
300 |
+
|
301 |
+
$result = bin2hex($aes->encrypt(pack('H*', '1b077a6af4b7f98229de786d7516b639')));
|
302 |
+
$this->assertSame($result, '275cfc0413d8ccb70513c3859b1d0f72');
|
303 |
+
$result = bin2hex($aes->encrypt(pack('H*', '9c2d8842e5f48f57648205d39a239af1')));
|
304 |
+
$this->assertSame($result, 'c9b8135ff1b5adc413dfd053b21bd96d');
|
305 |
+
$result = bin2hex($aes->encrypt(pack('H*', 'bff52510095f518ecca60af4205444bb')));
|
306 |
+
$this->assertSame($result, '4a3650c3371ce2eb35e389a171427440');
|
307 |
+
$result = bin2hex($aes->encrypt(pack('H*', '51719783d3185a535bd75adc65071ce1')));
|
308 |
+
$this->assertSame($result, '4f354592ff7c8847d2d0870ca9481b7c');
|
309 |
+
$result = bin2hex($aes->encrypt(pack('H*', '26aa49dcfe7629a8901a69a9914e6dfd')));
|
310 |
+
$this->assertSame($result, 'd5e08bf9a182e857cf40b3a36ee248cc');
|
311 |
+
$result = bin2hex($aes->encrypt(pack('H*', '941a4773058224e1ef66d10e0a6ee782')));
|
312 |
+
$this->assertSame($result, '067cd9d3749207791841562507fa9626');
|
313 |
+
}
|
314 |
+
|
315 |
+
public function testGFSBox256()
|
316 |
+
{
|
317 |
+
$aes = new Crypt_AES();
|
318 |
+
|
319 |
+
$aes->setKey(pack('H*', '00000000000000000000000000000000' . '00000000000000000000000000000000'));
|
320 |
+
$aes->setIV(pack('H*', '00000000000000000000000000000000'));
|
321 |
+
$aes->disablePadding();
|
322 |
+
|
323 |
+
$aes->setPreferredEngine($this->engine);
|
324 |
+
$this->_checkEngine($aes);
|
325 |
+
|
326 |
+
$result = bin2hex($aes->encrypt(pack('H*', '014730f80ac625fe84f026c60bfd547d')));
|
327 |
+
$this->assertSame($result, '5c9d844ed46f9885085e5d6a4f94c7d7');
|
328 |
+
$result = bin2hex($aes->encrypt(pack('H*', '0b24af36193ce4665f2825d7b4749c98')));
|
329 |
+
$this->assertSame($result, 'a9ff75bd7cf6613d3731c77c3b6d0c04');
|
330 |
+
$result = bin2hex($aes->encrypt(pack('H*', '761c1fe41a18acf20d241650611d90f1')));
|
331 |
+
$this->assertSame($result, '623a52fcea5d443e48d9181ab32c7421');
|
332 |
+
$result = bin2hex($aes->encrypt(pack('H*', '8a560769d605868ad80d819bdba03771')));
|
333 |
+
$this->assertSame($result, '38f2c7ae10612415d27ca190d27da8b4');
|
334 |
+
$result = bin2hex($aes->encrypt(pack('H*', '91fbef2d15a97816060bee1feaa49afe')));
|
335 |
+
$this->assertSame($result, '1bc704f1bce135ceb810341b216d7abe');
|
336 |
+
}
|
337 |
+
|
338 |
+
public function testGetKeyLengthDefault()
|
339 |
+
{
|
340 |
+
$aes = new Crypt_AES();
|
341 |
+
$this->assertSame($aes->getKeyLength(), 128);
|
342 |
+
}
|
343 |
+
|
344 |
+
public function testGetKeyLengthWith192BitKey()
|
345 |
+
{
|
346 |
+
$aes = new Crypt_AES();
|
347 |
+
$aes->setKey(str_repeat('a', 24));
|
348 |
+
$this->assertSame($aes->getKeyLength(), 192);
|
349 |
+
}
|
350 |
+
|
351 |
+
public function testSetKeyLengthWithLargerKey()
|
352 |
+
{
|
353 |
+
$aes = new Crypt_AES();
|
354 |
+
$aes->setKeyLength(128);
|
355 |
+
$aes->setKey(str_repeat('a', 24));
|
356 |
+
$this->assertSame($aes->getKeyLength(), 128);
|
357 |
+
$ciphertext = bin2hex($aes->encrypt('a'));
|
358 |
+
$this->assertSame($ciphertext, '82b7b068dfc60ed2a46893b69fecd6c2');
|
359 |
+
$this->assertSame($aes->getKeyLength(), 128);
|
360 |
+
}
|
361 |
+
|
362 |
+
public function testSetKeyLengthWithSmallerKey()
|
363 |
+
{
|
364 |
+
$aes = new Crypt_AES();
|
365 |
+
$aes->setKeyLength(256);
|
366 |
+
$aes->setKey(str_repeat('a', 16));
|
367 |
+
$this->assertSame($aes->getKeyLength(), 256);
|
368 |
+
$ciphertext = bin2hex($aes->encrypt('a'));
|
369 |
+
$this->assertSame($ciphertext, 'fd4250c0d234aa7e1aa592820aa8406b');
|
370 |
+
$this->assertSame($aes->getKeyLength(), 256);
|
371 |
+
}
|
372 |
+
|
373 |
+
/**
|
374 |
+
* @group github938
|
375 |
+
*/
|
376 |
+
public function testContinuousBuffer()
|
377 |
+
{
|
378 |
+
$aes = new Crypt_AES();
|
379 |
+
$aes->disablePadding();
|
380 |
+
$aes->enableContinuousBuffer();
|
381 |
+
$aes->setIV(pack('H*', '0457bdb4a6712986688349a29eb82535'));
|
382 |
+
$aes->setKey(pack('H*', '00d596e2c8189b2592fac358e7396ad2'));
|
383 |
+
$aes->decrypt(pack('H*', '9aa234ea7c750a8109a0f32d768b964e'));
|
384 |
+
$plaintext = $aes->decrypt(pack('H*', '0457bdb4a6712986688349a29eb82535'));
|
385 |
+
$expected = pack('H*', '6572617574689e1be8d2d8d43c594cf3');
|
386 |
+
$this->assertSame($plaintext, $expected);
|
387 |
+
}
|
388 |
+
}
|
@@ -0,0 +1,130 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright MMXIII Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
require_once 'Crypt/Blowfish.php';
|
9 |
+
require_once 'Crypt/Random.php';
|
10 |
+
|
11 |
+
class Unit_Crypt_BlowfishTest extends PhpseclibTestCase
|
12 |
+
{
|
13 |
+
public function engineVectors()
|
14 |
+
{
|
15 |
+
$engines = array(
|
16 |
+
CRYPT_ENGINE_INTERNAL => 'internal',
|
17 |
+
CRYPT_ENGINE_MCRYPT => 'mcrypt',
|
18 |
+
CRYPT_ENGINE_OPENSSL => 'OpenSSL',
|
19 |
+
);
|
20 |
+
|
21 |
+
// tests from https://www.schneier.com/code/vectors.txt
|
22 |
+
$tests = array(
|
23 |
+
// key, plaintext, ciphertext
|
24 |
+
array(pack('H*', '0000000000000000'), pack('H*', '0000000000000000'), pack('H*', '4EF997456198DD78')),
|
25 |
+
array(pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', '51866FD5B85ECB8A')),
|
26 |
+
array(pack('H*', '3000000000000000'), pack('H*', '1000000000000001'), pack('H*', '7D856F9A613063F2')),
|
27 |
+
array(pack('H*', '1111111111111111'), pack('H*', '1111111111111111'), pack('H*', '2466DD878B963C9D')),
|
28 |
+
array(pack('H*', '0123456789ABCDEF'), pack('H*', '1111111111111111'), pack('H*', '61F9C3802281B096')),
|
29 |
+
array(pack('H*', '1111111111111111'), pack('H*', '0123456789ABCDEF'), pack('H*', '7D0CC630AFDA1EC7')),
|
30 |
+
array(pack('H*', '0000000000000000'), pack('H*', '0000000000000000'), pack('H*', '4EF997456198DD78')),
|
31 |
+
array(pack('H*', 'FEDCBA9876543210'), pack('H*', '0123456789ABCDEF'), pack('H*', '0ACEAB0FC6A0A28D')),
|
32 |
+
array(pack('H*', '7CA110454A1A6E57'), pack('H*', '01A1D6D039776742'), pack('H*', '59C68245EB05282B')),
|
33 |
+
array(pack('H*', '0131D9619DC1376E'), pack('H*', '5CD54CA83DEF57DA'), pack('H*', 'B1B8CC0B250F09A0')),
|
34 |
+
array(pack('H*', '07A1133E4A0B2686'), pack('H*', '0248D43806F67172'), pack('H*', '1730E5778BEA1DA4')),
|
35 |
+
array(pack('H*', '3849674C2602319E'), pack('H*', '51454B582DDF440A'), pack('H*', 'A25E7856CF2651EB')),
|
36 |
+
array(pack('H*', '04B915BA43FEB5B6'), pack('H*', '42FD443059577FA2'), pack('H*', '353882B109CE8F1A')),
|
37 |
+
array(pack('H*', '0113B970FD34F2CE'), pack('H*', '059B5E0851CF143A'), pack('H*', '48F4D0884C379918')),
|
38 |
+
array(pack('H*', '0170F175468FB5E6'), pack('H*', '0756D8E0774761D2'), pack('H*', '432193B78951FC98')),
|
39 |
+
array(pack('H*', '43297FAD38E373FE'), pack('H*', '762514B829BF486A'), pack('H*', '13F04154D69D1AE5')),
|
40 |
+
array(pack('H*', '07A7137045DA2A16'), pack('H*', '3BDD119049372802'), pack('H*', '2EEDDA93FFD39C79')),
|
41 |
+
array(pack('H*', '04689104C2FD3B2F'), pack('H*', '26955F6835AF609A'), pack('H*', 'D887E0393C2DA6E3')),
|
42 |
+
array(pack('H*', '37D06BB516CB7546'), pack('H*', '164D5E404F275232'), pack('H*', '5F99D04F5B163969')),
|
43 |
+
array(pack('H*', '1F08260D1AC2465E'), pack('H*', '6B056E18759F5CCA'), pack('H*', '4A057A3B24D3977B')),
|
44 |
+
array(pack('H*', '584023641ABA6176'), pack('H*', '004BD6EF09176062'), pack('H*', '452031C1E4FADA8E')),
|
45 |
+
array(pack('H*', '025816164629B007'), pack('H*', '480D39006EE762F2'), pack('H*', '7555AE39F59B87BD')),
|
46 |
+
array(pack('H*', '49793EBC79B3258F'), pack('H*', '437540C8698F3CFA'), pack('H*', '53C55F9CB49FC019')),
|
47 |
+
array(pack('H*', '4FB05E1515AB73A7'), pack('H*', '072D43A077075292'), pack('H*', '7A8E7BFA937E89A3')),
|
48 |
+
array(pack('H*', '49E95D6D4CA229BF'), pack('H*', '02FE55778117F12A'), pack('H*', 'CF9C5D7A4986ADB5')),
|
49 |
+
array(pack('H*', '018310DC409B26D6'), pack('H*', '1D9D5C5018F728C2'), pack('H*', 'D1ABB290658BC778')),
|
50 |
+
array(pack('H*', '1C587F1C13924FEF'), pack('H*', '305532286D6F295A'), pack('H*', '55CB3774D13EF201')),
|
51 |
+
array(pack('H*', '0101010101010101'), pack('H*', '0123456789ABCDEF'), pack('H*', 'FA34EC4847B268B2')),
|
52 |
+
array(pack('H*', '1F1F1F1F0E0E0E0E'), pack('H*', '0123456789ABCDEF'), pack('H*', 'A790795108EA3CAE')),
|
53 |
+
array(pack('H*', 'E0FEE0FEF1FEF1FE'), pack('H*', '0123456789ABCDEF'), pack('H*', 'C39E072D9FAC631D')),
|
54 |
+
array(pack('H*', '0000000000000000'), pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', '014933E0CDAFF6E4')),
|
55 |
+
array(pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', '0000000000000000'), pack('H*', 'F21E9A77B71C49BC')),
|
56 |
+
array(pack('H*', '0123456789ABCDEF'), pack('H*', '0000000000000000'), pack('H*', '245946885754369A')),
|
57 |
+
array(pack('H*', 'FEDCBA9876543210'), pack('H*', 'FFFFFFFFFFFFFFFF'), pack('H*', '6B5C5A9C5D9E0A5A'))
|
58 |
+
);
|
59 |
+
|
60 |
+
$result = array();
|
61 |
+
|
62 |
+
foreach ($engines as $engine => $engineName) {
|
63 |
+
foreach ($tests as $test) {
|
64 |
+
$result[] = array($engine, $engineName, $test[0], $test[1], $test[2]);
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
return $result;
|
69 |
+
}
|
70 |
+
|
71 |
+
/**
|
72 |
+
* @dataProvider engineVectors
|
73 |
+
*/
|
74 |
+
public function testVectors($engine, $engineName, $key, $plaintext, $expected)
|
75 |
+
{
|
76 |
+
$bf = new Crypt_Blowfish();
|
77 |
+
$bf->setKey($key);
|
78 |
+
if (!$bf->isValidEngine($engine)) {
|
79 |
+
self::markTestSkipped('Unable to initialize ' . $engineName . ' engine');
|
80 |
+
}
|
81 |
+
$bf->setPreferredEngine($engine);
|
82 |
+
$bf->disablePadding();
|
83 |
+
$result = $bf->encrypt($plaintext);
|
84 |
+
$plaintext = bin2hex($plaintext);
|
85 |
+
$this->assertEquals($result, $expected, "Failed asserting that $plaintext yielded expected output in $engineName engine");
|
86 |
+
}
|
87 |
+
|
88 |
+
public function testKeySizes()
|
89 |
+
{
|
90 |
+
$objects = $engines = array();
|
91 |
+
$temp = new Crypt_Blowfish(CRYPT_MODE_CTR);
|
92 |
+
$temp->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
|
93 |
+
$objects[] = $temp;
|
94 |
+
$engines[] = 'internal';
|
95 |
+
|
96 |
+
if ($temp->isValidEngine(CRYPT_ENGINE_MCRYPT)) {
|
97 |
+
$temp = new Crypt_Blowfish(CRYPT_MODE_CTR);
|
98 |
+
$temp->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
|
99 |
+
$objects[] = $temp;
|
100 |
+
$engines[] = 'mcrypt';
|
101 |
+
}
|
102 |
+
|
103 |
+
if ($temp->isValidEngine(CRYPT_ENGINE_OPENSSL)) {
|
104 |
+
$temp = new Crypt_Blowfish(CRYPT_MODE_CTR);
|
105 |
+
$temp->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
|
106 |
+
$objects[] = $temp;
|
107 |
+
$engines[] = 'OpenSSL';
|
108 |
+
}
|
109 |
+
|
110 |
+
if (count($objects) < 2) {
|
111 |
+
self::markTestSkipped('Unable to initialize two or more engines');
|
112 |
+
}
|
113 |
+
|
114 |
+
for ($i = 0; $i < count($objects); $i++) {
|
115 |
+
$objects[$i]->setIV(str_repeat('x', $objects[$i]->getBlockLength() >> 3));
|
116 |
+
}
|
117 |
+
|
118 |
+
$plaintext = str_repeat('.', 100);
|
119 |
+
|
120 |
+
for ($keyLen = 4; $keyLen <= 56; $keyLen++) {
|
121 |
+
$key = crypt_random_string($keyLen);
|
122 |
+
$objects[0]->setKey($key);
|
123 |
+
$ref = $objects[0]->encrypt($plaintext);
|
124 |
+
for ($i = 1; $i < count($objects); $i++) {
|
125 |
+
$objects[$i]->setKey($key);
|
126 |
+
$this->assertEquals($ref, $objects[$i]->encrypt($plaintext), "Failed asserting that {$engines[$i]} yields the same output as the internal engine with a key size of $keyLen");
|
127 |
+
}
|
128 |
+
}
|
129 |
+
}
|
130 |
+
}
|
@@ -0,0 +1,77 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright MMXIII Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
require_once 'Crypt/DES.php';
|
9 |
+
|
10 |
+
// the AES tests establish the correctness of the modes of operation. this test is inteded to establish the consistency of
|
11 |
+
// key and iv padding between the multiple engines
|
12 |
+
class Unit_Crypt_DESTest extends PhpseclibTestCase
|
13 |
+
{
|
14 |
+
public function testEncryptPadding()
|
15 |
+
{
|
16 |
+
$des = new Crypt_DES(CRYPT_MODE_CBC);
|
17 |
+
$des->setKey('d');
|
18 |
+
$des->setIV('d');
|
19 |
+
|
20 |
+
$des->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
|
21 |
+
|
22 |
+
$result = pack('H*', '3e7613642049af1e');
|
23 |
+
|
24 |
+
$internal = $des->encrypt('d');
|
25 |
+
$this->assertEquals($result, $internal, 'Failed asserting that the internal engine produced the correct result');
|
26 |
+
|
27 |
+
$des->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
|
28 |
+
if ($des->getEngine() == CRYPT_ENGINE_MCRYPT) {
|
29 |
+
$mcrypt = $des->encrypt('d');
|
30 |
+
$this->assertEquals($result, $mcrypt, 'Failed asserting that the mcrypt engine produced the correct result');
|
31 |
+
} else {
|
32 |
+
self::markTestSkipped('Unable to initialize mcrypt engine');
|
33 |
+
}
|
34 |
+
|
35 |
+
$des->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
|
36 |
+
if ($des->getEngine() == CRYPT_ENGINE_OPENSSL) {
|
37 |
+
$openssl = $des->encrypt('d');
|
38 |
+
$this->assertEquals($result, $openssl, 'Failed asserting that the OpenSSL engine produced the correct result');
|
39 |
+
} else {
|
40 |
+
self::markTestSkipped('Unable to initialize OpenSSL engine');
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
// phpseclib null pads ciphertext's if they're not long enough and you're in ecb / cbc mode. this silent failure mode is consistent
|
45 |
+
// with mcrypt's behavior. maybe throwing an exception would be better but whatever. this test is more intended to establish consistent
|
46 |
+
// behavior between the various engine's
|
47 |
+
public function testDecryptPadding()
|
48 |
+
{
|
49 |
+
$des = new Crypt_DES(CRYPT_MODE_CBC);
|
50 |
+
$des->disablePadding();
|
51 |
+
// when the key and iv are not specified they should be null padded
|
52 |
+
//$des->setKey();
|
53 |
+
//$des->setIV();
|
54 |
+
|
55 |
+
$des->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
|
56 |
+
$internal = $des->decrypt('d');
|
57 |
+
|
58 |
+
$result = pack('H*', '79b305d1ce555221');
|
59 |
+
$this->assertEquals($result, $internal, 'Failed asserting that the internal engine produced the correct result');
|
60 |
+
|
61 |
+
$des->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
|
62 |
+
if ($des->getEngine() == CRYPT_ENGINE_MCRYPT) {
|
63 |
+
$mcrypt = $des->decrypt('d');
|
64 |
+
$this->assertEquals($result, $mcrypt, 'Failed asserting that the mcrypt engine produced the correct result');
|
65 |
+
} else {
|
66 |
+
self::markTestSkipped('Unable to initialize mcrypt engine');
|
67 |
+
}
|
68 |
+
|
69 |
+
$des->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
|
70 |
+
if ($des->getEngine() == CRYPT_ENGINE_OPENSSL) {
|
71 |
+
$openssl = $des->decrypt('d');
|
72 |
+
$this->assertEquals($result, $openssl, 'Failed asserting that the OpenSSL engine produced the correct result');
|
73 |
+
} else {
|
74 |
+
self::markTestSkipped('Unable to initialize OpenSSL engine');
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2012 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Unit_Crypt_Hash_MD5Test extends Unit_Crypt_Hash_TestCase
|
9 |
+
{
|
10 |
+
public function getInstance()
|
11 |
+
{
|
12 |
+
return new Crypt_Hash('md5');
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @dataProvider hashData()
|
17 |
+
*/
|
18 |
+
public function testHash($message, $result)
|
19 |
+
{
|
20 |
+
$this->assertHashesTo($this->getInstance(), $message, $result);
|
21 |
+
}
|
22 |
+
|
23 |
+
public static function hashData()
|
24 |
+
{
|
25 |
+
return array(
|
26 |
+
array('', 'd41d8cd98f00b204e9800998ecf8427e'),
|
27 |
+
array('The quick brown fox jumps over the lazy dog', '9e107d9d372bb6826bd81d3542a419d6'),
|
28 |
+
array('The quick brown fox jumps over the lazy dog.', 'e4d909c290d0fb1ca068ffaddf22cbd0'),
|
29 |
+
);
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* @dataProvider hmacData()
|
34 |
+
*/
|
35 |
+
public function testHMAC($key, $message, $result)
|
36 |
+
{
|
37 |
+
$this->assertHMACsTo($this->getInstance(), $key, $message, $result);
|
38 |
+
}
|
39 |
+
|
40 |
+
public static function hmacData()
|
41 |
+
{
|
42 |
+
return array(
|
43 |
+
array('', '', '74e6f7298a9c2d168935f58c001bad88'),
|
44 |
+
array('key', 'The quick brown fox jumps over the lazy dog', '80070713463e7749b90c2dc24911e275'),
|
45 |
+
);
|
46 |
+
}
|
47 |
+
}
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2014 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Unit_Crypt_Hash_SHA256Test extends Unit_Crypt_Hash_TestCase
|
9 |
+
{
|
10 |
+
public function getInstance()
|
11 |
+
{
|
12 |
+
return new Crypt_Hash('sha256');
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @dataProvider hashData()
|
17 |
+
*/
|
18 |
+
public function testHash($message, $result)
|
19 |
+
{
|
20 |
+
$this->assertHashesTo($this->getInstance(), $message, $result);
|
21 |
+
}
|
22 |
+
|
23 |
+
public static function hashData()
|
24 |
+
{
|
25 |
+
return array(
|
26 |
+
array(
|
27 |
+
'',
|
28 |
+
'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
|
29 |
+
),
|
30 |
+
array(
|
31 |
+
'The quick brown fox jumps over the lazy dog',
|
32 |
+
'd7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592',
|
33 |
+
),
|
34 |
+
array(
|
35 |
+
'The quick brown fox jumps over the lazy dog.',
|
36 |
+
'ef537f25c895bfa782526529a9b63d97aa631564d5d789c2b765448c8635fb6c',
|
37 |
+
),
|
38 |
+
);
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @dataProvider hmacData()
|
43 |
+
*/
|
44 |
+
public function testHMAC($key, $message, $result)
|
45 |
+
{
|
46 |
+
$this->assertHMACsTo($this->getInstance(), $key, $message, $result);
|
47 |
+
}
|
48 |
+
|
49 |
+
public static function hmacData()
|
50 |
+
{
|
51 |
+
return array(
|
52 |
+
// RFC 4231
|
53 |
+
// Test Case 1
|
54 |
+
array(
|
55 |
+
pack('H*', '0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'),
|
56 |
+
pack('H*', '4869205468657265'),
|
57 |
+
'b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7',
|
58 |
+
),
|
59 |
+
// Test Case 2
|
60 |
+
array(
|
61 |
+
pack('H*', '4a656665'),
|
62 |
+
pack('H*', '7768617420646f2079612077616e7420666f72206e6f7468696e673f'),
|
63 |
+
'5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843',
|
64 |
+
),
|
65 |
+
// Test Case 3
|
66 |
+
array(
|
67 |
+
pack('H*', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),
|
68 |
+
pack('H*', 'dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'),
|
69 |
+
'773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe',
|
70 |
+
),
|
71 |
+
// Test Case 4
|
72 |
+
array(
|
73 |
+
pack('H*', '0102030405060708090a0b0c0d0e0f10111213141516171819'),
|
74 |
+
pack('H*', 'cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'),
|
75 |
+
'82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b',
|
76 |
+
),
|
77 |
+
);
|
78 |
+
}
|
79 |
+
}
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2014 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Unit_Crypt_Hash_SHA256_96Test extends Unit_Crypt_Hash_SHA256Test
|
9 |
+
{
|
10 |
+
public function getInstance()
|
11 |
+
{
|
12 |
+
return new Crypt_Hash('sha256-96');
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @dataProvider hashData()
|
17 |
+
*/
|
18 |
+
public function testHash($message, $longResult)
|
19 |
+
{
|
20 |
+
parent::testHash($message, substr($longResult, 0, 24));
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @dataProvider hmacData()
|
25 |
+
*/
|
26 |
+
public function testHMAC($key, $message, $longResult)
|
27 |
+
{
|
28 |
+
parent::testHMAC($key, $message, substr($longResult, 0, 24));
|
29 |
+
}
|
30 |
+
}
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2014 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Unit_Crypt_Hash_SHA512Test extends Unit_Crypt_Hash_TestCase
|
9 |
+
{
|
10 |
+
public function getInstance()
|
11 |
+
{
|
12 |
+
return new Crypt_Hash('sha512');
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @dataProvider hashData()
|
17 |
+
*/
|
18 |
+
public function testHash($message, $result)
|
19 |
+
{
|
20 |
+
$this->assertHashesTo($this->getInstance(), $message, $result);
|
21 |
+
}
|
22 |
+
|
23 |
+
public static function hashData()
|
24 |
+
{
|
25 |
+
return array(
|
26 |
+
array(
|
27 |
+
'',
|
28 |
+
'cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e'
|
29 |
+
),
|
30 |
+
array(
|
31 |
+
'The quick brown fox jumps over the lazy dog',
|
32 |
+
'07e547d9586f6a73f73fbac0435ed76951218fb7d0c8d788a309d785436bbb642e93a252a954f23912547d1e8a3b5ed6e1bfd7097821233fa0538f3db854fee6',
|
33 |
+
),
|
34 |
+
array(
|
35 |
+
'The quick brown fox jumps over the lazy dog.',
|
36 |
+
'91ea1245f20d46ae9a037a989f54f1f790f0a47607eeb8a14d12890cea77a1bbc6c7ed9cf205e67b7f2b8fd4c7dfd3a7a8617e45f3c463d481c7e586c39ac1ed',
|
37 |
+
),
|
38 |
+
);
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @dataProvider hmacData()
|
43 |
+
*/
|
44 |
+
public function testHMAC($key, $message, $result)
|
45 |
+
{
|
46 |
+
$this->assertHMACsTo($this->getInstance(), $key, $message, $result);
|
47 |
+
}
|
48 |
+
|
49 |
+
public static function hmacData()
|
50 |
+
{
|
51 |
+
return array(
|
52 |
+
// RFC 4231
|
53 |
+
// Test Case 1
|
54 |
+
array(
|
55 |
+
pack('H*', '0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b'),
|
56 |
+
pack('H*', '4869205468657265'),
|
57 |
+
'87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854',
|
58 |
+
),
|
59 |
+
// Test Case 2
|
60 |
+
array(
|
61 |
+
pack('H*', '4a656665'),
|
62 |
+
pack('H*', '7768617420646f2079612077616e7420666f72206e6f7468696e673f'),
|
63 |
+
'164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737',
|
64 |
+
),
|
65 |
+
// Test Case 3
|
66 |
+
array(
|
67 |
+
pack('H*', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),
|
68 |
+
pack('H*', 'dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd'),
|
69 |
+
'fa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fb',
|
70 |
+
),
|
71 |
+
// Test Case 4
|
72 |
+
array(
|
73 |
+
pack('H*', '0102030405060708090a0b0c0d0e0f10111213141516171819'),
|
74 |
+
pack('H*', 'cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd'),
|
75 |
+
'b0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3dba91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dd',
|
76 |
+
),
|
77 |
+
);
|
78 |
+
}
|
79 |
+
}
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2014 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Unit_Crypt_Hash_SHA512_96Test extends Unit_Crypt_Hash_SHA512Test
|
9 |
+
{
|
10 |
+
public function getInstance()
|
11 |
+
{
|
12 |
+
return new Crypt_Hash('sha512-96');
|
13 |
+
}
|
14 |
+
|
15 |
+
/**
|
16 |
+
* @dataProvider hashData()
|
17 |
+
*/
|
18 |
+
public function testHash($message, $longResult)
|
19 |
+
{
|
20 |
+
parent::testHash($message, substr($longResult, 0, 24));
|
21 |
+
}
|
22 |
+
|
23 |
+
/**
|
24 |
+
* @dataProvider hmacData()
|
25 |
+
*/
|
26 |
+
public function testHMAC($key, $message, $longResult)
|
27 |
+
{
|
28 |
+
parent::testHMAC($key, $message, substr($longResult, 0, 24));
|
29 |
+
}
|
30 |
+
}
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2012 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
require_once 'Crypt/Hash.php';
|
9 |
+
|
10 |
+
abstract class Unit_Crypt_Hash_TestCase extends PhpseclibTestCase
|
11 |
+
{
|
12 |
+
public static function setUpBeforeClass()
|
13 |
+
{
|
14 |
+
if (!defined('CRYPT_HASH_MODE')) {
|
15 |
+
define('CRYPT_HASH_MODE', CRYPT_HASH_MODE_INTERNAL);
|
16 |
+
}
|
17 |
+
}
|
18 |
+
|
19 |
+
public function setUp()
|
20 |
+
{
|
21 |
+
if (defined('CRYPT_HASH_MODE') && CRYPT_HASH_MODE !== CRYPT_HASH_MODE_INTERNAL) {
|
22 |
+
$this->markTestSkipped(
|
23 |
+
'Skipping test because CRYPT_HASH_MODE is not defined as CRYPT_HASH_MODE_INTERNAL.'
|
24 |
+
);
|
25 |
+
}
|
26 |
+
}
|
27 |
+
|
28 |
+
protected function assertHashesTo(Crypt_Hash $hash, $message, $expected)
|
29 |
+
{
|
30 |
+
$this->assertEquals(
|
31 |
+
strtolower($expected),
|
32 |
+
bin2hex($hash->hash($message)),
|
33 |
+
sprintf("Failed asserting that '%s' hashes to '%s'.", $message, $expected)
|
34 |
+
);
|
35 |
+
}
|
36 |
+
|
37 |
+
protected function assertHMACsTo(Crypt_Hash $hash, $key, $message, $expected)
|
38 |
+
{
|
39 |
+
$hash->setKey($key);
|
40 |
+
|
41 |
+
$this->assertEquals(
|
42 |
+
strtolower($expected),
|
43 |
+
bin2hex($hash->hash($message)),
|
44 |
+
sprintf(
|
45 |
+
"Failed asserting that '%s' HMACs to '%s' with key '%s'.",
|
46 |
+
$message,
|
47 |
+
$expected,
|
48 |
+
$key
|
49 |
+
)
|
50 |
+
);
|
51 |
+
}
|
52 |
+
}
|
@@ -0,0 +1,127 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright MMXIII Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
require_once 'Crypt/RC2.php';
|
9 |
+
|
10 |
+
class Unit_Crypt_RC2Test extends PhpseclibTestCase
|
11 |
+
{
|
12 |
+
var $engines = array(
|
13 |
+
CRYPT_ENGINE_INTERNAL => 'internal',
|
14 |
+
CRYPT_ENGINE_MCRYPT => 'mcrypt',
|
15 |
+
CRYPT_ENGINE_OPENSSL => 'OpenSSL',
|
16 |
+
);
|
17 |
+
|
18 |
+
public function engineVectors()
|
19 |
+
{
|
20 |
+
// tests from https://tools.ietf.org/html/rfc2268#page-8
|
21 |
+
$tests = array(
|
22 |
+
// key, effective key length, plaintext, ciphertext
|
23 |
+
array('0000000000000000', 63, '0000000000000000', 'ebb773f993278eff'),
|
24 |
+
array('ffffffffffffffff', 64, 'ffffffffffffffff', '278b27e42e2f0d49'),
|
25 |
+
array('3000000000000000', 64, '1000000000000001', '30649edf9be7d2c2'),
|
26 |
+
array('88', 64, '0000000000000000', '61a8a244adacccf0'),
|
27 |
+
array('88bca90e90875a', 64, '0000000000000000', '6ccf4308974c267f'),
|
28 |
+
array('88bca90e90875a7f0f79c384627bafb2', 64, '0000000000000000', '1a807d272bbe5db1'),
|
29 |
+
array('88bca90e90875a7f0f79c384627bafb2', 128, '0000000000000000', '2269552ab0f85ca6'),
|
30 |
+
array('88bca90e90875a7f0f79c384627bafb216f80a6f85920584c42fceb0be255daf1e', 129, '0000000000000000', '5b78d3a43dfff1f1')
|
31 |
+
);
|
32 |
+
|
33 |
+
$result = array();
|
34 |
+
|
35 |
+
foreach ($this->engines as $engine => $engineName) {
|
36 |
+
foreach ($tests as $test) {
|
37 |
+
$result[] = array($engine, $engineName, $test[0], $test[1], $test[2], $test[3]);
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
return $result;
|
42 |
+
}
|
43 |
+
|
44 |
+
// this test is just confirming RC2's key expansion
|
45 |
+
public function testEncryptPadding()
|
46 |
+
{
|
47 |
+
$rc2 = new Crypt_RC2(CRYPT_MODE_ECB);
|
48 |
+
|
49 |
+
// unlike Crypt_AES / Crypt_Rijndael, when you tell Crypt_RC2 that the key length is 128-bits the key isn't null padded to that length.
|
50 |
+
// instead, RC2 key expansion is used to extend it out to that length. this isn't done for AES / Rijndael since that doesn't define any
|
51 |
+
// sort of key expansion algorithm.
|
52 |
+
|
53 |
+
// admittedly, phpseclib is inconsistent in this regard. RC4 and Blowfish support arbitrary key lengths between a certain range, as well,
|
54 |
+
// and they don't have any way to set the key length. but then again, neither do those algorithms have their own key expansion algorithm,
|
55 |
+
// whereas RC2 does. and technically, AES / Rijndael (and even Twofish) don't support arbitrary key lengths - they support variable key
|
56 |
+
// lengths. so in some ways, i suppose this inconsistency somewhat makes sense, although the fact that Crypt_Twofish doesn't have a
|
57 |
+
// setKeyLength() function whereas Crypt_AES / Crypt_Rijndael do not is, itself, an inconsistency.
|
58 |
+
|
59 |
+
// but that said, Crypt_RC2 is inconsistent in other ways: if you pass a 128-bit (16-byte) key to it via setKey() the key is not treated
|
60 |
+
// as a 128-bit key but rather as a 1024-bit key and is expanded accordingly, not via null padding, but via RC2's key expansion algorithm.
|
61 |
+
|
62 |
+
// this behavior is in contrast to mcrypt, which extends keys via null padding to 1024 bits. it is also in contrast to OpenSSL, which
|
63 |
+
// extends keys, via null padding, to 128 bits. mcrypt's approach seems preferable as one can simulate 128 bit keys by using RC2's
|
64 |
+
// key expansion algorithm to extend the key to 1024 bits and then changing the first byte of the new key with an inverse pitable mapping.
|
65 |
+
// in contrast, to my knowledge, there is no technique for expanding a key less than 128 bits to 128 bits, via RC2 key expansion. the only
|
66 |
+
// scenario in that regard is null padding.
|
67 |
+
|
68 |
+
// simple truncation is insufficient, since, quoting RFC2268, "the purpose of the key-expansion algorithm [in RC2] is to modify the key buffer
|
69 |
+
// so that each bit of the expanded key depends in a complicated way on every bit of the supplied input key".
|
70 |
+
|
71 |
+
// now, to OpenSSL's credit, null padding is internally consistent with OpenSSL. OpenSSL only supports fixed length keys. For rc2, rc4 and
|
72 |
+
// bf (blowfish), all keys are 128 bits (or are null padded / truncated accordingly). to use 40-bit or 64-bit keys with RC4 with OpenSSL you
|
73 |
+
// don't use the rc4 algorithm - you use the rc4-40 or rc4-64 algorithm. and similarly, it's not aes-cbc that you use - it's either aes-128-cbc
|
74 |
+
// or aes-192-cbc or aes-256-cbc. this is in contrast to mcrypt, which (with the exception of RC2) actually supports variable and arbitrary
|
75 |
+
// length keys.
|
76 |
+
|
77 |
+
// superficially, it seens like Rijndael would be another exception to mcrypt's key length handling, but it in fact is not. the reason being that,
|
78 |
+
// with mcrypt, when you specify MCRYPT_RIJNDAEL_128 or MCRYPT_RIJNDAEL_192 or MCRYPT_RIJNDAEL_256 the numbers at the end aren't referring to the
|
79 |
+
// key length, but rather, the block length. ie. Rijndael, unlike most block ciphers, doesn't just have a variable (but not arbitrary) key length -
|
80 |
+
// it also has a variable block length. AES's block length, however, is not variable, so technically, only MCRYPT_RIJNDAEL_128 is AES.
|
81 |
+
|
82 |
+
$rc2->setKey(str_repeat('d', 16), 128);
|
83 |
+
|
84 |
+
$rc2->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
|
85 |
+
$internal = $rc2->encrypt('d');
|
86 |
+
|
87 |
+
$result = pack('H*', 'e3b36057f4821346');
|
88 |
+
$this->assertEquals($result, $internal, 'Failed asserting that the internal engine produced the correct result');
|
89 |
+
|
90 |
+
$rc2->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
|
91 |
+
if ($rc2->getEngine() == CRYPT_ENGINE_MCRYPT) {
|
92 |
+
$mcrypt = $rc2->encrypt('d');
|
93 |
+
$this->assertEquals($result, $mcrypt, 'Failed asserting that the mcrypt engine produced the correct result');
|
94 |
+
} else {
|
95 |
+
self::markTestSkipped('Unable to initialize mcrypt engine');
|
96 |
+
}
|
97 |
+
|
98 |
+
$rc2->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
|
99 |
+
if ($rc2->getEngine() == CRYPT_ENGINE_OPENSSL) {
|
100 |
+
$openssl = $rc2->encrypt('d');
|
101 |
+
$this->assertEquals($result, $openssl, 'Failed asserting that the OpenSSL engine produced the correct result');
|
102 |
+
} else {
|
103 |
+
self::markTestSkipped('Unable to initialize OpenSSL engine');
|
104 |
+
}
|
105 |
+
}
|
106 |
+
|
107 |
+
/**
|
108 |
+
* @dataProvider engineVectors
|
109 |
+
*/
|
110 |
+
public function testVectors($engine, $engineName, $key, $keyLen, $plaintext, $ciphertext)
|
111 |
+
{
|
112 |
+
$rc2 = new Crypt_RC2();
|
113 |
+
$rc2->disablePadding();
|
114 |
+
$rc2->setKeyLength($keyLen);
|
115 |
+
$rc2->setKey(pack('H*', $key)); // could also do $rc2->setKey(pack('H*', $key), $keyLen)
|
116 |
+
if (!$rc2->isValidEngine($engine)) {
|
117 |
+
self::markTestSkipped('Unable to initialize ' . $engineName . ' engine');
|
118 |
+
}
|
119 |
+
$rc2->setPreferredEngine($engine);
|
120 |
+
|
121 |
+
$result = bin2hex($rc2->encrypt(pack('H*', $plaintext)));
|
122 |
+
$this->assertEquals($result, $ciphertext, "Failed asserting that $plaintext yielded expected output in $engineName engine");
|
123 |
+
|
124 |
+
$result = bin2hex($rc2->decrypt(pack('H*', $ciphertext)));
|
125 |
+
$this->assertEquals($result, $plaintext, "Failed asserting that decrypted result yielded $plaintext as a result in $engineName engine");
|
126 |
+
}
|
127 |
+
}
|
@@ -0,0 +1,250 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Jim Wigginton <terrafrost@php.net>
|
4 |
+
* @copyright 2014 Jim Wigginton
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
require_once 'Crypt/RC4.php';
|
9 |
+
|
10 |
+
class Unit_Crypt_RC4Test extends PhpseclibTestCase
|
11 |
+
{
|
12 |
+
public function engineVectors()
|
13 |
+
{
|
14 |
+
$engines = array(
|
15 |
+
CRYPT_ENGINE_INTERNAL => 'internal',
|
16 |
+
CRYPT_ENGINE_MCRYPT => 'mcrypt',
|
17 |
+
CRYPT_ENGINE_OPENSSL => 'OpenSSL',
|
18 |
+
);
|
19 |
+
// tests from https://tools.ietf.org/html/rfc6229
|
20 |
+
$tests = array(
|
21 |
+
array(
|
22 |
+
'key' => pack('H*', '0102030405'), // 40-bit key
|
23 |
+
'output' => array(
|
24 |
+
array('offset' => 0, 'result' => 'b2396305f03dc027ccc3524a0a1118a8'),
|
25 |
+
array('offset' => 16, 'result' => '6982944f18fc82d589c403a47a0d0919'),
|
26 |
+
array('offset' => 240, 'result' => '28cb1132c96ce286421dcaadb8b69eae'),
|
27 |
+
array('offset' => 256, 'result' => '1cfcf62b03eddb641d77dfcf7f8d8c93'),
|
28 |
+
array('offset' => 496, 'result' => '42b7d0cdd918a8a33dd51781c81f4041'),
|
29 |
+
array('offset' => 512, 'result' => '6459844432a7da923cfb3eb4980661f6'),
|
30 |
+
array('offset' => 752, 'result' => 'ec10327bde2beefd18f9277680457e22'),
|
31 |
+
array('offset' => 768, 'result' => 'eb62638d4f0ba1fe9fca20e05bf8ff2b'),
|
32 |
+
array('offset' => 1008, 'result' => '45129048e6a0ed0b56b490338f078da5'),
|
33 |
+
array('offset' => 1024, 'result' => '30abbcc7c20b01609f23ee2d5f6bb7df'),
|
34 |
+
array('offset' => 1520, 'result' => '3294f744d8f9790507e70f62e5bbceea'),
|
35 |
+
array('offset' => 1536, 'result' => 'd8729db41882259bee4f825325f5a130'),
|
36 |
+
array('offset' => 2032, 'result' => '1eb14a0c13b3bf47fa2a0ba93ad45b8b'),
|
37 |
+
array('offset' => 2048, 'result' => 'cc582f8ba9f265e2b1be9112e975d2d7'),
|
38 |
+
array('offset' => 3056, 'result' => 'f2e30f9bd102ecbf75aaade9bc35c43c'),
|
39 |
+
array('offset' => 3072, 'result' => 'ec0e11c479dc329dc8da7968fe965681'),
|
40 |
+
array('offset' => 4080, 'result' => '068326a2118416d21f9d04b2cd1ca050'),
|
41 |
+
array('offset' => 4096, 'result' => 'ff25b58995996707e51fbdf08b34d875')
|
42 |
+
)
|
43 |
+
),
|
44 |
+
array(
|
45 |
+
'key' => pack('H*', '01020304050607'), // 56-bit key
|
46 |
+
'output' => array(
|
47 |
+
array('offset' => 0, 'result' => '293f02d47f37c9b633f2af5285feb46b'),
|
48 |
+
array('offset' => 16, 'result' => 'e620f1390d19bd84e2e0fd752031afc1'),
|
49 |
+
array('offset' => 240, 'result' => '914f02531c9218810df60f67e338154c'),
|
50 |
+
array('offset' => 256, 'result' => 'd0fdb583073ce85ab83917740ec011d5'),
|
51 |
+
array('offset' => 496, 'result' => '75f81411e871cffa70b90c74c592e454'),
|
52 |
+
array('offset' => 512, 'result' => '0bb87202938dad609e87a5a1b079e5e4'),
|
53 |
+
array('offset' => 752, 'result' => 'c2911246b612e7e7b903dfeda1dad866'),
|
54 |
+
array('offset' => 768, 'result' => '32828f91502b6291368de8081de36fc2'),
|
55 |
+
array('offset' => 1008, 'result' => 'f3b9a7e3b297bf9ad804512f9063eff1'),
|
56 |
+
array('offset' => 1024, 'result' => '8ecb67a9ba1f55a5a067e2b026a3676f'),
|
57 |
+
array('offset' => 1520, 'result' => 'd2aa902bd42d0d7cfd340cd45810529f'),
|
58 |
+
array('offset' => 1536, 'result' => '78b272c96e42eab4c60bd914e39d06e3'),
|
59 |
+
array('offset' => 2032, 'result' => 'f4332fd31a079396ee3cee3f2a4ff049'),
|
60 |
+
array('offset' => 2048, 'result' => '05459781d41fda7f30c1be7e1246c623'),
|
61 |
+
array('offset' => 3056, 'result' => 'adfd3868b8e51485d5e610017e3dd609'),
|
62 |
+
array('offset' => 3072, 'result' => 'ad26581c0c5be45f4cea01db2f3805d5'),
|
63 |
+
array('offset' => 4080, 'result' => 'f3172ceffc3b3d997c85ccd5af1a950c'),
|
64 |
+
array('offset' => 4096, 'result' => 'e74b0b9731227fd37c0ec08a47ddd8b8')
|
65 |
+
)
|
66 |
+
),
|
67 |
+
array(
|
68 |
+
'key' => pack('H*', '0102030405060708'), // 64-bit key
|
69 |
+
'output' => array(
|
70 |
+
array('offset' => 0, 'result' => '97ab8a1bf0afb96132f2f67258da15a8'),
|
71 |
+
array('offset' => 16, 'result' => '8263efdb45c4a18684ef87e6b19e5b09'),
|
72 |
+
array('offset' => 240, 'result' => '9636ebc9841926f4f7d1f362bddf6e18'),
|
73 |
+
array('offset' => 256, 'result' => 'd0a990ff2c05fef5b90373c9ff4b870a'),
|
74 |
+
array('offset' => 496, 'result' => '73239f1db7f41d80b643c0c52518ec63'),
|
75 |
+
array('offset' => 512, 'result' => '163b319923a6bdb4527c626126703c0f'),
|
76 |
+
array('offset' => 752, 'result' => '49d6c8af0f97144a87df21d91472f966'),
|
77 |
+
array('offset' => 768, 'result' => '44173a103b6616c5d5ad1cee40c863d0'),
|
78 |
+
array('offset' => 1008, 'result' => '273c9c4b27f322e4e716ef53a47de7a4'),
|
79 |
+
array('offset' => 1024, 'result' => 'c6d0e7b226259fa9023490b26167ad1d'),
|
80 |
+
array('offset' => 1520, 'result' => '1fe8986713f07c3d9ae1c163ff8cf9d3'),
|
81 |
+
array('offset' => 1536, 'result' => '8369e1a965610be887fbd0c79162aafb'),
|
82 |
+
array('offset' => 2032, 'result' => '0a0127abb44484b9fbef5abcae1b579f'),
|
83 |
+
array('offset' => 2048, 'result' => 'c2cdadc6402e8ee866e1f37bdb47e42c'),
|
84 |
+
array('offset' => 3056, 'result' => '26b51ea37df8e1d6f76fc3b66a7429b3'),
|
85 |
+
array('offset' => 3072, 'result' => 'bc7683205d4f443dc1f29dda3315c87b'),
|
86 |
+
array('offset' => 4080, 'result' => 'd5fa5a3469d29aaaf83d23589db8c85b'),
|
87 |
+
array('offset' => 4096, 'result' => '3fb46e2c8f0f068edce8cdcd7dfc5862')
|
88 |
+
)
|
89 |
+
),
|
90 |
+
array(
|
91 |
+
'key' => pack('H*', '0102030405060708090a'), // 80-bit key
|
92 |
+
'output' => array(
|
93 |
+
array('offset' => 0, 'result' => 'ede3b04643e586cc907dc21851709902'),
|
94 |
+
array('offset' => 16, 'result' => '03516ba78f413beb223aa5d4d2df6711'),
|
95 |
+
array('offset' => 240, 'result' => '3cfd6cb58ee0fdde640176ad0000044d'),
|
96 |
+
array('offset' => 256, 'result' => '48532b21fb6079c9114c0ffd9c04a1ad'),
|
97 |
+
array('offset' => 496, 'result' => '3e8cea98017109979084b1ef92f99d86'),
|
98 |
+
array('offset' => 512, 'result' => 'e20fb49bdb337ee48b8d8dc0f4afeffe'),
|
99 |
+
array('offset' => 752, 'result' => '5c2521eacd7966f15e056544bea0d315'),
|
100 |
+
array('offset' => 768, 'result' => 'e067a7031931a246a6c3875d2f678acb'),
|
101 |
+
array('offset' => 1008, 'result' => 'a64f70af88ae56b6f87581c0e23e6b08'),
|
102 |
+
array('offset' => 1024, 'result' => 'f449031de312814ec6f319291f4a0516'),
|
103 |
+
array('offset' => 1520, 'result' => 'bdae85924b3cb1d0a2e33a30c6d79599'),
|
104 |
+
array('offset' => 1536, 'result' => '8a0feddbac865a09bcd127fb562ed60a'),
|
105 |
+
array('offset' => 2032, 'result' => 'b55a0a5b51a12a8be34899c3e047511a'),
|
106 |
+
array('offset' => 2048, 'result' => 'd9a09cea3ce75fe39698070317a71339'),
|
107 |
+
array('offset' => 3056, 'result' => '552225ed1177f44584ac8cfa6c4eb5fc'),
|
108 |
+
array('offset' => 3072, 'result' => '7e82cbabfc95381b080998442129c2f8'),
|
109 |
+
array('offset' => 4080, 'result' => '1f135ed14ce60a91369d2322bef25e3c'),
|
110 |
+
array('offset' => 4096, 'result' => '08b6be45124a43e2eb77953f84dc8553')
|
111 |
+
)
|
112 |
+
),
|
113 |
+
array(
|
114 |
+
'key' => pack('H*', '0102030405060708090a0b0c0d0e0f10'), // 128-bit key
|
115 |
+
'output' => array(
|
116 |
+
array('offset' => 0, 'result' => '9ac7cc9a609d1ef7b2932899cde41b97'),
|
117 |
+
array('offset' => 16, 'result' => '5248c4959014126a6e8a84f11d1a9e1c'),
|
118 |
+
array('offset' => 240, 'result' => '065902e4b620f6cc36c8589f66432f2b'),
|
119 |
+
array('offset' => 256, 'result' => 'd39d566bc6bce3010768151549f3873f'),
|
120 |
+
array('offset' => 496, 'result' => 'b6d1e6c4a5e4771cad79538df295fb11'),
|
121 |
+
array('offset' => 512, 'result' => 'c68c1d5c559a974123df1dbc52a43b89'),
|
122 |
+
array('offset' => 752, 'result' => 'c5ecf88de897fd57fed301701b82a259'),
|
123 |
+
array('offset' => 768, 'result' => 'eccbe13de1fcc91c11a0b26c0bc8fa4d'),
|
124 |
+
array('offset' => 1008, 'result' => 'e7a72574f8782ae26aabcf9ebcd66065'),
|
125 |
+
array('offset' => 1024, 'result' => 'bdf0324e6083dcc6d3cedd3ca8c53c16'),
|
126 |
+
array('offset' => 1520, 'result' => 'b40110c4190b5622a96116b0017ed297'),
|
127 |
+
array('offset' => 1536, 'result' => 'ffa0b514647ec04f6306b892ae661181'),
|
128 |
+
array('offset' => 2032, 'result' => 'd03d1bc03cd33d70dff9fa5d71963ebd'),
|
129 |
+
array('offset' => 2048, 'result' => '8a44126411eaa78bd51e8d87a8879bf5'),
|
130 |
+
array('offset' => 3056, 'result' => 'fabeb76028ade2d0e48722e46c4615a3'),
|
131 |
+
array('offset' => 3072, 'result' => 'c05d88abd50357f935a63c59ee537623'),
|
132 |
+
array('offset' => 4080, 'result' => 'ff38265c1642c1abe8d3c2fe5e572bf8'),
|
133 |
+
array('offset' => 4096, 'result' => 'a36a4c301ae8ac13610ccbc12256cacc')
|
134 |
+
)
|
135 |
+
),
|
136 |
+
array(
|
137 |
+
'key' => pack('H*', '0102030405060708090a0b0c0d0e0f101112131415161718'), // 192-bit key
|
138 |
+
'output' => array(
|
139 |
+
array('offset' => 0, 'result' => '0595e57fe5f0bb3c706edac8a4b2db11'),
|
140 |
+
array('offset' => 16, 'result' => 'dfde31344a1af769c74f070aee9e2326'),
|
141 |
+
array('offset' => 240, 'result' => 'b06b9b1e195d13d8f4a7995c4553ac05'),
|
142 |
+
array('offset' => 256, 'result' => '6bd2378ec341c9a42f37ba79f88a32ff'),
|
143 |
+
array('offset' => 496, 'result' => 'e70bce1df7645adb5d2c4130215c3522'),
|
144 |
+
array('offset' => 512, 'result' => '9a5730c7fcb4c9af51ffda89c7f1ad22'),
|
145 |
+
array('offset' => 752, 'result' => '0485055fd4f6f0d963ef5ab9a5476982'),
|
146 |
+
array('offset' => 768, 'result' => '591fc66bcda10e452b03d4551f6b62ac'),
|
147 |
+
array('offset' => 1008, 'result' => '2753cc83988afa3e1688a1d3b42c9a02'),
|
148 |
+
array('offset' => 1024, 'result' => '93610d523d1d3f0062b3c2a3bbc7c7f0'),
|
149 |
+
array('offset' => 1520, 'result' => '96c248610aadedfeaf8978c03de8205a'),
|
150 |
+
array('offset' => 1536, 'result' => '0e317b3d1c73b9e9a4688f296d133a19'),
|
151 |
+
array('offset' => 2032, 'result' => 'bdf0e6c3cca5b5b9d533b69c56ada120'),
|
152 |
+
array('offset' => 2048, 'result' => '88a218b6e2ece1e6246d44c759d19b10'),
|
153 |
+
array('offset' => 3056, 'result' => '6866397e95c140534f94263421006e40'),
|
154 |
+
array('offset' => 3072, 'result' => '32cb0a1e9542c6b3b8b398abc3b0f1d5'),
|
155 |
+
array('offset' => 4080, 'result' => '29a0b8aed54a132324c62e423f54b4c8'),
|
156 |
+
array('offset' => 4096, 'result' => '3cb0f3b5020a98b82af9fe154484a168')
|
157 |
+
)
|
158 |
+
),
|
159 |
+
array(
|
160 |
+
'key' => pack('H*', '0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20'), // 256-bit key
|
161 |
+
'output' => array(
|
162 |
+
array('offset' => 0, 'result' => 'eaa6bd25880bf93d3f5d1e4ca2611d91'),
|
163 |
+
array('offset' => 16, 'result' => 'cfa45c9f7e714b54bdfa80027cb14380'),
|
164 |
+
array('offset' => 240, 'result' => '114ae344ded71b35f2e60febad727fd8'),
|
165 |
+
array('offset' => 256, 'result' => '02e1e7056b0f623900496422943e97b6'),
|
166 |
+
array('offset' => 496, 'result' => '91cb93c787964e10d9527d999c6f936b'),
|
167 |
+
array('offset' => 512, 'result' => '49b18b42f8e8367cbeb5ef104ba1c7cd'),
|
168 |
+
array('offset' => 752, 'result' => '87084b3ba700bade955610672745b374'),
|
169 |
+
array('offset' => 768, 'result' => 'e7a7b9e9ec540d5ff43bdb12792d1b35'),
|
170 |
+
array('offset' => 1008, 'result' => 'c799b596738f6b018c76c74b1759bd90'),
|
171 |
+
array('offset' => 1024, 'result' => '7fec5bfd9f9b89ce6548309092d7e958'),
|
172 |
+
array('offset' => 1520, 'result' => '40f250b26d1f096a4afd4c340a588815'),
|
173 |
+
array('offset' => 1536, 'result' => '3e34135c79db010200767651cf263073'),
|
174 |
+
array('offset' => 2032, 'result' => 'f656abccf88dd827027b2ce917d464ec'),
|
175 |
+
array('offset' => 2048, 'result' => '18b62503bfbc077fbabb98f20d98ab34'),
|
176 |
+
array('offset' => 3056, 'result' => '8aed95ee5b0dcbfbef4eb21d3a3f52f9'),
|
177 |
+
array('offset' => 3072, 'result' => '625a1ab00ee39a5327346bddb01a9c18'),
|
178 |
+
array('offset' => 4080, 'result' => 'a13a7c79c7e119b5ab0296ab28c300b9'),
|
179 |
+
array('offset' => 4096, 'result' => 'f3e4c0a2e02d1d01f7f0a74618af2b48')
|
180 |
+
)
|
181 |
+
)
|
182 |
+
);
|
183 |
+
|
184 |
+
$result = array();
|
185 |
+
|
186 |
+
foreach ($engines as $engine => $engineName) {
|
187 |
+
foreach ($tests as $test) {
|
188 |
+
foreach ($test['output'] as $output) {
|
189 |
+
$result[] = array($engine, $engineName, $test['key'], $output['offset'], $output['result']);
|
190 |
+
}
|
191 |
+
}
|
192 |
+
}
|
193 |
+
|
194 |
+
return $result;
|
195 |
+
}
|
196 |
+
|
197 |
+
/**
|
198 |
+
* @dataProvider engineVectors
|
199 |
+
*/
|
200 |
+
public function testVectors($engine, $engineName, $key, $offset, $expected)
|
201 |
+
{
|
202 |
+
$rc4 = new Crypt_RC4();
|
203 |
+
$rc4->setPreferredEngine($engine);
|
204 |
+
$rc4->setKey($key);
|
205 |
+
if ($rc4->getEngine() != $engine) {
|
206 |
+
self::markTestSkipped('Unable to initialize ' . $engineName . ' engine for ' . (strlen($key) * 8) . '-bit key');
|
207 |
+
}
|
208 |
+
$result = $rc4->encrypt(str_repeat("\0", $offset + 16));
|
209 |
+
$this->assertEquals(bin2hex(substr($result, -16)), $expected, "Failed asserting that key $key yielded expected output at offset $offset in $engineName engine");
|
210 |
+
}
|
211 |
+
|
212 |
+
public function testKeySizes()
|
213 |
+
{
|
214 |
+
$objects = $engines = array();
|
215 |
+
$temp = new Crypt_RC4(CRYPT_MODE_CTR);
|
216 |
+
$temp->setPreferredEngine(CRYPT_ENGINE_INTERNAL);
|
217 |
+
$objects[] = $temp;
|
218 |
+
$engines[] = 'internal';
|
219 |
+
|
220 |
+
if ($temp->isValidEngine(CRYPT_ENGINE_MCRYPT)) {
|
221 |
+
$temp = new Crypt_RC4(CRYPT_MODE_CTR);
|
222 |
+
$temp->setPreferredEngine(CRYPT_ENGINE_MCRYPT);
|
223 |
+
$objects[] = $temp;
|
224 |
+
$engines[] = 'mcrypt';
|
225 |
+
}
|
226 |
+
|
227 |
+
if ($temp->isValidEngine(CRYPT_ENGINE_OPENSSL)) {
|
228 |
+
$temp = new Crypt_RC4(CRYPT_MODE_CTR);
|
229 |
+
$temp->setPreferredEngine(CRYPT_ENGINE_OPENSSL);
|
230 |
+
$objects[] = $temp;
|
231 |
+
$engines[] = 'OpenSSL';
|
232 |
+
}
|
233 |
+
|
234 |
+
if (count($objects) < 2) {
|
235 |
+
self::markTestSkipped('Unable to initialize two or more engines');
|
236 |
+
}
|
237 |
+
|
238 |
+
$plaintext = str_repeat('.', 100);
|
239 |
+
|
240 |
+
for ($keyLen = 5; $keyLen <= 256; $keyLen++) {
|
241 |
+
$key = crypt_random_string($keyLen);
|
242 |
+
$objects[0]->setKey($key);
|
243 |
+
$ref = $objects[0]->encrypt($plaintext);
|
244 |
+
for ($i = 1; $i < count($objects); $i++) {
|
245 |
+
$objects[$i]->setKey($key);
|
246 |
+
$this->assertEquals($ref, $objects[$i]->encrypt($plaintext), "Failed asserting that {$engines[$i]} yields the same output as the internal engine with a key size of $keyLen");
|
247 |
+
}
|
248 |
+
}
|
249 |
+
}
|
250 |
+
}
|
@@ -0,0 +1,422 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Jim Wigginton <terrafrost@php.net>
|
4 |
+
* @copyright 2013 Jim Wigginton
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
require_once 'Crypt/RSA.php' ;
|
9 |
+
|
10 |
+
class Unit_Crypt_RSA_LoadKeyTest extends PhpseclibTestCase
|
11 |
+
{
|
12 |
+
public function testBadKey()
|
13 |
+
{
|
14 |
+
$rsa = new Crypt_RSA();
|
15 |
+
|
16 |
+
$key = 'zzzzzzzzzzzzzz';
|
17 |
+
|
18 |
+
$this->assertFalse($rsa->loadKey($key));
|
19 |
+
}
|
20 |
+
|
21 |
+
public function testPKCS1Key()
|
22 |
+
{
|
23 |
+
$rsa = new Crypt_RSA();
|
24 |
+
|
25 |
+
$key = '-----BEGIN RSA PRIVATE KEY-----
|
26 |
+
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
27 |
+
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
|
28 |
+
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
|
29 |
+
3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
|
30 |
+
pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
|
31 |
+
GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
|
32 |
+
AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
|
33 |
+
L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
|
34 |
+
X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
|
35 |
+
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
|
36 |
+
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
|
37 |
+
-----END RSA PRIVATE KEY-----';
|
38 |
+
|
39 |
+
$this->assertTrue($rsa->loadKey($key));
|
40 |
+
$this->assertInternalType('string', $rsa->getPrivateKey());
|
41 |
+
}
|
42 |
+
|
43 |
+
public function testPKCS1SpacesKey()
|
44 |
+
{
|
45 |
+
$rsa = new Crypt_RSA();
|
46 |
+
|
47 |
+
$key = '-----BEGIN RSA PRIVATE KEY-----
|
48 |
+
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
49 |
+
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
|
50 |
+
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
|
51 |
+
3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
|
52 |
+
pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
|
53 |
+
GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
|
54 |
+
AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
|
55 |
+
L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
|
56 |
+
X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
|
57 |
+
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
|
58 |
+
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
|
59 |
+
-----END RSA PRIVATE KEY-----';
|
60 |
+
$key = str_replace(array("\r", "\n", "\r\n"), ' ', $key);
|
61 |
+
|
62 |
+
$this->assertTrue($rsa->loadKey($key));
|
63 |
+
$this->assertInternalType('string', $rsa->getPrivateKey());
|
64 |
+
}
|
65 |
+
|
66 |
+
public function testPKCS1NoHeaderKey()
|
67 |
+
{
|
68 |
+
$rsa = new Crypt_RSA();
|
69 |
+
|
70 |
+
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
71 |
+
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
|
72 |
+
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
|
73 |
+
3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
|
74 |
+
pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
|
75 |
+
GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
|
76 |
+
AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
|
77 |
+
L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
|
78 |
+
X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
|
79 |
+
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
|
80 |
+
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
|
81 |
+
|
82 |
+
$this->assertTrue($rsa->loadKey($key));
|
83 |
+
$this->assertInternalType('string', $rsa->getPrivateKey());
|
84 |
+
}
|
85 |
+
|
86 |
+
public function testPKCS1NoWhitespaceNoHeaderKey()
|
87 |
+
{
|
88 |
+
$rsa = new Crypt_RSA();
|
89 |
+
|
90 |
+
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
|
91 |
+
'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
|
92 |
+
'1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
|
93 |
+
'3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
|
94 |
+
'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
|
95 |
+
'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
|
96 |
+
'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
|
97 |
+
'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
|
98 |
+
'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
|
99 |
+
'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
|
100 |
+
'37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
|
101 |
+
|
102 |
+
$this->assertTrue($rsa->loadKey($key));
|
103 |
+
$this->assertInternalType('string', $rsa->getPrivateKey());
|
104 |
+
}
|
105 |
+
|
106 |
+
public function testRawPKCS1Key()
|
107 |
+
{
|
108 |
+
$rsa = new Crypt_RSA();
|
109 |
+
|
110 |
+
$key = 'MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp' .
|
111 |
+
'wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5' .
|
112 |
+
'1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh' .
|
113 |
+
'3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2' .
|
114 |
+
'pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX' .
|
115 |
+
'GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il' .
|
116 |
+
'AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF' .
|
117 |
+
'L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k' .
|
118 |
+
'X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl' .
|
119 |
+
'U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ' .
|
120 |
+
'37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=';
|
121 |
+
$key = base64_decode($key);
|
122 |
+
|
123 |
+
$this->assertTrue($rsa->loadKey($key));
|
124 |
+
$this->assertInternalType('string', $rsa->getPrivateKey());
|
125 |
+
}
|
126 |
+
|
127 |
+
public function testLoadPKCS8PrivateKey()
|
128 |
+
{
|
129 |
+
$rsa = new Crypt_RSA();
|
130 |
+
$rsa->setPassword('password');
|
131 |
+
|
132 |
+
$key = '-----BEGIN ENCRYPTED PRIVATE KEY-----
|
133 |
+
MIIE6TAbBgkqhkiG9w0BBQMwDgQIcWWgZeQYPTcCAggABIIEyLoa5b3ktcPmy4VB
|
134 |
+
hHkpHzVSEsKJPmQTUaQvUwIp6+hYZeuOk78EPehrYJ/QezwJRdyBoD51oOxqWCE2
|
135 |
+
fZ5Wf6Mi/9NIuPyqQccP2ouErcMAcDLaAx9C0Ot37yoG0S6hOZgaxqwnCdGYKHgS
|
136 |
+
7cYUv40kLOJmTOJlHJbatfXHocrHcHkCBJ1q8wApA1KVQIZsqmyBUBuwbrfFwpC9
|
137 |
+
d/R674XxCWJpXvU63VNZRFYUvd7YEWCrdSeleb99p0Vn1kxI5463PXurgs/7GPiO
|
138 |
+
SLSdX44DESP9l7lXenC4gbuT8P0xQRDzGrB5l9HHoV3KMXFODWTMnLcp1nuhA0OT
|
139 |
+
fPS2yzT9zJgqHiVKWgcUUJ5uDelVfnsmDhnh428p0GBFbniH07qREC9kq78UqQNI
|
140 |
+
Kybp4jQ4sPs64zdYm/VyLWtAYz8QNAKHLcnPwmTPr/XlJmox8rlQhuSQTK8E+lDr
|
141 |
+
TOKpydrijN3lF+pgyUuUj6Ha8TLMcOOwqcrpBig4SGYoB56gjAO0yTE9uCPdBakj
|
142 |
+
yxi3ksn51ErigGM2pGMNcVdwkpJ/x+DEBBO0auy3t9xqM6LK8pwNcOT1EWO+16zY
|
143 |
+
79LVSavc49t+XxMc3Xasz/G5xQgD1FBp6pEnsg5JhTTG/ih6Y/DQD8z3prjC3qKc
|
144 |
+
rpL4NA9KBI/IF1iIXlrfmN/zCKbBuEOEGqwcHBDHPySZbhL2XLSpGcK/NBl1bo1Z
|
145 |
+
G+2nUTauoC67Qb0+fnzTcvOiMNAbHMiqkirs4anHX33MKL2gR/3dp8ca9hhWWXZz
|
146 |
+
Mkk2FK9sC/ord9F6mTtvTiOSDzpiEhb94uTxXqBhIbsrGXCUUd0QQN5s2dmW2MfS
|
147 |
+
M35KeSv2rwDGzC1+Qf3MhHGIZDqoQwuZEzM5yHHafCatAbZd2sjaFWegg0r2ca7a
|
148 |
+
eZkZFj3ZuDYXJFnL82guOASh7rElWO2Ys7ncXAKnaV3WkkF+JDv/CUHr+Q/h6Ae5
|
149 |
+
qEvgubTCVSYHzRP37XJItlcdywTIcTY+t6jymmyEBJ66LmUoD47gt/vDUSbhT6Oa
|
150 |
+
GlcZ+MZGlUnPOSq4YknOgwKH8izboY4UgVCrmXvlaZYQhZemNDkVbpYVDf+s6cPf
|
151 |
+
tJwVoZf+qf2SsRTUsI10isoIzCyGw2ie8kmipdP434Z/99uVU3zxD6raNDlyp33q
|
152 |
+
FWMgpr2JU6NVAla7N51g7Jk8VjIIn7SvCYyWkmvv4kLB1UHl3NFqYb9YuIZUaDyt
|
153 |
+
j/NMcKMLLOaEorRZ2N2mDNoihMxMf8J3J9APnzUigAtaalGKNOrd2Fom5OVADePv
|
154 |
+
Tb5sg1uVQzfcpFrjIlLVh+2cekX0JM84phbMpHmm5vCjjfYvUvcMy0clCf0x3jz6
|
155 |
+
LZf5Fzc8xbZmpse5OnOrsDLCNh+SlcYOzsagSZq4TgvSeI9Tr4lv48dLJHCCcYKL
|
156 |
+
eymS9nhlCFuuHbi7zI7edcI49wKUW1Sj+kvKq3LMIEkMlgzqGKA6JqSVxHP51VH5
|
157 |
+
FqV4aKq70H6dNJ43bLVRPhtF5Bip5P7k/6KIsGTPUd54PHey+DuWRjitfheL0G2w
|
158 |
+
GF/qoZyC1mbqdtyyeWgHtVbJVUORmpbNnXOII9duEqBUNDiO9VSZNn/8h/VsYeAB
|
159 |
+
xryZaRDVmtMuf/OZBQ==
|
160 |
+
-----END ENCRYPTED PRIVATE KEY-----';
|
161 |
+
|
162 |
+
$this->assertTrue($rsa->loadKey($key));
|
163 |
+
$this->assertInternalType('string', $rsa->getPrivateKey());
|
164 |
+
}
|
165 |
+
|
166 |
+
public function testSavePKCS8PrivateKey()
|
167 |
+
{
|
168 |
+
$rsa = new Crypt_RSA();
|
169 |
+
|
170 |
+
$key = '-----BEGIN RSA PRIVATE KEY-----
|
171 |
+
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
172 |
+
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
|
173 |
+
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
|
174 |
+
3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
|
175 |
+
pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
|
176 |
+
GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
|
177 |
+
AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
|
178 |
+
L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
|
179 |
+
X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
|
180 |
+
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
|
181 |
+
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
|
182 |
+
-----END RSA PRIVATE KEY-----';
|
183 |
+
$rsa->setPassword('password');
|
184 |
+
|
185 |
+
$this->assertTrue($rsa->loadKey($key));
|
186 |
+
|
187 |
+
$key = $rsa->getPrivateKey(CRYPT_RSA_PRIVATE_FORMAT_PKCS8);
|
188 |
+
$this->assertInternalType('string', $key);
|
189 |
+
|
190 |
+
$this->assertTrue($rsa->loadKey($key));
|
191 |
+
}
|
192 |
+
|
193 |
+
public function testPubKey1()
|
194 |
+
{
|
195 |
+
$rsa = new Crypt_RSA();
|
196 |
+
|
197 |
+
$key = '-----BEGIN RSA PUBLIC KEY-----
|
198 |
+
MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
|
199 |
+
D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
|
200 |
+
luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
|
201 |
+
o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
|
202 |
+
gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
|
203 |
+
Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
|
204 |
+
-----END RSA PUBLIC KEY-----';
|
205 |
+
|
206 |
+
$this->assertTrue($rsa->loadKey($key));
|
207 |
+
$this->assertInternalType('string', $rsa->getPublicKey());
|
208 |
+
$this->assertFalse($rsa->getPrivateKey());
|
209 |
+
}
|
210 |
+
|
211 |
+
public function testPubKey2()
|
212 |
+
{
|
213 |
+
$rsa = new Crypt_RSA();
|
214 |
+
|
215 |
+
$key = '-----BEGIN PUBLIC KEY-----
|
216 |
+
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA61BjmfXGEvWmegnBGSuS
|
217 |
+
+rU9soUg2FnODva32D1AqhwdziwHINFaD1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBS
|
218 |
+
EVCgJjtHAGZIm5GL/KA86KDp/CwDFMSwluowcXwDwoyinmeOY9eKyh6aY72xJh7n
|
219 |
+
oLBBq1N0bWi1e2i+83txOCg4yV2oVXhBo8pYEJ8LT3el6Smxol3C1oFMVdwPgc0v
|
220 |
+
Tl25XucMcG/ALE/KNY6pqC2AQ6R2ERlVgPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeu
|
221 |
+
lmCpGSynXNcpZ/06+vofGi/2MlpQZNhHAo8eayMp6FcvNucIpUndo1X8dKMv3Y26
|
222 |
+
ZQIDAQAB
|
223 |
+
-----END PUBLIC KEY-----';
|
224 |
+
|
225 |
+
$this->assertTrue($rsa->loadKey($key));
|
226 |
+
$this->assertInternalType('string', $rsa->getPublicKey());
|
227 |
+
$this->assertFalse($rsa->getPrivateKey());
|
228 |
+
}
|
229 |
+
|
230 |
+
public function testSSHPubKey()
|
231 |
+
{
|
232 |
+
$rsa = new Crypt_RSA();
|
233 |
+
|
234 |
+
$key = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4e' .
|
235 |
+
'CZ0FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMS' .
|
236 |
+
'GkVb1/3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZw== ' .
|
237 |
+
'phpseclib-generated-key';
|
238 |
+
|
239 |
+
$this->assertTrue($rsa->loadKey($key));
|
240 |
+
$this->assertInternalType('string', $rsa->getPublicKey());
|
241 |
+
$this->assertFalse($rsa->getPrivateKey());
|
242 |
+
}
|
243 |
+
|
244 |
+
|
245 |
+
public function testSSHPubKeyFingerprint()
|
246 |
+
{
|
247 |
+
$rsa = new Crypt_RSA();
|
248 |
+
$key = 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD9K+ebJRMN10kGanhi6kDz6EYFqZttZWZh0'.
|
249 |
+
'YoEbIbbere9N2Yvfc7oIoCTHYowhXND9WSJaIs1E4bx0085CZnofWaqf4NbZTzAh18iZup08ec'.
|
250 |
+
'COB5gJVS1efpgVSviDF2L7jxMsBVoOBfqsmA8m0RwDDVezyWvw4y+STSuVzu2jI8EfwN7ZFGC6'.
|
251 |
+
'Yo8m/Z94qIGzqPYGKJLuCeidB0TnUE0ZtzOJTiOc/WoTm/NOpCdfQZEJggd1MOTi+QUnqRu4Wu'.
|
252 |
+
'b6wYtY/q/WtUFr3nK+x0lgOtokhnJfRR/6fnmC1CztPnIT4BWK81VGKWONAxuhMyQ5XChyu6S9'.
|
253 |
+
'mWG5tUlUI/5';
|
254 |
+
$this->assertTrue($rsa->loadKey($key));
|
255 |
+
$this->assertSame($rsa->getPublicKeyFingerprint('md5'), 'bd:2c:2f:31:b9:ef:b8:f8:ad:fc:40:a6:94:4f:28:82');
|
256 |
+
$this->assertSame($rsa->getPublicKeyFingerprint('sha256'), 'N9sV2uSNZEe8TITODku0pRI27l+Zk0IY0TrRTw3ozwM');
|
257 |
+
}
|
258 |
+
|
259 |
+
public function testSetPrivate()
|
260 |
+
{
|
261 |
+
$rsa = new Crypt_RSA();
|
262 |
+
|
263 |
+
$key = '-----BEGIN RSA PUBLIC KEY-----
|
264 |
+
MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
|
265 |
+
D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
|
266 |
+
luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
|
267 |
+
o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
|
268 |
+
gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
|
269 |
+
Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
|
270 |
+
-----END RSA PUBLIC KEY-----';
|
271 |
+
|
272 |
+
$this->assertTrue($rsa->loadKey($key));
|
273 |
+
$this->assertTrue($rsa->setPrivateKey());
|
274 |
+
$this->assertGreaterThanOrEqual(1, strlen("$rsa"));
|
275 |
+
$this->assertFalse($rsa->getPublicKey());
|
276 |
+
}
|
277 |
+
|
278 |
+
/**
|
279 |
+
* make phpseclib generated XML keys be unsigned. this may need to be reverted
|
280 |
+
* if it is later learned that XML keys are, in fact, supposed to be signed
|
281 |
+
* @group github468
|
282 |
+
*/
|
283 |
+
public function testUnsignedXML()
|
284 |
+
{
|
285 |
+
$rsa = new Crypt_RSA();
|
286 |
+
|
287 |
+
$key = '<RSAKeyValue>
|
288 |
+
<Modulus>v5OxcEgxPUfa701NpxnScCmlRkbwSGBiTWobHkIWZEB+AlRTHaVoZg/D8l6YzR7VdQidG6gF+nuUMjY75dBXgY/XcyVq0Hccf1jTfgARuNuq4GGG3hnCJVi2QsOgcf9R7TeXn+p1RKIhjQoWCiEQeEBTotNbJhcabNcPGSEJw+s=</Modulus>
|
289 |
+
<Exponent>AQAB</Exponent>
|
290 |
+
</RSAKeyValue>';
|
291 |
+
|
292 |
+
$rsa->loadKey($key);
|
293 |
+
$rsa->setPublicKey();
|
294 |
+
$newkey = $rsa->getPublicKey(CRYPT_RSA_PUBLIC_FORMAT_XML);
|
295 |
+
|
296 |
+
$this->assertSame(preg_replace('#\s#', '', $key), preg_replace('#\s#', '', $newkey));
|
297 |
+
}
|
298 |
+
|
299 |
+
/**
|
300 |
+
* @group github468
|
301 |
+
*/
|
302 |
+
public function testSignedPKCS1()
|
303 |
+
{
|
304 |
+
$rsa = new Crypt_RSA();
|
305 |
+
|
306 |
+
$key = '-----BEGIN PUBLIC KEY-----
|
307 |
+
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC/k7FwSDE9R9rvTU2nGdJwKaVG
|
308 |
+
RvBIYGJNahseQhZkQH4CVFMdpWhmD8PyXpjNHtV1CJ0bqAX6e5QyNjvl0FeBj9dz
|
309 |
+
JWrQdxx/WNN+ABG426rgYYbeGcIlWLZCw6Bx/1HtN5ef6nVEoiGNChYKIRB4QFOi
|
310 |
+
01smFxps1w8ZIQnD6wIDAQAB
|
311 |
+
-----END PUBLIC KEY-----';
|
312 |
+
|
313 |
+
$rsa->loadKey($key);
|
314 |
+
$rsa->setPublicKey();
|
315 |
+
$newkey = $rsa->getPublicKey();
|
316 |
+
|
317 |
+
$this->assertSame(preg_replace('#\s#', '', $key), preg_replace('#\s#', '', $newkey));
|
318 |
+
}
|
319 |
+
|
320 |
+
/**
|
321 |
+
* @group github861
|
322 |
+
*/
|
323 |
+
public function testPKCS8Only()
|
324 |
+
{
|
325 |
+
$rsa = new Crypt_RSA();
|
326 |
+
|
327 |
+
$key = '-----BEGIN PRIVATE KEY-----
|
328 |
+
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKB0yPMAbUHKqJxP
|
329 |
+
5sjG9AOrQSAYNDc34NsnZ1tsi7fZ9lHlBaKZ6gjm2U9q+/qCKv2BuGINxWo2CMJp
|
330 |
+
DHNY0QTt7hThr3B4U62z1CWWGnfLhFtHKH6jNYYOGc4x0jgT88uSrKFvUOLhjkjW
|
331 |
+
bURmJMpN+OjLJuZQZ7uwoqtT3IEDAgMBAAECgYBaElS/fEzYst/Fp2DA8lYGPTs4
|
332 |
+
vf2JxbdWrp7phlxEH3mTbUGljkr/Jj90wnSiojFpz0jm2h4oyh5Oq9OOaJwkCYcu
|
333 |
+
2lcHJvFlhR2XEJpd1bHHcvDwZHdUjSpnO8kvwQtjuTnho2ntRzAA4wIJVSd7Tynj
|
334 |
+
0IFEKmzhSKIvIIeN8QJBANLa10R1vs+YqpLdpAuc6Z9GYhHuh1TysBPw2xNtw3Xf
|
335 |
+
tGPx4/53eQ0RwiHdw9Opgt8CBHErD6KzziflfxUrIXkCQQDCz4t01qYWT43kxS6k
|
336 |
+
TcnZb/obho6akGc8C1hSxFIIGUa9hAhMpY2W6GXeGpv5TZtEJZIJE1VHTLvcLSGm
|
337 |
+
ILNbAkEAgq9mWqULxYket3Yt1ZDEb5Zk9C49rJXaMhHHBoyyZ51mJcfngnE0Erid
|
338 |
+
9PWJCOf4GBYdALMqtrHwpWOlV05rKQJAd6Tz50w1MRqm8MvRe4Ny5qIJH4Kibncl
|
339 |
+
kBD/q8V7BBJSCe7fEgPTU81jUudQx+pL46yXZg+DnoiYD/9/3QHUZQJBAMBiKiZ7
|
340 |
+
qMnD/pkHR/NFcYSYShUJS0cHyryVl7/eCclsQlZTRdnVTtKF9xPGTQC8fK0G7BDN
|
341 |
+
Z2sKniRCcDT1ZP4=
|
342 |
+
-----END PRIVATE KEY-----';
|
343 |
+
|
344 |
+
$result = $rsa->loadKey($key, CRYPT_RSA_PRIVATE_FORMAT_PKCS8);
|
345 |
+
|
346 |
+
$this->assertTrue($result);
|
347 |
+
}
|
348 |
+
|
349 |
+
/**
|
350 |
+
* @group github960
|
351 |
+
*/
|
352 |
+
public function testSetLoad()
|
353 |
+
{
|
354 |
+
$key = 'PuTTY-User-Key-File-2: ssh-rsa
|
355 |
+
Encryption: aes256-cbc
|
356 |
+
Comment: phpseclib-generated-key
|
357 |
+
Public-Lines: 4
|
358 |
+
AAAAB3NzaC1yc2EAAAADAQABAAAAgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4
|
359 |
+
eCZ0FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RK
|
360 |
+
NUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0Tp0GbMJDy
|
361 |
+
R4e9T04ZZw==
|
362 |
+
Private-Lines: 8
|
363 |
+
llx04QMegql0/nE5RvcJSrGrodxt6ytuv/JX2caeZBUyQwQc2WBNYagLHyHPM9jI
|
364 |
+
9OUWz59FLhjFXZMDNMoUXxVmjwQpOAaVPYNxxFM9AF6/NXFji64K7huD9n4A+kLn
|
365 |
+
sHwMLWPR5a/tZA0r05DZNz9ULA3mQu7Hz4EQ8ifu3uTPJuTmL51x6RmudYKysb20
|
366 |
+
fM8VzC3ukvzzRh0pujUVTr/yQdmciASVFnZlt4xQy+ZEOVUAOfwjd//AFfXTvk6x
|
367 |
+
7A45rNlU/uicHwLgoY1APvRHCFxw7F+uVW5L4mSX7NNzqBKkZ+1qpQTAfQvIfEIb
|
368 |
+
444+CXsgIyOpqt6VxJH2u6elAtE1wau3YaFR8Alm8m97rFYzRi3oDP5NZYkTCWSV
|
369 |
+
EOpSeghXSs7IilJu8I6/sB1w5dakdeBSFkIynrlFXkO0uUw+QJJWjxY8SypzgIuP
|
370 |
+
DzduF6XsQrCyo6dnIpGQCQ==
|
371 |
+
Private-MAC: 35134b7434bf828b21404099861d455e660e8740';
|
372 |
+
|
373 |
+
$rsa = new Crypt_RSA();
|
374 |
+
$rsa->setPrivateKey($key);
|
375 |
+
$rsa->loadKey($key);
|
376 |
+
|
377 |
+
$rsa = new Crypt_RSA();
|
378 |
+
$rsa->loadKey($key);
|
379 |
+
$rsa->setPrivateKey();
|
380 |
+
$rsa->loadKey($rsa);
|
381 |
+
}
|
382 |
+
|
383 |
+
/**
|
384 |
+
* @group github980
|
385 |
+
*/
|
386 |
+
public function testZeroComponents()
|
387 |
+
{
|
388 |
+
$key = '-----BEGIN RSA PRIVATE KEY-----
|
389 |
+
MIGaAgEAAkEAt5yrcHAAjhglnCEn6yecMWPeUXcMyo0+itXrLlkpcKIIyqPw546b
|
390 |
+
GThhlb1ppX1ySX/OUA4jSakHekNP5eWPawIBAAJAW6/aVD05qbsZHMvZuS2Aa5Fp
|
391 |
+
NNj0BDlf38hOtkhDzz/hkYb+EBYLLvldhgsD0OvRNy8yhz7EjaUqLCB0juIN4QIB
|
392 |
+
AAIBAAIBAAIBAAIBAA==
|
393 |
+
-----END RSA PRIVATE KEY-----';
|
394 |
+
|
395 |
+
$rsa = new Crypt_RSA();
|
396 |
+
$rsa->loadKey($key);
|
397 |
+
$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
|
398 |
+
$rsa->setHash('md5');
|
399 |
+
$rsa->setMGFHash('md5');
|
400 |
+
|
401 |
+
$rsa->sign('zzzz');
|
402 |
+
}
|
403 |
+
|
404 |
+
public function testGoodBad()
|
405 |
+
{
|
406 |
+
$rsa = new Crypt_RSA();
|
407 |
+
|
408 |
+
$key = '-----BEGIN RSA PUBLIC KEY-----
|
409 |
+
MIIBCgKCAQEA61BjmfXGEvWmegnBGSuS+rU9soUg2FnODva32D1AqhwdziwHINFa
|
410 |
+
D1MVlcrYG6XRKfkcxnaXGfFDWHLEvNBSEVCgJjtHAGZIm5GL/KA86KDp/CwDFMSw
|
411 |
+
luowcXwDwoyinmeOY9eKyh6aY72xJh7noLBBq1N0bWi1e2i+83txOCg4yV2oVXhB
|
412 |
+
o8pYEJ8LT3el6Smxol3C1oFMVdwPgc0vTl25XucMcG/ALE/KNY6pqC2AQ6R2ERlV
|
413 |
+
gPiUWOPatVkt7+Bs3h5Ramxh7XjBOXeulmCpGSynXNcpZ/06+vofGi/2MlpQZNhH
|
414 |
+
Ao8eayMp6FcvNucIpUndo1X8dKMv3Y26ZQIDAQAB
|
415 |
+
-----END RSA PUBLIC KEY-----';
|
416 |
+
|
417 |
+
$this->assertTrue($rsa->loadKey($key));
|
418 |
+
$this->assertInternalType('string', $rsa->getPublicKey());
|
419 |
+
$this->assertFalse($rsa->loadKey('zzz'));
|
420 |
+
$this->assertFalse($rsa->getPublicKey());
|
421 |
+
}
|
422 |
+
}
|
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Jim Wigginton <terrafrost@php.net>
|
4 |
+
* @copyright 2013 Jim Wigginton
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
require_once 'Crypt/RSA.php' ;
|
9 |
+
|
10 |
+
class Unit_Crypt_RSA_ModeTest extends PhpseclibTestCase
|
11 |
+
{
|
12 |
+
public function testEncryptionModeNone()
|
13 |
+
{
|
14 |
+
$plaintext = 'a';
|
15 |
+
|
16 |
+
$rsa = new Crypt_RSA();
|
17 |
+
|
18 |
+
$privatekey = '-----BEGIN RSA PRIVATE KEY-----
|
19 |
+
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
20 |
+
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
|
21 |
+
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
|
22 |
+
3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
|
23 |
+
pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
|
24 |
+
GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
|
25 |
+
AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
|
26 |
+
L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
|
27 |
+
X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
|
28 |
+
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
|
29 |
+
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
|
30 |
+
-----END RSA PRIVATE KEY-----';
|
31 |
+
$rsa->loadKey($privatekey);
|
32 |
+
$rsa->loadKey($rsa->getPublicKey());
|
33 |
+
|
34 |
+
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_NONE);
|
35 |
+
$expected = '105b92f59a87a8ad4da52c128b8c99491790ef5a54770119e0819060032fb9e772ed6772828329567f3d7e9472154c1530f8156ba7fd732f52ca1c06' .
|
36 |
+
'5a3f5ed8a96c442e4662e0464c97f133aed31262170201993085a589565d67cc9e727e0d087e3b225c8965203b271e38a499c92fc0d6502297eca712' .
|
37 |
+
'4d04bd467f6f1e7c';
|
38 |
+
$expected = pack('H*', $expected);
|
39 |
+
$result = $rsa->encrypt($plaintext);
|
40 |
+
|
41 |
+
$this->assertEquals($result, $expected);
|
42 |
+
|
43 |
+
$rsa->loadKey($privatekey);
|
44 |
+
$this->assertEquals(trim($rsa->decrypt($result), "\0"), $plaintext);
|
45 |
+
}
|
46 |
+
|
47 |
+
/**
|
48 |
+
* @group github768
|
49 |
+
*/
|
50 |
+
public function testPSSSigs()
|
51 |
+
{
|
52 |
+
$rsa = new Crypt_RSA();
|
53 |
+
$rsa->loadKey('-----BEGIN PUBLIC KEY-----
|
54 |
+
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqGKukO1De7zhZj6+H0qtjTkVx
|
55 |
+
wTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUpwmJG8wVQZKjeGcjDOL5UlsuusFnc
|
56 |
+
CzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ51s1SPrCBkedbNf0T
|
57 |
+
p0GbMJDyR4e9T04ZZwIDAQAB
|
58 |
+
-----END PUBLIC KEY-----');
|
59 |
+
|
60 |
+
$sig = pack('H*', '1bd29a1d704a906cd7f726370ce1c63d8fb7b9a620871a05f3141a311c0d6e75fefb5d36dfb50d3ea2d37cd67992471419bfadd35da6e13b494' .
|
61 |
+
'058ddc9b568d4cfea13ddc3c62b86a6256f5f296980d1131d3eaec6089069a3de79983f73eae20198a18721338b4a66e9cfe80e4f8e4fcef7a5bead5cbb' .
|
62 |
+
'b8ac4c76adffbc178c');
|
63 |
+
|
64 |
+
$this->assertTrue($rsa->verify('zzzz', $sig));
|
65 |
+
}
|
66 |
+
|
67 |
+
public function testZeroLengthSalt()
|
68 |
+
{
|
69 |
+
$plaintext = 'a';
|
70 |
+
|
71 |
+
$rsa = new Crypt_RSA();
|
72 |
+
|
73 |
+
$privatekey = '-----BEGIN RSA PRIVATE KEY-----
|
74 |
+
MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp
|
75 |
+
wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5
|
76 |
+
1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh
|
77 |
+
3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2
|
78 |
+
pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX
|
79 |
+
GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il
|
80 |
+
AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF
|
81 |
+
L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k
|
82 |
+
X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl
|
83 |
+
U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ
|
84 |
+
37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=
|
85 |
+
-----END RSA PRIVATE KEY-----';
|
86 |
+
$rsa->loadKey($privatekey);
|
87 |
+
$rsa->setSaltLength(0);
|
88 |
+
|
89 |
+
// Check we generate the correct signature.
|
90 |
+
$sig = pack('H*', '0ddfc93548e21d015c0a289a640b3b79aecfdfae045f583c5925b91cc5c399bba181616ad6ae20d9662d966f0eb2fddb550f4733268e34d640f4c9dadcaf25b3c82c42130a5081c6ebad7883331c65b25b6a37ffa7c4233a468dae56180787e2718ed87c48d8d50b72f5850e4a40963b4f36710be250ecef6fe0bb91249261a3');
|
91 |
+
$this->assertEquals($sig, $rsa->sign($plaintext));
|
92 |
+
|
93 |
+
// Check we can verify the signature correctly.
|
94 |
+
$rsa->loadKey($rsa->getPublicKey());
|
95 |
+
$this->assertTrue($rsa->verify($plaintext, $sig));
|
96 |
+
}
|
97 |
+
}
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @author Andreas Fischer <bantu@phpbb.com>
|
4 |
+
* @copyright 2014 Andreas Fischer
|
5 |
+
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
6 |
+
*/
|
7 |
+
|
8 |
+
class Unit_Crypt_RandomTest extends PhpseclibTestCase
|
9 |
+
{
|
10 |
+
public function stringLengthData()
|
11 |
+
{
|
12 |
+
return array_map(array($this, 'wrap'), array(
|
13 |
+
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 17, 19, 20, 23, 29, 31, 37,
|
14 |
+
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 111, 128, 1000,
|
15 |
+
1024, 10000, 12345, 100000, 123456
|
16 |
+
));
|
17 |
+
}
|
18 |
+
|
19 |
+
/** @dataProvider stringLengthData */
|
20 |
+
public function testStringLength($length)
|
21 |
+
{
|
22 |
+
$this->assertSame(
|
23 |
+
$length,
|
24 |
+
strlen(crypt_random_string($length)),
|
25 |
+
'Failed asserting that a string of expected length was generated.'
|
26 |
+
);
|
27 |
+
}
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Takes a s
|