Defender Security – Malware Scanner, Login Security & Firewall - Version 2.2.7

Version Description

  • Fix: Audit Logging sometime triggers a fatal error on some setups.
Download this release

Release Info

Developer hoang1213
Plugin Icon 128x128 Defender Security – Malware Scanner, Login Security & Firewall
Version 2.2.7
Comparing to
See all releases

Code changes from version 2.2.6 to 2.2.7

Files changed (76) hide show
  1. app/behavior/report-free.php +0 -138
  2. app/component/cli.php +1 -1
  3. app/controller/dashboard.php +2 -2
  4. app/module/advanced-tools/behavior/at-widget.php +0 -108
  5. app/module/advanced-tools/controller/main.php +1 -1
  6. app/module/advanced-tools/controller/mask-login.php +0 -299
  7. app/module/advanced-tools/js/scripts.js +0 -168
  8. app/module/advanced-tools/view/2factor-otp-email-edit-from.php +0 -86
  9. app/module/advanced-tools/view/disabled.php +0 -30
  10. app/module/advanced-tools/view/layouts/layout.php +0 -93
  11. app/module/advanced-tools/view/mask-login/disabled.php +0 -30
  12. app/module/audit/behavior/audit-free.php +0 -47
  13. app/module/audit/controller/main-free.php +1 -1
  14. app/module/audit/view/free.php +0 -42
  15. app/module/audit/view/pro-feature.php +0 -39
  16. app/module/hardener/behavior/widget.php +0 -86
  17. app/module/hardener/controller/main.php +1 -1
  18. app/module/hardener/view/ignore.php +0 -39
  19. app/module/hardener/view/issues.php +0 -38
  20. app/module/hardener/view/notification.php +0 -62
  21. app/module/hardener/view/resolved.php +0 -32
  22. app/module/hardener/view/rules/change-admin.php +0 -88
  23. app/module/hardener/view/rules/disable-file-editor.php +0 -79
  24. app/module/hardener/view/rules/disable-trackback.php +0 -78
  25. app/module/hardener/view/rules/disable-xml-rpc.php +0 -83
  26. app/module/hardener/view/rules/hide-error.php +0 -86
  27. app/module/hardener/view/rules/information-disclosure/apache_litespeed.php +0 -13
  28. app/module/hardener/view/rules/information-disclosure/iis7.php +0 -1
  29. app/module/hardener/view/rules/information-disclosure/nginx.php +0 -48
  30. app/module/hardener/view/rules/login-duration.php +0 -151
  31. app/module/hardener/view/rules/php-version.php +0 -74
  32. app/module/hardener/view/rules/prevent-php-executed.php +0 -131
  33. app/module/hardener/view/rules/prevent-php/apache_litespeed.php +0 -20
  34. app/module/hardener/view/rules/prevent-php/iis7.php +0 -10
  35. app/module/hardener/view/rules/prevent-php/nginx.php +0 -56
  36. app/module/hardener/view/rules/protect-information.php +0 -121
  37. app/module/hardener/view/rules/security-key.php +0 -97
  38. app/module/hardener/view/rules/wp-version.php +0 -74
  39. app/module/ip-lockout/controller/main.php +1 -1
  40. app/module/ip-lockout/js/script.js +0 -425
  41. app/module/ip-lockout/view/blacklist/enabled.php +0 -228
  42. app/module/ip-lockout/view/detect-404/disabled.php +0 -27
  43. app/module/ip-lockout/view/layouts/layout.php +0 -146
  44. app/module/ip-lockout/view/logging/enabled.php +0 -33
  45. app/module/ip-lockout/view/login-lockouts/disabled.php +0 -27
  46. app/module/ip-lockout/view/login-lockouts/enabled.php +0 -170
  47. app/module/ip-lockout/view/migration.php +0 -35
  48. app/module/ip-lockout/view/notification/report-free.php +0 -34
  49. app/module/ip-lockout/view/pro-feature.php +0 -39
  50. app/module/ip-lockout/view/settings.php +0 -55
  51. app/module/scan/behavior/scan-widget.php +0 -281
  52. app/module/scan/component/queue-factory.php +1 -0
  53. app/module/scan/component/scanning.php +3 -1
  54. app/module/scan/controller/main.php +2 -2
  55. app/module/scan/controller/rest.php +1 -1
  56. app/module/scan/js/highlight.pack.js +0 -2
  57. app/module/scan/js/highlightjs-line-numbers.js +0 -67
  58. app/module/scan/js/prism.css +0 -183
  59. app/module/scan/js/prism.js +0 -1350
  60. app/module/scan/view/cleaned.php +0 -21
  61. app/module/scan/view/ignored.php +0 -26
  62. app/module/scan/view/new.php +0 -88
  63. app/module/scan/view/scanning.php +0 -94
  64. app/module/setting/controller/main.php +1 -1
  65. app/module/setting/js/script.js +0 -52
  66. app/module/setting/view/data.php +0 -81
  67. app/view/activator-free.php +0 -116
  68. app/view/activator.php +0 -162
  69. app/view/dashboard.php +0 -255
  70. app/view/pro-feature.php +0 -39
  71. app/view/requirement.php +0 -16
  72. app/view/settings.php +0 -335
  73. assets/app/advanced-tools.js +1 -1
  74. assets/app/audit.js +1 -1
  75. assets/app/dashboard.js +1 -1
  76. assets/app/ip-lockout.js +0 -1
app/behavior/report-free.php DELETED
@@ -1,138 +0,0 @@
1
- <?php
2
- /**
3
- * Author: Hoang Ngo
4
- */
5
-
6
- namespace WP_Defender\Behavior;
7
-
8
- use Hammer\Base\Behavior;
9
- use WP_Defender\Module\Scan\Model\Settings;
10
-
11
- class Report_Free extends Behavior {
12
- public function renderReportWidget() {
13
- ?>
14
- <div class="sui-box">
15
- <div class="sui-box-header">
16
- <h3 class="sui-box-title">
17
- <i class="sui-icon-graph-line" aria-hidden="true"></i>
18
- <?php _e( "Reporting", "defender-security" ) ?>
19
- </h3>
20
- </div>
21
- <div class="sui-box-body sui-upsell-items">
22
- <div class="sui-box-settings-row no-margin-bottom">
23
- <p><?php _e( "Get tailored security reports delivered to your inbox so you don’t have to worry about checking in.", "defender-security" ) ?></p>
24
- </div>
25
- <div class="sui-field-list no-border">
26
- <div class="sui-field-list-body">
27
- <div class="sui-field-list-item">
28
- <label class="sui-field-list-item-label">
29
- <small><strong><?php _e( "File Scanning", "defender-security" ) ?></strong>
30
- </small>
31
- </label>
32
- <span class="sui-tag sui-tag-disabled"><?php _e( "Inactive", "defender-security" ) ?></span>
33
- </div>
34
- <div class="sui-field-list-item">
35
- <label class="sui-field-list-item-label">
36
- <small><strong><?php _e( "IP Lockouts", "defender-security" ) ?></strong></small>
37
- </label>
38
- <span class="sui-tag sui-tag-disabled"><?php _e( "Inactive", "defender-security" ) ?></span>
39
- </div>
40
- <div class="sui-field-list-item">
41
- <label class="sui-field-list-item-label">
42
- <small><strong><?php _e( "Audit Logging", "defender-security" ) ?></strong>
43
- </small>
44
- </label>
45
- <span class="sui-tag sui-tag-disabled"><?php _e( "Inactive", "defender-security" ) ?></span>
46
- </div>
47
- </div>
48
- </div>
49
- <div class="sui-box-settings-row sui-upsell-row">
50
- <img class="sui-image sui-upsell-image"
51
- src="<?php echo wp_defender()->getPluginUrl() . 'assets/img/dev-man-pre.svg' ?>">
52
- <div class="sui-upsell-notice">
53
- <p>
54
- <?php
55
- printf( __( "Automated reports are included in a WPMU DEV membership along with 100+ plugins & themes, 24/7 support and lots of handy site management tools. <a href='%s'>Try it all absolutely free.</a>", "defender-security" ), Utils::instance()->campaignURL( 'defender_dash_reports_upsell_link' ) )
56
- ?>
57
- </p>
58
- </div>
59
- </div>
60
- </div>
61
- </div>
62
- <?php
63
- }
64
-
65
- /**
66
- * @return null|string
67
- */
68
- private function getScanToolTip() {
69
- $isPre = Utils::instance()->getAPIKey();
70
- $settings = Settings::instance();
71
- $active = $settings->notification;
72
- if ( ! $isPre || ! $active ) {
73
- return null;
74
- }
75
-
76
- $toolstip = sprintf( __( "Scan reports are active scheduled to send %s", "defender-security" ),
77
- $settings->frequency == 1 ? $this->frequencyToText( $settings->frequency ) . '/' . strftime( '%I:%M %p', strtotime( $settings->time ) ) : $this->frequencyToText( $settings->frequency ) . '/' . $settings->day . '/' . strftime( '%I:%M %p', strtotime( $settings->time ) ) );
78
- $toolstip = strlen( $toolstip ) ? ' tooltip="' . esc_attr( $toolstip ) . '" ' : null;
79
-
80
- return $toolstip;
81
- }
82
-
83
- private function getAuditToolTip() {
84
- $isPre = Utils::instance()->getAPIKey();
85
- $settings = \WP_Defender\Module\Audit\Model\Settings::instance();
86
- $active = $settings->notification;
87
- if ( ! $isPre || ! $active ) {
88
- return null;
89
- }
90
-
91
- $toolstip = sprintf( __( "Audit reports are active scheduled to send %s", "defender-security" ),
92
- $settings->frequency == 1 ? $this->frequencyToText( $settings->frequency ) . '/' . strftime( '%I:%M %p', strtotime( $settings->time ) ) : $this->frequencyToText( $settings->frequency ) . '/' . $settings->day . '/' . strftime( '%I:%M %p', strtotime( $settings->time ) ) );
93
- $toolstip = strlen( $toolstip ) ? ' tooltip="' . esc_attr( $toolstip ) . '" ' : null;
94
-
95
- return $toolstip;
96
- }
97
-
98
- private function getLockoutTooltips() {
99
- $isPre = Utils::instance()->getAPIKey();
100
- $settings = \WP_Defender\Module\IP_Lockout\Model\Settings::instance();
101
- $active = $settings->report;
102
- if ( ! $isPre || ! $active ) {
103
- return null;
104
- }
105
-
106
- $toolstip = sprintf( __( "Lockout reports are active scheduled to send %s", "defender-security" ),
107
- $settings->report_frequency == 1 ? $this->frequencyToText( $settings->report_frequency ) . '/' . strftime( '%I:%M %p', strtotime( $settings->report_time ) ) : $this->frequencyToText( $settings->report_frequency ) . '/' . $settings->report_day . '/' . strftime( '%I:%M %p', strtotime( $settings->report_time ) ) );
108
- $toolstip = strlen( $toolstip ) ? ' tooltip="' . esc_attr( $toolstip ) . '" ' : null;
109
-
110
- return $toolstip;
111
- }
112
-
113
- /**
114
- * @param $freq
115
- *
116
- * @return string
117
- */
118
- private function frequencyToText( $freq ) {
119
- $text = '';
120
- switch ( $freq ) {
121
- case 1:
122
- $text = __( "daily", "defender-security" );
123
- break;
124
- case 7:
125
- $text = __( "weekly", "defender-security" );
126
- break;
127
- case 30:
128
- $text = __( "monthly", "defender-security" );
129
- break;
130
- default:
131
- //param not from the button on frontend, log it
132
- error_log( sprintf( 'Unexpected value %s from IP %s', $freq, Utils::instance()->getUserIp() ) );
133
- break;
134
- }
135
-
136
- return $text;
137
- }
138
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/component/cli.php CHANGED
@@ -154,7 +154,7 @@ class Cli {
154
  }
155
  $scanning = new Scanning();
156
  $scanning->releaseLock();
157
- $is_done = $scanning->do();
158
  $progress = $scanning->getScanProgress();
159
  //$is_done = Scan_Api::processActiveScan();
160
  //$progress = Scan_Api::getScanProgress();
154
  }
155
  $scanning = new Scanning();
156
  $scanning->releaseLock();
157
+ $is_done = $scanning->run();
158
  $progress = $scanning->getScanProgress();
159
  //$is_done = Scan_Api::processActiveScan();
160
  //$progress = Scan_Api::getScanProgress();
app/controller/dashboard.php CHANGED
@@ -154,7 +154,7 @@ class Dashboard extends Controller {
154
 
155
  public function getScanProgress() {
156
  $scanning = new Scanning();
157
- $ret = $scanning->do();
158
  if ( is_wp_error( $ret ) ) {
159
  wp_send_json_error( array(
160
  'message' => $ret->get_error_message()
@@ -408,7 +408,7 @@ class Dashboard extends Controller {
408
  public function scripts() {
409
  wp_enqueue_style( 'defender' );
410
  wp_register_script( 'defender-dashboard', wp_defender()->getPluginUrl() . 'assets/app/dashboard.js', array(
411
- 'vue',
412
  'defender',
413
  'wp-i18n'
414
  ), wp_defender()->version, true );
154
 
155
  public function getScanProgress() {
156
  $scanning = new Scanning();
157
+ $ret = $scanning->run();
158
  if ( is_wp_error( $ret ) ) {
159
  wp_send_json_error( array(
160
  'message' => $ret->get_error_message()
408
  public function scripts() {
409
  wp_enqueue_style( 'defender' );
410
  wp_register_script( 'defender-dashboard', wp_defender()->getPluginUrl() . 'assets/app/dashboard.js', array(
411
+ 'def-vue',
412
  'defender',
413
  'wp-i18n'
414
  ), wp_defender()->version, true );
app/module/advanced-tools/behavior/at-widget.php DELETED
@@ -1,108 +0,0 @@
1
- <?php
2
- /**
3
- * Author: Hoang Ngo
4
- */
5
-
6
- namespace WP_Defender\Module\Advanced_Tools\Behavior;
7
-
8
- use Hammer\Base\Behavior;
9
- use WP_Defender\Module\Advanced_Tools\Model\Auth_Settings;
10
- use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
11
-
12
- class AT_Widget extends Behavior {
13
- public function renderATWidget() {
14
- ?>
15
- <div class="sui-box advanced-tools">
16
- <div class="sui-box-header">
17
- <h3 class="sui-box-title">
18
- <i class="sui-icon-wand-magic" aria-hidden="true"></i>
19
- <?php _e( "Advanced Tools", "defender-security" ) ?>
20
- </h3>
21
- </div>
22
- <div class="sui-box-body">
23
- <p class="margin-bottom-30">
24
- <?php _e( "Enable advanced tools for enhanced protection against even the most aggressive of hackers and bots.", "defender-security" ) ?>
25
- </p>
26
- <hr class="sui-flushed margin-bottom-20"/>
27
- <small><strong><?php _e( "Two-Factor Authentication", "defender-security" ) ?></strong></small>
28
- <div class="clearfix"></div>
29
- <p class="sui-p-small">
30
- <?php _e( "Add an extra layer of security to your WordPress account to ensure that you’re the only person who can log in, even if someone else knows your password.", "defender-security" ) ?>
31
- </p>
32
- <?php
33
- $settings = Auth_Settings::instance();
34
- if ( $settings->enabled ):
35
- $enabledRoles = $settings->userRoles;
36
- if ( count( $enabledRoles ) ):
37
- ?>
38
- <div class="sui-notice sui-notice-success margin-bottom-10 margin-top-10">
39
- <p>
40
- <?php _e( "Two-factor authentication is now active. User roles with this feature enabled must visit their Profile page to complete setup and sync their account with the Authenticator app.", "defender-security" ) ?>
41
- </p>
42
- </div>
43
- <p class="sui-p-small">
44
- <?php _e( "Note: Each user on your website must individually enable two-factor authentication via their user profile in order to enable and use this security feature.", "defender-security" ) ?>
45
- </p>
46
- <?php else: ?>
47
- <div class="sui-notice sui-notice-warning margin-top-10">
48
- <p class="margin-bottom-10">
49
- <?php _e( "Two-factor authentication is currently inactive. Configure and save your settings to finish setup. ", "defender-security" ) ?>
50
- </p>
51
- <a class="sui-button"
52
- href="<?php echo network_admin_url( 'admin.php?page=wdf-advanced-tools' ) ?>">
53
- <?php _e( "Finish Setup", "defender-security" ) ?>
54
- </a>
55
- </div>
56
- <?php endif; ?>
57
- <?php else: ?>
58
- <form method="post" id="advanced-settings-frm" class="advanced-settings-frm margin-top-10">
59
- <input type="hidden" name="action" value="saveAdvancedSettings"/>
60
- <?php wp_nonce_field( 'saveAdvancedSettings' ) ?>
61
- <input type="hidden" name="enabled" value="1"/>
62
- <button type="submit" class="sui-button sui-button-blue">
63
- <?php _e( "Activate", "defender-security" ) ?>
64
- </button>
65
- </form>
66
- <div class="margin-bottom-20"></div>
67
- <?php endif; ?>
68
- <hr class="sui-flushed margin-bottom-20"/>
69
- <small><strong><?php _e( "Mask Login Area", "defender-security" ) ?></strong></small>
70
- <div class="clearfix"></div>
71
- <p class="sui-p-small margin-bottom-10">
72
- <?php _e( "Change the location of WordPress’s default login area.", "defender-security" ) ?>
73
- </p>
74
- <?php
75
- $settings = Mask_Settings::instance();
76
- if ( $settings->enabled ):?>
77
- <?php if ( $settings->isEnabled() == false ): ?>
78
- <div class="sui-notice sui-notice-warning margin-bottom-10 margin-top-10">
79
- <p class="margin-bottom-10">
80
- <?php _e( "Masking is currently inactive. Choose your URL and save your settings to finish setup. ", "defender-security" ) ?>
81
- </p>
82
- <a class="sui-button"
83
- href="<?php echo network_admin_url( 'admin.php?page=wdf-advanced-tools&view=mask-login' ) ?>">
84
- <?php _e( "Finish Setup", "defender-security" ) ?>
85
- </a>
86
- </div>
87
- <?php else: ?>
88
- <div class="sui-notice sui-notice-success margin-bottom-10 margin-top-10">
89
- <p>
90
- <?php printf( __( "Masking is currently active at <strong>%s</strong>", "defender-security" ), \WP_Defender\Module\Advanced_Tools\Component\Mask_Api::getNewLoginUrl() ) ?>
91
- </p>
92
- </div>
93
- <?php endif; ?>
94
- <?php else: ?>
95
- <form method="post" id="advanced-settings-frm" class="advanced-settings-frm margin-top-10">
96
- <input type="hidden" name="action" value="saveATMaskLoginSettings"/>
97
- <?php wp_nonce_field( 'saveATMaskLoginSettings' ) ?>
98
- <input type="hidden" name="enabled" value="1"/>
99
- <button type="submit" class="sui-button sui-button-blue">
100
- <?php _e( "Activate", "defender-security" ) ?>
101
- </button>
102
- </form>
103
- <?php endif; ?>
104
- </div>
105
- </div>
106
- <?php
107
- }
108
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/advanced-tools/controller/main.php CHANGED
@@ -71,7 +71,7 @@ class Main extends Controller {
71
  wp_enqueue_media();
72
  wp_enqueue_style( 'defender' );
73
  wp_register_script( 'defender-adtools', wp_defender()->getPluginUrl() . 'assets/app/advanced-tools.js', array(
74
- 'vue',
75
  'defender',
76
  'wp-i18n'
77
  ), wp_defender()->version, true );
71
  wp_enqueue_media();
72
  wp_enqueue_style( 'defender' );
73
  wp_register_script( 'defender-adtools', wp_defender()->getPluginUrl() . 'assets/app/advanced-tools.js', array(
74
+ 'def-vue',
75
  'defender',
76
  'wp-i18n'
77
  ), wp_defender()->version, true );
app/module/advanced-tools/controller/mask-login.php DELETED
@@ -1,299 +0,0 @@
1
- <?php
2
- /**
3
- * Author: Hoang Ngo
4
- */
5
-
6
- namespace WP_Defender\Module\Advanced_Tools\Controller;
7
-
8
- use Hammer\Helper\HTTP_Helper;
9
- use WP_Defender\Behavior\Utils;
10
- use WP_Defender\Controller;
11
- use WP_Defender\Module\Advanced_Tools\Component\Auth_API;
12
- use WP_Defender\Module\Advanced_Tools\Component\Mask_Api;
13
- use WP_Defender\Module\Advanced_Tools\Model\Mask_Settings;
14
-
15
- class Mask_Login extends Controller {
16
- public $layout = 'layout';
17
- protected $slug = 'wdf-advanced-tools';
18
-
19
- /**
20
- * @return array
21
- */
22
- public function behaviors() {
23
- return array(
24
- 'utils' => '\WP_Defender\Behavior\Utils'
25
- );
26
- }
27
-
28
- public function __construct() {
29
- if ( $this->isInPage() || $this->isDashboard() ) {
30
- $this->add_action( 'defender_enqueue_assets', 'scripts', 11 );
31
- }
32
- $this->add_action( 'defenderATMaskLogin', array( &$this, 'renderIndex' ) );
33
- $this->add_ajax_action( 'saveATMaskLoginSettings', 'saveSettings' );
34
- $settings = Mask_Settings::instance();
35
- $emergencySwitch = apply_filters( 'wpd_masklogin_disabled', 0 );
36
- if ( $settings->isEnabled() == true && $emergencySwitch == 0 ) {
37
- $isJetpackSSO = Auth_API::isJetPackSSO();
38
- $isTML = Auth_API::isTML();
39
- if ( ! $isJetpackSSO && ! $isTML ) {
40
- $this->add_action( 'init', 'handleLoginRequest', 9999 );
41
- $this->add_filter( 'wp_redirect', 'filterWPRedirect', 10, 2 );
42
- $this->add_filter( 'site_url', 'filterSiteUrl', 9999, 4 );
43
- $this->add_filter( 'network_site_url', 'filterNetworkSiteUrl', 9999, 3 );
44
- // $this->add_filter( 'network_admin_url', 'filterAdminUrl', 9999, 2 );
45
- // $this->add_filter( 'admin_url', 'filterAdminUrl', 9999, 2 );
46
- remove_action( 'template_redirect', 'wp_redirect_admin_locations' );
47
- //if prosite is activate and useremail is not defined, we need to update the
48
- //email to match the new login URL
49
- $this->add_filter( 'update_welcome_email', 'updateWelcomeEmailPrositeCase', 9999, 6 );
50
- } else {
51
- if ( $isJetpackSSO ) {
52
- wp_defender()->global['compatibility'][] = __( "We’ve detected a conflict with Jetpack’s Wordpress.com Log In feature. Please disable it and return to this page to continue setup.", "defender-security" );
53
- }
54
- if ( $isTML ) {
55
- wp_defender()->global['compatibility'][] = __( "We’ve detected a conflict with Theme my login. Please disable it and return to this page to continue setup.", "defender-security" );
56
- }
57
- }
58
- }
59
- }
60
-
61
- public function handleLoginRequest() {
62
- //need to check if the current request is for signup, login, if those is not the slug, then we redirect
63
- //to the 404 redirect, or 403 wp die
64
- $requestPath = Mask_Api::getRequestPath();
65
- $settings = Mask_Settings::instance();
66
- if ( '/' . ltrim( $settings->maskUrl, '/' ) == $requestPath ) {
67
- //we need to redirect this one to wp-login and open it
68
- $this->_showLoginPage();
69
- } elseif ( substr( $requestPath, 0, 9 ) == '/wp-admin' ) {
70
- //this one try to login to wp-admin, redirect or lock it
71
- $this->_handleRequestToAdmin();
72
- } elseif ( $requestPath == '/wp-login.php' || $requestPath == '/login' ) {
73
- //this one want to login, redirect or lock
74
- $this->_handleRequestToLoginPage();
75
- }
76
- }
77
-
78
- /**
79
- * @param $welcome_email
80
- * @param $blog_id
81
- * @param $user_id
82
- * @param $password
83
- * @param $title
84
- * @param $meta
85
- *
86
- * @return mixed
87
- */
88
- public function updateWelcomeEmailPrositeCase( $welcome_email, $blog_id, $user_id, $password, $title, $meta ) {
89
- $url = get_blogaddress_by_id( $blog_id );
90
- $welcome_email = str_replace( $url . 'wp-login.php', Mask_Api::getNewLoginUrl( rtrim( $url, '/' ) ), $welcome_email );
91
-
92
- return $welcome_email;
93
- }
94
-
95
- /**
96
- * @param $url
97
- * @param $path
98
- * @param $scheme
99
- *
100
- * @return string
101
- */
102
- public function filterNetworkSiteUrl( $url, $path, $scheme ) {
103
- return $this->alterLoginUrl( $url, $scheme );
104
- }
105
-
106
- /**
107
- * @param $url
108
- * @param $path
109
- * @param $scheme
110
- * @param $blog_id
111
- *
112
- * @return string
113
- */
114
- public function filterSiteUrl( $url, $path, $scheme, $blog_id ) {
115
- return $this->alterLoginUrl( $url, $scheme );
116
- }
117
-
118
- /**
119
- * @param $location
120
- * @param $status
121
- *
122
- * @return string
123
- */
124
- public function filterWPRedirect( $location, $status ) {
125
- return $this->alterLoginUrl( $location );
126
- }
127
-
128
- /**
129
- * @param $currentUrl
130
- * @param null $scheme
131
- *
132
- * @return string
133
- */
134
- private function alterLoginUrl( $currentUrl, $scheme = null ) {
135
- if ( stristr( $currentUrl, 'wp-login.php' ) !== false ) {
136
- //this is URL go to old wp-login.php
137
- $parts = parse_url( $currentUrl );
138
- if ( isset( $parts['query'] ) ) {
139
- parse_str( $parts['query'], $strings );
140
-
141
- return add_query_arg( $strings, Mask_Api::getNewLoginUrl() );
142
- } else {
143
- return Mask_Api::getNewLoginUrl();
144
- }
145
- } else {
146
- //this case when admin map a domain into subsite, we need to update the new domain/masked-login into the list
147
- if ( ! function_exists( 'get_current_screen' ) ) {
148
- require_once( ABSPATH . 'wp-admin/includes/screen.php' );
149
- }
150
- $screen = get_current_screen();
151
- if ( ! is_object( $screen ) ) {
152
- return $currentUrl;
153
- }
154
- if ( $screen->id == 'sites-network' ) {
155
- //case URLs inside sites list, need to check those with custom domain cause when redirect, it will require re-loggin
156
- $requestPath = Mask_Api::getRequestPath( $currentUrl );
157
- if ( $requestPath == '/wp-admin' ) {
158
- $currentDomain = $_SERVER['HTTP_HOST'];
159
- $subDomain = parse_url( $currentUrl, PHP_URL_HOST );
160
- if ( stristr( $subDomain, $currentDomain ) === false ) {
161
- return Mask_Api::getNewLoginUrl( $subDomain );
162
- }
163
- }
164
- } elseif ( $screen->id == 'my-sites' ) {
165
- //case inside my sites page, sometime the login session does not share between sites and we get block
166
- //we will add an OTP key for redirect to wp-admin without get block
167
- $otp = Mask_Api::createOTPKey();
168
-
169
- return add_query_arg( array(
170
- 'otp' => $otp
171
- ), $currentUrl );
172
- }
173
- }
174
-
175
- return $currentUrl;
176
- }
177
-
178
- /**
179
- * Filter admin URL when sync with HUB
180
- *
181
- * @param $currentUrl
182
- * @param null $scheme
183
- *
184
- * @return mixed
185
- */
186
- public function filterAdminUrl( $currentUrl, $scheme = null ) {
187
-
188
- return $currentUrl;
189
- }
190
-
191
- /**
192
- * Catch any request to wp-admin/*, block or redirect it base on settings.
193
- * This wont apply for logged in user
194
- */
195
- private function _handleRequestToAdmin() {
196
- global $pagenow;
197
- if ( defined( 'DOING_AJAX' ) ) {
198
- //we need to allow ajax access for other tasks
199
- return;
200
- }
201
- if ( is_user_logged_in() ) {
202
- return;
203
- }
204
-
205
- if ( ( $key = HTTP_Helper::retrieve_get( 'otp', false ) ) !== false
206
- && Mask_Api::verifyOTP( $key ) ) {
207
- return;
208
- }
209
-
210
- $this->_maybeLock();
211
- }
212
-
213
- private function _handleRequestToLoginPage() {
214
- $this->_maybeLock();
215
- }
216
-
217
- private function _showLoginPage() {
218
- global $error, $interim_login, $action, $user_login, $user, $redirect_to;
219
- require_once ABSPATH . 'wp-login.php';
220
- die;
221
- }
222
-
223
- private function _maybeLock() {
224
- $settings = Mask_Settings::instance();
225
- if ( $settings->isRedirect() == true ) {
226
- wp_safe_redirect( Mask_Api::getRedirectUrl() );
227
- die;
228
- } else {
229
- wp_die( __( "This feature is disabled", "defender-security" ) );
230
- }
231
- }
232
-
233
- public function renderIndex() {
234
- $settings = Mask_Settings::instance();
235
- if ( $settings->enabled == false ) {
236
- $this->render( 'mask-login/disabled', array(
237
- 'settings' => $settings
238
- ) );
239
- } else {
240
- $this->render( 'mask-login/enabled', array(
241
- 'settings' => $settings
242
- ) );
243
- }
244
- }
245
-
246
- public function saveSettings() {
247
- if ( ! $this->checkPermission() ) {
248
- return;
249
- }
250
-
251
- if ( ! wp_verify_nonce( HTTP_Helper::retrieve_post( '_wpnonce' ), 'saveATMaskLoginSettings' ) ) {
252
- return;
253
- }
254
-
255
- $data = $_POST;
256
- $setting = Mask_Settings::instance();
257
- if ( isset( $data['maskUrl'] ) && $setting->maskUrl != $data['maskUrl']
258
- && is_wp_error( $error = Mask_Api::isValidMaskSlug( $data['maskUrl'] ) ) ) {
259
- //validate
260
- $res = array(
261
- 'message' => $error->get_error_message()
262
- );
263
- wp_send_json_error( $res );
264
- }
265
- if ( isset( $data['redirectTrafficUrl'] ) && $setting->redirectTrafficUrl != $data['redirectTrafficUrl']
266
- && is_wp_error( $error = Mask_Api::isValidMaskSlug( $data['redirectTrafficUrl'], 'redirect' ) ) ) {
267
- //validate
268
- $res = array(
269
- 'message' => $error->get_error_message()
270
- );
271
- wp_send_json_error( $res );
272
- }
273
- if ( ! empty( $data['redirectTrafficUrl'] ) && ! empty( $data['maskUrl'] ) && $data['redirectTrafficUrl'] === $data['maskUrl'] && strlen( $data['maskUrl'] ) > 0 ) {
274
- $res = array(
275
- 'message' => __( "Login and 404 redirect URLs can't be the same. Please use different URLs.", "defender-security" )
276
- );
277
- wp_send_json_error( $res );
278
- }
279
- $setting->import( $data );
280
- $setting->save();
281
- $res = array(
282
- 'message' => __( "Your settings have been updated.", "defender-security" )
283
- );
284
- $res['reload'] = 1;
285
- Utils::instance()->submitStatsToDev();
286
- wp_send_json_success( $res );
287
- }
288
-
289
- /**
290
- * Enqueue scripts & styles
291
- */
292
- public function scripts() {
293
- if ( $this->isInPage() || $this->isDashboard() ) {
294
- wp_enqueue_script( 'defender' );
295
- wp_enqueue_style( 'defender' );
296
- wp_enqueue_script( 'adtools', wp_defender()->getPluginUrl() . 'app/module/advanced-tools/js/scripts.js' );
297
- }
298
- }
299
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/advanced-tools/js/scripts.js DELETED
@@ -1,168 +0,0 @@
1
- jQuery(function ($) {
2
- Adtools.formHandler();
3
-
4
- $('div.advanced-tools').on('form-submitted', function (e, data, form) {
5
- if (form.attr('id') === 'advanced-settings-frm' || form.attr('id') === 'ad-mask-settings-frm') {
6
- if (data.success == true) {
7
- Defender.showNotification('success', data.data.message);
8
- } else {
9
- Defender.showNotification('error', data.data.message);
10
- }
11
- }
12
- })
13
- $('.deactivate-2factor').click(function () {
14
- $('#advanced-settings-frm').append('<input type="hidden" name="enabled" value="0"/>');
15
- $(this).attr('disabled', 'disabled');
16
- $('#advanced-settings-frm').submit();
17
- });
18
- $('.deactivate-atmasking').click(function () {
19
- $('#ad-mask-settings-frm').append('<input type="hidden" name="enabled" value="0"/>');
20
- $(this).attr('disabled', 'disabled');
21
- $('#ad-mask-settings-frm').submit();
22
- })
23
-
24
- $('body').on('change', '#forceAuth', function (e) {
25
- if ($(this).prop('checked') == true) {
26
- $('#forceAuthRoles').attr('aria-hidden', false)
27
- } else {
28
- $('#forceAuthRoles').attr('aria-hidden', true)
29
- }
30
- });
31
-
32
- $('body').on('change', '.toggle-checkbox', function (e) {
33
- console.log($(this).attr('id'));
34
- if ($(this).prop('checked') == true) {
35
- $('label[for="' + $(this).attr('id') + '"]').attr('aria-checked', true);
36
- } else {
37
- $('label[for="' + $(this).attr('id') + '"]').attr('aria-checked', false);
38
- }
39
- });
40
-
41
- $('body').on('change', '#customGraphic', function (e) {
42
- if ($(this).prop('checked') == true) {
43
- $('#customGraphicContainer').attr('aria-hidden', false);
44
- } else {
45
- $('#customGraphicContainer').attr('aria-hidden', true);
46
- }
47
- })
48
- $('body').on('change', '#redirectTraffic', function (e) {
49
- if ($(this).prop('checked') == true) {
50
- $('#redirectTrafficContainer').attr('aria-hidden',false);
51
- } else {
52
- $('#redirectTrafficContainer').attr('aria-hidden',true);
53
- }
54
- })
55
-
56
- $('body').on('click', '.2f-send-test-email', function () {
57
- var jq = jQuery,
58
- parentForm = jq('#edit-one-time-password-email form'),
59
- that = jq(this),
60
- data = parentForm.serialize();
61
- data = data + '&action=testTwoFactorOPTEmail';
62
- // return;
63
- jq.ajax({
64
- type: 'POST',
65
- url: ajaxurl,
66
- data: data,
67
- beforeSend: function () {
68
- parentForm.find('button[type="button"]').attr('disabled', 'disabled');
69
- },
70
- success: function (data) {
71
- var notificationType = 'success';
72
- if (!data.success) {
73
- notificationType = 'error';
74
- }
75
- parentForm.find('button[type="button"]').removeAttr('disabled');
76
- Defender.showNotification(notificationType, data.data.message);
77
- }
78
- })
79
- return false;
80
- });
81
-
82
- $('body').on('click', '.save-2f-opt-email', function () {
83
- var jq = jQuery,
84
- parentForm = jq('#edit-one-time-password-email form'),
85
- that = jq(this),
86
- data = parentForm.serialize();
87
- data = data + '&action=saveTwoFactorOPTEmail';
88
- // return;
89
- jq.ajax({
90
- type: 'POST',
91
- url: ajaxurl,
92
- data: data,
93
- beforeSend: function () {
94
- parentForm.find('button[type="button"]').attr('disabled', 'disabled');
95
- },
96
- success: function (data) {
97
- var notificationType = 'success';
98
- if (!data.success) {
99
- notificationType = 'error';
100
- }
101
- parentForm.find('button[type="button"]').removeAttr('disabled');
102
- Defender.showNotification(notificationType, data.data.message);
103
- if (data.data.reload != undefined) {
104
- location.reload();
105
- }
106
- }
107
- })
108
- return false;
109
- });
110
- var mediaUploader;
111
- $('.file-picker').click(function () {
112
- if (mediaUploader) {
113
- mediaUploader.open();
114
- return;
115
- }
116
- // Extend the wp.media object
117
- mediaUploader = wp.media.frames.file_frame = wp.media({
118
- title: 'Choose an image file',
119
- button: {
120
- text: 'Choose File'
121
- }, multiple: false,
122
- library: {
123
- type: ['image']
124
- }
125
- });
126
-
127
- // When a file is selected, grab the URL and set it as the text field's value
128
- mediaUploader.on('select', function () {
129
- var attachment = mediaUploader.state().get('selection').first().toJSON();
130
- if ($.inArray(attachment.mime, ["image/jpeg", "image/png", "image/gif"]) > -1) {
131
- $('#customGraphicURL').val(attachment.url);
132
- $('#customGraphicIMG').attr('src', attachment.url);
133
- } else {
134
- Defender.showNotification('error', 'Invalid image file type');
135
- }
136
- });
137
- // Open the uploader dialog
138
- mediaUploader.open();
139
- })
140
- });
141
- window.Adtools = window.Adtools || {};
142
- Adtools.formHandler = function () {
143
- var jq = jQuery;
144
- jq('body').on('submit', '.advanced-settings-frm', function () {
145
- var data = jq(this).serialize();
146
- var that = jq(this);
147
- jq.ajax({
148
- type: 'POST',
149
- url: ajaxurl,
150
- data: data,
151
- beforeSend: function () {
152
- that.find('button[type="submit"]').attr('disabled', 'disabled');
153
- },
154
- success: function (data) {
155
- if (data.data.reload != undefined) {
156
- Defender.showNotification('success', data.data.message);
157
- location.reload();
158
- } else if (data.data != undefined && data.data.url != undefined) {
159
- location.href = data.data.url;
160
- } else {
161
- that.find('button[type="submit"]').removeAttr('disabled');
162
- jq('div.advanced-tools').trigger('form-submitted', [data, that])
163
- }
164
- }
165
- })
166
- return false;
167
- })
168
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/advanced-tools/view/2factor-otp-email-edit-from.php DELETED
@@ -1,86 +0,0 @@
1
- <?php
2
- $user = wp_get_current_user();
3
- $subject = ! empty( $settings->email_subject ) ? $settings->email_subject : __( 'Your OTP code', "defender-security" );
4
- $sender = ! empty( $settings->email_sender ) ? $settings->email_sender : $user->display_name;
5
- $body = ! empty( $settings->email_body ) ? $settings->email_body : $settings->two_factor_opt_email_default_body();
6
- ?>
7
- <div class="sui-dialog" aria-hidden="true" tabindex="-1" id="edit-one-time-password-email">
8
-
9
- <div class="sui-dialog-overlay" data-a11y-dialog-hide></div>
10
-
11
- <div class="sui-dialog-content" aria-labelledby="dialogTitle" aria-describedby="dialogDescription" role="dialog">
12
-
13
- <div class="sui-box" role="document">
14
-
15
- <div class="sui-box-header">
16
- <h3 class="sui-box-title" id="dialogTitle"><?php _e( "Edit Email", "defender-security" ) ?></h3>
17
- <div class="sui-actions-right">
18
- <button data-a11y-dialog-hide class="sui-dialog-close"
19
- aria-label="Close this dialog window"></button>
20
- </div>
21
- </div>
22
- <form method="post">
23
- <?php wp_nonce_field( 'twoFactorOPTEmail' ) ?>
24
- <div class="sui-box-body">
25
- <p id="dialogDescription">
26
- <?php _e( "This email sends a temporary passcode when the user can’t access their phone.", "defender-security" ) ?>
27
- </p>
28
- <div class="sui-row">
29
- <div class="sui-col">
30
- <div class="sui-form-field">
31
- <label for="dialog-text-5" class="sui-label">
32
- <?php _e( "Subject", "defender-security" ) ?></label>
33
- <input name="subject" class="sui-form-control" type="text"
34
- value="<?php echo $subject; ?>"
35
- id="email_subject"/>
36
- </div>
37
- </div>
38
- <div class="sui-col">
39
- <div class="sui-form-field">
40
- <label for="dialog-text-6" class="sui-label">
41
- <?php _e( "Sender", "defender-security" ) ?></label>
42
- <input name="sender" class="sui-form-control" type="text" value="<?php echo $sender; ?>"
43
- id="email_sender"/>
44
- </div>
45
- </div>
46
- </div>
47
- <div class="sui-row">
48
- <div class="sui-col">
49
- <label for="dialog-text-6" class="sui-label">
50
- <?php _e( "Body", "defender-security" ) ?>
51
- </label>
52
- <textarea class="sui-form-control" name="body" rows="8"
53
- id="email_body"><?php echo stripslashes( $body ); ?></textarea>
54
- </div>
55
- </div>
56
- <div class="sui-row">
57
- <div class="sui-col">
58
- <label for="dialog-text-6" class="sui-label">
59
- <?php _e( 'Available variables', "defender-security" ); ?>
60
- </label>
61
- <span class="sui-tag"><strong>{{passcode}}</strong></span>
62
- <span class="sui-tag"><strong>{{display_name}}</strong></span>
63
- </div>
64
- </div>
65
- </div>
66
-
67
- <div class="sui-box-footer">
68
- <div class="sui-flex-child-right">
69
- <button type="button" class="sui-button sui-button-ghost"
70
- data-a11y-dialog-hide="my-accessible-dialog">
71
- <?php _e( 'Cancel', "defender-security" ); ?>
72
- </button>
73
- </div>
74
- <div class="sui-actions-right">
75
- <button type="button" class="sui-button save-2f-opt-email">
76
- <?php _e( 'Save Template', "defender-security" ); ?>
77
- </button>
78
- <button type="button" class="sui-button sui-button-blue 2f-send-test-email">
79
- <?php _e( 'Send Test', "defender-security" ); ?>
80
- </button>
81
- </div>
82
- </div>
83
- </form>
84
- </div>
85
- </div>
86
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/advanced-tools/view/disabled.php DELETED
@@ -1,30 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <h3 class="sui-box-title">
4
- <?php _e( "Two Factor Authentication", "defender-security" ) ?>
5
- </h3>
6
- </div>
7
- <div class="sui-message">
8
- <?php if ( wp_defender()->hideHeroImage == 0 ): ?>
9
- <img src="<?php echo wp_defender()->getPluginUrl() . 'assets/img/2factor-disabled.svg' ?>" class="sui-image"
10
- aria-hidden="true">
11
- <?php endif; ?>
12
-
13
- <div class="sui-message-content">
14
-
15
- <p>
16
- <?php _e( "Beef up your website’s security with two-factor authentication. Add an extra step in the login process so that users are required to enter a password and an app-generated passcode using their phone – the best protection against brute force attacks.", "defender-security" ) ?>
17
- </p>
18
-
19
- <form method="post" id="advanced-settings-frm" class="advanced-settings-frm">
20
- <input type="hidden" name="action" value="saveAdvancedSettings"/>
21
- <?php wp_nonce_field( 'saveAdvancedSettings' ) ?>
22
- <input type="hidden" name="enabled" value="1"/>
23
- <button type="submit" class="sui-button sui-button-blue">
24
- <?php _e( "Activate", "defender-security" ) ?></button>
25
- </form>
26
-
27
- </div>
28
-
29
- </div>
30
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/advanced-tools/view/layouts/layout.php DELETED
@@ -1,93 +0,0 @@
1
- <div class="sui-wrap <?php echo \WP_Defender\Behavior\Utils::instance()->maybeHighContrast() ?>">
2
- <div class="wp-defender" id="wp-defender">
3
- <div class="advanced-tools">
4
- <div class="sui-header">
5
- <h1 class="sui-header-title">
6
- <?php _e( "Advanced Tools", "defender-security" ) ?>
7
- </h1>
8
- <?php if ( wp_defender()->hideDocLinks === false ): ?>
9
- <div class="sui-actions-right">
10
- <div class="sui-actions-right">
11
- <a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#advanced-tools"
12
- target="_blank" class="sui-button sui-button-ghost">
13
- <i class="sui-icon-academy"></i> <?php _e( "View Documentation", "defender-security" ) ?>
14
- </a>
15
- </div>
16
- </div>
17
- <?php endif; ?>
18
- </div>
19
- <div class="sui-row-with-sidenav">
20
- <div class="sui-sidenav">
21
- <ul class="sui-vertical-tabs sui-sidenav-hide-md">
22
- <li class="sui-vertical-tab <?php echo \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', false ) == false ? 'current' : null ?>">
23
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-advanced-tools' ) ?>">
24
- <?php _e( "Two-Factor Auth", "defender-security" ) ?>
25
- </a>
26
- </li>
27
- <li class="sui-vertical-tab <?php echo \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', false ) == 'mask-login' ? 'current' : null ?>">
28
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-advanced-tools&view=mask-login' ) ?>">
29
- <?php _e( "Mask Login Area", "defender-security" ) ?>
30
- </a>
31
- </li>
32
- </ul>
33
- <div class="sui-sidenav-hide-lg">
34
- <select class="sui-mobile-nav" style="display: none;">
35
- <option <?php selected( '', \Hammer\Helper\HTTP_Helper::retrieve_get( 'view' ) ) ?>
36
- value="<?php echo network_admin_url( 'admin.php?page=wdf-advanced-tools' ) ?>"><?php _e( "Two Factor Authentication", "defender-security" ) ?></option>
37
- </select>
38
- </div>
39
- </div>
40
- <?php echo $contents ?>
41
- </div>
42
- </div>
43
- <?php if ( wp_defender()->changeFooter ): ?>
44
- <div class="sui-footer"><?php echo wp_defender()->footerText ?></div>
45
- <?php else: ?>
46
- <div class="sui-footer">Made with <i class="sui-icon-heart"></i> by WPMU DEV</div>
47
- <?php endif; ?>
48
- <?php if ( wp_defender()->hideDocLinks == false ): ?>
49
- <?php if ( wp_defender()->isFree ): ?>
50
- <ul class="sui-footer-nav">
51
- <li><a href="https://profiles.wordpress.org/wpmudev#content-plugins" target="_blank">Free
52
- Plugins</a>
53
- </li>
54
- <li><a href="https://premium.wpmudev.org/features/" target="_blank">Membership</a></li>
55
- <li><a href="https://premium.wpmudev.org/roadmap/" target="_blank">Roadmap</a></li>
56
- <li><a href="https://wordpress.org/support/plugin/plugin-name" target="_blank">Support</a></li>
57
- <li><a href="https://premium.wpmudev.org/docs/" target="_blank">Docs</a></li>
58
- <li><a href="https://premium.wpmudev.org/hub/" target="_blank">The Hub</a></li>
59
- <li><a href="https://premium.wpmudev.org/terms-of-service/" target="_blank">Terms of Service</a>
60
- </li>
61
- <li><a href="https://incsub.com/privacy-policy/" target="_blank">Privacy Policy</a></li>
62
- </ul>
63
- <?php else: ?>
64
- <ul class="sui-footer-nav">
65
- <li><a href="https://premium.wpmudev.org/hub/" target="_blank">The Hub</a></li>
66
- <li><a href="https://premium.wpmudev.org/projects/category/plugins/" target="_blank">Plugins</a>
67
- </li>
68
- <li><a href="https://premium.wpmudev.org/roadmap/" target="_blank">Roadmap</a></li>
69
- <li><a href="https://premium.wpmudev.org/hub/support/" target="_blank">Support</a></li>
70
- <li><a href="https://premium.wpmudev.org/docs/" target="_blank">Docs</a></li>
71
- <li><a href="https://premium.wpmudev.org/hub/community/" target="_blank">Community</a></li>
72
- <li><a href="https://premium.wpmudev.org/terms-of-service/" target="_blank">Terms of Service</a>
73
- </li>
74
- <li><a href="https://incsub.com/privacy-policy/" target="_blank">Privacy Policy</a></li>
75
- </ul>
76
- <?php endif; ?>
77
- <ul class="sui-footer-social">
78
- <li><a href="https://www.facebook.com/wpmudev" target="_blank">
79
- <i class="sui-icon-social-facebook" aria-hidden="true"></i>
80
- <span class="sui-screen-reader-text">Facebook</span>
81
- </a></li>
82
- <li><a href="https://twitter.com/wpmudev" target="_blank">
83
- <i class="sui-icon-social-twitter" aria-hidden="true"></i></a>
84
- <span class="sui-screen-reader-text">Twitter</span>
85
- </li>
86
- <li><a href="https://www.instagram.com/wpmu_dev/" target="_blank">
87
- <i class="sui-icon-instagram" aria-hidden="true"></i>
88
- <span class="sui-screen-reader-text">Instagram</span>
89
- </a></li>
90
- </ul>
91
- <?php endif; ?>
92
- </div>
93
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/advanced-tools/view/mask-login/disabled.php DELETED
@@ -1,30 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <h3 class="sui-box-title">
4
- <?php _e( "Mask Login Area", "defender-security" ) ?>
5
- </h3>
6
- </div>
7
- <div class="sui-message">
8
- <?php if ( wp_defender()->hideHeroImage == 0 ): ?>
9
- <img src="<?php echo wp_defender()->getPluginUrl() . 'assets/img/2factor-disabled.svg' ?>" class="sui-image"
10
- aria-hidden="true">
11
- <?php endif; ?>
12
-
13
- <div class="sui-message-content">
14
-
15
- <p>
16
- <?php _e( 'Change the location of WordPress’s default login area, making it harder for automated bots to find and also more convenient for your users.', "defender-security" ) ?>
17
- </p>
18
-
19
- <form method="post" id="advanced-settings-frm" class="advanced-settings-frm">
20
- <input type="hidden" name="action" value="saveATMaskLoginSettings"/>
21
- <?php wp_nonce_field( 'saveATMaskLoginSettings' ) ?>
22
- <input type="hidden" name="enabled" value="1"/>
23
- <button type="submit" class="sui-button sui-button-blue">
24
- <?php _e( "Activate", "defender-security" ) ?></button>
25
- </form>
26
-
27
- </div>
28
-
29
- </div>
30
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/audit/behavior/audit-free.php DELETED
@@ -1,47 +0,0 @@
1
- <?php
2
- /**
3
- * Author: Hoang Ngo
4
- */
5
-
6
- namespace WP_Defender\Module\Audit\Behavior;
7
-
8
- use Hammer\Base\Behavior;
9
- use WP_Defender\Behavior\Utils;
10
- use WP_Defender\Module\Audit\Model\Settings;
11
-
12
- class Audit_Free extends Behavior {
13
- public function renderAuditWidget() {
14
- ?>
15
- <div class="sui-box">
16
- <div class="sui-box-header">
17
- <h3 class="sui-box-title">
18
- <i class="sui-icon-eye" aria-hidden="true"></i>
19
- <?php _e( "Audit Logging", "defender-security" ) ?>
20
- </h3>
21
- <div class="sui-actions-left">
22
- <span class="sui-tag sui-tag-pro"><?php _e( "Pro", "defender-security" ) ?></span>
23
- </div>
24
- </div>
25
- <div class="sui-box-body sui-upsell-items">
26
- <div class="sui-box-settings-row no-margin-bottom">
27
- <p>
28
- <?php _e( "Track and log events when changes are made to your website giving you full visibility of what’s going on behind the scenes.", "defender-security" ) ?>
29
- </p>
30
- </div>
31
- <div class="sui-box-settings-row sui-upsell-row">
32
- <img class="sui-image sui-upsell-image"
33
- src="<?php echo wp_defender()->getPluginUrl() . 'assets/img/audit-presale.svg' ?>">
34
- <div class="sui-upsell-notice">
35
- <p>
36
- <?php
37
- printf( __( "Audit Logging is a Pro feature that requires a WPMU DEV monthly membership. <a target='_blank' href='%s'>Try it out today</a>!", "defender-security" ),
38
- Utils::instance()->campaignURL( 'defender_dash_auditlogging_upsell_link' ) )
39
- ?>
40
- </p>
41
- </div>
42
- </div>
43
- </div>
44
- </div>
45
- <?php
46
- }
47
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/audit/controller/main-free.php CHANGED
@@ -62,7 +62,7 @@ class Main_Free extends \WP_Defender\Controller {
62
  wp_enqueue_style( 'defender' );
63
 
64
  wp_register_script( 'defender-audit', wp_defender()->getPluginUrl() . 'assets/app/audit.js', array(
65
- 'vue',
66
  'defender',
67
  'wp-i18n'
68
  ), wp_defender()->version, true );
62
  wp_enqueue_style( 'defender' );
63
 
64
  wp_register_script( 'defender-audit', wp_defender()->getPluginUrl() . 'assets/app/audit.js', array(
65
+ 'def-vue',
66
  'defender',
67
  'wp-i18n'
68
  ), wp_defender()->version, true );
app/module/audit/view/free.php DELETED
@@ -1,42 +0,0 @@
1
- <div class="sui-wrap <?php echo \WP_Defender\Behavior\Utils::instance()->maybeHighContrast() ?>">
2
- <div class="wp-defender">
3
- <div class="auditing">
4
- <div class="sui-header">
5
- <h1 class="sui-header-title">
6
- <?php _e( "Aduit Logging", "defender-security" ) ?>
7
- </h1>
8
- <?php if ( wp_defender()->hideDocLinks === false ): ?>
9
- <div class="sui-actions-right">
10
- <div class="sui-actions-right">
11
- <a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/" target="_blank" class="sui-button sui-button-ghost">
12
- <i class="sui-icon-academy"></i> <?php _e( "View Documentation", "defender-security" ) ?>
13
- </a>
14
- </div>
15
- </div>
16
- <?php endif; ?>
17
- </div>
18
- <div class="sui-box">
19
- <div class="sui-box-header">
20
- <h3 class="sui-box-title">
21
- <?php _e( "Audit Logging", "defender-security" ) ?>
22
- </h3>
23
- <div class="sui-actions-left">
24
- <span class="sui-tag sui-tag-pro">Pro</span>
25
- </div>
26
- </div>
27
- <div class="sui-message">
28
- <img class="sui-image" src="<?php echo wp_defender()->getPluginUrl() ?>assets/img/audit-free.svg"/>
29
- <div class="sui-message-content">
30
- <p>
31
- <?php _e( "Track and log each and every event when changes are made to your website and get detailed reports on what’s going on behind the scenes, including any hacking attempts on your site. This is a pro feature that requires an active WPMU DEV membership. Try it free today!", "defender-security" ) ?>
32
- </p>
33
- <a href="<?php echo \WP_Defender\Behavior\Utils::instance()->campaignURL( 'defender_auditlogging_upgrade_button' ) ?>"
34
- target="_blank"
35
- class="sui-button sui-button-purple"><?php esc_html_e( "Upgrade to Pro", "defender-security" ) ?></a>
36
- </div>
37
- </div>
38
- </div>
39
- </div>
40
- </div>
41
- </div>
42
- <?php $controller->renderPartial( 'pro-feature' ) ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/audit/view/pro-feature.php DELETED
@@ -1,39 +0,0 @@
1
- <dialog class="dev-team" id="pro-feature" title="<?php _e( "Defender Pro Features", "defender-security" ) ?>">
2
- <div class="wp-defender">
3
- <p class=""><?php _e( "Here’s what you’ll get by upgrading to Defender Pro:", "defender-security" ) ?></p>
4
- <div class="well well-blank with-cap">
5
- <i class="def-icon icon-tick fill-blue"></i>
6
- <strong><?php _e( "Automatic Full File Scans & Notifications", "defender-security" ) ?></strong>
7
- <p class="sub">
8
- <?php _e( "Schedule Defender to automatically run a full file scan daily, weekly or monthly and get email reports
9
- when
10
- issues arise.", "defender-security" ) ?>
11
- </p>
12
- </div>
13
- <div class="well well-blank with-cap">
14
- <i class="def-icon icon-tick fill-blue"></i>
15
- <strong><?php _e( "Advanced File Scanning", "defender-security" ) ?></strong>
16
- <p class="sub">
17
- <?php _e( "Defender will go beyond just plugins and themes and scan your entire file system for suspicious code.", "defender-security" ) ?>
18
- </p>
19
- </div>
20
- <div class="well well-blank with-cap">
21
- <i class="def-icon icon-tick fill-blue"></i>
22
- <strong><?php _e( "Audit Logging", "defender-security" ) ?></strong>
23
- <p class="sub">
24
- <?php _e( "Track and log each and every event when changes are made to your website and get detailed reports on what’s going on behind the scenes, including any hacking attempts on your site.", "defender-security" ) ?>
25
- </p>
26
- </div>
27
- <div class="well well-blank with-cap mline">
28
- <i class="def-icon icon-tick fill-blue"></i>
29
- <strong><?php _e( "Tailored Reporting", "defender-security" ) ?></strong>
30
- <p class="sub">
31
- <?php _e( "Get tailored security reports for File Scanning, Audit Logging and IP Lockouts delivered to your inbox so you don’t have to worry about checking in.", "defender-security" ) ?>
32
- </p>
33
- </div>
34
- <div class="tc">
35
- <a class="button button-green mline" href="https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign=defender_modal_upgrade"><?php _e( "Get Defender Pro for Free", "defender-security" ) ?></a>
36
- <p class="is-marginless"><?php _e( "As part of a WPMU DEV free trial.", "defender-security" ) ?></p>
37
- </div>
38
- </div>
39
- </dialog>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/behavior/widget.php DELETED
@@ -1,86 +0,0 @@
1
- <?php
2
- /**
3
- * Author: Hoang Ngo
4
- */
5
-
6
- namespace WP_Defender\Module\Hardener\Behavior;
7
-
8
- use Hammer\Base\Behavior;
9
- use WP_Defender\Module\Hardener\Model\Settings;
10
-
11
- class Widget extends Behavior {
12
- public function renderHardenerWidget() {
13
- $issues = Settings::instance()->getIssues();
14
- $count = count( $issues );
15
- $issues = array_slice( $issues, 0, 3 );
16
- ?>
17
- <div class="sui-box hardener-widget">
18
- <div class="sui-box-header">
19
- <h3 class="sui-box-title">
20
- <i class="sui-icon-wrench-tool" aria-hidden="true"></i>
21
- <?php _e( "Security Tweaks", "defender-security" ) ?>
22
- </h3>
23
- <?php
24
- if ( $count ): ?>
25
- <div class="sui-actions-left">
26
- <div class="sui-tag sui-tag-warning">
27
- <?php echo $count ?>
28
- </div>
29
- </div>
30
- <?php endif; ?>
31
- </div>
32
- <div class="sui-box-body">
33
- <p>
34
- <?php _e( "Defender checks for basic security tweaks you can make to enhance your website’s defense against hackers and bots.", "defender-security" ) ?>
35
- </p>
36
- <?php if ( $count ): ?>
37
-
38
- <?php else: ?>
39
- <div class="sui-notice sui-notice-success">
40
- <p>
41
- <?php
42
- _e( "You’ve actioned all of the recommended security tweaks.", "defender-security" )
43
- ?>
44
- </p>
45
- </div>
46
- <?php endif; ?>
47
- </div>
48
- <?php if ( $count ): ?>
49
- <div class="sui-accordion sui-accordion-flushed no-border-bottom">
50
- <?php foreach ( $issues as $issue ): ?>
51
- <div class="sui-accordion-item sui-warning"
52
- onClick="window.location = '<?php echo network_admin_url( 'admin.php?page=wdf-hardener#' . $issue::$slug ) ?>'">
53
- <div class="sui-accordion-item-header">
54
- <div class="sui-accordion-item-title">
55
- <i aria-hidden="true" class="sui-icon-warning-alert sui-warning"></i>
56
- <?php echo $issue->getTitle() ?>
57
- <div class="sui-actions-right">
58
- <i class="sui-icon-chevron-right" aria-hidden="true"></i>
59
- </div>
60
- </div>
61
- </div>
62
- </div>
63
- <?php endforeach; ?>
64
- </div>
65
- <?php endif; ?>
66
- <div class="sui-box-footer">
67
- <div class="sui-actions-left">
68
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-hardener' ) ?>"
69
- class="sui-button sui-button-ghost">
70
- <i class="sui-icon-eye" aria-hidden="true"></i>
71
- <?php _e( "View All", "defender-security" ) ?>
72
- </a>
73
- </div>
74
- </div>
75
- </div>
76
- <?php
77
- }
78
-
79
- private function _renderNew() {
80
-
81
- }
82
-
83
- private function _render() {
84
-
85
- }
86
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/controller/main.php CHANGED
@@ -192,7 +192,7 @@ class Main extends Controller {
192
  if ( $this->isInPage() ) {
193
  wp_enqueue_style( 'defender' );
194
  wp_register_script( 'defender-hardener', wp_defender()->getPluginUrl() . 'assets/app/security-tweaks.js', array(
195
- 'vue',
196
  'defender',
197
  'wp-i18n'
198
  ), false, true );
192
  if ( $this->isInPage() ) {
193
  wp_enqueue_style( 'defender' );
194
  wp_register_script( 'defender-hardener', wp_defender()->getPluginUrl() . 'assets/app/security-tweaks.js', array(
195
+ 'def-vue',
196
  'defender',
197
  'wp-i18n'
198
  ), false, true );
app/module/hardener/view/ignore.php DELETED
@@ -1,39 +0,0 @@
1
- <?php
2
- $setting = \WP_Defender\Module\Hardener\Model\Settings::instance();
3
- $ignored = $setting->getIgnore();
4
- ?>
5
- <div class="sui-box">
6
- <div class="sui-box-header">
7
- <h3 class="sui-box-title">
8
- <?php _e( "Ignored", "defender-security" ) ?>
9
- </h3>
10
- <div class="sui-actions-left">
11
- <?php if ( count( $ignored ) ): ?>
12
- <span class="sui-tag"><?php echo count( $ignored ) ?></span>
13
- <?php endif; ?>
14
- </div>
15
- </div>
16
- <div class="sui-box-body">
17
- <p>
18
- <?php _e( "You have chosen to ignore these fixes. You can restore and action them at any time.", "defender-security" ) ?>
19
- </p>
20
- <?php if ( count( $ignored ) == 0 ): ?>
21
- <div class="sui-notice">
22
- <p>
23
- <?php _e( "Well, turns out you haven't ignored anything yet - keep up the good fight!", "defender-security" ) ?>
24
- </p>
25
- </div>
26
- <?php endif; ?>
27
- </div>
28
- <?php if ( count( $ignored ) ): ?>
29
- <div class="sui-accordion sui-accordion-flushed">
30
- <?php foreach ( $ignored as $rule ): ?>
31
- <?php
32
- $rule->showRestoreForm();
33
- ?>
34
- <?php endforeach; ?>
35
- </div>
36
- <div class="clearfix"></div>
37
- <div class="padding-bottom-30"></div>
38
- <?php endif; ?>
39
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/issues.php DELETED
@@ -1,38 +0,0 @@
1
- <?php
2
- $setting = \WP_Defender\Module\Hardener\Model\Settings::instance();
3
- $issues = $setting->getIssues();
4
- ?>
5
- <div class="sui-box-header">
6
- <h2 class="sui-box-title"><?php _e( "Issues", "defender-security" ) ?></h2>
7
- <div class="sui-actions-left">
8
- <?php if ( count( $issues ) ): ?>
9
- <span class="sui-tag sui-tag-warning"><?php echo count( $issues ) ?></span>
10
- <?php endif; ?>
11
- </div>
12
- </div>
13
- <div class="sui-box-body">
14
- <p>
15
- <?php _e( "Activate security tweaks to strengthen your website against harmful hackers and bots who try to break in. We recommend you action as many tweaks as possible, some may require your server provider to help.", "defender-security" ) ?>
16
- </p>
17
- <?php
18
- if ( count( $issues ) == 0 ) {
19
- ?>
20
- <div class="sui-notice sui-notice-success">
21
- <p>
22
- <?php _e( "You have actioned all available security tweaks, great work!", "defender-security" ) ?>
23
- </p>
24
- </div>
25
- <?php
26
- }
27
- ?>
28
- </div>
29
- <?php if ( count( $issues ) ) : ?>
30
- <div class="sui-accordion sui-accordion-flushed">
31
- <?php
32
- foreach ( $issues as $rule ) {
33
- $rule->getDescription();
34
- } ?>
35
- </div>
36
- <div class="clearfix"></div>
37
- <div class="padding-bottom-30"></div>
38
- <?php endif; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/notification.php DELETED
@@ -1,62 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <h3 class="sui-box-title">
4
- <?php _e( "Notifications", "defender-security" ) ?>
5
- </h3>
6
- </div>
7
- <form method="post" class="hardener-settings-frm">
8
- <div class="sui-box-body">
9
- <p>
10
- <?php _e( "Get email notifications if/when a security tweak needs fixing.", "defender-security" ) ?>
11
- </p>
12
-
13
- <div class="sui-box-settings-row">
14
- <div class="sui-box-settings-col-1">
15
- <span class="sui-settings-label"><?php _e( "Enable notifications", "defender-security" ) ?></span>
16
- <span class="sui-description">
17
- <?php _e( "Enabling this option will ensure you don’t need to check in to see that all your security tweaks are still active.", "defender-security" ) ?>
18
- </span>
19
- </div>
20
- <div class="sui-box-settings-col-2">
21
- <div class="sui-form-field">
22
- <input type="hidden" name="notification" value="<?php echo $setting->notification ?>"/>
23
- <div class="sui-side-tabs sui-tabs">
24
- <div data-tabs>
25
- <div rel="input_value" data-target="notification" data-value="1"
26
- class="<?php echo $setting->notification == 1 ? 'active' : null ?>"><?php _e( "On", "defender-security" ) ?></div>
27
- <div rel="input_value" data-target="notification" data-value="0"
28
- class="<?php echo $setting->notification == 0 ? 'active' : null ?>"><?php _e( "Off", "defender-security" ) ?></div>
29
- </div>
30
- <div data-panes>
31
- <div class="sui-tab-boxed <?php echo $setting->notification == 1 ? 'active' : null ?>">
32
- <p class="sui-p-small">
33
- <?php _e( "By default, we will only notify the recipients below when a security tweak hasn’t been actioned for 24 hours.", "defender-security" ) ?>
34
- </p>
35
- <div class="margin-top-30">
36
- <?php $email->renderInput() ?>
37
- </div>
38
- <label for="notification_repeat" class="sui-checkbox">
39
- <input type="hidden" name="notification_repeat" value="0"/>
40
- <input type="checkbox" <?php checked( '1', $setting->notification_repeat ) ?>
41
- id="notification_repeat" name="notification_repeat" value="1"/>
42
- <span aria-hidden="true"></span>
43
- <span><?php _e( "Send reminders every 24 hours if fixes still hasn’t been actioned.", "defender-security" ) ?></span>
44
- </label>
45
- </div>
46
- </div>
47
- </div>
48
- </div>
49
- </div>
50
- </div>
51
- </div>
52
- <input type="hidden" name="action" value="saveTweaksSettings"/>
53
- <?php wp_nonce_field( 'saveTweaksSettings' ) ?>
54
- <div class="sui-box-footer">
55
- <div class="sui-actions-right">
56
- <button type="submit" class="sui-button sui-button-blue">
57
- <i class="sui-icon-save" aria-hidden="true"></i>
58
- <?php _e( "Save Changes", "defender-security" ) ?></button>
59
- </div>
60
- </div>
61
- </form>
62
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/resolved.php DELETED
@@ -1,32 +0,0 @@
1
- <?php
2
- $setting = \WP_Defender\Module\Hardener\Model\Settings::instance();
3
- $resolved = $setting->getFixed();
4
- ?>
5
- <div class="sui-box">
6
- <div class="sui-box-header">
7
- <h3 class="sui-box-title">
8
- <?php _e( "Resolved", "defender-security" ) ?>
9
- </h3>
10
- <div class="sui-actions-left">
11
- <?php if ( count( $resolved ) ): ?>
12
- <span class="sui-tag sui-tag-success"><?php echo count( $resolved ) ?></span>
13
- <?php endif; ?>
14
- </div>
15
- </div>
16
- <div class="sui-box-body">
17
- <p>
18
- <?php _e( "Excellent work. The following vulnerabilities have been fixed.", "defender-security" ) ?>
19
- </p>
20
- </div>
21
- <?php if ( count( $resolved ) ): ?>
22
- <div class="sui-accordion sui-accordion-flushed">
23
- <?php foreach ( $resolved as $rule ): ?>
24
- <?php
25
- $rule->getDescription();
26
- ?>
27
- <?php endforeach; ?>
28
- </div>
29
- <div class="clearfix"></div>
30
- <div class="padding-bottom-30"></div>
31
- <?php endif; ?>
32
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/change-admin.php DELETED
@@ -1,88 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- global $wpdb;
4
- ?>
5
- <div id="change_admin" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
6
- <div class="sui-accordion-item-header">
7
- <div class="sui-accordion-item-title">
8
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
9
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
10
- <?php _e( "Admin User", "defender-security" ) ?>
11
- </div>
12
- <div class="sui-accordion-col-4">
13
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
14
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
15
- </button>
16
- </div>
17
- </div>
18
- <div class="sui-accordion-item-body">
19
- <div class="sui-box">
20
- <div class="sui-box-body">
21
- <strong>
22
- <?php _e( "Overview", "defender-security" ) ?>
23
- </strong>
24
- <p>
25
- <?php _e( "One of most common methods of gaining access to websites is through brute force attacks on login areas using default/common usernames and passwords. If you're using the default ‘admin’ username, you're giving away an important piece of the puzzle hackers need to hijack your website.", "defender-security" ) ?>
26
- </p>
27
- <?php if ( $checked ): ?>
28
- <div class="sui-notice sui-notice-success">
29
- <p><?php _e( "You don't have a user account sporting the admin username, great.", "defender-security" ) ?></p>
30
- </div>
31
- <?php else: ?>
32
- <strong>
33
- <?php _e( "Status", "defender-security" ) ?>
34
- </strong>
35
- <div class="sui-notice sui-notice-warning">
36
- <p>
37
- <?php _e( "You have a user account with the admin username.", "defender-security" ) ?>
38
- </p>
39
- </div>
40
- <p>
41
- <?php _e( "Using the default admin username is widely considered bad practice and opens you up to the easitest form of entry to your website. We recommend avoiding generic usernames like admin, administrator, and anything that matches your hostname (mattebutter) as these are the usernames hackers and bots will attempt first.", "defender-security" ) ?>
42
- </p>
43
- <strong>
44
- <?php _e( "How to fix", "defender-security" ) ?>
45
- </strong>
46
- <p>
47
- <?php _e( "Choose a new admin username name below. Alternately, you can ignore this tweak if you really want to keep the admin username at your own risk.", "defender-security" ) ?>
48
- </p>
49
- <div class="sui-border-frame">
50
- <div class="sui-form-field ">
51
- <label class="sui-label"><?php _e( "New admin username", "defender-security" ) ?></label>
52
- <input type="text" id="username" class="sui-form-control"/>
53
- </div>
54
- </div>
55
- <?php endif; ?>
56
- </div>
57
- <?php if ( ! $checked ): ?>
58
- <div class="sui-box-footer">
59
- <div class="sui-actions-left">
60
- <?php $controller->showIgnoreForm() ?>
61
- </div>
62
- <div class="sui-actions-right">
63
- <form method="post" class="hardener-frm rule-process hardener-frm-process-xml-rpc">
64
- <?php $controller->createNonceField(); ?>
65
- <input type="hidden" name="username"/>
66
- <input type="hidden" name="action" value="processHardener"/>
67
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
68
- <button class="sui-button sui-button-blue" type="submit">
69
- <?php _e( "Update Username", "defender-security" ) ?></button>
70
- </form>
71
- </div>
72
- </div>
73
- <div class="sui-center-box">
74
- <p>
75
- <?php _e( "Ensure you backup your database before performing this tweak.", "defender-security" ) ?>
76
- </p>
77
- </div>
78
- <?php endif; ?>
79
- </div>
80
- </div>
81
- </div>
82
- <script type="text/javascript">
83
- jQuery(function ($) {
84
- $('#username').keyup(function () {
85
- $('input[name="username"]').val($(this).val())
86
- })
87
- })
88
- </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/disable-file-editor.php DELETED
@@ -1,79 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- ?>
4
- <div id="disable-file-editor" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
5
- <div class="sui-accordion-item-header">
6
- <div class="sui-accordion-item-title">
7
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
8
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
9
- <?php _e( "File Editor", "defender-security" ) ?>
10
- </div>
11
- <div class="sui-accordion-col-4">
12
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
13
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
14
- </button>
15
- </div>
16
- </div>
17
- <div class="sui-accordion-item-body">
18
- <div class="sui-box">
19
- <div class="sui-box-body">
20
- <strong>
21
- <?php _e( "Overview", "defender-security" ) ?>
22
- </strong>
23
- <p>
24
- <?php _e( "WordPress comes with a file editor built into the system. This means that anyone with access to your login information can further edit your plugin and theme files and inject malicious code. ", "defender-security" ) ?>
25
- </p>
26
- <strong>
27
- <?php _e( "Status", "defender-security" ) ?>
28
- </strong>
29
- <?php if ( $checked ): ?>
30
- <div class="sui-notice sui-notice-success">
31
- <p>
32
- <?php _e( "You've disabled the file editor, winning.", "defender-security" ) ?>
33
- </p>
34
- </div>
35
- <?php else: ?>
36
- <div class="sui-notice sui-notice-warning">
37
- <p>
38
- <?php _e( "The file editor is currently enabled.", "defender-security" ) ?>
39
- </p>
40
- </div>
41
- <p>
42
- <?php _e( "The file editor is currently active. If you don’t need it, we recommend disabling this feature.", "defender-security" ) ?>
43
- </p>
44
- <strong>
45
- <?php _e( "How to fix", "defender-security" ) ?>
46
- </strong>
47
- <p>
48
- <?php _e( "We can automatically disable the file editor for you below. Alternately, you can ignore this tweak if you don’t require it. Either way, you can easily revert these actions at any time.", "defender-security" ) ?>
49
- </p>
50
- <?php endif; ?>
51
- </div>
52
- <div class="sui-box-footer">
53
- <?php if ( $checked ): ?>
54
- <form method="post" class="hardener-frm rule-process">
55
- <?php $controller->createNonceField(); ?>
56
- <input type="hidden" name="action" value="processRevert"/>
57
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
58
- <button class="sui-button" type="submit">
59
- <i class="sui-icon-undo" aria-hidden="true"></i>
60
- <?php _e( "Revert", "defender-security" ) ?></button>
61
- </form>
62
- <?php else: ?>
63
- <div class="sui-actions-left">
64
- <?php $controller->showIgnoreForm() ?>
65
- </div>
66
- <div class="sui-actions-right">
67
- <form method="post" class="hardener-frm rule-process hardener-frm-process-xml-rpc">
68
- <?php $controller->createNonceField(); ?>
69
- <input type="hidden" name="action" value="processHardener"/>
70
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
71
- <button class="sui-button sui-button-blue" type="submit">
72
- <?php _e( "Disable file editor", "defender-security" ) ?></button>
73
- </form>
74
- </div>
75
- <?php endif; ?>
76
- </div>
77
- </div>
78
- </div>
79
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/disable-trackback.php DELETED
@@ -1,78 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- ?>
4
- <div id="disable_trackback" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
5
- <div class="sui-accordion-item-header">
6
- <div class="sui-accordion-item-title sui-accordion-col-8">
7
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
8
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
9
- <?php _e( "Disable trackbacks and pingbacks", "defender-security" ) ?>
10
- </div>
11
- <div class="sui-accordion-col-4">
12
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
13
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
14
- </button>
15
- </div>
16
- </div>
17
- <div class="sui-accordion-item-body">
18
- <div class="sui-box">
19
- <div class="sui-box-body">
20
- <strong>
21
- <?php _e( "Overview", "defender-security" ) ?>
22
- </strong>
23
- <p>
24
- <?php _e( "Pingbacks notify a website when it has been mentioned by another website, like a form of courtesy communication. However, these notifications can be sent to any website willing to receive them, opening you up to DDoS attacks, which can take your website down in seconds and fill your posts with spam comments.", "defender-security" ) ?>
25
- </p>
26
- <?php if ( $checked ): ?>
27
- <div class="sui-notice sui-notice-success">
28
- <p><?php _e( "Trackbacks and pingbacks are disabled, nice work!", "defender-security" ) ?></p>
29
- </div>
30
- <?php else: ?>
31
- <strong>
32
- <?php _e( "Status", "defender-security" ) ?>
33
- </strong>
34
- <div class="sui-notice sui-notice-warning">
35
- <p>
36
- <?php _e( "Trackbacks and pingbacks are currently enabled.", "defender-security" ) ?>
37
- </p>
38
- </div>
39
- <p>
40
- <?php _e( "Trackbacks and pingbacks can lead to DDos attacks and tons of spam comments. If you don’t require this feature, we recommend turning it off.", "defender-security" ) ?>
41
- </p>
42
- <strong>
43
- <?php _e( "How to fix", "defender-security" ) ?>
44
- </strong>
45
- <p>
46
- <?php _e( "We can automatically disable pingbacks and trackbacks for you below. Alternately, you can ignore this tweak if you don’t require it. Either way, you can easily revert these actions at any time.", "defender-security" ) ?>
47
- </p>
48
- <?php endif; ?>
49
- </div>
50
- <div class="sui-box-footer">
51
- <?php if ( $checked ): ?>
52
- <form method="post" class="hardener-frm rule-process">
53
- <?php $controller->createNonceField(); ?>
54
- <input type="hidden" name="action" value="processRevert"/>
55
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
56
- <button class="sui-button" type="submit">
57
- <i class="sui-icon-undo" aria-hidden="true"></i>
58
- <?php _e( "Revert", "defender-security" ) ?></button>
59
- </form>
60
- <?php else: ?>
61
- <div class="sui-actions-left">
62
- <?php $controller->showIgnoreForm() ?>
63
- </div>
64
- <div class="sui-actions-right">
65
- <form method="post" class="hardener-frm rule-process hardener-frm-process-xml-rpc">
66
- <?php $controller->createNonceField(); ?>
67
- <input type="hidden" name="action" value="processHardener"/>
68
- <input type="hidden" name="updatePosts" value="no"/>
69
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
70
- <button class="sui-button sui-button-blue" type="submit">
71
- <?php _e( "Disable Pingbacks", "defender-security" ) ?></button>
72
- </form>
73
- </div>
74
- <?php endif; ?>
75
- </div>
76
- </div>
77
- </div>
78
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/disable-xml-rpc.php DELETED
@@ -1,83 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- ?>
4
- <div id="disable_xml_rpc" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
5
- <div class="sui-accordion-item-header">
6
- <div class="sui-accordion-item-title">
7
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
8
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
9
- <?php _e( 'XML-RPC', "defender-security" ) ?>
10
- </div>
11
- <div class="sui-accordion-col-4">
12
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
13
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
14
- </button>
15
- </div>
16
- </div>
17
- <div class="sui-accordion-item-body">
18
- <div class="sui-box">
19
- <div class="sui-box-body">
20
- <strong>
21
- <?php _e( "Overview", "defender-security" ) ?>
22
- </strong>
23
- <p>
24
- <?php _e( "XML-RPC is a system that allows you to post on your WordPress blog using popular weblog clients like Windows Live Writer. Technically, it’s a remote procedure call which uses XML to encode its calls and HTTP as a transport mechanism.", "defender-security" ) ?>
25
- </p>
26
- <p>
27
- <?php _e( "If you are using the WordPress mobile app, want to make connections to services like IFTTT, or want to access and publish to your blog remotely, then you need XML-RPC enabled, otherwise it’s just another portal for hackers to target and exploit.", "defender-security" ) ?>
28
- </p>
29
- <?php if ( $checked ): ?>
30
- <div class="sui-notice sui-notice-success">
31
- <p>
32
- <?php _e( "XML-RPC is disabled.", "defender-security" ) ?>
33
- </p>
34
- </div>
35
- <?php else: ?>
36
- <strong>
37
- <?php _e( "Status", "defender-security" ) ?>
38
- </strong>
39
- <div class="sui-notice sui-notice-warning">
40
- <p>
41
- <?php _e( "XML-RPC is currently enabled.", "defender-security" ) ?>
42
- </p>
43
- </div>
44
- <p>
45
- <?php _e( "In the past, there were security concerns with XML-RPC so we recommend making sure this feature is fully disabled if you don’t need it active.", "defender-security" ) ?>
46
- </p>
47
- <strong>
48
- <?php _e( "How to fix", "defender-security" ) ?>
49
- </strong>
50
- <p>
51
- <?php _e( "We can automatically disable XML-RPC for you below. Alternately, you can ignore this tweak if you don’t require it. Either way, you can easily revert these actions at any time.", "defender-security" ) ?>
52
- </p>
53
- <?php endif; ?>
54
- </div>
55
- <div class="sui-box-footer">
56
- <?php if ( $checked ): ?>
57
- <form method="post" class="hardener-frm rule-process">
58
- <?php $controller->createNonceField(); ?>
59
- <input type="hidden" name="action" value="processRevert"/>
60
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
61
- <button class="sui-button" type="submit">
62
- <i class="sui-icon-undo" aria-hidden="true"></i>
63
- <?php _e( "Revert", "defender-security" ) ?></button>
64
- </form>
65
- <?php else: ?>
66
- <div class="sui-actions-left">
67
- <?php $controller->showIgnoreForm() ?>
68
- </div>
69
- <div class="sui-actions-right">
70
- <form method="post" class="hardener-frm rule-process hardener-frm-process-xml-rpc">
71
- <?php $controller->createNonceField(); ?>
72
- <input type="hidden" name="action" value="processHardener"/>
73
- <input type="hidden" name="updatePosts" value="no"/>
74
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
75
- <button class="sui-button sui-button-blue" type="submit">
76
- <?php _e( "Disable XML-RPC", "defender-security" ) ?></button>
77
- </form>
78
- </div>
79
- <?php endif; ?>
80
- </div>
81
- </div>
82
- </div>
83
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/hide-error.php DELETED
@@ -1,86 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- ?>
4
- <div id="disable-file-editor" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
5
- <div class="sui-accordion-item-header">
6
- <div class="sui-accordion-item-title">
7
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
8
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
9
- <?php _e( "Error Reporting", "defender-security" ) ?>
10
- </div>
11
- <div class="sui-accordion-col-4">
12
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
13
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
14
- </button>
15
- </div>
16
- </div>
17
- <div class="sui-accordion-item-body">
18
- <div class="sui-box">
19
- <div class="sui-box-body">
20
- <strong>
21
- <?php _e( "Overview", "defender-security" ) ?>
22
- </strong>
23
- <p>
24
- <?php _e( "Developers often use the built-in PHP and scripts error debugging feature, which displays code errors on the frontend of your website. It’s useful for active development, but on live sites provides hackers yet another way to find loopholes in your site's security.", "defender-security" ) ?>
25
- </p>
26
- <strong>
27
- <?php _e( "Status", "defender-security" ) ?>
28
- </strong>
29
- <?php if ( $checked ): ?>
30
- <div class="sui-notice sui-notice-success">
31
- <p>
32
- <?php _e( "You've disabled all error reporting, Houston will never report a problem.", "defender-security" ) ?>
33
- </p>
34
- </div>
35
- <?php else: ?>
36
- <?php if ( WP_DEBUG == false || ( WP_DEBUG == true && WP_DEBUG_DISPLAY == false ) ): ?>
37
- <div class="sui-notice sui-notice-warning">
38
- <p>
39
- <?php _e( "We attempted to disable the display_errors setting to prevent code errors displaying but it’s being overridden by your server config. Please contact your hosting provider and ask them to set display_errors to false.", "defender-security" ) ?>
40
- </p>
41
- </div>
42
- <?php else: ?>
43
- <div class="sui-notice sui-notice-warning">
44
- <p>
45
- <?php _e( "Error debugging is currently allowed.", "defender-security" ) ?>
46
- </p>
47
- </div>
48
- <?php endif; ?>
49
- <p>
50
- <?php _e( "While it may not be in use, we haven’t found any code stopping debugging information being output. It’s best to remove all doubt and disable error reporting completely.", "defender-security" ) ?>
51
- </p>
52
- <strong>
53
- <?php _e( "How to fix", "defender-security" ) ?>
54
- </strong>
55
- <p>
56
- <?php _e( "We can automatically disable all error reporting for you below. Alternately, you can ignore this tweak if you don’t require it. Either way, you can easily revert these actions at any time.", "defender-security" ) ?>
57
- </p>
58
- <?php endif; ?>
59
- </div>
60
- <?php if ( !$checked ): ?>
61
- <?php if ( WP_DEBUG == true && ( ! defined( 'WP_DEBUG_DISPLAY' ) || WP_DEBUG_DISPLAY != false ) ): ?>
62
- <div class="sui-box-footer">
63
- <div class="sui-actions-left">
64
- <?php $controller->showIgnoreForm() ?>
65
- </div>
66
- <div class="sui-actions-right">
67
- <form method="post" class="hardener-frm rule-process hardener-frm-process-xml-rpc">
68
- <?php $controller->createNonceField(); ?>
69
- <input type="hidden" name="action" value="processHardener"/>
70
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
71
- <button class="sui-button sui-button-blue" type="submit">
72
- <?php _e( "Disable error debugging", "defender-security" ) ?></button>
73
- </form>
74
- </div>
75
- </div>
76
- <?php else: ?>
77
- <div class="sui-box-footer">
78
- <div class="sui-actions-left">
79
- <?php $controller->showIgnoreForm() ?>
80
- </div>
81
- </div>
82
- <?php endif; ?>
83
- <?php endif; ?>
84
- </div>
85
- </div>
86
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/information-disclosure/apache_litespeed.php DELETED
@@ -1,13 +0,0 @@
1
- <form method="post" class="hardener-frm hardener-update-frm rule-process">
2
- <?php $controller->createNonceField(); ?>
3
- <input type="hidden" name="action" value="processHardener"/>
4
- <input type="hidden" name="current_server"
5
- value="<?php echo $setting->active_server; ?>"/>
6
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
7
- <p class="no-margin-bottom">
8
- <?php _e( "We can automatically add an .htaccess file to your root folder to action this fix.", "defender-security" ) ?>
9
- </p>
10
- <button class="sui-button sui-button-blue" type="submit">
11
- <?php _e( "Update .htaccess file", "defender-security" ) ?>
12
- </button>
13
- </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/information-disclosure/iis7.php DELETED
@@ -1 +0,0 @@
1
- <p><?php printf( __( 'For IIS 7 servers, <a href="%s">visit Microsoft TechNet</a>', "defender-security" ), 'https://technet.microsoft.com/en-us/library/cc754807(v=ws.10).aspx' ); ?></p>
 
app/module/hardener/view/rules/information-disclosure/nginx.php DELETED
@@ -1,48 +0,0 @@
1
- <p>
2
- <?php _e( "We can’t automatically action this fix, but follow the instructions below to patch this up.", "defender-security" ) ?>
3
- </p>
4
- <strong><?php _e( "Instructions", "defender-security" ) ?></strong>
5
- <p>
6
- <?php _e( "1. Copy the generated code into your site specific .conf file usually located in a subdirectory under /etc/nginx/... or /usr/local/nginx/conf/...", "defender-security" ) ?>
7
- </p>
8
- <p>
9
- <?php _e( "2. Add the code above inside the server section in the file, right before the php location block. Looks something like:", "defender-security" ) ?>
10
- <code>location ~ \.php$ {</code>
11
- </p>
12
- <p>
13
- <?php _e( "3. Reload NGINX.", "defender-security" ) ?>
14
- </p>
15
- <strong><?php _e( "Code", "defender-security" ) ?></strong>
16
- <?php
17
- if ( DIRECTORY_SEPARATOR == '\\' ) {
18
- //Windows
19
- $wp_includes = str_replace( ABSPATH, '', WPINC );
20
- $wp_content = str_replace( ABSPATH, '', WP_CONTENT_DIR );
21
- } else {
22
- $wp_includes = str_replace( $_SERVER['DOCUMENT_ROOT'], '', ABSPATH . WPINC );
23
- $wp_content = str_replace( $_SERVER['DOCUMENT_ROOT'], '', WP_CONTENT_DIR );
24
- }
25
-
26
- $rules = "# Turn off directory indexing
27
- autoindex off;
28
-
29
- # Deny access to htaccess and other hidden files
30
- location ~ /\. {
31
- deny all;
32
- }
33
-
34
- # Deny access to wp-config.php file
35
- location = /wp-config.php {
36
- deny all;
37
- }
38
-
39
- # Deny access to revealing or potentially dangerous files in the /wp-content/ directory (including sub-folders)
40
- location ~* ^$wp_content/.*\.(txt|md|exe|sh|bak|inc|pot|po|mo|log|sql)$ {
41
- deny all;
42
- }
43
- ";
44
- ?>
45
- <p><code>## WP Defender - Prevent information disclosure ##<?php echo esc_html( $rules ); ?>## WP Defender - End ##</code></p>
46
- <div class="sui-notice">
47
- <p><?php echo sprintf( __( "Still having trouble? <a target='_blank' href=\"%s\">Open a support ticket</a>.", "defender-security" ), 'https://premium.wpmudev.org/forums/forum/support#question' ) ?></p>
48
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/login-duration.php DELETED
@@ -1,151 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- $days = $controller->getService()->getDuration();
4
- ?>
5
- <div id="login-duration" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
6
- <div class="sui-accordion-item-header">
7
- <div class="sui-accordion-item-title">
8
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
9
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
10
- <?php echo $controller->getTitle() ?>
11
- </div>
12
- <div class="sui-accordion-col-4">
13
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
14
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
15
- </button>
16
- </div>
17
- </div>
18
- <div class="sui-accordion-item-body">
19
- <div class="sui-box">
20
- <div class="sui-box-body">
21
- <strong>
22
- <?php _e( "Overview", "defender-security" ) ?>
23
- </strong>
24
- <p>
25
- <?php _e( "By default, users who select the 'remember me' option will stay logged in for 14 days. If you and your users don’t need to login to your website backend regularly, it’s good practice to reduce this default time to reduce the risk of someone gaining access to your automatically logged in account.", "defender-security" ) ?>
26
- </p>
27
- <?php if ( $checked ): ?>
28
- <div class="sui-notice sui-notice-success">
29
- <p><?php printf( __( "You've adjusted the default login duration to %d days.", "defender-security" ), $days ) ?></p>
30
- </div>
31
- <?php else: ?>
32
- <strong>
33
- <?php _e( "Status", "defender-security" ) ?>
34
- </strong>
35
- <div class="sui-notice sui-notice-warning">
36
- <p>
37
- <?php printf( __( "Your current login duration is the default %d days.", "defender-security" ), $days ) ?>
38
- </p>
39
- </div>
40
- <?php if ( $days > 7 ): ?>
41
- <p>
42
- <?php printf( __( "If you don’t need to stay logged in for %d days, we recommend you reduce this duration to 7 days or less.", "defender-security" ), $days ) ?>
43
- </p>
44
- <?php endif; ?>
45
- <strong>
46
- <?php _e( "How to fix", "defender-security" ) ?>
47
- </strong>
48
- <p>
49
- <?php _e( "Choose the shortest login duration that most suit your website’s use case.", "defender-security" ) ?>
50
- </p>
51
- <div class="sui-form-field">
52
- <label class="sui-label"><?php _e( "Login duration", "defender-security" ) ?></label>
53
- <input type="text" id="duration"
54
- class="sui-input-sm sui-field-has-suffix defender-login-duration sui-form-control"/>
55
- <span class="sui-field-suffix"><?php _e( "Days", "defender-security" ) ?></span>
56
- </div>
57
- <?php endif; ?>
58
- </div>
59
- <div class="sui-box-footer">
60
- <?php if ( $checked ): ?>
61
- <form method="post" class="hardener-frm rule-process">
62
- <?php $controller->createNonceField(); ?>
63
- <input type="hidden" name="action" value="processRevert"/>
64
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
65
- <button class="sui-button" type="submit">
66
- <i class="sui-icon-undo" aria-hidden="true"></i>
67
- <?php _e( "Revert", "defender-security" ) ?></button>
68
- </form>
69
- <?php else: ?>
70
- <div class="sui-actions-left">
71
- <?php $controller->showIgnoreForm() ?>
72
- </div>
73
- <div class="sui-actions-right">
74
- <form method="post" class="hardener-frm rule-process hardener-frm-process-xml-rpc">
75
- <?php $controller->createNonceField(); ?>
76
- <input type="hidden" name="action" value="processHardener"/>
77
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
78
- <input type="hidden" name="duration">
79
- <button class="sui-button sui-button-blue" type="submit">
80
- <?php _e( "Update", "defender-security" ) ?></button>
81
- </form>
82
- </div>
83
- <?php endif; ?>
84
- </div>
85
- </div>
86
- </div>
87
- </div>
88
- <script type="text/javascript">
89
- jQuery(function ($) {
90
- $('#duration').keyup(function () {
91
- $('input[name="duration"]').val($(this).val())
92
- })
93
- })
94
- </script>
95
- <!---->
96
- <!--<div class="rule closed" id="login-duration">-->
97
- <!-- <div class="rule-title" role="link" tabindex="0">-->
98
- <!-- --><?php //if ( $controller->check() == false ): ?>
99
- <!-- <i class="def-icon icon-warning" aria-hidden="true"></i>-->
100
- <!-- --><?php //else: ?>
101
- <!-- <i class="def-icon icon-tick" aria-hidden="true"></i>-->
102
- <!-- --><?php //endif; ?>
103
- <!-- --><?php //echo $controller->getTitle() ?>
104
- <!-- </div>-->
105
- <!-- <div class="rule-content">-->
106
- <!-- <h3>--><?php //_e( "Overview", "defender-security" ) ?><!--</h3>-->
107
- <!-- <div class="line end">-->
108
- <!-- --><?php //_e( "By default, users who select the 'remember me' option stay logged in for 14 days", "defender-security" ) ?>
109
- <!-- </div>-->
110
- <!-- <h3>-->
111
- <!-- --><?php //_e( "How to fix", "defender-security" ) ?>
112
- <!-- </h3>-->
113
- <!-- <div class="well">-->
114
- <!-- --><?php
115
- // $setting = \WP_Defender\Module\Hardener\Model\Settings::instance();
116
- //
117
- // if ( $controller->check() ):
118
- // ?>
119
- <!-- <p class="line">--><?php //esc_attr_e( sprintf( __( 'Login Duration is locked down. Current duration is %d days', "defender-security" ), $controller->getService()->getDuration() ) ); ?><!--</p>-->
120
- <!-- <form method="post" class="hardener-frm rule-process">-->
121
- <!-- --><?php //$controller->createNonceField(); ?>
122
- <!-- <input type="hidden" name="action" value="processRevert"/>-->
123
- <!-- <input type="hidden" name="slug" value="--><?php //echo $controller::$slug ?><!--"/>-->
124
- <!-- <button class="button button-small button-grey" type="submit">-->
125
- <!-- <i class="sui-icon-undo" aria-hidden="true"></i>-->
126
- <!-- --><?php //_e( "Revert", "defender-security" ) ?><!--</button>-->
127
- <!-- </form>-->
128
- <!-- --><?php
129
- // else:
130
- // ?>
131
- <!-- <div class="line">-->
132
- <!-- <p>--><?php //_e( "Please change the number of days a user can stay logged in", "defender-security" ) ?><!--</p>-->
133
- <!-- </div>-->
134
- <!-- <form method="post" class="hardener-frm rule-process">-->
135
- <!-- --><?php //$controller->createNonceField(); ?>
136
- <!-- <input type="hidden" name="action" value="processHardener"/>-->
137
- <!-- <input type="text"-->
138
- <!-- placeholder="--><?php //esc_attr_e( "Enter number of days", "defender-security" ) ?><!--"-->
139
- <!-- name="duration" class="block defender-login-duration"/>-->
140
- <!-- <input type="hidden" name="slug" value="--><?php //echo $controller::$slug ?><!--"/>-->
141
- <!-- <button class="button float-r"-->
142
- <!-- type="submit">--><?php //_e( "Update", "defender-security" ) ?><!--</button>-->
143
- <!-- </form>-->
144
- <!-- --><?php //$controller->showIgnoreForm() ?>
145
- <!-- <div class="clear"></div>-->
146
- <!-- --><?php
147
- // endif;
148
- // ?>
149
- <!-- </div>-->
150
- <!-- </div>-->
151
- <!--</div>-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/php-version.php DELETED
@@ -1,74 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- $settings = \WP_Defender\Module\Hardener\Model\Settings::instance();
4
- global $wpdb;
5
- ?>
6
- <div id="php_version" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
7
- <div class="sui-accordion-item-header">
8
- <div class="sui-accordion-item-title">
9
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
10
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
11
- <?php _e( "PHP Version", "defender-security" ) ?>
12
- </div>
13
- <div class="sui-accordion-col-4">
14
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
15
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
16
- </button>
17
- </div>
18
- </div>
19
- <div class="sui-accordion-item-body">
20
- <div class="sui-box">
21
- <div class="sui-box-body">
22
- <strong>
23
- <?php _e( "Overview", "defender-security" ) ?>
24
- </strong>
25
- <p>
26
- <?php _e( "PHP is the software that powers WordPress. It interprets the WordPress code and generates web pages people view. Naturally, PHP comes in different versions and is regularly updated. As newer versions are released, WordPress drops support for older PHP versions in favour of newer, faster versions with fewer bugs.", "defender-security" ) ?>
27
- </p>
28
- <strong>
29
- <?php _e( "Status", "defender-security" ) ?>
30
- </strong>
31
- <div class="sui-border-frame">
32
- <div class="sui-row">
33
- <div class="sui-col">
34
- <strong><?php _e( "Current PHP version", "defender-security" ) ?></strong>
35
- <span class="sui-tag <?php echo $checked ? 'sui-tag-success' : 'sui-tag-warning' ?>"><?php echo phpversion() ?></span>
36
- </div>
37
- <div class="sui-col">
38
- <strong><?php _e( "Recommended", "defender-security" ) ?></strong>
39
- <span class="sui-tag"><?php printf( __( "%s or above", "defender-security" ), $settings->min_php_version ) ?></span>
40
- </div>
41
- </div>
42
- </div>
43
- <p>
44
- <?php printf( __( "PHP versions older than %s are no longer supported. For security and stability we strongly recommend you upgrade your PHP version to version %s or newer as soon as possible. ", "defender-security" ), $settings->min_php_version, $settings->min_php_version ) ?>
45
- </p>
46
- <p>
47
- <?php _e( "For more information visit <a target='_blank' href='http://php.net/supported-versions.php'>http://php.net/supported-versions.php</a>", "defender-security" ) ?>
48
- </p>
49
- <strong>
50
- <?php _e( "How to fix", "defender-security" ) ?>
51
- </strong>
52
- <p>
53
- <?php printf( __( "Upgrade your PHP version to %s or above. Currently the latest stable version of PHP is %s.", "defender-security" ), $settings->min_php_version, $settings->stable_php_version ) ?>
54
- </p>
55
- <?php if ( $checked ): ?>
56
- <div class="sui-notice sui-notice-success">
57
- <p><?php _e( "You have the latest version of PHP installed, good stuff!", "defender-security" ) ?></p>
58
- </div>
59
- <?php else: ?>
60
- <div class="sui-notice">
61
- <p><?php _e( "We can’t update PHP for you, contact your hosting provider or developer to help you upgrade.", "defender-security" ) ?></p>
62
- </div>
63
- <?php endif; ?>
64
- </div>
65
- <?php if ( ! $checked ): ?>
66
- <div class="sui-box-footer">
67
- <div class="sui-actions-left">
68
- <?php $controller->showIgnoreForm() ?>
69
- </div>
70
- </div>
71
- <?php endif; ?>
72
- </div>
73
- </div>
74
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/prevent-php-executed.php DELETED
@@ -1,131 +0,0 @@
1
- <?php
2
- $servers = \WP_Defender\Behavior\Utils::instance()->serverTypes();
3
-
4
- if ( DIRECTORY_SEPARATOR == '\\' ) {
5
- //Windows
6
- $wp_includes = str_replace( ABSPATH, '', WPINC );
7
- $wp_content = str_replace( ABSPATH, '', WP_CONTENT_DIR );
8
- } else {
9
- $wp_includes = str_replace( $_SERVER['DOCUMENT_ROOT'], '', ABSPATH . WPINC );
10
- $wp_content = str_replace( $_SERVER['DOCUMENT_ROOT'], '', WP_CONTENT_DIR );
11
- }
12
- global $is_nginx, $is_IIS, $is_iis7;
13
- $setting = \WP_Defender\Module\Hardener\Model\Settings::instance();
14
- if ( $is_nginx ) {
15
- $setting->active_server = 'nginx';
16
- } else if ( $is_IIS ) {
17
- $setting->active_server = 'iis';
18
- } else if ( $is_iis7 ) {
19
- $setting->active_server = 'iis-7';
20
- }
21
- $checked = $controller->check();
22
- ?>
23
- <div id="prevent-php-execute" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
24
- <div class="sui-accordion-item-header">
25
- <div class="sui-accordion-item-title">
26
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
27
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
28
- <?php _e( "PHP Execution", "defender-security" ) ?>
29
- </div>
30
- <div class="sui-accordion-col-4">
31
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
32
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
33
- </button>
34
- </div>
35
- </div>
36
- <div class="sui-accordion-item-body">
37
- <div class="sui-box">
38
- <div class="sui-box-body">
39
- <strong><?php _e( "Overview", "defender-security" ) ?></strong>
40
- <p>
41
- <?php
42
- _e( "By default, a plugin/theme vulnerability could allow a PHP file to get uploaded into your site's directories and in turn execute harmful scripts that can wreak havoc on your website. Prevent this altogether by disabling direct PHP execution in directories that don't require it.", "defender-security" )
43
- ?>
44
- </p>
45
- <strong>
46
- <?php _e( "Status", "defender-security" ) ?>
47
- </strong>
48
- <?php if ( $checked ): ?>
49
- <div class="sui-notice sui-notice-success">
50
- <p>
51
- <?php _e( "You've automatically disabled PHP execution..", "defender-security" ) ?>
52
- </p>
53
- </div>
54
- <?php else: ?>
55
- <div class="sui-notice sui-notice-warning">
56
- <p>
57
- <?php _e( "PHP execution is currently allowed in all directories.", "defender-security" ) ?>
58
- </p>
59
- </div>
60
- <p>
61
- <?php _e( "Currently, all directories can have PHP code executed in them. It’s best to lock this down to only the directories that require, and add any further execeptions you need.", "defender-security" ) ?>
62
- </p>
63
- <strong>
64
- <?php _e( "How to fix", "defender-security" ) ?>
65
- </strong>
66
- <p>
67
- <?php _e( "We can lock down directories WordPress doesn’t need to protect you from PHP execution attacks. You can also add exceptions for specific files you need to run. Alternately, you can ignore this tweak if you don’t require it. Either way, you can easily revert these actions at any time.", "defender-security" ) ?>
68
- </p>
69
- <div class="sui-tabs sui-side-tabs">
70
- <div data-tabs>
71
- <div class="<?php echo $setting->active_server == 'apache' ? 'active' : '' ?>"><?php _e( "Apache", "defender-security" ) ?></div>
72
- <div class="<?php echo $setting->active_server == 'litespeed' ? 'active' : '' ?>"><?php _e( "Litespeed", "defender-security" ) ?></div>
73
- <div class="<?php echo $setting->active_server == 'nginx' ? 'active' : '' ?>"><?php _e( "Nginx", "defender-security" ) ?></div>
74
- <div class="<?php echo $setting->active_server == 'iis' ? 'active' : '' ?>"><?php _e( "IIS", "defender-security" ) ?></div>
75
- <div class="<?php echo $setting->active_server == 'iis7' ? 'active' : '' ?>"><?php _e( "IIS7", "defender-security" ) ?></div>
76
- </div>
77
-
78
- <div data-panes>
79
- <div class="sui-tab-boxed <?php echo $setting->active_server == 'apache' ? 'active' : '' ?>">
80
- <?php $controller->renderPartial( 'rules/prevent-php/apache_litespeed', array(
81
- 'setting' => $setting
82
- ) ) ?>
83
- </div>
84
- <div class="sui-tab-boxed <?php echo $setting->active_server == 'litespeed' ? 'active' : '' ?>">
85
- <?php $controller->renderPartial( 'rules/prevent-php/apache_litespeed', array(
86
- 'setting' => $setting
87
- ) ) ?>
88
- </div>
89
- <div class="sui-tab-boxed hardener-instructions <?php echo $setting->active_server == 'nginx' ? 'active' : '' ?>">
90
- <?php $controller->renderPartial( 'rules/prevent-php/nginx', array(
91
- 'setting' => $setting
92
- ) ) ?>
93
- </div>
94
- <div class="sui-tab-boxed <?php echo $setting->active_server == 'iis' ? 'active' : '' ?>">
95
- <p><?php printf( __( 'For IIS servers, <a href="%s">visit Microsoft TechNet</a>', "defender-security" ), 'https://technet.microsoft.com/en-us/library/cc725855(v=ws.10).aspx' ); ?></p>
96
- </div>
97
- <div class="sui-tab-boxed <?php echo $setting->active_server == 'iis7' ? 'active' : '' ?>">
98
- <?php $controller->renderPartial( 'rules/prevent-php/iis7', array(
99
- 'setting' => $setting
100
- ) ) ?>
101
- </div>
102
-
103
- </div>
104
-
105
- </div>
106
- <?php endif; ?>
107
- </div>
108
- <?php if ( ! $checked ): ?>
109
- <div class="sui-box-footer">
110
- <div class="sui-actions-left">
111
- <?php $controller->showIgnoreForm() ?>
112
- </div>
113
- </div>
114
- <?php else: ?>
115
- <?php if ( $setting->active_server == 'apache' || $setting->active_server == 'lite_speed' ): ?>
116
- <div class="sui-box-footer">
117
- <div class="sui-actions-left">
118
- <form method="post" class="hardener-frm rule-process">
119
- <?php $controller->createNonceField(); ?>
120
- <input type="hidden" name="action" value="processRevert"/>
121
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
122
- <button class="sui-button sui-button-gray"
123
- type="submit"><?php _e( "Revert", "defender-security" ) ?></button>
124
- </form>
125
- </div>
126
- </div>
127
- <?php endif; ?>
128
- <?php endif; ?>
129
- </div>
130
- </div>
131
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/prevent-php/apache_litespeed.php DELETED
@@ -1,20 +0,0 @@
1
- <form method="post" class="hardener-frm hardener-update-frm rule-process">
2
- <?php $controller->createNonceField(); ?>
3
- <input type="hidden" name="action" value="updateHardener"/>
4
- <input type="hidden" name="current_server"
5
- value="<?php echo $setting->active_server; ?>"/>
6
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
7
- <p class="no-margin-bottom">
8
- <?php _e( "We can automatically add an .htaccess file to your root folder to action this fix.", "defender-security" ) ?>
9
- </p>
10
- <button class="sui-button sui-button-blue" type="submit">
11
- <?php _e( "Update .htaccess file", "defender-security" ) ?>
12
- </button>
13
- <div class="sui-form-field margin-top-30">
14
- <label class="sui-label"><?php _e( "Exceptions", "defender-security" ) ?></label>
15
- <textarea name="file_paths" class="sui-form-control"></textarea>
16
- <span class="sui-description">
17
- <?php _e( "Add exceptions to PHP files you want to continue to run. Include the full paths to the file.", "defender-security" ) ?>
18
- </span>
19
- </div>
20
- </form>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/prevent-php/iis7.php DELETED
@@ -1,10 +0,0 @@
1
- <p><?php _e( "We will place <strong>web.config</strong> file into the uploads folder to lock down the files and folders inside.", "defender-security" ) ?></p>
2
- <p><?php printf( __( 'For more information, please <a href="%s">visit Microsoft TechNet</a>', "defender-security" ), 'https://technet.microsoft.com/en-us/library/cc725855(v=ws.10).aspx' ); ?></p>
3
- <form method="post" class="hardener-frm hardener-litespeed-frm rule-process">
4
- <?php $controller->createNonceField(); ?>
5
- <input type="hidden" name="action" value="processHardener"/>
6
- <input type="hidden" name="current_server" value="iis-7"/>
7
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
8
- <button class="sui-button sui-button-blue" type="submit">
9
- <?php _e( "Add web.config file", "defender-security" ) ?></button>
10
- </form>
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/prevent-php/nginx.php DELETED
@@ -1,56 +0,0 @@
1
- <p>
2
- <?php _e( "We can’t automatically action this fix, but follow the instructions below to patch this up.
3
- First, add any exceptions to files you want to allow PHP to be executed from, then follow the instructions below.", "defender-security" ) ?>
4
- </p>
5
- <div class="sui-form-field margin-top-30">
6
- <label class="sui-label"><?php _e( "Exceptions", "defender-security" ) ?></label>
7
- <textarea class="sui-form-control hardener-php-excuted-ignore"></textarea>
8
- <span class="sui-description">
9
- <?php _e( "Add exceptions to PHP files you want to continue to run. Include the full paths to the file.", "defender-security" ) ?>
10
- </span>
11
- </div>
12
- <strong><?php _e( "Instructions", "defender-security" ) ?></strong>
13
- <p>
14
- <?php _e( "1. Copy the generated code into your site specific .conf file usually located in a subdirectory under /etc/nginx/... or /usr/local/nginx/conf/...", "defender-security" ) ?>
15
- </p>
16
- <p>
17
- <?php _e( "2. Add the code above inside the server section in the file, right before the php location block. Looks something like:", "defender-security" ) ?>
18
- <code>location ~ \.php$ {</code>
19
- </p>
20
- <p>
21
- <?php _e( "3. Reload NGINX.", "defender-security" ) ?>
22
- </p>
23
- <strong><?php _e( "Code", "defender-security" ) ?></strong>
24
- <?php
25
- if ( DIRECTORY_SEPARATOR == '\\' ) {
26
- //Windows
27
- $wp_includes = str_replace( ABSPATH, '', WPINC );
28
- $wp_content = str_replace( ABSPATH, '', WP_CONTENT_DIR );
29
- } else {
30
- $wp_includes = str_replace( $_SERVER['DOCUMENT_ROOT'], '', ABSPATH . WPINC );
31
- $wp_content = str_replace( $_SERVER['DOCUMENT_ROOT'], '', WP_CONTENT_DIR );
32
- }
33
-
34
- $rules = "# Stop php access except to needed files in wp-includes
35
- location ~* ^$wp_includes/.*(?<!(js/tinymce/wp-tinymce))\.php$ {
36
- internal; #internal allows ms-files.php rewrite in multisite to work
37
- }
38
-
39
- # Specifically locks down upload directories in case full wp-content rule below is skipped
40
- location ~* /(?:uploads|files)/.*\.php$ {
41
- deny all;
42
- }
43
-
44
- # Deny direct access to .php files in the /wp-content/ directory (including sub-folders).
45
- # Note this can break some poorly coded plugins/themes, replace the plugin or remove this block if it causes trouble
46
- location ~* ^$wp_content/.*\.php$ {
47
- deny all;
48
- }
49
- ";
50
- ?>
51
- <p>
52
- <code>## WP Defender - Prevent PHP Execution ##<br/><?php echo esc_html( $rules ) ?><span class="hardener-nginx-extra-instructions"></span><br/>## WP Defender - End ##</code>
53
- </p>
54
- <div class="sui-notice">
55
- <p><?php echo sprintf( __( "Still having trouble? <a target='_blank' href=\"%s\">Open a support ticket</a>.", "defender-security" ), 'https://premium.wpmudev.org/forums/forum/support#question' ) ?></p>
56
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/protect-information.php DELETED
@@ -1,121 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- if ( DIRECTORY_SEPARATOR == '\\' ) {
4
- //Windows
5
- $wp_includes = str_replace( ABSPATH, '', WPINC );
6
- $wp_content = str_replace( ABSPATH, '', WP_CONTENT_DIR );
7
- } else {
8
- $wp_includes = str_replace( $_SERVER['DOCUMENT_ROOT'], '', ABSPATH . WPINC );
9
- $wp_content = str_replace( $_SERVER['DOCUMENT_ROOT'], '', WP_CONTENT_DIR );
10
- }
11
- global $is_nginx, $is_IIS, $is_iis7;
12
- $setting = \WP_Defender\Module\Hardener\Model\Settings::instance();
13
- if ( $is_nginx ) {
14
- $setting->active_server = 'nginx';
15
- } else if ( $is_IIS ) {
16
- $setting->active_server = 'iis';
17
- } else if ( $is_iis7 ) {
18
- $setting->active_server = 'iis-7';
19
- }
20
- ?>
21
- <div id="disable_xml_rpc" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
22
- <div class="sui-accordion-item-header">
23
- <div class="sui-accordion-item-title">
24
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
25
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
26
- <?php _e( 'Information Disclosure', "defender-security" ) ?>
27
- </div>
28
- <div class="sui-accordion-col-4">
29
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
30
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
31
- </button>
32
- </div>
33
- </div>
34
- <div class="sui-accordion-item-body">
35
- <div class="sui-box">
36
- <div class="sui-box-body">
37
- <strong>
38
- <?php _e( "Overview", "defender-security" ) ?>
39
- </strong>
40
- <p>
41
- <?php _e( "Often servers are incorrectly configured, and can allow an attacker to get access to sensitive files like your config, .htaccess and backup files. Hackers can grab these files and use them to gain access to your website or database.", "defender-security" ) ?>
42
- </p>
43
- <?php if ( $checked ): ?>
44
- <div class="sui-notice sui-notice-success">
45
- <p>
46
- <?php _e( "You've automatically enabled information disclosure protection.", "defender-security" ) ?>
47
- </p>
48
- </div>
49
- <?php else: ?>
50
- <div class="sui-notice sui-notice-warning">
51
- <p>
52
- <?php _e( "You don't have information disclosure protection active.", "defender-security" ) ?>
53
- </p>
54
- </div>
55
- <p>
56
- <?php _e( "Currently, some of your config files aren’t protected. It’s best to lock this down these files to ensure they can’t be accessed by hackers and bots.", "defender-security" ) ?>
57
- </p>
58
- <div class="sui-tabs sui-side-tabs">
59
-
60
- <div data-tabs>
61
- <div class="<?php echo $setting->active_server == 'apache' ? 'active' : '' ?>"><?php _e( "Apache", "defender-security" ) ?></div>
62
- <div class="<?php echo $setting->active_server == 'litespeed' ? 'active' : '' ?>"><?php _e( "Litespeed", "defender-security" ) ?></div>
63
- <div class="<?php echo $setting->active_server == 'nginx' ? 'active' : '' ?>"><?php _e( "Nginx", "defender-security" ) ?></div>
64
- <div class="<?php echo $setting->active_server == 'iis' ? 'active' : '' ?>"><?php _e( "IIS", "defender-security" ) ?></div>
65
- <div class="<?php echo $setting->active_server == 'iis7' ? 'active' : '' ?>"><?php _e( "IIS7", "defender-security" ) ?></div>
66
- </div>
67
-
68
- <div data-panes>
69
- <div class="sui-tab-boxed <?php echo $setting->active_server == 'apache' ? 'active' : '' ?>">
70
- <?php $controller->renderPartial( 'rules/information-disclosure/apache_litespeed', array(
71
- 'setting' => $setting
72
- ) ) ?>
73
- </div>
74
- <div class="sui-tab-boxed <?php echo $setting->active_server == 'litespeed' ? 'active' : '' ?>">
75
- <?php $controller->renderPartial( 'rules/information-disclosure/apache_litespeed', array(
76
- 'setting' => $setting
77
- ) ) ?>
78
- </div>
79
- <div class="sui-tab-boxed hardener-instructions <?php echo $setting->active_server == 'nginx' ? 'active' : '' ?>">
80
- <?php $controller->renderPartial( 'rules/information-disclosure/nginx', array(
81
- 'setting' => $setting
82
- ) ) ?>
83
- </div>
84
- <div class="sui-tab-boxed <?php echo $setting->active_server == 'iis' ? 'active' : '' ?>">
85
- <p><?php printf( __( 'For IIS servers, <a href="%s">visit Microsoft TechNet</a>', "defender-security" ), 'https://technet.microsoft.com/en-us/library/cc725855(v=ws.10).aspx' ); ?></p>
86
- </div>
87
- <div class="sui-tab-boxed <?php echo $setting->active_server == 'iis7' ? 'active' : '' ?>">
88
- <?php $controller->renderPartial( 'rules/prevent-php/iis7', array(
89
- 'setting' => $setting
90
- ) ) ?>
91
- </div>
92
-
93
- </div>
94
-
95
- </div>
96
- <?php endif; ?>
97
- </div>
98
- <?php if ( ! $checked ): ?>
99
- <div class="sui-box-footer">
100
- <div class="sui-actions-left">
101
- <?php $controller->showIgnoreForm() ?>
102
- </div>
103
- </div>
104
- <?php else: ?>
105
- <?php if ( $setting->active_server == 'apache' || $setting->active_server == 'lite_speed' ): ?>
106
- <div class="sui-box-footer">
107
- <div class="sui-actions-left">
108
- <form method="post" class="hardener-frm rule-process">
109
- <?php $controller->createNonceField(); ?>
110
- <input type="hidden" name="action" value="processRevert"/>
111
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
112
- <button class="sui-button sui-button-gray"
113
- type="submit"><?php _e( "Revert", "defender-security" ) ?></button>
114
- </form>
115
- </div>
116
- </div>
117
- <?php endif; ?>
118
- <?php endif; ?>
119
- </div>
120
- </div>
121
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/security-key.php DELETED
@@ -1,97 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- ?>
4
- <div id="security_key" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
5
- <div class="sui-accordion-item-header">
6
- <div class="sui-accordion-item-title">
7
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
8
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
9
- <?php _e( "Security Keys", "defender-security" ) ?>
10
- </div>
11
- <div class="sui-accordion-col-4">
12
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
13
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
14
- </button>
15
- </div>
16
- </div>
17
- <div class="sui-accordion-item-body">
18
- <div class="sui-box">
19
- <div class="sui-box-body">
20
- <strong><?php _e( "Overview", "defender-security" ) ?></strong>
21
- <p>
22
- <?php _e( "WordPress uses security keys to improve the encryption of informtion stores in user cookies making it harder to crack passwords. A non-encrypted password like “username” or “wordpress” can be easily broken, but a random, unpredictable, encrypted password such as “88a7da62429ba6ad3cb3c76a09641fc” takes years to come up with the right combination.", "defender-security" ) ?>
23
- </p>
24
- <?php if ( $checked ): ?>
25
- <div class="sui-notice sui-notice-success">
26
- <p>
27
- <?php _e( "You've automatically disabled PHP execution..", "defender-security" ) ?>
28
- </p>
29
- </div>
30
- <?php else: ?>
31
- <strong>
32
- <?php _e( "Status", "defender-security" ) ?>
33
- </strong>
34
- <div class="sui-notice sui-notice-warning">
35
- <p>
36
- <?php
37
- printf( __( "Your current security keys are %s days old. Time to update them!", "defender-security" ), $daysAgo ) ?>
38
- </p>
39
- </div>
40
- <p>
41
- <?php _e( "Currently you have old security keys, it pays to keep them updated - we recommend every 60 days or less.", "defender-security" ) ?>
42
- </p>
43
- <strong>
44
- <?php _e( "How to fix", "defender-security" ) ?>
45
- </strong>
46
- <p>
47
- <?php _e( "We can regenerate your key salts instantly for you and they will be good for another 60 days. Note that this will log all users out of your site. You can also choose how often we should notify you to change them.", "defender-security" ) ?>
48
- </p>
49
- <?php endif; ?>
50
- <form method="post" class="hardener-frm" id="reminder-date">
51
- <div class="sui-form-field">
52
- <label class="sui-label"><?php _e( "Reminder frequency", "defender-security" ) ?></label>
53
- <div class="sui-row">
54
- <div class="sui-col-md-3">
55
- <select name="remind_date" class="sui-select-sm">
56
- <option
57
- value="30 days" <?php selected( '30 days', $interval ) ?>><?php esc_html_e( '30 Days', "defender-security" ) ?></option>
58
- <option
59
- value="60 days" <?php selected( '60 days', $interval ) ?>><?php esc_html_e( '60 Days', "defender-security" ) ?></option>
60
- <option
61
- value="90 days" <?php selected( '90 days', $interval ) ?>><?php esc_html_e( '90 Days', "defender-security" ) ?></option>
62
- <option
63
- value="6 months" <?php selected( '6 months', $interval ) ?>><?php esc_html_e( '6 Months', "defender-security" ) ?></option>
64
- <option
65
- value="1 year" <?php selected( '1 year', $interval ) ?>><?php esc_html_e( '1 Year', "defender-security" ) ?></option>
66
- </select>
67
- </div>
68
- <div class="sui-col">
69
- <input type="hidden" name="action" value="updateSecurityReminder"/>
70
- <button type="submit" class="sui-button sui-button-ghost">
71
- <?php _e( "Update", "defender-security" ) ?>
72
- </button>
73
- </div>
74
- </div>
75
- </div>
76
- </form>
77
- </div>
78
- <?php if ( !$checked ): ?>
79
- <div class="sui-box-footer">
80
- <div class="sui-actions-left">
81
- <?php $controller->showIgnoreForm() ?>
82
- </div>
83
- <div class="sui-actions-right">
84
- <form method="post" class="hardener-frm rule-process hardener-frm-process-xml-rpc">
85
- <?php $controller->createNonceField(); ?>
86
- <input type="hidden" name="action" value="processHardener"/>
87
- <input type="hidden" name="updatePosts" value="no"/>
88
- <input type="hidden" name="slug" value="<?php echo $controller::$slug ?>"/>
89
- <button class="sui-button sui-button-blue" type="submit">
90
- <?php _e( "Regenerate Keys", "defender-security" ) ?></button>
91
- </form>
92
- </div>
93
- </div>
94
- <?php endif; ?>
95
- </div>
96
- </div>
97
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/hardener/view/rules/wp-version.php DELETED
@@ -1,74 +0,0 @@
1
- <?php
2
- $checked = $controller->check();
3
- ?>
4
- <div id="wp-version" class="sui-accordion-item <?php echo $controller->getCssClass() ?>">
5
- <div class="sui-accordion-item-header">
6
- <div class="sui-accordion-item-title">
7
- <i aria-hidden="true" class="<?php echo $checked ? 'sui-icon-check-tick sui-success'
8
- : 'sui-icon-warning-alert sui-warning' ?>"></i>
9
- <?php _e( "WordPress Version", "defender-security" ) ?>
10
- </div>
11
- <div class="sui-accordion-col-4">
12
- <button class="sui-button-icon sui-accordion-open-indicator" aria-label="Open item">
13
- <i class="sui-icon-chevron-down" aria-hidden="true"></i>
14
- </button>
15
- </div>
16
- </div>
17
- <div class="sui-accordion-item-body">
18
- <div class="sui-box">
19
- <div class="sui-box-body">
20
- <strong>
21
- <?php _e( "Overview", "defender-security" ) ?>
22
- </strong>
23
- <p>
24
- <?php _e( "WordPress is an extremely popular platform, and with that popularity comes hackers that increasingly want to exploit WordPress based websites. Leaving your WordPress installation out of date is an almost guaranteed way to get hacked as you’re missing out on the latest security patches. ", "defender-security" ) ?>
25
- </p>
26
- <strong>
27
- <?php _e( "Status", "defender-security" ) ?>
28
- </strong>
29
- <?php if ( $checked ): ?>
30
- <div class="sui-notice sui-notice-success">
31
- <p>
32
- <?php _e( "You have the latest version of WordPress installed, good stuff!", "defender-security" ) ?>
33
- </p>
34
- </div>
35
- <?php else: ?>
36
- <div class="sui-border-frame">
37
- <div class="sui-row">
38
- <div class="sui-col">
39
- <strong><?php _e( "Current WordPress version", "defender-security" ) ?></strong>
40
- <span class="sui-tag <?php echo $checked ? 'sui-tag-success' : 'sui-tag-warning' ?>"><?php echo \WP_Defender\Behavior\Utils::instance()->getWPVersion() ?></span>
41
- </div>
42
- <div class="sui-col">
43
- <strong><?php _e( "Recommended", "defender-security" ) ?></strong>
44
- <span class="sui-tag"><?php echo $controller->getService()->getLatestVersion() ?></span>
45
- </div>
46
- </div>
47
- </div>
48
- <p>
49
- <?php printf( __( "Your current WordPress version is out of date, which means you could be missing out on the latest security patches in v%s", "defender-security" ), $controller->getService()->getLatestVersion() ) ?>
50
- </p>
51
- <strong>
52
- <?php _e( "How to fix", "defender-security" ) ?>
53
- </strong>
54
- <p>
55
- <?php _e( "We recommend you update your version to the latest stable release, and maintain updating it regularly. Alternately, you can ignore this upgrade if you don’t require the latest version.", "defender-security" ) ?>
56
- </p>
57
- <?php endif; ?>
58
- </div>
59
- <?php if ( ! $checked ): ?>
60
- <div class="sui-box-footer">
61
- <div class="sui-actions-left">
62
- <?php $controller->showIgnoreForm() ?>
63
- </div>
64
- <div class="sui-actions-right">
65
- <a href="<?php echo network_admin_url( 'update-core.php' ) ?>"
66
- class="sui-button sui-button-ghost">
67
- <?php esc_html_e( "Update WordPress", "defender-security" ) ?>
68
- </a>
69
- </div>
70
- </div>
71
- <?php endif; ?>
72
- </div>
73
- </div>
74
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/controller/main.php CHANGED
@@ -337,7 +337,7 @@ class Main extends Controller {
337
  wp_enqueue_style( 'wpmudev-sui' );
338
  wp_enqueue_style( 'defender' );
339
  wp_register_script( 'defender-iplockout', wp_defender()->getPluginUrl() . 'assets/app/ip-lockout.js', array(
340
- 'vue',
341
  'defender',
342
  'wp-i18n'
343
  ), wp_defender()->version, true );
337
  wp_enqueue_style( 'wpmudev-sui' );
338
  wp_enqueue_style( 'defender' );
339
  wp_register_script( 'defender-iplockout', wp_defender()->getPluginUrl() . 'assets/app/ip-lockout.js', array(
340
+ 'def-vue',
341
  'defender',
342
  'wp-i18n'
343
  ), wp_defender()->version, true );
app/module/ip-lockout/js/script.js DELETED
@@ -1,425 +0,0 @@
1
- jQuery(function ($) {
2
- //bind form handler for every form inside scan section
3
- WDIP.formHandler();
4
- WDIP.listenFilter();
5
- WDIP.pullSummaryData();
6
- WDIP.initDatepicker();
7
-
8
- $('div.iplockout').on('form-submitted', function (e, data, form) {
9
- if (form.attr('id') != 'settings-frm') {
10
- return;
11
- }
12
- if (data.success == true) {
13
- Defender.showNotification('success', data.data.message);
14
- } else {
15
- Defender.showNotification('error', data.data.message);
16
- }
17
- });
18
- setTimeout(function () {
19
- if ($('#moving-data').size() > 0) {
20
- $('#moving-data').submit();
21
- }
22
- }, 1000);
23
- $('div.iplockout').on('form-submitted', function (e, data, form) {
24
- if (form.attr('id') != 'moving-data') {
25
- return;
26
- }
27
- if (data.success == true) {
28
- setTimeout(function () {
29
- location.reload();
30
- }, 1000)
31
- $('.scan-progress-text span').text('100%');
32
- $('.scan-progress-bar span').css('width', '100%');
33
- Defender.showNotification('success', data.data.message);
34
- } else {
35
- var progress = data.data.progress;
36
- $('.scan-progress-text span').text(progress + '%');
37
- $('.scan-progress-bar span').css('width', progress + '%');
38
- setTimeout(function () {
39
- $('#moving-data').submit();
40
- }, 1000);
41
- }
42
- });
43
- $('body').on('change', '.single-select, #apply-all', function () {
44
- var inputs = $('input[name="ids[]"]:checked');
45
- var ids = [];
46
- inputs.each(function (index, input) {
47
- ids.push($(input).val());
48
- });
49
- $('.ids').val(ids.join(','));
50
- })
51
- $('.deactivate-login-lockout').click(function () {
52
- $('.ip-frm').append('<input type="hidden" name="login_protection" value="0"/>');
53
- $(this).attr('disabled', 'disabled');
54
- $('.ip-frm').submit();
55
- });
56
- $('.deactivate-404-lockout').click(function () {
57
- $('.ip-frm').append('<input type="hidden" name="detect_404" value="0"/>');
58
- $(this).attr('disabled', 'disabled');
59
- $('.ip-frm').submit();
60
- });
61
- //media uploader
62
- var mediaUploader;
63
- $('.file-picker').click(function () {
64
- if (mediaUploader) {
65
- mediaUploader.open();
66
- return;
67
- }
68
- // Extend the wp.media object
69
- mediaUploader = wp.media.frames.file_frame = wp.media({
70
- title: 'Choose an Import file',
71
- button: {
72
- text: 'Choose File'
73
- }, multiple: false
74
- });
75
-
76
- // When a file is selected, grab the URL and set it as the text field's value
77
- mediaUploader.on('select', function () {
78
- var attachment = mediaUploader.state().get('selection').first().toJSON();
79
- $('#file_import').val(attachment.id);
80
- $('.upload-input').addClass('sui-has_file');
81
- $('.upload-input .sui-upload-file span').text(attachment.filename);
82
- });
83
- // Open the uploader dialog
84
- mediaUploader.open();
85
- })
86
- $('.file-picker-remove').click(function () {
87
- $('.upload-input').removeClass('sui-has_file');
88
- $('#file_import').val('');
89
- })
90
- $('#apply-all').click(function () {
91
- $('.single-select').prop('checked', $(this).prop('checked'));
92
- });
93
- $('.btn-import-ip').click(function () {
94
- var that = $(this);
95
- $.ajax({
96
- type: 'POST',
97
- url: ajaxurl,
98
- data: {
99
- action: 'wd_import_ips',
100
- file: $('#file_import').val()
101
- }, beforeSend: function () {
102
- that.attr('disabled', 'disabled');
103
- },
104
- success: function (data) {
105
- that.removeAttr('disabled');
106
- if (data.success == 1) {
107
- Defender.showNotification('success', data.data.message);
108
- setTimeout(function () {
109
- location.reload();
110
- }, 2000)
111
- } else {
112
- Defender.showNotification('error', data.data.message);
113
- }
114
- }
115
- })
116
- });
117
- $('.download-geo-ip').click(function () {
118
- var that = $(this);
119
- $.ajax({
120
- type: 'POST',
121
- url: ajaxurl,
122
- data: {
123
- action: 'downloadGeoIPDB',
124
- _wpnonce: that.data('nonce')
125
- }, beforeSend: function () {
126
- that.attr('disabled', 'disabled');
127
- that.addClass('sui-button-onload');
128
- },
129
- success: function (data) {
130
- if (data.success == 1) {
131
- Defender.showNotification('success', data.data.message);
132
- location.reload();
133
- } else {
134
- Defender.showNotification('error', data.data.message);
135
- }
136
- }
137
- })
138
- })
139
- $('select[name="report_frequency"]').change(function () {
140
- if ($(this).val() == '1') {
141
- $(this).closest('.schedule-box').find('div.days-container').hide();
142
- } else {
143
- $(this).closest('.schedule-box').find('div.days-container').show();
144
- }
145
- }).change();
146
- var last_date = $('#wd_range_from').val();
147
- $('#wd_range_from').change(function () {
148
- if (last_date !== $(this).val()) {
149
- query = WDIP.buildFilterQuery();
150
- WDIP.ajaxPull(query, function () {
151
-
152
- });
153
- }
154
- last_date = $(this).val();
155
- })
156
- $('body').on('click', '.ip-action', function (e) {
157
- e.preventDefault();
158
- var that = $(this);
159
- $.ajax({
160
- type: 'POST',
161
- url: ajaxurl,
162
- data: {
163
- action: 'lockoutIPAction',
164
- id: that.data('id'),
165
- type: that.data('type'),
166
- nonce: that.data('nonce')
167
- },
168
- success: function (data) {
169
- if (data.success == 1) {
170
- that.parent().html(data.data.message);
171
- }
172
- }
173
- })
174
- })
175
-
176
- $('body').on('click', '.lockout-nav', function (e) {
177
- e.preventDefault();
178
- var query = WDIP.buildFilterQuery();
179
- if (order !== false && orderby !== false) {
180
- query += '&order=' + order + '&orderby=' + orderby;
181
- }
182
- query += '&paged=' + $(this).data('paged');
183
- WDIP.ajaxPull(query, function () {
184
-
185
- });
186
- });
187
- $('body').on('click', '.empty-logs', function () {
188
- var that = $(this);
189
- cleaningLog(that);
190
- });
191
- if ($('#defLockoutUpgrade').size() > 0) {
192
- $('body').addClass('wpmud');
193
- WDP.showOverlay("#defLockoutUpgrade", {
194
- title: 'Updating...',
195
- class: 'no-close migrate-iplockout wp-defender'
196
- });
197
- }
198
-
199
- function cleaningLog(button) {
200
- $.ajax({
201
- type: 'POST',
202
- url: ajaxurl,
203
- data: {
204
- action: 'lockoutEmptyLogs',
205
- nonce: button.data('nonce')
206
- },
207
- beforeSend: function () {
208
- button.attr('disabled', 'disabled');
209
- button.text('Deleting logs...');
210
- button.css('cursor', 'wait');
211
- },
212
- success: function (data) {
213
- if (data.success) {
214
- Defender.showNotification('success', data.data.message);
215
- button.removeAttr('disabled');
216
- location.reload();
217
- } else {
218
- cleaningLog(button);
219
- }
220
- }
221
- })
222
- }
223
-
224
- $('input[name="login_protection"], input[name="detect_404"]').change(function () {
225
- $('#settings-frm').submit();
226
- })
227
-
228
- $('#bulk-select').on('click', function () {
229
- $('.single-select').prop('checked', $(this).prop('checked'))
230
- })
231
- var order = false;
232
- var orderby = false;
233
- $('#lockout-logs-sort').change(function () {
234
- var value = $(this).val();
235
- var query = WDIP.buildFilterQuery();
236
- if (value === 'latest') {
237
- query += '&orderby=id&order=desc'
238
- order = 'desc';
239
- orderby = 'id';
240
- } else if (value === 'oldest') {
241
- query += '&orderby=id&order=asc'
242
- order = 'asc';
243
- orderby = 'id';
244
- } else if (value === 'ip') {
245
- query += '&orderby=ip&order=asc'
246
- order = 'asc';
247
- orderby = 'ip';
248
- }
249
- WDIP.ajaxPull(query, function () {
250
-
251
- });
252
- })
253
- });
254
-
255
- window.WDIP = window.WDIP || {};
256
- WDIP.formHandler = function () {
257
- var jq = jQuery;
258
- jq('body').on('submit', '.ip-frm', function () {
259
- var data = jq(this).serialize();
260
- var that = jq(this);
261
- jq.ajax({
262
- type: 'POST',
263
- url: ajaxurl,
264
- data: data,
265
- beforeSend: function () {
266
- that.find('.sui-button').attr('disabled', 'disabled');
267
- },
268
- success: function (data) {
269
- if (data.data != undefined && data.data.reload != undefined) {
270
- setTimeout(function () {
271
- location.reload();
272
- }, data.data.reload * 1000)
273
- if (data.data.message != undefined) {
274
- if (data.success) {
275
- Defender.showNotification('success', data.data.message);
276
- } else {
277
- Defender.showNotification('error', data.data.message);
278
- }
279
- }
280
- } else if (data.data != undefined && data.data.url != undefined) {
281
- location.href = data.data.url;
282
- } else {
283
- var buttons = that.find('.sui-button');
284
- if (buttons.size() > 0) {
285
- buttons.removeAttr('disabled');
286
- }
287
- jq('div.iplockout').trigger('form-submitted', [data, that])
288
- }
289
- }
290
- })
291
- return false;
292
- })
293
- };
294
- WDIP.listenFilter = function () {
295
- var jq = jQuery;
296
- jq('body').on('submit', '.lockout-logs-filter form', function () {
297
- var query = WDIP.buildFilterQuery();
298
- WDIP.ajaxPull(query, function () {
299
- })
300
- return false;
301
- })
302
- };
303
- var isFirst = true;
304
- var urlOrigin = location.href;
305
- WDIP.ajaxPull = function (query, callback) {
306
- var jq = jQuery;
307
- var overlay = Defender.createOverlay();
308
- jq.ajax({
309
- type: 'GET',
310
- url: ajaxurl,
311
- data: query + '&action=lockoutLoadLogs',
312
- beforeSend: function () {
313
- jq('.lockout-logs-container').prepend(overlay);
314
- },
315
- success: function (data) {
316
- jq('.lockout-logs-container table').replaceWith(jq(data.data.html).find('table').first());
317
- jq('.lockout-logs-container .sui-pagination-wrap').replaceWith(jq(data.data.html).find('.sui-pagination-wrap').first());
318
- //jq('.lockout-logs-container').replaceWith(jq(data.data.html));
319
- //rebind according
320
- jq('.sui-accordion').each(function () {
321
- SUI.suiAccordion(this);
322
- });
323
- overlay.remove();
324
- if (isFirst == false) {
325
- //window.history.pushState(null, document.title, urlOrigin + '&' + query);
326
- } else {
327
- isFirst = false;
328
- }
329
- callback();
330
- }
331
- })
332
- }
333
-
334
- WDIP.buildFilterQuery = function () {
335
- var jq = jQuery;
336
- var form = jq('.lockout-logs-filter form');
337
- var inputs = form.find(':input');
338
- var query = [];
339
- inputs.each(function () {
340
- if (jq(this).attr('name') !== undefined) {
341
- query.push(jq(this).attr('name') + '=' + jq(this).val());
342
- }
343
- });
344
- //need to input the date range too
345
- var range = jq('#wd_range_from').val();
346
- range = range.split('-');
347
- query.push('date_from=' + jq.trim(range[0]));
348
- query.push('date_to=' + jq.trim(range[1]));
349
- return query.join('&');
350
- };
351
-
352
- WDIP.pullSummaryData = function () {
353
- var jq = jQuery;
354
- var box = jq('#lockoutSummary');
355
- if (box.size() > 0) {
356
- jq.ajax({
357
- type: 'POST',
358
- url: ajaxurl,
359
- data: {
360
- action: 'lockoutSummaryData',
361
- nonce: jq('#summaryNonce').val()
362
- },
363
- success: function (data) {
364
- if (data.success == true) {
365
- jq('.lockoutToday').text(data.data.lockoutToday);
366
- jq('.lockoutThisMonth').text(data.data.lockoutThisMonth);
367
- jq('.lastLockout').text(data.data.lastLockout);
368
- jq('.loginLockoutThisWeek').text(data.data.loginLockoutThisWeek);
369
- jq('.lockout404ThisWeek').text(data.data.lockout404ThisWeek);
370
- box.find('.wd-overlay').remove();
371
- }
372
- }
373
- })
374
- }
375
- }
376
-
377
- WDIP.initDatepicker = function () {
378
- //calendar
379
- if (jQuery('#wd_range_from').size() > 0) {
380
- var start = moment().subtract(7, 'days');
381
- var end = moment();
382
- var maxDate = end;
383
- var minDate = moment().subtract(30, 'days');
384
- jQuery('#wd_range_from').daterangepicker({
385
- //startDate: start,
386
- //endDate: end,
387
- autoApply: true,
388
- maxDate: maxDate,
389
- minDate: minDate,
390
- "linkedCalendars": false,
391
- showDropdowns: false,
392
- applyClass: 'wd-hide',
393
- cancelClass: 'wd-hide',
394
- alwaysShowCalendars: true,
395
- opens: 'left',
396
- dateLimit: {
397
- days: 90
398
- },
399
- locale: {
400
- "format": "MM/DD/YYYY",
401
- "separator": " - "
402
- },
403
- template: '<div class="daterangepicker wd-calendar wp-defender dropdown-menu"> ' +
404
- '<div class="ranges"> ' +
405
- '<div class="range_inputs"> ' +
406
- '<button class="applyBtn" disabled="disabled" type="button"></button> ' +
407
- '<button class="cancelBtn" type="button"></button> ' +
408
- '</div> ' +
409
- '</div> ' +
410
- '<div class="calendar left"> ' +
411
- '<div class="calendar-table"></div> ' +
412
- '</div> ' +
413
- '<div class="calendar right"> ' +
414
- '<div class="calendar-table"></div> ' +
415
- '</div> ' +
416
- '</div>',
417
- showCustomRangeLabel: false,
418
- ranges: {
419
- 'Today': [moment(), moment()],
420
- '7 Days': [moment().subtract(6, 'days'), moment()],
421
- '30 Days': [moment().subtract(29, 'days'), moment()]
422
- }
423
- });
424
- }
425
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/blacklist/enabled.php DELETED
@@ -1,228 +0,0 @@
1
- <div class="sui-box">
2
- <form method="post" id="settings-frm" class="ip-frm">
3
- <div class="sui-box-header">
4
- <h3 class="sui-box-title">
5
- <?php _e( "IP Banning", "defender-security" ) ?>
6
- </h3>
7
- </div>
8
- <div class="sui-box-body">
9
- <p>
10
- <?php _e( "Choose which IP addresses you wish to permanently ban from accessing your website.", "defender-security" ) ?>
11
- </p>
12
- <div class="sui-box-settings-row">
13
- <div class="sui-box-settings-col-1">
14
- <span class="sui-settings-label">
15
- <?php _e( "IP Addresses", "defender-security" ) ?>
16
- </span>
17
- <span class="sui-description">
18
- <?php _e( "Add IP addresses you want to permanently ban from, or always allow access to your website. ", "defender-security" ) ?>
19
- </span>
20
- </div>
21
- <div class="sui-box-settings-col-2">
22
- <strong><?php _e( "Blacklist", "defender-security" ) ?></strong>
23
- <p class="sui-description">
24
- <?php _e( "Any IP addresses you list here will be completely blocked from accessing your website, including admins.", "defender-security" ) ?>
25
- </p>
26
- <div class="sui-border-frame">
27
- <label class="sui-label"><?php _e( "Banned IPs", "defender-security" ) ?></label>
28
- <textarea class="sui-form-control"
29
- id="ip_blacklist" name="ip_blacklist"
30
- placeholder="<?php esc_attr_e( "Add IP addresses here, one per line", "defender-security" ) ?>"
31
- rows="8"><?php echo $settings->ip_blacklist ?></textarea>
32
- <span class="sui-description">
33
- <?php _e( "Both IPv4 and IPv6 are supported. IP ranges are also accepted in format xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx.", "defender-security" ) ?>
34
- </span>
35
- </div>
36
- <strong><?php _e( "Whitelist", "defender-security" ) ?></strong>
37
- <p class="sui-description">
38
- <?php _e( "Any IP addresses you list here will be exempt any existing or new ban rules outlined in login protection, 404 detection or IP ban lists.", "defender-security" ) ?>
39
- </p>
40
- <div class="sui-border-frame">
41
- <label class="sui-label"><?php _e( "Allowed IPs", "defender-security" ) ?></label>
42
- <textarea class="sui-form-control"
43
- id="ip_whitelist" name="ip_whitelist"
44
- placeholder="<?php esc_attr_e( "Add IP addresses here, one per line", "defender-security" ) ?>"
45
- rows="8"><?php echo $settings->ip_whitelist ?></textarea>
46
- <span class="sui-description">
47
- <?php _e( "One IP address per line. Both IPv4 and IPv6 are supported. IP ranges are also accepted in format xxx.xxx.xxx.xxx-xxx.xxx.xxx.xxx.", "defender-security" ) ?>
48
- </span>
49
- </div>
50
- <div class="sui-notice">
51
- <p>
52
- <?php printf( __( "We recommend you add your own IP to avoid getting locked out accidentally! Your current IP is <span class='admin-ip'>%s</span>.", "defender-security" ), \WP_Defender\Behavior\Utils::instance()->getUserIp() ) ?>
53
- </p>
54
- </div>
55
- </div>
56
- </div>
57
- <div class="sui-box-settings-row">
58
- <div class="sui-box-settings-col-1">
59
- <span class="sui-settings-label"><?php esc_html_e( "Locations", "defender-security" ) ?></span>
60
- <span class="sui-description"><?php esc_html_e( "Use this feature to ban any countries you don’t expect/want traffic from to protect your site entirely from unwanted hackers and bots.", "defender-security" ) ?></span>
61
- </div>
62
- <div class="sui-box-settings-col-2 geo-ip-block">
63
- <?php if ( version_compare( phpversion(), '5.4', '<' ) ): ?>
64
- <div class="sui-notice sui-notice-warning">
65
- <p>
66
- <?php printf( __( "This feature requires PHP 5.4 or newer. Please upgrade your PHP version if you wish to use location banning.", "defender-security" ), admin_url( 'admin.php?page=wdf-ip-lockout&view=blacklist' ) ) ?>
67
- </p>
68
- </div>
69
- <?php else: ?>
70
- <?php $country = \WP_Defender\Module\IP_Lockout\Component\IP_API::getCurrentCountry(); ?>
71
- <?php if ( $settings->isGeoDBDownloaded() == false ): ?>
72
- <div class="sui-notice sui-notice-info">
73
- <p>
74
- <?php _e( "To use this feature you must first download the latest Geo IP Database.", "defender-security" ) ?>
75
- </p>
76
- <div class="sui-notice-buttons">
77
- <button type="button" class="sui-button sui-button-ghost download-geo-ip"
78
- data-nonce="<?php echo wp_create_nonce( 'downloadGeoIPDB' ) ?>">
79
- <span class="sui-loading-text"><?php _e( "Download", "defender-security" ) ?></span>
80
- <i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
81
- </button>
82
- </div>
83
- </div>
84
- <?php elseif ( ! $country ): ?>
85
- <div class="sui-notice sui-notice-warning">
86
- <p>
87
- <?php printf( __( "Can't detect current country, it seem your site setup in localhost environment", "defender-security" ), admin_url( 'admin.php?page=wdf-ip-lockout&view=blacklist' ) ) ?>
88
- </p>
89
- </div>
90
- <?php else: ?>
91
- <strong><?php _e( "Blacklist", "defender-security" ) ?></strong>
92
- <p class="sui-description no-margin-bottom">
93
- <?php _e( "Any countries you select will not be able to access any area of your website.", "defender-security" ) ?>
94
- </p>
95
- <div class="sui-border-frame">
96
- <div class="sui-control-with-icon">
97
- <input type="hidden" name="country_blacklist[]" value=""/>
98
- <select class="sui-select sui-select sui-form-control" name="country_blacklist[]"
99
- placeholder="<?php esc_attr_e( "Type country name", "defender-security" ) ?>"
100
- multiple>
101
- <option value="all" <?php selected( true, in_array( 'all', $settings->getCountryBlacklist() ) ) ?>><?php _e( "Block all", "defender-security" ) ?></option>
102
- <?php foreach ( \WP_Defender\Behavior\Utils::instance()->countriesList() as $code => $country ): ?>
103
- <option value="<?php echo $code ?>" <?php selected( true, in_array( $code, $settings->getCountryBlacklist() ) ) ?>><?php echo $country ?></option>
104
- <?php endforeach; ?>
105
- </select>
106
- <i class="sui-icon-web-globe-world" aria-hidden="true"></i>
107
- </div>
108
- </div>
109
- <strong><?php _e( "Whitelist", "defender-security" ) ?></strong>
110
- <p class="sui-description no-margin-bottom">
111
- <?php _e( "Any countries you select will always be able to view your website. Note: We’ve added your default country by default.", "defender-security" ) ?>
112
- </p>
113
- <div class="sui-border-frame">
114
- <div class="sui-control-with-icon">
115
- <input type="hidden" name="country_whitelist[]" value=""/>
116
- <select class="sui-select sui-select sui-form-control" name="country_whitelist[]"
117
- placeholder="<?php esc_attr_e( "Type country name", "defender-security" ) ?>"
118
- multiple>
119
- <?php foreach ( \WP_Defender\Behavior\Utils::instance()->countriesList() as $code => $country ): ?>
120
- <option value="<?php echo $code ?>" <?php selected( true, in_array( $code, $settings->getCountryWhitelist() ) ) ?>><?php echo $country ?></option>
121
- <?php endforeach; ?>
122
- </select>
123
- <i class="sui-icon-web-globe-world" aria-hidden="true"></i>
124
- </div>
125
- <p class="sui-description">
126
- <?php _e( "Note: your whitelist will override any country ban, but will still follow your 404 and login lockout rules.", "defender-security" ) ?>
127
- </p>
128
- </div>
129
- <p class="sui-description">
130
- This product includes GeoLite2 data created by MaxMind, available from
131
- <a href="https://www.maxmind.com">https://www.maxmind.com</a>.
132
- </p>
133
- <?php endif; ?>
134
- <?php endif; ?>
135
- </div>
136
- </div>
137
- <div class="sui-box-settings-row">
138
- <div class="sui-box-settings-col-1">
139
- <span class="sui-settings-label"><?php esc_html_e( "Message", "defender-security" ) ?></span>
140
- <span class="sui-description"><?php esc_html_e( "Customize the message locked out users will see.", "defender-security" ) ?></span>
141
- </div>
142
- <div class="sui-box-settings-col-2">
143
- <label class="sui-label">
144
- <?php _e( "Custom message", "defender-security" ) ?>
145
- </label>
146
- <div class="sui-form-field">
147
- <textarea name="ip_lockout_message" class="sui-form-control"
148
- placeholder="<?php esc_attr_e( "The administrator has blocked your IP from accessing this website.", "defender-security" ) ?>"
149
- id="ip_lockout_message"><?php echo $settings->ip_lockout_message ?></textarea>
150
- <span class="sui-description">
151
- <?php echo sprintf( __( "This message will be displayed across your website during the lockout period. See a quick preview <a href=\"%s\">here</a>.", "defender-security" ), add_query_arg( array(
152
- 'def-lockout-demo' => 1,
153
- 'type' => 'blacklist'
154
- ), network_site_url() ) ) ?>
155
- </span>
156
- </div>
157
- </div>
158
- </div>
159
- <div class="sui-box-settings-row">
160
- <div class="sui-box-settings-col-1">
161
- <span class="sui-settings-label">
162
- <?php _e( "Import", "defender-security" ) ?>
163
- </span>
164
- <span class="sui-description">
165
- <?php _e( "Use this tool to import both your blacklist and whitelist from another website.", "defender-security" ) ?>
166
- </span>
167
- </div>
168
- <div class="sui-box-settings-col-2">
169
- <div class="sui-form-field">
170
- <span><?php _e( "Upload your exported blacklist.", "defender-security" ) ?></span>
171
- <div class="upload-input sui-upload">
172
- <div class="sui-upload-file">
173
-
174
- <span></span>
175
-
176
- <button aria-label="Remove file" class="file-picker-remove">
177
- <i class="sui-icon-close" aria-hidden="true"></i>
178
- </button>
179
-
180
- </div>
181
- <button type="button" class="sui-upload-button file-picker">
182
- <i class="sui-icon-upload-cloud" aria-hidden="true"></i> Upload file
183
- </button>
184
- <input type="hidden" name="file_import" id="file_import">
185
- </div>
186
- <div class="clear margin-top-10"></div>
187
- <button type="button" class="sui-button sui-button-ghost btn-import-ip">
188
- <i class="sui-icon-download-cloud" aria-hidden="true"></i>
189
- <?php _e( "Import", "defender-security" ) ?>
190
- </button>
191
- <span class="sui-description">
192
- <?php _e( "Note: Existing IPs will not be removed - only new IPs added.", "defender-security" ) ?>
193
- </span>
194
- </div>
195
- </div>
196
- </div>
197
- <div class="sui-box-settings-row">
198
- <div class="sui-box-settings-col-1">
199
- <span class="sui-settings-label">
200
- <?php _e( "Export", "defender-security" ) ?>
201
- </span>
202
- <span class="sui-description">
203
- <?php _e( "Export both your blacklist and whitelist to use on another website.", "defender-security" ) ?>
204
- </span>
205
- </div>
206
- <div class="sui-box-settings-col-2">
207
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=export&_wpnonce=' . wp_create_nonce( 'defipexport' ) ) ?>"
208
- class="sui-button sui-button-outlined export">
209
- <i class="sui-icon-upload-cloud" aria-hidden="true"></i>
210
- <?php _e( "Export", "defender-security" ) ?>
211
- </a>
212
- <span class="sui-description">
213
- <?php _e( "The export will include both the blacklist and whitelist.", "defender-security" ) ?>
214
- </span>
215
- </div>
216
- </div>
217
- </div>
218
- <?php wp_nonce_field( 'saveLockoutSettings' ) ?>
219
- <input type="hidden" name="action" value="saveLockoutSettings"/>
220
- <div class="sui-box-footer">
221
- <div class="sui-actions-right">
222
- <button type="submit" class="sui-button sui-button-blue">
223
- <i class="sui-icon-save" aria-hidden="true"></i>
224
- <?php _e( "Save Changes", "defender-security" ) ?></button>
225
- </div>
226
- </div>
227
- </form>
228
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/detect-404/disabled.php DELETED
@@ -1,27 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <h3 class="sui-box-title">
4
- <?php esc_html_e( "404 Detection", "defender-security" ) ?>
5
- </h3>
6
- </div>
7
- <div class="sui-message">
8
- <?php if ( wp_defender()->whiteLabel == 0 ): ?>
9
- <img
10
- src="<?php echo wp_defender()->getPluginUrl() ?>assets/img/lockout-man.svg"
11
- class="sui-image"/>
12
- <?php endif; ?>
13
- <div class="sui-message-content">
14
- <p>
15
- <?php esc_html_e( "With 404 detection enabled, Defender will keep an eye out for IP addresses that repeatedly request pages on your website that don’t exist and then temporarily block them from accessing your site.", "defender-security" ) ?>
16
- </p>
17
- <form method="post" id="settings-frm" class="ip-frm">
18
- <?php wp_nonce_field( 'saveLockoutSettings' ) ?>
19
- <input type="hidden" name="action" value="saveLockoutSettings"/>
20
- <input type="hidden" name="detect_404" value="1"/>
21
- <button type="submit" class="sui-button sui-button-blue">
22
- <?php esc_html_e( "Enable", "defender-security" ) ?>
23
- </button>
24
- </form>
25
- </div>
26
- </div>
27
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/layouts/layout.php DELETED
@@ -1,146 +0,0 @@
1
- <div class="sui-wrap <?php echo \WP_Defender\Behavior\Utils::instance()->maybeHighContrast() ?>">
2
- <div class="wp-defender" id="wp-defender">
3
- <div class="iplockout">
4
- <div class="sui-header">
5
- <h1 class="sui-header-title"><?php _e( "IP Lockout", "defender-security" ) ?></h1>
6
- <?php if ( wp_defender()->hideDocLinks === false ): ?>
7
- <div class="sui-actions-right">
8
- <div class="sui-actions-right">
9
- <a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#ip-lockouts"
10
- target="_blank" class="sui-button sui-button-ghost">
11
- <i class="sui-icon-academy"></i> <?php _e( "View Documentation", "defender-security" ) ?>
12
- </a>
13
- </div>
14
- </div>
15
- <?php endif; ?>
16
- </div>
17
- <div class="sui-box sui-summary <?php echo \WP_Defender\Behavior\Utils::instance()->getSummaryClass() ?>"
18
- id="lockoutSummary">
19
- <input type="hidden" id="summaryNonce" value="<?php echo wp_create_nonce( 'lockoutSummaryData' ) ?>"/>
20
- <div class="sui-summary-image-space" aria-hidden="true"></div>
21
- <div class="sui-summary-segment">
22
- <div class="sui-summary-details">
23
- <span class="sui-summary-large lockoutToday">-</span>
24
- <span class="sui-summary-sub"><?php _e( "Lockouts in the past 24 hours", "defender-security" ) ?></span>
25
-
26
- <span class="sui-summary-detail lockoutThisMonth">-</span>
27
- <span class="sui-summary-sub"><?php _e( "Total lockouts in the past 30 days", "defender-security" ) ?></span>
28
- </div>
29
-
30
- </div>
31
-
32
- <div class="sui-summary-segment">
33
- <ul class="sui-list">
34
- <li>
35
- <span class="sui-list-label"><?php _e( "Last lockout", "defender-security" ) ?></span>
36
- <span class="sui-list-detail lastLockout"> .</span>
37
- </li>
38
- <li>
39
- <span class="sui-list-label"><?php _e( "Login lockouts in the past 7 days", "defender-security" ) ?></span>
40
- <span class="sui-list-detail loginLockoutThisWeek">.</span>
41
- </li>
42
- <li>
43
- <span class="sui-list-label"><?php _e( "404 lockouts in the past 7 days", "defender-security" ) ?></span>
44
- <span class="sui-list-detail lockout404ThisWeek">.</span>
45
- </li>
46
- </ul>
47
- </div>
48
- </div>
49
- <div class="sui-row-with-sidenav">
50
- <div class="sui-sidenav">
51
- <ul class="sui-vertical-tabs sui-sidenav-hide-md">
52
- <li class="sui-vertical-tab <?php echo \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', false ) == false ? 'current' : null ?>">
53
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout' ) ?>"><?php _e( "Login Protection", "defender-security" ) ?></a>
54
- </li>
55
- <li class="sui-vertical-tab <?php echo $controller->isView( '404' ) ? 'current' : null ?>">
56
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=404' ) ?>"><?php _e( "404 Detection", "defender-security" ) ?></a>
57
- </li>
58
- <li class="sui-vertical-tab <?php echo $controller->isView( 'blacklist' ) ? 'current' : null ?>">
59
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=blacklist' ) ?>"><?php _e( "IP Banning", "defender-security" ) ?></a>
60
- </li>
61
- <li class="sui-vertical-tab <?php echo $controller->isView( 'logs' ) ? 'current' : null ?>">
62
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=logs' ) ?>"><?php _e( "Logs", "defender-security" ) ?></a>
63
- </li>
64
- <li class="sui-vertical-tab <?php echo $controller->isView( 'notification' ) ? 'current' : null ?>">
65
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=notification' ) ?>"><?php _e( "Notifications", "defender-security" ) ?></a>
66
- </li>
67
- <li class="sui-vertical-tab <?php echo $controller->isView( 'settings' ) ? 'current' : null ?>">
68
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=settings' ) ?>"><?php _e( "Settings", "defender-security" ) ?></a>
69
- </li>
70
- <li class="sui-vertical-tab <?php echo $controller->isView( 'reporting' ) ? 'current' : null ?>">
71
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=reporting' ) ?>"><?php _e( "Reporting", "defender-security" ) ?></a>
72
- </li>
73
- </ul>
74
- <div class="sui-sidenav-hide-lg">
75
- <select class="sui-mobile-nav" style="display: none;">
76
- <option <?php selected( null, \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', null ) ) ?>
77
- value="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout' ) ?>"><?php _e( "Login Protection", "defender-security" ) ?></option>
78
- <option <?php selected( '404', \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', null ) ) ?>
79
- value="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=404' ) ?>"><?php _e( "404 Detection", "defender-security" ) ?></option>
80
- <option <?php selected( 'blacklist', \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', null ) ) ?>
81
- value="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=blacklist' ) ?>"><?php _e( "IP Blacklist", "defender-security" ) ?></option>
82
- <option <?php selected( 'logs', \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', null ) ) ?>
83
- value="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=logs' ) ?>"><?php _e( "Logs", "defender-security" ) ?></option>
84
- <option <?php selected( 'notification', \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', null ) ) ?>
85
- value="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=notification' ) ?>"><?php _e( "Notifications", "defender-security" ) ?></option>
86
- <option <?php selected( 'settings', \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', null ) ) ?>
87
- value="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=settings' ) ?>"><?php _e( "Settings", "defender-security" ) ?></option>
88
- <option <?php selected( 'reporting', \Hammer\Helper\HTTP_Helper::retrieve_get( 'view', null ) ) ?>
89
- value="<?php echo network_admin_url( 'admin.php?page=wdf-ip-lockout&view=reporting' ) ?>"><?php _e( "Reporting", "defender-security" ) ?></option>
90
- </select>
91
- </div>
92
- </div>
93
- <?php echo $contents ?>
94
- </div>
95
- </div>
96
- <?php if ( wp_defender()->changeFooter ): ?>
97
- <div class="sui-footer"><?php echo wp_defender()->footerText ?></div>
98
- <?php else: ?>
99
- <div class="sui-footer">Made with <i class="sui-icon-heart"></i> by WPMU DEV</div>
100
- <?php endif; ?>
101
- <?php if ( wp_defender()->hideDocLinks == false ): ?>
102
- <?php if ( wp_defender()->isFree ): ?>
103
- <ul class="sui-footer-nav">
104
- <li><a href="https://profiles.wordpress.org/wpmudev#content-plugins" target="_blank">Free
105
- Plugins</a>
106
- </li>
107
- <li><a href="https://premium.wpmudev.org/features/" target="_blank">Membership</a></li>
108
- <li><a href="https://premium.wpmudev.org/roadmap/" target="_blank">Roadmap</a></li>
109
- <li><a href="https://wordpress.org/support/plugin/plugin-name" target="_blank">Support</a></li>
110
- <li><a href="https://premium.wpmudev.org/docs/" target="_blank">Docs</a></li>
111
- <li><a href="https://premium.wpmudev.org/hub/" target="_blank">The Hub</a></li>
112
- <li><a href="https://premium.wpmudev.org/terms-of-service/" target="_blank">Terms of Service</a>
113
- </li>
114
- <li><a href="https://incsub.com/privacy-policy/" target="_blank">Privacy Policy</a></li>
115
- </ul>
116
- <?php else: ?>
117
- <ul class="sui-footer-nav">
118
- <li><a href="https://premium.wpmudev.org/hub/" target="_blank">The Hub</a></li>
119
- <li><a href="https://premium.wpmudev.org/projects/category/plugins/" target="_blank">Plugins</a>
120
- </li>
121
- <li><a href="https://premium.wpmudev.org/roadmap/" target="_blank">Roadmap</a></li>
122
- <li><a href="https://premium.wpmudev.org/hub/support/" target="_blank">Support</a></li>
123
- <li><a href="https://premium.wpmudev.org/docs/" target="_blank">Docs</a></li>
124
- <li><a href="https://premium.wpmudev.org/hub/community/" target="_blank">Community</a></li>
125
- <li><a href="https://premium.wpmudev.org/terms-of-service/" target="_blank">Terms of Service</a>
126
- </li>
127
- <li><a href="https://incsub.com/privacy-policy/" target="_blank">Privacy Policy</a></li>
128
- </ul>
129
- <?php endif; ?>
130
- <ul class="sui-footer-social">
131
- <li><a href="https://www.facebook.com/wpmudev" target="_blank">
132
- <i class="sui-icon-social-facebook" aria-hidden="true"></i>
133
- <span class="sui-screen-reader-text">Facebook</span>
134
- </a></li>
135
- <li><a href="https://twitter.com/wpmudev" target="_blank">
136
- <i class="sui-icon-social-twitter" aria-hidden="true"></i></a>
137
- <span class="sui-screen-reader-text">Twitter</span>
138
- </li>
139
- <li><a href="https://www.instagram.com/wpmu_dev/" target="_blank">
140
- <i class="sui-icon-instagram" aria-hidden="true"></i>
141
- <span class="sui-screen-reader-text">Instagram</span>
142
- </a></li>
143
- </ul>
144
- <?php endif; ?>
145
- </div>
146
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/logging/enabled.php DELETED
@@ -1,33 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <h3 class="sui-box-title"><?php esc_html_e( "Logs", "defender-security" ) ?></h3>
4
- <div class="sui-actions-right">
5
- <div class="box-filter">
6
- <span>
7
- <?php _e( "Sort by", "defender-security" ) ?>
8
- </span>
9
- <select class="sui-select-sm" name="sort" id="lockout-logs-sort">
10
- <option value="latest"><?php _e( "Latest", "defender-security" ) ?></option>
11
- <option value="oldest"><?php _e( "Oldest", "defender-security" ) ?></option>
12
- <option value="ip"><?php _e( "IP Address", "defender-security" ) ?></option>
13
- </select>
14
- </div>
15
- <a href="<?php echo admin_url( 'admin-ajax.php?action=lockoutExportAsCsv' ) ?>"
16
- class="sui-button sui-button-outlined">
17
- <?php _e( "Export CSV", "defender-security" ) ?>
18
- </a>
19
- </div>
20
- </div>
21
- <div class="sui-box-body">
22
- <p>
23
- <?php
24
- _e( "Here's your comprehensive IP lockout log. You can whitelist and ban IPs from there.", "defender-security" )
25
- ?>
26
- </p>
27
- <?php
28
- $table = new \WP_Defender\Module\IP_Lockout\Component\Logs_Table();
29
- $table->prepare_items();
30
- $table->display();
31
- ?>
32
- </div>
33
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/login-lockouts/disabled.php DELETED
@@ -1,27 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <h3 class="sui-box-title">
4
- <?php esc_html_e( "Login Protection", "defender-security" ) ?>
5
- </h3>
6
- </div>
7
- <div class="sui-message">
8
- <?php if ( wp_defender()->whiteLabel == 0 ): ?>
9
- <img
10
- src="<?php echo wp_defender()->getPluginUrl() ?>assets/img/lockout-man.svg"
11
- class="sui-image"/>
12
- <?php endif; ?>
13
- <div class="sui-message-content">
14
- <p>
15
- <?php esc_html_e( "Put a stop to hackers trying to randomly guess your login credentials. Defender will lock out users after a set number of failed login attempts.", "defender-security" ) ?>
16
- </p>
17
- <form method="post" id="settings-frm" class="ip-frm">
18
- <?php wp_nonce_field( 'saveLockoutSettings' ) ?>
19
- <input type="hidden" name="action" value="saveLockoutSettings"/>
20
- <input type="hidden" name="login_protection" value="1"/>
21
- <button type="submit" class="sui-button sui-button-blue">
22
- <?php esc_html_e( "Active", "defender-security" ) ?>
23
- </button>
24
- </form>
25
- </div>
26
- </div>
27
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/login-lockouts/enabled.php DELETED
@@ -1,170 +0,0 @@
1
- <div class="sui-box">
2
- <form method="post" id="settings-frm" class="ip-frm">
3
- <div class="sui-box-header">
4
- <h3 class="sui-box-title">
5
- <?php _e( "Login Protection", "defender-security" ) ?>
6
- </h3>
7
- </div>
8
- <div class="sui-box-body">
9
- <p>
10
- <?php _e( "Put a stop to hackers trying to randomly guess your login credentials. Defender will lock out users after a set number of failed login attempts.", "defender-security" ) ?>
11
- </p>
12
- <?php if ( ( $count = ( \WP_Defender\Module\IP_Lockout\Component\Login_Protection_Api::getLoginLockouts( strtotime( '-24 hours', current_time( 'timestamp' ) ) ) ) ) > 0 ): ?>
13
- <div class="sui-notice sui-notice-error">
14
- <p>
15
- <?php echo sprintf( __( "There have been %d lockouts in the last 24 hours. <a href=\"%s\"><strong>View log</strong></a>.", "defender-security" ), $count, network_admin_url( 'admin.php?page=wdf-ip-lockout&view=logs' ) ) ?>
16
- </p>
17
- </div>
18
- <?php else: ?>
19
- <div class="sui-notice sui-notice-info">
20
- <p>
21
- <?php esc_html_e( "Login protection is enabled. There are no lockouts logged yet.", "defender-security" ) ?>
22
- </p>
23
- </div>
24
- <?php endif; ?>
25
- <div class="sui-box-settings-row">
26
- <div class="sui-box-settings-col-1">
27
- <span class="sui-settings-label"><?php esc_html_e( "Threshold", "defender-security" ) ?></span>
28
- <span class="sui-description"><?php esc_html_e( "Specify how many failed login attempts within a specific time period will trigger a lockout.", "defender-security" ) ?></span>
29
- </div>
30
- <div class="sui-box-settings-col-2">
31
- <div class="sui-form-field">
32
- <div class="sui-row">
33
- <div class="sui-col-md-2">
34
- <label class="sui-label"><?php _e( "Failed logins", "defender-security" ) ?></label>
35
- <input size="8" value="<?php echo $settings->login_protection_login_attempt ?>"
36
- type="text"
37
- class="sui-form-control sui-input-sm sui-field-has-suffix"
38
- id="login_protection_login_attempt"
39
- name="login_protection_login_attempt"/>
40
- </div>
41
- <div class="sui-col-md-3">
42
- <label class="sui-label">
43
- <?php _e( "Timeframe", "defender-security" ) ?>
44
- </label>
45
- <input size="8" value="<?php echo $settings->login_protection_lockout_timeframe ?>"
46
- id="login_lockout_timeframe"
47
- name="login_protection_lockout_timeframe" type="text"
48
- class="sui-form-control sui-input-sm sui-field-has-suffix">
49
- <span class="sui-field-suffix"><?php esc_html_e( "seconds", "defender-security" ) ?></span>
50
- </div>
51
- </div>
52
- </div>
53
- </div>
54
- </div>
55
- <div class="sui-box-settings-row">
56
- <div class="sui-box-settings-col-1">
57
- <span class="sui-settings-label"><?php esc_html_e( "Duration", "defender-security" ) ?></span>
58
- <span class="sui-description"><?php esc_html_e( "Choose how long you’d like to ban the locked out user for.", "defender-security" ) ?></span>
59
- </div>
60
- <div class="sui-box-settings-col-2">
61
- <div class="sui-side-tabs sui-tabs">
62
- <div data-tabs>
63
- <div rel="input_value" data-target="login_protection_lockout_ban" data-value="0"
64
- class="<?php echo $settings->login_protection_lockout_ban == 0 ? 'active' : null ?>"><?php _e( "Timeframe", "defender-security" ) ?></div>
65
- <div rel="input_value" data-target="login_protection_lockout_ban" data-value="1"
66
- class="<?php echo $settings->login_protection_lockout_ban == 1 ? 'active' : null ?>"><?php _e( "Permanent", "defender-security" ) ?></div>
67
- </div>
68
- <div data-panes>
69
- <div class="sui-tab-boxed <?php echo $settings->login_protection_lockout_ban == 0 ? 'active' : null ?>">
70
- <div class="sui-row">
71
- <div class="sui-col-md-3">
72
- <input value="<?php echo $settings->login_protection_lockout_duration ?>"
73
- size="4"
74
- name="login_protection_lockout_duration"
75
- id="login_protection_lockout_duration" type="text"
76
- class="sui-form-control"/>
77
- </div>
78
- <div class="sui-col-md-4">
79
- <select name="login_protection_lockout_duration_unit">
80
- <option <?php echo selected( 'seconds', $settings->login_protection_lockout_duration_unit ) ?>
81
- value="seconds"><?php _e( "Seconds", "defender-security" ) ?></option>
82
- <option <?php echo selected( 'minutes', $settings->login_protection_lockout_duration_unit ) ?>
83
- value="minutes"><?php _e( "Minutes", "defender-security" ) ?></option>
84
- <option <?php echo selected( 'hours', $settings->login_protection_lockout_duration_unit ) ?>
85
- value="hours"><?php _e( "Hours", "defender-security" ) ?></option>
86
- </select>
87
- </div>
88
- </div>
89
- </div>
90
- </div>
91
- <input type="hidden" name="login_protection_lockout_ban"
92
- value="<?php echo $settings->login_protection_lockout_ban ?>"/>
93
- </div>
94
- </div>
95
- </div>
96
- <div class="sui-box-settings-row">
97
- <div class="sui-box-settings-col-1">
98
- <span class="sui-settings-label"><?php esc_html_e( "Message", "defender-security" ) ?></span>
99
- <span class="sui-description"><?php esc_html_e( "Customize the message locked out users will see.", "defender-security" ) ?></span>
100
- </div>
101
- <div class="sui-box-settings-col-2">
102
- <div class="sui-form-field">
103
- <label class="sui-label"><?php _e( "Custom message", "defender-security" ) ?></label>
104
- <textarea name="login_protection_lockout_message" class="sui-form-control"
105
- id="login_protection_lockout_message"><?php echo $settings->login_protection_lockout_message ?></textarea>
106
- <span class="sui-description">
107
- <?php echo sprintf( __( "This message will be displayed across your website during the lockout period. See a quick preview <a href=\"%s\">here</a>.", "defender-security" ), add_query_arg( array(
108
- 'def-lockout-demo' => 1,
109
- 'type' => 'login'
110
- ), network_site_url() ) ) ?>
111
- </span>
112
- </div>
113
- </div>
114
- </div>
115
- <div class="sui-box-settings-row">
116
- <div class="sui-box-settings-col-1">
117
- <span class="sui-settings-label"><?php esc_html_e( "Banned usernames", "defender-security" ) ?></span>
118
- <span class="sui-description">
119
- <?php esc_html_e( "It is highly recommended you avoid using the default username ‘admin’. Use this tool to automatically lockout and ban users who try to login with common usernames.", "defender-security" ) ?>
120
- </span>
121
- </div>
122
- <div class="sui-box-settings-col-2">
123
- <div class="sui-form-field">
124
- <label class="sui-label"><?php _e( "Banned usernames", "defender-security" ) ?></label>
125
- <textarea class="sui-form-control"
126
- placeholder="<?php esc_attr_e( "Type usernames, one per line", "defender-security" ) ?>"
127
- id="username_blacklist" name="username_blacklist"
128
- rows="8"><?php echo $settings->username_blacklist ?></textarea>
129
- <span class="sui-description">
130
- <?php
131
- $host = parse_url( get_site_url(), PHP_URL_HOST );
132
- $host = str_replace( 'www.', '', $host );
133
- $host = explode( '.', $host );
134
- if ( is_array( $host ) ) {
135
- $host = array_shift( $host );
136
- } else {
137
- $host = null;
138
- }
139
- printf( __( "We recommend adding the usernames <strong>admin</strong>, <strong>administrator</strong> and your hostname <strong>%s</strong> as these are common for bots to try logging in with. One username per line", "defender-security" ), $host ) ?>
140
- </span>
141
- </div>
142
- </div>
143
- </div>
144
- <div class="sui-box-settings-row">
145
- <div class="sui-box-settings-col-1">
146
- <span class="sui-settings-label">
147
- <?php _e( "Deactivate", "defender-security" ) ?>
148
- </span>
149
- <span class="sui-description">
150
- <?php esc_html_e( "If you no longer want to use this feature you can turn it off at any time.", "defender-security" ) ?>
151
- </span>
152
- </div>
153
- <div class="sui-box-settings-col-2">
154
- <button type="button" class="sui-button sui-button-ghost deactivate-login-lockout">
155
- <?php _e( "Deactivate", "defender-security" ) ?>
156
- </button>
157
- </div>
158
- </div>
159
- </div>
160
- <div class="sui-box-footer">
161
- <?php wp_nonce_field( 'saveLockoutSettings' ) ?>
162
- <input type="hidden" name="action" value="saveLockoutSettings"/>
163
- <div class="sui-actions-right">
164
- <button type="submit" class="sui-button sui-button-blue">
165
- <i class="sui-icon-save" aria-hidden="true"></i>
166
- <?php _e( "Save Changes", "defender-security" ) ?></button>
167
- </div>
168
- </div>
169
- </form>
170
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/migration.php DELETED
@@ -1,35 +0,0 @@
1
- <div class="wrap">
2
- <div id="wp-defender" class="wp-defender">
3
- <div class="iplockout">
4
- <div class="advanced-tools">
5
- <h2 class="title">
6
- <?php _e( "Migration", "defender-security" ) ?>
7
- </h2>
8
- </div>
9
- </div>
10
- </div>
11
- </div>
12
-
13
- <dialog id="defLockoutUpgrade">
14
- <div class="line">
15
- <?php _e( "Please hold on, we are updating your data, please don't close this tab...", "defender-security" ) ?>
16
- </div>
17
- <div class="well mline">
18
- <div class="scan-progress">
19
- <div class="scan-progress-text">
20
- <img src="<?php echo wp_defender()->getPluginUrl() ?>assets/img/loading.gif" width="18"
21
- height="18"/>
22
- <span>0%</span>
23
- </div>
24
- <div class="scan-progress-bar">
25
- <span style="width: 0%"></span>
26
- </div>
27
- </div>
28
- </div>
29
- <form method="post" id="moving-data" class="ip-frm">
30
- <input type="hidden" name="action" value="migrateData"/>
31
- <?php
32
- wp_nonce_field( 'processScan' );
33
- ?>
34
- </form>
35
- </dialog>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/notification/report-free.php DELETED
@@ -1,34 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <h3 class="sui-box-title">
4
- <?php _e( "Reporting", "defender-security" ) ?>
5
- </h3>
6
- </div>
7
- <div class="sui-box-body sui-upsell-items">
8
- <div class="sui-box-settings-row sui-disabled no-padding-bottom no-margin-bottom">
9
- <div class="sui-box-settings-col-1">
10
- <span class="sui-settings-label"><?php _e( "Lockouts Report", "defender-security" ) ?></span>
11
- <span class="sui-description">
12
- <?php esc_html_e( "Configure Defender to automatically email you a lockout report for this website.", "defender-security" ) ?>
13
- </span>
14
- </div>
15
- <div class="sui-box-settings-col-2">
16
- <div class="sui-side-tabs sui-tabs">
17
- <div data-tabs>
18
- <div><?php _e( "On", "defender-security" ) ?></div>
19
- <div class="active"><?php _e( "Off", "defender-security" ) ?></div>
20
- </div>
21
- </div>
22
- </div>
23
- </div>
24
- <div class="sui-box-settings-row sui-upsell-row">
25
- <img class="sui-image sui-upsell-image"
26
- src="<?php echo wp_defender()->getPluginUrl() . '/assets/img/scanning-free-man.svg' ?>">
27
- <div class="sui-upsell-notice">
28
- <p>
29
- <?php printf( __( "Schedule daily, weekly or monthly lockout summary reports for all your websites. This feature is included in a WPMU DEV membership along with 100+ plugins & themes, 24/7 support and lots of handy site management tools – <a href='%s'>Try it all FREE today</a>!", "defender-security" ), \WP_Defender\Behavior\Utils::instance()->campaignURL( 'defender_iplockout_reports_upsell_link' ) ) ?>
30
- </p>
31
- </div>
32
- </div>
33
- </div>
34
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/pro-feature.php DELETED
@@ -1,39 +0,0 @@
1
- <dialog class="dev-team" id="pro-feature" title="<?php _e( "Defender Pro Features", "defender-security" ) ?>">
2
- <div class="wp-defender">
3
- <p class=""><?php _e( "Here’s what you’ll get by upgrading to Defender Pro:", "defender-security" ) ?></p>
4
- <div class="well well-blank with-cap">
5
- <i class="def-icon icon-tick fill-blue"></i>
6
- <strong><?php _e( "Automatic Full File Scans & Notifications", "defender-security" ) ?></strong>
7
- <p class="sub">
8
- <?php _e( "Schedule Defender to automatically run a full file scan daily, weekly or monthly and get email reports
9
- when
10
- issues arise.", "defender-security" ) ?>
11
- </p>
12
- </div>
13
- <div class="well well-blank with-cap">
14
- <i class="def-icon icon-tick fill-blue"></i>
15
- <strong><?php _e( "Advanced File Scanning", "defender-security" ) ?></strong>
16
- <p class="sub">
17
- <?php _e( "Defender will go beyond just plugins and themes and scan your entire file system for suspicious code.", "defender-security" ) ?>
18
- </p>
19
- </div>
20
- <div class="well well-blank with-cap">
21
- <i class="def-icon icon-tick fill-blue"></i>
22
- <strong><?php _e( "Audit Logging", "defender-security" ) ?></strong>
23
- <p class="sub">
24
- <?php _e( "Track and log each and every event when changes are made to your website and get detailed reports on what’s going on behind the scenes, including any hacking attempts on your site.", "defender-security" ) ?>
25
- </p>
26
- </div>
27
- <div class="well well-blank with-cap mline">
28
- <i class="def-icon icon-tick fill-blue"></i>
29
- <strong><?php _e( "Tailored Reporting", "defender-security" ) ?></strong>
30
- <p class="sub">
31
- <?php _e( "Get tailored security reports for File Scanning, Audit Logging and IP Lockouts delivered to your inbox so you don’t have to worry about checking in.", "defender-security" ) ?>
32
- </p>
33
- </div>
34
- <div class="tc">
35
- <a class="button button-green mline" href="https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign=defender_modal_upgrade"><?php _e( "Get Defender Pro for Free", "defender-security" ) ?></a>
36
- <p class="is-marginless"><?php _e( "As part of a WPMU DEV free trial.", "defender-security" ) ?></p>
37
- </div>
38
- </div>
39
- </dialog>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/ip-lockout/view/settings.php DELETED
@@ -1,55 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <h3 class="sui-box-title"><?php _e( "Settings", "defender-security" ) ?></h3>
4
- </div>
5
- <form method="post" id="settings-frm" class="ip-frm">
6
- <div class="sui-box-body">
7
- <div class="sui-box-settings-row">
8
- <div class="sui-box-settings-col-1">
9
- <span class="sui-settings-label"><?php esc_html_e( "Storage", "defender-security" ) ?></span>
10
- <span class="sui-description">
11
- <?php esc_html_e( "Event logs are cached on your local server to speed up load times. You can choose how many days to keep logs for before they are removed.", "defender-security" ) ?>
12
- </span>
13
- </div>
14
-
15
- <div class="sui-box-settings-col-2">
16
- <div class="sui-form-field">
17
- <input size="8" value="<?php echo $settings->storage_days ?>" type="text"
18
- class="sui-form-control sui-field-has-suffix" id="storage_days"
19
- name="storage_days"/>
20
- <span class="sui-field-suffix"><?php esc_html_e( "days", "defender-security" ) ?></span>
21
- <span class="sui-description">
22
- <?php _e( "Choose how many days of event logs you’d like to store locally.", "defender-security" ) ?>
23
- </span>
24
- </div>
25
- </div>
26
- </div>
27
- <div class="sui-box-settings-row">
28
- <div class="sui-box-settings-col-1">
29
- <span class="sui-settings-label"><?php esc_html_e( "Delete logs", "defender-security" ) ?></span>
30
- <span class="sui-description">
31
- <?php esc_html_e( "If you wish to delete your current logs simply hit delete and this will wipe your logs clean.", "defender-security" ) ?>
32
- </span>
33
- </div>
34
-
35
- <div class="sui-box-settings-col-2">
36
- <button type="button" data-nonce="<?php echo esc_attr( wp_create_nonce( 'lockoutEmptyLogs' ) ) ?>"
37
- class="sui-button sui-button-ghost empty-logs"><?php _e( "Delete Logs", "defender-security" ) ?></button>
38
- <span class="delete-status"></span>
39
- <span class="sui-description">
40
- <?php _e( "Note: Defender will instantly remove all past event logs, you will not be able to get them back.", "defender-security" ) ?>
41
- </span>
42
- </div>
43
- </div>
44
- </div>
45
- <div class="sui-box-footer">
46
- <?php wp_nonce_field( 'saveLockoutSettings' ) ?>
47
- <input type="hidden" name="action" value="saveLockoutSettings"/>
48
- <div class="sui-actions-right">
49
- <button type="submit" class="sui-button sui-button-blue">
50
- <i class="sui-icon-save" aria-hidden="true"></i>
51
- <?php _e( "Save Changes", "defender-security" ) ?></button>
52
- </div>
53
- </div>
54
- </form>
55
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/scan/behavior/scan-widget.php DELETED
@@ -1,281 +0,0 @@
1
- <?php
2
- /**
3
- * Author: Hoang Ngo
4
- */
5
-
6
- namespace WP_Defender\Module\Scan\Behavior;
7
-
8
- use Hammer\Base\Behavior;
9
- use WP_Defender\Behavior\Utils;
10
- use WP_Defender\Module\Scan\Component\Scan_Api;
11
- use WP_Defender\Module\Scan\Model\Result_Item;
12
- use WP_Defender\Module\Scan\Model\Settings;
13
-
14
- class Scan_Widget extends Behavior {
15
- private $lastScan;
16
- private $activeScan;
17
- private $settled = false;
18
- private $countAll;
19
-
20
- private function pullStatus() {
21
- if ( $this->settled == false ) {
22
- $this->activeScan = Scan_Api::getActiveScan();
23
- $this->lastScan = Scan_Api::getLastScan();
24
- $this->countAll = is_object( $this->lastScan ) ? $this->lastScan->countAll( Result_Item::STATUS_ISSUE ) : 0;
25
- $this->settled = true;
26
- }
27
- }
28
-
29
- public function renderScanWidget() {
30
- $this->pullStatus();
31
- ?>
32
- <div class="sui-box">
33
- <div class="sui-box-header">
34
- <h3 class="sui-box-title">
35
- <i class="sui-icon-layers" aria-hidden="true"></i>
36
- <?php _e( "File Scanning" ) ?>
37
- </h3>
38
- <?php if ( $this->countAll > 0 ): ?>
39
- <div class="sui-actions-left">
40
- <span class="sui-tag sui-tag-error">
41
- <?php echo $this->countAll; ?>
42
- </span>
43
- </div>
44
- <?php endif; ?>
45
- </div>
46
- <?php
47
- $activeScan = $this->activeScan;
48
- $lastScan = $this->lastScan;
49
- if ( ! is_object( $activeScan ) && ! is_object( $lastScan ) ) {
50
- echo $this->_renderNewScan();
51
- } elseif ( is_object( $activeScan ) && $activeScan->status != \WP_Defender\Module\Scan\Model\Scan::STATUS_ERROR ) {
52
- echo $this->_renderScanning( $activeScan );
53
- } elseif ( is_object( $activeScan ) && $activeScan->status == \WP_Defender\Module\Scan\Model\Scan::STATUS_ERROR ) {
54
- echo $this->_renderError( $activeScan );
55
- } else {
56
- echo $this->_renderResult( $lastScan );
57
- }
58
- ?>
59
- </div>
60
- <?php
61
- }
62
-
63
- /**
64
- * @param \WP_Defender\Module\Scan\Model\Scan $activeScan
65
- *
66
- * @return false|string
67
- */
68
- private function _renderError( $activeScan ) {
69
- ob_start();
70
- ?>
71
- <div class="sui-box-body">
72
- <p>
73
- <?php _e( "Scan your website for file changes, vulnerabilities and injected code and get and get notified about anything suspicious.", "defender-security" ) ?>
74
- </p>
75
- <div class="sui-notice sui-notice-error">
76
- <p><?php echo $activeScan->error ?></p>
77
- <div class="sui-notice-buttons">
78
- <a href="#" class="sui-button"><?php _e( "Try again", "defender-security" ) ?></a>
79
- </div>
80
- </div>
81
- </div>
82
- <?php
83
- return ob_get_clean();
84
- }
85
-
86
- private function _renderScanning( $model ) {
87
- $percent = Scan_Api::getScanProgress();
88
- ob_start();
89
- ?>
90
- <div class="wdf-scanning"></div>
91
- <div class="sui-box-body">
92
- <p>
93
- <?php _e( "Defender is scanning your files for malicious code. This will take a few minutes depending on the size of your website.", "defender-security" ) ?>
94
- </p>
95
- <div class="sui-progress-block sui-progress-can-close">
96
- <div class="sui-progress">
97
- <span class="sui-progress-icon" aria-hidden="true">
98
- <i class="sui-icon-loader sui-loading"></i>
99
- </span>
100
- <span class="sui-progress-text">
101
- <span><?php echo $percent ?>%</span>
102
- </span>
103
- <div class="sui-progress-bar" aria-hidden="true">
104
- <span style="width: <?php echo $percent ?>%"></span>
105
- </div>
106
- </div>
107
- <form method="post" class="scan-frm">
108
- <input type="hidden" name="action" value="cancelScan"/>
109
- <?php wp_nonce_field( 'cancelScan', '_wpnonce', true ) ?>
110
- <button class="sui-button-icon" type="submit">
111
- <i class="sui-icon-close"></i>
112
- </button>
113
- </form>
114
- </div>
115
- <div class="sui-progress-state">
116
- <span class="sui-progress-state-text">
117
- <?php echo $model->statusText ?>
118
- </span>
119
- </div>
120
- <form method="post" id="process-scan" class="scan-frm">
121
- <input type="hidden" name="action" value="processScan"/>
122
- <?php
123
- wp_nonce_field( 'processScan' );
124
- ?>
125
- </form>
126
- </div>
127
- <?php
128
- return ob_get_clean();
129
- }
130
-
131
- private function _renderResult( \WP_Defender\Module\Scan\Model\Scan $model ) {
132
- ob_start();
133
- ?>
134
- <div class="sui-box-body <?php echo $this->countAll > 0 ? 'no-padding-bottom' : null ?>">
135
- <p>
136
- <?php _e( "Scan your website for file changes, vulnerabilities and injected code and get and get notified about anything suspicious.", "defender-security" ) ?>
137
- </p>
138
- <?php if ( $this->countAll == 0 ): ?>
139
- <div class="sui-notice sui-notice-success">
140
- <p><?php _e( "Your code is clean, the skies are clear.", "defender-security" ) ?></p>
141
- </div>
142
- <?php else: ?>
143
- <div class="sui-field-list sui-flushed no-border">
144
- <div class="sui-field-list-body">
145
- <div class="sui-field-list-item">
146
- <label class="sui-field-list-item-label">
147
- <strong>
148
- <?php _e( "WordPress Core", "defender-security" ) ?>
149
- </strong>
150
- </label>
151
- <?php echo $model->getCount( 'core' ) == 0 ? ' <i class="sui-icon-check-tick sui-success" aria-hidden="true"></i>' : '<span class="sui-tag sui-tag-error">' . $model->getCount( 'core' ) . '</span>' ?>
152
- </div>
153
- <div class="sui-field-list-item">
154
- <label class="sui-field-list-item-label">
155
- <strong>
156
- <?php _e( "Plugins & Themes", "defender-security" ) ?>
157
- </strong>
158
- </label>
159
- <?php if ( wp_defender()->isFree == false ): ?>
160
- <?php echo $model->getCount( 'vuln' ) == 0 ? ' <i class="sui-icon-check-tick sui-success" aria-hidden="true"></i>' : '<span class="sui-tag sui-tag-error">' . $model->getCount( 'vuln' ) . '</span>' ?>
161
- <?php else: ?>
162
- <a href="<?php echo Utils::instance()->campaignURL( 'defender_dash_filescan_pro_tag' ) ?>"
163
- target="_blank" class="sui-button sui-button-purple"
164
- data-tooltip="<?php esc_attr_e( "Try Defender Pro free today", "defender-security" ) ?>">
165
- <?php _e( "Pro Feature", "defender-security" ) ?>
166
- </a>
167
- <?php endif; ?>
168
- </div>
169
- <div class="sui-field-list-item">
170
- <label class="sui-field-list-item-label">
171
- <strong><?php _e( "Suspicious Code", "defender-security" ) ?></strong>
172
- </label>
173
- <?php if ( wp_defender()->isFree == false ): ?>
174
- <?php echo $model->getCount( 'content' ) == 0 ? ' <i class="sui-icon-check-tick sui-success" aria-hidden="true"></i>' : '<span class="sui-tag sui-tag-error">' . $model->getCount( 'content' ) . '</span>' ?>
175
- <?php else: ?>
176
- <a href="<?php echo Utils::instance()->campaignURL( 'defender_dash_filescan_pro_tag' ) ?>"
177
- target="_blank" class="sui-button sui-button-purple"
178
- tooltip="<?php esc_attr_e( "Try Defender Pro free today", "defender-security" ) ?>">
179
- <?php _e( "Pro Feature", "defender-security" ) ?>
180
- </a>
181
- <?php endif; ?>
182
- </div>
183
- </div>
184
- </div>
185
- <?php endif; ?>
186
- </div>
187
- <div class="sui-box-footer">
188
- <div class="sui-actions-left">
189
- <a href="<?php echo network_admin_url( 'admin.php?page=wdf-scan' ) ?>"
190
- class="sui-button sui-button-ghost">
191
- <i class="sui-icon-eye" aria-hidden="true"></i>
192
- <?php _e( "View Report", "defender-security" ) ?>
193
- </a>
194
- </div>
195
- <?php if ( ! wp_defender()->isFree ): ?>
196
- <div class="sui-actions-right">
197
- <p class="sui-p-small">
198
- <?php
199
- if ( ! empty( Settings::instance()->notification ) ) {
200
- switch ( Settings::instance()->frequency ) {
201
- case '1':
202
- _e( "Automatic scans are running daily", "defender-security" );
203
- break;
204
- case '7':
205
- _e( "Automatic scans are running weekly", "defender-security" );
206
- break;
207
- case '30':
208
- _e( "Automatic scans are running monthly", "defender-security" );
209
- break;
210
- default:
211
- error_log( sprintf( 'Unexpected value %s', Settings::instance()->frequency ) );
212
- break;
213
- }
214
- } else {
215
- _e( "Automatic scans are disabled", "defender-security" );
216
- }
217
- ?>
218
- </p>
219
- </div>
220
- <?php endif; ?>
221
- </div>
222
- <?php
223
- return ob_get_clean();
224
- }
225
-
226
- public function renderScanStatusText() {
227
- $this->pullStatus();
228
- $activeScan = $this->activeScan;
229
- $lastScan = $this->lastScan;
230
- if ( ! is_object( $activeScan ) && ! is_object( $lastScan ) ) {
231
- ?>
232
- <form id="start-a-scan" method="post" class="scan-frm">
233
- <?php
234
- wp_nonce_field( 'startAScan' );
235
- ?>
236
- <input type="hidden" name="action" value="startAScan"/>
237
- <button type="submit"
238
- class="sui-button sui-button-blue">
239
- <?php _e( "RUN SCAN", "defender-security" ) ?>
240
- </button>
241
- </form>
242
- <?php
243
- } elseif ( is_object( $activeScan ) && $activeScan->status != \WP_Defender\Module\Scan\Model\Scan::STATUS_ERROR ) {
244
- ?>
245
- <i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
246
- <?php _e( "Scanning…", "defender-security" ) ?>
247
- <?php
248
- } else {
249
- if ( $this->countAll == 0 ) {
250
- ?>
251
- <i class="sui-icon-check-tick sui-success" aria-hidden="true"></i>
252
- <?php
253
- } else {
254
- ?>
255
- <span class="sui-tag sui-tag-error"><?php echo $this->countAll ?></span>
256
- <?php
257
- }
258
- }
259
- }
260
-
261
- private function _renderNewScan() {
262
- ob_start();
263
- ?>
264
- <div class="sui-box-body">
265
- <p>
266
- <?php _e( "Scan your website for file changes, vulnerabilities and injected code and get
267
- notified about anything suspicious.", "defender-security" ) ?>
268
- </p>
269
- <form id="start-a-scan" method="post" class="scan-frm">
270
- <?php
271
- wp_nonce_field( 'startAScan' );
272
- ?>
273
- <input type="hidden" name="action" value="startAScan"/>
274
- <button type="submit"
275
- class="sui-button sui-button-blue"><?php _e( "Run Scan", "defender-security" ) ?></button>
276
- </form>
277
- </div>
278
- <?php
279
- return ob_get_clean();
280
- }
281
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/scan/component/queue-factory.php CHANGED
@@ -4,6 +4,7 @@ namespace WP_Defender\Module\Scan\Component;
4
 
5
  use Hammer\Queue\Queue;
6
  use Hammer\WP\Component;
 
7
  use WP_Defender\Module\Scan\Behavior\Core_Files;
8
  use WP_Defender\Module\Scan\Behavior\Core_Scan;
9
  use WP_Defender\Module\Scan\Behavior\Pro\Content_Yara_Scan;
4
 
5
  use Hammer\Queue\Queue;
6
  use Hammer\WP\Component;
7
+ use WP_Defender\Behavior\Utils;
8
  use WP_Defender\Module\Scan\Behavior\Core_Files;
9
  use WP_Defender\Module\Scan\Behavior\Core_Scan;
10
  use WP_Defender\Module\Scan\Behavior\Pro\Content_Yara_Scan;
app/module/scan/component/scanning.php CHANGED
@@ -16,7 +16,7 @@ class Scanning extends Component {
16
  /**
17
  * @return bool|\WP_Error
18
  */
19
- public function do() {
20
  $model = Scan_Api::getActiveScan();
21
  $start = microtime( true );
22
  if ( ! is_object( $model ) ) {
@@ -50,6 +50,8 @@ class Scanning extends Component {
50
  $result = $queue->processItem();
51
  if ( $result === false ) {
52
  //current item fail, return
 
 
53
  $queue->saveProcess();
54
  $this->releaseLock();
55
 
16
  /**
17
  * @return bool|\WP_Error
18
  */
19
+ public function run() {
20
  $model = Scan_Api::getActiveScan();
21
  $start = microtime( true );
22
  if ( ! is_object( $model ) ) {
50
  $result = $queue->processItem();
51
  if ( $result === false ) {
52
  //current item fail, return
53
+ //moving on
54
+ $queue->next();
55
  $queue->saveProcess();
56
  $this->releaseLock();
57
 
app/module/scan/controller/main.php CHANGED
@@ -110,7 +110,7 @@ class Main extends \WP_Defender\Controller {
110
  }
111
 
112
  $scanning = new Scan\Component\Scanning();
113
- $ret = $scanning->do();
114
 
115
  if ( $ret == true ) {
116
  //completed
@@ -140,7 +140,7 @@ class Main extends \WP_Defender\Controller {
140
  wp_enqueue_style( 'defender' );
141
 
142
  wp_register_script( 'defender-scan', wp_defender()->getPluginUrl() . 'assets/app/scan.js', [
143
- 'vue',
144
  'defender',
145
  'wp-i18n'
146
  ], wp_defender()->version, true );
110
  }
111
 
112
  $scanning = new Scan\Component\Scanning();
113
+ $ret = $scanning->run();
114
 
115
  if ( $ret == true ) {
116
  //completed
140
  wp_enqueue_style( 'defender' );
141
 
142
  wp_register_script( 'defender-scan', wp_defender()->getPluginUrl() . 'assets/app/scan.js', [
143
+ 'def-vue',
144
  'defender',
145
  'wp-i18n'
146
  ], wp_defender()->version, true );
app/module/scan/controller/rest.php CHANGED
@@ -299,7 +299,7 @@ class Rest extends Controller {
299
 
300
  //$ret = Scan\Component\Scan_Api::processActiveScan();
301
  $scanning = new Scan\Component\Scanning();
302
- $ret = $scanning->do();
303
  if ( $ret == true ) {
304
  do_action( 'sendScanEmail' );
305
 
299
 
300
  //$ret = Scan\Component\Scan_Api::processActiveScan();
301
  $scanning = new Scan\Component\Scanning();
302
+ $ret = $scanning->run();
303
  if ( $ret == true ) {
304
  do_action( 'sendScanEmail' );
305
 
app/module/scan/js/highlight.pack.js DELETED
@@ -1,2 +0,0 @@
1
- /*! highlight.js v9.10.0 | BSD3 License | git.io/hljslicense */
2
- !function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/[&<>]/gm,function(e){return j[e]})}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return w(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||w(i))return i}function o(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset<r[0].offset?e:r:"start"===r[0].event?e:r:e.length?e:r}function o(e){function r(e){return" "+e.nodeName+'="'+n(e.value)+'"'}l+="<"+t(e)+E.map.call(e.attributes,r).join("")+">"}function u(e){l+="</"+t(e)+">"}function c(e){("start"===e.event?o:u)(e.node)}for(var s=0,l="",f=[];e.length||r.length;){var g=i();if(l+=n(a.substring(s,g[0].offset)),s=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===s);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return l+n(a.substr(s))}function s(e){return e.v&&!e.cached_variants&&(e.cached_variants=e.v.map(function(n){return o(e,{v:null},n)})),e.cached_variants||e.eW&&[o(e)]||[e]}function l(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var o={},u=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");o[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?u("keyword",a.k):x(a.k).forEach(function(e){u(e,a.k[e])}),a.k=o}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]),a.c=Array.prototype.concat.apply([],a.c.map(function(e){return s("self"===e?a:e)})),a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var c=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=c.length?t(c.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function s(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function p(e,n,t,r){var a=r?"":I.classPrefix,i='<span class="'+a,o=t?"":C;return i+=e+'">',i+n+o}function h(){var e,t,r,a;if(!E.k)return n(k);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(k);r;)a+=n(k.substring(t,r.index)),e=s(E,r),e?(B+=e[1],a+=p(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(k);return a+n(k.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!L[E.sL])return n(k);var t=e?f(E.sL,k,!0,x[E.sL]):g(k,E.sL.length?E.sL:void 0);return E.r>0&&(B+=t.r),e&&(x[E.sL]=t.top),p(t.language,t.value,!1,!0)}function b(){y+=null!=E.sL?d():h(),k=""}function v(e){y+=e.cN?p(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(k+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?k+=n:(t.eB&&(k+=n),b(),t.rB||t.eB||(k=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?k+=n:(a.rE||a.eE||(k+=n),b(),a.eE&&(k=n));do E.cN&&(y+=C),E.skip||(B+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"<unnamed>")+'"');return k+=n,n.length||1}var N=w(e);if(!N)throw new Error('Unknown language: "'+e+'"');l(N);var R,E=i||N,x={},y="";for(R=E;R!==N;R=R.parent)R.cN&&(y=p(R.cN,"",!0)+y);var k="",B=0;try{for(var M,j,O=0;;){if(E.t.lastIndex=O,M=E.t.exec(t),!M)break;j=m(t.substring(O,M.index),M[0]),O=M.index+j}for(m(t.substr(O)),R=E;R.parent;R=R.parent)R.cN&&(y+=C);return{r:B,value:y,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function g(e,t){t=t||I.languages||x(L);var r={r:0,value:n(e)},a=r;return t.filter(w).forEach(function(n){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function p(e){return I.tabReplace||I.useBR?e.replace(M,function(e,n){return I.useBR&&"\n"===e?"<br>":I.tabReplace?n.replace(/\t/g,I.tabReplace):""}):e}function h(e,n,t){var r=n?y[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function d(e){var n,t,r,o,s,l=i(e);a(l)||(I.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):n=e,s=n.textContent,r=l?f(l,s,!0):g(s),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),s)),r.value=p(r.value),e.innerHTML=r.value,e.className=h(e.className,l,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function b(e){I=o(I,e)}function v(){if(!v.called){v.called=!0;var e=document.querySelectorAll("pre code");E.forEach.call(e,d)}}function m(){addEventListener("DOMContentLoaded",v,!1),addEventListener("load",v,!1)}function N(n,t){var r=L[n]=t(e);r.aliases&&r.aliases.forEach(function(e){y[e]=n})}function R(){return x(L)}function w(e){return e=(e||"").toLowerCase(),L[e]||L[y[e]]}var E=[],x=Object.keys,L={},y={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="</span>",I={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},j={"&":"&amp;","<":"&lt;",">":"&gt;"};return e.highlight=f,e.highlightAuto=g,e.fixMarkup=p,e.highlightBlock=d,e.configure=b,e.initHighlighting=v,e.initHighlightingOnLoad=m,e.registerLanguage=N,e.listLanguages=R,e.getLanguage=w,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/</,r:0,c:[{cN:"attr",b:e,r:0},{b:/=\s*/,r:0,c:[{cN:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("<!--","-->",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{name:"style"},c:[t],starts:{e:"</style>",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{name:"script"},c:[t],starts:{e:"</script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});hljs.registerLanguage("diff",function(e){return{aliases:["patch"],c:[{cN:"meta",r:10,v:[{b:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"comment",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\-{3}/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+{3}/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"addition",b:"^\\!",e:"$"}]}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",t={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:c,r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,t]}]}});hljs.registerLanguage("php",function(e){var c={b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},i={cN:"meta",b:/<\?(php)?|\?>/},t={cN:"string",c:[e.BE,i],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{aliases:["php3","php4","php5","php6"],cI:!0,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[e.HCM,e.C("//","$",{c:[i]}),e.C("/\\*","\\*/",{c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.C("__halt_compiler.+?;",!1,{eW:!0,k:"__halt_compiler",l:e.UIR}),{cN:"string",b:/<<<['"]?\w+['"]?$/,e:/^\w+;?$/,c:[e.BE,{cN:"subst",v:[{b:/\$\w+/},{b:/\{\$/,e:/\}/}]}]},i,{cN:"keyword",b:/\$this\b/},c,{b:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{cN:"function",bK:"function",e:/[;{]/,eE:!0,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",c,e.CBCM,t,a]}]},{cN:"class",bK:"class interface",e:"{",eE:!0,i:/[:\(\$"]/,c:[{bK:"extends implements"},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},t,a]}});hljs.registerLanguage("nginx",function(e){var r={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+e.UIR}]},b={eW:!0,l:"[a-z/_]+",k:{literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[e.HCM,{cN:"string",c:[e.BE,r],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{b:"([a-z]+):/",e:"\\s",eW:!0,eE:!0,c:[r]},{cN:"regexp",c:[e.BE,r],v:[{b:"\\s\\^",e:"\\s|{|;",rE:!0},{b:"~\\*?\\s+",e:"\\s|{|;",rE:!0},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},r]};return{aliases:["nginxconf"],c:[e.HCM,{b:e.UIR+"\\s+{",rB:!0,e:"{",c:[{cN:"section",b:e.UIR}],r:0},{b:e.UIR+"\\s",e:";|{",rB:!0,c:[{cN:"attribute",b:e.UIR,starts:b}],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("sql",function(e){var t=e.C("--","$");return{cI:!0,i:/[<>{}*#]/,c:[{bK:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment",e:/;/,eW:!0,l:/[\w\.]+/,k:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},c:[{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[e.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[e.BE]},e.CNM,e.CBCM,t]},e.CBCM,t]}});hljs.registerLanguage("apache",function(e){var r={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:!0,c:[e.HCM,{cN:"section",b:"</?",e:">"},{cN:"attribute",b:/\w+/,r:0,k:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"meta",b:"\\s\\[",e:"\\]$"},{cN:"variable",b:"[\\$%]\\{",e:"\\}",c:["self",r]},r,e.QSM]}}],i:/\S/}});
 
 
app/module/scan/js/highlightjs-line-numbers.js DELETED
@@ -1,67 +0,0 @@
1
- (function (w) {
2
- 'use strict';
3
-
4
- if (typeof w.hljs === 'undefined') {
5
- console.error('highlight.js not detected!');
6
- } else {
7
- w.hljs.initLineNumbersOnLoad = initLineNumbersOnLoad;
8
- w.hljs.lineNumbersBlock = lineNumbersBlock;
9
- }
10
-
11
- function initLineNumbersOnLoad () {
12
- if (document.readyState === 'complete') {
13
- documentReady();
14
- } else {
15
- w.addEventListener('DOMContentLoaded', documentReady);
16
- }
17
- }
18
-
19
- function documentReady () {
20
- try {
21
- var blocks = document.querySelectorAll('code.hljs');
22
-
23
- for (var i in blocks) {
24
- if (blocks.hasOwnProperty(i)) {
25
- lineNumbersBlock(blocks[i]);
26
- }
27
- }
28
- } catch (e) {
29
- console.error('LineNumbers error: ', e);
30
- }
31
- }
32
-
33
- function lineNumbersBlock (element) {
34
- if (typeof element !== 'object') return;
35
-
36
- var parent = element.parentNode;
37
- var lines = getCountLines(parent.textContent);
38
-
39
- if (lines > 1) {
40
- var l = '';
41
- for (var i = 0; i < lines; i++) {
42
- l += (i + 1) + '\n';
43
- }
44
-
45
- var linesPanel = document.createElement('code');
46
- linesPanel.className = 'hljs hljs-line-numbers';
47
- linesPanel.style.float = 'left';
48
- linesPanel.textContent = l;
49
-
50
- parent.insertBefore(linesPanel, element);
51
- }
52
- }
53
-
54
- function getCountLines(text) {
55
- if (text.length === 0) return 0;
56
-
57
- var regExp = /\r\n|\r|\n/g;
58
- var lines = text.match(regExp);
59
- lines = lines ? lines.length : 0;
60
-
61
- if (!text[text.length - 1].match(regExp)) {
62
- lines += 1;
63
- }
64
-
65
- return lines;
66
- }
67
- }(window));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/scan/js/prism.css DELETED
@@ -1,183 +0,0 @@
1
- /* PrismJS 1.16.0
2
- https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+markup-templating+php&plugins=line-numbers+keep-markup */
3
- /**
4
- * prism.js default theme for JavaScript, CSS and HTML
5
- * Based on dabblet (http://dabblet.com)
6
- * @author Lea Verou
7
- */
8
-
9
- code[class*="language-"],
10
- pre[class*="language-"] {
11
- color: black;
12
- background: none;
13
- text-shadow: 0 1px white;
14
- font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
15
- font-size: 1em;
16
- text-align: left;
17
- white-space: pre;
18
- word-spacing: normal;
19
- word-break: normal;
20
- word-wrap: normal;
21
- line-height: 1.5;
22
-
23
- -moz-tab-size: 4;
24
- -o-tab-size: 4;
25
- tab-size: 4;
26
-
27
- -webkit-hyphens: none;
28
- -moz-hyphens: none;
29
- -ms-hyphens: none;
30
- hyphens: none;
31
- }
32
-
33
- pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
34
- code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
35
- text-shadow: none;
36
- background: #b3d4fc;
37
- }
38
-
39
- pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
40
- code[class*="language-"]::selection, code[class*="language-"] ::selection {
41
- text-shadow: none;
42
- background: #b3d4fc;
43
- }
44
-
45
- @media print {
46
- code[class*="language-"],
47
- pre[class*="language-"] {
48
- text-shadow: none;
49
- }
50
- }
51
-
52
- /* Code blocks */
53
- pre[class*="language-"] {
54
- padding: 1em;
55
- margin: .5em 0;
56
- overflow: auto;
57
- }
58
-
59
- :not(pre) > code[class*="language-"],
60
- pre[class*="language-"] {
61
- background: #f5f2f0;
62
- }
63
-
64
- /* Inline code */
65
- :not(pre) > code[class*="language-"] {
66
- padding: .1em;
67
- border-radius: .3em;
68
- white-space: normal;
69
- }
70
-
71
- .token.comment,
72
- .token.prolog,
73
- .token.doctype,
74
- .token.cdata {
75
- color: slategray;
76
- }
77
-
78
- .token.punctuation {
79
- color: #999;
80
- }
81
-
82
- .namespace {
83
- opacity: .7;
84
- }
85
-
86
- .token.property,
87
- .token.tag,
88
- .token.boolean,
89
- .token.number,
90
- .token.constant,
91
- .token.symbol,
92
- .token.deleted {
93
- color: #905;
94
- }
95
-
96
- .token.selector,
97
- .token.attr-name,
98
- .token.string,
99
- .token.char,
100
- .token.builtin,
101
- .token.inserted {
102
- color: #690;
103
- }
104
-
105
- .token.operator,
106
- .token.entity,
107
- .token.url,
108
- .language-css .token.string,
109
- .style .token.string {
110
- color: #9a6e3a;
111
- background: hsla(0, 0%, 100%, .5);
112
- }
113
-
114
- .token.atrule,
115
- .token.attr-value,
116
- .token.keyword {
117
- color: #07a;
118
- }
119
-
120
- .token.function,
121
- .token.class-name {
122
- color: #DD4A68;
123
- }
124
-
125
- .token.regex,
126
- .token.important,
127
- .token.variable {
128
- color: #e90;
129
- }
130
-
131
- .token.important,
132
- .token.bold {
133
- font-weight: bold;
134
- }
135
- .token.italic {
136
- font-style: italic;
137
- }
138
-
139
- .token.entity {
140
- cursor: help;
141
- }
142
-
143
- pre[class*="language-"].line-numbers {
144
- position: relative;
145
- padding-left: 3.8em !important;
146
- counter-reset: linenumber;
147
- }
148
-
149
- pre[class*="language-"].line-numbers > code {
150
- position: relative;
151
- white-space: inherit;
152
- }
153
-
154
- .line-numbers .line-numbers-rows {
155
- position: absolute;
156
- pointer-events: none;
157
- top: 0;
158
- font-size: 100%;
159
- left: -3.8em;
160
- width: 3em; /* works for line-numbers below 1000 lines */
161
- letter-spacing: -1px;
162
- border-right: 1px solid #999;
163
-
164
- -webkit-user-select: none;
165
- -moz-user-select: none;
166
- -ms-user-select: none;
167
- user-select: none;
168
-
169
- }
170
-
171
- .line-numbers-rows > span {
172
- pointer-events: none;
173
- display: block;
174
- counter-increment: linenumber;
175
- }
176
-
177
- .line-numbers-rows > span:before {
178
- content: counter(linenumber);
179
- color: #999;
180
- display: block;
181
- padding-right: 0.8em;
182
- text-align: right;
183
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/scan/js/prism.js DELETED
@@ -1,1350 +0,0 @@
1
- /* PrismJS 1.16.0
2
- https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+markup-templating+php&plugins=line-numbers+keep-markup */
3
- var _self = (typeof window !== 'undefined')
4
- ? window // if in browser
5
- : (
6
- (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)
7
- ? self // if in worker
8
- : {} // if in node js
9
- );
10
-
11
- /**
12
- * Prism: Lightweight, robust, elegant syntax highlighting
13
- * MIT license http://www.opensource.org/licenses/mit-license.php/
14
- * @author Lea Verou http://lea.verou.me
15
- */
16
-
17
- var Prism = (function (_self){
18
-
19
- // Private helper vars
20
- var lang = /\blang(?:uage)?-([\w-]+)\b/i;
21
- var uniqueId = 0;
22
-
23
- var _ = {
24
- manual: _self.Prism && _self.Prism.manual,
25
- disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,
26
- util: {
27
- encode: function (tokens) {
28
- if (tokens instanceof Token) {
29
- return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias);
30
- } else if (Array.isArray(tokens)) {
31
- return tokens.map(_.util.encode);
32
- } else {
33
- return tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\u00a0/g, ' ');
34
- }
35
- },
36
-
37
- type: function (o) {
38
- return Object.prototype.toString.call(o).slice(8, -1);
39
- },
40
-
41
- objId: function (obj) {
42
- if (!obj['__id']) {
43
- Object.defineProperty(obj, '__id', { value: ++uniqueId });
44
- }
45
- return obj['__id'];
46
- },
47
-
48
- // Deep clone a language definition (e.g. to extend it)
49
- clone: function deepClone(o, visited) {
50
- var clone, id, type = _.util.type(o);
51
- visited = visited || {};
52
-
53
- switch (type) {
54
- case 'Object':
55
- id = _.util.objId(o);
56
- if (visited[id]) {
57
- return visited[id];
58
- }
59
- clone = {};
60
- visited[id] = clone;
61
-
62
- for (var key in o) {
63
- if (o.hasOwnProperty(key)) {
64
- clone[key] = deepClone(o[key], visited);
65
- }
66
- }
67
-
68
- return clone;
69
-
70
- case 'Array':
71
- id = _.util.objId(o);
72
- if (visited[id]) {
73
- return visited[id];
74
- }
75
- clone = [];
76
- visited[id] = clone;
77
-
78
- o.forEach(function (v, i) {
79
- clone[i] = deepClone(v, visited);
80
- });
81
-
82
- return clone;
83
-
84
- default:
85
- return o;
86
- }
87
- }
88
- },
89
-
90
- languages: {
91
- extend: function (id, redef) {
92
- var lang = _.util.clone(_.languages[id]);
93
-
94
- for (var key in redef) {
95
- lang[key] = redef[key];
96
- }
97
-
98
- return lang;
99
- },
100
-
101
- /**
102
- * Insert a token before another token in a language literal
103
- * As this needs to recreate the object (we cannot actually insert before keys in object literals),
104
- * we cannot just provide an object, we need an object and a key.
105
- * @param inside The key (or language id) of the parent
106
- * @param before The key to insert before.
107
- * @param insert Object with the key/value pairs to insert
108
- * @param root The object that contains `inside`. If equal to Prism.languages, it can be omitted.
109
- */
110
- insertBefore: function (inside, before, insert, root) {
111
- root = root || _.languages;
112
- var grammar = root[inside];
113
- var ret = {};
114
-
115
- for (var token in grammar) {
116
- if (grammar.hasOwnProperty(token)) {
117
-
118
- if (token == before) {
119
- for (var newToken in insert) {
120
- if (insert.hasOwnProperty(newToken)) {
121
- ret[newToken] = insert[newToken];
122
- }
123
- }
124
- }
125
-
126
- // Do not insert token which also occur in insert. See #1525
127
- if (!insert.hasOwnProperty(token)) {
128
- ret[token] = grammar[token];
129
- }
130
- }
131
- }
132
-
133
- var old = root[inside];
134
- root[inside] = ret;
135
-
136
- // Update references in other language definitions
137
- _.languages.DFS(_.languages, function(key, value) {
138
- if (value === old && key != inside) {
139
- this[key] = ret;
140
- }
141
- });
142
-
143
- return ret;
144
- },
145
-
146
- // Traverse a language definition with Depth First Search
147
- DFS: function DFS(o, callback, type, visited) {
148
- visited = visited || {};
149
-
150
- var objId = _.util.objId;
151
-
152
- for (var i in o) {
153
- if (o.hasOwnProperty(i)) {
154
- callback.call(o, i, o[i], type || i);
155
-
156
- var property = o[i],
157
- propertyType = _.util.type(property);
158
-
159
- if (propertyType === 'Object' && !visited[objId(property)]) {
160
- visited[objId(property)] = true;
161
- DFS(property, callback, null, visited);
162
- }
163
- else if (propertyType === 'Array' && !visited[objId(property)]) {
164
- visited[objId(property)] = true;
165
- DFS(property, callback, i, visited);
166
- }
167
- }
168
- }
169
- }
170
- },
171
- plugins: {},
172
-
173
- highlightAll: function(async, callback) {
174
- _.highlightAllUnder(document, async, callback);
175
- },
176
-
177
- highlightAllUnder: function(container, async, callback) {
178
- var env = {
179
- callback: callback,
180
- selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
181
- };
182
-
183
- _.hooks.run("before-highlightall", env);
184
-
185
- var elements = env.elements || container.querySelectorAll(env.selector);
186
-
187
- for (var i=0, element; element = elements[i++];) {
188
- _.highlightElement(element, async === true, env.callback);
189
- }
190
- },
191
-
192
- highlightElement: function(element, async, callback) {
193
- // Find language
194
- var language, grammar, parent = element;
195
-
196
- while (parent && !lang.test(parent.className)) {
197
- parent = parent.parentNode;
198
- }
199
-
200
- if (parent) {
201
- language = (parent.className.match(lang) || [,''])[1].toLowerCase();
202
- grammar = _.languages[language];
203
- }
204
-
205
- // Set language on the element, if not present
206
- element.className = element.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
207
-
208
- if (element.parentNode) {
209
- // Set language on the parent, for styling
210
- parent = element.parentNode;
211
-
212
- if (/pre/i.test(parent.nodeName)) {
213
- parent.className = parent.className.replace(lang, '').replace(/\s+/g, ' ') + ' language-' + language;
214
- }
215
- }
216
-
217
- var code = element.textContent;
218
-
219
- var env = {
220
- element: element,
221
- language: language,
222
- grammar: grammar,
223
- code: code
224
- };
225
-
226
- var insertHighlightedCode = function (highlightedCode) {
227
- env.highlightedCode = highlightedCode;
228
-
229
- _.hooks.run('before-insert', env);
230
-
231
- env.element.innerHTML = env.highlightedCode;
232
-
233
- _.hooks.run('after-highlight', env);
234
- _.hooks.run('complete', env);
235
- callback && callback.call(env.element);
236
- }
237
-
238
- _.hooks.run('before-sanity-check', env);
239
-
240
- if (!env.code) {
241
- _.hooks.run('complete', env);
242
- return;
243
- }
244
-
245
- _.hooks.run('before-highlight', env);
246
-
247
- if (!env.grammar) {
248
- insertHighlightedCode(_.util.encode(env.code));
249
- return;
250
- }
251
-
252
- if (async && _self.Worker) {
253
- var worker = new Worker(_.filename);
254
-
255
- worker.onmessage = function(evt) {
256
- insertHighlightedCode(evt.data);
257
- };
258
-
259
- worker.postMessage(JSON.stringify({
260
- language: env.language,
261
- code: env.code,
262
- immediateClose: true
263
- }));
264
- }
265
- else {
266
- insertHighlightedCode(_.highlight(env.code, env.grammar, env.language));
267
- }
268
- },
269
-
270
- highlight: function (text, grammar, language) {
271
- var env = {
272
- code: text,
273
- grammar: grammar,
274
- language: language
275
- };
276
- _.hooks.run('before-tokenize', env);
277
- env.tokens = _.tokenize(env.code, env.grammar);
278
- _.hooks.run('after-tokenize', env);
279
- return Token.stringify(_.util.encode(env.tokens), env.language);
280
- },
281
-
282
- matchGrammar: function (text, strarr, grammar, index, startPos, oneshot, target) {
283
- for (var token in grammar) {
284
- if(!grammar.hasOwnProperty(token) || !grammar[token]) {
285
- continue;
286
- }
287
-
288
- if (token == target) {
289
- return;
290
- }
291
-
292
- var patterns = grammar[token];
293
- patterns = (_.util.type(patterns) === "Array") ? patterns : [patterns];
294
-
295
- for (var j = 0; j < patterns.length; ++j) {
296
- var pattern = patterns[j],
297
- inside = pattern.inside,
298
- lookbehind = !!pattern.lookbehind,
299
- greedy = !!pattern.greedy,
300
- lookbehindLength = 0,
301
- alias = pattern.alias;
302
-
303
- if (greedy && !pattern.pattern.global) {
304
- // Without the global flag, lastIndex won't work
305
- var flags = pattern.pattern.toString().match(/[imuy]*$/)[0];
306
- pattern.pattern = RegExp(pattern.pattern.source, flags + "g");
307
- }
308
-
309
- pattern = pattern.pattern || pattern;
310
-
311
- // Don’t cache length as it changes during the loop
312
- for (var i = index, pos = startPos; i < strarr.length; pos += strarr[i].length, ++i) {
313
-
314
- var str = strarr[i];
315
-
316
- if (strarr.length > text.length) {
317
- // Something went terribly wrong, ABORT, ABORT!
318
- return;
319
- }
320
-
321
- if (str instanceof Token) {
322
- continue;
323
- }
324
-
325
- if (greedy && i != strarr.length - 1) {
326
- pattern.lastIndex = pos;
327
- var match = pattern.exec(text);
328
- if (!match) {
329
- break;
330
- }
331
-
332
- var from = match.index + (lookbehind ? match[1].length : 0),
333
- to = match.index + match[0].length,
334
- k = i,
335
- p = pos;
336
-
337
- for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) {
338
- p += strarr[k].length;
339
- // Move the index i to the element in strarr that is closest to from
340
- if (from >= p) {
341
- ++i;
342
- pos = p;
343
- }
344
- }
345
-
346
- // If strarr[i] is a Token, then the match starts inside another Token, which is invalid
347
- if (strarr[i] instanceof Token) {
348
- continue;
349
- }
350
-
351
- // Number of tokens to delete and replace with the new match
352
- delNum = k - i;
353
- str = text.slice(pos, p);
354
- match.index -= pos;
355
- } else {
356
- pattern.lastIndex = 0;
357
-
358
- var match = pattern.exec(str),
359
- delNum = 1;
360
- }
361
-
362
- if (!match) {
363
- if (oneshot) {
364
- break;
365
- }
366
-
367
- continue;
368
- }
369
-
370
- if(lookbehind) {
371
- lookbehindLength = match[1] ? match[1].length : 0;
372
- }
373
-
374
- var from = match.index + lookbehindLength,
375
- match = match[0].slice(lookbehindLength),
376
- to = from + match.length,
377
- before = str.slice(0, from),
378
- after = str.slice(to);
379
-
380
- var args = [i, delNum];
381
-
382
- if (before) {
383
- ++i;
384
- pos += before.length;
385
- args.push(before);
386
- }
387
-
388
- var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy);
389
-
390
- args.push(wrapped);
391
-
392
- if (after) {
393
- args.push(after);
394
- }
395
-
396
- Array.prototype.splice.apply(strarr, args);
397
-
398
- if (delNum != 1)
399
- _.matchGrammar(text, strarr, grammar, i, pos, true, token);
400
-
401
- if (oneshot)
402
- break;
403
- }
404
- }
405
- }
406
- },
407
-
408
- tokenize: function(text, grammar) {
409
- var strarr = [text];
410
-
411
- var rest = grammar.rest;
412
-
413
- if (rest) {
414
- for (var token in rest) {
415
- grammar[token] = rest[token];
416
- }
417
-
418
- delete grammar.rest;
419
- }
420
-
421
- _.matchGrammar(text, strarr, grammar, 0, 0, false);
422
-
423
- return strarr;
424
- },
425
-
426
- hooks: {
427
- all: {},
428
-
429
- add: function (name, callback) {
430
- var hooks = _.hooks.all;
431
-
432
- hooks[name] = hooks[name] || [];
433
-
434
- hooks[name].push(callback);
435
- },
436
-
437
- run: function (name, env) {
438
- var callbacks = _.hooks.all[name];
439
-
440
- if (!callbacks || !callbacks.length) {
441
- return;
442
- }
443
-
444
- for (var i=0, callback; callback = callbacks[i++];) {
445
- callback(env);
446
- }
447
- }
448
- },
449
-
450
- Token: Token
451
- };
452
-
453
- _self.Prism = _;
454
-
455
- function Token(type, content, alias, matchedStr, greedy) {
456
- this.type = type;
457
- this.content = content;
458
- this.alias = alias;
459
- // Copy of the full string this token was created from
460
- this.length = (matchedStr || "").length|0;
461
- this.greedy = !!greedy;
462
- }
463
-
464
- Token.stringify = function(o, language) {
465
- if (typeof o == 'string') {
466
- return o;
467
- }
468
-
469
- if (Array.isArray(o)) {
470
- return o.map(function(element) {
471
- return Token.stringify(element, language);
472
- }).join('');
473
- }
474
-
475
- var env = {
476
- type: o.type,
477
- content: Token.stringify(o.content, language),
478
- tag: 'span',
479
- classes: ['token', o.type],
480
- attributes: {},
481
- language: language
482
- };
483
-
484
- if (o.alias) {
485
- var aliases = Array.isArray(o.alias) ? o.alias : [o.alias];
486
- Array.prototype.push.apply(env.classes, aliases);
487
- }
488
-
489
- _.hooks.run('wrap', env);
490
-
491
- var attributes = Object.keys(env.attributes).map(function(name) {
492
- return name + '="' + (env.attributes[name] || '').replace(/"/g, '&quot;') + '"';
493
- }).join(' ');
494
-
495
- return '<' + env.tag + ' class="' + env.classes.join(' ') + '"' + (attributes ? ' ' + attributes : '') + '>' + env.content + '</' + env.tag + '>';
496
- };
497
-
498
- if (!_self.document) {
499
- if (!_self.addEventListener) {
500
- // in Node.js
501
- return _;
502
- }
503
-
504
- if (!_.disableWorkerMessageHandler) {
505
- // In worker
506
- _self.addEventListener('message', function (evt) {
507
- var message = JSON.parse(evt.data),
508
- lang = message.language,
509
- code = message.code,
510
- immediateClose = message.immediateClose;
511
-
512
- _self.postMessage(_.highlight(code, _.languages[lang], lang));
513
- if (immediateClose) {
514
- _self.close();
515
- }
516
- }, false);
517
- }
518
-
519
- return _;
520
- }
521
-
522
- //Get current script and highlight
523
- var script = document.currentScript || [].slice.call(document.getElementsByTagName("script")).pop();
524
-
525
- if (script) {
526
- _.filename = script.src;
527
-
528
- if (!_.manual && !script.hasAttribute('data-manual')) {
529
- if(document.readyState !== "loading") {
530
- if (window.requestAnimationFrame) {
531
- window.requestAnimationFrame(_.highlightAll);
532
- } else {
533
- window.setTimeout(_.highlightAll, 16);
534
- }
535
- }
536
- else {
537
- document.addEventListener('DOMContentLoaded', _.highlightAll);
538
- }
539
- }
540
- }
541
-
542
- return _;
543
-
544
- })(_self);
545
-
546
- if (typeof module !== 'undefined' && module.exports) {
547
- module.exports = Prism;
548
- }
549
-
550
- // hack for components to work correctly in node.js
551
- if (typeof global !== 'undefined') {
552
- global.Prism = Prism;
553
- }
554
- ;
555
- Prism.languages.markup = {
556
- 'comment': /<!--[\s\S]*?-->/,
557
- 'prolog': /<\?[\s\S]+?\?>/,
558
- 'doctype': /<!DOCTYPE[\s\S]+?>/i,
559
- 'cdata': /<!\[CDATA\[[\s\S]*?]]>/i,
560
- 'tag': {
561
- pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,
562
- greedy: true,
563
- inside: {
564
- 'tag': {
565
- pattern: /^<\/?[^\s>\/]+/i,
566
- inside: {
567
- 'punctuation': /^<\/?/,
568
- 'namespace': /^[^\s>\/:]+:/
569
- }
570
- },
571
- 'attr-value': {
572
- pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,
573
- inside: {
574
- 'punctuation': [
575
- /^=/,
576
- {
577
- pattern: /^(\s*)["']|["']$/,
578
- lookbehind: true
579
- }
580
- ]
581
- }
582
- },
583
- 'punctuation': /\/?>/,
584
- 'attr-name': {
585
- pattern: /[^\s>\/]+/,
586
- inside: {
587
- 'namespace': /^[^\s>\/:]+:/
588
- }
589
- }
590
-
591
- }
592
- },
593
- 'entity': /&#?[\da-z]{1,8};/i
594
- };
595
-
596
- Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =
597
- Prism.languages.markup['entity'];
598
-
599
- // Plugin to make entity title show the real entity, idea by Roman Komarov
600
- Prism.hooks.add('wrap', function(env) {
601
-
602
- if (env.type === 'entity') {
603
- env.attributes['title'] = env.content.replace(/&amp;/, '&');
604
- }
605
- });
606
-
607
- Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {
608
- /**
609
- * Adds an inlined language to markup.
610
- *
611
- * An example of an inlined language is CSS with `<style>` tags.
612
- *
613
- * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as
614
- * case insensitive.
615
- * @param {string} lang The language key.
616
- * @example
617
- * addInlined('style', 'css');
618
- */
619
- value: function addInlined(tagName, lang) {
620
- var includedCdataInside = {};
621
- includedCdataInside['language-' + lang] = {
622
- pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
623
- lookbehind: true,
624
- inside: Prism.languages[lang]
625
- };
626
- includedCdataInside['cdata'] = /^<!\[CDATA\[|\]\]>$/i;
627
-
628
- var inside = {
629
- 'included-cdata': {
630
- pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
631
- inside: includedCdataInside
632
- }
633
- };
634
- inside['language-' + lang] = {
635
- pattern: /[\s\S]+/,
636
- inside: Prism.languages[lang]
637
- };
638
-
639
- var def = {};
640
- def[tagName] = {
641
- pattern: RegExp(/(<__[\s\S]*?>)(?:<!\[CDATA\[[\s\S]*?\]\]>\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g, tagName), 'i'),
642
- lookbehind: true,
643
- greedy: true,
644
- inside: inside
645
- };
646
-
647
- Prism.languages.insertBefore('markup', 'cdata', def);
648
- }
649
- });
650
-
651
- Prism.languages.xml = Prism.languages.extend('markup', {});
652
- Prism.languages.html = Prism.languages.markup;
653
- Prism.languages.mathml = Prism.languages.markup;
654
- Prism.languages.svg = Prism.languages.markup;
655
-
656
- (function (Prism) {
657
-
658
- var string = /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;
659
-
660
- Prism.languages.css = {
661
- 'comment': /\/\*[\s\S]*?\*\//,
662
- 'atrule': {
663
- pattern: /@[\w-]+?[\s\S]*?(?:;|(?=\s*\{))/i,
664
- inside: {
665
- 'rule': /@[\w-]+/
666
- // See rest below
667
- }
668
- },
669
- 'url': RegExp('url\\((?:' + string.source + '|.*?)\\)', 'i'),
670
- 'selector': RegExp('[^{}\\s](?:[^{};"\']|' + string.source + ')*?(?=\\s*\\{)'),
671
- 'string': {
672
- pattern: string,
673
- greedy: true
674
- },
675
- 'property': /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,
676
- 'important': /!important\b/i,
677
- 'function': /[-a-z0-9]+(?=\()/i,
678
- 'punctuation': /[(){};:,]/
679
- };
680
-
681
- Prism.languages.css['atrule'].inside.rest = Prism.languages.css;
682
-
683
- var markup = Prism.languages.markup;
684
- if (markup) {
685
- markup.tag.addInlined('style', 'css');
686
-
687
- Prism.languages.insertBefore('inside', 'attr-value', {
688
- 'style-attr': {
689
- pattern: /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,
690
- inside: {
691
- 'attr-name': {
692
- pattern: /^\s*style/i,
693
- inside: markup.tag.inside
694
- },
695
- 'punctuation': /^\s*=\s*['"]|['"]\s*$/,
696
- 'attr-value': {
697
- pattern: /.+/i,
698
- inside: Prism.languages.css
699
- }
700
- },
701
- alias: 'language-css'
702
- }
703
- }, markup.tag);
704
- }
705
-
706
- }(Prism));
707
-
708
- Prism.languages.clike = {
709
- 'comment': [
710
- {
711
- pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
712
- lookbehind: true
713
- },
714
- {
715
- pattern: /(^|[^\\:])\/\/.*/,
716
- lookbehind: true,
717
- greedy: true
718
- }
719
- ],
720
- 'string': {
721
- pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
722
- greedy: true
723
- },
724
- 'class-name': {
725
- pattern: /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,
726
- lookbehind: true,
727
- inside: {
728
- punctuation: /[.\\]/
729
- }
730
- },
731
- 'keyword': /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,
732
- 'boolean': /\b(?:true|false)\b/,
733
- 'function': /\w+(?=\()/,
734
- 'number': /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,
735
- 'operator': /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,
736
- 'punctuation': /[{}[\];(),.:]/
737
- };
738
-
739
- Prism.languages.javascript = Prism.languages.extend('clike', {
740
- 'class-name': [
741
- Prism.languages.clike['class-name'],
742
- {
743
- pattern: /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/,
744
- lookbehind: true
745
- }
746
- ],
747
- 'keyword': [
748
- {
749
- pattern: /((?:^|})\s*)(?:catch|finally)\b/,
750
- lookbehind: true
751
- },
752
- {
753
- pattern: /(^|[^.])\b(?:as|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,
754
- lookbehind: true
755
- },
756
- ],
757
- 'number': /\b(?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,
758
- // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)
759
- 'function': /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
760
- 'operator': /-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/
761
- });
762
-
763
- Prism.languages.javascript['class-name'][0].pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/;
764
-
765
- Prism.languages.insertBefore('javascript', 'keyword', {
766
- 'regex': {
767
- pattern: /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[(?:[^\]\\\r\n]|\\.)*]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,
768
- lookbehind: true,
769
- greedy: true
770
- },
771
- // This must be declared before keyword because we use "function" inside the look-forward
772
- 'function-variable': {
773
- pattern: /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/,
774
- alias: 'function'
775
- },
776
- 'parameter': [
777
- {
778
- pattern: /(function(?:\s+[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)?\s*\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\))/,
779
- lookbehind: true,
780
- inside: Prism.languages.javascript
781
- },
782
- {
783
- pattern: /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=>)/i,
784
- inside: Prism.languages.javascript
785
- },
786
- {
787
- pattern: /(\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*=>)/,
788
- lookbehind: true,
789
- inside: Prism.languages.javascript
790
- },
791
- {
792
- pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:[_$A-Za-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*\s*)\(\s*)(?!\s)(?:[^()]|\([^()]*\))+?(?=\s*\)\s*\{)/,
793
- lookbehind: true,
794
- inside: Prism.languages.javascript
795
- }
796
- ],
797
- 'constant': /\b[A-Z](?:[A-Z_]|\dx?)*\b/
798
- });
799
-
800
- Prism.languages.insertBefore('javascript', 'string', {
801
- 'template-string': {
802
- pattern: /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,
803
- greedy: true,
804
- inside: {
805
- 'interpolation': {
806
- pattern: /\${[^}]+}/,
807
- inside: {
808
- 'interpolation-punctuation': {
809
- pattern: /^\${|}$/,
810
- alias: 'punctuation'
811
- },
812
- rest: Prism.languages.javascript
813
- }
814
- },
815
- 'string': /[\s\S]+/
816
- }
817
- }
818
- });
819
-
820
- if (Prism.languages.markup) {
821
- Prism.languages.markup.tag.addInlined('script', 'javascript');
822
- }
823
-
824
- Prism.languages.js = Prism.languages.javascript;
825
-
826
- (function (Prism) {
827
-
828
- /**
829
- * Returns the placeholder for the given language id and index.
830
- *
831
- * @param {string} language
832
- * @param {string|number} index
833
- * @returns {string}
834
- */
835
- function getPlaceholder(language, index) {
836
- return '___' + language.toUpperCase() + index + '___';
837
- }
838
-
839
- Object.defineProperties(Prism.languages['markup-templating'] = {}, {
840
- buildPlaceholders: {
841
- /**
842
- * Tokenize all inline templating expressions matching `placeholderPattern`.
843
- *
844
- * If `replaceFilter` is provided, only matches of `placeholderPattern` for which `replaceFilter` returns
845
- * `true` will be replaced.
846
- *
847
- * @param {object} env The environment of the `before-tokenize` hook.
848
- * @param {string} language The language id.
849
- * @param {RegExp} placeholderPattern The matches of this pattern will be replaced by placeholders.
850
- * @param {(match: string) => boolean} [replaceFilter]
851
- */
852
- value: function (env, language, placeholderPattern, replaceFilter) {
853
- if (env.language !== language) {
854
- return;
855
- }
856
-
857
- var tokenStack = env.tokenStack = [];
858
-
859
- env.code = env.code.replace(placeholderPattern, function (match) {
860
- if (typeof replaceFilter === 'function' && !replaceFilter(match)) {
861
- return match;
862
- }
863
- var i = tokenStack.length;
864
- var placeholder;
865
-
866
- // Check for existing strings
867
- while (env.code.indexOf(placeholder = getPlaceholder(language, i)) !== -1)
868
- ++i;
869
-
870
- // Create a sparse array
871
- tokenStack[i] = match;
872
-
873
- return placeholder;
874
- });
875
-
876
- // Switch the grammar to markup
877
- env.grammar = Prism.languages.markup;
878
- }
879
- },
880
- tokenizePlaceholders: {
881
- /**
882
- * Replace placeholders with proper tokens after tokenizing.
883
- *
884
- * @param {object} env The environment of the `after-tokenize` hook.
885
- * @param {string} language The language id.
886
- */
887
- value: function (env, language) {
888
- if (env.language !== language || !env.tokenStack) {
889
- return;
890
- }
891
-
892
- // Switch the grammar back
893
- env.grammar = Prism.languages[language];
894
-
895
- var j = 0;
896
- var keys = Object.keys(env.tokenStack);
897
-
898
- function walkTokens(tokens) {
899
- for (var i = 0; i < tokens.length; i++) {
900
- // all placeholders are replaced already
901
- if (j >= keys.length) {
902
- break;
903
- }
904
-
905
- var token = tokens[i];
906
- if (typeof token === 'string' || (token.content && typeof token.content === 'string')) {
907
- var k = keys[j];
908
- var t = env.tokenStack[k];
909
- var s = typeof token === 'string' ? token : token.content;
910
- var placeholder = getPlaceholder(language, k);
911
-
912
- var index = s.indexOf(placeholder);
913
- if (index > -1) {
914
- ++j;
915
-
916
- var before = s.substring(0, index);
917
- var middle = new Prism.Token(language, Prism.tokenize(t, env.grammar), 'language-' + language, t);
918
- var after = s.substring(index + placeholder.length);
919
-
920
- var replacement = [];
921
- if (before) {
922
- replacement.push.apply(replacement, walkTokens([before]));
923
- }
924
- replacement.push(middle);
925
- if (after) {
926
- replacement.push.apply(replacement, walkTokens([after]));
927
- }
928
-
929
- if (typeof token === 'string') {
930
- tokens.splice.apply(tokens, [i, 1].concat(replacement));
931
- } else {
932
- token.content = replacement;
933
- }
934
- }
935
- } else if (token.content /* && typeof token.content !== 'string' */) {
936
- walkTokens(token.content);
937
- }
938
- }
939
-
940
- return tokens;
941
- }
942
-
943
- walkTokens(env.tokens);
944
- }
945
- }
946
- });
947
-
948
- }(Prism));
949
-
950
- /**
951
- * Original by Aaron Harun: http://aahacreative.com/2012/07/31/php-syntax-highlighting-prism/
952
- * Modified by Miles Johnson: http://milesj.me
953
- *
954
- * Supports the following:
955
- * - Extends clike syntax
956
- * - Support for PHP 5.3+ (namespaces, traits, generators, etc)
957
- * - Smarter constant and function matching
958
- *
959
- * Adds the following new token classes:
960
- * constant, delimiter, variable, function, package
961
- */
962
- (function (Prism) {
963
- Prism.languages.php = Prism.languages.extend('clike', {
964
- 'keyword': /\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,
965
- 'boolean': {
966
- pattern: /\b(?:false|true)\b/i,
967
- alias: 'constant'
968
- },
969
- 'constant': [
970
- /\b[A-Z_][A-Z0-9_]*\b/,
971
- /\b(?:null)\b/i,
972
- ],
973
- 'comment': {
974
- pattern: /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,
975
- lookbehind: true
976
- }
977
- });
978
-
979
- Prism.languages.insertBefore('php', 'string', {
980
- 'shell-comment': {
981
- pattern: /(^|[^\\])#.*/,
982
- lookbehind: true,
983
- alias: 'comment'
984
- }
985
- });
986
-
987
- Prism.languages.insertBefore('php', 'comment', {
988
- 'delimiter': {
989
- pattern: /\?>$|^<\?(?:php(?=\s)|=)?/i,
990
- alias: 'important'
991
- }
992
- });
993
-
994
- Prism.languages.insertBefore('php', 'keyword', {
995
- 'variable': /\$+(?:\w+\b|(?={))/i,
996
- 'package': {
997
- pattern: /(\\|namespace\s+|use\s+)[\w\\]+/,
998
- lookbehind: true,
999
- inside: {
1000
- punctuation: /\\/
1001
- }
1002
- }
1003
- });
1004
-
1005
- // Must be defined after the function pattern
1006
- Prism.languages.insertBefore('php', 'operator', {
1007
- 'property': {
1008
- pattern: /(->)[\w]+/,
1009
- lookbehind: true
1010
- }
1011
- });
1012
-
1013
- var string_interpolation = {
1014
- pattern: /{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,
1015
- lookbehind: true,
1016
- inside: {
1017
- rest: Prism.languages.php
1018
- }
1019
- };
1020
-
1021
- Prism.languages.insertBefore('php', 'string', {
1022
- 'nowdoc-string': {
1023
- pattern: /<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,
1024
- greedy: true,
1025
- alias: 'string',
1026
- inside: {
1027
- 'delimiter': {
1028
- pattern: /^<<<'[^']+'|[a-z_]\w*;$/i,
1029
- alias: 'symbol',
1030
- inside: {
1031
- 'punctuation': /^<<<'?|[';]$/
1032
- }
1033
- }
1034
- }
1035
- },
1036
- 'heredoc-string': {
1037
- pattern: /<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,
1038
- greedy: true,
1039
- alias: 'string',
1040
- inside: {
1041
- 'delimiter': {
1042
- pattern: /^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,
1043
- alias: 'symbol',
1044
- inside: {
1045
- 'punctuation': /^<<<"?|[";]$/
1046
- }
1047
- },
1048
- 'interpolation': string_interpolation // See below
1049
- }
1050
- },
1051
- 'single-quoted-string': {
1052
- pattern: /'(?:\\[\s\S]|[^\\'])*'/,
1053
- greedy: true,
1054
- alias: 'string'
1055
- },
1056
- 'double-quoted-string': {
1057
- pattern: /"(?:\\[\s\S]|[^\\"])*"/,
1058
- greedy: true,
1059
- alias: 'string',
1060
- inside: {
1061
- 'interpolation': string_interpolation // See below
1062
- }
1063
- }
1064
- });
1065
- // The different types of PHP strings "replace" the C-like standard string
1066
- delete Prism.languages.php['string'];
1067
-
1068
- Prism.hooks.add('before-tokenize', function(env) {
1069
- if (!/<\?/.test(env.code)) {
1070
- return;
1071
- }
1072
-
1073
- var phpPattern = /<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/ig;
1074
- Prism.languages['markup-templating'].buildPlaceholders(env, 'php', phpPattern);
1075
- });
1076
-
1077
- Prism.hooks.add('after-tokenize', function(env) {
1078
- Prism.languages['markup-templating'].tokenizePlaceholders(env, 'php');
1079
- });
1080
-
1081
- }(Prism));
1082
-
1083
- (function () {
1084
-
1085
- if (typeof self === 'undefined' || !self.Prism || !self.document) {
1086
- return;
1087
- }
1088
-
1089
- /**
1090
- * Plugin name which is used as a class name for <pre> which is activating the plugin
1091
- * @type {String}
1092
- */
1093
- var PLUGIN_NAME = 'line-numbers';
1094
-
1095
- /**
1096
- * Regular expression used for determining line breaks
1097
- * @type {RegExp}
1098
- */
1099
- var NEW_LINE_EXP = /\n(?!$)/g;
1100
-
1101
- /**
1102
- * Resizes line numbers spans according to height of line of code
1103
- * @param {Element} element <pre> element
1104
- */
1105
- var _resizeElement = function (element) {
1106
- var codeStyles = getStyles(element);
1107
- var whiteSpace = codeStyles['white-space'];
1108
-
1109
- if (whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line') {
1110
- var codeElement = element.querySelector('code');
1111
- var lineNumbersWrapper = element.querySelector('.line-numbers-rows');
1112
- var lineNumberSizer = element.querySelector('.line-numbers-sizer');
1113
- var codeLines = codeElement.textContent.split(NEW_LINE_EXP);
1114
-
1115
- if (!lineNumberSizer) {
1116
- lineNumberSizer = document.createElement('span');
1117
- lineNumberSizer.className = 'line-numbers-sizer';
1118
-
1119
- codeElement.appendChild(lineNumberSizer);
1120
- }
1121
-
1122
- lineNumberSizer.style.display = 'block';
1123
-
1124
- codeLines.forEach(function (line, lineNumber) {
1125
- lineNumberSizer.textContent = line || '\n';
1126
- var lineSize = lineNumberSizer.getBoundingClientRect().height;
1127
- lineNumbersWrapper.children[lineNumber].style.height = lineSize + 'px';
1128
- });
1129
-
1130
- lineNumberSizer.textContent = '';
1131
- lineNumberSizer.style.display = 'none';
1132
- }
1133
- };
1134
-
1135
- /**
1136
- * Returns style declarations for the element
1137
- * @param {Element} element
1138
- */
1139
- var getStyles = function (element) {
1140
- if (!element) {
1141
- return null;
1142
- }
1143
-
1144
- return window.getComputedStyle ? getComputedStyle(element) : (element.currentStyle || null);
1145
- };
1146
-
1147
- window.addEventListener('resize', function () {
1148
- Array.prototype.forEach.call(document.querySelectorAll('pre.' + PLUGIN_NAME), _resizeElement);
1149
- });
1150
-
1151
- Prism.hooks.add('complete', function (env) {
1152
- if (!env.code) {
1153
- return;
1154
- }
1155
-
1156
- var code = env.element;
1157
- var pre = code.parentNode;
1158
-
1159
- // works only for <code> wrapped inside <pre> (not inline)
1160
- if (!pre || !/pre/i.test(pre.nodeName)) {
1161
- return;
1162
- }
1163
-
1164
- // Abort if line numbers already exists
1165
- if (code.querySelector('.line-numbers-rows')) {
1166
- return;
1167
- }
1168
-
1169
- var addLineNumbers = false;
1170
- var lineNumbersRegex = /(?:^|\s)line-numbers(?:\s|$)/;
1171
-
1172
- for (var element = code; element; element = element.parentNode) {
1173
- if (lineNumbersRegex.test(element.className)) {
1174
- addLineNumbers = true;
1175
- break;
1176
- }
1177
- }
1178
-
1179
- // only add line numbers if <code> or one of its ancestors has the `line-numbers` class
1180
- if (!addLineNumbers) {
1181
- return;
1182
- }
1183
-
1184
- // Remove the class 'line-numbers' from the <code>
1185
- code.className = code.className.replace(lineNumbersRegex, ' ');
1186
- // Add the class 'line-numbers' to the <pre>
1187
- if (!lineNumbersRegex.test(pre.className)) {
1188
- pre.className += ' line-numbers';
1189
- }
1190
-
1191
- var match = env.code.match(NEW_LINE_EXP);
1192
- var linesNum = match ? match.length + 1 : 1;
1193
- var lineNumbersWrapper;
1194
-
1195
- var lines = new Array(linesNum + 1).join('<span></span>');
1196
-
1197
- lineNumbersWrapper = document.createElement('span');
1198
- lineNumbersWrapper.setAttribute('aria-hidden', 'true');
1199
- lineNumbersWrapper.className = 'line-numbers-rows';
1200
- lineNumbersWrapper.innerHTML = lines;
1201
-
1202
- if (pre.hasAttribute('data-start')) {
1203
- pre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1);
1204
- }
1205
-
1206
- env.element.appendChild(lineNumbersWrapper);
1207
-
1208
- _resizeElement(pre);
1209
-
1210
- Prism.hooks.run('line-numbers', env);
1211
- });
1212
-
1213
- Prism.hooks.add('line-numbers', function (env) {
1214
- env.plugins = env.plugins || {};
1215
- env.plugins.lineNumbers = true;
1216
- });
1217
-
1218
- /**
1219
- * Global exports
1220
- */
1221
- Prism.plugins.lineNumbers = {
1222
- /**
1223
- * Get node for provided line number
1224
- * @param {Element} element pre element
1225
- * @param {Number} number line number
1226
- * @return {Element|undefined}
1227
- */
1228
- getLine: function (element, number) {
1229
- if (element.tagName !== 'PRE' || !element.classList.contains(PLUGIN_NAME)) {
1230
- return;
1231
- }
1232
-
1233
- var lineNumberRows = element.querySelector('.line-numbers-rows');
1234
- var lineNumberStart = parseInt(element.getAttribute('data-start'), 10) || 1;
1235
- var lineNumberEnd = lineNumberStart + (lineNumberRows.children.length - 1);
1236
-
1237
- if (number < lineNumberStart) {
1238
- number = lineNumberStart;
1239
- }
1240
- if (number > lineNumberEnd) {
1241
- number = lineNumberEnd;
1242
- }
1243
-
1244
- var lineIndex = number - lineNumberStart;
1245
-
1246
- return lineNumberRows.children[lineIndex];
1247
- }
1248
- };
1249
-
1250
- }());
1251
-
1252
- (function (self, document) {
1253
-
1254
- if (typeof self === 'undefined' || !self.Prism || !self.document || !document.createRange) {
1255
- return;
1256
- }
1257
-
1258
- Prism.plugins.KeepMarkup = true;
1259
-
1260
- Prism.hooks.add('before-highlight', function (env) {
1261
- if (!env.element.children.length) {
1262
- return;
1263
- }
1264
-
1265
- var pos = 0;
1266
- var data = [];
1267
- var f = function (elt, baseNode) {
1268
- var o = {};
1269
- if (!baseNode) {
1270
- // Clone the original tag to keep all attributes
1271
- o.clone = elt.cloneNode(false);
1272
- o.posOpen = pos;
1273
- data.push(o);
1274
- }
1275
- for (var i = 0, l = elt.childNodes.length; i < l; i++) {
1276
- var child = elt.childNodes[i];
1277
- if (child.nodeType === 1) { // element
1278
- f(child);
1279
- } else if(child.nodeType === 3) { // text
1280
- pos += child.data.length;
1281
- }
1282
- }
1283
- if (!baseNode) {
1284
- o.posClose = pos;
1285
- }
1286
- };
1287
- f(env.element, true);
1288
-
1289
- if (data && data.length) {
1290
- // data is an array of all existing tags
1291
- env.keepMarkup = data;
1292
- }
1293
- });
1294
-
1295
- Prism.hooks.add('after-highlight', function (env) {
1296
- if(env.keepMarkup && env.keepMarkup.length) {
1297
-
1298
- var walk = function (elt, nodeState) {
1299
- for (var i = 0, l = elt.childNodes.length; i < l; i++) {
1300
-
1301
- var child = elt.childNodes[i];
1302
-
1303
- if (child.nodeType === 1) { // element
1304
- if (!walk(child, nodeState)) {
1305
- return false;
1306
- }
1307
-
1308
- } else if (child.nodeType === 3) { // text
1309
- if(!nodeState.nodeStart && nodeState.pos + child.data.length > nodeState.node.posOpen) {
1310
- // We found the start position
1311
- nodeState.nodeStart = child;
1312
- nodeState.nodeStartPos = nodeState.node.posOpen - nodeState.pos;
1313
- }
1314
- if(nodeState.nodeStart && nodeState.pos + child.data.length >= nodeState.node.posClose) {
1315
- // We found the end position
1316
- nodeState.nodeEnd = child;
1317
- nodeState.nodeEndPos = nodeState.node.posClose - nodeState.pos;
1318
- }
1319
-
1320
- nodeState.pos += child.data.length;
1321
- }
1322
-
1323
- if (nodeState.nodeStart && nodeState.nodeEnd) {
1324
- // Select the range and wrap it with the clone
1325
- var range = document.createRange();
1326
- range.setStart(nodeState.nodeStart, nodeState.nodeStartPos);
1327
- range.setEnd(nodeState.nodeEnd, nodeState.nodeEndPos);
1328
- nodeState.node.clone.appendChild(range.extractContents());
1329
- range.insertNode(nodeState.node.clone);
1330
- range.detach();
1331
-
1332
- // Process is over
1333
- return false;
1334
- }
1335
- }
1336
- return true;
1337
- };
1338
-
1339
- // For each tag, we walk the DOM to reinsert it
1340
- env.keepMarkup.forEach(function (node) {
1341
- walk(env.element, {
1342
- node: node,
1343
- pos: 0
1344
- });
1345
- });
1346
- // Store new highlightedCode for later hooks calls
1347
- env.highlightedCode = env.element.innerHTML;
1348
- }
1349
- });
1350
- }(self, document));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/scan/view/cleaned.php DELETED
@@ -1,21 +0,0 @@
1
- <div class="dev-box">
2
- <div class="box-title">
3
- <h3><?php _e( "Ignored", "defender-security" ) ?></h3>
4
- </div>
5
- <div class="box-content">
6
- <?php $table = new \WP_Defender\Module\Scan\Component\Result_Table();
7
- $table->type = \WP_Defender\Module\Scan\Model\Result_Item::STATUS_FIXED;
8
- $table->prepare_items();
9
- if ( $table->get_pagination_arg( 'total_items' ) ) {
10
- $table->display();
11
- } else {
12
- ?>
13
- <div class="well well-blue with-cap">
14
- <i class="def-icon icon-warning" aria-hidden="true"></i>
15
- <?php _e( "You haven't cleaned any suspicious files yet. When this action is available, any cleaned files will appear here.", "defender-security" ) ?>
16
- </div>
17
- <?php
18
- }
19
- ?>
20
- </div>
21
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/scan/view/ignored.php DELETED
@@ -1,26 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <!-- Box title with icon -->
4
- <h3 class="sui-box-title">
5
- <?php _e( "Ignored", "defender-security" ) ?>
6
- </h3>
7
- </div>
8
- <div class="sui-box-body">
9
- <?php $table = new \WP_Defender\Module\Scan\Component\Result_Table();
10
- $table->type = \WP_Defender\Module\Scan\Model\Result_Item::STATUS_IGNORED;
11
- $table->prepare_items();
12
- if ( $table->get_pagination_arg( 'total_items' ) ) {
13
- ?>
14
- <p class="line"><?php _e( "Here is a list of the suspicious files you have chosen to ignore.", "defender-security" ) ?></p>
15
- <?php
16
- $table->display();
17
- } else {
18
- ?>
19
- <div class="sui-notice sui-notice-info">
20
- <p> <?php _e( "You haven't chosen to ignore any suspicious files yet. Ignored files appear here and can be restored at any time", "defender-security" ) ?> </p>
21
- </div>
22
- <?php
23
- }
24
- ?>
25
- </div>
26
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/scan/view/new.php DELETED
@@ -1,88 +0,0 @@
1
- <div class="sui-wrap <?php echo \WP_Defender\Behavior\Utils::instance()->maybeHighContrast() ?>">
2
- <div class="wp-defender">
3
- <div class="wdf-scanning">
4
- <div class="sui-header">
5
- <h1 class="sui-header-title">
6
- <?php _e( "File Scanning", "defender-security" ) ?>
7
- </h1>
8
- <?php if ( wp_defender()->hideDocLinks === false ): ?>
9
- <div class="sui-actions-right">
10
- <div class="sui-actions-right">
11
- <a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/" target="_blank" class="sui-button sui-button-ghost">
12
- <i class="sui-icon-academy"></i> <?php _e( "View Documentation", "defender-security" ) ?>
13
- </a>
14
- </div>
15
- </div>
16
- <?php endif; ?>
17
- </div>
18
- <div class="sui-box sui-message">
19
- <?php if ( wp_defender()->hideHeroImage == 0 ): ?>
20
- <img src="<?php echo wp_defender()->getPluginUrl() ?>assets/img/scan-man.svg" class="sui-image"
21
- aria-hidden="true">
22
- <?php endif; ?>
23
- <div class="sui-message-content">
24
- <p><?php _e( "Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious. Defender will keep an eye on your code without you having to worry.", "defender-security" ) ?></p>
25
- <form id="start-a-scan" method="post" class="scan-frm">
26
- <?php
27
- wp_nonce_field( 'startAScan' );
28
- ?>
29
- <input type="hidden" name="action" value="startAScan"/>
30
- <p>
31
- <button type="submit" class="sui-button sui-button-blue">
32
- <?php _e( "Run Scan", "defender-security" ) ?></button>
33
- </p>
34
- </form>
35
- </div>
36
- </div>
37
- </div>
38
- <?php if ( wp_defender()->changeFooter && ! empty( wp_defender()->footerText ) ): ?>
39
- <div class="sui-footer"><?php echo wp_defender()->footerText ?></div>
40
- <?php else: ?>
41
- <div class="sui-footer">Made with <i class="sui-icon-heart"></i> by WPMU DEV</div>
42
- <?php endif; ?>
43
- <?php if ( wp_defender()->hideDocLinks == false ): ?>
44
- <?php if ( wp_defender()->isFree ): ?>
45
- <ul class="sui-footer-nav">
46
- <li><a href="https://profiles.wordpress.org/wpmudev#content-plugins" target="_blank">Free
47
- Plugins</a>
48
- </li>
49
- <li><a href="https://premium.wpmudev.org/features/" target="_blank">Membership</a></li>
50
- <li><a href="https://premium.wpmudev.org/roadmap/" target="_blank">Roadmap</a></li>
51
- <li><a href="https://wordpress.org/support/plugin/plugin-name" target="_blank">Support</a></li>
52
- <li><a href="https://premium.wpmudev.org/docs/" target="_blank">Docs</a></li>
53
- <li><a href="https://premium.wpmudev.org/hub/" target="_blank">The Hub</a></li>
54
- <li><a href="https://premium.wpmudev.org/terms-of-service/" target="_blank">Terms of Service</a>
55
- </li>
56
- <li><a href="https://incsub.com/privacy-policy/" target="_blank">Privacy Policy</a></li>
57
- </ul>
58
- <?php else: ?>
59
- <ul class="sui-footer-nav">
60
- <li><a href="https://premium.wpmudev.org/hub/" target="_blank">The Hub</a></li>
61
- <li><a href="https://premium.wpmudev.org/projects/category/plugins/" target="_blank">Plugins</a>
62
- </li>
63
- <li><a href="https://premium.wpmudev.org/roadmap/" target="_blank">Roadmap</a></li>
64
- <li><a href="https://premium.wpmudev.org/hub/support/" target="_blank">Support</a></li>
65
- <li><a href="https://premium.wpmudev.org/docs/" target="_blank">Docs</a></li>
66
- <li><a href="https://premium.wpmudev.org/hub/community/" target="_blank">Community</a></li>
67
- <li><a href="https://premium.wpmudev.org/terms-of-service/" target="_blank">Terms of Service</a>
68
- </li>
69
- <li><a href="https://incsub.com/privacy-policy/" target="_blank">Privacy Policy</a></li>
70
- </ul>
71
- <?php endif; ?>
72
- <ul class="sui-footer-social">
73
- <li><a href="https://www.facebook.com/wpmudev" target="_blank">
74
- <i class="sui-icon-social-facebook" aria-hidden="true"></i>
75
- <span class="sui-screen-reader-text">Facebook</span>
76
- </a></li>
77
- <li><a href="https://twitter.com/wpmudev" target="_blank">
78
- <i class="sui-icon-social-twitter" aria-hidden="true"></i></a>
79
- <span class="sui-screen-reader-text">Twitter</span>
80
- </li>
81
- <li><a href="https://www.instagram.com/wpmu_dev/" target="_blank">
82
- <i class="sui-icon-instagram" aria-hidden="true"></i>
83
- <span class="sui-screen-reader-text">Instagram</span>
84
- </a></li>
85
- </ul>
86
- <?php endif; ?>
87
- </div>
88
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/scan/view/scanning.php DELETED
@@ -1,94 +0,0 @@
1
- <div class="sui-wrap <?php echo \WP_Defender\Behavior\Utils::instance()->maybeHighContrast() ?>">
2
- <div class="wp-defender">
3
- <div class="wdf-scanning">
4
- <div class="sui-header">
5
- <h1 class="sui-header-title">
6
- <?php _e( "File Scanning", "defender-security" ) ?>
7
- </h1>
8
- <div class="sui-actions-left">
9
- <form id="start-a-scan" method="post" class="scan-frm">
10
- <?php
11
- wp_nonce_field( 'startAScan' );
12
- ?>
13
- <input type="hidden" name="action" value="startAScan"/>
14
- <button type="submit" class="sui-button sui-button-blue">
15
- <?php _e( "New Scan", "defender-security" ) ?>
16
- </button>
17
- </form>
18
- </div>
19
- </div>
20
- </div>
21
- </div>
22
- <div class="sui-dialog <?php echo wp_defender()->isFree ? 'scanning-free' : null ?>" aria-hidden="true"
23
- tabindex="-1" id="scanning">
24
-
25
- <div class="sui-dialog-overlay"></div>
26
-
27
- <div class="sui-dialog-content" aria-labelledby="dialogTitle" aria-describedby="dialogDescription"
28
- role="dialog">
29
-
30
- <div class="sui-box" role="document">
31
-
32
- <div class="sui-box-header">
33
- <h3 class="sui-box-title" id="dialogTitle">
34
- <?php _e( "Scan in progress", "defender-security" ) ?>
35
- </h3>
36
- </div>
37
-
38
- <div class="sui-box-body">
39
- <p id="dialogDescription">
40
- <?php _e( "Defender is scanning your files for malicious code. This will take a few minutes depending on the size of your website.", "defender-security" ) ?>
41
- </p>
42
- <div class="sui-progress-block sui-progress-can-close">
43
- <div class="sui-progress">
44
- <span class="sui-progress-icon" aria-hidden="true">
45
- <i class="sui-icon-loader sui-loading"></i>
46
- </span>
47
- <span class="sui-progress-text">
48
- <span><?php echo $percent ?>%</span>
49
- </span>
50
- <div class="sui-progress-bar" aria-hidden="true">
51
- <span style="width: <?php echo $percent ?>%"></span>
52
- </div>
53
- </div>
54
- <form method="post" class="scan-frm">
55
- <input type="hidden" name="action" value="cancelScan"/>
56
- <?php wp_nonce_field( 'cancelScan', '_wpnonce', true ) ?>
57
- <button class="sui-button-icon" type="submit">
58
- <i class="sui-icon-close"></i>
59
- </button>
60
- </form>
61
- </div>
62
- <div class="sui-progress-state">
63
- <span class="sui-progress-state-text">
64
- <?php echo $model->statusText ?>
65
- </span>
66
- </div>
67
- <?php if ( wp_defender()->isFree ): ?>
68
- <div class="sui-row">
69
- <div class="sui-col-md-3">
70
- </div>
71
- <div class="sui-col-md-9">
72
- <div class="sui-notice sui-notice-info">
73
- <p>
74
- <?php printf( __( "Did you know the Pro version of Defender comes with advanced full code scanning and automated reporting?
75
- Get enhanced security protection as part of a WPMU DEV membership including 100+ plugins, 24/7
76
- support and lots of handy site management tools – <a target='_blank' href=\"%s\">Try Defender Pro today for FREE</a>", "defender-security" ), \WP_Defender\Behavior\Utils::instance()->campaignURL( 'defender_filescanning_modal_inprogress_upsell_link' ) ) ?>
77
- </p>
78
- </div>
79
- </div>
80
- </div>
81
- <?php endif; ?>
82
- <form method="post" id="process-scan" class="scan-frm">
83
- <input type="hidden" name="action" value="processScan"/>
84
- <?php
85
- wp_nonce_field( 'processScan' );
86
- ?>
87
- </form>
88
- </div>
89
- </div>
90
-
91
- </div>
92
-
93
- </div>
94
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/setting/controller/main.php CHANGED
@@ -63,7 +63,7 @@ class Main extends Controller {
63
 
64
  wp_enqueue_script( 'defender' );
65
  wp_register_script( 'defender-settings', wp_defender()->getPluginUrl() . 'assets/app/settings.js', [
66
- 'vue',
67
  'defender',
68
  'wp-i18n'
69
  ], wp_defender()->version, true );
63
 
64
  wp_enqueue_script( 'defender' );
65
  wp_register_script( 'defender-settings', wp_defender()->getPluginUrl() . 'assets/app/settings.js', [
66
+ 'def-vue',
67
  'defender',
68
  'wp-i18n'
69
  ], wp_defender()->version, true );
app/module/setting/js/script.js DELETED
@@ -1,52 +0,0 @@
1
- jQuery(function ($) {
2
- Settings.formHandler();
3
-
4
- $('body').on('submit', '.wd_reset_settings', function (e) {
5
- e.preventDefault();
6
- var that = $(this);
7
- $.ajax({
8
- url: ajaxurl,
9
- data: that.serialize(),
10
- type: 'POST',
11
- beforeSend: function () {
12
- that.find('button').attr('disabled', 'disabled');
13
- that.find('button[type="submit"]').addClass('sui-button-onload')
14
- },
15
- success: function (data) {
16
- console.log(data);
17
- Defender.showNotification('success', data.data.message);
18
- location.reload();
19
- }
20
- })
21
- return false;
22
- })
23
- });
24
-
25
- window.Settings = window.Settings || {};
26
- Settings.formHandler = function () {
27
- var jq = jQuery;
28
- jq('body').on('submit', '.settings-frm', function () {
29
- var data = jq(this).serialize();
30
- var that = jq(this);
31
- jq.ajax({
32
- type: 'POST',
33
- url: ajaxurl,
34
- data: data,
35
- beforeSend: function () {
36
- that.find('button[type="submit"]').attr('disabled', 'disabled');
37
- },
38
- success: function (data) {
39
- if (data.data.reload != undefined) {
40
- Defender.showNotification('success', data.data.message);
41
- location.reload();
42
- } else if (data.data != undefined && data.data.url != undefined) {
43
- location.href = data.data.url;
44
- } else {
45
- that.find('button[type="submit"]').removeAttr('disabled');
46
- jq('div.settings').trigger('form-submitted', [data, that])
47
- }
48
- }
49
- })
50
- return false;
51
- })
52
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/module/setting/view/data.php DELETED
@@ -1,81 +0,0 @@
1
- <div class="sui-box">
2
- <div class="sui-box-header">
3
- <h3 class="sui-box-title">
4
- <?php _e( "Data & Settings", "defender-security" ) ?>
5
- </h3>
6
- </div>
7
- <form method="post" id="settings" class="settings-frm">
8
- <div class="sui-box-body">
9
- <p>
10
- <?php _e( "Control what to do with your settings and data. Settings are each module’s configuration options, Data includes the stored information like logs, statistics other pieces of information stored over time.", "defender-security" ) ?>
11
- </p>
12
- <div class="sui-box-settings-row">
13
- <div class="sui-box-settings-col-1">
14
- <span class="sui-settings-label">
15
- <?php esc_html_e( "Uninstallation", "defender-security" ) ?>
16
- </span>
17
- <span class="sui-description">
18
- <?php _e( "When you uninstall this plugin, what do you want to do with your settings and stored data?", "defender-security" ) ?>
19
- </span>
20
- </div>
21
-
22
- <div class="sui-box-settings-col-2">
23
- <div class="sui-form-field">
24
- <label class="sui-label"><?php _e( "Settings", "defender-security" ) ?></label>
25
- <div class="sui-side-tabs sui-tabs">
26
- <div data-tabs>
27
- <div rel="input_value" data-target="uninstall_settings" data-value="preserve"
28
- class="<?php echo $settings->uninstall_settings == 'preserve' ? 'active' : null ?>"><?php _e( "Preserve", "defender-security" ) ?></div>
29
- <div rel="input_value" data-target="uninstall_settings" data-value="reset"
30
- class="<?php echo $settings->uninstall_settings == 'reset' ? 'active' : null ?>"><?php _e( "Reset", "defender-security" ) ?></div>
31
- </div>
32
- <input type="hidden" name="uninstall_settings"
33
- value="<?php echo $settings->uninstall_settings ?>"/>
34
- </div>
35
- <label class="sui-label"><?php _e( "Data", "defender-security" ) ?></label>
36
- <div class="sui-side-tabs sui-tabs">
37
- <div data-tabs>
38
- <div rel="input_value" data-target="uninstall_data" data-value="keep"
39
- class="<?php echo $settings->uninstall_data == 'keep' ? 'active' : null ?>"><?php _e( "Keep", "defender-security" ) ?></div>
40
- <div rel="input_value" data-target="uninstall_data" data-value="remove"
41
- class="<?php echo $settings->uninstall_data == 'remove' ? 'active' : null ?>"><?php _e( "Remove", "defender-security" ) ?></div>
42
- </div>
43
- <input type="hidden" name="uninstall_data"
44
- value="<?php echo $settings->uninstall_data ?>"/>
45
- </div>
46
- </div>
47
- </div>
48
- </div>
49
- <div class="sui-box-settings-row">
50
- <div class="sui-box-settings-col-1">
51
- <span class="sui-settings-label">
52
- <?php esc_html_e( "Reset Settings", "defender-security" ) ?>
53
- </span>
54
- <span class="sui-description">
55
- <?php esc_html_e( "Needing to start fresh? Use this button to roll back to the default settings.", "defender-security" ) ?>
56
- </span>
57
- </div>
58
-
59
- <div class="sui-box-settings-col-2">
60
- <button type="button" data-a11y-dialog-show="reset-data-confirm"
61
- class="sui-button-ghost sui-button wd-reset-settings">
62
- <i class="sui-icon-undo" aria-hidden="true"></i>
63
- <?php _e( "Reset Settings", "defender-security" ) ?>
64
- </button>
65
- <span class="sui-description">
66
- <?php _e( "Note: This will instantly revert all settings to their default states but will leave your data intact.", "defender-security" ) ?>
67
- </span>
68
- </div>
69
- </div>
70
- </div>
71
- <div class="sui-box-footer">
72
- <input type="hidden" name="action" value="saveSettings"/>
73
- <?php wp_nonce_field( 'saveSettings' ) ?>
74
- <div class="sui-actions-right">
75
- <button type="submit" class="sui-button sui-button-blue">
76
- <i class="sui-icon-save" aria-hidden="true"></i>
77
- <?php _e( "Save Changes", "defender-security" ) ?></button>
78
- </div>
79
- </div>
80
- </form>
81
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/view/activator-free.php DELETED
@@ -1,116 +0,0 @@
1
- <div class="sui-dialog" aria-hidden="true" tabindex="-1" id="activator">
2
-
3
- <div class="sui-dialog-overlay" data-a11y-dialog-hide></div>
4
-
5
- <div class="sui-dialog-content" aria-labelledby="Quick setup" aria-describedby="" role="dialog">
6
-
7
- <div class="sui-box activate-picker" role="document">
8
-
9
- <div class="sui-box-header">
10
- <h3 class="sui-box-title">
11
- <?php _e( "Quick Setup", "defender-security" ) ?></h3>
12
- <div class="sui-actions-right">
13
- <form method="post" class="skip-activator">
14
- <input type="hidden" name="action" value="skipActivator"/>
15
- <?php wp_nonce_field( 'skipActivator', '_wpnonce', true ) ?>
16
- <button type="submit" class="sui-button sui-button-ghost">
17
- <?php _e( "Skip", "defender-security" ) ?>
18
- </button>
19
- </form>
20
- </div>
21
- </div>
22
- <form method="post">
23
- <div class="sui-box-body">
24
- <p><?php _e( "Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default.", "defender-security" ) ?></p>
25
- <hr class="sui-flushed"/>
26
- <input type="hidden" value="activateModule" name="action"/>
27
- <?php wp_nonce_field( 'activateModule' ) ?>
28
- <div class="sui-row">
29
- <div class="sui-col-md-10">
30
- <span class="sui-settings-label">
31
- <?php
32
- if ( wp_defender()->isFree ) {
33
- _e( "File Scanning", "defender-security" );
34
- } else {
35
- _e( "Automatic File Scans & Reporting", "defender-security" );
36
- } ?>
37
- </span>
38
- <span class="sui-description">
39
- <?php _e( "Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious.", "defender-security" ) ?>
40
- </span>
41
- </div>
42
-
43
- <div class="sui-col-md-2">
44
- <div class="sui-form-field tr">
45
- <label class="sui-toggle">
46
- <input type="checkbox"
47
- name="activator[]" checked
48
- class="toggle-checkbox" id="active_scan"
49
- value="activate_scan"/>
50
- <span class="sui-toggle-slider"></span>
51
- </label>
52
- </div>
53
- </div>
54
- </div>
55
- <hr class="sui-flushed"/>
56
- <div class="sui-row">
57
- <div class="sui-col-md-10">
58
- <span class="sui-settings-label">
59
- <?php _e( "IP Lockouts", "defender-security" ) ?>
60
- </span>
61
- <span class="sui-description">
62
- <?php _e( "Protect your login area and have Defender automatically lockout any suspicious behaviour.", "defender-security" ) ?>
63
- </span>
64
- </div>
65
-
66
- <div class="sui-col-md-2">
67
- <div class="sui-form-field tr">
68
- <label class="sui-toggle">
69
- <input type="checkbox" checked
70
- name="activator[]" class="toggle-checkbox" id="activate_lockout"
71
- value="activate_lockout"/>
72
- <span class="sui-toggle-slider"></span>
73
- </label>
74
- </div>
75
- </div>
76
- </div>
77
- </div>
78
-
79
- <div class="sui-box-footer">
80
- <div class="sui-row">
81
- <div class="sui-col-md-9">
82
- <small><?php _e( "Note: These services will be configured with our recommended settings. You can change these at any time.", "defender-security" ) ?></small>
83
- </div>
84
- <div class="sui-col-md-3">
85
- <button type="submit" class="sui-button sui-button-blue">
86
- <?php _e( "Get Started", "defender-security" ) ?></button>
87
- </div>
88
- </div>
89
- </div>
90
- </form>
91
- <img src="<?php echo wp_defender()->getPluginUrl() . '/assets/img/defender-activator.svg' ?>"
92
- class="sui-image sui-image-center"/>
93
- </div>
94
- <div class="sui-box activate-progress wd-hide">
95
- <div class="sui-box-body">
96
- <p>
97
- <?php _e( "Just a moment while Defender activates those services for you...", "defender-security" ) ?>
98
- </p>
99
- <div class="sui-progress-block">
100
- <div class="sui-progress">
101
- <div class="sui-progress-text scan-progress-text sui-icon-loader sui-loading">
102
- <span>0%</span>
103
- </div>
104
- <div class="sui-progress-bar scan-progress-bar">
105
- <span style="width: 0%"></span>
106
- </div>
107
- </div>
108
- </div>
109
- <div class="sui-progress-state">
110
- <span class="status-text"></span>
111
- </div>
112
- </div>
113
- </div>
114
- </div>
115
-
116
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/view/activator.php DELETED
@@ -1,162 +0,0 @@
1
- <div class="sui-dialog" aria-hidden="true" tabindex="-1" id="activator">
2
-
3
- <div class="sui-dialog-overlay" data-a11y-dialog-hide></div>
4
-
5
- <div class="sui-dialog-content" aria-labelledby="Quick setup" aria-describedby="" role="dialog">
6
-
7
- <div class="sui-box activate-picker" role="document">
8
-
9
- <div class="sui-box-header">
10
- <h3 class="sui-box-title">
11
- <?php _e( "Quick Setup", "defender-security" ) ?></h3>
12
- <div class="sui-actions-right">
13
- <form method="post" class="skip-activator">
14
- <input type="hidden" name="action" value="skipActivator"/>
15
- <?php wp_nonce_field( 'skipActivator', '_wpnonce', true ) ?>
16
- <button type="submit" class="sui-button sui-button-ghost">
17
- <?php _e( "Skip", "defender-security" ) ?>
18
- </button>
19
- </form>
20
- </div>
21
- </div>
22
- <form method="post">
23
- <div class="sui-box-body">
24
- <p><?php _e( "Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default.", "defender-security" ) ?></p>
25
- <hr class="sui-flushed"/>
26
- <input type="hidden" value="activateModule" name="action"/>
27
- <?php wp_nonce_field( 'activateModule' ) ?>
28
- <div class="sui-row">
29
- <div class="sui-col-md-10">
30
- <span class="sui-settings-label">
31
- <?php
32
- if ( wp_defender()->isFree ) {
33
- _e( "File Scanning", "defender-security" );
34
- } else {
35
- _e( "Automatic File Scans & Reporting", "defender-security" );
36
- } ?>
37
- </span>
38
- <span class="sui-description">
39
- <?php _e( "Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious.", "defender-security" ) ?>
40
- </span>
41
- </div>
42
-
43
- <div class="sui-col-md-2">
44
- <div class="sui-form-field tr">
45
- <label class="sui-toggle">
46
- <input type="checkbox"
47
- name="activator[]" checked
48
- class="toggle-checkbox" id="active_scan"
49
- value="activate_scan"/>
50
- <span class="sui-toggle-slider"></span>
51
- </label>
52
- </div>
53
- </div>
54
- </div>
55
- <hr class="sui-flushed"/>
56
- <div class="sui-row">
57
- <div class="sui-col-md-10">
58
- <span class="sui-settings-label">
59
- <?php _e( "Audit Logging", "defender-security" ) ?>
60
- </span>
61
- <span class="sui-description">
62
- <?php _e( "Track and log events when changes are made to your website giving you full visibility of what’s going on behind the scenes.", "defender-security" ) ?>
63
- </span>
64
- </div>
65
-
66
- <div class="sui-col-md-2">
67
- <div class="sui-form-field tr">
68
- <label class="sui-toggle">
69
- <input type="checkbox"
70
- name="activator[]" checked
71
- class="toggle-checkbox" id="active_audit" value="activate_audit"/>
72
- <span class="sui-toggle-slider"></span>
73
- </label>
74
- </div>
75
- </div>
76
- </div>
77
- <hr class="sui-flushed"/>
78
- <div class="sui-row">
79
- <div class="sui-col-md-10">
80
- <span class="sui-settings-label">
81
- <?php _e( "IP Lockouts", "defender-security" ) ?>
82
- </span>
83
- <span class="sui-description">
84
- <?php _e( "Protect your login area and have Defender automatically lockout any suspicious behaviour.", "defender-security" ) ?>
85
- </span>
86
- </div>
87
-
88
- <div class="sui-col-md-2">
89
- <div class="sui-form-field tr">
90
- <label class="sui-toggle">
91
- <input type="checkbox" checked
92
- name="activator[]" class="toggle-checkbox" id="activate_lockout"
93
- value="activate_lockout"/>
94
- <span class="sui-toggle-slider"></span>
95
- </label>
96
- </div>
97
- </div>
98
- </div>
99
- <hr class="sui-flushed"/>
100
- <div class="sui-row">
101
- <div class="sui-col-md-10">
102
- <span class="sui-settings-label">
103
- <?php _e( "Blacklist Monitor", "defender-security" ) ?>
104
- </span>
105
- <span class="sui-description">
106
- <?php _e( "Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email.", "defender-security" ) ?>
107
- </span>
108
- </div>
109
-
110
- <div class="sui-col-md-2">
111
- <div class="sui-form-field tr">
112
- <label class="sui-toggle">
113
- <input type="checkbox" checked
114
- name="activator[]" class="toggle-checkbox" id="activate_blacklist"
115
- value="activate_blacklist"/>
116
- <span class="sui-toggle-slider"></span>
117
- </label>
118
- </div>
119
- </div>
120
- </div>
121
- </div>
122
-
123
- <div class="sui-box-footer">
124
- <div class="sui-row">
125
- <div class="sui-col-md-9">
126
- <small><?php _e( "Note: These services will be configured with our recommended settings. You can change these at any time.", "defender-security" ) ?></small>
127
- </div>
128
- <div class="sui-col-md-3">
129
- <button type="submit" class="sui-button sui-button-blue">
130
- <?php _e( "Get Started", "defender-security" ) ?></button>
131
- </div>
132
- </div>
133
- </div>
134
- </form>
135
- <?php if ( strlen( wp_defender()->heroImage ) == 0 ): ?>
136
- <img src="<?php echo wp_defender()->getPluginUrl() . '/assets/img/defender-activator.svg' ?>"
137
- class="sui-image sui-image-center"/>
138
- <?php endif; ?>
139
- </div>
140
- <div class="sui-box activate-progress wd-hide">
141
- <div class="sui-box-body">
142
- <p>
143
- <?php _e( "Just a moment while Defender activates those services for you...", "defender-security" ) ?>
144
- </p>
145
- <div class="sui-progress-block">
146
- <div class="sui-progress">
147
- <div class="sui-progress-text scan-progress-text sui-icon-loader sui-loading">
148
- <span>0%</span>
149
- </div>
150
- <div class="sui-progress-bar scan-progress-bar">
151
- <span style="width: 0%"></span>
152
- </div>
153
- </div>
154
- </div>
155
- <div class="sui-progress-state">
156
- <span class="status-text"></span>
157
- </div>
158
- </div>
159
- </div>
160
- </div>
161
-
162
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/view/dashboard.php DELETED
@@ -1,255 +0,0 @@
1
- <?php
2
- list( $hCount, $sCount ) = $controller->countTotalIssues( true );
3
- $countAll = $hCount + $sCount;
4
- ?>
5
- <div class="sui-wrap <?php echo \WP_Defender\Behavior\Utils::instance()->maybeHighContrast() ?>">
6
- <div id="wp-defender" class="wp-defender">
7
- <div class="def-dashboard">
8
- <div class="sui-header">
9
- <h1 class="sui-header-title">
10
- <?php _e( "Dashboard", "defender-security" ) ?>
11
- </h1>
12
- <?php if ( wp_defender()->hideDocLinks === false ): ?>
13
- <div class="sui-actions-right">
14
- <div class="sui-actions-right">
15
- <a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/" target="_blank"
16
- class="sui-button sui-button-ghost">
17
- <i class="sui-icon-academy"></i> <?php _e( "View Documentation", "defender-security" ) ?>
18
- </a>
19
- </div>
20
- </div>
21
- <?php endif; ?>
22
- </div>
23
- <div class="sui-box sui-summary <?php echo \WP_Defender\Behavior\Utils::instance()->getSummaryClass() ?>">
24
- <div class="sui-summary-image-space" aria-hidden="true"></div>
25
- <div class="sui-summary-segment">
26
- <div class="sui-summary-details">
27
- <span class="sui-summary-large"><?php echo $countAll ?></span>
28
- <?php if ( $countAll > 0 ): ?>
29
- <?php
30
- $tooltips = "";
31
- if ( $hCount == 1 && $sCount == 0 ) {
32
- $tooltips = __( "You have one security tweak left to do. We recommend you action it, or ignore it if it's irrelevant.", "defender-security" );
33
- } elseif ( $hCount == 0 && $sCount == 1 ) {
34
- $tooltips = __( "We've detected a potential security risk in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless.", "defender-security" );
35
- } elseif ( $hCount == 1 && $sCount == 1 ) {
36
- $tooltips = __( "You have one security tweak left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless.", "defender-security" );
37
- } elseif ( $hCount == 1 && $sCount > 1 ) {
38
- $tooltips = sprintf( __( "You have one security tweak left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless", "defender-security" ), $sCount );
39
- } elseif ( $hCount > 1 && $sCount == 1 ) {
40
- $tooltips = sprintf( __( "You have %s security tweaks left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless.", "defender-security" ), $hCount );
41
- } elseif ( $hCount > 1 && $sCount > 1 ) {
42
- $tooltips = sprintf( __( "You have %s security tweaks left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless.", "defender-security" ), $hCount, $sCount );
43
- } elseif ( $hCount > 1 && $sCount == 0 ) {
44
- $tooltips = sprintf( __( "You have %d security tweaks left to do. We recommend you action it, or ignore it if it's irrelevant.", "defender-security" ), $hCount );
45
- } elseif ( $hCount == 0 && $sCount > 1 ) {
46
- $tooltips = sprintf( __( "We've detected %d potential security risks in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless.", "defender-security" ), $sCount );
47
- }
48
- ?>
49
- <span class="sui-tooltip sui-tooltip-top-left sui-tooltip-constrained"
50
- data-tooltip="<?php echo $tooltips ?>">
51
- <i aria-hidden="true" class="sui-icon-info sui-warning"></i>
52
- </span>
53
- <?php else: ?>
54
- <span class="sui-tooltip sui-tooltip-top-left sui-tooltip-constrained"
55
- data-tooltip="<?php esc_attr_e( "You don't have any outstanding security issues, nice work!", "defender-security" ) ?>">
56
- <i class="sui-icon-check-tick sui-success" aria-hidden="true"></i>
57
- </span>
58
- <?php endif; ?>
59
- <span class="sui-summary-sub"><?php _e( "Security issues", "defender-security" ) ?></span>
60
- </div>
61
- </div>
62
- <div class="sui-summary-segment">
63
- <ul class="sui-list">
64
- <li>
65
- <span class="sui-list-label"><?php _e( "Security Tweaks Actioned", "defender-security" ) ?></span>
66
- <span class="sui-list-detail">
67
- <?php
68
- $settings = \WP_Defender\Module\Hardener\Model\Settings::instance();
69
- echo count( $settings->fixed ) + count( $settings->ignore ) ?>
70
- /
71
- <?php echo count( $settings->getDefinedRules() )
72
- ?>
73
- </span>
74
- </li>
75
- <li>
76
- <span class="sui-list-label"><?php _e( "File Scan Issues", "defender-security" ) ?></span>
77
- <span class="sui-list-detail">
78
- <?php echo $controller->renderScanStatusText() ?>
79
- </span>
80
- </li>
81
- <li>
82
- <span class="sui-list-label"><?php _e( "Last Lockout", "defender-security" ) ?></span>
83
- <span class="sui-list-detail lastLockout">
84
- -
85
- </span>
86
- </li>
87
- </ul>
88
- </div>
89
- </div>
90
- <div class="sui-row">
91
- <div class="sui-col">
92
- <?php echo $controller->renderHardenerWidget() ?>
93
- <?php $controller->renderBlacklistWidget() ?>
94
- <?php $controller->renderATWidget() ?>
95
- </div>
96
- <div class="sui-col">
97
- <?php $controller->renderScanWidget() ?>
98
- <?php $controller->renderLockoutWidget() ?>
99
- <?php $controller->renderAuditWidget() ?>
100
- <?php $controller->renderReportWidget() ?>
101
- </div>
102
- </div>
103
- </div>
104
- <?php
105
- if ( $controller->isShowActivator() ) {
106
- $view = wp_defender()->isFree ? 'activator-free' : 'activator';
107
- $controller->renderPartial( $view );
108
- } ?>
109
- <?php if ( wp_defender()->isFree ): ?>
110
- <div id="sui-cross-sell-footer" class="sui-row">
111
-
112
- <div><span class="sui-icon-plugin-2"></span></div>
113
- <h3><?php _e( "Check out our other free wordpress.org plugins!", "defender-security" ) ?></h3>
114
-
115
- </div>
116
-
117
- <!-- Cross-Sell Modules -->
118
- <div class="sui-row sui-cross-sell-modules">
119
-
120
- <div class="sui-col-md-4">
121
-
122
- <!-- Cross-Sell Banner #1 -->
123
- <div aria-hidden="true" class="sui-cross-1">
124
- <span></span>
125
- </div>
126
-
127
- <div class="sui-box">
128
- <div class="sui-box-body">
129
- <h3><?php _e( "Smush Image Compression and Optimization", "defender-security" ) ?></h3>
130
- <p><?php _e( "Resize, optimize and compress all of your images with the incredibly powerful and
131
- award-winning, 100% free WordPress image optimizer.", "defender-security" ) ?></p>
132
- <a href="https://wordpress.org/plugins/wp-smushit/"
133
- target="_blank"
134
- class="sui-button sui-button-ghost">
135
- <?php _e( "View features", "defender-security" ) ?> <i aria-hidden="true"
136
- class="sui-icon-arrow-right"></i>
137
- </a>
138
- </div>
139
- </div>
140
-
141
- </div>
142
-
143
- <div class="sui-col-md-4">
144
-
145
- <!-- Cross-Sell Banner #2 -->
146
- <div aria-hidden="true" class="sui-cross-2">
147
- <span></span>
148
- </div>
149
-
150
- <div class="sui-box">
151
- <div class="sui-box-body">
152
- <h3><?php _e( "Hummingbird Page Speed Optimization", "defender-security" ) ?></h3>
153
- <p><?php _e( "Performance Tests, File Optimization & Compression, Page, Browser & Gravatar Caching,
154
- GZIP Compression, CloudFlare Integration & more.", "defender-security" ) ?></p>
155
- <a href="https://wordpress.org/plugins/defender-security/"
156
- target="_blank"
157
- class="sui-button sui-button-ghost">
158
- <?php _e( "View features", "defender-security" ) ?> <i aria-hidden="true"
159
- class="sui-icon-arrow-right"></i>
160
- </a>
161
- </div>
162
- </div>
163
-
164
- </div>
165
-
166
- <div class="sui-col-md-4">
167
-
168
- <!-- Cross-Sell Banner #3 -->
169
- <div aria-hidden="true" class="sui-cross-3">
170
- <span></span>
171
- </div>
172
-
173
- <div class="sui-box">
174
- <div class="sui-box-body">
175
- <h3><?php _e( "SmartCrawl Search Engine Optimization", "defender-security" ) ?></h3>
176
- <p><?php _e( "Customize Titles & Meta Data, OpenGraph, Twitter & Pinterest Support, Auto-Keyword
177
- Linking, SEO & Readability Analysis, Sitemaps, URL Crawler & more.", "defender-security" ) ?></p>
178
- <span class="sui-tag"><?php _e( "Coming Soon", "defender-security" ) ?></span>
179
- </div>
180
- </div>
181
-
182
- </div>
183
-
184
- </div>
185
-
186
- <div class="sui-cross-sell-bottom">
187
-
188
- <h3><?php _e( "WPMU DEV - Your WordPress Toolkit", "defender-security" ) ?></h3>
189
- <p><?php _e( "Pretty much everything you need for developing and managing WordPress based websites, and then
190
- some.", "defender-security" ) ?></p>
191
-
192
- <a href="https://premium.wpmudev.org/"
193
- target="_blank"
194
- role="button"
195
- class="sui-button sui-button-green">
196
- <?php _e( "Learn more", "defender-security" ) ?>
197
- </a>
198
-
199
- <img class="sui-image" src="<?php echo wp_defender()->getPluginUrl() . '/sui/images/dev-team.png' ?>"
200
- aria-hidden="true">
201
-
202
- </div>
203
- <?php endif; ?>
204
- <?php if ( wp_defender()->changeFooter ): ?>
205
- <div class="sui-footer"><?php echo wp_defender()->footerText ?></div>
206
- <?php else: ?>
207
- <div class="sui-footer">Made with <i class="sui-icon-heart"></i> by WPMU DEV</div>
208
- <?php endif; ?>
209
- <?php if ( wp_defender()->hideDocLinks == false ): ?>
210
- <?php if ( wp_defender()->isFree ): ?>
211
- <ul class="sui-footer-nav">
212
- <li><a href="https://profiles.wordpress.org/wpmudev#content-plugins" target="_blank">Free
213
- Plugins</a>
214
- </li>
215
- <li><a href="https://premium.wpmudev.org/features/" target="_blank">Membership</a></li>
216
- <li><a href="https://premium.wpmudev.org/roadmap/" target="_blank">Roadmap</a></li>
217
- <li><a href="https://wordpress.org/support/plugin/plugin-name" target="_blank">Support</a></li>
218
- <li><a href="https://premium.wpmudev.org/docs/" target="_blank">Docs</a></li>
219
- <li><a href="https://premium.wpmudev.org/hub/" target="_blank">The Hub</a></li>
220
- <li><a href="https://premium.wpmudev.org/terms-of-service/" target="_blank">Terms of Service</a>
221
- </li>
222
- <li><a href="https://incsub.com/privacy-policy/" target="_blank">Privacy Policy</a></li>
223
- </ul>
224
- <?php else: ?>
225
- <ul class="sui-footer-nav">
226
- <li><a href="https://premium.wpmudev.org/hub/" target="_blank">The Hub</a></li>
227
- <li><a href="https://premium.wpmudev.org/projects/category/plugins/" target="_blank">Plugins</a>
228
- </li>
229
- <li><a href="https://premium.wpmudev.org/roadmap/" target="_blank">Roadmap</a></li>
230
- <li><a href="https://premium.wpmudev.org/hub/support/" target="_blank">Support</a></li>
231
- <li><a href="https://premium.wpmudev.org/docs/" target="_blank">Docs</a></li>
232
- <li><a href="https://premium.wpmudev.org/hub/community/" target="_blank">Community</a></li>
233
- <li><a href="https://premium.wpmudev.org/terms-of-service/" target="_blank">Terms of Service</a>
234
- </li>
235
- <li><a href="https://incsub.com/privacy-policy/" target="_blank">Privacy Policy</a></li>
236
- </ul>
237
- <?php endif; ?>
238
- <ul class="sui-footer-social">
239
- <li><a href="https://www.facebook.com/wpmudev" target="_blank">
240
- <i class="sui-icon-social-facebook" aria-hidden="true"></i>
241
- <span class="sui-screen-reader-text">Facebook</span>
242
- </a></li>
243
- <li><a href="https://twitter.com/wpmudev" target="_blank">
244
- <i class="sui-icon-social-twitter" aria-hidden="true"></i></a>
245
- <span class="sui-screen-reader-text">Twitter</span>
246
- </li>
247
- <li><a href="https://www.instagram.com/wpmu_dev/" target="_blank">
248
- <i class="sui-icon-instagram" aria-hidden="true"></i>
249
- <span class="sui-screen-reader-text">Instagram</span>
250
- </a></li>
251
- </ul>
252
- <?php endif; ?>
253
- </div>
254
- </div>
255
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/view/pro-feature.php DELETED
@@ -1,39 +0,0 @@
1
- <dialog class="dev-team" id="pro-feature" title="<?php _e( "Defender Pro Features", "defender-security" ) ?>">
2
- <div class="wp-defender">
3
- <p class=""><?php _e( "Here’s what you’ll get by upgrading to Defender Pro:", "defender-security" ) ?></p>
4
- <div class="well well-blank with-cap">
5
- <i class="def-icon icon-tick fill-blue"></i>
6
- <strong><?php _e( "Automatic Full File Scans & Notifications", "defender-security" ) ?></strong>
7
- <p class="sub">
8
- <?php _e( "Schedule Defender to automatically run a full file scan daily, weekly or monthly and get email reports
9
- when
10
- issues arise.", "defender-security" ) ?>
11
- </p>
12
- </div>
13
- <div class="well well-blank with-cap">
14
- <i class="def-icon icon-tick fill-blue"></i>
15
- <strong><?php _e( "Advanced File Scanning", "defender-security" ) ?></strong>
16
- <p class="sub">
17
- <?php _e( "Defender will go beyond just plugins and themes and scan your entire file system for suspicious code.", "defender-security" ) ?>
18
- </p>
19
- </div>
20
- <div class="well well-blank with-cap">
21
- <i class="def-icon icon-tick fill-blue"></i>
22
- <strong><?php _e( "Audit Logging", "defender-security" ) ?></strong>
23
- <p class="sub">
24
- <?php _e( "Track and log each and every event when changes are made to your website and get detailed reports on what’s going on behind the scenes, including any hacking attempts on your site.", "defender-security" ) ?>
25
- </p>
26
- </div>
27
- <div class="well well-blank with-cap mline">
28
- <i class="def-icon icon-tick fill-blue"></i>
29
- <strong><?php _e( "Tailored Reporting", "defender-security" ) ?></strong>
30
- <p class="sub">
31
- <?php _e( "Get tailored security reports for File Scanning, Audit Logging and IP Lockouts delivered to your inbox so you don’t have to worry about checking in.", "defender-security" ) ?>
32
- </p>
33
- </div>
34
- <div class="tc">
35
- <a class="button button-green mline" href="https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign=defender_modal_upgrade"><?php _e( "Get Defender Pro for Free", "defender-security" ) ?></a>
36
- <p class="is-marginless"><?php _e( "As part of a WPMU DEV free trial.", "defender-security" ) ?></p>
37
- </div>
38
- </div>
39
- </dialog>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/view/requirement.php DELETED
@@ -1,16 +0,0 @@
1
- <div class="wrap">
2
- <div class="wp-defender">
3
- <div class="wdf-requirement">
4
- <h2 class="title">
5
-
6
- </h2>
7
- </div>
8
- </div>
9
- <dialog id="requirement">
10
- <div class="line">
11
- <?php _e( "Defender is currently scanning your files for malicious code, please be patient this should on take a
12
- few minutes depending on the size of your website.", "defender-security" ) ?>
13
- </div>
14
-
15
- </dialog>
16
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/view/settings.php DELETED
@@ -1,335 +0,0 @@
1
- <div class="wrap">
2
- <div class="wpmud">
3
- <div class="wp-defender">
4
- <div class="wd-settings">
5
- <section id="header">
6
- <h1 class="tl"><?php esc_html_e( "Settings", "defender-security" ) ?></h1>
7
- </section>
8
- <?php if ( $controller->has_flash( 'updated' ) ): ?>
9
- <div class="wd-success wd-left">
10
- <a href="#" class="wd-dismiss">
11
- &times;
12
- </a>
13
- <i class="dev-icon dev-icon-tick"></i>
14
- <?php echo esc_html( $controller->get_flash( 'updated' ) ) ?>
15
- </div>
16
- <?php endif; ?>
17
- <section class="dev-box">
18
- <div class="box-title">
19
- <h3><?php esc_html_e( "General Settings", "defender-security" ) ?></h3>
20
- </div>
21
- <div class="box-content">
22
- <form method="post">
23
- <div class="row setting-field">
24
- <div class="col-left">
25
- <label><?php esc_html_e( "Scan types", "defender-security" ) ?></label>
26
-
27
- <div class="setting-description">
28
- <?php esc_html_e( "By default we recommend running all scans but you can turn these off if you choose", "defender-security" ) ?>
29
- <div class="wd-clearfix"></div>
30
- <br/>
31
- </div>
32
- </div>
33
- <div class="col-right">
34
- <div class="group">
35
- <?php
36
- $key = 'use_' . WD_Scan_Api::SCAN_CORE_INTEGRITY . '_scan';
37
- $tooltip = WD_Utils::get_setting( $key ) == 1 ? esc_html__( "Disable This Scan", "defender-security" ) : esc_html__( "Enable This Scan", "defender-security" );
38
- ?>
39
- <div class="col span_4_of_12">
40
- <label><?php esc_html_e( "WP Core Integrity", "defender-security" ) ?></label>
41
- </div>
42
- <div class="col span_8_of_12">
43
- <div class="group">
44
- <div class="col span_1_of_12">
45
- <span class="toggle"
46
- tooltip="<?php echo esc_attr( $tooltip ) ?>">
47
- <input type="checkbox" class="toggle-checkbox"
48
- id="<?php echo esc_html( $key ) ?>"
49
- <?php checked( 1, WD_Utils::get_setting( $key ) ) ?>/>
50
- <label class="toggle-label" for="<?php echo esc_attr( $key ) ?>"></label>
51
- </span>
52
- </div>
53
- <div class="col span_11_of_12">
54
- <small class="">
55
- <?php esc_html_e( "Defender checks for any modifications or additions to WP core files.", "defender-security" ) ?>
56
- </small>
57
- </div>
58
- </div>
59
-
60
- </div>
61
- <div class="wd-clear"></div>
62
- </div>
63
- <div class="group wd-relative-position">
64
- <div class="col span_4_of_12">
65
- <label><?php esc_html_e( "Plugin & Theme Vulnerabilities", "defender-security" ) ?></label>
66
- </div>
67
- <div class="col span_8_of_12">
68
- <div class="group">
69
- <div class="col span_1_of_12">
70
- <?php
71
- $key = 'use_' . WD_Scan_Api::SCAN_VULN_DB . '_scan';
72
- $tooltip = WD_Utils::get_setting( 'use_' . WD_Scan_Api::SCAN_VULN_DB . '_scan' ) == 1 ? esc_html__( "Disable This Scan", "defender-security" ) : esc_html__( "Enable This Scan", "defender-security" );
73
- ?>
74
- <span class="toggle"
75
- tooltip="<?php echo esc_attr( $tooltip ) ?>">
76
- <input type="checkbox" class="toggle-checkbox"
77
- id="<?php echo esc_attr( $key ) ?>"
78
- <?php checked( 1, WD_Utils::get_setting( $key ) ) ?>/>
79
- <label class="toggle-label" for="<?php echo esc_attr( $key ) ?>"></label>
80
- </span>
81
- </div>
82
- <div class="col span_11_of_12">
83
- <small>
84
- <?php esc_html_e( "Defender looks for published vulnerabilities in your installed plugins and themes.", "defender-security" ) ?>
85
- </small>
86
- </div>
87
- </div>
88
- </div>
89
- <?php if ( WD_Utils::get_dev_api() == false ): ?>
90
- <div
91
- tooltip="<?php esc_attr_e( "WPMU DEV Dashboard is required for this scan", "defender-security" ) ?>"
92
- class="wd-overlay"></div>
93
- <?php endif; ?>
94
- <div class="wd-clear"></div>
95
- </div>
96
- <div class="group wd-relative-position">
97
- <div class="col span_4_of_12">
98
- <label><?php esc_html_e( "Suspicious Code", "defender-security" ) ?></label>
99
- </div>
100
- <div class="col span_8_of_12">
101
- <div class="group">
102
- <div class="col span_1_of_12">
103
- <?php
104
- $key = 'use_' . WD_Scan_Api::SCAN_SUSPICIOUS_FILE . '_scan';
105
- $tooltip = WD_Utils::get_setting( $key ) == 1 ? esc_html__( "Disable This Scan", "defender-security" ) : esc_html__( "Enable This Scan", "defender-security" );
106
- ?>
107
- <span class="toggle"
108
- tooltip="<?php echo esc_attr( $tooltip ) ?>">
109
- <input type="checkbox" class="toggle-checkbox"
110
- id="<?php echo esc_attr( $key ) ?>"
111
- <?php checked( 1, WD_Utils::get_setting( 'use_' . WD_Scan_Api::SCAN_SUSPICIOUS_FILE . '_scan' ) ) ?>/>
112
- <label class="toggle-label" for="<?php echo esc_attr( $key ) ?>"></label>
113
- </span>
114
- </div>
115
- <div class="col span_11_of_12">
116
- <small>
117
- <?php esc_html_e( "Defender looks inside all of your files for suspicious and potentially harmful code.", "defender-security" ) ?>
118
- </small>
119
- </div>
120
- </div>
121
- </div>
122
- <?php if ( WD_Utils::get_dev_api() == false ): ?>
123
- <div
124
- tooltip="<?php esc_attr_e( "WPMU DEV Dashboard is required for this scan", "defender-security" ) ?>"
125
- class="wd-overlay"></div>
126
- <?php endif; ?>
127
- <div class="wd-clearfix"></div>
128
- </div>
129
- </div>
130
- <div class="wd-clearfix"></div>
131
- </div>
132
- <div class="row setting-field">
133
- <div class="col-left">
134
- <label><?php esc_html_e( "Max included file size (MB)", "defender-security" ) ?></label>
135
-
136
- <div class="setting-description">
137
- <?php esc_html_e( "Defender will skip any files larger than this size. The smaller this number is the faster Defender can scan through your system.", "defender-security" ) ?>
138
- <div class="wd-clearfix"></div>
139
- <br/>
140
- </div>
141
- </div>
142
- <div class="col-right">
143
- <div class="group">
144
- <div class="col span_4_of_12">
145
- <input type="text" name="max_file_size"
146
- value="<?php echo esc_attr( WD_Utils::get_setting( 'max_file_size' ) ) ?>">
147
- </div>
148
- </div>
149
- </div>
150
- <div class="wd-clearfix"></div>
151
- </div>
152
- <div class="row setting-field">
153
- <div class="col-left">
154
- <label><?php esc_html_e( "Enable all email reports", "defender-security" ) ?></label>
155
-
156
- <div class="setting-description">
157
- <?php esc_html_e( "By default, Defender will email you when it runs into trouble on your site. Enabling this option will ensure you are always kept up-to-date, even when your site is running smoothly.", "defender-security" ) ?>
158
- <div class="wd-clearfix"></div>
159
- <br/>
160
- </div>
161
- </div>
162
- <div class="col-right">
163
- <div class="group">
164
- <div class="col span_4_of_12">
165
- <?php
166
- $key = 'always_notify';
167
- //$tooltip = WD_Utils::get_setting( $key, 0 ) == 1 ? esc_html__( "Send only problem", "defender-security" ) : esc_html__( "Always send", "defender-security" );
168
- ?>
169
- <span class="toggle">
170
- <input type="checkbox" class="toggle-checkbox"
171
- id="<?php echo esc_attr( $key ) ?>"
172
- <?php checked( 1, WD_Utils::get_setting( $key, 0 ) ) ?>/>
173
- <label class="toggle-label" for="<?php echo esc_attr( $key ) ?>"></label>
174
- </span>
175
- </div>
176
- </div>
177
- </div>
178
- <div class="wd-clearfix"></div>
179
- </div>
180
- <?php wp_nonce_field( 'wd_settings', 'wd_settings_nonce' ) ?>
181
- <input type="hidden" name="action" value="wd_settings_save"/>
182
- <br/>
183
-
184
- <div class="wd-clearfix"></div>
185
- <div class="wd-right">
186
- <button type="submit" class="button wd-button">
187
- <?php esc_html_e( "Save Settings", "defender-security" ) ?>
188
- </button>
189
- </div>
190
- </form>
191
- <br/>
192
- </div>
193
- </section>
194
- <section class="dev-box">
195
- <div class="box-title">
196
- <h3><?php esc_html_e( "Email Recipients", "defender-security" ) ?></h3>
197
- </div>
198
- <div class="box-content">
199
- <form id="email-recipients-frm">
200
- <p>
201
- <?php esc_html_e( "Choose which of your website’s users will receive scan report results to their email inboxes.", "defender-security" ) ?>
202
- </p>
203
- <div class="wd-error wd-hide"></div>
204
- <div class="wd-clear"></div>
205
- <br/>
206
- <?php echo $controller->display_recipients() ?>
207
- <input name="username" id="email-recipient" class="user-search"
208
- data-empty-msg="<?php esc_attr_e( "We did not find an admin user with this name...", "defender-security" ) ?>"
209
- placeholder="<?php esc_attr_e( "Type a user’s name", "defender-security" ) ?>"
210
- type="search"/>
211
- <button type="submit" disabled="disabled"
212
- class="button wd-button"><?php esc_html_e( "Add", "defender-security" ) ?></button>
213
- <div class="clearfix"></div>
214
- <input type="hidden" name="action" value="wd_add_recipient">
215
- <?php wp_nonce_field( 'wd_add_recipient', 'wd_settings_nonce' ) ?>
216
- </form>
217
- </div>
218
- </section>
219
- <section class="dev-box">
220
- <div class="box-title">
221
- <h3><?php esc_html_e( "Email Templates", "defender-security" ) ?></h3>
222
- </div>
223
- <div class="box-content">
224
- <p>
225
- <?php esc_html_e( "When Defender scans this website it will generate a report of any issues. You can choose to email those notifications to a particular email address and change the copy below.", "defender-security" ) ?>
226
- </p>
227
-
228
- <p>
229
- <?php esc_html_e( "Available variables", "defender-security" ) ?>
230
- </p>
231
-
232
- <div class="wd-well">
233
- <div class="group">
234
- <div class="col span_4_of_12">
235
- <p>{USER_NAME}</p>
236
- </div>
237
- <div class="col span_8_of_12">
238
- <?php esc_html_e( "We’ll grab the users first name, or display name if first name isn’t available", "defender-security" ) ?>
239
- </div>
240
- </div>
241
- <div class="wd-clearfix"></div>
242
- <div class="group">
243
- <div class="col span_4_of_12">
244
- <p>{ISSUES_COUNT}</p>
245
- </div>
246
- <div class="col span_8_of_12">
247
- <?php esc_html_e( "The number of issues Defender found", "defender-security" ) ?>
248
- </div>
249
- </div>
250
- <div class="wd-clearfix"></div>
251
- <div class="group">
252
- <div class="col span_4_of_12">
253
- <p>{ISSUES_LIST}</p>
254
- </div>
255
- <div class="col span_8_of_12">
256
- <?php esc_html_e( "The list of issues", "defender-security" ) ?><br/>
257
- </div>
258
- </div>
259
- <div class="wd-clearfix"></div>
260
- <div class="group">
261
- <div class="col span_4_of_12">
262
- <p>{SCAN_PAGE_LINK}</p>
263
- </div>
264
- <div class="col span_8_of_12">
265
- <?php esc_html_e( "A link back to the Scans tab of this website", "defender-security" ) ?>
266
- </div>
267
- </div>
268
- </div>
269
- <br/>
270
-
271
- <form method="post">
272
- <div class="setting-field">
273
- <div class="col-left">
274
- <label
275
- for="completed_scan_email_subject"><?php esc_html_e( "Subject", "defender-security" ) ?></label>
276
- </div>
277
- <div class="col-right">
278
- <input type="text" id="completed_scan_email_subject"
279
- name="completed_scan_email_subject"
280
- value="<?php esc_attr_e( WD_Utils::get_setting( 'completed_scan_email_subject' ) ) ?>"/>
281
- </div>
282
- <div class="wd-clearfix"></div>
283
- </div>
284
- <div class="setting-field">
285
- <div class="col-left">
286
- <label
287
- for="completed_scan_email_content_error"><?php esc_html_e( "Issues found", "defender-security" ) ?></label>
288
-
289
- <div class="setting-description">
290
- <?php esc_html_e( "When an issue has been found during an automated scan, Defender will send this email to your recipients.", "defender-security" ) ?>
291
- <div class="wd-clearfix"></div>
292
- <br/>
293
- </div>
294
- </div>
295
- <div class="col-right">
296
- <textarea rows="10" id="completed_scan_email_content_error"
297
- name="completed_scan_email_content_error"><?php echo esc_textarea( WD_Utils::get_setting( 'completed_scan_email_content_error' ) ) ?></textarea>
298
- </div>
299
- <div class="wd-clearfix"></div>
300
- </div>
301
- <div class="setting-field">
302
- <div class="col-left">
303
- <label for="completed_scan_email_content_success">
304
- <?php esc_html_e( "All OK", "defender-security" ) ?></label>
305
-
306
- <div class="setting-description">
307
- <?php esc_html_e( "When there are no issues detected by the scan your recipients will receive this email.", "defender-security" ) ?>
308
- <div class="wd-clearfix"></div>
309
- <br/>
310
- </div>
311
- </div>
312
- <div class="col-right">
313
- <textarea rows="10" id="completed_scan_email_content_success"
314
- name="completed_scan_email_content_success"><?php echo esc_textarea( WD_Utils::get_setting( 'completed_scan_email_content_success' ) ) ?></textarea>
315
- </div>
316
- <div class="wd-clearfix"></div>
317
- </div>
318
- <?php wp_nonce_field( 'wd_settings', 'wd_settings_nonce' ) ?>
319
- <br/>
320
-
321
- <div class="wd-clearfix"></div>
322
- <input type="hidden" name="action" value="wd_settings_save"/>
323
-
324
- <div class="wd-right">
325
- <button type="submit" class="button wd-button">
326
- <?php esc_html_e( "Save Settings", "defender-security" ) ?>
327
- </button>
328
- </div>
329
- </form>
330
- </div>
331
- </section>
332
- </div>
333
- </div>
334
- </div>
335
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/app/advanced-tools.js CHANGED
@@ -1 +1 @@
1
- !function(t){var e=window.webpackHotUpdate;window.webpackHotUpdate=function(t,s){!function(t,e){if(!w[t]||!b[t])return;for(var s in b[t]=!1,e)Object.prototype.hasOwnProperty.call(e,s)&&(p[s]=e[s]);0==--v&&0===h&&k()}(t,s),e&&e(t,s)};var s,i=!0,a="d0b3332498cfafc2e0f1",n={},r=[],o=[];function l(t){var e=j[t];if(!e)return S;var i=function(i){return e.hot.active?(j[i]?-1===j[i].parents.indexOf(t)&&j[i].parents.push(t):(r=[t],s=i),-1===e.children.indexOf(i)&&e.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),r=[]),S(i)},a=function(t){return{configurable:!0,enumerable:!0,get:function(){return S[t]},set:function(e){S[t]=e}}};for(var n in S)Object.prototype.hasOwnProperty.call(S,n)&&"e"!==n&&"t"!==n&&Object.defineProperty(i,n,a(n));return i.e=function(t){return"ready"===d&&f("prepare"),h++,S.e(t).then(e,(function(t){throw e(),t}));function e(){h--,"prepare"===d&&(g[t]||x(t),0===h&&0===v&&k())}},i.t=function(t,e){return 1&e&&(t=i(t)),S.t(t,-2&e)},i}function c(t){var e={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(t,s){if(void 0===t)e._selfAccepted=!0;else if("function"==typeof t)e._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)e._acceptedDependencies[t[i]]=s||function(){};else e._acceptedDependencies[t]=s||function(){}},decline:function(t){if(void 0===t)e._selfDeclined=!0;else if("object"==typeof t)for(var s=0;s<t.length;s++)e._declinedDependencies[t[s]]=!0;else e._declinedDependencies[t]=!0},dispose:function(t){e._disposeHandlers.push(t)},addDisposeHandler:function(t){e._disposeHandlers.push(t)},removeDisposeHandler:function(t){var s=e._disposeHandlers.indexOf(t);s>=0&&e._disposeHandlers.splice(s,1)},check:C,apply:A,status:function(t){if(!t)return d;u.push(t)},addStatusHandler:function(t){u.push(t)},removeStatusHandler:function(t){var e=u.indexOf(t);e>=0&&u.splice(e,1)},data:n[t]};return s=void 0,e}var u=[],d="idle";function f(t){d=t;for(var e=0;e<u.length;e++)u[e].call(null,t)}var _,p,m,v=0,h=0,g={},b={},w={};function y(t){return+t+""===t?+t:t}function C(t){if("idle"!==d)throw new Error("check() is only allowed in idle status");return i=t,f("check"),(e=1e4,e=e||1e4,new Promise((function(t,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,n=S.p+""+a+".hot-update.json";i.open("GET",n,!0),i.timeout=e,i.send(null)}catch(t){return s(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+n+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+n+" failed."));else{try{var e=JSON.parse(i.responseText)}catch(t){return void s(t)}t(e)}}}))).then((function(t){if(!t)return f("idle"),null;b={},g={},w=t.c,m=t.h,f("prepare");var e=new Promise((function(t,e){_={resolve:t,reject:e}}));p={};return x(0),"prepare"===d&&0===h&&0===v&&k(),e}));var e}function x(t){w[t]?(b[t]=!0,v++,function(t){var e=document.createElement("script");e.charset="utf-8",e.src=S.p+""+t+"."+a+".hot-update.js",document.head.appendChild(e)}(t)):g[t]=!0}function k(){f("ready");var t=_;if(_=null,t)if(i)Promise.resolve().then((function(){return A(i)})).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}));else{var e=[];for(var s in p)Object.prototype.hasOwnProperty.call(p,s)&&e.push(y(s));t.resolve(e)}}function A(e){if("ready"!==d)throw new Error("apply() is only allowed in ready status");var s,i,o,l,c;function u(t){for(var e=[t],s={},i=e.map((function(t){return{chain:[t],id:t}}));i.length>0;){var a=i.pop(),n=a.id,r=a.chain;if((l=j[n])&&!l.hot._selfAccepted){if(l.hot._selfDeclined)return{type:"self-declined",chain:r,moduleId:n};if(l.hot._main)return{type:"unaccepted",chain:r,moduleId:n};for(var o=0;o<l.parents.length;o++){var c=l.parents[o],u=j[c];if(u){if(u.hot._declinedDependencies[n])return{type:"declined",chain:r.concat([c]),moduleId:n,parentId:c};-1===e.indexOf(c)&&(u.hot._acceptedDependencies[n]?(s[c]||(s[c]=[]),_(s[c],[n])):(delete s[c],e.push(c),i.push({chain:r.concat([c]),id:c})))}}}}return{type:"accepted",moduleId:t,outdatedModules:e,outdatedDependencies:s}}function _(t,e){for(var s=0;s<e.length;s++){var i=e[s];-1===t.indexOf(i)&&t.push(i)}}e=e||{};var v={},h=[],g={},b=function(){console.warn("[HMR] unexpected require("+x.moduleId+") to disposed module")};for(var C in p)if(Object.prototype.hasOwnProperty.call(p,C)){var x;c=y(C);var k=!1,A=!1,E=!1,T="";switch((x=p[C]?u(c):{type:"disposed",moduleId:C}).chain&&(T="\nUpdate propagation: "+x.chain.join(" -> ")),x.type){case"self-declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(k=new Error("Aborted because of self decline: "+x.moduleId+T));break;case"declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(k=new Error("Aborted because of declined dependency: "+x.moduleId+" in "+x.parentId+T));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(x),e.ignoreUnaccepted||(k=new Error("Aborted because "+c+" is not accepted"+T));break;case"accepted":e.onAccepted&&e.onAccepted(x),A=!0;break;case"disposed":e.onDisposed&&e.onDisposed(x),E=!0;break;default:throw new Error("Unexception type "+x.type)}if(k)return f("abort"),Promise.reject(k);if(A)for(c in g[c]=p[c],_(h,x.outdatedModules),x.outdatedDependencies)Object.prototype.hasOwnProperty.call(x.outdatedDependencies,c)&&(v[c]||(v[c]=[]),_(v[c],x.outdatedDependencies[c]));E&&(_(h,[x.moduleId]),g[c]=b)}var I,O=[];for(i=0;i<h.length;i++)c=h[i],j[c]&&j[c].hot._selfAccepted&&g[c]!==b&&O.push({module:c,errorHandler:j[c].hot._selfAccepted});f("dispose"),Object.keys(w).forEach((function(t){!1===w[t]&&function(t){delete installedChunks[t]}(t)}));for(var P,$,D=h.slice();D.length>0;)if(c=D.pop(),l=j[c]){var U={},R=l.hot._disposeHandlers;for(o=0;o<R.length;o++)(s=R[o])(U);for(n[c]=U,l.hot.active=!1,delete j[c],delete v[c],o=0;o<l.children.length;o++){var L=j[l.children[o]];L&&((I=L.parents.indexOf(c))>=0&&L.parents.splice(I,1))}}for(c in v)if(Object.prototype.hasOwnProperty.call(v,c)&&(l=j[c]))for($=v[c],o=0;o<$.length;o++)P=$[o],(I=l.children.indexOf(P))>=0&&l.children.splice(I,1);for(c in f("apply"),a=m,g)Object.prototype.hasOwnProperty.call(g,c)&&(t[c]=g[c]);var N=null;for(c in v)if(Object.prototype.hasOwnProperty.call(v,c)&&(l=j[c])){$=v[c];var H=[];for(i=0;i<$.length;i++)if(P=$[i],s=l.hot._acceptedDependencies[P]){if(-1!==H.indexOf(s))continue;H.push(s)}for(i=0;i<H.length;i++){s=H[i];try{s($)}catch(t){e.onErrored&&e.onErrored({type:"accept-errored",moduleId:c,dependencyId:$[i],error:t}),e.ignoreErrored||N||(N=t)}}}for(i=0;i<O.length;i++){var q=O[i];c=q.module,r=[c];try{S(c)}catch(t){if("function"==typeof q.errorHandler)try{q.errorHandler(t)}catch(s){e.onErrored&&e.onErrored({type:"self-accept-error-handler-errored",moduleId:c,error:s,originalError:t}),e.ignoreErrored||N||(N=s),N||(N=t)}else e.onErrored&&e.onErrored({type:"self-accept-errored",moduleId:c,error:t}),e.ignoreErrored||N||(N=t)}}return N?(f("fail"),Promise.reject(N)):(f("idle"),new Promise((function(t){t(h)})))}var j={};function S(e){if(j[e])return j[e].exports;var s=j[e]={i:e,l:!1,exports:{},hot:c(e),parents:(o=r,r=[],o),children:[]};return t[e].call(s.exports,s,s.exports,l(e)),s.l=!0,s.exports}S.m=t,S.c=j,S.d=function(t,e,s){S.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},S.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},S.t=function(t,e){if(1&e&&(t=S(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(S.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)S.d(s,i,function(e){return t[e]}.bind(null,i));return s},S.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return S.d(e,"a",e),e},S.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},S.p="",S.h=function(){return a},l("./src/advanced-tools.js")(S.s="./src/advanced-tools.js")}({"./node_modules/cssfilter/lib/css.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),a=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function n(t){return null==t}function r(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}r.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onAttr,r=e.onIgnoreAttr,o=e.safeAttrValue;return a(t,(function(t,e,a,l,c){var u=s[a],d=!1;if(!0===u?d=u:"function"==typeof u?d=u(l):u instanceof RegExp&&(d=u.test(l)),!0!==d&&(d=!1),l=o(a,l)){var f,_={position:e,sourcePosition:t,source:c,isWhite:d};return d?n(f=i(a,l,_))?a+":"+l:f:n(f=r(a,l,_))?void 0:f}}))},t.exports=r},"./node_modules/cssfilter/lib/default.js":function(t,e){function s(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;e.whiteList=s(),e.getDefaultWhiteList=s,e.onAttr=function(t,e,s){},e.onIgnoreAttr=function(t,e,s){},e.safeAttrValue=function(t,e){return i.test(e)?"":e}},"./node_modules/cssfilter/lib/index.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),a=s("./node_modules/cssfilter/lib/css.js");for(var n in(e=t.exports=function(t,e){return new a(e).process(t)}).FilterCSS=a,i)e[n]=i[n];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/util.js");t.exports=function(t,e){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var s=t.length,a=!1,n=0,r=0,o="";function l(){if(!a){var s=i.trim(t.slice(n,r)),l=s.indexOf(":");if(-1!==l){var c=i.trim(s.slice(0,l)),u=i.trim(s.slice(l+1));if(c){var d=e(n,o.length,c,u,s);d&&(o+=d+"; ")}}}n=r+1}for(;r<s;r++){var c=t[r];if("/"===c&&"*"===t[r+1]){var u=t.indexOf("*/",r+2);if(-1===u)break;n=(r=u+1)+1,a=!1}else"("===c?a=!0:")"===c?a=!1:";"===c?a||l():"\n"===c&&l()}return i.trim(o)}},"./node_modules/cssfilter/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,a;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,a=t.length;i<a;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,e,s){"use strict";function i(t,e,s,i,a,n,r,o){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=s,c._compiled=!0),i&&(c.functional=!0),n&&(c._scopeId="data-v-"+n),r?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=l):a&&(l=o?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}s.d(e,"a",(function(){return i}))},"./node_modules/xss/lib/default.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,a=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,n=s("./node_modules/xss/lib/util.js");function r(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var o=new i;function l(t){return t.replace(c,"&lt;").replace(u,"&gt;")}var c=/</g,u=/>/g,d=/"/g,f=/&quot;/g,_=/&#([a-zA-Z0-9]*);?/gim,p=/&colon;?/gim,m=/&newline;?/gim,v=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,h=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(d,"&quot;")}function w(t){return t.replace(f,'"')}function y(t){return t.replace(_,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function C(t){return t.replace(p,":").replace(m," ")}function x(t){for(var e="",s=0,i=t.length;s<i;s++)e+=t.charCodeAt(s)<32?" ":t.charAt(s);return n.trim(e)}function k(t){return t=x(t=C(t=y(t=w(t))))}function A(t){return t=l(t=b(t))}var j=/<!--[\s\S]*?-->/g;e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},e.getDefaultWhiteList=r,e.onTag=function(t,e,s){},e.onIgnoreTag=function(t,e,s){},e.onTagAttr=function(t,e,s){},e.onIgnoreTagAttr=function(t,e,s){},e.safeAttrValue=function(t,e,s,i){if(s=k(s),"href"===e||"src"===e){if("#"===(s=n.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===e){if(v.lastIndex=0,v.test(s))return""}else if("style"===e){if(h.lastIndex=0,h.test(s))return"";if(g.lastIndex=0,g.test(s)&&(v.lastIndex=0,v.test(s)))return"";!1!==i&&(s=(i=i||o).process(s))}return s=A(s)},e.escapeHtml=l,e.escapeQuote=b,e.unescapeQuote=w,e.escapeHtmlEntities=y,e.escapeDangerHtml5Entities=C,e.clearNonPrintableCharacter=x,e.friendlyAttrValue=k,e.escapeAttrValue=A,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var s=!Array.isArray(t),i=[],a=!1;return{onIgnoreTag:function(r,o,l){if(function(e){return!!s||-1!==n.indexOf(t,e)}(r)){if(l.isClosing){var c="[/removed]",u=l.position+c.length;return i.push([!1!==a?a:l.position,u]),a=!1,c}return a||(a=l.position),"[removed]"}return e(r,o,l)},remove:function(t){var e="",s=0;return n.forEach(i,(function(i){e+=t.slice(s,i[0]),s=i[1]})),e+=t.slice(s)}}},e.stripCommentTag=function(t){return t.replace(j,"")},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return 127!==e&&(!(e<=31)||(10===e||13===e))}))).join("")},e.cssFilter=o,e.getDefaultCSSWhiteList=a},"./node_modules/xss/lib/index.js":function(t,e,s){var i=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),n=s("./node_modules/xss/lib/xss.js");function r(t,e){return new n(e).process(t)}for(var o in(e=t.exports=r).filterXSS=r,e.FilterXSS=n,i)e[o]=i[o];for(var o in a)e[o]=a[o];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,e,s){var i=s("./node_modules/xss/lib/util.js");function a(t){var e=i.spaceIndex(t);if(-1===e)var s=t.slice(1,-1);else s=t.slice(1,e+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function n(t){return"</"===t.slice(0,2)}var r=/[^a-zA-Z0-9_:\.\-]/gim;function o(t,e){for(;e<t.length;e++){var s=t[e];if(" "!==s)return"="===s?e:-1}}function l(t,e){for(;e>0;e--){var s=t[e];if(" "!==s)return"="===s?e:-1}}function c(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,s){var i="",r=0,o=!1,l=!1,c=0,u=t.length,d="",f="";for(c=0;c<u;c++){var _=t.charAt(c);if(!1===o){if("<"===_){o=c;continue}}else if(!1===l){if("<"===_){i+=s(t.slice(r,c)),o=c,r=c;continue}if(">"===_){i+=s(t.slice(r,o)),d=a(f=t.slice(o,c+1)),i+=e(o,i.length,d,f,n(f)),r=c+1,o=!1;continue}if(('"'===_||"'"===_)&&"="===t.charAt(c-1)){l=_;continue}}else if(_===l){l=!1;continue}}return r<t.length&&(i+=s(t.substr(r))),i},e.parseAttr=function(t,e){var s=0,a=[],n=!1,u=t.length;function d(t,s){if(!((t=(t=i.trim(t)).replace(r,"").toLowerCase()).length<1)){var n=e(t,s||"");n&&a.push(n)}}for(var f=0;f<u;f++){var _,p=t.charAt(f);if(!1!==n||"="!==p)if(!1===n||f!==s||'"'!==p&&"'"!==p||"="!==t.charAt(f-1))if(/\s|\n|\t/.test(p)){if(t=t.replace(/\s|\n|\t/g," "),!1===n){if(-1===(_=o(t,f))){d(i.trim(t.slice(s,f))),n=!1,s=f+1;continue}f=_-1;continue}if(-1===(_=l(t,f-1))){d(n,c(i.trim(t.slice(s,f)))),n=!1,s=f+1;continue}}else;else{if(-1===(_=t.indexOf(p,f+1)))break;d(n,i.trim(t.slice(s+1,_))),n=!1,s=(f=_)+1}else n=t.slice(s,f),s=f+1}return s<t.length&&(!1===n?d(t.slice(s)):d(n,c(i.trim(t.slice(s))))),i.trim(a.join(" "))}},"./node_modules/xss/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,a;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,a=t.length;i<a;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,a=s("./node_modules/xss/lib/default.js"),n=s("./node_modules/xss/lib/parser.js"),r=n.parseTag,o=n.parseAttr,l=s("./node_modules/xss/lib/util.js");function c(t){return null==t}function u(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=a.onIgnoreTagStripAll),t.whiteList=t.whiteList||a.whiteList,t.onTag=t.onTag||a.onTag,t.onTagAttr=t.onTagAttr||a.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||a.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||a.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||a.safeAttrValue,t.escapeHtml=t.escapeHtml||a.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}u.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onTag,n=e.onIgnoreTag,u=e.onTagAttr,d=e.onIgnoreTagAttr,f=e.safeAttrValue,_=e.escapeHtml,p=this.cssFilter;e.stripBlankChar&&(t=a.stripBlankChar(t)),e.allowCommentTag||(t=a.stripCommentTag(t));var m=!1;if(e.stripIgnoreTagBody){m=a.StripTagBody(e.stripIgnoreTagBody,n);n=m.onIgnoreTag}var v=r(t,(function(t,e,a,r,m){var v,h={sourcePosition:t,position:e,isClosing:m,isWhite:s.hasOwnProperty(a)};if(!c(v=i(a,r,h)))return v;if(h.isWhite){if(h.isClosing)return"</"+a+">";var g=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var s="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return s&&(t=l.trim(t.slice(0,-1))),{html:t,closing:s}}(r),b=s[a],w=o(g.html,(function(t,e){var s,i=-1!==l.indexOf(b,t);return c(s=u(a,t,e,i))?i?(e=f(a,t,e,p))?t+'="'+e+'"':t:c(s=d(a,t,e,i))?void 0:s:s}));r="<"+a;return w&&(r+=" "+w),g.closing&&(r+=" /"),r+=">"}return c(v=n(a,r,h))?_(r):v}),_);return m&&(v=m.remove(v)),v},t.exports=u},"./src/advanced-tools.js":function(t,e,s){"use strict";s.r(e);var i=s("vue"),a=s.n(i),n=s("./src/helper/base_hepler.js"),r={mixins:[n.a],data:function(){return{all_roles:advanced_tools.misc.all_roles,compatibility:advanced_tools.misc.compatibility,model:advanced_tools.model.two_factor,nonces:advanced_tools.nonces,endpoints:advanced_tools.endpoints,state:{on_saving:!1,waiting_save:!1,origin_state:!1}}},methods:{toggle:function(t){var e=this,s={};s.enabled=t,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:s,module:"auth"})},(function(){e.model.enabled=t,!0===t&&e.$nextTick((function(){e.rebindSUI(),e.bindUploader(),e.state.waiting_save=!1}))}))},updateSettings:function(){var t=this.model;delete t.email_subject,delete t.email_sender,delete t.email_body,this.state.origin_state=this.model.user_roles.length>0,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:t,module:"auth"})})},saveEmailTemplate:function(){var t={email_subject:this.model.email_subject,email_sender:this.model.email_sender,email_body:this.model.email_body};this.httpPostRequest("updateSettings",{data:JSON.stringify({module:"auth",settings:t})},(function(t){!0===t.success&&SUI.dialogs["edit-one-time-password-email"].hide()}))},sendTestEmail:function(){var t={email_subject:this.model.email_subject,email_sender:this.model.email_sender,email_body:this.model.email_body};this.httpPostRequest("sendTestEmail",t)},bindUploader:function(){var t=void 0,e=this;jQuery(".file-picker").click((function(){t?t.open():((t=wp.media.frames.file_frame=wp.media({title:"Choose an image file",button:{text:"Choose File"},multiple:!1,library:{type:["image"]}})).on("select",(function(){var s=t.state().get("selection").first().toJSON();jQuery.inArray(s.mime,["image/jpeg","image/png","image/gif"])>-1?e.model.custom_graphic_url=s.url:Defender.showNotification("error","Invalid image file type")})),t.open())}))}},mounted:function(){var t=this;this.$nextTick((function(){t.bindUploader()})),this.state.origin_state=this.model.user_roles.length>0}},o=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),l=Object(o.a)(r,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.enabled?s("div",{staticClass:"sui-box",attrs:{id:"2factor"}},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t"+t._s(t.__("Two Factor Authentication"))+"\n\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-message"},[t.maybeHideBranding()?t._e():s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/2factor-disabled.svg"),"aria-hidden":"true"}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Beef up your website’s security with two-factor authentication. Add an extra step in the login process so that users are required to enter a password and an app-generated passcode using their phone – the best protection against brute force attacks."))+"\n\t\t\t\t\t")]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.toggle(!0)}}},[s("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue activate"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t\t\t\t")])],1)])])])]):s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Two Factor Authentication"))+"\n\t\t\t")])]),t._v(" "),s("form",{staticClass:"advanced-settings-frm",attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Configure your two-factor authentication settings. Our recommendations are enabled by default."))+"\n\t\t\t\t")]),t._v(" "),!1!==t.compatibility?s("div",{staticClass:"sui-notice sui-notice-error"},[s("p",t._l(t.compatibility,(function(e){return s("span",[t._v("\n "+t._s(e)+"\n ")])})),0)]):t._e(),t._v(" "),t.state.origin_state?s("div",{staticClass:"sui-notice sui-notice-info"},[s("p",[s("strong",[t._v(t._s(t.__("Two-factor authentication is now active.")))]),t._v(" "+t._s(t.__("User roles with this feature enabled must visit their "))+"\n\t\t\t\t\t\t"),s("a",{attrs:{href:t.adminUrl("profile.php")}},[t._v(t._s(t.__("Profile page")))]),t._v(" "+t._s(t.__("to complete setup and sync their account with the Authenticator app."))+"\n\t\t\t\t\t")])]):s("div",{staticClass:"sui-notice sui-notice-warning"},[s("p",[s("strong",[t._v(t._s(t.__("Two-factor authentication is currently inactive.")))]),t._v(" "+t._s(t.__("Configure and save your settings to complete setup."))+"\n\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("User Roles"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose the user roles you want to enable two-factor authentication for. Users with those roles will then be required to use the Google Authenticator app to login."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-field-list"},[s("div",{staticClass:"sui-field-list-header"},[s("h3",{staticClass:"sui-field-list-title"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("User role"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-field-list-body"},t._l(t.all_roles,(function(e,i){return s("div",{staticClass:"sui-field-list-item"},[s("label",{staticClass:"sui-field-list-item-label",attrs:{for:"toggle_"+i},domProps:{innerHTML:t._s(e.name)}}),t._v(" "),s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.user_roles,expression:"model.user_roles"}],attrs:{type:"checkbox",id:"toggle_"+i},domProps:{value:i,checked:Array.isArray(t.model.user_roles)?t._i(t.model.user_roles,i)>-1:t.model.user_roles},on:{change:function(e){var s=t.model.user_roles,a=e.target,n=!!a.checked;if(Array.isArray(s)){var r=i,o=t._i(s,r);a.checked?o<0&&t.$set(t.model,"user_roles",s.concat([r])):o>-1&&t.$set(t.model,"user_roles",s.slice(0,o).concat(s.slice(o+1)))}else t.$set(t.model,"user_roles",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})])])})),0)])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Lost Phone"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If a user is unable to access their phone, you can allow an option to send the one time password to their registered email."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.lost_phone,expression:"model.lost_phone"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",id:"lost_phone"},domProps:{checked:Array.isArray(t.model.lost_phone)?t._i(t.model.lost_phone,null)>-1:t.model.lost_phone},on:{change:function(e){var s=t.model.lost_phone,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"lost_phone",s.concat([null])):n>-1&&t.$set(t.model,"lost_phone",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"lost_phone",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"lost_phone"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Enable lost phone option"))+"\n\t\t\t\t\t\t\t")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Force Authentication"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("By default, two-factor authentication is optional for users. This setting forces users to activate two-factor."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.force_auth,expression:"model.force_auth"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"force_auth",id:"force_auth"},domProps:{checked:Array.isArray(t.model.force_auth)?t._i(t.model.force_auth,null)>-1:t.model.force_auth},on:{change:function(e){var s=t.model.force_auth,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"force_auth",s.concat([null])):n>-1&&t.$set(t.model,"force_auth",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"force_auth",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"force_auth"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Force users to log in with two-factor authentication"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("span",{staticClass:"sui-description sui-toggle-content"},[t._v("\n "+t._s(t.__("Note: Users will be forced to set up two-factor when they next login."))+"\n ")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.force_auth,expression:"model.force_auth===true"}],staticClass:"sui-border-frame sui-toggle-content",attrs:{id:"force_auth_roles"}},[s("strong",[t._v(t._s(t.__("User Roles")))]),t._v(" "),s("ul",t._l(t.all_roles,(function(e,i){return s("li",[s("label",{staticClass:"sui-checkbox",attrs:{for:"toggle_force_"+i}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.force_auth_roles,expression:"model.force_auth_roles"}],attrs:{type:"checkbox",id:"toggle_force_"+i},domProps:{value:i,checked:Array.isArray(t.model.force_auth_roles)?t._i(t.model.force_auth_roles,i)>-1:t.model.force_auth_roles},on:{change:function(e){var s=t.model.force_auth_roles,a=e.target,n=!!a.checked;if(Array.isArray(s)){var r=i,o=t._i(s,r);a.checked?o<0&&t.$set(t.model,"force_auth_roles",s.concat([r])):o>-1&&t.$set(t.model,"force_auth_roles",s.slice(0,o).concat(s.slice(o+1)))}else t.$set(t.model,"force_auth_roles",n)}}}),t._v(" "),s("span",{attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",[t._v(t._s(e.name))])])])})),0),t._v(" "),s("strong",[t._v(t._s(t.__("Custom warning message")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.force_auth_mess,expression:"model.force_auth_mess"}],staticClass:"sui-form-control",attrs:{name:"force_auth_mess"},domProps:{value:t.model.force_auth_mess},on:{input:function(e){e.target.composing||t.$set(t.model,"force_auth_mess",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Note: This is shown in the users Profile area indicating they must use two-factor authentication."))+"\n ")])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Custom Graphic"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("By default, Defender’s icon appears above the login fields. You can upload your own branding, or turn this feature off."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.custom_graphic,expression:"model.custom_graphic"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"custom_graphic",id:"custom_graphic"},domProps:{checked:Array.isArray(t.model.custom_graphic)?t._i(t.model.custom_graphic,null)>-1:t.model.custom_graphic},on:{change:function(e){var s=t.model.custom_graphic,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"custom_graphic",s.concat([null])):n>-1&&t.$set(t.model,"custom_graphic",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"custom_graphic",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"custom_graphic"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Enable custom graphics above login fields"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.custom_graphic,expression:"model.custom_graphic === true"}],staticClass:"sui-border-frame sui-toggle-content"},[s("span",{staticClass:"sui-description"},[s("strong",[t._v(t._s(t.__("Custom Graphic")))]),t._v(" - "+t._s(t.__("For best results use a 168x168px JPG or PNG."))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-upload"},[s("div",{staticClass:"sui-upload-image"},[s("img",{attrs:{id:"custom_graphicIMG",width:"40",height:"40",src:t.model.custom_graphic_url}}),t._v(" "),s("div",{staticClass:"sui-image-preview",style:{backgroundImage:"url("+t.model.custom_graphic_url+")"},attrs:{role:"button"}})]),t._v(" "),s("button",{staticClass:"sui-upload-button file-picker",attrs:{type:"button"}},[s("i",{staticClass:"sui-icon-upload-cloud",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Upload file"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),t._m(0)])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Emails"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Customize the default copy for emails the two-factor feature sends to users."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-field-list"},[s("div",{staticClass:"sui-field-list-header"},[s("h3",{staticClass:"sui-field-list-title"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Email"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-field-list-body"},[s("div",{staticClass:"sui-field-list-item"},[s("label",{staticClass:"sui-field-list-item-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Lost phone one time password"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),t._m(1)])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("App Download"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Need the app? Here’s links to the official Google Authenticator iOS and Android apps."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("a",{attrs:{href:"https://itunes.apple.com/vn/app/google-authenticator/id388497605?mt=8"}},[s("img",{attrs:{src:t.assetUrl("assets/img/ios-download.svg")}})]),t._v(" "),s("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2"}},[s("img",{attrs:{src:t.assetUrl("assets/img/android-download.svg")}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Active Users"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Here’s a quick link to see which of your users have enabled two-factor authentication."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("a",{attrs:{href:t.adminUrl("users.php")}},[t._v(t._s(t.__("View users")))]),t._v(" "+t._s(t.__("who have enabled this feature."))+"\n\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Disable two-factor authentication on your website."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{"css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1)}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{"css-class":"sui-button-blue save-changes",type:"submit",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"edit-one-time-password-email"}},[s("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"dialogTitle","aria-describedby":"dialogDescription",role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title",attrs:{id:"dialogTitle"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Edit Email"))+"\n\t\t\t\t\t\t")]),t._v(" "),t._m(2)]),t._v(" "),s("form",{attrs:{method:"post"}},[s("div",{staticClass:"sui-box-body"},[s("p",{attrs:{id:"dialogDescription"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("This email sends a temporary passcode when the user can’t access their phone."))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Subject"))+"\n\t\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.email_subject,expression:"model.email_subject"}],staticClass:"sui-form-control",attrs:{name:"subject",type:"text",id:"email_subject"},domProps:{value:t.model.email_subject},on:{input:function(e){e.target.composing||t.$set(t.model,"email_subject",e.target.value)}}})])]),t._v(" "),s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Sender"))+"\n\t\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.email_sender,expression:"model.email_sender"}],staticClass:"sui-form-control",attrs:{name:"sender",type:"text",id:"email_sender"},domProps:{value:t.model.email_sender},on:{input:function(e){e.target.composing||t.$set(t.model,"email_sender",e.target.value)}}})])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Body"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.email_body,expression:"model.email_body"}],staticClass:"sui-form-control",attrs:{name:"body",rows:"8",id:"email_body"},domProps:{value:t.model.email_body},on:{input:function(e){e.target.composing||t.$set(t.model,"email_body",e.target.value)}}})])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Available variables"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("span",{staticClass:"sui-tag"},[s("strong",{domProps:{textContent:t._s(t.__("{{passcode}}"))}})]),t._v(" "),s("span",{staticClass:"sui-tag"},[s("strong",{domProps:{textContent:t._s(t.__("{{display_name}}"))}})])])])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-flex-child-right"},[s("button",{staticClass:"sui-button sui-button-ghost",attrs:{type:"button","data-a11y-dialog-hide":"my-accessible-dialog"}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Cancel"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("submit-button",{staticClass:"sui-button",attrs:{type:"button",state:t.state},on:{click:t.saveEmailTemplate}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Save Template"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("submit-button",{staticClass:"sui-button sui-button-blue",attrs:{type:"button",state:t.state},on:{click:t.sendTestEmail}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Send Test"))+"\n\t\t\t\t\t\t\t\t")])],1)])])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-upload-file"},[e("span")])},function(){var t=this.$createElement,e=this._self._c||t;return e("button",{staticClass:"sui-button-icon",attrs:{type:"button","data-a11y-dialog-show":"edit-one-time-password-email"}},[e("i",{staticClass:"sui-icon-pencil",attrs:{"aria-hidden":"true"}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-right"},[e("button",{staticClass:"sui-dialog-close",attrs:{"data-a11y-dialog-hide":"","aria-label":"Close this dialog window"}})])}],!1,null,null,null).exports,c={mixins:[n.a],name:"mask-login",data:function(){return{misc:advanced_tools.misc,model:advanced_tools.model.mask_login,nonces:advanced_tools.nonces,endpoints:advanced_tools.endpoints,state:{on_saving:!1,original_state:!1}}},watch:{"model.mask_url":function(t){t=this.convertToSlug(t),this.model.mask_url=t,this.misc.new_login_url=this.misc.home_url+t,this.state.waiting_save=!0},"model.redirect_traffic_url":function(t){t=this.convertToSlug(t),this.model.redirect_traffic_url=t,this.misc.login_redirect_url=this.misc.home_url+t}},mounted:function(){this.state.original_state=this.model.mask_url.length>0},methods:{toggle:function(t){var e=this,s={};s.enabled=t,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:s,module:"mask-login"})},(function(){e.model.enabled=t}))},updateSettings:function(){var t=this.model,e=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:t,module:"mask-login"})},(function(){e.state.original_state=e.model.mask_url.length>0}))},convertToSlug:function(t){return t.toLowerCase().replace(/[^\w-/.]+/g,"")}},computed:{new_mask_login:function(){return this.misc.new_login_url},login_redirect_url:function(){return this.misc.login_redirect_url}}},u=Object(o.a)(c,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.enabled?s("div",{staticClass:"sui-box",attrs:{id:"mask-login"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Mask Login Area"))+"\n\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-message"},[t.maybeHideBranding()?t._e():s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/2factor-disabled.svg"),"aria-hidden":"true"}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Change the location of WordPress's default login area, making it harder for automated bots to find and also more convenient for your users."))+"\n\t\t\t\t")]),t._v(" "),s("form",{attrs:{method:"post"}},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-blue activate",state:t.state},on:{click:function(e){return t.toggle(!0)}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t\t\t")])],1)])])]):s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Mask Login Area"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Change your default WordPress login URL to hide your login area from hackers and bots."))+"\n\t\t\t\t")]),t._v(" "),!1!==t.misc.compatibility?s("div",{staticClass:"sui-notice sui-notice-error"},[s("p",t._l(t.misc.compatibility,(function(e){return s("span",[t._v("\n "+t._s(e)+"\n ")])})),0)]):t._e(),t._v(" "),!1===t.state.original_state?s("div",{staticClass:"sui-notice sui-notice-warning"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Masking is currently inactive. Choose your URL and save your settings to finish setup."))+"\n\t\t\t\t\t")])]):s("div",{staticClass:"sui-notice sui-notice-info"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Masking is currently active at "))+" "),s("strong",{domProps:{textContent:t._s(t.misc.new_login_url)}})])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Masking URL"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose the new URL slug where users of your website will now navigate to log in or register."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("You can specify any URLs. For security reasons, less obvious URLs are recommended as they are harder for bots to guess."))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("New Login URL"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.mask_url,expression:"model.mask_url"}],staticClass:"sui-form-control",attrs:{type:"text",name:"mask_url",placeholder:"E.g. dashboard"},domProps:{value:t.model.mask_url},on:{input:function(e){e.target.composing||t.$set(t.model,"mask_url",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Users will login at"))+" "),s("a",{attrs:{href:t.new_mask_login}},[t._v(t._s(t.new_mask_login))]),t._v(". "+t._s(t.__("Note: Registration and Password Reset emails have hardcoded URLs in them. We will update them automatically to match your new login URL"))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Redirect traffic"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("With this feature you can send visitors and bots who try to visit the default Wordpress login URLs to a separate URL to avoid 404s."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.redirect_traffic,expression:"model.redirect_traffic"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"redirect_traffic",id:"redirect_traffic","true-value":!0,"false-value":!1},domProps:{checked:Array.isArray(t.model.redirect_traffic)?t._i(t.model.redirect_traffic,null)>-1:t.model.redirect_traffic},on:{change:function(e){var s=t.model.redirect_traffic,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"redirect_traffic",s.concat([null])):n>-1&&t.$set(t.model,"redirect_traffic",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"redirect_traffic",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"redirect_traffic"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Enable 404 redirection"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.redirect_traffic,expression:"model.redirect_traffic===true"}],staticClass:"sui-border-frame sui-toggle-content",attrs:{id:"redirectTrafficContainer"}},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Redirection URL")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.redirect_traffic_url,expression:"model.redirect_traffic_url"}],staticClass:"sui-form-control",attrs:{placeholder:"E.g. 404-error",type:"text",name:"redirect_traffic_url"},domProps:{value:t.model.redirect_traffic_url},on:{input:function(e){e.target.composing||t.$set(t.model,"redirect_traffic_url",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Visitors who visit the default login URLs will be redirected to"))+" "),s("a",{attrs:{href:t.login_redirect_url}},[t._v(t._s(t.login_redirect_url))])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Disable login area masking and return to the default wp-admin and wp-login URLS."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1)}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue save-changes"}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t")])],1)])])}),[],!1,null,null,null).exports,d={mixins:[n.a],components:{"two-factors":l,"mask-login":u},data:function(){return{state:{on_saving:!1},whitelabel:defender.whitelabel,is_free:defender.is_free,view:""}},created:function(){var t=new URLSearchParams(window.location.search).get("view");null===t&&(t="two-factor-auth"),this.view=t},watch:{view:function(t,e){history.replaceState({},null,this.adminUrl()+"admin.php?page=wdf-advanced-tools&view="+this.view)}},mounted:function(){self=this,jQuery(".sui-mobile-nav").change((function(){self.view=jQuery(this).val()}))}},f=Object(o.a)(d,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:[t.maybeHighContrast()]},[s("div",{staticClass:"advanced-tools"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v(t._s(t.__("Advanced Tools")))]),t._v(" "),s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#advanced-tools"}})],1),t._v(" "),s("div",{staticClass:"sui-row-with-sidenav"},[s("div",{staticClass:"sui-sidenav"},[s("ul",{staticClass:"sui-vertical-tabs sui-sidenav-hide-md"},[s("li",{staticClass:"sui-vertical-tab",class:{current:"two-factor-auth"===t.view}},[s("a",{attrs:{"data-tab":"login_lockout",href:"#2factor"},on:{click:function(e){e.preventDefault(),t.view="two-factor-auth"}}},[t._v(t._s(t.__("Two-Factor Auth")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"mask-login"===t.view}},[s("a",{attrs:{"data-tab":"notfound_lockout",href:"#mask-login"},on:{click:function(e){e.preventDefault(),t.view="mask-login"}}},[t._v(t._s(t.__("Mask Login Area")))])])]),t._v(" "),s("div",{staticClass:"sui-sidenav-hide-lg"},[s("select",{staticClass:"sui-mobile-nav"},[s("option",{attrs:{value:"two-factor-auth"}},[t._v(t._s(t.__("Two-Factor Auth")))]),t._v(" "),s("option",{attrs:{value:"mask-login"}},[t._v(t._s(t.__("Mask Login Area")))])])])]),t._v(" "),s("two-factors",{directives:[{name:"show",rawName:"v-show",value:"two-factor-auth"===t.view,expression:"view==='two-factor-auth'"}]}),t._v(" "),s("mask-login",{directives:[{name:"show",rawName:"v-show",value:"mask-login"===t.view,expression:"view==='mask-login'"}]})],1)]),t._v(" "),s("app-footer")],1)}),[],!1,null,null,null).exports,_=s("./src/component/submit-button.vue"),p=s("./src/component/footer.vue"),m=s("./src/component/doc-link.vue");a.a.component("app-footer",p.a),a.a.component("doc-link",m.a),a.a.component("submit-button",_.a);new a.a({el:"#defender",components:{advanced_tools:f},render:function(t){return t(f)}})},"./src/component/doc-link.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return!1===this.whitelabel.hide_doc_link?e("div",{staticClass:"sui-actions-right"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[e("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);e.a=n.exports},"./src/component/footer.vue":function(t,e,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[!0===t.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[t._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?s("div",[t.is_free?s("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);e.a=n.exports},"./src/component/submit-button.vue":function(t,e,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(e){return t.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);e.a=n.exports},"./src/helper/base_hepler.js":function(t,e,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),a=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var s=[],i=!0,a=!1,n=void 0;try{for(var r,o=t[Symbol.iterator]();!(i=(r=o.next()).done)&&(s.push(r.value),!e||s.length!==e);i=!0);}catch(t){a=!0,n=t}finally{try{!i&&o.return&&o.return()}finally{if(a)throw n}}return s}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=wp.i18n,r={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,e,s,a){return"a"===t&&"href"===e&&"%s"===s?"%s":Object(i.safeAttrValue)(t,e,s,a)}},o=new i.FilterXSS(r),l=[];e.a={methods:{__:function(t){var e=n.__(t,"wpdef");return o.process(e)},xss:function(t){return o.process(t)},vsprintf:function(t){return n.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,e,s,i,a){var n=this;void 0===a&&(this.state.on_saving=!0);var r=ajaxurl+"?action="+this.endpoints[e]+"&_wpnonce="+this.nonces[e],o=jQuery.ajax({url:r,method:t,data:s,success:function(t){var e=t.data;n.state.on_saving=!1,void 0!==e&&void 0!==e.message&&(t.success?Defender.showNotification("success",e.message):Defender.showNotification("error",e.message)),void 0!==i&&i(t)}});l.push(o)},httpGetRequest:function(t,e,s,i){this.httpRequest("get",t,e,s,i)},httpPostRequest:function(t,e,s,i){this.httpRequest("post",t,e,s,i)},abortAllRequests:function(){for(var t=0;t<l.length;t++)l[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,e){var s=e.split("="),i=a(s,2),n=i[0],r=i[1];return t[n]=r?decodeURIComponent(r.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,e){t.exports=Vue}});
1
+ !function(t){var e=window.webpackHotUpdate;window.webpackHotUpdate=function(t,s){!function(t,e){if(!w[t]||!b[t])return;for(var s in b[t]=!1,e)Object.prototype.hasOwnProperty.call(e,s)&&(p[s]=e[s]);0==--v&&0===h&&k()}(t,s),e&&e(t,s)};var s,i=!0,a="1f0325ef5048e0254986",n={},r=[],o=[];function l(t){var e=j[t];if(!e)return S;var i=function(i){return e.hot.active?(j[i]?-1===j[i].parents.indexOf(t)&&j[i].parents.push(t):(r=[t],s=i),-1===e.children.indexOf(i)&&e.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),r=[]),S(i)},a=function(t){return{configurable:!0,enumerable:!0,get:function(){return S[t]},set:function(e){S[t]=e}}};for(var n in S)Object.prototype.hasOwnProperty.call(S,n)&&"e"!==n&&"t"!==n&&Object.defineProperty(i,n,a(n));return i.e=function(t){return"ready"===d&&f("prepare"),h++,S.e(t).then(e,(function(t){throw e(),t}));function e(){h--,"prepare"===d&&(g[t]||x(t),0===h&&0===v&&k())}},i.t=function(t,e){return 1&e&&(t=i(t)),S.t(t,-2&e)},i}function c(t){var e={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(t,s){if(void 0===t)e._selfAccepted=!0;else if("function"==typeof t)e._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)e._acceptedDependencies[t[i]]=s||function(){};else e._acceptedDependencies[t]=s||function(){}},decline:function(t){if(void 0===t)e._selfDeclined=!0;else if("object"==typeof t)for(var s=0;s<t.length;s++)e._declinedDependencies[t[s]]=!0;else e._declinedDependencies[t]=!0},dispose:function(t){e._disposeHandlers.push(t)},addDisposeHandler:function(t){e._disposeHandlers.push(t)},removeDisposeHandler:function(t){var s=e._disposeHandlers.indexOf(t);s>=0&&e._disposeHandlers.splice(s,1)},check:C,apply:A,status:function(t){if(!t)return d;u.push(t)},addStatusHandler:function(t){u.push(t)},removeStatusHandler:function(t){var e=u.indexOf(t);e>=0&&u.splice(e,1)},data:n[t]};return s=void 0,e}var u=[],d="idle";function f(t){d=t;for(var e=0;e<u.length;e++)u[e].call(null,t)}var _,p,m,v=0,h=0,g={},b={},w={};function y(t){return+t+""===t?+t:t}function C(t){if("idle"!==d)throw new Error("check() is only allowed in idle status");return i=t,f("check"),(e=1e4,e=e||1e4,new Promise((function(t,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,n=S.p+""+a+".hot-update.json";i.open("GET",n,!0),i.timeout=e,i.send(null)}catch(t){return s(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+n+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+n+" failed."));else{try{var e=JSON.parse(i.responseText)}catch(t){return void s(t)}t(e)}}}))).then((function(t){if(!t)return f("idle"),null;b={},g={},w=t.c,m=t.h,f("prepare");var e=new Promise((function(t,e){_={resolve:t,reject:e}}));p={};return x(0),"prepare"===d&&0===h&&0===v&&k(),e}));var e}function x(t){w[t]?(b[t]=!0,v++,function(t){var e=document.createElement("script");e.charset="utf-8",e.src=S.p+""+t+"."+a+".hot-update.js",document.head.appendChild(e)}(t)):g[t]=!0}function k(){f("ready");var t=_;if(_=null,t)if(i)Promise.resolve().then((function(){return A(i)})).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}));else{var e=[];for(var s in p)Object.prototype.hasOwnProperty.call(p,s)&&e.push(y(s));t.resolve(e)}}function A(e){if("ready"!==d)throw new Error("apply() is only allowed in ready status");var s,i,o,l,c;function u(t){for(var e=[t],s={},i=e.map((function(t){return{chain:[t],id:t}}));i.length>0;){var a=i.pop(),n=a.id,r=a.chain;if((l=j[n])&&!l.hot._selfAccepted){if(l.hot._selfDeclined)return{type:"self-declined",chain:r,moduleId:n};if(l.hot._main)return{type:"unaccepted",chain:r,moduleId:n};for(var o=0;o<l.parents.length;o++){var c=l.parents[o],u=j[c];if(u){if(u.hot._declinedDependencies[n])return{type:"declined",chain:r.concat([c]),moduleId:n,parentId:c};-1===e.indexOf(c)&&(u.hot._acceptedDependencies[n]?(s[c]||(s[c]=[]),_(s[c],[n])):(delete s[c],e.push(c),i.push({chain:r.concat([c]),id:c})))}}}}return{type:"accepted",moduleId:t,outdatedModules:e,outdatedDependencies:s}}function _(t,e){for(var s=0;s<e.length;s++){var i=e[s];-1===t.indexOf(i)&&t.push(i)}}e=e||{};var v={},h=[],g={},b=function(){console.warn("[HMR] unexpected require("+x.moduleId+") to disposed module")};for(var C in p)if(Object.prototype.hasOwnProperty.call(p,C)){var x;c=y(C);var k=!1,A=!1,E=!1,T="";switch((x=p[C]?u(c):{type:"disposed",moduleId:C}).chain&&(T="\nUpdate propagation: "+x.chain.join(" -> ")),x.type){case"self-declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(k=new Error("Aborted because of self decline: "+x.moduleId+T));break;case"declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(k=new Error("Aborted because of declined dependency: "+x.moduleId+" in "+x.parentId+T));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(x),e.ignoreUnaccepted||(k=new Error("Aborted because "+c+" is not accepted"+T));break;case"accepted":e.onAccepted&&e.onAccepted(x),A=!0;break;case"disposed":e.onDisposed&&e.onDisposed(x),E=!0;break;default:throw new Error("Unexception type "+x.type)}if(k)return f("abort"),Promise.reject(k);if(A)for(c in g[c]=p[c],_(h,x.outdatedModules),x.outdatedDependencies)Object.prototype.hasOwnProperty.call(x.outdatedDependencies,c)&&(v[c]||(v[c]=[]),_(v[c],x.outdatedDependencies[c]));E&&(_(h,[x.moduleId]),g[c]=b)}var I,O=[];for(i=0;i<h.length;i++)c=h[i],j[c]&&j[c].hot._selfAccepted&&g[c]!==b&&O.push({module:c,errorHandler:j[c].hot._selfAccepted});f("dispose"),Object.keys(w).forEach((function(t){!1===w[t]&&function(t){delete installedChunks[t]}(t)}));for(var P,$,D=h.slice();D.length>0;)if(c=D.pop(),l=j[c]){var U={},R=l.hot._disposeHandlers;for(o=0;o<R.length;o++)(s=R[o])(U);for(n[c]=U,l.hot.active=!1,delete j[c],delete v[c],o=0;o<l.children.length;o++){var L=j[l.children[o]];L&&((I=L.parents.indexOf(c))>=0&&L.parents.splice(I,1))}}for(c in v)if(Object.prototype.hasOwnProperty.call(v,c)&&(l=j[c]))for($=v[c],o=0;o<$.length;o++)P=$[o],(I=l.children.indexOf(P))>=0&&l.children.splice(I,1);for(c in f("apply"),a=m,g)Object.prototype.hasOwnProperty.call(g,c)&&(t[c]=g[c]);var N=null;for(c in v)if(Object.prototype.hasOwnProperty.call(v,c)&&(l=j[c])){$=v[c];var H=[];for(i=0;i<$.length;i++)if(P=$[i],s=l.hot._acceptedDependencies[P]){if(-1!==H.indexOf(s))continue;H.push(s)}for(i=0;i<H.length;i++){s=H[i];try{s($)}catch(t){e.onErrored&&e.onErrored({type:"accept-errored",moduleId:c,dependencyId:$[i],error:t}),e.ignoreErrored||N||(N=t)}}}for(i=0;i<O.length;i++){var q=O[i];c=q.module,r=[c];try{S(c)}catch(t){if("function"==typeof q.errorHandler)try{q.errorHandler(t)}catch(s){e.onErrored&&e.onErrored({type:"self-accept-error-handler-errored",moduleId:c,error:s,originalError:t}),e.ignoreErrored||N||(N=s),N||(N=t)}else e.onErrored&&e.onErrored({type:"self-accept-errored",moduleId:c,error:t}),e.ignoreErrored||N||(N=t)}}return N?(f("fail"),Promise.reject(N)):(f("idle"),new Promise((function(t){t(h)})))}var j={};function S(e){if(j[e])return j[e].exports;var s=j[e]={i:e,l:!1,exports:{},hot:c(e),parents:(o=r,r=[],o),children:[]};return t[e].call(s.exports,s,s.exports,l(e)),s.l=!0,s.exports}S.m=t,S.c=j,S.d=function(t,e,s){S.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},S.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},S.t=function(t,e){if(1&e&&(t=S(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(S.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)S.d(s,i,function(e){return t[e]}.bind(null,i));return s},S.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return S.d(e,"a",e),e},S.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},S.p="",S.h=function(){return a},l("./src/advanced-tools.js")(S.s="./src/advanced-tools.js")}({"./node_modules/cssfilter/lib/css.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),a=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function n(t){return null==t}function r(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}r.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onAttr,r=e.onIgnoreAttr,o=e.safeAttrValue;return a(t,(function(t,e,a,l,c){var u=s[a],d=!1;if(!0===u?d=u:"function"==typeof u?d=u(l):u instanceof RegExp&&(d=u.test(l)),!0!==d&&(d=!1),l=o(a,l)){var f,_={position:e,sourcePosition:t,source:c,isWhite:d};return d?n(f=i(a,l,_))?a+":"+l:f:n(f=r(a,l,_))?void 0:f}}))},t.exports=r},"./node_modules/cssfilter/lib/default.js":function(t,e){function s(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;e.whiteList=s(),e.getDefaultWhiteList=s,e.onAttr=function(t,e,s){},e.onIgnoreAttr=function(t,e,s){},e.safeAttrValue=function(t,e){return i.test(e)?"":e}},"./node_modules/cssfilter/lib/index.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),a=s("./node_modules/cssfilter/lib/css.js");for(var n in(e=t.exports=function(t,e){return new a(e).process(t)}).FilterCSS=a,i)e[n]=i[n];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/util.js");t.exports=function(t,e){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var s=t.length,a=!1,n=0,r=0,o="";function l(){if(!a){var s=i.trim(t.slice(n,r)),l=s.indexOf(":");if(-1!==l){var c=i.trim(s.slice(0,l)),u=i.trim(s.slice(l+1));if(c){var d=e(n,o.length,c,u,s);d&&(o+=d+"; ")}}}n=r+1}for(;r<s;r++){var c=t[r];if("/"===c&&"*"===t[r+1]){var u=t.indexOf("*/",r+2);if(-1===u)break;n=(r=u+1)+1,a=!1}else"("===c?a=!0:")"===c?a=!1:";"===c?a||l():"\n"===c&&l()}return i.trim(o)}},"./node_modules/cssfilter/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,a;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,a=t.length;i<a;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,e,s){"use strict";function i(t,e,s,i,a,n,r,o){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=s,c._compiled=!0),i&&(c.functional=!0),n&&(c._scopeId="data-v-"+n),r?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},c._ssrRegister=l):a&&(l=o?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}s.d(e,"a",(function(){return i}))},"./node_modules/xss/lib/default.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,a=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,n=s("./node_modules/xss/lib/util.js");function r(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var o=new i;function l(t){return t.replace(c,"&lt;").replace(u,"&gt;")}var c=/</g,u=/>/g,d=/"/g,f=/&quot;/g,_=/&#([a-zA-Z0-9]*);?/gim,p=/&colon;?/gim,m=/&newline;?/gim,v=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,h=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(d,"&quot;")}function w(t){return t.replace(f,'"')}function y(t){return t.replace(_,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function C(t){return t.replace(p,":").replace(m," ")}function x(t){for(var e="",s=0,i=t.length;s<i;s++)e+=t.charCodeAt(s)<32?" ":t.charAt(s);return n.trim(e)}function k(t){return t=x(t=C(t=y(t=w(t))))}function A(t){return t=l(t=b(t))}var j=/<!--[\s\S]*?-->/g;e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},e.getDefaultWhiteList=r,e.onTag=function(t,e,s){},e.onIgnoreTag=function(t,e,s){},e.onTagAttr=function(t,e,s){},e.onIgnoreTagAttr=function(t,e,s){},e.safeAttrValue=function(t,e,s,i){if(s=k(s),"href"===e||"src"===e){if("#"===(s=n.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===e){if(v.lastIndex=0,v.test(s))return""}else if("style"===e){if(h.lastIndex=0,h.test(s))return"";if(g.lastIndex=0,g.test(s)&&(v.lastIndex=0,v.test(s)))return"";!1!==i&&(s=(i=i||o).process(s))}return s=A(s)},e.escapeHtml=l,e.escapeQuote=b,e.unescapeQuote=w,e.escapeHtmlEntities=y,e.escapeDangerHtml5Entities=C,e.clearNonPrintableCharacter=x,e.friendlyAttrValue=k,e.escapeAttrValue=A,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var s=!Array.isArray(t),i=[],a=!1;return{onIgnoreTag:function(r,o,l){if(function(e){return!!s||-1!==n.indexOf(t,e)}(r)){if(l.isClosing){var c="[/removed]",u=l.position+c.length;return i.push([!1!==a?a:l.position,u]),a=!1,c}return a||(a=l.position),"[removed]"}return e(r,o,l)},remove:function(t){var e="",s=0;return n.forEach(i,(function(i){e+=t.slice(s,i[0]),s=i[1]})),e+=t.slice(s)}}},e.stripCommentTag=function(t){return t.replace(j,"")},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return 127!==e&&(!(e<=31)||(10===e||13===e))}))).join("")},e.cssFilter=o,e.getDefaultCSSWhiteList=a},"./node_modules/xss/lib/index.js":function(t,e,s){var i=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),n=s("./node_modules/xss/lib/xss.js");function r(t,e){return new n(e).process(t)}for(var o in(e=t.exports=r).filterXSS=r,e.FilterXSS=n,i)e[o]=i[o];for(var o in a)e[o]=a[o];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,e,s){var i=s("./node_modules/xss/lib/util.js");function a(t){var e=i.spaceIndex(t);if(-1===e)var s=t.slice(1,-1);else s=t.slice(1,e+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function n(t){return"</"===t.slice(0,2)}var r=/[^a-zA-Z0-9_:\.\-]/gim;function o(t,e){for(;e<t.length;e++){var s=t[e];if(" "!==s)return"="===s?e:-1}}function l(t,e){for(;e>0;e--){var s=t[e];if(" "!==s)return"="===s?e:-1}}function c(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,s){var i="",r=0,o=!1,l=!1,c=0,u=t.length,d="",f="";for(c=0;c<u;c++){var _=t.charAt(c);if(!1===o){if("<"===_){o=c;continue}}else if(!1===l){if("<"===_){i+=s(t.slice(r,c)),o=c,r=c;continue}if(">"===_){i+=s(t.slice(r,o)),d=a(f=t.slice(o,c+1)),i+=e(o,i.length,d,f,n(f)),r=c+1,o=!1;continue}if(('"'===_||"'"===_)&&"="===t.charAt(c-1)){l=_;continue}}else if(_===l){l=!1;continue}}return r<t.length&&(i+=s(t.substr(r))),i},e.parseAttr=function(t,e){var s=0,a=[],n=!1,u=t.length;function d(t,s){if(!((t=(t=i.trim(t)).replace(r,"").toLowerCase()).length<1)){var n=e(t,s||"");n&&a.push(n)}}for(var f=0;f<u;f++){var _,p=t.charAt(f);if(!1!==n||"="!==p)if(!1===n||f!==s||'"'!==p&&"'"!==p||"="!==t.charAt(f-1))if(/\s|\n|\t/.test(p)){if(t=t.replace(/\s|\n|\t/g," "),!1===n){if(-1===(_=o(t,f))){d(i.trim(t.slice(s,f))),n=!1,s=f+1;continue}f=_-1;continue}if(-1===(_=l(t,f-1))){d(n,c(i.trim(t.slice(s,f)))),n=!1,s=f+1;continue}}else;else{if(-1===(_=t.indexOf(p,f+1)))break;d(n,i.trim(t.slice(s+1,_))),n=!1,s=(f=_)+1}else n=t.slice(s,f),s=f+1}return s<t.length&&(!1===n?d(t.slice(s)):d(n,c(i.trim(t.slice(s))))),i.trim(a.join(" "))}},"./node_modules/xss/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,a;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,a=t.length;i<a;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,a=s("./node_modules/xss/lib/default.js"),n=s("./node_modules/xss/lib/parser.js"),r=n.parseTag,o=n.parseAttr,l=s("./node_modules/xss/lib/util.js");function c(t){return null==t}function u(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=a.onIgnoreTagStripAll),t.whiteList=t.whiteList||a.whiteList,t.onTag=t.onTag||a.onTag,t.onTagAttr=t.onTagAttr||a.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||a.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||a.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||a.safeAttrValue,t.escapeHtml=t.escapeHtml||a.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}u.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onTag,n=e.onIgnoreTag,u=e.onTagAttr,d=e.onIgnoreTagAttr,f=e.safeAttrValue,_=e.escapeHtml,p=this.cssFilter;e.stripBlankChar&&(t=a.stripBlankChar(t)),e.allowCommentTag||(t=a.stripCommentTag(t));var m=!1;if(e.stripIgnoreTagBody){m=a.StripTagBody(e.stripIgnoreTagBody,n);n=m.onIgnoreTag}var v=r(t,(function(t,e,a,r,m){var v,h={sourcePosition:t,position:e,isClosing:m,isWhite:s.hasOwnProperty(a)};if(!c(v=i(a,r,h)))return v;if(h.isWhite){if(h.isClosing)return"</"+a+">";var g=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var s="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return s&&(t=l.trim(t.slice(0,-1))),{html:t,closing:s}}(r),b=s[a],w=o(g.html,(function(t,e){var s,i=-1!==l.indexOf(b,t);return c(s=u(a,t,e,i))?i?(e=f(a,t,e,p))?t+'="'+e+'"':t:c(s=d(a,t,e,i))?void 0:s:s}));r="<"+a;return w&&(r+=" "+w),g.closing&&(r+=" /"),r+=">"}return c(v=n(a,r,h))?_(r):v}),_);return m&&(v=m.remove(v)),v},t.exports=u},"./src/advanced-tools.js":function(t,e,s){"use strict";s.r(e);var i=s("vue"),a=s.n(i),n=s("./src/helper/base_hepler.js"),r={mixins:[n.a],data:function(){return{all_roles:advanced_tools.misc.all_roles,compatibility:advanced_tools.misc.compatibility,model:advanced_tools.model.two_factor,nonces:advanced_tools.nonces,endpoints:advanced_tools.endpoints,state:{on_saving:!1,waiting_save:!1,origin_state:!1}}},methods:{toggle:function(t){var e=this,s={};s.enabled=t,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:s,module:"auth"})},(function(){e.model.enabled=t,!0===t&&e.$nextTick((function(){e.rebindSUI(),e.bindUploader(),e.state.waiting_save=!1}))}))},updateSettings:function(){var t=this.model;delete t.email_subject,delete t.email_sender,delete t.email_body,this.state.origin_state=this.model.user_roles.length>0,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:t,module:"auth"})})},saveEmailTemplate:function(){var t={email_subject:this.model.email_subject,email_sender:this.model.email_sender,email_body:this.model.email_body};this.httpPostRequest("updateSettings",{data:JSON.stringify({module:"auth",settings:t})},(function(t){!0===t.success&&SUI.dialogs["edit-one-time-password-email"].hide()}))},sendTestEmail:function(){var t={email_subject:this.model.email_subject,email_sender:this.model.email_sender,email_body:this.model.email_body};this.httpPostRequest("sendTestEmail",t)},bindUploader:function(){var t=void 0,e=this;jQuery(".file-picker").click((function(){t||(t=wp.media.frames.file_frame=wp.media({title:"Choose an image file",button:{text:"Choose File"},multiple:!1,library:{type:["image"]}})).on("select",(function(){var s=t.state().get("selection").first().toJSON();jQuery.inArray(s.mime,["image/jpeg","image/png","image/gif"])>-1?e.model.custom_graphic_url=s.url:Defender.showNotification("error","Invalid image file type")})),t.open()}))}},mounted:function(){var t=this;this.$nextTick((function(){t.bindUploader()})),this.state.origin_state=this.model.user_roles.length>0}},o=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),l=Object(o.a)(r,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.enabled?s("div",{staticClass:"sui-box",attrs:{id:"2factor"}},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t"+t._s(t.__("Two Factor Authentication"))+"\n\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-message"},[t.maybeHideBranding()?t._e():s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/2factor-disabled.svg"),"aria-hidden":"true"}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Beef up your website’s security with two-factor authentication. Add an extra step in the login process so that users are required to enter a password and an app-generated passcode using their phone – the best protection against brute force attacks."))+"\n\t\t\t\t\t")]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.toggle(!0)}}},[s("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue activate"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t\t\t\t")])],1)])])])]):s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Two Factor Authentication"))+"\n\t\t\t")])]),t._v(" "),s("form",{staticClass:"advanced-settings-frm",attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Configure your two-factor authentication settings. Our recommendations are enabled by default."))+"\n\t\t\t\t")]),t._v(" "),!1!==t.compatibility?s("div",{staticClass:"sui-notice sui-notice-error"},[s("p",t._l(t.compatibility,(function(e){return s("span",[t._v("\n "+t._s(e)+"\n ")])})),0)]):t._e(),t._v(" "),t.state.origin_state?s("div",{staticClass:"sui-notice sui-notice-info"},[s("p",[s("strong",[t._v(t._s(t.__("Two-factor authentication is now active.")))]),t._v(" "+t._s(t.__("User roles with this feature enabled must visit their "))+"\n\t\t\t\t\t\t"),s("a",{attrs:{href:t.adminUrl("profile.php")}},[t._v(t._s(t.__("Profile page")))]),t._v(" "+t._s(t.__("to complete setup and sync their account with the Authenticator app."))+"\n\t\t\t\t\t")])]):s("div",{staticClass:"sui-notice sui-notice-warning"},[s("p",[s("strong",[t._v(t._s(t.__("Two-factor authentication is currently inactive.")))]),t._v(" "+t._s(t.__("Configure and save your settings to complete setup."))+"\n\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("User Roles"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose the user roles you want to enable two-factor authentication for. Users with those roles will then be required to use the Google Authenticator app to login."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-field-list"},[s("div",{staticClass:"sui-field-list-header"},[s("h3",{staticClass:"sui-field-list-title"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("User role"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-field-list-body"},t._l(t.all_roles,(function(e,i){return s("div",{staticClass:"sui-field-list-item"},[s("label",{staticClass:"sui-field-list-item-label",attrs:{for:"toggle_"+i},domProps:{innerHTML:t._s(e.name)}}),t._v(" "),s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.user_roles,expression:"model.user_roles"}],attrs:{type:"checkbox",id:"toggle_"+i},domProps:{value:i,checked:Array.isArray(t.model.user_roles)?t._i(t.model.user_roles,i)>-1:t.model.user_roles},on:{change:function(e){var s=t.model.user_roles,a=e.target,n=!!a.checked;if(Array.isArray(s)){var r=i,o=t._i(s,r);a.checked?o<0&&t.$set(t.model,"user_roles",s.concat([r])):o>-1&&t.$set(t.model,"user_roles",s.slice(0,o).concat(s.slice(o+1)))}else t.$set(t.model,"user_roles",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})])])})),0)])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Lost Phone"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If a user is unable to access their phone, you can allow an option to send the one time password to their registered email."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.lost_phone,expression:"model.lost_phone"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",id:"lost_phone"},domProps:{checked:Array.isArray(t.model.lost_phone)?t._i(t.model.lost_phone,null)>-1:t.model.lost_phone},on:{change:function(e){var s=t.model.lost_phone,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"lost_phone",s.concat([null])):n>-1&&t.$set(t.model,"lost_phone",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"lost_phone",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"lost_phone"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Enable lost phone option"))+"\n\t\t\t\t\t\t\t")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Force Authentication"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("By default, two-factor authentication is optional for users. This setting forces users to activate two-factor."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.force_auth,expression:"model.force_auth"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"force_auth",id:"force_auth"},domProps:{checked:Array.isArray(t.model.force_auth)?t._i(t.model.force_auth,null)>-1:t.model.force_auth},on:{change:function(e){var s=t.model.force_auth,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"force_auth",s.concat([null])):n>-1&&t.$set(t.model,"force_auth",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"force_auth",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"force_auth"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Force users to log in with two-factor authentication"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("span",{staticClass:"sui-description sui-toggle-content"},[t._v("\n "+t._s(t.__("Note: Users will be forced to set up two-factor when they next login."))+"\n ")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.force_auth,expression:"model.force_auth===true"}],staticClass:"sui-border-frame sui-toggle-content",attrs:{id:"force_auth_roles"}},[s("strong",[t._v(t._s(t.__("User Roles")))]),t._v(" "),s("ul",t._l(t.all_roles,(function(e,i){return s("li",[s("label",{staticClass:"sui-checkbox",attrs:{for:"toggle_force_"+i}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.force_auth_roles,expression:"model.force_auth_roles"}],attrs:{type:"checkbox",id:"toggle_force_"+i},domProps:{value:i,checked:Array.isArray(t.model.force_auth_roles)?t._i(t.model.force_auth_roles,i)>-1:t.model.force_auth_roles},on:{change:function(e){var s=t.model.force_auth_roles,a=e.target,n=!!a.checked;if(Array.isArray(s)){var r=i,o=t._i(s,r);a.checked?o<0&&t.$set(t.model,"force_auth_roles",s.concat([r])):o>-1&&t.$set(t.model,"force_auth_roles",s.slice(0,o).concat(s.slice(o+1)))}else t.$set(t.model,"force_auth_roles",n)}}}),t._v(" "),s("span",{attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",[t._v(t._s(e.name))])])])})),0),t._v(" "),s("strong",[t._v(t._s(t.__("Custom warning message")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.force_auth_mess,expression:"model.force_auth_mess"}],staticClass:"sui-form-control",attrs:{name:"force_auth_mess"},domProps:{value:t.model.force_auth_mess},on:{input:function(e){e.target.composing||t.$set(t.model,"force_auth_mess",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Note: This is shown in the users Profile area indicating they must use two-factor authentication."))+"\n ")])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Custom Graphic"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("By default, Defender’s icon appears above the login fields. You can upload your own branding, or turn this feature off."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.custom_graphic,expression:"model.custom_graphic"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"custom_graphic",id:"custom_graphic"},domProps:{checked:Array.isArray(t.model.custom_graphic)?t._i(t.model.custom_graphic,null)>-1:t.model.custom_graphic},on:{change:function(e){var s=t.model.custom_graphic,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"custom_graphic",s.concat([null])):n>-1&&t.$set(t.model,"custom_graphic",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"custom_graphic",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"custom_graphic"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Enable custom graphics above login fields"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.custom_graphic,expression:"model.custom_graphic === true"}],staticClass:"sui-border-frame sui-toggle-content"},[s("span",{staticClass:"sui-description"},[s("strong",[t._v(t._s(t.__("Custom Graphic")))]),t._v(" - "+t._s(t.__("For best results use a 168x168px JPG or PNG."))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-upload"},[s("div",{staticClass:"sui-upload-image"},[s("img",{attrs:{id:"custom_graphicIMG",width:"40",height:"40",src:t.model.custom_graphic_url}}),t._v(" "),s("div",{staticClass:"sui-image-preview",style:{backgroundImage:"url("+t.model.custom_graphic_url+")"},attrs:{role:"button"}})]),t._v(" "),s("button",{staticClass:"sui-upload-button file-picker",attrs:{type:"button"}},[s("i",{staticClass:"sui-icon-upload-cloud",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Upload file"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),t._m(0)])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Emails"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Customize the default copy for emails the two-factor feature sends to users."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-field-list"},[s("div",{staticClass:"sui-field-list-header"},[s("h3",{staticClass:"sui-field-list-title"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Email"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-field-list-body"},[s("div",{staticClass:"sui-field-list-item"},[s("label",{staticClass:"sui-field-list-item-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Lost phone one time password"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),t._m(1)])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("App Download"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Need the app? Here’s links to the official Google Authenticator iOS and Android apps."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("a",{attrs:{href:"https://itunes.apple.com/vn/app/google-authenticator/id388497605?mt=8"}},[s("img",{attrs:{src:t.assetUrl("assets/img/ios-download.svg")}})]),t._v(" "),s("a",{attrs:{href:"https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2"}},[s("img",{attrs:{src:t.assetUrl("assets/img/android-download.svg")}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Active Users"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Here’s a quick link to see which of your users have enabled two-factor authentication."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("a",{attrs:{href:t.adminUrl("users.php")}},[t._v(t._s(t.__("View users")))]),t._v(" "+t._s(t.__("who have enabled this feature."))+"\n\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Disable two-factor authentication on your website."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{"css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1)}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{"css-class":"sui-button-blue save-changes",type:"submit",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"edit-one-time-password-email"}},[s("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"dialogTitle","aria-describedby":"dialogDescription",role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title",attrs:{id:"dialogTitle"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Edit Email"))+"\n\t\t\t\t\t\t")]),t._v(" "),t._m(2)]),t._v(" "),s("form",{attrs:{method:"post"}},[s("div",{staticClass:"sui-box-body"},[s("p",{attrs:{id:"dialogDescription"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("This email sends a temporary passcode when the user can’t access their phone."))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Subject"))+"\n\t\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.email_subject,expression:"model.email_subject"}],staticClass:"sui-form-control",attrs:{name:"subject",type:"text",id:"email_subject"},domProps:{value:t.model.email_subject},on:{input:function(e){e.target.composing||t.$set(t.model,"email_subject",e.target.value)}}})])]),t._v(" "),s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Sender"))+"\n\t\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.email_sender,expression:"model.email_sender"}],staticClass:"sui-form-control",attrs:{name:"sender",type:"text",id:"email_sender"},domProps:{value:t.model.email_sender},on:{input:function(e){e.target.composing||t.$set(t.model,"email_sender",e.target.value)}}})])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Body"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.email_body,expression:"model.email_body"}],staticClass:"sui-form-control",attrs:{name:"body",rows:"8",id:"email_body"},domProps:{value:t.model.email_body},on:{input:function(e){e.target.composing||t.$set(t.model,"email_body",e.target.value)}}})])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t\t"+t._s(t.__("Available variables"))+"\n\t\t\t\t\t\t\t\t\t")]),t._v(" "),s("span",{staticClass:"sui-tag"},[s("strong",{domProps:{textContent:t._s(t.__("{{passcode}}"))}})]),t._v(" "),s("span",{staticClass:"sui-tag"},[s("strong",{domProps:{textContent:t._s(t.__("{{display_name}}"))}})])])])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-flex-child-right"},[s("button",{staticClass:"sui-button sui-button-ghost",attrs:{type:"button","data-a11y-dialog-hide":"my-accessible-dialog"}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Cancel"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("submit-button",{staticClass:"sui-button",attrs:{type:"button",state:t.state},on:{click:t.saveEmailTemplate}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Save Template"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("submit-button",{staticClass:"sui-button sui-button-blue",attrs:{type:"button",state:t.state},on:{click:t.sendTestEmail}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Send Test"))+"\n\t\t\t\t\t\t\t\t")])],1)])])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-upload-file"},[e("span")])},function(){var t=this.$createElement,e=this._self._c||t;return e("button",{staticClass:"sui-button-icon",attrs:{type:"button","data-a11y-dialog-show":"edit-one-time-password-email"}},[e("i",{staticClass:"sui-icon-pencil",attrs:{"aria-hidden":"true"}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-right"},[e("button",{staticClass:"sui-dialog-close",attrs:{"data-a11y-dialog-hide":"","aria-label":"Close this dialog window"}})])}],!1,null,null,null).exports,c={mixins:[n.a],name:"mask-login",data:function(){return{misc:advanced_tools.misc,model:advanced_tools.model.mask_login,nonces:advanced_tools.nonces,endpoints:advanced_tools.endpoints,state:{on_saving:!1,original_state:!1}}},watch:{"model.mask_url":function(t){t=this.convertToSlug(t),this.model.mask_url=t,this.misc.new_login_url=this.misc.home_url+t,this.state.waiting_save=!0},"model.redirect_traffic_url":function(t){t=this.convertToSlug(t),this.model.redirect_traffic_url=t,this.misc.login_redirect_url=this.misc.home_url+t}},mounted:function(){this.state.original_state=this.model.mask_url.length>0},methods:{toggle:function(t){var e=this,s={};s.enabled=t,this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:s,module:"mask-login"})},(function(){e.model.enabled=t}))},updateSettings:function(){var t=this.model,e=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:t,module:"mask-login"})},(function(){e.state.original_state=e.model.mask_url.length>0}))},convertToSlug:function(t){return t.toLowerCase().replace(/[^\w-/.]+/g,"")}},computed:{new_mask_login:function(){return this.misc.new_login_url},login_redirect_url:function(){return this.misc.login_redirect_url}}},u=Object(o.a)(c,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.enabled?s("div",{staticClass:"sui-box",attrs:{id:"mask-login"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Mask Login Area"))+"\n\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-message"},[t.maybeHideBranding()?t._e():s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/2factor-disabled.svg"),"aria-hidden":"true"}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Change the location of WordPress's default login area, making it harder for automated bots to find and also more convenient for your users."))+"\n\t\t\t\t")]),t._v(" "),s("form",{attrs:{method:"post"}},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-blue activate",state:t.state},on:{click:function(e){return t.toggle(!0)}}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t\t\t")])],1)])])]):s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Mask Login Area"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Change your default WordPress login URL to hide your login area from hackers and bots."))+"\n\t\t\t\t")]),t._v(" "),!1!==t.misc.compatibility?s("div",{staticClass:"sui-notice sui-notice-error"},[s("p",t._l(t.misc.compatibility,(function(e){return s("span",[t._v("\n "+t._s(e)+"\n ")])})),0)]):t._e(),t._v(" "),!1===t.state.original_state?s("div",{staticClass:"sui-notice sui-notice-warning"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Masking is currently inactive. Choose your URL and save your settings to finish setup."))+"\n\t\t\t\t\t")])]):s("div",{staticClass:"sui-notice sui-notice-info"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Masking is currently active at "))+" "),s("strong",{domProps:{textContent:t._s(t.misc.new_login_url)}})])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Masking URL"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose the new URL slug where users of your website will now navigate to log in or register."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("You can specify any URLs. For security reasons, less obvious URLs are recommended as they are harder for bots to guess."))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("New Login URL"))+"\n\t\t\t\t\t\t\t")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.mask_url,expression:"model.mask_url"}],staticClass:"sui-form-control",attrs:{type:"text",name:"mask_url",placeholder:"E.g. dashboard"},domProps:{value:t.model.mask_url},on:{input:function(e){e.target.composing||t.$set(t.model,"mask_url",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Users will login at"))+" "),s("a",{attrs:{href:t.new_mask_login}},[t._v(t._s(t.new_mask_login))]),t._v(". "+t._s(t.__("Note: Registration and Password Reset emails have hardcoded URLs in them. We will update them automatically to match your new login URL"))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Redirect traffic"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("With this feature you can send visitors and bots who try to visit the default Wordpress login URLs to a separate URL to avoid 404s."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.redirect_traffic,expression:"model.redirect_traffic"}],staticClass:"toggle-checkbox",attrs:{role:"presentation",type:"checkbox",name:"redirect_traffic",id:"redirect_traffic","true-value":!0,"false-value":!1},domProps:{checked:Array.isArray(t.model.redirect_traffic)?t._i(t.model.redirect_traffic,null)>-1:t.model.redirect_traffic},on:{change:function(e){var s=t.model.redirect_traffic,i=e.target,a=!!i.checked;if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"redirect_traffic",s.concat([null])):n>-1&&t.$set(t.model,"redirect_traffic",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"redirect_traffic",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"redirect_traffic"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Enable 404 redirection"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{directives:[{name:"show",rawName:"v-show",value:!0===t.model.redirect_traffic,expression:"model.redirect_traffic===true"}],staticClass:"sui-border-frame sui-toggle-content",attrs:{id:"redirectTrafficContainer"}},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Redirection URL")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.redirect_traffic_url,expression:"model.redirect_traffic_url"}],staticClass:"sui-form-control",attrs:{placeholder:"E.g. 404-error",type:"text",name:"redirect_traffic_url"},domProps:{value:t.model.redirect_traffic_url},on:{input:function(e){e.target.composing||t.$set(t.model,"redirect_traffic_url",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Visitors who visit the default login URLs will be redirected to"))+" "),s("a",{attrs:{href:t.login_redirect_url}},[t._v(t._s(t.login_redirect_url))])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Disable login area masking and return to the default wp-admin and wp-login URLS."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1)}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue save-changes"}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t")])],1)])])}),[],!1,null,null,null).exports,d={mixins:[n.a],components:{"two-factors":l,"mask-login":u},data:function(){return{state:{on_saving:!1},whitelabel:defender.whitelabel,is_free:defender.is_free,view:""}},created:function(){var t=new URLSearchParams(window.location.search).get("view");null===t&&(t="two-factor-auth"),this.view=t},watch:{view:function(t,e){history.replaceState({},null,this.adminUrl()+"admin.php?page=wdf-advanced-tools&view="+this.view)}},mounted:function(){self=this,jQuery(".sui-mobile-nav").change((function(){self.view=jQuery(this).val()}))}},f=Object(o.a)(d,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:[t.maybeHighContrast()]},[s("div",{staticClass:"advanced-tools"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v(t._s(t.__("Advanced Tools")))]),t._v(" "),s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#advanced-tools"}})],1),t._v(" "),s("div",{staticClass:"sui-row-with-sidenav"},[s("div",{staticClass:"sui-sidenav"},[s("ul",{staticClass:"sui-vertical-tabs sui-sidenav-hide-md"},[s("li",{staticClass:"sui-vertical-tab",class:{current:"two-factor-auth"===t.view}},[s("a",{attrs:{"data-tab":"login_lockout",href:"#2factor"},on:{click:function(e){e.preventDefault(),t.view="two-factor-auth"}}},[t._v(t._s(t.__("Two-Factor Auth")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"mask-login"===t.view}},[s("a",{attrs:{"data-tab":"notfound_lockout",href:"#mask-login"},on:{click:function(e){e.preventDefault(),t.view="mask-login"}}},[t._v(t._s(t.__("Mask Login Area")))])])]),t._v(" "),s("div",{staticClass:"sui-sidenav-hide-lg"},[s("select",{staticClass:"sui-mobile-nav"},[s("option",{attrs:{value:"two-factor-auth"}},[t._v(t._s(t.__("Two-Factor Auth")))]),t._v(" "),s("option",{attrs:{value:"mask-login"}},[t._v(t._s(t.__("Mask Login Area")))])])])]),t._v(" "),s("two-factors",{directives:[{name:"show",rawName:"v-show",value:"two-factor-auth"===t.view,expression:"view==='two-factor-auth'"}]}),t._v(" "),s("mask-login",{directives:[{name:"show",rawName:"v-show",value:"mask-login"===t.view,expression:"view==='mask-login'"}]})],1)]),t._v(" "),s("app-footer")],1)}),[],!1,null,null,null).exports,_=s("./src/component/submit-button.vue"),p=s("./src/component/footer.vue"),m=s("./src/component/doc-link.vue");a.a.component("app-footer",p.a),a.a.component("doc-link",m.a),a.a.component("submit-button",_.a);new a.a({el:"#defender",components:{advanced_tools:f},render:function(t){return t(f)}})},"./src/component/doc-link.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return!1===this.whitelabel.hide_doc_link?e("div",{staticClass:"sui-actions-right"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[e("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);e.a=n.exports},"./src/component/footer.vue":function(t,e,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[!0===t.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[t._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?s("div",[t.is_free?s("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);e.a=n.exports},"./src/component/submit-button.vue":function(t,e,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(e){return t.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);e.a=n.exports},"./src/helper/base_hepler.js":function(t,e,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),a=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var s=[],i=!0,a=!1,n=void 0;try{for(var r,o=t[Symbol.iterator]();!(i=(r=o.next()).done)&&(s.push(r.value),!e||s.length!==e);i=!0);}catch(t){a=!0,n=t}finally{try{!i&&o.return&&o.return()}finally{if(a)throw n}}return s}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=wp.i18n,r={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,e,s,a){return"a"===t&&"href"===e&&"%s"===s?"%s":Object(i.safeAttrValue)(t,e,s,a)}},o=new i.FilterXSS(r),l=[];e.a={methods:{__:function(t){var e=n.__(t,"wpdef");return o.process(e)},xss:function(t){return o.process(t)},vsprintf:function(t){return n.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,e,s,i,a){var n=this;void 0===a&&(this.state.on_saving=!0);var r=ajaxurl+"?action="+this.endpoints[e]+"&_wpnonce="+this.nonces[e],o=jQuery.ajax({url:r,method:t,data:s,success:function(t){var e=t.data;n.state.on_saving=!1,void 0!==e&&void 0!==e.message&&(t.success?Defender.showNotification("success",e.message):Defender.showNotification("error",e.message)),void 0!==i&&i(t)}});l.push(o)},httpGetRequest:function(t,e,s,i){this.httpRequest("get",t,e,s,i)},httpPostRequest:function(t,e,s,i){this.httpRequest("post",t,e,s,i)},abortAllRequests:function(){for(var t=0;t<l.length;t++)l[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,e){var s=e.split("="),i=a(s,2),n=i[0],r=i[1];return t[n]=r?decodeURIComponent(r.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,e){t.exports=Vue}});
assets/app/audit.js CHANGED
@@ -1 +1 @@
1
- !function(t){var e=window.webpackHotUpdate;window.webpackHotUpdate=function(t,s){!function(t,e){if(!b[t]||!y[t])return;for(var s in y[t]=!1,e)Object.prototype.hasOwnProperty.call(e,s)&&(m[s]=e[s]);0==--p&&0===v&&C()}(t,s),e&&e(t,s)};var s,i=!0,n="d0b3332498cfafc2e0f1",a={},r=[],o=[];function l(t){var e=D[t];if(!e)return M;var i=function(i){return e.hot.active?(D[i]?-1===D[i].parents.indexOf(t)&&D[i].parents.push(t):(r=[t],s=i),-1===e.children.indexOf(i)&&e.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),r=[]),M(i)},n=function(t){return{configurable:!0,enumerable:!0,get:function(){return M[t]},set:function(e){M[t]=e}}};for(var a in M)Object.prototype.hasOwnProperty.call(M,a)&&"e"!==a&&"t"!==a&&Object.defineProperty(i,a,n(a));return i.e=function(t){return"ready"===c&&h("prepare"),v++,M.e(t).then(e,(function(t){throw e(),t}));function e(){v--,"prepare"===c&&(g[t]||x(t),0===v&&0===p&&C())}},i.t=function(t,e){return 1&e&&(t=i(t)),M.t(t,-2&e)},i}function u(t){var e={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(t,s){if(void 0===t)e._selfAccepted=!0;else if("function"==typeof t)e._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)e._acceptedDependencies[t[i]]=s||function(){};else e._acceptedDependencies[t]=s||function(){}},decline:function(t){if(void 0===t)e._selfDeclined=!0;else if("object"==typeof t)for(var s=0;s<t.length;s++)e._declinedDependencies[t[s]]=!0;else e._declinedDependencies[t]=!0},dispose:function(t){e._disposeHandlers.push(t)},addDisposeHandler:function(t){e._disposeHandlers.push(t)},removeDisposeHandler:function(t){var s=e._disposeHandlers.indexOf(t);s>=0&&e._disposeHandlers.splice(s,1)},check:k,apply:S,status:function(t){if(!t)return c;d.push(t)},addStatusHandler:function(t){d.push(t)},removeStatusHandler:function(t){var e=d.indexOf(t);e>=0&&d.splice(e,1)},data:a[t]};return s=void 0,e}var d=[],c="idle";function h(t){c=t;for(var e=0;e<d.length;e++)d[e].call(null,t)}var f,m,_,p=0,v=0,g={},y={},b={};function w(t){return+t+""===t?+t:t}function k(t){if("idle"!==c)throw new Error("check() is only allowed in idle status");return i=t,h("check"),(e=1e4,e=e||1e4,new Promise((function(t,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,a=M.p+""+n+".hot-update.json";i.open("GET",a,!0),i.timeout=e,i.send(null)}catch(t){return s(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+a+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+a+" failed."));else{try{var e=JSON.parse(i.responseText)}catch(t){return void s(t)}t(e)}}}))).then((function(t){if(!t)return h("idle"),null;y={},g={},b=t.c,_=t.h,h("prepare");var e=new Promise((function(t,e){f={resolve:t,reject:e}}));m={};return x(1),"prepare"===c&&0===v&&0===p&&C(),e}));var e}function x(t){b[t]?(y[t]=!0,p++,function(t){var e=document.createElement("script");e.charset="utf-8",e.src=M.p+""+t+"."+n+".hot-update.js",document.head.appendChild(e)}(t)):g[t]=!0}function C(){h("ready");var t=f;if(f=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}));else{var e=[];for(var s in m)Object.prototype.hasOwnProperty.call(m,s)&&e.push(w(s));t.resolve(e)}}function S(e){if("ready"!==c)throw new Error("apply() is only allowed in ready status");var s,i,o,l,u;function d(t){for(var e=[t],s={},i=e.map((function(t){return{chain:[t],id:t}}));i.length>0;){var n=i.pop(),a=n.id,r=n.chain;if((l=D[a])&&!l.hot._selfAccepted){if(l.hot._selfDeclined)return{type:"self-declined",chain:r,moduleId:a};if(l.hot._main)return{type:"unaccepted",chain:r,moduleId:a};for(var o=0;o<l.parents.length;o++){var u=l.parents[o],d=D[u];if(d){if(d.hot._declinedDependencies[a])return{type:"declined",chain:r.concat([u]),moduleId:a,parentId:u};-1===e.indexOf(u)&&(d.hot._acceptedDependencies[a]?(s[u]||(s[u]=[]),f(s[u],[a])):(delete s[u],e.push(u),i.push({chain:r.concat([u]),id:u})))}}}}return{type:"accepted",moduleId:t,outdatedModules:e,outdatedDependencies:s}}function f(t,e){for(var s=0;s<e.length;s++){var i=e[s];-1===t.indexOf(i)&&t.push(i)}}e=e||{};var p={},v=[],g={},y=function(){console.warn("[HMR] unexpected require("+x.moduleId+") to disposed module")};for(var k in m)if(Object.prototype.hasOwnProperty.call(m,k)){var x;u=w(k);var C=!1,S=!1,O=!1,Y="";switch((x=m[k]?d(u):{type:"disposed",moduleId:k}).chain&&(Y="\nUpdate propagation: "+x.chain.join(" -> ")),x.type){case"self-declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(C=new Error("Aborted because of self decline: "+x.moduleId+Y));break;case"declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(C=new Error("Aborted because of declined dependency: "+x.moduleId+" in "+x.parentId+Y));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(x),e.ignoreUnaccepted||(C=new Error("Aborted because "+u+" is not accepted"+Y));break;case"accepted":e.onAccepted&&e.onAccepted(x),S=!0;break;case"disposed":e.onDisposed&&e.onDisposed(x),O=!0;break;default:throw new Error("Unexception type "+x.type)}if(C)return h("abort"),Promise.reject(C);if(S)for(u in g[u]=m[u],f(v,x.outdatedModules),x.outdatedDependencies)Object.prototype.hasOwnProperty.call(x.outdatedDependencies,u)&&(p[u]||(p[u]=[]),f(p[u],x.outdatedDependencies[u]));O&&(f(v,[x.moduleId]),g[u]=y)}var T,P=[];for(i=0;i<v.length;i++)u=v[i],D[u]&&D[u].hot._selfAccepted&&g[u]!==y&&P.push({module:u,errorHandler:D[u].hot._selfAccepted});h("dispose"),Object.keys(b).forEach((function(t){!1===b[t]&&function(t){delete installedChunks[t]}(t)}));for(var j,A,L=v.slice();L.length>0;)if(u=L.pop(),l=D[u]){var E={},R=l.hot._disposeHandlers;for(o=0;o<R.length;o++)(s=R[o])(E);for(a[u]=E,l.hot.active=!1,delete D[u],delete p[u],o=0;o<l.children.length;o++){var N=D[l.children[o]];N&&((T=N.parents.indexOf(u))>=0&&N.parents.splice(T,1))}}for(u in p)if(Object.prototype.hasOwnProperty.call(p,u)&&(l=D[u]))for(A=p[u],o=0;o<A.length;o++)j=A[o],(T=l.children.indexOf(j))>=0&&l.children.splice(T,1);for(u in h("apply"),n=_,g)Object.prototype.hasOwnProperty.call(g,u)&&(t[u]=g[u]);var H=null;for(u in p)if(Object.prototype.hasOwnProperty.call(p,u)&&(l=D[u])){A=p[u];var I=[];for(i=0;i<A.length;i++)if(j=A[i],s=l.hot._acceptedDependencies[j]){if(-1!==I.indexOf(s))continue;I.push(s)}for(i=0;i<I.length;i++){s=I[i];try{s(A)}catch(t){e.onErrored&&e.onErrored({type:"accept-errored",moduleId:u,dependencyId:A[i],error:t}),e.ignoreErrored||H||(H=t)}}}for(i=0;i<P.length;i++){var U=P[i];u=U.module,r=[u];try{M(u)}catch(t){if("function"==typeof U.errorHandler)try{U.errorHandler(t)}catch(s){e.onErrored&&e.onErrored({type:"self-accept-error-handler-errored",moduleId:u,error:s,originalError:t}),e.ignoreErrored||H||(H=s),H||(H=t)}else e.onErrored&&e.onErrored({type:"self-accept-errored",moduleId:u,error:t}),e.ignoreErrored||H||(H=t)}}return H?(h("fail"),Promise.reject(H)):(h("idle"),new Promise((function(t){t(v)})))}var D={};function M(e){if(D[e])return D[e].exports;var s=D[e]={i:e,l:!1,exports:{},hot:u(e),parents:(o=r,r=[],o),children:[]};return t[e].call(s.exports,s,s.exports,l(e)),s.l=!0,s.exports}M.m=t,M.c=D,M.d=function(t,e,s){M.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},M.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},M.t=function(t,e){if(1&e&&(t=M(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(M.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)M.d(s,i,function(e){return t[e]}.bind(null,i));return s},M.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return M.d(e,"a",e),e},M.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},M.p="",M.h=function(){return n},l("./src/audit.js")(M.s="./src/audit.js")}({"./node_modules/cssfilter/lib/css.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function a(t){return null==t}function r(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}r.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onAttr,r=e.onIgnoreAttr,o=e.safeAttrValue;return n(t,(function(t,e,n,l,u){var d=s[n],c=!1;if(!0===d?c=d:"function"==typeof d?c=d(l):d instanceof RegExp&&(c=d.test(l)),!0!==c&&(c=!1),l=o(n,l)){var h,f={position:e,sourcePosition:t,source:u,isWhite:c};return c?a(h=i(n,l,f))?n+":"+l:h:a(h=r(n,l,f))?void 0:h}}))},t.exports=r},"./node_modules/cssfilter/lib/default.js":function(t,e){function s(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;e.whiteList=s(),e.getDefaultWhiteList=s,e.onAttr=function(t,e,s){},e.onIgnoreAttr=function(t,e,s){},e.safeAttrValue=function(t,e){return i.test(e)?"":e}},"./node_modules/cssfilter/lib/index.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/css.js");for(var a in(e=t.exports=function(t,e){return new n(e).process(t)}).FilterCSS=n,i)e[a]=i[a];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/util.js");t.exports=function(t,e){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var s=t.length,n=!1,a=0,r=0,o="";function l(){if(!n){var s=i.trim(t.slice(a,r)),l=s.indexOf(":");if(-1!==l){var u=i.trim(s.slice(0,l)),d=i.trim(s.slice(l+1));if(u){var c=e(a,o.length,u,d,s);c&&(o+=c+"; ")}}}a=r+1}for(;r<s;r++){var u=t[r];if("/"===u&&"*"===t[r+1]){var d=t.indexOf("*/",r+2);if(-1===d)break;a=(r=d+1)+1,n=!1}else"("===u?n=!0:")"===u?n=!1:";"===u?n||l():"\n"===u&&l()}return i.trim(o)}},"./node_modules/cssfilter/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,n;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,n=t.length;i<n;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/lodash/_Symbol.js":function(t,e,s){var i=s("./node_modules/lodash/_root.js").Symbol;t.exports=i},"./node_modules/lodash/_baseGetTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),n=s("./node_modules/lodash/_getRawTag.js"),a=s("./node_modules/lodash/_objectToString.js"),r=i?i.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":r&&r in Object(t)?n(t):a(t)}},"./node_modules/lodash/_baseSlice.js":function(t,e){t.exports=function(t,e,s){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),(s=s>n?n:s)<0&&(s+=n),n=e>s?0:s-e>>>0,e>>>=0;for(var a=Array(n);++i<n;)a[i]=t[i+e];return a}},"./node_modules/lodash/_freeGlobal.js":function(t,e,s){(function(e){var s="object"==typeof e&&e&&e.Object===Object&&e;t.exports=s}).call(this,s("./node_modules/webpack/buildin/global.js"))},"./node_modules/lodash/_getRawTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),n=Object.prototype,a=n.hasOwnProperty,r=n.toString,o=i?i.toStringTag:void 0;t.exports=function(t){var e=a.call(t,o),s=t[o];try{t[o]=void 0;var i=!0}catch(t){}var n=r.call(t);return i&&(e?t[o]=s:delete t[o]),n}},"./node_modules/lodash/_isIndex.js":function(t,e){var s=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&s.test(t))&&t>-1&&t%1==0&&t<e}},"./node_modules/lodash/_isIterateeCall.js":function(t,e,s){var i=s("./node_modules/lodash/eq.js"),n=s("./node_modules/lodash/isArrayLike.js"),a=s("./node_modules/lodash/_isIndex.js"),r=s("./node_modules/lodash/isObject.js");t.exports=function(t,e,s){if(!r(s))return!1;var o=typeof e;return!!("number"==o?n(s)&&a(e,s.length):"string"==o&&e in s)&&i(s[e],t)}},"./node_modules/lodash/_objectToString.js":function(t,e){var s=Object.prototype.toString;t.exports=function(t){return s.call(t)}},"./node_modules/lodash/_root.js":function(t,e,s){var i=s("./node_modules/lodash/_freeGlobal.js"),n="object"==typeof self&&self&&self.Object===Object&&self,a=i||n||Function("return this")();t.exports=a},"./node_modules/lodash/chunk.js":function(t,e,s){var i=s("./node_modules/lodash/_baseSlice.js"),n=s("./node_modules/lodash/_isIterateeCall.js"),a=s("./node_modules/lodash/toInteger.js"),r=Math.ceil,o=Math.max;t.exports=function(t,e,s){e=(s?n(t,e,s):void 0===e)?1:o(a(e),0);var l=null==t?0:t.length;if(!l||e<1)return[];for(var u=0,d=0,c=Array(r(l/e));u<l;)c[d++]=i(t,u,u+=e);return c}},"./node_modules/lodash/eq.js":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"./node_modules/lodash/isArrayLike.js":function(t,e,s){var i=s("./node_modules/lodash/isFunction.js"),n=s("./node_modules/lodash/isLength.js");t.exports=function(t){return null!=t&&n(t.length)&&!i(t)}},"./node_modules/lodash/isFunction.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObject.js");t.exports=function(t){if(!n(t))return!1;var e=i(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},"./node_modules/lodash/isLength.js":function(t,e){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},"./node_modules/lodash/isObject.js":function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},"./node_modules/lodash/isObjectLike.js":function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},"./node_modules/lodash/isSymbol.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObjectLike.js");t.exports=function(t){return"symbol"==typeof t||n(t)&&"[object Symbol]"==i(t)}},"./node_modules/lodash/toFinite.js":function(t,e,s){var i=s("./node_modules/lodash/toNumber.js");t.exports=function(t){return t?(t=i(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},"./node_modules/lodash/toInteger.js":function(t,e,s){var i=s("./node_modules/lodash/toFinite.js");t.exports=function(t){var e=i(t),s=e%1;return e==e?s?e-s:e:0}},"./node_modules/lodash/toNumber.js":function(t,e,s){var i=s("./node_modules/lodash/isObject.js"),n=s("./node_modules/lodash/isSymbol.js"),a=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(n(t))return NaN;if(i(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(a,"");var s=o.test(t);return s||l.test(t)?u(t.slice(2),s?2:8):r.test(t)?NaN:+t}},"./node_modules/moment/moment.js":function(t,e,s){(function(t){t.exports=function(){"use strict";var e,s;function i(){return e.apply(null,arguments)}function n(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function a(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function r(t){return void 0===t}function o(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function l(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function u(t,e){var s,i=[];for(s=0;s<t.length;++s)i.push(e(t[s],s));return i}function d(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function c(t,e){for(var s in e)d(e,s)&&(t[s]=e[s]);return d(e,"toString")&&(t.toString=e.toString),d(e,"valueOf")&&(t.valueOf=e.valueOf),t}function h(t,e,s,i){return xe(t,e,s,i,!0).utc()}function f(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function m(t){if(null==t._isValid){var e=f(t),i=s.call(e.parsedDateParts,(function(t){return null!=t})),n=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&i);if(t._strict&&(n=n&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return n;t._isValid=n}return t._isValid}function _(t){var e=h(NaN);return null!=t?c(f(e),t):f(e).userInvalidated=!0,e}s=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),s=e.length>>>0,i=0;i<s;i++)if(i in e&&t.call(this,e[i],i,e))return!0;return!1};var p=i.momentProperties=[];function v(t,e){var s,i,n;if(r(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),r(e._i)||(t._i=e._i),r(e._f)||(t._f=e._f),r(e._l)||(t._l=e._l),r(e._strict)||(t._strict=e._strict),r(e._tzm)||(t._tzm=e._tzm),r(e._isUTC)||(t._isUTC=e._isUTC),r(e._offset)||(t._offset=e._offset),r(e._pf)||(t._pf=f(e)),r(e._locale)||(t._locale=e._locale),p.length>0)for(s=0;s<p.length;s++)r(n=e[i=p[s]])||(t[i]=n);return t}var g=!1;function y(t){v(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===g&&(g=!0,i.updateOffset(this),g=!1)}function b(t){return t instanceof y||null!=t&&null!=t._isAMomentObject}function w(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function k(t){var e=+t,s=0;return 0!==e&&isFinite(e)&&(s=w(e)),s}function x(t,e,s){var i,n=Math.min(t.length,e.length),a=Math.abs(t.length-e.length),r=0;for(i=0;i<n;i++)(s&&t[i]!==e[i]||!s&&k(t[i])!==k(e[i]))&&r++;return r+a}function C(t){!1===i.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function S(t,e){var s=!0;return c((function(){if(null!=i.deprecationHandler&&i.deprecationHandler(null,t),s){for(var n,a=[],r=0;r<arguments.length;r++){if(n="","object"==typeof arguments[r]){for(var o in n+="\n["+r+"] ",arguments[0])n+=o+": "+arguments[0][o]+", ";n=n.slice(0,-2)}else n=arguments[r];a.push(n)}C(t+"\nArguments: "+Array.prototype.slice.call(a).join("")+"\n"+(new Error).stack),s=!1}return e.apply(this,arguments)}),e)}var D,M={};function O(t,e){null!=i.deprecationHandler&&i.deprecationHandler(t,e),M[t]||(C(e),M[t]=!0)}function Y(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function T(t,e){var s,i=c({},t);for(s in e)d(e,s)&&(a(t[s])&&a(e[s])?(i[s]={},c(i[s],t[s]),c(i[s],e[s])):null!=e[s]?i[s]=e[s]:delete i[s]);for(s in t)d(t,s)&&!d(e,s)&&a(t[s])&&(i[s]=c({},i[s]));return i}function P(t){null!=t&&this.set(t)}i.suppressDeprecationWarnings=!1,i.deprecationHandler=null,D=Object.keys?Object.keys:function(t){var e,s=[];for(e in t)d(t,e)&&s.push(e);return s};var j={};function A(t,e){var s=t.toLowerCase();j[s]=j[s+"s"]=j[e]=t}function L(t){return"string"==typeof t?j[t]||j[t.toLowerCase()]:void 0}function E(t){var e,s,i={};for(s in t)d(t,s)&&(e=L(s))&&(i[e]=t[s]);return i}var R={};function N(t,e){R[t]=e}function H(t,e,s){var i=""+Math.abs(t),n=e-i.length;return(t>=0?s?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+i}var I=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,U=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,W={},F={};function V(t,e,s,i){var n=i;"string"==typeof i&&(n=function(){return this[i]()}),t&&(F[t]=n),e&&(F[e[0]]=function(){return H(n.apply(this,arguments),e[1],e[2])}),s&&(F[s]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function $(t,e){return t.isValid()?(e=G(e,t.localeData()),W[e]=W[e]||function(t){var e,s,i,n=t.match(I);for(e=0,s=n.length;e<s;e++)F[n[e]]?n[e]=F[n[e]]:n[e]=(i=n[e]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(e){var i,a="";for(i=0;i<s;i++)a+=Y(n[i])?n[i].call(e,t):n[i];return a}}(e),W[e](t)):t.localeData().invalidDate()}function G(t,e){var s=5;function i(t){return e.longDateFormat(t)||t}for(U.lastIndex=0;s>=0&&U.test(t);)t=t.replace(U,i),U.lastIndex=0,s-=1;return t}var z=/\d/,q=/\d\d/,Z=/\d{3}/,B=/\d{4}/,Q=/[+-]?\d{6}/,J=/\d\d?/,X=/\d\d\d\d?/,K=/\d\d\d\d\d\d?/,tt=/\d{1,3}/,et=/\d{1,4}/,st=/[+-]?\d{1,6}/,it=/\d+/,nt=/[+-]?\d+/,at=/Z|[+-]\d\d:?\d\d/gi,rt=/Z|[+-]\d\d(?::?\d\d)?/gi,ot=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,lt={};function ut(t,e,s){lt[t]=Y(e)?e:function(t,i){return t&&s?s:e}}function dt(t,e){return d(lt,t)?lt[t](e._strict,e._locale):new RegExp(ct(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,s,i,n){return e||s||i||n}))))}function ct(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ht={};function ft(t,e){var s,i=e;for("string"==typeof t&&(t=[t]),o(e)&&(i=function(t,s){s[e]=k(t)}),s=0;s<t.length;s++)ht[t[s]]=i}function mt(t,e){ft(t,(function(t,s,i,n){i._w=i._w||{},e(t,i._w,i,n)}))}function _t(t,e,s){null!=e&&d(ht,t)&&ht[t](e,s._a,s,t)}function pt(t){return vt(t)?366:365}function vt(t){return t%4==0&&t%100!=0||t%400==0}V("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),V(0,["YY",2],0,(function(){return this.year()%100})),V(0,["YYYY",4],0,"year"),V(0,["YYYYY",5],0,"year"),V(0,["YYYYYY",6,!0],0,"year"),A("year","y"),N("year",1),ut("Y",nt),ut("YY",J,q),ut("YYYY",et,B),ut("YYYYY",st,Q),ut("YYYYYY",st,Q),ft(["YYYYY","YYYYYY"],0),ft("YYYY",(function(t,e){e[0]=2===t.length?i.parseTwoDigitYear(t):k(t)})),ft("YY",(function(t,e){e[0]=i.parseTwoDigitYear(t)})),ft("Y",(function(t,e){e[0]=parseInt(t,10)})),i.parseTwoDigitYear=function(t){return k(t)+(k(t)>68?1900:2e3)};var gt,yt=bt("FullYear",!0);function bt(t,e){return function(s){return null!=s?(kt(this,t,s),i.updateOffset(this,e),this):wt(this,t)}}function wt(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function kt(t,e,s){t.isValid()&&!isNaN(s)&&("FullYear"===e&&vt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](s,t.month(),xt(s,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](s))}function xt(t,e){if(isNaN(t)||isNaN(e))return NaN;var s,i=(e%(s=12)+s)%s;return t+=(e-i)/12,1===i?vt(t)?29:28:31-i%7%2}gt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},V("M",["MM",2],"Mo",(function(){return this.month()+1})),V("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),V("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),A("month","M"),N("month",8),ut("M",J),ut("MM",J,q),ut("MMM",(function(t,e){return e.monthsShortRegex(t)})),ut("MMMM",(function(t,e){return e.monthsRegex(t)})),ft(["M","MM"],(function(t,e){e[1]=k(t)-1})),ft(["MMM","MMMM"],(function(t,e,s,i){var n=s._locale.monthsParse(t,i,s._strict);null!=n?e[1]=n:f(s).invalidMonth=t}));var Ct=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,St="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Dt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Mt(t,e,s){var i,n,a,r=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)a=h([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(a,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(a,"").toLocaleLowerCase();return s?"MMM"===e?-1!==(n=gt.call(this._shortMonthsParse,r))?n:null:-1!==(n=gt.call(this._longMonthsParse,r))?n:null:"MMM"===e?-1!==(n=gt.call(this._shortMonthsParse,r))?n:-1!==(n=gt.call(this._longMonthsParse,r))?n:null:-1!==(n=gt.call(this._longMonthsParse,r))?n:-1!==(n=gt.call(this._shortMonthsParse,r))?n:null}function Ot(t,e){var s;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=k(e);else if(!o(e=t.localeData().monthsParse(e)))return t;return s=Math.min(t.date(),xt(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,s),t}function Yt(t){return null!=t?(Ot(this,t),i.updateOffset(this,!0),this):wt(this,"Month")}var Tt=ot,Pt=ot;function jt(){function t(t,e){return e.length-t.length}var e,s,i=[],n=[],a=[];for(e=0;e<12;e++)s=h([2e3,e]),i.push(this.monthsShort(s,"")),n.push(this.months(s,"")),a.push(this.months(s,"")),a.push(this.monthsShort(s,""));for(i.sort(t),n.sort(t),a.sort(t),e=0;e<12;e++)i[e]=ct(i[e]),n[e]=ct(n[e]);for(e=0;e<24;e++)a[e]=ct(a[e]);this._monthsRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function At(t,e,s,i,n,a,r){var o;return t<100&&t>=0?(o=new Date(t+400,e,s,i,n,a,r),isFinite(o.getFullYear())&&o.setFullYear(t)):o=new Date(t,e,s,i,n,a,r),o}function Lt(t){var e;if(t<100&&t>=0){var s=Array.prototype.slice.call(arguments);s[0]=t+400,e=new Date(Date.UTC.apply(null,s)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Et(t,e,s){var i=7+e-s;return-(7+Lt(t,0,i).getUTCDay()-e)%7+i-1}function Rt(t,e,s,i,n){var a,r,o=1+7*(e-1)+(7+s-i)%7+Et(t,i,n);return o<=0?r=pt(a=t-1)+o:o>pt(t)?(a=t+1,r=o-pt(t)):(a=t,r=o),{year:a,dayOfYear:r}}function Nt(t,e,s){var i,n,a=Et(t.year(),e,s),r=Math.floor((t.dayOfYear()-a-1)/7)+1;return r<1?i=r+Ht(n=t.year()-1,e,s):r>Ht(t.year(),e,s)?(i=r-Ht(t.year(),e,s),n=t.year()+1):(n=t.year(),i=r),{week:i,year:n}}function Ht(t,e,s){var i=Et(t,e,s),n=Et(t+1,e,s);return(pt(t)-i+n)/7}function It(t,e){return t.slice(e,7).concat(t.slice(0,e))}V("w",["ww",2],"wo","week"),V("W",["WW",2],"Wo","isoWeek"),A("week","w"),A("isoWeek","W"),N("week",5),N("isoWeek",5),ut("w",J),ut("ww",J,q),ut("W",J),ut("WW",J,q),mt(["w","ww","W","WW"],(function(t,e,s,i){e[i.substr(0,1)]=k(t)})),V("d",0,"do","day"),V("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),V("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),V("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),V("e",0,0,"weekday"),V("E",0,0,"isoWeekday"),A("day","d"),A("weekday","e"),A("isoWeekday","E"),N("day",11),N("weekday",11),N("isoWeekday",11),ut("d",J),ut("e",J),ut("E",J),ut("dd",(function(t,e){return e.weekdaysMinRegex(t)})),ut("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),ut("dddd",(function(t,e){return e.weekdaysRegex(t)})),mt(["dd","ddd","dddd"],(function(t,e,s,i){var n=s._locale.weekdaysParse(t,i,s._strict);null!=n?e.d=n:f(s).invalidWeekday=t})),mt(["d","e","E"],(function(t,e,s,i){e[i]=k(t)}));var Ut="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Wt="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ft="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Vt(t,e,s){var i,n,a,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)a=h([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(a,"").toLocaleLowerCase();return s?"dddd"===e?-1!==(n=gt.call(this._weekdaysParse,r))?n:null:"ddd"===e?-1!==(n=gt.call(this._shortWeekdaysParse,r))?n:null:-1!==(n=gt.call(this._minWeekdaysParse,r))?n:null:"dddd"===e?-1!==(n=gt.call(this._weekdaysParse,r))?n:-1!==(n=gt.call(this._shortWeekdaysParse,r))?n:-1!==(n=gt.call(this._minWeekdaysParse,r))?n:null:"ddd"===e?-1!==(n=gt.call(this._shortWeekdaysParse,r))?n:-1!==(n=gt.call(this._weekdaysParse,r))?n:-1!==(n=gt.call(this._minWeekdaysParse,r))?n:null:-1!==(n=gt.call(this._minWeekdaysParse,r))?n:-1!==(n=gt.call(this._weekdaysParse,r))?n:-1!==(n=gt.call(this._shortWeekdaysParse,r))?n:null}var $t=ot,Gt=ot,zt=ot;function qt(){function t(t,e){return e.length-t.length}var e,s,i,n,a,r=[],o=[],l=[],u=[];for(e=0;e<7;e++)s=h([2e3,1]).day(e),i=this.weekdaysMin(s,""),n=this.weekdaysShort(s,""),a=this.weekdays(s,""),r.push(i),o.push(n),l.push(a),u.push(i),u.push(n),u.push(a);for(r.sort(t),o.sort(t),l.sort(t),u.sort(t),e=0;e<7;e++)o[e]=ct(o[e]),l[e]=ct(l[e]),u[e]=ct(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Zt(){return this.hours()%12||12}function Bt(t,e){V(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Qt(t,e){return e._meridiemParse}V("H",["HH",2],0,"hour"),V("h",["hh",2],0,Zt),V("k",["kk",2],0,(function(){return this.hours()||24})),V("hmm",0,0,(function(){return""+Zt.apply(this)+H(this.minutes(),2)})),V("hmmss",0,0,(function(){return""+Zt.apply(this)+H(this.minutes(),2)+H(this.seconds(),2)})),V("Hmm",0,0,(function(){return""+this.hours()+H(this.minutes(),2)})),V("Hmmss",0,0,(function(){return""+this.hours()+H(this.minutes(),2)+H(this.seconds(),2)})),Bt("a",!0),Bt("A",!1),A("hour","h"),N("hour",13),ut("a",Qt),ut("A",Qt),ut("H",J),ut("h",J),ut("k",J),ut("HH",J,q),ut("hh",J,q),ut("kk",J,q),ut("hmm",X),ut("hmmss",K),ut("Hmm",X),ut("Hmmss",K),ft(["H","HH"],3),ft(["k","kk"],(function(t,e,s){var i=k(t);e[3]=24===i?0:i})),ft(["a","A"],(function(t,e,s){s._isPm=s._locale.isPM(t),s._meridiem=t})),ft(["h","hh"],(function(t,e,s){e[3]=k(t),f(s).bigHour=!0})),ft("hmm",(function(t,e,s){var i=t.length-2;e[3]=k(t.substr(0,i)),e[4]=k(t.substr(i)),f(s).bigHour=!0})),ft("hmmss",(function(t,e,s){var i=t.length-4,n=t.length-2;e[3]=k(t.substr(0,i)),e[4]=k(t.substr(i,2)),e[5]=k(t.substr(n)),f(s).bigHour=!0})),ft("Hmm",(function(t,e,s){var i=t.length-2;e[3]=k(t.substr(0,i)),e[4]=k(t.substr(i))})),ft("Hmmss",(function(t,e,s){var i=t.length-4,n=t.length-2;e[3]=k(t.substr(0,i)),e[4]=k(t.substr(i,2)),e[5]=k(t.substr(n))}));var Jt,Xt=bt("Hours",!0),Kt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:St,monthsShort:Dt,week:{dow:0,doy:6},weekdays:Ut,weekdaysMin:Ft,weekdaysShort:Wt,meridiemParse:/[ap]\.?m?\.?/i},te={},ee={};function se(t){return t?t.toLowerCase().replace("_","-"):t}function ie(e){var s=null;if(!te[e]&&void 0!==t&&t&&t.exports)try{s=Jt._abbr,!function(){var t=new Error("Cannot find module 'undefined'");throw t.code="MODULE_NOT_FOUND",t}(),ne(s)}catch(t){}return te[e]}function ne(t,e){var s;return t&&((s=r(e)?re(t):ae(t,e))?Jt=s:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Jt._abbr}function ae(t,e){if(null!==e){var s,i=Kt;if(e.abbr=t,null!=te[t])O("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=te[t]._config;else if(null!=e.parentLocale)if(null!=te[e.parentLocale])i=te[e.parentLocale]._config;else{if(null==(s=ie(e.parentLocale)))return ee[e.parentLocale]||(ee[e.parentLocale]=[]),ee[e.parentLocale].push({name:t,config:e}),null;i=s._config}return te[t]=new P(T(i,e)),ee[t]&&ee[t].forEach((function(t){ae(t.name,t.config)})),ne(t),te[t]}return delete te[t],null}function re(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Jt;if(!n(t)){if(e=ie(t))return e;t=[t]}return function(t){for(var e,s,i,n,a=0;a<t.length;){for(e=(n=se(t[a]).split("-")).length,s=(s=se(t[a+1]))?s.split("-"):null;e>0;){if(i=ie(n.slice(0,e).join("-")))return i;if(s&&s.length>=e&&x(n,s,!0)>=e-1)break;e--}a++}return Jt}(t)}function oe(t){var e,s=t._a;return s&&-2===f(t).overflow&&(e=s[1]<0||s[1]>11?1:s[2]<1||s[2]>xt(s[0],s[1])?2:s[3]<0||s[3]>24||24===s[3]&&(0!==s[4]||0!==s[5]||0!==s[6])?3:s[4]<0||s[4]>59?4:s[5]<0||s[5]>59?5:s[6]<0||s[6]>999?6:-1,f(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),f(t)._overflowWeeks&&-1===e&&(e=7),f(t)._overflowWeekday&&-1===e&&(e=8),f(t).overflow=e),t}function le(t,e,s){return null!=t?t:null!=e?e:s}function ue(t){var e,s,n,a,r,o=[];if(!t._d){for(n=function(t){var e=new Date(i.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){var e,s,i,n,a,r,o,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)a=1,r=4,s=le(e.GG,t._a[0],Nt(Ce(),1,4).year),i=le(e.W,1),((n=le(e.E,1))<1||n>7)&&(l=!0);else{a=t._locale._week.dow,r=t._locale._week.doy;var u=Nt(Ce(),a,r);s=le(e.gg,t._a[0],u.year),i=le(e.w,u.week),null!=e.d?((n=e.d)<0||n>6)&&(l=!0):null!=e.e?(n=e.e+a,(e.e<0||e.e>6)&&(l=!0)):n=a}i<1||i>Ht(s,a,r)?f(t)._overflowWeeks=!0:null!=l?f(t)._overflowWeekday=!0:(o=Rt(s,i,n,a,r),t._a[0]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(r=le(t._a[0],n[0]),(t._dayOfYear>pt(r)||0===t._dayOfYear)&&(f(t)._overflowDayOfYear=!0),s=Lt(r,0,t._dayOfYear),t._a[1]=s.getUTCMonth(),t._a[2]=s.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=n[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?Lt:At).apply(null,o),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(f(t).weekdayMismatch=!0)}}var de=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,ce=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,he=/Z|[+-]\d\d(?::?\d\d)?/,fe=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],me=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],_e=/^\/?Date\((\-?\d+)/i;function pe(t){var e,s,i,n,a,r,o=t._i,l=de.exec(o)||ce.exec(o);if(l){for(f(t).iso=!0,e=0,s=fe.length;e<s;e++)if(fe[e][1].exec(l[1])){n=fe[e][0],i=!1!==fe[e][2];break}if(null==n)return void(t._isValid=!1);if(l[3]){for(e=0,s=me.length;e<s;e++)if(me[e][1].exec(l[3])){a=(l[2]||" ")+me[e][0];break}if(null==a)return void(t._isValid=!1)}if(!i&&null!=a)return void(t._isValid=!1);if(l[4]){if(!he.exec(l[4]))return void(t._isValid=!1);r="Z"}t._f=n+(a||"")+(r||""),we(t)}else t._isValid=!1}var ve=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function ge(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}var ye={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function be(t){var e,s,i,n,a,r,o,l=ve.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){var u=(e=l[4],s=l[3],i=l[2],n=l[5],a=l[6],r=l[7],o=[ge(e),Dt.indexOf(s),parseInt(i,10),parseInt(n,10),parseInt(a,10)],r&&o.push(parseInt(r,10)),o);if(!function(t,e,s){return!t||Wt.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(f(s).weekdayMismatch=!0,s._isValid=!1,!1)}(l[1],u,t))return;t._a=u,t._tzm=function(t,e,s){if(t)return ye[t];if(e)return 0;var i=parseInt(s,10),n=i%100;return(i-n)/100*60+n}(l[8],l[9],l[10]),t._d=Lt.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),f(t).rfc2822=!0}else t._isValid=!1}function we(t){if(t._f!==i.ISO_8601)if(t._f!==i.RFC_2822){t._a=[],f(t).empty=!0;var e,s,n,a,r,o=""+t._i,l=o.length,u=0;for(n=G(t._f,t._locale).match(I)||[],e=0;e<n.length;e++)a=n[e],(s=(o.match(dt(a,t))||[])[0])&&((r=o.substr(0,o.indexOf(s))).length>0&&f(t).unusedInput.push(r),o=o.slice(o.indexOf(s)+s.length),u+=s.length),F[a]?(s?f(t).empty=!1:f(t).unusedTokens.push(a),_t(a,s,t)):t._strict&&!s&&f(t).unusedTokens.push(a);f(t).charsLeftOver=l-u,o.length>0&&f(t).unusedInput.push(o),t._a[3]<=12&&!0===f(t).bigHour&&t._a[3]>0&&(f(t).bigHour=void 0),f(t).parsedDateParts=t._a.slice(0),f(t).meridiem=t._meridiem,t._a[3]=function(t,e,s){var i;return null==s?e:null!=t.meridiemHour?t.meridiemHour(e,s):null!=t.isPM?((i=t.isPM(s))&&e<12&&(e+=12),i||12!==e||(e=0),e):e}(t._locale,t._a[3],t._meridiem),ue(t),oe(t)}else be(t);else pe(t)}function ke(t){var e=t._i,s=t._f;return t._locale=t._locale||re(t._l),null===e||void 0===s&&""===e?_({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),b(e)?new y(oe(e)):(l(e)?t._d=e:n(s)?function(t){var e,s,i,n,a;if(0===t._f.length)return f(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;n<t._f.length;n++)a=0,e=v({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[n],we(e),m(e)&&(a+=f(e).charsLeftOver,a+=10*f(e).unusedTokens.length,f(e).score=a,(null==i||a<i)&&(i=a,s=e));c(t,s||e)}(t):s?we(t):function(t){var e=t._i;r(e)?t._d=new Date(i.now()):l(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=_e.exec(t._i);null===e?(pe(t),!1===t._isValid&&(delete t._isValid,be(t),!1===t._isValid&&(delete t._isValid,i.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):n(e)?(t._a=u(e.slice(0),(function(t){return parseInt(t,10)})),ue(t)):a(e)?function(t){if(!t._d){var e=E(t._i);t._a=u([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),ue(t)}}(t):o(e)?t._d=new Date(e):i.createFromInputFallback(t)}(t),m(t)||(t._d=null),t))}function xe(t,e,s,i,r){var o,l={};return!0!==s&&!1!==s||(i=s,s=void 0),(a(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||n(t)&&0===t.length)&&(t=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=r,l._l=s,l._i=t,l._f=e,l._strict=i,(o=new y(oe(ke(l))))._nextDay&&(o.add(1,"d"),o._nextDay=void 0),o}function Ce(t,e,s,i){return xe(t,e,s,i,!1)}i.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),i.ISO_8601=function(){},i.RFC_2822=function(){};var Se=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Ce.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:_()})),De=S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Ce.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:_()}));function Me(t,e){var s,i;if(1===e.length&&n(e[0])&&(e=e[0]),!e.length)return Ce();for(s=e[0],i=1;i<e.length;++i)e[i].isValid()&&!e[i][t](s)||(s=e[i]);return s}var Oe=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ye(t){var e=E(t),s=e.year||0,i=e.quarter||0,n=e.month||0,a=e.week||e.isoWeek||0,r=e.day||0,o=e.hour||0,l=e.minute||0,u=e.second||0,d=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===gt.call(Oe,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var s=!1,i=0;i<Oe.length;++i)if(t[Oe[i]]){if(s)return!1;parseFloat(t[Oe[i]])!==k(t[Oe[i]])&&(s=!0)}return!0}(e),this._milliseconds=+d+1e3*u+6e4*l+1e3*o*60*60,this._days=+r+7*a,this._months=+n+3*i+12*s,this._data={},this._locale=re(),this._bubble()}function Te(t){return t instanceof Ye}function Pe(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function je(t,e){V(t,0,0,(function(){var t=this.utcOffset(),s="+";return t<0&&(t=-t,s="-"),s+H(~~(t/60),2)+e+H(~~t%60,2)}))}je("Z",":"),je("ZZ",""),ut("Z",rt),ut("ZZ",rt),ft(["Z","ZZ"],(function(t,e,s){s._useUTC=!0,s._tzm=Le(rt,t)}));var Ae=/([\+\-]|\d\d)/gi;function Le(t,e){var s=(e||"").match(t);if(null===s)return null;var i=((s[s.length-1]||[])+"").match(Ae)||["-",0,0],n=60*i[1]+k(i[2]);return 0===n?0:"+"===i[0]?n:-n}function Ee(t,e){var s,n;return e._isUTC?(s=e.clone(),n=(b(t)||l(t)?t.valueOf():Ce(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+n),i.updateOffset(s,!1),s):Ce(t).local()}function Re(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Ne(){return!!this.isValid()&&this._isUTC&&0===this._offset}i.updateOffset=function(){};var He=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ie=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ue(t,e){var s,i,n,a,r,l,u=t,c=null;return Te(t)?u={ms:t._milliseconds,d:t._days,M:t._months}:o(t)?(u={},e?u[e]=t:u.milliseconds=t):(c=He.exec(t))?(s="-"===c[1]?-1:1,u={y:0,d:k(c[2])*s,h:k(c[3])*s,m:k(c[4])*s,s:k(c[5])*s,ms:k(Pe(1e3*c[6]))*s}):(c=Ie.exec(t))?(s="-"===c[1]?-1:1,u={y:We(c[2],s),M:We(c[3],s),w:We(c[4],s),d:We(c[5],s),h:We(c[6],s),m:We(c[7],s),s:We(c[8],s)}):null==u?u={}:"object"==typeof u&&("from"in u||"to"in u)&&(a=Ce(u.from),r=Ce(u.to),n=a.isValid()&&r.isValid()?(r=Ee(r,a),a.isBefore(r)?l=Fe(a,r):((l=Fe(r,a)).milliseconds=-l.milliseconds,l.months=-l.months),l):{milliseconds:0,months:0},(u={}).ms=n.milliseconds,u.M=n.months),i=new Ye(u),Te(t)&&d(t,"_locale")&&(i._locale=t._locale),i}function We(t,e){var s=t&&parseFloat(t.replace(",","."));return(isNaN(s)?0:s)*e}function Fe(t,e){var s={};return s.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(s.months,"M").isAfter(e)&&--s.months,s.milliseconds=+e-+t.clone().add(s.months,"M"),s}function Ve(t,e){return function(s,i){var n;return null===i||isNaN(+i)||(O(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=s,s=i,i=n),$e(this,Ue(s="string"==typeof s?+s:s,i),t),this}}function $e(t,e,s,n){var a=e._milliseconds,r=Pe(e._days),o=Pe(e._months);t.isValid()&&(n=null==n||n,o&&Ot(t,wt(t,"Month")+o*s),r&&kt(t,"Date",wt(t,"Date")+r*s),a&&t._d.setTime(t._d.valueOf()+a*s),n&&i.updateOffset(t,r||o))}Ue.fn=Ye.prototype,Ue.invalid=function(){return Ue(NaN)};var Ge=Ve(1,"add"),ze=Ve(-1,"subtract");function qe(t,e){var s=12*(e.year()-t.year())+(e.month()-t.month()),i=t.clone().add(s,"months");return-(s+(e-i<0?(e-i)/(i-t.clone().add(s-1,"months")):(e-i)/(t.clone().add(s+1,"months")-i)))||0}function Ze(t){var e;return void 0===t?this._locale._abbr:(null!=(e=re(t))&&(this._locale=e),this)}i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",i.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Be=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function Qe(){return this._locale}function Je(t,e){return(t%e+e)%e}function Xe(t,e,s){return t<100&&t>=0?new Date(t+400,e,s)-126227808e5:new Date(t,e,s).valueOf()}function Ke(t,e,s){return t<100&&t>=0?Date.UTC(t+400,e,s)-126227808e5:Date.UTC(t,e,s)}function ts(t,e){V(0,[t,t.length],0,e)}function es(t,e,s,i,n){var a;return null==t?Nt(this,i,n).year:(e>(a=Ht(t,i,n))&&(e=a),ss.call(this,t,e,s,i,n))}function ss(t,e,s,i,n){var a=Rt(t,e,s,i,n),r=Lt(a.year,0,a.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}V(0,["gg",2],0,(function(){return this.weekYear()%100})),V(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),ts("gggg","weekYear"),ts("ggggg","weekYear"),ts("GGGG","isoWeekYear"),ts("GGGGG","isoWeekYear"),A("weekYear","gg"),A("isoWeekYear","GG"),N("weekYear",1),N("isoWeekYear",1),ut("G",nt),ut("g",nt),ut("GG",J,q),ut("gg",J,q),ut("GGGG",et,B),ut("gggg",et,B),ut("GGGGG",st,Q),ut("ggggg",st,Q),mt(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,s,i){e[i.substr(0,2)]=k(t)})),mt(["gg","GG"],(function(t,e,s,n){e[n]=i.parseTwoDigitYear(t)})),V("Q",0,"Qo","quarter"),A("quarter","Q"),N("quarter",7),ut("Q",z),ft("Q",(function(t,e){e[1]=3*(k(t)-1)})),V("D",["DD",2],"Do","date"),A("date","D"),N("date",9),ut("D",J),ut("DD",J,q),ut("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),ft(["D","DD"],2),ft("Do",(function(t,e){e[2]=k(t.match(J)[0])}));var is=bt("Date",!0);V("DDD",["DDDD",3],"DDDo","dayOfYear"),A("dayOfYear","DDD"),N("dayOfYear",4),ut("DDD",tt),ut("DDDD",Z),ft(["DDD","DDDD"],(function(t,e,s){s._dayOfYear=k(t)})),V("m",["mm",2],0,"minute"),A("minute","m"),N("minute",14),ut("m",J),ut("mm",J,q),ft(["m","mm"],4);var ns=bt("Minutes",!1);V("s",["ss",2],0,"second"),A("second","s"),N("second",15),ut("s",J),ut("ss",J,q),ft(["s","ss"],5);var as,rs=bt("Seconds",!1);for(V("S",0,0,(function(){return~~(this.millisecond()/100)})),V(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),V(0,["SSS",3],0,"millisecond"),V(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),V(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),V(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),V(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),V(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),V(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),A("millisecond","ms"),N("millisecond",16),ut("S",tt,z),ut("SS",tt,q),ut("SSS",tt,Z),as="SSSS";as.length<=9;as+="S")ut(as,it);function os(t,e){e[6]=k(1e3*("0."+t))}for(as="S";as.length<=9;as+="S")ft(as,os);var ls=bt("Milliseconds",!1);V("z",0,0,"zoneAbbr"),V("zz",0,0,"zoneName");var us=y.prototype;function ds(t){return t}us.add=Ge,us.calendar=function(t,e){var s=t||Ce(),n=Ee(s,this).startOf("day"),a=i.calendarFormat(this,n)||"sameElse",r=e&&(Y(e[a])?e[a].call(this,s):e[a]);return this.format(r||this.localeData().calendar(a,this,Ce(s)))},us.clone=function(){return new y(this)},us.diff=function(t,e,s){var i,n,a;if(!this.isValid())return NaN;if(!(i=Ee(t,this)).isValid())return NaN;switch(n=6e4*(i.utcOffset()-this.utcOffset()),e=L(e)){case"year":a=qe(this,i)/12;break;case"month":a=qe(this,i);break;case"quarter":a=qe(this,i)/3;break;case"second":a=(this-i)/1e3;break;case"minute":a=(this-i)/6e4;break;case"hour":a=(this-i)/36e5;break;case"day":a=(this-i-n)/864e5;break;case"week":a=(this-i-n)/6048e5;break;default:a=this-i}return s?a:w(a)},us.endOf=function(t){var e;if(void 0===(t=L(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?Ke:Xe;switch(t){case"year":e=s(this.year()+1,0,1)-1;break;case"quarter":e=s(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=s(this.year(),this.month()+1,1)-1;break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=s(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-Je(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-Je(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-Je(e,1e3)-1}return this._d.setTime(e),i.updateOffset(this,!0),this},us.format=function(t){t||(t=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var e=$(this,t);return this.localeData().postformat(e)},us.from=function(t,e){return this.isValid()&&(b(t)&&t.isValid()||Ce(t).isValid())?Ue({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},us.fromNow=function(t){return this.from(Ce(),t)},us.to=function(t,e){return this.isValid()&&(b(t)&&t.isValid()||Ce(t).isValid())?Ue({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},us.toNow=function(t){return this.to(Ce(),t)},us.get=function(t){return Y(this[t=L(t)])?this[t]():this},us.invalidAt=function(){return f(this).overflow},us.isAfter=function(t,e){var s=b(t)?t:Ce(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=L(e)||"millisecond")?this.valueOf()>s.valueOf():s.valueOf()<this.clone().startOf(e).valueOf())},us.isBefore=function(t,e){var s=b(t)?t:Ce(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=L(e)||"millisecond")?this.valueOf()<s.valueOf():this.clone().endOf(e).valueOf()<s.valueOf())},us.isBetween=function(t,e,s,i){var n=b(t)?t:Ce(t),a=b(e)?e:Ce(e);return!!(this.isValid()&&n.isValid()&&a.isValid())&&("("===(i=i||"()")[0]?this.isAfter(n,s):!this.isBefore(n,s))&&(")"===i[1]?this.isBefore(a,s):!this.isAfter(a,s))},us.isSame=function(t,e){var s,i=b(t)?t:Ce(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=L(e)||"millisecond")?this.valueOf()===i.valueOf():(s=i.valueOf(),this.clone().startOf(e).valueOf()<=s&&s<=this.clone().endOf(e).valueOf()))},us.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},us.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},us.isValid=function(){return m(this)},us.lang=Be,us.locale=Ze,us.localeData=Qe,us.max=De,us.min=Se,us.parsingFlags=function(){return c({},f(this))},us.set=function(t,e){if("object"==typeof t)for(var s=function(t){var e=[];for(var s in t)e.push({unit:s,priority:R[s]});return e.sort((function(t,e){return t.priority-e.priority})),e}(t=E(t)),i=0;i<s.length;i++)this[s[i].unit](t[s[i].unit]);else if(Y(this[t=L(t)]))return this[t](e);return this},us.startOf=function(t){var e;if(void 0===(t=L(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?Ke:Xe;switch(t){case"year":e=s(this.year(),0,1);break;case"quarter":e=s(this.year(),this.month()-this.month()%3,1);break;case"month":e=s(this.year(),this.month(),1);break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=s(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=Je(e+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":e=this._d.valueOf(),e-=Je(e,6e4);break;case"second":e=this._d.valueOf(),e-=Je(e,1e3)}return this._d.setTime(e),i.updateOffset(this,!0),this},us.subtract=ze,us.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},us.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},us.toDate=function(){return new Date(this.valueOf())},us.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,s=e?this.clone().utc():this;return s.year()<0||s.year()>9999?$(s,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Y(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",$(s,"Z")):$(s,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},us.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var s="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(s+i+"-MM-DD[T]HH:mm:ss.SSS"+n)},us.toJSON=function(){return this.isValid()?this.toISOString():null},us.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},us.unix=function(){return Math.floor(this.valueOf()/1e3)},us.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},us.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},us.year=yt,us.isLeapYear=function(){return vt(this.year())},us.weekYear=function(t){return es.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},us.isoWeekYear=function(t){return es.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},us.quarter=us.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},us.month=Yt,us.daysInMonth=function(){return xt(this.year(),this.month())},us.week=us.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},us.isoWeek=us.isoWeeks=function(t){var e=Nt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},us.weeksInYear=function(){var t=this.localeData()._week;return Ht(this.year(),t.dow,t.doy)},us.isoWeeksInYear=function(){return Ht(this.year(),1,4)},us.date=is,us.day=us.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},us.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},us.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},us.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},us.hour=us.hours=Xt,us.minute=us.minutes=ns,us.second=us.seconds=rs,us.millisecond=us.milliseconds=ls,us.utcOffset=function(t,e,s){var n,a=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Le(rt,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&e&&(n=Re(this)),this._offset=t,this._isUTC=!0,null!=n&&this.add(n,"m"),a!==t&&(!e||this._changeInProgress?$e(this,Ue(t-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,i.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?a:Re(this)},us.utc=function(t){return this.utcOffset(0,t)},us.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Re(this),"m")),this},us.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Le(at,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},us.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Ce(t).utcOffset():0,(this.utcOffset()-t)%60==0)},us.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},us.isLocal=function(){return!!this.isValid()&&!this._isUTC},us.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},us.isUtc=Ne,us.isUTC=Ne,us.zoneAbbr=function(){return this._isUTC?"UTC":""},us.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},us.dates=S("dates accessor is deprecated. Use date instead.",is),us.months=S("months accessor is deprecated. Use month instead",Yt),us.years=S("years accessor is deprecated. Use year instead",yt),us.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),us.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!r(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),(t=ke(t))._a){var e=t._isUTC?h(t._a):Ce(t._a);this._isDSTShifted=this.isValid()&&x(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var cs=P.prototype;function hs(t,e,s,i){var n=re(),a=h().set(i,e);return n[s](a,t)}function fs(t,e,s){if(o(t)&&(e=t,t=void 0),t=t||"",null!=e)return hs(t,e,s,"month");var i,n=[];for(i=0;i<12;i++)n[i]=hs(t,i,s,"month");return n}function ms(t,e,s,i){"boolean"==typeof t?(o(e)&&(s=e,e=void 0),e=e||""):(s=e=t,t=!1,o(e)&&(s=e,e=void 0),e=e||"");var n,a=re(),r=t?a._week.dow:0;if(null!=s)return hs(e,(s+r)%7,i,"day");var l=[];for(n=0;n<7;n++)l[n]=hs(e,(n+r)%7,i,"day");return l}cs.calendar=function(t,e,s){var i=this._calendar[t]||this._calendar.sameElse;return Y(i)?i.call(e,s):i},cs.longDateFormat=function(t){var e=this._longDateFormat[t],s=this._longDateFormat[t.toUpperCase()];return e||!s?e:(this._longDateFormat[t]=s.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])},cs.invalidDate=function(){return this._invalidDate},cs.ordinal=function(t){return this._ordinal.replace("%d",t)},cs.preparse=ds,cs.postformat=ds,cs.relativeTime=function(t,e,s,i){var n=this._relativeTime[s];return Y(n)?n(t,e,s,i):n.replace(/%d/i,t)},cs.pastFuture=function(t,e){var s=this._relativeTime[t>0?"future":"past"];return Y(s)?s(e):s.replace(/%s/i,e)},cs.set=function(t){var e,s;for(s in t)Y(e=t[s])?this[s]=e:this["_"+s]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},cs.months=function(t,e){return t?n(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||Ct).test(e)?"format":"standalone"][t.month()]:n(this._months)?this._months:this._months.standalone},cs.monthsShort=function(t,e){return t?n(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Ct.test(e)?"format":"standalone"][t.month()]:n(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},cs.monthsParse=function(t,e,s){var i,n,a;if(this._monthsParseExact)return Mt.call(this,t,e,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(n=h([2e3,i]),s&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),s||this._monthsParse[i]||(a="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[i]=new RegExp(a.replace(".",""),"i")),s&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(s&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!s&&this._monthsParse[i].test(t))return i}},cs.monthsRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||jt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=Pt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},cs.monthsShortRegex=function(t){return this._monthsParseExact?(d(this,"_monthsRegex")||jt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=Tt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},cs.week=function(t){return Nt(t,this._week.dow,this._week.doy).week},cs.firstDayOfYear=function(){return this._week.doy},cs.firstDayOfWeek=function(){return this._week.dow},cs.weekdays=function(t,e){var s=n(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?It(s,this._week.dow):t?s[t.day()]:s},cs.weekdaysMin=function(t){return!0===t?It(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},cs.weekdaysShort=function(t){return!0===t?It(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},cs.weekdaysParse=function(t,e,s){var i,n,a;if(this._weekdaysParseExact)return Vt.call(this,t,e,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(n=h([2e3,1]).day(i),s&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(a="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[i]=new RegExp(a.replace(".",""),"i")),s&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(s&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(s&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!s&&this._weekdaysParse[i].test(t))return i}},cs.weekdaysRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||qt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=$t),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},cs.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||qt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Gt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},cs.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||qt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=zt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},cs.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},cs.meridiem=function(t,e,s){return t>11?s?"pm":"PM":s?"am":"AM"},ne("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===k(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),i.lang=S("moment.lang is deprecated. Use moment.locale instead.",ne),i.langData=S("moment.langData is deprecated. Use moment.localeData instead.",re);var _s=Math.abs;function ps(t,e,s,i){var n=Ue(e,s);return t._milliseconds+=i*n._milliseconds,t._days+=i*n._days,t._months+=i*n._months,t._bubble()}function vs(t){return t<0?Math.floor(t):Math.ceil(t)}function gs(t){return 4800*t/146097}function ys(t){return 146097*t/4800}function bs(t){return function(){return this.as(t)}}var ws=bs("ms"),ks=bs("s"),xs=bs("m"),Cs=bs("h"),Ss=bs("d"),Ds=bs("w"),Ms=bs("M"),Os=bs("Q"),Ys=bs("y");function Ts(t){return function(){return this.isValid()?this._data[t]:NaN}}var Ps=Ts("milliseconds"),js=Ts("seconds"),As=Ts("minutes"),Ls=Ts("hours"),Es=Ts("days"),Rs=Ts("months"),Ns=Ts("years"),Hs=Math.round,Is={ss:44,s:45,m:45,h:22,d:26,M:11};function Us(t,e,s,i,n){return n.relativeTime(e||1,!!s,t,i)}var Ws=Math.abs;function Fs(t){return(t>0)-(t<0)||+t}function Vs(){if(!this.isValid())return this.localeData().invalidDate();var t,e,s=Ws(this._milliseconds)/1e3,i=Ws(this._days),n=Ws(this._months);t=w(s/60),e=w(t/60),s%=60,t%=60;var a=w(n/12),r=n%=12,o=i,l=e,u=t,d=s?s.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var h=c<0?"-":"",f=Fs(this._months)!==Fs(c)?"-":"",m=Fs(this._days)!==Fs(c)?"-":"",_=Fs(this._milliseconds)!==Fs(c)?"-":"";return h+"P"+(a?f+a+"Y":"")+(r?f+r+"M":"")+(o?m+o+"D":"")+(l||u||d?"T":"")+(l?_+l+"H":"")+(u?_+u+"M":"")+(d?_+d+"S":"")}var $s=Ye.prototype;return $s.isValid=function(){return this._isValid},$s.abs=function(){var t=this._data;return this._milliseconds=_s(this._milliseconds),this._days=_s(this._days),this._months=_s(this._months),t.milliseconds=_s(t.milliseconds),t.seconds=_s(t.seconds),t.minutes=_s(t.minutes),t.hours=_s(t.hours),t.months=_s(t.months),t.years=_s(t.years),this},$s.add=function(t,e){return ps(this,t,e,1)},$s.subtract=function(t,e){return ps(this,t,e,-1)},$s.as=function(t){if(!this.isValid())return NaN;var e,s,i=this._milliseconds;if("month"===(t=L(t))||"quarter"===t||"year"===t)switch(e=this._days+i/864e5,s=this._months+gs(e),t){case"month":return s;case"quarter":return s/3;case"year":return s/12}else switch(e=this._days+Math.round(ys(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}},$s.asMilliseconds=ws,$s.asSeconds=ks,$s.asMinutes=xs,$s.asHours=Cs,$s.asDays=Ss,$s.asWeeks=Ds,$s.asMonths=Ms,$s.asQuarters=Os,$s.asYears=Ys,$s.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},$s._bubble=function(){var t,e,s,i,n,a=this._milliseconds,r=this._days,o=this._months,l=this._data;return a>=0&&r>=0&&o>=0||a<=0&&r<=0&&o<=0||(a+=864e5*vs(ys(o)+r),r=0,o=0),l.milliseconds=a%1e3,t=w(a/1e3),l.seconds=t%60,e=w(t/60),l.minutes=e%60,s=w(e/60),l.hours=s%24,r+=w(s/24),n=w(gs(r)),o+=n,r-=vs(ys(n)),i=w(o/12),o%=12,l.days=r,l.months=o,l.years=i,this},$s.clone=function(){return Ue(this)},$s.get=function(t){return t=L(t),this.isValid()?this[t+"s"]():NaN},$s.milliseconds=Ps,$s.seconds=js,$s.minutes=As,$s.hours=Ls,$s.days=Es,$s.weeks=function(){return w(this.days()/7)},$s.months=Rs,$s.years=Ns,$s.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),s=function(t,e,s){var i=Ue(t).abs(),n=Hs(i.as("s")),a=Hs(i.as("m")),r=Hs(i.as("h")),o=Hs(i.as("d")),l=Hs(i.as("M")),u=Hs(i.as("y")),d=n<=Is.ss&&["s",n]||n<Is.s&&["ss",n]||a<=1&&["m"]||a<Is.m&&["mm",a]||r<=1&&["h"]||r<Is.h&&["hh",r]||o<=1&&["d"]||o<Is.d&&["dd",o]||l<=1&&["M"]||l<Is.M&&["MM",l]||u<=1&&["y"]||["yy",u];return d[2]=e,d[3]=+t>0,d[4]=s,Us.apply(null,d)}(this,!t,e);return t&&(s=e.pastFuture(+this,s)),e.postformat(s)},$s.toISOString=Vs,$s.toString=Vs,$s.toJSON=Vs,$s.locale=Ze,$s.localeData=Qe,$s.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Vs),$s.lang=Be,V("X",0,0,"unix"),V("x",0,0,"valueOf"),ut("x",nt),ut("X",/[+-]?\d+(\.\d{1,3})?/),ft("X",(function(t,e,s){s._d=new Date(1e3*parseFloat(t,10))})),ft("x",(function(t,e,s){s._d=new Date(k(t))})),i.version="2.24.0",e=Ce,i.fn=us,i.min=function(){var t=[].slice.call(arguments,0);return Me("isBefore",t)},i.max=function(){var t=[].slice.call(arguments,0);return Me("isAfter",t)},i.now=function(){return Date.now?Date.now():+new Date},i.utc=h,i.unix=function(t){return Ce(1e3*t)},i.months=function(t,e){return fs(t,e,"months")},i.isDate=l,i.locale=ne,i.invalid=_,i.duration=Ue,i.isMoment=b,i.weekdays=function(t,e,s){return ms(t,e,s,"weekdays")},i.parseZone=function(){return Ce.apply(null,arguments).parseZone()},i.localeData=re,i.isDuration=Te,i.monthsShort=function(t,e){return fs(t,e,"monthsShort")},i.weekdaysMin=function(t,e,s){return ms(t,e,s,"weekdaysMin")},i.defineLocale=ae,i.updateLocale=function(t,e){if(null!=e){var s,i,n=Kt;null!=(i=ie(t))&&(n=i._config),e=T(n,e),(s=new P(e)).parentLocale=te[t],te[t]=s,ne(t)}else null!=te[t]&&(null!=te[t].parentLocale?te[t]=te[t].parentLocale:null!=te[t]&&delete te[t]);return te[t]},i.locales=function(){return D(te)},i.weekdaysShort=function(t,e,s){return ms(t,e,s,"weekdaysShort")},i.normalizeUnits=L,i.relativeTimeRounding=function(t){return void 0===t?Hs:"function"==typeof t&&(Hs=t,!0)},i.relativeTimeThreshold=function(t,e){return void 0!==Is[t]&&(void 0===e?Is[t]:(Is[t]=e,"s"===t&&(Is.ss=e-1),!0))},i.calendarFormat=function(t,e){var s=t.diff(e,"days",!0);return s<-6?"sameElse":s<-1?"lastWeek":s<0?"lastDay":s<1?"sameDay":s<2?"nextDay":s<7?"nextWeek":"sameElse"},i.prototype=us,i.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},i}()}).call(this,s("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,e,s){"use strict";function i(t,e,s,i,n,a,r,o){var l,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=s,u._compiled=!0),i&&(u.functional=!0),a&&(u._scopeId="data-v-"+a),r?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),n&&n.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},u._ssrRegister=l):n&&(l=o?function(){n.call(this,this.$root.$options.shadowRoot)}:n),l)if(u.functional){u._injectStyles=l;var d=u.render;u.render=function(t,e){return l.call(e),d(t,e)}}else{var c=u.beforeCreate;u.beforeCreate=c?[].concat(c,l):[l]}return{exports:t,options:u}}s.d(e,"a",(function(){return i}))},"./node_modules/webpack/buildin/global.js":function(t,e){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(t){"object"==typeof window&&(s=window)}t.exports=s},"./node_modules/webpack/buildin/module.js":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./node_modules/xss/lib/default.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,a=s("./node_modules/xss/lib/util.js");function r(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var o=new i;function l(t){return t.replace(u,"&lt;").replace(d,"&gt;")}var u=/</g,d=/>/g,c=/"/g,h=/&quot;/g,f=/&#([a-zA-Z0-9]*);?/gim,m=/&colon;?/gim,_=/&newline;?/gim,p=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,v=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function y(t){return t.replace(c,"&quot;")}function b(t){return t.replace(h,'"')}function w(t){return t.replace(f,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function k(t){return t.replace(m,":").replace(_," ")}function x(t){for(var e="",s=0,i=t.length;s<i;s++)e+=t.charCodeAt(s)<32?" ":t.charAt(s);return a.trim(e)}function C(t){return t=x(t=k(t=w(t=b(t))))}function S(t){return t=l(t=y(t))}var D=/<!--[\s\S]*?-->/g;e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},e.getDefaultWhiteList=r,e.onTag=function(t,e,s){},e.onIgnoreTag=function(t,e,s){},e.onTagAttr=function(t,e,s){},e.onIgnoreTagAttr=function(t,e,s){},e.safeAttrValue=function(t,e,s,i){if(s=C(s),"href"===e||"src"===e){if("#"===(s=a.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===e){if(p.lastIndex=0,p.test(s))return""}else if("style"===e){if(v.lastIndex=0,v.test(s))return"";if(g.lastIndex=0,g.test(s)&&(p.lastIndex=0,p.test(s)))return"";!1!==i&&(s=(i=i||o).process(s))}return s=S(s)},e.escapeHtml=l,e.escapeQuote=y,e.unescapeQuote=b,e.escapeHtmlEntities=w,e.escapeDangerHtml5Entities=k,e.clearNonPrintableCharacter=x,e.friendlyAttrValue=C,e.escapeAttrValue=S,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var s=!Array.isArray(t),i=[],n=!1;return{onIgnoreTag:function(r,o,l){if(function(e){return!!s||-1!==a.indexOf(t,e)}(r)){if(l.isClosing){var u="[/removed]",d=l.position+u.length;return i.push([!1!==n?n:l.position,d]),n=!1,u}return n||(n=l.position),"[removed]"}return e(r,o,l)},remove:function(t){var e="",s=0;return a.forEach(i,(function(i){e+=t.slice(s,i[0]),s=i[1]})),e+=t.slice(s)}}},e.stripCommentTag=function(t){return t.replace(D,"")},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return 127!==e&&(!(e<=31)||(10===e||13===e))}))).join("")},e.cssFilter=o,e.getDefaultCSSWhiteList=n},"./node_modules/xss/lib/index.js":function(t,e,s){var i=s("./node_modules/xss/lib/default.js"),n=s("./node_modules/xss/lib/parser.js"),a=s("./node_modules/xss/lib/xss.js");function r(t,e){return new a(e).process(t)}for(var o in(e=t.exports=r).filterXSS=r,e.FilterXSS=a,i)e[o]=i[o];for(var o in n)e[o]=n[o];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,e,s){var i=s("./node_modules/xss/lib/util.js");function n(t){var e=i.spaceIndex(t);if(-1===e)var s=t.slice(1,-1);else s=t.slice(1,e+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function a(t){return"</"===t.slice(0,2)}var r=/[^a-zA-Z0-9_:\.\-]/gim;function o(t,e){for(;e<t.length;e++){var s=t[e];if(" "!==s)return"="===s?e:-1}}function l(t,e){for(;e>0;e--){var s=t[e];if(" "!==s)return"="===s?e:-1}}function u(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,s){var i="",r=0,o=!1,l=!1,u=0,d=t.length,c="",h="";for(u=0;u<d;u++){var f=t.charAt(u);if(!1===o){if("<"===f){o=u;continue}}else if(!1===l){if("<"===f){i+=s(t.slice(r,u)),o=u,r=u;continue}if(">"===f){i+=s(t.slice(r,o)),c=n(h=t.slice(o,u+1)),i+=e(o,i.length,c,h,a(h)),r=u+1,o=!1;continue}if(('"'===f||"'"===f)&&"="===t.charAt(u-1)){l=f;continue}}else if(f===l){l=!1;continue}}return r<t.length&&(i+=s(t.substr(r))),i},e.parseAttr=function(t,e){var s=0,n=[],a=!1,d=t.length;function c(t,s){if(!((t=(t=i.trim(t)).replace(r,"").toLowerCase()).length<1)){var a=e(t,s||"");a&&n.push(a)}}for(var h=0;h<d;h++){var f,m=t.charAt(h);if(!1!==a||"="!==m)if(!1===a||h!==s||'"'!==m&&"'"!==m||"="!==t.charAt(h-1))if(/\s|\n|\t/.test(m)){if(t=t.replace(/\s|\n|\t/g," "),!1===a){if(-1===(f=o(t,h))){c(i.trim(t.slice(s,h))),a=!1,s=h+1;continue}h=f-1;continue}if(-1===(f=l(t,h-1))){c(a,u(i.trim(t.slice(s,h)))),a=!1,s=h+1;continue}}else;else{if(-1===(f=t.indexOf(m,h+1)))break;c(a,i.trim(t.slice(s+1,f))),a=!1,s=(h=f)+1}else a=t.slice(s,h),s=h+1}return s<t.length&&(!1===a?c(t.slice(s)):c(a,u(i.trim(t.slice(s))))),i.trim(n.join(" "))}},"./node_modules/xss/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,n;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,n=t.length;i<n;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),r=a.parseTag,o=a.parseAttr,l=s("./node_modules/xss/lib/util.js");function u(t){return null==t}function d(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=n.onIgnoreTagStripAll),t.whiteList=t.whiteList||n.whiteList,t.onTag=t.onTag||n.onTag,t.onTagAttr=t.onTagAttr||n.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||n.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||n.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||n.safeAttrValue,t.escapeHtml=t.escapeHtml||n.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}d.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onTag,a=e.onIgnoreTag,d=e.onTagAttr,c=e.onIgnoreTagAttr,h=e.safeAttrValue,f=e.escapeHtml,m=this.cssFilter;e.stripBlankChar&&(t=n.stripBlankChar(t)),e.allowCommentTag||(t=n.stripCommentTag(t));var _=!1;if(e.stripIgnoreTagBody){_=n.StripTagBody(e.stripIgnoreTagBody,a);a=_.onIgnoreTag}var p=r(t,(function(t,e,n,r,_){var p,v={sourcePosition:t,position:e,isClosing:_,isWhite:s.hasOwnProperty(n)};if(!u(p=i(n,r,v)))return p;if(v.isWhite){if(v.isClosing)return"</"+n+">";var g=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var s="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return s&&(t=l.trim(t.slice(0,-1))),{html:t,closing:s}}(r),y=s[n],b=o(g.html,(function(t,e){var s,i=-1!==l.indexOf(y,t);return u(s=d(n,t,e,i))?i?(e=h(n,t,e,m))?t+'="'+e+'"':t:u(s=c(n,t,e,i))?void 0:s:s}));r="<"+n;return b&&(r+=" "+b),g.closing&&(r+=" /"),r+=">"}return u(p=a(n,r,v))?f(r):p}),f);return _&&(p=_.remove(p)),p},t.exports=d},"./src/audit.js":function(t,e,s){"use strict";s.r(e);var i=s("vue"),n=s.n(i),a=s("./src/helper/base_hepler.js"),r=s("./src/component/footer.vue"),o=s("./node_modules/lodash/chunk.js"),l=s.n(o),u=s("./src/component/pagination.vue"),d=s("./node_modules/moment/moment.js"),c={mixins:[a.a],name:"logs",data:function(){return{filter:{date_range:null,username:"",ip_address:"",events:[],event_all:!0,is_open:!1,date_from:null,date_to:null},event_types:auditData.filters.types,data:{logs:[],chunks:[],total_items:0,total_pages:0,paged:1},misc:auditData.misc,endpoints:auditData.endpoints,nonces:auditData.nonces,state:{on_saving:!1,is_fetching:!1}}},methods:{date_range:function(){},build_filter_url:function(t){},paging:function(t){this.data.paged=t},do_filter:function(){var t=this,e=this.data.logs.filter((function(e){return(""===t.filter.username||-1!==e.user.indexOf(t.filter.username))&&((null===t.filter.ip_address||-1!==e.ip.indexOf(t.filter.ip_address))&&(!1!==t.filter.event_all||-1!==t.filter.events.indexOf(e.event_type)))}));t.data.chunks=l()(e,40),t.data.total_items=e.length,t.data.total_pages=Math.ceil(t.data.total_items/40),t.data.paged=1},fetch_data:function(t){var e=this;this.state.is_fetching=!0;var s=JSON.parse(JSON.stringify(this.filter));delete s.is_open,delete s.event_all,delete s.date_range,this.httpGetRequest("loadData",s,(function(s){!0===s.success?(e.data.logs=Object.values(s.data.logs),e.data.total_items=s.data.total_items,e.data.total_pages=s.data.total_pages,e.data.chunks=l()(e.data.logs,40),e.data.paged=1,e.state.is_fetching=!1,void 0!==t&&t()):Defender.showNotification("error",s.message)}),!1)},format_time:function(t){return Array.isArray(t)?this.$options.filters.moment(new Date(1e3*t[1]),this.misc.date_format):this.$options.filters.moment(new Date(1e3*t),this.misc.date_format)}},computed:{get_logs:function(){var t=[];return this.data.chunks.length>0&&void 0!==this.data.chunks[this.data.paged-1]&&(t=this.data.chunks[this.data.paged-1]),t},get_count:function(){return this.vsprintf(this.__("%s results"),this.data.total_items)},next_icon:function(){return'<i class="sui-icon-chevron-right" aria-hidden="true"></i>'},prev_icon:function(){return'<i class="sui-icon-chevron-left" aria-hidden="true"></i>'},min_date:function(){return d().format()},max_date:function(){return d().subtract(30,"days").format()},get_export_url:function(){var t=ajaxurl+"?action="+this.endpoints.exportAsCvs+"&_wpnonce="+this.nonces.exportAsCvs;return t+="&date_from="+this.filter.date_from,t+="&date_to="+this.filter.date_to,this.filter.events.forEach((function(e){t+="&event_type[]="+e})),t+="&term="+this.filter.username,t+="&ip="+this.filter.ip_address}},watch:{"filter.date_range":function(t,e){null!==t&&null!==e&&t!==e&&this.fetch_data()}},components:{pagination:u.a},created:function(){var t=new URLSearchParams(window.location.search),e=null!==t.get("date_from")?t.get("date_from"):d().subtract(7,"day").format("MM/DD/YYYY"),s=null!==t.get("date_to")?t.get("date_to"):d().format("MM/DD/YYYY");this.filter.date_range=e+" - "+s,this.filter.date_from=e,this.filter.date_to=s;var i=this;this.fetch_data((function(){i.$parent.$emit("events_in_7_days",i.data.logs.length)}))},mounted:function(){var t=this;this.$nextTick((function(){jQuery("#date-range-picker").daterangepicker({autoApply:!0,maxDate:d().format("MM/DD/YYYY"),minDate:d().subtract(1,"year").format("MM/DD/YYYY"),locale:{format:"MM/DD/YYYY",separator:"-"},ranges:{Today:[d(),d()],"7 Days":[d().subtract(6,"days"),d()],"30 Days":[d().subtract(29,"days"),d()]},template:'<div class="daterangepicker wd-calendar"><div class="ranges"></div><div class="drp-calendar left"><div class="calendar-table"></div><div class="calendar-time"></div></div><div class="drp-calendar right"><div class="calendar-table"></div><div class="calendar-time"></div></div></div>',showCustomRangeLabel:!1,alwaysShowCalendars:!0}),jQuery("#date-range-picker").on("apply.daterangepicker",(function(e,s){t.filter.date_range=s.startDate.format("MM/DD/YYYY")+"-"+s.endDate.format("MM/DD/YYYY"),t.filter.date_from=s.startDate.format("MM/DD/YYYY"),t.filter.date_to=s.endDate.format("MM/DD/YYYY")}))}))}},h=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),f=Object(h.a)(c,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t"+t._s(t.__("Event Logs"))+"\n\t\t")]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.get_export_url}},[s("i",{staticClass:"sui-icon-upload-cloud",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t"+t._s(t.__("Export CSV"))+"\n\t\t\t")])])]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t"+t._s(t.__("Here are your latest event logs showing what's been happening behind the scenes."))+"\n\t\t")]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-5"},[s("div",{staticClass:"inline-form"},[s("label",[t._v(t._s(t.__("Date range")))]),t._v(" "),s("div",{staticClass:"sui-date"},[s("i",{staticClass:"sui-icon-calendar",attrs:{"aria-hidden":"true"}}),t._v(" "),s("input",{staticClass:"sui-form-control",attrs:{id:"date-range-picker",name:"date_from",type:"text"},domProps:{value:t.filter.date_range}})])])]),t._v(" "),s("div",{staticClass:"sui-col-md-7"},[s("div",{staticClass:"sui-pagination-wrap"},[s("span",{staticClass:"sui-pagination-results",domProps:{textContent:t._s(t.get_count)}}),t._v(" "),t.data.total_items>0?s("pagination",{attrs:{"page-count":t.data.total_pages,"click-handler":t.paging,"prev-text":t.prev_icon,"next-text":t.next_icon,value:t.data.paged,"container-class":"sui-pagination"}}):t._e(),t._v(" "),s("button",{staticClass:"sui-button-icon sui-button-outlined sui-tooltip",attrs:{"data-tooltip":"Filter"},on:{click:function(e){t.filter.is_open=!t.filter.is_open}}},[s("i",{staticClass:"sui-icon-filter",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Open search filter")])])],1)])]),t._v(" "),s("div",{staticClass:"sui-pagination-filter",class:{"sui-open":t.filter.is_open}},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-4"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Username")))]),t._v(" "),s("div",{staticClass:"sui-control-with-icon sui-right-icon"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.username,expression:"filter.username"}],staticClass:"sui-form-control",attrs:{type:"text"},domProps:{value:t.filter.username},on:{input:function(e){e.target.composing||t.$set(t.filter,"username",e.target.value)}}}),t._v(" "),s("i",{staticClass:"sui-icon-magnifying-glass-search",attrs:{"aria-hidden":"true"}})])])]),t._v(" "),s("div",{staticClass:"sui-col-md-3"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("IP Address")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.ip_address,expression:"filter.ip_address"}],staticClass:"sui-form-control",attrs:{type:"text","data-name":"ip",placeholder:"E.g. 192.168.1.1"},domProps:{value:t.filter.ip_address},on:{input:function(e){e.target.composing||t.$set(t.filter,"ip_address",e.target.value)}}})])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:!0===t.filter.event_all},attrs:{for:"event_filter_all"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.event_all,expression:"filter.event_all"}],attrs:{type:"radio",id:"event_filter_all","data-tab-menu":""},domProps:{value:!0,checked:t._q(t.filter.event_all,!0)},on:{change:function(e){return t.$set(t.filter,"event_all",!0)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("All"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:!1===t.filter.event_all},attrs:{for:"event_filter"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.event_all,expression:"filter.event_all"}],attrs:{type:"radio","data-tab-menu":"events-box",id:"event_filter"},domProps:{value:!1,checked:t._q(t.filter.event_all,!1)},on:{change:function(e){return t.$set(t.filter,"event_all",!1)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Specific"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:!1===t.filter.event_all},attrs:{id:"events-box","data-tab-content":"events-box"}},[s("div",{staticClass:"sui-row"},t._l(t.event_types,(function(e){return s("label",{staticClass:"sui-checkbox",attrs:{for:"chk_"+e}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.events,expression:"filter.events"}],staticClass:"filterable",attrs:{id:"chk_"+e,type:"checkbox"},domProps:{value:e,checked:Array.isArray(t.filter.events)?t._i(t.filter.events,e)>-1:t.filter.events},on:{change:function(s){var i=t.filter.events,n=s.target,a=!!n.checked;if(Array.isArray(i)){var r=e,o=t._i(i,r);n.checked?o<0&&t.$set(t.filter,"events",i.concat([r])):o>-1&&t.$set(t.filter,"events",i.slice(0,o).concat(i.slice(o+1)))}else t.$set(t.filter,"events",a)}}}),t._v(" "),s("span",{attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",[t._v(t._s(e))])])})),0)])])])])])]),t._v(" "),s("hr"),t._v(" "),s("div",{staticClass:"float-r"},[s("button",{staticClass:"sui-button sui-button-blue",attrs:{type:"submit"},on:{click:t.do_filter}},[t._v("\n\t\t\t\t\t"+t._s(t.__("Apply"))+"\n\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"clear"})])]),t._v(" "),s("div",{staticClass:"sui-accordion sui-accordion-flushed no-border-top"},[s("div",{staticClass:"sui-accordion-header"},[s("div",[t._v(t._s(t.__("Event summary")))]),t._v(" "),s("div",[t._v(t._s(t.__("Date")))]),t._v(" "),s("div")]),t._v(" "),t._l(t.get_logs,(function(e){return s("div",{staticClass:"sui-accordion-item sui-default"},[s("div",{staticClass:"sui-accordion-item-header"},[s("div",{staticClass:"sui-accordion-item-title",domProps:{textContent:t._s(t.xss(e.msg))}}),t._v(" "),s("div",{domProps:{innerHTML:t._s(t.format_time(e.timestamp))}}),t._v(" "),t._m(0,!0)]),t._v(" "),s("div",{staticClass:"sui-accordion-item-body"},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-body"},[s("strong",[t._v(t._s(t.__("Description")))]),t._v(" "),s("p",{domProps:{textContent:t._s(e.msg)}}),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Context")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.context)},domProps:{textContent:t._s(t.xss(e.context))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Type")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.event_type)},domProps:{textContent:t._s(t.xss(e.event_type))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Ip Address")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.ip)},domProps:{textContent:t._s(t.xss(e.ip))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("User")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.user)},domProps:{textContent:t._s(t.xss(e.user))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Date / Time")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.timestamp)}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t._f("moment")(new Date(1e3*e.timestamp),t.misc.date_format))+"\n\t\t\t\t\t\t\t\t")])])])])])])])}))],2),t._v(" "),0===t.data.chunks.length?s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-notice"},[!0===t.state.is_fetching?s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Loading events..."))+"\n\t\t\t\t")]):s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("There have been no events logged in the selected time period."))+"\n\t\t\t\t")])])])]):t._e(),t._v(" "),s("div",{staticClass:"sui-center-box"},[s("div",{staticClass:"sui-pagination-wrap"},[t.data.total_items>0?s("pagination",{attrs:{"page-count":t.data.total_pages,"click-handler":t.paging,"prev-text":t.prev_icon,"next-text":t.next_icon,value:t.data.paged,"container-class":"sui-pagination"}}):t._e()],1)]),t._v(" "),t.state.is_fetching?s("overlay"):t._e()],1)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("button",{staticClass:"sui-button-icon sui-accordion-open-indicator",attrs:{"aria-label":"Open item"}},[e("i",{staticClass:"sui-icon-chevron-down",attrs:{"aria-hidden":"true"}})])])}],!1,null,null,null).exports,m={mixins:[a.a],name:"settings",data:function(){return{model:auditData.model.settings,state:{on_saving:!1},nonces:auditData.nonces,endpoints:auditData.endpoints}},methods:{toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"enabled",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.$parent.$emit("enable_state",t)}))},updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})}},mounted:function(){var t=this;jQuery("#storage_days").change((function(){t.model.storage_days=jQuery(this).val()}))}},_=Object(h.a)(m,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box audit-settings"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Settings"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Storage")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Events are stored in our API. You can choose how many days to keep logs for before they are removed."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.storage_days,expression:"model.storage_days"}],attrs:{name:"storage_days",id:"storage_days"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"storage_days",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"24 hours"}},[t._v(t._s(t.__("24 hours")))]),t._v(" "),s("option",{attrs:{value:"7 days"}},[t._v(t._s(t.__("7 days")))]),t._v(" "),s("option",{attrs:{value:"30 days"}},[t._v(t._s(t.__("30 days")))]),t._v(" "),s("option",{attrs:{value:"3 months"}},[t._v(t._s(t.__("3 months")))]),t._v(" "),s("option",{attrs:{value:"6 months"}},[t._v(t._s(t.__("6 months")))]),t._v(" "),s("option",{attrs:{value:"12 months"}},[t._v(t._s(t.__("12 months")))])]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose how long you'd like to store your event logs locally before wiping the oldest."))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If you no longer want to use this feature you can turn it off at any time."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1)}}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])])}),[],!1,null,null,null).exports,p=s("./src/component/recipients.vue"),v={mixins:[a.a],name:"report",data:function(){return{model:auditData.model.report,misc:auditData.misc,nonces:auditData.nonces,endpoints:auditData.endpoints,state:{on_saving:!1,show_day:!0}}},components:{recipients:p.a},methods:{updateRecipients:function(t){this.model.receipts=t},updateSettings:function(){var t=this.model,e=this;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)},(function(t){e.$parent.$emit("update_report_time",t.data.summary)}))}},mounted:function(){var t=this;jQuery(".report-select").change((function(){var e=jQuery(this).attr("name");t.model[e]=jQuery(this).val()})),this.model.day=this.model.day.toLowerCase()},watch:{"model.frequency":function(){this.state.show_day=this.model.frequency>1}},created:function(){this.state.show_day=this.model.frequency>1},computed:{timezone_text:function(){return this.vsprintf(this.__("Your timezone is set to UTC %s, so your current time is %s."),this.misc.tz,this.misc.current_time)}}},g=Object(h.a)(v,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Notification"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Scheduled Reports"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Schedule Defender to automatically email you a summary of all your website events."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.notification,expression:"model.notification"}],attrs:{type:"checkbox",name:"notification",id:"toggle_notification"},domProps:{checked:Array.isArray(t.model.notification)?t._i(t.model.notification,null)>-1:t.model.notification},on:{change:function(e){var s=t.model.notification,i=e.target,n=!!i.checked;if(Array.isArray(s)){var a=t._i(s,null);i.checked?a<0&&t.$set(t.model,"notification",s.concat([null])):a>-1&&t.$set(t.model,"notification",s.slice(0,a).concat(s.slice(a+1)))}else t.$set(t.model,"notification",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"toggle_notification"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Send regular email report"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame sui-toggle-content"},[s("div",{staticClass:"margin-top-30"},[s("recipients",{attrs:{id:"report_dialog",recipients:t.model.receipts},on:{"update:recipients":t.updateRecipients}})],1),t._v(" "),s("div",{staticClass:"sui-form-field margin-top-30 schedule-box"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Frequency"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.frequency,expression:"model.frequency"}],staticClass:"report-select",attrs:{name:"frequency"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"frequency",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"1"}},[t._v(t._s(t.__("Daily")))]),t._v(" "),s("option",{attrs:{value:"7"}},[t._v(t._s(t.__("Weekly")))]),t._v(" "),s("option",{attrs:{value:"30"}},[t._v(t._s(t.__("Monthly")))])])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:t.state.show_day,expression:"state.show_day"}],staticClass:"sui-col days-container"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Day of the week")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.day,expression:"model.day"}],staticClass:"report-select",attrs:{name:"day"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"day",e.target.multiple?s:s[0])}}},t._l(t.misc.days_of_week,(function(e){return s("option",{domProps:{value:e.toLowerCase()}},[t._v(t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t")])})),0)]),t._v(" "),s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Time of day")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.time,expression:"model.time"}],staticClass:"report-select",attrs:{name:"time"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"time",e.target.multiple?s:s[0])}}},t._l(t.misc.times_of_day,(function(e,i){return s("option",{domProps:{value:i}},[t._v(t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t")])})),0)]),t._v(" "),s("div",{staticClass:"sui-col-md-12"},[s("span",{staticClass:"sui-p-small",domProps:{innerHTML:t._s(t.timezone_text)}})])])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue save-changes",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])])}),[],!1,null,null,null).exports,y={mixins:[a.a],name:"audit",data:function(){return{view:"",summary:{report_time:auditData.summary.report_time,events_in_7_days:"-"},enabled:auditData.enabled,state:{on_saving:!1},nonces:auditData.nonces,endpoints:auditData.endpoints}},components:{"app-footer":r.a,logs:f,settings:_,report:g},methods:{updateSummary:function(t){this.summary.events_in_7_days=t},toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"enabled",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.enabled=t,s.$nextTick((function(){s.rebindSUI()}))}))}},created:function(){var t=new URLSearchParams(window.location.search).get("view");null===t&&(t="logs"),this.view=t,this.$on("events_in_7_days",(function(t){this.summary.events_in_7_days=t})),this.$on("update_report_time",(function(t){this.summary.report_time=t.report_time})),this.$on("enable_state",(function(t){this.enabled=t}))},watch:{view:function(t,e){history.replaceState({},null,this.adminUrl()+"admin.php?page=wdf-logging&view="+this.view)}},mounted:function(){self=this,jQuery(".sui-mobile-nav").change((function(){self.view=jQuery(this).val()}))}},b=Object(h.a)(y,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:t.maybeHighContrast()},[t.enabled?s("div",{staticClass:"auditing"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#audit-logging"}})],1),t._v(" "),s("summary-box",{attrs:{"css-class":"sui-summary-sm"}},[s("div",{staticClass:"sui-summary-segment"},[s("div",{staticClass:"sui-summary-details"},[s("span",{staticClass:"sui-summary-large",domProps:{textContent:t._s(t.summary.events_in_7_days)}}),t._v(" "),s("span",{staticClass:"sui-summary-sub"},[t._v("\n "+t._s(t.__("Events logged in the past 7 days"))+"\n ")])])]),t._v(" "),s("div",{staticClass:"sui-summary-segment"},[s("ul",{staticClass:"sui-list"},[s("li",[s("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Reporting")))]),t._v(" "),s("span",{staticClass:"sui-list-detail",domProps:{textContent:t._s(t.summary.report_time)}})])])])]),t._v(" "),s("div",{staticClass:"sui-row-with-sidenav"},[s("div",{staticClass:"sui-sidenav"},[s("ul",{staticClass:"sui-vertical-tabs sui-sidenav-hide-md"},[s("li",{staticClass:"sui-vertical-tab",class:{current:"logs"===t.view},attrs:{id:"tab_log"}},[s("a",{attrs:{href:t.adminUrl("admin.php?page=wdf-logging")},on:{click:function(e){e.preventDefault(),t.view="logs"}}},[t._v(t._s(t.__("Event Logs")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"settings"===t.view},attrs:{id:"tab_settings"}},[s("a",{attrs:{href:t.adminUrl("admin.php?page=wdf-logging&view=settings")},on:{click:function(e){e.preventDefault(),t.view="settings"}}},[t._v(t._s(t.__("Settings")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"report"===t.view},attrs:{id:"tab_report"}},[s("a",{attrs:{href:t.adminUrl("admin.php?page=wdf-logging&view=report")},on:{click:function(e){e.preventDefault(),t.view="report"}}},[t._v(t._s(t.__("Reports")))])])]),t._v(" "),s("div",{staticClass:"sui-sidenav-hide-lg"},[s("select",{staticClass:"sui-mobile-nav",staticStyle:{display:"none"}},[s("option",{attrs:{value:"logs"}},[t._v(t._s(t.__("Event Logs")))]),t._v(" "),s("option",{attrs:{value:"settings"}},[t._v(t._s(t.__("Settings")))]),t._v(" "),s("option",{attrs:{value:"report"}},[t._v(t._s(t.__("Reports")))])])])]),t._v(" "),s("logs",{directives:[{name:"show",rawName:"v-show",value:"logs"===t.view,expression:"view==='logs'"}]}),t._v(" "),s("settings",{directives:[{name:"show",rawName:"v-show",value:"settings"===t.view,expression:"view==='settings'"}]}),t._v(" "),s("report",{directives:[{name:"show",rawName:"v-show",value:"report"===t.view,expression:"view==='report'"}]})],1),t._v(" "),s("app-footer")],1):s("div",{staticClass:"auditing"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#audit-logging"}})],1)]),t._v(" "),s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-message"},[!1===t.maybeHideBranding()?s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/audit-disabled-man.svg"),"aria-hidden":"true"}}):t._e(),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n "+t._s(t.__("Track and log each and every event when changes are made to your website and getdetailed reports on what's going on behind the scenes, including any hacking attempts onyour site."))+"\n ")]),t._v(" "),s("submit-button",{attrs:{type:"button","css-class":"sui-button-blue activate",state:t.state},on:{click:function(e){return t.toggle(!0)}}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1)])])])])}),[],!1,null,null,null).exports,w={mixins:[a.a],name:"audit-free"},k=Object(h.a)(w,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:t.maybeHighContrast},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-message"},[s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/audit-disabled-man.svg")}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n "+t._s(t.__("Track and log each and every event when changes are made to your website and get detailed reports on what's going on behind the scenes, including any hacking attempts on your site. This is a pro feature that requires an active WPMU DEV membership. Try it free today!"))+"\n ")]),t._v(" "),s("a",{staticClass:"sui-button sui-button-purple",attrs:{href:t.campaign_url("defender_auditlogging_upgrade_button"),target:"_blank"}},[t._v("Upgrade to Pro")])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[this._v("Pro")])])}],!1,null,null,null).exports,x=s("./src/component/overlay.vue"),C=s("./src/component/submit-button.vue"),S=s("./src/component/doc-link.vue"),D=s("./src/component/summary-box.vue");n.a.filter("moment",(function(t,e){return t?d(t).format(e):d().format(e)})),n.a.component("overlay",x.a),n.a.component("submit-button",C.a),n.a.component("app-footer",r.a),n.a.component("doc-link",S.a),n.a.component("summary-box",D.a);new n.a({el:"#defender",components:{audit:b,audit_free:k},render:function(t){return 0===parseInt(defender.is_free)?t(b):t(k)}})},"./src/component/doc-link.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return!1===this.whitelabel.hide_doc_link?e("div",{staticClass:"sui-actions-right"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[e("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);e.a=a.exports},"./src/component/footer.vue":function(t,e,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[!0===t.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[t._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?s("div",[t.is_free?s("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);e.a=a.exports},"./src/component/overlay.vue":function(t,e,s){"use strict";var i={name:"overlay"},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement;this._self._c;return this._m(0)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"wd-overlay"},[e("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);e.a=a.exports},"./src/component/pagination.vue":function(t,e,s){"use strict";var i={props:{value:{type:Number},pageCount:{type:Number,required:!0},forcePage:{type:Number},clickHandler:{type:Function,default:function(){}},pageRange:{type:Number,default:3},marginPages:{type:Number,default:1},prevText:{type:String,default:"Prev"},nextText:{type:String,default:"Next"},breakViewText:{type:String,default:"…"},containerClass:{type:String},pageClass:{type:String},pageLinkClass:{type:String},prevClass:{type:String},prevLinkClass:{type:String},nextClass:{type:String},nextLinkClass:{type:String},breakViewClass:{type:String},breakViewLinkClass:{type:String},activeClass:{type:String,default:"active"},disabledClass:{type:String,default:"disabled"},noLiSurround:{type:Boolean,default:!1},firstLastButton:{type:Boolean,default:!1},firstButtonText:{type:String,default:"First"},lastButtonText:{type:String,default:"Last"},hidePrevNext:{type:Boolean,default:!1}},beforeUpdate:function(){void 0!==this.forcePage&&this.forcePage!==this.selected&&(this.selected=this.forcePage)},computed:{selected:{get:function(){return this.value||this.innerValue},set:function(t){this.innerValue=t}},pages:function(){var t=this,e={};if(this.pageCount<=this.pageRange)for(var s=0;s<this.pageCount;s++){var i={index:s,content:s+1,selected:s===this.selected-1};e[s]=i}else{for(var n=Math.floor(this.pageRange/2),a=function(s){var i={index:s,content:s+1,selected:s===t.selected-1};e[s]=i},r=function(t){e[t]={disabled:!0,breakView:!0}},o=0;o<this.marginPages;o++)a(o);var l=0;this.selected-n>0&&(l=this.selected-1-n);var u=l+this.pageRange-1;u>=this.pageCount&&(l=(u=this.pageCount-1)-this.pageRange+1);for(var d=l;d<=u&&d<=this.pageCount-1;d++)a(d);l>this.marginPages&&r(l-1),u+1<this.pageCount-this.marginPages&&r(u+1);for(var c=this.pageCount-1;c>=this.pageCount-this.marginPages;c--)a(c)}return e}},data:function(){return{innerValue:1}},methods:{handlePageSelected:function(t){this.selected!==t&&(this.innerValue=t,this.$emit("input",t),this.clickHandler(t))},prevPage:function(){this.selected<=1||this.handlePageSelected(this.selected-1)},nextPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.selected+1)},firstPageSelected:function(){return 1===this.selected},lastPageSelected:function(){return this.selected===this.pageCount||0===this.pageCount},selectFirstPage:function(){this.selected<=1||this.handlePageSelected(1)},selectLastPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.pageCount)}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.noLiSurround?s("div",{class:t.containerClass},[t.firstLastButton?s("a",{class:[t.pageLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}}):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.prevLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}}),t._v(" "),t._l(t.pages,(function(e){return[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass,e.disabled?t.disabledClass:""],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:"",t.disabledClass],attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:""],attrs:{tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])]})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.nextLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}}),t._v(" "),t.firstLastButton?s("a",{class:[t.pageLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}}):t._e()],2):s("ul",{class:t.containerClass},[t.firstLastButton?s("li",{class:[t.pageClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}})]):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.prevClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.prevLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}})]),t._v(" "),t._l(t.pages,(function(e){return s("li",{class:[t.pageClass,e.selected?t.activeClass:"",e.disabled?t.disabledClass:"",e.breakView?t.breakViewClass:""]},[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:t.pageLinkClass,attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:t.pageLinkClass,attrs:{disabled:e.selected,tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])])})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.nextClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.nextLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}})]),t._v(" "),t.firstLastButton?s("li",{class:[t.pageClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}})]):t._e()],2)}),[],!1,null,null,null);e.a=a.exports},"./src/component/recipients.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["recipients","id"],data:function(){return{first_name:"",email:"",observers:[],can_add:!1,saving_warning:!1,validate:{email:""}}},created:function(){this.observers=this.recipients},watch:{email:function(){if(this.validateEmail(this.email)){var t=!0,e=this;this.observers.forEach((function(s,i){if(s.email===e.email)return t=!1,void(e.validate.email=e.__("This email address is already in use"))})),this.can_add=t,!0===t&&(this.validate.email="")}else this.can_add=!1,this.validate.email=this.__("Invalid email address")},observers:function(){0===this.observers.length?this.saving_warning=!0:this.saving_warning=!1,void 0!==this.event&&this.$emit("update:recipients",this.observers)}},methods:{addRecipient:function(){this.observers.push({first_name:this.first_name,email:this.email}),jQuery.each(SUI.dialogs,(function(t,e){e.hide()})),this.first_name="",this.email=""},removeRecipient:function(t){this.observers.splice(t,1)},validateEmail:function(t){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(t).toLowerCase())}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("div",{directives:[{name:"show",rawName:"v-show",value:t.saving_warning,expression:"saving_warning"}],staticClass:"sui-notice sui-notice-warning"},[s("p",[t._v("\n\t\t\t"+t._s(t.__("You've removed all recipients. If you save without a recipient, we'll automatically turn of reports"))+"\n\t\t")])]),t._v(" "),s("div",{staticClass:"sui-recipients"},[t._l(t.observers,(function(e,i){return s("div",{staticClass:"sui-recipient"},[s("span",{staticClass:"sui-recipient-name"},[t._v(t._s(e.first_name))]),t._v(" "),s("span",{staticClass:"sui-recipient-email"},[t._v(t._s(e.email))]),t._v(" "),s("button",{staticClass:"sui-button-icon",attrs:{type:"button"},on:{click:function(e){return t.removeRecipient(i)}}},[s("i",{staticClass:"sui-icon-trash",attrs:{"aria-hidden":"true"}})])])})),t._v(" "),s("button",{staticClass:"sui-button sui-button-ghost add-recipient",attrs:{"data-a11y-dialog-show":t.id,type:"button"}},[s("i",{staticClass:"sui-icon-plus",attrs:{"aria-hidden":"true"}}),t._v(" "+t._s(t.__("Add Recipient"))+"\n\t\t")])],2),t._v(" "),s("div",{staticClass:"sui-dialog sui-dialog-sm",attrs:{"aria-hidden":"true",tabindex:"-1",id:t.id}},[s("div",{staticClass:"sui-dialog-overlay"}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"dialogTitle","aria-describedby":"dialogDescription",role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add Recipient"))+"\n\t\t\t\t\t")]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add as many recipients as you like, they will receive email reports as per the schedule you set."))+"\n\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("First name")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.first_name,expression:"first_name"}],staticClass:"sui-form-control recipient_name",attrs:{type:"text"},domProps:{value:t.first_name},on:{input:function(e){e.target.composing||(t.first_name=e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-form-field",class:{"sui-form-field-error":t.validate.email.length>0}},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Email")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.email,expression:"email"}],staticClass:"sui-form-control recipient_email",attrs:{type:"text"},domProps:{value:t.email},on:{input:function(e){e.target.composing||(t.email=e.target.value)}}}),t._v(" "),s("span",{directives:[{name:"show",rawName:"v-show",value:t.validate.email.length>0,expression:"validate.email.length > 0"}],staticClass:"sui-error-message",domProps:{textContent:t._s(this.validate.email)}})])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("button",{staticClass:"sui-button sui-button-ghost",attrs:{type:"button","data-a11y-dialog-hide":"recipient-dialog"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Cancel"))+"\n\t\t\t\t\t")]),t._v(" "),s("button",{staticClass:"sui-modal-close sui-button recipient_save",attrs:{type:"button",disabled:!1===t.can_add},on:{click:t.addRecipient}},[t._v(t._s(t.__("Add"))+"\n\t\t\t\t\t")])])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-right"},[e("button",{staticClass:"sui-dialog-close",attrs:{type:"button","data-a11y-dialog-hide":"","aria-label":"Close this dialog window"}})])}],!1,null,null,null);e.a=a.exports},"./src/component/submit-button.vue":function(t,e,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(e){return t.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);e.a=a.exports},"./src/component/summary-box.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[e("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},"./src/helper/base_hepler.js":function(t,e,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var s=[],i=!0,n=!1,a=void 0;try{for(var r,o=t[Symbol.iterator]();!(i=(r=o.next()).done)&&(s.push(r.value),!e||s.length!==e);i=!0);}catch(t){n=!0,a=t}finally{try{!i&&o.return&&o.return()}finally{if(n)throw a}}return s}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=wp.i18n,r={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,e,s,n){return"a"===t&&"href"===e&&"%s"===s?"%s":Object(i.safeAttrValue)(t,e,s,n)}},o=new i.FilterXSS(r),l=[];e.a={methods:{__:function(t){var e=a.__(t,"wpdef");return o.process(e)},xss:function(t){return o.process(t)},vsprintf:function(t){return a.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,e,s,i,n){var a=this;void 0===n&&(this.state.on_saving=!0);var r=ajaxurl+"?action="+this.endpoints[e]+"&_wpnonce="+this.nonces[e],o=jQuery.ajax({url:r,method:t,data:s,success:function(t){var e=t.data;a.state.on_saving=!1,void 0!==e&&void 0!==e.message&&(t.success?Defender.showNotification("success",e.message):Defender.showNotification("error",e.message)),void 0!==i&&i(t)}});l.push(o)},httpGetRequest:function(t,e,s,i){this.httpRequest("get",t,e,s,i)},httpPostRequest:function(t,e,s,i){this.httpRequest("post",t,e,s,i)},abortAllRequests:function(){for(var t=0;t<l.length;t++)l[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,e){var s=e.split("="),i=n(s,2),a=i[0],r=i[1];return t[a]=r?decodeURIComponent(r.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,e){t.exports=Vue}});
1
+ !function(t){var e=window.webpackHotUpdate;window.webpackHotUpdate=function(t,s){!function(t,e){if(!b[t]||!y[t])return;for(var s in y[t]=!1,e)Object.prototype.hasOwnProperty.call(e,s)&&(m[s]=e[s]);0==--p&&0===v&&C()}(t,s),e&&e(t,s)};var s,i=!0,n="1f0325ef5048e0254986",a={},r=[],o=[];function l(t){var e=D[t];if(!e)return M;var i=function(i){return e.hot.active?(D[i]?-1===D[i].parents.indexOf(t)&&D[i].parents.push(t):(r=[t],s=i),-1===e.children.indexOf(i)&&e.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),r=[]),M(i)},n=function(t){return{configurable:!0,enumerable:!0,get:function(){return M[t]},set:function(e){M[t]=e}}};for(var a in M)Object.prototype.hasOwnProperty.call(M,a)&&"e"!==a&&"t"!==a&&Object.defineProperty(i,a,n(a));return i.e=function(t){return"ready"===c&&h("prepare"),v++,M.e(t).then(e,(function(t){throw e(),t}));function e(){v--,"prepare"===c&&(g[t]||x(t),0===v&&0===p&&C())}},i.t=function(t,e){return 1&e&&(t=i(t)),M.t(t,-2&e)},i}function u(t){var e={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(t,s){if(void 0===t)e._selfAccepted=!0;else if("function"==typeof t)e._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)e._acceptedDependencies[t[i]]=s||function(){};else e._acceptedDependencies[t]=s||function(){}},decline:function(t){if(void 0===t)e._selfDeclined=!0;else if("object"==typeof t)for(var s=0;s<t.length;s++)e._declinedDependencies[t[s]]=!0;else e._declinedDependencies[t]=!0},dispose:function(t){e._disposeHandlers.push(t)},addDisposeHandler:function(t){e._disposeHandlers.push(t)},removeDisposeHandler:function(t){var s=e._disposeHandlers.indexOf(t);s>=0&&e._disposeHandlers.splice(s,1)},check:k,apply:S,status:function(t){if(!t)return c;d.push(t)},addStatusHandler:function(t){d.push(t)},removeStatusHandler:function(t){var e=d.indexOf(t);e>=0&&d.splice(e,1)},data:a[t]};return s=void 0,e}var d=[],c="idle";function h(t){c=t;for(var e=0;e<d.length;e++)d[e].call(null,t)}var f,m,_,p=0,v=0,g={},y={},b={};function w(t){return+t+""===t?+t:t}function k(t){if("idle"!==c)throw new Error("check() is only allowed in idle status");return i=t,h("check"),(e=1e4,e=e||1e4,new Promise((function(t,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,a=M.p+""+n+".hot-update.json";i.open("GET",a,!0),i.timeout=e,i.send(null)}catch(t){return s(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+a+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+a+" failed."));else{try{var e=JSON.parse(i.responseText)}catch(t){return void s(t)}t(e)}}}))).then((function(t){if(!t)return h("idle"),null;y={},g={},b=t.c,_=t.h,h("prepare");var e=new Promise((function(t,e){f={resolve:t,reject:e}}));m={};return x(1),"prepare"===c&&0===v&&0===p&&C(),e}));var e}function x(t){b[t]?(y[t]=!0,p++,function(t){var e=document.createElement("script");e.charset="utf-8",e.src=M.p+""+t+"."+n+".hot-update.js",document.head.appendChild(e)}(t)):g[t]=!0}function C(){h("ready");var t=f;if(f=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}));else{var e=[];for(var s in m)Object.prototype.hasOwnProperty.call(m,s)&&e.push(w(s));t.resolve(e)}}function S(e){if("ready"!==c)throw new Error("apply() is only allowed in ready status");var s,i,o,l,u;function d(t){for(var e=[t],s={},i=e.map((function(t){return{chain:[t],id:t}}));i.length>0;){var n=i.pop(),a=n.id,r=n.chain;if((l=D[a])&&!l.hot._selfAccepted){if(l.hot._selfDeclined)return{type:"self-declined",chain:r,moduleId:a};if(l.hot._main)return{type:"unaccepted",chain:r,moduleId:a};for(var o=0;o<l.parents.length;o++){var u=l.parents[o],d=D[u];if(d){if(d.hot._declinedDependencies[a])return{type:"declined",chain:r.concat([u]),moduleId:a,parentId:u};-1===e.indexOf(u)&&(d.hot._acceptedDependencies[a]?(s[u]||(s[u]=[]),f(s[u],[a])):(delete s[u],e.push(u),i.push({chain:r.concat([u]),id:u})))}}}}return{type:"accepted",moduleId:t,outdatedModules:e,outdatedDependencies:s}}function f(t,e){for(var s=0;s<e.length;s++){var i=e[s];-1===t.indexOf(i)&&t.push(i)}}e=e||{};var p={},v=[],g={},y=function(){console.warn("[HMR] unexpected require("+x.moduleId+") to disposed module")};for(var k in m)if(Object.prototype.hasOwnProperty.call(m,k)){var x;u=w(k);var C=!1,S=!1,O=!1,Y="";switch((x=m[k]?d(u):{type:"disposed",moduleId:k}).chain&&(Y="\nUpdate propagation: "+x.chain.join(" -> ")),x.type){case"self-declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(C=new Error("Aborted because of self decline: "+x.moduleId+Y));break;case"declined":e.onDeclined&&e.onDeclined(x),e.ignoreDeclined||(C=new Error("Aborted because of declined dependency: "+x.moduleId+" in "+x.parentId+Y));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(x),e.ignoreUnaccepted||(C=new Error("Aborted because "+u+" is not accepted"+Y));break;case"accepted":e.onAccepted&&e.onAccepted(x),S=!0;break;case"disposed":e.onDisposed&&e.onDisposed(x),O=!0;break;default:throw new Error("Unexception type "+x.type)}if(C)return h("abort"),Promise.reject(C);if(S)for(u in g[u]=m[u],f(v,x.outdatedModules),x.outdatedDependencies)Object.prototype.hasOwnProperty.call(x.outdatedDependencies,u)&&(p[u]||(p[u]=[]),f(p[u],x.outdatedDependencies[u]));O&&(f(v,[x.moduleId]),g[u]=y)}var T,P=[];for(i=0;i<v.length;i++)u=v[i],D[u]&&D[u].hot._selfAccepted&&g[u]!==y&&P.push({module:u,errorHandler:D[u].hot._selfAccepted});h("dispose"),Object.keys(b).forEach((function(t){!1===b[t]&&function(t){delete installedChunks[t]}(t)}));for(var j,A,L=v.slice();L.length>0;)if(u=L.pop(),l=D[u]){var E={},R=l.hot._disposeHandlers;for(o=0;o<R.length;o++)(s=R[o])(E);for(a[u]=E,l.hot.active=!1,delete D[u],delete p[u],o=0;o<l.children.length;o++){var N=D[l.children[o]];N&&((T=N.parents.indexOf(u))>=0&&N.parents.splice(T,1))}}for(u in p)if(Object.prototype.hasOwnProperty.call(p,u)&&(l=D[u]))for(A=p[u],o=0;o<A.length;o++)j=A[o],(T=l.children.indexOf(j))>=0&&l.children.splice(T,1);for(u in h("apply"),n=_,g)Object.prototype.hasOwnProperty.call(g,u)&&(t[u]=g[u]);var H=null;for(u in p)if(Object.prototype.hasOwnProperty.call(p,u)&&(l=D[u])){A=p[u];var I=[];for(i=0;i<A.length;i++)if(j=A[i],s=l.hot._acceptedDependencies[j]){if(-1!==I.indexOf(s))continue;I.push(s)}for(i=0;i<I.length;i++){s=I[i];try{s(A)}catch(t){e.onErrored&&e.onErrored({type:"accept-errored",moduleId:u,dependencyId:A[i],error:t}),e.ignoreErrored||H||(H=t)}}}for(i=0;i<P.length;i++){var U=P[i];u=U.module,r=[u];try{M(u)}catch(t){if("function"==typeof U.errorHandler)try{U.errorHandler(t)}catch(s){e.onErrored&&e.onErrored({type:"self-accept-error-handler-errored",moduleId:u,error:s,originalError:t}),e.ignoreErrored||H||(H=s),H||(H=t)}else e.onErrored&&e.onErrored({type:"self-accept-errored",moduleId:u,error:t}),e.ignoreErrored||H||(H=t)}}return H?(h("fail"),Promise.reject(H)):(h("idle"),new Promise((function(t){t(v)})))}var D={};function M(e){if(D[e])return D[e].exports;var s=D[e]={i:e,l:!1,exports:{},hot:u(e),parents:(o=r,r=[],o),children:[]};return t[e].call(s.exports,s,s.exports,l(e)),s.l=!0,s.exports}M.m=t,M.c=D,M.d=function(t,e,s){M.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},M.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},M.t=function(t,e){if(1&e&&(t=M(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(M.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)M.d(s,i,function(e){return t[e]}.bind(null,i));return s},M.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return M.d(e,"a",e),e},M.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},M.p="",M.h=function(){return n},l("./src/audit.js")(M.s="./src/audit.js")}({"./node_modules/cssfilter/lib/css.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function a(t){return null==t}function r(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}r.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onAttr,r=e.onIgnoreAttr,o=e.safeAttrValue;return n(t,(function(t,e,n,l,u){var d=s[n],c=!1;if(!0===d?c=d:"function"==typeof d?c=d(l):d instanceof RegExp&&(c=d.test(l)),!0!==c&&(c=!1),l=o(n,l)){var h,f={position:e,sourcePosition:t,source:u,isWhite:c};return c?a(h=i(n,l,f))?n+":"+l:h:a(h=r(n,l,f))?void 0:h}}))},t.exports=r},"./node_modules/cssfilter/lib/default.js":function(t,e){function s(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;e.whiteList=s(),e.getDefaultWhiteList=s,e.onAttr=function(t,e,s){},e.onIgnoreAttr=function(t,e,s){},e.safeAttrValue=function(t,e){return i.test(e)?"":e}},"./node_modules/cssfilter/lib/index.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),n=s("./node_modules/cssfilter/lib/css.js");for(var a in(e=t.exports=function(t,e){return new n(e).process(t)}).FilterCSS=n,i)e[a]=i[a];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/util.js");t.exports=function(t,e){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var s=t.length,n=!1,a=0,r=0,o="";function l(){if(!n){var s=i.trim(t.slice(a,r)),l=s.indexOf(":");if(-1!==l){var u=i.trim(s.slice(0,l)),d=i.trim(s.slice(l+1));if(u){var c=e(a,o.length,u,d,s);c&&(o+=c+"; ")}}}a=r+1}for(;r<s;r++){var u=t[r];if("/"===u&&"*"===t[r+1]){var d=t.indexOf("*/",r+2);if(-1===d)break;a=(r=d+1)+1,n=!1}else"("===u?n=!0:")"===u?n=!1:";"===u?n||l():"\n"===u&&l()}return i.trim(o)}},"./node_modules/cssfilter/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,n;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,n=t.length;i<n;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/lodash/_Symbol.js":function(t,e,s){var i=s("./node_modules/lodash/_root.js").Symbol;t.exports=i},"./node_modules/lodash/_baseGetTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),n=s("./node_modules/lodash/_getRawTag.js"),a=s("./node_modules/lodash/_objectToString.js"),r=i?i.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":r&&r in Object(t)?n(t):a(t)}},"./node_modules/lodash/_baseSlice.js":function(t,e){t.exports=function(t,e,s){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),(s=s>n?n:s)<0&&(s+=n),n=e>s?0:s-e>>>0,e>>>=0;for(var a=Array(n);++i<n;)a[i]=t[i+e];return a}},"./node_modules/lodash/_freeGlobal.js":function(t,e,s){(function(e){var s="object"==typeof e&&e&&e.Object===Object&&e;t.exports=s}).call(this,s("./node_modules/webpack/buildin/global.js"))},"./node_modules/lodash/_getRawTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),n=Object.prototype,a=n.hasOwnProperty,r=n.toString,o=i?i.toStringTag:void 0;t.exports=function(t){var e=a.call(t,o),s=t[o];try{t[o]=void 0;var i=!0}catch(t){}var n=r.call(t);return i&&(e?t[o]=s:delete t[o]),n}},"./node_modules/lodash/_isIndex.js":function(t,e){var s=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&s.test(t))&&t>-1&&t%1==0&&t<e}},"./node_modules/lodash/_isIterateeCall.js":function(t,e,s){var i=s("./node_modules/lodash/eq.js"),n=s("./node_modules/lodash/isArrayLike.js"),a=s("./node_modules/lodash/_isIndex.js"),r=s("./node_modules/lodash/isObject.js");t.exports=function(t,e,s){if(!r(s))return!1;var o=typeof e;return!!("number"==o?n(s)&&a(e,s.length):"string"==o&&e in s)&&i(s[e],t)}},"./node_modules/lodash/_objectToString.js":function(t,e){var s=Object.prototype.toString;t.exports=function(t){return s.call(t)}},"./node_modules/lodash/_root.js":function(t,e,s){var i=s("./node_modules/lodash/_freeGlobal.js"),n="object"==typeof self&&self&&self.Object===Object&&self,a=i||n||Function("return this")();t.exports=a},"./node_modules/lodash/chunk.js":function(t,e,s){var i=s("./node_modules/lodash/_baseSlice.js"),n=s("./node_modules/lodash/_isIterateeCall.js"),a=s("./node_modules/lodash/toInteger.js"),r=Math.ceil,o=Math.max;t.exports=function(t,e,s){e=(s?n(t,e,s):void 0===e)?1:o(a(e),0);var l=null==t?0:t.length;if(!l||e<1)return[];for(var u=0,d=0,c=Array(r(l/e));u<l;)c[d++]=i(t,u,u+=e);return c}},"./node_modules/lodash/eq.js":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"./node_modules/lodash/isArrayLike.js":function(t,e,s){var i=s("./node_modules/lodash/isFunction.js"),n=s("./node_modules/lodash/isLength.js");t.exports=function(t){return null!=t&&n(t.length)&&!i(t)}},"./node_modules/lodash/isFunction.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObject.js");t.exports=function(t){if(!n(t))return!1;var e=i(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},"./node_modules/lodash/isLength.js":function(t,e){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},"./node_modules/lodash/isObject.js":function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},"./node_modules/lodash/isObjectLike.js":function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},"./node_modules/lodash/isSymbol.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),n=s("./node_modules/lodash/isObjectLike.js");t.exports=function(t){return"symbol"==typeof t||n(t)&&"[object Symbol]"==i(t)}},"./node_modules/lodash/toFinite.js":function(t,e,s){var i=s("./node_modules/lodash/toNumber.js");t.exports=function(t){return t?(t=i(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},"./node_modules/lodash/toInteger.js":function(t,e,s){var i=s("./node_modules/lodash/toFinite.js");t.exports=function(t){var e=i(t),s=e%1;return e==e?s?e-s:e:0}},"./node_modules/lodash/toNumber.js":function(t,e,s){var i=s("./node_modules/lodash/isObject.js"),n=s("./node_modules/lodash/isSymbol.js"),a=/^\s+|\s+$/g,r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(n(t))return NaN;if(i(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(a,"");var s=o.test(t);return s||l.test(t)?u(t.slice(2),s?2:8):r.test(t)?NaN:+t}},"./node_modules/moment/locale sync recursive \\b\\B":function(t,e){function s(t){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}s.keys=function(){return[]},s.resolve=s,t.exports=s,s.id="./node_modules/moment/locale sync recursive \\b\\B"},"./node_modules/moment/moment.js":function(t,e,s){(function(t){t.exports=function(){"use strict";var e,i;function n(){return e.apply(null,arguments)}function a(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function r(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function o(t){return void 0===t}function l(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function u(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function d(t,e){var s,i=[];for(s=0;s<t.length;++s)i.push(e(t[s],s));return i}function c(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function h(t,e){for(var s in e)c(e,s)&&(t[s]=e[s]);return c(e,"toString")&&(t.toString=e.toString),c(e,"valueOf")&&(t.valueOf=e.valueOf),t}function f(t,e,s,i){return Ce(t,e,s,i,!0).utc()}function m(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function _(t){if(null==t._isValid){var e=m(t),s=i.call(e.parsedDateParts,(function(t){return null!=t})),n=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&s);if(t._strict&&(n=n&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return n;t._isValid=n}return t._isValid}function p(t){var e=f(NaN);return null!=t?h(m(e),t):m(e).userInvalidated=!0,e}i=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),s=e.length>>>0,i=0;i<s;i++)if(i in e&&t.call(this,e[i],i,e))return!0;return!1};var v=n.momentProperties=[];function g(t,e){var s,i,n;if(o(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),o(e._i)||(t._i=e._i),o(e._f)||(t._f=e._f),o(e._l)||(t._l=e._l),o(e._strict)||(t._strict=e._strict),o(e._tzm)||(t._tzm=e._tzm),o(e._isUTC)||(t._isUTC=e._isUTC),o(e._offset)||(t._offset=e._offset),o(e._pf)||(t._pf=m(e)),o(e._locale)||(t._locale=e._locale),v.length>0)for(s=0;s<v.length;s++)o(n=e[i=v[s]])||(t[i]=n);return t}var y=!1;function b(t){g(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===y&&(y=!0,n.updateOffset(this),y=!1)}function w(t){return t instanceof b||null!=t&&null!=t._isAMomentObject}function k(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function x(t){var e=+t,s=0;return 0!==e&&isFinite(e)&&(s=k(e)),s}function C(t,e,s){var i,n=Math.min(t.length,e.length),a=Math.abs(t.length-e.length),r=0;for(i=0;i<n;i++)(s&&t[i]!==e[i]||!s&&x(t[i])!==x(e[i]))&&r++;return r+a}function S(t){!1===n.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function D(t,e){var s=!0;return h((function(){if(null!=n.deprecationHandler&&n.deprecationHandler(null,t),s){for(var i,a=[],r=0;r<arguments.length;r++){if(i="","object"==typeof arguments[r]){for(var o in i+="\n["+r+"] ",arguments[0])i+=o+": "+arguments[0][o]+", ";i=i.slice(0,-2)}else i=arguments[r];a.push(i)}S(t+"\nArguments: "+Array.prototype.slice.call(a).join("")+"\n"+(new Error).stack),s=!1}return e.apply(this,arguments)}),e)}var M,O={};function Y(t,e){null!=n.deprecationHandler&&n.deprecationHandler(t,e),O[t]||(S(e),O[t]=!0)}function T(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function P(t,e){var s,i=h({},t);for(s in e)c(e,s)&&(r(t[s])&&r(e[s])?(i[s]={},h(i[s],t[s]),h(i[s],e[s])):null!=e[s]?i[s]=e[s]:delete i[s]);for(s in t)c(t,s)&&!c(e,s)&&r(t[s])&&(i[s]=h({},i[s]));return i}function j(t){null!=t&&this.set(t)}n.suppressDeprecationWarnings=!1,n.deprecationHandler=null,M=Object.keys?Object.keys:function(t){var e,s=[];for(e in t)c(t,e)&&s.push(e);return s};var A={};function L(t,e){var s=t.toLowerCase();A[s]=A[s+"s"]=A[e]=t}function E(t){return"string"==typeof t?A[t]||A[t.toLowerCase()]:void 0}function R(t){var e,s,i={};for(s in t)c(t,s)&&(e=E(s))&&(i[e]=t[s]);return i}var N={};function H(t,e){N[t]=e}function I(t,e,s){var i=""+Math.abs(t),n=e-i.length;return(t>=0?s?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+i}var U=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,W=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,F={},V={};function $(t,e,s,i){var n=i;"string"==typeof i&&(n=function(){return this[i]()}),t&&(V[t]=n),e&&(V[e[0]]=function(){return I(n.apply(this,arguments),e[1],e[2])}),s&&(V[s]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function G(t,e){return t.isValid()?(e=z(e,t.localeData()),F[e]=F[e]||function(t){var e,s,i,n=t.match(U);for(e=0,s=n.length;e<s;e++)V[n[e]]?n[e]=V[n[e]]:n[e]=(i=n[e]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(e){var i,a="";for(i=0;i<s;i++)a+=T(n[i])?n[i].call(e,t):n[i];return a}}(e),F[e](t)):t.localeData().invalidDate()}function z(t,e){var s=5;function i(t){return e.longDateFormat(t)||t}for(W.lastIndex=0;s>=0&&W.test(t);)t=t.replace(W,i),W.lastIndex=0,s-=1;return t}var q=/\d/,Z=/\d\d/,B=/\d{3}/,Q=/\d{4}/,J=/[+-]?\d{6}/,X=/\d\d?/,K=/\d\d\d\d?/,tt=/\d\d\d\d\d\d?/,et=/\d{1,3}/,st=/\d{1,4}/,it=/[+-]?\d{1,6}/,nt=/\d+/,at=/[+-]?\d+/,rt=/Z|[+-]\d\d:?\d\d/gi,ot=/Z|[+-]\d\d(?::?\d\d)?/gi,lt=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ut={};function dt(t,e,s){ut[t]=T(e)?e:function(t,i){return t&&s?s:e}}function ct(t,e){return c(ut,t)?ut[t](e._strict,e._locale):new RegExp(ht(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,s,i,n){return e||s||i||n}))))}function ht(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var ft={};function mt(t,e){var s,i=e;for("string"==typeof t&&(t=[t]),l(e)&&(i=function(t,s){s[e]=x(t)}),s=0;s<t.length;s++)ft[t[s]]=i}function _t(t,e){mt(t,(function(t,s,i,n){i._w=i._w||{},e(t,i._w,i,n)}))}function pt(t,e,s){null!=e&&c(ft,t)&&ft[t](e,s._a,s,t)}function vt(t){return gt(t)?366:365}function gt(t){return t%4==0&&t%100!=0||t%400==0}$("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),$(0,["YY",2],0,(function(){return this.year()%100})),$(0,["YYYY",4],0,"year"),$(0,["YYYYY",5],0,"year"),$(0,["YYYYYY",6,!0],0,"year"),L("year","y"),H("year",1),dt("Y",at),dt("YY",X,Z),dt("YYYY",st,Q),dt("YYYYY",it,J),dt("YYYYYY",it,J),mt(["YYYYY","YYYYYY"],0),mt("YYYY",(function(t,e){e[0]=2===t.length?n.parseTwoDigitYear(t):x(t)})),mt("YY",(function(t,e){e[0]=n.parseTwoDigitYear(t)})),mt("Y",(function(t,e){e[0]=parseInt(t,10)})),n.parseTwoDigitYear=function(t){return x(t)+(x(t)>68?1900:2e3)};var yt,bt=wt("FullYear",!0);function wt(t,e){return function(s){return null!=s?(xt(this,t,s),n.updateOffset(this,e),this):kt(this,t)}}function kt(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function xt(t,e,s){t.isValid()&&!isNaN(s)&&("FullYear"===e&&gt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](s,t.month(),Ct(s,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](s))}function Ct(t,e){if(isNaN(t)||isNaN(e))return NaN;var s,i=(e%(s=12)+s)%s;return t+=(e-i)/12,1===i?gt(t)?29:28:31-i%7%2}yt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},$("M",["MM",2],"Mo",(function(){return this.month()+1})),$("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),$("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),L("month","M"),H("month",8),dt("M",X),dt("MM",X,Z),dt("MMM",(function(t,e){return e.monthsShortRegex(t)})),dt("MMMM",(function(t,e){return e.monthsRegex(t)})),mt(["M","MM"],(function(t,e){e[1]=x(t)-1})),mt(["MMM","MMMM"],(function(t,e,s,i){var n=s._locale.monthsParse(t,i,s._strict);null!=n?e[1]=n:m(s).invalidMonth=t}));var St=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,Dt="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Mt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ot(t,e,s){var i,n,a,r=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)a=f([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(a,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(a,"").toLocaleLowerCase();return s?"MMM"===e?-1!==(n=yt.call(this._shortMonthsParse,r))?n:null:-1!==(n=yt.call(this._longMonthsParse,r))?n:null:"MMM"===e?-1!==(n=yt.call(this._shortMonthsParse,r))||-1!==(n=yt.call(this._longMonthsParse,r))?n:null:-1!==(n=yt.call(this._longMonthsParse,r))||-1!==(n=yt.call(this._shortMonthsParse,r))?n:null}function Yt(t,e){var s;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=x(e);else if(!l(e=t.localeData().monthsParse(e)))return t;return s=Math.min(t.date(),Ct(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,s),t}function Tt(t){return null!=t?(Yt(this,t),n.updateOffset(this,!0),this):kt(this,"Month")}var Pt=lt,jt=lt;function At(){function t(t,e){return e.length-t.length}var e,s,i=[],n=[],a=[];for(e=0;e<12;e++)s=f([2e3,e]),i.push(this.monthsShort(s,"")),n.push(this.months(s,"")),a.push(this.months(s,"")),a.push(this.monthsShort(s,""));for(i.sort(t),n.sort(t),a.sort(t),e=0;e<12;e++)i[e]=ht(i[e]),n[e]=ht(n[e]);for(e=0;e<24;e++)a[e]=ht(a[e]);this._monthsRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Lt(t,e,s,i,n,a,r){var o;return t<100&&t>=0?(o=new Date(t+400,e,s,i,n,a,r),isFinite(o.getFullYear())&&o.setFullYear(t)):o=new Date(t,e,s,i,n,a,r),o}function Et(t){var e;if(t<100&&t>=0){var s=Array.prototype.slice.call(arguments);s[0]=t+400,e=new Date(Date.UTC.apply(null,s)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function Rt(t,e,s){var i=7+e-s;return-(7+Et(t,0,i).getUTCDay()-e)%7+i-1}function Nt(t,e,s,i,n){var a,r,o=1+7*(e-1)+(7+s-i)%7+Rt(t,i,n);return o<=0?r=vt(a=t-1)+o:o>vt(t)?(a=t+1,r=o-vt(t)):(a=t,r=o),{year:a,dayOfYear:r}}function Ht(t,e,s){var i,n,a=Rt(t.year(),e,s),r=Math.floor((t.dayOfYear()-a-1)/7)+1;return r<1?i=r+It(n=t.year()-1,e,s):r>It(t.year(),e,s)?(i=r-It(t.year(),e,s),n=t.year()+1):(n=t.year(),i=r),{week:i,year:n}}function It(t,e,s){var i=Rt(t,e,s),n=Rt(t+1,e,s);return(vt(t)-i+n)/7}function Ut(t,e){return t.slice(e,7).concat(t.slice(0,e))}$("w",["ww",2],"wo","week"),$("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),H("week",5),H("isoWeek",5),dt("w",X),dt("ww",X,Z),dt("W",X),dt("WW",X,Z),_t(["w","ww","W","WW"],(function(t,e,s,i){e[i.substr(0,1)]=x(t)})),$("d",0,"do","day"),$("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),$("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),$("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),$("e",0,0,"weekday"),$("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),H("day",11),H("weekday",11),H("isoWeekday",11),dt("d",X),dt("e",X),dt("E",X),dt("dd",(function(t,e){return e.weekdaysMinRegex(t)})),dt("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),dt("dddd",(function(t,e){return e.weekdaysRegex(t)})),_t(["dd","ddd","dddd"],(function(t,e,s,i){var n=s._locale.weekdaysParse(t,i,s._strict);null!=n?e.d=n:m(s).invalidWeekday=t})),_t(["d","e","E"],(function(t,e,s,i){e[i]=x(t)}));var Wt="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ft="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Vt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function $t(t,e,s){var i,n,a,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)a=f([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(a,"").toLocaleLowerCase();return s?"dddd"===e?-1!==(n=yt.call(this._weekdaysParse,r))?n:null:"ddd"===e?-1!==(n=yt.call(this._shortWeekdaysParse,r))?n:null:-1!==(n=yt.call(this._minWeekdaysParse,r))?n:null:"dddd"===e?-1!==(n=yt.call(this._weekdaysParse,r))||-1!==(n=yt.call(this._shortWeekdaysParse,r))||-1!==(n=yt.call(this._minWeekdaysParse,r))?n:null:"ddd"===e?-1!==(n=yt.call(this._shortWeekdaysParse,r))||-1!==(n=yt.call(this._weekdaysParse,r))||-1!==(n=yt.call(this._minWeekdaysParse,r))?n:null:-1!==(n=yt.call(this._minWeekdaysParse,r))||-1!==(n=yt.call(this._weekdaysParse,r))||-1!==(n=yt.call(this._shortWeekdaysParse,r))?n:null}var Gt=lt,zt=lt,qt=lt;function Zt(){function t(t,e){return e.length-t.length}var e,s,i,n,a,r=[],o=[],l=[],u=[];for(e=0;e<7;e++)s=f([2e3,1]).day(e),i=this.weekdaysMin(s,""),n=this.weekdaysShort(s,""),a=this.weekdays(s,""),r.push(i),o.push(n),l.push(a),u.push(i),u.push(n),u.push(a);for(r.sort(t),o.sort(t),l.sort(t),u.sort(t),e=0;e<7;e++)o[e]=ht(o[e]),l[e]=ht(l[e]),u[e]=ht(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Bt(){return this.hours()%12||12}function Qt(t,e){$(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Jt(t,e){return e._meridiemParse}$("H",["HH",2],0,"hour"),$("h",["hh",2],0,Bt),$("k",["kk",2],0,(function(){return this.hours()||24})),$("hmm",0,0,(function(){return""+Bt.apply(this)+I(this.minutes(),2)})),$("hmmss",0,0,(function(){return""+Bt.apply(this)+I(this.minutes(),2)+I(this.seconds(),2)})),$("Hmm",0,0,(function(){return""+this.hours()+I(this.minutes(),2)})),$("Hmmss",0,0,(function(){return""+this.hours()+I(this.minutes(),2)+I(this.seconds(),2)})),Qt("a",!0),Qt("A",!1),L("hour","h"),H("hour",13),dt("a",Jt),dt("A",Jt),dt("H",X),dt("h",X),dt("k",X),dt("HH",X,Z),dt("hh",X,Z),dt("kk",X,Z),dt("hmm",K),dt("hmmss",tt),dt("Hmm",K),dt("Hmmss",tt),mt(["H","HH"],3),mt(["k","kk"],(function(t,e,s){var i=x(t);e[3]=24===i?0:i})),mt(["a","A"],(function(t,e,s){s._isPm=s._locale.isPM(t),s._meridiem=t})),mt(["h","hh"],(function(t,e,s){e[3]=x(t),m(s).bigHour=!0})),mt("hmm",(function(t,e,s){var i=t.length-2;e[3]=x(t.substr(0,i)),e[4]=x(t.substr(i)),m(s).bigHour=!0})),mt("hmmss",(function(t,e,s){var i=t.length-4,n=t.length-2;e[3]=x(t.substr(0,i)),e[4]=x(t.substr(i,2)),e[5]=x(t.substr(n)),m(s).bigHour=!0})),mt("Hmm",(function(t,e,s){var i=t.length-2;e[3]=x(t.substr(0,i)),e[4]=x(t.substr(i))})),mt("Hmmss",(function(t,e,s){var i=t.length-4,n=t.length-2;e[3]=x(t.substr(0,i)),e[4]=x(t.substr(i,2)),e[5]=x(t.substr(n))}));var Xt,Kt=wt("Hours",!0),te={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Dt,monthsShort:Mt,week:{dow:0,doy:6},weekdays:Wt,weekdaysMin:Vt,weekdaysShort:Ft,meridiemParse:/[ap]\.?m?\.?/i},ee={},se={};function ie(t){return t?t.toLowerCase().replace("_","-"):t}function ne(e){var i=null;if(!ee[e]&&void 0!==t&&t&&t.exports)try{i=Xt._abbr,s("./node_modules/moment/locale sync recursive \\b\\B")("./"+e),ae(i)}catch(t){}return ee[e]}function ae(t,e){var s;return t&&((s=o(e)?oe(t):re(t,e))?Xt=s:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Xt._abbr}function re(t,e){if(null!==e){var s,i=te;if(e.abbr=t,null!=ee[t])Y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=ee[t]._config;else if(null!=e.parentLocale)if(null!=ee[e.parentLocale])i=ee[e.parentLocale]._config;else{if(null==(s=ne(e.parentLocale)))return se[e.parentLocale]||(se[e.parentLocale]=[]),se[e.parentLocale].push({name:t,config:e}),null;i=s._config}return ee[t]=new j(P(i,e)),se[t]&&se[t].forEach((function(t){re(t.name,t.config)})),ae(t),ee[t]}return delete ee[t],null}function oe(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Xt;if(!a(t)){if(e=ne(t))return e;t=[t]}return function(t){for(var e,s,i,n,a=0;a<t.length;){for(e=(n=ie(t[a]).split("-")).length,s=(s=ie(t[a+1]))?s.split("-"):null;e>0;){if(i=ne(n.slice(0,e).join("-")))return i;if(s&&s.length>=e&&C(n,s,!0)>=e-1)break;e--}a++}return Xt}(t)}function le(t){var e,s=t._a;return s&&-2===m(t).overflow&&(e=s[1]<0||s[1]>11?1:s[2]<1||s[2]>Ct(s[0],s[1])?2:s[3]<0||s[3]>24||24===s[3]&&(0!==s[4]||0!==s[5]||0!==s[6])?3:s[4]<0||s[4]>59?4:s[5]<0||s[5]>59?5:s[6]<0||s[6]>999?6:-1,m(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),m(t)._overflowWeeks&&-1===e&&(e=7),m(t)._overflowWeekday&&-1===e&&(e=8),m(t).overflow=e),t}function ue(t,e,s){return null!=t?t:null!=e?e:s}function de(t){var e,s,i,a,r,o=[];if(!t._d){for(i=function(t){var e=new Date(n.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){var e,s,i,n,a,r,o,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)a=1,r=4,s=ue(e.GG,t._a[0],Ht(Se(),1,4).year),i=ue(e.W,1),((n=ue(e.E,1))<1||n>7)&&(l=!0);else{a=t._locale._week.dow,r=t._locale._week.doy;var u=Ht(Se(),a,r);s=ue(e.gg,t._a[0],u.year),i=ue(e.w,u.week),null!=e.d?((n=e.d)<0||n>6)&&(l=!0):null!=e.e?(n=e.e+a,(e.e<0||e.e>6)&&(l=!0)):n=a}i<1||i>It(s,a,r)?m(t)._overflowWeeks=!0:null!=l?m(t)._overflowWeekday=!0:(o=Nt(s,i,n,a,r),t._a[0]=o.year,t._dayOfYear=o.dayOfYear)}(t),null!=t._dayOfYear&&(r=ue(t._a[0],i[0]),(t._dayOfYear>vt(r)||0===t._dayOfYear)&&(m(t)._overflowDayOfYear=!0),s=Et(r,0,t._dayOfYear),t._a[1]=s.getUTCMonth(),t._a[2]=s.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=i[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?Et:Lt).apply(null,o),a=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==a&&(m(t).weekdayMismatch=!0)}}var ce=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,he=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,fe=/Z|[+-]\d\d(?::?\d\d)?/,me=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],_e=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pe=/^\/?Date\((\-?\d+)/i;function ve(t){var e,s,i,n,a,r,o=t._i,l=ce.exec(o)||he.exec(o);if(l){for(m(t).iso=!0,e=0,s=me.length;e<s;e++)if(me[e][1].exec(l[1])){n=me[e][0],i=!1!==me[e][2];break}if(null==n)return void(t._isValid=!1);if(l[3]){for(e=0,s=_e.length;e<s;e++)if(_e[e][1].exec(l[3])){a=(l[2]||" ")+_e[e][0];break}if(null==a)return void(t._isValid=!1)}if(!i&&null!=a)return void(t._isValid=!1);if(l[4]){if(!fe.exec(l[4]))return void(t._isValid=!1);r="Z"}t._f=n+(a||"")+(r||""),ke(t)}else t._isValid=!1}var ge=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function ye(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}var be={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function we(t){var e,s,i,n,a,r,o,l=ge.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){var u=(e=l[4],s=l[3],i=l[2],n=l[5],a=l[6],r=l[7],o=[ye(e),Mt.indexOf(s),parseInt(i,10),parseInt(n,10),parseInt(a,10)],r&&o.push(parseInt(r,10)),o);if(!function(t,e,s){return!t||Ft.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(m(s).weekdayMismatch=!0,s._isValid=!1,!1)}(l[1],u,t))return;t._a=u,t._tzm=function(t,e,s){if(t)return be[t];if(e)return 0;var i=parseInt(s,10),n=i%100;return(i-n)/100*60+n}(l[8],l[9],l[10]),t._d=Et.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),m(t).rfc2822=!0}else t._isValid=!1}function ke(t){if(t._f!==n.ISO_8601)if(t._f!==n.RFC_2822){t._a=[],m(t).empty=!0;var e,s,i,a,r,o=""+t._i,l=o.length,u=0;for(i=z(t._f,t._locale).match(U)||[],e=0;e<i.length;e++)a=i[e],(s=(o.match(ct(a,t))||[])[0])&&((r=o.substr(0,o.indexOf(s))).length>0&&m(t).unusedInput.push(r),o=o.slice(o.indexOf(s)+s.length),u+=s.length),V[a]?(s?m(t).empty=!1:m(t).unusedTokens.push(a),pt(a,s,t)):t._strict&&!s&&m(t).unusedTokens.push(a);m(t).charsLeftOver=l-u,o.length>0&&m(t).unusedInput.push(o),t._a[3]<=12&&!0===m(t).bigHour&&t._a[3]>0&&(m(t).bigHour=void 0),m(t).parsedDateParts=t._a.slice(0),m(t).meridiem=t._meridiem,t._a[3]=function(t,e,s){var i;return null==s?e:null!=t.meridiemHour?t.meridiemHour(e,s):null!=t.isPM?((i=t.isPM(s))&&e<12&&(e+=12),i||12!==e||(e=0),e):e}(t._locale,t._a[3],t._meridiem),de(t),le(t)}else we(t);else ve(t)}function xe(t){var e=t._i,s=t._f;return t._locale=t._locale||oe(t._l),null===e||void 0===s&&""===e?p({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),w(e)?new b(le(e)):(u(e)?t._d=e:a(s)?function(t){var e,s,i,n,a;if(0===t._f.length)return m(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;n<t._f.length;n++)a=0,e=g({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[n],ke(e),_(e)&&(a+=m(e).charsLeftOver,a+=10*m(e).unusedTokens.length,m(e).score=a,(null==i||a<i)&&(i=a,s=e));h(t,s||e)}(t):s?ke(t):function(t){var e=t._i;o(e)?t._d=new Date(n.now()):u(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=pe.exec(t._i);null===e?(ve(t),!1===t._isValid&&(delete t._isValid,we(t),!1===t._isValid&&(delete t._isValid,n.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):a(e)?(t._a=d(e.slice(0),(function(t){return parseInt(t,10)})),de(t)):r(e)?function(t){if(!t._d){var e=R(t._i);t._a=d([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),de(t)}}(t):l(e)?t._d=new Date(e):n.createFromInputFallback(t)}(t),_(t)||(t._d=null),t))}function Ce(t,e,s,i,n){var o,l={};return!0!==s&&!1!==s||(i=s,s=void 0),(r(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||a(t)&&0===t.length)&&(t=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=n,l._l=s,l._i=t,l._f=e,l._strict=i,(o=new b(le(xe(l))))._nextDay&&(o.add(1,"d"),o._nextDay=void 0),o}function Se(t,e,s,i){return Ce(t,e,s,i,!1)}n.createFromInputFallback=D("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),n.ISO_8601=function(){},n.RFC_2822=function(){};var De=D("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Se.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:p()})),Me=D("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=Se.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:p()}));function Oe(t,e){var s,i;if(1===e.length&&a(e[0])&&(e=e[0]),!e.length)return Se();for(s=e[0],i=1;i<e.length;++i)e[i].isValid()&&!e[i][t](s)||(s=e[i]);return s}var Ye=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Te(t){var e=R(t),s=e.year||0,i=e.quarter||0,n=e.month||0,a=e.week||e.isoWeek||0,r=e.day||0,o=e.hour||0,l=e.minute||0,u=e.second||0,d=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===yt.call(Ye,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var s=!1,i=0;i<Ye.length;++i)if(t[Ye[i]]){if(s)return!1;parseFloat(t[Ye[i]])!==x(t[Ye[i]])&&(s=!0)}return!0}(e),this._milliseconds=+d+1e3*u+6e4*l+1e3*o*60*60,this._days=+r+7*a,this._months=+n+3*i+12*s,this._data={},this._locale=oe(),this._bubble()}function Pe(t){return t instanceof Te}function je(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Ae(t,e){$(t,0,0,(function(){var t=this.utcOffset(),s="+";return t<0&&(t=-t,s="-"),s+I(~~(t/60),2)+e+I(~~t%60,2)}))}Ae("Z",":"),Ae("ZZ",""),dt("Z",ot),dt("ZZ",ot),mt(["Z","ZZ"],(function(t,e,s){s._useUTC=!0,s._tzm=Ee(ot,t)}));var Le=/([\+\-]|\d\d)/gi;function Ee(t,e){var s=(e||"").match(t);if(null===s)return null;var i=((s[s.length-1]||[])+"").match(Le)||["-",0,0],n=60*i[1]+x(i[2]);return 0===n?0:"+"===i[0]?n:-n}function Re(t,e){var s,i;return e._isUTC?(s=e.clone(),i=(w(t)||u(t)?t.valueOf():Se(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+i),n.updateOffset(s,!1),s):Se(t).local()}function Ne(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function He(){return!!this.isValid()&&this._isUTC&&0===this._offset}n.updateOffset=function(){};var Ie=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ue=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function We(t,e){var s,i,n,a,r,o,u=t,d=null;return Pe(t)?u={ms:t._milliseconds,d:t._days,M:t._months}:l(t)?(u={},e?u[e]=t:u.milliseconds=t):(d=Ie.exec(t))?(s="-"===d[1]?-1:1,u={y:0,d:x(d[2])*s,h:x(d[3])*s,m:x(d[4])*s,s:x(d[5])*s,ms:x(je(1e3*d[6]))*s}):(d=Ue.exec(t))?(s="-"===d[1]?-1:1,u={y:Fe(d[2],s),M:Fe(d[3],s),w:Fe(d[4],s),d:Fe(d[5],s),h:Fe(d[6],s),m:Fe(d[7],s),s:Fe(d[8],s)}):null==u?u={}:"object"==typeof u&&("from"in u||"to"in u)&&(a=Se(u.from),r=Se(u.to),n=a.isValid()&&r.isValid()?(r=Re(r,a),a.isBefore(r)?o=Ve(a,r):((o=Ve(r,a)).milliseconds=-o.milliseconds,o.months=-o.months),o):{milliseconds:0,months:0},(u={}).ms=n.milliseconds,u.M=n.months),i=new Te(u),Pe(t)&&c(t,"_locale")&&(i._locale=t._locale),i}function Fe(t,e){var s=t&&parseFloat(t.replace(",","."));return(isNaN(s)?0:s)*e}function Ve(t,e){var s={};return s.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(s.months,"M").isAfter(e)&&--s.months,s.milliseconds=+e-+t.clone().add(s.months,"M"),s}function $e(t,e){return function(s,i){var n;return null===i||isNaN(+i)||(Y(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=s,s=i,i=n),Ge(this,We(s="string"==typeof s?+s:s,i),t),this}}function Ge(t,e,s,i){var a=e._milliseconds,r=je(e._days),o=je(e._months);t.isValid()&&(i=null==i||i,o&&Yt(t,kt(t,"Month")+o*s),r&&xt(t,"Date",kt(t,"Date")+r*s),a&&t._d.setTime(t._d.valueOf()+a*s),i&&n.updateOffset(t,r||o))}We.fn=Te.prototype,We.invalid=function(){return We(NaN)};var ze=$e(1,"add"),qe=$e(-1,"subtract");function Ze(t,e){var s=12*(e.year()-t.year())+(e.month()-t.month()),i=t.clone().add(s,"months");return-(s+(e-i<0?(e-i)/(i-t.clone().add(s-1,"months")):(e-i)/(t.clone().add(s+1,"months")-i)))||0}function Be(t){var e;return void 0===t?this._locale._abbr:(null!=(e=oe(t))&&(this._locale=e),this)}n.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",n.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Qe=D("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function Je(){return this._locale}function Xe(t,e){return(t%e+e)%e}function Ke(t,e,s){return t<100&&t>=0?new Date(t+400,e,s)-126227808e5:new Date(t,e,s).valueOf()}function ts(t,e,s){return t<100&&t>=0?Date.UTC(t+400,e,s)-126227808e5:Date.UTC(t,e,s)}function es(t,e){$(0,[t,t.length],0,e)}function ss(t,e,s,i,n){var a;return null==t?Ht(this,i,n).year:(e>(a=It(t,i,n))&&(e=a),is.call(this,t,e,s,i,n))}function is(t,e,s,i,n){var a=Nt(t,e,s,i,n),r=Et(a.year,0,a.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}$(0,["gg",2],0,(function(){return this.weekYear()%100})),$(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),es("gggg","weekYear"),es("ggggg","weekYear"),es("GGGG","isoWeekYear"),es("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),H("weekYear",1),H("isoWeekYear",1),dt("G",at),dt("g",at),dt("GG",X,Z),dt("gg",X,Z),dt("GGGG",st,Q),dt("gggg",st,Q),dt("GGGGG",it,J),dt("ggggg",it,J),_t(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,s,i){e[i.substr(0,2)]=x(t)})),_t(["gg","GG"],(function(t,e,s,i){e[i]=n.parseTwoDigitYear(t)})),$("Q",0,"Qo","quarter"),L("quarter","Q"),H("quarter",7),dt("Q",q),mt("Q",(function(t,e){e[1]=3*(x(t)-1)})),$("D",["DD",2],"Do","date"),L("date","D"),H("date",9),dt("D",X),dt("DD",X,Z),dt("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),mt(["D","DD"],2),mt("Do",(function(t,e){e[2]=x(t.match(X)[0])}));var ns=wt("Date",!0);$("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),H("dayOfYear",4),dt("DDD",et),dt("DDDD",B),mt(["DDD","DDDD"],(function(t,e,s){s._dayOfYear=x(t)})),$("m",["mm",2],0,"minute"),L("minute","m"),H("minute",14),dt("m",X),dt("mm",X,Z),mt(["m","mm"],4);var as=wt("Minutes",!1);$("s",["ss",2],0,"second"),L("second","s"),H("second",15),dt("s",X),dt("ss",X,Z),mt(["s","ss"],5);var rs,os=wt("Seconds",!1);for($("S",0,0,(function(){return~~(this.millisecond()/100)})),$(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),$(0,["SSS",3],0,"millisecond"),$(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),$(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),$(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),$(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),$(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),$(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),L("millisecond","ms"),H("millisecond",16),dt("S",et,q),dt("SS",et,Z),dt("SSS",et,B),rs="SSSS";rs.length<=9;rs+="S")dt(rs,nt);function ls(t,e){e[6]=x(1e3*("0."+t))}for(rs="S";rs.length<=9;rs+="S")mt(rs,ls);var us=wt("Milliseconds",!1);$("z",0,0,"zoneAbbr"),$("zz",0,0,"zoneName");var ds=b.prototype;function cs(t){return t}ds.add=ze,ds.calendar=function(t,e){var s=t||Se(),i=Re(s,this).startOf("day"),a=n.calendarFormat(this,i)||"sameElse",r=e&&(T(e[a])?e[a].call(this,s):e[a]);return this.format(r||this.localeData().calendar(a,this,Se(s)))},ds.clone=function(){return new b(this)},ds.diff=function(t,e,s){var i,n,a;if(!this.isValid())return NaN;if(!(i=Re(t,this)).isValid())return NaN;switch(n=6e4*(i.utcOffset()-this.utcOffset()),e=E(e)){case"year":a=Ze(this,i)/12;break;case"month":a=Ze(this,i);break;case"quarter":a=Ze(this,i)/3;break;case"second":a=(this-i)/1e3;break;case"minute":a=(this-i)/6e4;break;case"hour":a=(this-i)/36e5;break;case"day":a=(this-i-n)/864e5;break;case"week":a=(this-i-n)/6048e5;break;default:a=this-i}return s?a:k(a)},ds.endOf=function(t){var e;if(void 0===(t=E(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?ts:Ke;switch(t){case"year":e=s(this.year()+1,0,1)-1;break;case"quarter":e=s(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=s(this.year(),this.month()+1,1)-1;break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=s(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-Xe(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-Xe(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-Xe(e,1e3)-1}return this._d.setTime(e),n.updateOffset(this,!0),this},ds.format=function(t){t||(t=this.isUtc()?n.defaultFormatUtc:n.defaultFormat);var e=G(this,t);return this.localeData().postformat(e)},ds.from=function(t,e){return this.isValid()&&(w(t)&&t.isValid()||Se(t).isValid())?We({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ds.fromNow=function(t){return this.from(Se(),t)},ds.to=function(t,e){return this.isValid()&&(w(t)&&t.isValid()||Se(t).isValid())?We({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},ds.toNow=function(t){return this.to(Se(),t)},ds.get=function(t){return T(this[t=E(t)])?this[t]():this},ds.invalidAt=function(){return m(this).overflow},ds.isAfter=function(t,e){var s=w(t)?t:Se(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=E(e)||"millisecond")?this.valueOf()>s.valueOf():s.valueOf()<this.clone().startOf(e).valueOf())},ds.isBefore=function(t,e){var s=w(t)?t:Se(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=E(e)||"millisecond")?this.valueOf()<s.valueOf():this.clone().endOf(e).valueOf()<s.valueOf())},ds.isBetween=function(t,e,s,i){var n=w(t)?t:Se(t),a=w(e)?e:Se(e);return!!(this.isValid()&&n.isValid()&&a.isValid())&&("("===(i=i||"()")[0]?this.isAfter(n,s):!this.isBefore(n,s))&&(")"===i[1]?this.isBefore(a,s):!this.isAfter(a,s))},ds.isSame=function(t,e){var s,i=w(t)?t:Se(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=E(e)||"millisecond")?this.valueOf()===i.valueOf():(s=i.valueOf(),this.clone().startOf(e).valueOf()<=s&&s<=this.clone().endOf(e).valueOf()))},ds.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},ds.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},ds.isValid=function(){return _(this)},ds.lang=Qe,ds.locale=Be,ds.localeData=Je,ds.max=Me,ds.min=De,ds.parsingFlags=function(){return h({},m(this))},ds.set=function(t,e){if("object"==typeof t)for(var s=function(t){var e=[];for(var s in t)e.push({unit:s,priority:N[s]});return e.sort((function(t,e){return t.priority-e.priority})),e}(t=R(t)),i=0;i<s.length;i++)this[s[i].unit](t[s[i].unit]);else if(T(this[t=E(t)]))return this[t](e);return this},ds.startOf=function(t){var e;if(void 0===(t=E(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?ts:Ke;switch(t){case"year":e=s(this.year(),0,1);break;case"quarter":e=s(this.year(),this.month()-this.month()%3,1);break;case"month":e=s(this.year(),this.month(),1);break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=s(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=Xe(e+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":e=this._d.valueOf(),e-=Xe(e,6e4);break;case"second":e=this._d.valueOf(),e-=Xe(e,1e3)}return this._d.setTime(e),n.updateOffset(this,!0),this},ds.subtract=qe,ds.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},ds.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},ds.toDate=function(){return new Date(this.valueOf())},ds.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,s=e?this.clone().utc():this;return s.year()<0||s.year()>9999?G(s,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",G(s,"Z")):G(s,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ds.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var s="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n=e+'[")]';return this.format(s+i+"-MM-DD[T]HH:mm:ss.SSS"+n)},ds.toJSON=function(){return this.isValid()?this.toISOString():null},ds.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ds.unix=function(){return Math.floor(this.valueOf()/1e3)},ds.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ds.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ds.year=bt,ds.isLeapYear=function(){return gt(this.year())},ds.weekYear=function(t){return ss.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ds.isoWeekYear=function(t){return ss.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},ds.quarter=ds.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},ds.month=Tt,ds.daysInMonth=function(){return Ct(this.year(),this.month())},ds.week=ds.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},ds.isoWeek=ds.isoWeeks=function(t){var e=Ht(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},ds.weeksInYear=function(){var t=this.localeData()._week;return It(this.year(),t.dow,t.doy)},ds.isoWeeksInYear=function(){return It(this.year(),1,4)},ds.date=ns,ds.day=ds.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},ds.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},ds.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},ds.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},ds.hour=ds.hours=Kt,ds.minute=ds.minutes=as,ds.second=ds.seconds=os,ds.millisecond=ds.milliseconds=us,ds.utcOffset=function(t,e,s){var i,a=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Ee(ot,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&e&&(i=Ne(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),a!==t&&(!e||this._changeInProgress?Ge(this,We(t-a,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,n.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?a:Ne(this)},ds.utc=function(t){return this.utcOffset(0,t)},ds.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ne(this),"m")),this},ds.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Ee(rt,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},ds.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?Se(t).utcOffset():0,(this.utcOffset()-t)%60==0)},ds.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ds.isLocal=function(){return!!this.isValid()&&!this._isUTC},ds.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ds.isUtc=He,ds.isUTC=He,ds.zoneAbbr=function(){return this._isUTC?"UTC":""},ds.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ds.dates=D("dates accessor is deprecated. Use date instead.",ns),ds.months=D("months accessor is deprecated. Use month instead",Tt),ds.years=D("years accessor is deprecated. Use year instead",bt),ds.zone=D("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),ds.isDSTShifted=D("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(g(t,this),(t=xe(t))._a){var e=t._isUTC?f(t._a):Se(t._a);this._isDSTShifted=this.isValid()&&C(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var hs=j.prototype;function fs(t,e,s,i){var n=oe(),a=f().set(i,e);return n[s](a,t)}function ms(t,e,s){if(l(t)&&(e=t,t=void 0),t=t||"",null!=e)return fs(t,e,s,"month");var i,n=[];for(i=0;i<12;i++)n[i]=fs(t,i,s,"month");return n}function _s(t,e,s,i){"boolean"==typeof t?(l(e)&&(s=e,e=void 0),e=e||""):(s=e=t,t=!1,l(e)&&(s=e,e=void 0),e=e||"");var n,a=oe(),r=t?a._week.dow:0;if(null!=s)return fs(e,(s+r)%7,i,"day");var o=[];for(n=0;n<7;n++)o[n]=fs(e,(n+r)%7,i,"day");return o}hs.calendar=function(t,e,s){var i=this._calendar[t]||this._calendar.sameElse;return T(i)?i.call(e,s):i},hs.longDateFormat=function(t){var e=this._longDateFormat[t],s=this._longDateFormat[t.toUpperCase()];return e||!s?e:(this._longDateFormat[t]=s.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])},hs.invalidDate=function(){return this._invalidDate},hs.ordinal=function(t){return this._ordinal.replace("%d",t)},hs.preparse=cs,hs.postformat=cs,hs.relativeTime=function(t,e,s,i){var n=this._relativeTime[s];return T(n)?n(t,e,s,i):n.replace(/%d/i,t)},hs.pastFuture=function(t,e){var s=this._relativeTime[t>0?"future":"past"];return T(s)?s(e):s.replace(/%s/i,e)},hs.set=function(t){var e,s;for(s in t)T(e=t[s])?this[s]=e:this["_"+s]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hs.months=function(t,e){return t?a(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||St).test(e)?"format":"standalone"][t.month()]:a(this._months)?this._months:this._months.standalone},hs.monthsShort=function(t,e){return t?a(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[St.test(e)?"format":"standalone"][t.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hs.monthsParse=function(t,e,s){var i,n,a;if(this._monthsParseExact)return Ot.call(this,t,e,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(n=f([2e3,i]),s&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),s||this._monthsParse[i]||(a="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[i]=new RegExp(a.replace(".",""),"i")),s&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(s&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!s&&this._monthsParse[i].test(t))return i}},hs.monthsRegex=function(t){return this._monthsParseExact?(c(this,"_monthsRegex")||At.call(this),t?this._monthsStrictRegex:this._monthsRegex):(c(this,"_monthsRegex")||(this._monthsRegex=jt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},hs.monthsShortRegex=function(t){return this._monthsParseExact?(c(this,"_monthsRegex")||At.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(c(this,"_monthsShortRegex")||(this._monthsShortRegex=Pt),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},hs.week=function(t){return Ht(t,this._week.dow,this._week.doy).week},hs.firstDayOfYear=function(){return this._week.doy},hs.firstDayOfWeek=function(){return this._week.dow},hs.weekdays=function(t,e){var s=a(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Ut(s,this._week.dow):t?s[t.day()]:s},hs.weekdaysMin=function(t){return!0===t?Ut(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},hs.weekdaysShort=function(t){return!0===t?Ut(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},hs.weekdaysParse=function(t,e,s){var i,n,a;if(this._weekdaysParseExact)return $t.call(this,t,e,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(n=f([2e3,1]).day(i),s&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(n,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(n,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(n,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(a="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[i]=new RegExp(a.replace(".",""),"i")),s&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(s&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(s&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!s&&this._weekdaysParse[i].test(t))return i}},hs.weekdaysRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Zt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(c(this,"_weekdaysRegex")||(this._weekdaysRegex=Gt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},hs.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Zt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(c(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=zt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hs.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(c(this,"_weekdaysRegex")||Zt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(c(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=qt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hs.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},hs.meridiem=function(t,e,s){return t>11?s?"pm":"PM":s?"am":"AM"},ae("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===x(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),n.lang=D("moment.lang is deprecated. Use moment.locale instead.",ae),n.langData=D("moment.langData is deprecated. Use moment.localeData instead.",oe);var ps=Math.abs;function vs(t,e,s,i){var n=We(e,s);return t._milliseconds+=i*n._milliseconds,t._days+=i*n._days,t._months+=i*n._months,t._bubble()}function gs(t){return t<0?Math.floor(t):Math.ceil(t)}function ys(t){return 4800*t/146097}function bs(t){return 146097*t/4800}function ws(t){return function(){return this.as(t)}}var ks=ws("ms"),xs=ws("s"),Cs=ws("m"),Ss=ws("h"),Ds=ws("d"),Ms=ws("w"),Os=ws("M"),Ys=ws("Q"),Ts=ws("y");function Ps(t){return function(){return this.isValid()?this._data[t]:NaN}}var js=Ps("milliseconds"),As=Ps("seconds"),Ls=Ps("minutes"),Es=Ps("hours"),Rs=Ps("days"),Ns=Ps("months"),Hs=Ps("years"),Is=Math.round,Us={ss:44,s:45,m:45,h:22,d:26,M:11};function Ws(t,e,s,i,n){return n.relativeTime(e||1,!!s,t,i)}var Fs=Math.abs;function Vs(t){return(t>0)-(t<0)||+t}function $s(){if(!this.isValid())return this.localeData().invalidDate();var t,e,s=Fs(this._milliseconds)/1e3,i=Fs(this._days),n=Fs(this._months);t=k(s/60),e=k(t/60),s%=60,t%=60;var a=k(n/12),r=n%=12,o=i,l=e,u=t,d=s?s.toFixed(3).replace(/\.?0+$/,""):"",c=this.asSeconds();if(!c)return"P0D";var h=c<0?"-":"",f=Vs(this._months)!==Vs(c)?"-":"",m=Vs(this._days)!==Vs(c)?"-":"",_=Vs(this._milliseconds)!==Vs(c)?"-":"";return h+"P"+(a?f+a+"Y":"")+(r?f+r+"M":"")+(o?m+o+"D":"")+(l||u||d?"T":"")+(l?_+l+"H":"")+(u?_+u+"M":"")+(d?_+d+"S":"")}var Gs=Te.prototype;return Gs.isValid=function(){return this._isValid},Gs.abs=function(){var t=this._data;return this._milliseconds=ps(this._milliseconds),this._days=ps(this._days),this._months=ps(this._months),t.milliseconds=ps(t.milliseconds),t.seconds=ps(t.seconds),t.minutes=ps(t.minutes),t.hours=ps(t.hours),t.months=ps(t.months),t.years=ps(t.years),this},Gs.add=function(t,e){return vs(this,t,e,1)},Gs.subtract=function(t,e){return vs(this,t,e,-1)},Gs.as=function(t){if(!this.isValid())return NaN;var e,s,i=this._milliseconds;if("month"===(t=E(t))||"quarter"===t||"year"===t)switch(e=this._days+i/864e5,s=this._months+ys(e),t){case"month":return s;case"quarter":return s/3;case"year":return s/12}else switch(e=this._days+Math.round(bs(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}},Gs.asMilliseconds=ks,Gs.asSeconds=xs,Gs.asMinutes=Cs,Gs.asHours=Ss,Gs.asDays=Ds,Gs.asWeeks=Ms,Gs.asMonths=Os,Gs.asQuarters=Ys,Gs.asYears=Ts,Gs.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*x(this._months/12):NaN},Gs._bubble=function(){var t,e,s,i,n,a=this._milliseconds,r=this._days,o=this._months,l=this._data;return a>=0&&r>=0&&o>=0||a<=0&&r<=0&&o<=0||(a+=864e5*gs(bs(o)+r),r=0,o=0),l.milliseconds=a%1e3,t=k(a/1e3),l.seconds=t%60,e=k(t/60),l.minutes=e%60,s=k(e/60),l.hours=s%24,r+=k(s/24),n=k(ys(r)),o+=n,r-=gs(bs(n)),i=k(o/12),o%=12,l.days=r,l.months=o,l.years=i,this},Gs.clone=function(){return We(this)},Gs.get=function(t){return t=E(t),this.isValid()?this[t+"s"]():NaN},Gs.milliseconds=js,Gs.seconds=As,Gs.minutes=Ls,Gs.hours=Es,Gs.days=Rs,Gs.weeks=function(){return k(this.days()/7)},Gs.months=Ns,Gs.years=Hs,Gs.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),s=function(t,e,s){var i=We(t).abs(),n=Is(i.as("s")),a=Is(i.as("m")),r=Is(i.as("h")),o=Is(i.as("d")),l=Is(i.as("M")),u=Is(i.as("y")),d=n<=Us.ss&&["s",n]||n<Us.s&&["ss",n]||a<=1&&["m"]||a<Us.m&&["mm",a]||r<=1&&["h"]||r<Us.h&&["hh",r]||o<=1&&["d"]||o<Us.d&&["dd",o]||l<=1&&["M"]||l<Us.M&&["MM",l]||u<=1&&["y"]||["yy",u];return d[2]=e,d[3]=+t>0,d[4]=s,Ws.apply(null,d)}(this,!t,e);return t&&(s=e.pastFuture(+this,s)),e.postformat(s)},Gs.toISOString=$s,Gs.toString=$s,Gs.toJSON=$s,Gs.locale=Be,Gs.localeData=Je,Gs.toIsoString=D("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",$s),Gs.lang=Qe,$("X",0,0,"unix"),$("x",0,0,"valueOf"),dt("x",at),dt("X",/[+-]?\d+(\.\d{1,3})?/),mt("X",(function(t,e,s){s._d=new Date(1e3*parseFloat(t,10))})),mt("x",(function(t,e,s){s._d=new Date(x(t))})),n.version="2.24.0",e=Se,n.fn=ds,n.min=function(){var t=[].slice.call(arguments,0);return Oe("isBefore",t)},n.max=function(){var t=[].slice.call(arguments,0);return Oe("isAfter",t)},n.now=function(){return Date.now?Date.now():+new Date},n.utc=f,n.unix=function(t){return Se(1e3*t)},n.months=function(t,e){return ms(t,e,"months")},n.isDate=u,n.locale=ae,n.invalid=p,n.duration=We,n.isMoment=w,n.weekdays=function(t,e,s){return _s(t,e,s,"weekdays")},n.parseZone=function(){return Se.apply(null,arguments).parseZone()},n.localeData=oe,n.isDuration=Pe,n.monthsShort=function(t,e){return ms(t,e,"monthsShort")},n.weekdaysMin=function(t,e,s){return _s(t,e,s,"weekdaysMin")},n.defineLocale=re,n.updateLocale=function(t,e){if(null!=e){var s,i,n=te;null!=(i=ne(t))&&(n=i._config),e=P(n,e),(s=new j(e)).parentLocale=ee[t],ee[t]=s,ae(t)}else null!=ee[t]&&(null!=ee[t].parentLocale?ee[t]=ee[t].parentLocale:null!=ee[t]&&delete ee[t]);return ee[t]},n.locales=function(){return M(ee)},n.weekdaysShort=function(t,e,s){return _s(t,e,s,"weekdaysShort")},n.normalizeUnits=E,n.relativeTimeRounding=function(t){return void 0===t?Is:"function"==typeof t&&(Is=t,!0)},n.relativeTimeThreshold=function(t,e){return void 0!==Us[t]&&(void 0===e?Us[t]:(Us[t]=e,"s"===t&&(Us.ss=e-1),!0))},n.calendarFormat=function(t,e){var s=t.diff(e,"days",!0);return s<-6?"sameElse":s<-1?"lastWeek":s<0?"lastDay":s<1?"sameDay":s<2?"nextDay":s<7?"nextWeek":"sameElse"},n.prototype=ds,n.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},n}()}).call(this,s("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,e,s){"use strict";function i(t,e,s,i,n,a,r,o){var l,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=s,u._compiled=!0),i&&(u.functional=!0),a&&(u._scopeId="data-v-"+a),r?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),n&&n.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(r)},u._ssrRegister=l):n&&(l=o?function(){n.call(this,this.$root.$options.shadowRoot)}:n),l)if(u.functional){u._injectStyles=l;var d=u.render;u.render=function(t,e){return l.call(e),d(t,e)}}else{var c=u.beforeCreate;u.beforeCreate=c?[].concat(c,l):[l]}return{exports:t,options:u}}s.d(e,"a",(function(){return i}))},"./node_modules/webpack/buildin/global.js":function(t,e){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(t){"object"==typeof window&&(s=window)}t.exports=s},"./node_modules/webpack/buildin/module.js":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./node_modules/xss/lib/default.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,a=s("./node_modules/xss/lib/util.js");function r(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var o=new i;function l(t){return t.replace(u,"&lt;").replace(d,"&gt;")}var u=/</g,d=/>/g,c=/"/g,h=/&quot;/g,f=/&#([a-zA-Z0-9]*);?/gim,m=/&colon;?/gim,_=/&newline;?/gim,p=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,v=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function y(t){return t.replace(c,"&quot;")}function b(t){return t.replace(h,'"')}function w(t){return t.replace(f,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function k(t){return t.replace(m,":").replace(_," ")}function x(t){for(var e="",s=0,i=t.length;s<i;s++)e+=t.charCodeAt(s)<32?" ":t.charAt(s);return a.trim(e)}function C(t){return t=x(t=k(t=w(t=b(t))))}function S(t){return t=l(t=y(t))}var D=/<!--[\s\S]*?-->/g;e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},e.getDefaultWhiteList=r,e.onTag=function(t,e,s){},e.onIgnoreTag=function(t,e,s){},e.onTagAttr=function(t,e,s){},e.onIgnoreTagAttr=function(t,e,s){},e.safeAttrValue=function(t,e,s,i){if(s=C(s),"href"===e||"src"===e){if("#"===(s=a.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===e){if(p.lastIndex=0,p.test(s))return""}else if("style"===e){if(v.lastIndex=0,v.test(s))return"";if(g.lastIndex=0,g.test(s)&&(p.lastIndex=0,p.test(s)))return"";!1!==i&&(s=(i=i||o).process(s))}return s=S(s)},e.escapeHtml=l,e.escapeQuote=y,e.unescapeQuote=b,e.escapeHtmlEntities=w,e.escapeDangerHtml5Entities=k,e.clearNonPrintableCharacter=x,e.friendlyAttrValue=C,e.escapeAttrValue=S,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var s=!Array.isArray(t),i=[],n=!1;return{onIgnoreTag:function(r,o,l){if(function(e){return!!s||-1!==a.indexOf(t,e)}(r)){if(l.isClosing){var u="[/removed]",d=l.position+u.length;return i.push([!1!==n?n:l.position,d]),n=!1,u}return n||(n=l.position),"[removed]"}return e(r,o,l)},remove:function(t){var e="",s=0;return a.forEach(i,(function(i){e+=t.slice(s,i[0]),s=i[1]})),e+=t.slice(s)}}},e.stripCommentTag=function(t){return t.replace(D,"")},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return 127!==e&&(!(e<=31)||(10===e||13===e))}))).join("")},e.cssFilter=o,e.getDefaultCSSWhiteList=n},"./node_modules/xss/lib/index.js":function(t,e,s){var i=s("./node_modules/xss/lib/default.js"),n=s("./node_modules/xss/lib/parser.js"),a=s("./node_modules/xss/lib/xss.js");function r(t,e){return new a(e).process(t)}for(var o in(e=t.exports=r).filterXSS=r,e.FilterXSS=a,i)e[o]=i[o];for(var o in n)e[o]=n[o];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,e,s){var i=s("./node_modules/xss/lib/util.js");function n(t){var e=i.spaceIndex(t);if(-1===e)var s=t.slice(1,-1);else s=t.slice(1,e+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function a(t){return"</"===t.slice(0,2)}var r=/[^a-zA-Z0-9_:\.\-]/gim;function o(t,e){for(;e<t.length;e++){var s=t[e];if(" "!==s)return"="===s?e:-1}}function l(t,e){for(;e>0;e--){var s=t[e];if(" "!==s)return"="===s?e:-1}}function u(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,s){var i="",r=0,o=!1,l=!1,u=0,d=t.length,c="",h="";for(u=0;u<d;u++){var f=t.charAt(u);if(!1===o){if("<"===f){o=u;continue}}else if(!1===l){if("<"===f){i+=s(t.slice(r,u)),o=u,r=u;continue}if(">"===f){i+=s(t.slice(r,o)),c=n(h=t.slice(o,u+1)),i+=e(o,i.length,c,h,a(h)),r=u+1,o=!1;continue}if(('"'===f||"'"===f)&&"="===t.charAt(u-1)){l=f;continue}}else if(f===l){l=!1;continue}}return r<t.length&&(i+=s(t.substr(r))),i},e.parseAttr=function(t,e){var s=0,n=[],a=!1,d=t.length;function c(t,s){if(!((t=(t=i.trim(t)).replace(r,"").toLowerCase()).length<1)){var a=e(t,s||"");a&&n.push(a)}}for(var h=0;h<d;h++){var f,m=t.charAt(h);if(!1!==a||"="!==m)if(!1===a||h!==s||'"'!==m&&"'"!==m||"="!==t.charAt(h-1))if(/\s|\n|\t/.test(m)){if(t=t.replace(/\s|\n|\t/g," "),!1===a){if(-1===(f=o(t,h))){c(i.trim(t.slice(s,h))),a=!1,s=h+1;continue}h=f-1;continue}if(-1===(f=l(t,h-1))){c(a,u(i.trim(t.slice(s,h)))),a=!1,s=h+1;continue}}else;else{if(-1===(f=t.indexOf(m,h+1)))break;c(a,i.trim(t.slice(s+1,f))),a=!1,s=(h=f)+1}else a=t.slice(s,h),s=h+1}return s<t.length&&(!1===a?c(t.slice(s)):c(a,u(i.trim(t.slice(s))))),i.trim(n.join(" "))}},"./node_modules/xss/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,n;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,n=t.length;i<n;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,n=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),r=a.parseTag,o=a.parseAttr,l=s("./node_modules/xss/lib/util.js");function u(t){return null==t}function d(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=n.onIgnoreTagStripAll),t.whiteList=t.whiteList||n.whiteList,t.onTag=t.onTag||n.onTag,t.onTagAttr=t.onTagAttr||n.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||n.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||n.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||n.safeAttrValue,t.escapeHtml=t.escapeHtml||n.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}d.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onTag,a=e.onIgnoreTag,d=e.onTagAttr,c=e.onIgnoreTagAttr,h=e.safeAttrValue,f=e.escapeHtml,m=this.cssFilter;e.stripBlankChar&&(t=n.stripBlankChar(t)),e.allowCommentTag||(t=n.stripCommentTag(t));var _=!1;if(e.stripIgnoreTagBody){_=n.StripTagBody(e.stripIgnoreTagBody,a);a=_.onIgnoreTag}var p=r(t,(function(t,e,n,r,_){var p,v={sourcePosition:t,position:e,isClosing:_,isWhite:s.hasOwnProperty(n)};if(!u(p=i(n,r,v)))return p;if(v.isWhite){if(v.isClosing)return"</"+n+">";var g=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var s="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return s&&(t=l.trim(t.slice(0,-1))),{html:t,closing:s}}(r),y=s[n],b=o(g.html,(function(t,e){var s,i=-1!==l.indexOf(y,t);return u(s=d(n,t,e,i))?i?(e=h(n,t,e,m))?t+'="'+e+'"':t:u(s=c(n,t,e,i))?void 0:s:s}));r="<"+n;return b&&(r+=" "+b),g.closing&&(r+=" /"),r+=">"}return u(p=a(n,r,v))?f(r):p}),f);return _&&(p=_.remove(p)),p},t.exports=d},"./src/audit.js":function(t,e,s){"use strict";s.r(e);var i=s("vue"),n=s.n(i),a=s("./src/helper/base_hepler.js"),r=s("./src/component/footer.vue"),o=s("./node_modules/lodash/chunk.js"),l=s.n(o),u=s("./src/component/pagination.vue"),d=s("./node_modules/moment/moment.js"),c={mixins:[a.a],name:"logs",data:function(){return{filter:{date_range:null,username:"",ip_address:"",events:[],event_all:!0,is_open:!1,date_from:null,date_to:null},event_types:auditData.filters.types,data:{logs:[],chunks:[],total_items:0,total_pages:0,paged:1},misc:auditData.misc,endpoints:auditData.endpoints,nonces:auditData.nonces,state:{on_saving:!1,is_fetching:!1}}},methods:{date_range:function(){},build_filter_url:function(t){},paging:function(t){this.data.paged=t},do_filter:function(){var t=this,e=this.data.logs.filter((function(e){return(""===t.filter.username||-1!==e.user.indexOf(t.filter.username))&&((null===t.filter.ip_address||-1!==e.ip.indexOf(t.filter.ip_address))&&(!1!==t.filter.event_all||-1!==t.filter.events.indexOf(e.event_type)))}));t.data.chunks=l()(e,40),t.data.total_items=e.length,t.data.total_pages=Math.ceil(t.data.total_items/40),t.data.paged=1},fetch_data:function(t){var e=this;this.state.is_fetching=!0;var s=JSON.parse(JSON.stringify(this.filter));delete s.is_open,delete s.event_all,delete s.date_range,this.httpGetRequest("loadData",s,(function(s){!0===s.success?(e.data.logs=Object.values(s.data.logs),e.data.total_items=s.data.total_items,e.data.total_pages=s.data.total_pages,e.data.chunks=l()(e.data.logs,40),e.data.paged=1,e.state.is_fetching=!1,void 0!==t&&t()):Defender.showNotification("error",s.message)}),!1)},format_time:function(t){return Array.isArray(t)?this.$options.filters.moment(new Date(1e3*t[1]),this.misc.date_format):this.$options.filters.moment(new Date(1e3*t),this.misc.date_format)}},computed:{get_logs:function(){var t=[];return this.data.chunks.length>0&&void 0!==this.data.chunks[this.data.paged-1]&&(t=this.data.chunks[this.data.paged-1]),t},get_count:function(){return this.vsprintf(this.__("%s results"),this.data.total_items)},next_icon:function(){return'<i class="sui-icon-chevron-right" aria-hidden="true"></i>'},prev_icon:function(){return'<i class="sui-icon-chevron-left" aria-hidden="true"></i>'},min_date:function(){return d().format()},max_date:function(){return d().subtract(30,"days").format()},get_export_url:function(){var t=ajaxurl+"?action="+this.endpoints.exportAsCvs+"&_wpnonce="+this.nonces.exportAsCvs;return t+="&date_from="+this.filter.date_from,t+="&date_to="+this.filter.date_to,this.filter.events.forEach((function(e){t+="&event_type[]="+e})),t+="&term="+this.filter.username,t+="&ip="+this.filter.ip_address}},watch:{"filter.date_range":function(t,e){null!==t&&null!==e&&t!==e&&this.fetch_data()}},components:{pagination:u.a},created:function(){var t=new URLSearchParams(window.location.search),e=null!==t.get("date_from")?t.get("date_from"):d().subtract(7,"day").format("MM/DD/YYYY"),s=null!==t.get("date_to")?t.get("date_to"):d().format("MM/DD/YYYY");this.filter.date_range=e+" - "+s,this.filter.date_from=e,this.filter.date_to=s;var i=this;this.fetch_data((function(){i.$parent.$emit("events_in_7_days",i.data.logs.length)}))},mounted:function(){var t=this;this.$nextTick((function(){jQuery("#date-range-picker").daterangepicker({autoApply:!0,maxDate:d().format("MM/DD/YYYY"),minDate:d().subtract(1,"year").format("MM/DD/YYYY"),locale:{format:"MM/DD/YYYY",separator:"-"},ranges:{Today:[d(),d()],"7 Days":[d().subtract(6,"days"),d()],"30 Days":[d().subtract(29,"days"),d()]},template:'<div class="daterangepicker wd-calendar"><div class="ranges"></div><div class="drp-calendar left"><div class="calendar-table"></div><div class="calendar-time"></div></div><div class="drp-calendar right"><div class="calendar-table"></div><div class="calendar-time"></div></div></div>',showCustomRangeLabel:!1,alwaysShowCalendars:!0}),jQuery("#date-range-picker").on("apply.daterangepicker",(function(e,s){t.filter.date_range=s.startDate.format("MM/DD/YYYY")+"-"+s.endDate.format("MM/DD/YYYY"),t.filter.date_from=s.startDate.format("MM/DD/YYYY"),t.filter.date_to=s.endDate.format("MM/DD/YYYY")}))}))}},h=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),f=Object(h.a)(c,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t"+t._s(t.__("Event Logs"))+"\n\t\t")]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.get_export_url}},[s("i",{staticClass:"sui-icon-upload-cloud",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t"+t._s(t.__("Export CSV"))+"\n\t\t\t")])])]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t"+t._s(t.__("Here are your latest event logs showing what's been happening behind the scenes."))+"\n\t\t")]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-5"},[s("div",{staticClass:"inline-form"},[s("label",[t._v(t._s(t.__("Date range")))]),t._v(" "),s("div",{staticClass:"sui-date"},[s("i",{staticClass:"sui-icon-calendar",attrs:{"aria-hidden":"true"}}),t._v(" "),s("input",{staticClass:"sui-form-control",attrs:{id:"date-range-picker",name:"date_from",type:"text"},domProps:{value:t.filter.date_range}})])])]),t._v(" "),s("div",{staticClass:"sui-col-md-7"},[s("div",{staticClass:"sui-pagination-wrap"},[s("span",{staticClass:"sui-pagination-results",domProps:{textContent:t._s(t.get_count)}}),t._v(" "),t.data.total_items>0?s("pagination",{attrs:{"page-count":t.data.total_pages,"click-handler":t.paging,"prev-text":t.prev_icon,"next-text":t.next_icon,value:t.data.paged,"container-class":"sui-pagination"}}):t._e(),t._v(" "),s("button",{staticClass:"sui-button-icon sui-button-outlined sui-tooltip",attrs:{"data-tooltip":"Filter"},on:{click:function(e){t.filter.is_open=!t.filter.is_open}}},[s("i",{staticClass:"sui-icon-filter",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Open search filter")])])],1)])]),t._v(" "),s("div",{staticClass:"sui-pagination-filter",class:{"sui-open":t.filter.is_open}},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-4"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Username")))]),t._v(" "),s("div",{staticClass:"sui-control-with-icon sui-right-icon"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.username,expression:"filter.username"}],staticClass:"sui-form-control",attrs:{type:"text"},domProps:{value:t.filter.username},on:{input:function(e){e.target.composing||t.$set(t.filter,"username",e.target.value)}}}),t._v(" "),s("i",{staticClass:"sui-icon-magnifying-glass-search",attrs:{"aria-hidden":"true"}})])])]),t._v(" "),s("div",{staticClass:"sui-col-md-3"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("IP Address")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.ip_address,expression:"filter.ip_address"}],staticClass:"sui-form-control",attrs:{type:"text","data-name":"ip",placeholder:"E.g. 192.168.1.1"},domProps:{value:t.filter.ip_address},on:{input:function(e){e.target.composing||t.$set(t.filter,"ip_address",e.target.value)}}})])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-form-field"},[s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:!0===t.filter.event_all},attrs:{for:"event_filter_all"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.event_all,expression:"filter.event_all"}],attrs:{type:"radio",id:"event_filter_all","data-tab-menu":""},domProps:{value:!0,checked:t._q(t.filter.event_all,!0)},on:{change:function(e){return t.$set(t.filter,"event_all",!0)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("All"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:!1===t.filter.event_all},attrs:{for:"event_filter"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.event_all,expression:"filter.event_all"}],attrs:{type:"radio","data-tab-menu":"events-box",id:"event_filter"},domProps:{value:!1,checked:t._q(t.filter.event_all,!1)},on:{change:function(e){return t.$set(t.filter,"event_all",!1)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Specific"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:!1===t.filter.event_all},attrs:{id:"events-box","data-tab-content":"events-box"}},[s("div",{staticClass:"sui-row"},t._l(t.event_types,(function(e){return s("label",{staticClass:"sui-checkbox",attrs:{for:"chk_"+e}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.filter.events,expression:"filter.events"}],staticClass:"filterable",attrs:{id:"chk_"+e,type:"checkbox"},domProps:{value:e,checked:Array.isArray(t.filter.events)?t._i(t.filter.events,e)>-1:t.filter.events},on:{change:function(s){var i=t.filter.events,n=s.target,a=!!n.checked;if(Array.isArray(i)){var r=e,o=t._i(i,r);n.checked?o<0&&t.$set(t.filter,"events",i.concat([r])):o>-1&&t.$set(t.filter,"events",i.slice(0,o).concat(i.slice(o+1)))}else t.$set(t.filter,"events",a)}}}),t._v(" "),s("span",{attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",[t._v(t._s(e))])])})),0)])])])])])]),t._v(" "),s("hr"),t._v(" "),s("div",{staticClass:"float-r"},[s("button",{staticClass:"sui-button sui-button-blue",attrs:{type:"submit"},on:{click:t.do_filter}},[t._v("\n\t\t\t\t\t"+t._s(t.__("Apply"))+"\n\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"clear"})])]),t._v(" "),s("div",{staticClass:"sui-accordion sui-accordion-flushed no-border-top"},[s("div",{staticClass:"sui-accordion-header"},[s("div",[t._v(t._s(t.__("Event summary")))]),t._v(" "),s("div",[t._v(t._s(t.__("Date")))]),t._v(" "),s("div")]),t._v(" "),t._l(t.get_logs,(function(e){return s("div",{staticClass:"sui-accordion-item sui-default"},[s("div",{staticClass:"sui-accordion-item-header"},[s("div",{staticClass:"sui-accordion-item-title",domProps:{textContent:t._s(t.xss(e.msg))}}),t._v(" "),s("div",{domProps:{innerHTML:t._s(t.format_time(e.timestamp))}}),t._v(" "),t._m(0,!0)]),t._v(" "),s("div",{staticClass:"sui-accordion-item-body"},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-body"},[s("strong",[t._v(t._s(t.__("Description")))]),t._v(" "),s("p",{domProps:{textContent:t._s(e.msg)}}),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Context")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.context)},domProps:{textContent:t._s(t.xss(e.context))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Type")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.event_type)},domProps:{textContent:t._s(t.xss(e.event_type))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Ip Address")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.ip)},domProps:{textContent:t._s(t.xss(e.ip))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("User")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.user)},domProps:{textContent:t._s(t.xss(e.user))}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("strong",{staticClass:"block"},[t._v(t._s(t.__("Date / Time")))]),t._v(" "),s("a",{staticClass:"block",attrs:{href:t.build_filter_url(e.timestamp)}},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t._f("moment")(new Date(1e3*e.timestamp),t.misc.date_format))+"\n\t\t\t\t\t\t\t\t")])])])])])])])}))],2),t._v(" "),0===t.data.chunks.length?s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("div",{staticClass:"sui-notice"},[!0===t.state.is_fetching?s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("Loading events..."))+"\n\t\t\t\t")]):s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("There have been no events logged in the selected time period."))+"\n\t\t\t\t")])])])]):t._e(),t._v(" "),s("div",{staticClass:"sui-center-box"},[s("div",{staticClass:"sui-pagination-wrap"},[t.data.total_items>0?s("pagination",{attrs:{"page-count":t.data.total_pages,"click-handler":t.paging,"prev-text":t.prev_icon,"next-text":t.next_icon,value:t.data.paged,"container-class":"sui-pagination"}}):t._e()],1)]),t._v(" "),t.state.is_fetching?s("overlay"):t._e()],1)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",[e("button",{staticClass:"sui-button-icon sui-accordion-open-indicator",attrs:{"aria-label":"Open item"}},[e("i",{staticClass:"sui-icon-chevron-down",attrs:{"aria-hidden":"true"}})])])}],!1,null,null,null).exports,m={mixins:[a.a],name:"settings",data:function(){return{model:auditData.model.settings,state:{on_saving:!1},nonces:auditData.nonces,endpoints:auditData.endpoints}},methods:{toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"enabled",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.$parent.$emit("enable_state",t)}))},updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})}},mounted:function(){var t=this;jQuery("#storage_days").change((function(){t.model.storage_days=jQuery(this).val()}))}},_=Object(h.a)(m,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box audit-settings"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Settings"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Storage")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Events are stored in our API. You can choose how many days to keep logs for before they are removed."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.storage_days,expression:"model.storage_days"}],attrs:{name:"storage_days",id:"storage_days"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"storage_days",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"24 hours"}},[t._v(t._s(t.__("24 hours")))]),t._v(" "),s("option",{attrs:{value:"7 days"}},[t._v(t._s(t.__("7 days")))]),t._v(" "),s("option",{attrs:{value:"30 days"}},[t._v(t._s(t.__("30 days")))]),t._v(" "),s("option",{attrs:{value:"3 months"}},[t._v(t._s(t.__("3 months")))]),t._v(" "),s("option",{attrs:{value:"6 months"}},[t._v(t._s(t.__("6 months")))]),t._v(" "),s("option",{attrs:{value:"12 months"}},[t._v(t._s(t.__("12 months")))])]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose how long you'd like to store your event logs locally before wiping the oldest."))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If you no longer want to use this feature you can turn it off at any time."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1)}}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])])}),[],!1,null,null,null).exports,p=s("./src/component/recipients.vue"),v={mixins:[a.a],name:"report",data:function(){return{model:auditData.model.report,misc:auditData.misc,nonces:auditData.nonces,endpoints:auditData.endpoints,state:{on_saving:!1,show_day:!0}}},components:{recipients:p.a},methods:{updateRecipients:function(t){this.model.receipts=t},updateSettings:function(){var t=this.model,e=this;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)},(function(t){e.$parent.$emit("update_report_time",t.data.summary)}))}},mounted:function(){var t=this;jQuery(".report-select").change((function(){var e=jQuery(this).attr("name");t.model[e]=jQuery(this).val()})),this.model.day=this.model.day.toLowerCase()},watch:{"model.frequency":function(){this.state.show_day=this.model.frequency>1}},created:function(){this.state.show_day=this.model.frequency>1},computed:{timezone_text:function(){return this.vsprintf(this.__("Your timezone is set to UTC %s, so your current time is %s."),this.misc.tz,this.misc.current_time)}}},g=Object(h.a)(v,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("Notification"))+"\n\t\t\t")])]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-body"},[s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Scheduled Reports"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Schedule Defender to automatically email you a summary of all your website events."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.notification,expression:"model.notification"}],attrs:{type:"checkbox",name:"notification",id:"toggle_notification"},domProps:{checked:Array.isArray(t.model.notification)?t._i(t.model.notification,null)>-1:t.model.notification},on:{change:function(e){var s=t.model.notification,i=e.target,n=!!i.checked;if(Array.isArray(s)){var a=t._i(s,null);i.checked?a<0&&t.$set(t.model,"notification",s.concat([null])):a>-1&&t.$set(t.model,"notification",s.slice(0,a).concat(s.slice(a+1)))}else t.$set(t.model,"notification",n)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"toggle_notification"}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Send regular email report"))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame sui-toggle-content"},[s("div",{staticClass:"margin-top-30"},[s("recipients",{attrs:{id:"report_dialog",recipients:t.model.receipts},on:{"update:recipients":t.updateRecipients}})],1),t._v(" "),s("div",{staticClass:"sui-form-field margin-top-30 schedule-box"},[s("label",{staticClass:"sui-label"},[t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Frequency"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.frequency,expression:"model.frequency"}],staticClass:"report-select",attrs:{name:"frequency"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"frequency",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"1"}},[t._v(t._s(t.__("Daily")))]),t._v(" "),s("option",{attrs:{value:"7"}},[t._v(t._s(t.__("Weekly")))]),t._v(" "),s("option",{attrs:{value:"30"}},[t._v(t._s(t.__("Monthly")))])])])]),t._v(" "),s("div",{staticClass:"sui-row"},[s("div",{directives:[{name:"show",rawName:"v-show",value:t.state.show_day,expression:"state.show_day"}],staticClass:"sui-col days-container"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Day of the week")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.day,expression:"model.day"}],staticClass:"report-select",attrs:{name:"day"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"day",e.target.multiple?s:s[0])}}},t._l(t.misc.days_of_week,(function(e){return s("option",{domProps:{value:e.toLowerCase()}},[t._v(t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t")])})),0)]),t._v(" "),s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Time of day")))]),t._v(" "),s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.time,expression:"model.time"}],staticClass:"report-select",attrs:{name:"time"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"time",e.target.multiple?s:s[0])}}},t._l(t.misc.times_of_day,(function(e,i){return s("option",{domProps:{value:i}},[t._v(t._s(e)+"\n\t\t\t\t\t\t\t\t\t\t\t")])})),0)]),t._v(" "),s("div",{staticClass:"sui-col-md-12"},[s("span",{staticClass:"sui-p-small",domProps:{innerHTML:t._s(t.timezone_text)}})])])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue save-changes",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])])}),[],!1,null,null,null).exports,y={mixins:[a.a],name:"audit",data:function(){return{view:"",summary:{report_time:auditData.summary.report_time,events_in_7_days:"-"},enabled:auditData.enabled,state:{on_saving:!1},nonces:auditData.nonces,endpoints:auditData.endpoints}},components:{"app-footer":r.a,logs:f,settings:_,report:g},methods:{updateSummary:function(t){this.summary.events_in_7_days=t},toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"enabled",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.enabled=t,s.$nextTick((function(){s.rebindSUI()}))}))}},created:function(){var t=new URLSearchParams(window.location.search).get("view");null===t&&(t="logs"),this.view=t,this.$on("events_in_7_days",(function(t){this.summary.events_in_7_days=t})),this.$on("update_report_time",(function(t){this.summary.report_time=t.report_time})),this.$on("enable_state",(function(t){this.enabled=t}))},watch:{view:function(t,e){history.replaceState({},null,this.adminUrl()+"admin.php?page=wdf-logging&view="+this.view)}},mounted:function(){self=this,jQuery(".sui-mobile-nav").change((function(){self.view=jQuery(this).val()}))}},b=Object(h.a)(y,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:t.maybeHighContrast()},[t.enabled?s("div",{staticClass:"auditing"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#audit-logging"}})],1),t._v(" "),s("summary-box",{attrs:{"css-class":"sui-summary-sm"}},[s("div",{staticClass:"sui-summary-segment"},[s("div",{staticClass:"sui-summary-details"},[s("span",{staticClass:"sui-summary-large",domProps:{textContent:t._s(t.summary.events_in_7_days)}}),t._v(" "),s("span",{staticClass:"sui-summary-sub"},[t._v("\n "+t._s(t.__("Events logged in the past 7 days"))+"\n ")])])]),t._v(" "),s("div",{staticClass:"sui-summary-segment"},[s("ul",{staticClass:"sui-list"},[s("li",[s("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Reporting")))]),t._v(" "),s("span",{staticClass:"sui-list-detail",domProps:{textContent:t._s(t.summary.report_time)}})])])])]),t._v(" "),s("div",{staticClass:"sui-row-with-sidenav"},[s("div",{staticClass:"sui-sidenav"},[s("ul",{staticClass:"sui-vertical-tabs sui-sidenav-hide-md"},[s("li",{staticClass:"sui-vertical-tab",class:{current:"logs"===t.view},attrs:{id:"tab_log"}},[s("a",{attrs:{href:t.adminUrl("admin.php?page=wdf-logging")},on:{click:function(e){e.preventDefault(),t.view="logs"}}},[t._v(t._s(t.__("Event Logs")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"settings"===t.view},attrs:{id:"tab_settings"}},[s("a",{attrs:{href:t.adminUrl("admin.php?page=wdf-logging&view=settings")},on:{click:function(e){e.preventDefault(),t.view="settings"}}},[t._v(t._s(t.__("Settings")))])]),t._v(" "),s("li",{staticClass:"sui-vertical-tab",class:{current:"report"===t.view},attrs:{id:"tab_report"}},[s("a",{attrs:{href:t.adminUrl("admin.php?page=wdf-logging&view=report")},on:{click:function(e){e.preventDefault(),t.view="report"}}},[t._v(t._s(t.__("Reports")))])])]),t._v(" "),s("div",{staticClass:"sui-sidenav-hide-lg"},[s("select",{staticClass:"sui-mobile-nav",staticStyle:{display:"none"}},[s("option",{attrs:{value:"logs"}},[t._v(t._s(t.__("Event Logs")))]),t._v(" "),s("option",{attrs:{value:"settings"}},[t._v(t._s(t.__("Settings")))]),t._v(" "),s("option",{attrs:{value:"report"}},[t._v(t._s(t.__("Reports")))])])])]),t._v(" "),s("logs",{directives:[{name:"show",rawName:"v-show",value:"logs"===t.view,expression:"view==='logs'"}]}),t._v(" "),s("settings",{directives:[{name:"show",rawName:"v-show",value:"settings"===t.view,expression:"view==='settings'"}]}),t._v(" "),s("report",{directives:[{name:"show",rawName:"v-show",value:"report"===t.view,expression:"view==='report'"}]})],1),t._v(" "),s("app-footer")],1):s("div",{staticClass:"auditing"},[s("div",{staticClass:"sui-header"},[s("h1",{staticClass:"sui-header-title"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),s("div",{staticClass:"sui-actions-right"},[s("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender/#audit-logging"}})],1)]),t._v(" "),s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-message"},[!1===t.maybeHideBranding()?s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/audit-disabled-man.svg"),"aria-hidden":"true"}}):t._e(),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n "+t._s(t.__("Track and log each and every event when changes are made to your website and getdetailed reports on what's going on behind the scenes, including any hacking attempts onyour site."))+"\n ")]),t._v(" "),s("submit-button",{attrs:{type:"button","css-class":"sui-button-blue activate",state:t.state},on:{click:function(e){return t.toggle(!0)}}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1)])])])])}),[],!1,null,null,null).exports,w={mixins:[a.a],name:"audit-free"},k=Object(h.a)(w,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-wrap",class:t.maybeHighContrast},[s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-message"},[s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/audit-disabled-man.svg")}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n "+t._s(t.__("Track and log each and every event when changes are made to your website and get detailed reports on what's going on behind the scenes, including any hacking attempts on your site. This is a pro feature that requires an active WPMU DEV membership. Try it free today!"))+"\n ")]),t._v(" "),s("a",{staticClass:"sui-button sui-button-purple",attrs:{href:t.campaign_url("defender_auditlogging_upgrade_button"),target:"_blank"}},[t._v("Upgrade to Pro")])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[this._v("Pro")])])}],!1,null,null,null).exports,x=s("./src/component/overlay.vue"),C=s("./src/component/submit-button.vue"),S=s("./src/component/doc-link.vue"),D=s("./src/component/summary-box.vue");n.a.filter("moment",(function(t,e){return t?d(t).format(e):d().format(e)})),n.a.component("overlay",x.a),n.a.component("submit-button",C.a),n.a.component("app-footer",r.a),n.a.component("doc-link",S.a),n.a.component("summary-box",D.a);new n.a({el:"#defender",components:{audit:b,audit_free:k},render:function(t){return 0===parseInt(defender.is_free)?t(b):t(k)}})},"./src/component/doc-link.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return!1===this.whitelabel.hide_doc_link?e("div",{staticClass:"sui-actions-right"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[e("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);e.a=a.exports},"./src/component/footer.vue":function(t,e,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[!0===t.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[t._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?s("div",[t.is_free?s("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);e.a=a.exports},"./src/component/overlay.vue":function(t,e,s){"use strict";var i={name:"overlay"},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement;this._self._c;return this._m(0)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"wd-overlay"},[e("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);e.a=a.exports},"./src/component/pagination.vue":function(t,e,s){"use strict";var i={props:{value:{type:Number},pageCount:{type:Number,required:!0},forcePage:{type:Number},clickHandler:{type:Function,default:function(){}},pageRange:{type:Number,default:3},marginPages:{type:Number,default:1},prevText:{type:String,default:"Prev"},nextText:{type:String,default:"Next"},breakViewText:{type:String,default:"…"},containerClass:{type:String},pageClass:{type:String},pageLinkClass:{type:String},prevClass:{type:String},prevLinkClass:{type:String},nextClass:{type:String},nextLinkClass:{type:String},breakViewClass:{type:String},breakViewLinkClass:{type:String},activeClass:{type:String,default:"active"},disabledClass:{type:String,default:"disabled"},noLiSurround:{type:Boolean,default:!1},firstLastButton:{type:Boolean,default:!1},firstButtonText:{type:String,default:"First"},lastButtonText:{type:String,default:"Last"},hidePrevNext:{type:Boolean,default:!1}},beforeUpdate:function(){void 0!==this.forcePage&&this.forcePage!==this.selected&&(this.selected=this.forcePage)},computed:{selected:{get:function(){return this.value||this.innerValue},set:function(t){this.innerValue=t}},pages:function(){var t=this,e={};if(this.pageCount<=this.pageRange)for(var s=0;s<this.pageCount;s++){var i={index:s,content:s+1,selected:s===this.selected-1};e[s]=i}else{for(var n=Math.floor(this.pageRange/2),a=function(s){var i={index:s,content:s+1,selected:s===t.selected-1};e[s]=i},r=function(t){e[t]={disabled:!0,breakView:!0}},o=0;o<this.marginPages;o++)a(o);var l=0;this.selected-n>0&&(l=this.selected-1-n);var u=l+this.pageRange-1;u>=this.pageCount&&(l=(u=this.pageCount-1)-this.pageRange+1);for(var d=l;d<=u&&d<=this.pageCount-1;d++)a(d);l>this.marginPages&&r(l-1),u+1<this.pageCount-this.marginPages&&r(u+1);for(var c=this.pageCount-1;c>=this.pageCount-this.marginPages;c--)a(c)}return e}},data:function(){return{innerValue:1}},methods:{handlePageSelected:function(t){this.selected!==t&&(this.innerValue=t,this.$emit("input",t),this.clickHandler(t))},prevPage:function(){this.selected<=1||this.handlePageSelected(this.selected-1)},nextPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.selected+1)},firstPageSelected:function(){return 1===this.selected},lastPageSelected:function(){return this.selected===this.pageCount||0===this.pageCount},selectFirstPage:function(){this.selected<=1||this.handlePageSelected(1)},selectLastPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.pageCount)}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.noLiSurround?s("div",{class:t.containerClass},[t.firstLastButton?s("a",{class:[t.pageLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}}):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.prevLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}}),t._v(" "),t._l(t.pages,(function(e){return[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass,e.disabled?t.disabledClass:""],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:"",t.disabledClass],attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:""],attrs:{tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])]})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.nextLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}}),t._v(" "),t.firstLastButton?s("a",{class:[t.pageLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}}):t._e()],2):s("ul",{class:t.containerClass},[t.firstLastButton?s("li",{class:[t.pageClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}})]):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.prevClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.prevLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}})]),t._v(" "),t._l(t.pages,(function(e){return s("li",{class:[t.pageClass,e.selected?t.activeClass:"",e.disabled?t.disabledClass:"",e.breakView?t.breakViewClass:""]},[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:t.pageLinkClass,attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:t.pageLinkClass,attrs:{disabled:e.selected,tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])])})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.nextClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.nextLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}})]),t._v(" "),t.firstLastButton?s("li",{class:[t.pageClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}})]):t._e()],2)}),[],!1,null,null,null);e.a=a.exports},"./src/component/recipients.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["recipients","id"],data:function(){return{first_name:"",email:"",observers:[],can_add:!1,saving_warning:!1,validate:{email:""}}},created:function(){this.observers=this.recipients},watch:{email:function(){if(this.validateEmail(this.email)){var t=!0,e=this;this.observers.forEach((function(s,i){if(s.email===e.email)return t=!1,void(e.validate.email=e.__("This email address is already in use"))})),this.can_add=t,!0===t&&(this.validate.email="")}else this.can_add=!1,this.validate.email=this.__("Invalid email address")},observers:function(){0===this.observers.length?this.saving_warning=!0:this.saving_warning=!1,void 0!==this.event&&this.$emit("update:recipients",this.observers)}},methods:{addRecipient:function(){this.observers.push({first_name:this.first_name,email:this.email}),jQuery.each(SUI.dialogs,(function(t,e){e.hide()})),this.first_name="",this.email=""},removeRecipient:function(t){this.observers.splice(t,1)},validateEmail:function(t){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(t).toLowerCase())}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("div",{directives:[{name:"show",rawName:"v-show",value:t.saving_warning,expression:"saving_warning"}],staticClass:"sui-notice sui-notice-warning"},[s("p",[t._v("\n\t\t\t"+t._s(t.__("You've removed all recipients. If you save without a recipient, we'll automatically turn of reports"))+"\n\t\t")])]),t._v(" "),s("div",{staticClass:"sui-recipients"},[t._l(t.observers,(function(e,i){return s("div",{staticClass:"sui-recipient"},[s("span",{staticClass:"sui-recipient-name"},[t._v(t._s(e.first_name))]),t._v(" "),s("span",{staticClass:"sui-recipient-email"},[t._v(t._s(e.email))]),t._v(" "),s("button",{staticClass:"sui-button-icon",attrs:{type:"button"},on:{click:function(e){return t.removeRecipient(i)}}},[s("i",{staticClass:"sui-icon-trash",attrs:{"aria-hidden":"true"}})])])})),t._v(" "),s("button",{staticClass:"sui-button sui-button-ghost add-recipient",attrs:{"data-a11y-dialog-show":t.id,type:"button"}},[s("i",{staticClass:"sui-icon-plus",attrs:{"aria-hidden":"true"}}),t._v(" "+t._s(t.__("Add Recipient"))+"\n\t\t")])],2),t._v(" "),s("div",{staticClass:"sui-dialog sui-dialog-sm",attrs:{"aria-hidden":"true",tabindex:"-1",id:t.id}},[s("div",{staticClass:"sui-dialog-overlay"}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"dialogTitle","aria-describedby":"dialogDescription",role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add Recipient"))+"\n\t\t\t\t\t")]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add as many recipients as you like, they will receive email reports as per the schedule you set."))+"\n\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("First name")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.first_name,expression:"first_name"}],staticClass:"sui-form-control recipient_name",attrs:{type:"text"},domProps:{value:t.first_name},on:{input:function(e){e.target.composing||(t.first_name=e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-form-field",class:{"sui-form-field-error":t.validate.email.length>0}},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Email")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.email,expression:"email"}],staticClass:"sui-form-control recipient_email",attrs:{type:"text"},domProps:{value:t.email},on:{input:function(e){e.target.composing||(t.email=e.target.value)}}}),t._v(" "),s("span",{directives:[{name:"show",rawName:"v-show",value:t.validate.email.length>0,expression:"validate.email.length > 0"}],staticClass:"sui-error-message",domProps:{textContent:t._s(this.validate.email)}})])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("button",{staticClass:"sui-button sui-button-ghost",attrs:{type:"button","data-a11y-dialog-hide":"recipient-dialog"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Cancel"))+"\n\t\t\t\t\t")]),t._v(" "),s("button",{staticClass:"sui-modal-close sui-button recipient_save",attrs:{type:"button",disabled:!1===t.can_add},on:{click:t.addRecipient}},[t._v(t._s(t.__("Add"))+"\n\t\t\t\t\t")])])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-right"},[e("button",{staticClass:"sui-dialog-close",attrs:{type:"button","data-a11y-dialog-hide":"","aria-label":"Close this dialog window"}})])}],!1,null,null,null);e.a=a.exports},"./src/component/submit-button.vue":function(t,e,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(e){return t.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);e.a=a.exports},"./src/component/summary-box.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},n=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),a=Object(n.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[e("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);e.a=a.exports},"./src/helper/base_hepler.js":function(t,e,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),n=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var s=[],i=!0,n=!1,a=void 0;try{for(var r,o=t[Symbol.iterator]();!(i=(r=o.next()).done)&&(s.push(r.value),!e||s.length!==e);i=!0);}catch(t){n=!0,a=t}finally{try{!i&&o.return&&o.return()}finally{if(n)throw a}}return s}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},a=wp.i18n,r={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,e,s,n){return"a"===t&&"href"===e&&"%s"===s?"%s":Object(i.safeAttrValue)(t,e,s,n)}},o=new i.FilterXSS(r),l=[];e.a={methods:{__:function(t){var e=a.__(t,"wpdef");return o.process(e)},xss:function(t){return o.process(t)},vsprintf:function(t){return a.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,e,s,i,n){var a=this;void 0===n&&(this.state.on_saving=!0);var r=ajaxurl+"?action="+this.endpoints[e]+"&_wpnonce="+this.nonces[e],o=jQuery.ajax({url:r,method:t,data:s,success:function(t){var e=t.data;a.state.on_saving=!1,void 0!==e&&void 0!==e.message&&(t.success?Defender.showNotification("success",e.message):Defender.showNotification("error",e.message)),void 0!==i&&i(t)}});l.push(o)},httpGetRequest:function(t,e,s,i){this.httpRequest("get",t,e,s,i)},httpPostRequest:function(t,e,s,i){this.httpRequest("post",t,e,s,i)},abortAllRequests:function(){for(var t=0;t<l.length;t++)l[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,e){var s=e.split("="),i=n(s,2),a=i[0],r=i[1];return t[a]=r?decodeURIComponent(r.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,e){t.exports=Vue}});
assets/app/dashboard.js CHANGED
@@ -1 +1 @@
1
- !function(t){var s=window.webpackHotUpdate;window.webpackHotUpdate=function(t,e){!function(t,s){if(!y[t]||!b[t])return;for(var e in b[t]=!1,s)Object.prototype.hasOwnProperty.call(s,e)&&(v[e]=s[e]);0==--f&&0===m&&x()}(t,e),s&&s(t,e)};var e,i=!0,a="d0b3332498cfafc2e0f1",n={},o=[],r=[];function c(t){var s=A[t];if(!s)return j;var i=function(i){return s.hot.active?(A[i]?-1===A[i].parents.indexOf(t)&&A[i].parents.push(t):(o=[t],e=i),-1===s.children.indexOf(i)&&s.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),o=[]),j(i)},a=function(t){return{configurable:!0,enumerable:!0,get:function(){return j[t]},set:function(s){j[t]=s}}};for(var n in j)Object.prototype.hasOwnProperty.call(j,n)&&"e"!==n&&"t"!==n&&Object.defineProperty(i,n,a(n));return i.e=function(t){return"ready"===d&&_("prepare"),m++,j.e(t).then(s,(function(t){throw s(),t}));function s(){m--,"prepare"===d&&(g[t]||w(t),0===m&&0===f&&x())}},i.t=function(t,s){return 1&s&&(t=i(t)),j.t(t,-2&s)},i}function l(t){var s={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:e!==t,active:!0,accept:function(t,e){if(void 0===t)s._selfAccepted=!0;else if("function"==typeof t)s._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)s._acceptedDependencies[t[i]]=e||function(){};else s._acceptedDependencies[t]=e||function(){}},decline:function(t){if(void 0===t)s._selfDeclined=!0;else if("object"==typeof t)for(var e=0;e<t.length;e++)s._declinedDependencies[t[e]]=!0;else s._declinedDependencies[t]=!0},dispose:function(t){s._disposeHandlers.push(t)},addDisposeHandler:function(t){s._disposeHandlers.push(t)},removeDisposeHandler:function(t){var e=s._disposeHandlers.indexOf(t);e>=0&&s._disposeHandlers.splice(e,1)},check:k,apply:S,status:function(t){if(!t)return d;u.push(t)},addStatusHandler:function(t){u.push(t)},removeStatusHandler:function(t){var s=u.indexOf(t);s>=0&&u.splice(s,1)},data:n[t]};return e=void 0,s}var u=[],d="idle";function _(t){d=t;for(var s=0;s<u.length;s++)u[s].call(null,t)}var p,v,h,f=0,m=0,g={},b={},y={};function C(t){return+t+""===t?+t:t}function k(t){if("idle"!==d)throw new Error("check() is only allowed in idle status");return i=t,_("check"),(s=1e4,s=s||1e4,new Promise((function(t,e){if("undefined"==typeof XMLHttpRequest)return e(new Error("No browser support"));try{var i=new XMLHttpRequest,n=j.p+""+a+".hot-update.json";i.open("GET",n,!0),i.timeout=s,i.send(null)}catch(t){return e(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)e(new Error("Manifest request to "+n+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)e(new Error("Manifest request to "+n+" failed."));else{try{var s=JSON.parse(i.responseText)}catch(t){return void e(t)}t(s)}}}))).then((function(t){if(!t)return _("idle"),null;b={},g={},y=t.c,h=t.h,_("prepare");var s=new Promise((function(t,s){p={resolve:t,reject:s}}));v={};return w(2),"prepare"===d&&0===m&&0===f&&x(),s}));var s}function w(t){y[t]?(b[t]=!0,f++,function(t){var s=document.createElement("script");s.charset="utf-8",s.src=j.p+""+t+"."+a+".hot-update.js",document.head.appendChild(s)}(t)):g[t]=!0}function x(){_("ready");var t=p;if(p=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(s){t.resolve(s)}),(function(s){t.reject(s)}));else{var s=[];for(var e in v)Object.prototype.hasOwnProperty.call(v,e)&&s.push(C(e));t.resolve(s)}}function S(s){if("ready"!==d)throw new Error("apply() is only allowed in ready status");var e,i,r,c,l;function u(t){for(var s=[t],e={},i=s.map((function(t){return{chain:[t],id:t}}));i.length>0;){var a=i.pop(),n=a.id,o=a.chain;if((c=A[n])&&!c.hot._selfAccepted){if(c.hot._selfDeclined)return{type:"self-declined",chain:o,moduleId:n};if(c.hot._main)return{type:"unaccepted",chain:o,moduleId:n};for(var r=0;r<c.parents.length;r++){var l=c.parents[r],u=A[l];if(u){if(u.hot._declinedDependencies[n])return{type:"declined",chain:o.concat([l]),moduleId:n,parentId:l};-1===s.indexOf(l)&&(u.hot._acceptedDependencies[n]?(e[l]||(e[l]=[]),p(e[l],[n])):(delete e[l],s.push(l),i.push({chain:o.concat([l]),id:l})))}}}}return{type:"accepted",moduleId:t,outdatedModules:s,outdatedDependencies:e}}function p(t,s){for(var e=0;e<s.length;e++){var i=s[e];-1===t.indexOf(i)&&t.push(i)}}s=s||{};var f={},m=[],g={},b=function(){console.warn("[HMR] unexpected require("+w.moduleId+") to disposed module")};for(var k in v)if(Object.prototype.hasOwnProperty.call(v,k)){var w;l=C(k);var x=!1,S=!1,P=!1,T="";switch((w=v[k]?u(l):{type:"disposed",moduleId:k}).chain&&(T="\nUpdate propagation: "+w.chain.join(" -> ")),w.type){case"self-declined":s.onDeclined&&s.onDeclined(w),s.ignoreDeclined||(x=new Error("Aborted because of self decline: "+w.moduleId+T));break;case"declined":s.onDeclined&&s.onDeclined(w),s.ignoreDeclined||(x=new Error("Aborted because of declined dependency: "+w.moduleId+" in "+w.parentId+T));break;case"unaccepted":s.onUnaccepted&&s.onUnaccepted(w),s.ignoreUnaccepted||(x=new Error("Aborted because "+l+" is not accepted"+T));break;case"accepted":s.onAccepted&&s.onAccepted(w),S=!0;break;case"disposed":s.onDisposed&&s.onDisposed(w),P=!0;break;default:throw new Error("Unexception type "+w.type)}if(x)return _("abort"),Promise.reject(x);if(S)for(l in g[l]=v[l],p(m,w.outdatedModules),w.outdatedDependencies)Object.prototype.hasOwnProperty.call(w.outdatedDependencies,l)&&(f[l]||(f[l]=[]),p(f[l],w.outdatedDependencies[l]));P&&(p(m,[w.moduleId]),g[l]=b)}var I,E=[];for(i=0;i<m.length;i++)l=m[i],A[l]&&A[l].hot._selfAccepted&&g[l]!==b&&E.push({module:l,errorHandler:A[l].hot._selfAccepted});_("dispose"),Object.keys(y).forEach((function(t){!1===y[t]&&function(t){delete installedChunks[t]}(t)}));for(var $,O,D=m.slice();D.length>0;)if(l=D.pop(),c=A[l]){var R={},q=c.hot._disposeHandlers;for(r=0;r<q.length;r++)(e=q[r])(R);for(n[l]=R,c.hot.active=!1,delete A[l],delete f[l],r=0;r<c.children.length;r++){var L=A[c.children[r]];L&&((I=L.parents.indexOf(l))>=0&&L.parents.splice(I,1))}}for(l in f)if(Object.prototype.hasOwnProperty.call(f,l)&&(c=A[l]))for(O=f[l],r=0;r<O.length;r++)$=O[r],(I=c.children.indexOf($))>=0&&c.children.splice(I,1);for(l in _("apply"),a=h,g)Object.prototype.hasOwnProperty.call(g,l)&&(t[l]=g[l]);var U=null;for(l in f)if(Object.prototype.hasOwnProperty.call(f,l)&&(c=A[l])){O=f[l];var H=[];for(i=0;i<O.length;i++)if($=O[i],e=c.hot._acceptedDependencies[$]){if(-1!==H.indexOf(e))continue;H.push(e)}for(i=0;i<H.length;i++){e=H[i];try{e(O)}catch(t){s.onErrored&&s.onErrored({type:"accept-errored",moduleId:l,dependencyId:O[i],error:t}),s.ignoreErrored||U||(U=t)}}}for(i=0;i<E.length;i++){var W=E[i];l=W.module,o=[l];try{j(l)}catch(t){if("function"==typeof W.errorHandler)try{W.errorHandler(t)}catch(e){s.onErrored&&s.onErrored({type:"self-accept-error-handler-errored",moduleId:l,error:e,originalError:t}),s.ignoreErrored||U||(U=e),U||(U=t)}else s.onErrored&&s.onErrored({type:"self-accept-errored",moduleId:l,error:t}),s.ignoreErrored||U||(U=t)}}return U?(_("fail"),Promise.reject(U)):(_("idle"),new Promise((function(t){t(m)})))}var A={};function j(s){if(A[s])return A[s].exports;var e=A[s]={i:s,l:!1,exports:{},hot:l(s),parents:(r=o,o=[],r),children:[]};return t[s].call(e.exports,e,e.exports,c(s)),e.l=!0,e.exports}j.m=t,j.c=A,j.d=function(t,s,e){j.o(t,s)||Object.defineProperty(t,s,{enumerable:!0,get:e})},j.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},j.t=function(t,s){if(1&s&&(t=j(t)),8&s)return t;if(4&s&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(j.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&s&&"string"!=typeof t)for(var i in t)j.d(e,i,function(s){return t[s]}.bind(null,i));return e},j.n=function(t){var s=t&&t.__esModule?function(){return t.default}:function(){return t};return j.d(s,"a",s),s},j.o=function(t,s){return Object.prototype.hasOwnProperty.call(t,s)},j.p="",j.h=function(){return a},c("./src/dashboard.js")(j.s="./src/dashboard.js")}({"./node_modules/cssfilter/lib/css.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/default.js"),a=e("./node_modules/cssfilter/lib/parser.js");e("./node_modules/cssfilter/lib/util.js");function n(t){return null==t}function o(t){(t=function(t){var s={};for(var e in t)s[e]=t[e];return s}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}o.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var s=this.options,e=s.whiteList,i=s.onAttr,o=s.onIgnoreAttr,r=s.safeAttrValue;return a(t,(function(t,s,a,c,l){var u=e[a],d=!1;if(!0===u?d=u:"function"==typeof u?d=u(c):u instanceof RegExp&&(d=u.test(c)),!0!==d&&(d=!1),c=r(a,c)){var _,p={position:s,sourcePosition:t,source:l,isWhite:d};return d?n(_=i(a,c,p))?a+":"+c:_:n(_=o(a,c,p))?void 0:_}}))},t.exports=o},"./node_modules/cssfilter/lib/default.js":function(t,s){function e(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;s.whiteList=e(),s.getDefaultWhiteList=e,s.onAttr=function(t,s,e){},s.onIgnoreAttr=function(t,s,e){},s.safeAttrValue=function(t,s){return i.test(s)?"":s}},"./node_modules/cssfilter/lib/index.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/default.js"),a=e("./node_modules/cssfilter/lib/css.js");for(var n in(s=t.exports=function(t,s){return new a(s).process(t)}).FilterCSS=a,i)s[n]=i[n];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/util.js");t.exports=function(t,s){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var e=t.length,a=!1,n=0,o=0,r="";function c(){if(!a){var e=i.trim(t.slice(n,o)),c=e.indexOf(":");if(-1!==c){var l=i.trim(e.slice(0,c)),u=i.trim(e.slice(c+1));if(l){var d=s(n,r.length,l,u,e);d&&(r+=d+"; ")}}}n=o+1}for(;o<e;o++){var l=t[o];if("/"===l&&"*"===t[o+1]){var u=t.indexOf("*/",o+2);if(-1===u)break;n=(o=u+1)+1,a=!1}else"("===l?a=!0:")"===l?a=!1:";"===l?a||c():"\n"===l&&c()}return i.trim(r)}},"./node_modules/cssfilter/lib/util.js":function(t,s){t.exports={indexOf:function(t,s){var e,i;if(Array.prototype.indexOf)return t.indexOf(s);for(e=0,i=t.length;e<i;e++)if(t[e]===s)return e;return-1},forEach:function(t,s,e){var i,a;if(Array.prototype.forEach)return t.forEach(s,e);for(i=0,a=t.length;i<a;i++)s.call(e,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,s,e){"use strict";function i(t,s,e,i,a,n,o,r){var c,l="function"==typeof t?t.options:t;if(s&&(l.render=s,l.staticRenderFns=e,l._compiled=!0),i&&(l.functional=!0),n&&(l._scopeId="data-v-"+n),o?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):a&&(c=r?function(){a.call(this,this.$root.$options.shadowRoot)}:a),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,s){return c.call(s),u(t,s)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,c):[c]}return{exports:t,options:l}}e.d(s,"a",(function(){return i}))},"./node_modules/xss/lib/default.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/index.js").FilterCSS,a=e("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,n=e("./node_modules/xss/lib/util.js");function o(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var r=new i;function c(t){return t.replace(l,"&lt;").replace(u,"&gt;")}var l=/</g,u=/>/g,d=/"/g,_=/&quot;/g,p=/&#([a-zA-Z0-9]*);?/gim,v=/&colon;?/gim,h=/&newline;?/gim,f=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,m=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(d,"&quot;")}function y(t){return t.replace(_,'"')}function C(t){return t.replace(p,(function(t,s){return"x"===s[0]||"X"===s[0]?String.fromCharCode(parseInt(s.substr(1),16)):String.fromCharCode(parseInt(s,10))}))}function k(t){return t.replace(v,":").replace(h," ")}function w(t){for(var s="",e=0,i=t.length;e<i;e++)s+=t.charCodeAt(e)<32?" ":t.charAt(e);return n.trim(s)}function x(t){return t=w(t=k(t=C(t=y(t))))}function S(t){return t=c(t=b(t))}var A=/<!--[\s\S]*?-->/g;s.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},s.getDefaultWhiteList=o,s.onTag=function(t,s,e){},s.onIgnoreTag=function(t,s,e){},s.onTagAttr=function(t,s,e){},s.onIgnoreTagAttr=function(t,s,e){},s.safeAttrValue=function(t,s,e,i){if(e=x(e),"href"===s||"src"===s){if("#"===(e=n.trim(e)))return"#";if("http://"!==e.substr(0,7)&&"https://"!==e.substr(0,8)&&"mailto:"!==e.substr(0,7)&&"tel:"!==e.substr(0,4)&&"#"!==e[0]&&"/"!==e[0])return""}else if("background"===s){if(f.lastIndex=0,f.test(e))return""}else if("style"===s){if(m.lastIndex=0,m.test(e))return"";if(g.lastIndex=0,g.test(e)&&(f.lastIndex=0,f.test(e)))return"";!1!==i&&(e=(i=i||r).process(e))}return e=S(e)},s.escapeHtml=c,s.escapeQuote=b,s.unescapeQuote=y,s.escapeHtmlEntities=C,s.escapeDangerHtml5Entities=k,s.clearNonPrintableCharacter=w,s.friendlyAttrValue=x,s.escapeAttrValue=S,s.onIgnoreTagStripAll=function(){return""},s.StripTagBody=function(t,s){"function"!=typeof s&&(s=function(){});var e=!Array.isArray(t),i=[],a=!1;return{onIgnoreTag:function(o,r,c){if(function(s){return!!e||-1!==n.indexOf(t,s)}(o)){if(c.isClosing){var l="[/removed]",u=c.position+l.length;return i.push([!1!==a?a:c.position,u]),a=!1,l}return a||(a=c.position),"[removed]"}return s(o,r,c)},remove:function(t){var s="",e=0;return n.forEach(i,(function(i){s+=t.slice(e,i[0]),e=i[1]})),s+=t.slice(e)}}},s.stripCommentTag=function(t){return t.replace(A,"")},s.stripBlankChar=function(t){var s=t.split("");return(s=s.filter((function(t){var s=t.charCodeAt(0);return 127!==s&&(!(s<=31)||(10===s||13===s))}))).join("")},s.cssFilter=r,s.getDefaultCSSWhiteList=a},"./node_modules/xss/lib/index.js":function(t,s,e){var i=e("./node_modules/xss/lib/default.js"),a=e("./node_modules/xss/lib/parser.js"),n=e("./node_modules/xss/lib/xss.js");function o(t,s){return new n(s).process(t)}for(var r in(s=t.exports=o).filterXSS=o,s.FilterXSS=n,i)s[r]=i[r];for(var r in a)s[r]=a[r];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,s,e){var i=e("./node_modules/xss/lib/util.js");function a(t){var s=i.spaceIndex(t);if(-1===s)var e=t.slice(1,-1);else e=t.slice(1,s+1);return"/"===(e=i.trim(e).toLowerCase()).slice(0,1)&&(e=e.slice(1)),"/"===e.slice(-1)&&(e=e.slice(0,-1)),e}function n(t){return"</"===t.slice(0,2)}var o=/[^a-zA-Z0-9_:\.\-]/gim;function r(t,s){for(;s<t.length;s++){var e=t[s];if(" "!==e)return"="===e?s:-1}}function c(t,s){for(;s>0;s--){var e=t[s];if(" "!==e)return"="===e?s:-1}}function l(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}s.parseTag=function(t,s,e){var i="",o=0,r=!1,c=!1,l=0,u=t.length,d="",_="";for(l=0;l<u;l++){var p=t.charAt(l);if(!1===r){if("<"===p){r=l;continue}}else if(!1===c){if("<"===p){i+=e(t.slice(o,l)),r=l,o=l;continue}if(">"===p){i+=e(t.slice(o,r)),d=a(_=t.slice(r,l+1)),i+=s(r,i.length,d,_,n(_)),o=l+1,r=!1;continue}if(('"'===p||"'"===p)&&"="===t.charAt(l-1)){c=p;continue}}else if(p===c){c=!1;continue}}return o<t.length&&(i+=e(t.substr(o))),i},s.parseAttr=function(t,s){var e=0,a=[],n=!1,u=t.length;function d(t,e){if(!((t=(t=i.trim(t)).replace(o,"").toLowerCase()).length<1)){var n=s(t,e||"");n&&a.push(n)}}for(var _=0;_<u;_++){var p,v=t.charAt(_);if(!1!==n||"="!==v)if(!1===n||_!==e||'"'!==v&&"'"!==v||"="!==t.charAt(_-1))if(/\s|\n|\t/.test(v)){if(t=t.replace(/\s|\n|\t/g," "),!1===n){if(-1===(p=r(t,_))){d(i.trim(t.slice(e,_))),n=!1,e=_+1;continue}_=p-1;continue}if(-1===(p=c(t,_-1))){d(n,l(i.trim(t.slice(e,_)))),n=!1,e=_+1;continue}}else;else{if(-1===(p=t.indexOf(v,_+1)))break;d(n,i.trim(t.slice(e+1,p))),n=!1,e=(_=p)+1}else n=t.slice(e,_),e=_+1}return e<t.length&&(!1===n?d(t.slice(e)):d(n,l(i.trim(t.slice(e))))),i.trim(a.join(" "))}},"./node_modules/xss/lib/util.js":function(t,s){t.exports={indexOf:function(t,s){var e,i;if(Array.prototype.indexOf)return t.indexOf(s);for(e=0,i=t.length;e<i;e++)if(t[e]===s)return e;return-1},forEach:function(t,s,e){var i,a;if(Array.prototype.forEach)return t.forEach(s,e);for(i=0,a=t.length;i<a;i++)s.call(e,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var s=/\s|\n|\t/.exec(t);return s?s.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/index.js").FilterCSS,a=e("./node_modules/xss/lib/default.js"),n=e("./node_modules/xss/lib/parser.js"),o=n.parseTag,r=n.parseAttr,c=e("./node_modules/xss/lib/util.js");function l(t){return null==t}function u(t){(t=function(t){var s={};for(var e in t)s[e]=t[e];return s}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=a.onIgnoreTagStripAll),t.whiteList=t.whiteList||a.whiteList,t.onTag=t.onTag||a.onTag,t.onTagAttr=t.onTagAttr||a.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||a.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||a.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||a.safeAttrValue,t.escapeHtml=t.escapeHtml||a.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}u.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var s=this.options,e=s.whiteList,i=s.onTag,n=s.onIgnoreTag,u=s.onTagAttr,d=s.onIgnoreTagAttr,_=s.safeAttrValue,p=s.escapeHtml,v=this.cssFilter;s.stripBlankChar&&(t=a.stripBlankChar(t)),s.allowCommentTag||(t=a.stripCommentTag(t));var h=!1;if(s.stripIgnoreTagBody){h=a.StripTagBody(s.stripIgnoreTagBody,n);n=h.onIgnoreTag}var f=o(t,(function(t,s,a,o,h){var f,m={sourcePosition:t,position:s,isClosing:h,isWhite:e.hasOwnProperty(a)};if(!l(f=i(a,o,m)))return f;if(m.isWhite){if(m.isClosing)return"</"+a+">";var g=function(t){var s=c.spaceIndex(t);if(-1===s)return{html:"",closing:"/"===t[t.length-2]};var e="/"===(t=c.trim(t.slice(s+1,-1)))[t.length-1];return e&&(t=c.trim(t.slice(0,-1))),{html:t,closing:e}}(o),b=e[a],y=r(g.html,(function(t,s){var e,i=-1!==c.indexOf(b,t);return l(e=u(a,t,s,i))?i?(s=_(a,t,s,v))?t+'="'+s+'"':t:l(e=d(a,t,s,i))?void 0:e:e}));o="<"+a;return y&&(o+=" "+y),g.closing&&(o+=" /"),o+=">"}return l(f=n(a,o,m))?p(o):f}),p);return h&&(f=h.remove(f)),f},t.exports=u},"./src/component/doc-link.vue":function(t,s,e){"use strict";var i={mixins:[e("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,s=this._self._c||t;return!1===this.whitelabel.hide_doc_link?s("div",{staticClass:"sui-actions-right"},[s("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[s("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);s.a=n.exports},"./src/component/footer.vue":function(t,s,e){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",[!0===t.whitelabel.change_footer?e("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):e("div",{staticClass:"sui-footer"},[t._v("Made with "),e("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?e("div",[t.is_free?e("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):e("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ul",{staticClass:"sui-footer-social"},[e("li",[e("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[e("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[e("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[e("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);s.a=n.exports},"./src/component/overlay.vue":function(t,s,e){"use strict";var i={name:"overlay"},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement;this._self._c;return this._m(0)}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"wd-overlay"},[s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);s.a=n.exports},"./src/component/submit-button.vue":function(t,s,e){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(s){return t.$emit("click")}}},[e("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),e("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);s.a=n.exports},"./src/component/summary-box.vue":function(t,s,e){"use strict";var i={mixins:[e("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[s("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);s.a=n.exports},"./src/dashboard.js":function(t,s,e){"use strict";e.r(s);var i=e("vue"),a=e.n(i),n=e("./src/helper/base_hepler.js"),o={mixins:[n.a],name:"security-tweaks",data:function(){return{rules:dashboard.security_tweaks.rules,count:dashboard.security_tweaks.count.issues}},methods:{handleRedirect:function(t){window.location.href=this.adminUrl("admin.php?page=wdf-hardener#"+t.slug)}}},r=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),c=Object(r.a)(o,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box hardener-widget"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-wrench-tool",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Security Tweaks"))+"\n ")]),t._v(" "),t.count>0?e("div",{staticClass:"sui-actions-left"},[e("div",{staticClass:"sui-tag sui-tag-warning",domProps:{textContent:t._s(t.count)}})]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Defender checks for basic security tweaks you can make to enhance your website’s defense against hackers and bots."))+"\n ")]),t._v(" "),0===t.count?e("div",{staticClass:"sui-notice sui-notice-success"},[e("p",[t._v("\n "+t._s(t.__("You’ve actioned all of the recommended security tweaks."))+"\n ")])]):t._e()]),t._v(" "),t.count>0?e("div",{staticClass:"sui-accordion sui-accordion-flushed no-border-bottom"},t._l(t.rules,(function(s){return e("div",{staticClass:"sui-accordion-item sui-warning",on:{click:function(e){return t.handleRedirect(s)}}},[e("div",{staticClass:"sui-accordion-item-header"},[e("div",{staticClass:"sui-accordion-item-title"},[e("i",{staticClass:"sui-icon-warning-alert sui-warning",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(s.title)+"\n "),t._m(0,!0)])])])})),0):t._e(),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-hardener")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View All"))+"\n ")])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-actions-right"},[s("i",{staticClass:"sui-icon-chevron-right",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null).exports,l={mixins:[n.a],name:"file-scanning",data:function(){return{scan:dashboard.scan.scan,state:{on_saving:!1,canceling:!1},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,polling_state:null,report:dashboard.scan.report}},methods:{newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){t.scan={},t.scan.status=s.data.status,t.scan.percent=s.data.percent,t.scan.status_text=s.data.status_text,t.polling()}))}))},cancelScan:function(){if(!0!==this.state.canceling){this.abortAllRequests();var t=this;clearTimeout(this.polling_state),this.state.canceling=!0,this.httpPostRequest("cancelScan",{},(function(s){t.$nextTick((function(){t.scan=s.data.scan,t.state.canceling=!1,t.$emit("scanCanceled",t.scan)}))}))}},refreshStatus:function(){var t=this;this.httpPostRequest("processScan",{},(function(s){!1===s.success?(t.scan=s.data,t.polling()):(t.scan=s.data.scan,t.$emit("scanCompleted",t.scan,s.data.scan.count.total))}))},polling:function(){!1===this.state.canceling&&(this.polling_state=setTimeout(this.refreshStatus(),500))},resultIndicator:function(t){return t>0?'<span class="sui-tag sui-tag-error">'+t+"</span>":'<i aria-hidden="true" class="sui-icon-check-tick sui-success"></i>'}},computed:{statusText:function(){return this.scan.status_text},reportText:function(){if(!1!==this.report.enabled){var t=void 0;switch(parseInt(this.report.frequency)){case 1:t="daily";break;case 7:t="weekly";break;case 30:t="monthly"}return this.vsprintf(this.__("Automatic scans are running %s"),t)}},percent:function(){return this.scan.percent}},mounted:function(){null===this.scan||"process"!==this.scan.status&&"init"!==this.scan.status||this.polling()}},u=Object(r.a)(l,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-layers",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("File Scanning"))+"\n ")]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-actions-left"},[null!==t.scan&&t.scan.count.total>0?e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count.total))]):t._e()]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":null!==t.scan&&"finish"===t.scan.status}},[e("p",[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")]),t._v(" "),null===t.scan?e("div",[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("Run scan"))+"\n ")])],1):"process"===t.scan.status||"init"===t.scan.status?e("div",[e("div",{staticClass:"sui-progress-block"},[e("div",{staticClass:"sui-progress"},[t._m(0),t._v(" "),e("span",{staticClass:"sui-progress-text"},[e("span",{domProps:{textContent:t._s(t.percent+"%")}})]),t._v(" "),e("div",{staticClass:"sui-progress-bar",attrs:{"aria-hidden":"true"}},[e("span",{style:{width:t.percent+"%"}})])]),t._v(" "),e("button",{staticClass:"sui-button-icon sui-tooltip",attrs:{type:"button",disabled:t.state.canceling,"data-tooltip":"Cancel"},on:{click:t.cancelScan}},[e("i",{staticClass:"sui-icon-close",attrs:{"aria-hidden":"true"}})])]),t._v(" "),e("div",{staticClass:"sui-progress-state"},[e("span",{domProps:{textContent:t._s(t.statusText)}})])]):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("WordPress Core"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.core))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("Plugins & Themes"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.vuln))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Suspicious Code")))])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.content))}})])])])]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-scan")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Report"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.reportText)}})])]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("span",{staticClass:"sui-progress-icon",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-loader sui-loading"})])}],!1,null,null,null).exports,d={mixins:[n.a],name:"file-scanning",data:function(){return{scan:dashboard.scan.scan,state:{on_saving:!1,canceling:!1},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,polling_state:null,report:dashboard.scan.report}},methods:{newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){t.scan={},t.scan.status=s.data.status,t.scan.percent=s.data.percent,t.scan.status_text=s.data.status_text,t.polling()}))}))},cancelScan:function(){if(!0!==this.state.canceling){this.abortAllRequests();var t=this;clearTimeout(this.polling_state),this.state.canceling=!0,this.httpPostRequest("cancelScan",{},(function(s){t.$nextTick((function(){t.scan=s.data.scan,t.state.canceling=!1}))}))}},refreshStatus:function(){var t=this;this.httpPostRequest("processScan",{},(function(s){!1===s.success?(t.scan=s.data,t.polling()):t.scan=s.data.scan}))},polling:function(){!1===this.state.canceling&&(this.polling_state=setTimeout(this.refreshStatus(),500))},resultIndicator:function(t){return t>0?'<span class="sui-tag sui-tag-error">'+t+"</span>":'<i aria-hidden="true" class="sui-icon-check-tick sui-success"></i>'}},computed:{statusText:function(){return this.scan.status_text},percent:function(){return this.scan.percent}},mounted:function(){null===this.scan||"process"!==this.scan.status&&"init"!==this.scan.status||this.polling()}},_=Object(r.a)(d,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-layers",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("File Scanning"))+"\n ")]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-actions-left"},[t.scan.count.total>0?e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count.total))]):t._e()]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":null!==t.scan&&"finish"===t.scan.status}},[e("p",[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get and get notified about anything suspicious."))+"\n ")]),t._v(" "),null===t.scan?e("div",[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("Run scan"))+"\n ")])],1):"process"===t.scan.status||"init"===t.scan.status?e("div",[e("div",{staticClass:"sui-progress-block"},[e("div",{staticClass:"sui-progress"},[t._m(0),t._v(" "),e("span",{staticClass:"sui-progress-text"},[e("span",{domProps:{textContent:t._s(t.percent+"%")}})]),t._v(" "),e("div",{staticClass:"sui-progress-bar",attrs:{"aria-hidden":"true"}},[e("span",{style:{width:t.percent+"%"}})])]),t._v(" "),e("button",{staticClass:"sui-button-icon sui-tooltip",attrs:{type:"button",disabled:t.state.canceling,"data-tooltip":"Cancel"},on:{click:t.cancelScan}},[e("i",{staticClass:"sui-icon-close",attrs:{"aria-hidden":"true"}})])]),t._v(" "),e("div",{staticClass:"sui-progress-state"},[e("span",{domProps:{textContent:t._s(t.statusText)}})])]):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("WordPress Core"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.core))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("Plugins & Themes"))+"\n ")])]),t._v(" "),e("a",{staticClass:"sui-button sui-button-purple sui-tooltip",attrs:{href:t.campaign_url("defender_dash_filescan_pro_tag"),target:"_blank","data-tooltip":"Try Defender Pro free today"}},[t._v("\n "+t._s(t.__("Pro Feature"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Suspicious Code")))])]),t._v(" "),e("a",{staticClass:"sui-button sui-button-purple sui-tooltip",attrs:{href:t.campaign_url("defender_dash_filescan_pro_tag"),target:"_blank","data-tooltip":"Try Defender Pro free today"}},[t._v("\n "+t._s(t.__("Pro Feature"))+"\n ")])])])])]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-scan")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Report"))+"\n ")])])]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("span",{staticClass:"sui-progress-icon",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-loader sui-loading"})])}],!1,null,null,null).exports,p={mixins:[n.a],name:"blacklist",data:function(){return{state:{on_saving:!1},status:"fetching",nonces:dashboard.blacklist.nonces,endpoints:dashboard.blacklist.endpoints}},methods:{toggle:function(){var t=this;this.httpGetRequest("toggleBlacklistWidget",{},(function(s){switch(parseInt(s.data.status)){case-1:t.status="new";break;case 0:t.status="blacklisted";break;case 1:t.status="good"}}))}},mounted:function(){var t=this;this.httpGetRequest("blacklistWidgetStatus",{},(function(s){switch(parseInt(s.data.status)){case-1:t.status="new";break;case 0:t.status="blacklisted";break;case 1:t.status="good"}}))}},v=Object(r.a)(p,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-target",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),"blacklisted"===t.status||"good"===t.status?e("div",{staticClass:"sui-actions-right"},[e("label",{staticClass:"sui-toggle"},[e("input",{staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"checked"},on:{click:t.toggle}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("div",[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’swrong, we’ll let you know via email."))+"\n ")]),t._v(" "),"fetching"===t.status?e("div",{staticClass:"sui-notice sui-notice-info"},[e("p",[t._v("\n "+t._s(t.__("Fetching your domain info..."))+"\n ")])]):"new"===t.status?e("form",{staticClass:"margin-top-30",attrs:{method:"post"}},[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:function(s){return t.toggle(!0)}}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):"blacklisted"===t.status?e("div",{staticClass:"sui-notice sui-notice-error"},[e("p",[t._v("\n "+t._s(t.__("Your domain is currently on Google’s blacklist. Check out the article below to find out how to fix up your domain."))+"\n ")])]):"good"===t.status?e("div",{staticClass:"sui-notice sui-notice-success"},[e("p",[t._v("\n "+t._s(t.__("Your domain is currently clean."))+"\n ")])]):t._e(),t._v(" "),"new"!==t.status?e("div",{staticClass:"sui-center-box no-padding-bottom"},[e("p",{staticClass:"sui-p-small"},[t._v("\n "+t._s(t.__("Want to know more about blacklisting?"))+" "),e("a",{attrs:{href:"https://premium.wpmudev.org/blog/get-off-googles-blacklist/"}},[t._v(t._s(t.__("Read this article.")))])])]):t._e()]),t._v(" "),e("overlay",{directives:[{name:"show",rawName:"v-show",value:!0===t.state.on_saving,expression:"state.on_saving===true"}]})],1)}),[],!1,null,null,null).exports,h={mixins:[n.a],name:"blacklist-free"},f=Object(r.a)(h,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-target",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[t._v(t._s(t.__("Pro")))])])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-margin-bottom no-padding-bottom"},[e("p",[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("assets/img/dashboard-blacklist.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Defender will warn you if your site has been flagged as unsafe. Get blacklist Monitor as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_blacklist_upgrade_button")}},[t._v(t._s(t.__("Try Pro Free Today")))]),t._v(".\n ")])])])])])}),[],!1,null,null,null).exports,m={mixins:[n.a],name:"ip-lockout",data:function(){return{state:{on_saving:!1},nonces:dashboard.ip_lockout.nonces,endpoints:dashboard.ip_lockout.endpoints,summary:dashboard.ip_lockout.summary,notification:dashboard.ip_lockout.notification,enabled:dashboard.ip_lockout.enabled}},methods:{updateSettings:function(){var t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({login_protection:!0,detect_404:!0})},(function(){t.enabled=!0}))}},computed:{notificationText:function(){return this.notification?this.__("Lockout notifications are enabled"):this.__("Lockout notifications are disabled")}}},g=Object(r.a)(m,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box",attrs:{id:"ip-lockout"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-lock",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t"+t._s(t.__("IP Lockouts"))+"\n\t\t")])]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":!0===t.enabled}},[e("p",[t._v("\n\t\t\t"+t._s(t.__("Protect to your login area and have Defender automatically lockout any suspicious behaviour."))+"\n\t\t")]),t._v(" "),!1===t.enabled?e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue activate",state:t.state}},[t._v("\n\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t")])],1):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Last lockout")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.lastLockout)}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Login lockouts this week")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.ip.week)}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("404 lockouts this week")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.nf.week)}})])])])]),t._v(" "),!0===t.enabled?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=logs")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t"+t._s(t.__("View logs"))+"\n\t\t\t")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.notificationText)}})])]):t._e()])}),[],!1,null,null,null).exports,b={mixins:[n.a],name:"audit",data:function(){return{state:{on_saving:!1},nonces:dashboard.audit.nonces,endpoints:dashboard.audit.endpoints,enabled:dashboard.audit.enabled,report:dashboard.audit.report,summary:{monthCount:"-",dayCount:"-",weekCount:"n/a",lastEvent:"-"}}},methods:{updateSettings:function(){var t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({enabled:!0})},(function(){t.enabled=!0,t.$nextTick((function(){t.loadData()}))}))},loadData:function(){var t=this;this.httpGetRequest("summary",{},(function(s){t.summary=s.data}))}},computed:{reportText:function(){return this.report?this.__("Audit log reports are enabled"):this.__("Audit log reports are disabled")}},mounted:function(){!0===this.enabled&&this.loadData()}},y=Object(r.a)(b,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box",attrs:{id:"audit-logging"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":t.enabled}},[e("p",[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website, giving you full visibility over what's going on behind the scenes."))+"\n ")]),t._v(" "),!1===t.enabled?e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue activate",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):e("div",[e("div",{staticClass:"sui-notice"},[e("p",[t._v("\n "+t._s(t.summary.weekCount)+" "+t._s(t.__(" events logged in the past 7 days."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Last event logged")))])]),t._v(" "),e("span",[t._v("\n "+t._s(t.summary.lastEvent)+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Events logged this month")))])]),t._v(" "),e("span",[t._v(t._s(t.summary.monthCount))])])])])])]),t._v(" "),!0===t.enabled?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-logging")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Logs"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.reportText)}})])]):t._e(),t._v(" "),t.state.on_saving?e("overlay"):t._e()],1)}),[],!1,null,null,null).exports,C={mixins:[n.a],name:"audit-free"},k=Object(r.a)(C,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[t._v(t._s(t.__("Pro")))])])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-margin-bottom no-padding-bottom"},[e("p",[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website giving you full visibility of what's going on behind the scenes."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("assets/img/audit-presale.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Get an automatic report about the changes made on your website with Audit Logging. Get Audit Logging as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_auditlogging_upsell_link")}},[t._v(t._s(t.__("Try Pro Free Today")))])])])])])])}),[],!1,null,null,null).exports,w={mixins:[n.a],name:"report",data:function(){return{scan:dashboard.report.scan,ip_lockout:dashboard.report.ip_lockout,audit:dashboard.report.audit}},methods:{statusText:function(t){if(-1===t)return'<span class="sui-tag sui-tag-disabled">'+this.__("Inactive")+"</span>";var s=void 0;switch(parseInt(t)){case 1:s=this.__("Daily");break;case 7:s=this.__("Weekly");break;case 30:s=this.__("Monthly")}return'<span class="sui-tag sui-tag-blue">'+s+"</span>"}}},x=Object(r.a)(w,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-graph-line",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Reporting"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body no-padding-bottom"},[e("p",[t._v(t._s(t.__("Get tailored security reports delivered to your inbox so you don't have to worry about checking in.")))]),t._v(" "),e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("File Scanning")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.scan))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("IP Lockouts")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.ip_lockout))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Audit Logging")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.audit))}})])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("p",{staticClass:"sui-p-small text-center"},[t._v("\n "+t._s(t.__("You can also"))+" "),e("a",{attrs:{target:"_blank",href:"https://premium.wpmudev.org/reports/"}},[t._v(t._s(t.__("create PDF reports")))]),t._v(" "+t._s(t.__("to send to your clients via The Hub."))+"\n ")])])])}),[],!1,null,null,null).exports,S={mixins:[n.a],name:"report",data:function(){return{scan:dashboard.report.scan,ip_lockout:dashboard.report.ip_lockout,audit:dashboard.report.audit}},methods:{statusText:function(t){if(-1===t)return'<span class="sui-tag sui-tag-disabled">'+this.__("Inactive")+"</span>";var s=void 0;switch(parseInt(t)){case 1:s=this.__("Daily");break;case 7:s=this.__("Weekly");break;case 30:s=this.__("Monthly")}return'<span class="sui-tag sui-tag-blue">'+s+"</span>"}}},A=Object(r.a)(S,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-graph-line",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Reporting"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-padding-bottom"},[e("p",[t._v(t._s(t.__("Get tailored security reports delivered to your inbox so you don't have to worry about checking in.")))])]),t._v(" "),e("div",{staticClass:"sui-field-list no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("File Scanning")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("IP Lockouts")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Audit Logging")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])])])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("/assets/img/dev-man-pre.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Schedule automatic reports and recieve directly to your inbox. Get reporting as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_reports_upsell_link")}},[t._v(t._s(t.__("Try Pro Free Today")))])])])])])])}),[],!1,null,null,null).exports,j={mixins:[n.a],name:"advanced-tools",data:function(){return{state:{on_saving:!1},nonces:dashboard.advanced_tools.nonces,endpoints:dashboard.advanced_tools.endpoints,two_factor:dashboard.advanced_tools.two_factors,mask_login:dashboard.advanced_tools.mask_login}},methods:{updateSettings:function(t){var s=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:{enabled:!0},module:t})},(function(){"auth"===t?s.two_factor.enabled=!0:s.mask_login.enabled=!0}))}}},P=Object(r.a)(j,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box advanced-tools"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-wand-magic",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Advanced Tools"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body no-padding-bottom"},[e("p",[t._v("\n "+t._s(t.__("Enable advanced tools for enhanced protection against even the most aggressive of hackers and bots."))+"\n ")])]),t._v(" "),e("hr"),t._v(" "),e("table",{staticClass:"sui-table sui-table-flushed margin-top-30"},[e("tbody",[e("tr",[e("td",[e("small",[e("strong",[t._v(t._s(t.__("Two-Factor Authentication")))])]),t._v(" "),e("br"),t._v(" "),e("small",[t._v("\n "+t._s(t.__("Add an extra layer of security to your WordPress account to ensure that you're the only person who can log in, even if someone else knows your password."))+"\n ")]),t._v(" "),!1===t.two_factor.enabled?e("form",{staticClass:"margin-top-10 margin-bottom-10",attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings("auth")}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):!1===t.two_factor.useable?e("div",{staticClass:"sui-notice sui-notice-warning margin-bottom-30 margin-top-10"},[e("p",[t._v("\n "+t._s(t.__("Two-factor authentication is currently inactive. Configure and save your settings to finish setup."))+"\n "),e("br"),t._v(" "),e("a",{staticClass:"sui-button margin-top-10",attrs:{href:t.adminUrl("admin.php?page=wdf-advanced-tools")}},[t._v("\n "+t._s(t.__("Finish Setup"))+"\n ")])])]):!0===t.two_factor.useable?e("div",{staticClass:"sui-notice sui-notice-success margin-top-10 margin-bottom-30"},[e("p",[t._v("\n "+t._s(t.__("Two-factor authentication is now active. User roles with this feature enabled must visit their Profile page to complete setup and sync their account with the Authenticator app."))+"\n ")])]):t._e(),t._v(" "),!0===t.two_factor.useable?e("small",[t._v(t._s(t.__("Note: Each user on your website must individually enable two-factor authentication via their user profile in order to enable and use this security feature.")))]):t._e()])]),t._v(" "),e("tr",[e("td",[e("small",{staticClass:"margin-top-30"},[e("strong",[t._v(t._s(t.__("Mask Login Area")))])]),t._v(" "),e("br"),t._v(" "),e("small",[t._v("\n "+t._s(t.__("Change the location of WordPress's default login area."))+"\n ")]),t._v(" "),!1===t.mask_login.enabled?e("form",{staticClass:"margin-top-10 margin-bottom-30",attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings("mask-login")}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):!1===t.mask_login.useable?e("div",{staticClass:"sui-notice sui-notice-warning margin-bottom-30 margin-top-10"},[e("p",[t._v("\n "+t._s(t.__("Masking is currently inactive. Choose your URL and save your settings to finish setup."))+"\n "),e("br"),t._v(" "),e("a",{staticClass:"sui-button margin-top-10",attrs:{href:t.adminUrl("admin.php?page=wdf-advanced-tools&view=mask-login")}},[t._v("\n "+t._s(t.__("Finish Setup"))+"\n ")])])]):!0===t.mask_login.useable?e("div",{staticClass:"sui-notice sui-notice-success margin-top-10 margin-bottom-30"},[e("p",[t._v("\n "+t._s(t.__("Masking is currently active at "))+" "),e("a",{attrs:{target:"_blank",href:t.mask_login.login_url}},[t._v(t._s(t.mask_login.login_url))])])]):t._e()])])])])])}),[],!1,null,null,null).exports,T={mixins:[n.a],name:"quick-setup",data:function(){return{state:{on_saving:!1},model:{activate_scan:!0,activate_audit:!0,activate_lockout:!0,activate_blacklist:!0},status:"normal",nonces:dashboard.quick_setup.nonces,endpoints:dashboard.quick_setup.endpoints}},methods:{activate:function(){this.httpPostRequest("activate",this.model,(function(t){window.location.reload()}))},skip:function(){this.httpPostRequest("skip",this.model,(function(t){SUI.dialogs.activator.hide()}))}},mounted:function(){document.onreadystatechange=function(){"complete"===document.readyState&&void 0!==SUI.dialogs.activator&&SUI.dialogs.activator.show()}}},I=Object(r.a)(T,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"activator"}},[e("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),e("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"Quick setup","aria-describedby":"",role:"dialog"}},["normal"===t.status?e("div",{staticClass:"sui-box",attrs:{role:"document"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Quick Setup"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.skip(s)}}},[e("submit-button",{staticClass:"sui-button-ghost quicksetup-skip",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Skip"))+"\n ")])],1)])]),t._v(" "),e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.activate(s)}}},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default."))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Automatic File Scans & Reporting"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_scan,expression:"model.activate_scan"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_scan",value:"activate_scan"},domProps:{checked:Array.isArray(t.model.activate_scan)?t._i(t.model.activate_scan,"activate_scan")>-1:t.model.activate_scan},on:{change:function(s){var e=t.model.activate_scan,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_scan",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_scan",e.concat([n])):o>-1&&t.$set(t.model,"activate_scan",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_scan",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website giving you full visibility of what’s going on behind the scenes."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_audit,expression:"model.activate_audit"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_audit",value:"activate_audit"},domProps:{checked:Array.isArray(t.model.activate_audit)?t._i(t.model.activate_audit,"activate_audit")>-1:t.model.activate_audit},on:{change:function(s){var e=t.model.activate_audit,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_audit",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_audit",e.concat([n])):o>-1&&t.$set(t.model,"activate_audit",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_audit",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("IP Lockouts"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Protect your login area and have Defender automatically lockout any suspicious behaviour."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_lockout,expression:"model.activate_lockout"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_lockout",value:"activate_lockout"},domProps:{checked:Array.isArray(t.model.activate_lockout)?t._i(t.model.activate_lockout,"activate_lockout")>-1:t.model.activate_lockout},on:{change:function(s){var e=t.model.activate_lockout,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_lockout",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_lockout",e.concat([n])):o>-1&&t.$set(t.model,"activate_lockout",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_lockout",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_blacklist,expression:"model.activate_blacklist"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_blacklist",value:"activate_blacklist"},domProps:{checked:Array.isArray(t.model.activate_blacklist)?t._i(t.model.activate_blacklist,"activate_blacklist")>-1:t.model.activate_blacklist},on:{change:function(s){var e=t.model.activate_blacklist,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_blacklist",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_blacklist",e.concat([n])):o>-1&&t.$set(t.model,"activate_blacklist",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_blacklist",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-9"},[e("small",[t._v("\n "+t._s(t.__("Note: These services will be configured with our recommended settings. You can change these at any time."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-3"},[e("submit-button",{staticClass:"sui-button sui-button-blue quicksetup-apply",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Get Started"))+"\n ")])],1)])])]),t._v(" "),t.maybeHideBranding?e("img",{staticClass:"sui-image sui-image-center",attrs:{src:t.assetUrl("/assets/img/defender-activator.svg")}}):t._e()]):e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Just a moment while Defender activates those services for you.."))+"\n ")]),t._v(" "),t._m(0),t._v(" "),t._m(1)])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-block"},[s("div",{staticClass:"sui-progress"},[s("div",{staticClass:"sui-progress-text scan-progress-text sui-icon-loader sui-loading"},[s("span",[this._v("0%")])]),this._v(" "),s("div",{staticClass:"sui-progress-bar scan-progress-bar"},[s("span",{staticStyle:{width:"0%"}})])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-state"},[s("span",{staticClass:"status-text"})])}],!1,null,null,null).exports,E={mixins:[n.a],name:"quick-setup",data:function(){return{state:{on_saving:!1},model:{activate_scan:!0,activate_lockout:!0},status:"normal",nonces:dashboard.quick_setup.nonces,endpoints:dashboard.quick_setup.endpoints}},methods:{activate:function(){this.httpPostRequest("activate",this.model,(function(t){window.location.reload()}))},skip:function(){this.httpPostRequest("skip",this.model,(function(t){SUI.dialogs.activator.hide()}))}},mounted:function(){document.onreadystatechange=function(){"complete"===document.readyState&&void 0!==SUI.dialogs.activator&&SUI.dialogs.activator.show()}}},$=Object(r.a)(E,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"activator"}},[e("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),e("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"Quick setup","aria-describedby":"",role:"dialog"}},["normal"===t.status?e("div",{staticClass:"sui-box",attrs:{role:"document"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Quick Setup"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.skip(s)}}},[e("submit-button",{staticClass:"sui-button-ghost",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Skip"))+"\n ")])],1)])]),t._v(" "),e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.activate(s)}}},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default."))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("File Scanning"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_scan,expression:"model.activate_scan"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_scan",value:"activate_scan"},domProps:{checked:Array.isArray(t.model.activate_scan)?t._i(t.model.activate_scan,"activate_scan")>-1:t.model.activate_scan},on:{change:function(s){var e=t.model.activate_scan,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_scan",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_scan",e.concat([n])):o>-1&&t.$set(t.model,"activate_scan",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_scan",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("IP Lockouts"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Protect your login area and have Defender automatically lockout any suspicious behaviour."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_lockout,expression:"model.activate_lockout"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_lockout",value:"activate_lockout"},domProps:{checked:Array.isArray(t.model.activate_lockout)?t._i(t.model.activate_lockout,"activate_lockout")>-1:t.model.activate_lockout},on:{change:function(s){var e=t.model.activate_lockout,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_lockout",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_lockout",e.concat([n])):o>-1&&t.$set(t.model,"activate_lockout",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_lockout",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-9"},[e("small",[t._v("\n "+t._s(t.__("Note: These services will be configured with our recommended settings. You can change these at any time."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-3"},[e("submit-button",{staticClass:"sui-button sui-button-blue",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Get Started"))+"\n ")])],1)])])]),t._v(" "),t.maybeHideBranding?e("img",{staticClass:"sui-image sui-image-center",attrs:{src:t.assetUrl("/assets/img/defender-activator.svg")}}):t._e()]):e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Just a moment while Defender activates those services for you.."))+"\n ")]),t._v(" "),t._m(0),t._v(" "),t._m(1)])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-block"},[s("div",{staticClass:"sui-progress"},[s("div",{staticClass:"sui-progress-text scan-progress-text sui-icon-loader sui-loading"},[s("span",[this._v("0%")])]),this._v(" "),s("div",{staticClass:"sui-progress-bar scan-progress-bar"},[s("span",{staticStyle:{width:"0%"}})])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-state"},[s("span",{staticClass:"status-text"})])}],!1,null,null,null).exports,O={mixins:[n.a],name:"cross-sale"},D=Object(r.a)(O,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("section",[e("div",{staticClass:"sui-row",attrs:{id:"sui-cross-sell-footer"}},[t._m(0),t._v(" "),e("h3",[t._v(t._s(t.__("Check out our other free wordpress.org plugins!")))])]),t._v(" "),e("div",{staticClass:"sui-row sui-cross-sell-modules"},[e("div",{staticClass:"sui-col-md-4"},[t._m(1),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("Smush Image Compression and Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Resize, optimize and compress all of your images with the incredibly powerful and award-winning, 100% free WordPress image optimizer.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/wp-smushit/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])]),t._v(" "),e("div",{staticClass:"sui-col-md-4"},[t._m(2),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("Hummingbird Page Speed Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Performance Tests, File Optimization & Compression, Page, Browser & Gravatar Caching, GZIP Compression, CloudFlare Integration & more.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/hummingbird-performance/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])]),t._v(" "),e("div",{staticClass:"sui-col-md-4"},[t._m(3),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("SmartCrawl Search Engine Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Customize Titles & Meta Data, OpenGraph, Twitter & Pinterest Support, Auto-Keyword Linking, SEO & Readability Analysis, Sitemaps, URL Crawler & more.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/smartcrawl-seo/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])])]),t._v(" "),e("div",{staticClass:"sui-cross-sell-bottom"},[e("h3",[t._v(t._s(t.__("WPMU DEV - Your All-in-One WordPress Platform")))]),t._v(" "),e("p",[t._v(t._s(t.__("Pretty much everything you need for developing and managing WordPress based websites, and then some")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-green",attrs:{href:"https://premium.wpmudev.org/?utm_source=defender&utm_medium=plugin&utm_campaign=defender_dash_footer_upsell_notice",target:"_blank",role:"button"}},[t._v(t._s(t.__("Learn more"))+"\n ")]),t._v(" "),e("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/dev-team.png"),srcset:t.assetUrl("assets/img/dev-team@2x.png 2x"),"aria-hidden":"true"}})])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",[s("span",{staticClass:"sui-icon-plugin-2"})])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-1",attrs:{"aria-hidden":"true"}},[s("span")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-2",attrs:{"aria-hidden":"true"}},[s("span")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-3",attrs:{"aria-hidden":"true"}},[s("span")])}],!1,null,null,null).exports,R={mixins:[n.a],name:"dashboard",data:function(){return{quick_setup:parseInt(dashboard.quick_setup.show),is_free:parseInt(defender.is_free),security_tweaks:{count:{issues:dashboard.security_tweaks.count.issues,resolved:dashboard.security_tweaks.count.resolved,total:dashboard.security_tweaks.count.total}},scan:{count:0,scan:dashboard.scan.scan},ip_lockout:{last_lockout:dashboard.ip_lockout.summary.lastLockout},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,state:{on_saving:!1}}},components:{"security-tweaks":c,"file-scanning":u,"file-scanning-free":_,blacklist:v,"blacklist-free":f,"ip-lockout":g,audit:y,"audit-free":k,report:x,"report-free":A,"advanced-tools":P,"quick-setup":I,"quick-setup-free":$,"cross-sale":D},methods:{countScanIssues:function(){var t=dashboard.scan.scan;return null===t||"init"===t.status||"progress"===t.status?0:t.count.total},newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){var e=t.$refs["file-scanning"];e.scan={},t.scan.scan={},t.scan.scan.status=s.data.status,e.scan.status=s.data.status,e.scan.percent=s.data.percent,e.scan.status_text=s.data.status_text,e.polling()}))}))},scanCanceled:function(t){this.scan.scan=t},scanCompleted:function(t,s){this.scan.count=s,this.scan.scan=t}},computed:{tooltips:function(){var t=this.__("You don't have any outstanding security issues, nice work!");return 1===this.security_tweaks.count.issues&&0===this.scan.count?t=this.__("You have one security tweak left to do. We recommend you action it, or ignore it if it's irrelevant."):0===this.security_tweaks.count.issues&&1===this.scan.count?t=this.__("We've detected a potential security risk in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless."):1===this.security_tweaks.count.issues&&1===this.scan.count?t=this.__("You have one security tweak left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."):1===this.security_tweaks.count.issues&&this.scan.count>1?t=this.vsprintf(this.__("You have one security tweak left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless"),this.scan.count):this.security_tweaks.count.issues>1&&1===this.scan.count?t=this.vsprintf(this.__("You have %s security tweaks left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."),this.security_tweaks.count.issues):this.security_tweaks.count.issues>1&&this.scan.count>1?t=this.vsprintf(this.__("You have %s security tweaks left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."),this.security_tweaks.count.issues,this.scan.count):this.security_tweaks.count.issues>1&&0===this.scan.count?t=this.vsprintf(this.__("You have %d security tweaks left to do. We recommend you action it, or ignore it if it's irrelevant."),this.security_tweaks.count.issues):0===this.security_tweaks.count.issues&&this.scan.count>1&&(t=this.vsprintf(this.__("We've detected %d potential security risks in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless."),this.scan.count)),t},securityTweaksIndicator:function(){return this.security_tweaks.count.resolved+"/"+this.security_tweaks.count.total},countTotalIssues:function(){return this.scan.count+this.security_tweaks.count.issues}},mounted:function(){var t=this;this.$nextTick((function(){t.scan.count=t.countScanIssues()}))}},q=Object(r.a)(R,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-wrap",class:t.maybeHighContrast()},[e("div",{staticClass:"defender-dashboard"},[e("div",{staticClass:"sui-header"},[e("h1",{staticClass:"sui-header-title"},[t._v(t._s(t.__("Dashboard")))]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender"}})],1)]),t._v(" "),e("summary-box",[e("div",{staticClass:"sui-summary-segment"},[e("div",{staticClass:"sui-summary-details"},[e("span",{staticClass:"sui-summary-large",domProps:{textContent:t._s(t.countTotalIssues)}}),t._v(" "),e("span",{staticClass:"sui-tooltip sui-tooltip-top-left sui-tooltip-constrained",attrs:{"data-tooltip":t.tooltips}},[0===this.security_tweaks.count.issues&&0===this.scan.count?e("i",{staticClass:"sui-icon-check-tick sui-success",attrs:{"aria-hidden":"true"}}):e("i",{staticClass:"sui-icon-info sui-warning",attrs:{"aria-hidden":"true"}})]),t._v(" "),e("span",{staticClass:"sui-summary-sub"},[t._v(t._s(t.__("Security Issue")))])])]),t._v(" "),e("div",{staticClass:"sui-summary-segment"},[e("ul",{staticClass:"sui-list"},[e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Security Tweaks Actioned")))]),t._v(" "),e("span",{staticClass:"sui-list-detail",domProps:{textContent:t._s(t.securityTweaksIndicator)}})]),t._v(" "),e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("File Scan Issues")))]),t._v(" "),e("span",{staticClass:"sui-list-detail"},[null===t.scan.scan?e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("New Scan"))+"\n ")]):"init"===t.scan.scan.status||"progress"===t.scan.scan.status?e("i",{staticClass:"sui-icon-loader sui-loading"}):0===t.scan.count?e("i",{staticClass:"sui-icon-check-tick sui-success"}):e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count))])],1)]),t._v(" "),e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Last Lockout")))]),t._v(" "),e("span",{staticClass:"sui-list-detail"},[t._v(t._s(t.ip_lockout.last_lockout))])])])])]),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-6"},[e("security-tweaks"),t._v(" "),0===t.is_free?e("blacklist"):1===t.is_free?e("blacklist-free"):t._e(),t._v(" "),e("advanced-tools")],1),t._v(" "),e("div",{staticClass:"sui-col-md-6"},[0===t.is_free?e("file-scanning",{ref:"file-scanning",on:{scanCanceled:t.scanCanceled,scanCompleted:t.scanCompleted}}):1===t.is_free?e("file-scanning-free",{ref:"file-scanning",attrs:{scanCompleted:"scanCompleted"},on:{scanCanceled:t.scanCanceled}}):t._e(),t._v(" "),e("ip-lockout"),t._v(" "),0===t.is_free?e("audit"):1===t.is_free?e("audit-free"):t._e(),t._v(" "),0===t.is_free?e("report"):1===t.is_free?e("report-free"):t._e()],1)]),t._v(" "),1===t.is_free?e("cross-sale"):t._e(),t._v(" "),e("app-footer")],1),t._v(" "),1===t.quick_setup&&0===t.is_free?e("quick-setup"):1===t.quick_setup&&1===t.is_free?e("quick-setup-free"):t._e()],1)}),[],!1,null,null,null).exports,L=e("./src/component/overlay.vue"),U=e("./src/component/submit-button.vue"),H=e("./src/component/footer.vue"),W=e("./src/component/doc-link.vue"),M=e("./src/component/summary-box.vue");a.a.component("overlay",L.a),a.a.component("submit-button",U.a),a.a.component("app-footer",H.a),a.a.component("doc-link",W.a),a.a.component("summary-box",M.a);new a.a({el:"#defender",components:{dashboard:q},render:function(t){return t(q)}})},"./src/helper/base_hepler.js":function(t,s,e){"use strict";var i=e("./node_modules/xss/lib/index.js"),a=function(t,s){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,s){var e=[],i=!0,a=!1,n=void 0;try{for(var o,r=t[Symbol.iterator]();!(i=(o=r.next()).done)&&(e.push(o.value),!s||e.length!==s);i=!0);}catch(t){a=!0,n=t}finally{try{!i&&r.return&&r.return()}finally{if(a)throw n}}return e}(t,s);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=wp.i18n,o={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,s,e,a){return"a"===t&&"href"===s&&"%s"===e?"%s":Object(i.safeAttrValue)(t,s,e,a)}},r=new i.FilterXSS(o),c=[];s.a={methods:{__:function(t){var s=n.__(t,"wpdef");return r.process(s)},xss:function(t){return r.process(t)},vsprintf:function(t){return n.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,s,e,i,a){var n=this;void 0===a&&(this.state.on_saving=!0);var o=ajaxurl+"?action="+this.endpoints[s]+"&_wpnonce="+this.nonces[s],r=jQuery.ajax({url:o,method:t,data:e,success:function(t){var s=t.data;n.state.on_saving=!1,void 0!==s&&void 0!==s.message&&(t.success?Defender.showNotification("success",s.message):Defender.showNotification("error",s.message)),void 0!==i&&i(t)}});c.push(r)},httpGetRequest:function(t,s,e,i){this.httpRequest("get",t,s,e,i)},httpPostRequest:function(t,s,e,i){this.httpRequest("post",t,s,e,i)},abortAllRequests:function(){for(var t=0;t<c.length;t++)c[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,s){var e=s.split("="),i=a(e,2),n=i[0],o=i[1];return t[n]=o?decodeURIComponent(o.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,s){t.exports=Vue}});
1
+ !function(t){var s=window.webpackHotUpdate;window.webpackHotUpdate=function(t,e){!function(t,s){if(!y[t]||!b[t])return;for(var e in b[t]=!1,s)Object.prototype.hasOwnProperty.call(s,e)&&(v[e]=s[e]);0==--f&&0===m&&x()}(t,e),s&&s(t,e)};var e,i=!0,a="1f0325ef5048e0254986",n={},o=[],r=[];function c(t){var s=A[t];if(!s)return j;var i=function(i){return s.hot.active?(A[i]?-1===A[i].parents.indexOf(t)&&A[i].parents.push(t):(o=[t],e=i),-1===s.children.indexOf(i)&&s.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),o=[]),j(i)},a=function(t){return{configurable:!0,enumerable:!0,get:function(){return j[t]},set:function(s){j[t]=s}}};for(var n in j)Object.prototype.hasOwnProperty.call(j,n)&&"e"!==n&&"t"!==n&&Object.defineProperty(i,n,a(n));return i.e=function(t){return"ready"===d&&_("prepare"),m++,j.e(t).then(s,(function(t){throw s(),t}));function s(){m--,"prepare"===d&&(g[t]||w(t),0===m&&0===f&&x())}},i.t=function(t,s){return 1&s&&(t=i(t)),j.t(t,-2&s)},i}function l(t){var s={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:e!==t,active:!0,accept:function(t,e){if(void 0===t)s._selfAccepted=!0;else if("function"==typeof t)s._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)s._acceptedDependencies[t[i]]=e||function(){};else s._acceptedDependencies[t]=e||function(){}},decline:function(t){if(void 0===t)s._selfDeclined=!0;else if("object"==typeof t)for(var e=0;e<t.length;e++)s._declinedDependencies[t[e]]=!0;else s._declinedDependencies[t]=!0},dispose:function(t){s._disposeHandlers.push(t)},addDisposeHandler:function(t){s._disposeHandlers.push(t)},removeDisposeHandler:function(t){var e=s._disposeHandlers.indexOf(t);e>=0&&s._disposeHandlers.splice(e,1)},check:k,apply:S,status:function(t){if(!t)return d;u.push(t)},addStatusHandler:function(t){u.push(t)},removeStatusHandler:function(t){var s=u.indexOf(t);s>=0&&u.splice(s,1)},data:n[t]};return e=void 0,s}var u=[],d="idle";function _(t){d=t;for(var s=0;s<u.length;s++)u[s].call(null,t)}var p,v,h,f=0,m=0,g={},b={},y={};function C(t){return+t+""===t?+t:t}function k(t){if("idle"!==d)throw new Error("check() is only allowed in idle status");return i=t,_("check"),(s=1e4,s=s||1e4,new Promise((function(t,e){if("undefined"==typeof XMLHttpRequest)return e(new Error("No browser support"));try{var i=new XMLHttpRequest,n=j.p+""+a+".hot-update.json";i.open("GET",n,!0),i.timeout=s,i.send(null)}catch(t){return e(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)e(new Error("Manifest request to "+n+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)e(new Error("Manifest request to "+n+" failed."));else{try{var s=JSON.parse(i.responseText)}catch(t){return void e(t)}t(s)}}}))).then((function(t){if(!t)return _("idle"),null;b={},g={},y=t.c,h=t.h,_("prepare");var s=new Promise((function(t,s){p={resolve:t,reject:s}}));v={};return w(2),"prepare"===d&&0===m&&0===f&&x(),s}));var s}function w(t){y[t]?(b[t]=!0,f++,function(t){var s=document.createElement("script");s.charset="utf-8",s.src=j.p+""+t+"."+a+".hot-update.js",document.head.appendChild(s)}(t)):g[t]=!0}function x(){_("ready");var t=p;if(p=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(s){t.resolve(s)}),(function(s){t.reject(s)}));else{var s=[];for(var e in v)Object.prototype.hasOwnProperty.call(v,e)&&s.push(C(e));t.resolve(s)}}function S(s){if("ready"!==d)throw new Error("apply() is only allowed in ready status");var e,i,r,c,l;function u(t){for(var s=[t],e={},i=s.map((function(t){return{chain:[t],id:t}}));i.length>0;){var a=i.pop(),n=a.id,o=a.chain;if((c=A[n])&&!c.hot._selfAccepted){if(c.hot._selfDeclined)return{type:"self-declined",chain:o,moduleId:n};if(c.hot._main)return{type:"unaccepted",chain:o,moduleId:n};for(var r=0;r<c.parents.length;r++){var l=c.parents[r],u=A[l];if(u){if(u.hot._declinedDependencies[n])return{type:"declined",chain:o.concat([l]),moduleId:n,parentId:l};-1===s.indexOf(l)&&(u.hot._acceptedDependencies[n]?(e[l]||(e[l]=[]),p(e[l],[n])):(delete e[l],s.push(l),i.push({chain:o.concat([l]),id:l})))}}}}return{type:"accepted",moduleId:t,outdatedModules:s,outdatedDependencies:e}}function p(t,s){for(var e=0;e<s.length;e++){var i=s[e];-1===t.indexOf(i)&&t.push(i)}}s=s||{};var f={},m=[],g={},b=function(){console.warn("[HMR] unexpected require("+w.moduleId+") to disposed module")};for(var k in v)if(Object.prototype.hasOwnProperty.call(v,k)){var w;l=C(k);var x=!1,S=!1,P=!1,T="";switch((w=v[k]?u(l):{type:"disposed",moduleId:k}).chain&&(T="\nUpdate propagation: "+w.chain.join(" -> ")),w.type){case"self-declined":s.onDeclined&&s.onDeclined(w),s.ignoreDeclined||(x=new Error("Aborted because of self decline: "+w.moduleId+T));break;case"declined":s.onDeclined&&s.onDeclined(w),s.ignoreDeclined||(x=new Error("Aborted because of declined dependency: "+w.moduleId+" in "+w.parentId+T));break;case"unaccepted":s.onUnaccepted&&s.onUnaccepted(w),s.ignoreUnaccepted||(x=new Error("Aborted because "+l+" is not accepted"+T));break;case"accepted":s.onAccepted&&s.onAccepted(w),S=!0;break;case"disposed":s.onDisposed&&s.onDisposed(w),P=!0;break;default:throw new Error("Unexception type "+w.type)}if(x)return _("abort"),Promise.reject(x);if(S)for(l in g[l]=v[l],p(m,w.outdatedModules),w.outdatedDependencies)Object.prototype.hasOwnProperty.call(w.outdatedDependencies,l)&&(f[l]||(f[l]=[]),p(f[l],w.outdatedDependencies[l]));P&&(p(m,[w.moduleId]),g[l]=b)}var I,E=[];for(i=0;i<m.length;i++)l=m[i],A[l]&&A[l].hot._selfAccepted&&g[l]!==b&&E.push({module:l,errorHandler:A[l].hot._selfAccepted});_("dispose"),Object.keys(y).forEach((function(t){!1===y[t]&&function(t){delete installedChunks[t]}(t)}));for(var $,O,D=m.slice();D.length>0;)if(l=D.pop(),c=A[l]){var R={},q=c.hot._disposeHandlers;for(r=0;r<q.length;r++)(e=q[r])(R);for(n[l]=R,c.hot.active=!1,delete A[l],delete f[l],r=0;r<c.children.length;r++){var L=A[c.children[r]];L&&((I=L.parents.indexOf(l))>=0&&L.parents.splice(I,1))}}for(l in f)if(Object.prototype.hasOwnProperty.call(f,l)&&(c=A[l]))for(O=f[l],r=0;r<O.length;r++)$=O[r],(I=c.children.indexOf($))>=0&&c.children.splice(I,1);for(l in _("apply"),a=h,g)Object.prototype.hasOwnProperty.call(g,l)&&(t[l]=g[l]);var U=null;for(l in f)if(Object.prototype.hasOwnProperty.call(f,l)&&(c=A[l])){O=f[l];var H=[];for(i=0;i<O.length;i++)if($=O[i],e=c.hot._acceptedDependencies[$]){if(-1!==H.indexOf(e))continue;H.push(e)}for(i=0;i<H.length;i++){e=H[i];try{e(O)}catch(t){s.onErrored&&s.onErrored({type:"accept-errored",moduleId:l,dependencyId:O[i],error:t}),s.ignoreErrored||U||(U=t)}}}for(i=0;i<E.length;i++){var W=E[i];l=W.module,o=[l];try{j(l)}catch(t){if("function"==typeof W.errorHandler)try{W.errorHandler(t)}catch(e){s.onErrored&&s.onErrored({type:"self-accept-error-handler-errored",moduleId:l,error:e,originalError:t}),s.ignoreErrored||U||(U=e),U||(U=t)}else s.onErrored&&s.onErrored({type:"self-accept-errored",moduleId:l,error:t}),s.ignoreErrored||U||(U=t)}}return U?(_("fail"),Promise.reject(U)):(_("idle"),new Promise((function(t){t(m)})))}var A={};function j(s){if(A[s])return A[s].exports;var e=A[s]={i:s,l:!1,exports:{},hot:l(s),parents:(r=o,o=[],r),children:[]};return t[s].call(e.exports,e,e.exports,c(s)),e.l=!0,e.exports}j.m=t,j.c=A,j.d=function(t,s,e){j.o(t,s)||Object.defineProperty(t,s,{enumerable:!0,get:e})},j.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},j.t=function(t,s){if(1&s&&(t=j(t)),8&s)return t;if(4&s&&"object"==typeof t&&t&&t.__esModule)return t;var e=Object.create(null);if(j.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:t}),2&s&&"string"!=typeof t)for(var i in t)j.d(e,i,function(s){return t[s]}.bind(null,i));return e},j.n=function(t){var s=t&&t.__esModule?function(){return t.default}:function(){return t};return j.d(s,"a",s),s},j.o=function(t,s){return Object.prototype.hasOwnProperty.call(t,s)},j.p="",j.h=function(){return a},c("./src/dashboard.js")(j.s="./src/dashboard.js")}({"./node_modules/cssfilter/lib/css.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/default.js"),a=e("./node_modules/cssfilter/lib/parser.js");e("./node_modules/cssfilter/lib/util.js");function n(t){return null==t}function o(t){(t=function(t){var s={};for(var e in t)s[e]=t[e];return s}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}o.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var s=this.options,e=s.whiteList,i=s.onAttr,o=s.onIgnoreAttr,r=s.safeAttrValue;return a(t,(function(t,s,a,c,l){var u=e[a],d=!1;if(!0===u?d=u:"function"==typeof u?d=u(c):u instanceof RegExp&&(d=u.test(c)),!0!==d&&(d=!1),c=r(a,c)){var _,p={position:s,sourcePosition:t,source:l,isWhite:d};return d?n(_=i(a,c,p))?a+":"+c:_:n(_=o(a,c,p))?void 0:_}}))},t.exports=o},"./node_modules/cssfilter/lib/default.js":function(t,s){function e(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;s.whiteList=e(),s.getDefaultWhiteList=e,s.onAttr=function(t,s,e){},s.onIgnoreAttr=function(t,s,e){},s.safeAttrValue=function(t,s){return i.test(s)?"":s}},"./node_modules/cssfilter/lib/index.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/default.js"),a=e("./node_modules/cssfilter/lib/css.js");for(var n in(s=t.exports=function(t,s){return new a(s).process(t)}).FilterCSS=a,i)s[n]=i[n];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/util.js");t.exports=function(t,s){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var e=t.length,a=!1,n=0,o=0,r="";function c(){if(!a){var e=i.trim(t.slice(n,o)),c=e.indexOf(":");if(-1!==c){var l=i.trim(e.slice(0,c)),u=i.trim(e.slice(c+1));if(l){var d=s(n,r.length,l,u,e);d&&(r+=d+"; ")}}}n=o+1}for(;o<e;o++){var l=t[o];if("/"===l&&"*"===t[o+1]){var u=t.indexOf("*/",o+2);if(-1===u)break;n=(o=u+1)+1,a=!1}else"("===l?a=!0:")"===l?a=!1:";"===l?a||c():"\n"===l&&c()}return i.trim(r)}},"./node_modules/cssfilter/lib/util.js":function(t,s){t.exports={indexOf:function(t,s){var e,i;if(Array.prototype.indexOf)return t.indexOf(s);for(e=0,i=t.length;e<i;e++)if(t[e]===s)return e;return-1},forEach:function(t,s,e){var i,a;if(Array.prototype.forEach)return t.forEach(s,e);for(i=0,a=t.length;i<a;i++)s.call(e,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,s,e){"use strict";function i(t,s,e,i,a,n,o,r){var c,l="function"==typeof t?t.options:t;if(s&&(l.render=s,l.staticRenderFns=e,l._compiled=!0),i&&(l.functional=!0),n&&(l._scopeId="data-v-"+n),o?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=c):a&&(c=r?function(){a.call(this,this.$root.$options.shadowRoot)}:a),c)if(l.functional){l._injectStyles=c;var u=l.render;l.render=function(t,s){return c.call(s),u(t,s)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,c):[c]}return{exports:t,options:l}}e.d(s,"a",(function(){return i}))},"./node_modules/xss/lib/default.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/index.js").FilterCSS,a=e("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,n=e("./node_modules/xss/lib/util.js");function o(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var r=new i;function c(t){return t.replace(l,"&lt;").replace(u,"&gt;")}var l=/</g,u=/>/g,d=/"/g,_=/&quot;/g,p=/&#([a-zA-Z0-9]*);?/gim,v=/&colon;?/gim,h=/&newline;?/gim,f=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,m=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(d,"&quot;")}function y(t){return t.replace(_,'"')}function C(t){return t.replace(p,(function(t,s){return"x"===s[0]||"X"===s[0]?String.fromCharCode(parseInt(s.substr(1),16)):String.fromCharCode(parseInt(s,10))}))}function k(t){return t.replace(v,":").replace(h," ")}function w(t){for(var s="",e=0,i=t.length;e<i;e++)s+=t.charCodeAt(e)<32?" ":t.charAt(e);return n.trim(s)}function x(t){return t=w(t=k(t=C(t=y(t))))}function S(t){return t=c(t=b(t))}var A=/<!--[\s\S]*?-->/g;s.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},s.getDefaultWhiteList=o,s.onTag=function(t,s,e){},s.onIgnoreTag=function(t,s,e){},s.onTagAttr=function(t,s,e){},s.onIgnoreTagAttr=function(t,s,e){},s.safeAttrValue=function(t,s,e,i){if(e=x(e),"href"===s||"src"===s){if("#"===(e=n.trim(e)))return"#";if("http://"!==e.substr(0,7)&&"https://"!==e.substr(0,8)&&"mailto:"!==e.substr(0,7)&&"tel:"!==e.substr(0,4)&&"#"!==e[0]&&"/"!==e[0])return""}else if("background"===s){if(f.lastIndex=0,f.test(e))return""}else if("style"===s){if(m.lastIndex=0,m.test(e))return"";if(g.lastIndex=0,g.test(e)&&(f.lastIndex=0,f.test(e)))return"";!1!==i&&(e=(i=i||r).process(e))}return e=S(e)},s.escapeHtml=c,s.escapeQuote=b,s.unescapeQuote=y,s.escapeHtmlEntities=C,s.escapeDangerHtml5Entities=k,s.clearNonPrintableCharacter=w,s.friendlyAttrValue=x,s.escapeAttrValue=S,s.onIgnoreTagStripAll=function(){return""},s.StripTagBody=function(t,s){"function"!=typeof s&&(s=function(){});var e=!Array.isArray(t),i=[],a=!1;return{onIgnoreTag:function(o,r,c){if(function(s){return!!e||-1!==n.indexOf(t,s)}(o)){if(c.isClosing){var l="[/removed]",u=c.position+l.length;return i.push([!1!==a?a:c.position,u]),a=!1,l}return a||(a=c.position),"[removed]"}return s(o,r,c)},remove:function(t){var s="",e=0;return n.forEach(i,(function(i){s+=t.slice(e,i[0]),e=i[1]})),s+=t.slice(e)}}},s.stripCommentTag=function(t){return t.replace(A,"")},s.stripBlankChar=function(t){var s=t.split("");return(s=s.filter((function(t){var s=t.charCodeAt(0);return 127!==s&&(!(s<=31)||(10===s||13===s))}))).join("")},s.cssFilter=r,s.getDefaultCSSWhiteList=a},"./node_modules/xss/lib/index.js":function(t,s,e){var i=e("./node_modules/xss/lib/default.js"),a=e("./node_modules/xss/lib/parser.js"),n=e("./node_modules/xss/lib/xss.js");function o(t,s){return new n(s).process(t)}for(var r in(s=t.exports=o).filterXSS=o,s.FilterXSS=n,i)s[r]=i[r];for(var r in a)s[r]=a[r];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,s,e){var i=e("./node_modules/xss/lib/util.js");function a(t){var s=i.spaceIndex(t);if(-1===s)var e=t.slice(1,-1);else e=t.slice(1,s+1);return"/"===(e=i.trim(e).toLowerCase()).slice(0,1)&&(e=e.slice(1)),"/"===e.slice(-1)&&(e=e.slice(0,-1)),e}function n(t){return"</"===t.slice(0,2)}var o=/[^a-zA-Z0-9_:\.\-]/gim;function r(t,s){for(;s<t.length;s++){var e=t[s];if(" "!==e)return"="===e?s:-1}}function c(t,s){for(;s>0;s--){var e=t[s];if(" "!==e)return"="===e?s:-1}}function l(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}s.parseTag=function(t,s,e){var i="",o=0,r=!1,c=!1,l=0,u=t.length,d="",_="";for(l=0;l<u;l++){var p=t.charAt(l);if(!1===r){if("<"===p){r=l;continue}}else if(!1===c){if("<"===p){i+=e(t.slice(o,l)),r=l,o=l;continue}if(">"===p){i+=e(t.slice(o,r)),d=a(_=t.slice(r,l+1)),i+=s(r,i.length,d,_,n(_)),o=l+1,r=!1;continue}if(('"'===p||"'"===p)&&"="===t.charAt(l-1)){c=p;continue}}else if(p===c){c=!1;continue}}return o<t.length&&(i+=e(t.substr(o))),i},s.parseAttr=function(t,s){var e=0,a=[],n=!1,u=t.length;function d(t,e){if(!((t=(t=i.trim(t)).replace(o,"").toLowerCase()).length<1)){var n=s(t,e||"");n&&a.push(n)}}for(var _=0;_<u;_++){var p,v=t.charAt(_);if(!1!==n||"="!==v)if(!1===n||_!==e||'"'!==v&&"'"!==v||"="!==t.charAt(_-1))if(/\s|\n|\t/.test(v)){if(t=t.replace(/\s|\n|\t/g," "),!1===n){if(-1===(p=r(t,_))){d(i.trim(t.slice(e,_))),n=!1,e=_+1;continue}_=p-1;continue}if(-1===(p=c(t,_-1))){d(n,l(i.trim(t.slice(e,_)))),n=!1,e=_+1;continue}}else;else{if(-1===(p=t.indexOf(v,_+1)))break;d(n,i.trim(t.slice(e+1,p))),n=!1,e=(_=p)+1}else n=t.slice(e,_),e=_+1}return e<t.length&&(!1===n?d(t.slice(e)):d(n,l(i.trim(t.slice(e))))),i.trim(a.join(" "))}},"./node_modules/xss/lib/util.js":function(t,s){t.exports={indexOf:function(t,s){var e,i;if(Array.prototype.indexOf)return t.indexOf(s);for(e=0,i=t.length;e<i;e++)if(t[e]===s)return e;return-1},forEach:function(t,s,e){var i,a;if(Array.prototype.forEach)return t.forEach(s,e);for(i=0,a=t.length;i<a;i++)s.call(e,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var s=/\s|\n|\t/.exec(t);return s?s.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,s,e){var i=e("./node_modules/cssfilter/lib/index.js").FilterCSS,a=e("./node_modules/xss/lib/default.js"),n=e("./node_modules/xss/lib/parser.js"),o=n.parseTag,r=n.parseAttr,c=e("./node_modules/xss/lib/util.js");function l(t){return null==t}function u(t){(t=function(t){var s={};for(var e in t)s[e]=t[e];return s}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=a.onIgnoreTagStripAll),t.whiteList=t.whiteList||a.whiteList,t.onTag=t.onTag||a.onTag,t.onTagAttr=t.onTagAttr||a.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||a.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||a.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||a.safeAttrValue,t.escapeHtml=t.escapeHtml||a.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}u.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var s=this.options,e=s.whiteList,i=s.onTag,n=s.onIgnoreTag,u=s.onTagAttr,d=s.onIgnoreTagAttr,_=s.safeAttrValue,p=s.escapeHtml,v=this.cssFilter;s.stripBlankChar&&(t=a.stripBlankChar(t)),s.allowCommentTag||(t=a.stripCommentTag(t));var h=!1;if(s.stripIgnoreTagBody){h=a.StripTagBody(s.stripIgnoreTagBody,n);n=h.onIgnoreTag}var f=o(t,(function(t,s,a,o,h){var f,m={sourcePosition:t,position:s,isClosing:h,isWhite:e.hasOwnProperty(a)};if(!l(f=i(a,o,m)))return f;if(m.isWhite){if(m.isClosing)return"</"+a+">";var g=function(t){var s=c.spaceIndex(t);if(-1===s)return{html:"",closing:"/"===t[t.length-2]};var e="/"===(t=c.trim(t.slice(s+1,-1)))[t.length-1];return e&&(t=c.trim(t.slice(0,-1))),{html:t,closing:e}}(o),b=e[a],y=r(g.html,(function(t,s){var e,i=-1!==c.indexOf(b,t);return l(e=u(a,t,s,i))?i?(s=_(a,t,s,v))?t+'="'+s+'"':t:l(e=d(a,t,s,i))?void 0:e:e}));o="<"+a;return y&&(o+=" "+y),g.closing&&(o+=" /"),o+=">"}return l(f=n(a,o,m))?p(o):f}),p);return h&&(f=h.remove(f)),f},t.exports=u},"./src/component/doc-link.vue":function(t,s,e){"use strict";var i={mixins:[e("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,s=this._self._c||t;return!1===this.whitelabel.hide_doc_link?s("div",{staticClass:"sui-actions-right"},[s("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[s("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);s.a=n.exports},"./src/component/footer.vue":function(t,s,e){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",[!0===t.whitelabel.change_footer?e("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):e("div",{staticClass:"sui-footer"},[t._v("Made with "),e("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?e("div",[t.is_free?e("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):e("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,s=this._self._c||t;return s("li",[s("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("ul",{staticClass:"sui-footer-social"},[e("li",[e("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[e("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[e("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),e("li",[e("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[e("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),e("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);s.a=n.exports},"./src/component/overlay.vue":function(t,s,e){"use strict";var i={name:"overlay"},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement;this._self._c;return this._m(0)}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"wd-overlay"},[s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);s.a=n.exports},"./src/component/submit-button.vue":function(t,s,e){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(s){return t.$emit("click")}}},[e("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),e("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);s.a=n.exports},"./src/component/summary-box.vue":function(t,s,e){"use strict";var i={mixins:[e("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},a=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[s("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);s.a=n.exports},"./src/dashboard.js":function(t,s,e){"use strict";e.r(s);var i=e("vue"),a=e.n(i),n=e("./src/helper/base_hepler.js"),o={mixins:[n.a],name:"security-tweaks",data:function(){return{rules:dashboard.security_tweaks.rules,count:dashboard.security_tweaks.count.issues}},methods:{handleRedirect:function(t){window.location.href=this.adminUrl("admin.php?page=wdf-hardener#"+t.slug)}}},r=e("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),c=Object(r.a)(o,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box hardener-widget"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-wrench-tool",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Security Tweaks"))+"\n ")]),t._v(" "),t.count>0?e("div",{staticClass:"sui-actions-left"},[e("div",{staticClass:"sui-tag sui-tag-warning",domProps:{textContent:t._s(t.count)}})]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Defender checks for basic security tweaks you can make to enhance your website’s defense against hackers and bots."))+"\n ")]),t._v(" "),0===t.count?e("div",{staticClass:"sui-notice sui-notice-success"},[e("p",[t._v("\n "+t._s(t.__("You’ve actioned all of the recommended security tweaks."))+"\n ")])]):t._e()]),t._v(" "),t.count>0?e("div",{staticClass:"sui-accordion sui-accordion-flushed no-border-bottom"},t._l(t.rules,(function(s){return e("div",{staticClass:"sui-accordion-item sui-warning",on:{click:function(e){return t.handleRedirect(s)}}},[e("div",{staticClass:"sui-accordion-item-header"},[e("div",{staticClass:"sui-accordion-item-title"},[e("i",{staticClass:"sui-icon-warning-alert sui-warning",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(s.title)+"\n "),t._m(0,!0)])])])})),0):t._e(),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-hardener")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View All"))+"\n ")])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-actions-right"},[s("i",{staticClass:"sui-icon-chevron-right",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null).exports,l={mixins:[n.a],name:"file-scanning",data:function(){return{scan:dashboard.scan.scan,state:{on_saving:!1,canceling:!1},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,polling_state:null,report:dashboard.scan.report}},methods:{newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){t.scan={},t.scan.status=s.data.status,t.scan.percent=s.data.percent,t.scan.status_text=s.data.status_text,t.polling()}))}))},cancelScan:function(){if(!0!==this.state.canceling){this.abortAllRequests();var t=this;clearTimeout(this.polling_state),this.state.canceling=!0,this.httpPostRequest("cancelScan",{},(function(s){t.$nextTick((function(){t.scan=s.data.scan,t.state.canceling=!1,t.$emit("scanCanceled",t.scan)}))}))}},refreshStatus:function(){var t=this;this.httpPostRequest("processScan",{},(function(s){!1===s.success?(t.scan=s.data,t.polling()):(t.scan=s.data.scan,t.$emit("scanCompleted",t.scan,s.data.scan.count.total))}))},polling:function(){!1===this.state.canceling&&(this.polling_state=setTimeout(this.refreshStatus(),500))},resultIndicator:function(t){return t>0?'<span class="sui-tag sui-tag-error">'+t+"</span>":'<i aria-hidden="true" class="sui-icon-check-tick sui-success"></i>'}},computed:{statusText:function(){return this.scan.status_text},reportText:function(){if(!1!==this.report.enabled){var t=void 0;switch(parseInt(this.report.frequency)){case 1:t="daily";break;case 7:t="weekly";break;case 30:t="monthly"}return this.vsprintf(this.__("Automatic scans are running %s"),t)}},percent:function(){return this.scan.percent}},mounted:function(){null===this.scan||"process"!==this.scan.status&&"init"!==this.scan.status||this.polling()}},u=Object(r.a)(l,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-layers",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("File Scanning"))+"\n ")]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-actions-left"},[null!==t.scan&&t.scan.count.total>0?e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count.total))]):t._e()]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":null!==t.scan&&"finish"===t.scan.status}},[e("p",[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")]),t._v(" "),null===t.scan?e("div",[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("Run scan"))+"\n ")])],1):"process"===t.scan.status||"init"===t.scan.status?e("div",[e("div",{staticClass:"sui-progress-block"},[e("div",{staticClass:"sui-progress"},[t._m(0),t._v(" "),e("span",{staticClass:"sui-progress-text"},[e("span",{domProps:{textContent:t._s(t.percent+"%")}})]),t._v(" "),e("div",{staticClass:"sui-progress-bar",attrs:{"aria-hidden":"true"}},[e("span",{style:{width:t.percent+"%"}})])]),t._v(" "),e("button",{staticClass:"sui-button-icon sui-tooltip",attrs:{type:"button",disabled:t.state.canceling,"data-tooltip":"Cancel"},on:{click:t.cancelScan}},[e("i",{staticClass:"sui-icon-close",attrs:{"aria-hidden":"true"}})])]),t._v(" "),e("div",{staticClass:"sui-progress-state"},[e("span",{domProps:{textContent:t._s(t.statusText)}})])]):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("WordPress Core"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.core))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("Plugins & Themes"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.vuln))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Suspicious Code")))])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.content))}})])])])]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-scan")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Report"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.reportText)}})])]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("span",{staticClass:"sui-progress-icon",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-loader sui-loading"})])}],!1,null,null,null).exports,d={mixins:[n.a],name:"file-scanning",data:function(){return{scan:dashboard.scan.scan,state:{on_saving:!1,canceling:!1},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,polling_state:null,report:dashboard.scan.report}},methods:{newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){t.scan={},t.scan.status=s.data.status,t.scan.percent=s.data.percent,t.scan.status_text=s.data.status_text,t.polling()}))}))},cancelScan:function(){if(!0!==this.state.canceling){this.abortAllRequests();var t=this;clearTimeout(this.polling_state),this.state.canceling=!0,this.httpPostRequest("cancelScan",{},(function(s){t.$nextTick((function(){t.scan=s.data.scan,t.state.canceling=!1}))}))}},refreshStatus:function(){var t=this;this.httpPostRequest("processScan",{},(function(s){!1===s.success?(t.scan=s.data,t.polling()):t.scan=s.data.scan}))},polling:function(){!1===this.state.canceling&&(this.polling_state=setTimeout(this.refreshStatus(),500))},resultIndicator:function(t){return t>0?'<span class="sui-tag sui-tag-error">'+t+"</span>":'<i aria-hidden="true" class="sui-icon-check-tick sui-success"></i>'}},computed:{statusText:function(){return this.scan.status_text},percent:function(){return this.scan.percent}},mounted:function(){null===this.scan||"process"!==this.scan.status&&"init"!==this.scan.status||this.polling()}},_=Object(r.a)(d,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-layers",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("File Scanning"))+"\n ")]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-actions-left"},[t.scan.count.total>0?e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count.total))]):t._e()]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":null!==t.scan&&"finish"===t.scan.status}},[e("p",[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get and get notified about anything suspicious."))+"\n ")]),t._v(" "),null===t.scan?e("div",[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("Run scan"))+"\n ")])],1):"process"===t.scan.status||"init"===t.scan.status?e("div",[e("div",{staticClass:"sui-progress-block"},[e("div",{staticClass:"sui-progress"},[t._m(0),t._v(" "),e("span",{staticClass:"sui-progress-text"},[e("span",{domProps:{textContent:t._s(t.percent+"%")}})]),t._v(" "),e("div",{staticClass:"sui-progress-bar",attrs:{"aria-hidden":"true"}},[e("span",{style:{width:t.percent+"%"}})])]),t._v(" "),e("button",{staticClass:"sui-button-icon sui-tooltip",attrs:{type:"button",disabled:t.state.canceling,"data-tooltip":"Cancel"},on:{click:t.cancelScan}},[e("i",{staticClass:"sui-icon-close",attrs:{"aria-hidden":"true"}})])]),t._v(" "),e("div",{staticClass:"sui-progress-state"},[e("span",{domProps:{textContent:t._s(t.statusText)}})])]):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("WordPress Core"))+"\n ")])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.resultIndicator(t.scan.count.core))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v("\n "+t._s(t.__("Plugins & Themes"))+"\n ")])]),t._v(" "),e("a",{staticClass:"sui-button sui-button-purple sui-tooltip",attrs:{href:t.campaign_url("defender_dash_filescan_pro_tag"),target:"_blank","data-tooltip":"Try Defender Pro free today"}},[t._v("\n "+t._s(t.__("Pro Feature"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Suspicious Code")))])]),t._v(" "),e("a",{staticClass:"sui-button sui-button-purple sui-tooltip",attrs:{href:t.campaign_url("defender_dash_filescan_pro_tag"),target:"_blank","data-tooltip":"Try Defender Pro free today"}},[t._v("\n "+t._s(t.__("Pro Feature"))+"\n ")])])])])]),t._v(" "),null!==t.scan&&"finish"===t.scan.status?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-scan")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Report"))+"\n ")])])]):t._e()])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("span",{staticClass:"sui-progress-icon",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-loader sui-loading"})])}],!1,null,null,null).exports,p={mixins:[n.a],name:"blacklist",data:function(){return{state:{on_saving:!1},status:"fetching",nonces:dashboard.blacklist.nonces,endpoints:dashboard.blacklist.endpoints}},methods:{toggle:function(){var t=this;this.httpGetRequest("toggleBlacklistWidget",{},(function(s){switch(parseInt(s.data.status)){case-1:t.status="new";break;case 0:t.status="blacklisted";break;case 1:t.status="good"}}))}},mounted:function(){var t=this;this.httpGetRequest("blacklistWidgetStatus",{},(function(s){switch(parseInt(s.data.status)){case-1:t.status="new";break;case 0:t.status="blacklisted";break;case 1:t.status="good"}}))}},v=Object(r.a)(p,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-target",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),"blacklisted"===t.status||"good"===t.status?e("div",{staticClass:"sui-actions-right"},[e("label",{staticClass:"sui-toggle"},[e("input",{staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"checked"},on:{click:t.toggle}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])]):t._e()]),t._v(" "),e("div",{staticClass:"sui-box-body"},[e("div",[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’swrong, we’ll let you know via email."))+"\n ")]),t._v(" "),"fetching"===t.status?e("div",{staticClass:"sui-notice sui-notice-info"},[e("p",[t._v("\n "+t._s(t.__("Fetching your domain info..."))+"\n ")])]):"new"===t.status?e("form",{staticClass:"margin-top-30",attrs:{method:"post"}},[e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:function(s){return t.toggle(!0)}}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):"blacklisted"===t.status?e("div",{staticClass:"sui-notice sui-notice-error"},[e("p",[t._v("\n "+t._s(t.__("Your domain is currently on Google’s blacklist. Check out the article below to find out how to fix up your domain."))+"\n ")])]):"good"===t.status?e("div",{staticClass:"sui-notice sui-notice-success"},[e("p",[t._v("\n "+t._s(t.__("Your domain is currently clean."))+"\n ")])]):t._e(),t._v(" "),"new"!==t.status?e("div",{staticClass:"sui-center-box no-padding-bottom"},[e("p",{staticClass:"sui-p-small"},[t._v("\n "+t._s(t.__("Want to know more about blacklisting?"))+" "),e("a",{attrs:{href:"https://premium.wpmudev.org/blog/get-off-googles-blacklist/"}},[t._v(t._s(t.__("Read this article.")))])])]):t._e()]),t._v(" "),e("overlay",{directives:[{name:"show",rawName:"v-show",value:!0===t.state.on_saving,expression:"state.on_saving===true"}]})],1)}),[],!1,null,null,null).exports,h={mixins:[n.a],name:"blacklist-free"},f=Object(r.a)(h,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-target",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[t._v(t._s(t.__("Pro")))])])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-margin-bottom no-padding-bottom"},[e("p",[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("assets/img/dashboard-blacklist.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Defender will warn you if your site has been flagged as unsafe. Get blacklist Monitor as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_blacklist_upgrade_button")}},[t._v(t._s(t.__("Try Pro Free Today")))]),t._v(".\n ")])])])])])}),[],!1,null,null,null).exports,m={mixins:[n.a],name:"ip-lockout",data:function(){return{state:{on_saving:!1},nonces:dashboard.ip_lockout.nonces,endpoints:dashboard.ip_lockout.endpoints,summary:dashboard.ip_lockout.summary,notification:dashboard.ip_lockout.notification,enabled:dashboard.ip_lockout.enabled}},methods:{updateSettings:function(){var t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({login_protection:!0,detect_404:!0})},(function(){t.enabled=!0}))}},computed:{notificationText:function(){return this.notification?this.__("Lockout notifications are enabled"):this.__("Lockout notifications are disabled")}}},g=Object(r.a)(m,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box",attrs:{id:"ip-lockout"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-lock",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t"+t._s(t.__("IP Lockouts"))+"\n\t\t")])]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":!0===t.enabled}},[e("p",[t._v("\n\t\t\t"+t._s(t.__("Protect to your login area and have Defender automatically lockout any suspicious behaviour."))+"\n\t\t")]),t._v(" "),!1===t.enabled?e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue activate",state:t.state}},[t._v("\n\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t")])],1):e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Last lockout")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.lastLockout)}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Login lockouts this week")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.ip.week)}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("404 lockouts this week")))])]),t._v(" "),e("span",{domProps:{textContent:t._s(t.summary.nf.week)}})])])])]),t._v(" "),!0===t.enabled?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-ip-lockout&view=logs")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t"+t._s(t.__("View logs"))+"\n\t\t\t")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.notificationText)}})])]):t._e()])}),[],!1,null,null,null).exports,b={mixins:[n.a],name:"audit",data:function(){return{state:{on_saving:!1},nonces:dashboard.audit.nonces,endpoints:dashboard.audit.endpoints,enabled:dashboard.audit.enabled,report:dashboard.audit.report,summary:{monthCount:"-",dayCount:"-",weekCount:"n/a",lastEvent:"-"}}},methods:{updateSettings:function(){var t=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({enabled:!0})},(function(){t.enabled=!0,t.$nextTick((function(){t.loadData()}))}))},loadData:function(){var t=this;this.httpGetRequest("summary",{},(function(s){t.summary=s.data}))}},computed:{reportText:function(){return this.report?this.__("Audit log reports are enabled"):this.__("Audit log reports are disabled")}},mounted:function(){!0===this.enabled&&this.loadData()}},y=Object(r.a)(b,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box",attrs:{id:"audit-logging"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body",class:{"no-padding-bottom":t.enabled}},[e("p",[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website, giving you full visibility over what's going on behind the scenes."))+"\n ")]),t._v(" "),!1===t.enabled?e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings(s)}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue activate",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):e("div",[e("div",{staticClass:"sui-notice"},[e("p",[t._v("\n "+t._s(t.summary.weekCount)+" "+t._s(t.__(" events logged in the past 7 days."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Last event logged")))])]),t._v(" "),e("span",[t._v("\n "+t._s(t.summary.lastEvent)+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("strong",[t._v(t._s(t.__("Events logged this month")))])]),t._v(" "),e("span",[t._v(t._s(t.summary.monthCount))])])])])])]),t._v(" "),!0===t.enabled?e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-actions-left"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:t.adminUrl("admin.php?page=wdf-logging")}},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("View Logs"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("p",{staticClass:"sui-p-small",domProps:{textContent:t._s(t.reportText)}})])]):t._e(),t._v(" "),t.state.on_saving?e("overlay"):t._e()],1)}),[],!1,null,null,null).exports,C={mixins:[n.a],name:"audit-free"},k=Object(r.a)(C,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-eye",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-left"},[e("span",{staticClass:"sui-tag sui-tag-pro"},[t._v(t._s(t.__("Pro")))])])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-margin-bottom no-padding-bottom"},[e("p",[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website giving you full visibility of what's going on behind the scenes."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("assets/img/audit-presale.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Get an automatic report about the changes made on your website with Audit Logging. Get Audit Logging as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_auditlogging_upsell_link")}},[t._v(t._s(t.__("Try Pro Free Today")))])])])])])])}),[],!1,null,null,null).exports,w={mixins:[n.a],name:"report",data:function(){return{scan:dashboard.report.scan,ip_lockout:dashboard.report.ip_lockout,audit:dashboard.report.audit}},methods:{statusText:function(t){if(-1===t)return'<span class="sui-tag sui-tag-disabled">'+this.__("Inactive")+"</span>";var s=void 0;switch(parseInt(t)){case 1:s=this.__("Daily");break;case 7:s=this.__("Weekly");break;case 30:s=this.__("Monthly")}return'<span class="sui-tag sui-tag-blue">'+s+"</span>"}}},x=Object(r.a)(w,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-graph-line",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Reporting"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body no-padding-bottom"},[e("p",[t._v(t._s(t.__("Get tailored security reports delivered to your inbox so you don't have to worry about checking in.")))]),t._v(" "),e("div",{staticClass:"sui-field-list sui-flushed no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("File Scanning")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.scan))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("IP Lockouts")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.ip_lockout))}})]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Audit Logging")))])])]),t._v(" "),e("span",{domProps:{innerHTML:t._s(t.statusText(t.audit))}})])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("p",{staticClass:"sui-p-small text-center"},[t._v("\n "+t._s(t.__("You can also"))+" "),e("a",{attrs:{target:"_blank",href:"https://premium.wpmudev.org/reports/"}},[t._v(t._s(t.__("create PDF reports")))]),t._v(" "+t._s(t.__("to send to your clients via The Hub."))+"\n ")])])])}),[],!1,null,null,null).exports,S={mixins:[n.a],name:"report",data:function(){return{scan:dashboard.report.scan,ip_lockout:dashboard.report.ip_lockout,audit:dashboard.report.audit}},methods:{statusText:function(t){if(-1===t)return'<span class="sui-tag sui-tag-disabled">'+this.__("Inactive")+"</span>";var s=void 0;switch(parseInt(t)){case 1:s=this.__("Daily");break;case 7:s=this.__("Weekly");break;case 30:s=this.__("Monthly")}return'<span class="sui-tag sui-tag-blue">'+s+"</span>"}}},A=Object(r.a)(S,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-graph-line",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Reporting"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body sui-upsell-items"},[e("div",{staticClass:"sui-box-settings-row no-padding-bottom"},[e("p",[t._v(t._s(t.__("Get tailored security reports delivered to your inbox so you don't have to worry about checking in.")))])]),t._v(" "),e("div",{staticClass:"sui-field-list no-border"},[e("div",{staticClass:"sui-field-list-body"},[e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("File Scanning")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("IP Lockouts")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])]),t._v(" "),e("div",{staticClass:"sui-field-list-item"},[e("label",{staticClass:"sui-field-list-item-label"},[e("small",[e("strong",[t._v(t._s(t.__("Audit Logging")))])])]),t._v(" "),e("span",{staticClass:"sui-tag sui-tag-disabled"},[t._v(t._s(t.__("Inactive")))])])])]),t._v(" "),e("div",{staticClass:"sui-box-settings-row sui-upsell-row"},[e("img",{staticClass:"sui-image sui-upsell-image",attrs:{src:t.assetUrl("/assets/img/dev-man-pre.svg")}}),t._v(" "),e("div",{staticClass:"sui-upsell-notice"},[e("p",[t._v("\n "+t._s(t.__("Schedule automatic reports and recieve directly to your inbox. Get reporting as part of a WPMU DEV membership."))),e("br"),t._v(" "),e("a",{staticClass:"premium-button sui-button sui-button-purple",attrs:{target:"_blank",href:t.campaign_url("defender_dash_reports_upsell_link")}},[t._v(t._s(t.__("Try Pro Free Today")))])])])])])])}),[],!1,null,null,null).exports,j={mixins:[n.a],name:"advanced-tools",data:function(){return{state:{on_saving:!1},nonces:dashboard.advanced_tools.nonces,endpoints:dashboard.advanced_tools.endpoints,two_factor:dashboard.advanced_tools.two_factors,mask_login:dashboard.advanced_tools.mask_login}},methods:{updateSettings:function(t){var s=this;this.httpPostRequest("updateSettings",{data:JSON.stringify({settings:{enabled:!0},module:t})},(function(){"auth"===t?s.two_factor.enabled=!0:s.mask_login.enabled=!0}))}}},P=Object(r.a)(j,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-box advanced-tools"},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[e("i",{staticClass:"sui-icon-wand-magic",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Advanced Tools"))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-box-body no-padding-bottom"},[e("p",[t._v("\n "+t._s(t.__("Enable advanced tools for enhanced protection against even the most aggressive of hackers and bots."))+"\n ")])]),t._v(" "),e("hr"),t._v(" "),e("table",{staticClass:"sui-table sui-table-flushed margin-top-30"},[e("tbody",[e("tr",[e("td",[e("small",[e("strong",[t._v(t._s(t.__("Two-Factor Authentication")))])]),t._v(" "),e("br"),t._v(" "),e("small",[t._v("\n "+t._s(t.__("Add an extra layer of security to your WordPress account to ensure that you're the only person who can log in, even if someone else knows your password."))+"\n ")]),t._v(" "),!1===t.two_factor.enabled?e("form",{staticClass:"margin-top-10 margin-bottom-10",attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings("auth")}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):!1===t.two_factor.useable?e("div",{staticClass:"sui-notice sui-notice-warning margin-bottom-30 margin-top-10"},[e("p",[t._v("\n "+t._s(t.__("Two-factor authentication is currently inactive. Configure and save your settings to finish setup."))+"\n "),e("br"),t._v(" "),e("a",{staticClass:"sui-button margin-top-10",attrs:{href:t.adminUrl("admin.php?page=wdf-advanced-tools")}},[t._v("\n "+t._s(t.__("Finish Setup"))+"\n ")])])]):!0===t.two_factor.useable?e("div",{staticClass:"sui-notice sui-notice-success margin-top-10 margin-bottom-30"},[e("p",[t._v("\n "+t._s(t.__("Two-factor authentication is now active. User roles with this feature enabled must visit their Profile page to complete setup and sync their account with the Authenticator app."))+"\n ")])]):t._e(),t._v(" "),!0===t.two_factor.useable?e("small",[t._v(t._s(t.__("Note: Each user on your website must individually enable two-factor authentication via their user profile in order to enable and use this security feature.")))]):t._e()])]),t._v(" "),e("tr",[e("td",[e("small",{staticClass:"margin-top-30"},[e("strong",[t._v(t._s(t.__("Mask Login Area")))])]),t._v(" "),e("br"),t._v(" "),e("small",[t._v("\n "+t._s(t.__("Change the location of WordPress's default login area."))+"\n ")]),t._v(" "),!1===t.mask_login.enabled?e("form",{staticClass:"margin-top-10 margin-bottom-30",attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.updateSettings("mask-login")}}},[e("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1):!1===t.mask_login.useable?e("div",{staticClass:"sui-notice sui-notice-warning margin-bottom-30 margin-top-10"},[e("p",[t._v("\n "+t._s(t.__("Masking is currently inactive. Choose your URL and save your settings to finish setup."))+"\n "),e("br"),t._v(" "),e("a",{staticClass:"sui-button margin-top-10",attrs:{href:t.adminUrl("admin.php?page=wdf-advanced-tools&view=mask-login")}},[t._v("\n "+t._s(t.__("Finish Setup"))+"\n ")])])]):!0===t.mask_login.useable?e("div",{staticClass:"sui-notice sui-notice-success margin-top-10 margin-bottom-30"},[e("p",[t._v("\n "+t._s(t.__("Masking is currently active at "))+" "),e("a",{attrs:{target:"_blank",href:t.mask_login.login_url}},[t._v(t._s(t.mask_login.login_url))])])]):t._e()])])])])])}),[],!1,null,null,null).exports,T={mixins:[n.a],name:"quick-setup",data:function(){return{state:{on_saving:!1},model:{activate_scan:!0,activate_audit:!0,activate_lockout:!0,activate_blacklist:!0},status:"normal",nonces:dashboard.quick_setup.nonces,endpoints:dashboard.quick_setup.endpoints}},methods:{activate:function(){this.httpPostRequest("activate",this.model,(function(t){window.location.reload()}))},skip:function(){this.httpPostRequest("skip",this.model,(function(t){SUI.dialogs.activator.hide()}))}},mounted:function(){document.onreadystatechange=function(){"complete"===document.readyState&&void 0!==SUI.dialogs.activator&&SUI.dialogs.activator.show()}}},I=Object(r.a)(T,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"activator"}},[e("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),e("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"Quick setup","aria-describedby":"",role:"dialog"}},["normal"===t.status?e("div",{staticClass:"sui-box",attrs:{role:"document"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Quick Setup"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.skip(s)}}},[e("submit-button",{staticClass:"sui-button-ghost quicksetup-skip",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Skip"))+"\n ")])],1)])]),t._v(" "),e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.activate(s)}}},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default."))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Automatic File Scans & Reporting"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_scan,expression:"model.activate_scan"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_scan",value:"activate_scan"},domProps:{checked:Array.isArray(t.model.activate_scan)?t._i(t.model.activate_scan,"activate_scan")>-1:t.model.activate_scan},on:{change:function(s){var e=t.model.activate_scan,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_scan",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_scan",e.concat([n])):o>-1&&t.$set(t.model,"activate_scan",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_scan",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Audit Logging"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Track and log events when changes are made to your website giving you full visibility of what’s going on behind the scenes."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_audit,expression:"model.activate_audit"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_audit",value:"activate_audit"},domProps:{checked:Array.isArray(t.model.activate_audit)?t._i(t.model.activate_audit,"activate_audit")>-1:t.model.activate_audit},on:{change:function(s){var e=t.model.activate_audit,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_audit",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_audit",e.concat([n])):o>-1&&t.$set(t.model,"activate_audit",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_audit",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("IP Lockouts"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Protect your login area and have Defender automatically lockout any suspicious behaviour."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_lockout,expression:"model.activate_lockout"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_lockout",value:"activate_lockout"},domProps:{checked:Array.isArray(t.model.activate_lockout)?t._i(t.model.activate_lockout,"activate_lockout")>-1:t.model.activate_lockout},on:{change:function(s){var e=t.model.activate_lockout,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_lockout",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_lockout",e.concat([n])):o>-1&&t.$set(t.model,"activate_lockout",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_lockout",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Blacklist Monitor"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Automatically check if you’re on Google’s blacklist every 6 hours. If something’s wrong, we’ll let you know via email."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_blacklist,expression:"model.activate_blacklist"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_blacklist",value:"activate_blacklist"},domProps:{checked:Array.isArray(t.model.activate_blacklist)?t._i(t.model.activate_blacklist,"activate_blacklist")>-1:t.model.activate_blacklist},on:{change:function(s){var e=t.model.activate_blacklist,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_blacklist",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_blacklist",e.concat([n])):o>-1&&t.$set(t.model,"activate_blacklist",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_blacklist",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-9"},[e("small",[t._v("\n "+t._s(t.__("Note: These services will be configured with our recommended settings. You can change these at any time."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-3"},[e("submit-button",{staticClass:"sui-button sui-button-blue quicksetup-apply",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Get Started"))+"\n ")])],1)])])]),t._v(" "),t.maybeHideBranding?e("img",{staticClass:"sui-image sui-image-center",attrs:{src:t.assetUrl("/assets/img/defender-activator.svg")}}):t._e()]):e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Just a moment while Defender activates those services for you.."))+"\n ")]),t._v(" "),t._m(0),t._v(" "),t._m(1)])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-block"},[s("div",{staticClass:"sui-progress"},[s("div",{staticClass:"sui-progress-text scan-progress-text sui-icon-loader sui-loading"},[s("span",[this._v("0%")])]),this._v(" "),s("div",{staticClass:"sui-progress-bar scan-progress-bar"},[s("span",{staticStyle:{width:"0%"}})])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-state"},[s("span",{staticClass:"status-text"})])}],!1,null,null,null).exports,E={mixins:[n.a],name:"quick-setup",data:function(){return{state:{on_saving:!1},model:{activate_scan:!0,activate_lockout:!0},status:"normal",nonces:dashboard.quick_setup.nonces,endpoints:dashboard.quick_setup.endpoints}},methods:{activate:function(){this.httpPostRequest("activate",this.model,(function(t){window.location.reload()}))},skip:function(){this.httpPostRequest("skip",this.model,(function(t){SUI.dialogs.activator.hide()}))}},mounted:function(){document.onreadystatechange=function(){"complete"===document.readyState&&void 0!==SUI.dialogs.activator&&SUI.dialogs.activator.show()}}},$=Object(r.a)(E,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"activator"}},[e("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),e("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"Quick setup","aria-describedby":"",role:"dialog"}},["normal"===t.status?e("div",{staticClass:"sui-box",attrs:{role:"document"}},[e("div",{staticClass:"sui-box-header"},[e("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Quick Setup"))+"\n ")]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.skip(s)}}},[e("submit-button",{staticClass:"sui-button-ghost",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Skip"))+"\n ")])],1)])]),t._v(" "),e("form",{attrs:{method:"post"},on:{submit:function(s){return s.preventDefault(),t.activate(s)}}},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Welcome to Defender, the hottest security plugin for WordPress! Let’s quickly set up the basics for you, then you can fine tweak each setting as you go – our recommendations are on by default."))+"\n ")]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("File Scanning"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Scan your website for file changes, vulnerabilities and injected code and get notified about anything suspicious."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_scan,expression:"model.activate_scan"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",name:"activator[]",checked:"",id:"active_scan",value:"activate_scan"},domProps:{checked:Array.isArray(t.model.activate_scan)?t._i(t.model.activate_scan,"activate_scan")>-1:t.model.activate_scan},on:{change:function(s){var e=t.model.activate_scan,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_scan",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_scan",e.concat([n])):o>-1&&t.$set(t.model,"activate_scan",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_scan",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])]),t._v(" "),e("hr",{staticClass:"sui-flushed"}),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-10"},[e("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("IP Lockouts"))+"\n ")]),t._v(" "),e("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Protect your login area and have Defender automatically lockout any suspicious behaviour."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-2"},[e("div",{staticClass:"sui-form-field tr"},[e("label",{staticClass:"sui-toggle"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.model.activate_lockout,expression:"model.activate_lockout"}],staticClass:"toggle-checkbox",attrs:{type:"checkbox",checked:"",name:"activator[]",id:"activate_lockout",value:"activate_lockout"},domProps:{checked:Array.isArray(t.model.activate_lockout)?t._i(t.model.activate_lockout,"activate_lockout")>-1:t.model.activate_lockout},on:{change:function(s){var e=t.model.activate_lockout,i=s.target,a=!!i.checked;if(Array.isArray(e)){var n="activate_lockout",o=t._i(e,n);i.checked?o<0&&t.$set(t.model,"activate_lockout",e.concat([n])):o>-1&&t.$set(t.model,"activate_lockout",e.slice(0,o).concat(e.slice(o+1)))}else t.$set(t.model,"activate_lockout",a)}}}),t._v(" "),e("span",{staticClass:"sui-toggle-slider"})])])])])]),t._v(" "),e("div",{staticClass:"sui-box-footer"},[e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-9"},[e("small",[t._v("\n "+t._s(t.__("Note: These services will be configured with our recommended settings. You can change these at any time."))+"\n ")])]),t._v(" "),e("div",{staticClass:"sui-col-md-3"},[e("submit-button",{staticClass:"sui-button sui-button-blue",attrs:{type:"submit",state:t.state}},[t._v("\n "+t._s(t.__("Get Started"))+"\n ")])],1)])])]),t._v(" "),t.maybeHideBranding?e("img",{staticClass:"sui-image sui-image-center",attrs:{src:t.assetUrl("/assets/img/defender-activator.svg")}}):t._e()]):e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("p",[t._v("\n "+t._s(t.__("Just a moment while Defender activates those services for you.."))+"\n ")]),t._v(" "),t._m(0),t._v(" "),t._m(1)])])])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-block"},[s("div",{staticClass:"sui-progress"},[s("div",{staticClass:"sui-progress-text scan-progress-text sui-icon-loader sui-loading"},[s("span",[this._v("0%")])]),this._v(" "),s("div",{staticClass:"sui-progress-bar scan-progress-bar"},[s("span",{staticStyle:{width:"0%"}})])])])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-progress-state"},[s("span",{staticClass:"status-text"})])}],!1,null,null,null).exports,O={mixins:[n.a],name:"cross-sale"},D=Object(r.a)(O,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("section",[e("div",{staticClass:"sui-row",attrs:{id:"sui-cross-sell-footer"}},[t._m(0),t._v(" "),e("h3",[t._v(t._s(t.__("Check out our other free wordpress.org plugins!")))])]),t._v(" "),e("div",{staticClass:"sui-row sui-cross-sell-modules"},[e("div",{staticClass:"sui-col-md-4"},[t._m(1),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("Smush Image Compression and Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Resize, optimize and compress all of your images with the incredibly powerful and award-winning, 100% free WordPress image optimizer.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/wp-smushit/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])]),t._v(" "),e("div",{staticClass:"sui-col-md-4"},[t._m(2),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("Hummingbird Page Speed Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Performance Tests, File Optimization & Compression, Page, Browser & Gravatar Caching, GZIP Compression, CloudFlare Integration & more.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/hummingbird-performance/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])]),t._v(" "),e("div",{staticClass:"sui-col-md-4"},[t._m(3),t._v(" "),e("div",{staticClass:"sui-box"},[e("div",{staticClass:"sui-box-body"},[e("h3",[t._v(t._s(t.__("SmartCrawl Search Engine Optimization")))]),t._v(" "),e("p",[t._v(t._s(t.__("Customize Titles & Meta Data, OpenGraph, Twitter & Pinterest Support, Auto-Keyword Linking, SEO & Readability Analysis, Sitemaps, URL Crawler & more.")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:"https://wordpress.org/plugins/smartcrawl-seo/",target:"_blank"}},[t._v("\n "+t._s(t.__("View features"))+" "),e("i",{staticClass:"sui-icon-arrow-right",attrs:{"aria-hidden":"true"}})])])])])]),t._v(" "),e("div",{staticClass:"sui-cross-sell-bottom"},[e("h3",[t._v(t._s(t.__("WPMU DEV - Your All-in-One WordPress Platform")))]),t._v(" "),e("p",[t._v(t._s(t.__("Pretty much everything you need for developing and managing WordPress based websites, and then some")))]),t._v(" "),e("a",{staticClass:"sui-button sui-button-green",attrs:{href:"https://premium.wpmudev.org/?utm_source=defender&utm_medium=plugin&utm_campaign=defender_dash_footer_upsell_notice",target:"_blank",role:"button"}},[t._v(t._s(t.__("Learn more"))+"\n ")]),t._v(" "),e("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/dev-team.png"),srcset:t.assetUrl("assets/img/dev-team@2x.png 2x"),"aria-hidden":"true"}})])])}),[function(){var t=this.$createElement,s=this._self._c||t;return s("div",[s("span",{staticClass:"sui-icon-plugin-2"})])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-1",attrs:{"aria-hidden":"true"}},[s("span")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-2",attrs:{"aria-hidden":"true"}},[s("span")])},function(){var t=this.$createElement,s=this._self._c||t;return s("div",{staticClass:"sui-cross-3",attrs:{"aria-hidden":"true"}},[s("span")])}],!1,null,null,null).exports,R={mixins:[n.a],name:"dashboard",data:function(){return{quick_setup:parseInt(dashboard.quick_setup.show),is_free:parseInt(defender.is_free),security_tweaks:{count:{issues:dashboard.security_tweaks.count.issues,resolved:dashboard.security_tweaks.count.resolved,total:dashboard.security_tweaks.count.total}},scan:{count:0,scan:dashboard.scan.scan},ip_lockout:{last_lockout:dashboard.ip_lockout.summary.lastLockout},nonces:dashboard.scan.nonces,endpoints:dashboard.scan.endpoints,state:{on_saving:!1}}},components:{"security-tweaks":c,"file-scanning":u,"file-scanning-free":_,blacklist:v,"blacklist-free":f,"ip-lockout":g,audit:y,"audit-free":k,report:x,"report-free":A,"advanced-tools":P,"quick-setup":I,"quick-setup-free":$,"cross-sale":D},methods:{countScanIssues:function(){var t=dashboard.scan.scan;return null===t||"init"===t.status||"progress"===t.status?0:t.count.total},newScan:function(){var t=this;this.httpPostRequest("newScan",{},(function(s){t.$nextTick((function(){var e=t.$refs["file-scanning"];e.scan={},t.scan.scan={},t.scan.scan.status=s.data.status,e.scan.status=s.data.status,e.scan.percent=s.data.percent,e.scan.status_text=s.data.status_text,e.polling()}))}))},scanCanceled:function(t){this.scan.scan=t},scanCompleted:function(t,s){this.scan.count=s,this.scan.scan=t}},computed:{tooltips:function(){var t=this.__("You don't have any outstanding security issues, nice work!");return 1===this.security_tweaks.count.issues&&0===this.scan.count?t=this.__("You have one security tweak left to do. We recommend you action it, or ignore it if it's irrelevant."):0===this.security_tweaks.count.issues&&1===this.scan.count?t=this.__("We've detected a potential security risk in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless."):1===this.security_tweaks.count.issues&&1===this.scan.count?t=this.__("You have one security tweak left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."):1===this.security_tweaks.count.issues&&this.scan.count>1?t=this.vsprintf(this.__("You have one security tweak left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless"),this.scan.count):this.security_tweaks.count.issues>1&&1===this.scan.count?t=this.vsprintf(this.__("You have %s security tweaks left to do, and one potential security risk in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."),this.security_tweaks.count.issues):this.security_tweaks.count.issues>1&&this.scan.count>1?t=this.vsprintf(this.__("You have %s security tweaks left to do, and %s potential security risks in your file system. We recommend you take a look and action fixes, or ignore the issues if they are harmless."),this.security_tweaks.count.issues,this.scan.count):this.security_tweaks.count.issues>1&&0===this.scan.count?t=this.vsprintf(this.__("You have %d security tweaks left to do. We recommend you action it, or ignore it if it's irrelevant."),this.security_tweaks.count.issues):0===this.security_tweaks.count.issues&&this.scan.count>1&&(t=this.vsprintf(this.__("We've detected %d potential security risks in your file system. We recommend you take a look and action a fix, or ignore the file if it's harmless."),this.scan.count)),t},securityTweaksIndicator:function(){return this.security_tweaks.count.resolved+"/"+this.security_tweaks.count.total},countTotalIssues:function(){return this.scan.count+this.security_tweaks.count.issues}},mounted:function(){var t=this;this.$nextTick((function(){t.scan.count=t.countScanIssues()}))}},q=Object(r.a)(R,(function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"sui-wrap",class:t.maybeHighContrast()},[e("div",{staticClass:"defender-dashboard"},[e("div",{staticClass:"sui-header"},[e("h1",{staticClass:"sui-header-title"},[t._v(t._s(t.__("Dashboard")))]),t._v(" "),e("div",{staticClass:"sui-actions-right"},[e("doc-link",{attrs:{link:"https://premium.wpmudev.org/docs/wpmu-dev-plugins/defender"}})],1)]),t._v(" "),e("summary-box",[e("div",{staticClass:"sui-summary-segment"},[e("div",{staticClass:"sui-summary-details"},[e("span",{staticClass:"sui-summary-large",domProps:{textContent:t._s(t.countTotalIssues)}}),t._v(" "),e("span",{staticClass:"sui-tooltip sui-tooltip-top-left sui-tooltip-constrained",attrs:{"data-tooltip":t.tooltips}},[0===this.security_tweaks.count.issues&&0===this.scan.count?e("i",{staticClass:"sui-icon-check-tick sui-success",attrs:{"aria-hidden":"true"}}):e("i",{staticClass:"sui-icon-info sui-warning",attrs:{"aria-hidden":"true"}})]),t._v(" "),e("span",{staticClass:"sui-summary-sub"},[t._v(t._s(t.__("Security Issue")))])])]),t._v(" "),e("div",{staticClass:"sui-summary-segment"},[e("ul",{staticClass:"sui-list"},[e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Security Tweaks Actioned")))]),t._v(" "),e("span",{staticClass:"sui-list-detail",domProps:{textContent:t._s(t.securityTweaksIndicator)}})]),t._v(" "),e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("File Scan Issues")))]),t._v(" "),e("span",{staticClass:"sui-list-detail"},[null===t.scan.scan?e("submit-button",{attrs:{type:"button","css-class":"sui-button-blue",state:t.state},on:{click:t.newScan}},[t._v("\n "+t._s(t.__("New Scan"))+"\n ")]):"init"===t.scan.scan.status||"progress"===t.scan.scan.status?e("i",{staticClass:"sui-icon-loader sui-loading"}):0===t.scan.count?e("i",{staticClass:"sui-icon-check-tick sui-success"}):e("span",{staticClass:"sui-tag sui-tag-error"},[t._v(t._s(t.scan.count))])],1)]),t._v(" "),e("li",[e("span",{staticClass:"sui-list-label"},[t._v(t._s(t.__("Last Lockout")))]),t._v(" "),e("span",{staticClass:"sui-list-detail"},[t._v(t._s(t.ip_lockout.last_lockout))])])])])]),t._v(" "),e("div",{staticClass:"sui-row"},[e("div",{staticClass:"sui-col-md-6"},[e("security-tweaks"),t._v(" "),0===t.is_free?e("blacklist"):1===t.is_free?e("blacklist-free"):t._e(),t._v(" "),e("advanced-tools")],1),t._v(" "),e("div",{staticClass:"sui-col-md-6"},[0===t.is_free?e("file-scanning",{ref:"file-scanning",on:{scanCanceled:t.scanCanceled,scanCompleted:t.scanCompleted}}):1===t.is_free?e("file-scanning-free",{ref:"file-scanning",attrs:{scanCompleted:"scanCompleted"},on:{scanCanceled:t.scanCanceled}}):t._e(),t._v(" "),e("ip-lockout"),t._v(" "),0===t.is_free?e("audit"):1===t.is_free?e("audit-free"):t._e(),t._v(" "),0===t.is_free?e("report"):1===t.is_free?e("report-free"):t._e()],1)]),t._v(" "),1===t.is_free?e("cross-sale"):t._e(),t._v(" "),e("app-footer")],1),t._v(" "),1===t.quick_setup&&0===t.is_free?e("quick-setup"):1===t.quick_setup&&1===t.is_free?e("quick-setup-free"):t._e()],1)}),[],!1,null,null,null).exports,L=e("./src/component/overlay.vue"),U=e("./src/component/submit-button.vue"),H=e("./src/component/footer.vue"),W=e("./src/component/doc-link.vue"),M=e("./src/component/summary-box.vue");a.a.component("overlay",L.a),a.a.component("submit-button",U.a),a.a.component("app-footer",H.a),a.a.component("doc-link",W.a),a.a.component("summary-box",M.a);new a.a({el:"#defender",components:{dashboard:q},render:function(t){return t(q)}})},"./src/helper/base_hepler.js":function(t,s,e){"use strict";var i=e("./node_modules/xss/lib/index.js"),a=function(t,s){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,s){var e=[],i=!0,a=!1,n=void 0;try{for(var o,r=t[Symbol.iterator]();!(i=(o=r.next()).done)&&(e.push(o.value),!s||e.length!==s);i=!0);}catch(t){a=!0,n=t}finally{try{!i&&r.return&&r.return()}finally{if(a)throw n}}return e}(t,s);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=wp.i18n,o={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,s,e,a){return"a"===t&&"href"===s&&"%s"===e?"%s":Object(i.safeAttrValue)(t,s,e,a)}},r=new i.FilterXSS(o),c=[];s.a={methods:{__:function(t){var s=n.__(t,"wpdef");return r.process(s)},xss:function(t){return r.process(t)},vsprintf:function(t){return n.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,s,e,i,a){var n=this;void 0===a&&(this.state.on_saving=!0);var o=ajaxurl+"?action="+this.endpoints[s]+"&_wpnonce="+this.nonces[s],r=jQuery.ajax({url:o,method:t,data:e,success:function(t){var s=t.data;n.state.on_saving=!1,void 0!==s&&void 0!==s.message&&(t.success?Defender.showNotification("success",s.message):Defender.showNotification("error",s.message)),void 0!==i&&i(t)}});c.push(r)},httpGetRequest:function(t,s,e,i){this.httpRequest("get",t,s,e,i)},httpPostRequest:function(t,s,e,i){this.httpRequest("post",t,s,e,i)},abortAllRequests:function(){for(var t=0;t<c.length;t++)c[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,s){var e=s.split("="),i=a(e,2),n=i[0],o=i[1];return t[n]=o?decodeURIComponent(o.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},vue:function(t,s){t.exports=Vue}});
assets/app/ip-lockout.js CHANGED
@@ -1 +1 @@
1
- !function(t){var e=window.webpackHotUpdate;window.webpackHotUpdate=function(t,s){!function(t,e){if(!y[t]||!b[t])return;for(var s in b[t]=!1,e)Object.prototype.hasOwnProperty.call(e,s)&&(h[s]=e[s]);0==--f&&0===v&&x()}(t,s),e&&e(t,s)};var s,i=!0,a="d0b3332498cfafc2e0f1",n={},o=[],r=[];function l(t){var e=D[t];if(!e)return P;var i=function(i){return e.hot.active?(D[i]?-1===D[i].parents.indexOf(t)&&D[i].parents.push(t):(o=[t],s=i),-1===e.children.indexOf(i)&&e.children.push(i)):(console.warn("[HMR] unexpected require("+i+") from disposed module "+t),o=[]),P(i)},a=function(t){return{configurable:!0,enumerable:!0,get:function(){return P[t]},set:function(e){P[t]=e}}};for(var n in P)Object.prototype.hasOwnProperty.call(P,n)&&"e"!==n&&"t"!==n&&Object.defineProperty(i,n,a(n));return i.e=function(t){return"ready"===d&&_("prepare"),v++,P.e(t).then(e,(function(t){throw e(),t}));function e(){v--,"prepare"===d&&(g[t]||C(t),0===v&&0===f&&x())}},i.t=function(t,e){return 1&e&&(t=i(t)),P.t(t,-2&e)},i}function c(t){var e={_acceptedDependencies:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_disposeHandlers:[],_main:s!==t,active:!0,accept:function(t,s){if(void 0===t)e._selfAccepted=!0;else if("function"==typeof t)e._selfAccepted=t;else if("object"==typeof t)for(var i=0;i<t.length;i++)e._acceptedDependencies[t[i]]=s||function(){};else e._acceptedDependencies[t]=s||function(){}},decline:function(t){if(void 0===t)e._selfDeclined=!0;else if("object"==typeof t)for(var s=0;s<t.length;s++)e._declinedDependencies[t[s]]=!0;else e._declinedDependencies[t]=!0},dispose:function(t){e._disposeHandlers.push(t)},addDisposeHandler:function(t){e._disposeHandlers.push(t)},removeDisposeHandler:function(t){var s=e._disposeHandlers.indexOf(t);s>=0&&e._disposeHandlers.splice(s,1)},check:w,apply:S,status:function(t){if(!t)return d;u.push(t)},addStatusHandler:function(t){u.push(t)},removeStatusHandler:function(t){var e=u.indexOf(t);e>=0&&u.splice(e,1)},data:n[t]};return s=void 0,e}var u=[],d="idle";function _(t){d=t;for(var e=0;e<u.length;e++)u[e].call(null,t)}var m,h,p,f=0,v=0,g={},b={},y={};function k(t){return+t+""===t?+t:t}function w(t){if("idle"!==d)throw new Error("check() is only allowed in idle status");return i=t,_("check"),(e=1e4,e=e||1e4,new Promise((function(t,s){if("undefined"==typeof XMLHttpRequest)return s(new Error("No browser support"));try{var i=new XMLHttpRequest,n=P.p+""+a+".hot-update.json";i.open("GET",n,!0),i.timeout=e,i.send(null)}catch(t){return s(t)}i.onreadystatechange=function(){if(4===i.readyState)if(0===i.status)s(new Error("Manifest request to "+n+" timed out."));else if(404===i.status)t();else if(200!==i.status&&304!==i.status)s(new Error("Manifest request to "+n+" failed."));else{try{var e=JSON.parse(i.responseText)}catch(t){return void s(t)}t(e)}}}))).then((function(t){if(!t)return _("idle"),null;b={},g={},y=t.c,p=t.h,_("prepare");var e=new Promise((function(t,e){m={resolve:t,reject:e}}));h={};return C(3),"prepare"===d&&0===v&&0===f&&x(),e}));var e}function C(t){y[t]?(b[t]=!0,f++,function(t){var e=document.createElement("script");e.charset="utf-8",e.src=P.p+""+t+"."+a+".hot-update.js",document.head.appendChild(e)}(t)):g[t]=!0}function x(){_("ready");var t=m;if(m=null,t)if(i)Promise.resolve().then((function(){return S(i)})).then((function(e){t.resolve(e)}),(function(e){t.reject(e)}));else{var e=[];for(var s in h)Object.prototype.hasOwnProperty.call(h,s)&&e.push(k(s));t.resolve(e)}}function S(e){if("ready"!==d)throw new Error("apply() is only allowed in ready status");var s,i,r,l,c;function u(t){for(var e=[t],s={},i=e.map((function(t){return{chain:[t],id:t}}));i.length>0;){var a=i.pop(),n=a.id,o=a.chain;if((l=D[n])&&!l.hot._selfAccepted){if(l.hot._selfDeclined)return{type:"self-declined",chain:o,moduleId:n};if(l.hot._main)return{type:"unaccepted",chain:o,moduleId:n};for(var r=0;r<l.parents.length;r++){var c=l.parents[r],u=D[c];if(u){if(u.hot._declinedDependencies[n])return{type:"declined",chain:o.concat([c]),moduleId:n,parentId:c};-1===e.indexOf(c)&&(u.hot._acceptedDependencies[n]?(s[c]||(s[c]=[]),m(s[c],[n])):(delete s[c],e.push(c),i.push({chain:o.concat([c]),id:c})))}}}}return{type:"accepted",moduleId:t,outdatedModules:e,outdatedDependencies:s}}function m(t,e){for(var s=0;s<e.length;s++){var i=e[s];-1===t.indexOf(i)&&t.push(i)}}e=e||{};var f={},v=[],g={},b=function(){console.warn("[HMR] unexpected require("+C.moduleId+") to disposed module")};for(var w in h)if(Object.prototype.hasOwnProperty.call(h,w)){var C;c=k(w);var x=!1,S=!1,M=!1,T="";switch((C=h[w]?u(c):{type:"disposed",moduleId:w}).chain&&(T="\nUpdate propagation: "+C.chain.join(" -> ")),C.type){case"self-declined":e.onDeclined&&e.onDeclined(C),e.ignoreDeclined||(x=new Error("Aborted because of self decline: "+C.moduleId+T));break;case"declined":e.onDeclined&&e.onDeclined(C),e.ignoreDeclined||(x=new Error("Aborted because of declined dependency: "+C.moduleId+" in "+C.parentId+T));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(C),e.ignoreUnaccepted||(x=new Error("Aborted because "+c+" is not accepted"+T));break;case"accepted":e.onAccepted&&e.onAccepted(C),S=!0;break;case"disposed":e.onDisposed&&e.onDisposed(C),M=!0;break;default:throw new Error("Unexception type "+C.type)}if(x)return _("abort"),Promise.reject(x);if(S)for(c in g[c]=h[c],m(v,C.outdatedModules),C.outdatedDependencies)Object.prototype.hasOwnProperty.call(C.outdatedDependencies,c)&&(f[c]||(f[c]=[]),m(f[c],C.outdatedDependencies[c]));M&&(m(v,[C.moduleId]),g[c]=b)}var O,j=[];for(i=0;i<v.length;i++)c=v[i],D[c]&&D[c].hot._selfAccepted&&g[c]!==b&&j.push({module:c,errorHandler:D[c].hot._selfAccepted});_("dispose"),Object.keys(y).forEach((function(t){!1===y[t]&&function(t){delete installedChunks[t]}(t)}));for(var Y,I,L=v.slice();L.length>0;)if(c=L.pop(),l=D[c]){var A={},N=l.hot._disposeHandlers;for(r=0;r<N.length;r++)(s=N[r])(A);for(n[c]=A,l.hot.active=!1,delete D[c],delete f[c],r=0;r<l.children.length;r++){var E=D[l.children[r]];E&&((O=E.parents.indexOf(c))>=0&&E.parents.splice(O,1))}}for(c in f)if(Object.prototype.hasOwnProperty.call(f,c)&&(l=D[c]))for(I=f[c],r=0;r<I.length;r++)Y=I[r],(O=l.children.indexOf(Y))>=0&&l.children.splice(O,1);for(c in _("apply"),a=p,g)Object.prototype.hasOwnProperty.call(g,c)&&(t[c]=g[c]);var R=null;for(c in f)if(Object.prototype.hasOwnProperty.call(f,c)&&(l=D[c])){I=f[c];var U=[];for(i=0;i<I.length;i++)if(Y=I[i],s=l.hot._acceptedDependencies[Y]){if(-1!==U.indexOf(s))continue;U.push(s)}for(i=0;i<U.length;i++){s=U[i];try{s(I)}catch(t){e.onErrored&&e.onErrored({type:"accept-errored",moduleId:c,dependencyId:I[i],error:t}),e.ignoreErrored||R||(R=t)}}}for(i=0;i<j.length;i++){var H=j[i];c=H.module,o=[c];try{P(c)}catch(t){if("function"==typeof H.errorHandler)try{H.errorHandler(t)}catch(s){e.onErrored&&e.onErrored({type:"self-accept-error-handler-errored",moduleId:c,error:s,originalError:t}),e.ignoreErrored||R||(R=s),R||(R=t)}else e.onErrored&&e.onErrored({type:"self-accept-errored",moduleId:c,error:t}),e.ignoreErrored||R||(R=t)}}return R?(_("fail"),Promise.reject(R)):(_("idle"),new Promise((function(t){t(v)})))}var D={};function P(e){if(D[e])return D[e].exports;var s=D[e]={i:e,l:!1,exports:{},hot:c(e),parents:(r=o,o=[],r),children:[]};return t[e].call(s.exports,s,s.exports,l(e)),s.l=!0,s.exports}P.m=t,P.c=D,P.d=function(t,e,s){P.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:s})},P.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},P.t=function(t,e){if(1&e&&(t=P(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var s=Object.create(null);if(P.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)P.d(s,i,function(e){return t[e]}.bind(null,i));return s},P.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return P.d(e,"a",e),e},P.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},P.p="",P.h=function(){return a},l("./src/ip-lockout.js")(P.s="./src/ip-lockout.js")}({"./node_modules/cssfilter/lib/css.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),a=s("./node_modules/cssfilter/lib/parser.js");s("./node_modules/cssfilter/lib/util.js");function n(t){return null==t}function o(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).whiteList=t.whiteList||i.whiteList,t.onAttr=t.onAttr||i.onAttr,t.onIgnoreAttr=t.onIgnoreAttr||i.onIgnoreAttr,t.safeAttrValue=t.safeAttrValue||i.safeAttrValue,this.options=t}o.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onAttr,o=e.onIgnoreAttr,r=e.safeAttrValue;return a(t,(function(t,e,a,l,c){var u=s[a],d=!1;if(!0===u?d=u:"function"==typeof u?d=u(l):u instanceof RegExp&&(d=u.test(l)),!0!==d&&(d=!1),l=r(a,l)){var _,m={position:e,sourcePosition:t,source:c,isWhite:d};return d?n(_=i(a,l,m))?a+":"+l:_:n(_=o(a,l,m))?void 0:_}}))},t.exports=o},"./node_modules/cssfilter/lib/default.js":function(t,e){function s(){var t={"align-content":!1,"align-items":!1,"align-self":!1,"alignment-adjust":!1,"alignment-baseline":!1,all:!1,"anchor-point":!1,animation:!1,"animation-delay":!1,"animation-direction":!1,"animation-duration":!1,"animation-fill-mode":!1,"animation-iteration-count":!1,"animation-name":!1,"animation-play-state":!1,"animation-timing-function":!1,azimuth:!1,"backface-visibility":!1,background:!0,"background-attachment":!0,"background-clip":!0,"background-color":!0,"background-image":!0,"background-origin":!0,"background-position":!0,"background-repeat":!0,"background-size":!0,"baseline-shift":!1,binding:!1,bleed:!1,"bookmark-label":!1,"bookmark-level":!1,"bookmark-state":!1,border:!0,"border-bottom":!0,"border-bottom-color":!0,"border-bottom-left-radius":!0,"border-bottom-right-radius":!0,"border-bottom-style":!0,"border-bottom-width":!0,"border-collapse":!0,"border-color":!0,"border-image":!0,"border-image-outset":!0,"border-image-repeat":!0,"border-image-slice":!0,"border-image-source":!0,"border-image-width":!0,"border-left":!0,"border-left-color":!0,"border-left-style":!0,"border-left-width":!0,"border-radius":!0,"border-right":!0,"border-right-color":!0,"border-right-style":!0,"border-right-width":!0,"border-spacing":!0,"border-style":!0,"border-top":!0,"border-top-color":!0,"border-top-left-radius":!0,"border-top-right-radius":!0,"border-top-style":!0,"border-top-width":!0,"border-width":!0,bottom:!1,"box-decoration-break":!0,"box-shadow":!0,"box-sizing":!0,"box-snap":!0,"box-suppress":!0,"break-after":!0,"break-before":!0,"break-inside":!0,"caption-side":!1,chains:!1,clear:!0,clip:!1,"clip-path":!1,"clip-rule":!1,color:!0,"color-interpolation-filters":!0,"column-count":!1,"column-fill":!1,"column-gap":!1,"column-rule":!1,"column-rule-color":!1,"column-rule-style":!1,"column-rule-width":!1,"column-span":!1,"column-width":!1,columns:!1,contain:!1,content:!1,"counter-increment":!1,"counter-reset":!1,"counter-set":!1,crop:!1,cue:!1,"cue-after":!1,"cue-before":!1,cursor:!1,direction:!1,display:!0,"display-inside":!0,"display-list":!0,"display-outside":!0,"dominant-baseline":!1,elevation:!1,"empty-cells":!1,filter:!1,flex:!1,"flex-basis":!1,"flex-direction":!1,"flex-flow":!1,"flex-grow":!1,"flex-shrink":!1,"flex-wrap":!1,float:!1,"float-offset":!1,"flood-color":!1,"flood-opacity":!1,"flow-from":!1,"flow-into":!1,font:!0,"font-family":!0,"font-feature-settings":!0,"font-kerning":!0,"font-language-override":!0,"font-size":!0,"font-size-adjust":!0,"font-stretch":!0,"font-style":!0,"font-synthesis":!0,"font-variant":!0,"font-variant-alternates":!0,"font-variant-caps":!0,"font-variant-east-asian":!0,"font-variant-ligatures":!0,"font-variant-numeric":!0,"font-variant-position":!0,"font-weight":!0,grid:!1,"grid-area":!1,"grid-auto-columns":!1,"grid-auto-flow":!1,"grid-auto-rows":!1,"grid-column":!1,"grid-column-end":!1,"grid-column-start":!1,"grid-row":!1,"grid-row-end":!1,"grid-row-start":!1,"grid-template":!1,"grid-template-areas":!1,"grid-template-columns":!1,"grid-template-rows":!1,"hanging-punctuation":!1,height:!0,hyphens:!1,icon:!1,"image-orientation":!1,"image-resolution":!1,"ime-mode":!1,"initial-letters":!1,"inline-box-align":!1,"justify-content":!1,"justify-items":!1,"justify-self":!1,left:!1,"letter-spacing":!0,"lighting-color":!0,"line-box-contain":!1,"line-break":!1,"line-grid":!1,"line-height":!1,"line-snap":!1,"line-stacking":!1,"line-stacking-ruby":!1,"line-stacking-shift":!1,"line-stacking-strategy":!1,"list-style":!0,"list-style-image":!0,"list-style-position":!0,"list-style-type":!0,margin:!0,"margin-bottom":!0,"margin-left":!0,"margin-right":!0,"margin-top":!0,"marker-offset":!1,"marker-side":!1,marks:!1,mask:!1,"mask-box":!1,"mask-box-outset":!1,"mask-box-repeat":!1,"mask-box-slice":!1,"mask-box-source":!1,"mask-box-width":!1,"mask-clip":!1,"mask-image":!1,"mask-origin":!1,"mask-position":!1,"mask-repeat":!1,"mask-size":!1,"mask-source-type":!1,"mask-type":!1,"max-height":!0,"max-lines":!1,"max-width":!0,"min-height":!0,"min-width":!0,"move-to":!1,"nav-down":!1,"nav-index":!1,"nav-left":!1,"nav-right":!1,"nav-up":!1,"object-fit":!1,"object-position":!1,opacity:!1,order:!1,orphans:!1,outline:!1,"outline-color":!1,"outline-offset":!1,"outline-style":!1,"outline-width":!1,overflow:!1,"overflow-wrap":!1,"overflow-x":!1,"overflow-y":!1,padding:!0,"padding-bottom":!0,"padding-left":!0,"padding-right":!0,"padding-top":!0,page:!1,"page-break-after":!1,"page-break-before":!1,"page-break-inside":!1,"page-policy":!1,pause:!1,"pause-after":!1,"pause-before":!1,perspective:!1,"perspective-origin":!1,pitch:!1,"pitch-range":!1,"play-during":!1,position:!1,"presentation-level":!1,quotes:!1,"region-fragment":!1,resize:!1,rest:!1,"rest-after":!1,"rest-before":!1,richness:!1,right:!1,rotation:!1,"rotation-point":!1,"ruby-align":!1,"ruby-merge":!1,"ruby-position":!1,"shape-image-threshold":!1,"shape-outside":!1,"shape-margin":!1,size:!1,speak:!1,"speak-as":!1,"speak-header":!1,"speak-numeral":!1,"speak-punctuation":!1,"speech-rate":!1,stress:!1,"string-set":!1,"tab-size":!1,"table-layout":!1,"text-align":!0,"text-align-last":!0,"text-combine-upright":!0,"text-decoration":!0,"text-decoration-color":!0,"text-decoration-line":!0,"text-decoration-skip":!0,"text-decoration-style":!0,"text-emphasis":!0,"text-emphasis-color":!0,"text-emphasis-position":!0,"text-emphasis-style":!0,"text-height":!0,"text-indent":!0,"text-justify":!0,"text-orientation":!0,"text-overflow":!0,"text-shadow":!0,"text-space-collapse":!0,"text-transform":!0,"text-underline-position":!0,"text-wrap":!0,top:!1,transform:!1,"transform-origin":!1,"transform-style":!1,transition:!1,"transition-delay":!1,"transition-duration":!1,"transition-property":!1,"transition-timing-function":!1,"unicode-bidi":!1,"vertical-align":!1,visibility:!1,"voice-balance":!1,"voice-duration":!1,"voice-family":!1,"voice-pitch":!1,"voice-range":!1,"voice-rate":!1,"voice-stress":!1,"voice-volume":!1,volume:!1,"white-space":!1,widows:!1,width:!0,"will-change":!1,"word-break":!0,"word-spacing":!0,"word-wrap":!0,"wrap-flow":!1,"wrap-through":!1,"writing-mode":!1,"z-index":!1};return t}var i=/javascript\s*\:/gim;e.whiteList=s(),e.getDefaultWhiteList=s,e.onAttr=function(t,e,s){},e.onIgnoreAttr=function(t,e,s){},e.safeAttrValue=function(t,e){return i.test(e)?"":e}},"./node_modules/cssfilter/lib/index.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/default.js"),a=s("./node_modules/cssfilter/lib/css.js");for(var n in(e=t.exports=function(t,e){return new a(e).process(t)}).FilterCSS=a,i)e[n]=i[n];"undefined"!=typeof window&&(window.filterCSS=t.exports)},"./node_modules/cssfilter/lib/parser.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/util.js");t.exports=function(t,e){";"!==(t=i.trimRight(t))[t.length-1]&&(t+=";");var s=t.length,a=!1,n=0,o=0,r="";function l(){if(!a){var s=i.trim(t.slice(n,o)),l=s.indexOf(":");if(-1!==l){var c=i.trim(s.slice(0,l)),u=i.trim(s.slice(l+1));if(c){var d=e(n,r.length,c,u,s);d&&(r+=d+"; ")}}}n=o+1}for(;o<s;o++){var c=t[o];if("/"===c&&"*"===t[o+1]){var u=t.indexOf("*/",o+2);if(-1===u)break;n=(o=u+1)+1,a=!1}else"("===c?a=!0:")"===c?a=!1:";"===c?a||l():"\n"===c&&l()}return i.trim(r)}},"./node_modules/cssfilter/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,a;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,a=t.length;i<a;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},trimRight:function(t){return String.prototype.trimRight?t.trimRight():t.replace(/(\s*$)/g,"")}}},"./node_modules/lodash/_Symbol.js":function(t,e,s){var i=s("./node_modules/lodash/_root.js").Symbol;t.exports=i},"./node_modules/lodash/_baseGetTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),a=s("./node_modules/lodash/_getRawTag.js"),n=s("./node_modules/lodash/_objectToString.js"),o=i?i.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":o&&o in Object(t)?a(t):n(t)}},"./node_modules/lodash/_baseSlice.js":function(t,e){t.exports=function(t,e,s){var i=-1,a=t.length;e<0&&(e=-e>a?0:a+e),(s=s>a?a:s)<0&&(s+=a),a=e>s?0:s-e>>>0,e>>>=0;for(var n=Array(a);++i<a;)n[i]=t[i+e];return n}},"./node_modules/lodash/_freeGlobal.js":function(t,e,s){(function(e){var s="object"==typeof e&&e&&e.Object===Object&&e;t.exports=s}).call(this,s("./node_modules/webpack/buildin/global.js"))},"./node_modules/lodash/_getRawTag.js":function(t,e,s){var i=s("./node_modules/lodash/_Symbol.js"),a=Object.prototype,n=a.hasOwnProperty,o=a.toString,r=i?i.toStringTag:void 0;t.exports=function(t){var e=n.call(t,r),s=t[r];try{t[r]=void 0;var i=!0}catch(t){}var a=o.call(t);return i&&(e?t[r]=s:delete t[r]),a}},"./node_modules/lodash/_isIndex.js":function(t,e){var s=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var i=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==i||"symbol"!=i&&s.test(t))&&t>-1&&t%1==0&&t<e}},"./node_modules/lodash/_isIterateeCall.js":function(t,e,s){var i=s("./node_modules/lodash/eq.js"),a=s("./node_modules/lodash/isArrayLike.js"),n=s("./node_modules/lodash/_isIndex.js"),o=s("./node_modules/lodash/isObject.js");t.exports=function(t,e,s){if(!o(s))return!1;var r=typeof e;return!!("number"==r?a(s)&&n(e,s.length):"string"==r&&e in s)&&i(s[e],t)}},"./node_modules/lodash/_objectToString.js":function(t,e){var s=Object.prototype.toString;t.exports=function(t){return s.call(t)}},"./node_modules/lodash/_root.js":function(t,e,s){var i=s("./node_modules/lodash/_freeGlobal.js"),a="object"==typeof self&&self&&self.Object===Object&&self,n=i||a||Function("return this")();t.exports=n},"./node_modules/lodash/chunk.js":function(t,e,s){var i=s("./node_modules/lodash/_baseSlice.js"),a=s("./node_modules/lodash/_isIterateeCall.js"),n=s("./node_modules/lodash/toInteger.js"),o=Math.ceil,r=Math.max;t.exports=function(t,e,s){e=(s?a(t,e,s):void 0===e)?1:r(n(e),0);var l=null==t?0:t.length;if(!l||e<1)return[];for(var c=0,u=0,d=Array(o(l/e));c<l;)d[u++]=i(t,c,c+=e);return d}},"./node_modules/lodash/eq.js":function(t,e){t.exports=function(t,e){return t===e||t!=t&&e!=e}},"./node_modules/lodash/isArrayLike.js":function(t,e,s){var i=s("./node_modules/lodash/isFunction.js"),a=s("./node_modules/lodash/isLength.js");t.exports=function(t){return null!=t&&a(t.length)&&!i(t)}},"./node_modules/lodash/isFunction.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),a=s("./node_modules/lodash/isObject.js");t.exports=function(t){if(!a(t))return!1;var e=i(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e}},"./node_modules/lodash/isLength.js":function(t,e){t.exports=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}},"./node_modules/lodash/isObject.js":function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},"./node_modules/lodash/isObjectLike.js":function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},"./node_modules/lodash/isSymbol.js":function(t,e,s){var i=s("./node_modules/lodash/_baseGetTag.js"),a=s("./node_modules/lodash/isObjectLike.js");t.exports=function(t){return"symbol"==typeof t||a(t)&&"[object Symbol]"==i(t)}},"./node_modules/lodash/toFinite.js":function(t,e,s){var i=s("./node_modules/lodash/toNumber.js");t.exports=function(t){return t?(t=i(t))===1/0||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},"./node_modules/lodash/toInteger.js":function(t,e,s){var i=s("./node_modules/lodash/toFinite.js");t.exports=function(t){var e=i(t),s=e%1;return e==e?s?e-s:e:0}},"./node_modules/lodash/toNumber.js":function(t,e,s){var i=s("./node_modules/lodash/isObject.js"),a=s("./node_modules/lodash/isSymbol.js"),n=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(a(t))return NaN;if(i(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(n,"");var s=r.test(t);return s||l.test(t)?c(t.slice(2),s?2:8):o.test(t)?NaN:+t}},"./node_modules/moment/moment.js":function(t,e,s){(function(t){t.exports=function(){"use strict";var e,s;function i(){return e.apply(null,arguments)}function a(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function n(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function o(t){return void 0===t}function r(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function l(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function c(t,e){var s,i=[];for(s=0;s<t.length;++s)i.push(e(t[s],s));return i}function u(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function d(t,e){for(var s in e)u(e,s)&&(t[s]=e[s]);return u(e,"toString")&&(t.toString=e.toString),u(e,"valueOf")&&(t.valueOf=e.valueOf),t}function _(t,e,s,i){return Ce(t,e,s,i,!0).utc()}function m(t){return null==t._pf&&(t._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),t._pf}function h(t){if(null==t._isValid){var e=m(t),i=s.call(e.parsedDateParts,(function(t){return null!=t})),a=!isNaN(t._d.getTime())&&e.overflow<0&&!e.empty&&!e.invalidMonth&&!e.invalidWeekday&&!e.weekdayMismatch&&!e.nullInput&&!e.invalidFormat&&!e.userInvalidated&&(!e.meridiem||e.meridiem&&i);if(t._strict&&(a=a&&0===e.charsLeftOver&&0===e.unusedTokens.length&&void 0===e.bigHour),null!=Object.isFrozen&&Object.isFrozen(t))return a;t._isValid=a}return t._isValid}function p(t){var e=_(NaN);return null!=t?d(m(e),t):m(e).userInvalidated=!0,e}s=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),s=e.length>>>0,i=0;i<s;i++)if(i in e&&t.call(this,e[i],i,e))return!0;return!1};var f=i.momentProperties=[];function v(t,e){var s,i,a;if(o(e._isAMomentObject)||(t._isAMomentObject=e._isAMomentObject),o(e._i)||(t._i=e._i),o(e._f)||(t._f=e._f),o(e._l)||(t._l=e._l),o(e._strict)||(t._strict=e._strict),o(e._tzm)||(t._tzm=e._tzm),o(e._isUTC)||(t._isUTC=e._isUTC),o(e._offset)||(t._offset=e._offset),o(e._pf)||(t._pf=m(e)),o(e._locale)||(t._locale=e._locale),f.length>0)for(s=0;s<f.length;s++)o(a=e[i=f[s]])||(t[i]=a);return t}var g=!1;function b(t){v(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===g&&(g=!0,i.updateOffset(this),g=!1)}function y(t){return t instanceof b||null!=t&&null!=t._isAMomentObject}function k(t){return t<0?Math.ceil(t)||0:Math.floor(t)}function w(t){var e=+t,s=0;return 0!==e&&isFinite(e)&&(s=k(e)),s}function C(t,e,s){var i,a=Math.min(t.length,e.length),n=Math.abs(t.length-e.length),o=0;for(i=0;i<a;i++)(s&&t[i]!==e[i]||!s&&w(t[i])!==w(e[i]))&&o++;return o+n}function x(t){!1===i.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function S(t,e){var s=!0;return d((function(){if(null!=i.deprecationHandler&&i.deprecationHandler(null,t),s){for(var a,n=[],o=0;o<arguments.length;o++){if(a="","object"==typeof arguments[o]){for(var r in a+="\n["+o+"] ",arguments[0])a+=r+": "+arguments[0][r]+", ";a=a.slice(0,-2)}else a=arguments[o];n.push(a)}x(t+"\nArguments: "+Array.prototype.slice.call(n).join("")+"\n"+(new Error).stack),s=!1}return e.apply(this,arguments)}),e)}var D,P={};function M(t,e){null!=i.deprecationHandler&&i.deprecationHandler(t,e),P[t]||(x(e),P[t]=!0)}function T(t){return t instanceof Function||"[object Function]"===Object.prototype.toString.call(t)}function O(t,e){var s,i=d({},t);for(s in e)u(e,s)&&(n(t[s])&&n(e[s])?(i[s]={},d(i[s],t[s]),d(i[s],e[s])):null!=e[s]?i[s]=e[s]:delete i[s]);for(s in t)u(t,s)&&!u(e,s)&&n(t[s])&&(i[s]=d({},i[s]));return i}function j(t){null!=t&&this.set(t)}i.suppressDeprecationWarnings=!1,i.deprecationHandler=null,D=Object.keys?Object.keys:function(t){var e,s=[];for(e in t)u(t,e)&&s.push(e);return s};var Y={};function I(t,e){var s=t.toLowerCase();Y[s]=Y[s+"s"]=Y[e]=t}function L(t){return"string"==typeof t?Y[t]||Y[t.toLowerCase()]:void 0}function A(t){var e,s,i={};for(s in t)u(t,s)&&(e=L(s))&&(i[e]=t[s]);return i}var N={};function E(t,e){N[t]=e}function R(t,e,s){var i=""+Math.abs(t),a=e-i.length;return(t>=0?s?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+i}var U=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,H=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,$={},W={};function F(t,e,s,i){var a=i;"string"==typeof i&&(a=function(){return this[i]()}),t&&(W[t]=a),e&&(W[e[0]]=function(){return R(a.apply(this,arguments),e[1],e[2])}),s&&(W[s]=function(){return this.localeData().ordinal(a.apply(this,arguments),t)})}function q(t,e){return t.isValid()?(e=V(e,t.localeData()),$[e]=$[e]||function(t){var e,s,i,a=t.match(U);for(e=0,s=a.length;e<s;e++)W[a[e]]?a[e]=W[a[e]]:a[e]=(i=a[e]).match(/\[[\s\S]/)?i.replace(/^\[|\]$/g,""):i.replace(/\\/g,"");return function(e){var i,n="";for(i=0;i<s;i++)n+=T(a[i])?a[i].call(e,t):a[i];return n}}(e),$[e](t)):t.localeData().invalidDate()}function V(t,e){var s=5;function i(t){return e.longDateFormat(t)||t}for(H.lastIndex=0;s>=0&&H.test(t);)t=t.replace(H,i),H.lastIndex=0,s-=1;return t}var G=/\d/,z=/\d\d/,B=/\d{3}/,Q=/\d{4}/,Z=/[+-]?\d{6}/,J=/\d\d?/,X=/\d\d\d\d?/,K=/\d\d\d\d\d\d?/,tt=/\d{1,3}/,et=/\d{1,4}/,st=/[+-]?\d{1,6}/,it=/\d+/,at=/[+-]?\d+/,nt=/Z|[+-]\d\d:?\d\d/gi,ot=/Z|[+-]\d\d(?::?\d\d)?/gi,rt=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,lt={};function ct(t,e,s){lt[t]=T(e)?e:function(t,i){return t&&s?s:e}}function ut(t,e){return u(lt,t)?lt[t](e._strict,e._locale):new RegExp(dt(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(t,e,s,i,a){return e||s||i||a}))))}function dt(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var _t={};function mt(t,e){var s,i=e;for("string"==typeof t&&(t=[t]),r(e)&&(i=function(t,s){s[e]=w(t)}),s=0;s<t.length;s++)_t[t[s]]=i}function ht(t,e){mt(t,(function(t,s,i,a){i._w=i._w||{},e(t,i._w,i,a)}))}function pt(t,e,s){null!=e&&u(_t,t)&&_t[t](e,s._a,s,t)}function ft(t){return vt(t)?366:365}function vt(t){return t%4==0&&t%100!=0||t%400==0}F("Y",0,0,(function(){var t=this.year();return t<=9999?""+t:"+"+t})),F(0,["YY",2],0,(function(){return this.year()%100})),F(0,["YYYY",4],0,"year"),F(0,["YYYYY",5],0,"year"),F(0,["YYYYYY",6,!0],0,"year"),I("year","y"),E("year",1),ct("Y",at),ct("YY",J,z),ct("YYYY",et,Q),ct("YYYYY",st,Z),ct("YYYYYY",st,Z),mt(["YYYYY","YYYYYY"],0),mt("YYYY",(function(t,e){e[0]=2===t.length?i.parseTwoDigitYear(t):w(t)})),mt("YY",(function(t,e){e[0]=i.parseTwoDigitYear(t)})),mt("Y",(function(t,e){e[0]=parseInt(t,10)})),i.parseTwoDigitYear=function(t){return w(t)+(w(t)>68?1900:2e3)};var gt,bt=yt("FullYear",!0);function yt(t,e){return function(s){return null!=s?(wt(this,t,s),i.updateOffset(this,e),this):kt(this,t)}}function kt(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function wt(t,e,s){t.isValid()&&!isNaN(s)&&("FullYear"===e&&vt(t.year())&&1===t.month()&&29===t.date()?t._d["set"+(t._isUTC?"UTC":"")+e](s,t.month(),Ct(s,t.month())):t._d["set"+(t._isUTC?"UTC":"")+e](s))}function Ct(t,e){if(isNaN(t)||isNaN(e))return NaN;var s,i=(e%(s=12)+s)%s;return t+=(e-i)/12,1===i?vt(t)?29:28:31-i%7%2}gt=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var e;for(e=0;e<this.length;++e)if(this[e]===t)return e;return-1},F("M",["MM",2],"Mo",(function(){return this.month()+1})),F("MMM",0,0,(function(t){return this.localeData().monthsShort(this,t)})),F("MMMM",0,0,(function(t){return this.localeData().months(this,t)})),I("month","M"),E("month",8),ct("M",J),ct("MM",J,z),ct("MMM",(function(t,e){return e.monthsShortRegex(t)})),ct("MMMM",(function(t,e){return e.monthsRegex(t)})),mt(["M","MM"],(function(t,e){e[1]=w(t)-1})),mt(["MMM","MMMM"],(function(t,e,s,i){var a=s._locale.monthsParse(t,i,s._strict);null!=a?e[1]=a:m(s).invalidMonth=t}));var xt=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,St="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Dt="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Pt(t,e,s){var i,a,n,o=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)n=_([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(n,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(n,"").toLocaleLowerCase();return s?"MMM"===e?-1!==(a=gt.call(this._shortMonthsParse,o))?a:null:-1!==(a=gt.call(this._longMonthsParse,o))?a:null:"MMM"===e?-1!==(a=gt.call(this._shortMonthsParse,o))?a:-1!==(a=gt.call(this._longMonthsParse,o))?a:null:-1!==(a=gt.call(this._longMonthsParse,o))?a:-1!==(a=gt.call(this._shortMonthsParse,o))?a:null}function Mt(t,e){var s;if(!t.isValid())return t;if("string"==typeof e)if(/^\d+$/.test(e))e=w(e);else if(!r(e=t.localeData().monthsParse(e)))return t;return s=Math.min(t.date(),Ct(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,s),t}function Tt(t){return null!=t?(Mt(this,t),i.updateOffset(this,!0),this):kt(this,"Month")}var Ot=rt,jt=rt;function Yt(){function t(t,e){return e.length-t.length}var e,s,i=[],a=[],n=[];for(e=0;e<12;e++)s=_([2e3,e]),i.push(this.monthsShort(s,"")),a.push(this.months(s,"")),n.push(this.months(s,"")),n.push(this.monthsShort(s,""));for(i.sort(t),a.sort(t),n.sort(t),e=0;e<12;e++)i[e]=dt(i[e]),a[e]=dt(a[e]);for(e=0;e<24;e++)n[e]=dt(n[e]);this._monthsRegex=new RegExp("^("+n.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function It(t,e,s,i,a,n,o){var r;return t<100&&t>=0?(r=new Date(t+400,e,s,i,a,n,o),isFinite(r.getFullYear())&&r.setFullYear(t)):r=new Date(t,e,s,i,a,n,o),r}function Lt(t){var e;if(t<100&&t>=0){var s=Array.prototype.slice.call(arguments);s[0]=t+400,e=new Date(Date.UTC.apply(null,s)),isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t)}else e=new Date(Date.UTC.apply(null,arguments));return e}function At(t,e,s){var i=7+e-s;return-(7+Lt(t,0,i).getUTCDay()-e)%7+i-1}function Nt(t,e,s,i,a){var n,o,r=1+7*(e-1)+(7+s-i)%7+At(t,i,a);return r<=0?o=ft(n=t-1)+r:r>ft(t)?(n=t+1,o=r-ft(t)):(n=t,o=r),{year:n,dayOfYear:o}}function Et(t,e,s){var i,a,n=At(t.year(),e,s),o=Math.floor((t.dayOfYear()-n-1)/7)+1;return o<1?i=o+Rt(a=t.year()-1,e,s):o>Rt(t.year(),e,s)?(i=o-Rt(t.year(),e,s),a=t.year()+1):(a=t.year(),i=o),{week:i,year:a}}function Rt(t,e,s){var i=At(t,e,s),a=At(t+1,e,s);return(ft(t)-i+a)/7}function Ut(t,e){return t.slice(e,7).concat(t.slice(0,e))}F("w",["ww",2],"wo","week"),F("W",["WW",2],"Wo","isoWeek"),I("week","w"),I("isoWeek","W"),E("week",5),E("isoWeek",5),ct("w",J),ct("ww",J,z),ct("W",J),ct("WW",J,z),ht(["w","ww","W","WW"],(function(t,e,s,i){e[i.substr(0,1)]=w(t)})),F("d",0,"do","day"),F("dd",0,0,(function(t){return this.localeData().weekdaysMin(this,t)})),F("ddd",0,0,(function(t){return this.localeData().weekdaysShort(this,t)})),F("dddd",0,0,(function(t){return this.localeData().weekdays(this,t)})),F("e",0,0,"weekday"),F("E",0,0,"isoWeekday"),I("day","d"),I("weekday","e"),I("isoWeekday","E"),E("day",11),E("weekday",11),E("isoWeekday",11),ct("d",J),ct("e",J),ct("E",J),ct("dd",(function(t,e){return e.weekdaysMinRegex(t)})),ct("ddd",(function(t,e){return e.weekdaysShortRegex(t)})),ct("dddd",(function(t,e){return e.weekdaysRegex(t)})),ht(["dd","ddd","dddd"],(function(t,e,s,i){var a=s._locale.weekdaysParse(t,i,s._strict);null!=a?e.d=a:m(s).invalidWeekday=t})),ht(["d","e","E"],(function(t,e,s,i){e[i]=w(t)}));var Ht="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),$t="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Wt="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Ft(t,e,s){var i,a,n,o=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)n=_([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(n,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(n,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(n,"").toLocaleLowerCase();return s?"dddd"===e?-1!==(a=gt.call(this._weekdaysParse,o))?a:null:"ddd"===e?-1!==(a=gt.call(this._shortWeekdaysParse,o))?a:null:-1!==(a=gt.call(this._minWeekdaysParse,o))?a:null:"dddd"===e?-1!==(a=gt.call(this._weekdaysParse,o))?a:-1!==(a=gt.call(this._shortWeekdaysParse,o))?a:-1!==(a=gt.call(this._minWeekdaysParse,o))?a:null:"ddd"===e?-1!==(a=gt.call(this._shortWeekdaysParse,o))?a:-1!==(a=gt.call(this._weekdaysParse,o))?a:-1!==(a=gt.call(this._minWeekdaysParse,o))?a:null:-1!==(a=gt.call(this._minWeekdaysParse,o))?a:-1!==(a=gt.call(this._weekdaysParse,o))?a:-1!==(a=gt.call(this._shortWeekdaysParse,o))?a:null}var qt=rt,Vt=rt,Gt=rt;function zt(){function t(t,e){return e.length-t.length}var e,s,i,a,n,o=[],r=[],l=[],c=[];for(e=0;e<7;e++)s=_([2e3,1]).day(e),i=this.weekdaysMin(s,""),a=this.weekdaysShort(s,""),n=this.weekdays(s,""),o.push(i),r.push(a),l.push(n),c.push(i),c.push(a),c.push(n);for(o.sort(t),r.sort(t),l.sort(t),c.sort(t),e=0;e<7;e++)r[e]=dt(r[e]),l[e]=dt(l[e]),c[e]=dt(c[e]);this._weekdaysRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+o.join("|")+")","i")}function Bt(){return this.hours()%12||12}function Qt(t,e){F(t,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)}))}function Zt(t,e){return e._meridiemParse}F("H",["HH",2],0,"hour"),F("h",["hh",2],0,Bt),F("k",["kk",2],0,(function(){return this.hours()||24})),F("hmm",0,0,(function(){return""+Bt.apply(this)+R(this.minutes(),2)})),F("hmmss",0,0,(function(){return""+Bt.apply(this)+R(this.minutes(),2)+R(this.seconds(),2)})),F("Hmm",0,0,(function(){return""+this.hours()+R(this.minutes(),2)})),F("Hmmss",0,0,(function(){return""+this.hours()+R(this.minutes(),2)+R(this.seconds(),2)})),Qt("a",!0),Qt("A",!1),I("hour","h"),E("hour",13),ct("a",Zt),ct("A",Zt),ct("H",J),ct("h",J),ct("k",J),ct("HH",J,z),ct("hh",J,z),ct("kk",J,z),ct("hmm",X),ct("hmmss",K),ct("Hmm",X),ct("Hmmss",K),mt(["H","HH"],3),mt(["k","kk"],(function(t,e,s){var i=w(t);e[3]=24===i?0:i})),mt(["a","A"],(function(t,e,s){s._isPm=s._locale.isPM(t),s._meridiem=t})),mt(["h","hh"],(function(t,e,s){e[3]=w(t),m(s).bigHour=!0})),mt("hmm",(function(t,e,s){var i=t.length-2;e[3]=w(t.substr(0,i)),e[4]=w(t.substr(i)),m(s).bigHour=!0})),mt("hmmss",(function(t,e,s){var i=t.length-4,a=t.length-2;e[3]=w(t.substr(0,i)),e[4]=w(t.substr(i,2)),e[5]=w(t.substr(a)),m(s).bigHour=!0})),mt("Hmm",(function(t,e,s){var i=t.length-2;e[3]=w(t.substr(0,i)),e[4]=w(t.substr(i))})),mt("Hmmss",(function(t,e,s){var i=t.length-4,a=t.length-2;e[3]=w(t.substr(0,i)),e[4]=w(t.substr(i,2)),e[5]=w(t.substr(a))}));var Jt,Xt=yt("Hours",!0),Kt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:St,monthsShort:Dt,week:{dow:0,doy:6},weekdays:Ht,weekdaysMin:Wt,weekdaysShort:$t,meridiemParse:/[ap]\.?m?\.?/i},te={},ee={};function se(t){return t?t.toLowerCase().replace("_","-"):t}function ie(e){var s=null;if(!te[e]&&void 0!==t&&t&&t.exports)try{s=Jt._abbr,!function(){var t=new Error("Cannot find module 'undefined'");throw t.code="MODULE_NOT_FOUND",t}(),ae(s)}catch(t){}return te[e]}function ae(t,e){var s;return t&&((s=o(e)?oe(t):ne(t,e))?Jt=s:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+t+" not found. Did you forget to load it?")),Jt._abbr}function ne(t,e){if(null!==e){var s,i=Kt;if(e.abbr=t,null!=te[t])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=te[t]._config;else if(null!=e.parentLocale)if(null!=te[e.parentLocale])i=te[e.parentLocale]._config;else{if(null==(s=ie(e.parentLocale)))return ee[e.parentLocale]||(ee[e.parentLocale]=[]),ee[e.parentLocale].push({name:t,config:e}),null;i=s._config}return te[t]=new j(O(i,e)),ee[t]&&ee[t].forEach((function(t){ne(t.name,t.config)})),ae(t),te[t]}return delete te[t],null}function oe(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Jt;if(!a(t)){if(e=ie(t))return e;t=[t]}return function(t){for(var e,s,i,a,n=0;n<t.length;){for(e=(a=se(t[n]).split("-")).length,s=(s=se(t[n+1]))?s.split("-"):null;e>0;){if(i=ie(a.slice(0,e).join("-")))return i;if(s&&s.length>=e&&C(a,s,!0)>=e-1)break;e--}n++}return Jt}(t)}function re(t){var e,s=t._a;return s&&-2===m(t).overflow&&(e=s[1]<0||s[1]>11?1:s[2]<1||s[2]>Ct(s[0],s[1])?2:s[3]<0||s[3]>24||24===s[3]&&(0!==s[4]||0!==s[5]||0!==s[6])?3:s[4]<0||s[4]>59?4:s[5]<0||s[5]>59?5:s[6]<0||s[6]>999?6:-1,m(t)._overflowDayOfYear&&(e<0||e>2)&&(e=2),m(t)._overflowWeeks&&-1===e&&(e=7),m(t)._overflowWeekday&&-1===e&&(e=8),m(t).overflow=e),t}function le(t,e,s){return null!=t?t:null!=e?e:s}function ce(t){var e,s,a,n,o,r=[];if(!t._d){for(a=function(t){var e=new Date(i.now());return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}(t),t._w&&null==t._a[2]&&null==t._a[1]&&function(t){var e,s,i,a,n,o,r,l;if(null!=(e=t._w).GG||null!=e.W||null!=e.E)n=1,o=4,s=le(e.GG,t._a[0],Et(xe(),1,4).year),i=le(e.W,1),((a=le(e.E,1))<1||a>7)&&(l=!0);else{n=t._locale._week.dow,o=t._locale._week.doy;var c=Et(xe(),n,o);s=le(e.gg,t._a[0],c.year),i=le(e.w,c.week),null!=e.d?((a=e.d)<0||a>6)&&(l=!0):null!=e.e?(a=e.e+n,(e.e<0||e.e>6)&&(l=!0)):a=n}i<1||i>Rt(s,n,o)?m(t)._overflowWeeks=!0:null!=l?m(t)._overflowWeekday=!0:(r=Nt(s,i,a,n,o),t._a[0]=r.year,t._dayOfYear=r.dayOfYear)}(t),null!=t._dayOfYear&&(o=le(t._a[0],a[0]),(t._dayOfYear>ft(o)||0===t._dayOfYear)&&(m(t)._overflowDayOfYear=!0),s=Lt(o,0,t._dayOfYear),t._a[1]=s.getUTCMonth(),t._a[2]=s.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=r[e]=a[e];for(;e<7;e++)t._a[e]=r[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[3]&&0===t._a[4]&&0===t._a[5]&&0===t._a[6]&&(t._nextDay=!0,t._a[3]=0),t._d=(t._useUTC?Lt:It).apply(null,r),n=t._useUTC?t._d.getUTCDay():t._d.getDay(),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[3]=24),t._w&&void 0!==t._w.d&&t._w.d!==n&&(m(t).weekdayMismatch=!0)}}var ue=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,de=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_e=/Z|[+-]\d\d(?::?\d\d)?/,me=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],he=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pe=/^\/?Date\((\-?\d+)/i;function fe(t){var e,s,i,a,n,o,r=t._i,l=ue.exec(r)||de.exec(r);if(l){for(m(t).iso=!0,e=0,s=me.length;e<s;e++)if(me[e][1].exec(l[1])){a=me[e][0],i=!1!==me[e][2];break}if(null==a)return void(t._isValid=!1);if(l[3]){for(e=0,s=he.length;e<s;e++)if(he[e][1].exec(l[3])){n=(l[2]||" ")+he[e][0];break}if(null==n)return void(t._isValid=!1)}if(!i&&null!=n)return void(t._isValid=!1);if(l[4]){if(!_e.exec(l[4]))return void(t._isValid=!1);o="Z"}t._f=a+(n||"")+(o||""),ke(t)}else t._isValid=!1}var ve=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function ge(t){var e=parseInt(t,10);return e<=49?2e3+e:e<=999?1900+e:e}var be={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function ye(t){var e,s,i,a,n,o,r,l=ve.exec(t._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(l){var c=(e=l[4],s=l[3],i=l[2],a=l[5],n=l[6],o=l[7],r=[ge(e),Dt.indexOf(s),parseInt(i,10),parseInt(a,10),parseInt(n,10)],o&&r.push(parseInt(o,10)),r);if(!function(t,e,s){return!t||$t.indexOf(t)===new Date(e[0],e[1],e[2]).getDay()||(m(s).weekdayMismatch=!0,s._isValid=!1,!1)}(l[1],c,t))return;t._a=c,t._tzm=function(t,e,s){if(t)return be[t];if(e)return 0;var i=parseInt(s,10),a=i%100;return(i-a)/100*60+a}(l[8],l[9],l[10]),t._d=Lt.apply(null,t._a),t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),m(t).rfc2822=!0}else t._isValid=!1}function ke(t){if(t._f!==i.ISO_8601)if(t._f!==i.RFC_2822){t._a=[],m(t).empty=!0;var e,s,a,n,o,r=""+t._i,l=r.length,c=0;for(a=V(t._f,t._locale).match(U)||[],e=0;e<a.length;e++)n=a[e],(s=(r.match(ut(n,t))||[])[0])&&((o=r.substr(0,r.indexOf(s))).length>0&&m(t).unusedInput.push(o),r=r.slice(r.indexOf(s)+s.length),c+=s.length),W[n]?(s?m(t).empty=!1:m(t).unusedTokens.push(n),pt(n,s,t)):t._strict&&!s&&m(t).unusedTokens.push(n);m(t).charsLeftOver=l-c,r.length>0&&m(t).unusedInput.push(r),t._a[3]<=12&&!0===m(t).bigHour&&t._a[3]>0&&(m(t).bigHour=void 0),m(t).parsedDateParts=t._a.slice(0),m(t).meridiem=t._meridiem,t._a[3]=function(t,e,s){var i;return null==s?e:null!=t.meridiemHour?t.meridiemHour(e,s):null!=t.isPM?((i=t.isPM(s))&&e<12&&(e+=12),i||12!==e||(e=0),e):e}(t._locale,t._a[3],t._meridiem),ce(t),re(t)}else ye(t);else fe(t)}function we(t){var e=t._i,s=t._f;return t._locale=t._locale||oe(t._l),null===e||void 0===s&&""===e?p({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),y(e)?new b(re(e)):(l(e)?t._d=e:a(s)?function(t){var e,s,i,a,n;if(0===t._f.length)return m(t).invalidFormat=!0,void(t._d=new Date(NaN));for(a=0;a<t._f.length;a++)n=0,e=v({},t),null!=t._useUTC&&(e._useUTC=t._useUTC),e._f=t._f[a],ke(e),h(e)&&(n+=m(e).charsLeftOver,n+=10*m(e).unusedTokens.length,m(e).score=n,(null==i||n<i)&&(i=n,s=e));d(t,s||e)}(t):s?ke(t):function(t){var e=t._i;o(e)?t._d=new Date(i.now()):l(e)?t._d=new Date(e.valueOf()):"string"==typeof e?function(t){var e=pe.exec(t._i);null===e?(fe(t),!1===t._isValid&&(delete t._isValid,ye(t),!1===t._isValid&&(delete t._isValid,i.createFromInputFallback(t)))):t._d=new Date(+e[1])}(t):a(e)?(t._a=c(e.slice(0),(function(t){return parseInt(t,10)})),ce(t)):n(e)?function(t){if(!t._d){var e=A(t._i);t._a=c([e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],(function(t){return t&&parseInt(t,10)})),ce(t)}}(t):r(e)?t._d=new Date(e):i.createFromInputFallback(t)}(t),h(t)||(t._d=null),t))}function Ce(t,e,s,i,o){var r,l={};return!0!==s&&!1!==s||(i=s,s=void 0),(n(t)&&function(t){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(t).length;var e;for(e in t)if(t.hasOwnProperty(e))return!1;return!0}(t)||a(t)&&0===t.length)&&(t=void 0),l._isAMomentObject=!0,l._useUTC=l._isUTC=o,l._l=s,l._i=t,l._f=e,l._strict=i,(r=new b(re(we(l))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function xe(t,e,s,i){return Ce(t,e,s,i,!1)}i.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",(function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))})),i.ISO_8601=function(){},i.RFC_2822=function(){};var Se=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=xe.apply(null,arguments);return this.isValid()&&t.isValid()?t<this?this:t:p()})),De=S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",(function(){var t=xe.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:p()}));function Pe(t,e){var s,i;if(1===e.length&&a(e[0])&&(e=e[0]),!e.length)return xe();for(s=e[0],i=1;i<e.length;++i)e[i].isValid()&&!e[i][t](s)||(s=e[i]);return s}var Me=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Te(t){var e=A(t),s=e.year||0,i=e.quarter||0,a=e.month||0,n=e.week||e.isoWeek||0,o=e.day||0,r=e.hour||0,l=e.minute||0,c=e.second||0,u=e.millisecond||0;this._isValid=function(t){for(var e in t)if(-1===gt.call(Me,e)||null!=t[e]&&isNaN(t[e]))return!1;for(var s=!1,i=0;i<Me.length;++i)if(t[Me[i]]){if(s)return!1;parseFloat(t[Me[i]])!==w(t[Me[i]])&&(s=!0)}return!0}(e),this._milliseconds=+u+1e3*c+6e4*l+1e3*r*60*60,this._days=+o+7*n,this._months=+a+3*i+12*s,this._data={},this._locale=oe(),this._bubble()}function Oe(t){return t instanceof Te}function je(t){return t<0?-1*Math.round(-1*t):Math.round(t)}function Ye(t,e){F(t,0,0,(function(){var t=this.utcOffset(),s="+";return t<0&&(t=-t,s="-"),s+R(~~(t/60),2)+e+R(~~t%60,2)}))}Ye("Z",":"),Ye("ZZ",""),ct("Z",ot),ct("ZZ",ot),mt(["Z","ZZ"],(function(t,e,s){s._useUTC=!0,s._tzm=Le(ot,t)}));var Ie=/([\+\-]|\d\d)/gi;function Le(t,e){var s=(e||"").match(t);if(null===s)return null;var i=((s[s.length-1]||[])+"").match(Ie)||["-",0,0],a=60*i[1]+w(i[2]);return 0===a?0:"+"===i[0]?a:-a}function Ae(t,e){var s,a;return e._isUTC?(s=e.clone(),a=(y(t)||l(t)?t.valueOf():xe(t).valueOf())-s.valueOf(),s._d.setTime(s._d.valueOf()+a),i.updateOffset(s,!1),s):xe(t).local()}function Ne(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Ee(){return!!this.isValid()&&this._isUTC&&0===this._offset}i.updateOffset=function(){};var Re=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ue=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function He(t,e){var s,i,a,n,o,l,c=t,d=null;return Oe(t)?c={ms:t._milliseconds,d:t._days,M:t._months}:r(t)?(c={},e?c[e]=t:c.milliseconds=t):(d=Re.exec(t))?(s="-"===d[1]?-1:1,c={y:0,d:w(d[2])*s,h:w(d[3])*s,m:w(d[4])*s,s:w(d[5])*s,ms:w(je(1e3*d[6]))*s}):(d=Ue.exec(t))?(s="-"===d[1]?-1:1,c={y:$e(d[2],s),M:$e(d[3],s),w:$e(d[4],s),d:$e(d[5],s),h:$e(d[6],s),m:$e(d[7],s),s:$e(d[8],s)}):null==c?c={}:"object"==typeof c&&("from"in c||"to"in c)&&(n=xe(c.from),o=xe(c.to),a=n.isValid()&&o.isValid()?(o=Ae(o,n),n.isBefore(o)?l=We(n,o):((l=We(o,n)).milliseconds=-l.milliseconds,l.months=-l.months),l):{milliseconds:0,months:0},(c={}).ms=a.milliseconds,c.M=a.months),i=new Te(c),Oe(t)&&u(t,"_locale")&&(i._locale=t._locale),i}function $e(t,e){var s=t&&parseFloat(t.replace(",","."));return(isNaN(s)?0:s)*e}function We(t,e){var s={};return s.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(s.months,"M").isAfter(e)&&--s.months,s.milliseconds=+e-+t.clone().add(s.months,"M"),s}function Fe(t,e){return function(s,i){var a;return null===i||isNaN(+i)||(M(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=s,s=i,i=a),qe(this,He(s="string"==typeof s?+s:s,i),t),this}}function qe(t,e,s,a){var n=e._milliseconds,o=je(e._days),r=je(e._months);t.isValid()&&(a=null==a||a,r&&Mt(t,kt(t,"Month")+r*s),o&&wt(t,"Date",kt(t,"Date")+o*s),n&&t._d.setTime(t._d.valueOf()+n*s),a&&i.updateOffset(t,o||r))}He.fn=Te.prototype,He.invalid=function(){return He(NaN)};var Ve=Fe(1,"add"),Ge=Fe(-1,"subtract");function ze(t,e){var s=12*(e.year()-t.year())+(e.month()-t.month()),i=t.clone().add(s,"months");return-(s+(e-i<0?(e-i)/(i-t.clone().add(s-1,"months")):(e-i)/(t.clone().add(s+1,"months")-i)))||0}function Be(t){var e;return void 0===t?this._locale._abbr:(null!=(e=oe(t))&&(this._locale=e),this)}i.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",i.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Qe=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",(function(t){return void 0===t?this.localeData():this.locale(t)}));function Ze(){return this._locale}function Je(t,e){return(t%e+e)%e}function Xe(t,e,s){return t<100&&t>=0?new Date(t+400,e,s)-126227808e5:new Date(t,e,s).valueOf()}function Ke(t,e,s){return t<100&&t>=0?Date.UTC(t+400,e,s)-126227808e5:Date.UTC(t,e,s)}function ts(t,e){F(0,[t,t.length],0,e)}function es(t,e,s,i,a){var n;return null==t?Et(this,i,a).year:(e>(n=Rt(t,i,a))&&(e=n),ss.call(this,t,e,s,i,a))}function ss(t,e,s,i,a){var n=Nt(t,e,s,i,a),o=Lt(n.year,0,n.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}F(0,["gg",2],0,(function(){return this.weekYear()%100})),F(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),ts("gggg","weekYear"),ts("ggggg","weekYear"),ts("GGGG","isoWeekYear"),ts("GGGGG","isoWeekYear"),I("weekYear","gg"),I("isoWeekYear","GG"),E("weekYear",1),E("isoWeekYear",1),ct("G",at),ct("g",at),ct("GG",J,z),ct("gg",J,z),ct("GGGG",et,Q),ct("gggg",et,Q),ct("GGGGG",st,Z),ct("ggggg",st,Z),ht(["gggg","ggggg","GGGG","GGGGG"],(function(t,e,s,i){e[i.substr(0,2)]=w(t)})),ht(["gg","GG"],(function(t,e,s,a){e[a]=i.parseTwoDigitYear(t)})),F("Q",0,"Qo","quarter"),I("quarter","Q"),E("quarter",7),ct("Q",G),mt("Q",(function(t,e){e[1]=3*(w(t)-1)})),F("D",["DD",2],"Do","date"),I("date","D"),E("date",9),ct("D",J),ct("DD",J,z),ct("Do",(function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient})),mt(["D","DD"],2),mt("Do",(function(t,e){e[2]=w(t.match(J)[0])}));var is=yt("Date",!0);F("DDD",["DDDD",3],"DDDo","dayOfYear"),I("dayOfYear","DDD"),E("dayOfYear",4),ct("DDD",tt),ct("DDDD",B),mt(["DDD","DDDD"],(function(t,e,s){s._dayOfYear=w(t)})),F("m",["mm",2],0,"minute"),I("minute","m"),E("minute",14),ct("m",J),ct("mm",J,z),mt(["m","mm"],4);var as=yt("Minutes",!1);F("s",["ss",2],0,"second"),I("second","s"),E("second",15),ct("s",J),ct("ss",J,z),mt(["s","ss"],5);var ns,os=yt("Seconds",!1);for(F("S",0,0,(function(){return~~(this.millisecond()/100)})),F(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),F(0,["SSS",3],0,"millisecond"),F(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),F(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),F(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),F(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),F(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),F(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),I("millisecond","ms"),E("millisecond",16),ct("S",tt,G),ct("SS",tt,z),ct("SSS",tt,B),ns="SSSS";ns.length<=9;ns+="S")ct(ns,it);function rs(t,e){e[6]=w(1e3*("0."+t))}for(ns="S";ns.length<=9;ns+="S")mt(ns,rs);var ls=yt("Milliseconds",!1);F("z",0,0,"zoneAbbr"),F("zz",0,0,"zoneName");var cs=b.prototype;function us(t){return t}cs.add=Ve,cs.calendar=function(t,e){var s=t||xe(),a=Ae(s,this).startOf("day"),n=i.calendarFormat(this,a)||"sameElse",o=e&&(T(e[n])?e[n].call(this,s):e[n]);return this.format(o||this.localeData().calendar(n,this,xe(s)))},cs.clone=function(){return new b(this)},cs.diff=function(t,e,s){var i,a,n;if(!this.isValid())return NaN;if(!(i=Ae(t,this)).isValid())return NaN;switch(a=6e4*(i.utcOffset()-this.utcOffset()),e=L(e)){case"year":n=ze(this,i)/12;break;case"month":n=ze(this,i);break;case"quarter":n=ze(this,i)/3;break;case"second":n=(this-i)/1e3;break;case"minute":n=(this-i)/6e4;break;case"hour":n=(this-i)/36e5;break;case"day":n=(this-i-a)/864e5;break;case"week":n=(this-i-a)/6048e5;break;default:n=this-i}return s?n:k(n)},cs.endOf=function(t){var e;if(void 0===(t=L(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?Ke:Xe;switch(t){case"year":e=s(this.year()+1,0,1)-1;break;case"quarter":e=s(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":e=s(this.year(),this.month()+1,1)-1;break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":e=s(this.year(),this.month(),this.date()+1)-1;break;case"hour":e=this._d.valueOf(),e+=36e5-Je(e+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":e=this._d.valueOf(),e+=6e4-Je(e,6e4)-1;break;case"second":e=this._d.valueOf(),e+=1e3-Je(e,1e3)-1}return this._d.setTime(e),i.updateOffset(this,!0),this},cs.format=function(t){t||(t=this.isUtc()?i.defaultFormatUtc:i.defaultFormat);var e=q(this,t);return this.localeData().postformat(e)},cs.from=function(t,e){return this.isValid()&&(y(t)&&t.isValid()||xe(t).isValid())?He({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},cs.fromNow=function(t){return this.from(xe(),t)},cs.to=function(t,e){return this.isValid()&&(y(t)&&t.isValid()||xe(t).isValid())?He({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()},cs.toNow=function(t){return this.to(xe(),t)},cs.get=function(t){return T(this[t=L(t)])?this[t]():this},cs.invalidAt=function(){return m(this).overflow},cs.isAfter=function(t,e){var s=y(t)?t:xe(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=L(e)||"millisecond")?this.valueOf()>s.valueOf():s.valueOf()<this.clone().startOf(e).valueOf())},cs.isBefore=function(t,e){var s=y(t)?t:xe(t);return!(!this.isValid()||!s.isValid())&&("millisecond"===(e=L(e)||"millisecond")?this.valueOf()<s.valueOf():this.clone().endOf(e).valueOf()<s.valueOf())},cs.isBetween=function(t,e,s,i){var a=y(t)?t:xe(t),n=y(e)?e:xe(e);return!!(this.isValid()&&a.isValid()&&n.isValid())&&("("===(i=i||"()")[0]?this.isAfter(a,s):!this.isBefore(a,s))&&(")"===i[1]?this.isBefore(n,s):!this.isAfter(n,s))},cs.isSame=function(t,e){var s,i=y(t)?t:xe(t);return!(!this.isValid()||!i.isValid())&&("millisecond"===(e=L(e)||"millisecond")?this.valueOf()===i.valueOf():(s=i.valueOf(),this.clone().startOf(e).valueOf()<=s&&s<=this.clone().endOf(e).valueOf()))},cs.isSameOrAfter=function(t,e){return this.isSame(t,e)||this.isAfter(t,e)},cs.isSameOrBefore=function(t,e){return this.isSame(t,e)||this.isBefore(t,e)},cs.isValid=function(){return h(this)},cs.lang=Qe,cs.locale=Be,cs.localeData=Ze,cs.max=De,cs.min=Se,cs.parsingFlags=function(){return d({},m(this))},cs.set=function(t,e){if("object"==typeof t)for(var s=function(t){var e=[];for(var s in t)e.push({unit:s,priority:N[s]});return e.sort((function(t,e){return t.priority-e.priority})),e}(t=A(t)),i=0;i<s.length;i++)this[s[i].unit](t[s[i].unit]);else if(T(this[t=L(t)]))return this[t](e);return this},cs.startOf=function(t){var e;if(void 0===(t=L(t))||"millisecond"===t||!this.isValid())return this;var s=this._isUTC?Ke:Xe;switch(t){case"year":e=s(this.year(),0,1);break;case"quarter":e=s(this.year(),this.month()-this.month()%3,1);break;case"month":e=s(this.year(),this.month(),1);break;case"week":e=s(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":e=s(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":e=s(this.year(),this.month(),this.date());break;case"hour":e=this._d.valueOf(),e-=Je(e+(this._isUTC?0:6e4*this.utcOffset()),36e5);break;case"minute":e=this._d.valueOf(),e-=Je(e,6e4);break;case"second":e=this._d.valueOf(),e-=Je(e,1e3)}return this._d.setTime(e),i.updateOffset(this,!0),this},cs.subtract=Ge,cs.toArray=function(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]},cs.toObject=function(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}},cs.toDate=function(){return new Date(this.valueOf())},cs.toISOString=function(t){if(!this.isValid())return null;var e=!0!==t,s=e?this.clone().utc():this;return s.year()<0||s.year()>9999?q(s,e?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):T(Date.prototype.toISOString)?e?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",q(s,"Z")):q(s,e?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},cs.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var s="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=e+'[")]';return this.format(s+i+"-MM-DD[T]HH:mm:ss.SSS"+a)},cs.toJSON=function(){return this.isValid()?this.toISOString():null},cs.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},cs.unix=function(){return Math.floor(this.valueOf()/1e3)},cs.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},cs.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},cs.year=bt,cs.isLeapYear=function(){return vt(this.year())},cs.weekYear=function(t){return es.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},cs.isoWeekYear=function(t){return es.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)},cs.quarter=cs.quarters=function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},cs.month=Tt,cs.daysInMonth=function(){return Ct(this.year(),this.month())},cs.week=cs.weeks=function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},cs.isoWeek=cs.isoWeeks=function(t){var e=Et(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},cs.weeksInYear=function(){var t=this.localeData()._week;return Rt(this.year(),t.dow,t.doy)},cs.isoWeeksInYear=function(){return Rt(this.year(),1,4)},cs.date=is,cs.day=cs.days=function(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=function(t,e){return"string"!=typeof t?t:isNaN(t)?"number"==typeof(t=e.weekdaysParse(t))?t:null:parseInt(t,10)}(t,this.localeData()),this.add(t-e,"d")):e},cs.weekday=function(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},cs.isoWeekday=function(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=function(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7},cs.dayOfYear=function(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},cs.hour=cs.hours=Xt,cs.minute=cs.minutes=as,cs.second=cs.seconds=os,cs.millisecond=cs.milliseconds=ls,cs.utcOffset=function(t,e,s){var a,n=this._offset||0;if(!this.isValid())return null!=t?this:NaN;if(null!=t){if("string"==typeof t){if(null===(t=Le(ot,t)))return this}else Math.abs(t)<16&&!s&&(t*=60);return!this._isUTC&&e&&(a=Ne(this)),this._offset=t,this._isUTC=!0,null!=a&&this.add(a,"m"),n!==t&&(!e||this._changeInProgress?qe(this,He(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,i.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?n:Ne(this)},cs.utc=function(t){return this.utcOffset(0,t)},cs.local=function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ne(this),"m")),this},cs.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var t=Le(nt,this._i);null!=t?this.utcOffset(t):this.utcOffset(0,!0)}return this},cs.hasAlignedHourOffset=function(t){return!!this.isValid()&&(t=t?xe(t).utcOffset():0,(this.utcOffset()-t)%60==0)},cs.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},cs.isLocal=function(){return!!this.isValid()&&!this._isUTC},cs.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},cs.isUtc=Ee,cs.isUTC=Ee,cs.zoneAbbr=function(){return this._isUTC?"UTC":""},cs.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},cs.dates=S("dates accessor is deprecated. Use date instead.",is),cs.months=S("months accessor is deprecated. Use month instead",Tt),cs.years=S("years accessor is deprecated. Use year instead",bt),cs.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()})),cs.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),(t=we(t))._a){var e=t._isUTC?_(t._a):xe(t._a);this._isDSTShifted=this.isValid()&&C(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var ds=j.prototype;function _s(t,e,s,i){var a=oe(),n=_().set(i,e);return a[s](n,t)}function ms(t,e,s){if(r(t)&&(e=t,t=void 0),t=t||"",null!=e)return _s(t,e,s,"month");var i,a=[];for(i=0;i<12;i++)a[i]=_s(t,i,s,"month");return a}function hs(t,e,s,i){"boolean"==typeof t?(r(e)&&(s=e,e=void 0),e=e||""):(s=e=t,t=!1,r(e)&&(s=e,e=void 0),e=e||"");var a,n=oe(),o=t?n._week.dow:0;if(null!=s)return _s(e,(s+o)%7,i,"day");var l=[];for(a=0;a<7;a++)l[a]=_s(e,(a+o)%7,i,"day");return l}ds.calendar=function(t,e,s){var i=this._calendar[t]||this._calendar.sameElse;return T(i)?i.call(e,s):i},ds.longDateFormat=function(t){var e=this._longDateFormat[t],s=this._longDateFormat[t.toUpperCase()];return e||!s?e:(this._longDateFormat[t]=s.replace(/MMMM|MM|DD|dddd/g,(function(t){return t.slice(1)})),this._longDateFormat[t])},ds.invalidDate=function(){return this._invalidDate},ds.ordinal=function(t){return this._ordinal.replace("%d",t)},ds.preparse=us,ds.postformat=us,ds.relativeTime=function(t,e,s,i){var a=this._relativeTime[s];return T(a)?a(t,e,s,i):a.replace(/%d/i,t)},ds.pastFuture=function(t,e){var s=this._relativeTime[t>0?"future":"past"];return T(s)?s(e):s.replace(/%s/i,e)},ds.set=function(t){var e,s;for(s in t)T(e=t[s])?this[s]=e:this["_"+s]=e;this._config=t,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},ds.months=function(t,e){return t?a(this._months)?this._months[t.month()]:this._months[(this._months.isFormat||xt).test(e)?"format":"standalone"][t.month()]:a(this._months)?this._months:this._months.standalone},ds.monthsShort=function(t,e){return t?a(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[xt.test(e)?"format":"standalone"][t.month()]:a(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},ds.monthsParse=function(t,e,s){var i,a,n;if(this._monthsParseExact)return Pt.call(this,t,e,s);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(a=_([2e3,i]),s&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),s||this._monthsParse[i]||(n="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[i]=new RegExp(n.replace(".",""),"i")),s&&"MMMM"===e&&this._longMonthsParse[i].test(t))return i;if(s&&"MMM"===e&&this._shortMonthsParse[i].test(t))return i;if(!s&&this._monthsParse[i].test(t))return i}},ds.monthsRegex=function(t){return this._monthsParseExact?(u(this,"_monthsRegex")||Yt.call(this),t?this._monthsStrictRegex:this._monthsRegex):(u(this,"_monthsRegex")||(this._monthsRegex=jt),this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex)},ds.monthsShortRegex=function(t){return this._monthsParseExact?(u(this,"_monthsRegex")||Yt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):(u(this,"_monthsShortRegex")||(this._monthsShortRegex=Ot),this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex)},ds.week=function(t){return Et(t,this._week.dow,this._week.doy).week},ds.firstDayOfYear=function(){return this._week.doy},ds.firstDayOfWeek=function(){return this._week.dow},ds.weekdays=function(t,e){var s=a(this._weekdays)?this._weekdays:this._weekdays[t&&!0!==t&&this._weekdays.isFormat.test(e)?"format":"standalone"];return!0===t?Ut(s,this._week.dow):t?s[t.day()]:s},ds.weekdaysMin=function(t){return!0===t?Ut(this._weekdaysMin,this._week.dow):t?this._weekdaysMin[t.day()]:this._weekdaysMin},ds.weekdaysShort=function(t){return!0===t?Ut(this._weekdaysShort,this._week.dow):t?this._weekdaysShort[t.day()]:this._weekdaysShort},ds.weekdaysParse=function(t,e,s){var i,a,n;if(this._weekdaysParseExact)return Ft.call(this,t,e,s);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(a=_([2e3,1]).day(i),s&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(n="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[i]=new RegExp(n.replace(".",""),"i")),s&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(s&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(s&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!s&&this._weekdaysParse[i].test(t))return i}},ds.weekdaysRegex=function(t){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||zt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(u(this,"_weekdaysRegex")||(this._weekdaysRegex=qt),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)},ds.weekdaysShortRegex=function(t){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||zt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(u(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Vt),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},ds.weekdaysMinRegex=function(t){return this._weekdaysParseExact?(u(this,"_weekdaysRegex")||zt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(u(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Gt),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},ds.isPM=function(t){return"p"===(t+"").toLowerCase().charAt(0)},ds.meridiem=function(t,e,s){return t>11?s?"pm":"PM":s?"am":"AM"},ae("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10;return t+(1===w(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th")}}),i.lang=S("moment.lang is deprecated. Use moment.locale instead.",ae),i.langData=S("moment.langData is deprecated. Use moment.localeData instead.",oe);var ps=Math.abs;function fs(t,e,s,i){var a=He(e,s);return t._milliseconds+=i*a._milliseconds,t._days+=i*a._days,t._months+=i*a._months,t._bubble()}function vs(t){return t<0?Math.floor(t):Math.ceil(t)}function gs(t){return 4800*t/146097}function bs(t){return 146097*t/4800}function ys(t){return function(){return this.as(t)}}var ks=ys("ms"),ws=ys("s"),Cs=ys("m"),xs=ys("h"),Ss=ys("d"),Ds=ys("w"),Ps=ys("M"),Ms=ys("Q"),Ts=ys("y");function Os(t){return function(){return this.isValid()?this._data[t]:NaN}}var js=Os("milliseconds"),Ys=Os("seconds"),Is=Os("minutes"),Ls=Os("hours"),As=Os("days"),Ns=Os("months"),Es=Os("years"),Rs=Math.round,Us={ss:44,s:45,m:45,h:22,d:26,M:11};function Hs(t,e,s,i,a){return a.relativeTime(e||1,!!s,t,i)}var $s=Math.abs;function Ws(t){return(t>0)-(t<0)||+t}function Fs(){if(!this.isValid())return this.localeData().invalidDate();var t,e,s=$s(this._milliseconds)/1e3,i=$s(this._days),a=$s(this._months);t=k(s/60),e=k(t/60),s%=60,t%=60;var n=k(a/12),o=a%=12,r=i,l=e,c=t,u=s?s.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var _=d<0?"-":"",m=Ws(this._months)!==Ws(d)?"-":"",h=Ws(this._days)!==Ws(d)?"-":"",p=Ws(this._milliseconds)!==Ws(d)?"-":"";return _+"P"+(n?m+n+"Y":"")+(o?m+o+"M":"")+(r?h+r+"D":"")+(l||c||u?"T":"")+(l?p+l+"H":"")+(c?p+c+"M":"")+(u?p+u+"S":"")}var qs=Te.prototype;return qs.isValid=function(){return this._isValid},qs.abs=function(){var t=this._data;return this._milliseconds=ps(this._milliseconds),this._days=ps(this._days),this._months=ps(this._months),t.milliseconds=ps(t.milliseconds),t.seconds=ps(t.seconds),t.minutes=ps(t.minutes),t.hours=ps(t.hours),t.months=ps(t.months),t.years=ps(t.years),this},qs.add=function(t,e){return fs(this,t,e,1)},qs.subtract=function(t,e){return fs(this,t,e,-1)},qs.as=function(t){if(!this.isValid())return NaN;var e,s,i=this._milliseconds;if("month"===(t=L(t))||"quarter"===t||"year"===t)switch(e=this._days+i/864e5,s=this._months+gs(e),t){case"month":return s;case"quarter":return s/3;case"year":return s/12}else switch(e=this._days+Math.round(bs(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}},qs.asMilliseconds=ks,qs.asSeconds=ws,qs.asMinutes=Cs,qs.asHours=xs,qs.asDays=Ss,qs.asWeeks=Ds,qs.asMonths=Ps,qs.asQuarters=Ms,qs.asYears=Ts,qs.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN},qs._bubble=function(){var t,e,s,i,a,n=this._milliseconds,o=this._days,r=this._months,l=this._data;return n>=0&&o>=0&&r>=0||n<=0&&o<=0&&r<=0||(n+=864e5*vs(bs(r)+o),o=0,r=0),l.milliseconds=n%1e3,t=k(n/1e3),l.seconds=t%60,e=k(t/60),l.minutes=e%60,s=k(e/60),l.hours=s%24,o+=k(s/24),a=k(gs(o)),r+=a,o-=vs(bs(a)),i=k(r/12),r%=12,l.days=o,l.months=r,l.years=i,this},qs.clone=function(){return He(this)},qs.get=function(t){return t=L(t),this.isValid()?this[t+"s"]():NaN},qs.milliseconds=js,qs.seconds=Ys,qs.minutes=Is,qs.hours=Ls,qs.days=As,qs.weeks=function(){return k(this.days()/7)},qs.months=Ns,qs.years=Es,qs.humanize=function(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),s=function(t,e,s){var i=He(t).abs(),a=Rs(i.as("s")),n=Rs(i.as("m")),o=Rs(i.as("h")),r=Rs(i.as("d")),l=Rs(i.as("M")),c=Rs(i.as("y")),u=a<=Us.ss&&["s",a]||a<Us.s&&["ss",a]||n<=1&&["m"]||n<Us.m&&["mm",n]||o<=1&&["h"]||o<Us.h&&["hh",o]||r<=1&&["d"]||r<Us.d&&["dd",r]||l<=1&&["M"]||l<Us.M&&["MM",l]||c<=1&&["y"]||["yy",c];return u[2]=e,u[3]=+t>0,u[4]=s,Hs.apply(null,u)}(this,!t,e);return t&&(s=e.pastFuture(+this,s)),e.postformat(s)},qs.toISOString=Fs,qs.toString=Fs,qs.toJSON=Fs,qs.locale=Be,qs.localeData=Ze,qs.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Fs),qs.lang=Qe,F("X",0,0,"unix"),F("x",0,0,"valueOf"),ct("x",at),ct("X",/[+-]?\d+(\.\d{1,3})?/),mt("X",(function(t,e,s){s._d=new Date(1e3*parseFloat(t,10))})),mt("x",(function(t,e,s){s._d=new Date(w(t))})),i.version="2.24.0",e=xe,i.fn=cs,i.min=function(){var t=[].slice.call(arguments,0);return Pe("isBefore",t)},i.max=function(){var t=[].slice.call(arguments,0);return Pe("isAfter",t)},i.now=function(){return Date.now?Date.now():+new Date},i.utc=_,i.unix=function(t){return xe(1e3*t)},i.months=function(t,e){return ms(t,e,"months")},i.isDate=l,i.locale=ae,i.invalid=p,i.duration=He,i.isMoment=y,i.weekdays=function(t,e,s){return hs(t,e,s,"weekdays")},i.parseZone=function(){return xe.apply(null,arguments).parseZone()},i.localeData=oe,i.isDuration=Oe,i.monthsShort=function(t,e){return ms(t,e,"monthsShort")},i.weekdaysMin=function(t,e,s){return hs(t,e,s,"weekdaysMin")},i.defineLocale=ne,i.updateLocale=function(t,e){if(null!=e){var s,i,a=Kt;null!=(i=ie(t))&&(a=i._config),e=O(a,e),(s=new j(e)).parentLocale=te[t],te[t]=s,ae(t)}else null!=te[t]&&(null!=te[t].parentLocale?te[t]=te[t].parentLocale:null!=te[t]&&delete te[t]);return te[t]},i.locales=function(){return D(te)},i.weekdaysShort=function(t,e,s){return hs(t,e,s,"weekdaysShort")},i.normalizeUnits=L,i.relativeTimeRounding=function(t){return void 0===t?Rs:"function"==typeof t&&(Rs=t,!0)},i.relativeTimeThreshold=function(t,e){return void 0!==Us[t]&&(void 0===e?Us[t]:(Us[t]=e,"s"===t&&(Us.ss=e-1),!0))},i.calendarFormat=function(t,e){var s=t.diff(e,"days",!0);return s<-6?"sameElse":s<-1?"lastWeek":s<0?"lastDay":s<1?"sameDay":s<2?"nextDay":s<7?"nextWeek":"sameElse"},i.prototype=cs,i.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},i}()}).call(this,s("./node_modules/webpack/buildin/module.js")(t))},"./node_modules/vue-loader/lib/runtime/componentNormalizer.js":function(t,e,s){"use strict";function i(t,e,s,i,a,n,o,r){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=s,c._compiled=!0),i&&(c.functional=!0),n&&(c._scopeId="data-v-"+n),o?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(o)},c._ssrRegister=l):a&&(l=r?function(){a.call(this,this.$root.$options.shadowRoot)}:a),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}s.d(e,"a",(function(){return i}))},"./node_modules/webpack/buildin/global.js":function(t,e){var s;s=function(){return this}();try{s=s||new Function("return this")()}catch(t){"object"==typeof window&&(s=window)}t.exports=s},"./node_modules/webpack/buildin/module.js":function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},"./node_modules/xss/lib/default.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,a=s("./node_modules/cssfilter/lib/index.js").getDefaultWhiteList,n=s("./node_modules/xss/lib/util.js");function o(){return{a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]}}var r=new i;function l(t){return t.replace(c,"&lt;").replace(u,"&gt;")}var c=/</g,u=/>/g,d=/"/g,_=/&quot;/g,m=/&#([a-zA-Z0-9]*);?/gim,h=/&colon;?/gim,p=/&newline;?/gim,f=/((j\s*a\s*v\s*a|v\s*b|l\s*i\s*v\s*e)\s*s\s*c\s*r\s*i\s*p\s*t\s*|m\s*o\s*c\s*h\s*a)\:/gi,v=/e\s*x\s*p\s*r\s*e\s*s\s*s\s*i\s*o\s*n\s*\(.*/gi,g=/u\s*r\s*l\s*\(.*/gi;function b(t){return t.replace(d,"&quot;")}function y(t){return t.replace(_,'"')}function k(t){return t.replace(m,(function(t,e){return"x"===e[0]||"X"===e[0]?String.fromCharCode(parseInt(e.substr(1),16)):String.fromCharCode(parseInt(e,10))}))}function w(t){return t.replace(h,":").replace(p," ")}function C(t){for(var e="",s=0,i=t.length;s<i;s++)e+=t.charCodeAt(s)<32?" ":t.charAt(s);return n.trim(e)}function x(t){return t=C(t=w(t=k(t=y(t))))}function S(t){return t=l(t=b(t))}var D=/<!--[\s\S]*?-->/g;e.whiteList={a:["target","href","title"],abbr:["title"],address:[],area:["shape","coords","href","alt"],article:[],aside:[],audio:["autoplay","controls","loop","preload","src"],b:[],bdi:["dir"],bdo:["dir"],big:[],blockquote:["cite"],br:[],caption:[],center:[],cite:[],code:[],col:["align","valign","span","width"],colgroup:["align","valign","span","width"],dd:[],del:["datetime"],details:["open"],div:[],dl:[],dt:[],em:[],font:["color","size","face"],footer:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],header:[],hr:[],i:[],img:["src","alt","title","width","height"],ins:["datetime"],li:[],mark:[],nav:[],ol:[],p:[],pre:[],s:[],section:[],small:[],span:[],sub:[],sup:[],strong:[],table:["width","border","align","valign"],tbody:["align","valign"],td:["width","rowspan","colspan","align","valign"],tfoot:["align","valign"],th:["width","rowspan","colspan","align","valign"],thead:["align","valign"],tr:["rowspan","align","valign"],tt:[],u:[],ul:[],video:["autoplay","controls","loop","preload","src","height","width"]},e.getDefaultWhiteList=o,e.onTag=function(t,e,s){},e.onIgnoreTag=function(t,e,s){},e.onTagAttr=function(t,e,s){},e.onIgnoreTagAttr=function(t,e,s){},e.safeAttrValue=function(t,e,s,i){if(s=x(s),"href"===e||"src"===e){if("#"===(s=n.trim(s)))return"#";if("http://"!==s.substr(0,7)&&"https://"!==s.substr(0,8)&&"mailto:"!==s.substr(0,7)&&"tel:"!==s.substr(0,4)&&"#"!==s[0]&&"/"!==s[0])return""}else if("background"===e){if(f.lastIndex=0,f.test(s))return""}else if("style"===e){if(v.lastIndex=0,v.test(s))return"";if(g.lastIndex=0,g.test(s)&&(f.lastIndex=0,f.test(s)))return"";!1!==i&&(s=(i=i||r).process(s))}return s=S(s)},e.escapeHtml=l,e.escapeQuote=b,e.unescapeQuote=y,e.escapeHtmlEntities=k,e.escapeDangerHtml5Entities=w,e.clearNonPrintableCharacter=C,e.friendlyAttrValue=x,e.escapeAttrValue=S,e.onIgnoreTagStripAll=function(){return""},e.StripTagBody=function(t,e){"function"!=typeof e&&(e=function(){});var s=!Array.isArray(t),i=[],a=!1;return{onIgnoreTag:function(o,r,l){if(function(e){return!!s||-1!==n.indexOf(t,e)}(o)){if(l.isClosing){var c="[/removed]",u=l.position+c.length;return i.push([!1!==a?a:l.position,u]),a=!1,c}return a||(a=l.position),"[removed]"}return e(o,r,l)},remove:function(t){var e="",s=0;return n.forEach(i,(function(i){e+=t.slice(s,i[0]),s=i[1]})),e+=t.slice(s)}}},e.stripCommentTag=function(t){return t.replace(D,"")},e.stripBlankChar=function(t){var e=t.split("");return(e=e.filter((function(t){var e=t.charCodeAt(0);return 127!==e&&(!(e<=31)||(10===e||13===e))}))).join("")},e.cssFilter=r,e.getDefaultCSSWhiteList=a},"./node_modules/xss/lib/index.js":function(t,e,s){var i=s("./node_modules/xss/lib/default.js"),a=s("./node_modules/xss/lib/parser.js"),n=s("./node_modules/xss/lib/xss.js");function o(t,e){return new n(e).process(t)}for(var r in(e=t.exports=o).filterXSS=o,e.FilterXSS=n,i)e[r]=i[r];for(var r in a)e[r]=a[r];"undefined"!=typeof window&&(window.filterXSS=t.exports),"undefined"!=typeof self&&"undefined"!=typeof DedicatedWorkerGlobalScope&&self instanceof DedicatedWorkerGlobalScope&&(self.filterXSS=t.exports)},"./node_modules/xss/lib/parser.js":function(t,e,s){var i=s("./node_modules/xss/lib/util.js");function a(t){var e=i.spaceIndex(t);if(-1===e)var s=t.slice(1,-1);else s=t.slice(1,e+1);return"/"===(s=i.trim(s).toLowerCase()).slice(0,1)&&(s=s.slice(1)),"/"===s.slice(-1)&&(s=s.slice(0,-1)),s}function n(t){return"</"===t.slice(0,2)}var o=/[^a-zA-Z0-9_:\.\-]/gim;function r(t,e){for(;e<t.length;e++){var s=t[e];if(" "!==s)return"="===s?e:-1}}function l(t,e){for(;e>0;e--){var s=t[e];if(" "!==s)return"="===s?e:-1}}function c(t){return function(t){return'"'===t[0]&&'"'===t[t.length-1]||"'"===t[0]&&"'"===t[t.length-1]}(t)?t.substr(1,t.length-2):t}e.parseTag=function(t,e,s){var i="",o=0,r=!1,l=!1,c=0,u=t.length,d="",_="";for(c=0;c<u;c++){var m=t.charAt(c);if(!1===r){if("<"===m){r=c;continue}}else if(!1===l){if("<"===m){i+=s(t.slice(o,c)),r=c,o=c;continue}if(">"===m){i+=s(t.slice(o,r)),d=a(_=t.slice(r,c+1)),i+=e(r,i.length,d,_,n(_)),o=c+1,r=!1;continue}if(('"'===m||"'"===m)&&"="===t.charAt(c-1)){l=m;continue}}else if(m===l){l=!1;continue}}return o<t.length&&(i+=s(t.substr(o))),i},e.parseAttr=function(t,e){var s=0,a=[],n=!1,u=t.length;function d(t,s){if(!((t=(t=i.trim(t)).replace(o,"").toLowerCase()).length<1)){var n=e(t,s||"");n&&a.push(n)}}for(var _=0;_<u;_++){var m,h=t.charAt(_);if(!1!==n||"="!==h)if(!1===n||_!==s||'"'!==h&&"'"!==h||"="!==t.charAt(_-1))if(/\s|\n|\t/.test(h)){if(t=t.replace(/\s|\n|\t/g," "),!1===n){if(-1===(m=r(t,_))){d(i.trim(t.slice(s,_))),n=!1,s=_+1;continue}_=m-1;continue}if(-1===(m=l(t,_-1))){d(n,c(i.trim(t.slice(s,_)))),n=!1,s=_+1;continue}}else;else{if(-1===(m=t.indexOf(h,_+1)))break;d(n,i.trim(t.slice(s+1,m))),n=!1,s=(_=m)+1}else n=t.slice(s,_),s=_+1}return s<t.length&&(!1===n?d(t.slice(s)):d(n,c(i.trim(t.slice(s))))),i.trim(a.join(" "))}},"./node_modules/xss/lib/util.js":function(t,e){t.exports={indexOf:function(t,e){var s,i;if(Array.prototype.indexOf)return t.indexOf(e);for(s=0,i=t.length;s<i;s++)if(t[s]===e)return s;return-1},forEach:function(t,e,s){var i,a;if(Array.prototype.forEach)return t.forEach(e,s);for(i=0,a=t.length;i<a;i++)e.call(s,t[i],i,t)},trim:function(t){return String.prototype.trim?t.trim():t.replace(/(^\s*)|(\s*$)/g,"")},spaceIndex:function(t){var e=/\s|\n|\t/.exec(t);return e?e.index:-1}}},"./node_modules/xss/lib/xss.js":function(t,e,s){var i=s("./node_modules/cssfilter/lib/index.js").FilterCSS,a=s("./node_modules/xss/lib/default.js"),n=s("./node_modules/xss/lib/parser.js"),o=n.parseTag,r=n.parseAttr,l=s("./node_modules/xss/lib/util.js");function c(t){return null==t}function u(t){(t=function(t){var e={};for(var s in t)e[s]=t[s];return e}(t||{})).stripIgnoreTag&&(t.onIgnoreTag&&console.error('Notes: cannot use these two options "stripIgnoreTag" and "onIgnoreTag" at the same time'),t.onIgnoreTag=a.onIgnoreTagStripAll),t.whiteList=t.whiteList||a.whiteList,t.onTag=t.onTag||a.onTag,t.onTagAttr=t.onTagAttr||a.onTagAttr,t.onIgnoreTag=t.onIgnoreTag||a.onIgnoreTag,t.onIgnoreTagAttr=t.onIgnoreTagAttr||a.onIgnoreTagAttr,t.safeAttrValue=t.safeAttrValue||a.safeAttrValue,t.escapeHtml=t.escapeHtml||a.escapeHtml,this.options=t,!1===t.css?this.cssFilter=!1:(t.css=t.css||{},this.cssFilter=new i(t.css))}u.prototype.process=function(t){if(!(t=(t=t||"").toString()))return"";var e=this.options,s=e.whiteList,i=e.onTag,n=e.onIgnoreTag,u=e.onTagAttr,d=e.onIgnoreTagAttr,_=e.safeAttrValue,m=e.escapeHtml,h=this.cssFilter;e.stripBlankChar&&(t=a.stripBlankChar(t)),e.allowCommentTag||(t=a.stripCommentTag(t));var p=!1;if(e.stripIgnoreTagBody){p=a.StripTagBody(e.stripIgnoreTagBody,n);n=p.onIgnoreTag}var f=o(t,(function(t,e,a,o,p){var f,v={sourcePosition:t,position:e,isClosing:p,isWhite:s.hasOwnProperty(a)};if(!c(f=i(a,o,v)))return f;if(v.isWhite){if(v.isClosing)return"</"+a+">";var g=function(t){var e=l.spaceIndex(t);if(-1===e)return{html:"",closing:"/"===t[t.length-2]};var s="/"===(t=l.trim(t.slice(e+1,-1)))[t.length-1];return s&&(t=l.trim(t.slice(0,-1))),{html:t,closing:s}}(o),b=s[a],y=r(g.html,(function(t,e){var s,i=-1!==l.indexOf(b,t);return c(s=u(a,t,e,i))?i?(e=_(a,t,e,h))?t+'="'+e+'"':t:c(s=d(a,t,e,i))?void 0:s:s}));o="<"+a;return y&&(o+=" "+y),g.closing&&(o+=" /"),o+=">"}return c(f=n(a,o,v))?m(o):f}),m);return p&&(f=p.remove(f)),f},t.exports=u},"./src/component/doc-link.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],name:"doc-link",props:["link"],data:function(){return{whitelabel:defender.whitelabel}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return!1===this.whitelabel.hide_doc_link?e("div",{staticClass:"sui-actions-right"},[e("a",{staticClass:"sui-button sui-button-ghost",attrs:{href:this.link,target:"_blank"}},[e("i",{staticClass:"sui-icon-academy"}),this._v(" "+this._s(this.__("View Documentation"))+"\n ")])]):this._e()}),[],!1,null,null,null);e.a=n.exports},"./src/component/footer.vue":function(t,e,s){"use strict";var i={data:function(){return{whitelabel:defender.whitelabel,is_free:defender.is_free}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[!0===t.whitelabel.change_footer?s("div",{staticClass:"sui-footer"},[t._v("\n "+t._s(t.whitelabel.footer_text)+"\n ")]):s("div",{staticClass:"sui-footer"},[t._v("Made with "),s("i",{staticClass:"sui-icon-heart"}),t._v(" by WPMU DEV")]),t._v(" "),!1===t.whitelabel.hide_doc_link?s("div",[t.is_free?s("ul",{staticClass:"sui-footer-nav"},[t._m(0),t._v(" "),t._m(1),t._v(" "),t._m(2),t._v(" "),t._m(3),t._v(" "),t._m(4),t._v(" "),t._m(5),t._v(" "),t._m(6),t._v(" "),t._m(7)]):s("ul",{staticClass:"sui-footer-nav"},[t._m(8),t._v(" "),t._m(9),t._v(" "),t._m(10),t._v(" "),t._m(11),t._v(" "),t._m(12),t._v(" "),t._m(13),t._v(" "),t._m(14),t._v(" "),t._m(15)]),t._v(" "),t._m(16)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://profiles.wordpress.org/wpmudev#content-plugins",target:"_blank"}},[this._v("Free\n Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/features/",target:"_blank"}},[this._v("Membership")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://wordpress.org/support/plugin/plugin-name",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/",target:"_blank"}},[this._v("The Hub")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/projects/category/plugins/",target:"_blank"}},[this._v("Plugins")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/roadmap/",target:"_blank"}},[this._v("Roadmap")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/support/",target:"_blank"}},[this._v("Support")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/docs/",target:"_blank"}},[this._v("Docs")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/hub/community/",target:"_blank"}},[this._v("Community")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://premium.wpmudev.org/terms-of-service/",target:"_blank"}},[this._v("Terms of Service")])])},function(){var t=this.$createElement,e=this._self._c||t;return e("li",[e("a",{attrs:{href:"https://incsub.com/privacy-policy/",target:"_blank"}},[this._v("Privacy Policy")])])},function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("ul",{staticClass:"sui-footer-social"},[s("li",[s("a",{attrs:{href:"https://www.facebook.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-facebook",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Facebook")])])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://twitter.com/wpmudev",target:"_blank"}},[s("i",{staticClass:"sui-icon-social-twitter",attrs:{"aria-hidden":"true"}})]),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Twitter")])]),t._v(" "),s("li",[s("a",{attrs:{href:"https://www.instagram.com/wpmu_dev/",target:"_blank"}},[s("i",{staticClass:"sui-icon-instagram",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v("Instagram")])])])])}],!1,null,null,null);e.a=n.exports},"./src/component/overlay.vue":function(t,e,s){"use strict";var i={name:"overlay"},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement;this._self._c;return this._m(0)}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"wd-overlay"},[e("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}],!1,null,null,null);e.a=n.exports},"./src/component/pagination.vue":function(t,e,s){"use strict";var i={props:{value:{type:Number},pageCount:{type:Number,required:!0},forcePage:{type:Number},clickHandler:{type:Function,default:function(){}},pageRange:{type:Number,default:3},marginPages:{type:Number,default:1},prevText:{type:String,default:"Prev"},nextText:{type:String,default:"Next"},breakViewText:{type:String,default:"…"},containerClass:{type:String},pageClass:{type:String},pageLinkClass:{type:String},prevClass:{type:String},prevLinkClass:{type:String},nextClass:{type:String},nextLinkClass:{type:String},breakViewClass:{type:String},breakViewLinkClass:{type:String},activeClass:{type:String,default:"active"},disabledClass:{type:String,default:"disabled"},noLiSurround:{type:Boolean,default:!1},firstLastButton:{type:Boolean,default:!1},firstButtonText:{type:String,default:"First"},lastButtonText:{type:String,default:"Last"},hidePrevNext:{type:Boolean,default:!1}},beforeUpdate:function(){void 0!==this.forcePage&&this.forcePage!==this.selected&&(this.selected=this.forcePage)},computed:{selected:{get:function(){return this.value||this.innerValue},set:function(t){this.innerValue=t}},pages:function(){var t=this,e={};if(this.pageCount<=this.pageRange)for(var s=0;s<this.pageCount;s++){var i={index:s,content:s+1,selected:s===this.selected-1};e[s]=i}else{for(var a=Math.floor(this.pageRange/2),n=function(s){var i={index:s,content:s+1,selected:s===t.selected-1};e[s]=i},o=function(t){e[t]={disabled:!0,breakView:!0}},r=0;r<this.marginPages;r++)n(r);var l=0;this.selected-a>0&&(l=this.selected-1-a);var c=l+this.pageRange-1;c>=this.pageCount&&(l=(c=this.pageCount-1)-this.pageRange+1);for(var u=l;u<=c&&u<=this.pageCount-1;u++)n(u);l>this.marginPages&&o(l-1),c+1<this.pageCount-this.marginPages&&o(c+1);for(var d=this.pageCount-1;d>=this.pageCount-this.marginPages;d--)n(d)}return e}},data:function(){return{innerValue:1}},methods:{handlePageSelected:function(t){this.selected!==t&&(this.innerValue=t,this.$emit("input",t),this.clickHandler(t))},prevPage:function(){this.selected<=1||this.handlePageSelected(this.selected-1)},nextPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.selected+1)},firstPageSelected:function(){return 1===this.selected},lastPageSelected:function(){return this.selected===this.pageCount||0===this.pageCount},selectFirstPage:function(){this.selected<=1||this.handlePageSelected(1)},selectLastPage:function(){this.selected>=this.pageCount||this.handlePageSelected(this.pageCount)}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return t.noLiSurround?s("div",{class:t.containerClass},[t.firstLastButton?s("a",{class:[t.pageLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}}):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.prevLinkClass,t.firstPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}}),t._v(" "),t._l(t.pages,(function(e){return[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass,e.disabled?t.disabledClass:""],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:"",t.disabledClass],attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:[t.pageLinkClass,e.selected?t.activeClass:""],attrs:{tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])]})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("a",{class:[t.nextLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}}),t._v(" "),t.firstLastButton?s("a",{class:[t.pageLinkClass,t.lastPageSelected()?t.disabledClass:""],attrs:{tabindex:"0"},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}}):t._e()],2):s("ul",{class:t.containerClass},[t.firstLastButton?s("li",{class:[t.pageClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.firstButtonText)},on:{click:function(e){return t.selectFirstPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectFirstPage()}}})]):t._e(),t._v(" "),t.firstPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.prevClass,t.firstPageSelected()?t.disabledClass:""]},[s("a",{class:t.prevLinkClass,attrs:{tabindex:t.firstPageSelected()?-1:0},domProps:{innerHTML:t._s(t.prevText)},on:{click:function(e){return t.prevPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.prevPage()}}})]),t._v(" "),t._l(t.pages,(function(e){return s("li",{class:[t.pageClass,e.selected?t.activeClass:"",e.disabled?t.disabledClass:"",e.breakView?t.breakViewClass:""]},[e.breakView?s("a",{class:[t.pageLinkClass,t.breakViewLinkClass],attrs:{tabindex:"0"}},[t._t("breakViewContent",[t._v(t._s(t.breakViewText))])],2):e.disabled?s("a",{class:t.pageLinkClass,attrs:{tabindex:"0"}},[t._v(t._s(e.content))]):s("a",{class:t.pageLinkClass,attrs:{disabled:e.selected,tabindex:"0"},on:{click:function(s){return t.handlePageSelected(e.index+1)},keyup:function(s){return!s.type.indexOf("key")&&t._k(s.keyCode,"enter",13,s.key,"Enter")?null:t.handlePageSelected(e.index+1)}}},[t._v(t._s(e.content))])])})),t._v(" "),t.lastPageSelected()&&t.hidePrevNext?t._e():s("li",{class:[t.nextClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.nextLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.nextText)},on:{click:function(e){return t.nextPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.nextPage()}}})]),t._v(" "),t.firstLastButton?s("li",{class:[t.pageClass,t.lastPageSelected()?t.disabledClass:""]},[s("a",{class:t.pageLinkClass,attrs:{tabindex:t.lastPageSelected()?-1:0},domProps:{innerHTML:t._s(t.lastButtonText)},on:{click:function(e){return t.selectLastPage()},keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.selectLastPage()}}})]):t._e()],2)}),[],!1,null,null,null);e.a=n.exports},"./src/component/recipients.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["recipients","id"],data:function(){return{first_name:"",email:"",observers:[],can_add:!1,saving_warning:!1,validate:{email:""}}},created:function(){this.observers=this.recipients},watch:{email:function(){if(this.validateEmail(this.email)){var t=!0,e=this;this.observers.forEach((function(s,i){if(s.email===e.email)return t=!1,void(e.validate.email=e.__("This email address is already in use"))})),this.can_add=t,!0===t&&(this.validate.email="")}else this.can_add=!1,this.validate.email=this.__("Invalid email address")},observers:function(){0===this.observers.length?this.saving_warning=!0:this.saving_warning=!1,void 0!==this.event&&this.$emit("update:recipients",this.observers)}},methods:{addRecipient:function(){this.observers.push({first_name:this.first_name,email:this.email}),jQuery.each(SUI.dialogs,(function(t,e){e.hide()})),this.first_name="",this.email=""},removeRecipient:function(t){this.observers.splice(t,1)},validateEmail:function(t){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(String(t).toLowerCase())}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",[s("div",{directives:[{name:"show",rawName:"v-show",value:t.saving_warning,expression:"saving_warning"}],staticClass:"sui-notice sui-notice-warning"},[s("p",[t._v("\n\t\t\t"+t._s(t.__("You've removed all recipients. If you save without a recipient, we'll automatically turn of reports"))+"\n\t\t")])]),t._v(" "),s("div",{staticClass:"sui-recipients"},[t._l(t.observers,(function(e,i){return s("div",{staticClass:"sui-recipient"},[s("span",{staticClass:"sui-recipient-name"},[t._v(t._s(e.first_name))]),t._v(" "),s("span",{staticClass:"sui-recipient-email"},[t._v(t._s(e.email))]),t._v(" "),s("button",{staticClass:"sui-button-icon",attrs:{type:"button"},on:{click:function(e){return t.removeRecipient(i)}}},[s("i",{staticClass:"sui-icon-trash",attrs:{"aria-hidden":"true"}})])])})),t._v(" "),s("button",{staticClass:"sui-button sui-button-ghost add-recipient",attrs:{"data-a11y-dialog-show":t.id,type:"button"}},[s("i",{staticClass:"sui-icon-plus",attrs:{"aria-hidden":"true"}}),t._v(" "+t._s(t.__("Add Recipient"))+"\n\t\t")])],2),t._v(" "),s("div",{staticClass:"sui-dialog sui-dialog-sm",attrs:{"aria-hidden":"true",tabindex:"-1",id:t.id}},[s("div",{staticClass:"sui-dialog-overlay"}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{"aria-labelledby":"dialogTitle","aria-describedby":"dialogDescription",role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add Recipient"))+"\n\t\t\t\t\t")]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Add as many recipients as you like, they will receive email reports as per the schedule you set."))+"\n\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("First name")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.first_name,expression:"first_name"}],staticClass:"sui-form-control recipient_name",attrs:{type:"text"},domProps:{value:t.first_name},on:{input:function(e){e.target.composing||(t.first_name=e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-form-field",class:{"sui-form-field-error":t.validate.email.length>0}},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Email")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.email,expression:"email"}],staticClass:"sui-form-control recipient_email",attrs:{type:"text"},domProps:{value:t.email},on:{input:function(e){e.target.composing||(t.email=e.target.value)}}}),t._v(" "),s("span",{directives:[{name:"show",rawName:"v-show",value:t.validate.email.length>0,expression:"validate.email.length > 0"}],staticClass:"sui-error-message",domProps:{textContent:t._s(this.validate.email)}})])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("button",{staticClass:"sui-button sui-button-ghost",attrs:{type:"button","data-a11y-dialog-hide":"recipient-dialog"}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Cancel"))+"\n\t\t\t\t\t")]),t._v(" "),s("button",{staticClass:"sui-modal-close sui-button recipient_save",attrs:{type:"button",disabled:!1===t.can_add},on:{click:t.addRecipient}},[t._v(t._s(t.__("Add"))+"\n\t\t\t\t\t")])])])])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-actions-right"},[e("button",{staticClass:"sui-dialog-close",attrs:{type:"button","data-a11y-dialog-hide":"","aria-label":"Close this dialog window"}})])}],!1,null,null,null);e.a=n.exports},"./src/component/submit-button.vue":function(t,e,s){"use strict";var i={name:"submit-button",props:["id","state","text","css-class","type"],computed:{getClass:function(){return"sui-button "+this.cssClass}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("button",{staticClass:"sui-button",class:[t.getClass,{"sui-button-onload":t.state.on_saving}],attrs:{id:t.id,type:t.type,disabled:t.state.on_saving},on:{click:function(e){return t.$emit("click")}}},[s("span",{staticClass:"sui-loading-text"},[t._t("default")],2),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])}),[],!1,null,null,null);e.a=n.exports},"./src/component/summary-box.vue":function(t,e,s){"use strict";var i={mixins:[s("./src/helper/base_hepler.js").a],props:["css-class"],name:"summary-box",data:function(){return{whitelabel:defender.whitelabel}},computed:{summary_class:function(){return{"sui-unbranded":!0===this.whitelabel.hide_branding&&0===this.whitelabel.hero_image.length,"sui-rebranded":!0===this.whitelabel.hide_branding&&this.whitelabel.hero_image.length>0}},css_class:function(){return this.cssClass},rebrand_img:function(){if(this.whitelabel.hero_image.length>0)return{"background-image":"url('"+this.whitelabel.hero_image+"')"}}}},a=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),n=Object(a.a)(i,(function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"sui-box sui-summary",class:[this.summary_class,this.css_class],style:this.rebrand_img},[e("div",{staticClass:"sui-summary-image-space",attrs:{"aria-hidden":"true"}}),this._v(" "),this._t("default")],2)}),[],!1,null,null,null);e.a=n.exports},"./src/helper/base_hepler.js":function(t,e,s){"use strict";var i=s("./node_modules/xss/lib/index.js"),a=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return function(t,e){var s=[],i=!0,a=!1,n=void 0;try{for(var o,r=t[Symbol.iterator]();!(i=(o=r.next()).done)&&(s.push(o.value),!e||s.length!==e);i=!0);}catch(t){a=!0,n=t}finally{try{!i&&r.return&&r.return()}finally{if(a)throw n}}return s}(t,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=wp.i18n,o={whiteList:{a:["href","title","target"],span:["class"],strong:["*"]},safeAttrValue:function(t,e,s,a){return"a"===t&&"href"===e&&"%s"===s?"%s":Object(i.safeAttrValue)(t,e,s,a)}},r=new i.FilterXSS(o),l=[];e.a={methods:{__:function(t){var e=n.__(t,"wpdef");return r.process(e)},xss:function(t){return r.process(t)},vsprintf:function(t){return n.sprintf.apply(null,arguments)},siteUrl:function(t){return void 0!==t?defender.site_url+t:defender.site_url},adminUrl:function(t){return void 0!==t?defender.admin_url+t:defender.admin_url},assetUrl:function(t){return defender.defender_url+t},maybeHighContrast:function(){return{"sui-color-accessible":!0===defender.misc.high_contrast}},maybeHideBranding:function(){return defender.whitelabel.hide_branding},campaign_url:function(t){return"https://premium.wpmudev.org/project/wp-defender/?utm_source=defender&utm_medium=plugin&utm_campaign="+t},httpRequest:function(t,e,s,i,a){var n=this;void 0===a&&(this.state.on_saving=!0);var o=ajaxurl+"?action="+this.endpoints[e]+"&_wpnonce="+this.nonces[e],r=jQuery.ajax({url:o,method:t,data:s,success:function(t){var e=t.data;n.state.on_saving=!1,void 0!==e&&void 0!==e.message&&(t.success?Defender.showNotification("success",e.message):Defender.showNotification("error",e.message)),void 0!==i&&i(t)}});l.push(r)},httpGetRequest:function(t,e,s,i){this.httpRequest("get",t,e,s,i)},httpPostRequest:function(t,e,s,i){this.httpRequest("post",t,e,s,i)},abortAllRequests:function(){for(var t=0;t<l.length;t++)l[t].abort()},getQueryStringParams:function(t){return t?(/^[?#]/.test(t)?t.slice(1):t).split("&").reduce((function(t,e){var s=e.split("="),i=a(s,2),n=i[0],o=i[1];return t[n]=o?decodeURIComponent(o.replace(/\+/g," ")):"",t}),{}):{}},rebindSUI:function(){jQuery("select:not([multiple])").each((function(){SUI.suiSelect(this)})),jQuery(".sui-accordion").each((function(){SUI.suiAccordion(this)}));var t=jQuery(".sui-wrap");SUI.dialogs={},jQuery(".sui-dialog").each((function(){SUI.dialogs[this.id]=new A11yDialog(this,t)}))}}}},"./src/ip-lockout.js":function(t,e,s){"use strict";s.r(e);var i=s("vue"),a=s.n(i),n=s("./src/helper/base_hepler.js"),o={mixins:[n.a],name:"ip-lockout",props:["view"],data:function(){return{model:iplockout.model.ip_lockout,summary_data:iplockout.summaryData,state:{on_saving:!1},nonces:iplockout.nonces,endpoints:iplockout.endpoints,misc:iplockout.misc}},methods:{toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"login_protection",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.model[e]=t,!0===t&&s.$nextTick((function(){s.rebindSUI()}))}))},updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})}},computed:{notification:function(){return 0===this.summary_data.ip.day?this.__("Login protection is enabled. There are no lockouts logged yet."):this.vsprintf(this.__('There have been %s lockouts in the last 24 hours. <a href="%s"><strong>View log</strong></a>.'),this.summary_data.ip.day,this.adminUrl("admin.php?page=wdf-ip-lockout&view=logs"))},banned_username:function(){return this.vsprintf(this.__("We recommend adding the usernames <strong>admin</strong>, <strong>administrator</strong> and your hostname <strong>%s</strong> as these are common for bots to try logging in with. One username per line"),this.misc.host)},demo_link:function(){return this.vsprintf(this.__('This message will be displayed across your website during the lockout period. See a quick preview <a href="%s">here</a>.'),this.siteUrl("?def-lockout-demo=1&type=demo"))}},mounted:function(){var t=this;jQuery(".jquery-select").change((function(){var e=jQuery(this).val(),s=jQuery(this).attr("name");t.model[s]=e}))}},r=s("./node_modules/vue-loader/lib/runtime/componentNormalizer.js"),l=Object(r.a)(o,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.login_protection||0===t.model.login_protection?s("div",{staticClass:"sui-box",attrs:{"data-tab":"login_lockout"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Login Protection"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-message"},[t.maybeHideBranding()?t._e():s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/lockout-man.svg")}}),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n "+t._s(t.__("Put a stop to hackers trying to randomly guess your login credentials. Defender will lock out users after a set number of failed login attempts."))+"\n ")]),t._v(" "),s("form",{staticClass:"ip-frm",attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.toggle(!0,"login_protection")}}},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[t._v("\n "+t._s(t.__("Activate"))+"\n ")])],1)])])]):!0===t.model.login_protection||1===t.model.login_protection?s("div",{staticClass:"sui-box"},[s("form",{staticClass:"ip-frm",attrs:{method:"post",id:"settings-frm"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n "+t._s(t.__("Login Protection"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n "+t._s(t.__("Put a stop to hackers trying to randomly guess your login credentials. Defender will lock out users after a set number of failed login attempts."))+"\n ")]),t._v(" "),t.summary_data.ip.day>0?s("div",{staticClass:"sui-notice sui-notice-error"},[s("p",{domProps:{innerHTML:t._s(t.notification)}})]):s("div",{staticClass:"sui-notice sui-notice-info"},[s("p",{domProps:{innerHTML:t._s(t.notification)}})]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Threshold")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Specify how many failed login attempts within a specific time period will trigger a lockout.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-2"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Failed logins")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_login_attempt,expression:"model.login_protection_login_attempt"}],staticClass:"sui-form-control sui-input-sm sui-field-has-suffix",attrs:{size:"8",type:"text",id:"login_protection_login_attempt",name:"login_protection_login_attempt"},domProps:{value:t.model.login_protection_login_attempt},on:{input:function(e){e.target.composing||t.$set(t.model,"login_protection_login_attempt",e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-col-md-3"},[s("label",{staticClass:"sui-label"},[t._v("\n "+t._s(t.__("Timeframe"))+"\n ")]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_timeframe,expression:"model.login_protection_lockout_timeframe"}],staticClass:"sui-form-control sui-input-sm sui-field-has-suffix",attrs:{size:"8",id:"login_lockout_timeframe",name:"login_protection_lockout_timeframe",type:"text"},domProps:{value:t.model.login_protection_lockout_timeframe},on:{input:function(e){e.target.composing||t.$set(t.model,"login_protection_lockout_timeframe",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-field-suffix"},[t._v(t._s(t.__("seconds")))])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Duration")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Choose how long you'd like to ban the locked out user for.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:!1===t.model.login_protection_lockout_ban},attrs:{for:"timeframe"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_ban,expression:"model.login_protection_lockout_ban"}],attrs:{type:"radio",name:"login_protection_lockout_ban",id:"timeframe","data-tab-menu":"timeframe-box"},domProps:{value:!1,checked:t._q(t.model.login_protection_lockout_ban,!1)},on:{change:function(e){return t.$set(t.model,"login_protection_lockout_ban",!1)}}}),t._v("\n "+t._s(t.__("Timeframe"))+"\n ")]),t._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:!0===t.model.login_protection_lockout_ban},attrs:{for:"permanent"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_ban,expression:"model.login_protection_lockout_ban"}],attrs:{type:"radio",name:"login_protection_lockout_ban","data-tab-menu":"",id:"permanent"},domProps:{value:!0,checked:t._q(t.model.login_protection_lockout_ban,!0)},on:{change:function(e){return t.$set(t.model,"login_protection_lockout_ban",!0)}}}),t._v("\n "+t._s(t.__("Permanent"))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:!1===t.model.login_protection_lockout_ban},attrs:{id:"timeframe-box","data-tab-content":"timeframe-box"}},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_duration,expression:"model.login_protection_lockout_duration"}],staticClass:"sui-form-control",attrs:{size:"4",name:"login_protection_lockout_duration",id:"login_protection_lockout_duration",type:"text"},domProps:{value:t.model.login_protection_lockout_duration},on:{input:function(e){e.target.composing||t.$set(t.model,"login_protection_lockout_duration",e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-col-md-4"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_duration_unit,expression:"model.login_protection_lockout_duration_unit"}],staticClass:"jquery-select sui-select",attrs:{id:"lockout-duration-unit",name:"login_protection_lockout_duration_unit","data-minimum-results-for-search":"Infinity"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"login_protection_lockout_duration_unit",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"seconds"}},[t._v(t._s(t.__("Seconds")))]),t._v(" "),s("option",{attrs:{value:"minutes"}},[t._v(t._s(t.__("Minutes")))]),t._v(" "),s("option",{attrs:{value:"hours"}},[t._v(t._s(t.__("Hours")))])])])])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Message")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Customize the message locked out users will see.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Custom message")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.login_protection_lockout_message,expression:"model.login_protection_lockout_message"}],staticClass:"sui-form-control",attrs:{name:"login_protection_lockout_message",id:"login_protection_lockout_message"},domProps:{value:t.model.login_protection_lockout_message},on:{input:function(e){e.target.composing||t.$set(t.model,"login_protection_lockout_message",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:t._s(t.demo_link)}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Banned usernames")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("It is highly recommended you avoid using the default username ‘admin'. Use this tool to automatically lockout and ban users who try to login with common usernames."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Banned usernames")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.username_blacklist,expression:"model.username_blacklist"}],staticClass:"sui-form-control",attrs:{placeholder:t.__("Type usernames, one per line"),id:"username_blacklist",name:"username_blacklist",rows:"8"},domProps:{value:t.model.username_blacklist},on:{input:function(e){e.target.composing||t.$set(t.model,"username_blacklist",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:t._s(t.banned_username)}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If you no longer want to use this feature you can turn it off at any time."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1,"login_protection")}}},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit",state:t.state,"css-class":"sui-button-blue"}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(t.__("Save Changes"))+"\n ")])],1)])])]):t._e()}),[],!1,null,null,null).exports,c={mixins:[n.a],name:"nf-lockout",props:["view"],data:function(){return{model:iplockout.model.nf_lockout,summary_data:iplockout.summaryData,state:{on_saving:!1},nonces:iplockout.nonces,endpoints:iplockout.endpoints,misc:iplockout.misc}},methods:{toggle:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"login_protection",s=this,i={};i[e]=t,this.httpPostRequest("updateSettings",{data:JSON.stringify(i)},(function(){s.model[e]=t,!0===t&&s.$nextTick((function(){s.rebindSUI()}))}))},updateSettings:function(){var t=this.model;this.httpPostRequest("updateSettings",{data:JSON.stringify(t)})}},computed:{notification:function(){return 0===this.summary_data.nf.day?this.__("404 detection is enabled. There are no lockouts logged yet."):this.vsprintf(this.__('There have been %s lockouts in the last 24 hours. <a href="%s"><strong>View log</strong></a>.'),this.summary_data.nf.day,this.adminUrl("admin.php?page=wdf-ip-lockout&view=logs"))},demo_link:function(){return this.vsprintf(this.__('This message will be displayed across your website during the lockout period. See a quick preview <a href="%s">here</a>.'),this.siteUrl("?def-lockout-demo=1&type=404"))}},mounted:function(){var t=this;jQuery(".jquery-select").change((function(){var e=jQuery(this).val(),s=jQuery(this).attr("name");t.model[s]=e}))}},u=Object(r.a)(c,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return!1===t.model.detect_404||0===t.model.detect_404?s("div",{staticClass:"sui-box"},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t"+t._s(t.__("404 Detection"))+"\n\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-message"},[!1===t.maybeHideBranding()?s("img",{staticClass:"sui-image",attrs:{src:t.assetUrl("assets/img/lockout-man.svg")}}):t._e(),t._v(" "),s("div",{staticClass:"sui-message-content"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("With 404 detection enabled, Defender will keep an eye out for IP addresses that repeatedly request pages on your website that don't exist and then temporarily block them from accessing your site."))+"\n\t\t\t\t")]),t._v(" "),s("form",{attrs:{method:"post"},on:{submit:function(e){return e.preventDefault(),t.toggle(!0,"detect_404")}}},[s("submit-button",{staticClass:"sui-button-blue",attrs:{type:"submit",state:t.state}},[t._v("\n\t\t\t\t\t\t"+t._s(t.__("Activate"))+"\n\t\t\t\t\t")])],1)])])]):!0===t.model.detect_404||1===t.model.detect_404?s("div",{staticClass:"sui-box",attrs:{"data-tab":"notfound_lockout"}},[s("form",{staticClass:"ip-frm",attrs:{method:"post",id:"settings-frm"},on:{submit:function(e){return e.preventDefault(),t.updateSettings(e)}}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title"},[t._v("\n\t\t\t\t\t"+t._s(t.__("404 Detection"))+"\n\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-box-body"},[s("p",[t._v("\n\t\t\t\t\t"+t._s(t.__("With 404 detection enabled, Defender will keep an eye out for IP addresses that repeatedly request pages on your website that don't exist and then temporarily block them from accessing your site."))+"\n\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-notice",class:{"sui-notice-error":t.summary_data.nf.day>0,"sui-notice-info":0===t.summary_data.nf.day}},[s("p",{domProps:{innerHTML:t._s(t.notification)}})]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Threshold")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Specify how many 404 errors within a specific time period will trigger a lockout."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-2"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("404 hits")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_threshold,expression:"model.detect_404_threshold"}],staticClass:"sui-form-control sui-input-sm sui-field-has-suffix",attrs:{size:"8",type:"text",id:"detect_404_threshold",name:"detect_404_threshold"},domProps:{value:t.model.detect_404_threshold},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_threshold",e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-col"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Timeframe")))]),t._v(" "),s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_timeframe,expression:"model.detect_404_timeframe"}],staticClass:"sui-form-control sui-input-sm sui-field-has-suffix",attrs:{size:"8",id:"detect_404_timeframe",name:"detect_404_timeframe",type:"text"},domProps:{value:t.model.detect_404_timeframe},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_timeframe",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-field-suffix"},[t._v(t._s(t.__("seconds")))])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Duration")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Choose how long you'd like to ban the locked out user for.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-side-tabs"},[s("div",{staticClass:"sui-tabs-menu"},[s("label",{staticClass:"sui-tab-item",class:{active:!1===t.model.detect_404_lockout_ban},attrs:{for:"nf_timeframe"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_ban,expression:"model.detect_404_lockout_ban"}],attrs:{type:"radio",name:"detect_404_lockout_ban",id:"nf_timeframe","data-tab-menu":"nf-timeframe-box"},domProps:{value:!1,checked:t._q(t.model.detect_404_lockout_ban,!1)},on:{change:function(e){return t.$set(t.model,"detect_404_lockout_ban",!1)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Timeframe"))+"\n\t\t\t\t\t\t\t\t")]),t._v(" "),s("label",{staticClass:"sui-tab-item",class:{active:!0===t.model.detect_404_lockout_ban},attrs:{for:"nf_permanent"}},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_ban,expression:"model.detect_404_lockout_ban"}],attrs:{type:"radio",name:"detect_404_lockout_ban","data-tab-menu":"",id:"nf_permanent"},domProps:{value:!0,checked:t._q(t.model.detect_404_lockout_ban,!0)},on:{change:function(e){return t.$set(t.model,"detect_404_lockout_ban",!0)}}}),t._v("\n\t\t\t\t\t\t\t\t\t"+t._s(t.__("Permanent"))+"\n\t\t\t\t\t\t\t\t")])]),t._v(" "),s("div",{staticClass:"sui-tabs-content"},[s("div",{staticClass:"sui-tab-content sui-tab-boxed",class:{active:!1===t.model.detect_404_lockout_ban},attrs:{id:"nf-timeframe-box","data-tab-content":"nf-timeframe-box"}},[s("div",{staticClass:"sui-row"},[s("div",{staticClass:"sui-col-md-3"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_duration,expression:"model.detect_404_lockout_duration"}],staticClass:"sui-form-control",attrs:{size:"4",name:"detect_404_lockout_duration",id:"detect_404_lockout_duration",type:"text"},domProps:{value:t.model.detect_404_lockout_duration},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_lockout_duration",e.target.value)}}})]),t._v(" "),s("div",{staticClass:"sui-col-md-4"},[s("select",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_duration_unit,expression:"model.detect_404_lockout_duration_unit"}],staticClass:"jquery-select sui-select",attrs:{id:"detect_404_lockout_duration_unit",name:"detect_404_lockout_duration_unit","data-minimum-results-for-search":"Infinity"},on:{change:function(e){var s=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){return"_value"in t?t._value:t.value}));t.$set(t.model,"detect_404_lockout_duration_unit",e.target.multiple?s:s[0])}}},[s("option",{attrs:{value:"seconds"}},[t._v(t._s(t.__("Seconds")))]),t._v(" "),s("option",{attrs:{value:"minutes"}},[t._v(t._s(t.__("Minutes")))]),t._v(" "),s("option",{attrs:{value:"hours"}},[t._v(t._s(t.__("Hours")))])])])])])])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v(t._s(t.__("Message")))]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v(t._s(t.__("Customize the message locked out users will see.")))])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_lockout_message,expression:"model.detect_404_lockout_message"}],staticClass:"sui-form-control",attrs:{name:"detect_404_lockout_message",id:"detect_404_lockout_message"},domProps:{value:t.model.detect_404_lockout_message},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_lockout_message",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description",domProps:{innerHTML:t._s(t.demo_link)}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Files & Folders"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose specific files and folders that you want to automatically ban users/bots from accessing, or whitelist access to."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("strong",[t._v(t._s(t.__("Blacklist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Add file or folder URLs you want to automatically ban. Users or bots who request blacklisted them will be locked out as per your 404 rules above."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Blaclisted files & folders")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_blacklist,expression:"model.detect_404_blacklist"}],staticClass:"sui-form-control",attrs:{name:"detect_404_blacklist",rows:"8"},domProps:{value:t.model.detect_404_blacklist},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_blacklist",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("One URL per line. You must list the full path beginning with a /."))+"\n ")])]),t._v(" "),s("strong",[t._v(t._s(t.__("Whitelist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("If you know a common file or folder on your website is missing, you can record it here so it doesn't count towards a lockout record."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Whitelisted files & folders")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_whitelist,expression:"model.detect_404_whitelist"}],staticClass:"sui-form-control",attrs:{id:"detect_404_whitelist",name:"detect_404_whitelist",rows:"8"},domProps:{value:t.model.detect_404_whitelist},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_whitelist",e.target.value)}}}),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("One URL per line. You must list the full path beginning with a /."))+"\n ")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Filetypes & Extensions"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("Choose which types of files or extentions you want to auto-ban or whitelist."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("strong",[t._v(t._s(t.__("Blacklist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Add a common filetype or extention you want to auto-ban. Users or bots who request blacklisted filetypes or extensions will be locked out as per your 404 rules above."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Blaclisted filetypes & extensions")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_filetypes_blacklist,expression:"model.detect_404_filetypes_blacklist"}],staticClass:"sui-form-control",attrs:{name:"detect_404_filetypes_blacklist",rows:"8"},domProps:{value:t.model.detect_404_filetypes_blacklist},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_filetypes_blacklist",e.target.value)}}})]),t._v(" "),s("strong",[t._v(t._s(t.__("Whitelist")))]),t._v(" "),s("p",{staticClass:"sui-description"},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Defender will log the 404 error, but won't lockout the user for these filetypes."))+"\n\t\t\t\t\t\t")]),t._v(" "),s("div",{staticClass:"sui-border-frame"},[s("label",{staticClass:"sui-label"},[t._v(t._s(t.__("Whitelisted filetypes & extentions")))]),t._v(" "),s("textarea",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_ignored_filetypes,expression:"model.detect_404_ignored_filetypes"}],staticClass:"sui-form-control",attrs:{id:"detect_404_blacklist",name:"detect_404_ignored_filetypes",rows:"8"},domProps:{value:t.model.detect_404_ignored_filetypes},on:{input:function(e){e.target.composing||t.$set(t.model,"detect_404_ignored_filetypes",e.target.value)}}})])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Exclusions"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("By default, Defender will monitor all interactions with your website but you can choose to disable 404 detection for specific areas of your site."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("div",{staticClass:"sui-form-field"},[s("label",{staticClass:"sui-toggle"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.model.detect_404_logged,expression:"model.detect_404_logged"}],attrs:{id:"detect_404_logged",type:"checkbox","true-value":"true","false-value":"false",name:"detect_404_logged"},domProps:{checked:Array.isArray(t.model.detect_404_logged)?t._i(t.model.detect_404_logged,null)>-1:t._q(t.model.detect_404_logged,"true")},on:{change:function(e){var s=t.model.detect_404_logged,i=e.target,a=i.checked?"true":"false";if(Array.isArray(s)){var n=t._i(s,null);i.checked?n<0&&t.$set(t.model,"detect_404_logged",s.concat([null])):n>-1&&t.$set(t.model,"detect_404_logged",s.slice(0,n).concat(s.slice(n+1)))}else t.$set(t.model,"detect_404_logged",a)}}}),t._v(" "),s("span",{staticClass:"sui-toggle-slider"})]),t._v(" "),s("label",{staticClass:"sui-toggle-label",attrs:{for:"detect_404_logged"}},[t._v("\n\t\t\t\t\t\t\t\t"+t._s(t.__("Monitor 404s from logged in users"))+"\n\t\t\t\t\t\t\t")])])])]),t._v(" "),s("div",{staticClass:"sui-box-settings-row"},[s("div",{staticClass:"sui-box-settings-col-1"},[s("span",{staticClass:"sui-settings-label"},[t._v("\n "+t._s(t.__("Deactivate"))+"\n ")]),t._v(" "),s("span",{staticClass:"sui-description"},[t._v("\n "+t._s(t.__("If you no longer want to use this feature you can turn it off at any time."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-settings-col-2"},[s("submit-button",{attrs:{type:"button","css-class":"sui-button-ghost",state:t.state},on:{click:function(e){return t.toggle(!1,"detect_404")}}},[t._v("\n\t\t\t\t\t\t\t"+t._s(t.__("Deactivate"))+"\n\t\t\t\t\t\t")])],1)])]),t._v(" "),s("div",{staticClass:"sui-box-footer"},[s("div",{staticClass:"sui-actions-right"},[s("submit-button",{attrs:{type:"submit","css-class":"sui-button-blue",state:t.state}},[s("i",{staticClass:"sui-icon-save",attrs:{"aria-hidden":"true"}}),t._v("\n\t\t\t\t\t\t"+t._s(t.__("Save Changes"))+"\n\t\t\t\t\t")])],1)])])]):t._e()}),[],!1,null,null,null).exports,d=s("./node_modules/lodash/chunk.js"),_=s.n(d),m={mixins:[n.a],name:"locked-ips-dialog",data:function(){return{nonces:iplockout.nonces,endpoints:iplockout.endpoints,blacklist:{ips_locked:[],chunks:[],ip:"",paged:1,count:0},state:{ip_actioning:[],on_saving:!1}}},methods:{query_locked_ips:function(){var t=this;this.httpPostRequest("queryLockedIps",{},(function(e){t.blacklist.ips_locked=Object.values(e.data.ips_locked),t.blacklist.chunks=_()(t.blacklist.ips_locked,20),t.blacklist.count=t.blacklist.ips_locked.length,t.$emit("fetched",t.blacklist.ips_locked.length)}),!0)},ip_action:function(t,e,s){var i=this;this.state.ip_actioning.push(t),this.httpPostRequest("ipAction",{ip:t,behavior:e},(function(a){var n=i.state.ip_actioning.indexOf(t);if(-1!==n&&i.state.ip_actioning.splice(n,1),!0===a.success){var o="unban"===e?"normal":"blocked";i.blacklist.ips_locked[s].status=o}}),!0)}},computed:{filtered_locked_ips:function(){if(this.blacklist.ip.length>0){var t=this.blacklist.ip,e=this.blacklist.ips_locked.filter((function(e){return e.ip.indexOf(t)>-1}));this.blacklist.chunks=_()(e,20)}return this.blacklist.chunks[this.blacklist.paged-1]}},created:function(){this.query_locked_ips()}},h=Object(r.a)(m,(function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"sui-dialog sui-dialog-sm locked-ips-dialog",attrs:{"aria-hidden":"true",tabindex:"-1",id:"ips-modal"}},[s("div",{staticClass:"sui-dialog-overlay",attrs:{"data-a11y-dialog-hide":""}}),t._v(" "),s("div",{staticClass:"sui-dialog-content",attrs:{role:"dialog"}},[s("div",{staticClass:"sui-box",attrs:{role:"document"}},[s("div",{staticClass:"sui-box-header"},[s("h3",{staticClass:"sui-box-title",attrs:{id:"dialogTitle"}},[t._v(t._s(t.__("Temporary IP Block List")))]),t._v(" "),t._m(0)]),t._v(" "),s("div",{staticClass:"sui-box-body no-padding-bottom"},[s("p",[t._v("\n "+t._s(t.__("Here's a list of IP addresses that are currently temporarily blocked for bad behaviour. Select the IPs you want to unblock below."))+"\n ")])]),t._v(" "),s("div",{staticClass:"sui-box-selectors sui-box-selectors-col-1"},[s("ul",{staticClass:"ul-ips"},[s("li",[s("div",{staticClass:"sui-with-button sui-with-button-icon"},[s("input",{directives:[{name:"model",rawName:"v-model",value:t.blacklist.ip,expression:"blacklist.ip"}],staticClass:"sui-form-control",attrs:{type:"text",placeholder:t.__("Type IP Address")},domProps:{value:t.blacklist.ip},on:{input:function(e){e.target.composing||t.$set(t.blacklist,"ip",e.target.value)}}}),t._v(" "),t._m(1)])]),t._v(" "),t._l(t.filtered_locked_ips,(function(e,i){return s("li",["blocked"===e.status?s("label",{staticClass:"sui-box-selector"},[s("span",[s("i",{staticClass:"sui-icon-lock",attrs:{"aria-hidden":"true"}}),t._v("\n "+t._s(e.ip)+"\n "),s("button",{staticClass:"sui-tooltip sui-button-icon",class:{"sui-button-onload":t.state.ip_actioning.indexOf(e.ip)>-1},attrs:{type:"button","data-tooltip":"Unblock"},on:{click:function(s){return t.ip_action(e.ip,"unban",i)}}},[s("span",{staticClass:"sui-loading-text",attrs:{"aria-hidden":"true"}},[s("i",{staticClass:"sui-icon-unlock",attrs:{"aria-hidden":"true"}}),t._v(" "),s("span",{staticClass:"sui-screen-reader-text"},[t._v(t._s(t.__("Unlock")))])]),t._v(" "),s("i",{staticClass:"sui-icon-loader sui-loading",attrs:{"aria-hidden":"true"}})])])]):s("label",{staticClass:"sui-box-selector-selected"},[s("span",[s("i",{staticClass:"sui-icon-unlock",attrs:{"aria-hidden":"true"}}),t._v("\n IP "),s("strong",[t._v(t._s(e.ip))]),t._v(" is unblocked\n "),s("button",{staticClass:"su